@things-factory/sales-base 4.0.11 → 4.0.16

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 (92) 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 -77
  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 +111 -0
  20. package/dist-server/service/manifest/manifest-mutation.js.map +1 -0
  21. package/dist-server/service/manifest/manifest-query.js +128 -0
  22. package/dist-server/service/manifest/manifest-query.js.map +1 -0
  23. package/dist-server/service/manifest/manifest-type.js +125 -0
  24. package/dist-server/service/manifest/manifest-type.js.map +1 -0
  25. package/dist-server/service/manifest/manifest.js +122 -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/others/other-types.js +4 -0
  38. package/dist-server/service/others/other-types.js.map +1 -1
  39. package/dist-server/service/release-good/release-good-mutation.js +393 -1
  40. package/dist-server/service/release-good/release-good-mutation.js.map +1 -1
  41. package/dist-server/service/release-good/release-good-query.js +160 -0
  42. package/dist-server/service/release-good/release-good-query.js.map +1 -1
  43. package/dist-server/service/release-good/release-good-types.js +34 -2
  44. package/dist-server/service/release-good/release-good-types.js.map +1 -1
  45. package/dist-server/service/release-good/release-good.js +28 -1
  46. package/dist-server/service/release-good/release-good.js.map +1 -1
  47. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js +110 -30
  48. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-mutation.js.map +1 -1
  49. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js +94 -21
  50. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-query.js.map +1 -1
  51. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.js +144 -1
  52. package/dist-server/service/reverse-kitting-order/reverse-kitting-order-type.js.map +1 -1
  53. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js +17 -7
  54. package/dist-server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.js.map +1 -1
  55. package/dist-server/utils/inventory-util.js +26 -7
  56. package/dist-server/utils/inventory-util.js.map +1 -1
  57. package/dist-server/utils/order-no-generator.js +35 -31
  58. package/dist-server/utils/order-no-generator.js.map +1 -1
  59. package/package.json +12 -12
  60. package/server/constants/index.ts +1 -1
  61. package/server/constants/order.ts +10 -0
  62. package/server/constants/validation-error-code.ts +3 -2
  63. package/server/controllers/ecommerce/sellercraft-controller.ts +4 -3
  64. package/server/service/arrival-notice/arrival-notice-mutation.ts +20 -0
  65. package/server/service/arrival-notice/arrival-notice-query.ts +82 -78
  66. package/server/service/delivery-order/delivery-order-query.ts +26 -7
  67. package/server/service/goods-receival-note/goods-receival-note-query.ts +116 -53
  68. package/server/service/index.ts +4 -0
  69. package/server/service/manifest/index.ts +6 -0
  70. package/server/service/manifest/manifest-mutation.ts +102 -0
  71. package/server/service/manifest/manifest-query.ts +99 -0
  72. package/server/service/manifest/manifest-type.ts +78 -0
  73. package/server/service/manifest/manifest.ts +103 -0
  74. package/server/service/order-inventory/order-inventory-mutation.ts +26 -1
  75. package/server/service/order-inventory/order-inventory-query.ts +17 -18
  76. package/server/service/order-inventory/order-inventory-types.ts +15 -10
  77. package/server/service/order-inventory/order-inventory.ts +24 -5
  78. package/server/service/others/other-query.ts +2 -6
  79. package/server/service/others/other-types.ts +3 -0
  80. package/server/service/release-good/release-good-mutation.ts +557 -0
  81. package/server/service/release-good/release-good-query.ts +197 -2
  82. package/server/service/release-good/release-good-types.ts +31 -7
  83. package/server/service/release-good/release-good.ts +26 -0
  84. package/server/service/reverse-kitting-order/reverse-kitting-order-mutation.ts +145 -35
  85. package/server/service/reverse-kitting-order/reverse-kitting-order-query.ts +103 -19
  86. package/server/service/reverse-kitting-order/reverse-kitting-order-type.ts +106 -1
  87. package/server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.ts +31 -14
  88. package/server/utils/inventory-util.ts +30 -7
  89. package/server/utils/order-no-generator.ts +43 -36
  90. package/dist-server/middlewares/index.js +0 -1
  91. package/dist-server/middlewares/index.js.map +0 -1
  92. package/server/middlewares/index.ts +0 -0
