@things-factory/worksheet-base 5.0.0-alpha.5 → 5.0.0-alpha.52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (243) hide show
  1. package/dist-server/constants/template.js +1 -0
  2. package/dist-server/constants/template.js.map +1 -1
  3. package/dist-server/controllers/ecommerce/sellercraft-controller.js +24 -10
  4. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
  5. package/dist-server/controllers/inbound/putaway-worksheet-controller.js +22 -13
  6. package/dist-server/controllers/inbound/putaway-worksheet-controller.js.map +1 -1
  7. package/dist-server/controllers/inbound/unloading-worksheet-controller.js +309 -4
  8. package/dist-server/controllers/inbound/unloading-worksheet-controller.js.map +1 -1
  9. package/dist-server/controllers/index.js +2 -0
  10. package/dist-server/controllers/index.js.map +1 -1
  11. package/dist-server/controllers/outbound/loading-worksheet-controller.js +56 -9
  12. package/dist-server/controllers/outbound/loading-worksheet-controller.js.map +1 -1
  13. package/dist-server/controllers/outbound/packing-worksheet-controller.js +172 -7
  14. package/dist-server/controllers/outbound/packing-worksheet-controller.js.map +1 -1
  15. package/dist-server/controllers/outbound/picking-worksheet-controller.js +500 -18
  16. package/dist-server/controllers/outbound/picking-worksheet-controller.js.map +1 -1
  17. package/dist-server/controllers/outbound/returning-worksheet-controller.js +11 -1
  18. package/dist-server/controllers/outbound/returning-worksheet-controller.js.map +1 -1
  19. package/dist-server/controllers/outbound/sorting-worksheet-controller.js +215 -12
  20. package/dist-server/controllers/outbound/sorting-worksheet-controller.js.map +1 -1
  21. package/dist-server/controllers/render-fm-grn.js +229 -0
  22. package/dist-server/controllers/render-fm-grn.js.map +1 -0
  23. package/dist-server/controllers/render-grn.js +77 -45
  24. package/dist-server/controllers/render-grn.js.map +1 -1
  25. package/dist-server/controllers/render-invoices.js +103 -65
  26. package/dist-server/controllers/render-invoices.js.map +1 -1
  27. package/dist-server/controllers/render-manifest.js +12 -5
  28. package/dist-server/controllers/render-manifest.js.map +1 -1
  29. package/dist-server/controllers/render-orientage-do.js.map +1 -1
  30. package/dist-server/controllers/render-orientage-grn.js +1 -0
  31. package/dist-server/controllers/render-orientage-grn.js.map +1 -1
  32. package/dist-server/controllers/render-po.js +147 -0
  33. package/dist-server/controllers/render-po.js.map +1 -0
  34. package/dist-server/controllers/render-ro-do.js +65 -1
  35. package/dist-server/controllers/render-ro-do.js.map +1 -1
  36. package/dist-server/controllers/worksheet-controller.js +23 -1
  37. package/dist-server/controllers/worksheet-controller.js.map +1 -1
  38. package/dist-server/entities/index.js +2 -1
  39. package/dist-server/entities/index.js.map +1 -1
  40. package/dist-server/entities/warehouse-bizplace-onhand-inventory.js +174 -0
  41. package/dist-server/entities/warehouse-bizplace-onhand-inventory.js.map +1 -0
  42. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js +14 -1
  43. package/dist-server/graphql/resolvers/worksheet/batch-picking-worksheet.js.map +1 -1
  44. package/dist-server/graphql/resolvers/worksheet/cancel-draft-release-order.js +17 -0
  45. package/dist-server/graphql/resolvers/worksheet/cancel-draft-release-order.js.map +1 -0
  46. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js +12 -4
  47. package/dist-server/graphql/resolvers/worksheet/cycle-count-adjustment.js.map +1 -1
  48. package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-task-no.js +30 -1
  49. package/dist-server/graphql/resolvers/worksheet/find-release-orders-by-task-no.js.map +1 -1
  50. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.js +27 -23
  51. package/dist-server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.js.map +1 -1
  52. package/dist-server/graphql/resolvers/worksheet/index.js +2 -1
  53. package/dist-server/graphql/resolvers/worksheet/index.js.map +1 -1
  54. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js +3 -0
  55. package/dist-server/graphql/resolvers/worksheet/inventories-by-pallet.js.map +1 -1
  56. package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js +48 -2
  57. package/dist-server/graphql/resolvers/worksheet/loading/complete-loading.js.map +1 -1
  58. package/dist-server/graphql/resolvers/worksheet/loading/loading.js +3 -10
  59. package/dist-server/graphql/resolvers/worksheet/loading/loading.js.map +1 -1
  60. package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js +55 -21
  61. package/dist-server/graphql/resolvers/worksheet/loading-worksheet.js.map +1 -1
  62. package/dist-server/graphql/resolvers/worksheet/packing/index.js +2 -1
  63. package/dist-server/graphql/resolvers/worksheet/packing/index.js.map +1 -1
  64. package/dist-server/graphql/resolvers/worksheet/packing/packing.js +4 -4
  65. package/dist-server/graphql/resolvers/worksheet/packing/packing.js.map +1 -1
  66. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js +4 -4
  67. package/dist-server/graphql/resolvers/worksheet/packing/scan-product-packing.js.map +1 -1
  68. package/dist-server/graphql/resolvers/worksheet/packing/undo-serial-number-packing.js +15 -0
  69. package/dist-server/graphql/resolvers/worksheet/packing/undo-serial-number-packing.js.map +1 -0
  70. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js +153 -132
  71. package/dist-server/graphql/resolvers/worksheet/packing-worksheet.js.map +1 -1
  72. package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js +2 -5
  73. package/dist-server/graphql/resolvers/worksheet/palletizing-pallets.js.map +1 -1
  74. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-worker.js +13 -10
  75. package/dist-server/graphql/resolvers/worksheet/picking/assign-picking-worker.js.map +1 -1
  76. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js +1 -1
  77. package/dist-server/graphql/resolvers/worksheet/picking/complete-batch-picking.js.map +1 -1
  78. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js +14 -25
  79. package/dist-server/graphql/resolvers/worksheet/picking/complete-picking.js.map +1 -1
  80. package/dist-server/graphql/resolvers/worksheet/picking/index.js +3 -1
  81. package/dist-server/graphql/resolvers/worksheet/picking/index.js.map +1 -1
  82. package/dist-server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.js +49 -58
  83. package/dist-server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.js.map +1 -1
  84. package/dist-server/graphql/resolvers/worksheet/picking/picking.js +4 -4
  85. package/dist-server/graphql/resolvers/worksheet/picking/picking.js.map +1 -1
  86. package/dist-server/graphql/resolvers/worksheet/picking/scan-product-picking.js +4 -4
  87. package/dist-server/graphql/resolvers/worksheet/picking/scan-product-picking.js.map +1 -1
  88. package/dist-server/graphql/resolvers/worksheet/picking/seal-tote.js +15 -0
  89. package/dist-server/graphql/resolvers/worksheet/picking/seal-tote.js.map +1 -0
  90. package/dist-server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.js +15 -0
  91. package/dist-server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.js.map +1 -0
  92. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js +10 -1
  93. package/dist-server/graphql/resolvers/worksheet/picking-worksheet.js.map +1 -1
  94. package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js +36 -0
  95. package/dist-server/graphql/resolvers/worksheet/putaway/complete-putaway.js.map +1 -1
  96. package/dist-server/graphql/resolvers/worksheet/sorting/complete-order-sorting.js +11 -6
  97. package/dist-server/graphql/resolvers/worksheet/sorting/complete-order-sorting.js.map +1 -1
  98. package/dist-server/graphql/resolvers/worksheet/sorting/scan-product-sorting.js +4 -4
  99. package/dist-server/graphql/resolvers/worksheet/sorting/scan-product-sorting.js.map +1 -1
  100. package/dist-server/graphql/resolvers/worksheet/sorting/sorting-product.js +4 -4
  101. package/dist-server/graphql/resolvers/worksheet/sorting/sorting-product.js.map +1 -1
  102. package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js +6 -0
  103. package/dist-server/graphql/resolvers/worksheet/sorting-worksheet.js.map +1 -1
  104. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js +3 -2
  105. package/dist-server/graphql/resolvers/worksheet/unloaded-inventories.js.map +1 -1
  106. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js +0 -21
  107. package/dist-server/graphql/resolvers/worksheet/unloading/complete-unloading.js.map +1 -1
  108. package/dist-server/graphql/resolvers/worksheet/unloading/index.js +3 -1
  109. package/dist-server/graphql/resolvers/worksheet/unloading/index.js.map +1 -1
  110. package/dist-server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.js +15 -0
  111. package/dist-server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.js.map +1 -0
  112. package/dist-server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.js +15 -0
  113. package/dist-server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.js.map +1 -0
  114. package/dist-server/graphql/resolvers/worksheet/unloading/unload.js.map +1 -1
  115. package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js +3 -1
  116. package/dist-server/graphql/resolvers/worksheet/unloading-worksheet.js.map +1 -1
  117. package/dist-server/graphql/resolvers/worksheet/worksheet.js +2 -0
  118. package/dist-server/graphql/resolvers/worksheet/worksheet.js.map +1 -1
  119. package/dist-server/graphql/resolvers/worksheet/worksheets.js +45 -5
  120. package/dist-server/graphql/resolvers/worksheet/worksheets.js.map +1 -1
  121. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js +13 -8
  122. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.js.map +1 -1
  123. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.js +19 -4
  124. package/dist-server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.js.map +1 -1
  125. package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.js +24 -34
  126. package/dist-server/graphql/resolvers/worksheet-detail/generate-pallet-id.js.map +1 -1
  127. package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.js +12 -3
  128. package/dist-server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.js.map +1 -1
  129. package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js +10 -2
  130. package/dist-server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.js.map +1 -1
  131. package/dist-server/graphql/resolvers/worksheet-movement/create-worksheet-movement.js +2 -5
  132. package/dist-server/graphql/resolvers/worksheet-movement/create-worksheet-movement.js.map +1 -1
  133. package/dist-server/graphql/types/worksheet/find-release-orders-by-task-no.js +11 -0
  134. package/dist-server/graphql/types/worksheet/find-release-orders-by-task-no.js.map +1 -0
  135. package/dist-server/graphql/types/worksheet/index.js +52 -11
  136. package/dist-server/graphql/types/worksheet/index.js.map +1 -1
  137. package/dist-server/graphql/types/worksheet/loaded-worksheet-detail.js +1 -0
  138. package/dist-server/graphql/types/worksheet/loaded-worksheet-detail.js.map +1 -1
  139. package/dist-server/graphql/types/worksheet/picking-assignment-status.js +2 -2
  140. package/dist-server/graphql/types/worksheet/worksheet-detail-info.js +8 -3
  141. package/dist-server/graphql/types/worksheet/worksheet-detail-info.js.map +1 -1
  142. package/dist-server/graphql/types/worksheet/worksheet-info.js +3 -0
  143. package/dist-server/graphql/types/worksheet/worksheet-info.js.map +1 -1
  144. package/dist-server/graphql/types/worksheet/worksheet-patch.js +1 -0
  145. package/dist-server/graphql/types/worksheet/worksheet-patch.js.map +1 -1
  146. package/dist-server/graphql/types/worksheet/worksheet.js +1 -0
  147. package/dist-server/graphql/types/worksheet/worksheet.js.map +1 -1
  148. package/dist-server/graphql/types/worksheet-detail/index.js +0 -2
  149. package/dist-server/graphql/types/worksheet-detail/index.js.map +1 -1
  150. package/dist-server/graphql/types/worksheet-detail/inventory-detail.js +5 -2
  151. package/dist-server/graphql/types/worksheet-detail/inventory-detail.js.map +1 -1
  152. package/dist-server/graphql/types/worksheet-detail/worksheet-detail-patch.js +1 -1
  153. package/dist-server/index.js +5 -0
  154. package/dist-server/index.js.map +1 -1
  155. package/dist-server/routes.js +12 -0
  156. package/dist-server/routes.js.map +1 -1
  157. package/dist-server/utils/inventory-util.js +14 -25
  158. package/dist-server/utils/inventory-util.js.map +1 -1
  159. package/dist-server/utils/worksheet-no-generator.js +25 -28
  160. package/dist-server/utils/worksheet-no-generator.js.map +1 -1
  161. package/package.json +17 -17
  162. package/server/constants/template.ts +1 -0
  163. package/server/controllers/ecommerce/sellercraft-controller.ts +38 -10
  164. package/server/controllers/inbound/putaway-worksheet-controller.ts +27 -13
  165. package/server/controllers/inbound/unloading-worksheet-controller.ts +376 -8
  166. package/server/controllers/index.ts +3 -0
  167. package/server/controllers/outbound/loading-worksheet-controller.ts +94 -15
  168. package/server/controllers/outbound/packing-worksheet-controller.ts +224 -9
  169. package/server/controllers/outbound/picking-worksheet-controller.ts +653 -24
  170. package/server/controllers/outbound/returning-worksheet-controller.ts +12 -1
  171. package/server/controllers/outbound/sorting-worksheet-controller.ts +303 -18
  172. package/server/controllers/render-fm-grn.ts +266 -0
  173. package/server/controllers/render-grn.ts +95 -52
  174. package/server/controllers/render-invoices.ts +119 -72
  175. package/server/controllers/render-manifest.ts +12 -5
  176. package/server/controllers/render-orientage-do.ts +11 -11
  177. package/server/controllers/render-orientage-grn.ts +12 -11
  178. package/server/controllers/render-po.ts +170 -0
  179. package/server/controllers/render-ro-do.ts +93 -8
  180. package/server/controllers/worksheet-controller.ts +32 -3
  181. package/server/entities/index.ts +2 -1
  182. package/server/entities/warehouse-bizplace-onhand-inventory.ts +147 -0
  183. package/server/graphql/resolvers/worksheet/batch-picking-worksheet.ts +14 -0
  184. package/server/graphql/resolvers/worksheet/cancel-draft-release-order.ts +27 -0
  185. package/server/graphql/resolvers/worksheet/cycle-count-adjustment.ts +15 -5
  186. package/server/graphql/resolvers/worksheet/find-release-orders-by-task-no.ts +35 -2
  187. package/server/graphql/resolvers/worksheet/generate-worksheet/generate-arrival-notice-worksheet.ts +35 -25
  188. package/server/graphql/resolvers/worksheet/index.ts +3 -1
  189. package/server/graphql/resolvers/worksheet/inventories-by-pallet.ts +2 -0
  190. package/server/graphql/resolvers/worksheet/loading/complete-loading.ts +67 -8
  191. package/server/graphql/resolvers/worksheet/loading/loading.ts +5 -12
  192. package/server/graphql/resolvers/worksheet/loading-worksheet.ts +66 -13
  193. package/server/graphql/resolvers/worksheet/packing/index.ts +3 -1
  194. package/server/graphql/resolvers/worksheet/packing/packing.ts +5 -4
  195. package/server/graphql/resolvers/worksheet/packing/scan-product-packing.ts +9 -4
  196. package/server/graphql/resolvers/worksheet/packing/undo-serial-number-packing.ts +24 -0
  197. package/server/graphql/resolvers/worksheet/packing-worksheet.ts +167 -145
  198. package/server/graphql/resolvers/worksheet/palletizing-pallets.ts +2 -2
  199. package/server/graphql/resolvers/worksheet/picking/assign-picking-worker.ts +15 -11
  200. package/server/graphql/resolvers/worksheet/picking/complete-batch-picking.ts +1 -1
  201. package/server/graphql/resolvers/worksheet/picking/complete-picking.ts +18 -31
  202. package/server/graphql/resolvers/worksheet/picking/index.ts +5 -1
  203. package/server/graphql/resolvers/worksheet/picking/picking-assignment-status-by-user.ts +62 -61
  204. package/server/graphql/resolvers/worksheet/picking/picking.ts +30 -4
  205. package/server/graphql/resolvers/worksheet/picking/scan-product-picking.ts +7 -4
  206. package/server/graphql/resolvers/worksheet/picking/seal-tote.ts +25 -0
  207. package/server/graphql/resolvers/worksheet/picking/undo-serial-number-picking.ts +24 -0
  208. package/server/graphql/resolvers/worksheet/picking-worksheet.ts +13 -2
  209. package/server/graphql/resolvers/worksheet/putaway/complete-putaway.ts +45 -2
  210. package/server/graphql/resolvers/worksheet/sorting/complete-order-sorting.ts +13 -9
  211. package/server/graphql/resolvers/worksheet/sorting/scan-product-sorting.ts +6 -4
  212. package/server/graphql/resolvers/worksheet/sorting/sorting-product.ts +6 -4
  213. package/server/graphql/resolvers/worksheet/sorting-worksheet.ts +6 -0
  214. package/server/graphql/resolvers/worksheet/unloaded-inventories.ts +6 -2
  215. package/server/graphql/resolvers/worksheet/unloading/complete-unloading.ts +0 -25
  216. package/server/graphql/resolvers/worksheet/unloading/index.ts +4 -0
  217. package/server/graphql/resolvers/worksheet/unloading/scan-serial-number-unload.ts +26 -0
  218. package/server/graphql/resolvers/worksheet/unloading/undo-serial-number-unload.ts +24 -0
  219. package/server/graphql/resolvers/worksheet/unloading/unload.ts +3 -1
  220. package/server/graphql/resolvers/worksheet/unloading-worksheet.ts +3 -1
  221. package/server/graphql/resolvers/worksheet/worksheet.ts +2 -0
  222. package/server/graphql/resolvers/worksheet/worksheets.ts +64 -5
  223. package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details-by-bulk.ts +30 -14
  224. package/server/graphql/resolvers/worksheet-detail/generate-batch-picking-worksheet-details.ts +39 -11
  225. package/server/graphql/resolvers/worksheet-detail/generate-pallet-id.ts +46 -49
  226. package/server/graphql/resolvers/worksheet-detail/generate-picking-worksheet-details.ts +15 -3
  227. package/server/graphql/resolvers/worksheet-detail/generate-release-good-worksheet-details.ts +18 -1
  228. package/server/graphql/resolvers/worksheet-movement/create-worksheet-movement.ts +2 -2
  229. package/server/graphql/types/worksheet/find-release-orders-by-task-no.ts +8 -0
  230. package/server/graphql/types/worksheet/index.ts +52 -11
  231. package/server/graphql/types/worksheet/loaded-worksheet-detail.ts +1 -0
  232. package/server/graphql/types/worksheet/picking-assignment-status.ts +2 -2
  233. package/server/graphql/types/worksheet/worksheet-detail-info.ts +8 -3
  234. package/server/graphql/types/worksheet/worksheet-info.ts +3 -0
  235. package/server/graphql/types/worksheet/worksheet-patch.ts +1 -0
  236. package/server/graphql/types/worksheet/worksheet.ts +1 -0
  237. package/server/graphql/types/worksheet-detail/index.ts +0 -2
  238. package/server/graphql/types/worksheet-detail/inventory-detail.ts +5 -2
  239. package/server/graphql/types/worksheet-detail/worksheet-detail-patch.ts +1 -1
  240. package/server/index.ts +5 -0
  241. package/server/routes.ts +17 -0
  242. package/server/utils/inventory-util.ts +15 -23
  243. package/server/utils/worksheet-no-generator.ts +25 -25
