@things-factory/sales-base 4.0.11 → 4.0.12

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 (77) hide show
  1. package/dist-server/constants/order.js +9 -1
  2. package/dist-server/constants/order.js.map +1 -1
  3. package/dist-server/constants/validation-error-code.js +2 -1
  4. package/dist-server/constants/validation-error-code.js.map +1 -1
  5. package/dist-server/controllers/ecommerce/sellercraft-controller.js +3 -3
  6. package/dist-server/controllers/ecommerce/sellercraft-controller.js.map +1 -1
  7. package/dist-server/service/arrival-notice/arrival-notice-mutation.js +21 -0
  8. package/dist-server/service/arrival-notice/arrival-notice-mutation.js.map +1 -1
  9. package/dist-server/service/arrival-notice/arrival-notice-query.js +74 -76
  10. package/dist-server/service/arrival-notice/arrival-notice-query.js.map +1 -1
  11. package/dist-server/service/delivery-order/delivery-order-query.js +21 -5
  12. package/dist-server/service/delivery-order/delivery-order-query.js.map +1 -1
  13. package/dist-server/service/goods-receival-note/goods-receival-note-query.js +93 -43
  14. package/dist-server/service/goods-receival-note/goods-receival-note-query.js.map +1 -1
  15. package/dist-server/service/index.js +4 -0
  16. package/dist-server/service/index.js.map +1 -1
  17. package/dist-server/service/manifest/index.js +9 -0
  18. package/dist-server/service/manifest/index.js.map +1 -0
  19. package/dist-server/service/manifest/manifest-mutation.js +120 -0
  20. package/dist-server/service/manifest/manifest-mutation.js.map +1 -0
  21. package/dist-server/service/manifest/manifest-query.js +87 -0
  22. package/dist-server/service/manifest/manifest-query.js.map +1 -0
  23. package/dist-server/service/manifest/manifest-type.js +85 -0
  24. package/dist-server/service/manifest/manifest-type.js.map +1 -0
  25. package/dist-server/service/manifest/manifest.js +117 -0
  26. package/dist-server/service/manifest/manifest.js.map +1 -0
  27. package/dist-server/service/order-inventory/order-inventory-mutation.js +24 -0
  28. package/dist-server/service/order-inventory/order-inventory-mutation.js.map +1 -1
  29. package/dist-server/service/order-inventory/order-inventory-query.js +20 -19
  30. package/dist-server/service/order-inventory/order-inventory-query.js.map +1 -1
  31. package/dist-server/service/order-inventory/order-inventory-types.js +17 -13
  32. package/dist-server/service/order-inventory/order-inventory-types.js.map +1 -1
  33. package/dist-server/service/order-inventory/order-inventory.js +24 -2
  34. package/dist-server/service/order-inventory/order-inventory.js.map +1 -1
  35. package/dist-server/service/others/other-query.js +1 -0
  36. package/dist-server/service/others/other-query.js.map +1 -1
  37. package/dist-server/service/release-good/release-good-mutation.js +33 -0
  38. package/dist-server/service/release-good/release-good-mutation.js.map +1 -1
  39. package/dist-server/service/release-good/release-good.js +28 -1
  40. package/dist-server/service/release-good/release-good.js.map +1 -1
  41. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js +56 -23
  42. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js.map +1 -1
  43. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js +76 -15
  44. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js.map +1 -1
  45. package/dist-server/utils/inventory-util.js +26 -7
  46. package/dist-server/utils/inventory-util.js.map +1 -1
  47. package/dist-server/utils/order-no-generator.js +35 -31
  48. package/dist-server/utils/order-no-generator.js.map +1 -1
  49. package/package.json +12 -12
  50. package/server/constants/index.ts +1 -1
  51. package/server/constants/order.ts +10 -0
  52. package/server/constants/validation-error-code.ts +3 -2
  53. package/server/controllers/ecommerce/sellercraft-controller.ts +4 -3
  54. package/server/service/arrival-notice/arrival-notice-mutation.ts +20 -0
  55. package/server/service/arrival-notice/arrival-notice-query.ts +82 -76
  56. package/server/service/delivery-order/delivery-order-query.ts +26 -7
  57. package/server/service/goods-receival-note/goods-receival-note-query.ts +116 -53
  58. package/server/service/index.ts +4 -0
  59. package/server/service/manifest/index.ts +6 -0
  60. package/server/service/manifest/manifest-mutation.ts +112 -0
  61. package/server/service/manifest/manifest-query.ts +43 -0
  62. package/server/service/manifest/manifest-type.ts +51 -0
  63. package/server/service/manifest/manifest.ts +98 -0
  64. package/server/service/order-inventory/order-inventory-mutation.ts +26 -1
  65. package/server/service/order-inventory/order-inventory-query.ts +17 -18
  66. package/server/service/order-inventory/order-inventory-types.ts +15 -10
  67. package/server/service/order-inventory/order-inventory.ts +24 -5
  68. package/server/service/others/other-query.ts +2 -6
  69. package/server/service/release-good/release-good-mutation.ts +45 -0
  70. package/server/service/release-good/release-good.ts +26 -0
  71. package/server/service/reverse-kitting-order/reverse-kitting-order-mutation.ts +76 -27
  72. package/server/service/reverse-kitting-order/reverse-kitting-order-query.ts +85 -17
  73. package/server/utils/inventory-util.ts +30 -7
  74. package/server/utils/order-no-generator.ts +43 -36
  75. package/dist-server/middlewares/index.js +0 -1
  76. package/dist-server/middlewares/index.js.map +0 -1
  77. package/server/middlewares/index.ts +0 -0
