@things-factory/warehouse-base 3.7.13 → 3.8.1

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 (665) hide show
  1. package/dist-server/constants/index.js +1 -0
  2. package/dist-server/constants/index.js.map +1 -1
  3. package/dist-server/constants/location.js +3 -2
  4. package/dist-server/constants/location.js.map +1 -1
  5. package/dist-server/constants/rule-type.js +8 -0
  6. package/dist-server/constants/rule-type.js.map +1 -0
  7. package/dist-server/controllers/ecommerce/ecommerce-controller.js +3 -3
  8. package/dist-server/controllers/ecommerce/ecommerce-controller.js.map +1 -1
  9. package/dist-server/controllers/ecommerce/sellercraft-controller.js +2 -2
  10. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
  11. package/dist-server/index.js +12 -15
  12. package/dist-server/index.js.map +1 -1
  13. package/dist-server/service/index.js +71 -0
  14. package/dist-server/service/index.js.map +1 -0
  15. package/dist-server/service/inventory/index.js +9 -0
  16. package/dist-server/service/inventory/index.js.map +1 -0
  17. package/dist-server/service/inventory/inventory-mutation.js +364 -0
  18. package/dist-server/service/inventory/inventory-mutation.js.map +1 -0
  19. package/dist-server/service/inventory/inventory-query.js +711 -0
  20. package/dist-server/service/inventory/inventory-query.js.map +1 -0
  21. package/dist-server/service/inventory/inventory-types.js +417 -0
  22. package/dist-server/service/inventory/inventory-types.js.map +1 -0
  23. package/dist-server/{entities → service/inventory}/inventory.js +110 -15
  24. package/dist-server/service/inventory/inventory.js.map +1 -0
  25. package/dist-server/service/inventory-change/index.js +9 -0
  26. package/dist-server/service/inventory-change/index.js.map +1 -0
  27. package/dist-server/{graphql/resolvers/inventory-change/approve-inventory-changes.js → service/inventory-change/inventory-change-mutation.js} +269 -29
  28. package/dist-server/service/inventory-change/inventory-change-mutation.js.map +1 -0
  29. package/dist-server/service/inventory-change/inventory-change-query.js +121 -0
  30. package/dist-server/service/inventory-change/inventory-change-query.js.map +1 -0
  31. package/dist-server/service/inventory-change/inventory-change-types.js +65 -0
  32. package/dist-server/service/inventory-change/inventory-change-types.js.map +1 -0
  33. package/dist-server/{entities → service/inventory-change}/inventory-change.js +51 -5
  34. package/dist-server/service/inventory-change/inventory-change.js.map +1 -0
  35. package/dist-server/service/inventory-history/index.js +9 -0
  36. package/dist-server/service/inventory-history/index.js.map +1 -0
  37. package/dist-server/service/inventory-history/inventory-history-mutation.js +121 -0
  38. package/dist-server/service/inventory-history/inventory-history-mutation.js.map +1 -0
  39. package/dist-server/service/inventory-history/inventory-history-query.js +1285 -0
  40. package/dist-server/service/inventory-history/inventory-history-query.js.map +1 -0
  41. package/dist-server/service/inventory-history/inventory-history-types.js +382 -0
  42. package/dist-server/service/inventory-history/inventory-history-types.js.map +1 -0
  43. package/dist-server/{entities → service/inventory-history}/inventory-history.js +64 -19
  44. package/dist-server/service/inventory-history/inventory-history.js.map +1 -0
  45. package/dist-server/service/location/index.js +9 -0
  46. package/dist-server/service/location/index.js.map +1 -0
  47. package/dist-server/service/location/location-mutation.js +157 -0
  48. package/dist-server/service/location/location-mutation.js.map +1 -0
  49. package/dist-server/service/location/location-query.js +251 -0
  50. package/dist-server/service/location/location-query.js.map +1 -0
  51. package/dist-server/service/location/location-types.js +247 -0
  52. package/dist-server/service/location/location-types.js.map +1 -0
  53. package/dist-server/{entities → service/location}/location.js +33 -4
  54. package/dist-server/service/location/location.js.map +1 -0
  55. package/dist-server/service/movement/index.js +9 -0
  56. package/dist-server/service/movement/index.js.map +1 -0
  57. package/dist-server/service/movement/movement-mutation.js +80 -0
  58. package/dist-server/service/movement/movement-mutation.js.map +1 -0
  59. package/dist-server/service/movement/movement-query.js +286 -0
  60. package/dist-server/service/movement/movement-query.js.map +1 -0
  61. package/dist-server/service/movement/movement-types.js +117 -0
  62. package/dist-server/service/movement/movement-types.js.map +1 -0
  63. package/dist-server/{entities → service/movement}/movement.js +28 -3
  64. package/dist-server/service/movement/movement.js.map +1 -0
  65. package/dist-server/service/pallet/index.js +9 -0
  66. package/dist-server/service/pallet/index.js.map +1 -0
  67. package/dist-server/service/pallet/pallet-mutation.js +192 -0
  68. package/dist-server/service/pallet/pallet-mutation.js.map +1 -0
  69. package/dist-server/service/pallet/pallet-query.js +164 -0
  70. package/dist-server/service/pallet/pallet-query.js.map +1 -0
  71. package/dist-server/service/pallet/pallet-types.js +109 -0
  72. package/dist-server/service/pallet/pallet-types.js.map +1 -0
  73. package/dist-server/{entities → service/pallet}/pallet.js +32 -5
  74. package/dist-server/service/pallet/pallet.js.map +1 -0
  75. package/dist-server/service/pallet-count/index.js +9 -0
  76. package/dist-server/service/pallet-count/index.js.map +1 -0
  77. package/dist-server/service/pallet-count/pallet-count-mutation.js +156 -0
  78. package/dist-server/service/pallet-count/pallet-count-mutation.js.map +1 -0
  79. package/dist-server/service/pallet-count/pallet-count-query.js +86 -0
  80. package/dist-server/service/pallet-count/pallet-count-query.js.map +1 -0
  81. package/dist-server/service/pallet-count/pallet-count-types.js +65 -0
  82. package/dist-server/service/pallet-count/pallet-count-types.js.map +1 -0
  83. package/dist-server/{entities → service/pallet-count}/pallet-count.js +25 -2
  84. package/dist-server/service/pallet-count/pallet-count.js.map +1 -0
  85. package/dist-server/service/pallet-history/index.js +9 -0
  86. package/dist-server/service/pallet-history/index.js.map +1 -0
  87. package/dist-server/service/pallet-history/pallet-history-mutation.js +120 -0
  88. package/dist-server/service/pallet-history/pallet-history-mutation.js.map +1 -0
  89. package/dist-server/service/pallet-history/pallet-history-query.js +87 -0
  90. package/dist-server/service/pallet-history/pallet-history-query.js.map +1 -0
  91. package/dist-server/service/pallet-history/pallet-history-types.js +65 -0
  92. package/dist-server/service/pallet-history/pallet-history-types.js.map +1 -0
  93. package/dist-server/{entities → service/pallet-history}/pallet-history.js +34 -11
  94. package/dist-server/service/pallet-history/pallet-history.js.map +1 -0
  95. package/dist-server/service/reduced-inventory-history/index.js +6 -0
  96. package/dist-server/service/reduced-inventory-history/index.js.map +1 -0
  97. package/dist-server/{entities → service/reduced-inventory-history}/reduced-inventory-history.js +0 -8
  98. package/dist-server/service/reduced-inventory-history/reduced-inventory-history.js.map +1 -0
  99. package/dist-server/service/warehouse/index.js +9 -0
  100. package/dist-server/service/warehouse/index.js.map +1 -0
  101. package/dist-server/service/warehouse/warehouse-mutation.js +135 -0
  102. package/dist-server/service/warehouse/warehouse-mutation.js.map +1 -0
  103. package/dist-server/service/warehouse/warehouse-query.js +91 -0
  104. package/dist-server/service/warehouse/warehouse-query.js.map +1 -0
  105. package/dist-server/service/warehouse/warehouse-types.js +82 -0
  106. package/dist-server/service/warehouse/warehouse-types.js.map +1 -0
  107. package/dist-server/{entities → service/warehouse}/warehouse.js +28 -3
  108. package/dist-server/service/warehouse/warehouse.js.map +1 -0
  109. package/dist-server/utils/datetime-util.js +49 -0
  110. package/dist-server/utils/datetime-util.js.map +1 -0
  111. package/dist-server/utils/index.js +1 -0
  112. package/dist-server/utils/index.js.map +1 -1
  113. package/dist-server/utils/inventory-util.js +112 -47
  114. package/dist-server/utils/inventory-util.js.map +1 -1
  115. package/package.json +8 -8
  116. package/server/constants/index.ts +1 -0
  117. package/server/constants/location.ts +3 -2
  118. package/server/constants/rule-type.ts +4 -0
  119. package/server/controllers/ecommerce/ecommerce-controller.ts +4 -3
  120. package/server/controllers/ecommerce/sellercraft-controller.ts +1 -1
  121. package/server/index.ts +8 -5
  122. package/server/service/index.ts +61 -0
  123. package/server/service/inventory/index.ts +6 -0
  124. package/server/{graphql/resolvers/inventory/update-multiple-inventory.ts → service/inventory/inventory-mutation.ts} +203 -7
  125. package/server/service/inventory/inventory-query.ts +789 -0
  126. package/server/service/inventory/inventory-types.ts +298 -0
  127. package/server/{entities → service/inventory}/inventory.ts +99 -12
  128. package/server/service/inventory-change/index.ts +6 -0
  129. package/server/{graphql/resolvers/inventory-change/approve-inventory-changes.ts → service/inventory-change/inventory-change-mutation.ts} +266 -6
  130. package/server/{graphql/resolvers/inventory-change/inventory-changes.ts → service/inventory-change/inventory-change-query.ts} +35 -4
  131. package/server/service/inventory-change/inventory-change-types.ts +36 -0
  132. package/server/{entities → service/inventory-change}/inventory-change.ts +60 -6
  133. package/server/service/inventory-history/index.ts +6 -0
  134. package/server/service/inventory-history/inventory-history-mutation.ts +119 -0
  135. package/server/service/inventory-history/inventory-history-query.ts +1434 -0
  136. package/server/service/inventory-history/inventory-history-types.ts +269 -0
  137. package/server/{entities → service/inventory-history}/inventory-history.ts +66 -11
  138. package/server/service/location/index.ts +6 -0
  139. package/server/service/location/location-mutation.ts +134 -0
  140. package/server/service/location/location-query.ts +209 -0
  141. package/server/service/location/location-types.ts +169 -0
  142. package/server/{entities → service/location}/location.ts +41 -4
  143. package/server/service/movement/index.ts +6 -0
  144. package/server/service/movement/movement-mutation.ts +61 -0
  145. package/server/service/movement/movement-query.ts +258 -0
  146. package/server/service/movement/movement-types.ts +74 -0
  147. package/server/{entities → service/movement}/movement.ts +35 -2
  148. package/server/service/pallet/index.ts +6 -0
  149. package/server/service/pallet/pallet-mutation.ts +244 -0
  150. package/server/service/pallet/pallet-query.ts +105 -0
  151. package/server/service/pallet/pallet-types.ts +68 -0
  152. package/server/{entities → service/pallet}/pallet.ts +31 -4
  153. package/server/service/pallet-count/index.ts +6 -0
  154. package/server/service/pallet-count/pallet-count-mutation.ts +148 -0
  155. package/server/service/pallet-count/pallet-count-query.ts +46 -0
  156. package/server/service/pallet-count/pallet-count-types.ts +36 -0
  157. package/server/service/pallet-count/pallet-count.ts +70 -0
  158. package/server/service/pallet-history/index.ts +6 -0
  159. package/server/service/pallet-history/pallet-history-mutation.ts +114 -0
  160. package/server/service/pallet-history/pallet-history-query.ts +46 -0
  161. package/server/service/pallet-history/pallet-history-types.ts +36 -0
  162. package/server/{entities → service/pallet-history}/pallet-history.ts +34 -12
  163. package/server/service/reduced-inventory-history/index.ts +3 -0
  164. package/server/{entities → service/reduced-inventory-history}/reduced-inventory-history.ts +0 -6
  165. package/server/service/warehouse/index.ts +6 -0
  166. package/server/service/warehouse/warehouse-mutation.ts +114 -0
  167. package/server/service/warehouse/warehouse-query.ts +51 -0
  168. package/server/service/warehouse/warehouse-types.ts +50 -0
  169. package/server/{entities → service/warehouse}/warehouse.ts +29 -4
  170. package/server/utils/datetime-util.ts +54 -0
  171. package/server/utils/index.ts +1 -0
  172. package/server/utils/inventory-util.ts +163 -42
  173. package/dist-server/entities/index.js +0 -36
  174. package/dist-server/entities/index.js.map +0 -1
  175. package/dist-server/entities/inventory-change.js.map +0 -1
  176. package/dist-server/entities/inventory-history.js.map +0 -1
  177. package/dist-server/entities/inventory.js.map +0 -1
  178. package/dist-server/entities/location.js.map +0 -1
  179. package/dist-server/entities/movement.js.map +0 -1
  180. package/dist-server/entities/pallet-count.js.map +0 -1
  181. package/dist-server/entities/pallet-history.js.map +0 -1
  182. package/dist-server/entities/pallet.js.map +0 -1
  183. package/dist-server/entities/reduced-inventory-history.js.map +0 -1
  184. package/dist-server/entities/warehouse.js.map +0 -1
  185. package/dist-server/graphql/index.js +0 -29
  186. package/dist-server/graphql/index.js.map +0 -1
  187. package/dist-server/graphql/resolvers/index.js +0 -54
  188. package/dist-server/graphql/resolvers/index.js.map +0 -1
  189. package/dist-server/graphql/resolvers/inventory/check-carton-identicality.js +0 -32
  190. package/dist-server/graphql/resolvers/inventory/check-carton-identicality.js.map +0 -1
  191. package/dist-server/graphql/resolvers/inventory/check-inventory-owner.js +0 -25
  192. package/dist-server/graphql/resolvers/inventory/check-inventory-owner.js.map +0 -1
  193. package/dist-server/graphql/resolvers/inventory/check-product-identicality.js +0 -24
  194. package/dist-server/graphql/resolvers/inventory/check-product-identicality.js.map +0 -1
  195. package/dist-server/graphql/resolvers/inventory/create-inventory.js +0 -11
  196. package/dist-server/graphql/resolvers/inventory/create-inventory.js.map +0 -1
  197. package/dist-server/graphql/resolvers/inventory/delete-inventories.js +0 -15
  198. package/dist-server/graphql/resolvers/inventory/delete-inventories.js.map +0 -1
  199. package/dist-server/graphql/resolvers/inventory/delete-inventory.js +0 -11
  200. package/dist-server/graphql/resolvers/inventory/delete-inventory.js.map +0 -1
  201. package/dist-server/graphql/resolvers/inventory/index.js +0 -22
  202. package/dist-server/graphql/resolvers/inventory/index.js.map +0 -1
  203. package/dist-server/graphql/resolvers/inventory/inventories-by-bundle.js +0 -135
  204. package/dist-server/graphql/resolvers/inventory/inventories-by-bundle.js.map +0 -1
  205. package/dist-server/graphql/resolvers/inventory/inventories-by-product.js +0 -150
  206. package/dist-server/graphql/resolvers/inventory/inventories-by-product.js.map +0 -1
  207. package/dist-server/graphql/resolvers/inventory/inventories-by-strategy.js +0 -132
  208. package/dist-server/graphql/resolvers/inventory/inventories-by-strategy.js.map +0 -1
  209. package/dist-server/graphql/resolvers/inventory/inventories.js +0 -102
  210. package/dist-server/graphql/resolvers/inventory/inventories.js.map +0 -1
  211. package/dist-server/graphql/resolvers/inventory/inventory-by-pallet.js +0 -16
  212. package/dist-server/graphql/resolvers/inventory/inventory-by-pallet.js.map +0 -1
  213. package/dist-server/graphql/resolvers/inventory/inventory-transfer.js +0 -46
  214. package/dist-server/graphql/resolvers/inventory/inventory-transfer.js.map +0 -1
  215. package/dist-server/graphql/resolvers/inventory/inventory.js +0 -15
  216. package/dist-server/graphql/resolvers/inventory/inventory.js.map +0 -1
  217. package/dist-server/graphql/resolvers/inventory/update-inventory-remark.js +0 -13
  218. package/dist-server/graphql/resolvers/inventory/update-inventory-remark.js.map +0 -1
  219. package/dist-server/graphql/resolvers/inventory/update-inventory.js +0 -25
  220. package/dist-server/graphql/resolvers/inventory/update-inventory.js.map +0 -1
  221. package/dist-server/graphql/resolvers/inventory/update-multiple-inventory.js +0 -152
  222. package/dist-server/graphql/resolvers/inventory/update-multiple-inventory.js.map +0 -1
  223. package/dist-server/graphql/resolvers/inventory-change/approve-inventory-changes.js.map +0 -1
  224. package/dist-server/graphql/resolvers/inventory-change/create-inventory-change.js +0 -11
  225. package/dist-server/graphql/resolvers/inventory-change/create-inventory-change.js.map +0 -1
  226. package/dist-server/graphql/resolvers/inventory-change/delete-inventory-change.js +0 -12
  227. package/dist-server/graphql/resolvers/inventory-change/delete-inventory-change.js.map +0 -1
  228. package/dist-server/graphql/resolvers/inventory-change/delete-inventory-changes.js +0 -16
  229. package/dist-server/graphql/resolvers/inventory-change/delete-inventory-changes.js.map +0 -1
  230. package/dist-server/graphql/resolvers/inventory-change/index.js +0 -16
  231. package/dist-server/graphql/resolvers/inventory-change/index.js.map +0 -1
  232. package/dist-server/graphql/resolvers/inventory-change/inventory-change.js +0 -15
  233. package/dist-server/graphql/resolvers/inventory-change/inventory-change.js.map +0 -1
  234. package/dist-server/graphql/resolvers/inventory-change/inventory-changes.js +0 -48
  235. package/dist-server/graphql/resolvers/inventory-change/inventory-changes.js.map +0 -1
  236. package/dist-server/graphql/resolvers/inventory-change/reject-inventory-changes.js +0 -41
  237. package/dist-server/graphql/resolvers/inventory-change/reject-inventory-changes.js.map +0 -1
  238. package/dist-server/graphql/resolvers/inventory-change/submit-inventory-changes.js +0 -69
  239. package/dist-server/graphql/resolvers/inventory-change/submit-inventory-changes.js.map +0 -1
  240. package/dist-server/graphql/resolvers/inventory-change/update-inventory-change.js +0 -15
  241. package/dist-server/graphql/resolvers/inventory-change/update-inventory-change.js.map +0 -1
  242. package/dist-server/graphql/resolvers/inventory-change/update-multiple-inventory-change.js +0 -30
  243. package/dist-server/graphql/resolvers/inventory-change/update-multiple-inventory-change.js.map +0 -1
  244. package/dist-server/graphql/resolvers/inventory-history/bizplace-inventory-histories.js +0 -59
  245. package/dist-server/graphql/resolvers/inventory-history/bizplace-inventory-histories.js.map +0 -1
  246. package/dist-server/graphql/resolvers/inventory-history/create-inventory-history.js +0 -11
  247. package/dist-server/graphql/resolvers/inventory-history/create-inventory-history.js.map +0 -1
  248. package/dist-server/graphql/resolvers/inventory-history/delete-inventory-histories.js +0 -16
  249. package/dist-server/graphql/resolvers/inventory-history/delete-inventory-histories.js.map +0 -1
  250. package/dist-server/graphql/resolvers/inventory-history/delete-inventory-history.js +0 -12
  251. package/dist-server/graphql/resolvers/inventory-history/delete-inventory-history.js.map +0 -1
  252. package/dist-server/graphql/resolvers/inventory-history/index.js +0 -21
  253. package/dist-server/graphql/resolvers/inventory-history/index.js.map +0 -1
  254. package/dist-server/graphql/resolvers/inventory-history/inventory-histories.js +0 -48
  255. package/dist-server/graphql/resolvers/inventory-history/inventory-histories.js.map +0 -1
  256. package/dist-server/graphql/resolvers/inventory-history/inventory-history-pallet-detail-report.js +0 -158
  257. package/dist-server/graphql/resolvers/inventory-history/inventory-history-pallet-detail-report.js.map +0 -1
  258. package/dist-server/graphql/resolvers/inventory-history/inventory-history-pallet-report.js +0 -125
  259. package/dist-server/graphql/resolvers/inventory-history/inventory-history-pallet-report.js.map +0 -1
  260. package/dist-server/graphql/resolvers/inventory-history/inventory-history-pallet-storage-report.js +0 -113
  261. package/dist-server/graphql/resolvers/inventory-history/inventory-history-pallet-storage-report.js.map +0 -1
  262. package/dist-server/graphql/resolvers/inventory-history/inventory-history-report.js +0 -207
  263. package/dist-server/graphql/resolvers/inventory-history/inventory-history-report.js.map +0 -1
  264. package/dist-server/graphql/resolvers/inventory-history/inventory-history-summary-report.js +0 -260
  265. package/dist-server/graphql/resolvers/inventory-history/inventory-history-summary-report.js.map +0 -1
  266. package/dist-server/graphql/resolvers/inventory-history/inventory-history.js +0 -14
  267. package/dist-server/graphql/resolvers/inventory-history/inventory-history.js.map +0 -1
  268. package/dist-server/graphql/resolvers/inventory-history/onhand-inventories.js +0 -202
  269. package/dist-server/graphql/resolvers/inventory-history/onhand-inventories.js.map +0 -1
  270. package/dist-server/graphql/resolvers/inventory-history/update-inventory-history.js +0 -15
  271. package/dist-server/graphql/resolvers/inventory-history/update-inventory-history.js.map +0 -1
  272. package/dist-server/graphql/resolvers/inventory-history/update-multiple-inventory-history.js +0 -31
  273. package/dist-server/graphql/resolvers/inventory-history/update-multiple-inventory-history.js.map +0 -1
  274. package/dist-server/graphql/resolvers/location/create-location.js +0 -17
  275. package/dist-server/graphql/resolvers/location/create-location.js.map +0 -1
  276. package/dist-server/graphql/resolvers/location/delete-all-locations.js +0 -13
  277. package/dist-server/graphql/resolvers/location/delete-all-locations.js.map +0 -1
  278. package/dist-server/graphql/resolvers/location/delete-location.js +0 -17
  279. package/dist-server/graphql/resolvers/location/delete-location.js.map +0 -1
  280. package/dist-server/graphql/resolvers/location/delete-locations.js +0 -17
  281. package/dist-server/graphql/resolvers/location/delete-locations.js.map +0 -1
  282. package/dist-server/graphql/resolvers/location/index.js +0 -22
  283. package/dist-server/graphql/resolvers/location/index.js.map +0 -1
  284. package/dist-server/graphql/resolvers/location/location-by-name.js +0 -18
  285. package/dist-server/graphql/resolvers/location/location-by-name.js.map +0 -1
  286. package/dist-server/graphql/resolvers/location/location-occupancies.js +0 -29
  287. package/dist-server/graphql/resolvers/location/location-occupancies.js.map +0 -1
  288. package/dist-server/graphql/resolvers/location/location-with-inventories.js +0 -75
  289. package/dist-server/graphql/resolvers/location/location-with-inventories.js.map +0 -1
  290. package/dist-server/graphql/resolvers/location/location.js +0 -14
  291. package/dist-server/graphql/resolvers/location/location.js.map +0 -1
  292. package/dist-server/graphql/resolvers/location/locations-by-group.js +0 -27
  293. package/dist-server/graphql/resolvers/location/locations-by-group.js.map +0 -1
  294. package/dist-server/graphql/resolvers/location/locations.js +0 -20
  295. package/dist-server/graphql/resolvers/location/locations.js.map +0 -1
  296. package/dist-server/graphql/resolvers/location/update-location.js +0 -21
  297. package/dist-server/graphql/resolvers/location/update-location.js.map +0 -1
  298. package/dist-server/graphql/resolvers/location/update-multiple-location.js +0 -28
  299. package/dist-server/graphql/resolvers/location/update-multiple-location.js.map +0 -1
  300. package/dist-server/graphql/resolvers/movement/create-movement.js +0 -11
  301. package/dist-server/graphql/resolvers/movement/create-movement.js.map +0 -1
  302. package/dist-server/graphql/resolvers/movement/delete-movement.js +0 -12
  303. package/dist-server/graphql/resolvers/movement/delete-movement.js.map +0 -1
  304. package/dist-server/graphql/resolvers/movement/inbound-movements-counter.js +0 -59
  305. package/dist-server/graphql/resolvers/movement/inbound-movements-counter.js.map +0 -1
  306. package/dist-server/graphql/resolvers/movement/index.js +0 -14
  307. package/dist-server/graphql/resolvers/movement/index.js.map +0 -1
  308. package/dist-server/graphql/resolvers/movement/movement.js +0 -19
  309. package/dist-server/graphql/resolvers/movement/movement.js.map +0 -1
  310. package/dist-server/graphql/resolvers/movement/movements.js +0 -16
  311. package/dist-server/graphql/resolvers/movement/movements.js.map +0 -1
  312. package/dist-server/graphql/resolvers/movement/outbound-movements-counter.js +0 -61
  313. package/dist-server/graphql/resolvers/movement/outbound-movements-counter.js.map +0 -1
  314. package/dist-server/graphql/resolvers/movement/update-movement.js +0 -22
  315. package/dist-server/graphql/resolvers/movement/update-movement.js.map +0 -1
  316. package/dist-server/graphql/resolvers/movement/weekly-movements-counter.js +0 -73
  317. package/dist-server/graphql/resolvers/movement/weekly-movements-counter.js.map +0 -1
  318. package/dist-server/graphql/resolvers/pallet/create-pallet.js +0 -11
  319. package/dist-server/graphql/resolvers/pallet/create-pallet.js.map +0 -1
  320. package/dist-server/graphql/resolvers/pallet/delete-pallet.js +0 -12
  321. package/dist-server/graphql/resolvers/pallet/delete-pallet.js.map +0 -1
  322. package/dist-server/graphql/resolvers/pallet/delete-pallets.js +0 -35
  323. package/dist-server/graphql/resolvers/pallet/delete-pallets.js.map +0 -1
  324. package/dist-server/graphql/resolvers/pallet/index.js +0 -17
  325. package/dist-server/graphql/resolvers/pallet/index.js.map +0 -1
  326. package/dist-server/graphql/resolvers/pallet/pallet-by-status.js +0 -16
  327. package/dist-server/graphql/resolvers/pallet/pallet-by-status.js.map +0 -1
  328. package/dist-server/graphql/resolvers/pallet/pallet-inbound-validate.js +0 -26
  329. package/dist-server/graphql/resolvers/pallet/pallet-inbound-validate.js.map +0 -1
  330. package/dist-server/graphql/resolvers/pallet/pallet-outbound-validate.js +0 -26
  331. package/dist-server/graphql/resolvers/pallet/pallet-outbound-validate.js.map +0 -1
  332. package/dist-server/graphql/resolvers/pallet/pallet-return.js +0 -31
  333. package/dist-server/graphql/resolvers/pallet/pallet-return.js.map +0 -1
  334. package/dist-server/graphql/resolvers/pallet/pallet.js +0 -16
  335. package/dist-server/graphql/resolvers/pallet/pallet.js.map +0 -1
  336. package/dist-server/graphql/resolvers/pallet/pallets.js +0 -21
  337. package/dist-server/graphql/resolvers/pallet/pallets.js.map +0 -1
  338. package/dist-server/graphql/resolvers/pallet/update-multiple-pallet.js +0 -50
  339. package/dist-server/graphql/resolvers/pallet/update-multiple-pallet.js.map +0 -1
  340. package/dist-server/graphql/resolvers/pallet/update-pallet.js +0 -15
  341. package/dist-server/graphql/resolvers/pallet/update-pallet.js.map +0 -1
  342. package/dist-server/graphql/resolvers/pallet-count/create-pallet-count.js +0 -11
  343. package/dist-server/graphql/resolvers/pallet-count/create-pallet-count.js.map +0 -1
  344. package/dist-server/graphql/resolvers/pallet-count/delete-pallet-count.js +0 -12
  345. package/dist-server/graphql/resolvers/pallet-count/delete-pallet-count.js.map +0 -1
  346. package/dist-server/graphql/resolvers/pallet-count/delete-pallet-counts.js +0 -16
  347. package/dist-server/graphql/resolvers/pallet-count/delete-pallet-counts.js.map +0 -1
  348. package/dist-server/graphql/resolvers/pallet-count/index.js +0 -14
  349. package/dist-server/graphql/resolvers/pallet-count/index.js.map +0 -1
  350. package/dist-server/graphql/resolvers/pallet-count/pallet-count.js +0 -15
  351. package/dist-server/graphql/resolvers/pallet-count/pallet-count.js.map +0 -1
  352. package/dist-server/graphql/resolvers/pallet-count/pallet-counts.js +0 -14
  353. package/dist-server/graphql/resolvers/pallet-count/pallet-counts.js.map +0 -1
  354. package/dist-server/graphql/resolvers/pallet-count/update-multiple-pallet-count.js +0 -30
  355. package/dist-server/graphql/resolvers/pallet-count/update-multiple-pallet-count.js.map +0 -1
  356. package/dist-server/graphql/resolvers/pallet-count/update-pallet-count-seq.js +0 -38
  357. package/dist-server/graphql/resolvers/pallet-count/update-pallet-count-seq.js.map +0 -1
  358. package/dist-server/graphql/resolvers/pallet-count/update-pallet-count.js +0 -15
  359. package/dist-server/graphql/resolvers/pallet-count/update-pallet-count.js.map +0 -1
  360. package/dist-server/graphql/resolvers/pallet-history/create-pallet-history.js +0 -11
  361. package/dist-server/graphql/resolvers/pallet-history/create-pallet-history.js.map +0 -1
  362. package/dist-server/graphql/resolvers/pallet-history/delete-pallet-histories.js +0 -16
  363. package/dist-server/graphql/resolvers/pallet-history/delete-pallet-histories.js.map +0 -1
  364. package/dist-server/graphql/resolvers/pallet-history/delete-pallet-history.js +0 -12
  365. package/dist-server/graphql/resolvers/pallet-history/delete-pallet-history.js.map +0 -1
  366. package/dist-server/graphql/resolvers/pallet-history/index.js +0 -13
  367. package/dist-server/graphql/resolvers/pallet-history/index.js.map +0 -1
  368. package/dist-server/graphql/resolvers/pallet-history/pallet-histories.js +0 -14
  369. package/dist-server/graphql/resolvers/pallet-history/pallet-histories.js.map +0 -1
  370. package/dist-server/graphql/resolvers/pallet-history/pallet-history.js +0 -15
  371. package/dist-server/graphql/resolvers/pallet-history/pallet-history.js.map +0 -1
  372. package/dist-server/graphql/resolvers/pallet-history/update-multiple-pallet-history.js +0 -30
  373. package/dist-server/graphql/resolvers/pallet-history/update-multiple-pallet-history.js.map +0 -1
  374. package/dist-server/graphql/resolvers/pallet-history/update-pallet-history.js +0 -15
  375. package/dist-server/graphql/resolvers/pallet-history/update-pallet-history.js.map +0 -1
  376. package/dist-server/graphql/resolvers/warehouse/create-warehouse.js +0 -16
  377. package/dist-server/graphql/resolvers/warehouse/create-warehouse.js.map +0 -1
  378. package/dist-server/graphql/resolvers/warehouse/delete-warehouse.js +0 -17
  379. package/dist-server/graphql/resolvers/warehouse/delete-warehouse.js.map +0 -1
  380. package/dist-server/graphql/resolvers/warehouse/delete-warehouses.js +0 -17
  381. package/dist-server/graphql/resolvers/warehouse/delete-warehouses.js.map +0 -1
  382. package/dist-server/graphql/resolvers/warehouse/index.js +0 -17
  383. package/dist-server/graphql/resolvers/warehouse/index.js.map +0 -1
  384. package/dist-server/graphql/resolvers/warehouse/update-multiple-warehouse.js +0 -28
  385. package/dist-server/graphql/resolvers/warehouse/update-multiple-warehouse.js.map +0 -1
  386. package/dist-server/graphql/resolvers/warehouse/update-warehouse.js +0 -17
  387. package/dist-server/graphql/resolvers/warehouse/update-warehouse.js.map +0 -1
  388. package/dist-server/graphql/resolvers/warehouse/warehouse.js +0 -18
  389. package/dist-server/graphql/resolvers/warehouse/warehouse.js.map +0 -1
  390. package/dist-server/graphql/resolvers/warehouse/warehouses.js +0 -15
  391. package/dist-server/graphql/resolvers/warehouse/warehouses.js.map +0 -1
  392. package/dist-server/graphql/types/index.js +0 -65
  393. package/dist-server/graphql/types/index.js.map +0 -1
  394. package/dist-server/graphql/types/inventory/index.js +0 -62
  395. package/dist-server/graphql/types/inventory/index.js.map +0 -1
  396. package/dist-server/graphql/types/inventory/inventory-bundle-group-detail.js +0 -14
  397. package/dist-server/graphql/types/inventory/inventory-bundle-group-detail.js.map +0 -1
  398. package/dist-server/graphql/types/inventory/inventory-bundle-group.js +0 -40
  399. package/dist-server/graphql/types/inventory/inventory-bundle-group.js.map +0 -1
  400. package/dist-server/graphql/types/inventory/inventory-list.js +0 -14
  401. package/dist-server/graphql/types/inventory/inventory-list.js.map +0 -1
  402. package/dist-server/graphql/types/inventory/inventory-patch.js +0 -48
  403. package/dist-server/graphql/types/inventory/inventory-patch.js.map +0 -1
  404. package/dist-server/graphql/types/inventory/inventory.js +0 -57
  405. package/dist-server/graphql/types/inventory/inventory.js.map +0 -1
  406. package/dist-server/graphql/types/inventory/new-inventory.js +0 -35
  407. package/dist-server/graphql/types/inventory/new-inventory.js.map +0 -1
  408. package/dist-server/graphql/types/inventory-change/index.js +0 -48
  409. package/dist-server/graphql/types/inventory-change/index.js.map +0 -1
  410. package/dist-server/graphql/types/inventory-change/inventory-change-list.js +0 -14
  411. package/dist-server/graphql/types/inventory-change/inventory-change-list.js.map +0 -1
  412. package/dist-server/graphql/types/inventory-change/inventory-change-patch.js +0 -16
  413. package/dist-server/graphql/types/inventory-change/inventory-change-patch.js.map +0 -1
  414. package/dist-server/graphql/types/inventory-change/inventory-change.js +0 -39
  415. package/dist-server/graphql/types/inventory-change/inventory-change.js.map +0 -1
  416. package/dist-server/graphql/types/inventory-change/new-inventory-change.js +0 -14
  417. package/dist-server/graphql/types/inventory-change/new-inventory-change.js.map +0 -1
  418. package/dist-server/graphql/types/inventory-history/index.js +0 -55
  419. package/dist-server/graphql/types/inventory-history/index.js.map +0 -1
  420. package/dist-server/graphql/types/inventory-history/inventory-history-list.js +0 -14
  421. package/dist-server/graphql/types/inventory-history/inventory-history-list.js.map +0 -1
  422. package/dist-server/graphql/types/inventory-history/inventory-history-pallet-report-list.js +0 -15
  423. package/dist-server/graphql/types/inventory-history/inventory-history-pallet-report-list.js.map +0 -1
  424. package/dist-server/graphql/types/inventory-history/inventory-history-pallet-report.js +0 -19
  425. package/dist-server/graphql/types/inventory-history/inventory-history-pallet-report.js.map +0 -1
  426. package/dist-server/graphql/types/inventory-history/inventory-history-patch.js +0 -43
  427. package/dist-server/graphql/types/inventory-history/inventory-history-patch.js.map +0 -1
  428. package/dist-server/graphql/types/inventory-history/inventory-history-summary-list.js +0 -16
  429. package/dist-server/graphql/types/inventory-history/inventory-history-summary-list.js.map +0 -1
  430. package/dist-server/graphql/types/inventory-history/inventory-history-summary.js +0 -23
  431. package/dist-server/graphql/types/inventory-history/inventory-history-summary.js.map +0 -1
  432. package/dist-server/graphql/types/inventory-history/inventory-history.js +0 -62
  433. package/dist-server/graphql/types/inventory-history/inventory-history.js.map +0 -1
  434. package/dist-server/graphql/types/inventory-history/new-inventory-history.js +0 -35
  435. package/dist-server/graphql/types/inventory-history/new-inventory-history.js.map +0 -1
  436. package/dist-server/graphql/types/location/index.js +0 -54
  437. package/dist-server/graphql/types/location/index.js.map +0 -1
  438. package/dist-server/graphql/types/location/location-inventories.js +0 -14
  439. package/dist-server/graphql/types/location/location-inventories.js.map +0 -1
  440. package/dist-server/graphql/types/location/location-inventory.js +0 -27
  441. package/dist-server/graphql/types/location/location-inventory.js.map +0 -1
  442. package/dist-server/graphql/types/location/location-list.js +0 -14
  443. package/dist-server/graphql/types/location/location-list.js.map +0 -1
  444. package/dist-server/graphql/types/location/location-occupancy.js +0 -16
  445. package/dist-server/graphql/types/location/location-occupancy.js.map +0 -1
  446. package/dist-server/graphql/types/location/location-patch.js +0 -23
  447. package/dist-server/graphql/types/location/location-patch.js.map +0 -1
  448. package/dist-server/graphql/types/location/location.js +0 -27
  449. package/dist-server/graphql/types/location/location.js.map +0 -1
  450. package/dist-server/graphql/types/location/new-location.js +0 -21
  451. package/dist-server/graphql/types/location/new-location.js.map +0 -1
  452. package/dist-server/graphql/types/movement/index.js +0 -31
  453. package/dist-server/graphql/types/movement/index.js.map +0 -1
  454. package/dist-server/graphql/types/movement/movement-count.js +0 -17
  455. package/dist-server/graphql/types/movement/movement-count.js.map +0 -1
  456. package/dist-server/graphql/types/movement/movement-list.js +0 -14
  457. package/dist-server/graphql/types/movement/movement-list.js.map +0 -1
  458. package/dist-server/graphql/types/movement/movement-patch.js +0 -18
  459. package/dist-server/graphql/types/movement/movement-patch.js.map +0 -1
  460. package/dist-server/graphql/types/movement/movement.js +0 -23
  461. package/dist-server/graphql/types/movement/movement.js.map +0 -1
  462. package/dist-server/graphql/types/movement/new-movement.js +0 -18
  463. package/dist-server/graphql/types/movement/new-movement.js.map +0 -1
  464. package/dist-server/graphql/types/pallet/index.js +0 -49
  465. package/dist-server/graphql/types/pallet/index.js.map +0 -1
  466. package/dist-server/graphql/types/pallet/new-pallet.js +0 -17
  467. package/dist-server/graphql/types/pallet/new-pallet.js.map +0 -1
  468. package/dist-server/graphql/types/pallet/pallet-list.js +0 -14
  469. package/dist-server/graphql/types/pallet/pallet-list.js.map +0 -1
  470. package/dist-server/graphql/types/pallet/pallet-patch.js +0 -20
  471. package/dist-server/graphql/types/pallet/pallet-patch.js.map +0 -1
  472. package/dist-server/graphql/types/pallet/pallet-validate.js +0 -14
  473. package/dist-server/graphql/types/pallet/pallet-validate.js.map +0 -1
  474. package/dist-server/graphql/types/pallet/pallet.js +0 -24
  475. package/dist-server/graphql/types/pallet/pallet.js.map +0 -1
  476. package/dist-server/graphql/types/pallet-count/index.js +0 -39
  477. package/dist-server/graphql/types/pallet-count/index.js.map +0 -1
  478. package/dist-server/graphql/types/pallet-count/new-pallet-count.js +0 -14
  479. package/dist-server/graphql/types/pallet-count/new-pallet-count.js.map +0 -1
  480. package/dist-server/graphql/types/pallet-count/pallet-count-list.js +0 -14
  481. package/dist-server/graphql/types/pallet-count/pallet-count-list.js.map +0 -1
  482. package/dist-server/graphql/types/pallet-count/pallet-count-patch.js +0 -16
  483. package/dist-server/graphql/types/pallet-count/pallet-count-patch.js.map +0 -1
  484. package/dist-server/graphql/types/pallet-count/pallet-count.js +0 -20
  485. package/dist-server/graphql/types/pallet-count/pallet-count.js.map +0 -1
  486. package/dist-server/graphql/types/pallet-history/index.js +0 -35
  487. package/dist-server/graphql/types/pallet-history/index.js.map +0 -1
  488. package/dist-server/graphql/types/pallet-history/new-pallet-history.js +0 -14
  489. package/dist-server/graphql/types/pallet-history/new-pallet-history.js.map +0 -1
  490. package/dist-server/graphql/types/pallet-history/pallet-history-list.js +0 -14
  491. package/dist-server/graphql/types/pallet-history/pallet-history-list.js.map +0 -1
  492. package/dist-server/graphql/types/pallet-history/pallet-history-patch.js +0 -16
  493. package/dist-server/graphql/types/pallet-history/pallet-history-patch.js.map +0 -1
  494. package/dist-server/graphql/types/pallet-history/pallet-history.js +0 -20
  495. package/dist-server/graphql/types/pallet-history/pallet-history.js.map +0 -1
  496. package/dist-server/graphql/types/warehouse/index.js +0 -35
  497. package/dist-server/graphql/types/warehouse/index.js.map +0 -1
  498. package/dist-server/graphql/types/warehouse/new-warehouse.js +0 -16
  499. package/dist-server/graphql/types/warehouse/new-warehouse.js.map +0 -1
  500. package/dist-server/graphql/types/warehouse/warehouse-list.js +0 -14
  501. package/dist-server/graphql/types/warehouse/warehouse-list.js.map +0 -1
  502. package/dist-server/graphql/types/warehouse/warehouse-patch.js +0 -18
  503. package/dist-server/graphql/types/warehouse/warehouse-patch.js.map +0 -1
  504. package/dist-server/graphql/types/warehouse/warehouse.js +0 -23
  505. package/dist-server/graphql/types/warehouse/warehouse.js.map +0 -1
  506. package/server/entities/index.ts +0 -36
  507. package/server/entities/pallet-count.ts +0 -40
  508. package/server/graphql/index.ts +0 -7
  509. package/server/graphql/resolvers/index.ts +0 -33
  510. package/server/graphql/resolvers/inventory/check-carton-identicality.ts +0 -32
  511. package/server/graphql/resolvers/inventory/check-inventory-owner.ts +0 -26
  512. package/server/graphql/resolvers/inventory/check-product-identicality.ts +0 -26
  513. package/server/graphql/resolvers/inventory/create-inventory.ts +0 -15
  514. package/server/graphql/resolvers/inventory/delete-inventories.ts +0 -14
  515. package/server/graphql/resolvers/inventory/delete-inventory.ts +0 -10
  516. package/server/graphql/resolvers/inventory/index.ts +0 -38
  517. package/server/graphql/resolvers/inventory/inventories-by-bundle.ts +0 -173
  518. package/server/graphql/resolvers/inventory/inventories-by-product.ts +0 -171
  519. package/server/graphql/resolvers/inventory/inventories-by-strategy.ts +0 -186
  520. package/server/graphql/resolvers/inventory/inventories.ts +0 -143
  521. package/server/graphql/resolvers/inventory/inventory-by-pallet.ts +0 -15
  522. package/server/graphql/resolvers/inventory/inventory-transfer.ts +0 -50
  523. package/server/graphql/resolvers/inventory/inventory.ts +0 -14
  524. package/server/graphql/resolvers/inventory/update-inventory-remark.ts +0 -19
  525. package/server/graphql/resolvers/inventory/update-inventory.ts +0 -31
  526. package/server/graphql/resolvers/inventory-change/create-inventory-change.ts +0 -17
  527. package/server/graphql/resolvers/inventory-change/delete-inventory-change.ts +0 -12
  528. package/server/graphql/resolvers/inventory-change/delete-inventory-changes.ts +0 -15
  529. package/server/graphql/resolvers/inventory-change/index.ts +0 -27
  530. package/server/graphql/resolvers/inventory-change/inventory-change.ts +0 -14
  531. package/server/graphql/resolvers/inventory-change/reject-inventory-changes.ts +0 -42
  532. package/server/graphql/resolvers/inventory-change/submit-inventory-changes.ts +0 -101
  533. package/server/graphql/resolvers/inventory-change/update-inventory-change.ts +0 -21
  534. package/server/graphql/resolvers/inventory-change/update-multiple-inventory-change.ts +0 -47
  535. package/server/graphql/resolvers/inventory-history/bizplace-inventory-histories.ts +0 -82
  536. package/server/graphql/resolvers/inventory-history/create-inventory-history.ts +0 -17
  537. package/server/graphql/resolvers/inventory-history/delete-inventory-histories.ts +0 -15
  538. package/server/graphql/resolvers/inventory-history/delete-inventory-history.ts +0 -12
  539. package/server/graphql/resolvers/inventory-history/index.ts +0 -37
  540. package/server/graphql/resolvers/inventory-history/inventory-histories.ts +0 -62
  541. package/server/graphql/resolvers/inventory-history/inventory-history-pallet-detail-report.ts +0 -166
  542. package/server/graphql/resolvers/inventory-history/inventory-history-pallet-report.ts +0 -133
  543. package/server/graphql/resolvers/inventory-history/inventory-history-pallet-storage-report.ts +0 -146
  544. package/server/graphql/resolvers/inventory-history/inventory-history-report.ts +0 -233
  545. package/server/graphql/resolvers/inventory-history/inventory-history-summary-report.ts +0 -317
  546. package/server/graphql/resolvers/inventory-history/inventory-history.ts +0 -13
  547. package/server/graphql/resolvers/inventory-history/onhand-inventories.ts +0 -246
  548. package/server/graphql/resolvers/inventory-history/update-inventory-history.ts +0 -21
  549. package/server/graphql/resolvers/inventory-history/update-multiple-inventory-history.ts +0 -48
  550. package/server/graphql/resolvers/location/create-location.ts +0 -25
  551. package/server/graphql/resolvers/location/delete-all-locations.ts +0 -12
  552. package/server/graphql/resolvers/location/delete-location.ts +0 -16
  553. package/server/graphql/resolvers/location/delete-locations.ts +0 -16
  554. package/server/graphql/resolvers/location/index.ts +0 -32
  555. package/server/graphql/resolvers/location/location-by-name.ts +0 -17
  556. package/server/graphql/resolvers/location/location-occupancies.ts +0 -33
  557. package/server/graphql/resolvers/location/location-with-inventories.ts +0 -87
  558. package/server/graphql/resolvers/location/location.ts +0 -12
  559. package/server/graphql/resolvers/location/locations-by-group.ts +0 -29
  560. package/server/graphql/resolvers/location/locations.ts +0 -18
  561. package/server/graphql/resolvers/location/update-location.ts +0 -27
  562. package/server/graphql/resolvers/location/update-multiple-location.ts +0 -29
  563. package/server/graphql/resolvers/movement/create-movement.ts +0 -13
  564. package/server/graphql/resolvers/movement/delete-movement.ts +0 -9
  565. package/server/graphql/resolvers/movement/inbound-movements-counter.ts +0 -69
  566. package/server/graphql/resolvers/movement/index.ts +0 -23
  567. package/server/graphql/resolvers/movement/movement.ts +0 -16
  568. package/server/graphql/resolvers/movement/movements.ts +0 -17
  569. package/server/graphql/resolvers/movement/outbound-movements-counter.ts +0 -71
  570. package/server/graphql/resolvers/movement/update-movement.ts +0 -25
  571. package/server/graphql/resolvers/movement/weekly-movements-counter.ts +0 -84
  572. package/server/graphql/resolvers/pallet/create-pallet.ts +0 -18
  573. package/server/graphql/resolvers/pallet/delete-pallet.ts +0 -13
  574. package/server/graphql/resolvers/pallet/delete-pallets.ts +0 -44
  575. package/server/graphql/resolvers/pallet/index.ts +0 -29
  576. package/server/graphql/resolvers/pallet/pallet-by-status.ts +0 -16
  577. package/server/graphql/resolvers/pallet/pallet-inbound-validate.ts +0 -21
  578. package/server/graphql/resolvers/pallet/pallet-outbound-validate.ts +0 -21
  579. package/server/graphql/resolvers/pallet/pallet-return.ts +0 -57
  580. package/server/graphql/resolvers/pallet/pallet.ts +0 -15
  581. package/server/graphql/resolvers/pallet/pallets.ts +0 -22
  582. package/server/graphql/resolvers/pallet/update-multiple-pallet.ts +0 -95
  583. package/server/graphql/resolvers/pallet/update-pallet.ts +0 -21
  584. package/server/graphql/resolvers/pallet-count/create-pallet-count.ts +0 -17
  585. package/server/graphql/resolvers/pallet-count/delete-pallet-count.ts +0 -12
  586. package/server/graphql/resolvers/pallet-count/delete-pallet-counts.ts +0 -15
  587. package/server/graphql/resolvers/pallet-count/index.ts +0 -23
  588. package/server/graphql/resolvers/pallet-count/pallet-count.ts +0 -14
  589. package/server/graphql/resolvers/pallet-count/pallet-counts.ts +0 -14
  590. package/server/graphql/resolvers/pallet-count/update-multiple-pallet-count.ts +0 -47
  591. package/server/graphql/resolvers/pallet-count/update-pallet-count-seq.ts +0 -44
  592. package/server/graphql/resolvers/pallet-count/update-pallet-count.ts +0 -21
  593. package/server/graphql/resolvers/pallet-history/create-pallet-history.ts +0 -17
  594. package/server/graphql/resolvers/pallet-history/delete-pallet-histories.ts +0 -16
  595. package/server/graphql/resolvers/pallet-history/delete-pallet-history.ts +0 -13
  596. package/server/graphql/resolvers/pallet-history/index.ts +0 -21
  597. package/server/graphql/resolvers/pallet-history/pallet-histories.ts +0 -14
  598. package/server/graphql/resolvers/pallet-history/pallet-history.ts +0 -14
  599. package/server/graphql/resolvers/pallet-history/update-multiple-pallet-history.ts +0 -46
  600. package/server/graphql/resolvers/pallet-history/update-pallet-history.ts +0 -21
  601. package/server/graphql/resolvers/warehouse/create-warehouse.ts +0 -22
  602. package/server/graphql/resolvers/warehouse/delete-warehouse.ts +0 -16
  603. package/server/graphql/resolvers/warehouse/delete-warehouses.ts +0 -16
  604. package/server/graphql/resolvers/warehouse/index.ts +0 -22
  605. package/server/graphql/resolvers/warehouse/update-multiple-warehouse.ts +0 -29
  606. package/server/graphql/resolvers/warehouse/update-warehouse.ts +0 -23
  607. package/server/graphql/resolvers/warehouse/warehouse.ts +0 -17
  608. package/server/graphql/resolvers/warehouse/warehouses.ts +0 -16
  609. package/server/graphql/types/index.ts +0 -45
  610. package/server/graphql/types/inventory/index.ts +0 -61
  611. package/server/graphql/types/inventory/inventory-bundle-group-detail.ts +0 -8
  612. package/server/graphql/types/inventory/inventory-bundle-group.ts +0 -34
  613. package/server/graphql/types/inventory/inventory-list.ts +0 -8
  614. package/server/graphql/types/inventory/inventory-patch.ts +0 -42
  615. package/server/graphql/types/inventory/inventory.ts +0 -51
  616. package/server/graphql/types/inventory/new-inventory.ts +0 -29
  617. package/server/graphql/types/inventory-change/index.ts +0 -47
  618. package/server/graphql/types/inventory-change/inventory-change-list.ts +0 -8
  619. package/server/graphql/types/inventory-change/inventory-change-patch.ts +0 -10
  620. package/server/graphql/types/inventory-change/inventory-change.ts +0 -33
  621. package/server/graphql/types/inventory-change/new-inventory-change.ts +0 -8
  622. package/server/graphql/types/inventory-history/index.ts +0 -54
  623. package/server/graphql/types/inventory-history/inventory-history-list.ts +0 -8
  624. package/server/graphql/types/inventory-history/inventory-history-pallet-report-list.ts +0 -9
  625. package/server/graphql/types/inventory-history/inventory-history-pallet-report.ts +0 -13
  626. package/server/graphql/types/inventory-history/inventory-history-patch.ts +0 -37
  627. package/server/graphql/types/inventory-history/inventory-history-summary-list.ts +0 -10
  628. package/server/graphql/types/inventory-history/inventory-history-summary.ts +0 -17
  629. package/server/graphql/types/inventory-history/inventory-history.ts +0 -56
  630. package/server/graphql/types/inventory-history/new-inventory-history.ts +0 -29
  631. package/server/graphql/types/location/index.ts +0 -53
  632. package/server/graphql/types/location/location-inventories.ts +0 -8
  633. package/server/graphql/types/location/location-inventory.ts +0 -21
  634. package/server/graphql/types/location/location-list.ts +0 -8
  635. package/server/graphql/types/location/location-occupancy.ts +0 -10
  636. package/server/graphql/types/location/location-patch.ts +0 -17
  637. package/server/graphql/types/location/location.ts +0 -21
  638. package/server/graphql/types/location/new-location.ts +0 -15
  639. package/server/graphql/types/movement/index.ts +0 -31
  640. package/server/graphql/types/movement/movement-count.ts +0 -11
  641. package/server/graphql/types/movement/movement-list.ts +0 -8
  642. package/server/graphql/types/movement/movement-patch.ts +0 -12
  643. package/server/graphql/types/movement/movement.ts +0 -17
  644. package/server/graphql/types/movement/new-movement.ts +0 -12
  645. package/server/graphql/types/pallet/index.ts +0 -48
  646. package/server/graphql/types/pallet/new-pallet.ts +0 -11
  647. package/server/graphql/types/pallet/pallet-list.ts +0 -8
  648. package/server/graphql/types/pallet/pallet-patch.ts +0 -14
  649. package/server/graphql/types/pallet/pallet-validate.ts +0 -8
  650. package/server/graphql/types/pallet/pallet.ts +0 -18
  651. package/server/graphql/types/pallet-count/index.ts +0 -38
  652. package/server/graphql/types/pallet-count/new-pallet-count.ts +0 -8
  653. package/server/graphql/types/pallet-count/pallet-count-list.ts +0 -8
  654. package/server/graphql/types/pallet-count/pallet-count-patch.ts +0 -10
  655. package/server/graphql/types/pallet-count/pallet-count.ts +0 -14
  656. package/server/graphql/types/pallet-history/index.ts +0 -34
  657. package/server/graphql/types/pallet-history/new-pallet-history.ts +0 -8
  658. package/server/graphql/types/pallet-history/pallet-history-list.ts +0 -8
  659. package/server/graphql/types/pallet-history/pallet-history-patch.ts +0 -10
  660. package/server/graphql/types/pallet-history/pallet-history.ts +0 -14
  661. package/server/graphql/types/warehouse/index.ts +0 -34
  662. package/server/graphql/types/warehouse/new-warehouse.ts +0 -10
  663. package/server/graphql/types/warehouse/warehouse-list.ts +0 -8
  664. package/server/graphql/types/warehouse/warehouse-patch.ts +0 -12
  665. package/server/graphql/types/warehouse/warehouse.ts +0 -17
