@things-factory/sales-base 4.3.47 → 4.3.52

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 (28) hide show
  1. package/dist-server/constants/order.js +2 -1
  2. package/dist-server/constants/order.js.map +1 -1
  3. package/dist-server/service/arrival-notice/arrival-notice-mutation.js +93 -21
  4. package/dist-server/service/arrival-notice/arrival-notice-mutation.js.map +1 -1
  5. package/dist-server/service/manifest/manifest-mutation.js +78 -1
  6. package/dist-server/service/manifest/manifest-mutation.js.map +1 -1
  7. package/dist-server/service/manifest/manifest-query.js +47 -12
  8. package/dist-server/service/manifest/manifest-query.js.map +1 -1
  9. package/dist-server/service/manifest/manifest-type.js +8 -0
  10. package/dist-server/service/manifest/manifest-type.js.map +1 -1
  11. package/dist-server/service/manifest/manifest.js +5 -0
  12. package/dist-server/service/manifest/manifest.js.map +1 -1
  13. package/dist-server/service/purchase-order/purchase-order-mutation.js +8 -4
  14. package/dist-server/service/purchase-order/purchase-order-mutation.js.map +1 -1
  15. package/dist-server/service/release-good/release-good-query.js +70 -58
  16. package/dist-server/service/release-good/release-good-query.js.map +1 -1
  17. package/package.json +4 -4
  18. package/server/constants/order.ts +2 -1
  19. package/server/service/arrival-notice/arrival-notice-mutation.ts +110 -22
  20. package/server/service/manifest/manifest-mutation.ts +78 -3
  21. package/server/service/manifest/manifest-query.ts +68 -18
  22. package/server/service/manifest/manifest-type.ts +6 -0
  23. package/server/service/manifest/manifest.ts +6 -2
  24. package/server/service/purchase-order/purchase-order-mutation.ts +10 -5
  25. package/server/service/release-good/release-good-query.ts +81 -65
  26. package/translations/en.json +4 -0
  27. package/translations/ko.json +6 -2
  28. package/translations/ms.json +5 -1
