Project

General

Profile

Actions

Task #19324

open

Task #19374: Sprint Planning for 02/02/2026 - 16/02/2026

Air Import – MAWB & HAWB Management

Added by Redmine Admin about 1 month ago. Updated about 1 hour ago.

Status:
New
Priority:
Normal
Assignee:
-
Start date:
01/22/2026
Due date:
01/22/2026 (40 days late)
% Done:

82%

Estimated time:
120:00 h
Spent time:
GitLab ID:
3730
GitLab Milestone:
GitLab Ticket Number:
1150
GitLab Time Logged:
358200
Lock Timeline Date:
No
gitlab project trace:
Sprint Planning for 02/02/2026 - 16/02/2026

Description

The system shall allow users to create a Master Air Waybill (MAWB) file linked to a Flight Schedule, and then select, link, or create multiple House AWBs (HAWBs) from the House AWB Repository, including support for Split Shipments and Partial Shipments.

 

1️ Flight & Master Creation (MAWB)

Create MAWB from Flight Schedule

Create a Master File (MAWB) by selecting an existing flight schedule and manage the House AWBs under the same flight under one parent record.

Acceptance Criteria

  • User can search and select a flight from the Flight Schedule module
  • Selected flight auto-populates:
    • Flight No.
    • Flight Date
    • Origin & Destination
    • ETD & ETA
    • Airline
    • GHA
  • System generates a unique File Ref No. (e.g. MACCS25IMP000123) at this time or on Save (open to development team)
  • File Ref status defaults to “In Progress”

 

Validations

  • Only active flights selectable
  • Flight change after HAWB linking requires confirmation

 

Link Existing MAWBs from FWB functionality

User should be able to search and add an existing MAWB from the FWB functionality - https://gitlab.maccs.mu/rnd/ffa/documentation/-/issues/990

Select MAWB from list of MAWBs

Fields to display for selected MAWB

  • MAWB No.
  • Carrier / Airline
  • Consignee
  • Agent
  • Importer / Forwarder / Shipper
  • Freight Terms (Prepaid / Collect)
  • Total Weight, Volume, Pieces
  • Status lifecycle:
    • In Progress → Completed → Closed
  • Closed files are read-only

Rules

  • A File Ref cannot be Closed if any linked HAWB is not “DO Issued”

Acceptance Criteria

  • When setting the status to “Completed”, total pieces and weight of the master should tally against the all HAWBs pieces and weight.

 

Document Management at MAWB Level

The system shall allow uploading and managing MAWB-level documents.  All master-level documents should be centrally available.

Documents

  • Notice of Arrival
  • Airline Delivery Order
  • FWB
  • Airline Invoices
  • Other PDFs / Scan copy

Document should be stored with:

·         Document type

·         Uploaded by

·         Timestamp, etc.

Acceptance Criteria

  • User clicks Upload Document
  • Selects document type: Airline NOA / DO / Other
  • Uploads PDF or scan
  • Multiple files allowed
  • View / Download permissions controlled by role

 

2. Add & Manage House AWBs (HAWB Repository Integration)

Link Existing HAWBs from repository to MAWB

