@things-factory/sales-base 4.3.144 → 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 (52) 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/release-good/release-good-query.js +15 -4
  30. package/dist-server/service/release-good/release-good-query.js.map +1 -1
  31. package/dist-server/service/release-good/release-good.js +10 -0
  32. package/dist-server/service/release-good/release-good.js.map +1 -1
  33. package/dist-server/utils/order-no-generator.js +7 -0
  34. package/dist-server/utils/order-no-generator.js.map +1 -1
  35. package/package.json +14 -14
  36. package/server/service/index.ts +41 -29
  37. package/server/service/manifest/manifest-mutation.ts +18 -9
  38. package/server/service/manifest/manifest-query.ts +22 -30
  39. package/server/service/order-package/index.ts +6 -0
  40. package/server/service/order-package/order-package-mutation.ts +113 -0
  41. package/server/service/order-package/order-package-query.ts +86 -0
  42. package/server/service/order-package/order-package-types.ts +66 -0
  43. package/server/service/order-package/order-package.ts +118 -0
  44. package/server/service/order-package-item/index.ts +6 -0
  45. package/server/service/order-package-item/order-package-item-mutation.ts +113 -0
  46. package/server/service/order-package-item/order-package-item-query.ts +89 -0
  47. package/server/service/order-package-item/order-package-item-types.ts +51 -0
  48. package/server/service/order-package-item/order-package-item.ts +102 -0
  49. package/server/service/order-product/order-product.ts +5 -0
  50. package/server/service/release-good/release-good-query.ts +26 -10
  51. package/server/service/release-good/release-good.ts +9 -0
  52. package/server/utils/order-no-generator.ts +11 -0
