Project

General

Profile

Actions

Task #19667

open

Task #19803: Sprint Planning for 27/04/2026 - 11/05/2026

Create Invoice for MAWB in Air Module

Added by Redmine Admin 5 months ago. Updated 3 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Start date:
04/09/2026
Due date:
04/09/2026 (about 5 months late)
% Done:

90%

Estimated time:
50:00 h
Spent time:
GitLab ID:
4157
GitLab Milestone:
GitLab Ticket Number:
1369
GitLab Time Logged:
162000
Lock Timeline Date:
No
gitlab project trace:
Sprint Planning for 27/04/2026 - 11/05/2026

Description

Implement Invoice for MAWB in the Air module.

This feature will allow users to generate invoices at Master Air Waybill (MAWB) level, following the same core logic as Ocean invoicing, but adapted to:

  • Air shipment data
  • Updated UI structure (AIR tab + Create Air Invoice button)

Scope

  • Applicable to Air module only
  • Applicable to MAWB (Master Air Waybill)
  • Accessible via:
    • Invoice → AIR tab → “Create Air Invoice”
  • Covers linked invoices only
  • Out of scope:
    • Create Unlinked Invoice functionality

UI Alignment (Air Invoice Module)

  • Invoice creation is initiated from:
    • Accounting→ Invoice → AIR tab
  • User clicks:
    • “+ Create Air Invoice”
  • Invoice list must display the following columns:
    • Invoice Reference
    • Client
    • Entity Type (MAWB)
    • Created On
    • File Ref
    • House
    • Master (MAWB No.)
    • Shipment (Air)
    • Cargo Type (Import/Export)
    • Status
    • Amount Excl. VAT
    • VAT Amount
    • Total Amount
    • Download
    • Preview
  • Entity Type must clearly identify invoices created from:
    • MAWB

Functional Requirements

1. Create Air Invoice Entry

  • User clicks + Create Air Invoice”
  • User selects MAWB tab

2. MAWB Selection

System should allow selection of MAWB using filters:

Filters:

  • File Reference
  • MAWB Reference
  • Cargo Type
  • Date Range

Search Results Must Display:

  • File Reference
  • MAWB Reference
  • Airline
  • Flight Details
  • Origin Airport
  • Destination Airport
  • Cargo Type
  • Created On

3. Expandable MAWB Row

  • User can expand MAWB row to view invoiceable data:
    • Customer / Client Name
    • Client Type
    • VAT Type
    • Total Invoiceable Amount

4. Create Invoice from MAWB

  • User clicks the "+" Create Invoice against a MAWB row
  • System opens Invoice Detail Screen

5. MAWB Invoice Detail Screen

Shipment Summary:

  • File Reference
  • MAWB No.
  • Airline
  • Flight Number
  • ETD / ETA
  • Origin Airport
  • Destination Airport
  • Shipper
  • Consignee
  • Number of Packages
  • Package Type
  • Weight
  • Chargeable Weight
  • Volume
  • Description of Goods

6. Invoice Charges Section

Display all invoiceable charges linked to MAWB:

Columns:

  • Charge Code
  • Description
  • Currency
  • Prepaid / Collect
  • Amount Excl. VAT
  • VAT
  • Discount
  • Exchange Rate
  • Total Amount
  • Footer - System displays totals

7. Invoice Processing

User can:

  • Process individual invoice—follows same logic as for ocean module
  • Process all invoices—follows same logic as for ocean module

8. Save Invoice Modal

User must select:

  • Invoice Currency (mandatory)
  • Bank (mandatory)

System displays:

  • Exchange rate details, which can be modified by the user and the charges will be calculated as per this new rate.

Save options:

  • Draft
  • Proforma
  • Standard

9.Invoice PDF format

Invoice-MACCS26INV03691-2026-03-18.pdf

The invoice format will be the same as the attached; however, the "HAWB Reference:" will be replaced by "MAWB Reference:" in the header.

10. List of Generated Invoices

After creation:

  • The invoice appears in the "List of Generated Invoices" section

Reference

Client

VAT Type

Type

Inv. Type

Due Date

Status

Inv. Currency

Total Inv. Amt.

Total Amt. (MUR)

Disbursement

Action

  • Reference
  • Client
  • VAT Type
  • Type
  • Inv. Type
  • Due Date
  • Status
  • Inv. Currency
  • Total Inv. Amt.
  • Total Amt. (MUR)
  • Disbursement
  • Action

11. List of Invoices

Clicking on "Back" button returns the user to the "List of Invoices" screen.

  • The created invoice appears in invoice list under the AIR Tab

