blob: 945f9d8ce42a7d01dd30f0696abb5188eb9a8d03 [file] [log] [blame]
@LoanAccrualFeature
Feature: LoanAccrualTransaction
@TestRailId:C2647
Scenario: Verify that after COB job Accrual event is raised when loan has a fee-charge on disbursal date
When Admin sets the business date to "01 January 2023"
When Admin creates a client with random data
When Admin creates a new default Loan with date: "01 January 2023"
And Admin successfully approves the loan on "01 January 2023" with "1000" amount and expected disbursement date on "01 January 2023"
When Admin successfully disburse the loan on "01 January 2023" with "1000" EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "01 January 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "02 January 2023"
When Admin runs inline COB job for Loan
Then Loan Transactions tab has a transaction with date: "01 January 2023", and with the following data:
| Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
Then LoanAccrualTransactionCreatedBusinessEvent is raised on "01 January 2023"
@TestRailId:C2648
Scenario: Verify that after COB job Accrual event is raised when loan has a fee-charge on disbursal date with partial repayment
When Admin sets the business date to "01 January 2023"
When Admin creates a client with random data
When Admin creates a new default Loan with date: "01 January 2023"
And Admin successfully approves the loan on "01 January 2023" with "1000" amount and expected disbursement date on "01 January 2023"
When Admin successfully disburse the loan on "01 January 2023" with "1000" EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "01 January 2023" due date and 10 EUR transaction amount
And Customer makes "AUTOPAY" repayment on "01 January 2023" with 500 EUR transaction amount
When Admin sets the business date to "02 January 2023"
When Admin runs inline COB job for Loan
Then Loan Transactions tab has a transaction with date: "01 January 2023", and with the following data:
| Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
Then LoanAccrualTransactionCreatedBusinessEvent is raised on "01 January 2023"
@TestRailId:C2649
Scenario: Verify that after COB job Accrual event is raised when loan has a fee-charge on disbursal date with full repayment and loan is closed
When Admin sets the business date to "01 January 2023"
When Admin creates a client with random data
When Admin creates a new default Loan with date: "01 January 2023"
And Admin successfully approves the loan on "01 January 2023" with "1000" amount and expected disbursement date on "01 January 2023"
When Admin successfully disburse the loan on "01 January 2023" with "1000" EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "01 January 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "02 January 2023"
And Customer makes "AUTOPAY" repayment on "02 January 2023" with 1010 EUR transaction amount
Then Loan status will be "CLOSED_OBLIGATIONS_MET"
Then Loan Transactions tab has a transaction with date: "02 January 2023", and with the following data:
| Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
Then LoanAccrualTransactionCreatedBusinessEvent is raised on "02 January 2023"
@TestRailId:C2650
Scenario: Verify that after COB job Accrual event is raised when loan has a fee-charge added with chargeback
When Admin sets the business date to "01 January 2023"
When Admin creates a client with random data
When Admin creates a new default Loan with date: "01 January 2023"
And Admin successfully approves the loan on "01 January 2023" with "1000" amount and expected disbursement date on "01 January 2023"
When Admin successfully disburse the loan on "01 January 2023" with "1000" EUR transaction amount
When Admin sets the business date to "02 January 2023"
And Customer makes "AUTOPAY" repayment on "02 January 2023" with 250 EUR transaction amount
When Admin sets the business date to "03 January 2023"
And Customer makes "AUTOPAY" repayment on "03 January 2023" with 250 EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "04 January 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "04 January 2023"
And Admin runs COB job
When Admin sets the business date to "05 January 2023"
And Customer makes "AUTOPAY" repayment on "05 January 2023" with 510 EUR transaction amount
Then Loan has 0 outstanding amount
And Admin makes "REPAYMENT_ADJUSTMENT_CHARGEBACK" chargeback with 250 EUR transaction amount for Payment nr. 2
Then Loan has 250 outstanding amount
Then Loan Transactions tab has a transaction with date: "05 January 2023", and with the following data:
| Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
Then LoanAccrualTransactionCreatedBusinessEvent is raised on "05 January 2023"
@TestRailId:C2651
Scenario: Verify that after periodic accrual transaction job accrual event is raised when loan has a fee-charge added with waive charge and undo waive charge
When Admin sets the business date to "01 January 2023"
When Admin creates a client with random data
And Admin successfully creates a new customised Loan submitted on date: "01 January 2023", with Principal: "750", a loanTermFrequency: 3 months, and numberOfRepayments: 3
And Admin successfully approves the loan on "01 January 2023" with "750" amount and expected disbursement date on "01 January 2023"
When Admin successfully disburse the loan on "01 January 2023" with "750" EUR transaction amount
When Admin sets the business date to "01 February 2023"
And Customer makes "AUTOPAY" repayment on "01 February 2023" with 250 EUR transaction amount
When Admin sets the business date to "01 March 2023"
And Customer makes "AUTOPAY" repayment on "01 March 2023" with 250 EUR transaction amount
When Admin sets the business date to "01 April 2023"
And Customer makes "AUTOPAY" repayment on "01 April 2023" with 250 EUR transaction amount
When Customer makes a repayment undo on "01 April 2023"
When Admin sets the business date to "05 April 2023"
And Admin adds an NSF fee because of payment bounce with "05 April 2023" transaction date
When Admin sets the business date to "07 April 2023"
And Admin waives charge
When Admin sets the business date to "08 April 2023"
And Admin makes waive undone for charge
Then Loan status will be "ACTIVE"
Then Loan has 260 outstanding amount
And Admin runs the Add Periodic Accrual Transactions job
Then Loan Transactions tab has a transaction with date: "05 April 2023", and with the following data:
| Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| Accrual | 10.0 | 0.0 | 0.0 | 0.0 | 10.0 | 0.0 |
Then LoanAccrualTransactionCreatedBusinessEvent is raised on "05 April 2023"
@TestRailId:C2652
Scenario: Verify that after periodic accrual transaction job accrual event is raised when loan has a fee-charge added when loan is closed
When Admin sets the business date to "01 January 2023"
When Admin creates a client with random data
When Admin creates a new default Loan with date: "01 January 2023"
And Admin successfully approves the loan on "01 January 2023" with "1000" amount and expected disbursement date on "01 January 2023"
When Admin successfully disburse the loan on "01 January 2023" with "1000" EUR transaction amount
When Admin sets the business date to "02 January 2023"
And Customer makes "AUTOPAY" repayment on "02 January 2023" with 1000 EUR transaction amount
Then Loan status will be "CLOSED_OBLIGATIONS_MET"
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "02 January 2023" due date and 10 EUR transaction amount
And Admin runs the Add Periodic Accrual Transactions job
Then Loan Transactions tab has a transaction with date: "02 January 2023", and with the following data:
| Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
Then LoanAccrualTransactionCreatedBusinessEvent is raised on "02 January 2023"
@TestRailId:C2653
Scenario: Verify that after disbursement and COB job Accrual event is raised when loan has a interest recalculation
When Admin sets the business date to "01 January 2023"
When Admin creates a client with random data
When Admin creates a fully customized loan with the following data:
| LoanProduct | submitted on date | with Principal | ANNUAL interest rate % | interest type | interest calculation period | amortization type | loanTermFrequency | loanTermFrequencyType | repaymentEvery | repaymentFrequencyType | numberOfRepayments | graceOnPrincipalPayment | graceOnInterestPayment | interest free period | Payment strategy |
| PIN30_INTEREST_DECLINING_BALANCE_DAILY_RECALCULATION_COMPOUNDING_NONE | 01 January 2023 | 5000 | 12 | DECLINING_BALANCE | DAILY | EQUAL_INSTALLMENTS | 6 | MONTHS | 1 | MONTHS | 6 | 0 | 0 | 0 | PENALTIES_FEES_INTEREST_PRINCIPAL_ORDER |
And Admin successfully approves the loan on "01 January 2023" with "5000" amount and expected disbursement date on "01 January 2023"
When Admin successfully disburse the loan on "01 January 2023" with "5000" EUR transaction amount
When Admin sets the business date to "02 January 2023"
When Admin runs the Add Periodic Accrual Transactions job
Then Loan Transactions tab has a transaction with date: "02 January 2023", and with the following data:
| Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| Accrual | 1.64 | 0.0 | 1.64 | 0.0 | 0.0 | 0.0 |
Then LoanAccrualTransactionCreatedBusinessEvent is raised on "02 January 2023"
@TestRailId:C2654
Scenario: Verify that after loan is closed accrual event is raised when loan has a interest recalculation
When Admin sets the business date to "01 January 2023"
When Admin creates a client with random data
When Admin creates a fully customized loan with the following data:
| LoanProduct | submitted on date | with Principal | ANNUAL interest rate % | interest type | interest calculation period | amortization type | loanTermFrequency | loanTermFrequencyType | repaymentEvery | repaymentFrequencyType | numberOfRepayments | graceOnPrincipalPayment | graceOnInterestPayment | interest free period | Payment strategy |
| PIN30_INTEREST_DECLINING_BALANCE_DAILY_RECALCULATION_COMPOUNDING_NONE | 01 January 2023 | 1000 | 12 | DECLINING_BALANCE | DAILY | EQUAL_INSTALLMENTS | 1 | MONTHS | 1 | MONTHS | 1 | 0 | 0 | 0 | PENALTIES_FEES_INTEREST_PRINCIPAL_ORDER |
And Admin successfully approves the loan on "01 January 2023" with "1000" amount and expected disbursement date on "01 January 2023"
When Admin successfully disburse the loan on "01 January 2023" with "1000" EUR transaction amount
When Admin sets the business date to "02 January 2023"
And Customer makes "AUTOPAY" repayment on "02 January 2023" with 1010.19 EUR transaction amount
Then Loan status will be "CLOSED_OBLIGATIONS_MET"
Then Loan Transactions tab has a transaction with date: "02 January 2023", and with the following data:
| Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| Accrual | 10.19 | 0.0 | 10.19 | 0.0 | 0.0 | 0.0 |
Then LoanAccrualTransactionCreatedBusinessEvent is raised on "02 January 2023"
@TestRailId:C2683
Scenario: Verify that the final accrual is created when the loan goes to overpaid state
When Admin sets the business date to "1 July 2023"
When Admin creates a client with random data
And Admin successfully creates a new customised Loan submitted on date: "1 July 2023", with Principal: "5000", a loanTermFrequency: 1 months, and numberOfRepayments: 1
And Admin successfully approves the loan on "1 July 2023" with "5000" amount and expected disbursement date on "1 July 2023"
And Admin successfully disburse the loan on "1 July 2023" with "5000" EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "10 July 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "6 July 2023"
And Customer makes "AUTOPAY" repayment on "6 July 2023" with 5011 EUR transaction amount
Then Loan status will be "OVERPAID"
Then Loan Repayment schedule has 1 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 01 July 2023 | | 5000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 31 | 01 August 2023 | 06 July 2023 | 0.0 | 5000.0 | 0.0 | 10.0 | 0.0 | 5010.0 | 5010.0 | 5010.0 | 0.0 | 0.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 5000 | 0 | 10 | 0 | 5010 | 5010 | 5010 | 0 | 0 |
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 01 July 2023 | Disbursement | 5000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 5000.0 |
| 06 July 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
| 06 July 2023 | Repayment | 5011.0 | 5000.0 | 0.0 | 10.0 | 0.0 | 0.0 |
@TestRailId:C2684
Scenario: Verify that the accrual transaction correctly created in case a CBR is applied on the loan
When Admin sets the business date to "1 July 2023"
When Admin creates a client with random data
And Admin successfully creates a new customised Loan submitted on date: "1 July 2023", with Principal: "5000", a loanTermFrequency: 1 months, and numberOfRepayments: 1
And Admin successfully approves the loan on "1 July 2023" with "5000" amount and expected disbursement date on "1 July 2023"
And Admin successfully disburse the loan on "1 July 2023" with "5000" EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "10 July 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "6 July 2023"
And Customer makes "AUTOPAY" repayment on "6 July 2023" with 5011 EUR transaction amount
Then Loan status will be "OVERPAID"
Then Loan Repayment schedule has 1 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 01 July 2023 | | 5000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 31 | 01 August 2023 | 06 July 2023 | 0.0 | 5000.0 | 0.0 | 10.0 | 0.0 | 5010.0 | 5010.0 | 5010.0 | 0.0 | 0.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 5000 | 0 | 10 | 0 | 5010 | 5010 | 5010 | 0 | 0 |
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 01 July 2023 | Disbursement | 5000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 5000.0 |
| 06 July 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
| 06 July 2023 | Repayment | 5011.0 | 5000.0 | 0.0 | 10.0 | 0.0 | 0.0 |
When Admin makes Credit Balance Refund transaction on "06 July 2023" with 1 EUR transaction amount
Then Loan status will be "CLOSED_OBLIGATIONS_MET"
Then Loan Repayment schedule has 1 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 01 July 2023 | | 5000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 31 | 01 August 2023 | 06 July 2023 | 0.0 | 5000.0 | 0.0 | 10.0 | 0.0 | 5010.0 | 5010.0 | 5010.0 | 0.0 | 0.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 5000 | 0 | 10 | 0 | 5010 | 5010 | 5010 | 0 | 0 |
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 01 July 2023 | Disbursement | 5000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 5000.0 |
| 06 July 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
| 06 July 2023 | Repayment | 5011.0 | 5000.0 | 0.0 | 10.0 | 0.0 | 0.0 |
| 06 July 2023 | Credit Balance Refund | 1.0 | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 |
@TestRailId:C2685
Scenario: Verify that the accrual transaction correctly created (overpay, undo repayment, overpay)
When Admin sets the business date to "1 July 2023"
When Admin creates a client with random data
And Admin successfully creates a new customised Loan submitted on date: "1 July 2023", with Principal: "5000", a loanTermFrequency: 1 months, and numberOfRepayments: 1
And Admin successfully approves the loan on "1 July 2023" with "5000" amount and expected disbursement date on "1 July 2023"
And Admin successfully disburse the loan on "1 July 2023" with "5000" EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "10 July 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "5 July 2023"
And Customer makes "AUTOPAY" repayment on "5 July 2023" with 1000 EUR transaction amount
When Admin sets the business date to "6 July 2023"
And Customer makes "AUTOPAY" repayment on "6 July 2023" with 4011 EUR transaction amount
Then Loan status will be "OVERPAID"
Then Loan Repayment schedule has 1 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 01 July 2023 | | 5000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 31 | 01 August 2023 | 06 July 2023 | 0.0 | 5000.0 | 0.0 | 10.0 | 0.0 | 5010.0 | 5010.0 | 5010.0 | 0.0 | 0.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 5000 | 0 | 10 | 0 | 5010 | 5010 | 5010 | 0 | 0 |
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 01 July 2023 | Disbursement | 5000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 5000.0 |
| 05 July 2023 | Repayment | 1000.0 | 990.0 | 0.0 | 10.0 | 0.0 | 4010.0 |
| 06 July 2023 | Repayment | 4011.0 | 4010.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 06 July 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
And Customer makes a repayment undo on "6 July 2023"
Then Loan status will be "ACTIVE"
When Admin sets the business date to "7 July 2023"
And Customer makes "AUTOPAY" repayment on "7 July 2023" with 4011 EUR transaction amount
Then Loan status will be "OVERPAID"
Then Loan Repayment schedule has 1 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 01 July 2023 | | 5000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 31 | 01 August 2023 | 07 July 2023 | 0.0 | 5000.0 | 0.0 | 10.0 | 0.0 | 5010.0 | 5010.0 | 5010.0 | 0.0 | 0.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 5000 | 0 | 10 | 0 | 5010 | 5010 | 5010 | 0 | 0 |
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 01 July 2023 | Disbursement | 5000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 5000.0 |
| 05 July 2023 | Repayment | 1000.0 | 990.0 | 0.0 | 10.0 | 0.0 | 4010.0 |
| 06 July 2023 | Repayment | 4011.0 | 4010.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 06 July 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
| 07 July 2023 | Repayment | 4011.0 | 4010.0 | 0.0 | 0.0 | 0.0 | 0.0 |
@TestRailId:C2686
Scenario: Verify that the accrual transaction correctly created (overpay, undo repayment, add charge, overpay)
When Admin sets the business date to "1 July 2023"
When Admin creates a client with random data
And Admin successfully creates a new customised Loan submitted on date: "1 July 2023", with Principal: "5000", a loanTermFrequency: 1 months, and numberOfRepayments: 1
And Admin successfully approves the loan on "1 July 2023" with "5000" amount and expected disbursement date on "1 July 2023"
And Admin successfully disburse the loan on "1 July 2023" with "5000" EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "10 July 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "5 July 2023"
And Customer makes "AUTOPAY" repayment on "5 July 2023" with 1000 EUR transaction amount
When Admin sets the business date to "6 July 2023"
And Customer makes "AUTOPAY" repayment on "6 July 2023" with 4011 EUR transaction amount
Then Loan status will be "OVERPAID"
Then Loan Repayment schedule has 1 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 01 July 2023 | | 5000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 31 | 01 August 2023 | 06 July 2023 | 0.0 | 5000.0 | 0.0 | 10.0 | 0.0 | 5010.0 | 5010.0 | 5010.0 | 0.0 | 0.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 5000 | 0 | 10 | 0 | 5010 | 5010 | 5010 | 0 | 0 |
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 01 July 2023 | Disbursement | 5000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 5000.0 |
| 05 July 2023 | Repayment | 1000.0 | 990.0 | 0.0 | 10.0 | 0.0 | 4010.0 |
| 06 July 2023 | Repayment | 4011.0 | 4010.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 06 July 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
And Customer makes a repayment undo on "6 July 2023"
Then Loan status will be "ACTIVE"
When Admin sets the business date to "7 July 2023"
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "20 July 2023" due date and 50 EUR transaction amount
And Customer makes "AUTOPAY" repayment on "7 July 2023" with 4061 EUR transaction amount
Then Loan status will be "OVERPAID"
Then Loan Repayment schedule has 1 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 01 July 2023 | | 5000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 31 | 01 August 2023 | 07 July 2023 | 0.0 | 5000.0 | 0.0 | 60.0 | 0.0 | 5060.0 | 5060.0 | 5060.0 | 0.0 | 0.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 5000 | 0 | 60 | 0 | 5060 | 5060 | 5060 | 0 | 0 |
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 01 July 2023 | Disbursement | 5000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 5000.0 |
| 05 July 2023 | Repayment | 1000.0 | 940.0 | 0.0 | 60.0 | 0.0 | 4060.0 |
| 06 July 2023 | Repayment | 4011.0 | 4010.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 06 July 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
| 07 July 2023 | Repayment | 4061.0 | 4060.0 | 0.0 | 0.0 | 0.0 | 0.0 |
| 07 July 2023 | Accrual | 50.0 | 0.0 | 0.0 | 50.0 | 0.0 | 0.0 |
@TestRailId:C2707 @Skip
Scenario: Verify that the accrual transaction is not reversed when multi disbursement happens
When Admin sets the business date to "26 April 2023"
When Admin creates a client with random data
And Admin successfully creates a new customised Loan submitted on date: "26 April 2023", with Principal: "1000", a loanTermFrequency: 1 months, and numberOfRepayments: 1
And Admin successfully approves the loan on "26 April 2023" with "1000" amount and expected disbursement date on "1 May 2023"
And Admin successfully disburse the loan on "26 April 2023" with "1000" EUR transaction amount
Then Loan has 1000 outstanding amount
When Admin sets the business date to "27 April 2023"
And Admin successfully disburse the loan on "27 April 2023" with "30" EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "27 April 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "28 April 2023"
And Admin runs COB job
And Admin successfully disburse the loan on "28 April 2023" with "20" EUR transaction amount
When Admin sets the business date to "29 April 2023"
And Admin runs COB job
Then Loan Repayment schedule has 1 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 26 April 2023 | | 1000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| | | 27 April 2023 | | 30.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| | | 28 April 2023 | | 20.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 30 | 26 May 2023 | | 0.0 | 1050.0 | 0.0 | 10.0 | 0.0 | 1060.0 | 0.0 | 0.0 | 0.0 | 1060.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 1050 | 0 | 10 | 0 | 1060 | 0 | 0 | 0 | 1060 |
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 26 April 2023 | Disbursement | 1000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1000.0 |
| 27 April 2023 | Disbursement | 30.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1030.0 |
| 27 April 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
| 28 April 2023 | Disbursement | 20.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1050.0 |
@TestRailId:C2708 @Skip
Scenario: Verify that the accrual is correct when it is on the installment start date
When Admin sets the business date to "1 May 2023"
When Admin creates a client with random data
And Admin successfully creates a new customised Loan submitted on date: "1 May 2023", with Principal: "1000", a loanTermFrequency: 1 months, and numberOfRepayments: 1
And Admin successfully approves the loan on "1 May 2023" with "1000" amount and expected disbursement date on "1 May 2023"
And Admin successfully disburse the loan on "1 May 2023" with "1000" EUR transaction amount
Then Loan has 1000 outstanding amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "1 May 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "2 May 2023"
And Admin runs COB job
When Admin sets the business date to "8 May 2023"
And Admin successfully disburse the loan on "8 May 2023" with "20" EUR transaction amount
Then Loan Repayment schedule has 1 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 01 May 2023 | | 1000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| | | 08 May 2023 | | 20.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 31 | 01 June 2023 | | 0.0 | 1020.0 | 0.0 | 10.0 | 0.0 | 1030.0 | 0.0 | 0.0 | 0.0 | 1030.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 1020 | 0 | 10 | 0 | 1030 | 0 | 0 | 0 | 1030 |
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 01 May 2023 | Disbursement | 1000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1000.0 |
| 01 May 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
| 08 May 2023 | Disbursement | 20.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1020.0 |
@TestRailId:C2709
Scenario:Verify that the accrual transaction is created for disbursement fee
When Admin sets the business date to "1 May 2023"
When Admin creates a client with random data
And Admin successfully creates a new customised Loan submitted on date: "1 May 2023", with Principal: "1000", a loanTermFrequency: 1 months, and numberOfRepayments: 1
And Admin successfully approves the loan on "1 May 2023" with "1000" amount and expected disbursement date on "1 May 2023"
When Admin adds "LOAN_DISBURSEMENT_PERCENTAGE_FEE" charge with 1 % of transaction amount
And Admin successfully disburse the loan on "1 May 2023" with "1000" EUR transaction amount
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 01 May 2023 | Disbursement | 1000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1000.0 |
| 01 May 2023 | Repayment (at time of disbursement) | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 1000.0 |
| 01 May 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
@TestRailId:C2710 @Specific
Scenario: Verify global config charge-accrual-date function: single installment loan, charge-accrual-date = submitted-date, multiple charges with different submitted date
When Global config "charge-accrual-date" value set to "submitted-date"
When Admin sets the business date to "01 February 2023"
When Admin creates a client with random data
When Admin creates a new default Loan with date: "01 February 2023"
And Admin successfully approves the loan on "01 February 2023" with "1000" amount and expected disbursement date on "1 February 2023"
When Admin successfully disburse the loan on "01 February 2023" with "1000" EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "06 February 2023" due date and 10 EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "16 February 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "02 February 2023"
When Admin runs inline COB job for Loan
Then Loan Charges tab has the following data:
| Name | isPenalty | Payment due at | Due as of | Calculation type | Due | Paid | Waived | Outstanding |
| Snooze fee | false | Specified due date | 06 February 2023 | Flat | 10.0 | 0.0 | 0.0 | 10.0 |
| Snooze fee | false | Specified due date | 16 February 2023 | Flat | 10.0 | 0.0 | 0.0 | 10.0 |
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 01 February 2023 | Disbursement | 1000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1000.0 |
| 01 February 2023 | Accrual | 20.0 | 0.0 | 0.0 | 20.0 | 0.0 | 0.0 |
Then Loan Repayment schedule has 1 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 01 February 2023 | | 1000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 30 | 03 March 2023 | | 0.0 | 1000.0 | 0.0 | 20.0 | 0.0 | 1020.0 | 0.0 | 0.0 | 0.0 | 1020.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 1000 | 0 | 20 | 0 | 1020 | 0 | 0 | 0 | 1020 |
When Global config "charge-accrual-date" value set to "due-date"
@TestRailId:C2711
Scenario: Verify global config charge-accrual-date function: single installment loan, charge-accrual-date = due-date, multiple charges with different submitted date
When Global config "charge-accrual-date" value set to "due-date"
When Admin sets the business date to "01 February 2023"
When Admin creates a client with random data
When Admin creates a new default Loan with date: "01 February 2023"
And Admin successfully approves the loan on "01 February 2023" with "1000" amount and expected disbursement date on "1 February 2023"
When Admin successfully disburse the loan on "01 February 2023" with "1000" EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "06 February 2023" due date and 10 EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "16 February 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "07 February 2023"
When Admin runs inline COB job for Loan
When Admin sets the business date to "17 February 2023"
When Admin runs inline COB job for Loan
Then Loan Charges tab has the following data:
| Name | isPenalty | Payment due at | Due as of | Calculation type | Due | Paid | Waived | Outstanding |
| Snooze fee | false | Specified due date | 06 February 2023 | Flat | 10.0 | 0.0 | 0.0 | 10.0 |
| Snooze fee | false | Specified due date | 16 February 2023 | Flat | 10.0 | 0.0 | 0.0 | 10.0 |
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 01 February 2023 | Disbursement | 1000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1000.0 |
| 06 February 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
| 16 February 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
Then Loan Repayment schedule has 1 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 01 February 2023 | | 1000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 30 | 03 March 2023 | | 0.0 | 1000.0 | 0.0 | 20.0 | 0.0 | 1020.0 | 0.0 | 0.0 | 0.0 | 1020.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 1000 | 0 | 20 | 0 | 1020 | 0 | 0 | 0 | 1020 |
When Global config "charge-accrual-date" value set to "due-date"
@TestRailId:C2712 @Specific
Scenario: Verify global config charge-accrual-date function: multiple installment loan, charge-accrual-date = submitted-date, multiple charges with different submitted date, due dates in same repayment period
When Global config "charge-accrual-date" value set to "submitted-date"
When Admin sets the business date to "01 February 2023"
When Admin creates a client with random data
When Admin creates a fully customized loan with the following data:
| LoanProduct | submitted on date | with Principal | ANNUAL interest rate % | interest type | interest calculation period | amortization type | loanTermFrequency | loanTermFrequencyType | repaymentEvery | repaymentFrequencyType | numberOfRepayments | graceOnPrincipalPayment | graceOnInterestPayment | interest free period | Payment strategy |
| PIN30 | 1 February 2023 | 3000 | 0 | FLAT | SAME_AS_REPAYMENT_PERIOD | EQUAL_INSTALLMENTS | 3 | MONTHS | 1 | MONTHS | 3 | 0 | 0 | 0 | PENALTIES_FEES_INTEREST_PRINCIPAL_ORDER |
And Admin successfully approves the loan on "01 February 2023" with "3000" amount and expected disbursement date on "1 February 2023"
When Admin successfully disburse the loan on "01 February 2023" with "3000" EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "06 February 2023" due date and 10 EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "16 February 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "02 February 2023"
When Admin runs inline COB job for Loan
Then Loan Charges tab has the following data:
| Name | isPenalty | Payment due at | Due as of | Calculation type | Due | Paid | Waived | Outstanding |
| Snooze fee | false | Specified due date | 06 February 2023 | Flat | 10.0 | 0.0 | 0.0 | 10.0 |
| Snooze fee | false | Specified due date | 16 February 2023 | Flat | 10.0 | 0.0 | 0.0 | 10.0 |
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 01 February 2023 | Disbursement | 3000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 3000.0 |
| 01 February 2023 | Accrual | 20.0 | 0.0 | 0.0 | 20.0 | 0.0 | 0.0 |
Then Loan Repayment schedule has 3 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 01 February 2023 | | 3000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 28 | 01 March 2023 | | 2000.0 | 1000.0 | 0.0 | 20.0 | 0.0 | 1020.0 | 0.0 | 0.0 | 0.0 | 1020.0 |
| 2 | 31 | 01 April 2023 | | 1000.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 |
| 3 | 30 | 01 May 2023 | | 0.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 3000 | 0 | 20 | 0 | 3020 | 0 | 0 | 0 | 3020 |
When Global config "charge-accrual-date" value set to "due-date"
@TestRailId:C2713
Scenario: Verify global config charge-accrual-date function: multiple installment loan, charge-accrual-date = due-date, multiple charges with different submitted date, due dates in same repayment period
When Global config "charge-accrual-date" value set to "due-date"
When Admin sets the business date to "01 February 2023"
When Admin creates a client with random data
When Admin creates a fully customized loan with the following data:
| LoanProduct | submitted on date | with Principal | ANNUAL interest rate % | interest type | interest calculation period | amortization type | loanTermFrequency | loanTermFrequencyType | repaymentEvery | repaymentFrequencyType | numberOfRepayments | graceOnPrincipalPayment | graceOnInterestPayment | interest free period | Payment strategy |
| PIN30 | 1 February 2023 | 3000 | 0 | FLAT | SAME_AS_REPAYMENT_PERIOD | EQUAL_INSTALLMENTS | 3 | MONTHS | 1 | MONTHS | 3 | 0 | 0 | 0 | PENALTIES_FEES_INTEREST_PRINCIPAL_ORDER |
And Admin successfully approves the loan on "01 February 2023" with "3000" amount and expected disbursement date on "1 February 2023"
When Admin successfully disburse the loan on "01 February 2023" with "3000" EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "06 February 2023" due date and 10 EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "16 February 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "07 February 2023"
When Admin runs inline COB job for Loan
When Admin sets the business date to "17 February 2023"
When Admin runs inline COB job for Loan
Then Loan Charges tab has the following data:
| Name | isPenalty | Payment due at | Due as of | Calculation type | Due | Paid | Waived | Outstanding |
| Snooze fee | false | Specified due date | 06 February 2023 | Flat | 10.0 | 0.0 | 0.0 | 10.0 |
| Snooze fee | false | Specified due date | 16 February 2023 | Flat | 10.0 | 0.0 | 0.0 | 10.0 |
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 01 February 2023 | Disbursement | 3000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 3000.0 |
| 06 February 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
| 16 February 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
Then Loan Repayment schedule has 3 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 01 February 2023 | | 3000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 28 | 01 March 2023 | | 2000.0 | 1000.0 | 0.0 | 20.0 | 0.0 | 1020.0 | 0.0 | 0.0 | 0.0 | 1020.0 |
| 2 | 31 | 01 April 2023 | | 1000.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 |
| 3 | 30 | 01 May 2023 | | 0.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 3000 | 0 | 20 | 0 | 3020 | 0 | 0 | 0 | 3020 |
When Global config "charge-accrual-date" value set to "due-date"
@TestRailId:C2714 @Specific
Scenario: Verify global config charge-accrual-date function: multiple installment loan, charge-accrual-date = submitted-date, multiple charges with different submitted date, due dates in different repayment periods
When Global config "charge-accrual-date" value set to "submitted-date"
When Admin sets the business date to "01 February 2023"
When Admin creates a client with random data
When Admin creates a fully customized loan with the following data:
| LoanProduct | submitted on date | with Principal | ANNUAL interest rate % | interest type | interest calculation period | amortization type | loanTermFrequency | loanTermFrequencyType | repaymentEvery | repaymentFrequencyType | numberOfRepayments | graceOnPrincipalPayment | graceOnInterestPayment | interest free period | Payment strategy |
| PIN30 | 1 February 2023 | 3000 | 0 | FLAT | SAME_AS_REPAYMENT_PERIOD | EQUAL_INSTALLMENTS | 3 | MONTHS | 1 | MONTHS | 3 | 0 | 0 | 0 | PENALTIES_FEES_INTEREST_PRINCIPAL_ORDER |
And Admin successfully approves the loan on "01 February 2023" with "3000" amount and expected disbursement date on "1 February 2023"
When Admin successfully disburse the loan on "01 February 2023" with "3000" EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "06 February 2023" due date and 10 EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "06 March 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "02 February 2023"
When Admin runs inline COB job for Loan
Then Loan Charges tab has the following data:
| Name | isPenalty | Payment due at | Due as of | Calculation type | Due | Paid | Waived | Outstanding |
| Snooze fee | false | Specified due date | 06 February 2023 | Flat | 10.0 | 0.0 | 0.0 | 10.0 |
| Snooze fee | false | Specified due date | 06 March 2023 | Flat | 10.0 | 0.0 | 0.0 | 10.0 |
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 01 February 2023 | Disbursement | 3000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 3000.0 |
| 01 February 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
| 01 February 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
Then Loan Repayment schedule has 3 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 01 February 2023 | | 3000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 28 | 01 March 2023 | | 2000.0 | 1000.0 | 0.0 | 10.0 | 0.0 | 1010.0 | 0.0 | 0.0 | 0.0 | 1010.0 |
| 2 | 31 | 01 April 2023 | | 1000.0 | 1000.0 | 0.0 | 10.0 | 0.0 | 1010.0 | 0.0 | 0.0 | 0.0 | 1010.0 |
| 3 | 30 | 01 May 2023 | | 0.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 3000 | 0 | 20 | 0 | 3020 | 0 | 0 | 0 | 3020 |
When Global config "charge-accrual-date" value set to "due-date"
@TestRailId:C2715
Scenario: Verify global config charge-accrual-date function: multiple installment loan, charge-accrual-date = due-date, multiple charges with different submitted date, due dates in different repayment periods
When Global config "charge-accrual-date" value set to "due-date"
When Admin sets the business date to "01 February 2023"
When Admin creates a client with random data
When Admin creates a fully customized loan with the following data:
| LoanProduct | submitted on date | with Principal | ANNUAL interest rate % | interest type | interest calculation period | amortization type | loanTermFrequency | loanTermFrequencyType | repaymentEvery | repaymentFrequencyType | numberOfRepayments | graceOnPrincipalPayment | graceOnInterestPayment | interest free period | Payment strategy |
| PIN30 | 1 February 2023 | 3000 | 0 | FLAT | SAME_AS_REPAYMENT_PERIOD | EQUAL_INSTALLMENTS | 3 | MONTHS | 1 | MONTHS | 3 | 0 | 0 | 0 | PENALTIES_FEES_INTEREST_PRINCIPAL_ORDER |
And Admin successfully approves the loan on "01 February 2023" with "3000" amount and expected disbursement date on "1 February 2023"
When Admin successfully disburse the loan on "01 February 2023" with "3000" EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "06 February 2023" due date and 10 EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "06 March 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "07 February 2023"
When Admin runs inline COB job for Loan
When Admin sets the business date to "07 March 2023"
When Admin runs inline COB job for Loan
Then Loan Charges tab has the following data:
| Name | isPenalty | Payment due at | Due as of | Calculation type | Due | Paid | Waived | Outstanding |
| Snooze fee | false | Specified due date | 06 February 2023 | Flat | 10.0 | 0.0 | 0.0 | 10.0 |
| Snooze fee | false | Specified due date | 06 March 2023 | Flat | 10.0 | 0.0 | 0.0 | 10.0 |
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 01 February 2023 | Disbursement | 3000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 3000.0 |
| 06 February 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
| 06 March 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
Then Loan Repayment schedule has 3 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 01 February 2023 | | 3000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 28 | 01 March 2023 | | 2000.0 | 1000.0 | 0.0 | 10.0 | 0.0 | 1010.0 | 0.0 | 0.0 | 0.0 | 1010.0 |
| 2 | 31 | 01 April 2023 | | 1000.0 | 1000.0 | 0.0 | 10.0 | 0.0 | 1010.0 | 0.0 | 0.0 | 0.0 | 1010.0 |
| 3 | 30 | 01 May 2023 | | 0.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 3000 | 0 | 20 | 0 | 3020 | 0 | 0 | 0 | 3020 |
When Global config "charge-accrual-date" value set to "due-date"
@TestRailId:C2716 @Specific
Scenario: Verify global config charge-accrual-date function: single installment loan, charge-accrual-date = submitted-date, multi disbursement
When Global config "charge-accrual-date" value set to "submitted-date"
When Admin sets the business date to "01 February 2023"
When Admin creates a client with random data
When Admin creates a new default Loan with date: "01 February 2023"
And Admin successfully approves the loan on "01 February 2023" with "1000" amount and expected disbursement date on "1 February 2023"
When Admin successfully disburse the loan on "01 February 2023" with "500" EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "06 February 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "02 February 2023"
When Admin runs inline COB job for Loan
When Admin sets the business date to "04 February 2023"
When Admin successfully disburse the loan on "04 February 2023" with "500" EUR transaction amount
When Admin runs inline COB job for Loan
Then Loan Charges tab has the following data:
| Name | isPenalty | Payment due at | Due as of | Calculation type | Due | Paid | Waived | Outstanding |
| Snooze fee | false | Specified due date | 06 February 2023 | Flat | 10.0 | 0.0 | 0.0 | 10.0 |
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 01 February 2023 | Disbursement | 500.0 | 0.0 | 0.0 | 0.0 | 0.0 | 500.0 |
| 01 February 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
| 04 February 2023 | Disbursement | 500.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1000.0 |
Then Loan Repayment schedule has 1 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 04 February 2023 | | 500.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| | | 01 February 2023 | | 500.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 30 | 03 March 2023 | | 0.0 | 1000.0 | 0.0 | 10.0 | 0.0 | 1010.0 | 0.0 | 0.0 | 0.0 | 1010.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 1000 | 0 | 10 | 0 | 1010 | 0 | 0 | 0 | 1010 |
When Global config "charge-accrual-date" value set to "due-date"
@TestRailId:C2717 @Specific
Scenario: Verify global config charge-accrual-date function: single installment loan, charge-accrual-date = submitted-date, repayment reversal
When Global config "charge-accrual-date" value set to "submitted-date"
When Admin sets the business date to "01 February 2023"
When Admin creates a client with random data
When Admin creates a new default Loan with date: "01 February 2023"
And Admin successfully approves the loan on "01 February 2023" with "1000" amount and expected disbursement date on "1 February 2023"
When Admin successfully disburse the loan on "01 February 2023" with "1000" EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "06 February 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "02 February 2023"
When Admin runs inline COB job for Loan
When Admin sets the business date to "04 February 2023"
And Customer makes "AUTOPAY" repayment on "04 February 2023" with 500 EUR transaction amount
When Admin runs inline COB job for Loan
When Admin sets the business date to "05 February 2023"
When Customer undo "1"th "Repayment" transaction made on "04 February 2023"
When Admin runs inline COB job for Loan
When Admin sets the business date to "06 February 2023"
When Admin runs inline COB job for Loan
Then Loan Charges tab has the following data:
| Name | isPenalty | Payment due at | Due as of | Calculation type | Due | Paid | Waived | Outstanding |
| Snooze fee | false | Specified due date | 06 February 2023 | Flat | 10.0 | 0.0 | 0.0 | 10.0 |
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 01 February 2023 | Disbursement | 1000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1000.0 |
| 01 February 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
| 04 February 2023 | Repayment | 500.0 | 490.0 | 0.0 | 10.0 | 0.0 | 510.0 |
Then On Loan Transactions tab the "Repayment" Transaction with date "04 February 2023" is reverted
Then Loan Repayment schedule has 1 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 01 February 2023 | | 1000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 30 | 03 March 2023 | | 0.0 | 1000.0 | 0.0 | 10.0 | 0.0 | 1010.0 | 0.0 | 0.0 | 0.0 | 1010.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 1000 | 0 | 10 | 0 | 1010 | 0 | 0 | 0 | 1010 |
When Global config "charge-accrual-date" value set to "due-date"
@TestRailId:C2718 @Specific
Scenario: Verify global config charge-accrual-date function: single installment loan, charge-accrual-date = submitted-date, waive charge, undo waive
When Global config "charge-accrual-date" value set to "submitted-date"
When Admin sets the business date to "01 February 2023"
When Admin creates a client with random data
When Admin creates a new default Loan with date: "01 February 2023"
And Admin successfully approves the loan on "01 February 2023" with "1000" amount and expected disbursement date on "1 February 2023"
When Admin successfully disburse the loan on "01 February 2023" with "1000" EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "06 February 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "02 February 2023"
When Admin runs inline COB job for Loan
When Admin sets the business date to "04 February 2023"
And Admin waives due date charge
When Admin runs inline COB job for Loan
When Admin sets the business date to "05 February 2023"
And Admin makes waive undone for charge
When Admin runs inline COB job for Loan
When Admin sets the business date to "06 February 2023"
When Admin runs inline COB job for Loan
Then Loan Charges tab has the following data:
| Name | isPenalty | Payment due at | Due as of | Calculation type | Due | Paid | Waived | Outstanding |
| Snooze fee | false | Specified due date | 06 February 2023 | Flat | 10.0 | 0.0 | 0.0 | 10.0 |
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 01 February 2023 | Disbursement | 1000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 1000.0 |
| 01 February 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
| 04 February 2023 | Waive loan charges | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 1000.0 |
Then On Loan Transactions tab the "Waive loan charges" Transaction with date "04 February 2023" is reverted
Then Loan Repayment schedule has 1 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 01 February 2023 | | 1000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 30 | 03 March 2023 | | 0.0 | 1000.0 | 0.0 | 10.0 | 0.0 | 1010.0 | 0.0 | 0.0 | 0.0 | 1010.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 1000 | 0 | 10 | 0 | 1010 | 0 | 0 | 0 | 1010 |
When Global config "charge-accrual-date" value set to "due-date"
@TestRailId:C2719 @Specific
Scenario: Verify global config charge-accrual-date function: multiple installment loan, charge-accrual-date = submitted-date, multi disbursement
When Global config "charge-accrual-date" value set to "submitted-date"
When Admin sets the business date to "01 February 2023"
When Admin creates a client with random data
When Admin creates a fully customized loan with the following data:
| LoanProduct | submitted on date | with Principal | ANNUAL interest rate % | interest type | interest calculation period | amortization type | loanTermFrequency | loanTermFrequencyType | repaymentEvery | repaymentFrequencyType | numberOfRepayments | graceOnPrincipalPayment | graceOnInterestPayment | interest free period | Payment strategy |
| PIN30 | 1 February 2023 | 3000 | 0 | FLAT | SAME_AS_REPAYMENT_PERIOD | EQUAL_INSTALLMENTS | 3 | MONTHS | 1 | MONTHS | 3 | 0 | 0 | 0 | PENALTIES_FEES_INTEREST_PRINCIPAL_ORDER |
And Admin successfully approves the loan on "01 February 2023" with "3000" amount and expected disbursement date on "1 February 2023"
When Admin successfully disburse the loan on "01 February 2023" with "2000" EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "06 March 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "02 February 2023"
When Admin runs inline COB job for Loan
When Admin sets the business date to "04 February 2023"
When Admin successfully disburse the loan on "04 February 2023" with "1000" EUR transaction amount
When Admin runs inline COB job for Loan
Then Loan Charges tab has the following data:
| Name | isPenalty | Payment due at | Due as of | Calculation type | Due | Paid | Waived | Outstanding |
| Snooze fee | false | Specified due date | 06 March 2023 | Flat | 10.0 | 0.0 | 0.0 | 10.0 |
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 01 February 2023 | Disbursement | 2000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 2000.0 |
| 01 February 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
| 04 February 2023 | Disbursement | 1000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 3000.0 |
Then Loan Repayment schedule has 3 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 01 February 2023 | | 2000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| | | 04 February 2023 | | 1000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 28 | 01 March 2023 | | 2000.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 |
| 2 | 31 | 01 April 2023 | | 1000.0 | 1000.0 | 0.0 | 10.0 | 0.0 | 1010.0 | 0.0 | 0.0 | 0.0 | 1010.0 |
| 3 | 30 | 01 May 2023 | | 0.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 3000 | 0 | 10 | 0 | 3010 | 0 | 0 | 0 | 3010 |
When Global config "charge-accrual-date" value set to "due-date"
@TestRailId:C2720 @Specific
Scenario: Verify global config charge-accrual-date function: multiple installment loan, charge-accrual-date = submitted-date, repayment reversal
When Global config "charge-accrual-date" value set to "submitted-date"
When Admin sets the business date to "01 February 2023"
When Admin creates a client with random data
When Admin creates a fully customized loan with the following data:
| LoanProduct | submitted on date | with Principal | ANNUAL interest rate % | interest type | interest calculation period | amortization type | loanTermFrequency | loanTermFrequencyType | repaymentEvery | repaymentFrequencyType | numberOfRepayments | graceOnPrincipalPayment | graceOnInterestPayment | interest free period | Payment strategy |
| PIN30 | 1 February 2023 | 3000 | 0 | FLAT | SAME_AS_REPAYMENT_PERIOD | EQUAL_INSTALLMENTS | 3 | MONTHS | 1 | MONTHS | 3 | 0 | 0 | 0 | PENALTIES_FEES_INTEREST_PRINCIPAL_ORDER |
And Admin successfully approves the loan on "01 February 2023" with "3000" amount and expected disbursement date on "1 February 2023"
When Admin successfully disburse the loan on "01 February 2023" with "3000" EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "06 March 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "02 February 2023"
When Admin runs inline COB job for Loan
When Admin sets the business date to "04 February 2023"
And Customer makes "AUTOPAY" repayment on "04 February 2023" with 500 EUR transaction amount
When Admin runs inline COB job for Loan
When Admin sets the business date to "05 February 2023"
When Customer undo "1"th "Repayment" transaction made on "04 February 2023"
When Admin runs inline COB job for Loan
When Admin sets the business date to "06 February 2023"
When Admin runs inline COB job for Loan
Then Loan Charges tab has the following data:
| Name | isPenalty | Payment due at | Due as of | Calculation type | Due | Paid | Waived | Outstanding |
| Snooze fee | false | Specified due date | 06 March 2023 | Flat | 10.0 | 0.0 | 0.0 | 10.0 |
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 01 February 2023 | Disbursement | 3000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 3000.0 |
| 01 February 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
| 04 February 2023 | Repayment | 500.0 | 500.0 | 0.0 | 0.0 | 0.0 | 2500.0 |
Then On Loan Transactions tab the "Repayment" Transaction with date "04 February 2023" is reverted
Then Loan Repayment schedule has 3 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 01 February 2023 | | 3000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 28 | 01 March 2023 | | 2000.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 |
| 2 | 31 | 01 April 2023 | | 1000.0 | 1000.0 | 0.0 | 10.0 | 0.0 | 1010.0 | 0.0 | 0.0 | 0.0 | 1010.0 |
| 3 | 30 | 01 May 2023 | | 0.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 3000 | 0 | 10 | 0 | 3010 | 0 | 0 | 0 | 3010 |
When Global config "charge-accrual-date" value set to "due-date"
@TestRailId:C2721 @Specific
Scenario: Verify global config charge-accrual-date function: multiple installment loan, charge-accrual-date = submitted-date, waive charge, undo waive
When Global config "charge-accrual-date" value set to "submitted-date"
When Admin sets the business date to "01 February 2023"
When Admin creates a client with random data
When Admin creates a fully customized loan with the following data:
| LoanProduct | submitted on date | with Principal | ANNUAL interest rate % | interest type | interest calculation period | amortization type | loanTermFrequency | loanTermFrequencyType | repaymentEvery | repaymentFrequencyType | numberOfRepayments | graceOnPrincipalPayment | graceOnInterestPayment | interest free period | Payment strategy |
| PIN30 | 1 February 2023 | 3000 | 0 | FLAT | SAME_AS_REPAYMENT_PERIOD | EQUAL_INSTALLMENTS | 3 | MONTHS | 1 | MONTHS | 3 | 0 | 0 | 0 | PENALTIES_FEES_INTEREST_PRINCIPAL_ORDER |
And Admin successfully approves the loan on "01 February 2023" with "3000" amount and expected disbursement date on "1 February 2023"
When Admin successfully disburse the loan on "01 February 2023" with "3000" EUR transaction amount
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "06 March 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "02 February 2023"
When Admin runs inline COB job for Loan
When Admin sets the business date to "04 February 2023"
And Admin waives due date charge
When Admin runs inline COB job for Loan
When Admin sets the business date to "05 February 2023"
And Admin makes waive undone for charge
When Admin runs inline COB job for Loan
When Admin sets the business date to "06 February 2023"
When Admin runs inline COB job for Loan
Then Loan Charges tab has the following data:
| Name | isPenalty | Payment due at | Due as of | Calculation type | Due | Paid | Waived | Outstanding |
| Snooze fee | false | Specified due date | 06 March 2023 | Flat | 10.0 | 0.0 | 0.0 | 10.0 |
Then Loan Transactions tab has the following data:
| Transaction date | Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| 01 February 2023 | Disbursement | 3000.0 | 0.0 | 0.0 | 0.0 | 0.0 | 3000.0 |
| 01 February 2023 | Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
| 04 February 2023 | Waive loan charges | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 3000.0 |
Then On Loan Transactions tab the "Waive loan charges" Transaction with date "04 February 2023" is reverted
Then Loan Repayment schedule has 3 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 01 February 2023 | | 3000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 28 | 01 March 2023 | | 2000.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 |
| 2 | 31 | 01 April 2023 | | 1000.0 | 1000.0 | 0.0 | 10.0 | 0.0 | 1010.0 | 0.0 | 0.0 | 0.0 | 1010.0 |
| 3 | 30 | 01 May 2023 | | 0.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 | 0.0 | 0.0 | 0.0 | 1000.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 3000 | 0 | 10 | 0 | 3010 | 0 | 0 | 0 | 3010 |
When Global config "charge-accrual-date" value set to "due-date"
@TestRailId:C2789 @Specific
Scenario: Verify accrual transaction for new fee for loan with accrued snooze fee and schedule adjustment
When Global config "charge-accrual-date" value set to "submitted-date"
When Admin sets the business date to "19 May 2023"
When Admin creates a client with random data
When Admin creates a fully customized loan with the following data:
| LoanProduct | submitted on date | with Principal | ANNUAL interest rate % | interest type | interest calculation period | amortization type | loanTermFrequency | loanTermFrequencyType | repaymentEvery | repaymentFrequencyType | numberOfRepayments | graceOnPrincipalPayment | graceOnInterestPayment | interest free period | Payment strategy |
| PIN30 | 19 May 2023 | 1000 | 0 | FLAT | SAME_AS_REPAYMENT_PERIOD | EQUAL_INSTALLMENTS | 30 | DAYS | 30 | DAYS | 1 | 0 | 0 | 0 | PENALTIES_FEES_INTEREST_PRINCIPAL_ORDER |
And Admin successfully approves the loan on "19 May 2023" with "1000" amount and expected disbursement date on "19 May 2023"
When Admin successfully disburse the loan on "19 May 2023" with "1000" EUR transaction amount
When Admin sets the business date to "12 June 2023"
When Admin adds "LOAN_SNOOZE_FEE" due date charge with "18 July 2023" due date and 10 EUR transaction amount
When Batch API call with steps: rescheduleLoan from "18 June 2023" to "18 July 2023" submitted on date: "19 May 2023", approveReschedule on date: "19 May 2023" runs with enclosingTransaction: "true"
When Admin sets the business date to "13 June 2023"
When Admin runs inline COB job for Loan
Then Loan Transactions tab has a transaction with date: "12 June 2023", and with the following data:
| Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| Accrual | 10.0 | 0.0 | 0.0 | 10.0 | 0.0 | 0.0 |
When Admin sets the business date to "18 July 2023"
And Customer makes "AUTOPAY" repayment on "18 July 2023" with 1010 EUR transaction amount
When Admin sets the business date to "19 July 2023"
When Customer makes a repayment undo on "19 July 2023"
When Admin adds "LOAN_NSF_FEE" due date charge with "19 July 2023" due date and 10 EUR transaction amount
When Admin sets the business date to "20 July 2023"
When Admin runs inline COB job for Loan
Then Loan Transactions tab has a transaction with date: "19 July 2023", and with the following data:
| Transaction Type | Amount | Principal | Interest | Fees | Penalties | Loan Balance |
| Accrual | 10.0 | 0.0 | 0.0 | 0.0 | 10.0 | 0.0 |
Then Loan Repayment schedule has 2 periods, with the following data for periods:
| Nr | Days | Date | Paid date | Balance of loan | Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| | | 19 May 2023 | | 1000.0 | | | 0.0 | | 0.0 | 0.0 | | | |
| 1 | 60 | 18 July 2023 | | 0.0 | 1000.0 | 0.0 | 10.0 | 0.0 | 1010.0 | 0.0 | 0.0 | 0.0 | 1010.0 |
| 2 | 1 | 19 July 2023 | | 0.0 | 0.0 | 0.0 | 0.0 | 10.0 | 10.0 | 0.0 | 0.0 | 0.0 | 10.0 |
Then Loan Repayment schedule has the following data in Total row:
| Principal due | Interest | Fees | Penalties | Due | Paid | In advance | Late | Outstanding |
| 1000 | 0 | 10 | 10 | 1020 | 0 | 0 | 0 | 1020 |
When Global config "charge-accrual-date" value set to "due-date"