@things-factory/operato-wms 6.2.101 → 6.2.102

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 (186) hide show
  1. package/package.json +4 -4
  2. package/dist-server/graphql/index.js +0 -11
  3. package/dist-server/graphql/index.js.map +0 -1
  4. package/dist-server/graphql/resolvers/board-setting/board-settings.js +0 -76
  5. package/dist-server/graphql/resolvers/board-setting/board-settings.js.map +0 -1
  6. package/dist-server/graphql/resolvers/board-setting/index.js +0 -6
  7. package/dist-server/graphql/resolvers/board-setting/index.js.map +0 -1
  8. package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-collection-report.js +0 -87
  9. package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-collection-report.js.map +0 -1
  10. package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-order-inventory-report.js +0 -138
  11. package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-order-inventory-report.js.map +0 -1
  12. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-pallet-detail-report.js +0 -124
  13. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-pallet-detail-report.js.map +0 -1
  14. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.js +0 -158
  15. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.js.map +0 -1
  16. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-summary-report.js +0 -90
  17. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-summary-report.js.map +0 -1
  18. package/dist-server/graphql/resolvers/custom/elccl/elccl-onhand-inventory-counter.js +0 -36
  19. package/dist-server/graphql/resolvers/custom/elccl/elccl-onhand-inventory-counter.js.map +0 -1
  20. package/dist-server/graphql/resolvers/custom/elccl/index.js +0 -11
  21. package/dist-server/graphql/resolvers/custom/elccl/index.js.map +0 -1
  22. package/dist-server/graphql/resolvers/custom/kimeda/index.js +0 -6
  23. package/dist-server/graphql/resolvers/custom/kimeda/index.js.map +0 -1
  24. package/dist-server/graphql/resolvers/custom/kimeda/kimeda-onhand-inventory-counter.js +0 -42
  25. package/dist-server/graphql/resolvers/custom/kimeda/kimeda-onhand-inventory-counter.js.map +0 -1
  26. package/dist-server/graphql/resolvers/dashboard/arrival-notices-by-status.js +0 -35
  27. package/dist-server/graphql/resolvers/dashboard/arrival-notices-by-status.js.map +0 -1
  28. package/dist-server/graphql/resolvers/dashboard/collection-orders-by-status.js +0 -23
  29. package/dist-server/graphql/resolvers/dashboard/collection-orders-by-status.js.map +0 -1
  30. package/dist-server/graphql/resolvers/dashboard/delivery-orders-by-status.js +0 -23
  31. package/dist-server/graphql/resolvers/dashboard/delivery-orders-by-status.js.map +0 -1
  32. package/dist-server/graphql/resolvers/dashboard/index.js +0 -12
  33. package/dist-server/graphql/resolvers/dashboard/index.js.map +0 -1
  34. package/dist-server/graphql/resolvers/dashboard/inventory-expiry-monitor.js +0 -56
  35. package/dist-server/graphql/resolvers/dashboard/inventory-expiry-monitor.js.map +0 -1
  36. package/dist-server/graphql/resolvers/dashboard/outbound-order-by-status.js +0 -124
  37. package/dist-server/graphql/resolvers/dashboard/outbound-order-by-status.js.map +0 -1
  38. package/dist-server/graphql/resolvers/dashboard/release-goods-by-status.js +0 -35
  39. package/dist-server/graphql/resolvers/dashboard/release-goods-by-status.js.map +0 -1
  40. package/dist-server/graphql/resolvers/dashboard/unit-inbounded-outbounded.js +0 -56
  41. package/dist-server/graphql/resolvers/dashboard/unit-inbounded-outbounded.js.map +0 -1
  42. package/dist-server/graphql/resolvers/index.js +0 -27
  43. package/dist-server/graphql/resolvers/index.js.map +0 -1
  44. package/dist-server/graphql/resolvers/inventory-comparison/index.js +0 -6
  45. package/dist-server/graphql/resolvers/inventory-comparison/index.js.map +0 -1
  46. package/dist-server/graphql/resolvers/inventory-comparison/inventory-comparison-list.js +0 -78
  47. package/dist-server/graphql/resolvers/inventory-comparison/inventory-comparison-list.js.map +0 -1
  48. package/dist-server/graphql/resolvers/opa-menu/index.js +0 -6
  49. package/dist-server/graphql/resolvers/opa-menu/index.js.map +0 -1
  50. package/dist-server/graphql/resolvers/opa-menu/opa-menus.js +0 -71
  51. package/dist-server/graphql/resolvers/opa-menu/opa-menus.js.map +0 -1
  52. package/dist-server/graphql/resolvers/other/add-release-good-products.js +0 -291
  53. package/dist-server/graphql/resolvers/other/add-release-good-products.js.map +0 -1
  54. package/dist-server/graphql/resolvers/other/index.js +0 -8
  55. package/dist-server/graphql/resolvers/other/index.js.map +0 -1
  56. package/dist-server/graphql/resolvers/other/page-settings.js +0 -87
  57. package/dist-server/graphql/resolvers/other/page-settings.js.map +0 -1
  58. package/dist-server/graphql/resolvers/reports/costing-report.js +0 -172
  59. package/dist-server/graphql/resolvers/reports/costing-report.js.map +0 -1
  60. package/dist-server/graphql/resolvers/reports/inbound-order-details-report.js +0 -200
  61. package/dist-server/graphql/resolvers/reports/inbound-order-details-report.js.map +0 -1
  62. package/dist-server/graphql/resolvers/reports/inbound-serial-number-report.js +0 -140
  63. package/dist-server/graphql/resolvers/reports/inbound-serial-number-report.js.map +0 -1
  64. package/dist-server/graphql/resolvers/reports/index.js +0 -12
  65. package/dist-server/graphql/resolvers/reports/index.js.map +0 -1
  66. package/dist-server/graphql/resolvers/reports/outbound-order-details-report.js +0 -232
  67. package/dist-server/graphql/resolvers/reports/outbound-order-details-report.js.map +0 -1
  68. package/dist-server/graphql/resolvers/reports/outbound-serial-number-report.js +0 -143
  69. package/dist-server/graphql/resolvers/reports/outbound-serial-number-report.js.map +0 -1
  70. package/dist-server/graphql/resolvers/reports/product-label-report.js +0 -57
  71. package/dist-server/graphql/resolvers/reports/product-label-report.js.map +0 -1
  72. package/dist-server/graphql/resolvers/reports/release-inventory-report.js +0 -180
  73. package/dist-server/graphql/resolvers/reports/release-inventory-report.js.map +0 -1
  74. package/dist-server/graphql/resolvers/shipping-provider/index.js +0 -6
  75. package/dist-server/graphql/resolvers/shipping-provider/index.js.map +0 -1
  76. package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js +0 -20
  77. package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js.map +0 -1
  78. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/index.js +0 -6
  79. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/index.js.map +0 -1
  80. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.js +0 -65
  81. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.js.map +0 -1
  82. package/dist-server/graphql/types/board-setting/board-setting.js +0 -14
  83. package/dist-server/graphql/types/board-setting/board-setting.js.map +0 -1
  84. package/dist-server/graphql/types/board-setting/index.js +0 -9
  85. package/dist-server/graphql/types/board-setting/index.js.map +0 -1
  86. package/dist-server/graphql/types/custom/elccl/elccl-daily-collection-report-list.js +0 -12
  87. package/dist-server/graphql/types/custom/elccl/elccl-daily-collection-report-list.js.map +0 -1
  88. package/dist-server/graphql/types/custom/elccl/elccl-daily-collection-report.js +0 -28
  89. package/dist-server/graphql/types/custom/elccl/elccl-daily-collection-report.js.map +0 -1
  90. package/dist-server/graphql/types/custom/elccl/elccl-daily-order-inventory-report-list.js +0 -12
  91. package/dist-server/graphql/types/custom/elccl/elccl-daily-order-inventory-report-list.js.map +0 -1
  92. package/dist-server/graphql/types/custom/elccl/elccl-daily-order-inventory-report.js +0 -23
  93. package/dist-server/graphql/types/custom/elccl/elccl-daily-order-inventory-report.js.map +0 -1
  94. package/dist-server/graphql/types/custom/elccl/elccl-inventory-report.js +0 -20
  95. package/dist-server/graphql/types/custom/elccl/elccl-inventory-report.js.map +0 -1
  96. package/dist-server/graphql/types/custom/elccl/elccl-inventory-summary-report-list.js +0 -12
  97. package/dist-server/graphql/types/custom/elccl/elccl-inventory-summary-report-list.js.map +0 -1
  98. package/dist-server/graphql/types/custom/elccl/elccl-inventory-summary-report.js +0 -21
  99. package/dist-server/graphql/types/custom/elccl/elccl-inventory-summary-report.js.map +0 -1
  100. package/dist-server/graphql/types/custom/elccl/elccl-pallet-detail-report.js +0 -20
  101. package/dist-server/graphql/types/custom/elccl/elccl-pallet-detail-report.js.map +0 -1
  102. package/dist-server/graphql/types/custom/elccl/index.js +0 -30
  103. package/dist-server/graphql/types/custom/elccl/index.js.map +0 -1
  104. package/dist-server/graphql/types/custom/kimeda/index.js +0 -7
  105. package/dist-server/graphql/types/custom/kimeda/index.js.map +0 -1
  106. package/dist-server/graphql/types/dashboard/index.js +0 -17
  107. package/dist-server/graphql/types/dashboard/index.js.map +0 -1
  108. package/dist-server/graphql/types/dashboard/inventory-expiry-counter.js +0 -13
  109. package/dist-server/graphql/types/dashboard/inventory-expiry-counter.js.map +0 -1
  110. package/dist-server/graphql/types/dashboard/inventory-expiry-status.js +0 -12
  111. package/dist-server/graphql/types/dashboard/inventory-expiry-status.js.map +0 -1
  112. package/dist-server/graphql/types/dashboard/order-status-counter.js +0 -12
  113. package/dist-server/graphql/types/dashboard/order-status-counter.js.map +0 -1
  114. package/dist-server/graphql/types/index.js +0 -40
  115. package/dist-server/graphql/types/index.js.map +0 -1
  116. package/dist-server/graphql/types/inventory-comparison/index.js +0 -13
  117. package/dist-server/graphql/types/inventory-comparison/index.js.map +0 -1
  118. package/dist-server/graphql/types/inventory-comparison/inventory-comparison-list.js +0 -12
  119. package/dist-server/graphql/types/inventory-comparison/inventory-comparison-list.js.map +0 -1
  120. package/dist-server/graphql/types/inventory-comparison/inventory-comparison.js +0 -16
  121. package/dist-server/graphql/types/inventory-comparison/inventory-comparison.js.map +0 -1
  122. package/dist-server/graphql/types/opa-menu/index.js +0 -9
  123. package/dist-server/graphql/types/opa-menu/index.js.map +0 -1
  124. package/dist-server/graphql/types/opa-menu/opa-menu.js +0 -43
  125. package/dist-server/graphql/types/opa-menu/opa-menu.js.map +0 -1
  126. package/dist-server/graphql/types/other/index.js +0 -19
  127. package/dist-server/graphql/types/other/index.js.map +0 -1
  128. package/dist-server/graphql/types/other/page-setting.js +0 -34
  129. package/dist-server/graphql/types/other/page-setting.js.map +0 -1
  130. package/dist-server/graphql/types/reports/costing-report-list.js +0 -12
  131. package/dist-server/graphql/types/reports/costing-report-list.js.map +0 -1
  132. package/dist-server/graphql/types/reports/costing-report.js +0 -17
  133. package/dist-server/graphql/types/reports/costing-report.js.map +0 -1
  134. package/dist-server/graphql/types/reports/inbound-order-details-report-list.js +0 -12
  135. package/dist-server/graphql/types/reports/inbound-order-details-report-list.js.map +0 -1
  136. package/dist-server/graphql/types/reports/inbound-order-details-report.js +0 -57
  137. package/dist-server/graphql/types/reports/inbound-order-details-report.js.map +0 -1
  138. package/dist-server/graphql/types/reports/inbound-serial-number-report-list.js +0 -12
  139. package/dist-server/graphql/types/reports/inbound-serial-number-report-list.js.map +0 -1
  140. package/dist-server/graphql/types/reports/inbound-serial-number-report.js +0 -21
  141. package/dist-server/graphql/types/reports/inbound-serial-number-report.js.map +0 -1
  142. package/dist-server/graphql/types/reports/index.js +0 -43
  143. package/dist-server/graphql/types/reports/index.js.map +0 -1
  144. package/dist-server/graphql/types/reports/outbound-order-details-report-list.js +0 -12
  145. package/dist-server/graphql/types/reports/outbound-order-details-report-list.js.map +0 -1
  146. package/dist-server/graphql/types/reports/outbound-order-details-report.js +0 -74
  147. package/dist-server/graphql/types/reports/outbound-order-details-report.js.map +0 -1
  148. package/dist-server/graphql/types/reports/outbound-serial-number-report-list.js +0 -12
  149. package/dist-server/graphql/types/reports/outbound-serial-number-report-list.js.map +0 -1
  150. package/dist-server/graphql/types/reports/outbound-serial-number-report.js +0 -23
  151. package/dist-server/graphql/types/reports/outbound-serial-number-report.js.map +0 -1
  152. package/dist-server/graphql/types/reports/product-label-report-list.js +0 -12
  153. package/dist-server/graphql/types/reports/product-label-report-list.js.map +0 -1
  154. package/dist-server/graphql/types/reports/product-label-report.js +0 -14
  155. package/dist-server/graphql/types/reports/product-label-report.js.map +0 -1
  156. package/dist-server/graphql/types/reports/release-inventory-report-list.js +0 -12
  157. package/dist-server/graphql/types/reports/release-inventory-report-list.js.map +0 -1
  158. package/dist-server/graphql/types/reports/release-inventory-report.js +0 -27
  159. package/dist-server/graphql/types/reports/release-inventory-report.js.map +0 -1
  160. package/dist-server/graphql/types/shipping-provider/index.js +0 -10
  161. package/dist-server/graphql/types/shipping-provider/index.js.map +0 -1
  162. package/dist-server/graphql/types/shipping-provider/shipping-provider-list.js +0 -11
  163. package/dist-server/graphql/types/shipping-provider/shipping-provider-list.js.map +0 -1
  164. package/dist-server/graphql/types/shipping-provider/shipping-provider.js +0 -11
  165. package/dist-server/graphql/types/shipping-provider/shipping-provider.js.map +0 -1
  166. package/dist-server/graphql/types/warehouse-inventory-adjustment/index.js +0 -9
  167. package/dist-server/graphql/types/warehouse-inventory-adjustment/index.js.map +0 -1
  168. package/dist-server/index.js +0 -7
  169. package/dist-server/index.js.map +0 -1
  170. package/dist-server/migrations/1568858861188-SeedSetting.js +0 -51
  171. package/dist-server/migrations/1568858861188-SeedSetting.js.map +0 -1
  172. package/dist-server/migrations/1623308919899-SeedLocationRecommendSetting.js +0 -35
  173. package/dist-server/migrations/1623308919899-SeedLocationRecommendSetting.js.map +0 -1
  174. package/dist-server/migrations/1623381200659-SeedStoringRule.js +0 -33
  175. package/dist-server/migrations/1623381200659-SeedStoringRule.js.map +0 -1
  176. package/dist-server/migrations/index.js +0 -12
  177. package/dist-server/migrations/index.js.map +0 -1
  178. package/dist-server/opa-app-setting-constants.js +0 -13
  179. package/dist-server/opa-app-setting-constants.js.map +0 -1
  180. package/dist-server/routes.js +0 -2
  181. package/dist-server/routes.js.map +0 -1
  182. package/dist-server/tsconfig.tsbuildinfo +0 -1
  183. package/dist-server/utils/index.js +0 -5
  184. package/dist-server/utils/index.js.map +0 -1
  185. package/dist-server/utils/report-query-util.js +0 -42
  186. package/dist-server/utils/report-query-util.js.map +0 -1
