@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,36 +0,0 @@
1
- import { Inventory } from './inventory'
2
- import { InventoryChange } from './inventory-change'
3
- import { InventoryHistory } from './inventory-history'
4
- import { ReducedInventoryHistory } from './reduced-inventory-history'
5
- import { Location } from './location'
6
- import { Movement } from './movement'
7
- import { Warehouse } from './warehouse'
8
- import { Pallet } from './pallet'
9
- import { PalletHistory } from './pallet-history'
10
- import { PalletCount } from './pallet-count'
11
-
12
- export const entities = [
13
- Location,
14
- Inventory,
15
- InventoryChange,
16
- InventoryHistory,
17
- ReducedInventoryHistory,
18
- Warehouse,
19
- Movement,
20
- Pallet,
21
- PalletHistory,
22
- PalletCount
23
- ]
24
-
25
- export {
26
- Location,
27
- Inventory,
28
- InventoryChange,
29
- InventoryHistory,
30
- ReducedInventoryHistory,
31
- Warehouse,
32
- Movement,
33
- Pallet,
34
- PalletHistory,
35
- PalletCount
36
- }
@@ -1,40 +0,0 @@
1
- import { CreateDateColumn, UpdateDateColumn, Entity, Index, Column, OneToMany, ManyToOne, PrimaryGeneratedColumn } from 'typeorm'
2
- import { Domain } from '@things-factory/shell'
3
- import { User } from '@things-factory/auth-base'
4
-
5
- @Entity()
6
- @Index('ix_pallet-count_0', (palletCount: PalletCount) => [palletCount.domain, palletCount.name], { unique: true })
7
- export class PalletCount {
8
- @PrimaryGeneratedColumn('uuid')
9
- id: string
10
-
11
- @ManyToOne(type => Domain)
12
- domain: Domain
13
-
14
- @Column()
15
- name: string
16
-
17
- @Column({ default: 0 })
18
- seq: number
19
-
20
- @Column({
21
- nullable: true
22
- })
23
- description: string
24
-
25
- @CreateDateColumn()
26
- createdAt: Date
27
-
28
- @UpdateDateColumn()
29
- updatedAt: Date
30
-
31
- @ManyToOne(type => User, {
32
- nullable: true
33
- })
34
- creator: User
35
-
36
- @ManyToOne(type => User, {
37
- nullable: true
38
- })
39
- updater: User
40
- }
@@ -1,7 +0,0 @@
1
- import * as typeDefs from './types'
2
- import * as resolvers from './resolvers'
3
-
4
- export const schema = {
5
- typeDefs,
6
- resolvers
7
- }
@@ -1,33 +0,0 @@
1
- import * as Inventory from './inventory'
2
- import * as InventoryChange from './inventory-change'
3
- import * as InventoryHistory from './inventory-history'
4
- import * as Location from './location'
5
- import * as Movement from './movement'
6
- import * as Warehouse from './warehouse'
7
- import * as Pallet from './pallet'
8
- import * as PalletHistory from './pallet-history'
9
- import * as PalletCount from './pallet-count'
10
-
11
- export const queries = [
12
- Location.Query,
13
- Inventory.Query,
14
- InventoryChange.Query,
15
- InventoryHistory.Query,
16
- Warehouse.Query,
17
- Movement.Query,
18
- Pallet.Query,
19
- PalletHistory.Query,
20
- PalletCount.Query
21
- ]
22
-
23
- export const mutations = [
24
- Location.Mutation,
25
- Inventory.Mutation,
26
- InventoryChange.Mutation,
27
- InventoryHistory.Mutation,
28
- Warehouse.Mutation,
29
- Movement.Mutation,
30
- Pallet.Mutation,
31
- PalletHistory.Mutation,
32
- PalletCount.Mutation
33
- ]
@@ -1,32 +0,0 @@
1
- import { getRepository, Repository } from 'typeorm'
2
- import { INVENTORY_STATUS } from '../../../constants'
3
- import { Inventory } from '../../../entities'
4
-
5
- export const checkCartonIdenticalityResolver = {
6
- async checkCartonIdenticality(_: any, { cartonA, palletA, cartonB }, context: any) {
7
- const invRepo: Repository<Inventory> = getRepository(Inventory)
8
- const invA: Inventory = await invRepo.findOne({
9
- where: { domain: context.state.domain, palletId: palletA, cartonId: cartonA, status: INVENTORY_STATUS.STORED },
10
- relations: ['product']
11
- })
12
-
13
- const invB: Inventory = await invRepo.findOne({
14
- where: {
15
- domain: context.state.domain,
16
- packingType: invA.packingType,
17
- packingSize: invA.packingSize,
18
- product: invA.product,
19
- cartonId: cartonB,
20
- status: INVENTORY_STATUS.STORED
21
- },
22
- relations: ['product']
23
- })
24
-
25
- return (
26
- invA?.expirationDate === invB?.expirationDate &&
27
- invA?.product?.id === invB?.product?.id &&
28
- invA?.packingType === invB?.packingType &&
29
- invA?.packingSize === invB?.packingSize
30
- )
31
- }
32
- }
@@ -1,26 +0,0 @@
1
- import { Bizplace } from '@things-factory/biz-base'
2
- import { getRepository, Repository } from 'typeorm'
3
- import { INVENTORY_STATUS } from '../../../constants'
4
- import { Inventory } from '../../../entities'
5
-
6
- export const checkInventoryOwnerResolver = {
7
- async checkInventoryOwner(_: any, { palletId, bizplaceName }, context: any) {
8
- const invRepo: Repository<Inventory> = getRepository(Inventory)
9
- const bizRepo: Repository<Bizplace> = getRepository(Bizplace)
10
-
11
- const inventory: Inventory = await invRepo.findOne({
12
- where: { domain: context.state.domain, palletId, status: INVENTORY_STATUS.STORED },
13
- relations: ['bizplace']
14
- })
15
-
16
- if (!inventory) throw new Error('This inventory status is not stored.')
17
-
18
- const ownerBizplace: Bizplace = await bizRepo.findOne({
19
- where: { name: bizplaceName }
20
- })
21
-
22
- const foundBizplace: Bizplace = inventory.bizplace
23
-
24
- return Boolean(ownerBizplace.id === foundBizplace.id)
25
- }
26
- }
@@ -1,24 +0,0 @@
1
- import { getRepository, Repository } from 'typeorm'
2
- import { INVENTORY_STATUS } from '../../../constants'
3
- import { Inventory } from '../../../entities'
4
-
5
- export const checkProductIdenticalityResolver = {
6
- async checkProductIdenticality(_: any, { palletA, palletB }, context: any) {
7
- const invRepo: Repository<Inventory> = getRepository(Inventory)
8
- const invA: Inventory = await invRepo.findOne({
9
- where: { domain: context.state.domain, palletId: palletA, status: INVENTORY_STATUS.STORED },
10
- relations: ['product']
11
- })
12
-
13
- const invB: Inventory = await invRepo.findOne({
14
- where: { domain: context.state.domain, palletId: palletB, status: INVENTORY_STATUS.STORED },
15
- relations: ['product']
16
- })
17
-
18
- return (
19
- invA?.batchId === invB?.batchId &&
20
- invA?.product?.id === invB?.product?.id &&
21
- invA?.packingType === invB?.packingType
22
- )
23
- }
24
- }
@@ -1,15 +0,0 @@
1
- import { EntityManager } from 'typeorm'
2
- import { Inventory } from '../../../entities'
3
-
4
- export const createInventory = {
5
- async createInventory(_: any, { inventory }, context: any) {
6
- const { tx }: { tx: EntityManager } = context.state
7
-
8
- return await tx.getRepository(Inventory).save({
9
- domain: context.state.domain,
10
- creator: context.state.user,
11
- updater: context.state.user,
12
- ...inventory
13
- })
14
- }
15
- }
@@ -1,14 +0,0 @@
1
- import { EntityManager, In } from 'typeorm'
2
- import { Inventory } from '../../../entities'
3
-
4
- export const deleteInventories = {
5
- async deleteInventories(_: any, { id }, context) {
6
- const { tx }: { tx: EntityManager } = context.state
7
-
8
- await tx.getRepository(Inventory).delete({
9
- id: In(id)
10
- })
11
-
12
- return true
13
- }
14
- }
@@ -1,10 +0,0 @@
1
- import { EntityManager } from 'typeorm'
2
- import { Inventory } from '../../../entities'
3
-
4
- export const deleteInventory = {
5
- async deleteInventory(_: any, { name }, context: any) {
6
- const { tx }: { tx: EntityManager } = context.state
7
-
8
- return await tx.getRepository(Inventory).delete({ domain: context.state.domain, name })
9
- }
10
- }
@@ -1,38 +0,0 @@
1
- import { checkProductIdenticalityResolver } from './check-product-identicality'
2
- import { checkCartonIdenticalityResolver } from './check-carton-identicality'
3
- import { checkInventoryOwnerResolver } from './check-inventory-owner'
4
- import { createInventory } from './create-inventory'
5
- import { deleteInventories } from './delete-inventories'
6
- import { deleteInventory } from './delete-inventory'
7
- import { inventoriesResolver } from './inventories'
8
- import { inventoriesByProduct } from './inventories-by-product'
9
- import { inventoriesByStrategyResolver, inventoriesByStrategy } from './inventories-by-strategy'
10
- import { inventoryResolver } from './inventory'
11
- import { inventoryByPalletResolver } from './inventory-by-pallet'
12
- import { updateInventory } from './update-inventory'
13
- import { updateInventoryRemark } from './update-inventory-remark'
14
- import { updateMultipleInventory } from './update-multiple-inventory'
15
- import { inventoryTransfer } from './inventory-transfer'
16
- import { inventoriesByBundleResolver } from './inventories-by-bundle'
17
-
18
- export const Query = {
19
- ...inventoriesResolver,
20
- ...inventoryResolver,
21
- ...inventoriesByProduct,
22
- ...inventoriesByStrategyResolver,
23
- ...checkProductIdenticalityResolver,
24
- ...checkCartonIdenticalityResolver,
25
- ...checkInventoryOwnerResolver,
26
- ...inventoryByPalletResolver,
27
- ...inventoriesByBundleResolver
28
- }
29
-
30
- export const Mutation = {
31
- ...updateInventory,
32
- ...createInventory,
33
- ...deleteInventory,
34
- ...updateMultipleInventory,
35
- ...deleteInventories,
36
- ...inventoryTransfer,
37
- ...updateInventoryRemark
38
- }
@@ -1,168 +0,0 @@
1
- import { User } from '@things-factory/auth-base'
2
- import { getPermittedBizplaceIds } from '@things-factory/biz-base'
3
- import { buildQuery, Domain } from '@things-factory/shell'
4
- import { getRepository, SelectQueryBuilder } from 'typeorm'
5
- import { Inventory } from '../../../entities'
6
- import { ProductBundleSetting } from '@things-factory/product-base'
7
-
8
- export const inventoriesByBundleResolver = {
9
- async inventoriesByBundle(_: any, { filters, pagination, sortings }, context: any) {
10
- const { domain, user }: { domain: Domain; user: User } = context.state
11
-
12
- const params = { filters, pagination }
13
-
14
- const productBundleId = params.filters.filter(x => x.name === 'productBundleId')[0].value
15
- if (!productBundleId) {
16
- throw new Error('params product bundle is missing')
17
- }
18
-
19
- const bundleReleaseQty: number = params.filters.filter(x => x.name === 'bundleReleaseQty')[0].value
20
-
21
- // remove productBundleId and bundleReleaseQty from params.filters
22
- params.filters = params.filters.filter(x => x.name !== 'productBundleId' && x.name !== 'bundleReleaseQty')
23
-
24
- if (!params.filters.find((filter: any) => filter.name === 'bizplace_id')) {
25
- params.filters.push({
26
- name: 'bizplace_id',
27
- operator: 'in',
28
- value: await getPermittedBizplaceIds(domain, user),
29
- relation: true
30
- })
31
- }
32
-
33
- const remainOnlyParam: { name: string; operator: string; value: boolean } = params?.filters?.find(
34
- (f: { name: string; operator: string; value: any }) => f.name === 'remainOnly'
35
- )
36
-
37
- let remainOnly: boolean = false
38
- if (typeof remainOnlyParam?.value !== 'undefined') {
39
- remainOnly = remainOnlyParam.value
40
- params.filters = params.filters.filter(
41
- (f: { name: string; operator: string; value: any }) => f.name !== 'remainOnly'
42
- )
43
- }
44
-
45
- const unlockOnlyParam: { name: string; operator: string; value: boolean } = params?.filters?.find(
46
- (f: { name: string; operator: string; value: any }) => f.name === 'unlockOnly'
47
- )
48
-
49
- let unlockOnly: boolean = false
50
- if (typeof unlockOnlyParam?.value !== 'undefined') {
51
- unlockOnly = unlockOnlyParam.value
52
- params.filters = params.filters.filter(
53
- (f: { name: string; operator: string; value: any }) => f.name !== 'unlockOnly'
54
- )
55
- }
56
-
57
- const productBundleSettings: ProductBundleSetting[] = await getRepository(ProductBundleSetting).find({
58
- where: { productBundle: productBundleId },
59
- relations: ['product', 'productBundle']
60
- })
61
-
62
- if (!productBundleSettings.length) {
63
- throw new Error('product bundle settings is not found')
64
- }
65
-
66
- const qb: SelectQueryBuilder<Inventory> = getRepository(Inventory).createQueryBuilder('iv')
67
- buildQuery(qb, params, context)
68
-
69
- qb.select('iv.product_id', 'productId')
70
- .addSelect('iv.batch_id', 'batchId')
71
- .addSelect('iv.batch_id_ref', 'batchIdRef')
72
- .addSelect('iv.packing_type', 'packingType')
73
- .addSelect('SUM(iv.qty)', 'qty')
74
- .addSelect('SUM(iv.locked_qty)', 'lockedQty')
75
- .addSelect('SUM(iv.uom_value)', 'uomValue')
76
- .addSelect('SUM(iv.locked_uom_value)', 'lockedUomValue')
77
- .addSelect('prd.sku', 'productSku')
78
- .addSelect('prd.name', 'productName')
79
- .addSelect('prd.description', 'productDescription')
80
- .addSelect('prd.type', 'productType')
81
- .addSelect('prd.primary_unit', 'uom')
82
- .leftJoin('iv.product', 'prd')
83
-
84
- if (remainOnly) {
85
- qb.andWhere('iv.qty > 0')
86
- .andWhere('CASE WHEN iv.lockedQty IS NULL THEN 0 ELSE iv.lockedQty END >= 0')
87
- .andWhere('iv.qty - CASE WHEN iv.lockedQty IS NULL THEN 0 ELSE iv.lockedQty END > 0')
88
- }
89
-
90
- if (unlockOnly) {
91
- qb.andWhere('CASE WHEN iv.lockedQty IS NULL THEN 0 ELSE iv.lockedQty END = 0')
92
- }
93
-
94
- qb.andWhere('iv.product_id IN (:...productIds)', {
95
- productIds: productBundleSettings.map(productBundle => productBundle.product.id)
96
- })
97
- .groupBy('iv.product_id')
98
- .addGroupBy('iv.batch_id')
99
- .addGroupBy('iv.batch_id_ref')
100
- .addGroupBy('iv.packing_type')
101
- .addGroupBy('prd.sku')
102
- .addGroupBy('prd.name')
103
- .addGroupBy('prd.description')
104
- .addGroupBy('prd.type')
105
- .addOrderBy('prd.name')
106
- .addGroupBy('prd.primary_unit')
107
- .addOrderBy('iv.batch_id')
108
-
109
- let bundleGroup = await qb.getRawMany()
110
-
111
- bundleGroup = bundleGroup.map((item: any) => {
112
- return {
113
- ...item,
114
- bundleId: productBundleId,
115
- remainQty: item.qty - (item.lockedQty ? item.lockedQty : 0),
116
- remainUomValue: item.uomValue - (item.lockedUomValue ? item.lockedUomValue : 0),
117
- uom: item.uom,
118
- bundleQty: productBundleSettings.filter(pbs => pbs.product.id === item.productId)[0].bundleQty
119
- }
120
- })
121
-
122
- const bundleSetting = productBundleSettings.map(pbs => {
123
- return {
124
- id: pbs.id,
125
- productId: pbs.product.id,
126
- bundleId: pbs.productBundle.id,
127
- bundleQty: pbs.bundleQty,
128
- releaseQty: bundleReleaseQty * pbs.bundleQty,
129
- productReleaseQty: 0,
130
- productReleaseUomValue: 0
131
- }
132
- })
133
-
134
- /** ************************ **/
135
- bundleGroup = bundleGroup
136
- .map(group => {
137
- const uomValue = group.remainUomValue / group.remainQty
138
-
139
- bundleSetting.forEach(setting => {
140
- let assigned = false
141
- let releaseQty = 0
142
- let releaseUomValue = 0
143
-
144
- if (group.productId === setting.productId) {
145
- if (setting.productReleaseQty < setting.releaseQty) {
146
- assigned = true
147
- const leftQty = setting.releaseQty - setting.productReleaseQty
148
- releaseQty = leftQty > group.remainQty ? group.remainQty : leftQty
149
- releaseUomValue = Math.round(releaseQty * uomValue * 100) / 100
150
- setting.productReleaseQty += releaseQty
151
- setting.productReleaseUomValue += releaseUomValue
152
- }
153
-
154
- group.assigned = assigned
155
- group.releaseQty = releaseQty
156
- group.releaseUomValue = releaseUomValue
157
- group.releaseUomValueWithUom = `${releaseUomValue} ${group.uom}`
158
- }
159
- })
160
-
161
- return group
162
- })
163
- .filter(group => group.assigned)
164
- /** ************************ **/
165
-
166
- return { bundleGroup, bundleSetting }
167
- }
168
- }
@@ -1,164 +0,0 @@
1
- import { User } from '@things-factory/auth-base'
2
- import { getPermittedBizplaceIds, getPartnersCompanyBizplaces, Bizplace } from '@things-factory/biz-base'
3
- import { Product } from '@things-factory/product-base'
4
- import { convertListParams, ListParam, Domain } from '@things-factory/shell'
5
- import { getRepository, SelectQueryBuilder, EntityManager } from 'typeorm'
6
- import { Inventory } from '../../../entities'
7
-
8
- export const inventoriesByProduct = {
9
- async inventoriesByProduct(_: any, params: ListParam, context: any) {
10
- try {
11
- const { domain, user, tx }: { domain: Domain; user: User; tx: EntityManager } = context.state
12
- let permittedBizplaceIds: string[] = await getPermittedBizplaceIds(domain, user)
13
- const partnersCompanyBizplaces: Bizplace[] = await getPartnersCompanyBizplaces(domain, user)
14
-
15
- const page = params.pagination.page
16
- const limit = params.pagination.limit
17
-
18
- let bizplaceFilter = params.filters.find(filter=>filter.name =='bizplace')
19
- let productFilter = params.filters.find(filter=>filter.name =='product')
20
- let productTypeFilter = params.filters.find(filter=>filter.name =='type')
21
- let availableStockFilter = params.filters.find(filter=>filter.name =='availableStock')
22
- let lowStockFilter = params.filters.find(filter=>filter.name =='lowStock')
23
- let overStockFilter = params.filters.find(filter=>filter.name =='overStock')
24
-
25
- if(bizplaceFilter){
26
- const bizplaceQueryBuilder: SelectQueryBuilder<Bizplace> = getRepository(Bizplace).createQueryBuilder('b')
27
- bizplaceQueryBuilder
28
- .innerJoin('companies', 'c2', ' c2.domain_id = b.domain_id')
29
- .innerJoin('bizplaces', 'b2', 'b2.company_id = c2.id')
30
- .where('b2.id = :bizplaceId', { bizplaceId: bizplaceFilter.value })
31
-
32
- let bizplaceList = await bizplaceQueryBuilder.getMany()
33
-
34
- permittedBizplaceIds = [
35
- ...permittedBizplaceIds.filter(itm => itm == bizplaceFilter.value),
36
- ...bizplaceList.map(bz=>bz.id),
37
- ...partnersCompanyBizplaces.map(biz=>biz.id)
38
- ]
39
- }
40
-
41
- let bizplaceQuery = ''
42
- if(permittedBizplaceIds.length > 0){
43
- bizplaceQuery = `AND EXISTS (
44
- SELECT * FROM (VALUES ${permittedBizplaceIds.map(id => `('${id}')`).join(',')})
45
- AS bizFilter(bizplace_id)
46
- WHERE bizFilter.bizplace_id::uuid = "Inventory"."bizplace_id"
47
- )`
48
- } else {
49
- bizplaceQuery = `1 = 0`
50
- }
51
-
52
- let productQuery = ''
53
- if (productFilter) {
54
- let productValue = productFilter.value
55
- .toLowerCase()
56
- .split(',')
57
- .map(prod => {
58
- return "'%" + prod.trim().replace(/'/g, "''") + "%'"
59
- })
60
- .join(',')
61
- productQuery = `AND (
62
- Lower("Product"."name") LIKE ANY(ARRAY[${productValue}])
63
- OR Lower("Product"."sku") LIKE ANY(ARRAY[${productValue}])
64
- OR Lower("Product"."description") LIKE ANY(ARRAY[${productValue}])
65
- OR Lower("ProductRef"."name") LIKE ANY(ARRAY[${productValue}])
66
- OR Lower("ProductRef"."sku") LIKE ANY(ARRAY[${productValue}])
67
- OR Lower("ProductRef"."description") LIKE ANY(ARRAY[${productValue}])
68
- )`
69
- }
70
-
71
- if(productTypeFilter){
72
- let productTypeValue = productTypeFilter.value
73
- .toLowerCase()
74
- .split(',')
75
- .map(prod => {
76
- return "'%" + prod.trim().replace(/'/g, "''") + "%'"
77
- })
78
- .join(',')
79
- productQuery = productQuery + ` AND (
80
- Lower("Product"."type") LIKE ANY(ARRAY[${productTypeValue}])
81
- )`
82
- }
83
-
84
- let availableStockQuery = ''
85
- if(availableStockFilter?.value){
86
- availableStockQuery = ` AND SUM("Inventory"."qty") > 0`
87
- }
88
-
89
- let thresholdQuery = ''
90
- if(lowStockFilter?.value){
91
- thresholdQuery = `AND COALESCE("ProductDetailBizplaceSetting"."min_qty", "Product"."min_qty",0) > SUM("Inventory"."qty")`
92
- }
93
-
94
- if(overStockFilter?.value){
95
- thresholdQuery = `AND COALESCE("ProductDetailBizplaceSetting"."max_qty", "Product"."max_qty",0) > 0 AND
96
- COALESCE("ProductDetailBizplaceSetting"."max_qty", "Product"."max_qty",0) < SUM("Inventory"."qty")`
97
- }
98
-
99
- await tx.query(`
100
- create temp table temp_inv_history AS
101
- (
102
- SELECT "Product"."id" AS "id", "Product"."sku" AS "sku", "Product"."name" AS "name", "Product"."type" AS "type", "Product"."description" AS "description",
103
- "Product"."weight" AS "weight", "ProductRef"."name" AS "productRefName",
104
- "ProductRef"."description" AS "productRefDesciption", "Bizplace"."name" AS "bizplaceName", SUM("Inventory"."qty") AS "qty" ,
105
- CASE WHEN SUM("Inventory"."qty") > 0 THEN SUM(COALESCE("Inventory"."unit_cost", 0) * "Inventory"."qty")/ SUM("Inventory"."qty") ELSE 0 END AS "averageUnitCost",
106
- COALESCE("ProductDetailBizplaceSetting"."min_qty", "Product"."min_qty",0) AS "minQty",
107
- COALESCE("ProductDetailBizplaceSetting"."max_qty", "Product"."max_qty",0) AS "maxQty"
108
- FROM "inventories" "Inventory"
109
- LEFT JOIN "products" "Product" ON "Product"."id"="Inventory"."product_id"
110
- LEFT JOIN "product_details" "ProductDetails" ON "ProductDetails"."product_id" = "Product"."id"
111
- AND "ProductDetails"."is_default"
112
- LEFT JOIN "product_detail_bizplace_settings" "ProductDetailBizplaceSetting" ON "ProductDetailBizplaceSetting"."product_detail_id" = "ProductDetails"."id"
113
- AND "ProductDetailBizplaceSetting"."domain_id" = "Inventory"."domain_id"
114
- LEFT JOIN "products" "ProductRef" ON "ProductRef"."id"="Product"."product_ref_id"
115
- INNER JOIN "bizplaces" "Bizplace" ON "Bizplace"."id"="Inventory"."bizplace_id"
116
- WHERE "Inventory"."qty" >= 0
117
- AND "Inventory"."domain_id" = $1
118
- ${bizplaceQuery}
119
- ${productQuery}
120
- GROUP BY "Product"."id", "ProductRef"."id", "Bizplace"."id", "ProductDetailBizplaceSetting"."id"
121
- HAVING 1 = 1
122
- ${availableStockQuery}
123
- ${thresholdQuery}
124
- )`,[domain.id]
125
- )
126
-
127
- const results: any = await tx.query(`
128
- SELECT * FROM temp_inv_history
129
- ORDER BY "bizplaceName", "sku"
130
- OFFSET $1 LIMIT $2
131
- `,[(page - 1) * limit, limit]
132
- )
133
-
134
- const total: any = await tx.query(`SELECT COUNT(*) FROM temp_inv_history`)
135
-
136
- tx.query(`drop table temp_inv_history`)
137
-
138
- return {
139
- items: results.map((item: any) => {
140
- return {
141
- product: {
142
- id: item.id,
143
- name: item.name,
144
- sku: item.sku,
145
- description: item.description,
146
- type: item.type,
147
- weight: item.weight,
148
- productRef: { name: item.productRefName, description: item.productRefDesciption },
149
- bizplace: { name: item.bizplaceName },
150
- minQty: item.minQty,
151
- maxQty: item.maxQty
152
- },
153
- averageUnitCost: item.averageUnitCost,
154
- qty: item.qty
155
- }
156
- }),
157
- total: total[0].count
158
- }
159
-
160
- } catch (error) {
161
- throw error
162
- }
163
- }
164
- }