@@ -0,0 +1,86 @@
1
+ import { Arg, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
+ import { getRepository, In } from 'typeorm'
3
+
4
+ import { User } from '@things-factory/auth-base'
5
+ import { getPermittedBizplaceIds } from '@things-factory/biz-base'
6
+ import { Domain, Filter, Pagination, Sorting } from '@things-factory/shell'
7
+
8
+ import { OrderPackage } from './order-package'
9
+ import { OrderPackageList } from './order-package-types'
10
+
11
+ @Resolver(OrderPackage)
12
+ export class OrderPackageQuery {
13
+ @Query(returns => OrderPackage, { description: 'To fetch a OrderPackage' })
14
+ async orderPackage(
15
+ @Ctx() context: any,
16
+ @Arg('id', { nullable: true }) id: string,
17
+ @Arg('trackingNo', { nullable: true }) trackingNo: string
18
+ ): Promise<OrderPackage> {
19
+ const { domain, user } = context.state
20
+
21
+ if (id) {
22
+ return await getRepository(OrderPackage).findOne({
23
+ where: { domain, id }
24
+ })
25
+ } else if (trackingNo) {
26
+ let orderPackage = await getRepository(OrderPackage).findOne({
27
+ where: {
28
+ domain,
29
+ trackingNo,
30
+ bizplace: In(await getPermittedBizplaceIds(domain, user))
31
+ },
32
+ relations: ['bizplace', 'releaseGood']
33
+ })
34
+
35
+ if (!orderPackage) {
36
+ throw new Error('Tracking No not found in any orders')
37
+ } else {
38
+ return orderPackage
39
+ }
40
+ }
41
+ }
42
+
43
+ @Query(returns => OrderPackageList, { description: 'To fetch multiple OrderPackages' })
44
+ async orderPackages(
45
+ @Ctx() context: any,
46
+ @Arg('filters', type => [Filter], { nullable: true }) filters?: Filter[],
47
+ @Arg('pagination', type => Pagination, { nullable: true }) pagination?: Pagination,
48
+ @Arg('sortings', type => [Sorting], { nullable: true }) sortings?: Sorting[]
49
+ ): Promise<OrderPackageList> {
50
+ const { domain } = context.state
51
+
52
+ const bizplaceIdParam = filters.find(item => item.name === 'bizplaceId')
53
+ const releaseGoodIdParam = filters.find(item => item.name === 'releaseGoodId')
54
+
55
+ let qb = getRepository(OrderPackage)
56
+ .createQueryBuilder('opk')
57
+ .where('opk.domain_id = :domainId', { domainId: domain.id })
58
+
59
+ if (bizplaceIdParam) {
60
+ qb.andWhere('opk.bizplace_id = :bizplaceId', { bizplaceId: bizplaceIdParam.value })
61
+ }
62
+
63
+ if (releaseGoodIdParam) {
64
+ qb.andWhere('opk.release_good_id = :releaseGoodId', { releaseGoodId: releaseGoodIdParam.value })
65
+ }
66
+
67
+ let [items, total] = await qb.getManyAndCount()
68
+
69
+ return { items, total }
70
+ }
71
+
72
+ @FieldResolver(type => Domain)
73
+ async domain(@Root() orderPackage: OrderPackage): Promise<Domain> {
74
+ return await getRepository(Domain).findOne(orderPackage.domainId)
75
+ }
76
+
77
+ @FieldResolver(type => User)
78
+ async updater(@Root() orderPackage: OrderPackage): Promise<User> {
79
+ return await getRepository(User).findOne(orderPackage.updaterId)
80
+ }
81
+
82
+ @FieldResolver(type => User)
83
+ async creator(@Root() orderPackage: OrderPackage): Promise<User> {
84
+ return await getRepository(User).findOne(orderPackage.creatorId)
85
+ }
86
+ }
@@ -0,0 +1,66 @@
1
+ import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'
2
+
3
+ import { OrderPackage } from './order-package'
4
+
5
+ @InputType()
6
+ export class NewOrderPackage {
7
+ @Field()
8
+ name: string
9
+
10
+ @Field({ nullable: true })
11
+ packageId: string
12
+
13
+ @Field({ nullable: true })
14
+ transporter: string
15
+
16
+ @Field({ nullable: true })
17
+ trackingNo: string
18
+
19
+ @Field({ nullable: true })
20
+ airwayBill: string
21
+
22
+ @Field({ nullable: true })
23
+ invoice: string
24
+
25
+ @Field({ nullable: true })
26
+ status?: string
27
+ }
28
+
29
+ @InputType()
30
+ export class OrderPackagePatch {
31
+ @Field(type => ID, { nullable: true })
32
+ id?: string
33
+
34
+ @Field({ nullable: true })
35
+ name?: string
36
+
37
+ @Field({ nullable: true })
38
+ packageId: string
39
+
40
+ @Field({ nullable: true })
41
+ transporter: string
42
+
43
+ @Field({ nullable: true })
44
+ trackingNo: string
45
+
46
+ @Field({ nullable: true })
47
+ airwayBill: string
48
+
49
+ @Field({ nullable: true })
50
+ invoice: string
51
+
52
+ @Field({ nullable: true })
53
+ status?: string
54
+
55
+ @Field()
56
+ cuFlag: string
57
+ }
58
+
59
+ @ObjectType()
60
+ export class OrderPackageList {
61
+ @Field(type => [OrderPackage])
62
+ items: OrderPackage[]
63
+
64
+ @Field(type => Int)
65
+ total: number
66
+ }
@@ -0,0 +1,118 @@
1
+ import { Field, ID, ObjectType } from 'type-graphql'
2
+ import {
3
+ Column,
4
+ CreateDateColumn,
5
+ Entity,
6
+ Index,
7
+ ManyToOne,
8
+ OneToMany,
9
+ PrimaryGeneratedColumn,
10
+ RelationId,
11
+ UpdateDateColumn
12
+ } from 'typeorm'
13
+
14
+ import { User } from '@things-factory/auth-base'
15
+ import { Bizplace } from '@things-factory/biz-base'
16
+ import { Domain } from '@things-factory/shell'
17
+
18
+ import { Manifest, OrderPackageItem, ReleaseGood } from '../'
19
+
20
+ @Entity()
21
+ @Index('ix_order_package_0', (orderPackage: OrderPackage) => [orderPackage.domain, orderPackage.name], { unique: true })
22
+ @ObjectType({ description: 'Entity for OrderPackage' })
23
+ export class OrderPackage {
24
+ @PrimaryGeneratedColumn('uuid')
25
+ @Field(type => ID)
26
+ readonly id: string
27
+
28
+ @ManyToOne(type => Domain)
29
+ @Field({ nullable: true })
30
+ domain?: Domain
31
+
32
+ @RelationId((orderPackage: OrderPackage) => orderPackage.domain)
33
+ domainId?: string
34
+
35
+ @ManyToOne(type => Bizplace)
36
+ @Field(type => Bizplace, { nullable: true })
37
+ bizplace?: Bizplace
38
+
39
+ @RelationId((orderPackage: OrderPackage) => orderPackage.bizplace)
40
+ bizplaceId?: string
41
+
42
+ @ManyToOne(type => ReleaseGood)
43
+ @Field(type => ReleaseGood, { nullable: true })
44
+ releaseGood?: ReleaseGood
45
+
46
+ @ManyToOne(type => Manifest)
47
+ @Field(type => Manifest, { nullable: true })
48
+ manifest: Manifest
49
+
50
+ @OneToMany(type => OrderPackageItem, orderPackageItem => orderPackageItem.orderPackage)
51
+ @Field(type => [OrderPackageItem], { nullable: true })
52
+ orderPackageItems: OrderPackageItem[]
53
+
54
+ @Column()
55
+ @Field()
56
+ name: string
57
+
58
+ @Column({ nullable: true })
59
+ @Field({ nullable: true })
60
+ packageId: string
61
+
62
+ @Column({ nullable: true })
63
+ @Field({ nullable: true })
64
+ transporter: string
65
+
66
+ @Column({ nullable: true })
67
+ @Field({ nullable: true })
68
+ trackingNo: string
69
+
70
+ @Column({ nullable: true })
71
+ @Field({ nullable: true })
72
+ airwayBill: string
73
+
74
+ @Column({ nullable: true })
75
+ @Field({ nullable: true })
76
+ invoice: string
77
+
78
+ @Column({ nullable: true })
79
+ @Field({ nullable: true })
80
+ manifestedAt: Date
81
+
82
+ @ManyToOne(type => User)
83
+ @Field(type => User, { nullable: true })
84
+ manifestedBy: User
85
+
86
+ @RelationId((orderPackage: OrderPackage) => orderPackage.manifestedBy)
87
+ manifestedById: string
88
+
89
+ @Column({ nullable: true })
90
+ @Field({ nullable: true })
91
+ status: string
92
+
93
+ @CreateDateColumn()
94
+ @Field({ nullable: true })
95
+ createdAt?: Date
96
+
97
+ @UpdateDateColumn()
98
+ @Field({ nullable: true })
99
+ updatedAt?: Date
100
+
101
+ @ManyToOne(type => User, {
102
+ nullable: true
103
+ })
104
+ @Field({ nullable: true })
105
+ creator?: User
106
+
107
+ @RelationId((orderPackage: OrderPackage) => orderPackage.creator)
108
+ creatorId?: string
109
+
110
+ @ManyToOne(type => User, {
111
+ nullable: true
112
+ })
113
+ @Field({ nullable: true })
114
+ updater?: User
115
+
116
+ @RelationId((orderPackage: OrderPackage) => orderPackage.creator)
117
+ updaterId?: string
118
+ }
@@ -0,0 +1,6 @@
1
+ import { OrderPackageItem } from './order-package-item'
2
+ import { OrderPackageItemQuery } from './order-package-item-query'
3
+ import { OrderPackageItemMutation } from './order-package-item-mutation'
4
+
5
+ export const entities = [OrderPackageItem]
6
+ export const resolvers = [OrderPackageItemQuery, OrderPackageItemMutation]
@@ -0,0 +1,113 @@
1
+ import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
2
+ import { In } from 'typeorm'
3
+
4
+ import { OrderPackageItem } from './order-package-item'
5
+ import { NewOrderPackageItem, OrderPackageItemPatch } from './order-package-item-types'
6
+
7
+ @Resolver(OrderPackageItem)
8
+ export class OrderPackageItemMutation {
9
+ @Directive('@transaction')
10
+ @Mutation(returns => OrderPackageItem, { description: 'To create new OrderPackageItem' })
11
+ async createOrderPackageItem(
12
+ @Arg('orderPackageItem') orderPackageItem: NewOrderPackageItem,
13
+ @Ctx() context: any
14
+ ): Promise<OrderPackageItem> {
15
+ const { domain, user, tx } = context.state
16
+
17
+ return await tx.getRepository(OrderPackageItem).save({
18
+ ...orderPackageItem,
19
+ domain,
20
+ creator: user,
21
+ updater: user
22
+ })
23
+ }
24
+
25
+ @Directive('@transaction')
26
+ @Mutation(returns => OrderPackageItem, { description: 'To modify OrderPackageItem information' })
27
+ async updateOrderPackageItem(
28
+ @Arg('id') id: string,
29
+ @Arg('patch') patch: OrderPackageItemPatch,
30
+ @Ctx() context: any
31
+ ): Promise<OrderPackageItem> {
32
+ const { domain, user, tx } = context.state
33
+
34
+ const repository = tx.getRepository(OrderPackageItem)
35
+ const orderPackageItem = await repository.findOne({
36
+ where: { domain, id }
37
+ })
38
+
39
+ return await repository.save({
40
+ ...orderPackageItem,
41
+ ...patch,
42
+ updater: user
43
+ })
44
+ }
45
+
46
+ @Directive('@transaction')
47
+ @Mutation(returns => [OrderPackageItem], { description: "To modify multiple OrderPackageItems' information" })
48
+ async updateMultipleOrderPackageItem(
49
+ @Arg('patches', type => [OrderPackageItemPatch]) patches: OrderPackageItemPatch[],
50
+ @Ctx() context: any
51
+ ): Promise<OrderPackageItem[]> {
52
+ const { domain, user, tx } = context.state
53
+
54
+ let results = []
55
+ const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
56
+ const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
57
+ const orderPackageItemRepo = tx.getRepository(OrderPackageItem)
58
+
59
+ if (_createRecords.length > 0) {
60
+ for (let i = 0; i < _createRecords.length; i++) {
61
+ const newRecord = _createRecords[i]
62
+
63
+ const result = await orderPackageItemRepo.save({
64
+ ...newRecord,
65
+ domain,
66
+ creator: user,
67
+ updater: user
68
+ })
69
+
70
+ results.push({ ...result, cuFlag: '+' })
71
+ }
72
+ }
73
+
74
+ if (_updateRecords.length > 0) {
75
+ for (let i = 0; i < _updateRecords.length; i++) {
76
+ const newRecord = _updateRecords[i]
77
+ const orderPackageItem = await orderPackageItemRepo.findOne(newRecord.id)
78
+
79
+ const result = await orderPackageItemRepo.save({
80
+ ...orderPackageItem,
81
+ ...newRecord,
82
+ updater: user
83
+ })
84
+
85
+ results.push({ ...result, cuFlag: 'M' })
86
+ }
87
+ }
88
+
89
+ return results
90
+ }
91
+
92
+ @Directive('@transaction')
93
+ @Mutation(returns => Boolean, { description: 'To delete OrderPackageItem' })
94
+ async deleteOrderPackageItem(@Arg('id') id: string, @Ctx() context: any): Promise<boolean> {
95
+ const { domain, tx } = context.state
96
+
97
+ await tx.getRepository(OrderPackageItem).delete({ domain, id })
98
+ return true
99
+ }
100
+
101
+ @Directive('@transaction')
102
+ @Mutation(returns => Boolean, { description: 'To delete multiple orderPackageItems' })
103
+ async deleteOrderPackageItems(@Arg('ids', type => [String]) ids: string[], @Ctx() context: any): Promise<boolean> {
104
+ const { domain, tx } = context.state
105
+
106
+ await tx.getRepository(OrderPackageItem).delete({
107
+ domain,
108
+ id: In(ids)
109
+ })
110
+
111
+ return true
112
+ }
113
+ }
@@ -0,0 +1,89 @@
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, Filter, ListParam } from '@things-factory/shell'
6
+
7
+ import { OrderPackageItem } from './order-package-item'
8
+ import { OrderPackageItemList, TrackingInformation } from './order-package-item-types'
9
+
10
+ @Resolver(OrderPackageItem)
11
+ export class OrderPackageItemQuery {
12
+ @Query(returns => OrderPackageItem, { description: 'To fetch a OrderPackageItem' })
13
+ async orderPackageItem(@Arg('id') id: string, @Ctx() context: any): Promise<OrderPackageItem> {
14
+ const { domain } = context.state
15
+
16
+ return await getRepository(OrderPackageItem).findOne({
17
+ where: { domain, id }
18
+ })
19
+ }
20
+
21
+ @Query(returns => OrderPackageItemList, { description: 'To fetch multiple OrderPackageItems' })
22
+ async orderPackageItems(@Args() params: ListParam, @Ctx() context: any): Promise<OrderPackageItemList> {
23
+ const { domain } = context.state
24
+
25
+ const convertedParams = convertListParams(params, domain.id)
26
+ const [items, total] = await getRepository(OrderPackageItem).findAndCount(convertedParams)
27
+
28
+ return { items, total }
29
+ }
30
+
31
+ @Query(returns => [TrackingInformation], { description: 'To fetch multiple OrderPackageItems' })
32
+ async orderPackageItemsGroup(
33
+ @Ctx() context: any,
34
+ @Arg('filters', type => [Filter], { nullable: true }) filters?: Filter[]
35
+ ): Promise<TrackingInformation[]> {
36
+ const { domain } = context.state
37
+
38
+ const bizplaceIdParam = filters.find(item => item.name === 'bizplaceId')
39
+ const releaseGoodIdParam = filters.find(item => item.name === 'releaseGoodId')
40
+
41
+ let qb = getRepository(OrderPackageItem)
42
+ .createQueryBuilder('opki')
43
+ .select('opk.tracking_no', 'trackingNo')
44
+ .addSelect('prd.sku', 'sku')
45
+ .addSelect('SUM(opki.release_qty)', 'releaseQty')
46
+ .innerJoin('opki.orderPackage', 'opk')
47
+ .innerJoin('opki.orderProduct', 'op')
48
+ .innerJoin('op.product', 'prd')
49
+ .where('opk.domain_id = :domainId', { domainId: domain.id })
50
+
51
+ if (bizplaceIdParam) {
52
+ qb.andWhere('opk.bizplace_id = :bizplaceId', { bizplaceId: bizplaceIdParam.value })
53
+ }
54
+
55
+ if (releaseGoodIdParam) {
56
+ qb.andWhere('opk.release_good_id = :releaseGoodId', { releaseGoodId: releaseGoodIdParam.value })
57
+ }
58
+
59
+ qb.groupBy('opk.trackingNo')
60
+ qb.addGroupBy('prd.sku')
61
+
62
+ let qbResult: any[] = await qb.getRawMany()
63
+
64
+ let items: any = qbResult.map(itm => {
65
+ return {
66
+ trackingNo: itm.trackingNo,
67
+ sku: itm.sku,
68
+ releaseQty: itm.releaseQty
69
+ }
70
+ })
71
+
72
+ return items
73
+ }
74
+
75
+ @FieldResolver(type => Domain)
76
+ async domain(@Root() orderPackageItem: OrderPackageItem): Promise<Domain> {
77
+ return await getRepository(Domain).findOne(orderPackageItem.domainId)
78
+ }
79
+
80
+ @FieldResolver(type => User)
81
+ async updater(@Root() orderPackageItem: OrderPackageItem): Promise<User> {
82
+ return await getRepository(User).findOne(orderPackageItem.updaterId)
83
+ }
84
+
85
+ @FieldResolver(type => User)
86
+ async creator(@Root() orderPackageItem: OrderPackageItem): Promise<User> {
87
+ return await getRepository(User).findOne(orderPackageItem.creatorId)
88
+ }
89
+ }
@@ -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