@things-factory/warehouse-base 4.0.0-y.0 → 4.0.4

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 (358) hide show
  1. package/dist-server/constants/inventory.js +4 -1
  2. package/dist-server/constants/inventory.js.map +1 -1
  3. package/dist-server/controllers/ecommerce/ecommerce-controller.js +3 -3
  4. package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
  5. package/dist-server/controllers/ecommerce/index.js +1 -0
  6. package/dist-server/controllers/ecommerce/index.js.map +1 -1
  7. package/dist-server/controllers/ecommerce/sellercraft-controller.js +48 -0
  8. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -0
  9. package/dist-server/controllers/warehouse-controller.js +40 -1
  10. package/dist-server/controllers/warehouse-controller.js.map +1 -1
  11. package/dist-server/entities/reduced-inventory-history.js +8 -7
  12. package/dist-server/entities/reduced-inventory-history.js.map +1 -1
  13. package/dist-server/graphql/resolvers/inventory/check-product-identicality.js +2 -2
  14. package/dist-server/graphql/resolvers/inventory/check-product-identicality.js.map +1 -1
  15. package/dist-server/graphql/resolvers/inventory/inventories-by-strategy.js +4 -2
  16. package/dist-server/graphql/resolvers/inventory/inventories-by-strategy.js.map +1 -1
  17. package/dist-server/graphql/resolvers/inventory-change/approve-inventory-changes.js +25 -5
  18. package/dist-server/graphql/resolvers/inventory-change/approve-inventory-changes.js.map +1 -1
  19. package/dist-server/graphql/resolvers/inventory-history/inventory-history-summary-report.js +12 -11
  20. package/dist-server/graphql/resolvers/inventory-history/inventory-history-summary-report.js.map +1 -1
  21. package/dist-server/graphql/resolvers/inventory-history/onhand-inventories.js +6 -3
  22. package/dist-server/graphql/resolvers/inventory-history/onhand-inventories.js.map +1 -1
  23. package/dist-server/graphql/resolvers/location/location-occupancies.js +15 -28
  24. package/dist-server/graphql/resolvers/location/location-occupancies.js.map +1 -1
  25. package/dist-server/graphql/resolvers/location/location.js +3 -2
  26. package/dist-server/graphql/resolvers/location/location.js.map +1 -1
  27. package/dist-server/graphql/resolvers/movement/inbound-movements-counter.js +5 -7
  28. package/dist-server/graphql/resolvers/movement/inbound-movements-counter.js.map +1 -1
  29. package/dist-server/graphql/resolvers/movement/outbound-movements-counter.js +5 -7
  30. package/dist-server/graphql/resolvers/movement/outbound-movements-counter.js.map +1 -1
  31. package/dist-server/graphql/resolvers/movement/weekly-movements-counter.js +14 -32
  32. package/dist-server/graphql/resolvers/movement/weekly-movements-counter.js.map +1 -1
  33. package/dist-server/graphql/types/inventory/index.js +1 -1
  34. package/dist-server/graphql/types/inventory/inventory-patch.js +1 -0
  35. package/dist-server/graphql/types/inventory/inventory-patch.js.map +1 -1
  36. package/dist-server/graphql/types/location/index.js +4 -4
  37. package/dist-server/graphql/types/location/index.js.map +1 -1
  38. package/dist-server/graphql/types/warehouse/index.js.map +1 -1
  39. package/dist-server/index.js +11 -12
  40. package/dist-server/index.js.map +1 -1
  41. package/dist-server/service/index.js +71 -0
  42. package/dist-server/service/index.js.map +1 -0
  43. package/dist-server/service/inventory/index.js +9 -0
  44. package/dist-server/service/inventory/index.js.map +1 -0
  45. package/dist-server/service/inventory/inventory-mutation.js +324 -0
  46. package/dist-server/service/inventory/inventory-mutation.js.map +1 -0
  47. package/dist-server/service/inventory/inventory-query.js +678 -0
  48. package/dist-server/service/inventory/inventory-query.js.map +1 -0
  49. package/dist-server/service/inventory/inventory-types.js +405 -0
  50. package/dist-server/service/inventory/inventory-types.js.map +1 -0
  51. package/dist-server/service/inventory/inventory.js +292 -0
  52. package/dist-server/service/inventory/inventory.js.map +1 -0
  53. package/dist-server/service/inventory-change/index.js +9 -0
  54. package/dist-server/service/inventory-change/index.js.map +1 -0
  55. package/dist-server/service/inventory-change/inventory-change-mutation.js +530 -0
  56. package/dist-server/service/inventory-change/inventory-change-mutation.js.map +1 -0
  57. package/dist-server/service/inventory-change/inventory-change-query.js +121 -0
  58. package/dist-server/service/inventory-change/inventory-change-query.js.map +1 -0
  59. package/dist-server/service/inventory-change/inventory-change-types.js +65 -0
  60. package/dist-server/service/inventory-change/inventory-change-types.js.map +1 -0
  61. package/dist-server/service/inventory-change/inventory-change.js +185 -0
  62. package/dist-server/service/inventory-change/inventory-change.js.map +1 -0
  63. package/dist-server/service/inventory-history/index.js +9 -0
  64. package/dist-server/service/inventory-history/index.js.map +1 -0
  65. package/dist-server/service/inventory-history/inventory-history-mutation.js +121 -0
  66. package/dist-server/service/inventory-history/inventory-history-mutation.js.map +1 -0
  67. package/dist-server/service/inventory-history/inventory-history-query.js +1283 -0
  68. package/dist-server/service/inventory-history/inventory-history-query.js.map +1 -0
  69. package/dist-server/service/inventory-history/inventory-history-types.js +382 -0
  70. package/dist-server/service/inventory-history/inventory-history-types.js.map +1 -0
  71. package/dist-server/service/inventory-history/inventory-history.js +233 -0
  72. package/dist-server/service/inventory-history/inventory-history.js.map +1 -0
  73. package/dist-server/service/location/index.js +9 -0
  74. package/dist-server/service/location/index.js.map +1 -0
  75. package/dist-server/service/location/location-mutation.js +157 -0
  76. package/dist-server/service/location/location-mutation.js.map +1 -0
  77. package/dist-server/service/location/location-query.js +251 -0
  78. package/dist-server/service/location/location-query.js.map +1 -0
  79. package/dist-server/service/location/location-types.js +223 -0
  80. package/dist-server/service/location/location-types.js.map +1 -0
  81. package/dist-server/service/location/location.js +125 -0
  82. package/dist-server/service/location/location.js.map +1 -0
  83. package/dist-server/service/movement/index.js +9 -0
  84. package/dist-server/service/movement/index.js.map +1 -0
  85. package/dist-server/service/movement/movement-mutation.js +80 -0
  86. package/dist-server/service/movement/movement-mutation.js.map +1 -0
  87. package/dist-server/service/movement/movement-query.js +286 -0
  88. package/dist-server/service/movement/movement-query.js.map +1 -0
  89. package/dist-server/service/movement/movement-types.js +117 -0
  90. package/dist-server/service/movement/movement-types.js.map +1 -0
  91. package/dist-server/service/movement/movement.js +101 -0
  92. package/dist-server/service/movement/movement.js.map +1 -0
  93. package/dist-server/service/pallet/index.js +9 -0
  94. package/dist-server/service/pallet/index.js.map +1 -0
  95. package/dist-server/service/pallet/pallet-mutation.js +192 -0
  96. package/dist-server/service/pallet/pallet-mutation.js.map +1 -0
  97. package/dist-server/service/pallet/pallet-query.js +164 -0
  98. package/dist-server/service/pallet/pallet-query.js.map +1 -0
  99. package/dist-server/service/pallet/pallet-types.js +109 -0
  100. package/dist-server/service/pallet/pallet-types.js.map +1 -0
  101. package/dist-server/service/pallet/pallet.js +112 -0
  102. package/dist-server/service/pallet/pallet.js.map +1 -0
  103. package/dist-server/service/pallet-count/index.js +9 -0
  104. package/dist-server/service/pallet-count/index.js.map +1 -0
  105. package/dist-server/service/pallet-count/pallet-count-mutation.js +156 -0
  106. package/dist-server/service/pallet-count/pallet-count-mutation.js.map +1 -0
  107. package/dist-server/service/pallet-count/pallet-count-query.js +86 -0
  108. package/dist-server/service/pallet-count/pallet-count-query.js.map +1 -0
  109. package/dist-server/service/pallet-count/pallet-count-types.js +65 -0
  110. package/dist-server/service/pallet-count/pallet-count-types.js.map +1 -0
  111. package/dist-server/service/pallet-count/pallet-count.js +89 -0
  112. package/dist-server/service/pallet-count/pallet-count.js.map +1 -0
  113. package/dist-server/service/pallet-history/index.js +9 -0
  114. package/dist-server/service/pallet-history/index.js.map +1 -0
  115. package/dist-server/service/pallet-history/pallet-history-mutation.js +120 -0
  116. package/dist-server/service/pallet-history/pallet-history-mutation.js.map +1 -0
  117. package/dist-server/service/pallet-history/pallet-history-query.js +87 -0
  118. package/dist-server/service/pallet-history/pallet-history-query.js.map +1 -0
  119. package/dist-server/service/pallet-history/pallet-history-types.js +65 -0
  120. package/dist-server/service/pallet-history/pallet-history-types.js.map +1 -0
  121. package/dist-server/service/pallet-history/pallet-history.js +107 -0
  122. package/dist-server/service/pallet-history/pallet-history.js.map +1 -0
  123. package/dist-server/service/reduced-inventory-history/index.js +6 -0
  124. package/dist-server/service/reduced-inventory-history/index.js.map +1 -0
  125. package/dist-server/service/reduced-inventory-history/reduced-inventory-history.js +133 -0
  126. package/dist-server/service/reduced-inventory-history/reduced-inventory-history.js.map +1 -0
  127. package/dist-server/service/warehouse/index.js +9 -0
  128. package/dist-server/service/warehouse/index.js.map +1 -0
  129. package/dist-server/service/warehouse/warehouse-mutation.js +135 -0
  130. package/dist-server/service/warehouse/warehouse-mutation.js.map +1 -0
  131. package/dist-server/service/warehouse/warehouse-query.js +91 -0
  132. package/dist-server/service/warehouse/warehouse-query.js.map +1 -0
  133. package/dist-server/service/warehouse/warehouse-types.js +82 -0
  134. package/dist-server/service/warehouse/warehouse-types.js.map +1 -0
  135. package/dist-server/service/warehouse/warehouse.js +102 -0
  136. package/dist-server/service/warehouse/warehouse.js.map +1 -0
  137. package/dist-server/utils/inventory-util.js +46 -12
  138. package/dist-server/utils/inventory-util.js.map +1 -1
  139. package/package.json +8 -7
  140. package/server/constants/inventory.ts +4 -1
  141. package/server/controllers/ecommerce/ecommerce-controller.ts +4 -3
  142. package/server/controllers/ecommerce/index.ts +1 -0
  143. package/server/controllers/ecommerce/sellercraft-controller.ts +58 -0
  144. package/server/controllers/warehouse-controller.ts +54 -2
  145. package/server/index.ts +8 -4
  146. package/server/service/index.ts +61 -0
  147. package/server/service/inventory/index.ts +6 -0
  148. package/server/{graphql/resolvers/inventory/update-multiple-inventory.ts → service/inventory/inventory-mutation.ts} +158 -7
  149. package/server/service/inventory/inventory-query.ts +745 -0
  150. package/server/service/inventory/inventory-types.ts +289 -0
  151. package/server/{entities → service/inventory}/inventory.ts +92 -8
  152. package/server/service/inventory-change/index.ts +6 -0
  153. package/server/{graphql/resolvers/inventory-change/approve-inventory-changes.ts → service/inventory-change/inventory-change-mutation.ts} +299 -11
  154. package/server/{graphql/resolvers/inventory-change/inventory-changes.ts → service/inventory-change/inventory-change-query.ts} +35 -4
  155. package/server/service/inventory-change/inventory-change-types.ts +36 -0
  156. package/server/{entities → service/inventory-change}/inventory-change.ts +55 -5
  157. package/server/service/inventory-history/index.ts +6 -0
  158. package/server/service/inventory-history/inventory-history-mutation.ts +119 -0
  159. package/server/service/inventory-history/inventory-history-query.ts +1435 -0
  160. package/server/service/inventory-history/inventory-history-types.ts +269 -0
  161. package/server/{entities → service/inventory-history}/inventory-history.ts +65 -10
  162. package/server/service/location/index.ts +6 -0
  163. package/server/service/location/location-mutation.ts +134 -0
  164. package/server/service/location/location-query.ts +209 -0
  165. package/server/service/location/location-types.ts +151 -0
  166. package/server/{entities → service/location}/location.ts +40 -3
  167. package/server/service/movement/index.ts +6 -0
  168. package/server/service/movement/movement-mutation.ts +61 -0
  169. package/server/service/movement/movement-query.ts +258 -0
  170. package/server/service/movement/movement-types.ts +74 -0
  171. package/server/{entities → service/movement}/movement.ts +35 -2
  172. package/server/service/pallet/index.ts +6 -0
  173. package/server/service/pallet/pallet-mutation.ts +244 -0
  174. package/server/service/pallet/pallet-query.ts +105 -0
  175. package/server/service/pallet/pallet-types.ts +68 -0
  176. package/server/{entities → service/pallet}/pallet.ts +31 -4
  177. package/server/service/pallet-count/index.ts +6 -0
  178. package/server/service/pallet-count/pallet-count-mutation.ts +148 -0
  179. package/server/service/pallet-count/pallet-count-query.ts +46 -0
  180. package/server/service/pallet-count/pallet-count-types.ts +36 -0
  181. package/server/service/pallet-count/pallet-count.ts +70 -0
  182. package/server/service/pallet-history/index.ts +6 -0
  183. package/server/service/pallet-history/pallet-history-mutation.ts +114 -0
  184. package/server/service/pallet-history/pallet-history-query.ts +46 -0
  185. package/server/service/pallet-history/pallet-history-types.ts +36 -0
  186. package/server/{entities → service/pallet-history}/pallet-history.ts +34 -12
  187. package/server/service/reduced-inventory-history/index.ts +3 -0
  188. package/server/{entities → service/reduced-inventory-history}/reduced-inventory-history.ts +7 -12
  189. package/server/service/warehouse/index.ts +6 -0
  190. package/server/service/warehouse/warehouse-mutation.ts +114 -0
  191. package/server/service/warehouse/warehouse-query.ts +51 -0
  192. package/server/service/warehouse/warehouse-types.ts +50 -0
  193. package/server/{entities → service/warehouse}/warehouse.ts +29 -4
  194. package/server/utils/inventory-util.ts +58 -4
  195. package/translations/en.json +2 -1
  196. package/translations/ko.json +2 -1
  197. package/translations/ms.json +2 -1
  198. package/translations/zh.json +2 -1
  199. package/server/entities/index.ts +0 -36
  200. package/server/entities/pallet-count.ts +0 -40
  201. package/server/graphql/index.ts +0 -7
  202. package/server/graphql/resolvers/index.ts +0 -33
  203. package/server/graphql/resolvers/inventory/check-carton-identicality.ts +0 -32
  204. package/server/graphql/resolvers/inventory/check-inventory-owner.ts +0 -26
  205. package/server/graphql/resolvers/inventory/check-product-identicality.ts +0 -24
  206. package/server/graphql/resolvers/inventory/create-inventory.ts +0 -15
  207. package/server/graphql/resolvers/inventory/delete-inventories.ts +0 -14
  208. package/server/graphql/resolvers/inventory/delete-inventory.ts +0 -10
  209. package/server/graphql/resolvers/inventory/index.ts +0 -38
  210. package/server/graphql/resolvers/inventory/inventories-by-bundle.ts +0 -168
  211. package/server/graphql/resolvers/inventory/inventories-by-product.ts +0 -164
  212. package/server/graphql/resolvers/inventory/inventories-by-strategy.ts +0 -143
  213. package/server/graphql/resolvers/inventory/inventories.ts +0 -129
  214. package/server/graphql/resolvers/inventory/inventory-by-pallet.ts +0 -15
  215. package/server/graphql/resolvers/inventory/inventory-transfer.ts +0 -50
  216. package/server/graphql/resolvers/inventory/inventory.ts +0 -14
  217. package/server/graphql/resolvers/inventory/update-inventory-remark.ts +0 -19
  218. package/server/graphql/resolvers/inventory/update-inventory.ts +0 -31
  219. package/server/graphql/resolvers/inventory-change/create-inventory-change.ts +0 -17
  220. package/server/graphql/resolvers/inventory-change/delete-inventory-change.ts +0 -12
  221. package/server/graphql/resolvers/inventory-change/delete-inventory-changes.ts +0 -15
  222. package/server/graphql/resolvers/inventory-change/index.ts +0 -27
  223. package/server/graphql/resolvers/inventory-change/inventory-change.ts +0 -14
  224. package/server/graphql/resolvers/inventory-change/reject-inventory-changes.ts +0 -42
  225. package/server/graphql/resolvers/inventory-change/submit-inventory-changes.ts +0 -101
  226. package/server/graphql/resolvers/inventory-change/update-inventory-change.ts +0 -21
  227. package/server/graphql/resolvers/inventory-change/update-multiple-inventory-change.ts +0 -47
  228. package/server/graphql/resolvers/inventory-history/bizplace-inventory-histories.ts +0 -81
  229. package/server/graphql/resolvers/inventory-history/create-inventory-history.ts +0 -17
  230. package/server/graphql/resolvers/inventory-history/delete-inventory-histories.ts +0 -15
  231. package/server/graphql/resolvers/inventory-history/delete-inventory-history.ts +0 -12
  232. package/server/graphql/resolvers/inventory-history/index.ts +0 -34
  233. package/server/graphql/resolvers/inventory-history/inventory-histories.ts +0 -62
  234. package/server/graphql/resolvers/inventory-history/inventory-history-pallet-detail-report.ts +0 -166
  235. package/server/graphql/resolvers/inventory-history/inventory-history-pallet-report.ts +0 -133
  236. package/server/graphql/resolvers/inventory-history/inventory-history-pallet-storage-report.ts +0 -146
  237. package/server/graphql/resolvers/inventory-history/inventory-history-report.ts +0 -233
  238. package/server/graphql/resolvers/inventory-history/inventory-history-summary-report.ts +0 -317
  239. package/server/graphql/resolvers/inventory-history/inventory-history.ts +0 -13
  240. package/server/graphql/resolvers/inventory-history/onhand-inventories.ts +0 -233
  241. package/server/graphql/resolvers/inventory-history/update-inventory-history.ts +0 -21
  242. package/server/graphql/resolvers/inventory-history/update-multiple-inventory-history.ts +0 -48
  243. package/server/graphql/resolvers/location/create-location.ts +0 -25
  244. package/server/graphql/resolvers/location/delete-all-locations.ts +0 -12
  245. package/server/graphql/resolvers/location/delete-location.ts +0 -16
  246. package/server/graphql/resolvers/location/delete-locations.ts +0 -16
  247. package/server/graphql/resolvers/location/index.ts +0 -32
  248. package/server/graphql/resolvers/location/location-by-name.ts +0 -17
  249. package/server/graphql/resolvers/location/location-occupancies.ts +0 -45
  250. package/server/graphql/resolvers/location/location-with-inventories.ts +0 -87
  251. package/server/graphql/resolvers/location/location.ts +0 -10
  252. package/server/graphql/resolvers/location/locations-by-group.ts +0 -29
  253. package/server/graphql/resolvers/location/locations.ts +0 -18
  254. package/server/graphql/resolvers/location/update-location.ts +0 -27
  255. package/server/graphql/resolvers/location/update-multiple-location.ts +0 -29
  256. package/server/graphql/resolvers/movement/create-movement.ts +0 -13
  257. package/server/graphql/resolvers/movement/delete-movement.ts +0 -9
  258. package/server/graphql/resolvers/movement/inbound-movements-counter.ts +0 -68
  259. package/server/graphql/resolvers/movement/index.ts +0 -23
  260. package/server/graphql/resolvers/movement/movement.ts +0 -16
  261. package/server/graphql/resolvers/movement/movements.ts +0 -17
  262. package/server/graphql/resolvers/movement/outbound-movements-counter.ts +0 -70
  263. package/server/graphql/resolvers/movement/update-movement.ts +0 -25
  264. package/server/graphql/resolvers/movement/weekly-movements-counter.ts +0 -94
  265. package/server/graphql/resolvers/pallet/create-pallet.ts +0 -18
  266. package/server/graphql/resolvers/pallet/delete-pallet.ts +0 -13
  267. package/server/graphql/resolvers/pallet/delete-pallets.ts +0 -44
  268. package/server/graphql/resolvers/pallet/index.ts +0 -29
  269. package/server/graphql/resolvers/pallet/pallet-by-status.ts +0 -16
  270. package/server/graphql/resolvers/pallet/pallet-inbound-validate.ts +0 -21
  271. package/server/graphql/resolvers/pallet/pallet-outbound-validate.ts +0 -21
  272. package/server/graphql/resolvers/pallet/pallet-return.ts +0 -57
  273. package/server/graphql/resolvers/pallet/pallet.ts +0 -15
  274. package/server/graphql/resolvers/pallet/pallets.ts +0 -22
  275. package/server/graphql/resolvers/pallet/update-multiple-pallet.ts +0 -95
  276. package/server/graphql/resolvers/pallet/update-pallet.ts +0 -21
  277. package/server/graphql/resolvers/pallet-count/create-pallet-count.ts +0 -17
  278. package/server/graphql/resolvers/pallet-count/delete-pallet-count.ts +0 -12
  279. package/server/graphql/resolvers/pallet-count/delete-pallet-counts.ts +0 -15
  280. package/server/graphql/resolvers/pallet-count/index.ts +0 -23
  281. package/server/graphql/resolvers/pallet-count/pallet-count.ts +0 -14
  282. package/server/graphql/resolvers/pallet-count/pallet-counts.ts +0 -14
  283. package/server/graphql/resolvers/pallet-count/update-multiple-pallet-count.ts +0 -47
  284. package/server/graphql/resolvers/pallet-count/update-pallet-count-seq.ts +0 -44
  285. package/server/graphql/resolvers/pallet-count/update-pallet-count.ts +0 -21
  286. package/server/graphql/resolvers/pallet-history/create-pallet-history.ts +0 -17
  287. package/server/graphql/resolvers/pallet-history/delete-pallet-histories.ts +0 -16
  288. package/server/graphql/resolvers/pallet-history/delete-pallet-history.ts +0 -13
  289. package/server/graphql/resolvers/pallet-history/index.ts +0 -21
  290. package/server/graphql/resolvers/pallet-history/pallet-histories.ts +0 -14
  291. package/server/graphql/resolvers/pallet-history/pallet-history.ts +0 -14
  292. package/server/graphql/resolvers/pallet-history/update-multiple-pallet-history.ts +0 -46
  293. package/server/graphql/resolvers/pallet-history/update-pallet-history.ts +0 -21
  294. package/server/graphql/resolvers/warehouse/create-warehouse.ts +0 -22
  295. package/server/graphql/resolvers/warehouse/delete-warehouse.ts +0 -16
  296. package/server/graphql/resolvers/warehouse/delete-warehouses.ts +0 -16
  297. package/server/graphql/resolvers/warehouse/index.ts +0 -22
  298. package/server/graphql/resolvers/warehouse/update-multiple-warehouse.ts +0 -29
  299. package/server/graphql/resolvers/warehouse/update-warehouse.ts +0 -23
  300. package/server/graphql/resolvers/warehouse/warehouse.ts +0 -17
  301. package/server/graphql/resolvers/warehouse/warehouses.ts +0 -16
  302. package/server/graphql/types/index.ts +0 -45
  303. package/server/graphql/types/inventory/index.ts +0 -61
  304. package/server/graphql/types/inventory/inventory-bundle-group-detail.ts +0 -8
  305. package/server/graphql/types/inventory/inventory-bundle-group.ts +0 -33
  306. package/server/graphql/types/inventory/inventory-list.ts +0 -8
  307. package/server/graphql/types/inventory/inventory-patch.ts +0 -41
  308. package/server/graphql/types/inventory/inventory.ts +0 -50
  309. package/server/graphql/types/inventory/new-inventory.ts +0 -29
  310. package/server/graphql/types/inventory-change/index.ts +0 -47
  311. package/server/graphql/types/inventory-change/inventory-change-list.ts +0 -8
  312. package/server/graphql/types/inventory-change/inventory-change-patch.ts +0 -10
  313. package/server/graphql/types/inventory-change/inventory-change.ts +0 -33
  314. package/server/graphql/types/inventory-change/new-inventory-change.ts +0 -8
  315. package/server/graphql/types/inventory-history/index.ts +0 -54
  316. package/server/graphql/types/inventory-history/inventory-history-list.ts +0 -8
  317. package/server/graphql/types/inventory-history/inventory-history-pallet-report-list.ts +0 -9
  318. package/server/graphql/types/inventory-history/inventory-history-pallet-report.ts +0 -13
  319. package/server/graphql/types/inventory-history/inventory-history-patch.ts +0 -37
  320. package/server/graphql/types/inventory-history/inventory-history-summary-list.ts +0 -10
  321. package/server/graphql/types/inventory-history/inventory-history-summary.ts +0 -17
  322. package/server/graphql/types/inventory-history/inventory-history.ts +0 -56
  323. package/server/graphql/types/inventory-history/new-inventory-history.ts +0 -29
  324. package/server/graphql/types/location/index.ts +0 -53
  325. package/server/graphql/types/location/location-inventories.ts +0 -8
  326. package/server/graphql/types/location/location-inventory.ts +0 -21
  327. package/server/graphql/types/location/location-list.ts +0 -8
  328. package/server/graphql/types/location/location-occupancy.ts +0 -10
  329. package/server/graphql/types/location/location-patch.ts +0 -17
  330. package/server/graphql/types/location/location.ts +0 -21
  331. package/server/graphql/types/location/new-location.ts +0 -15
  332. package/server/graphql/types/movement/index.ts +0 -31
  333. package/server/graphql/types/movement/movement-count.ts +0 -11
  334. package/server/graphql/types/movement/movement-list.ts +0 -8
  335. package/server/graphql/types/movement/movement-patch.ts +0 -12
  336. package/server/graphql/types/movement/movement.ts +0 -17
  337. package/server/graphql/types/movement/new-movement.ts +0 -12
  338. package/server/graphql/types/pallet/index.ts +0 -48
  339. package/server/graphql/types/pallet/new-pallet.ts +0 -11
  340. package/server/graphql/types/pallet/pallet-list.ts +0 -8
  341. package/server/graphql/types/pallet/pallet-patch.ts +0 -14
  342. package/server/graphql/types/pallet/pallet-validate.ts +0 -8
  343. package/server/graphql/types/pallet/pallet.ts +0 -18
  344. package/server/graphql/types/pallet-count/index.ts +0 -38
  345. package/server/graphql/types/pallet-count/new-pallet-count.ts +0 -8
  346. package/server/graphql/types/pallet-count/pallet-count-list.ts +0 -8
  347. package/server/graphql/types/pallet-count/pallet-count-patch.ts +0 -10
  348. package/server/graphql/types/pallet-count/pallet-count.ts +0 -14
  349. package/server/graphql/types/pallet-history/index.ts +0 -34
  350. package/server/graphql/types/pallet-history/new-pallet-history.ts +0 -8
  351. package/server/graphql/types/pallet-history/pallet-history-list.ts +0 -8
  352. package/server/graphql/types/pallet-history/pallet-history-patch.ts +0 -10
  353. package/server/graphql/types/pallet-history/pallet-history.ts +0 -14
  354. package/server/graphql/types/warehouse/index.ts +0 -35
  355. package/server/graphql/types/warehouse/new-warehouse.ts +0 -10
  356. package/server/graphql/types/warehouse/warehouse-list.ts +0 -8
  357. package/server/graphql/types/warehouse/warehouse-patch.ts +0 -12
  358. package/server/graphql/types/warehouse/warehouse.ts +0 -17
