[
https://issues.apache.org/jira/browse/FINERACT-1289?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17985061#comment-17985061
]
Kapil Panchal edited comment on FINERACT-1289 at 6/21/25 3:50 AM:
------------------------------------------------------------------
I recreated this bug FINERACT-1289 following steps as mentioned in the above
Jira ticket. As I understand it there is no tax component that is calculated
when the EMI for the loan is calculated.
1) This feature needs to be added for it to calculate the tax.
I am attaching herewith a small helloworld program to elicit this.
{color:#7f0055}public{color}{color:#000000}
{color}{color:#7f0055}class{color}{color:#000000} EMITaxCalculator {{color}
{color:#7f0055}public{color}{color:#000000}
{color}{color:#7f0055}static{color}{color:#000000}
{color}{color:#7f0055}void{color}{color:#000000} main(String[]
{color}{color:#6a3e3e}args{color}{color:#000000}) {{color}
{color:#7f0055}double{color}{color:#000000}
{color}{color:#6a3e3e}principal{color}{color:#000000} = 1000;
{color}{color:#3f7f5f}// Loan amount{color}
{color:#7f0055}double{color}{color:#000000}
{color}{color:#6a3e3e}annualInterestRate{color}{color:#000000} = 3;
{color}{color:#3f7f5f}// Annual interest rate (%){color}
{color:#7f0055}int{color}{color:#000000}
{color}{color:#6a3e3e}tenureMonths{color}{color:#000000} = 12;
{color}{color:#3f7f5f}// Loan duration in months{color}
{color:#7f0055}double{color}{color:#000000}
{color}{color:#6a3e3e}gstRate{color}{color:#000000} = 10;
{color}{color:#3f7f5f}// GST rate on interest (%){color}
{color:#7f0055}double{color}{color:#000000}
{color}{color:#6a3e3e}monthlyInterestRate{color}{color:#000000} =
{color}{color:#6a3e3e}annualInterestRate{color}{color:#000000} /
{color}{color:#6a3e3e}tenureMonths{color}{color:#000000} / 100;{color}
{color:#3f7f5f}// EMI formula{color}
{color:#7f0055}double{color}{color:#000000}
{color}{color:#6a3e3e}emi{color}{color:#000000} =
({color}{color:#6a3e3e}principal{color}{color:#000000} *
{color}{color:#6a3e3e}monthlyInterestRate{color}{color:#000000} *
Math.{color}{color:#000000}pow{color}{color:#000000}(1 +
{color}{color:#6a3e3e}monthlyInterestRate{color}{color:#000000},
{color}{color:#6a3e3e}tenureMonths{color}{color:#000000})){color}
{color:#000000} / (Math.{color}{color:#000000}pow{color}{color:#000000}(1 +
{color}{color:#6a3e3e}monthlyInterestRate{color}{color:#000000},
{color}{color:#6a3e3e}tenureMonths{color}{color:#000000}) - 1);{color}
{color:#000000}
System.{color}{color:#0000c0}out{color}{color:#000000}.printf({color}{color:#2a00ff}"Fixed
EMI (before GST): $%.2f%n"{color}{color:#000000},
{color}{color:#6a3e3e}emi{color}{color:#000000});{color}
{color:#000000}
System.{color}{color:#0000c0}out{color}{color:#000000}.println({color}{color:#2a00ff}"-----------------------------------------------------------"{color}{color:#000000});{color}
{color:#000000}
System.{color}{color:#0000c0}out{color}{color:#000000}.printf({color}{color:#2a00ff}"%-6s
%-12s %-12s %-10s %-12s%n"{color}{color:#000000},
{color}{color:#2a00ff}"Month"{color}{color:#000000},
{color}{color:#2a00ff}"Principal"{color}{color:#000000},
{color}{color:#2a00ff}"Interest"{color}{color:#000000},
{color}{color:#2a00ff}"GST"{color}{color:#000000}, {color}{color:#2a00ff}"Total
EMI"{color}{color:#000000});{color}
{color:#000000}
System.{color}{color:#0000c0}out{color}{color:#000000}.println({color}{color:#2a00ff}"-----------------------------------------------------------"{color}{color:#000000});{color}
{color:#7f0055}double{color}{color:#000000}
{color}{color:#6a3e3e}balance{color}{color:#000000} =
{color}{color:#6a3e3e}principal{color}{color:#000000};{color}
{color:#7f0055}for{color}{color:#000000}
({color}{color:#7f0055}int{color}{color:#000000}
{color}{color:#6a3e3e}month{color}{color:#000000} = 1;
{color}{color:#6a3e3e}month{color}{color:#000000} <=
{color}{color:#6a3e3e}tenureMonths{color}{color:#000000};
{color}{color:#6a3e3e}month{color}{color:#000000}++) {{color}
{color:#7f0055}double{color}{color:#000000}
{color}{color:#6a3e3e}interest{color}{color:#000000} =
{color}{color:#6a3e3e}balance{color}{color:#000000} *
{color}{color:#6a3e3e}monthlyInterestRate{color}{color:#000000};{color}
{color:#7f0055}double{color}{color:#000000}
{color}{color:#6a3e3e}principalPart{color}{color:#000000} =
{color}{color:#6a3e3e}emi{color}{color:#000000} -
{color}{color:#6a3e3e}interest{color}{color:#000000};{color}
{color:#7f0055}double{color}{color:#000000}
{color}{color:#6a3e3e}gst{color}{color:#000000} =
{color}{color:#6a3e3e}interest{color}{color:#000000} *
{color}{color:#6a3e3e}gstRate{color}{color:#000000} / 100;{color}
{color:#7f0055}double{color}{color:#000000}
{color}{color:#6a3e3e}totalMonthlyOutflow{color}{color:#000000} =
{color}{color:#6a3e3e}emi{color}{color:#000000} +
{color}{color:#6a3e3e}gst{color}{color:#000000};{color}
{color:#000000}
System.{color}{color:#0000c0}out{color}{color:#000000}.printf({color}{color:#2a00ff}"%-6d
$%-11.2f $%-11.2f $%-9.2f $%-11.2f%n"{color}{color:#000000},{color}
{color:#6a3e3e}month{color}{color:#000000},
{color}{color:#6a3e3e}principalPart{color}{color:#000000},
{color}{color:#6a3e3e}interest{color}{color:#000000},
{color}{color:#6a3e3e}gst{color}{color:#000000},
{color}{color:#6a3e3e}totalMonthlyOutflow{color}{color:#000000});{color}
{color:#6a3e3e}balance{color}{color:#000000} -=
{color}{color:#6a3e3e}principalPart{color}{color:#000000};{color}
{color:#000000} }{color}
{color:#000000} }{color}
{color:#000000}}
this will print output as below:
{color:#000000}Fixed EMI (before GST): $84.69{color}
{color:#000000}-----------------------------------------------------------{color}
{color:#000000}Month Principal Interest GST Total EMI {color}
{color:#000000}-----------------------------------------------------------{color}
{color:#000000}1 $82.19 $2.50 $0.25 $84.94 {color}
{color:#000000}2 $82.40 $2.29 $0.23 $84.92 {color}
{color:#000000}3 $82.61 $2.09 $0.21 $84.90 {color}
{color:#000000}4 $82.81 $1.88 $0.19 $84.88 {color}
{color:#000000}5 $83.02 $1.67 $0.17 $84.86 {color}
{color:#000000}6 $83.23 $1.47 $0.15 $84.84 {color}
{color:#000000}7 $83.43 $1.26 $0.13 $84.82 {color}
{color:#000000}8 $83.64 $1.05 $0.11 $84.80 {color}
{color:#000000}9 $83.85 $0.84 $0.08 $84.78 {color}
{color:#000000}10 $84.06 $0.63 $0.06 $84.76 {color}
{color:#000000}11 $84.27 $0.42 $0.04 $84.74 {color}
{color:#000000}12 $84.48 $0.21 $0.02 $84.71 {color}
Also, see below reference API's in postman to reproduce this:
[https://localhost:8443/fineract-provider/api/v1/taxes/component]
[https://localhost:8443/fineract-provider/api/v1/taxes/component/template]
[https://localhost:8443/fineract-provider/api/v1/taxes/group]
[https://localhost:8443/fineract-provider/api/v1/taxes/group/template]
[https://localhost:8443/fineract-provider/api/v1/loanproducts/template]
Question:
Q1) This tax computation needs to be fully understood and also preferably have
a formula for calculation of the tax e.g. GST?
was (Author: JIRAUSER310058):
I recreated this bug FINERACT-1289 following steps as mentioned in the above
Jira ticket. As I understand it there is no tax component that is calculated
when the EMI for the loan is calculated.
1) This feature needs to be added for it to calculate the tax.
2) I need the formula for tax calculation e.g. GST?
I am attaching herewith a small helloworld program to elicit this.
{color:#7f0055}public{color}{color:#000000}
{color}{color:#7f0055}class{color}{color:#000000} EMITaxCalculator {{color}
{color:#7f0055}public{color}{color:#000000}
{color}{color:#7f0055}static{color}{color:#000000}
{color}{color:#7f0055}void{color}{color:#000000} main(String[]
{color}{color:#6a3e3e}args{color}{color:#000000}) {{color}
{color:#7f0055}double{color}{color:#000000}
{color}{color:#6a3e3e}principal{color}{color:#000000} = 1000;
{color}{color:#3f7f5f}// Loan amount{color}
{color:#7f0055}double{color}{color:#000000}
{color}{color:#6a3e3e}annualInterestRate{color}{color:#000000} = 3;
{color}{color:#3f7f5f}// Annual interest rate (%){color}
{color:#7f0055}int{color}{color:#000000}
{color}{color:#6a3e3e}tenureMonths{color}{color:#000000} = 12;
{color}{color:#3f7f5f}// Loan duration in months{color}
{color:#7f0055}double{color}{color:#000000}
{color}{color:#6a3e3e}gstRate{color}{color:#000000} = 10;
{color}{color:#3f7f5f}// GST rate on interest (%){color}
{color:#7f0055}double{color}{color:#000000}
{color}{color:#6a3e3e}monthlyInterestRate{color}{color:#000000} =
{color}{color:#6a3e3e}annualInterestRate{color}{color:#000000} /
{color}{color:#6a3e3e}tenureMonths{color}{color:#000000} / 100;{color}
{color:#3f7f5f}// EMI formula{color}
{color:#7f0055}double{color}{color:#000000}
{color}{color:#6a3e3e}emi{color}{color:#000000} =
({color}{color:#6a3e3e}principal{color}{color:#000000} *
{color}{color:#6a3e3e}monthlyInterestRate{color}{color:#000000} *
Math.{color}{color:#000000}pow{color}{color:#000000}(1 +
{color}{color:#6a3e3e}monthlyInterestRate{color}{color:#000000},
{color}{color:#6a3e3e}tenureMonths{color}{color:#000000})){color}
{color:#000000} / (Math.{color}{color:#000000}pow{color}{color:#000000}(1 +
{color}{color:#6a3e3e}monthlyInterestRate{color}{color:#000000},
{color}{color:#6a3e3e}tenureMonths{color}{color:#000000}) - 1);{color}
{color:#000000}
System.{color}{color:#0000c0}out{color}{color:#000000}.printf({color}{color:#2a00ff}"Fixed
EMI (before GST): $%.2f%n"{color}{color:#000000},
{color}{color:#6a3e3e}emi{color}{color:#000000});{color}
{color:#000000}
System.{color}{color:#0000c0}out{color}{color:#000000}.println({color}{color:#2a00ff}"-----------------------------------------------------------"{color}{color:#000000});{color}
{color:#000000}
System.{color}{color:#0000c0}out{color}{color:#000000}.printf({color}{color:#2a00ff}"%-6s
%-12s %-12s %-10s %-12s%n"{color}{color:#000000},
{color}{color:#2a00ff}"Month"{color}{color:#000000},
{color}{color:#2a00ff}"Principal"{color}{color:#000000},
{color}{color:#2a00ff}"Interest"{color}{color:#000000},
{color}{color:#2a00ff}"GST"{color}{color:#000000}, {color}{color:#2a00ff}"Total
EMI"{color}{color:#000000});{color}
{color:#000000}
System.{color}{color:#0000c0}out{color}{color:#000000}.println({color}{color:#2a00ff}"-----------------------------------------------------------"{color}{color:#000000});{color}
{color:#7f0055}double{color}{color:#000000}
{color}{color:#6a3e3e}balance{color}{color:#000000} =
{color}{color:#6a3e3e}principal{color}{color:#000000};{color}
{color:#7f0055}for{color}{color:#000000}
({color}{color:#7f0055}int{color}{color:#000000}
{color}{color:#6a3e3e}month{color}{color:#000000} = 1;
{color}{color:#6a3e3e}month{color}{color:#000000} <=
{color}{color:#6a3e3e}tenureMonths{color}{color:#000000};
{color}{color:#6a3e3e}month{color}{color:#000000}++) {{color}
{color:#7f0055}double{color}{color:#000000}
{color}{color:#6a3e3e}interest{color}{color:#000000} =
{color}{color:#6a3e3e}balance{color}{color:#000000} *
{color}{color:#6a3e3e}monthlyInterestRate{color}{color:#000000};{color}
{color:#7f0055}double{color}{color:#000000}
{color}{color:#6a3e3e}principalPart{color}{color:#000000} =
{color}{color:#6a3e3e}emi{color}{color:#000000} -
{color}{color:#6a3e3e}interest{color}{color:#000000};{color}
{color:#7f0055}double{color}{color:#000000}
{color}{color:#6a3e3e}gst{color}{color:#000000} =
{color}{color:#6a3e3e}interest{color}{color:#000000} *
{color}{color:#6a3e3e}gstRate{color}{color:#000000} / 100;{color}
{color:#7f0055}double{color}{color:#000000}
{color}{color:#6a3e3e}totalMonthlyOutflow{color}{color:#000000} =
{color}{color:#6a3e3e}emi{color}{color:#000000} +
{color}{color:#6a3e3e}gst{color}{color:#000000};{color}
{color:#000000}
System.{color}{color:#0000c0}out{color}{color:#000000}.printf({color}{color:#2a00ff}"%-6d
$%-11.2f $%-11.2f $%-9.2f $%-11.2f%n"{color}{color:#000000},{color}
{color:#6a3e3e}month{color}{color:#000000},
{color}{color:#6a3e3e}principalPart{color}{color:#000000},
{color}{color:#6a3e3e}interest{color}{color:#000000},
{color}{color:#6a3e3e}gst{color}{color:#000000},
{color}{color:#6a3e3e}totalMonthlyOutflow{color}{color:#000000});{color}
{color:#6a3e3e}balance{color}{color:#000000} -=
{color}{color:#6a3e3e}principalPart{color}{color:#000000};{color}
{color:#000000} }{color}
{color:#000000} }{color}
{color:#000000}}
this will print output as below:
{color:#000000}Fixed EMI (before GST): $84.69{color}
{color:#000000}-----------------------------------------------------------{color}
{color:#000000}Month Principal Interest GST Total EMI {color}
{color:#000000}-----------------------------------------------------------{color}
{color:#000000}1 $82.19 $2.50 $0.25 $84.94 {color}
{color:#000000}2 $82.40 $2.29 $0.23 $84.92 {color}
{color:#000000}3 $82.61 $2.09 $0.21 $84.90 {color}
{color:#000000}4 $82.81 $1.88 $0.19 $84.88 {color}
{color:#000000}5 $83.02 $1.67 $0.17 $84.86 {color}
{color:#000000}6 $83.23 $1.47 $0.15 $84.84 {color}
{color:#000000}7 $83.43 $1.26 $0.13 $84.82 {color}
{color:#000000}8 $83.64 $1.05 $0.11 $84.80 {color}
{color:#000000}9 $83.85 $0.84 $0.08 $84.78 {color}
{color:#000000}10 $84.06 $0.63 $0.06 $84.76 {color}
{color:#000000}11 $84.27 $0.42 $0.04 $84.74 {color}
{color:#000000}12 $84.48 $0.21 $0.02 $84.71 {color}
Also, see below reference API's in postman to reproduce this:
[https://localhost:8443/fineract-provider/api/v1/taxes/component]
[https://localhost:8443/fineract-provider/api/v1/taxes/component/template]
[https://localhost:8443/fineract-provider/api/v1/taxes/group]
[https://localhost:8443/fineract-provider/api/v1/taxes/group/template]
[https://localhost:8443/fineract-provider/api/v1/loanproducts/template]
Question:
Q1) This tax computation needs to be fully understood and also preferably have
a formula for calculation of the tax e.g. GST?
> Tax component not working as expected
> -------------------------------------
>
> Key: FINERACT-1289
> URL: https://issues.apache.org/jira/browse/FINERACT-1289
> Project: Apache Fineract
> Issue Type: Bug
> Components: Accounting, Charges
> Affects Versions: 1.4.0
> Reporter: Bharath Gowda
> Assignee: Kapil Panchal
> Priority: Major
> Attachments: image1.png, image2.png, image3.png, image4.png, loan
> charge config.png, loan charge split not happening.png, loan product config
> -1.png, loan product config -2.png, tax component config.jpeg, tax group
> config.png
>
>
> tax attached to the loan charge is not getting affected at the
> loan/accounting level
> To reproduce
> 1. Create a tax component-> create a tax group with the component created.
> 2. Create loan charge(any parameter, refer to the attachment for the
> parameters I used) and map the tax group created.
> 3. Add the charge to the loan product (with periodic accrual accounting)
> enabled
> 4. create/approve/disburse a loan from that loan product.
> 5. Ideally the charge with the tax attached should have JE splits for charge
> amount and tax amount separated.
> But the tax bifurcation is not happening
>
> Have attached
> product config screenshot, charge config screenshot, tax config screenshot,
> and loan issue screenshot for more understanding
> Please add a comment if you need any help
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)