Coverage for src/backend/InvenTree/order/status_codes.py: 100%
52 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 17:47 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 17:47 +0000
1"""Order status codes."""
3from django.utils.translation import gettext_lazy as _
5from generic.states import ColorEnum, StatusCode
8class PurchaseOrderStatus(StatusCode):
9 """Defines a set of status codes for a PurchaseOrder."""
11 # Order status codes
12 PENDING = 10, _('Pending'), ColorEnum.secondary # Order is pending (not yet placed)
13 PLACED = 20, _('Placed'), ColorEnum.primary # Order has been placed with supplier
14 ON_HOLD = 25, _('On Hold'), ColorEnum.warning # Order is on hold
15 COMPLETE = 30, _('Complete'), ColorEnum.success # Order has been completed
16 CANCELLED = 40, _('Cancelled'), ColorEnum.danger # Order was cancelled
17 LOST = 50, _('Lost'), ColorEnum.warning # Order was lost
18 RETURNED = 60, _('Returned'), ColorEnum.warning # Order was returned
21class PurchaseOrderStatusGroups:
22 """Groups for PurchaseOrderStatus codes."""
24 # Open orders
25 OPEN = [
26 PurchaseOrderStatus.PENDING.value,
27 PurchaseOrderStatus.ON_HOLD.value,
28 PurchaseOrderStatus.PLACED.value,
29 ]
31 # Failed orders
32 FAILED = [
33 PurchaseOrderStatus.CANCELLED.value,
34 PurchaseOrderStatus.LOST.value,
35 PurchaseOrderStatus.RETURNED.value,
36 ]
38 COMPLETE = [PurchaseOrderStatus.COMPLETE.value]
41class SalesOrderStatus(StatusCode):
42 """Defines a set of status codes for a SalesOrder."""
44 PENDING = 10, _('Pending'), ColorEnum.secondary # Order is pending
45 IN_PROGRESS = (
46 15,
47 _('In Progress'),
48 ColorEnum.primary,
49 ) # Order has been issued, and is in progress
50 SHIPPED = 20, _('Shipped'), ColorEnum.primary # Order has been shipped to customer
51 ON_HOLD = 25, _('On Hold'), ColorEnum.warning # Order is on hold
52 COMPLETE = 30, _('Complete'), ColorEnum.success # Order is complete
53 CANCELLED = 40, _('Cancelled'), ColorEnum.danger # Order has been cancelled
54 LOST = 50, _('Lost'), ColorEnum.warning # Order was lost
55 RETURNED = 60, _('Returned'), ColorEnum.warning # Order was returned
58class SalesOrderStatusGroups:
59 """Groups for SalesOrderStatus codes."""
61 # Open orders
62 OPEN = [
63 SalesOrderStatus.PENDING.value,
64 SalesOrderStatus.ON_HOLD.value,
65 SalesOrderStatus.IN_PROGRESS.value,
66 SalesOrderStatus.SHIPPED.value,
67 ]
69 # Completed orders
70 COMPLETE = [SalesOrderStatus.COMPLETE.value]
73class ReturnOrderStatus(StatusCode):
74 """Defines a set of status codes for a ReturnOrder."""
76 # Order is pending, waiting for receipt of items
77 PENDING = 10, _('Pending'), ColorEnum.secondary
79 # Items have been received, and are being inspected
80 IN_PROGRESS = 20, _('In Progress'), ColorEnum.primary
82 ON_HOLD = 25, _('On Hold'), ColorEnum.warning
84 COMPLETE = 30, _('Complete'), ColorEnum.success
85 CANCELLED = 40, _('Cancelled'), ColorEnum.danger
88class ReturnOrderStatusGroups:
89 """Groups for ReturnOrderStatus codes."""
91 OPEN = [
92 ReturnOrderStatus.PENDING.value,
93 ReturnOrderStatus.ON_HOLD.value,
94 ReturnOrderStatus.IN_PROGRESS.value,
95 ]
97 COMPLETE = [ReturnOrderStatus.COMPLETE.value]
100class ReturnOrderLineStatus(StatusCode):
101 """Defines a set of status codes for a ReturnOrderLineItem."""
103 PENDING = 10, _('Pending'), ColorEnum.secondary
105 # Item is to be returned to customer, no other action
106 RETURN = 20, _('Return'), ColorEnum.success
108 # Item is to be repaired, and returned to customer
109 REPAIR = 30, _('Repair'), ColorEnum.primary
111 # Item is to be replaced (new item shipped)
112 REPLACE = 40, _('Replace'), ColorEnum.warning
114 # Item is to be refunded (cannot be repaired)
115 REFUND = 50, _('Refund'), ColorEnum.info
117 # Item is rejected
118 REJECT = 60, _('Reject'), ColorEnum.danger
121class TransferOrderStatus(StatusCode):
122 """Defines a set of status codes for a TransferOrder."""
124 # Order status codes
125 PENDING = 10, _('Pending'), ColorEnum.secondary # Order is pending (not yet issued)
126 ISSUED = 20, _('Issued'), ColorEnum.primary # Order has been issued
127 ON_HOLD = 25, _('On Hold'), ColorEnum.warning # Order is on hold
128 COMPLETE = 30, _('Complete'), ColorEnum.success # Order has been completed
129 CANCELLED = 40, _('Cancelled'), ColorEnum.danger # Order was cancelled
132class TransferOrderStatusGroups:
133 """Groups for TransferOrderStatus codes."""
135 # Open orders
136 OPEN = [
137 TransferOrderStatus.PENDING.value,
138 TransferOrderStatus.ON_HOLD.value,
139 TransferOrderStatus.ISSUED.value,
140 ]
142 # Failed orders
143 FAILED = [TransferOrderStatus.CANCELLED.value]
145 COMPLETE = [TransferOrderStatus.COMPLETE.value]