@things-factory/sales-base 4.3.143 → 4.3.146

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 (55) hide show
  1. package/dist-server/service/index.js +39 -25
  2. package/dist-server/service/index.js.map +1 -1
  3. package/dist-server/service/manifest/manifest-mutation.js +13 -9
  4. package/dist-server/service/manifest/manifest-mutation.js.map +1 -1
  5. package/dist-server/service/manifest/manifest-query.js +14 -24
  6. package/dist-server/service/manifest/manifest-query.js.map +1 -1
  7. package/dist-server/service/order-package/index.js +9 -0
  8. package/dist-server/service/order-package/index.js.map +1 -0
  9. package/dist-server/service/order-package/order-package-mutation.js +120 -0
  10. package/dist-server/service/order-package/order-package-mutation.js.map +1 -0
  11. package/dist-server/service/order-package/order-package-query.js +119 -0
  12. package/dist-server/service/order-package/order-package-query.js.map +1 -0
  13. package/dist-server/service/order-package/order-package-types.js +105 -0
  14. package/dist-server/service/order-package/order-package-types.js.map +1 -0
  15. package/dist-server/service/order-package/order-package.js +147 -0
  16. package/dist-server/service/order-package/order-package.js.map +1 -0
  17. package/dist-server/service/order-package-item/index.js +9 -0
  18. package/dist-server/service/order-package-item/index.js.map +1 -0
  19. package/dist-server/service/order-package-item/order-package-item-mutation.js +120 -0
  20. package/dist-server/service/order-package-item/order-package-item-mutation.js.map +1 -0
  21. package/dist-server/service/order-package-item/order-package-item-query.js +126 -0
  22. package/dist-server/service/order-package-item/order-package-item-query.js.map +1 -0
  23. package/dist-server/service/order-package-item/order-package-item-types.js +87 -0
  24. package/dist-server/service/order-package-item/order-package-item-types.js.map +1 -0
  25. package/dist-server/service/order-package-item/order-package-item.js +123 -0
  26. package/dist-server/service/order-package-item/order-package-item.js.map +1 -0
  27. package/dist-server/service/order-product/order-product.js +6 -0
  28. package/dist-server/service/order-product/order-product.js.map +1 -1
  29. package/dist-server/service/others/other-query.js +19 -17
  30. package/dist-server/service/others/other-query.js.map +1 -1
  31. package/dist-server/service/release-good/release-good-query.js +15 -4
  32. package/dist-server/service/release-good/release-good-query.js.map +1 -1
  33. package/dist-server/service/release-good/release-good.js +10 -0
  34. package/dist-server/service/release-good/release-good.js.map +1 -1
  35. package/dist-server/utils/order-no-generator.js +7 -0
  36. package/dist-server/utils/order-no-generator.js.map +1 -1
  37. package/package.json +14 -14
  38. package/server/service/index.ts +41 -29
  39. package/server/service/manifest/manifest-mutation.ts +18 -9
  40. package/server/service/manifest/manifest-query.ts +22 -30
  41. package/server/service/order-package/index.ts +6 -0
  42. package/server/service/order-package/order-package-mutation.ts +113 -0
  43. package/server/service/order-package/order-package-query.ts +86 -0
  44. package/server/service/order-package/order-package-types.ts +66 -0
  45. package/server/service/order-package/order-package.ts +118 -0
  46. package/server/service/order-package-item/index.ts +6 -0
  47. package/server/service/order-package-item/order-package-item-mutation.ts +113 -0
  48. package/server/service/order-package-item/order-package-item-query.ts +89 -0
  49. package/server/service/order-package-item/order-package-item-types.ts +51 -0
  50. package/server/service/order-package-item/order-package-item.ts +102 -0
  51. package/server/service/order-product/order-product.ts +5 -0
  52. package/server/service/others/other-query.ts +25 -25
  53. package/server/service/release-good/release-good-query.ts +26 -10
  54. package/server/service/release-good/release-good.ts +9 -0
  55. package/server/utils/order-no-generator.ts +11 -0