@@ -1,317 +0,0 @@
1
- import { User } from '@things-factory/auth-base'
2
- import { Bizplace } from '@things-factory/biz-base'
3
- import { ListParam } from '@things-factory/shell'
4
- import { EntityManager } from 'typeorm'
5
-
6
- export const inventoryHistorySummaryReport = {
7
- async inventoryHistorySummaryReport(_: any, params: ListParam, context: any) {
8
- try {
9
- const { tx }: { tx: EntityManager } = context.state
10
-
11
- let bizplaceFilter = { name: '', operator: '', value: '' }
12
-
13
- let userFilter = params.filters.find(data => data.name === 'user')
14
- let fromDate = params.filters.find(data => data.name === 'fromDate')
15
- let toDate = params.filters.find(data => data.name === 'toDate')
16
- let byPallet = params.filters.find(data => data.name === 'byPallet')
17
-
18
- if (userFilter) {
19
- const user: User = await tx.getRepository(User).findOne({
20
- where: { id: userFilter.value },
21
- relations: ['bizplaces']
22
- })
23
-
24
- const bizplace: Bizplace = user.bizplaces[0]
25
-
26
- if (!bizplace) throw 'Invalid input'
27
-
28
- bizplaceFilter = { name: 'bizplace', operator: 'eq', value: bizplace.id }
29
- } else {
30
- bizplaceFilter = params.filters.find(data => data.name === 'bizplace')
31
- }
32
-
33
- if (!bizplaceFilter || !fromDate || !toDate) throw 'Invalid input'
34
-
35
- const bizplace: Bizplace = await tx.getRepository(Bizplace).findOne({
36
- id: bizplaceFilter.value
37
- })
38
-
39
- let [result, total] = byPallet.value
40
- ? await massageInventoryPalletSummary(tx, params, bizplace, context)
41
- : await massageInventorySummary(tx, params, bizplace, context)
42
-
43
- let items = result.map(itm => {
44
- return {
45
- ...itm,
46
- batchId: itm.batch_id,
47
- packingType: itm.packing_type,
48
- packingSize: itm.packing_size,
49
- openingQty: itm.opening_qty,
50
- adjustmentQty: itm.adjustment_qty,
51
- closingQty: itm.closing_qty,
52
- totalInQty: itm.total_in_qty,
53
- totalOutQty: itm.total_out_qty,
54
- product: {
55
- id: itm.product_id,
56
- sku: itm.product_sku,
57
- name: itm.product_name,
58
- description: itm.product_description,
59
- type: itm.product_type
60
- }
61
- }
62
- })
63
-
64
- return {
65
- items,
66
- total: total[0].count,
67
- totalInboundQty: total[0].totalinqty || 0,
68
- totalOpeningBal: total[0].totalopeningbal || 0
69
- }
70
- } catch (error) {
71
- throw error
72
- }
73
- }
74
- }
75
-
76
- async function massageInventorySummary(tx: EntityManager, params: ListParam, bizplace: Bizplace, context: any) {
77
- await productsQuery(tx, params, bizplace)
78
- await filterInventoryQuery(tx, params, bizplace, context)
79
-
80
- let fromDate = params.filters.find(data => data.name === 'fromDate')
81
- let hasTransactionOrBalanceFilter = params.filters.find(data => data.name === 'hasTransactionOrBalance')
82
-
83
- let hasTransactionOrBalanceQuery = ''
84
- if (hasTransactionOrBalanceFilter && hasTransactionOrBalanceFilter.value) {
85
- hasTransactionOrBalanceQuery = 'and (opening_qty > 0 or total_in_qty > 0 or adjustment_qty > 0)'
86
- }
87
- await tx.query(
88
- `
89
- create temp table temp_inventory_summary as (
90
- select src.*,
91
- opening_qty + adjustment_qty + total_in_qty + total_out_qty as closing_qty
92
- from (
93
- select prd.sku AS product_sku, prd.name as product_name, prd.description as product_description, prd.type AS product_type, ih.packing_type, ih.packing_size,
94
- sum(case when ih.created_at >= $1 and ih.transaction_type = 'ADJUSTMENT' then ih.qty else 0 end) as adjustment_qty,
95
- sum(case when ih.created_at < $1 then qty else 0 end) as opening_qty,
96
- sum(case when ih.created_at >= $1 then case when ih.qty > 0 and ih.transaction_type <> 'ADJUSTMENT' then ih.qty else 0 end else 0 end) as total_in_qty,
97
- sum(case when ih.created_at >= $1 then case when ih.qty < 0 and ih.transaction_type <> 'ADJUSTMENT' then ih.qty else 0 end else 0 end) as total_out_qty,
98
- ih.product_id
99
- from temp_inv_history ih
100
- inner join temp_products prd on prd.id = ih.product_id
101
- group by prd.sku, prd.name, prd.description, prd.type, ih.product_id, ih.packing_type, ih.packing_size
102
- ) src
103
- where 1=1
104
- ${hasTransactionOrBalanceQuery}
105
- )
106
- `,
107
- [fromDate.value]
108
- )
109
-
110
- const total: any = await tx.query(`select count(*) from temp_inventory_summary`)
111
-
112
- const result: any = await tx.query(
113
- `
114
- select * from temp_inventory_summary ORDER BY product_name, product_description, product_type, packing_type, packing_size OFFSET $1 LIMIT $2
115
- `,
116
- [(params.pagination.page - 1) * params.pagination.limit, params.pagination.limit]
117
- )
118
-
119
- tx.query(`
120
- drop table temp_products, temp_inv_history, temp_inventory_summary
121
- `)
122
-
123
- return [result, total]
124
- }
125
-
126
- async function massageInventoryPalletSummary(tx: EntityManager, params: ListParam, bizplace: Bizplace, context: any) {
127
- await productsQuery(tx, params, bizplace)
128
- await filterInventoryQuery(tx, params, bizplace, context)
129
-
130
- let fromDate = params.filters.find(data => data.name === 'fromDate')
131
- let toDate = params.filters.find(data => data.name === 'toDate')
132
- let hasTransactionOrBalanceFilter = params.filters.find(data => data.name === 'hasTransactionOrBalance')
133
-
134
- let hasTransactionOrBalanceQuery = ''
135
- if (hasTransactionOrBalanceFilter && hasTransactionOrBalanceFilter.value) {
136
- hasTransactionOrBalanceQuery = 'and (opening_qty > 0 or total_in_qty > 0 or adjustment_qty > 0)'
137
- }
138
- await tx.query(
139
- `
140
- create temp table temp_inventory_pallet_summary as (
141
- select invh.*,
142
- invh.opening_qty + invh.total_in_qty + invh.total_out_qty + invh.adjustment_qty as closing_qty from (
143
- select product_sku, product_id, product_name, product_description, product_type,
144
- SUM(case when invHistory.created_at < $1 then
145
- case when invHistory.status = 'STORED' then 1
146
- when invhistory.status = 'TERMINATED' then -1
147
- else 0 end
148
- else 0 end) as opening_qty,
149
- SUM(case when invHistory.created_at >= $1 and invHistory.created_at <= $2 then
150
- case when (invHistory.transaction_type = 'UNLOADING' or invHistory.transaction_type = 'NEW') then 1 else 0 end
151
- else 0 end) as total_in_qty,
152
- SUM(case when invHistory.created_at >= $1 and invHistory.created_at <= $2 then
153
- case when invHistory.status = 'TERMINATED' AND invHistory.transaction_type <> 'ADJUSTMENT' then -1 else 0 end
154
- else 0 end) as total_out_qty,
155
- SUM(case when invHistory.created_at >= $1 and invHistory.created_at <= $2 then
156
- case when invHistory.status = 'TERMINATED' AND invHistory.transaction_type = 'ADJUSTMENT' then -1
157
- when invHistory.status = 'STORED' AND invHistory.transaction_type = 'ADJUSTMENT' then 1 else 0 end
158
- else 0 end) as adjustment_qty
159
- from(
160
- select pallet_id, seq, status, transaction_type, product_sku, product_id, product_name, product_description, product_type,
161
- inventory_history_id, packing_type, packing_size, qty, opening_qty, weight, opening_weight, created_at from (
162
- select row_number() over(partition by invh.pallet_id order by invh.created_at asc) as rn, invh.* ,
163
- prd.sku as product_sku, prd.name as product_name, prd.description as product_description, prd.type AS product_type
164
- from temp_inv_history invh
165
- inner join temp_products prd on prd.id = invh.product_id
166
- where (transaction_type = 'UNLOADING' or invh.transaction_type = 'NEW')
167
- and invh.created_at >= $1
168
- ) as invIn where rn = 1
169
- union all
170
- select pallet_id, seq, status, transaction_type, product_sku, product_id, product_name, product_description, product_type,
171
- inventory_history_id, packing_type, packing_size, qty, opening_qty, weight, opening_weight, created_at from (
172
- SELECT row_number() over(partition by pallet_id, invh.product_id order by seq asc) as rn,
173
- invh.pallet_id, invh.product_id, invh.packing_type, invh.packing_size,
174
- invh.batch_id, invh.inventory_history_id,
175
- invh.seq, 'STORED' AS status, invh.transaction_type, invh.qty, invh.opening_qty, invh.weight, invh.opening_weight,
176
- invh.created_at,
177
- prd.sku as product_sku, prd.name as product_name, prd.description as product_description, prd.type AS product_type
178
- from temp_inv_history invh
179
- inner join temp_products prd on prd.id = invh.product_id
180
- where invh.created_at < $1
181
- and (invh.status = 'STORED' or invh.status = 'UNLOADED')
182
- ) as invStored where rn = 1
183
- union all
184
- select pallet_id, seq, status, transaction_type, product_sku, product_id, product_name, product_description, product_type,
185
- inventory_history_id, packing_type, packing_size, qty, opening_qty, weight, opening_weight, started_at as created_at from (
186
- select row_number() over(partition by invh.pallet_id, invh.product_id order by invh.seq desc) as rn, invh.*,
187
- prd.sku as product_sku, prd.name as product_name, prd.description as product_description, prd.type AS product_type, repeatedGroup.started_at
188
- from temp_inv_history invh
189
- inner join (
190
- select pallet_id, min(created_at) as started_at, max(created_at) as ended_at, min(seq) as min_seq, max(seq) as max_seq, status from (
191
- select startData.*, sum(startflag) over (partition by pallet_id order by seq) as grp from (
192
- select s.*,
193
- (case when lag(status) over (partition by pallet_id order by seq) = status then 0 else 1 end) as startflag
194
- from temp_inv_history s
195
- ) startData
196
- ) endData
197
- group by pallet_id, grp, status
198
- ) repeatedGroup on repeatedGroup.pallet_id = invh.pallet_id and repeatedGroup.min_seq <= invh.seq and repeatedGroup.max_seq >= invh.seq
199
- inner join temp_products prd on prd.id = invh.product_id
200
- ) as invOut where rn = 1 AND status ='TERMINATED'
201
- union all
202
- SELECT invh.pallet_id, invh.seq, invh.status, invh.transaction_type,
203
- prd.sku AS product_sku, invh.product_id, prd.name AS product_name, prd.description AS product_description, prd.type AS product_type,
204
- invh.inventory_history_id, invh.packing_type, invh.packing_size, invh.qty, invh.opening_qty, invh.weight, invh.opening_weight, invh.created_at
205
- FROM temp_inv_history invh
206
- INNER JOIN (
207
- SELECT invh.pallet_id, invh.seq AS stored_seq, invh2.seq AS terminated_seq FROM temp_inv_history invh
208
- INNER JOIN temp_inv_history invh2 ON invh2.pallet_id = invh.pallet_id AND invh2.status='STORED' AND invh2.seq = invh.seq + 1 AND invh2.product_id <> invh.product_id
209
- WHERE invh.transaction_type = 'ADJUSTMENT'
210
- ) dt ON dt.pallet_id = invh.pallet_id AND (dt.stored_seq = invh.seq OR dt.terminated_seq = invh.seq)
211
- inner join temp_products prd on prd.id = invh.product_id
212
- where invh.created_at >= $1
213
- ORDER BY product_name, pallet_id, seq
214
- ) as invHistory
215
- group by product_sku, product_id, product_name, product_description, product_type
216
- ) invh
217
- where 1=1
218
- ${hasTransactionOrBalanceQuery}
219
- )
220
- `,
221
- [fromDate.value, toDate.value]
222
- )
223
-
224
- const total: any = await tx.query(
225
- `select count(*) as count, sum(total_in_qty) as totalInQty, sum(opening_qty) as totalOpeningBal from temp_inventory_pallet_summary`
226
- )
227
-
228
- const result: any = await tx.query(
229
- `
230
- select *, 'PALLET' as packing_type from temp_inventory_pallet_summary ORDER BY product_name, product_description OFFSET $1 LIMIT $2
231
- `,
232
- [(params.pagination.page - 1) * params.pagination.limit, params.pagination.limit]
233
- )
234
-
235
- tx.query(`
236
- drop table temp_products, temp_inv_history, temp_inventory_pallet_summary
237
- `)
238
-
239
- return [result, total]
240
- }
241
-
242
- async function productsQuery(tx: EntityManager, params: ListParam, bizplace: Bizplace) {
243
- let product = params.filters.find(data => data.name === 'product')
244
- let productDesc = params.filters.find(data => data.name === 'productDescription')
245
-
246
- let productQuery = ''
247
- if (product) {
248
- let productValue = product.value
249
- .toLowerCase()
250
- .split(',')
251
- .map(prod => {
252
- return "'%" + prod.trim().replace(/'/g, "''") + "%'"
253
- })
254
- .join(',')
255
- productQuery = `AND (
256
- Lower(prd.name) LIKE ANY(ARRAY[${productValue}])
257
- OR Lower(prd.sku) LIKE ANY(ARRAY[${productValue}])
258
- OR Lower(prd.description) LIKE ANY(ARRAY[${productValue}])
259
- )`
260
- }
261
-
262
- let productDescQuery = ''
263
- if (productDesc) {
264
- productDescQuery = "AND Lower(description) LIKE '%" + productDesc.value.toLowerCase() + "%'"
265
- }
266
-
267
- await tx.query(
268
- `
269
- create temp table temp_products AS
270
- (
271
- select prd.id, prd.name, prd.sku, prd.description, prd.id::varchar as product_id, prd.type from products prd
272
- inner join bizplaces b on b.id = prd.bizplace_id
273
- inner join companies c on c.domain_id = b.domain_id
274
- inner join bizplaces b2 on b2.company_id = c.id
275
- where b2.id = $1
276
- ${productQuery}
277
- GROUP BY prd.id, prd.sku, prd.name, prd.description
278
- )`,
279
- [bizplace.id]
280
- )
281
- }
282
-
283
- async function filterInventoryQuery(tx: EntityManager, params: ListParam, bizplace: Bizplace, context: any) {
284
- let toDate = params.filters.find(data => data.name === 'toDate')
285
- let batchNo = params.filters.find(data => data.name === 'batchNo')
286
-
287
- let batchNoQuery = ''
288
- if (batchNo) {
289
- batchNoQuery =
290
- 'AND Lower(ih.batch_id) LIKE ANY(ARRAY[' +
291
- batchNo.value
292
- .toLowerCase()
293
- .split(',')
294
- .map(prod => {
295
- return "'%" + prod.trim().replace(/'/g, "''") + "%'"
296
- })
297
- .join(',') +
298
- '])'
299
- }
300
-
301
- await tx.query(
302
- `
303
- create temp table temp_inv_history as (
304
- select i2.pallet_id, ih.product_id::uuid, ih.packing_type, i2.packing_size, ih.batch_id,
305
- ih.id as inventory_history_id, ih.seq, ih.status, ih.transaction_type, ih.qty, ih.opening_qty, ih.weight, ih.opening_weight, ih.created_at
306
- from inventories i2
307
- inner join reduced_inventory_histories ih on ih.pallet_id = i2.pallet_id and ih.domain_id = i2.domain_id
308
- where
309
- i2.domain_id = $1
310
- and i2.bizplace_id = $2
311
- and ih.created_at <= $3
312
- ${batchNoQuery}
313
- )
314
- `,
315
- [context.state.domain.id, bizplace.id, toDate.value]
316
- )
317
- }
@@ -1,13 +0,0 @@
1
- import { Domain } from '@things-factory/shell'
2
- import { getRepository } from 'typeorm'
3
- import { InventoryHistory } from '../../../entities'
4
-
5
- export const inventoryHistoryResolver = {
6
- async inventoryHistory(_: any, { name }, context: any) {
7
- const { domain }: { domain: Domain } = context.state
8
-
9
- return await getRepository(InventoryHistory).findOne({
10
- where: { domain: domain, name, relations: ['domain', 'creator', 'updater'] }
11
- })
12
- }
13
- }
@@ -1,233 +0,0 @@
1
- import { User } from '@things-factory/auth-base'
2
- import { Bizplace, getPermittedBizplaceIds } from '@things-factory/biz-base'
3
- import { Domain } from '@things-factory/shell'
4
- import { EntityManager } from 'typeorm'
5
-
6
- export const onhandInventoriesResolver = {
7
- async onhandInventories(_: any, { filters, pagination, sortings, locationSortingRules }, context: any) {
8
- const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state
9
-
10
- // define all inputs
11
- let userFilter = filters.find(data => data.name === 'user')
12
- let product = filters.find(data => data.name === 'product')
13
- let createdAt = filters.find(data => data.name === 'created_at')
14
- let location = filters.find(data => data.name === 'location')
15
- let batchId = filters.find(data => data.name === 'batchId')
16
- let palletId = filters.find(data => data.name === 'palletId')
17
- let cartonId = filters.find(data => data.name === 'cartonId')
18
- let packingType = filters.find(data => data.name === 'packingType')
19
- let timezoneOffset = filters.find(data => data.name === 'timezoneOffset').value + ' minutes'
20
-
21
- // expiration date filter
22
- let expiration = filters.find(data => data.name === 'expiration').value
23
- let expFromDate = filters.find(data => data.name === 'expFromDate')
24
- let expToDate = filters.find(data => data.name === 'expToDate')
25
-
26
- let bizplaceFilter = { name: '', operator: '', value: [] }
27
-
28
- // prepare query filters
29
- if (userFilter) {
30
- const user: User = await tx.getRepository(User).findOne({
31
- where: { id: userFilter.value },
32
- relations: ['bizplaces']
33
- })
34
-
35
- const bizplace: Bizplace = user.bizplaces[0]
36
-
37
- if (!bizplace) throw 'Invalid input'
38
-
39
- bizplaceFilter = { name: 'bizplace', operator: 'eq', value: [bizplace.id] }
40
- } else {
41
- bizplaceFilter = !filters.find((filter: any) => filter.name === 'bizplace')
42
- ? {
43
- name: 'bizplace',
44
- operator: 'in',
45
- value: await getPermittedBizplaceIds(domain, user),
46
- relation: true
47
- }
48
- : {
49
- ...filters.find(data => data.name === 'bizplace'),
50
- value: [filters.find(data => data.name === 'bizplace').value]
51
- }
52
- }
53
-
54
- let queryFilter = ``
55
- let bizplaces = bizplaceFilter.value.map(id => `('${id}')`).join(',')
56
-
57
- if (product) {
58
- let products = product.value
59
- .toLowerCase()
60
- .split(',')
61
- .map(prod => {
62
- return "'%" + prod.trim().replace(/'/g, "''") + "%'"
63
- })
64
- .join(',')
65
-
66
- queryFilter =
67
- queryFilter +
68
- ` and exists (
69
- select prd.id as product_id from products prd
70
- inner join bizplaces b on b.id = prd.bizplace_id
71
- inner join companies c on c.domain_id = b.domain_id
72
- inner join bizplaces b2 on b2.company_id = c.id
73
- where exists (
74
- SELECT * FROM tmp_bizfilter bizFilter
75
- WHERE bizFilter.bizplace_id = "b2"."id"
76
- )
77
- and (lower(prd.name) like any(array[${products}])
78
- or lower(prd.description) like any(array[${products}])
79
- or lower(prd.sku) like any(array[${products}]))
80
- and prd.id = rih.product_id
81
- group by prd.id
82
- )`
83
- }
84
-
85
- if (location) {
86
- let locations = location.value
87
- .map(loc => {
88
- return "'" + loc + "'"
89
- })
90
- .join(',')
91
-
92
- queryFilter =
93
- queryFilter +
94
- `and exists (
95
- select loc.id from locations loc where
96
- loc.id = any(array[${locations}]::uuid[])
97
- and loc.id = rih.location_id
98
- )`
99
- }
100
-
101
- // default sorting
102
- let queryOrder = 'order by created_at desc'
103
- if (sortings && sortings.length > 0) {
104
- const arrObjectMap = [
105
- { name: 'palletId', value: 'rih.pallet_id' },
106
- { name: 'cartonId', value: 'rih.carton_id' },
107
- { name: 'batchId', value: 'rih.batch_id' },
108
- { name: 'initialInboundAt', value: 'rih.initial_inbound_at' },
109
- { name: 'bizplace|name', value: 'bz.name' },
110
- { name: 'product|name', value: 'prd.sku' },
111
- { name: 'remainQty', value: 'rih.qty' },
112
- { name: 'location|name', value: 'loc.name' }
113
- ]
114
- sortings.forEach((sorting, idx) => {
115
- let itmIndex = arrObjectMap.findIndex(x => x.name === sorting.name)
116
-
117
- queryOrder = `${idx === 0 ? 'order by' : queryOrder + ','} ${
118
- itmIndex >= 0 ? arrObjectMap[itmIndex].value : sorting.name
119
- } ${sorting.desc ? 'DESC' : 'ASC'}`
120
- })
121
- }
122
-
123
- if (batchId) queryFilter = `${queryFilter} and lower(rih.batch_id) like '${batchId.value.toLowerCase()}' `
124
-
125
- if (palletId) queryFilter = `${queryFilter} and rih.pallet_id like '${palletId.value}' `
126
-
127
- if (cartonId) queryFilter = `${queryFilter} and rih.carton_id like '${cartonId.value}' `
128
-
129
- if (packingType) queryFilter = `${queryFilter} and rih.packing_type like '${packingType.value}' `
130
-
131
- let expirationQueryFilter = ``
132
- if (expiration)
133
- expirationQueryFilter = ` and iv.expiration_date >= '${expFromDate.value}'::timestamp + '${timezoneOffset}'::INTERVAL and
134
- iv.expiration_date <= '${expToDate.value}'::timestamp + '${timezoneOffset}'::INTERVAL + '1 day'::INTERVAL`
135
-
136
- // query the results
137
- await tx.query(`
138
- CREATE TEMP TABLE tmp_bizfilter AS (
139
- SELECT bizplace_id::uuid FROM (VALUES ${bizplaces}) AS bizFilter(bizplace_id)
140
- );
141
- `)
142
-
143
- await tx.query(
144
- `
145
- create temp table tmp_src as (
146
- select domain_id, pallet_id, carton_id, seq, qty, uom_value, packing_type, batch_id, batch_id_ref, created_at, status,
147
- product_id::uuid as product_id, bizplace_id::uuid as bizplace_id, location_id::uuid as location_id
148
- from reduced_inventory_histories rih
149
- where domain_id = $1 and created_at < $2::timestamp + $3::INTERVAL + '1 day'::INTERVAL
150
- );
151
- `,
152
- [domain.id, createdAt.value, timezoneOffset]
153
- )
154
-
155
- await tx.query(
156
- `
157
- create temp table tmp_data as (
158
- select dt.*, rih.carton_id, rih.batch_id, rih.batch_id_ref, rih.product_id, rih.packing_type, rih.bizplace_id, rih.location_id, iv.uom,
159
- iv.expiration_date, iv.reusable_pallet_id, iv.remark
160
- from
161
- (
162
- select ih.domain_id, ih.pallet_id, sum(ih.qty) as qty, sum(ih.uom_value) as uom_value, max(ih.seq) as last_seq, max(ih.created_at) as created_at,
163
- min(ih.created_at) as initial_inbound_at
164
- from tmp_src ih
165
- group by ih.domain_id, ih.pallet_id
166
- ) dt
167
- inner join tmp_src rih on dt.domain_id = rih.domain_id and dt.pallet_id = rih.pallet_id and dt.last_seq = rih.seq and rih.status <> 'TERMINATED'
168
- inner join inventories iv on iv.domain_id = dt.domain_id and iv.pallet_id = dt.pallet_id
169
- where exists (
170
- SELECT * FROM tmp_bizfilter bizFilter
171
- WHERE bizFilter.bizplace_id = "rih"."bizplace_id"
172
- )
173
- ${queryFilter}
174
- ${expirationQueryFilter}
175
- );
176
- `
177
- )
178
-
179
- const total: any = await tx.query(`select count(*) from tmp_data`)
180
-
181
- const result: any = await tx.query(
182
- `
183
- select
184
- rih.domain_id, rih.pallet_id as "palletId", rih.carton_id as "cartonId", rih.qty as "remainQty", rih.uom_value as "uomValue", rih.uom, rih.last_seq, rih.created_at,
185
- rih.initial_inbound_at as "initialInboundAt",
186
- case when rih.reusable_pallet_id is not null then concat(rih.batch_id, ' (', plt.name, ')') else rih.batch_id end as "batchId",
187
- rih.batch_id_ref as "batchIdRef", rih.product_id, rih.packing_type as "packingType", rih.bizplace_id, rih.location_id,
188
- prd.name as product_name, prd.sku as product_sku, prd.description as product_description,
189
- bz.name as bizplace_name,
190
- loc.name as location_name, loc."zone" as location_zone, loc."row" as location_row, loc."column" as location_column, loc.shelf as location_shelf,
191
- wh.name as warehouse_name, plt.name as reusable_pallet_name,
192
- rih.remark,
193
- rih.expiration_date as "expirationDate"
194
- from tmp_data rih
195
- left join pallets plt on plt.id = rih.reusable_pallet_id
196
- inner join products prd on prd.id = rih.product_id
197
- inner join bizplaces bz on bz.id = rih.bizplace_id
198
- inner join locations loc on loc.id = rih.location_id
199
- inner join warehouses wh on wh.id = loc.warehouse_id
200
- WHERE 1 = 1
201
- ${queryOrder}
202
- OFFSET $1 LIMIT $2;
203
- `,
204
- [(pagination.page - 1) * pagination.limit, pagination.limit]
205
- )
206
-
207
- tx.query(`
208
- drop table tmp_src, tmp_data, tmp_bizfilter
209
- `)
210
-
211
- // map all results
212
- let items = result.map(itm => {
213
- return {
214
- ...itm,
215
- bizplace: {
216
- name: itm.bizplace_name
217
- },
218
- location: {
219
- name: itm.location_name,
220
- type: itm.location_type,
221
- zone: itm.location_zone
222
- },
223
- product: {
224
- name: itm.product_name,
225
- description: itm.product_description,
226
- sku: itm.product_sku
227
- }
228
- }
229
- })
230
-
231
- return { items, total: total[0].count }
232
- }
233
- }
@@ -1,21 +0,0 @@
1
- import { User } from '@things-factory/auth-base'
2
- import { Domain } from '@things-factory/shell'
3
- import { EntityManager } from 'typeorm'
4
- import { InventoryHistory } from '../../../entities'
5
-
6
- export const updateInventoryHistory = {
7
- async updateInventoryHistory(_: any, { name, patch }, context: any) {
8
- const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state
9
-
10
- const repository = tx.getRepository(InventoryHistory)
11
- const inventoryHistory = await repository.findOne({
12
- where: { domain: domain, name }
13
- })
14
-
15
- return await repository.save({
16
- ...inventoryHistory,
17
- ...patch,
18
- updater: user
19
- })
20
- }
21
- }
@@ -1,48 +0,0 @@
1
- import { User } from '@things-factory/auth-base'
2
- import { Domain } from '@things-factory/shell'
3
- import { EntityManager } from 'typeorm'
4
- import { InventoryHistory } from '../../../entities'
5
-
6
- export const updateMultipleInventoryHistory = {
7
- async updateMultipleInventoryHistory(_: any, { patches }, context: any) {
8
- const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state
9
-
10
- let results = []
11
- const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
12
- const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
13
- const inventoryHistoryRepo = tx.getRepository(InventoryHistory)
14
-
15
- if (_createRecords.length > 0) {
16
- let newRecord = new InventoryHistory()
17
- for (let i = 0; i < _createRecords.length; i++) {
18
- newRecord = _createRecords[i]
19
- }
20
-
21
- const result = await inventoryHistoryRepo.save({
22
- ...newRecord,
23
- domain: domain,
24
- creator: user,
25
- updater: user
26
- })
27
-
28
- results.push({ ...result, cuFlag: '+' })
29
- }
30
-
31
- if (_updateRecords.length > 0) {
32
- for (let i = 0; i < _updateRecords.length; i++) {
33
- const newRecord = _updateRecords[i]
34
- const inventoryHistory = await inventoryHistoryRepo.findOne(newRecord.id)
35
-
36
- const result = await inventoryHistoryRepo.save({
37
- ...inventoryHistory,
38
- ...newRecord,
39
- updater: user
40
- })
41
-
42
- results.push({ ...result, cuFlag: 'M' })
43
- }
44
- }
45
-
46
- return results
47
- }
48
- }
@@ -1,25 +0,0 @@
1
- import { User } from '@things-factory/auth-base'
2
- import { Domain } from '@things-factory/shell'
3
- import { EntityManager, Repository } from 'typeorm'
4
- import { Location, Warehouse } from '../../../entities'
5
-
6
- export const createLocationResolver = {
7
- async createLocation(_: any, { location }, context: any) {
8
- return await createLocation(location, context)
9
- }
10
- }
11
-
12
- export async function createLocation(location: Location, context: any) {
13
- const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state
14
-
15
- const locationRepository: Repository<Location> = tx.getRepository(Location)
16
- const warehouseRepository: Repository<Warehouse> = tx.getRepository(Warehouse)
17
-
18
- return await locationRepository.save({
19
- ...location,
20
- warehouse: await warehouseRepository.findOne(location.warehouse.id),
21
- domain,
22
- creator: user,
23
- updater: user
24
- })
25
- }
@@ -1,12 +0,0 @@
1
- import { EntityManager } from 'typeorm'
2
- import { Location, Warehouse } from '../../../entities'
3
-
4
- export const deleteAllLocations = {
5
- async deleteAllLocations(_: any, { warehouseId }, context: any) {
6
- const { tx }: { tx: EntityManager } = context.state
7
-
8
- await tx.getRepository(Location).delete({
9
- warehouse: await tx.getRepository(Warehouse).findOne(warehouseId)
10
- })
11
- }
12
- }