Invoice Reference

Client

Entity Type

Created On

File Ref.

House

Master

Type

Shipment

Cargo Type

Status

Amt. Excl. VAT

VAT Amt.

Total Amt.

Download

No record(s) found.

Columns must include:

  • Invoice Reference
  • Client
  • Entity Type (MAWB)
  • Created On
  • File Ref
  • House
  • Master (MAWB No.)
  • Type
  • Shipment
  • Cargo Type
  • Status
  • Amount Excl. VAT
  • VAT Amount
  • Total Amount
  • Download - Download icon & Preview Icon

12. Invoice Output / Download

  • User can preview and download the invoice.
  • Existing PDF generation logic should be reused
  • Output format remains consistent with system standards

13. Validation Rules

  • Only MAWB records should appear in the MAWB tab
  • Currency and bank are mandatory before saving
  • Prevent invalid or duplicate invoice creation
  • System displays success confirmation

14. Linking & Traceability

Each invoice must be linked to:

  • File Reference
  • MAWB
  • Customer

Non-Functional Requirements

  • Reuse existing invoice engine from Ocean module
  • No regression to Ocean MBL invoicing
  • Maintain performance for search and invoice creation
  • Ensure proper PDF rendering

Acceptance Criteria

  1. User can access invoice module via AIR tab
  2. User clicks Create Air Invoice to initiate process
  3. MAWB selection supports filters (File Ref, MAWB, Cargo Type, Date Range)
  4. MAWB search results display correct Air shipment data
  5. User can expand MAWB row to view invoiceable details
  6. User can create invoice from selected MAWB
  7. Invoice detail screen shows Air-specific shipment summary
  8. Invoice charges are displayed correctly
  9. User can process individual invoices or all invoices
  10. Save Invoice modal enforces Currency and Bank selection
  11. User can save as Draft, Proforma, or Standard
  12. Generated invoice appears in AIR invoice list
  13. Entity Type is displayed as MAWB
  14. Invoice list columns match UI design
  15. User can download/preview invoice
  16. Invoice is linked to MAWB and source charges
  17. No regression to Ocean invoice functionality

Dependencies

  • Existing Invoice Module
  • Air shipment (MAWB) data
  • MAWB Charges exist
  • Bank & currency configuration
  • Existing Invoice PDF design

GitLab Sync Log