@@ -16,9 +16,15 @@ export const worksheetsResolver = {
16
16
  const arrivalNoticeParam: any = params.filters.find((param: any) => param.name === 'arrivalNoticeNo')
17
17
  const arrivalNoticeRefNoParam = params.filters.find(param => param.name === 'arrivalNoticeRefNo')
18
18
  const arrivalNoticeCrossDockingParam = params.filters.find(param => param.name === 'crossDocking')
19
+ const arrivalNoticeEtaDateParam = params.filters.find(param => param.name === 'etaDate')
19
20
  const typeParam = params.filters.find(param => param.name === 'type')
20
21
 
21
- if (arrivalNoticeParam || arrivalNoticeRefNoParam || arrivalNoticeCrossDockingParam) {
22
+ if (
23
+ arrivalNoticeParam ||
24
+ arrivalNoticeRefNoParam ||
25
+ arrivalNoticeCrossDockingParam ||
26
+ arrivalNoticeEtaDateParam
27
+ ) {
22
28
  let arrFilters = []
23
29
  if (arrivalNoticeParam) {
24
30
  params.filters.splice(
@@ -41,6 +47,9 @@ export const worksheetsResolver = {
41
47
  )
42
48
  arrFilters.push({ ...arrivalNoticeCrossDockingParam, name: 'crossDocking' })
43
49
  }
50
+ if (arrivalNoticeEtaDateParam) {
51
+ params.filters.splice(params.filters.findIndex(item => item.name == 'etaDate'))
52
+ }
44
53
  const foundArrivalNotices: ArrivalNotice[] = await getRepository(ArrivalNotice).find({
45
54
  ...convertListParams({ filters: arrFilters })
46
55
  })
@@ -99,12 +108,16 @@ export const worksheetsResolver = {
99
108
  const releaseGoodCrossDockingParam = params.filters.find(param => param.name === 'crossDocking')
100
109
  const releaseGoodCourierOptionParam = params.filters.find(param => param.name === 'courierOption')
101
110
  const releaseGoodPackingOptionParam = params.filters.find(param => param.name === 'packingOption')
111
+ const orderRemarkParam = params.filters.find(param => param.name === 'orderRemark')
112
+
113
+ const releaseGoodPickerOptionParam = params.filters.find(param => param.name === 'assignee')
102
114
  if (
103
115
  releaseGoodParam ||
104
116
  releaseGoodRefNoParam ||
105
117
  releaseGoodCrossDockingParam ||
106
118
  releaseGoodCourierOptionParam ||
107
- releaseGoodPackingOptionParam
119
+ releaseGoodPackingOptionParam ||
120
+ orderRemarkParam
108
121
  ) {
109
122
  let arrFilters = []
110
123
  if (releaseGoodParam) {
@@ -114,6 +127,7 @@ export const worksheetsResolver = {
114
127
  )
115
128
  arrFilters.push({ ...releaseGoodParam, name: 'name' })
116
129
  }
130
+
117
131
  if (releaseGoodRefNoParam) {
118
132
  params.filters.splice(
119
133
  params.filters.findIndex(item => item.name == 'releaseGoodRefNo'),
@@ -146,8 +160,21 @@ export const worksheetsResolver = {
146
160
  arrFilters.push({ ...releaseGoodPackingOptionParam, name: 'packingOption' })
147
161
  }
148
162
 
163
+ if (orderRemarkParam) {
164
+ params.filters.splice(
165
+ params.filters.findIndex(item => item.name == 'orderRemark'),
166
+ 1
167
+ )
168
+
169
+ if (orderRemarkParam?.value == true) {
170
+ arrFilters.push({ operator: 'is_not_null', name: 'remark' })
171
+ } else if (orderRemarkParam?.value == false) {
172
+ arrFilters.push({ operator: 'is_null', name: 'remark' })
173
+ }
174
+ }
175
+
149
176
  const foundReleaseGoods: ReleaseGood[] = await getRepository(ReleaseGood).find({
150
- ...convertListParams({ filters: arrFilters })
177
+ ...convertListParams({ filters: arrFilters }, { searchables: ['arrivalNoticeNo', 'releaseGoodNo'] })
151
178
  })
152
179
 
153
180
  if (foundReleaseGoods && foundReleaseGoods.length) {
@@ -252,6 +279,31 @@ export const worksheetsResolver = {
252
279
  }
253
280
  }
254
281
 
282
+ //find assignee
283
+
284
+ const assigneeParam = params.filters.find(param => param.name === 'assignee')
285
+ let assigneeFilter = []
286
+ if (assigneeParam) {
287
+ params.filters.splice(
288
+ params.filters.findIndex(item => item.name == 'assignee'),
289
+ 1
290
+ )
291
+ assigneeFilter.push({ ...assigneeParam, name: 'name' })
292
+
293
+ const foundAssignee: User[] = await getRepository(User).find({
294
+ ...convertListParams({ filters: assigneeFilter })
295
+ })
296
+
297
+ if (foundAssignee) {
298
+ params.filters.push({
299
+ name: 'assigneeId',
300
+ operator: 'in',
301
+ value: foundAssignee.map((foundIC: User) => foundIC.id),
302
+ relation: false
303
+ })
304
+ }
305
+ }
306
+
255
307
  ////Set default bizplace filter
256
308
  const bizplaceFilter = params.filters.find(param => param.name === 'bizplaceId')
257
309
  if (!bizplaceFilter && typeParam.value[0] !== WORKSHEET_TYPE.BATCH_PICKING) {
@@ -276,7 +328,7 @@ export const worksheetsResolver = {
276
328
  params.filters = params.filters.filter(param => param.name !== 'name')
277
329
  }
278
330
 
279
- buildQuery(qb, params, context)
331
+ buildQuery(qb, params, context, { searchables: ['arrivalNoticeNo'] })
280
332
 
281
333
  if (orderName !== '') {
282
334
  qb.andWhere(
@@ -379,7 +431,14 @@ export const worksheetsResolver = {
379
431
 
380
432
  qb.orderBy(sort)
381
433
 
382
- const [items, total] = await qb.getManyAndCount()
434
+ let [items, total] = await qb.getManyAndCount()
435
+
436
+ items = items.map(item => {
437
+ return {
438
+ ...item,
439
+ orderRemark: item?.releaseGood?.remark ? true : false
440
+ }
441
+ })
383
442
 
384
443
  return { items, total }
385
444
  } catch (error) {
@@ -1,20 +1,26 @@
1
- import { Product } from '@things-factory/product-base'
2
- import { OrderInventory, OrderNoGenerator, ORDER_INVENTORY_STATUS, ORDER_TYPES } from '@things-factory/sales-base'
3
- import { Inventory } from '@things-factory/warehouse-base'
1
+ import { EntityManager, getRepository } from 'typeorm'
2
+
3
+ import { User } from '@things-factory/auth-base'
4
+ import {
5
+ ORDER_INVENTORY_STATUS,
6
+ ORDER_PRODUCT_STATUS,
7
+ ORDER_TYPES,
8
+ OrderInventory,
9
+ OrderNoGenerator,
10
+ OrderProduct
11
+ } from '@things-factory/sales-base'
4
12
  import { Setting } from '@things-factory/setting-base'
5
- import { EntityManager, In, getRepository } from 'typeorm'
13
+ import { Domain } from '@things-factory/shell'
14
+ import { Inventory } from '@things-factory/warehouse-base'
15
+
6
16
  import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../constants'
7
17
  import { Worksheet, WorksheetDetail } from '../../../entities'
8
- import { WorksheetNoGenerator, inventoriesByStrategy } from '../../../utils'
9
- import { User } from '@things-factory/auth-base'
10
- import { Domain } from '@things-factory/shell'
11
- import { generateBatchPickingWorksheetDetailsResolver } from './generate-batch-picking-worksheet-details'
12
- import orderBy from 'lodash/orderBy'
18
+ import { inventoriesByStrategy, WorksheetNoGenerator } from '../../../utils'
13
19
 
14
20
  export const generateBatchPickingWorksheetDetailsByBulkResolver = {
15
21
  async generateBatchPickingWorksheetDetailsByBulk(
16
22
  _: any,
17
- { worksheetId, bizplaceId, selectedItems, pickingStrategy },
23
+ { worksheetId, bizplaceId, selectedItems },
18
24
  context: any
19
25
  ): Promise<Boolean> {
20
26
  const { tx, user, domain }: { tx: EntityManager; user: User; domain: Domain } = context.state
@@ -50,7 +56,7 @@ export const generateBatchPickingWorksheetDetailsByBulkResolver = {
50
56
  })
51
57
 
52
58
  await Promise.all(
53
- selectedItems.map(async (oi: OrderInventory) => {
59
+ selectedItems.map(async (oi: OrderInventory & { pickingStrategy: string }) => {
54
60
  try {
55
61
  let pOrderInventories = tx.getRepository(OrderInventory).find({
56
62
  where: {
@@ -61,7 +67,7 @@ export const generateBatchPickingWorksheetDetailsByBulkResolver = {
61
67
  packingSize: oi.packingSize,
62
68
  status: ORDER_INVENTORY_STATUS.PENDING_SPLIT
63
69
  },
64
- relations: ['product', 'releaseGood', 'bizplace'],
70
+ relations: ['product', 'releaseGood', 'bizplace', 'orderProduct'],
65
71
  order: {
66
72
  releaseQty: 'DESC'
67
73
  }
@@ -72,7 +78,6 @@ export const generateBatchPickingWorksheetDetailsByBulkResolver = {
72
78
  ...oi,
73
79
  worksheetId: worksheet.id,
74
80
  bizplaceId,
75
- pickingStrategy,
76
81
  locationSortingRules: inventoryAssignmentSetting ? JSON.parse(inventoryAssignmentSetting.value) : false
77
82
  },
78
83
  domain,
@@ -122,6 +127,14 @@ export const generateBatchPickingWorksheetDetailsByBulkResolver = {
122
127
  .where('id = :id', { id: targetInventory.id })
123
128
  await qbInv.execute()
124
129
 
130
+ // update order product status to ASSIGNED
131
+ await tx
132
+ .getRepository(OrderProduct)
133
+ .update(
134
+ { id: orderInventory.orderProduct.id },
135
+ { status: ORDER_PRODUCT_STATUS.ASSIGNED, updater: user }
136
+ )
137
+
125
138
  // Create new order inventory with status -> READY_TO_PICK, type -> RELEASE_OF_GOODS
126
139
  let newTargetInventory: OrderInventory = new OrderInventory()
127
140
  newTargetInventory = {
@@ -139,7 +152,9 @@ export const generateBatchPickingWorksheetDetailsByBulkResolver = {
139
152
  creator: user,
140
153
  inventory: targetInventory,
141
154
  releaseQty: allocatedQty,
142
- releaseUomValue: allocatedUomValue
155
+ releaseUomValue: allocatedUomValue,
156
+ uom: orderInventory.uom,
157
+ orderProduct: orderInventory.orderProduct
143
158
  }
144
159
  newTargetInventory = await tx.getRepository(OrderInventory).save(newTargetInventory)
145
160
 
@@ -152,6 +167,7 @@ export const generateBatchPickingWorksheetDetailsByBulkResolver = {
152
167
  bizplace: orderInventory.bizplace,
153
168
  name: WorksheetNoGenerator.batchPickingDetail(),
154
169
  targetInventory: newTargetInventory,
170
+ targetProduct: newTargetInventory.orderProduct,
155
171
  type: WORKSHEET_TYPE.BATCH_PICKING,
156
172
  status: WORKSHEET_STATUS.DEACTIVATED,
157
173
  creator: user
@@ -1,12 +1,20 @@
1
+ import { EntityManager } from 'typeorm'
2
+
3
+ import { User } from '@things-factory/auth-base'
1
4
  import { Product } from '@things-factory/product-base'
2
- import { OrderInventory, OrderNoGenerator, ORDER_INVENTORY_STATUS } from '@things-factory/sales-base'
5
+ import {
6
+ ORDER_INVENTORY_STATUS,
7
+ ORDER_PRODUCT_STATUS,
8
+ OrderInventory,
9
+ OrderNoGenerator,
10
+ OrderProduct
11
+ } from '@things-factory/sales-base'
12
+ import { Domain } from '@things-factory/shell'
3
13
  import { Inventory } from '@things-factory/warehouse-base'
4
- import { EntityManager } from 'typeorm'
14
+
5
15
  import { WORKSHEET_STATUS, WORKSHEET_TYPE } from '../../../constants'
6
16
  import { Worksheet, WorksheetDetail } from '../../../entities'
7
17
  import { WorksheetNoGenerator } from '../../../utils'
8
- import { User } from '@things-factory/auth-base'
9
- import { Domain } from '@things-factory/shell'
10
18
 
11
19
  export const generateBatchPickingWorksheetDetailsResolver = {
12
20
  async generateBatchPickingWorksheetDetails(
@@ -15,7 +23,7 @@ export const generateBatchPickingWorksheetDetailsResolver = {
15
23
  context: any
16
24
  ): Promise<void> {
17
25
  const { tx, user, domain }: { tx: EntityManager; user: User; domain: Domain } = context.state
18
-
26
+
19
27
  // 1. Find Related Worksheet
20
28
  const worksheet: Worksheet = await tx.getRepository(Worksheet).findOne({
21
29
  where: { name: worksheetNo, domain },
@@ -28,14 +36,21 @@ export const generateBatchPickingWorksheetDetailsResolver = {
28
36
  })
29
37
 
30
38
  // Only proceed if worksheet status IS "DEACTIVATED"
31
- if(worksheet.status != WORKSHEET_STATUS.DEACTIVATED){
39
+ if (worksheet.status != WORKSHEET_STATUS.DEACTIVATED) {
32
40
  return
33
41
  }
34
42
 
35
43
  // 2. Find all existing order inventory that is related to the product
36
44
  let prevOrdInvs: OrderInventory[] = await tx.getRepository(OrderInventory).find({
37
- where: { domain, refWorksheetId: worksheet.id, product: productId, batchId, packingType, status: ORDER_INVENTORY_STATUS.PENDING_SPLIT },
38
- relations: ['releaseGood', 'bizplace']
45
+ where: {
46
+ domain,
47
+ refWorksheetId: worksheet.id,
48
+ product: productId,
49
+ batchId,
50
+ packingType,
51
+ status: ORDER_INVENTORY_STATUS.PENDING_SPLIT
52
+ },
53
+ relations: ['releaseGood', 'bizplace', 'orderProduct']
39
54
  })
40
55
 
41
56
  // Sort all release qty from highest to lowest
@@ -80,6 +95,8 @@ export const generateBatchPickingWorksheetDetailsResolver = {
80
95
  newTargetInventory.packingType = prevOrdInv.packingType
81
96
  newTargetInventory.packingSize = parseFloat(prevOrdInv.packingSize)
82
97
  newTargetInventory.creator = user
98
+ newTargetInventory.uom = selectedOrdInv.uom
99
+ newTargetInventory.orderProduct = prevOrdInv.orderProduct
83
100
 
84
101
  let inventory: Inventory = await tx.getRepository(Inventory).findOne(selectedOrdInv.inventory.id)
85
102
 
@@ -100,7 +117,7 @@ export const generateBatchPickingWorksheetDetailsResolver = {
100
117
 
101
118
  requiredQty = fulfiledQty <= 0 ? 0 : fulfiledQty
102
119
  requiredUomValue = fulfiledUomValue <= 0 ? 0 : fulfiledUomValue
103
-
120
+
104
121
  await tx.getRepository(Inventory).update(
105
122
  { domain, id: inventory.id },
106
123
  {
@@ -115,6 +132,11 @@ export const generateBatchPickingWorksheetDetailsResolver = {
115
132
  }
116
133
  )
117
134
 
135
+ // update order product status to ASSIGNED
136
+ await tx
137
+ .getRepository(OrderProduct)
138
+ .update({ id: prevOrdInv.orderProduct.id }, { status: ORDER_PRODUCT_STATUS.ASSIGNED, updater: user })
139
+
118
140
  // Generate Worksheet Detail
119
141
  let newWorksheetDetail: WorksheetDetail = new WorksheetDetail()
120
142
  newWorksheetDetail = {
@@ -124,6 +146,7 @@ export const generateBatchPickingWorksheetDetailsResolver = {
124
146
  bizplace: prevOrdInv.bizplace,
125
147
  name: WorksheetNoGenerator.batchPickingDetail(),
126
148
  targetInventory: newTargetInventory,
149
+ targetProduct: prevOrdInv.orderProduct,
127
150
  type: WORKSHEET_TYPE.BATCH_PICKING,
128
151
  status: WORKSHEET_STATUS.DEACTIVATED,
129
152
  creator: user
@@ -134,11 +157,16 @@ export const generateBatchPickingWorksheetDetailsResolver = {
134
157
  selectedOrdInv.releaseUomValue = remainingUomValue <= 0 ? 0 : remainingUomValue
135
158
 
136
159
  // insufficient qty for current order inventory, use the next inventory qty
137
- if (selectedOrdInv.releaseQty == 0){
160
+ if (selectedOrdInv.releaseQty == 0) {
138
161
  j = j + 1
139
162
  }
140
163
  }
141
- await tx.getRepository(OrderInventory).update({id: prevOrdInvs[i].id},{status: ORDER_INVENTORY_STATUS.COMPLETE_SPLIT, updater: user, updatedAt: new Date()})
164
+ await tx
165
+ .getRepository(OrderInventory)
166
+ .update(
167
+ { id: prevOrdInvs[i].id },
168
+ { status: ORDER_INVENTORY_STATUS.COMPLETE_SPLIT, updater: user, updatedAt: new Date() }
169
+ )
142
170
  }
143
171
  }
144
172
  }
@@ -1,33 +1,22 @@
1
- import { Domain } from '@things-factory/shell'
2
- import { EntityManager } from 'typeorm'
1
+ import { EntityManager, In } from 'typeorm'
2
+
3
3
  import { generateId } from '@things-factory/id-rule-base'
4
- import { In } from 'typeorm'
4
+ import { Domain } from '@things-factory/shell'
5
+
5
6
  import { WorksheetDetail } from '../../../entities'
6
7
 
7
8
  export const generatePalletIdResolver = {
8
9
  async generatePalletId(_: any, { targets, type }, context: any) {
9
10
  const { tx, domain }: { tx: EntityManager; domain: Domain } = context.state
10
- // 1. get and set the date
11
- const today = new Date()
12
- const year = today.getFullYear()
13
- const month = today.getMonth()
14
- const day = today.getDate()
15
-
16
- const yy = String(year).substr(String(year).length - 2)
17
- const mm = String(month + 1).padStart(2, '0')
18
- const dd = String(day).padStart(2, '0')
19
-
20
- const date = yy + mm + dd
11
+ // 1. get date in yymmdd format
12
+ const date = new Date().toJSON().slice(0, 10).replace(/-/g, '').slice(2, 8)
21
13
  let results = []
22
14
 
23
- // 2. get worksheet detail
24
- let ids = targets.map(target => target.id)
25
-
26
- // - getRepository using In(array) to pass the value to defined variable
15
+ // 2. get worksheet details
27
16
  const foundWorksheetDetails: WorksheetDetail[] = await tx.getRepository(WorksheetDetail).find({
28
17
  where: {
29
18
  domain,
30
- id: In(ids)
19
+ id: In(targets.map(target => target.id))
31
20
  },
32
21
  relations: [
33
22
  'domain',
@@ -35,6 +24,8 @@ export const generatePalletIdResolver = {
35
24
  'worksheet',
36
25
  'worker',
37
26
  'targetProduct',
27
+ 'targetProduct.arrivalNotice',
28
+ 'targetProduct.arrivalNotice.purchaseOrder',
38
29
  'targetProduct.product',
39
30
  'targetInventory',
40
31
  'targetInventory.product',
@@ -44,8 +35,7 @@ export const generatePalletIdResolver = {
44
35
  })
45
36
 
46
37
  // 3. from worksheet detail get product name, product type, batchid, packing type, bizplace
47
-
48
- if (foundWorksheetDetails.length <= 0) throw new Error('Unable to find worksheet details')
38
+ if (!foundWorksheetDetails?.length) throw new Error('Unable to find worksheet details')
49
39
  else {
50
40
  for (let i = 0; i < foundWorksheetDetails.length; i++) {
51
41
  let foundWSD = foundWorksheetDetails[i]
@@ -53,39 +43,46 @@ export const generatePalletIdResolver = {
53
43
  if (foundWSD.id === targets[idx].id) {
54
44
  // 4. generate pallet id based on print qty > call generateId resolver
55
45
  for (let i = 0; i < targets[idx].printQty; i++) {
56
- const generatedPalletId = await generateId({
57
- domain,
58
- type,
59
- seed: {
60
- batchId: foundWSD?.targetProduct?.batchId
61
- ? foundWSD.targetProduct.batchId
62
- : foundWSD?.targetInventory?.batchId
63
- ? foundWSD.targetInventory.batchId
64
- : foundWSD.targetVas.targetBatchId,
65
- date: date
66
- }
67
- })
68
-
46
+ let result: any = {}
69
47
  // 5. map all data to be returned
70
- if (foundWSD.targetProduct != null) {
71
- results.push({
48
+ if (foundWSD.targetProduct) {
49
+ result = {
72
50
  ...foundWSD.targetProduct,
73
- palletId: generatedPalletId,
74
- bizplace: foundWSD.bizplace
75
- })
76
- } else if (foundWSD.targetInventory != null) {
77
- results.push({
51
+ bizplace: foundWSD.bizplace,
52
+ orderProductRemark: foundWSD.targetProduct.remark,
53
+ purchaseOrderNo: foundWSD.targetProduct.arrivalNotice?.purchaseOrder?.name || '',
54
+ arrivalNoticeRefNo: foundWSD.targetProduct.arrivalNotice?.refNo || ''
55
+ }
56
+ } else if (foundWSD.targetInventory) {
57
+ result = {
78
58
  ...foundWSD.targetInventory,
79
- palletId: generatedPalletId,
80
- bizplace: foundWSD.bizplace
81
- })
82
- } else if (foundWSD.targetVas != null) {
83
- results.push({
59
+ bizplace: foundWSD.bizplace,
60
+ orderProductRemark: '',
61
+ purchaseOrderNo: '',
62
+ arrivalNoticeRefNo: ''
63
+ }
64
+ } else if (foundWSD.targetVas) {
65
+ result = {
84
66
  ...foundWSD.targetVas,
85
- palletId: generatedPalletId,
86
- bizplace: foundWSD.bizplace
87
- })
67
+ bizplace: foundWSD.bizplace,
68
+ batchId: foundWSD.targetVas.targetBatchId,
69
+ orderProductRemark: '',
70
+ purchaseOrderNo: '',
71
+ arrivalNoticeRefNo: ''
72
+ }
88
73
  }
74
+
75
+ results.push({
76
+ ...result,
77
+ palletId: await generateId({
78
+ domain,
79
+ type,
80
+ seed: {
81
+ batchId: result.batchId || '',
82
+ date
83
+ }
84
+ })
85
+ })
89
86
  }
90
87
  }
91
88
  }
@@ -3,10 +3,12 @@ import { EntityManager } from 'typeorm'
3
3
  import { User } from '@things-factory/auth-base'
4
4
  import {
5
5
  ORDER_INVENTORY_STATUS,
6
+ ORDER_PRODUCT_STATUS,
6
7
  ORDER_TYPES,
7
8
  OrderInventory,
8
9
  OrderInventoryPatch,
9
10
  OrderNoGenerator,
11
+ OrderProduct,
10
12
  ReleaseGood
11
13
  } from '@things-factory/sales-base'
12
14
  import { Setting } from '@things-factory/setting-base'
@@ -20,7 +22,7 @@ import { WorksheetNoGenerator } from '../../../utils'
20
22
  export const generatePickingWorksheetDetailsResolver = {
21
23
  async generatePickingWorksheetDetails(
22
24
  _: any,
23
- { bizplaceId, selectedItems, pickingStrategy, worksheetNo, locationSortingRules },
25
+ { bizplaceId, selectedItems, worksheetNo, locationSortingRules },
24
26
  context: any
25
27
  ): Promise<Boolean> {
26
28
  const { tx, user, domain }: { tx: EntityManager; user: User; domain: Domain } = context.state
@@ -54,7 +56,6 @@ export const generatePickingWorksheetDetailsResolver = {
54
56
  bizplaceId,
55
57
  worksheetId,
56
58
  selectedItems,
57
- pickingStrategy,
58
59
  locationSortingRules,
59
60
  tx
60
61
  )
@@ -117,6 +118,11 @@ export const generatePickingWorksheetDetailsResolver = {
117
118
  .where('id = :id', { id: targetInventory.inventory.id })
118
119
  .execute()
119
120
 
121
+ // update order product status to ASSIGNED
122
+ await tx
123
+ .getRepository(OrderProduct)
124
+ .update({ id: targetInventory.orderProduct.id }, { status: ORDER_PRODUCT_STATUS.ASSIGNED, updater: user })
125
+
120
126
  // 7. collect new worksheet details records
121
127
  const worksheetDetail: WorksheetDetail = Object.assign(new WorksheetDetail(), {
122
128
  domain,
@@ -125,6 +131,7 @@ export const generatePickingWorksheetDetailsResolver = {
125
131
  name: WorksheetNoGenerator.pickingDetail(),
126
132
  seq: 0,
127
133
  targetInventory,
134
+ targetProduct: targetInventory.orderProduct,
128
135
  type: WORKSHEET_TYPE.PICKING,
129
136
  status: WORKSHEET_STATUS.DEACTIVATED,
130
137
  creator: user,
@@ -162,6 +169,9 @@ function _composeWorksheetDetails(
162
169
 
163
170
  while (compReleaseQty < record.releaseQty) {
164
171
  const inv = inventories[idx]
172
+
173
+ if (!inv) break
174
+
165
175
  let releaseQty: number = 0
166
176
  let releaseUomValue: number = 0
167
177
 
@@ -196,7 +206,9 @@ function _composeWorksheetDetails(
196
206
  creator: user,
197
207
  updater: user,
198
208
  status: ORDER_INVENTORY_STATUS.READY_TO_PICK,
199
- type: ORDER_TYPES.RELEASE_OF_GOODS.value
209
+ type: ORDER_TYPES.RELEASE_OF_GOODS,
210
+ uom: record.uom,
211
+ orderProduct: { id: inv.orderProductId }
200
212
  }
201
213
  })
202
214
 
@@ -2,7 +2,13 @@ import { EntityManager } from 'typeorm'
2
2
 
3
3
  import { User } from '@things-factory/auth-base'
4
4
  import { Product } from '@things-factory/product-base'
5
- import { ORDER_INVENTORY_STATUS, OrderInventory, OrderNoGenerator } from '@things-factory/sales-base'
5
+ import {
6
+ ORDER_INVENTORY_STATUS,
7
+ ORDER_PRODUCT_STATUS,
8
+ OrderInventory,
9
+ OrderNoGenerator,
10
+ OrderProduct
11
+ } from '@things-factory/sales-base'
6
12
  import { Domain } from '@things-factory/shell'
7
13
  import { Inventory } from '@things-factory/warehouse-base'
8
14
 
@@ -74,6 +80,10 @@ export async function generateReleaseGoodWorksheetDetails(
74
80
  let targetInventory: OrderInventory = wsd.targetInventory
75
81
  const inventory: Inventory = await tx.getRepository(Inventory).findOne(targetInventory.inventory.id)
76
82
 
83
+ let targetProduct: OrderProduct = await tx
84
+ .getRepository(OrderProduct)
85
+ .findOne({ where: { id: wsd.targetProduct.id } })
86
+
77
87
  targetInventory = await tx.getRepository(OrderInventory).save({
78
88
  ...targetInventory,
79
89
  domain,
@@ -87,6 +97,7 @@ export async function generateReleaseGoodWorksheetDetails(
87
97
  product: await tx.getRepository(Product).findOne(productId),
88
98
  packingType,
89
99
  packingSize,
100
+ orderProduct: targetProduct,
90
101
  creator: user,
91
102
  updater: user
92
103
  })
@@ -105,6 +116,11 @@ export async function generateReleaseGoodWorksheetDetails(
105
116
  updater: user
106
117
  })
107
118
 
119
+ // update order product status to ASSIGNED
120
+ await tx
121
+ .getRepository(OrderProduct)
122
+ .update({ id: targetProduct.id }, { status: ORDER_PRODUCT_STATUS.ASSIGNED, updater: user })
123
+
108
124
  // 3. Create worksheet details
109
125
  await tx.getRepository(WorksheetDetail).save({
110
126
  ...wsd,
@@ -112,6 +128,7 @@ export async function generateReleaseGoodWorksheetDetails(
112
128
  bizplace: worksheet.bizplace,
113
129
  worksheet,
114
130
  name: WorksheetNoGenerator.pickingDetail(),
131
+ targetProduct,
115
132
  targetInventory,
116
133
  type: WORKSHEET_TYPE.PICKING,
117
134
  status: WORKSHEET_STATUS.DEACTIVATED,
@@ -1,13 +1,13 @@
1
1
  import { EntityManager } from 'typeorm'
2
2
  import { WorksheetMovement } from '../../../entities'
3
- import uuid from 'uuid/v4'
3
+ import { v4 as uuidv4 } from 'uuid'
4
4
 
5
5
  export const createWorksheetMovement = {
6
6
  async createWorksheetMovement(_, { worksheetMovement: attrs }, context: any) {
7
7
  const { tx }: { tx: EntityManager } = context.state
8
8
  const repository = tx.getRepository(WorksheetMovement)
9
9
  const newWorksheetMovement = {
10
- id: uuid(),
10
+ id: uuidv4(),
11
11
  ...attrs
12
12
  }
13
13
 
@@ -0,0 +1,8 @@
1
+ import { gql } from 'apollo-server-koa'
2
+
3
+ export const FindReleaseOrdersByTaskNo = gql`
4
+ type FindReleaseOrdersByTaskNo {
5
+ taskNo: String
6
+ releaseGoods: [ReleaseGood]
7
+ }
8
+ `