@things-factory/sales-base 4.3.0-alpha.1 → 4.3.2

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 (173) hide show
  1. package/dist-server/constants/attachment-type.js +2 -1
  2. package/dist-server/constants/attachment-type.js.map +1 -1
  3. package/dist-server/constants/index.js +2 -5
  4. package/dist-server/constants/index.js.map +1 -1
  5. package/dist-server/constants/order.js +12 -3
  6. package/dist-server/constants/order.js.map +1 -1
  7. package/dist-server/constants/release-good.js +9 -0
  8. package/dist-server/constants/release-good.js.map +1 -0
  9. package/dist-server/controllers/ecommerce/index.js +1 -5
  10. package/dist-server/controllers/ecommerce/index.js.map +1 -1
  11. package/dist-server/controllers/index.js +1 -5
  12. package/dist-server/controllers/index.js.map +1 -1
  13. package/dist-server/errors/index.js +1 -5
  14. package/dist-server/errors/index.js.map +1 -1
  15. package/dist-server/errors/validation-error.js +1 -5
  16. package/dist-server/errors/validation-error.js.map +1 -1
  17. package/dist-server/index.js +1 -5
  18. package/dist-server/index.js.map +1 -1
  19. package/dist-server/service/arrival-notice/index.js +1 -5
  20. package/dist-server/service/arrival-notice/index.js.map +1 -1
  21. package/dist-server/service/claim/index.js +1 -5
  22. package/dist-server/service/claim/index.js.map +1 -1
  23. package/dist-server/service/claim-detail/index.js +1 -5
  24. package/dist-server/service/claim-detail/index.js.map +1 -1
  25. package/dist-server/service/claim-order/index.js +1 -5
  26. package/dist-server/service/claim-order/index.js.map +1 -1
  27. package/dist-server/service/collection-order/index.js +1 -5
  28. package/dist-server/service/collection-order/index.js.map +1 -1
  29. package/dist-server/service/delivery-order/index.js +1 -5
  30. package/dist-server/service/delivery-order/index.js.map +1 -1
  31. package/dist-server/service/draft-release-good/draft-release-good-mutation.js +501 -0
  32. package/dist-server/service/draft-release-good/draft-release-good-mutation.js.map +1 -0
  33. package/dist-server/service/draft-release-good/draft-release-good-query.js +289 -0
  34. package/dist-server/service/draft-release-good/draft-release-good-query.js.map +1 -0
  35. package/dist-server/service/draft-release-good/draft-release-good-type.js +364 -0
  36. package/dist-server/service/draft-release-good/draft-release-good-type.js.map +1 -0
  37. package/dist-server/service/draft-release-good/draft-release-good.js +321 -0
  38. package/dist-server/service/draft-release-good/draft-release-good.js.map +1 -0
  39. package/dist-server/service/draft-release-good/index.js +21 -0
  40. package/dist-server/service/draft-release-good/index.js.map +1 -0
  41. package/dist-server/service/goods-receival-note/index.js +1 -5
  42. package/dist-server/service/goods-receival-note/index.js.map +1 -1
  43. package/dist-server/service/index.js +48 -24
  44. package/dist-server/service/index.js.map +1 -1
  45. package/dist-server/service/inventory-check/index.js +1 -5
  46. package/dist-server/service/inventory-check/index.js.map +1 -1
  47. package/dist-server/service/invoice/index.js +1 -5
  48. package/dist-server/service/invoice/index.js.map +1 -1
  49. package/dist-server/service/invoice-product/index.js +1 -5
  50. package/dist-server/service/invoice-product/index.js.map +1 -1
  51. package/dist-server/service/job-sheet/index.js +1 -5
  52. package/dist-server/service/job-sheet/index.js.map +1 -1
  53. package/dist-server/service/order-inventory/index.js +1 -5
  54. package/dist-server/service/order-inventory/index.js.map +1 -1
  55. package/dist-server/service/order-inventory/order-inventory-query.js +38 -1
  56. package/dist-server/service/order-inventory/order-inventory-query.js.map +1 -1
  57. package/dist-server/service/order-inventory/order-inventory-types.js +9 -1
  58. package/dist-server/service/order-inventory/order-inventory-types.js.map +1 -1
  59. package/dist-server/service/order-inventory/order-inventory.js +5 -1
  60. package/dist-server/service/order-inventory/order-inventory.js.map +1 -1
  61. package/dist-server/service/order-product/index.js +1 -5
  62. package/dist-server/service/order-product/index.js.map +1 -1
  63. package/dist-server/service/order-product/order-product-types.js +13 -13
  64. package/dist-server/service/order-product/order-product-types.js.map +1 -1
  65. package/dist-server/service/order-product/order-product.js +39 -4
  66. package/dist-server/service/order-product/order-product.js.map +1 -1
  67. package/dist-server/service/order-tote/index.js +21 -0
  68. package/dist-server/service/order-tote/index.js.map +1 -0
  69. package/dist-server/service/order-tote/order-tote-mutation.js +56 -0
  70. package/dist-server/service/order-tote/order-tote-mutation.js.map +1 -0
  71. package/dist-server/service/order-tote/order-tote-query.js +123 -0
  72. package/dist-server/service/order-tote/order-tote-query.js.map +1 -0
  73. package/dist-server/service/order-tote/order-tote-types.js +79 -0
  74. package/dist-server/service/order-tote/order-tote-types.js.map +1 -0
  75. package/dist-server/service/order-tote/order-tote.js +91 -0
  76. package/dist-server/service/order-tote/order-tote.js.map +1 -0
  77. package/dist-server/service/order-tote-item/index.js +21 -0
  78. package/dist-server/service/order-tote-item/index.js.map +1 -0
  79. package/dist-server/service/order-tote-item/order-tote-item-mutation.js +56 -0
  80. package/dist-server/service/order-tote-item/order-tote-item-mutation.js.map +1 -0
  81. package/dist-server/service/order-tote-item/order-tote-item-query.js +100 -0
  82. package/dist-server/service/order-tote-item/order-tote-item-query.js.map +1 -0
  83. package/dist-server/service/order-tote-item/order-tote-item-types.js +91 -0
  84. package/dist-server/service/order-tote-item/order-tote-item-types.js.map +1 -0
  85. package/dist-server/service/order-tote-item/order-tote-item.js +104 -0
  86. package/dist-server/service/order-tote-item/order-tote-item.js.map +1 -0
  87. package/dist-server/service/order-tote-seal/index.js +21 -0
  88. package/dist-server/service/order-tote-seal/index.js.map +1 -0
  89. package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js +56 -0
  90. package/dist-server/service/order-tote-seal/order-tote-seal-mutation.js.map +1 -0
  91. package/dist-server/service/order-tote-seal/order-tote-seal-query.js +97 -0
  92. package/dist-server/service/order-tote-seal/order-tote-seal-query.js.map +1 -0
  93. package/dist-server/service/order-tote-seal/order-tote-seal-types.js +71 -0
  94. package/dist-server/service/order-tote-seal/order-tote-seal-types.js.map +1 -0
  95. package/dist-server/service/order-tote-seal/order-tote-seal.js +71 -0
  96. package/dist-server/service/order-tote-seal/order-tote-seal.js.map +1 -0
  97. package/dist-server/service/order-vas/index.js +1 -5
  98. package/dist-server/service/order-vas/index.js.map +1 -1
  99. package/dist-server/service/others/index.js +1 -5
  100. package/dist-server/service/others/index.js.map +1 -1
  101. package/dist-server/service/others/other-query.js +37 -2
  102. package/dist-server/service/others/other-query.js.map +1 -1
  103. package/dist-server/service/purchase-order/index.js +1 -5
  104. package/dist-server/service/purchase-order/index.js.map +1 -1
  105. package/dist-server/service/purchase-order-other-charge/index.js +1 -5
  106. package/dist-server/service/purchase-order-other-charge/index.js.map +1 -1
  107. package/dist-server/service/release-good/index.js +1 -5
  108. package/dist-server/service/release-good/index.js.map +1 -1
  109. package/dist-server/service/release-good/release-good-mutation.js +23 -1
  110. package/dist-server/service/release-good/release-good-mutation.js.map +1 -1
  111. package/dist-server/service/release-good/release-good-query.js +28 -2
  112. package/dist-server/service/release-good/release-good-query.js.map +1 -1
  113. package/dist-server/service/release-good/release-good.js +32 -12
  114. package/dist-server/service/release-good/release-good.js.map +1 -1
  115. package/dist-server/service/retail-replenishment-order/index.js +1 -5
  116. package/dist-server/service/retail-replenishment-order/index.js.map +1 -1
  117. package/dist-server/service/return-order/index.js +1 -5
  118. package/dist-server/service/return-order/index.js.map +1 -1
  119. package/dist-server/service/reverse-kitting-order/index.js +1 -5
  120. package/dist-server/service/reverse-kitting-order/index.js.map +1 -1
  121. package/dist-server/service/reverse-kitting-order-inventory/index.js +1 -5
  122. package/dist-server/service/reverse-kitting-order-inventory/index.js.map +1 -1
  123. package/dist-server/service/shipping-order/index.js +1 -5
  124. package/dist-server/service/shipping-order/index.js.map +1 -1
  125. package/dist-server/service/transfer-order/index.js +1 -5
  126. package/dist-server/service/transfer-order/index.js.map +1 -1
  127. package/dist-server/service/vas/index.js +1 -5
  128. package/dist-server/service/vas/index.js.map +1 -1
  129. package/dist-server/service/vas-order/index.js +1 -5
  130. package/dist-server/service/vas-order/index.js.map +1 -1
  131. package/dist-server/utils/index.js +1 -5
  132. package/dist-server/utils/index.js.map +1 -1
  133. package/dist-server/utils/inventory-util.js +258 -99
  134. package/dist-server/utils/inventory-util.js.map +1 -1
  135. package/dist-server/utils/order-no-generator.js +7 -0
  136. package/dist-server/utils/order-no-generator.js.map +1 -1
  137. package/package.json +13 -13
  138. package/server/constants/attachment-type.ts +2 -1
  139. package/server/constants/index.ts +1 -0
  140. package/server/constants/order.ts +12 -2
  141. package/server/constants/release-good.ts +6 -0
  142. package/server/service/draft-release-good/draft-release-good-mutation.ts +671 -0
  143. package/server/service/draft-release-good/draft-release-good-query.ts +314 -0
  144. package/server/service/draft-release-good/draft-release-good-type.ts +261 -0
  145. package/server/service/draft-release-good/draft-release-good.ts +270 -0
  146. package/server/service/draft-release-good/index.ts +9 -0
  147. package/server/service/index.ts +51 -21
  148. package/server/service/order-inventory/order-inventory-query.ts +40 -2
  149. package/server/service/order-inventory/order-inventory-types.ts +6 -0
  150. package/server/service/order-inventory/order-inventory.ts +5 -5
  151. package/server/service/order-product/order-product-types.ts +5 -3
  152. package/server/service/order-product/order-product.ts +30 -3
  153. package/server/service/order-tote/index.ts +9 -0
  154. package/server/service/order-tote/order-tote-mutation.ts +30 -0
  155. package/server/service/order-tote/order-tote-query.ts +114 -0
  156. package/server/service/order-tote/order-tote-types.ts +47 -0
  157. package/server/service/order-tote/order-tote.ts +62 -0
  158. package/server/service/order-tote-item/index.ts +9 -0
  159. package/server/service/order-tote-item/order-tote-item-mutation.ts +30 -0
  160. package/server/service/order-tote-item/order-tote-item-query.ts +88 -0
  161. package/server/service/order-tote-item/order-tote-item-types.ts +56 -0
  162. package/server/service/order-tote-item/order-tote-item.ts +72 -0
  163. package/server/service/order-tote-seal/index.ts +9 -0
  164. package/server/service/order-tote-seal/order-tote-seal-mutation.ts +30 -0
  165. package/server/service/order-tote-seal/order-tote-seal-query.ts +60 -0
  166. package/server/service/order-tote-seal/order-tote-seal-types.ts +41 -0
  167. package/server/service/order-tote-seal/order-tote-seal.ts +46 -0
  168. package/server/service/others/other-query.ts +43 -8
  169. package/server/service/release-good/release-good-mutation.ts +24 -2
  170. package/server/service/release-good/release-good-query.ts +57 -30
  171. package/server/service/release-good/release-good.ts +28 -9
  172. package/server/utils/inventory-util.ts +287 -106
  173. package/server/utils/order-no-generator.ts +42 -48