[{"id": "42061", "author": "Nihaal Ramfoll", "hours": 4.0, "created": "2026-04-13T07:17:53.638Z", "log_date": "2026-04-08", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2026-04-13T07:17:53.638Z: 4h-(4.0)h spend at: 2026-04-08", "status": "active", "deleted_by": "", "redmine_entry_id": 13051}, {"id": "42109", "author": "Nihaal Ramfoll", "hours": 2.0, "created": "2026-04-14T10:05:18.001Z", "log_date": "2026-04-14", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2026-04-14T10:05:18.001Z: 2h-(2.0)h spend at: 2026-04-14", "status": "active", "deleted_by": "", "redmine_entry_id": 13078}, {"id": "42108", "author": "Nihaal Ramfoll", "hours": 3.0, "created": "2026-04-14T10:03:28.493Z", "log_date": "2026-04-14", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2026-04-14T10:03:28.493Z: 3h-(3.0)h spend at: 2026-04-14", "status": "active", "deleted_by": "", "redmine_entry_id": 13079}, {"id": "42480", "author": "Nihaal Ramfoll", "hours": 5.5, "created": "2026-04-20T06:30:22.884Z", "log_date": "2026-04-12", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2026-04-20T06:30:22.884Z: 5h 30m-(5.5)h spend at: 2026-04-12", "status": "active", "deleted_by": "", "redmine_entry_id": 13151}, {"id": "42536", "author": "Nihaal Ramfoll", "hours": 2.0, "created": "2026-04-21T05:36:38.992Z", "log_date": "2026-04-16", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2026-04-21T05:36:38.992Z: 2h-(2.0)h spend at: 2026-04-16", "status": "active", "deleted_by": "", "redmine_entry_id": 13163}, {"id": "42597", "author": "Al-Shad Isaac", "hours": 0.5, "created": "2026-04-21T06:15:59.726Z", "log_date": "2026-04-12", "comment": "Imported from GitLab by @Al-Shad Isaac on 2026-04-21T06:15:59.726Z: 30m-(0.5)h spend at: 2026-04-12", "status": "active", "deleted_by": "", "redmine_entry_id": 13194}, {"id": "42664", "author": "Nihaal Ramfoll", "hours": 4.0, "created": "2026-04-21T11:46:53.719Z", "log_date": "2026-04-21", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2026-04-21T11:46:53.719Z: 4h-(4.0)h spend at: 2026-04-21", "status": "deleted", "deleted_by": "42662", "redmine_entry_id": 13215}, {"id": "42659", "author": "Nihaal Ramfoll", "hours": 1.5, "created": "2026-04-21T11:34:29.515Z", "log_date": "2026-04-21", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2026-04-21T11:34:29.515Z: 1h 30m-(1.5)h spend at: 2026-04-21", "status": "deleted", "deleted_by": "42663", "redmine_entry_id": 13216}, {"id": "42654", "author": "Nihaal Ramfoll", "hours": 4.0, "created": "2026-04-21T11:31:02.347Z", "log_date": "2026-04-21", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2026-04-21T11:31:02.347Z: 4h-(4.0)h spend at: 2026-04-21", "status": "deleted", "deleted_by": "", "redmine_entry_id": 13217}, {"id": "42729", "author": "Nihaal Ramfoll", "hours": 1.0, "created": "2026-04-22T06:35:51.140Z", "log_date": "2026-04-20", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2026-04-22T06:35:51.140Z: 1h-(1.0)h spend at: 2026-04-20", "status": "deleted", "deleted_by": "", "redmine_entry_id": 13227}, {"id": "42865", "author": "Nihaal Ramfoll", "hours": 4.0, "created": "2026-04-23T06:38:53.117Z", "log_date": "2026-04-21", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2026-04-23T06:38:53.117Z: 4h-(4.0)h spend at: 2026-04-21", "status": "deleted", "deleted_by": "", "redmine_entry_id": 13265}, {"id": "42850", "author": "Nihaal Ramfoll", "hours": 4.0, "created": "2026-04-23T06:26:58.584Z", "log_date": "2026-04-21", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2026-04-23T06:26:58.584Z: 4h-(4.0)h spend at: 2026-04-21", "status": "deleted", "deleted_by": "", "redmine_entry_id": 13266}, {"id": "42966", "author": "Nihaal Ramfoll", "hours": 2.0, "created": "2026-04-24T05:13:24.590Z", "log_date": "2026-04-22", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2026-04-24T05:13:24.590Z: 2h-(2.0)h spend at: 2026-04-22", "status": "active", "deleted_by": "", "redmine_entry_id": 13290}, {"id": "42965", "author": "Nihaal Ramfoll", "hours": 2.0, "created": "2026-04-24T05:12:55.066Z", "log_date": "2026-04-22", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2026-04-24T05:12:55.066Z: 2h-(2.0)h spend at: 2026-04-22", "status": "active", "deleted_by": "", "redmine_entry_id": 13291}, {"id": "43089", "author": "Nihaal Ramfoll", "hours": 4.0, "created": "2026-04-27T05:57:46.003Z", "log_date": "2026-04-23", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2026-04-27T05:57:46.003Z: 4h-(4.0)h spend at: 2026-04-23", "status": "active", "deleted_by": "", "redmine_entry_id": 13312}, {"id": "43154", "author": "Nihaal Ramfoll", "hours": 2.0, "created": "2026-04-27T07:44:30.325Z", "log_date": "2026-04-19", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2026-04-27T07:44:30.325Z: 2h-(2.0)h spend at: 2026-04-19", "status": "active", "deleted_by": "", "redmine_entry_id": 13319}, {"id": "43116", "author": "Nihaal Ramfoll", "hours": 2.0, "created": "2026-04-27T06:47:51.009Z", "log_date": "2026-04-27", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2026-04-27T06:47:51.009Z: 2h-(2.0)h spend at: 2026-04-27", "status": "active", "deleted_by": "", "redmine_entry_id": 13320}, {"id": "43564", "author": "Nihaal Ramfoll", "hours": 4.0, "created": "2026-05-04T10:57:28.978Z", "log_date": "2026-04-29", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2026-05-04T10:57:28.978Z: 4h-(4.0)h spend at: 2026-04-29", "status": "active", "deleted_by": "", "redmine_entry_id": 13414}, {"id": "43563", "author": "Nihaal Ramfoll", "hours": 4.0, "created": "2026-05-04T10:57:17.918Z", "log_date": "2026-04-28", "comment": "Imported from GitLab by @Nihaal Ramfoll on 2026-05-04T10:57:17.918Z: 4h-(4.0)h spend at: 2026-04-28", "status": "active", "deleted_by": "", "redmine_entry_id": 13415}]

Actions

Also available in: Atom PDF