Task #17534
openTask #19100: Sprint Planning for 17/11/2025 - 28/11/2025
Credit Note - Implement Partial Credit Notes for Specific Invoice Charges
50%
Description
The freight forwarder should be able to issue partial credit notes for individual charges listed in an invoice, so that he/she can accurately adjust or correct specific billing items without affecting the entire invoice.
Pre-requisite:
- The invoice targeted for the partial credit must be of the type "Standard invoice", which has been paid fully, partly or unpaid.
The invoice should not be in status "Cancelled".
Acceptance Criteria:
- Initiate Credit Note Creation:
· Click on the "Create Credit Note" button.
· The user gets a list of issued invoices to select the specific invoice for which a credit note will be issued.
- Invoice List Details:
· The invoice list should display the following columns for each invoice:
-
Invoice Number
-
Customer Name
-
Invoice Date
-
Due Date
-
Total Amount
-
Outstanding Balance
-
Status (e.g., Paid, Unpaid, Overdue)
3. Select an Invoice:
· The system should allow the user to search for a particular invoice by:
- Invoice ref
- Customer name
- Invoice date (date range)
- Status (e.g., Paid, Unpaid, Overdue)
· The system should allow the user to select the specific invoice that requires a partial credit adjustment.
- Display Invoice Details:
· Upon initiating the credit note creation, the system should display:
- Invoice Header Information: Customer details, invoice date, due date, etc.
- Itemised List of Charges: Each charge should include:
- Charge Code
- Description
- Currency
- Amount Excl. Vat
- Vat
- Discount Value
- Exchange Rate
- Select Charges for Credit:
· The system should allow the user to select one or multiple specific charges from the itemised list to apply the partial credit.
- Specify Credit Amounts:
· For each selected charge, enable the user to input the exact amount to be credited, which can be less than or equal to the original charge amount.
· The system should validate the credit note details to ensure the credit note amount does not exceed the original charge amount. If discrepancies are found (e.g., over-crediting), the system should prevent saving and warn the user for adjustments.
- Provide Reason for Credit:
· The system should include a mandatory field for the user to specify the reason for issuing the partial credit (e.g., billing error).
- Review and Confirm:
· The system should present a summary of the credit note details, including:
- Remaining Balances for Each Charge
- Total Credit Amount
· The system should provide options to Save or Cancel the credit note creation.
- Approval Process:
· If necessary, the system shall allow credit notes to be approved by a supervisor before finalisation.
· The user shall receive a notification once the credit note is approved or rejected by the supervisor.
- Credit Note Status Tracking:
· The system shall enable users to track the status of each credit note by displaying a list of all Credit notes created. Display columns will be as below:
- Credit Note Reference
- Invoice Reference
- Client
- Total Invoice Amount
- Total Credit Note Amount
- Date Created
A sample is provided.
{width="452" height="100"}
· The system should allow users to be able to search by CRN reference, invoice reference, client name, and enter a date range.
- Generate Partial Credit Note:
· Upon confirmation, the system should generate a Credit Note Document with a unique reference number. Refer to the attached sample.
- Notification:
· The system shall allow the user to send notifications about the issuance of the partial credit note via email to the recipient(s) and CC as specified.
- Credit note after payment is made:
· The system should enable users to create a credit note after a payment has been completed. This functionality ensures that users can efficiently manage and rectify any discrepancies, refunds or adjustments needed.
· The user will follow the same steps, 1 to 12, as above.
· If necessary, the system should allow credit notes to be approved by a supervisor before finalisation.
· The user should receive a notification once the credit note is approved or rejected by the supervisor.
· Issue Credit Note and Refund – for a non-returning customer, issue a Credit Note, Approval and then send a refund request to the Account Dept.
· Issue a Credit Note and deduct it in the next invoice or payment – for a returning customer, no need to refund; deduct in the next Payment. In the Credit Note PDF, add a clause to inform that amount will be deducted in the next payment.
- Refund Processing:
· If the credit note is issued for a refund, the system shall generate a Refund Request PDF document. This is similar to the payment request PDF available here https://gitlab.maccs.mu/-/project/30/uploads/d6c1cbdb9d4056f503f7cecc1b29561d/image.png, however, here we will display client information instead of supplier information.
· The system should allow the user to send notifications about the refund request, attaching the Refund Request PDF to the finance team via email to the recipient(s) and CC as specified.
- Maintain Audit Trail:
· The system shall log all actions related to the credit note creation, including user details, timestamps, and reasons for the credit, to ensure transparency and accountability.
GitLab Sync Log
[{"id": "33802", "author": "Vishesh Jodhoa", "hours": 4.0, "created": "2025-11-13T07:36:31.071Z", "log_date": "2025-11-12", "comment": "Imported from GitLab by @Vishesh Jodhoa on 2025-11-13T07:36:31.071Z: 4h-(4.0)h spend at: 2025-11-12", "status": "active", "deleted_by": "", "redmine_entry_id": 11215}, {"id": "33801", "author": "Vishesh Jodhoa", "hours": 8.0, "created": "2025-11-13T07:36:15.897Z", "log_date": "2025-11-11", "comment": "Imported from GitLab by @Vishesh Jodhoa on 2025-11-13T07:36:15.897Z: 1d-(8.0)h spend at: 2025-11-11", "status": "active", "deleted_by": "", "redmine_entry_id": 11216}, {"id": "33800", "author": "Vishesh Jodhoa", "hours": 8.0, "created": "2025-11-13T07:35:58.395Z", "log_date": "2025-11-10", "comment": "Imported from GitLab by @Vishesh Jodhoa on 2025-11-13T07:35:58.395Z: 1d-(8.0)h spend at: 2025-11-10", "status": "active", "deleted_by": "", "redmine_entry_id": 11217}, {"id": "33799", "author": "Vishesh Jodhoa", "hours": 8.0, "created": "2025-11-13T07:35:47.944Z", "log_date": "2025-11-09", "comment": "Imported from GitLab by @Vishesh Jodhoa on 2025-11-13T07:35:47.944Z: 1d-(8.0)h spend at: 2025-11-09", "status": "active", "deleted_by": "", "redmine_entry_id": 11218}, {"id": "34237", "author": "Vishesh Jodhoa", "hours": 2.0, "created": "2025-11-20T07:19:22.327Z", "log_date": "2025-11-20", "comment": "Imported from GitLab by @Vishesh Jodhoa on 2025-11-20T07:19:22.327Z: 2h-(2.0)h spend at: 2025-11-20", "status": "active", "deleted_by": "", "redmine_entry_id": 11322}, {"id": "35005", "author": "Avisham", "hours": 2.0, "created": "2025-12-05T06:12:25.550Z", "log_date": "2025-12-03", "comment": "Imported from GitLab by @Avisham on 2025-12-05T06:12:25.550Z: 2h-(2.0)h spend at: 2025-12-03", "status": "active", "deleted_by": "", "redmine_entry_id": 11569}]