@@ -0,0 +1,289 @@
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;
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.getDraftReleaseGoodFunction = exports.DraftReleaseGoodQuery = void 0;
17
+ const type_graphql_1 = require("type-graphql");
18
+ const typeorm_1 = require("typeorm");
19
+ const biz_base_1 = require("@things-factory/biz-base");
20
+ const shell_1 = require("@things-factory/shell");
21
+ const constants_1 = require("../../constants");
22
+ const draft_release_good_1 = require("./draft-release-good");
23
+ const draft_release_good_type_1 = require("./draft-release-good-type");
24
+ const attachment_base_1 = require("@things-factory/attachment-base");
25
+ const constants_2 = require("../../constants");
26
+ const utils_1 = require("../../utils");
27
+ let DraftReleaseGoodQuery = class DraftReleaseGoodQuery {
28
+ async draftReleaseGood(id, context) {
29
+ const { domain } = context.state;
30
+ return await (0, typeorm_1.getRepository)(draft_release_good_1.DraftReleaseGood).findOne({
31
+ where: { domain, id }
32
+ });
33
+ }
34
+ async draftReleaseGoodByName(name, context) {
35
+ const { domain, tx } = context.state;
36
+ return getDraftReleaseGoodFunction(null, name, context, tx);
37
+ }
38
+ async draftReleaseGoods(params, context) {
39
+ try {
40
+ const { domain, user, tx } = context.state;
41
+ const statusFilter = params.filters.find(e => e.name === 'status');
42
+ const bizplaceFilter = params.filters.find(param => param.name === 'bizplaceId');
43
+ const noOfItemsFilter = params.filters.find(param => param.name === 'noOfItems');
44
+ const skuFilter = params.filters.find(param => param.name === 'sku');
45
+ const orderRemarkFilter = params.filters.find(param => param.name === 'orderRemark');
46
+ if (!bizplaceFilter) {
47
+ params.filters.push({
48
+ name: 'bizplaceId',
49
+ operator: 'in',
50
+ value: await (0, biz_base_1.getPermittedBizplaceIds)(domain, user),
51
+ relation: false
52
+ });
53
+ }
54
+ params.filters = params.filters.filter(itm => itm.name !== 'noOfItems' && itm.name !== 'sku' && itm.name !== 'status');
55
+ if (orderRemarkFilter) {
56
+ const orderRemarkIdx = params.filters.findIndex(param => param.name === 'orderRemark');
57
+ if (orderRemarkFilter.value == true) {
58
+ params.filters.splice(orderRemarkIdx, 1);
59
+ params.filters.push({
60
+ name: 'remark',
61
+ operator: 'is_not_null',
62
+ value: null,
63
+ relation: false
64
+ });
65
+ }
66
+ else {
67
+ params.filters.splice(orderRemarkIdx, 1);
68
+ params.filters.push({
69
+ name: 'remark',
70
+ operator: 'is_null',
71
+ value: null,
72
+ relation: false
73
+ });
74
+ }
75
+ }
76
+ const fromDateParamIdx = params.filters.findIndex(param => param.name === 'fromDate');
77
+ if (fromDateParamIdx >= 0) {
78
+ let fromDateVal = new Date(params.filters[fromDateParamIdx].value);
79
+ params.filters.splice(fromDateParamIdx, 1);
80
+ params.filters.push({
81
+ name: 'createdAt',
82
+ operator: 'gte',
83
+ value: fromDateVal.toISOString(),
84
+ relation: false
85
+ });
86
+ }
87
+ const toDateParamIdx = params.filters.findIndex(param => param.name === 'toDate');
88
+ if (toDateParamIdx >= 0) {
89
+ let toDateVal = new Date(params.filters[toDateParamIdx].value);
90
+ params.filters.splice(toDateParamIdx, 1);
91
+ params.filters.push({
92
+ name: 'createdAt',
93
+ operator: 'lt',
94
+ value: new Date(toDateVal.setDate(toDateVal.getDate() + 1)).toISOString(),
95
+ relation: false
96
+ });
97
+ }
98
+ tx.query(`
99
+ create temp table temp_op_calculation on commit drop as (
100
+ select drg1.id, sum(case when wboi."remainQty" >= op.release_qty then 0 else 1 end) as insufficient_count, count(*) as total_row
101
+ from draft_release_goods drg1
102
+ left join order_products op on drg1.id = op.draft_release_good_id
103
+ left join warehouse_bizplace_onhand_inventories wboi
104
+ on (wboi."productId" = op.product_id or wboi."productBundleId" = op.product_id)
105
+ and wboi."packingType" = op.packing_type
106
+ and wboi."packingSize" = op.packing_size
107
+ and wboi.uom = op.uom
108
+ and wboi."domainId" = op.domain_id
109
+ and wboi."bizplaceId" = op.bizplace_id
110
+ where op.domain_id = $1 and drg1.status ='DRAFT'
111
+ group by drg1.id
112
+ )
113
+ `, [domain.id]);
114
+ const qb = tx.getRepository(draft_release_good_1.DraftReleaseGood).createQueryBuilder('drg');
115
+ (0, shell_1.buildQuery)(qb, params, context);
116
+ qb.addSelect('COALESCE("cc".rank, 99999)', 'rank');
117
+ qb.addSelect(`CASE WHEN "drg".status = 'DRAFT' and (tmp_calc.insufficient_count > 0 or tmp_calc.total_row = 0) then 'INSUFFICIENT' else "drg".status END`, 'computed_status');
118
+ qb.leftJoin(`temp_op_calculation`, 'tmp_calc', 'tmp_calc.id = drg.id');
119
+ qb.leftJoinAndSelect('drg.domain', 'domain');
120
+ qb.leftJoinAndSelect('drg.bizplace', 'bizplace');
121
+ qb.leftJoinAndSelect('drg.creator', 'creator');
122
+ qb.leftJoinAndSelect('drg.updater', 'updater');
123
+ qb.leftJoinAndSelect('drg.deliverTo', 'deliverTo');
124
+ qb.leftJoin(subQuery => {
125
+ return subQuery
126
+ .select(`ccd.rank`, 'rank')
127
+ .addSelect(`ccd.name`, 'status')
128
+ .from(`common_code_details`, 'ccd')
129
+ .innerJoin(`ccd.commonCode`, 'cc')
130
+ .where(`ccd.domain_id = :domainId`, { domainId: domain.id })
131
+ .andWhere(`cc.name = 'ODO_REQUESTS_STATUS'`);
132
+ }, 'cc', 'cc.status = drg.status');
133
+ if (skuFilter) {
134
+ qb.andWhere(`
135
+ exists (
136
+ select * from order_products op
137
+ inner join products p on op.product_id = p.id
138
+ where op.draft_release_good_id = drg.id
139
+ and lower(p.sku) ilike :sku
140
+ )
141
+ `, { sku: skuFilter.value.toLowerCase() });
142
+ }
143
+ if (noOfItemsFilter) {
144
+ qb.andWhere(`
145
+ exists (
146
+ select numberFilterOp.product_id from order_products numberFilterOp
147
+ where numberFilterOp.draft_release_good_id = drg.id
148
+ group by numberFilterOp.product_id having count(*) ${noOfItemsFilter.value == 1 ? ' = 1' : '> 1'}
149
+ )
150
+ `);
151
+ }
152
+ if (statusFilter) {
153
+ if (statusFilter.value == constants_1.DRAFT_RELEASE_ORDER_STATUS.DRAFT) {
154
+ qb.andWhere(`
155
+ drg.status = 'DRAFT' AND tmp_calc.insufficient_count = 0 AND tmp_calc.total_row > 0
156
+ `);
157
+ }
158
+ else if (statusFilter.value == constants_1.DRAFT_RELEASE_ORDER_STATUS.INSUFFICIENT) {
159
+ qb.andWhere(`
160
+ drg.status = 'DRAFT' AND (tmp_calc.insufficient_count > 0 OR tmp_calc.total_row = 0)
161
+ `);
162
+ }
163
+ else {
164
+ qb.andWhere(`
165
+ drg.status = '${statusFilter.value}'
166
+ `);
167
+ }
168
+ }
169
+ const arrChildSortData = ['bizplace', 'creator'];
170
+ const sort = (params.sortings || []).reduce((acc, sort) => (Object.assign(Object.assign({}, acc), { [arrChildSortData.indexOf(sort.name) >= 0 ? sort.name + '.name' : 'drg.' + sort.name]: sort.desc
171
+ ? 'DESC'
172
+ : 'ASC' })), params.sortings.length < 1 ? { rank: 'ASC', 'drg.createdAt': 'DESC' } : {});
173
+ qb.orderBy(sort);
174
+ let [items, total] = await Promise.all([qb.getRawMany(), qb.getCount()]);
175
+ items = items.map(itm => {
176
+ return {
177
+ id: itm.drg_id,
178
+ name: itm.drg_name,
179
+ description: itm.drg_description,
180
+ type: itm.drg_type,
181
+ releaseDate: itm.drg_release_date,
182
+ exportOption: itm.drg_export_option,
183
+ ownTransport: itm.drg_own_transport,
184
+ bizplace: { id: itm.bizplace_id, name: itm.bizplace_name, description: itm.bizplace_description },
185
+ refNo: itm.drg_ref_no,
186
+ refNo2: itm.drg_ref_no_2,
187
+ refNo3: itm.drg_ref_no_3,
188
+ status: itm.computed_status,
189
+ createdAt: itm.drg_created_at,
190
+ creator: { id: itm.creator_id, name: itm.creator_name, description: itm.creator_description },
191
+ updatedAt: itm.drg_updated_at,
192
+ updater: { id: itm.updater_id, name: itm.updater_name, description: itm.updater_description }
193
+ };
194
+ });
195
+ return { items, total };
196
+ }
197
+ catch (error) {
198
+ throw error;
199
+ }
200
+ }
201
+ };
202
+ __decorate([
203
+ (0, type_graphql_1.Query)(returns => draft_release_good_1.DraftReleaseGood, { description: 'To fetch a DraftReleaseGood' }),
204
+ __param(0, (0, type_graphql_1.Arg)('id')),
205
+ __param(1, (0, type_graphql_1.Ctx)()),
206
+ __metadata("design:type", Function),
207
+ __metadata("design:paramtypes", [String, Object]),
208
+ __metadata("design:returntype", Promise)
209
+ ], DraftReleaseGoodQuery.prototype, "draftReleaseGood", null);
210
+ __decorate([
211
+ (0, type_graphql_1.Directive)('@transaction'),
212
+ (0, type_graphql_1.Query)(returns => draft_release_good_1.DraftReleaseGood, { description: 'To fetch a DraftReleaseGood' }),
213
+ __param(0, (0, type_graphql_1.Arg)('name')),
214
+ __param(1, (0, type_graphql_1.Ctx)()),
215
+ __metadata("design:type", Function),
216
+ __metadata("design:paramtypes", [String, Object]),
217
+ __metadata("design:returntype", Promise)
218
+ ], DraftReleaseGoodQuery.prototype, "draftReleaseGoodByName", null);
219
+ __decorate([
220
+ (0, type_graphql_1.Directive)('@transaction'),
221
+ (0, type_graphql_1.Query)(returns => draft_release_good_type_1.DraftReleaseGoodList, { description: 'To fetch multiple DraftReleaseGoods' }),
222
+ __param(0, (0, type_graphql_1.Args)()),
223
+ __param(1, (0, type_graphql_1.Ctx)()),
224
+ __metadata("design:type", Function),
225
+ __metadata("design:paramtypes", [typeof (_a = typeof shell_1.ListParam !== "undefined" && shell_1.ListParam) === "function" ? _a : Object, Object]),
226
+ __metadata("design:returntype", Promise)
227
+ ], DraftReleaseGoodQuery.prototype, "draftReleaseGoods", null);
228
+ DraftReleaseGoodQuery = __decorate([
229
+ (0, type_graphql_1.Resolver)(draft_release_good_1.DraftReleaseGood)
230
+ ], DraftReleaseGoodQuery);
231
+ exports.DraftReleaseGoodQuery = DraftReleaseGoodQuery;
232
+ async function getDraftReleaseGoodFunction(_, name, context, tx) {
233
+ var _a;
234
+ try {
235
+ const { domain, user, bizplace } = context.state;
236
+ let permittedBizplaces = await (0, biz_base_1.getPermittedBizplaces)(domain, user);
237
+ let result = await tx.getRepository(draft_release_good_1.DraftReleaseGood).findOne({
238
+ where: { domain, name, bizplace: (0, typeorm_1.In)(permittedBizplaces.map(biz => biz.id)) },
239
+ relations: [
240
+ 'releaseGood',
241
+ 'orderProducts',
242
+ 'orderProducts.product',
243
+ 'orderProducts.productBundle',
244
+ 'shippingOrder',
245
+ 'bizplace',
246
+ 'domain',
247
+ 'creator',
248
+ 'updater'
249
+ ]
250
+ });
251
+ if (!(result === null || result === void 0 ? void 0 : result.id))
252
+ throw new Error(`Failed to find draft release good ${name}`);
253
+ let foundPermittedBizplace;
254
+ let companyBizplace;
255
+ if (result.bizplace.id) {
256
+ foundPermittedBizplace = permittedBizplaces.find(biz => biz.id == result.bizplace.id);
257
+ if (foundPermittedBizplace) {
258
+ if (!((_a = foundPermittedBizplace.company) === null || _a === void 0 ? void 0 : _a.id)) {
259
+ foundPermittedBizplace = await tx.getRepository(biz_base_1.Bizplace).findOne(foundPermittedBizplace.id, {
260
+ relations: ['company', 'company.domain']
261
+ });
262
+ }
263
+ const companyDomain = foundPermittedBizplace.company.domain;
264
+ companyBizplace = await tx.getRepository(biz_base_1.Bizplace).findOne({ where: { domain: companyDomain } });
265
+ }
266
+ }
267
+ const bizplaces = [foundPermittedBizplace, companyBizplace];
268
+ let productInventory;
269
+ if (result.orderProducts.length > 0)
270
+ productInventory = await utils_1.InventoryUtil.bizplaceProductInventory(bizplaces, { filters: [{ name: 'productId', operator: 'in', value: [...result.orderProducts.filter(itm => itm === null || itm === void 0 ? void 0 : itm.product).map(itm => { return itm.product.id; }), ...result.orderProducts.filter(itm => itm === null || itm === void 0 ? void 0 : itm.productBundle).map(itm => { return itm.productBundle.id; })] }] }, context, tx);
271
+ result.orderProducts = result.orderProducts.map(itm => {
272
+ let foundProductInv = productInventory === null || productInventory === void 0 ? void 0 : productInventory.items.find(i => { var _a, _b; return (i.productId == ((_a = itm === null || itm === void 0 ? void 0 : itm.product) === null || _a === void 0 ? void 0 : _a.id) || i.productId == ((_b = itm === null || itm === void 0 ? void 0 : itm.productBundle) === null || _b === void 0 ? void 0 : _b.id)) && i.packingType == itm.packingType && i.packingSize == itm.packingSize && i.uom == itm.uom; });
273
+ return Object.assign(Object.assign({}, itm), { product: itm.product || { id: foundProductInv.productId, name: foundProductInv.productName, brand: foundProductInv.productBrand, sku: foundProductInv.productSKU }, groupType: foundProductInv ? foundProductInv.groupType : 'SINGLE', remainQty: foundProductInv ? foundProductInv.remainQty : 0, remainUomValue: foundProductInv ? foundProductInv.remainUomValue : 0, remainUomValueWithUom: foundProductInv ? foundProductInv.remainUomValueWithUom : 0 });
274
+ });
275
+ const foundAttachments = await tx.getRepository(attachment_base_1.Attachment).find({
276
+ where: {
277
+ domain,
278
+ refBy: result.id,
279
+ category: constants_2.ATTACHMENT_TYPE.DGRN
280
+ }
281
+ });
282
+ return Object.assign(Object.assign({}, result), { attachment: foundAttachments });
283
+ }
284
+ catch (error) {
285
+ console.error(error);
286
+ }
287
+ }
288
+ exports.getDraftReleaseGoodFunction = getDraftReleaseGoodFunction;
289
+ //# sourceMappingURL=draft-release-good-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"draft-release-good-query.js","sourceRoot":"","sources":["../../../server/service/draft-release-good/draft-release-good-query.ts"],"names":[],"mappings":"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"}