User should be able to search and link existing HAWBs from the House AWB Repository (https://gitlab.maccs.mu/rnd/ffa/documentation/-/issues/928 ).

HAWB Status Lifecycle & Rules

Each House Air Waybill (HAWB) shall follow a defined lifecycle to ensure proper operational control and alignment with the MAWB status.

HAWB Status Lifecycle

  • In Progress – HAWB created but not yet manifested

  • Manifested – Included in MAWB manifest / FHL generated

  • Linked – HAWB has been used in a File Ref

  • Closed – HAWB completed and locked

  • DO Issued – Delivery Order issued
    Business Rules

  • A HAWB may only be linked to a MAWB when its status is In Progress or Manifested.

  • A HAWB marked as “DO Issued” or Closed shall not be unlinked.

  • A File Ref cannot be set to Closed if at least one linked HAWB is not in “DO Issued” status, unless override permission is granted.

 

Acceptance Criteria

  • Search by:
    • MAWB No.
    • HAWB No.
    • Consignee
    • Shipper
    • Status
    • Date Range
  • Multi-select (bulk linking) enabled
  • Once linked:
    • HAWB status updates to “Linked”
  • HAWBs marked as part shipment should be available in the list if all pieces have not been received.

 

Import HAWBs

Supported import formats:

  • FHL IATA CIMP/CXML message

 

Part Shipment Handling

The user should be able to manage Partial shipments (MAWB totals include only legs linked to that MAWB) to avoid discrepancies

Part Shipment

  • One HAWB partially arrived
  • Remaining balance tracked
  • Delivered quantity ≠ Manifested quantity

 

4. Retrieve File Reference (Search & Access)

The user should be able to retrieve existing File Reference records using flexible search criteria.

A dedicated Retrieve File Reference screen shall be available under:

  • Air Export → File Reference
  • Air Import → File Reference

Search Criteria

Users may search using one or more of the following:

Identifiers

  • File Reference
  • MAWB Number (prefix + serial)
  • HAWB Number
  • Airline / Carrier Code

Shipment

  • Origin / Destination airport
  • Flight number
  • Flight date (from / to)

Parties

  • Shipper
  • Consignee
  • Agent

Operational

  • File Status (In Progress / Completed / Closed)
  • Created date/Last Update date

Acceptance Criteria

  • At least one criterion required
  • Partial matches supported
  • Results pageable & sortable
  • Tenant-based data isolation enforced

 

Results Grid Columns

  • File Reference
  • MAWB Number
  • Airline
  • Origin → Destination
  • Pieces / Weight
  • File Status
  • Last Updated
  • Action buttons (View/Edit, Downloads, Clone) – Refer to action buttons from Ocean File Reference

Nested Grid (HAWB Details)

  • HAWB Number
  • Shipper/Consignee
  • Origin → Destination
  • Pieces / Weight
  • File Status
  • Last Updated
  • Action buttons (View/Edit, Downloads, Clone) – Refer to action buttons from Ocean File Reference

 

Delivery Order & Closure (to be developed since currently it is not present in CCS)

A user should be able to issue House DO.

Rules

  • House Delivery Orders (HAWB DO) are the operational documents used for cargo release.
  • Issuing a HAWB DO automatically updates the corresponding HAWB status to DO Issued.

 

Acceptance Criteria

  • HBL Status updates to “DO Issued”
  • File becomes read-only

 

No rules to check for full invoice payment for the time being unless we get new requirements from clients

Generate House DO

  • User clicks Generate HAWB DO
  • System validates:
    • HAWB status is complete

If valid

  • DO generated
  • DO timestamp recorded
  • DO locked

 

 

 

3️ FWB & FHL Messaging (IATA Messaging)

Generate FWB - Export

The system should allow to generate the FWB upon MAWB creation as per IATA – CIMP & CXML format.

Acceptance Criteria

  • Mandatory IATA fields validated
  • Block sending on errors
  • Generated in Cargo-IMP / Cargo-XML format
  • Editable only before transmission

 

Generate FHL per HAWB - Export

The system should allow to generate FHL messages per linked HAWB

Acceptance Criteria

  • One FHL per HAWB
  • Validates consignee, pieces, weight, HS Codes
  • Cannot send FHL if HAWB not “Completed”

 

Transmit & Track Messages

The user should be able to send and track FWB/FHL messages, monitor airline acceptance.

Message Status

  • In Progress
  • Sent
  • Acknowledged (FMA)
  • Rejected (FNA)

Acceptance Criteria

  • Transmission via SMTP / SFTP / API
  • Re-send option available
  • Acknowledgment stored & linked to file

GitLab Sync Log

[{"id": "38038", "author": "Fatimah Schaik Hossen", "hours": 7.0, "created": "2026-02-02T10:22:36.186Z", "log_date": "2026-02-02", "comment": "Imported from GitLab by @Fatimah Schaik Hossen on 2026-02-02T10:22:36.186Z: 7h-(7.0)h spend at: 2026-02-02", "status": "active", "deleted_by": "", "redmine_entry_id": 12129}, {"id": "38143", "author": "Fatimah Schaik Hossen", "hours": 7.0, "created": "2026-02-04T12:00:06.902Z", "log_date": "2026-02-04", "comment": "Imported from GitLab by @Fatimah Schaik Hossen on 2026-02-04T12:00:06.902Z: 7h-(7.0)h spend at: 2026-02-04", "status": "active", "deleted_by": "", "redmine_entry_id": 12155}, {"id": "38230", "author": "Fatimah Schaik Hossen", "hours": 7.0, "created": "2026-02-06T05:01:49.803Z", "log_date": "2026-02-04", "comment": "Imported from GitLab by @Fatimah Schaik Hossen on 2026-02-06T05:01:49.803Z: 7h-(7.0)h spend at: 2026-02-04", "status": "active", "deleted_by": "", "redmine_entry_id": 12171}, {"id": "38361", "author": "Fatimah Schaik Hossen", "hours": 4.0, "created": "2026-02-06T12:02:45.527Z", "log_date": "2026-02-06", "comment": "Imported from GitLab by @Fatimah Schaik Hossen on 2026-02-06T12:02:45.527Z: 4h-(4.0)h spend at: 2026-02-06", "status": "active", "deleted_by": "", "redmine_entry_id": 12199}, {"id": "38450", "author": "Fatimah Schaik Hossen", "hours": 5.0, "created": "2026-02-09T11:36:42.496Z", "log_date": "2026-02-09", "comment": "Imported from GitLab by @Fatimah Schaik Hossen on 2026-02-09T11:36:42.496Z: 5h-(5.0)h spend at: 2026-02-09", "status": "active", "deleted_by": "", "redmine_entry_id": 12222}, {"id": "38444", "author": "Fatimah Schaik Hossen", "hours": 6.0, "created": "2026-02-09T11:33:54.035Z", "log_date": "2026-02-09", "comment": "Imported from GitLab by @Fatimah Schaik Hossen on 2026-02-09T11:33:54.035Z: 6h-(6.0)h spend at: 2026-02-09", "status": "deleted", "deleted_by": "38449", "redmine_entry_id": 12223}, {"id": "38633", "author": "Fatimah Schaik Hossen", "hours": 1.0, "created": "2026-02-11T11:29:53.079Z", "log_date": "2026-02-11", "comment": "Imported from GitLab by @Fatimah Schaik Hossen on 2026-02-11T11:29:53.079Z: 1h-(1.0)h spend at: 2026-02-11", "status": "active", "deleted_by": "", "redmine_entry_id": 12255}, {"id": "38727", "author": "Fatimah Schaik Hossen", "hours": 5.25, "created": "2026-02-12T12:08:20.022Z", "log_date": "2026-02-12", "comment": "Imported from GitLab by @Fatimah Schaik Hossen on 2026-02-12T12:08:20.022Z: 5h 15m-(5.25)h spend at: 2026-02-12", "status": "active", "deleted_by": "", "redmine_entry_id": 12283}, {"id": "38765", "author": "Fatimah Schaik Hossen", "hours": 6.5, "created": "2026-02-13T12:03:36.867Z", "log_date": "2026-02-13", "comment": "Imported from GitLab by @Fatimah Schaik Hossen on 2026-02-13T12:03:36.867Z: 6h 30m-(6.5)h spend at: 2026-02-13", "status": "active", "deleted_by": "", "redmine_entry_id": 12298}, {"id": "38805", "author": "Fatimah Schaik Hossen", "hours": 7.0, "created": "2026-02-16T12:01:51.534Z", "log_date": "2026-02-16", "comment": "Imported from GitLab by @Fatimah Schaik Hossen on 2026-02-16T12:01:51.534Z: 7h-(7.0)h spend at: 2026-02-16", "status": "active", "deleted_by": "", "redmine_entry_id": 12308}, {"id": "38820", "author": "Fatimah Schaik Hossen", "hours": 7.0, "created": "2026-02-17T10:19:26.817Z", "log_date": "2026-02-17", "comment": "Imported from GitLab by @Fatimah Schaik Hossen on 2026-02-17T10:19:26.817Z: 7h-(7.0)h spend at: 2026-02-17", "status": "active", "deleted_by": "", "redmine_entry_id": 12311}, {"id": "38916", "author": "Fatimah Schaik Hossen", "hours": 7.0, "created": "2026-02-18T11:54:41.212Z", "log_date": "2026-02-18", "comment": "Imported from GitLab by @Fatimah Schaik Hossen on 2026-02-18T11:54:41.212Z: 7h-(7.0)h spend at: 2026-02-18", "status": "active", "deleted_by": "", "redmine_entry_id": 12327}, {"id": "38982", "author": "Fatimah Schaik Hossen", "hours": 7.0, "created": "2026-02-19T11:58:29.977Z", "log_date": "2026-02-19", "comment": "Imported from GitLab by @Fatimah Schaik Hossen on 2026-02-19T11:58:29.977Z: 7h-(7.0)h spend at: 2026-02-19", "status": "active", "deleted_by": "", "redmine_entry_id": 12351}, {"id": "39058", "author": "Fatimah Schaik Hossen", "hours": 7.0, "created": "2026-02-20T11:47:55.092Z", "log_date": "2026-02-20", "comment": "Imported from GitLab by @Fatimah Schaik Hossen on 2026-02-20T11:47:55.092Z: 7h-(7.0)h spend at: 2026-02-20", "status": "active", "deleted_by": "", "redmine_entry_id": 12366}, {"id": "39136", "author": "Fatimah Schaik Hossen", "hours": 1.0, "created": "2026-02-23T11:50:20.088Z", "log_date": "2026-02-23", "comment": "Imported from GitLab by @Fatimah Schaik Hossen on 2026-02-23T11:50:20.088Z: 1h-(1.0)h spend at: 2026-02-23", "status": "active", "deleted_by": "", "redmine_entry_id": 12380}, {"id": "39363", "author": "Fatimah Schaik Hossen", "hours": 6.25, "created": "2026-02-26T09:55:56.907Z", "log_date": "2026-02-26", "comment": "Imported from GitLab by @Fatimah Schaik Hossen on 2026-02-26T09:55:56.907Z: 6h 15m-(6.25)h spend at: 2026-02-26", "status": "active", "deleted_by": "", "redmine_entry_id": 12432}, {"id": "39362", "author": "Fatimah Schaik Hossen", "hours": 6.25, "created": "2026-02-26T09:55:47.400Z", "log_date": "2026-02-24", "comment": "Imported from GitLab by @Fatimah Schaik Hossen on 2026-02-26T09:55:47.400Z: 6h 15m-(6.25)h spend at: 2026-02-24", "status": "active", "deleted_by": "", "redmine_entry_id": 12433}, {"id": "39566", "author": "Fatimah Schaik Hossen", "hours": 2.0, "created": "2026-03-02T11:08:30.199Z", "log_date": "2026-03-02", "comment": "Imported from GitLab by @Fatimah Schaik Hossen on 2026-03-02T11:08:30.199Z: 2h-(2.0)h spend at: 2026-03-02", "status": "active", "deleted_by": "", "redmine_entry_id": 12465}, {"id": "39621", "author": "Fatimah Schaik Hossen", "hours": 6.25, "created": "2026-03-03T10:17:57.783Z", "log_date": "2026-03-03", "comment": "Imported from GitLab by @Fatimah Schaik Hossen on 2026-03-03T10:17:57.783Z: 6h 15m-(6.25)h spend at: 2026-03-03", "status": "active", "deleted_by": "", "redmine_entry_id": 12474}]

Actions #1

Updated by Redmine Admin about 1 month ago

  • GitLab Sync Log updated (diff)
Actions #2

Updated by Redmine Admin 29 days ago

  • Estimated time changed from 0:00 h to 120:00 h
  • Parent task set to #19374
  • gitlab project trace set to Sprint Planning for 02/02/2026 - 16/02/2026
Actions #3

Updated by Redmine Admin 29 days ago

  • % Done changed from 0 to 5
  • GitLab Time Logged changed from 0 to 25200
Actions #4

Updated by Redmine Admin 29 days ago

  • GitLab Sync Log updated (diff)
Actions #5

Updated by Redmine Admin 27 days ago

  • % Done changed from 5 to 11
  • GitLab Time Logged changed from 25200 to 50400
Actions #6

Updated by Redmine Admin 27 days ago

  • GitLab Sync Log updated (diff)
Actions #7

Updated by Redmine Admin 25 days ago

  • % Done changed from 11 to 17
  • GitLab Time Logged changed from 50400 to 75600
Actions #8

Updated by Redmine Admin 25 days ago

  • GitLab Sync Log updated (diff)
Actions #9

Updated by Redmine Admin 25 days ago

  • % Done changed from 17 to 20
  • GitLab Time Logged changed from 75600 to 90000
Actions #10

Updated by Redmine Admin 25 days ago

  • GitLab Sync Log updated (diff)
Actions #11

Updated by Redmine Admin 22 days ago

  • % Done changed from 20 to 25
  • GitLab Time Logged changed from 90000 to 108000
Actions #12

Updated by Redmine Admin 22 days ago

  • GitLab Sync Log updated (diff)
Actions #13

Updated by Redmine Admin 20 days ago

  • GitLab Time Logged changed from 108000 to 111600
Actions #14

Updated by Redmine Admin 20 days ago

  • GitLab Sync Log updated (diff)
Actions #15

Updated by Redmine Admin 19 days ago

  • % Done changed from 25 to 30
  • GitLab Time Logged changed from 111600 to 130500
Actions #16

Updated by Redmine Admin 19 days ago

  • GitLab Sync Log updated (diff)
Actions #17

Updated by Redmine Admin 18 days ago

  • % Done changed from 30 to 35
  • GitLab Time Logged changed from 130500 to 153900
Actions #18

Updated by Redmine Admin 18 days ago

  • GitLab Sync Log updated (diff)
Actions #19

Updated by Redmine Admin 15 days ago

  • % Done changed from 35 to 41
  • GitLab Time Logged changed from 153900 to 179100
Actions #20

Updated by Redmine Admin 15 days ago

  • GitLab Sync Log updated (diff)
Actions #21

Updated by Redmine Admin 14 days ago

  • % Done changed from 41 to 47
  • GitLab Time Logged changed from 179100 to 204300
Actions #22

Updated by Redmine Admin 14 days ago

  • GitLab Sync Log updated (diff)
Actions #23

Updated by Redmine Admin 13 days ago

  • Description updated (diff)
  • % Done changed from 47 to 53
  • GitLab Time Logged changed from 204300 to 229500
Actions #24

Updated by Redmine Admin 13 days ago

  • GitLab Sync Log updated (diff)
Actions #25

Updated by Redmine Admin 12 days ago

  • % Done changed from 53 to 58
  • GitLab Time Logged changed from 229500 to 254700
Actions #26

Updated by Redmine Admin 12 days ago

  • GitLab Sync Log updated (diff)
Actions #27

Updated by Redmine Admin 11 days ago

  • % Done changed from 58 to 64
  • GitLab Time Logged changed from 254700 to 279900
Actions #28

Updated by Redmine Admin 11 days ago

  • GitLab Sync Log updated (diff)
Actions #29

Updated by Redmine Admin 8 days ago

  • % Done changed from 64 to 65
  • GitLab Time Logged changed from 279900 to 283500
Actions #30

Updated by Redmine Admin 8 days ago

  • GitLab Sync Log updated (diff)
Actions #31

Updated by Redmine Admin 5 days ago

  • % Done changed from 65 to 76
  • GitLab Time Logged changed from 283500 to 328500
Actions #32

Updated by Redmine Admin 5 days ago

  • GitLab Sync Log updated (diff)
Actions #33

Updated by Redmine Admin 1 day ago

  • % Done changed from 76 to 77
  • GitLab Time Logged changed from 328500 to 335700
Actions #34

Updated by Redmine Admin 1 day ago

  • GitLab Sync Log updated (diff)
Actions #35

Updated by Redmine Admin about 1 hour ago

  • % Done changed from 77 to 82
  • GitLab Time Logged changed from 335700 to 358200
Actions #36

Updated by Redmine Admin about 1 hour ago

  • GitLab Sync Log updated (diff)
Actions

Also available in: Atom PDF