@@ -0,0 +1,1285 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var _a, _b, _c, _d, _e, _f, _g, _h;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.InventoryHistoryQuery = void 0;
17
+ const type_graphql_1 = require("type-graphql");
18
+ const typeorm_1 = require("typeorm");
19
+ const auth_base_1 = require("@things-factory/auth-base");
20
+ const biz_base_1 = require("@things-factory/biz-base");
21
+ const product_base_1 = require("@things-factory/product-base");
22
+ const shell_1 = require("@things-factory/shell");
23
+ const inventory_types_1 = require("../inventory/inventory-types");
24
+ const location_1 = require("../location/location");
25
+ const warehouse_1 = require("../warehouse/warehouse");
26
+ const inventory_history_1 = require("./inventory-history");
27
+ const inventory_history_types_1 = require("./inventory-history-types");
28
+ let InventoryHistoryQuery = class InventoryHistoryQuery {
29
+ async inventoryHistories(params, context) {
30
+ const { domain, user } = context.state;
31
+ if (!params.filters.find((filter) => filter.name === 'bizplace')) {
32
+ params.filters.push({
33
+ name: 'bizplace',
34
+ operator: 'in',
35
+ value: await (0, biz_base_1.getPermittedBizplaceIds)(domain, user)
36
+ });
37
+ }
38
+ const convertedParams = (0, shell_1.convertListParams)(params);
39
+ let [items, total] = await (0, typeorm_1.getRepository)(inventory_history_1.InventoryHistory).findAndCount(Object.assign(Object.assign({}, convertedParams), { relations: ['domain', 'bizplace', 'product', 'location', 'warehouse', 'creator', 'updater'], order: {
40
+ palletId: 'DESC',
41
+ createdAt: 'ASC'
42
+ } }));
43
+ items = (await Promise.all(items.map(async (item) => {
44
+ switch (item.transactionType) {
45
+ case 'UNLOADING':
46
+ item.description = 'Inbound';
47
+ break;
48
+ case 'UNDO_UNLOADING':
49
+ item.description = 'Undo Unloading';
50
+ item.orderRefNo = '';
51
+ break;
52
+ case 'LOADING':
53
+ item.description = 'Loading';
54
+ break;
55
+ case 'UNDO_LOADING':
56
+ item.description = 'Undo Loading';
57
+ break;
58
+ default:
59
+ item.description = String(item.transactionType);
60
+ break;
61
+ }
62
+ item.description = item.description.toUpperCase();
63
+ return Object.assign(Object.assign({}, item), { orderRefNo: item.orderRefNo, orderNo: item.orderNo, qty: item.qty, openingQty: item.openingQty });
64
+ })));
65
+ return { items, total };
66
+ }
67
+ async inventoryHistory(name, context) {
68
+ const { domain } = context.state;
69
+ return await (0, typeorm_1.getRepository)(inventory_history_1.InventoryHistory).findOne({
70
+ where: { domain: domain, name, relations: ['domain', 'creator', 'updater'] }
71
+ });
72
+ }
73
+ async bizplaceInventoryHistories(context, inventoryHistory, filters, pagination, sortings) {
74
+ const { domain, user, tx } = context.state;
75
+ const ownerBizplace = await (0, biz_base_1.getMyBizplace)(domain, user);
76
+ const customerBizplace = await tx.getRepository(biz_base_1.Bizplace).findOne(inventoryHistory.bizplace.id);
77
+ const productFilters = filters.find(x => x.name == 'product_info');
78
+ filters = filters.filter(x => x.name != 'product_info');
79
+ const fromDate = new Date(inventoryHistory.fromDate);
80
+ const toDate = new Date(inventoryHistory.toDate);
81
+ const convertedParams = (0, shell_1.convertListParams)({ filters, pagination, sortings });
82
+ let where = { domain: domain };
83
+ if (productFilters) {
84
+ let productFilterValue = `%${productFilters.value.toLowerCase()}%`;
85
+ const productQb = (0, typeorm_1.getRepository)(product_base_1.Product).createQueryBuilder('prd');
86
+ productQb.where(new typeorm_1.Brackets(qb => {
87
+ qb.where('Lower(prd.sku) LIKE :productInfo', { productInfo: productFilterValue })
88
+ .orWhere('Lower(prd.name) LIKE :productInfo', { productInfo: productFilterValue })
89
+ .orWhere('Lower(prd.description) LIKE :productInfo', { productInfo: productFilterValue })
90
+ .orWhere('Lower(prd.brand) LIKE :productInfo', { productInfo: productFilterValue });
91
+ }));
92
+ const _products = await productQb.getMany();
93
+ where['product'] = (0, typeorm_1.In)(_products.map((product) => product.id));
94
+ }
95
+ if (inventoryHistory && inventoryHistory.warehouseName) {
96
+ const _warehouses = await tx.getRepository(warehouse_1.Warehouse).find({
97
+ domain: domain,
98
+ name: (0, typeorm_1.Raw)(alias => `LOWER(${alias}) LIKE '${inventoryHistory.warehouseName.toLowerCase()}'`)
99
+ });
100
+ where['warehouse'] = (0, typeorm_1.In)(_warehouses.map((warehouse) => warehouse.id));
101
+ }
102
+ if (inventoryHistory && inventoryHistory.locationName) {
103
+ const _locations = await tx.getRepository(location_1.Location).find({
104
+ where: {
105
+ domain: domain,
106
+ name: (0, typeorm_1.Raw)(alias => `LOWER(${alias}) LIKE '${inventoryHistory.locationName.toLowerCase()}'`)
107
+ }
108
+ });
109
+ where['location'] = (0, typeorm_1.In)(_locations.map((location) => location.id));
110
+ }
111
+ where['createdAt'] = (0, typeorm_1.Between)(fromDate, toDate);
112
+ convertedParams.where = Object.assign(Object.assign(Object.assign({}, convertedParams.where), where), { bizplace: customerBizplace });
113
+ const result = await tx.getRepository(inventory_history_1.InventoryHistory).findAndCount(Object.assign(Object.assign({}, convertedParams), { relations: ['domain', 'product', 'warehouse', 'location', 'bizplace', 'updater'], order: {
114
+ palletId: 'ASC',
115
+ seq: 'ASC'
116
+ } }));
117
+ let items = result[0];
118
+ let total = result[1];
119
+ return { items, total };
120
+ }
121
+ async inventoryHistoryReport(params, context) {
122
+ try {
123
+ const { domain, tx } = context.state;
124
+ let bizplaceFilter = { name: '', operator: '', value: '' };
125
+ let userFilter = params.filters.find(data => data.name === 'user');
126
+ let fromDate = params.filters.find(data => data.name === 'fromDate');
127
+ let toDate = params.filters.find(data => data.name === 'toDate');
128
+ let batchNo = params.filters.find(data => data.name === 'batchNo');
129
+ let product = params.filters.find(data => data.name === 'product');
130
+ let productDesc = params.filters.find(data => data.name === 'productDescription');
131
+ let hasTransactionOrBalanceFilter = params.filters.find(data => data.name === 'hasTransactionOrBalance');
132
+ let tzoffset = params.filters.find(data => data.name === 'tzoffset').value + ' seconds';
133
+ if (userFilter) {
134
+ const user = await tx.getRepository(auth_base_1.User).findOne({
135
+ where: { id: userFilter.value },
136
+ relations: ['bizplaces']
137
+ });
138
+ const bizplace = user.bizplaces[0];
139
+ if (!bizplace)
140
+ throw 'Invalid input';
141
+ bizplaceFilter = { name: 'bizplace', operator: 'eq', value: bizplace.id };
142
+ }
143
+ else {
144
+ bizplaceFilter = params.filters.find(data => data.name === 'bizplace');
145
+ }
146
+ if (!bizplaceFilter || !fromDate || !toDate)
147
+ throw 'Invalid input';
148
+ const bizplace = await tx.getRepository(biz_base_1.Bizplace).findOne({
149
+ id: bizplaceFilter.value
150
+ });
151
+ let batchNoQuery = '';
152
+ if (batchNo) {
153
+ batchNoQuery =
154
+ 'AND Lower(invh.batch_id) LIKE ANY(ARRAY[' +
155
+ batchNo.value
156
+ .toLowerCase()
157
+ .split(',')
158
+ .map(prod => {
159
+ return "'%" + prod.trim().replace(/'/g, "''") + "%'";
160
+ })
161
+ .join(',') +
162
+ '])';
163
+ }
164
+ let productQuery = '';
165
+ if (product) {
166
+ let productValue = product.value
167
+ .toLowerCase()
168
+ .split(',')
169
+ .map(prod => {
170
+ return "'%" + prod.trim().replace(/'/g, "''") + "%'";
171
+ })
172
+ .join(',');
173
+ productQuery = `AND (
174
+ Lower(prd.name) LIKE ANY(ARRAY[${productValue}])
175
+ OR Lower(prd.sku) LIKE ANY(ARRAY[${productValue}])
176
+ OR Lower(prd.description) LIKE ANY(ARRAY[${productValue}])
177
+ )`;
178
+ }
179
+ let productDescQuery = '';
180
+ if (productDesc) {
181
+ productDescQuery = "AND Lower(description) LIKE '%" + productDesc.value.toLowerCase() + "%'";
182
+ }
183
+ let hasTransactionOrBalanceQuery = '';
184
+ if (hasTransactionOrBalanceFilter && hasTransactionOrBalanceFilter.value) {
185
+ hasTransactionOrBalanceQuery = 'and (src.totalRow > 1 or src.totalQty <> 0)';
186
+ }
187
+ await tx.query(`
188
+ create temp table temp_products AS
189
+ (
190
+ select prd.*, prd.id::varchar as product_id from products prd
191
+ inner join bizplaces b on b.id = prd.bizplace_id
192
+ inner join companies c on c.domain_id = b.domain_id
193
+ inner join bizplaces b2 on b2.company_id = c.id
194
+ where b2.id = $1
195
+ ${productQuery}
196
+ )`, [bizplace.id]);
197
+ await tx.query(`
198
+ create temp table temp_data_src AS
199
+ (
200
+ SELECT prd.name AS product_name, prd.description AS product_description, prd.type as product_type, prd.aux_value_1 AS product_aux_value_1, trim(invh.batch_id) as batch_id, invh.product_id,
201
+ invh.packing_type, invh.bizplace_id, invh.domain_id,
202
+ invh.ref_order_id, invh.order_no, invh.order_ref_no, invh.transaction_type, invh.created_at,
203
+ invh.qty, invh.opening_qty,
204
+ invh.uom, COALESCE(invh.uom_value, 0) as uom_value, COALESCE(invh.opening_uom_value, 0) as opening_uom_value
205
+ FROM reduced_inventory_histories invh
206
+ INNER JOIN temp_products prd ON prd.id = invh.product_id::uuid
207
+ WHERE
208
+ invh.domain_id = $1
209
+ AND invh.bizplace_id = $2
210
+ AND invh.created_at <= $3::timestamp
211
+ ${batchNoQuery}
212
+ )
213
+ `, [domain.id, bizplace.id, toDate.value]);
214
+ await tx.query(`
215
+ create temp table temp_inv_history as (
216
+ SELECT src.product_name, src.product_description, src.product_type, src.product_aux_value_1, src.batch_id, src.product_id, src.packing_type, src.uom,
217
+ src.bizplace_id, src.domain_id,
218
+ SUM(COALESCE(src.qty,0)) AS qty,
219
+ SUM(COALESCE(src.opening_qty,0)) AS opening_qty,
220
+ SUM(COALESCE(src.uom_value,0)) AS uom_value,
221
+ SUM(COALESCE(src.opening_uom_value,0)) AS opening_uom_value,
222
+ 'Opening Balance' AS order_name,
223
+ '-' AS ref_no,
224
+ 0 AS rn,
225
+ $1::timestamp AS created_at,
226
+ $1::date AS created_date
227
+ FROM temp_data_src src
228
+ WHERE src.created_at < $1::timestamp
229
+ GROUP BY src.product_name, src.product_description, src.product_type, src.product_aux_value_1, src.batch_id, src.product_id, src.packing_type, src.uom,
230
+ src.bizplace_id, src.domain_id
231
+ UNION ALL
232
+ SELECT product_name, product_description, product_type, product_aux_value_1, batch_id, product_id, packing_type, uom, bizplace_id,
233
+ domain_id, sum(qty) as qty, sum(opening_qty) as opening_qty, sum(uom_value) as uom_value, sum(opening_uom_value) as opening_uom_value,
234
+ order_name, ref_no, 1 AS rn, MIN(created_at) - $2::interval as created_at, (MIN(created_at) - $2::interval)::DATE as created_date
235
+ FROM (
236
+ SELECT invh.product_name, invh.product_description, invh.product_type, invh.product_aux_value_1, invh.batch_id, invh.product_id, invh.packing_type, invh.bizplace_id,
237
+ invh.domain_id,
238
+ invh.qty, invh.opening_qty, invh.uom_value, invh.uom, invh.opening_uom_value,
239
+ COALESCE(order_no, '-') AS order_name,
240
+ COALESCE(order_ref_no, '-') AS ref_no,
241
+ invh.created_at,
242
+ invh.created_at::date as created_date
243
+ FROM temp_data_src invh
244
+ WHERE (invh.qty <> 0 OR invh.uom_value <> 0) AND
245
+ invh.transaction_type <> 'ADJUSTMENT' AND
246
+ invh.transaction_type <>'NEW'
247
+ AND invh.created_at >= $1::timestamp
248
+ ) AS inv_movement
249
+ GROUP BY product_name, product_description, product_type, product_aux_value_1, batch_id, product_id, packing_type, uom, bizplace_id,
250
+ domain_id, order_name, ref_no, rn
251
+ UNION ALL
252
+ SELECT product_name, product_description, product_type, product_aux_value_1, batch_id, product_id, packing_type, uom, bizplace_id,
253
+ domain_id, sum(qty) as qty, sum(opening_qty) as opening_qty, sum(uom_value) as uom_value, sum(opening_uom_value) as opening_uom_value,
254
+ order_name, ref_no, 1 AS rn, created_at - $2::interval as created_at, created_at::date as created_date
255
+ FROM (
256
+ SELECT invh.product_name, invh.product_description, invh.product_type, invh.product_aux_value_1, invh.batch_id, invh.product_id, invh.packing_type, invh.uom, invh.bizplace_id,
257
+ invh.domain_id,
258
+ invh.qty, invh.opening_qty, invh.uom_value, invh.opening_uom_value,
259
+ invh.transaction_type AS order_name,
260
+ invh.transaction_type AS ref_no,
261
+ invh.created_at,
262
+ invh.created_at:: date as created_date
263
+ FROM temp_data_src invh
264
+ WHERE (invh.qty <> 0 OR invh.uom_value <> 0) AND
265
+ (invh.transaction_type = 'ADJUSTMENT' OR
266
+ invh.transaction_type = 'NEW')
267
+ AND invh.created_at >= $1::timestamp
268
+ ) AS inv_movement
269
+ GROUP BY product_name, product_description, product_type, product_aux_value_1, batch_id, product_id, packing_type, uom, bizplace_id,
270
+ domain_id, order_name, ref_no, rn, created_at
271
+ )`, [fromDate.value, tzoffset]);
272
+ const result = await tx.query(`
273
+ select product_name, product_description, product_type, product_aux_value_1, batch_id, product_id, packing_type, uom, bizplace_id,
274
+ domain_id, qty, opening_qty, round(uom_value::decimal,2) as uom_value, opening_uom_value, order_name, ref_no, created_at::date
275
+ from temp_inv_history invh where
276
+ exists (
277
+ select * from (
278
+ select batch_id, product_name, packing_type, sum(qty) as totalQty, count(*) as totalRow from temp_inv_history ih2
279
+ group by batch_id, product_name, packing_type
280
+ ) src
281
+ where src.batch_id = invh.batch_id and src.product_name = invh.product_name and src.packing_type = invh.packing_type
282
+ ${hasTransactionOrBalanceQuery}
283
+ )
284
+ ORDER BY invh.product_name asc, invh.product_description asc, invh.packing_type asc, invh.batch_id asc, invh.uom asc, invh.rn asc, invh.created_at asc
285
+ `);
286
+ tx.query(`
287
+ drop table temp_products, temp_data_src, temp_inv_history
288
+ `);
289
+ let items = result;
290
+ items = items.map(item => {
291
+ return {
292
+ batchId: item.batch_id,
293
+ bizplace: bizplace,
294
+ packingType: item.packing_type,
295
+ product: {
296
+ id: item.product_id,
297
+ name: item.product_name +
298
+ ' ( ' +
299
+ item.product_description +
300
+ ' ) ' +
301
+ (item.product_aux_value_1 === null ? '' : ' [ ' + item.product_aux_value_1 + ' ] '),
302
+ type: item.product_type
303
+ },
304
+ qty: item.qty,
305
+ uom: item.uom,
306
+ uomValue: item.uom_value,
307
+ openingQty: item.opening_qty,
308
+ openingUomValue: item.opening_uom_value,
309
+ orderNo: item.order_name,
310
+ orderRefNo: item.ref_no,
311
+ createdAt: item.created_at
312
+ };
313
+ });
314
+ return items;
315
+ }
316
+ catch (error) {
317
+ throw error;
318
+ }
319
+ }
320
+ async inventoryHistoryPalletReport(params, context) {
321
+ try {
322
+ const { domain, tx } = context.state;
323
+ let userFilter = params.filters.find(data => data.name === 'user');
324
+ let bizplaceFilter = { name: '', operator: '', value: '' };
325
+ if (userFilter) {
326
+ const user = await tx.getRepository(auth_base_1.User).findOne({
327
+ where: { id: userFilter.value },
328
+ relations: ['bizplaces']
329
+ });
330
+ const bizplace = user.bizplaces[0];
331
+ if (!bizplace)
332
+ throw 'Invalid input';
333
+ bizplaceFilter = { name: 'bizplace', operator: 'eq', value: bizplace.id };
334
+ }
335
+ else {
336
+ bizplaceFilter = params.filters.find(data => data.name === 'bizplace');
337
+ }
338
+ let fromDate = params.filters.find(data => data.name === 'fromDate');
339
+ let toDate = params.filters.find(data => data.name === 'toDate');
340
+ let product = params.filters.find(data => data.name === 'product');
341
+ if (!fromDate || !toDate)
342
+ throw 'Invalid input';
343
+ let bizplaceQuery = '';
344
+ if (bizplaceFilter) {
345
+ const bizplace = await tx.getRepository(biz_base_1.Bizplace).findOne({
346
+ id: bizplaceFilter.value
347
+ });
348
+ if (bizplace) {
349
+ bizplaceQuery = "AND i2.bizplace_id = '" + bizplace.id + "'";
350
+ }
351
+ else {
352
+ throw 'Invalid input';
353
+ }
354
+ }
355
+ let productQuery = '';
356
+ if (product) {
357
+ productQuery =
358
+ 'AND prd.name ILIKE ANY(ARRAY[' +
359
+ product.value
360
+ .split(',')
361
+ .map(prod => {
362
+ return "'%" + prod.trim().replace(/'/g, "''") + "%'";
363
+ })
364
+ .join(',') +
365
+ '])';
366
+ }
367
+ const result = await tx.getRepository(inventory_history_1.InventoryHistory).query(`
368
+ with invHistory as (
369
+ select case when ar.name is null then 'NEW' else ar.name end as arrival_notice_name,
370
+ case when js.container_size is null then '' else js.container_size end as container_size,
371
+ i2.batch_id,
372
+ bzp.name as bizplace_name,
373
+ i2.pallet_id, ih.seq, ih.status, ih.transaction_type, i2.product_id, prd.name as product_name,
374
+ prd.description as product_description, ih.id as inventory_history_id, ih.packing_type, ih.qty, ih.opening_qty,
375
+ ih.created_at::date
376
+ from inventories i2
377
+ inner join reduced_inventory_histories ih on ih.pallet_id = i2.pallet_id and ih.domain_id = i2.domain_id
378
+ inner join products prd on prd.id = i2.product_id
379
+ inner join bizplaces bzp on bzp.id = ih.bizplace_id
380
+ left join order_inventories oi on oi.inventory_id = i2.id and oi.arrival_notice_id is not null
381
+ left join arrival_notices ar on ar.id = oi.arrival_notice_id
382
+ left join job_sheets js on js.id = ar.job_sheet_id
383
+ where
384
+ i2.domain_id = '${domain.id}'
385
+ and (
386
+ (ih.status = 'STORED' and ih.transaction_type = 'NEW')
387
+ or (ih.status = 'STORED' and ih.transaction_type = 'CANCEL_ORDER')
388
+ or (ih.status = 'STORED' and ih.transaction_type = 'RETURN')
389
+ or (ih.status = 'STORED' and ih.transaction_type = 'PUTAWAY')
390
+ or (ih.status = 'TERMINATED' and ih.transaction_type = 'TERMINATED')
391
+ )
392
+ ${bizplaceQuery}
393
+ ${productQuery}
394
+ order by ih.pallet_id, ih.seq
395
+ ), inventoryHistoryMovement as (
396
+ select bizplace_name, container_size, pallet_id, seq, status, transaction_type, product_id, product_name, product_description, batch_id,
397
+ inventory_history_id, packing_type, qty, opening_qty, created_at, arrival_notice_name from (
398
+ select row_number() over(partition by pallet_id order by created_at asc) as rn, * from invHistory where status = 'STORED'
399
+ )as invIn where rn = 1
400
+ union all
401
+ select bizplace_name, container_size, pallet_id, seq, status, transaction_type, product_id, product_name, product_description, batch_id,
402
+ inventory_history_id, packing_type, qty, opening_qty, created_at, arrival_notice_name from (
403
+ select row_number() over(partition by pallet_id order by created_at desc) as rn, * from invHistory
404
+ )as invOut where rn = 1 and status = 'TERMINATED'
405
+ ), inventoryHistoriesByPallet as (
406
+ select invHistory.bizplace_name, invHistory.container_size, invHistory.product_name, invHistory.product_description, invHistory.arrival_notice_name, invHistory.batch_id,
407
+ SUM(case when invHistory.created_at <= '${new Date(fromDate.value).toLocaleDateString()} 00:00:00' then
408
+ case when invHistory.status = 'STORED' then 1 else -1 end
409
+ else 0 end) as opening_balance,
410
+ SUM(case when invHistory.created_at >= '${new Date(fromDate.value).toLocaleDateString()} 00:00:00'
411
+ and invHistory.created_at <= '${new Date(toDate.value).toLocaleDateString()} 23:59:59' then
412
+ case when invHistory.status = 'STORED' then 1 else 0 end
413
+ else 0 end) as in_balance,
414
+ SUM(case when invHistory.created_at >= '${new Date(fromDate.value).toLocaleDateString()} 00:00:00'
415
+ and invHistory.created_at <= '${new Date(toDate.value).toLocaleDateString()} 23:59:59' then
416
+ case when invHistory.status = 'TERMINATED' then 1 else 0 end
417
+ else 0 end) as out_balance
418
+ from(
419
+ select * from inventoryHistoryMovement
420
+ ) as invHistory group by bizplace_name, container_size, product_name, product_description, arrival_notice_name, batch_id
421
+ )
422
+ select invh.*, invh.opening_balance + invh.in_balance - invh.out_balance as closing_balance
423
+ , (
424
+ select json_agg(json_build_object('created_at', created_at, 'in_balance', in_balance, 'out_balance', out_balance)) as jsonData from
425
+ (
426
+ select bizplace_name, product_name, batch_id, arrival_notice_name, created_at,
427
+ SUM(case when status = 'STORED' then 1 else 0 end) as in_balance,
428
+ SUM(case when status = 'TERMINATED' then 1 else 0 end) as out_balance
429
+ from inventoryHistoryMovement
430
+ where created_at >= '${new Date(fromDate.value).toLocaleDateString()} 00:00:00' and
431
+ created_at <= '${new Date(toDate.value).toLocaleDateString()} 23:59:59' and
432
+ bizplace_name = invh.bizplace_name and product_name = invh.product_name and
433
+ batch_id = invh.batch_id and arrival_notice_name = invh.arrival_notice_name
434
+ group by bizplace_name, product_name, batch_id, arrival_notice_name, created_at
435
+ order by created_at
436
+ )
437
+ as t
438
+ )::varchar as json_date_movement
439
+ from inventoryHistoriesByPallet invh
440
+ where invh.opening_balance >= 0
441
+ and invh.in_balance >= 0
442
+ and invh.out_balance >= 0
443
+ and (invh.opening_balance > 0 or invh.in_balance > 0)
444
+ order by invh.bizplace_name, invh.product_name, invh.batch_id;
445
+ `);
446
+ let items = result;
447
+ items = items.map(item => {
448
+ return {
449
+ bizplace: { name: item.bizplace_name },
450
+ product: {
451
+ name: item.product_name.trim() + ' ( ' + (item.product_description || '-').trim() + ' )'
452
+ },
453
+ arrivalNoticeName: item.arrival_notice_name,
454
+ batchId: item.batch_id,
455
+ openingBalance: item.opening_balance,
456
+ inBalance: item.in_balance,
457
+ outBalance: item.out_balance,
458
+ closingBalance: item.closing_balance,
459
+ jsonDateMovement: item.json_date_movement,
460
+ containerSize: item.container_size
461
+ };
462
+ });
463
+ return items;
464
+ }
465
+ catch (error) {
466
+ throw error;
467
+ }
468
+ }
469
+ async inventoryHistoryPalletDetailReport(params, context) {
470
+ try {
471
+ const { domain, tx } = context.state;
472
+ let userFilter = params.filters.find(data => data.name === 'user');
473
+ let bizplaceFilter = { name: '', operator: '', value: '' };
474
+ if (userFilter) {
475
+ const user = await tx.getRepository(auth_base_1.User).findOne({
476
+ where: { id: userFilter.value },
477
+ relations: ['bizplaces']
478
+ });
479
+ const bizplace = user.bizplaces[0];
480
+ if (!bizplace)
481
+ throw 'Invalid input';
482
+ bizplaceFilter = { name: 'bizplace', operator: 'eq', value: bizplace.id };
483
+ }
484
+ else {
485
+ bizplaceFilter = params.filters.find(data => data.name === 'bizplace');
486
+ }
487
+ let fromDate = params.filters.find(data => data.name === 'fromDate');
488
+ let toDate = params.filters.find(data => data.name === 'toDate');
489
+ let product = params.filters.find(data => data.name === 'product');
490
+ if (!fromDate || !toDate)
491
+ throw 'Invalid input';
492
+ let bizplaceQuery = '';
493
+ if (bizplaceFilter) {
494
+ const bizplace = await tx.getRepository(biz_base_1.Bizplace).findOne({
495
+ id: bizplaceFilter.value
496
+ });
497
+ if (bizplace) {
498
+ bizplaceQuery = "AND i2.bizplace_id = '" + bizplace.id + "'";
499
+ }
500
+ else {
501
+ throw 'Invalid input';
502
+ }
503
+ }
504
+ let productQuery = '';
505
+ if (product) {
506
+ productQuery =
507
+ 'AND prd.name ILIKE ANY(ARRAY[' +
508
+ product.value
509
+ .split(',')
510
+ .map(prod => {
511
+ return "'%" + prod.trim().replace(/'/g, "''") + "%'";
512
+ })
513
+ .join(',') +
514
+ '])';
515
+ }
516
+ const result = await tx.getRepository(inventory_history_1.InventoryHistory).query(`
517
+ with invHistory as (
518
+ select case when ar.name is null then 'NEW' else ar.name end as arrival_notice_name,
519
+ case when js.container_size is null then '' else js.container_size end as container_size,
520
+ i2.batch_id,
521
+ bzp.name as bizplace_name,
522
+ i2.pallet_id, ih.seq, ih.status, ih.transaction_type, i2.product_id, prd.name as product_name,
523
+ prd.description as product_description, ih.id as inventory_history_id, ih.packing_type, ih.qty, ih.opening_qty,
524
+ ih.created_at::date
525
+ from inventories i2
526
+ inner join reduced_inventory_histories ih on ih.pallet_id = i2.pallet_id and ih.domain_id = i2.domain_id
527
+ inner join products prd on prd.id = i2.product_id
528
+ inner join bizplaces bzp on bzp.id = ih.bizplace_id
529
+ left join order_inventories oi on oi.inventory_id = i2.id and oi.arrival_notice_id is not null
530
+ left join arrival_notices ar on ar.id = oi.arrival_notice_id
531
+ left join job_sheets js on js.id = ar.job_sheet_id
532
+ where
533
+ i2.domain_id = '${domain.id}'
534
+ and (
535
+ (ih.status = 'STORED' and ih.transaction_type = 'NEW')
536
+ or (ih.status = 'STORED' and ih.transaction_type = 'CANCEL_ORDER')
537
+ or (ih.status = 'STORED' and ih.transaction_type = 'RETURN')
538
+ or (ih.status = 'STORED' and ih.transaction_type = 'PUTAWAY')
539
+ or (ih.status = 'TERMINATED' and ih.transaction_type = 'TERMINATED')
540
+ )
541
+ ${bizplaceQuery}
542
+ ${productQuery}
543
+ order by ih.pallet_id, ih.seq
544
+ ), inventoryHistoryMovement as (
545
+ select bizplace_name, container_size, pallet_id, seq, status, transaction_type, product_id, product_name, product_description, batch_id,
546
+ inventory_history_id, packing_type, qty, opening_qty, created_at, arrival_notice_name from (
547
+ select row_number() over(partition by pallet_id order by created_at asc) as rn, * from invHistory where status = 'STORED'
548
+ )as invIn where rn = 1
549
+ union all
550
+ select bizplace_name, container_size, pallet_id, seq, status, transaction_type, product_id, product_name, product_description, batch_id,
551
+ inventory_history_id, packing_type, qty, opening_qty, created_at, arrival_notice_name from (
552
+ select row_number() over(partition by pallet_id order by created_at desc) as rn, * from invHistory
553
+ )as invOut where rn = 1 and status = 'TERMINATED'
554
+ ), inventoryHistoriesByPallet as (
555
+ select invHistory.bizplace_name, invHistory.container_size, invHistory.product_name, invHistory.product_description, invHistory.arrival_notice_name, invHistory.batch_id,
556
+ SUM(case when invHistory.created_at <= '${new Date(fromDate.value).toLocaleDateString()} 00:00:00' then
557
+ case when invHistory.status = 'STORED' then 1 else -1 end
558
+ else 0 end) as opening_balance,
559
+ SUM(case when invHistory.created_at >= '${new Date(fromDate.value).toLocaleDateString()} 00:00:00'
560
+ and invHistory.created_at <= '${new Date(toDate.value).toLocaleDateString()} 23:59:59' then
561
+ case when invHistory.status = 'STORED' then 1 else 0 end
562
+ else 0 end) as in_balance,
563
+ SUM(case when invHistory.created_at >= '${new Date(fromDate.value).toLocaleDateString()} 00:00:00'
564
+ and invHistory.created_at <= '${new Date(toDate.value).toLocaleDateString()} 23:59:59' then
565
+ case when invHistory.status = 'TERMINATED' then 1 else 0 end
566
+ else 0 end) as out_balance
567
+ from(
568
+ select * from inventoryHistoryMovement
569
+ ) as invHistory group by bizplace_name, container_size, product_name, product_description, arrival_notice_name, batch_id
570
+ )
571
+ select invh.*, invh.opening_balance + invh.in_balance - invh.out_balance as closing_balance
572
+ , (
573
+ select json_agg(json_build_object('created_at', created_at, 'in_balance', in_balance, 'out_balance', out_balance)) as jsonData from
574
+ (
575
+ select bizplace_name, product_name, batch_id, arrival_notice_name, created_at,
576
+ SUM(case when status = 'STORED' then 1 else 0 end) as in_balance,
577
+ SUM(case when status = 'TERMINATED' then 1 else 0 end) as out_balance
578
+ from inventoryHistoryMovement
579
+ where created_at >= '${new Date(fromDate.value).toLocaleDateString()} 00:00:00' and
580
+ created_at <= '${new Date(toDate.value).toLocaleDateString()} 23:59:59' and
581
+ bizplace_name = invh.bizplace_name and product_name = invh.product_name and
582
+ batch_id = invh.batch_id and arrival_notice_name = invh.arrival_notice_name
583
+ group by bizplace_name, product_name, batch_id, arrival_notice_name, created_at
584
+ order by created_at
585
+ )
586
+ as t
587
+ )::varchar as json_date_movement
588
+ from inventoryHistoriesByPallet invh
589
+ where invh.opening_balance >= 0
590
+ and invh.in_balance >= 0
591
+ and invh.out_balance >= 0
592
+ and (invh.opening_balance > 0 or invh.in_balance > 0)
593
+ order by invh.bizplace_name, invh.product_name, invh.batch_id;
594
+ `);
595
+ let items = result;
596
+ items = items.map(item => {
597
+ return {
598
+ bizplace: { name: item.bizplace_name },
599
+ product: {
600
+ name: item.product_name.trim() + ' ( ' + (item.product_description || '-').trim() + ' )'
601
+ },
602
+ arrivalNoticeName: item.arrival_notice_name,
603
+ batchId: item.batch_id,
604
+ openingBalance: item.opening_balance,
605
+ inBalance: item.in_balance,
606
+ outBalance: item.out_balance,
607
+ closingBalance: item.closing_balance,
608
+ jsonDateMovement: item.json_date_movement,
609
+ containerSize: item.container_size
610
+ };
611
+ });
612
+ return items;
613
+ }
614
+ catch (error) {
615
+ throw error;
616
+ }
617
+ }
618
+ async inventoryHistoryPalletStorageReport(params, context) {
619
+ try {
620
+ const { domain, tx } = context.state;
621
+ let userFilter = params.filters.find(data => data.name === 'user');
622
+ let bizplaceFilter = { name: '', operator: '', value: '' };
623
+ if (userFilter) {
624
+ const user = await tx.getRepository(auth_base_1.User).findOne({
625
+ where: { id: userFilter.value },
626
+ relations: ['bizplaces']
627
+ });
628
+ const bizplace = user.bizplaces[0];
629
+ if (!bizplace)
630
+ throw 'Invalid input';
631
+ bizplaceFilter = { name: 'bizplace', operator: 'eq', value: bizplace.id };
632
+ }
633
+ else {
634
+ bizplaceFilter = params.filters.find(data => data.name === 'bizplace');
635
+ }
636
+ let fromDate = params.filters.find(data => data.name === 'fromDate');
637
+ let toDate = params.filters.find(data => data.name === 'toDate');
638
+ if (!bizplaceFilter || !fromDate || !toDate)
639
+ throw 'Invalid input';
640
+ const bizplace = await tx.getRepository(biz_base_1.Bizplace).findOne({
641
+ id: bizplaceFilter.value
642
+ });
643
+ let queryFilter = ``;
644
+ let queryParams = [fromDate.value, toDate.value];
645
+ let locationType = params.filters.find(data => data.name === 'locationType');
646
+ if (locationType) {
647
+ queryFilter = queryFilter + `AND location_type = $` + (queryParams.length + 1);
648
+ queryParams.push(locationType.value);
649
+ }
650
+ let zone = params.filters.find(data => data.name === 'zone');
651
+ if (zone) {
652
+ queryFilter = queryFilter + `AND LOWER(location_zone) like $` + (queryParams.length + 1);
653
+ queryParams.push(zone.value.toLowerCase());
654
+ }
655
+ await tx.query(`
656
+ create temp table temp_history as (
657
+ select distinct on (ih.pallet_id)
658
+ ih.pallet_id, ih.created_at as in_at, loc.name as location_name, loc."type" as location_type, loc."zone" as location_zone,
659
+ bz.name as bizplace_name
660
+ from reduced_inventory_histories ih
661
+ inner join inventories inv on inv.pallet_id = ih.pallet_id and inv.domain_id = ih.domain_id
662
+ inner join locations loc on loc.id = inv.location_id
663
+ inner join bizplaces bz on bz.id = inv.bizplace_id
664
+ where ih.domain_id = $1
665
+ and inv.bizplace_id = $2
666
+ and not exists(
667
+ SELECT domain_id, pallet_id
668
+ FROM reduced_inventory_histories ih2
669
+ where ih2.domain_id = $1
670
+ and ih2.created_at < $3
671
+ and ih2.transaction_type = 'TERMINATED' and ih2.status ='TERMINATED'
672
+ and ih2.pallet_id = ih.pallet_id
673
+ group by ih2.domain_id , ih2.pallet_id
674
+ )
675
+ and ih.created_at <= $4
676
+ order by ih.pallet_id , ih.seq
677
+ )
678
+ `, [domain.id, bizplace.id, fromDate.value, toDate.value]);
679
+ await tx.query(`
680
+ create temp table temp_pallet_storage_history as (
681
+ select * from (
682
+ select bizplace_name, location_type, location_zone, location_name,
683
+ COUNT(pallet_id) filter (where in_at between $1 and $2) as inbound_qty,
684
+ COUNT(*) as total_qty,
685
+ string_agg(case when in_at between $1 and $2 then pallet_id end, ', ') as inbound_pallet_id,
686
+ string_agg(case when in_at not between $1 and $2 then pallet_id end, ', ') as pallet_id
687
+ from temp_history where location_type = 'SHELF'
688
+ group by bizplace_name, location_name, location_type, location_zone
689
+ union
690
+ select bizplace_name, location_type, location_zone, location_name,
691
+ case when in_at between $1 and $2 then 1 else 0 end as inbound_qty,
692
+ 1 as total_qty,
693
+ case when in_at between $1 and $2 then pallet_id end as inbound_pallet_id,
694
+ case when in_at not between $1 and $2 then pallet_id end pallet_id
695
+ from temp_history where location_type = 'FLOOR'
696
+ ) as src where 1 = 1
697
+ ${queryFilter}
698
+ )
699
+ `, queryParams);
700
+ const total = await tx.query(`select count(*) from temp_pallet_storage_history`);
701
+ const totalWithOpeningBalance = await tx.query(`select count(*) from temp_pallet_storage_history where pallet_id notnull`);
702
+ const result = await tx.query(`
703
+ select * from temp_pallet_storage_history order by location_type OFFSET $1 LIMIT $2
704
+ `, [(params.pagination.page - 1) * params.pagination.limit, params.pagination.limit]);
705
+ tx.query(`
706
+ drop table temp_history, temp_pallet_storage_history
707
+ `);
708
+ let items = result.map(itm => {
709
+ return Object.assign(Object.assign({}, itm), { bizplace: {
710
+ name: itm.bizplace_name
711
+ }, location: {
712
+ name: itm.location_name,
713
+ type: itm.location_type,
714
+ zone: itm.location_zone
715
+ }, palletId: itm.pallet_id, inboundPalletId: itm.inbound_pallet_id, inboundQty: itm.inbound_qty, totalQty: itm.total_qty });
716
+ });
717
+ return { items, total: total[0].count, totalWithOpeningBalance: totalWithOpeningBalance[0].count };
718
+ }
719
+ catch (ex) {
720
+ throw ex;
721
+ }
722
+ }
723
+ async inventoryHistorySummaryReport(params, context) {
724
+ try {
725
+ const { tx } = context.state;
726
+ let bizplaceFilter = { name: '', operator: '', value: '' };
727
+ let userFilter = params.filters.find(data => data.name === 'user');
728
+ let fromDate = params.filters.find(data => data.name === 'fromDate');
729
+ let toDate = params.filters.find(data => data.name === 'toDate');
730
+ let byPallet = params.filters.find(data => data.name === 'byPallet');
731
+ if (userFilter) {
732
+ const user = await tx.getRepository(auth_base_1.User).findOne({
733
+ where: { id: userFilter.value },
734
+ relations: ['bizplaces']
735
+ });
736
+ const bizplace = user.bizplaces[0];
737
+ if (!bizplace)
738
+ throw 'Invalid input';
739
+ bizplaceFilter = { name: 'bizplace', operator: 'eq', value: bizplace.id };
740
+ }
741
+ else {
742
+ bizplaceFilter = params.filters.find(data => data.name === 'bizplace');
743
+ }
744
+ if (!bizplaceFilter || !fromDate || !toDate)
745
+ throw 'Invalid input';
746
+ const bizplace = await tx.getRepository(biz_base_1.Bizplace).findOne({
747
+ id: bizplaceFilter.value
748
+ });
749
+ let [result, total] = byPallet.value
750
+ ? await massageInventoryPalletSummary(tx, params, bizplace, context)
751
+ : await massageInventorySummary(tx, params, bizplace, context);
752
+ let items = result.map(itm => {
753
+ return Object.assign(Object.assign({}, itm), { batchId: itm.batch_id, packingType: itm.packing_type, packingSize: itm.packing_size, openingQty: itm.opening_qty, adjustmentQty: itm.adjustment_qty, closingQty: itm.closing_qty, totalInQty: itm.total_in_qty, totalOutQty: itm.total_out_qty, product: {
754
+ id: itm.product_id,
755
+ sku: itm.product_sku,
756
+ name: itm.product_name,
757
+ description: itm.product_description,
758
+ type: itm.product_type
759
+ } });
760
+ });
761
+ return {
762
+ items,
763
+ total: total[0].count,
764
+ totalInboundQty: total[0].totalinqty || 0,
765
+ totalOpeningBal: total[0].totalopeningbal || 0
766
+ };
767
+ }
768
+ catch (error) {
769
+ throw error;
770
+ }
771
+ }
772
+ async onhandInventories(context, filters, pagination, sortings, locationSortingRules, setPagination) {
773
+ const { domain, user, tx } = context.state;
774
+ // define all inputs
775
+ let userFilter = filters.find(data => data.name === 'user');
776
+ let product = filters.find(data => data.name === 'product');
777
+ let createdAt = filters.find(data => data.name === 'created_at');
778
+ let location = filters.find(data => data.name === 'location');
779
+ let batchId = filters.find(data => data.name === 'batchId');
780
+ let palletId = filters.find(data => data.name === 'palletId');
781
+ let cartonId = filters.find(data => data.name === 'cartonId');
782
+ let packingType = filters.find(data => data.name === 'packingType');
783
+ let timezoneOffset = filters.find(data => data.name === 'timezoneOffset').value + ' minutes';
784
+ // expiration date filter
785
+ let expiration = filters.find(data => data.name === 'expiration').value;
786
+ let expFromDate = filters.find(data => data.name === 'expFromDate');
787
+ let expToDate = filters.find(data => data.name === 'expToDate');
788
+ let bizplaceFilter = { name: '', operator: '', value: [] };
789
+ // prepare query filters
790
+ if (userFilter) {
791
+ const user = await tx.getRepository(auth_base_1.User).findOne({
792
+ where: { id: userFilter.value },
793
+ relations: ['bizplaces']
794
+ });
795
+ const bizplace = user.bizplaces[0];
796
+ if (!bizplace)
797
+ throw 'Invalid input';
798
+ bizplaceFilter = { name: 'bizplace', operator: 'eq', value: [bizplace.id] };
799
+ }
800
+ else {
801
+ bizplaceFilter = !filters.find((filter) => filter.name === 'bizplace')
802
+ ? {
803
+ name: 'bizplace',
804
+ operator: 'in',
805
+ value: await (0, biz_base_1.getPermittedBizplaceIds)(domain, user),
806
+ relation: true
807
+ }
808
+ : Object.assign(Object.assign({}, filters.find(data => data.name === 'bizplace')), { value: [filters.find(data => data.name === 'bizplace').value] });
809
+ }
810
+ let queryFilter = ``;
811
+ let bizplaces = bizplaceFilter.value.map(id => `('${id}')`).join(',');
812
+ if (product) {
813
+ let products = product.value
814
+ .toLowerCase()
815
+ .split(',')
816
+ .map(prod => {
817
+ return "'%" + prod.trim().replace(/'/g, "''") + "%'";
818
+ })
819
+ .join(',');
820
+ queryFilter =
821
+ queryFilter +
822
+ ` and exists (
823
+ select prd.id as product_id from products prd
824
+ inner join bizplaces b on b.id = prd.bizplace_id
825
+ inner join companies c on c.domain_id = b.domain_id
826
+ inner join bizplaces b2 on b2.company_id = c.id
827
+ where exists (
828
+ SELECT * FROM tmp_bizfilter bizFilter
829
+ WHERE bizFilter.bizplace_id = "b2"."id"
830
+ )
831
+ and (lower(prd.name) like any(array[${products}])
832
+ or lower(prd.description) like any(array[${products}])
833
+ or lower(prd.sku) like any(array[${products}])
834
+ or lower(prd.brand) like any(array[${products}]))
835
+ and prd.id = rih.product_id
836
+ group by prd.id
837
+ )`;
838
+ }
839
+ if (location) {
840
+ let locations = location.value
841
+ .map(loc => {
842
+ return "'" + loc + "'";
843
+ })
844
+ .join(',');
845
+ queryFilter =
846
+ queryFilter +
847
+ `and exists (
848
+ select loc.id from locations loc where
849
+ loc.id = any(array[${locations}]::uuid[])
850
+ and loc.id = rih.location_id
851
+ )`;
852
+ }
853
+ // default sorting
854
+ let queryOrder = 'order by created_at desc';
855
+ if (sortings && sortings.length > 0) {
856
+ const arrObjectMap = [
857
+ { name: 'palletId', value: 'rih.pallet_id' },
858
+ { name: 'cartonId', value: 'rih.carton_id' },
859
+ { name: 'batchId', value: 'rih.batch_id' },
860
+ { name: 'initialInboundAt', value: 'rih.initial_inbound_at' },
861
+ { name: 'bizplace|name', value: 'bz.name' },
862
+ { name: 'product|name', value: 'prd.sku' },
863
+ { name: 'remainQty', value: 'rih.qty' },
864
+ { name: 'location|name', value: 'loc.name' }
865
+ ];
866
+ sortings.forEach((sorting, idx) => {
867
+ let itmIndex = arrObjectMap.findIndex(x => x.name === sorting.name);
868
+ queryOrder = `${idx === 0 ? 'order by' : queryOrder + ','} ${itmIndex >= 0 ? arrObjectMap[itmIndex].value : sorting.name} ${sorting.desc ? 'DESC' : 'ASC'}`;
869
+ });
870
+ }
871
+ if (batchId)
872
+ queryFilter = `${queryFilter} and lower(rih.batch_id) like '${batchId.value.toLowerCase()}' `;
873
+ if (palletId)
874
+ queryFilter = `${queryFilter} and rih.pallet_id like '${palletId.value}' `;
875
+ if (cartonId)
876
+ queryFilter = `${queryFilter} and rih.carton_id like '${cartonId.value}' `;
877
+ if (packingType)
878
+ queryFilter = `${queryFilter} and rih.packing_type like '${packingType.value}' `;
879
+ let expirationQueryFilter = ``;
880
+ if (expiration)
881
+ expirationQueryFilter = ` and iv.expiration_date >= '${expFromDate.value}'::timestamp + '${timezoneOffset}'::INTERVAL and
882
+ iv.expiration_date <= '${expToDate.value}'::timestamp + '${timezoneOffset}'::INTERVAL + '1 day'::INTERVAL`;
883
+ // query the results
884
+ await tx.query(`
885
+ CREATE TEMP TABLE tmp_bizfilter on commit drop AS (
886
+ SELECT bizplace_id::uuid FROM (VALUES ${bizplaces}) AS bizFilter(bizplace_id)
887
+ );
888
+ `);
889
+ await tx.query(`
890
+ create temp table tmp_src on commit drop as (
891
+ select domain_id, pallet_id, carton_id, seq, qty, uom_value, packing_type, batch_id, batch_id_ref, created_at, status,
892
+ product_id::uuid as product_id, bizplace_id::uuid as bizplace_id, location_id::uuid as location_id
893
+ from reduced_inventory_histories rih
894
+ where domain_id = $1 and created_at < $2::timestamp + $3::INTERVAL + '1 day'::INTERVAL
895
+ );
896
+ `, [domain.id, createdAt.value, timezoneOffset]);
897
+ await tx.query(`
898
+ create temp table tmp_data on commit drop as (
899
+ 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,
900
+ iv.expiration_date, iv.reusable_pallet_id, iv.remark
901
+ from
902
+ (
903
+ 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,
904
+ min(ih.created_at) as initial_inbound_at
905
+ from tmp_src ih
906
+ group by ih.domain_id, ih.pallet_id
907
+ ) dt
908
+ 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'
909
+ inner join inventories iv on iv.domain_id = dt.domain_id and iv.pallet_id = dt.pallet_id
910
+ where exists (
911
+ SELECT * FROM tmp_bizfilter bizFilter
912
+ WHERE bizFilter.bizplace_id = "rih"."bizplace_id"
913
+ )
914
+ ${queryFilter}
915
+ ${expirationQueryFilter}
916
+ );
917
+ `);
918
+ const total = await tx.query(`select count(*) from tmp_data`);
919
+ const result = await tx.query(`
920
+ select
921
+ 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,
922
+ rih.initial_inbound_at as "initialInboundAt",
923
+ case when rih.reusable_pallet_id is not null then concat(rih.batch_id, ' (', plt.name, ')') else rih.batch_id end as "batchId",
924
+ rih.batch_id_ref as "batchIdRef", rih.product_id, rih.packing_type as "packingType", rih.bizplace_id, rih.location_id,
925
+ prd.id as product_id, prd.name as product_name, prd.sku as product_sku, prd.brand as product_brand, prd.description as product_description,
926
+ bz.id as bizplace_id, bz.name as bizplace_name,
927
+ loc.id as location_id, 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,
928
+ wh.name as warehouse_name, plt.name as reusable_pallet_name,
929
+ rih.remark,
930
+ rih.expiration_date as "expirationDate"
931
+ from tmp_data rih
932
+ left join pallets plt on plt.id = rih.reusable_pallet_id
933
+ inner join products prd on prd.id = rih.product_id
934
+ inner join bizplaces bz on bz.id = rih.bizplace_id
935
+ inner join locations loc on loc.id = rih.location_id
936
+ inner join warehouses wh on wh.id = loc.warehouse_id
937
+ WHERE 1 = 1
938
+ ${queryOrder}
939
+ ${setPagination ? 'OFFSET ' + (pagination.page - 1) * pagination.limit + ' LIMIT ' + pagination.limit : ''}
940
+ `);
941
+ // map all results
942
+ let items = result.map(itm => {
943
+ return Object.assign(Object.assign({}, itm), { bizplace: {
944
+ id: itm.bizplace_id,
945
+ name: itm.bizplace_name
946
+ }, location: {
947
+ id: itm.location_id,
948
+ name: itm.location_name,
949
+ type: itm.location_type,
950
+ zone: itm.location_zone
951
+ }, product: {
952
+ id: itm.product_id,
953
+ name: itm.product_name,
954
+ description: itm.product_description,
955
+ sku: itm.product_sku,
956
+ brand: itm.product_brand
957
+ } });
958
+ });
959
+ return { items, total: total[0].count };
960
+ }
961
+ async domain(inventoryHistory) {
962
+ return await (0, typeorm_1.getRepository)(shell_1.Domain).findOne(inventoryHistory.domainId);
963
+ }
964
+ async updater(inventoryHistory) {
965
+ return await (0, typeorm_1.getRepository)(auth_base_1.User).findOne(inventoryHistory.updaterId);
966
+ }
967
+ async creator(inventoryHistory) {
968
+ return await (0, typeorm_1.getRepository)(auth_base_1.User).findOne(inventoryHistory.creatorId);
969
+ }
970
+ };
971
+ __decorate([
972
+ (0, type_graphql_1.Query)(returns => inventory_history_types_1.InventoryHistoryList),
973
+ __param(0, (0, type_graphql_1.Args)()),
974
+ __param(1, (0, type_graphql_1.Ctx)()),
975
+ __metadata("design:type", Function),
976
+ __metadata("design:paramtypes", [typeof (_a = typeof shell_1.ListParam !== "undefined" && shell_1.ListParam) === "function" ? _a : Object, Object]),
977
+ __metadata("design:returntype", Promise)
978
+ ], InventoryHistoryQuery.prototype, "inventoryHistories", null);
979
+ __decorate([
980
+ (0, type_graphql_1.Query)(returns => inventory_history_1.InventoryHistory),
981
+ __param(0, (0, type_graphql_1.Arg)('name')),
982
+ __param(1, (0, type_graphql_1.Ctx)()),
983
+ __metadata("design:type", Function),
984
+ __metadata("design:paramtypes", [String, Object]),
985
+ __metadata("design:returntype", Promise)
986
+ ], InventoryHistoryQuery.prototype, "inventoryHistory", null);
987
+ __decorate([
988
+ (0, type_graphql_1.Directive)('@transaction'),
989
+ (0, type_graphql_1.Query)(returns => inventory_history_types_1.InventoryHistoryList),
990
+ __param(0, (0, type_graphql_1.Ctx)()),
991
+ __param(1, (0, type_graphql_1.Arg)('inventoryHistory', type => inventory_history_types_1.InventoryHistoryPatch, { nullable: true })),
992
+ __param(2, (0, type_graphql_1.Arg)('filters', type => [shell_1.Filter], { nullable: true })),
993
+ __param(3, (0, type_graphql_1.Arg)('pagination', type => shell_1.Pagination, { nullable: true })),
994
+ __param(4, (0, type_graphql_1.Arg)('sortings', type => [shell_1.Sorting], { nullable: true })),
995
+ __metadata("design:type", Function),
996
+ __metadata("design:paramtypes", [Object, inventory_history_types_1.InventoryHistoryPatch, Array, typeof (_b = typeof shell_1.Pagination !== "undefined" && shell_1.Pagination) === "function" ? _b : Object, Array]),
997
+ __metadata("design:returntype", Promise)
998
+ ], InventoryHistoryQuery.prototype, "bizplaceInventoryHistories", null);
999
+ __decorate([
1000
+ (0, type_graphql_1.Directive)('@transaction'),
1001
+ (0, type_graphql_1.Query)(returns => [inventory_history_1.InventoryHistory]),
1002
+ __param(0, (0, type_graphql_1.Args)()),
1003
+ __param(1, (0, type_graphql_1.Ctx)()),
1004
+ __metadata("design:type", Function),
1005
+ __metadata("design:paramtypes", [typeof (_c = typeof shell_1.ListParam !== "undefined" && shell_1.ListParam) === "function" ? _c : Object, Object]),
1006
+ __metadata("design:returntype", Promise)
1007
+ ], InventoryHistoryQuery.prototype, "inventoryHistoryReport", null);
1008
+ __decorate([
1009
+ (0, type_graphql_1.Directive)('@transaction'),
1010
+ (0, type_graphql_1.Query)(returns => [inventory_history_1.InventoryHistory]),
1011
+ __param(0, (0, type_graphql_1.Args)()),
1012
+ __param(1, (0, type_graphql_1.Ctx)()),
1013
+ __metadata("design:type", Function),
1014
+ __metadata("design:paramtypes", [typeof (_d = typeof shell_1.ListParam !== "undefined" && shell_1.ListParam) === "function" ? _d : Object, Object]),
1015
+ __metadata("design:returntype", Promise)
1016
+ ], InventoryHistoryQuery.prototype, "inventoryHistoryPalletReport", null);
1017
+ __decorate([
1018
+ (0, type_graphql_1.Directive)('@transaction'),
1019
+ (0, type_graphql_1.Query)(returns => [inventory_history_1.InventoryHistory]),
1020
+ __param(0, (0, type_graphql_1.Args)()),
1021
+ __param(1, (0, type_graphql_1.Ctx)()),
1022
+ __metadata("design:type", Function),
1023
+ __metadata("design:paramtypes", [typeof (_e = typeof shell_1.ListParam !== "undefined" && shell_1.ListParam) === "function" ? _e : Object, Object]),
1024
+ __metadata("design:returntype", Promise)
1025
+ ], InventoryHistoryQuery.prototype, "inventoryHistoryPalletDetailReport", null);
1026
+ __decorate([
1027
+ (0, type_graphql_1.Directive)('@transaction'),
1028
+ (0, type_graphql_1.Query)(returns => inventory_history_types_1.InventoryHistoryPalletReportList),
1029
+ __param(0, (0, type_graphql_1.Args)()),
1030
+ __param(1, (0, type_graphql_1.Ctx)()),
1031
+ __metadata("design:type", Function),
1032
+ __metadata("design:paramtypes", [typeof (_f = typeof shell_1.ListParam !== "undefined" && shell_1.ListParam) === "function" ? _f : Object, Object]),
1033
+ __metadata("design:returntype", Promise)
1034
+ ], InventoryHistoryQuery.prototype, "inventoryHistoryPalletStorageReport", null);
1035
+ __decorate([
1036
+ (0, type_graphql_1.Directive)('@transaction'),
1037
+ (0, type_graphql_1.Query)(returns => inventory_history_types_1.InventoryHistorySummaryList),
1038
+ __param(0, (0, type_graphql_1.Args)()),
1039
+ __param(1, (0, type_graphql_1.Ctx)()),
1040
+ __metadata("design:type", Function),
1041
+ __metadata("design:paramtypes", [typeof (_g = typeof shell_1.ListParam !== "undefined" && shell_1.ListParam) === "function" ? _g : Object, Object]),
1042
+ __metadata("design:returntype", Promise)
1043
+ ], InventoryHistoryQuery.prototype, "inventoryHistorySummaryReport", null);
1044
+ __decorate([
1045
+ (0, type_graphql_1.Directive)('@transaction'),
1046
+ (0, type_graphql_1.Query)(returns => inventory_types_1.InventoryList),
1047
+ __param(0, (0, type_graphql_1.Ctx)()),
1048
+ __param(1, (0, type_graphql_1.Arg)('filters', type => [shell_1.Filter], { nullable: true })),
1049
+ __param(2, (0, type_graphql_1.Arg)('pagination', type => shell_1.Pagination, { nullable: true })),
1050
+ __param(3, (0, type_graphql_1.Arg)('sortings', type => [shell_1.Sorting], { nullable: true })),
1051
+ __param(4, (0, type_graphql_1.Arg)('locationSortingRules', type => [shell_1.Sorting], { nullable: true })),
1052
+ __param(5, (0, type_graphql_1.Arg)('setPagination', type => Boolean, { defaultValue: true })),
1053
+ __metadata("design:type", Function),
1054
+ __metadata("design:paramtypes", [Object, Array, typeof (_h = typeof shell_1.Pagination !== "undefined" && shell_1.Pagination) === "function" ? _h : Object, Array, Array, Boolean]),
1055
+ __metadata("design:returntype", Promise)
1056
+ ], InventoryHistoryQuery.prototype, "onhandInventories", null);
1057
+ __decorate([
1058
+ (0, type_graphql_1.FieldResolver)(type => shell_1.Domain),
1059
+ __param(0, (0, type_graphql_1.Root)()),
1060
+ __metadata("design:type", Function),
1061
+ __metadata("design:paramtypes", [inventory_history_1.InventoryHistory]),
1062
+ __metadata("design:returntype", Promise)
1063
+ ], InventoryHistoryQuery.prototype, "domain", null);
1064
+ __decorate([
1065
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
1066
+ __param(0, (0, type_graphql_1.Root)()),
1067
+ __metadata("design:type", Function),
1068
+ __metadata("design:paramtypes", [inventory_history_1.InventoryHistory]),
1069
+ __metadata("design:returntype", Promise)
1070
+ ], InventoryHistoryQuery.prototype, "updater", null);
1071
+ __decorate([
1072
+ (0, type_graphql_1.FieldResolver)(type => auth_base_1.User),
1073
+ __param(0, (0, type_graphql_1.Root)()),
1074
+ __metadata("design:type", Function),
1075
+ __metadata("design:paramtypes", [inventory_history_1.InventoryHistory]),
1076
+ __metadata("design:returntype", Promise)
1077
+ ], InventoryHistoryQuery.prototype, "creator", null);
1078
+ InventoryHistoryQuery = __decorate([
1079
+ (0, type_graphql_1.Resolver)(inventory_history_1.InventoryHistory)
1080
+ ], InventoryHistoryQuery);
1081
+ exports.InventoryHistoryQuery = InventoryHistoryQuery;
1082
+ async function massageInventorySummary(tx, params, bizplace, context) {
1083
+ await productsQuery(tx, params, bizplace);
1084
+ await filterInventoryQuery(tx, params, bizplace, context);
1085
+ let fromDate = params.filters.find(data => data.name === 'fromDate');
1086
+ let hasTransactionOrBalanceFilter = params.filters.find(data => data.name === 'hasTransactionOrBalance');
1087
+ let hasTransactionOrBalanceQuery = '';
1088
+ if (hasTransactionOrBalanceFilter && hasTransactionOrBalanceFilter.value) {
1089
+ hasTransactionOrBalanceQuery = 'and (opening_qty > 0 or total_in_qty > 0 or adjustment_qty > 0)';
1090
+ }
1091
+ await tx.query(`
1092
+ create temp table temp_inventory_summary ON COMMIT DROP as (
1093
+ select src.*,
1094
+ opening_qty + adjustment_qty + total_in_qty + total_out_qty as closing_qty
1095
+ from (
1096
+ 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,
1097
+ sum(case when ih.created_at >= $1 and ih.transaction_type = 'ADJUSTMENT' then ih.qty else 0 end) as adjustment_qty,
1098
+ sum(case when ih.created_at < $1 then qty else 0 end) as opening_qty,
1099
+ 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,
1100
+ 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,
1101
+ ih.product_id
1102
+ from temp_inv_history ih
1103
+ inner join temp_products prd on prd.id = ih.product_id
1104
+ group by prd.sku, prd.name, prd.description, prd.type, ih.product_id, ih.packing_type, ih.packing_size
1105
+ ) src
1106
+ where 1=1
1107
+ ${hasTransactionOrBalanceQuery}
1108
+ )
1109
+ `, [fromDate.value]);
1110
+ const total = await tx.query(`select count(*) from temp_inventory_summary`);
1111
+ const result = await tx.query(`
1112
+ select * from temp_inventory_summary ORDER BY product_name, product_description, product_type, packing_type, packing_size OFFSET $1 LIMIT $2
1113
+ `, [(params.pagination.page - 1) * params.pagination.limit, params.pagination.limit]);
1114
+ return [result, total];
1115
+ }
1116
+ async function massageInventoryPalletSummary(tx, params, bizplace, context) {
1117
+ await productsQuery(tx, params, bizplace);
1118
+ await filterInventoryQuery(tx, params, bizplace, context);
1119
+ let fromDate = params.filters.find(data => data.name === 'fromDate');
1120
+ let toDate = params.filters.find(data => data.name === 'toDate');
1121
+ let hasTransactionOrBalanceFilter = params.filters.find(data => data.name === 'hasTransactionOrBalance');
1122
+ let hasTransactionOrBalanceQuery = '';
1123
+ if (hasTransactionOrBalanceFilter && hasTransactionOrBalanceFilter.value) {
1124
+ hasTransactionOrBalanceQuery = 'and (opening_qty > 0 or total_in_qty > 0 or adjustment_qty > 0)';
1125
+ }
1126
+ await tx.query(`
1127
+ create temp table temp_inventory_pallet_summary ON COMMIT DROP as (
1128
+ select invh.*,
1129
+ invh.opening_qty + invh.total_in_qty + invh.total_out_qty + invh.adjustment_qty as closing_qty from (
1130
+ select product_sku, product_id, product_name, product_description, product_type,
1131
+ SUM(case when invHistory.created_at < $1 then
1132
+ case when invHistory.status = 'STORED' then 1
1133
+ when invhistory.status = 'TERMINATED' then -1
1134
+ else 0 end
1135
+ else 0 end) as opening_qty,
1136
+ SUM(case when invHistory.created_at >= $1 and invHistory.created_at <= $2 then
1137
+ case when (invHistory.transaction_type = 'UNLOADING' or invHistory.transaction_type = 'NEW') then 1 else 0 end
1138
+ else 0 end) as total_in_qty,
1139
+ SUM(case when invHistory.created_at >= $1 and invHistory.created_at <= $2 then
1140
+ case when invHistory.status = 'TERMINATED' AND invHistory.transaction_type <> 'ADJUSTMENT' then -1 else 0 end
1141
+ else 0 end) as total_out_qty,
1142
+ SUM(case when invHistory.created_at >= $1 and invHistory.created_at <= $2 then
1143
+ case when invHistory.status = 'TERMINATED' AND invHistory.transaction_type = 'ADJUSTMENT' then -1
1144
+ when invHistory.status = 'STORED' AND invHistory.transaction_type = 'ADJUSTMENT' then 1 else 0 end
1145
+ else 0 end) as adjustment_qty
1146
+ from(
1147
+ select pallet_id, seq, status, transaction_type, product_sku, product_id, product_name, product_description, product_type,
1148
+ inventory_history_id, packing_type, packing_size, qty, opening_qty, created_at from (
1149
+ select row_number() over(partition by invh.pallet_id order by invh.created_at asc) as rn, invh.* ,
1150
+ prd.sku as product_sku, prd.name as product_name, prd.description as product_description, prd.type AS product_type
1151
+ from temp_inv_history invh
1152
+ inner join temp_products prd on prd.id = invh.product_id
1153
+ where (transaction_type = 'UNLOADING' or invh.transaction_type = 'NEW')
1154
+ and invh.created_at >= $1
1155
+ ) as invIn where rn = 1
1156
+ union all
1157
+ select pallet_id, seq, status, transaction_type, product_sku, product_id, product_name, product_description, product_type,
1158
+ inventory_history_id, packing_type, packing_size, qty, opening_qty, created_at from (
1159
+ SELECT row_number() over(partition by pallet_id, invh.product_id order by seq asc) as rn,
1160
+ invh.pallet_id, invh.product_id, invh.packing_type, invh.packing_size,
1161
+ invh.batch_id, invh.inventory_history_id,
1162
+ invh.seq, 'STORED' AS status, invh.transaction_type, invh.qty, invh.opening_qty,
1163
+ invh.created_at,
1164
+ prd.sku as product_sku, prd.name as product_name, prd.description as product_description, prd.type AS product_type
1165
+ from temp_inv_history invh
1166
+ inner join temp_products prd on prd.id = invh.product_id
1167
+ where invh.created_at < $1
1168
+ and (invh.status = 'STORED' or invh.status = 'UNLOADED')
1169
+ ) as invStored where rn = 1
1170
+ union all
1171
+ select pallet_id, seq, status, transaction_type, product_sku, product_id, product_name, product_description, product_type,
1172
+ inventory_history_id, packing_type, packing_size, qty, opening_qty, started_at as created_at from (
1173
+ select row_number() over(partition by invh.pallet_id, invh.product_id order by invh.seq desc) as rn, invh.*,
1174
+ prd.sku as product_sku, prd.name as product_name, prd.description as product_description, prd.type AS product_type, repeatedGroup.started_at
1175
+ from temp_inv_history invh
1176
+ inner join (
1177
+ 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 (
1178
+ select startData.*, sum(startflag) over (partition by pallet_id order by seq) as grp from (
1179
+ select s.*,
1180
+ (case when lag(status) over (partition by pallet_id order by seq) = status then 0 else 1 end) as startflag
1181
+ from temp_inv_history s
1182
+ ) startData
1183
+ ) endData
1184
+ group by pallet_id, grp, status
1185
+ ) repeatedGroup on repeatedGroup.pallet_id = invh.pallet_id and repeatedGroup.min_seq <= invh.seq and repeatedGroup.max_seq >= invh.seq
1186
+ inner join temp_products prd on prd.id = invh.product_id
1187
+ ) as invOut where rn = 1 AND status ='TERMINATED'
1188
+ union all
1189
+ SELECT invh.pallet_id, invh.seq, invh.status, invh.transaction_type,
1190
+ prd.sku AS product_sku, invh.product_id, prd.name AS product_name, prd.description AS product_description, prd.type AS product_type,
1191
+ invh.inventory_history_id, invh.packing_type, invh.packing_size, invh.qty, invh.opening_qty, invh.created_at
1192
+ FROM temp_inv_history invh
1193
+ INNER JOIN (
1194
+ SELECT invh.pallet_id, invh.seq AS stored_seq, invh2.seq AS terminated_seq FROM temp_inv_history invh
1195
+ 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
1196
+ WHERE invh.transaction_type = 'ADJUSTMENT'
1197
+ ) dt ON dt.pallet_id = invh.pallet_id AND (dt.stored_seq = invh.seq OR dt.terminated_seq = invh.seq)
1198
+ inner join temp_products prd on prd.id = invh.product_id
1199
+ where invh.created_at >= $1
1200
+ ORDER BY product_name, pallet_id, seq
1201
+ ) as invHistory
1202
+ group by product_sku, product_id, product_name, product_description, product_type
1203
+ ) invh
1204
+ where 1=1
1205
+ ${hasTransactionOrBalanceQuery}
1206
+ )
1207
+ `, [fromDate.value, toDate.value]);
1208
+ const total = await tx.query(`select count(*) as count, sum(total_in_qty) as totalInQty, sum(opening_qty) as totalOpeningBal from temp_inventory_pallet_summary`);
1209
+ const result = await tx.query(`
1210
+ select *, 'PALLET' as packing_type from temp_inventory_pallet_summary ORDER BY product_name, product_description OFFSET $1 LIMIT $2
1211
+ `, [(params.pagination.page - 1) * params.pagination.limit, params.pagination.limit]);
1212
+ return [result, total];
1213
+ }
1214
+ async function productsQuery(tx, params, bizplace) {
1215
+ let product = params.filters.find(data => data.name === 'product');
1216
+ let productDesc = params.filters.find(data => data.name === 'productDescription');
1217
+ let productType = params.filters.find(data => data.name === 'productType');
1218
+ let productQuery = '';
1219
+ if (product) {
1220
+ let productValue = product.value
1221
+ .toLowerCase()
1222
+ .split(',')
1223
+ .map(prod => {
1224
+ return "'%" + prod.trim().replace(/'/g, "''") + "%'";
1225
+ })
1226
+ .join(',');
1227
+ productQuery = `AND (
1228
+ Lower(prd.name) LIKE ANY(ARRAY[${productValue}])
1229
+ OR Lower(prd.sku) LIKE ANY(ARRAY[${productValue}])
1230
+ OR Lower(prd.description) LIKE ANY(ARRAY[${productValue}])
1231
+ )`;
1232
+ }
1233
+ let productDescQuery = '';
1234
+ if (productDesc) {
1235
+ productDescQuery = "AND Lower(prd.description) LIKE '%" + productDesc.value.toLowerCase() + "%'";
1236
+ }
1237
+ let productTypeQuery = '';
1238
+ if (productType) {
1239
+ productTypeQuery = "AND prd.type = '" + productType.value + "'";
1240
+ }
1241
+ await tx.query(`
1242
+ create temp table temp_products ON COMMIT DROP AS
1243
+ (
1244
+ select prd.id, prd.name, prd.sku, prd.description, prd.id::varchar as product_id, prd.type from products prd
1245
+ inner join bizplaces b on b.id = prd.bizplace_id
1246
+ inner join companies c on c.domain_id = b.domain_id
1247
+ inner join bizplaces b2 on b2.company_id = c.id
1248
+ where b2.id = $1
1249
+ ${productQuery}
1250
+ ${productDescQuery}
1251
+ ${productTypeQuery}
1252
+ GROUP BY prd.id, prd.sku, prd.name, prd.description
1253
+ )`, [bizplace.id]);
1254
+ }
1255
+ async function filterInventoryQuery(tx, params, bizplace, context) {
1256
+ let toDate = params.filters.find(data => data.name === 'toDate');
1257
+ let batchNo = params.filters.find(data => data.name === 'batchNo');
1258
+ let batchNoQuery = '';
1259
+ if (batchNo) {
1260
+ batchNoQuery =
1261
+ 'AND Lower(ih.batch_id) LIKE ANY(ARRAY[' +
1262
+ batchNo.value
1263
+ .toLowerCase()
1264
+ .split(',')
1265
+ .map(prod => {
1266
+ return "'%" + prod.trim().replace(/'/g, "''") + "%'";
1267
+ })
1268
+ .join(',') +
1269
+ '])';
1270
+ }
1271
+ await tx.query(`
1272
+ create temp table temp_inv_history ON COMMIT DROP as (
1273
+ select i2.pallet_id, ih.product_id::uuid, ih.packing_type, i2.packing_size, ih.batch_id,
1274
+ ih.id as inventory_history_id, ih.seq, ih.status, ih.transaction_type, ih.qty, ih.opening_qty, ih.created_at
1275
+ from inventories i2
1276
+ inner join reduced_inventory_histories ih on ih.pallet_id = i2.pallet_id and ih.domain_id = i2.domain_id
1277
+ where
1278
+ i2.domain_id = $1
1279
+ and i2.bizplace_id = $2
1280
+ and ih.created_at <= $3
1281
+ ${batchNoQuery}
1282
+ )
1283
+ `, [context.state.domain.id, bizplace.id, toDate.value]);
1284
+ }
1285
+ //# sourceMappingURL=inventory-history-query.js.map