@@ -0,0 +1,51 @@
1
+ import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'
2
+
3
+ import { OrderPackageItem } from './order-package-item'
4
+
5
+ @InputType()
6
+ export class NewOrderPackageItem {
7
+ @Field()
8
+ name: string
9
+
10
+ @Field({ nullable: true })
11
+ status?: string
12
+ }
13
+
14
+ @InputType()
15
+ export class OrderPackageItemPatch {
16
+ @Field(type => ID, { nullable: true })
17
+ id?: string
18
+
19
+ @Field({ nullable: true })
20
+ name?: string
21
+
22
+ @Field({ nullable: true })
23
+ releaseQty?: number
24
+
25
+ @Field({ nullable: true })
26
+ status?: string
27
+
28
+ @Field()
29
+ cuFlag: string
30
+ }
31
+
32
+ @ObjectType()
33
+ export class OrderPackageItemList {
34
+ @Field(type => [OrderPackageItem])
35
+ items: OrderPackageItem[]
36
+
37
+ @Field(type => Int)
38
+ total: number
39
+ }
40
+
41
+ @ObjectType()
42
+ export class TrackingInformation {
43
+ @Field(type => String)
44
+ trackingNo: string
45
+
46
+ @Field(type => String)
47
+ sku: string
48
+
49
+ @Field(type => String)
50
+ releaseQty: number
51
+ }
@@ -0,0 +1,102 @@
1
+ import { Field, ID, ObjectType } from 'type-graphql'
2
+ import {
3
+ Column,
4
+ CreateDateColumn,
5
+ Entity,
6
+ Index,
7
+ ManyToOne,
8
+ PrimaryGeneratedColumn,
9
+ RelationId,
10
+ UpdateDateColumn
11
+ } from 'typeorm'
12
+
13
+ import { User } from '@things-factory/auth-base'
14
+ import { Bizplace } from '@things-factory/biz-base'
15
+ import { Domain } from '@things-factory/shell'
16
+
17
+ import { OrderPackage, OrderProduct } from '../'
18
+
19
+ @Entity()
20
+ @Index(
21
+ 'ix_order_package_item_0',
22
+ (orderPackageItem: OrderPackageItem) => [orderPackageItem.domain, orderPackageItem.name],
23
+ { unique: true }
24
+ )
25
+ @ObjectType({ description: 'Entity for OrderPackageItem' })
26
+ export class OrderPackageItem {
27
+ @PrimaryGeneratedColumn('uuid')
28
+ @Field(type => ID)
29
+ readonly id: string
30
+
31
+ @ManyToOne(type => Domain)
32
+ @Field({ nullable: true })
33
+ domain?: Domain
34
+
35
+ @RelationId((orderPackageItem: OrderPackageItem) => orderPackageItem.domain)
36
+ domainId?: string
37
+
38
+ @ManyToOne(type => Bizplace)
39
+ @Field(type => Bizplace, { nullable: true })
40
+ bizplace?: Bizplace
41
+
42
+ @RelationId((orderPackageItem: OrderPackageItem) => orderPackageItem.bizplace)
43
+ bizplaceId?: string
44
+
45
+ @ManyToOne(type => OrderPackage)
46
+ @Field(type => OrderPackage, { nullable: true })
47
+ orderPackage?: OrderPackage
48
+
49
+ @RelationId((orderPackageItem: OrderPackageItem) => orderPackageItem.orderPackage)
50
+ orderPackageId?: string
51
+
52
+ @ManyToOne(type => OrderProduct)
53
+ @Field(type => OrderProduct, { nullable: true })
54
+ orderProduct?: OrderProduct
55
+
56
+ @RelationId((orderPackageItem: OrderPackageItem) => orderPackageItem.orderProduct)
57
+ orderProductId?: string
58
+
59
+ @Column()
60
+ @Field()
61
+ name: string
62
+
63
+ @Column({
64
+ nullable: true
65
+ })
66
+ @Field({ nullable: true })
67
+ status?: string
68
+
69
+ @Column({ nullable: true })
70
+ @Field({ nullable: true })
71
+ releaseQty: number
72
+
73
+ @Column({ nullable: true })
74
+ @Field({ nullable: true })
75
+ packedQty: number
76
+
77
+ @CreateDateColumn()
78
+ @Field({ nullable: true })
79
+ createdAt?: Date
80
+
81
+ @UpdateDateColumn()
82
+ @Field({ nullable: true })
83
+ updatedAt?: Date
84
+
85
+ @ManyToOne(type => User, {
86
+ nullable: true
87
+ })
88
+ @Field({ nullable: true })
89
+ creator?: User
90
+
91
+ @RelationId((orderPackageItem: OrderPackageItem) => orderPackageItem.creator)
92
+ creatorId?: string
93
+
94
+ @ManyToOne(type => User, {
95
+ nullable: true
96
+ })
97
+ @Field({ nullable: true })
98
+ updater?: User
99
+
100
+ @RelationId((orderPackageItem: OrderPackageItem) => orderPackageItem.creator)
101
+ updaterId?: string
102
+ }
@@ -22,6 +22,7 @@ import { CollectionOrder } from '../collection-order/collection-order'
22
22
  import { DeliveryOrder } from '../delivery-order/delivery-order'
23
23
  import { DraftReleaseGood } from '../draft-release-good/draft-release-good'
24
24
  import { OrderInventory } from '../order-inventory/order-inventory'