@@ -62,52 +62,47 @@ export class ReleaseGoodQuery {
62
62
  buildQuery(qb, params, context)
63
63
  let items: any
64
64
  let total: number
65
- if (!params.filters.find((filter: any) => filter.name === 'releaseGoodOnly')) {
66
- qb.addSelect('COALESCE("cc".rank, 99999)', 'rank')
67
- qb.leftJoinAndSelect('rg.domain', 'domain')
68
- qb.leftJoinAndSelect('rg.bizplace', 'bizplace')
69
- qb.leftJoinAndSelect('rg.orderInventories', 'oi')
70
- qb.leftJoinAndSelect('rg.orderProducts', 'op')
71
- qb.leftJoinAndSelect('oi.inventory', 'inv')
72
- qb.leftJoinAndSelect('oi.product', 'prod')
73
- qb.leftJoinAndSelect('rg.arrivalNotice', 'an')
74
- qb.leftJoinAndSelect('rg.creator', 'creator')
75
- qb.leftJoinAndSelect('rg.updater', 'updater')
76
- qb.leftJoin(
77
- subQuery => {
78
- return subQuery
79
- .select(`ccd.rank`, 'rank')
80
- .addSelect(`ccd.name`, 'status')
81
- .from(`common_code_details`, 'ccd')
82
- .innerJoin(`ccd.commonCode`, 'cc')
83
- .where(`ccd.domain_id = :domainId`, { domainId: domain.id })
84
- .andWhere(`cc.name = 'RO_LIST_STATUS'`)
85
- },
86
- 'cc',
87
- 'cc.status = rg.status'
88
- )
65
+ qb.addSelect('COALESCE("cc".rank, 99999)', 'rank')
66
+ qb.leftJoinAndSelect('rg.domain', 'domain')
67
+ qb.leftJoinAndSelect('rg.bizplace', 'bizplace')
68
+ qb.leftJoinAndSelect('rg.orderInventories', 'oi')
69
+ qb.leftJoinAndSelect('rg.orderProducts', 'op')
70
+ qb.leftJoinAndSelect('oi.inventory', 'inv')
71
+ qb.leftJoinAndSelect('oi.product', 'prod')
72
+ qb.leftJoinAndSelect('rg.arrivalNotice', 'an')
73
+ qb.leftJoinAndSelect('rg.creator', 'creator')
74
+ qb.leftJoinAndSelect('rg.updater', 'updater')
75
+ qb.leftJoin(
76
+ subQuery => {
77
+ return subQuery
78
+ .select(`ccd.rank`, 'rank')
79
+ .addSelect(`ccd.name`, 'status')
80
+ .from(`common_code_details`, 'ccd')
81
+ .innerJoin(`ccd.commonCode`, 'cc')
82
+ .where(`ccd.domain_id = :domainId`, { domainId: domain.id })
83
+ .andWhere(`cc.name = 'RO_LIST_STATUS'`)
84
+ },
85
+ 'cc',
86
+ 'cc.status = rg.status'
87
+ )
89
88
 
90
- const arrChildSortData = ['bizplace']
91
- const sort = (params.sortings || []).reduce(
92
- (acc, sort) => ({
93
- ...acc,
94
- [arrChildSortData.indexOf(sort.name) >= 0 ? sort.name + '.name' : 'rg.' + sort.name]: sort.desc
95
- ? 'DESC'
96
- : 'ASC'
97
- }),
98
- !params.sortings.some(e => e.name === 'status') ? { rank: 'ASC' } : {}
99
- )
89
+ const arrChildSortData = ['bizplace']
90
+ const sort = (params.sortings || []).reduce(
91
+ (acc, sort) => ({
92
+ ...acc,
93
+ [arrChildSortData.indexOf(sort.name) >= 0 ? sort.name + '.name' : 'rg.' + sort.name]: sort.desc
94
+ ? 'DESC'
95
+ : 'ASC'
96
+ }),
97
+ !params.sortings.some(e => e.name === 'status') ? { rank: 'ASC' } : {}
98
+ )
100
99
 
101
- qb.orderBy(sort)
100
+ qb.orderBy(sort)
101
+
102
+ let [itemsRes, totalRes] = await qb.getManyAndCount()
103
+ items = itemsRes
104
+ total = totalRes
102
105
 
103
- let [itemsRes, totalRes] = await qb.getManyAndCount()
104
- items = itemsRes
105
- total = totalRes
106
- } else {
107
- let itemsRes = await qb.getOne()
108
- items = itemsRes ? [itemsRes] : []
109
- total = items.length
110
- }
111
106
  return { items, total }
112
107
  } catch (error) {
113
108
  throw error
@@ -116,30 +111,51 @@ export class ReleaseGoodQuery {
116
111
 
117
112
  @Directive('@privilege(category: "order", privilege: "query")')
118
113
  @Query(returns => ReleaseGood)
119
- async releaseGood(@Ctx() context: any, @Arg('name') name: string): Promise<ReleaseGood> {
114
+ async releaseGood(
115
+ @Ctx() context: any,
116
+ @Arg('name', { nullable: true }) name: string,
117
+ @Arg('trackingNo', { nullable: true }) trackingNo: string
118
+ ): Promise<ReleaseGood> {
120
119
  const { domain, user }: { domain: Domain; user: User } = context.state
121
120
 
122
- return await getRepository(ReleaseGood).findOne({
123
- where: {
124
- domain,
125
- name,
126
- bizplace: In(await getPermittedBizplaceIds(domain, user))
127
- },
128
- relations: [
129
- 'domain',
130
- 'bizplace',
131
- 'shippingOrder',
132
- 'arrivalNotice',
133
- 'orderInventories',
134
- 'orderInventories.product',
135
- 'orderInventories.inventory',
136
- 'orderInventories.inventory.product',
137
- 'orderVass',
138
- 'orderVass.vas',
139
- 'creator',
140
- 'updater'
141
- ]
142
- })
121
+ if (name) {
122
+ return await getRepository(ReleaseGood).findOne({
123
+ where: {
124
+ domain,
125
+ name,
126
+ bizplace: In(await getPermittedBizplaceIds(domain, user))
127
+ },
128
+ relations: [
129
+ 'domain',
130
+ 'bizplace',
131
+ 'shippingOrder',
132
+ 'arrivalNotice',
133
+ 'orderInventories',
134
+ 'orderInventories.product',
135
+ 'orderInventories.inventory',
136
+ 'orderInventories.inventory.product',
137
+ 'orderVass',
138
+ 'orderVass.vas',
139
+ 'creator',
140
+ 'updater'
141
+ ]
142
+ })
143
+ } else if (trackingNo) {
144
+ let releaseGood = await getRepository(ReleaseGood).findOne({
145
+ where: {
146
+ domain,
147
+ trackingNo,
148
+ bizplace: In(await getPermittedBizplaceIds(domain, user))
149
+ },
150
+ relations: ['bizplace']
151
+ })
152
+
153
+ if (!releaseGood) {
154
+ throw new Error('Tracking No not found in any orders')
155
+ } else {
156
+ return releaseGood
157
+ }
158
+ }
143
159
  }
144
160
 
145
161
  @Directive('@privilege(category: "order", privilege: "query")')
@@ -1,4 +1,8 @@
1
1
  {
2
+ "error.Manifest(s) (x) already in open status": "Manifest(s) ({x}) already in open status",
3
+ "error.release_order_not_found": "release order not found",
4
+ "error.tracking_no_already_scanned_before": "tracking no already scanned before",
5
+ "error.tracking_no_belongs_to_x": "tracking no belongs to {x}",
2
6
  "field.customer": "customer",
3
7
  "field.issued_on": "issued on",
4
8
  "field.payment_due": "payment due",
@@ -16,5 +16,9 @@
16
16
  "field.options": "옵션",
17
17
  "field.unit": "단위",
18
18
  "field.start_at": "시작 시간",
19
- "field.end_at": "완료 시간"
20
- }
19
+ "field.end_at": "완료 시간",
20
+ "error.Manifest(s) (x) already in open status": "[ko] Manifest(s) ({x}) already in open status",
21
+ "error.release_order_not_found": "[ko] release order not found",
22
+ "error.tracking_no_belongs_to_x": "[ko] tracking no belongs to {x}",
23
+ "error.tracking_no_already_scanned_before": "[ko] tracking no already scanned before"
24
+ }
@@ -16,5 +16,9 @@
16
16
  "field.options": "pilihan-pilihan",
17
17
  "field.unit": "unit",
18
18
  "field.start_at": "bermula pada",
19
- "field.end_at": "berakhir pada"
19
+ "field.end_at": "berakhir pada",
20
+ "error.Manifest(s) (x) already in open status": "[ms] Manifest(s) ({x}) already in open status",
21
+ "error.release_order_not_found": "[ms] release order not found",
22
+ "error.tracking_no_belongs_to_x": "[ms] tracking no belongs to {x}",
23
+ "error.tracking_no_already_scanned_before": "[ms] tracking no already scanned before"
20
24
  }