@@ -0,0 +1,51 @@
1
+ import { ObjectType, Field, InputType, Int, ID, registerEnumType } from 'type-graphql'
2
+
3
+ import { Manifest, ManifestStatus } from './manifest'
4
+
5
+ @InputType()
6
+ export class NewManifest {
7
+ @Field()
8
+ name: string
9
+
10
+ @Field({ nullable: true })
11
+ description?: string
12
+
13
+ @Field(type => ManifestStatus, { nullable: true })
14
+ state?: ManifestStatus
15
+
16
+ @Field({ nullable: true })
17
+ active?: boolean
18
+
19
+ @Field({ nullable: true })
20
+ params?: string
21
+ }
22
+
23
+ @InputType()
24
+ export class ManifestPatch {
25
+ @Field(type => ID, { nullable: true })
26
+ id?: string
27
+
28
+ @Field({ nullable: true })
29
+ name?: string
30
+
31
+ @Field({ nullable: true })
32
+ description?: string
33
+
34
+ @Field(type => ManifestStatus, { nullable: true })
35
+ state?: ManifestStatus
36
+
37
+ @Field({ nullable: true })
38
+ active?: boolean
39
+
40
+ @Field()
41
+ cuFlag: string
42
+ }
43
+
44
+ @ObjectType()
45
+ export class ManifestList {
46
+ @Field(type => [Manifest])
47
+ items: Manifest[]
48
+
49
+ @Field(type => Int)
50
+ total: number
51
+ }
@@ -0,0 +1,98 @@
1
+ import { Field, ID, ObjectType, registerEnumType } 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 { config } from '@things-factory/env'
15
+ import { Domain } from '@things-factory/shell'
16
+
17
+ const ORMCONFIG = config.get('ormconfig', {})
18
+ const DATABASE_TYPE = ORMCONFIG.type
19
+
20
+ export enum ManifestStatus {
21
+ OPEN = 'OPEN',
22
+ CLOSED = 'CLOSED'
23
+ }
24
+
25
+ registerEnumType(ManifestStatus, {
26
+ name: 'ManifestStatus',
27
+ description: 'state enumeration of a manifest'
28
+ })
29
+
30
+ @Entity()
31
+ @Index('ix_manifest_0', (manifest: Manifest) => [manifest.domain, manifest.name], { unique: true })
32
+ @ObjectType({ description: 'Entity for Manifest' })
33
+ export class Manifest {
34
+ @PrimaryGeneratedColumn('uuid')
35
+ @Field(type => ID)
36
+ readonly id: string
37
+
38
+ @ManyToOne(type => Domain)
39
+ @Field({ nullable: true })
40
+ domain?: Domain
41
+
42
+ @RelationId((manifest: Manifest) => manifest.domain)
43
+ domainId?: string
44
+
45
+ @Column()
46
+ @Field()
47
+ name: string
48
+
49
+ @Column({ nullable: true })
50
+ @Field({ nullable: true })
51
+ shippingProvider: string
52
+
53
+ @Column({ nullable: true })
54
+ @Field({ nullable: true })
55
+ dispatcherName: string
56
+
57
+ @Column({ nullable: true })
58
+ @Field({ nullable: true })
59
+ dispatcherIdentity: string
60
+
61
+ @Column({ nullable: true })
62
+ @Field({ nullable: true })
63
+ dispatchedAt: Date
64
+
65
+ @Column({
66
+ type:
67
+ DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
68
+ ? 'enum'
69
+ : DATABASE_TYPE == 'oracle'
70
+ ? 'varchar2'
71
+ : 'smallint',
72
+ enum: ManifestStatus,
73
+ default: ManifestStatus.OPEN
74
+ })
75
+ status: ManifestStatus
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, { nullable: true })
86
+ @Field({ nullable: true })
87
+ creator?: User
88
+
89
+ @RelationId((manifest: Manifest) => manifest.creator)
90
+ creatorId?: string
91
+
92
+ @ManyToOne(type => User, { nullable: true })
93
+ @Field({ nullable: true })
94
+ updater?: User
95
+
96
+ @RelationId((manifest: Manifest) => manifest.creator)
97
+ updaterId?: string
98
+ }
@@ -1,6 +1,9 @@
1
- import { Domain } from '@things-factory/shell'
1
+ import { OrderInventoryPatch } from './order-inventory-types'
2
2
  import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
