Sales Order Action Status Map Service
Overview
The Sales Order Action Status Map records which action statuses have been applied to a sales order and when. Each entry is an immutable log — multiple entries per order are supported, giving a full chronological history of status changes.
Relates to:
- Sales Order Action Status — status definitions
- Sales Orders — parent order
All operations are tenant-aware and scoped to the current tenant.
Endpoints
GET
/api/v1/SalesOrderActionStatusMap/{id}
Returns a single status map entry by its numeric identifier.
Behavior:
- Looks up entry by
Id - Returns
404if not found
Authorization:
- Requires Bearer Token
GET ALL
/api/v1/SalesOrderActionStatusMap/order/{salesOrderId}
Returns all status map entries for a given sales order.
Behavior:
- Returns full history of action statuses applied to the order
- Ordered by
CreatedAtascending - Returns
404if no entries exist for the order
Authorization:
- Requires Bearer Token
POST
/api/v1/SalesOrderActionStatusMap
Applies an action status to a sales order.
Request body:
SalesOrderActionStatusMapModel(required)
Behavior:
- Validates
SalesOrderId > 0andActionStatusId > 0 - Appends a new entry — does not replace existing ones
- Records
CreatedByUserIdandCreatedAt - Successful creation writes an audit log entry
Errors:
- Returns
400if validation fails
Authorization:
- Requires Bearer Token
PUT
/api/v1/SalesOrderActionStatusMap/{id}
Updates an existing status map entry (e.g. correcting notes).
Request:
- Route parameter:
id(numeric) - Body:
SalesOrderActionStatusMapModel(with updated fields)
Behavior:
- Updates editable fields (
Notes,ActionStatusId) - Successful update writes an audit log entry
Errors:
- Returns
400if validation fails or entry does not exist
Authorization:
- Requires Bearer Token
DELETE
/api/v1/SalesOrderActionStatusMap/{id}
Deletes a status map entry by its identifier.
Behavior:
- Performs a hard delete
- Successful deletion writes an audit log entry
Errors:
- Returns
400if entry does not exist or deletion fails
Authorization:
- Requires Bearer Token
Notes
- Multiple entries per order are allowed — full history is preserved
CreatedAtis set server-side and not writable by the client- Validation is enforced in the service layer
- All state-changing operations are audited