25
+ import { OrderPackageItem } from '../order-package-item/order-package-item'
25
26
  import { PurchaseOrder } from '../purchase-order/purchase-order'
26
27
  import { ReleaseGood } from '../release-good/release-good'
27
28
  import { RetailReplenishmentOrder } from '../retail-replenishment-order/retail-replenishment-order'
@@ -131,6 +132,10 @@ export class OrderProduct {
131
132
  @Field(type => [OrderInventory], { nullable: true })
132
133
  orderInventories: OrderInventory
133
134
 
135
+ @OneToMany(type => OrderPackageItem, orderPackageItem => orderPackageItem.orderProduct)
136
+ @Field(type => [OrderPackageItem], { nullable: true })
137
+ orderPackageItems: OrderPackageItem[]
138
+
134
139
  @ManyToOne(type => RetailReplenishmentOrder)
135
140
  @Field(type => RetailReplenishmentOrder, { nullable: true })
136
141
  retailReplenishmentOrder: RetailReplenishmentOrder
@@ -206,30 +206,30 @@ export class OtherQuery {
206
206
 
207
207
  let packageUomValue = availableItem ? availableItem.remainUomValue / availableItem.remainQty : null
208
208
  const newOrderInventory: any = {
209
- product:
210
- total > 0 ? { id: items[0].productId, sku: items[0].productSKU, name: items[0].productName } : { id: null },
211
- productDetail: total > 0 ? { id: items[0].productDetailId } : null,
212
- inventory:
213
- total > 0
214
- ? {
215
- ...items[0],
216
- remainQty: total > 0 ? items[0].remainQty : null,
217
- remainUomValue: total > 0 ? items[0].remainUomValue : null,
218
- remainUomValueWithUom: total > 0 ? items[0].remainUomValueWithUom : ''
219
- }
220
- : null,
221
- productId: total > 0 ? items[0].productId : null,
222
- productDetailID: total > 0 ? items[0].productDetailId : null,
223
- productSKU: total > 0 ? items[0].productSKU : orderInventory.productSKU,
224
- productName: total > 0 ? items[0].productName : null,
225
- uom: total > 0 ? items[0].uom : null,
226
- remainQty: total > 0 ? items[0].remainQty : null,
227
- remainUomValue: total > 0 ? items[0].remainUomValue : null,
228
- remainUomValueWithUom: total > 0 ? items[0].remainUomValueWithUom : '',
229
- batchId: total > 0 ? items[0].batchId : null,
230
- batchIdRef: total > 0 ? items[0].batchIdRef : null,
231
- packingType: total > 0 ? items[0].packingType : orderInventory.packingType,
232
- packingSize: total > 0 ? items[0].packingSize : 1,
209
+ product: availableItem
210
+ ? { id: availableItem.productId, sku: availableItem.productSKU, name: availableItem.productName }
211
+ : { id: null },
212
+ productDetail: availableItem ? { id: availableItem.productDetailId } : null,
213
+ inventory: availableItem
214
+ ? {
215
+ ...availableItem,
216
+ remainQty: availableItem ? availableItem.remainQty : null,
217
+ remainUomValue: availableItem ? availableItem.remainUomValue : null,
218
+ remainUomValueWithUom: availableItem ? availableItem.remainUomValueWithUom : ''
219
+ }
220
+ : null,
221
+ productId: availableItem ? availableItem.productId : null,
222
+ productDetailID: availableItem ? availableItem.productDetailId : null,
223
+ productSKU: availableItem ? availableItem.productSKU : orderInventory.productSKU,
224
+ productName: availableItem ? availableItem.productName : null,
225
+ uom: availableItem ? availableItem.uom : null,
226
+ remainQty: availableItem ? availableItem.remainQty : null,
227
+ remainUomValue: availableItem ? availableItem.remainUomValue : null,
228
+ remainUomValueWithUom: availableItem ? availableItem.remainUomValueWithUom : '',
229
+ batchId: availableItem ? availableItem.batchId : null,
230
+ batchIdRef: availableItem ? availableItem.batchIdRef : null,
231
+ packingType: availableItem ? availableItem.packingType : orderInventory.packingType,
232
+ packingSize: availableItem ? availableItem.packingSize : 1,
233
233
  releaseQty: orderInventory.releaseQty
234
234
  ? Number.isInteger(orderInventory.releaseQty)
235
235
  ? orderInventory.releaseQty
@@ -241,7 +241,7 @@ export class OtherQuery {
241
241
  : null
242
242
  : null,
243
243
  groupType: availableItem ? availableItem.groupType : null,
244
- isError: !availableItem || !orderInventory.releaseQty || !orderInventory.packingType ? true : false
244
+ isError: !availableItem || !orderInventory.releaseQty ? true : false
245
245
  }
246
246
 
247
247
  newOrderInventories.push(newOrderInventory)
@@ -10,6 +10,7 @@ import { Inventory, LOCATION_TYPE } from '@things-factory/warehouse-base'
10
10
 
11
11
  import { ATTACHMENT_TYPE, ORDER_INVENTORY_STATUS, ORDER_STATUS } from '../../constants'
12
12
  import { OrderInventory } from '../order-inventory/order-inventory'
13
+ import { OrderPackage } from '../order-package/order-package'
13
14
  import { ShippingOrder } from '../shipping-order/shipping-order'
14
15
  import { ReleaseGood } from './release-good'
15
16
  import { NewReleaseGood, ReleasableInventoryList, ReleaseGoodList } from './release-good-types'
@@ -182,6 +183,7 @@ export class ReleaseGoodQuery {
182
183
  'arrivalNotice',
183
184
  'orderProducts',
184
185
  'orderProducts.product',
186
+ 'orderPackages',
185
187
  'orderVass',
186
188
  'orderVass.vas',
187
189
  'orderVass.targetProduct',
@@ -492,16 +494,30 @@ export class ReleaseGoodQuery {
492
494
 
493
495
  let [items, total] = await qb.getManyAndCount()
494
496
 
495
- items = items
496
- .filter(item => {
497
- return item.domainId === domain.id
498
- })
499
- .map(item => {
500
- return {
501
- ...item,
502
- orderRemark: item?.remark ? true : false
503
- }
504
- })
497
+ items = await Promise.all(
498
+ items
499
+ .filter(item => {
500
+ return item.domainId === domain.id
501
+ })
502
+ .map(async item => {
503
+ const orderPackages: OrderPackage[] = await getRepository(OrderPackage).find({
504
+ where: { releaseGood: item, domain, bizplace: item.bizplace }
505
+ })
506
+ return {
507
+ ...item,
508
+ transporter: orderPackages?.length
509
+ ? [
510
+ ...new Set(
511
+ orderPackages.map(op => {
512
+ return op.transporter
513
+ })
514
+ )
515
+ ].join(', ')
516
+ : null,
517
+ orderRemark: item?.remark ? true : false
518
+ }
519
+ })
520
+ )
505
521
  console.timeEnd('t1')
506
522
  return { items, total }
507
523
  } catch (error) {
@@ -25,6 +25,7 @@ import {
25
25
  InventoryInfos,
26
26
  Manifest,
27
27
  OrderInventory,
28
+ OrderPackage,
28
29
  OrderProduct,
29
30
  OrderVas,
30
31
  ShippingOrder,
@@ -159,6 +160,10 @@ export class ReleaseGood {
159
160
  @Field(type => [OrderProduct], { nullable: true })
160
161
  orderProducts: OrderProduct[]
161
162
 
163
+ @OneToMany(type => OrderPackage, orderPackage => orderPackage.releaseGood)
164
+ @Field(type => [OrderPackage], { nullable: true })
165
+ orderPackages: OrderPackage[]
166
+
162
167
  @Column()
163
168
  @Field()
164
169
  status: string
@@ -307,6 +312,10 @@ export class ReleaseGood {
307
312
  @Field({ nullable: true })
308
313
  packageId: string
309
314
 
315
+ @Column({ nullable: true, default: false })
316
+ @Field({ nullable: true })
317
+ packOrderFail: Boolean
318
+
310
319
  @Column({ nullable: true })
311
320
  @Field({ nullable: true })
312
321
  transporter: string
@@ -50,6 +50,13 @@ export class OrderNoGenerator {
50
50
  }${currentDate.getDate()}${currentDate.getHours()}${currentDate.getMinutes()}${currentDate.getSeconds()}${currentDate.getMilliseconds()}`
51
51
  }
52
52
 
53
+ static orderPackage() {
54
+ const currentDate = new Date()
55
+ return `OPK-${currentDate.getFullYear()}${
56
+ currentDate.getMonth() + 1
57
+ }${currentDate.getDate()}${currentDate.getHours()}${currentDate.getMinutes()}${currentDate.getSeconds()}${currentDate.getMilliseconds()}`
58
+ }
59
+
53
60
  static orderInventory() {
54
61
  return uuidv4()
55
62
  }
@@ -58,6 +65,10 @@ export class OrderNoGenerator {
58
65
  return `OP-${uuidv4()}`
59
66
  }
60
67
 
68
+ static orderPackageItem() {
69
+ return `OPKI-${uuidv4()}`
70
+ }
71
+
61
72
  static invoiceProduct() {
62
73
  return `IP-${uuidv4()}`
63
74
  }