3
3
  import { EntityManager, In } from 'typeorm'
4
+
5
+ import { Domain } from '@things-factory/shell'
6
+
4
7
  import { OrderInventory } from './order-inventory'
5
8
 
6
9
  @Resolver(OrderInventory)
@@ -25,4 +28,26 @@ export class OrderInventoryMutation {
25
28
  })
26
29
  return true
27
30
  }
31
+
32
+ @Mutation(returns => OrderInventory)
33
+ @Directive('@transaction')
34
+ async updateOrderInventorySerialNumber(
35
+ @Ctx() context: any,
36
+ @Arg('orderInventory', type => OrderInventoryPatch, { nullable: true }) orderInventory?: OrderInventoryPatch
37
+ ): Promise<OrderInventory> {
38
+ try {
39
+ const { tx, domain }: { tx: EntityManager; domain: Domain } = context.state
40
+
41
+ let foundOI: OrderInventory = await tx.getRepository(OrderInventory).findOne({
42
+ where: { domain, id: orderInventory.id }
43
+ })
44
+
45
+ foundOI.serialNumber = orderInventory.serialNumber
46
+ foundOI = await tx.getRepository(OrderInventory).save(foundOI)
47
+
48
+ return foundOI
49
+ } catch (error) {
50
+ throw error
51
+ }
52
+ }
28
53
  }
@@ -156,49 +156,47 @@ export class OrderInventoryQuery {
156
156
  }
157
157
 
158
158
  @Query(returns => OrderInventory)