@@ -0,0 +1,99 @@
1
+ import { Arg, Args, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
+ import { getRepository } from 'typeorm'
3
+
4
+ import { User } from '@things-factory/auth-base'
5
+ import { convertListParams, Domain, ListParam } from '@things-factory/shell'
6
+
7
+ import { ReleaseGood } from '../release-good/release-good'
8
+ import { Manifest } from './manifest'
9
+ import { ManifestList } from './manifest-type'
10
+
11
+ @Resolver(Manifest)
12
+ export class ManifestQuery {
13
+ @Query(returns => Manifest, { description: 'To fetch a Manifest' })
14
+ async manifest(@Arg('name') name: string, @Ctx() context: any): Promise<Manifest> {
15
+ const { domain, tx } = context.state
16
+ const manifest: Manifest = await tx.getRepository(Manifest).findOne({ where: { domain, name } })
17
+
18
+ const releaseGoods: ReleaseGood[] = await tx.getRepository(ReleaseGood).find({ where: { manifest } })
19
+
20
+ const trackingNos: any[] = releaseGoods.map(releaseGood => {
21
+ return {
22
+ trackingNo: releaseGood.trackingNo,
23
+ refNo: releaseGood.refNo,
24
+ deliveryAddress: releaseGood.deliveryAddress1,
25
+ attentionTo: releaseGood.attentionTo,
26
+ postalCode: releaseGood.postalCode,
27
+ city: releaseGood.city,
28
+ phone: releaseGood.phone1,
29
+ dispatchmentStatus: releaseGood.dispatchmentStatus
30
+ }
31
+ })
32
+
33
+ return {
34
+ ...manifest,
35
+ trackingNos
36
+ }
37
+ }
38
+
39
+ @Query(returns => ManifestList, { description: 'To fetch multiple Manifests' })
40
+ async manifests(@Args() params: ListParam, @Ctx() context: any): Promise<ManifestList> {
41
+ const { domain } = context.state
42
+
43
+ const fromDateParamIdx = params.filters.findIndex(param => param.name === 'fromDate')
44
+ if (fromDateParamIdx >= 0) {
45
+ let fromDateVal = new Date(params.filters[fromDateParamIdx].value)
46
+ params.filters.splice(fromDateParamIdx, 1)
47
+
48
+ params.filters.push({
49
+ name: 'createdAt',
50
+ operator: 'gte',
51
+ value: fromDateVal.toISOString(),
52
+ relation: false
53
+ })
54
+ }
55
+
56
+ const toDateParamIdx = params.filters.findIndex(param => param.name === 'toDate')
57
+ if (toDateParamIdx >= 0) {
58
+ let toDateVal = new Date(params.filters[toDateParamIdx].value)
59
+ params.filters.splice(toDateParamIdx, 1)
60
+
61
+ params.filters.push({
62
+ name: 'createdAt',
63
+ operator: 'lt',
64
+ value: new Date(toDateVal.setDate(toDateVal.getDate() + 1)).toISOString(),
65
+ relation: false
66
+ })
67
+ }
68
+
69
+ params.filters.push({
70
+ name: 'domain',
71
+ operator: 'eq',
72
+ value: domain.id,
73
+ relation: true
74
+ })
75
+
76
+ const convertedParams = convertListParams(params)
77
+ const [items, total] = await getRepository(Manifest).findAndCount({
78
+ ...convertedParams,
79
+ relations: ['domain', 'creator', 'updater']
80
+ })
81
+
82
+ return { items, total }
83
+ }
84
+
85
+ @FieldResolver(type => Domain)
86
+ async domain(@Root() manifest: Manifest): Promise<Domain> {
87
+ return await getRepository(Domain).findOne(manifest.domainId)
88
+ }
89
+
90
+ @FieldResolver(type => User)
91
+ async updater(@Root() manifest: Manifest): Promise<User> {
92
+ return await getRepository(User).findOne(manifest.updaterId)
93
+ }
94
+
95
+ @FieldResolver(type => User)
96
+ async creator(@Root() manifest: Manifest): Promise<User> {
97
+ return await getRepository(User).findOne(manifest.creatorId)
98
+ }
99
+ }
@@ -0,0 +1,78 @@
1
+ import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'
2
+
3
+ import { Manifest, ManifestStatus } from './manifest'
4
+
5
+ @InputType()
6
+ export class NewManifest {
7
+ @Field(type => [ManifestItem])
8
+ manifestItems: ManifestItem[]
9
+ }
10
+
11
+ @InputType()
12
+ export class ManifestPatch {
13
+ @Field(type => ID, { nullable: true })
14
+ id?: string
15
+
16
+ @Field({ nullable: true })
17
+ name?: string
18
+
19
+ @Field({ nullable: true })
20
+ shippingProvider?: string
21
+
22
+ @Field({ nullable: true })
23
+ dispatcherName?: string
24
+
25
+ @Field({ nullable: true })
26
+ dispatcherIdentity?: string
27
+
28
+ @Field(type => ManifestStatus, { nullable: true })
29
+ status?: ManifestStatus
30
+ }
31
+
32
+ @InputType()
33
+ export class ManifestItem {
34
+ @Field({ nullable: true })
35
+ trackingNo?: string
36
+
37
+ @Field({ nullable: true })
38
+ refNo?: string
39
+
40
+ @Field({ nullable: true })
41
+ transporter?: 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
+ }
52
+
53
+ @ObjectType()
54
+ export class TrackingNo {
55
+ @Field({ nullable: true })
56
+ trackingNo?: string
57
+
58
+ @Field({ nullable: true })
59
+ refNo?: string
60
+
61
+ @Field({ nullable: true })
62
+ dispatchmentStatus?: string
63
+
64
+ @Field({ nullable: true })
65
+ deliveryAddress?: string
66
+
67
+ @Field({ nullable: true })
68
+ attentionTo?: string
69
+
70
+ @Field({ nullable: true })
71
+ postalCode?: string
72
+
73
+ @Field({ nullable: true })
74
+ phone?: string
75
+
76
+ @Field({ nullable: true })
77
+ city?: string
78
+ }
@@ -0,0 +1,103 @@
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
+ import { TrackingNo } from './manifest-type'
18
+
19
+ const ORMCONFIG = config.get('ormconfig', {})
20
+ const DATABASE_TYPE = ORMCONFIG.type
21
+
22
+ export enum ManifestStatus {
23
+ OPEN = 'OPEN',
24
+ CLOSED = 'CLOSED'
25
+ }
26
+
27
+ registerEnumType(ManifestStatus, {
28
+ name: 'ManifestStatus',
29
+ description: 'state enumeration of a manifest'
30
+ })
31
+
32
+ @Entity()
33
+ @Index('ix_manifest_0', (manifest: Manifest) => [manifest.domain, manifest.name], { unique: true })
34
+ @ObjectType({ description: 'Entity for Manifest' })
35
+ export class Manifest {
36
+ @PrimaryGeneratedColumn('uuid')
37
+ @Field(type => ID)
38
+ readonly id: string
39
+
40
+ @ManyToOne(type => Domain)
41
+ @Field({ nullable: true })
42
+ domain?: Domain
43
+
44
+ @RelationId((manifest: Manifest) => manifest.domain)
45
+ domainId?: string
46
+
47
+ @Column()
48
+ @Field()
49
+ name: string
50
+
51
+ @Column({ nullable: true })
52
+ @Field({ nullable: true })
53
+ shippingProvider: string
54
+
55
+ @Column({ nullable: true })
56
+ @Field({ nullable: true })
57
+ dispatcherName: string
58
+
59
+ @Column({ nullable: true })
60
+ @Field({ nullable: true })
61
+ dispatcherIdentity: string
62
+
63
+ @Column({ nullable: true })
64
+ @Field({ nullable: true })
65
+ dispatchedAt: Date
66
+
67
+ @Column({
68
+ type:
69
+ DATABASE_TYPE == 'postgres' || DATABASE_TYPE == 'mysql' || DATABASE_TYPE == 'mariadb'
70
+ ? 'enum'
71
+ : DATABASE_TYPE == 'oracle'
72
+ ? 'varchar2'
73
+ : 'smallint',
74
+ enum: ManifestStatus,
75
+ default: ManifestStatus.OPEN
76
+ })
77
+ status: ManifestStatus
78
+
79
+ @Field(type => [TrackingNo], { nullable: true })
80
+ trackingNos?: TrackingNo[]
81
+
82
+ @CreateDateColumn()
83
+ @Field({ nullable: true })
84
+ createdAt?: Date
85
+
86
+ @UpdateDateColumn()
87
+ @Field({ nullable: true })
88
+ updatedAt?: Date
89
+
90
+ @ManyToOne(type => User, { nullable: true })
91
+ @Field({ nullable: true })
92
+ creator?: User
93
+
94
+ @RelationId((manifest: Manifest) => manifest.creator)
95
+ creatorId?: string
96
+
97
+ @ManyToOne(type => User, { nullable: true })
98
+ @Field({ nullable: true })
99
+ updater?: User
100
+
101
+ @RelationId((manifest: Manifest) => manifest.creator)
102
+ updaterId?: string
103
+ }
@@ -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 : '',
@@ -26,6 +26,9 @@ export class InventoryProductGroup {
26
26
  @Field({ nullable: true })
27
27
  productName: string
28
28
 
29
+ @Field({ nullable: true })
30
+ productBrand: string
31
+
29
32
  @Field({ nullable: true })
30
33
  packingType: string
31
34