@@ -1,172 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.costingReport = void 0;
4
- const auth_base_1 = require("@things-factory/auth-base");
5
- const biz_base_1 = require("@things-factory/biz-base");
6
- const utils_1 = require("../../../utils");
7
- exports.costingReport = {
8
- async costingReport(_, params, context) {
9
- try {
10
- const { tx } = context.state;
11
- let bizplaceFilter = { name: '', operator: '', value: '' };
12
- let userFilter = params.filters.find(data => data.name === 'user');
13
- let fromDate = params.filters.find(data => data.name === 'fromDate');
14
- let toDate = params.filters.find(data => data.name === 'toDate');
15
- if (userFilter) {
16
- const user = (await tx.getRepository(auth_base_1.User).findOne({
17
- where: { id: userFilter.value },
18
- relations: ['bizplaces']
19
- }));
20
- const bizplace = user.bizplaces[0];
21
- if (!bizplace)
22
- throw 'Invalid input';
23
- bizplaceFilter = { name: 'bizplace', operator: 'eq', value: bizplace.id };
24
- }
25
- else {
26
- bizplaceFilter = params.filters.find(data => data.name === 'bizplace');
27
- }
28
- if (!bizplaceFilter || !fromDate || !toDate)
29
- throw 'Invalid input';
30
- const bizplace = await tx.getRepository(biz_base_1.Bizplace).findOneBy({
31
- id: bizplaceFilter.value
32
- });
33
- await (0, utils_1.rawProductsQuery)(tx, params, bizplace);
34
- await tx.query(`
35
- create temp table tmp_outbound_ord on commit drop as (
36
- select p.sku, rih.domain_id, rih.bizplace_id, rih.product_id, rih.packing_type, rih.packing_size, coalesce(rih.uom, pd.uom, pd2.uom) as uom,
37
- sum(rih.qty) as total_picked_qty, sum(rih.uom_value) as total_picked_uom_value
38
- from reduced_inventory_histories rih
39
- inner join inventories inv on inv.domain_id = rih.domain_id and inv.pallet_id = rih.pallet_id
40
- left join product_details pd on pd.product_id = rih.product_id and pd.packing_type = rih.packing_type and pd.packing_size = rih.packing_size
41
- left join product_details pd2 on pd2.product_id = rih.product_id and pd2.is_default = true
42
- left join products p on p.id = rih.product_id
43
- where rih.domain_id = $1
44
- and inv.bizplace_id = $2
45
- and rih.created_at >= $3 and rih.created_at <= $4
46
- and rih.transaction_type = 'PICKING'
47
- group by p.sku, rih.domain_id, rih.bizplace_id, rih.product_id, rih.packing_type, rih.packing_size, coalesce(rih.uom, pd.uom, pd2.uom)
48
- );
49
- `, [context.state.domain.id, bizplace.id, fromDate.value, toDate.value]);
50
- await tx.query(`
51
- create temp table tmp_stored_inv on commit drop as (
52
- select src2.sku, src2.domain_id, src2.bizplace_id, src2.pallet_id, src2.product_id, src2.packing_type, src2.packing_size, src2.uom,
53
- to_char(src2.created_at, 'YYYY-MM') as created_year_month, sum(closing_qty) as closing_qty from (
54
- select distinct on (rih.pallet_id) p.sku, rih.domain_id, rih.bizplace_id, rih.pallet_id, rih.product_id, rih.packing_type, rih.packing_size,
55
- coalesce(rih.uom, pd.uom, pd2.uom) as uom,
56
- rih.created_at, rih.transaction_type, rih.status, rih.opening_qty + rih.qty as closing_qty
57
- from reduced_inventory_histories rih
58
- inner join inventories i on i.domain_id = rih.domain_id and i.pallet_id = rih.pallet_id
59
- left join product_details pd on pd.product_id = rih.product_id and pd.packing_type = rih.packing_type and pd.packing_size = rih.packing_size
60
- left join product_details pd2 on pd2.product_id = rih.product_id and pd2.is_default = true
61
- left join products p on p.id = rih.product_id
62
- where rih.domain_id = $1
63
- and i.bizplace_id = $2
64
- and rih.created_at <= $3
65
- order by rih.pallet_id, rih.seq desc
66
- ) src2 where src2.status <> 'TERMINATED'
67
- and exists (
68
- select * from tmp_outbound_ord outboundOrd
69
- where outboundOrd.domain_id = src2.domain_id
70
- and outboundOrd.bizplace_id = src2.bizplace_id
71
- and outboundOrd.product_id = src2.product_id
72
- and outboundOrd.packing_type = src2.packing_type
73
- and outboundOrd.packing_size = src2.packing_size
74
- and outboundOrd.uom = src2.uom
75
- )
76
- group by src2.sku, src2.domain_id, src2.bizplace_id, src2.pallet_id, src2.product_id, src2.packing_type, src2.packing_size, src2.uom, to_char(src2.created_at, 'YYYY-MM')
77
- );
78
- `, [context.state.domain.id, bizplace.id, toDate.value]);
79
- await tx.query(`
80
- create temp table temp_costing_report on commit drop as (
81
- WITH RECURSIVE cte_forwarded_cost as (
82
- select src.domain_id, src.bizplace_id, src.product_id, src.packing_type, src.packing_size, src.uom, TO_DATE(src.created_year_month,'YYYY-MM')::timestamp as running_year_month,
83
- sum(src.qty) as qty, sum(src.total_cost)/ sum(src.qty) as monthly_avg_cost,
84
- coalesce(sum(src.qty)) as closing_qty from (
85
- select distinct on (pallet_id)
86
- ih.domain_id, ih.bizplace_id, ih.pallet_id, ih.unit_cost, (ih.unit_cost * (ih.opening_qty + ih.qty)) as total_cost, ih.status, ih.transaction_type, ih.product_id, ih.packing_type, ih.packing_size, coalesce(ih.uom, pd.uom) as uom,
87
- ih.created_at, to_char(ih.created_at, 'YYYY-MM') as created_year_month,
88
- ih.opening_qty,
89
- ih.qty as transaction_qty,
90
- ih.opening_qty + ih.qty as qty,
91
- ih.opening_uom_value,
92
- ih.uom_value as transaction_uom_value,
93
- ih.opening_uom_value + ih.uom_value as uom_value
94
- from reduced_inventory_histories ih
95
- inner join inventories i on i.domain_id = ih.domain_id and i.pallet_id = ih.pallet_id
96
- left join product_details pd on pd.product_id = ih.product_id and pd.packing_type = ih.packing_type and pd.packing_size = ih.packing_size
97
- where ih.domain_id = $1
98
- and i.bizplace_id = $2
99
- and ih.created_at <= $3 and ih.unit_cost is not null
100
- and exists (
101
- select * from tmp_outbound_ord outboundOrd
102
- where outboundOrd.domain_id = ih.domain_id
103
- and outboundOrd.bizplace_id = ih.bizplace_id
104
- and outboundOrd.product_id = ih.product_id
105
- and outboundOrd.packing_type = ih.packing_type
106
- and outboundOrd.packing_size = ih.packing_size
107
- and outboundOrd.uom = ih.uom
108
- )
109
- order by ih.pallet_id, ih.seq
110
- ) src
111
- group by src.domain_id, src.bizplace_id, src.product_id, src.packing_type, src.packing_size, src.uom, src.created_year_month
112
- union all
113
- select dt1.domain_id, dt1.bizplace_id, dt1.product_id, dt1.packing_type, dt1.packing_size, dt1.uom,
114
- dt1.running_year_month + interval '1 month' as running_year_month, dt1.qty, dt1.monthly_avg_cost, dt1.closing_qty
115
- from cte_forwarded_cost dt1
116
- where dt1.running_year_month + interval '1 month' < $3
117
- ) select fc.*, -outboundord.total_picked_qty as "qty", -outboundord.total_picked_uom_value as "uom_value", (-outboundord.total_picked_qty * fc.weighted_avg_unit_cost) as "total_cost" from (
118
- select p.sku as "product_sku", p."name" as "product_name", p.description as "product_description", p."type" as "product_type",
119
- fc.domain_id, fc.bizplace_id, fc.product_id, fc.packing_type, fc.packing_size, fc.uom, fc.running_year_month,
120
- ROUND(cast(sum(fc.monthly_avg_cost * fc.closing_qty) / sum(fc.qty) as numeric),2) as "weighted_avg_unit_cost"
121
- from cte_forwarded_cost fc
122
- left join products p on p.id = fc.product_id
123
- where running_year_month = to_date(to_char($3::date, 'YYYY-MM'),'YYYY-MM')::timestamp
124
- group by p.sku, p."name", p.description, p."type", fc.domain_id, fc.bizplace_id, fc.product_id, fc.packing_type, fc.packing_size, fc.uom, fc.running_year_month
125
- ) fc
126
- left join tmp_outbound_ord outboundord on outboundord.domain_id = fc.domain_id
127
- and outboundord.bizplace_id = fc.bizplace_id
128
- and outboundord.product_id = fc.product_id
129
- and outboundord.packing_type = fc.packing_type
130
- and outboundord.packing_size = fc.packing_size
131
- and outboundord.uom = fc.uom
132
- );
133
- `, [context.state.domain.id, bizplace.id, toDate.value]);
134
- const total = await tx.query(`
135
- select count(*) from temp_costing_report
136
- `);
137
- const result = await tx.query(`
138
- select * from temp_costing_report
139
- offset $1 limit $2
140
- `, [(params.pagination.page - 1) * params.pagination.limit, params.pagination.limit]);
141
- let items = result.map(itm => {
142
- let data = {
143
- bizplace: {
144
- description: bizplace.description,
145
- name: bizplace.name
146
- },
147
- product: {
148
- id: itm.product_id,
149
- sku: itm.product_sku,
150
- name: itm.product_name,
151
- description: itm.product_description,
152
- type: itm.product_type
153
- },
154
- qty: itm.qty,
155
- uom: itm.uom,
156
- uomValue: itm.uom_value,
157
- weightedAvgUnitCost: itm.weighted_avg_unit_cost,
158
- totalCost: itm.total_cost
159
- };
160
- return data;
161
- });
162
- return {
163
- items,
164
- total: total[0].count
165
- };
166
- }
167
- catch (error) {
168
- throw error;
169
- }
170
- }
171
- };
172
- //# sourceMappingURL=costing-report.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"costing-report.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/reports/costing-report.ts"],"names":[],"mappings":"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","sourcesContent":["import { User } from '@things-factory/auth-base'\nimport { Bizplace } from '@things-factory/biz-base'\nimport { Filter, ListParam } from '@things-factory/shell'\n\nimport { rawProductsQuery } from '../../../utils'\n\nexport const costingReport = {\n async costingReport(_: any, params: ListParam, context: ResolverContext) {\n try {\n const { tx } = context.state\n let bizplaceFilter: Filter = { name: '', operator: '', value: '' }\n let userFilter = params.filters.find(data => data.name === 'user')\n let fromDate = params.filters.find(data => data.name === 'fromDate')\n let toDate = params.filters.find(data => data.name === 'toDate')\n\n if (userFilter) {\n const user = (await tx.getRepository(User).findOne({\n where: { id: userFilter.value },\n relations: ['bizplaces']\n })) as User & { bizplaces: Bizplace[] }\n\n const bizplace: Bizplace = user.bizplaces[0]\n\n if (!bizplace) throw 'Invalid input'\n\n bizplaceFilter = { name: 'bizplace', operator: 'eq', value: bizplace.id }\n } else {\n bizplaceFilter = params.filters.find(data => data.name === 'bizplace')\n }\n\n if (!bizplaceFilter || !fromDate || !toDate) throw 'Invalid input'\n\n const bizplace: Bizplace = await tx.getRepository(Bizplace).findOneBy({\n id: bizplaceFilter.value\n })\n\n await rawProductsQuery(tx, params, bizplace)\n\n await tx.query(\n `\n create temp table tmp_outbound_ord on commit drop as (\n select p.sku, rih.domain_id, rih.bizplace_id, rih.product_id, rih.packing_type, rih.packing_size, coalesce(rih.uom, pd.uom, pd2.uom) as uom, \n sum(rih.qty) as total_picked_qty, sum(rih.uom_value) as total_picked_uom_value\n from reduced_inventory_histories rih \n inner join inventories inv on inv.domain_id = rih.domain_id and inv.pallet_id = rih.pallet_id\n left join product_details pd on pd.product_id = rih.product_id and pd.packing_type = rih.packing_type and pd.packing_size = rih.packing_size\n left join product_details pd2 on pd2.product_id = rih.product_id and pd2.is_default = true\n left join products p on p.id = rih.product_id \n where rih.domain_id = $1\n and inv.bizplace_id = $2\n and rih.created_at >= $3 and rih.created_at <= $4\n and rih.transaction_type = 'PICKING'\n group by p.sku, rih.domain_id, rih.bizplace_id, rih.product_id, rih.packing_type, rih.packing_size, coalesce(rih.uom, pd.uom, pd2.uom)\n );\n `,\n [context.state.domain.id, bizplace.id, fromDate.value, toDate.value]\n )\n\n await tx.query(\n `\n create temp table tmp_stored_inv on commit drop as (\n select src2.sku, src2.domain_id, src2.bizplace_id, src2.pallet_id, src2.product_id, src2.packing_type, src2.packing_size, src2.uom, \n to_char(src2.created_at, 'YYYY-MM') as created_year_month, sum(closing_qty) as closing_qty from (\n select distinct on (rih.pallet_id) p.sku, rih.domain_id, rih.bizplace_id, rih.pallet_id, rih.product_id, rih.packing_type, rih.packing_size, \n coalesce(rih.uom, pd.uom, pd2.uom) as uom, \n rih.created_at, rih.transaction_type, rih.status, rih.opening_qty + rih.qty as closing_qty\n from reduced_inventory_histories rih \n inner join inventories i on i.domain_id = rih.domain_id and i.pallet_id = rih.pallet_id \n left join product_details pd on pd.product_id = rih.product_id and pd.packing_type = rih.packing_type and pd.packing_size = rih.packing_size\n left join product_details pd2 on pd2.product_id = rih.product_id and pd2.is_default = true\n left join products p on p.id = rih.product_id \n where rih.domain_id = $1 \n and i.bizplace_id = $2 \n and rih.created_at <= $3\n order by rih.pallet_id, rih.seq desc\n ) src2 where src2.status <> 'TERMINATED'\n and exists (\n select * from tmp_outbound_ord outboundOrd\n where outboundOrd.domain_id = src2.domain_id\n and outboundOrd.bizplace_id = src2.bizplace_id \n and outboundOrd.product_id = src2.product_id \n and outboundOrd.packing_type = src2.packing_type\n and outboundOrd.packing_size = src2.packing_size\n and outboundOrd.uom = src2.uom\n )\n group by src2.sku, src2.domain_id, src2.bizplace_id, src2.pallet_id, src2.product_id, src2.packing_type, src2.packing_size, src2.uom, to_char(src2.created_at, 'YYYY-MM')\n );\n `,\n [context.state.domain.id, bizplace.id, toDate.value]\n )\n\n await tx.query(\n `\n create temp table temp_costing_report on commit drop as (\n WITH RECURSIVE cte_forwarded_cost as (\n select src.domain_id, src.bizplace_id, src.product_id, src.packing_type, src.packing_size, src.uom, TO_DATE(src.created_year_month,'YYYY-MM')::timestamp as running_year_month,\n sum(src.qty) as qty, sum(src.total_cost)/ sum(src.qty) as monthly_avg_cost, \n coalesce(sum(src.qty)) as closing_qty from (\n select distinct on (pallet_id) \n ih.domain_id, ih.bizplace_id, ih.pallet_id, ih.unit_cost, (ih.unit_cost * (ih.opening_qty + ih.qty)) as total_cost, ih.status, ih.transaction_type, ih.product_id, ih.packing_type, ih.packing_size, coalesce(ih.uom, pd.uom) as uom, \n ih.created_at, to_char(ih.created_at, 'YYYY-MM') as created_year_month,\n ih.opening_qty, \n ih.qty as transaction_qty, \n ih.opening_qty + ih.qty as qty, \n ih.opening_uom_value, \n ih.uom_value as transaction_uom_value, \n ih.opening_uom_value + ih.uom_value as uom_value\n from reduced_inventory_histories ih \n inner join inventories i on i.domain_id = ih.domain_id and i.pallet_id = ih.pallet_id \n left join product_details pd on pd.product_id = ih.product_id and pd.packing_type = ih.packing_type and pd.packing_size = ih.packing_size\n where ih.domain_id = $1 \n and i.bizplace_id = $2 \n and ih.created_at <= $3 and ih.unit_cost is not null\n and exists (\n select * from tmp_outbound_ord outboundOrd\n where outboundOrd.domain_id = ih.domain_id\n and outboundOrd.bizplace_id = ih.bizplace_id \n and outboundOrd.product_id = ih.product_id \n and outboundOrd.packing_type = ih.packing_type\n and outboundOrd.packing_size = ih.packing_size\n and outboundOrd.uom = ih.uom\n )\n order by ih.pallet_id, ih.seq\n ) src\n group by src.domain_id, src.bizplace_id, src.product_id, src.packing_type, src.packing_size, src.uom, src.created_year_month\n union all\n select dt1.domain_id, dt1.bizplace_id, dt1.product_id, dt1.packing_type, dt1.packing_size, dt1.uom, \n dt1.running_year_month + interval '1 month' as running_year_month, dt1.qty, dt1.monthly_avg_cost, dt1.closing_qty \n from cte_forwarded_cost dt1\n where dt1.running_year_month + interval '1 month' < $3\n ) select fc.*, -outboundord.total_picked_qty as \"qty\", -outboundord.total_picked_uom_value as \"uom_value\", (-outboundord.total_picked_qty * fc.weighted_avg_unit_cost) as \"total_cost\" from (\n select p.sku as \"product_sku\", p.\"name\" as \"product_name\", p.description as \"product_description\", p.\"type\" as \"product_type\",\n fc.domain_id, fc.bizplace_id, fc.product_id, fc.packing_type, fc.packing_size, fc.uom, fc.running_year_month,\n ROUND(cast(sum(fc.monthly_avg_cost * fc.closing_qty) / sum(fc.qty) as numeric),2) as \"weighted_avg_unit_cost\" \n from cte_forwarded_cost fc\n left join products p on p.id = fc.product_id \n where running_year_month = to_date(to_char($3::date, 'YYYY-MM'),'YYYY-MM')::timestamp\n group by p.sku, p.\"name\", p.description, p.\"type\", fc.domain_id, fc.bizplace_id, fc.product_id, fc.packing_type, fc.packing_size, fc.uom, fc.running_year_month\n ) fc \n left join tmp_outbound_ord outboundord on outboundord.domain_id = fc.domain_id\n and outboundord.bizplace_id = fc.bizplace_id \n and outboundord.product_id = fc.product_id \n and outboundord.packing_type = fc.packing_type\n and outboundord.packing_size = fc.packing_size\n and outboundord.uom = fc.uom\n );\n `,\n [context.state.domain.id, bizplace.id, toDate.value]\n )\n\n const total: any = await tx.query(`\n select count(*) from temp_costing_report\n `)\n\n const result: any = await tx.query(\n `\n select * from temp_costing_report\n offset $1 limit $2\n `,\n [(params.pagination.page - 1) * params.pagination.limit, params.pagination.limit]\n )\n\n let items = result.map(itm => {\n let data = {\n bizplace: {\n description: bizplace.description,\n name: bizplace.name\n },\n product: {\n id: itm.product_id,\n sku: itm.product_sku,\n name: itm.product_name,\n description: itm.product_description,\n type: itm.product_type\n },\n qty: itm.qty,\n uom: itm.uom,\n uomValue: itm.uom_value,\n weightedAvgUnitCost: itm.weighted_avg_unit_cost,\n totalCost: itm.total_cost\n }\n\n return data\n })\n\n return {\n items,\n total: total[0].count\n }\n } catch (error) {\n throw error\n }\n }\n}\n"]}
@@ -1,200 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.inboundOrderDetailsReport = void 0;
4
- const auth_base_1 = require("@things-factory/auth-base");
5
- const biz_base_1 = require("@things-factory/biz-base");
6
- const utils_1 = require("../../../utils");
7
- exports.inboundOrderDetailsReport = {
8
- async inboundOrderDetailsReport(_, params, context) {
9
- try {
10
- const { tx } = context.state;
11
- let bizplaceFilter = { name: '', operator: '', value: '' };
12
- let userFilter = params.filters.find(data => data.name === 'user');
13
- let fromDate = params.filters.find(data => data.name === 'fromDate');
14
- let toDate = params.filters.find(data => data.name === 'toDate');
15
- let ganNo = params.filters.find(data => data.name === 'ganNo');
16
- let grnNo = params.filters.find(data => data.name === 'grnNo');
17
- let poNo = params.filters.find(data => data.name === 'poNo');
18
- let doNo = params.filters.find(data => data.name === 'doNo');
19
- if (userFilter) {
20
- const user = (await tx.getRepository(auth_base_1.User).findOne({
21
- where: { id: userFilter.value },
22
- relations: ['bizplaces']
23
- }));
24
- const bizplace = user.bizplaces[0];
25
- if (!bizplace)
26
- throw 'Invalid input';
27
- bizplaceFilter = { name: 'bizplace', operator: 'eq', value: bizplace.id };
28
- }
29
- else {
30
- bizplaceFilter = params.filters.find(data => data.name === 'bizplace');
31
- }
32
- if (!bizplaceFilter || !fromDate || !toDate)
33
- throw 'Invalid input';
34
- const bizplace = await tx.getRepository(biz_base_1.Bizplace).findOneBy({
35
- id: bizplaceFilter.value
36
- });
37
- await (0, utils_1.rawProductsQuery)(tx, params, bizplace);
38
- let extraQueryFilters = '';
39
- if (ganNo) {
40
- extraQueryFilters = `${extraQueryFilters} and gan_no like '%${ganNo.value}%' `;
41
- }
42
- if (grnNo) {
43
- extraQueryFilters = `${extraQueryFilters} and grn_no like '%${grnNo.value}%' `;
44
- }
45
- if (poNo) {
46
- extraQueryFilters = `${extraQueryFilters} and purchase_order_name like '%${poNo.value}%' `;
47
- }
48
- if (doNo) {
49
- extraQueryFilters = `${extraQueryFilters} and delivery_order_no like '%${doNo.value}%' `;
50
- }
51
- await tx.query(`
52
- create temp table temp_inbound_order_report on commit drop as (
53
- select * from (
54
- select b2.id as "bizplace_id", b2.name as "bizplace_name", b2.description as "bizplace_description",
55
- grn.name as "grn_no",
56
- an.name as "gan_no", an.ref_no as "ref_no_1", an.ref_no_2 as "ref_no_2", an.ref_no_3 as "ref_no_3",
57
- an.loose_item, an.import_cargo, an.container_no, an.container_size, an.own_transport,
58
- u.name as "accepted_by", an.accepted_at,
59
- an.created_at as "order_created_at",
60
- w.started_at as "unload_start", w.ended_at as "unload_complete",
61
- w2.started_at as "putaway_start", w2.ended_at as "putaway_complete",
62
- an.delivery_order_no,
63
- cp.id as "supplier_id",
64
- cp.company_name as "supplier_name",
65
- po.id as "purchase_order_id",
66
- po.name as "purchase_order_name",
67
- row_number() over(partition by an.name order by an.name, p.sku, ih.batch_id) as "order_line_item",
68
- p.id as "product_id", p.sku as "product_sku", p.name as "product_name", p.description as "product_description", p.type as "product_type",
69
- ih.packing_type as "pack_type", op.packing_size as "pack_size",
70
- ih.qty, ih.uom_value, ih.uom, ih.pallet_id, ih.carton_id, ih.batch_id, ih.batch_id_ref,
71
- i.expiration_date, i.manufacture_date,
72
- ih.unit_cost,
73
- ih.created_at as "unloaded_at",u2.name as "unloaded_by",
74
- ih2.created_at as "putaway_at", u3.name as "putaway_by",
75
- coalesce((select volume from product_details pd where pd.product_id = i.product_id and pd.packing_type = i.packing_type and pd.packing_size = i.packing_size
76
- order by created_at desc
77
- fetch first 1 rows only),0) as unit_volume,
78
- coalesce((select nett_weight from product_details pd where pd.product_id = i.product_id and pd.packing_type = i.packing_type and pd.packing_size = i.packing_size
79
- order by created_at desc
80
- fetch first 1 rows only),0) as unit_nett_weight,
81
- coalesce((select gross_weight from product_details pd where pd.product_id = i.product_id and pd.packing_type = i.packing_type and pd.packing_size = i.packing_size
82
- order by created_at desc
83
- fetch first 1 rows only),0) as unit_gross_weight,
84
- coalesce((select weight_unit from product_details pd where pd.product_id = i.product_id and pd.packing_type = i.packing_type and pd.packing_size = i.packing_size
85
- order by created_at desc
86
- fetch first 1 rows only),'') as weight_unit
87
- from (
88
- select * from arrival_notices
89
- where domain_id = $1 and bizplace_id = $2 and status ='DONE'
90
- and created_at >= $3 and created_at <= $4) an
91
- left join goods_receival_notes grn on grn.arrival_notice_id = an.id
92
- left join purchase_orders po on po.id = an.purchase_order_id
93
- left join contact_points cp on cp.id = po.supplier_id
94
- inner join bizplaces b2 on b2.id = an.bizplace_id
95
- left join users u on u.id = an.accepted_by_id
96
- inner join order_inventories oi on oi.arrival_notice_id = an.id
97
- inner join inventories i on i.id = oi.inventory_id
98
- left join worksheets w on w.arrival_notice_id = an.id and w."type" ='UNLOADING'
99
- inner join reduced_inventory_histories ih on ih.inventory_id = oi.inventory_id and ih.transaction_type ='UNLOADING' and ih.ref_order_id = an.id::varchar
100
- left join users u2 on u2.id = ih.creator_id
101
- left join worksheets w2 on w2.arrival_notice_id = an.id and w2."type" ='PUTAWAY'
102
- inner join reduced_inventory_histories ih2 on ih2.inventory_id = oi.inventory_id and ih2.transaction_type ='PUTAWAY' and ih2.ref_order_id = an.id::varchar
103
- left join users u3 on u3.id = ih2.creator_id
104
- inner join temp_products p on p.id = ih.product_id
105
- inner join order_products op on op.arrival_notice_id = an.id and op.actual_pack_qty is not null and op.product_id = ih.product_id and
106
- op.batch_id = ih.batch_id and op.packing_type = ih.packing_type
107
- order by an.name, p.sku, ih.batch_id
108
- ) src
109
- where 1=1
110
- ${extraQueryFilters}
111
- )
112
- `, [context.state.domain.id, bizplace.id, fromDate.value, toDate.value]);
113
- const total = await tx.query(`
114
- select count(*) from temp_inbound_order_report
115
- `);
116
- const result = await tx.query(`
117
- select *,
118
- round((qty * unit_volume)::numeric ,4) as total_volume,
119
- round((qty * unit_nett_weight)::numeric ,4) as total_unit_nett_weight,
120
- round((qty * unit_gross_weight)::numeric ,4) as total_unit_gross_weight
121
- from temp_inbound_order_report
122
- offset $1 limit $2
123
- `, [(params.pagination.page - 1) * params.pagination.limit, params.pagination.limit]);
124
- let items = result.map(itm => {
125
- let data = {
126
- bizplace: {
127
- description: itm.bizplace_description,
128
- name: itm.bizplace_name
129
- },
130
- grnNo: itm.grn_no,
131
- ganNo: itm.gan_no,
132
- deliveryOrderNo: itm.delivery_order_no,
133
- refNo1: itm.ref_no_1,
134
- refNo2: itm.ref_no_2,
135
- refNo3: itm.ref_no_3,
136
- looseItem: itm.loose_item,
137
- importCargo: itm.import_cargo,
138
- containerNo: itm.container_no,
139
- containerSize: itm.container_size,
140
- ownTransport: itm.own_transport,
141
- acceptedBy: itm.accepted_by,
142
- acceptedAt: itm.accepted_at,
143
- orderCreatedAt: itm.order_created_at,
144
- unloadStart: itm.unload_start,
145
- unloadComplete: itm.unload_complete,
146
- putawayStart: itm.putaway_start,
147
- putawayComplete: itm.putaway_complete,
148
- orderLineItem: itm.order_line_item,
149
- product: {
150
- id: itm.product_id,
151
- sku: itm.product_sku,
152
- name: itm.product_name,
153
- description: itm.product_description,
154
- type: itm.product_type
155
- },
156
- purchaseOrderId: itm.purchase_order_id,
157
- purchaseOrderNo: itm.purchase_order_name,
158
- packType: itm.pack_type,
159
- packSize: itm.pack_size,
160
- qty: itm.qty,
161
- uomValue: itm.uom_value,
162
- uom: itm.uom,
163
- unitVolume: itm.unit_volume,
164
- unitCost: itm.unit_cost,
165
- totalVolume: itm.total_volume,
166
- unitNettWeight: itm.unit_nett_weight,
167
- totalUnitNettWeight: itm.total_unit_nett_weight,
168
- unitGrossWeight: itm.unit_gross_weight,
169
- totalUnitGrossWeight: itm.total_unit_gross_weight,
170
- weightUnit: itm.weight_unit,
171
- palletId: itm.pallet_id,
172
- cartonId: itm.carton_id,
173
- batchId: itm.batch_id,
174
- batchIdRef: itm.batch_id_ref,
175
- expirationDate: itm.expiration_date,
176
- manufactureDate: itm.manufacture_date,
177
- unloadedAt: itm.unloaded_at,
178
- unloadedBy: itm.unloaded_by,
179
- putawayAt: itm.putaway_at,
180
- putawayBy: itm.putaway_by
181
- };
182
- if (itm.supplier_id) {
183
- data['supplier'] = {
184
- id: itm.supplier_id,
185
- name: itm.supplier_name
186
- };
187
- }
188
- return data;
189
- });
190
- return {
191
- items,
192
- total: total[0].count
193
- };
194
- }
195
- catch (error) {
196
- throw error;
197
- }
198
- }
199
- };
200
- //# sourceMappingURL=inbound-order-details-report.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inbound-order-details-report.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/reports/inbound-order-details-report.ts"],"names":[],"mappings":"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","sourcesContent":["import { User } from '@things-factory/auth-base'\nimport { Bizplace } from '@things-factory/biz-base'\nimport { Filter, ListParam } from '@things-factory/shell'\n\nimport { rawProductsQuery } from '../../../utils'\n\nexport const inboundOrderDetailsReport = {\n async inboundOrderDetailsReport(_: any, params: ListParam, context: ResolverContext) {\n try {\n const { tx } = context.state\n let bizplaceFilter: Filter = { name: '', operator: '', value: '' }\n let userFilter = params.filters.find(data => data.name === 'user')\n let fromDate = params.filters.find(data => data.name === 'fromDate')\n let toDate = params.filters.find(data => data.name === 'toDate')\n let ganNo = params.filters.find(data => data.name === 'ganNo')\n let grnNo = params.filters.find(data => data.name === 'grnNo')\n let poNo = params.filters.find(data => data.name === 'poNo')\n let doNo = params.filters.find(data => data.name === 'doNo')\n\n if (userFilter) {\n const user = (await tx.getRepository(User).findOne({\n where: { id: userFilter.value },\n relations: ['bizplaces']\n })) as User & { bizplaces: Bizplace[] }\n\n const bizplace: Bizplace = user.bizplaces[0]\n\n if (!bizplace) throw 'Invalid input'\n\n bizplaceFilter = { name: 'bizplace', operator: 'eq', value: bizplace.id }\n } else {\n bizplaceFilter = params.filters.find(data => data.name === 'bizplace')\n }\n\n if (!bizplaceFilter || !fromDate || !toDate) throw 'Invalid input'\n\n const bizplace: Bizplace = await tx.getRepository(Bizplace).findOneBy({\n id: bizplaceFilter.value\n })\n\n await rawProductsQuery(tx, params, bizplace)\n\n let extraQueryFilters = ''\n if (ganNo) {\n extraQueryFilters = `${extraQueryFilters} and gan_no like '%${ganNo.value}%' `\n }\n if (grnNo) {\n extraQueryFilters = `${extraQueryFilters} and grn_no like '%${grnNo.value}%' `\n }\n if (poNo) {\n extraQueryFilters = `${extraQueryFilters} and purchase_order_name like '%${poNo.value}%' `\n }\n if (doNo) {\n extraQueryFilters = `${extraQueryFilters} and delivery_order_no like '%${doNo.value}%' `\n }\n\n await tx.query(\n `\n create temp table temp_inbound_order_report on commit drop as (\n select * from (\n select b2.id as \"bizplace_id\", b2.name as \"bizplace_name\", b2.description as \"bizplace_description\", \n grn.name as \"grn_no\", \n an.name as \"gan_no\", an.ref_no as \"ref_no_1\", an.ref_no_2 as \"ref_no_2\", an.ref_no_3 as \"ref_no_3\",\n an.loose_item, an.import_cargo, an.container_no, an.container_size, an.own_transport, \n u.name as \"accepted_by\", an.accepted_at,\n an.created_at as \"order_created_at\",\n w.started_at as \"unload_start\", w.ended_at as \"unload_complete\",\n w2.started_at as \"putaway_start\", w2.ended_at as \"putaway_complete\",\n an.delivery_order_no,\n cp.id as \"supplier_id\",\n cp.company_name as \"supplier_name\",\n po.id as \"purchase_order_id\",\n po.name as \"purchase_order_name\",\n row_number() over(partition by an.name order by an.name, p.sku, ih.batch_id) as \"order_line_item\",\n p.id as \"product_id\", p.sku as \"product_sku\", p.name as \"product_name\", p.description as \"product_description\", p.type as \"product_type\",\n ih.packing_type as \"pack_type\", op.packing_size as \"pack_size\",\n ih.qty, ih.uom_value, ih.uom, ih.pallet_id, ih.carton_id, ih.batch_id, ih.batch_id_ref,\n i.expiration_date, i.manufacture_date,\n ih.unit_cost,\n ih.created_at as \"unloaded_at\",u2.name as \"unloaded_by\", \n ih2.created_at as \"putaway_at\", u3.name as \"putaway_by\",\n coalesce((select volume from product_details pd where pd.product_id = i.product_id and pd.packing_type = i.packing_type and pd.packing_size = i.packing_size \n order by created_at desc\n fetch first 1 rows only),0) as unit_volume,\n coalesce((select nett_weight from product_details pd where pd.product_id = i.product_id and pd.packing_type = i.packing_type and pd.packing_size = i.packing_size \n order by created_at desc\n fetch first 1 rows only),0) as unit_nett_weight,\n coalesce((select gross_weight from product_details pd where pd.product_id = i.product_id and pd.packing_type = i.packing_type and pd.packing_size = i.packing_size \n order by created_at desc\n fetch first 1 rows only),0) as unit_gross_weight,\n coalesce((select weight_unit from product_details pd where pd.product_id = i.product_id and pd.packing_type = i.packing_type and pd.packing_size = i.packing_size \n order by created_at desc\n fetch first 1 rows only),'') as weight_unit\n from (\n select * from arrival_notices \n where domain_id = $1 and bizplace_id = $2 and status ='DONE'\n and created_at >= $3 and created_at <= $4) an \n left join goods_receival_notes grn on grn.arrival_notice_id = an.id\n left join purchase_orders po on po.id = an.purchase_order_id \n left join contact_points cp on cp.id = po.supplier_id\n inner join bizplaces b2 on b2.id = an.bizplace_id \n left join users u on u.id = an.accepted_by_id \n inner join order_inventories oi on oi.arrival_notice_id = an.id\n inner join inventories i on i.id = oi.inventory_id\n left join worksheets w on w.arrival_notice_id = an.id and w.\"type\" ='UNLOADING'\n inner join reduced_inventory_histories ih on ih.inventory_id = oi.inventory_id and ih.transaction_type ='UNLOADING' and ih.ref_order_id = an.id::varchar\n left join users u2 on u2.id = ih.creator_id\n left join worksheets w2 on w2.arrival_notice_id = an.id and w2.\"type\" ='PUTAWAY'\n inner join reduced_inventory_histories ih2 on ih2.inventory_id = oi.inventory_id and ih2.transaction_type ='PUTAWAY' and ih2.ref_order_id = an.id::varchar\n left join users u3 on u3.id = ih2.creator_id\n inner join temp_products p on p.id = ih.product_id \n inner join order_products op on op.arrival_notice_id = an.id and op.actual_pack_qty is not null and op.product_id = ih.product_id and \n op.batch_id = ih.batch_id and op.packing_type = ih.packing_type\n order by an.name, p.sku, ih.batch_id\n ) src\n where 1=1\n ${extraQueryFilters}\n )\n `,\n [context.state.domain.id, bizplace.id, fromDate.value, toDate.value]\n )\n\n const total: any = await tx.query(`\n select count(*) from temp_inbound_order_report\n `)\n\n const result: any = await tx.query(\n `\n select *, \n round((qty * unit_volume)::numeric ,4) as total_volume, \n round((qty * unit_nett_weight)::numeric ,4) as total_unit_nett_weight, \n round((qty * unit_gross_weight)::numeric ,4) as total_unit_gross_weight \n from temp_inbound_order_report\n offset $1 limit $2\n `,\n [(params.pagination.page - 1) * params.pagination.limit, params.pagination.limit]\n )\n\n let items = result.map(itm => {\n let data = {\n bizplace: {\n description: itm.bizplace_description,\n name: itm.bizplace_name\n },\n grnNo: itm.grn_no,\n ganNo: itm.gan_no,\n deliveryOrderNo: itm.delivery_order_no,\n refNo1: itm.ref_no_1,\n refNo2: itm.ref_no_2,\n refNo3: itm.ref_no_3,\n looseItem: itm.loose_item,\n importCargo: itm.import_cargo,\n containerNo: itm.container_no,\n containerSize: itm.container_size,\n ownTransport: itm.own_transport,\n acceptedBy: itm.accepted_by,\n acceptedAt: itm.accepted_at,\n orderCreatedAt: itm.order_created_at,\n unloadStart: itm.unload_start,\n unloadComplete: itm.unload_complete,\n putawayStart: itm.putaway_start,\n putawayComplete: itm.putaway_complete,\n orderLineItem: itm.order_line_item,\n product: {\n id: itm.product_id,\n sku: itm.product_sku,\n name: itm.product_name,\n description: itm.product_description,\n type: itm.product_type\n },\n purchaseOrderId: itm.purchase_order_id,\n purchaseOrderNo: itm.purchase_order_name,\n packType: itm.pack_type,\n packSize: itm.pack_size,\n qty: itm.qty,\n uomValue: itm.uom_value,\n uom: itm.uom,\n unitVolume: itm.unit_volume,\n unitCost: itm.unit_cost,\n totalVolume: itm.total_volume,\n unitNettWeight: itm.unit_nett_weight,\n totalUnitNettWeight: itm.total_unit_nett_weight,\n unitGrossWeight: itm.unit_gross_weight,\n totalUnitGrossWeight: itm.total_unit_gross_weight,\n weightUnit: itm.weight_unit,\n palletId: itm.pallet_id,\n cartonId: itm.carton_id,\n batchId: itm.batch_id,\n batchIdRef: itm.batch_id_ref,\n expirationDate: itm.expiration_date,\n manufactureDate: itm.manufacture_date,\n unloadedAt: itm.unloaded_at,\n unloadedBy: itm.unloaded_by,\n putawayAt: itm.putaway_at,\n putawayBy: itm.putaway_by\n }\n\n if (itm.supplier_id) {\n data['supplier'] = {\n id: itm.supplier_id,\n name: itm.supplier_name\n }\n }\n\n return data\n })\n\n return {\n items,\n total: total[0].count\n }\n } catch (error) {\n throw error\n }\n }\n}\n"]}
@@ -1,140 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.inboundSerialNumberReport = void 0;
4
- const auth_base_1 = require("@things-factory/auth-base");
5
- const biz_base_1 = require("@things-factory/biz-base");
6
- const utils_1 = require("../../../utils");
7
- exports.inboundSerialNumberReport = {
8
- async inboundSerialNumberReport(_, params, context) {
9
- try {
10
- const { tx } = context.state;
11
- let bizplaceFilter = { name: '', operator: '', value: '' };
12
- let userFilter = params.filters.find(data => data.name === 'user');
13
- let fromDate = params.filters.find(data => data.name === 'fromDate');
14
- let toDate = params.filters.find(data => data.name === 'toDate');
15
- let orderNo = params.filters.find(data => data.name === 'orderNo');
16
- let ref = params.filters.find(data => data.name === 'ref');
17
- let palletId = params.filters.find(data => data.name === 'palletId');
18
- let cartonId = params.filters.find(data => data.name === 'cartonId');
19
- let serialNumber = params.filters.find(data => data.name === 'serialNumber');
20
- if (userFilter) {
21
- const user = (await tx.getRepository(auth_base_1.User).findOne({
22
- where: { id: userFilter.value },
23
- relations: ['bizplaces']
24
- }));
25
- const bizplace = user.bizplaces[0];
26
- if (!bizplace)
27
- throw 'Invalid input';
28
- bizplaceFilter = { name: 'bizplace', operator: 'eq', value: bizplace.id };
29
- }
30
- else {
31
- bizplaceFilter = params.filters.find(data => data.name === 'bizplace');
32
- }
33
- if (!bizplaceFilter || !fromDate || !toDate)
34
- throw 'Invalid input';
35
- const bizplace = await tx.getRepository(biz_base_1.Bizplace).findOneBy({
36
- id: bizplaceFilter.value
37
- });
38
- await (0, utils_1.rawProductsQuery)(tx, params, bizplace);
39
- let extraQueryFilters = '';
40
- if (orderNo) {
41
- extraQueryFilters = `${extraQueryFilters} and order_no like '%${orderNo.value}%' `;
42
- }
43
- if (palletId) {
44
- extraQueryFilters = `${extraQueryFilters} and pallet_id like '%${palletId.value}%' `;
45
- }
46
- if (cartonId) {
47
- extraQueryFilters = `${extraQueryFilters} and carton_id like '%${cartonId.value}%' `;
48
- }
49
- if (serialNumber) {
50
- extraQueryFilters = `${extraQueryFilters} and serial_number like '%${serialNumber.value}%' `;
51
- }
52
- let refNoQueryFilter = '';
53
- if (ref) {
54
- let refValue = ref.value
55
- .toLowerCase()
56
- .split(',')
57
- .map(ref => {
58
- return "'%" + ref.trim().replace(/'/g, "''") + "%'";
59
- })
60
- .join(',');
61
- refNoQueryFilter = `AND (
62
- Lower(an.ref_no) LIKE ANY(ARRAY[${refValue}])
63
- OR Lower(an.ref_no_2) LIKE ANY(ARRAY[${refValue}])
64
- OR Lower(an.ref_no_3) LIKE ANY(ARRAY[${refValue}])
65
- )`;
66
- }
67
- await tx.query(`
68
- create temp table temp_inbound_serial_number_report on commit drop as (
69
- select * from (
70
- select
71
- row_number() over(partition by an."name" order by coalesce(w.started_at, ii.created_at), p.sku ) as "no",
72
- case when "source" = 'ADJUSTMENT' then 'adjustment' else an."name" end as "order_no",
73
- i.pallet_id, i.carton_id,an.ref_no, an.ref_no_2, an.ref_no_3,
74
- p.id as "product_id", p.sku as "product_sku", p.brand_sku as "product_brand_sku",
75
- p.name as "product_name", p.description as "product_description", p."type" as "product_type",
76
- coalesce(pd.volume, '0') as "product_volume",
77
- ii.serial_number,
78
- coalesce(w.started_at,ii.created_at) as "etd"
79
- from inventory_items ii
80
- inner join inventories i on i.id = ii.inventory_id
81
- inner join temp_products p on p.id = i.product_id
82
- left join product_details pd on pd.product_id = p.id and pd.packing_type = i.packing_type and pd.packing_size = i.packing_size
83
- left join arrival_notices an on an.id = ii.inbound_order_id::uuid
84
- left join worksheets w on w.arrival_notice_id = an.id and w.type = 'UNLOADING'
85
- where
86
- i.domain_id = $1 and i.bizplace_id = $2
87
- and coalesce(w.started_at, ii.created_at) between $3 and $4
88
- ${refNoQueryFilter}
89
- order by coalesce(w.started_at, ii.created_at), p.sku
90
- ) src
91
- where 1=1
92
- ${extraQueryFilters}
93
- )
94
- `, [context.state.domain.id, bizplace.id, fromDate.value, toDate.value]);
95
- const total = await tx.query(`
96
- select count(*) from temp_inbound_serial_number_report
97
- `);
98
- const result = await tx.query(`
99
- select *
100
- from temp_inbound_serial_number_report
101
- offset $1 limit $2
102
- `, [(params.pagination.page - 1) * params.pagination.limit, params.pagination.limit]);
103
- let items = result.map(itm => {
104
- let data = {
105
- no: itm.no,
106
- bizplace: {
107
- description: bizplace.description,
108
- name: bizplace.name
109
- },
110
- palletId: itm.pallet_id,
111
- cartonId: itm.carton_id,
112
- orderNo: itm.order_no,
113
- refNo1: itm.ref_no,
114
- refNo2: itm.ref_no_2,
115
- refNo3: itm.ref_no_3,
116
- product: {
117
- id: itm.product_id,
118
- sku: itm.product_sku,
119
- brandSku: itm.product_brand_sku,
120
- name: itm.product_name,
121
- description: itm.product_description,
122
- type: itm.product_type,
123
- volume: itm.product_volume
124
- },
125
- serialNumber: itm.serial_number,
126
- etd: itm.etd
127
- };
128
- return data;
129
- });
130
- return {
131
- items,
132
- total: total[0].count
133
- };
134
- }
135
- catch (error) {
136
- throw error;
137
- }
138
- }
139
- };
140
- //# sourceMappingURL=inbound-serial-number-report.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inbound-serial-number-report.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/reports/inbound-serial-number-report.ts"],"names":[],"mappings":"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","sourcesContent":["import { User } from '@things-factory/auth-base'\nimport { Bizplace } from '@things-factory/biz-base'\nimport { Filter, ListParam } from '@things-factory/shell'\n\nimport { rawProductsQuery } from '../../../utils'\n\nexport const inboundSerialNumberReport = {\n async inboundSerialNumberReport(_: any, params: ListParam, context: ResolverContext) {\n try {\n const { tx } = context.state\n let bizplaceFilter: Filter = { name: '', operator: '', value: '' }\n let userFilter = params.filters.find(data => data.name === 'user')\n let fromDate = params.filters.find(data => data.name === 'fromDate')\n let toDate = params.filters.find(data => data.name === 'toDate')\n let orderNo = params.filters.find(data => data.name === 'orderNo')\n let ref = params.filters.find(data => data.name === 'ref')\n let palletId = params.filters.find(data => data.name === 'palletId')\n let cartonId = params.filters.find(data => data.name === 'cartonId')\n let serialNumber = params.filters.find(data => data.name === 'serialNumber')\n\n if (userFilter) {\n const user = (await tx.getRepository(User).findOne({\n where: { id: userFilter.value },\n relations: ['bizplaces']\n })) as User & { bizplaces: Bizplace[] }\n\n const bizplace: Bizplace = user.bizplaces[0]\n\n if (!bizplace) throw 'Invalid input'\n\n bizplaceFilter = { name: 'bizplace', operator: 'eq', value: bizplace.id }\n } else {\n bizplaceFilter = params.filters.find(data => data.name === 'bizplace')\n }\n\n if (!bizplaceFilter || !fromDate || !toDate) throw 'Invalid input'\n\n const bizplace: Bizplace = await tx.getRepository(Bizplace).findOneBy({\n id: bizplaceFilter.value\n })\n\n await rawProductsQuery(tx, params, bizplace)\n\n let extraQueryFilters = ''\n if (orderNo) {\n extraQueryFilters = `${extraQueryFilters} and order_no like '%${orderNo.value}%' `\n }\n if (palletId) {\n extraQueryFilters = `${extraQueryFilters} and pallet_id like '%${palletId.value}%' `\n }\n if (cartonId) {\n extraQueryFilters = `${extraQueryFilters} and carton_id like '%${cartonId.value}%' `\n }\n if (serialNumber) {\n extraQueryFilters = `${extraQueryFilters} and serial_number like '%${serialNumber.value}%' `\n }\n\n let refNoQueryFilter = ''\n if (ref) {\n let refValue = ref.value\n .toLowerCase()\n .split(',')\n .map(ref => {\n return \"'%\" + ref.trim().replace(/'/g, \"''\") + \"%'\"\n })\n .join(',')\n refNoQueryFilter = `AND (\n Lower(an.ref_no) LIKE ANY(ARRAY[${refValue}])\n OR Lower(an.ref_no_2) LIKE ANY(ARRAY[${refValue}])\n OR Lower(an.ref_no_3) LIKE ANY(ARRAY[${refValue}])\n )`\n }\n\n await tx.query(\n `\n create temp table temp_inbound_serial_number_report on commit drop as (\n select * from ( \n select \n row_number() over(partition by an.\"name\" order by coalesce(w.started_at, ii.created_at), p.sku ) as \"no\",\n case when \"source\" = 'ADJUSTMENT' then 'adjustment' else an.\"name\" end as \"order_no\",\n i.pallet_id, i.carton_id,an.ref_no, an.ref_no_2, an.ref_no_3,\n p.id as \"product_id\", p.sku as \"product_sku\", p.brand_sku as \"product_brand_sku\",\n p.name as \"product_name\", p.description as \"product_description\", p.\"type\" as \"product_type\",\n coalesce(pd.volume, '0') as \"product_volume\", \n ii.serial_number, \n coalesce(w.started_at,ii.created_at) as \"etd\"\n from inventory_items ii \n inner join inventories i on i.id = ii.inventory_id \n inner join temp_products p on p.id = i.product_id\n left join product_details pd on pd.product_id = p.id and pd.packing_type = i.packing_type and pd.packing_size = i.packing_size \n left join arrival_notices an on an.id = ii.inbound_order_id::uuid\n left join worksheets w on w.arrival_notice_id = an.id and w.type = 'UNLOADING'\n where \n i.domain_id = $1 and i.bizplace_id = $2\n and coalesce(w.started_at, ii.created_at) between $3 and $4\n ${refNoQueryFilter}\n order by coalesce(w.started_at, ii.created_at), p.sku\n ) src\n where 1=1\n ${extraQueryFilters}\n )\n `,\n [context.state.domain.id, bizplace.id, fromDate.value, toDate.value]\n )\n\n const total: any = await tx.query(`\n select count(*) from temp_inbound_serial_number_report\n `)\n\n const result: any = await tx.query(\n `\n select *\n from temp_inbound_serial_number_report\n offset $1 limit $2\n `,\n [(params.pagination.page - 1) * params.pagination.limit, params.pagination.limit]\n )\n\n let items = result.map(itm => {\n let data = {\n no: itm.no,\n bizplace: {\n description: bizplace.description,\n name: bizplace.name\n },\n palletId: itm.pallet_id,\n cartonId: itm.carton_id,\n orderNo: itm.order_no,\n refNo1: itm.ref_no,\n refNo2: itm.ref_no_2,\n refNo3: itm.ref_no_3,\n product: {\n id: itm.product_id,\n sku: itm.product_sku,\n brandSku: itm.product_brand_sku,\n name: itm.product_name,\n description: itm.product_description,\n type: itm.product_type,\n volume: itm.product_volume\n },\n serialNumber: itm.serial_number,\n etd: itm.etd\n }\n\n return data\n })\n\n return {\n items,\n total: total[0].count\n }\n } catch (error) {\n throw error\n }\n }\n}\n"]}
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Query = void 0;
4
- const inbound_serial_number_report_1 = require("./inbound-serial-number-report");
5
- const outbound_serial_number_report_1 = require("./outbound-serial-number-report");
6
- const costing_report_1 = require("./costing-report");
7
- const inbound_order_details_report_1 = require("./inbound-order-details-report");
8
- const outbound_order_details_report_1 = require("./outbound-order-details-report");
9
- const product_label_report_1 = require("./product-label-report");
10
- const release_inventory_report_1 = require("./release-inventory-report");
11
- exports.Query = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, inbound_serial_number_report_1.inboundSerialNumberReport), outbound_serial_number_report_1.outboundSerialNumberReport), costing_report_1.costingReport), inbound_order_details_report_1.inboundOrderDetailsReport), outbound_order_details_report_1.outboundOrderDetailsReport), product_label_report_1.productLabelReport), release_inventory_report_1.releaseInventoryReport);
12
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/graphql/resolvers/reports/index.ts"],"names":[],"mappings":";;;AAAA,iFAA0E;AAC1E,mFAA4E;AAE5E,qDAAgD;AAChD,iFAA0E;AAC1E,mFAA4E;AAC5E,iEAA2D;AAC3D,yEAAmE;AAEtD,QAAA,KAAK,yGACb,wDAAyB,GACzB,0DAA0B,GAC1B,8BAAa,GACb,wDAAyB,GACzB,0DAA0B,GAC1B,yCAAkB,GAClB,iDAAsB,EAC1B","sourcesContent":["import { inboundSerialNumberReport } from './inbound-serial-number-report'\nimport { outboundSerialNumberReport } from './outbound-serial-number-report'\n\nimport { costingReport } from './costing-report'\nimport { inboundOrderDetailsReport } from './inbound-order-details-report'\nimport { outboundOrderDetailsReport } from './outbound-order-details-report'\nimport { productLabelReport } from './product-label-report'\nimport { releaseInventoryReport } from './release-inventory-report'\n\nexport const Query = {\n ...inboundSerialNumberReport,\n ...outboundSerialNumberReport,\n ...costingReport,\n ...inboundOrderDetailsReport,\n ...outboundOrderDetailsReport,\n ...productLabelReport,\n ...releaseInventoryReport\n}\n"]}