159
- async orderInventory(@Arg('name') name: string, @Ctx() context: any): Promise<OrderInventory> {
159
+ async orderInventory(@Arg('id') id: string, @Ctx() context: any): Promise<OrderInventory> {
160
160
  const { domain }: { domain: Domain } = context.state
161
161
 
162
162
  return await getRepository(OrderInventory).findOne({
163
- where: { domain, name },
164
- relations: ['domain', 'releaseGood', 'vasOrder', 'shippingOrder', 'inventory', 'creator', 'updater']
163
+ where: {
164
+ domain,
165
+ id
166
+ },
167
+ relations: ['domain', 'releaseGood', 'inventory', 'creator', 'updater']
165
168
  })
166
169
  }
167
170
 
168
171
  @Query(returns => OrderInventoryList)
169
- async inventoriesByOrder(
170
- @Ctx() context: any,
171
- @Arg('filters', type => [Filter], { nullable: true }) filters?: Filter[],
172
- @Arg('pagination', type => Pagination, { nullable: true }) pagination?: Pagination,
173
- @Arg('sortings', type => [Sorting], { nullable: true }) sortings?: Sorting[]
174
- ): Promise<OrderInventoryList> {
172
+ async inventoriesByOrder(@Ctx() context: any, @Args() params: ListParam): Promise<OrderInventoryList> {
175
173
  const { domain, user }: { domain: Domain; user: User } = context.state
176
174
 
177
175
  let permittedBizplaceIds: string[] = await getPermittedBizplaceIds(domain, user)
178
176
 
179
- if (!filters.find((filter: any) => filter.name === 'bizplaceId')) {
180
- filters.push({
177
+ if (!params.filters.find((filter: any) => filter.name === 'bizplaceId')) {
178
+ params.filters.push({
181
179
  name: 'bizplaceId',
182
180
  operator: 'in',
183
181
  value: permittedBizplaceIds,
184
182
  relation: true
185
183
  })
186
184
  } else {
187
- permittedBizplaceIds = filters.find(filter => filter.name === 'bizplaceId').value
188
- filters.find(filter => filter.name === 'bizplaceId').relation = true
185
+ permittedBizplaceIds = params.filters.find(filter => filter.name === 'bizplaceId').value
186
+ params.filters.find(filter => filter.name === 'bizplaceId').relation = true
189
187
  }
190
188
 
191
- if (filters.find((filter: any) => filter.name === 'releaseGoodName')?.value) {
189
+ if (params.filters.find((filter: any) => filter.name === 'releaseGoodName')?.value) {
192
190
  let releaseGood: ReleaseGood = await getRepository(ReleaseGood).findOne({
193
191
  where: {
194
- name: Like(filters.find(filter => filter.name === 'releaseGoodName').value)
192
+ name: Like(params.filters.find(filter => filter.name === 'releaseGoodName').value)
195
193
  }
196
194
  })
197
195
 
198
196
  if (releaseGood) {
199
- filters = filters.filter(filter => filter.name != 'releaseGoodName')
197
+ params.filters = params.filters.filter(filter => filter.name != 'releaseGoodName')
200
198
 
201
- filters.push({
199
+ params.filters.push({
202
200
  name: 'releaseGoodId',
203
201
  operator: 'eq',
204
202
  value: releaseGood.id,
@@ -207,7 +205,7 @@ export class OrderInventoryQuery {
207
205
  }
208
206
  }
209
207
  const qb: SelectQueryBuilder<OrderInventory> = getRepository(OrderInventory).createQueryBuilder('oi')
210
- buildQuery(qb, { filters, pagination, sortings }, context)
208
+ buildQuery(qb, params, context)
211
209
 
212
210
  qb.innerJoinAndSelect('oi.releaseGood', 'releaseGood')
213
211
  .leftJoinAndSelect('oi.domain', 'domain')
@@ -229,6 +227,7 @@ export class OrderInventoryQuery {
229
227
  productId: item.inventory.product.id,
230
228
  productName: item.inventory.product.name,
231
229
  productSKU: item.inventory.product.sku,
230
+ productBrand: item.inventory.product.brand,
232
231
  packingSize: item.inventory.packingSize
233
232
  }
234
233
  })
@@ -1,7 +1,9 @@
1
+ import { Field, Float, InputType, Int, ObjectType } from 'type-graphql'
2
+
1
3
  import { NewProduct } from '@things-factory/product-base'
2
4
  import { ObjectRef } from '@things-factory/shell'
3
5
  import { InventoryPatch } from '@things-factory/warehouse-base'
4
- import { Field, Float, InputType, Int, ObjectType } from 'type-graphql'
6
+
5
7
  import { OrderInventory } from './order-inventory'
6
8
 
7
9
  @ObjectType()
@@ -162,9 +164,21 @@ export class OrderInventoryPatch {
162
164
  @Field(type => Float, { nullable: true })
163
165
  packingSize: number
164
166
 
167
+ @Field({ nullable: true })
168
+ productName: string
169
+
170
+ @Field({ nullable: true })
171
+ pallet: string
172
+
173
+ @Field({ nullable: true })
174
+ extraJsonData: string
175
+
165
176
  @Field(type => Float, { nullable: true })
166
177
  releaseQty: number
167
178
 
179
+ @Field({ nullable: true })
180
+ serialNumber: string
181
+
168
182
  @Field(type => Float, { nullable: true })
169
183
  sortedQty: number
170
184
 
@@ -177,9 +191,6 @@ export class OrderInventoryPatch {
177
191
  @Field({ nullable: true })
178
192
  productId: string
179
193
 
180
- @Field({ nullable: true })
181
- productName: string
182
-
183
194
  @Field(type => Float, { nullable: true })
184
195
  releaseUomValue: number
185
196
 
@@ -203,10 +214,4 @@ export class OrderInventoryPatch {
203
214
 
204
215
  @Field({ nullable: true })
205
216
  status: string
206
-
207
- @Field({ nullable: true })
208
- pallet: string
209
-
210
- @Field({ nullable: true })
211
- extraJsonData: string
212
217
  }
@@ -1,8 +1,3 @@
1
- import { User } from '@things-factory/auth-base'
2
- import { Bizplace } from '@things-factory/biz-base'
3
- import { Product } from '@things-factory/product-base'
4
- import { Domain } from '@things-factory/shell'
5
- import { Inventory, Location } from '@things-factory/warehouse-base'
6
1
  import { Field, ID, ObjectType } from 'type-graphql'
7
2
  import {
8
3
  Column,
@@ -14,6 +9,13 @@ import {
14
9
  RelationId,
15
10
  UpdateDateColumn
16
11
  } from 'typeorm'
12
+
13
+ import { User } from '@things-factory/auth-base'
14
+ import { Bizplace } from '@things-factory/biz-base'
15
+ import { Product } from '@things-factory/product-base'
16
+ import { Domain } from '@things-factory/shell'
17
+ import { Inventory, Location } from '@things-factory/warehouse-base'
18
+
17
19
  import {
18
20
  ArrivalNotice,
19
21
  DeliveryOrder,
@@ -240,6 +242,19 @@ export class OrderInventory {
240
242
  @Field({ nullable: true })
241
243
  releaseUomValue: number
242
244
 
245
+ @Column({ nullable: true })
246
+ @Field({ nullable: true })
247
+ uom: string
248
+
249
+ @Field({ nullable: true })
250
+ productName: string
251
+
252
+ @Field({ nullable: true })
253
+ pallet: string
254
+
255
+ @Field({ nullable: true })
256
+ extraJsonData: string
257
+
243
258
  @Column({ nullable: true, type: 'float' })
244
259
  @Field({ nullable: true })
245
260
  returnQty: number
@@ -264,6 +279,10 @@ export class OrderInventory {
264
279
  @Field({ nullable: true })
265
280
  crossDocking: boolean
266
281
 
282
+ @Column({ nullable: true })
283
+ @Field({ nullable: true })
284
+ serialNumber: string
285
+
267
286
  @Column()
268
287
  @Field()
269
288
  status: string
@@ -69,12 +69,7 @@ export class OtherQuery {
69
69
  @Arg('partnerBizplaceId') partnerBizplaceId: string,
70
70
  @Arg('orderInventories', type => [NewOrderInventory], { nullable: true }) orderInventories?: NewOrderInventory[]
71
71
  ): Promise<OrderInventory[]> {
72
- const {
73
- domain,
74
- user,
75
- tx,
76
- bizplace
77
- }: { domain: Domain; user: User; tx: EntityManager; bizplace: Bizplace } = context.state
72
+ const { domain, user, tx, bizplace } = context.state
78
73
 
79
74
  let permittedBizplaces: Bizplace[] = await getPermittedBizplaces(domain, user)
80
75
  let foundPermittedBizplace: Bizplace
@@ -148,6 +143,7 @@ export class OtherQuery {
148
143
  productId: total > 0 ? items[0].productId : null,
149
144
  productSKU: total > 0 ? items[0].productSKU : orderInventory.productSKU,
150
145
  productName: total > 0 ? items[0].productName : null,
146
+ uom: total > 0 ? items[0].uom : null,
151
147
  remainQty: total > 0 ? items[0].remainQty : null,
152
148
  remainUomValue: total > 0 ? items[0].remainUomValue : null,
153
149
  remainUomValueWithUom: total > 0 ? items[0].remainUomValueWithUom : '',
@@ -91,6 +91,51 @@ export class ReleaseGoodMutation {
91
91
  return createdReleaseGood
92
92
  }
93
93
 
94
+ @Directive('@privilege(category: "order_customer", privilege: "mutation")')
95
+ @Directive('@transaction')
96
+ @Mutation(returns => ReleaseGood)
97
+ async updateReleaseGoodDetails(
98
+ @Ctx() context: any,
99
+ @Arg('releaseGood', type => ReleaseGoodPatch, { nullable: true }) releaseGood?: ReleaseGoodPatch,
100
+ @Arg('shippingOrder', type => ShippingOrderPatch, { nullable: true }) shippingOrder?: ShippingOrderPatch
101
+ ): Promise<ReleaseGood> {
102
+ const { tx, domain, user } = context.state
103
+ let foundReleaseGood = await tx.getRepository(ReleaseGood).findOne({
104
+ where: { name: releaseGood.name, domain },
105
+ relations: ['shippingOrder']
106
+ })
107
+
108
+ if (!foundReleaseGood) {
109
+ throw new Error(`Release order ${releaseGood.name} is not found.`)
110
+ }
111
+
112
+ // case to update existing shippingOrder
113
+ if (foundReleaseGood.shippingOrder && shippingOrder) {
114
+ await tx.getRepository(ShippingOrder).update(foundReleaseGood.shippingOrder.id, shippingOrder)
115
+ }
116
+ // case for new shippingOrder
117
+ else if (!foundReleaseGood.shippingOrder && shippingOrder) {
118
+ let newShippingOrder: ShippingOrder = await tx.getRepository(ShippingOrder).save({
119
+ ...shippingOrder,
120
+ name: OrderNoGenerator.shippingOrder(),
121
+ domain,
122
+ bizplace: await getMyBizplace(domain, user),
123
+ status: ORDER_STATUS.PENDING,
124
+ creator: user,
125
+ updater: user
126
+ })
127
+
128
+ releaseGood.shippingOrder = newShippingOrder
129
+ }
130
+
131
+ foundReleaseGood = await tx.getRepository(ReleaseGood).save({
132
+ ...foundReleaseGood,
133
+ ...releaseGood
134
+ })
135
+
136
+ return foundReleaseGood
137
+ }
138
+
94
139
  @Directive('@privilege(category: "order_customer", privilege: "mutation")')
95
140
  @Directive('@transaction')
96
141
  @Mutation(returns => ReleaseGood)
@@ -23,6 +23,7 @@ import {
23
23
  ArrivalNotice,
24
24
  DeliveryOrder,
25
25
  InventoryInfos,
26
+ Manifest,
26
27
  OrderInventory,
27
28
  OrderProduct,
28
29
  OrderVas,
@@ -37,6 +38,11 @@ export enum ReleaseOrderType {
37
38
  B2B = 'b2b',
38
39
  B2C = 'b2c'
39
40
  }
41
+
42
+ export enum DispatchmentStatus {
43
+ READY_TO_DISPATCH = 'READY_TO_DISPATCH',
44
+ DISPATCHED = 'DISPATCHED'
45
+ }
40
46
  @Entity()
41
47
  @Index('ix_release-good_0', (releaseGood: ReleaseGood) => [releaseGood.domain, releaseGood.name], { unique: true })
42
48
  @ObjectType()
@@ -59,6 +65,10 @@ export class ReleaseGood {
59
65
  @RelationId((releaseGood: ReleaseGood) => releaseGood.bizplace)
60
66
  bizplaceId: string
61
67
 
68
+ @ManyToOne(type => Manifest)
69
+ @Field(type => Manifest, { nullable: true })
70
+ manifest: Manifest
71
+
62
72
  @Column({ nullable: true })
63
73
  @Field({ nullable: true })
64
74
  name: string
@@ -143,6 +153,18 @@ export class ReleaseGood {
143
153
  @Field()
144
154
  status: string
145
155
 
156
+ @Column({
157
+ type:
158
+ DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
159
+ ? 'enum'
160
+ : DATABASE_TYPE == 'oracle'
161
+ ? 'varchar2'
162
+ : 'smallint',
163
+ enum: DispatchmentStatus,
164
+ default: DispatchmentStatus.READY_TO_DISPATCH
165
+ })
166
+ dispatchmentStatus: DispatchmentStatus
167
+
146
168
  @Column({ nullable: true })
147
169
  @Field({ nullable: true })
148
170
  releaseDateTime: Date
@@ -267,6 +289,10 @@ export class ReleaseGood {
267
289
  @Field({ nullable: true })
268
290
  invoice: string
269
291
 
292
+ @Column({ type: 'int', nullable: true })
293
+ @Field({ nullable: true })
294
+ noOfItems: number
295
+
270
296
  @CreateDateColumn()
271
297
  @Field()
272
298
  createdAt: Date