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

1"""Order status codes.""" 

2 

3from django.utils.translation import gettext_lazy as _ 

4 

5from generic.states import ColorEnum, StatusCode 

6 

7 

8class PurchaseOrderStatus(StatusCode): 

9 """Defines a set of status codes for a PurchaseOrder.""" 

10 

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 

19 

20 

21class PurchaseOrderStatusGroups: 

22 """Groups for PurchaseOrderStatus codes.""" 

23 

24 # Open orders 

25 OPEN = [ 

26 PurchaseOrderStatus.PENDING.value, 

27 PurchaseOrderStatus.ON_HOLD.value, 

28 PurchaseOrderStatus.PLACED.value, 

29 ] 

30 

31 # Failed orders 

32 FAILED = [ 

33 PurchaseOrderStatus.CANCELLED.value, 

34 PurchaseOrderStatus.LOST.value, 

35 PurchaseOrderStatus.RETURNED.value, 

36 ] 

37 

38 COMPLETE = [PurchaseOrderStatus.COMPLETE.value] 

39 

40 

41class SalesOrderStatus(StatusCode): 

42 """Defines a set of status codes for a SalesOrder.""" 

43 

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 

56 

57 

58class SalesOrderStatusGroups: 

59 """Groups for SalesOrderStatus codes.""" 

60 

61 # Open orders 

62 OPEN = [ 

63 SalesOrderStatus.PENDING.value, 

64 SalesOrderStatus.ON_HOLD.value, 

65 SalesOrderStatus.IN_PROGRESS.value, 

66 SalesOrderStatus.SHIPPED.value, 

67 ] 

68 

69 # Completed orders 

70 COMPLETE = [SalesOrderStatus.COMPLETE.value] 

71 

72 

73class ReturnOrderStatus(StatusCode): 

74 """Defines a set of status codes for a ReturnOrder.""" 

75 

76 # Order is pending, waiting for receipt of items 

77 PENDING = 10, _('Pending'), ColorEnum.secondary 

78 

79 # Items have been received, and are being inspected 

80 IN_PROGRESS = 20, _('In Progress'), ColorEnum.primary 

81 

82 ON_HOLD = 25, _('On Hold'), ColorEnum.warning 

83 

84 COMPLETE = 30, _('Complete'), ColorEnum.success 

85 CANCELLED = 40, _('Cancelled'), ColorEnum.danger 

86 

87 

88class ReturnOrderStatusGroups: 

89 """Groups for ReturnOrderStatus codes.""" 

90 

91 OPEN = [ 

92 ReturnOrderStatus.PENDING.value, 

93 ReturnOrderStatus.ON_HOLD.value, 

94 ReturnOrderStatus.IN_PROGRESS.value, 

95 ] 

96 

97 COMPLETE = [ReturnOrderStatus.COMPLETE.value] 

98 

99 

100class ReturnOrderLineStatus(StatusCode): 

101 """Defines a set of status codes for a ReturnOrderLineItem.""" 

102 

103 PENDING = 10, _('Pending'), ColorEnum.secondary 

104 

105 # Item is to be returned to customer, no other action 

106 RETURN = 20, _('Return'), ColorEnum.success 

107 

108 # Item is to be repaired, and returned to customer 

109 REPAIR = 30, _('Repair'), ColorEnum.primary 

110 

111 # Item is to be replaced (new item shipped) 

112 REPLACE = 40, _('Replace'), ColorEnum.warning 

113 

114 # Item is to be refunded (cannot be repaired) 

115 REFUND = 50, _('Refund'), ColorEnum.info 

116 

117 # Item is rejected 

118 REJECT = 60, _('Reject'), ColorEnum.danger 

119 

120 

121class TransferOrderStatus(StatusCode): 

122 """Defines a set of status codes for a TransferOrder.""" 

123 

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 

130 

131 

132class TransferOrderStatusGroups: 

133 """Groups for TransferOrderStatus codes.""" 

134 

135 # Open orders 

136 OPEN = [ 

137 TransferOrderStatus.PENDING.value, 

138 TransferOrderStatus.ON_HOLD.value, 

139 TransferOrderStatus.ISSUED.value, 

140 ] 

141 

142 # Failed orders 

143 FAILED = [TransferOrderStatus.CANCELLED.value] 

144 

145 COMPLETE = [TransferOrderStatus.COMPLETE.value]