Task #17549
closedTask #16330: Ocean Sprint Planning for 07/04/2025 - 18/04/2025
User Story - Invoice Module
Description
The Freight forwarder should be able to issue / generate invoices after completion / Approval of a house bill of lading information by a supervisor / manager. However, there are different types of invoices namely: ‘Draft’, ‘Proforma’ and ‘Standard’. These should be generated based on different criteria.
Pre-Requisite:
The file reference should be created with Master B/L and or House B/L information.
Acceptance Criteria:
1. The system should allow creation, update, and deletion (Applicable as per roles) of an Invoice.
- Allow cancellation of invoice with remarks.
- The user should be able to generate invoices in (a) Draft (b) Proforma (c) Standard.
- User should be able to generate a Draft invoice at any time after the creation of the file reference.
- Proforma invoice should be generated at any stage after the creation of the file reference.
- Standard invoice should be created only when the status of the House bill of lading is ‘Approved’ by a supervisor / manager.
- Invoice generation must support multiple currencies with exchange rate management.
- Sending of invoices directly via the system to the end users.
- The system must allow sending of invoices directly via email to clients with PDF attachments.
- Selection of Banks
- Display different Bill of Lading details and charges having a grand total.
- The system must allow issuing separate invoices in case of disbursement charges.
14. The system must allow modification, deletion, or cancellation of invoices (based on user roles).
15. The system must support PDF generation, company branding, and invoice download.
- To classify (Ocean Import), (Air Import), (Ocean Export), (Air Export)
Description:
When accessing the main page of the Invoice Module, the user should see a dashboard or table of existing invoices with filtering options**.**
Invoice Table Display:
|
Reference |
Client |
Type |
Invoice Date |
Due Date |
Currency |
Status |
Created By |
Modified By |
HBL Ref |
Total |
| MCL25INV02005 | CAT | Standard | 28/02/2025 |
- |
MUR | Sent | Nirvashi | Nirvashi | HBL2802 | 373.75 |
Invoice Status:
- Draft
- Sent
- Paid
- Cancelled
Actions Available:
- Create Invoice
- Send Invoice (email)
- Mark as Paid
- Cancel Invoice
- Download PDF
- View Activity Log
- Generate Disbursement Invoice
- Create Recurring Setup
Invoice Creation Form:
Client Details:
- Select existing client (from client maintenance list)
- Company / Individual toggle
- Company Name or First/Last Name
- VAT Exempt (Yes/No)
- BRN, VAT, TAN, NIC/Passport
- Email, Phone
- Address (1, 2, 3)
Invoice Information:
- Invoice Type: Draft / Proforma / Standard
- Invoice Reference auto-generated (e.g. MCL25INV02005)
- Invoice Date, Due Date
- Currency, Exchange Rate
- Remarks
- Bank Details (Dropdown or manual entry)
Linked Shipment Details:
- Select House B/L
- Display:
Ø HBL Reference (e.g. HBL2802)
Ø Vessel Name, Voyage No.
Ø ETD, ETA
Ø Origin, Destination
Ø Cargo Description, Weight, Volume, No. of Packages
Charges Section:
| Description | Type | Currency | VAT % | VAT Excl. | VAT Amt | Total |
| MACCS Fee | Prepaid | MUR | 15% | 325.00 | 48.75 | 373.75 |
- Add/Edit/Delete charges
- Auto-calculate subtotals, VAT, and grand total
Disbursement Invoice:
- Option/Toggle to issue separate disbursement invoice for specific charges
Recurring Invoice:
- Option to configure recurrence (Yes/No)
- Frequency: Weekly, Monthly, etc.
- Next Invoice Generation Date
GitLab Sync Log
[{"id": "22270", "author": "Nihaal Ramfoll", "hours": 1.0, "created": "2025-04-28T10:27:31.201Z", "log_date": "2025-04-28", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2025-04-28T10:27:31.201Z: 1h-(1.0)h spend at: 2025-04-28", "status": "active", "deleted_by": "", "redmine_entry_id": 8898}, {"id": "21171", "author": "Nihaal Ramfoll", "hours": 4.0, "created": "2025-04-17T07:58:44.999Z", "log_date": "2025-04-14", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2025-04-17T07:58:44.999Z: 4h-(4.0)h spend at: 2025-04-14", "status": "active", "deleted_by": "", "redmine_entry_id": 8899}, {"id": "21170", "author": "Nihaal Ramfoll", "hours": 4.0, "created": "2025-04-17T07:58:28.748Z", "log_date": "2025-04-15", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2025-04-17T07:58:28.748Z: 4h-(4.0)h spend at: 2025-04-15", "status": "active", "deleted_by": "", "redmine_entry_id": 8900}, {"id": "20370", "author": "Nihaal Ramfoll", "hours": 1.0, "created": "2025-04-11T10:28:22.044Z", "log_date": "2025-04-11", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2025-04-11T10:28:22.044Z: 1h-(1.0)h spend at: 2025-04-11", "status": "active", "deleted_by": "", "redmine_entry_id": 8901}, {"id": "32003", "author": "Yashvee Seetul", "hours": 1.0, "created": "2025-10-15T07:00:28.027Z", "log_date": "2025-10-14", "comment": "Imported from GitLab by @Yashvee Seetul on 2025-10-15T07:00:28.027Z: 1h-(1.0)h spend at: 2025-10-14", "status": "active", "deleted_by": "", "redmine_entry_id": 10806}]