@things-factory/sales-base 8.0.0-beta.8 → 8.0.0

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 (178) hide show
  1. package/dist-server/tsconfig.tsbuildinfo +1 -1
  2. package/package.json +13 -13
  3. package/server/constants/attachment-type.ts +9 -0
  4. package/server/constants/index.ts +7 -0
  5. package/server/constants/load-type.ts +4 -0
  6. package/server/constants/order.ts +203 -0
  7. package/server/constants/product-group-type.ts +4 -0
  8. package/server/constants/release-good.ts +9 -0
  9. package/server/constants/transfer-order-type.ts +6 -0
  10. package/server/constants/validation-error-code.ts +3 -0
  11. package/server/constants/vas-target-type.ts +25 -0
  12. package/server/controllers/ecommerce/ecommerce-controller.ts +122 -0
  13. package/server/controllers/ecommerce/index.ts +2 -0
  14. package/server/controllers/ecommerce/sellercraft-controller.ts +182 -0
  15. package/server/controllers/index.ts +2 -0
  16. package/server/controllers/order-controller.ts +296 -0
  17. package/server/errors/index.ts +1 -0
  18. package/server/errors/validation-error.ts +25 -0
  19. package/server/index.ts +5 -0
  20. package/server/migrations/index.ts +9 -0
  21. package/server/service/arrival-notice/arrival-notice-mutation.ts +1152 -0
  22. package/server/service/arrival-notice/arrival-notice-query.ts +549 -0
  23. package/server/service/arrival-notice/arrival-notice-types.ts +310 -0
  24. package/server/service/arrival-notice/arrival-notice.ts +202 -0
  25. package/server/service/arrival-notice/index.ts +9 -0
  26. package/server/service/claim/claim-mutation.ts +308 -0
  27. package/server/service/claim/claim-query.ts +122 -0
  28. package/server/service/claim/claim-types.ts +130 -0
  29. package/server/service/claim/claim.ts +140 -0
  30. package/server/service/claim/index.ts +9 -0
  31. package/server/service/claim-detail/claim-detail-mutation.ts +102 -0
  32. package/server/service/claim-detail/claim-detail-query.ts +55 -0
  33. package/server/service/claim-detail/claim-detail-types.ts +47 -0
  34. package/server/service/claim-detail/claim-detail.ts +69 -0
  35. package/server/service/claim-detail/index.ts +9 -0
  36. package/server/service/claim-order/claim-order-mutation.ts +101 -0
  37. package/server/service/claim-order/claim-order-query.ts +47 -0
  38. package/server/service/claim-order/claim-order-types.ts +35 -0
  39. package/server/service/claim-order/claim-order.ts +81 -0
  40. package/server/service/claim-order/index.ts +9 -0
  41. package/server/service/collection-order/collection-order-mutation.ts +245 -0
  42. package/server/service/collection-order/collection-order-query.ts +97 -0
  43. package/server/service/collection-order/collection-order-types.ts +165 -0
  44. package/server/service/collection-order/collection-order.ts +135 -0
  45. package/server/service/collection-order/index.ts +9 -0
  46. package/server/service/delivery-order/delivery-order-mutation.ts +967 -0
  47. package/server/service/delivery-order/delivery-order-query.ts +631 -0
  48. package/server/service/delivery-order/delivery-order-types.ts +268 -0
  49. package/server/service/delivery-order/delivery-order.ts +258 -0
  50. package/server/service/delivery-order/index.ts +9 -0
  51. package/server/service/draft-release-good/draft-release-good-mutation.ts +765 -0
  52. package/server/service/draft-release-good/draft-release-good-query.ts +354 -0
  53. package/server/service/draft-release-good/draft-release-good-type.ts +261 -0
  54. package/server/service/draft-release-good/draft-release-good.ts +284 -0
  55. package/server/service/draft-release-good/index.ts +9 -0
  56. package/server/service/goods-receival-note/goods-receival-note-mutation.ts +129 -0
  57. package/server/service/goods-receival-note/goods-receival-note-query.ts +280 -0
  58. package/server/service/goods-receival-note/goods-receival-note-types.ts +105 -0
  59. package/server/service/goods-receival-note/goods-receival-note.ts +127 -0
  60. package/server/service/goods-receival-note/index.ts +9 -0
  61. package/server/service/index.ts +238 -0
  62. package/server/service/inventory-check/index.ts +9 -0
  63. package/server/service/inventory-check/inventory-check-mutation.ts +149 -0
  64. package/server/service/inventory-check/inventory-check-query.ts +48 -0
  65. package/server/service/inventory-check/inventory-check-types.ts +48 -0
  66. package/server/service/inventory-check/inventory-check.ts +90 -0
  67. package/server/service/invoice/index.ts +9 -0
  68. package/server/service/invoice/invoice-mutation.ts +95 -0
  69. package/server/service/invoice/invoice-query.ts +53 -0
  70. package/server/service/invoice/invoice-types.ts +279 -0
  71. package/server/service/invoice/invoice.ts +230 -0
  72. package/server/service/invoice-product/index.ts +9 -0
  73. package/server/service/invoice-product/invoice-product-mutation.ts +54 -0
  74. package/server/service/invoice-product/invoice-product-query.ts +54 -0
  75. package/server/service/invoice-product/invoice-product-types.ts +84 -0
  76. package/server/service/invoice-product/invoice-product.ts +92 -0
  77. package/server/service/job-sheet/index.ts +9 -0
  78. package/server/service/job-sheet/job-sheet-mutation.ts +92 -0
  79. package/server/service/job-sheet/job-sheet-query.ts +112 -0
  80. package/server/service/job-sheet/job-sheet-types.ts +78 -0
  81. package/server/service/job-sheet/job-sheet.ts +102 -0
  82. package/server/service/manifest/index.ts +6 -0
  83. package/server/service/manifest/manifest-mutation.ts +190 -0
  84. package/server/service/manifest/manifest-query.ts +149 -0
  85. package/server/service/manifest/manifest-type.ts +84 -0
  86. package/server/service/manifest/manifest.ts +114 -0
  87. package/server/service/order-inventory/index.ts +9 -0
  88. package/server/service/order-inventory/order-inventory-mutation.ts +54 -0
  89. package/server/service/order-inventory/order-inventory-query.ts +722 -0
  90. package/server/service/order-inventory/order-inventory-types.ts +238 -0
  91. package/server/service/order-inventory/order-inventory.ts +401 -0
  92. package/server/service/order-product/index.ts +9 -0
  93. package/server/service/order-product/order-product-mutation.ts +48 -0
  94. package/server/service/order-product/order-product-query.ts +89 -0
  95. package/server/service/order-product/order-product-types.ts +335 -0
  96. package/server/service/order-product/order-product.ts +362 -0
  97. package/server/service/order-tote/index.ts +9 -0
  98. package/server/service/order-tote/order-tote-mutation.ts +31 -0
  99. package/server/service/order-tote/order-tote-query.ts +112 -0
  100. package/server/service/order-tote/order-tote-types.ts +47 -0
  101. package/server/service/order-tote/order-tote.ts +73 -0
  102. package/server/service/order-tote-item/index.ts +9 -0
  103. package/server/service/order-tote-item/order-tote-item-mutation.ts +31 -0
  104. package/server/service/order-tote-item/order-tote-item-query.ts +82 -0
  105. package/server/service/order-tote-item/order-tote-item-types.ts +56 -0
  106. package/server/service/order-tote-item/order-tote-item.ts +72 -0
  107. package/server/service/order-tote-seal/index.ts +9 -0
  108. package/server/service/order-tote-seal/order-tote-seal-mutation.ts +31 -0
  109. package/server/service/order-tote-seal/order-tote-seal-query.ts +59 -0
  110. package/server/service/order-tote-seal/order-tote-seal-types.ts +41 -0
  111. package/server/service/order-tote-seal/order-tote-seal.ts +46 -0
  112. package/server/service/order-vas/index.ts +9 -0
  113. package/server/service/order-vas/order-vas-mutation.ts +20 -0
  114. package/server/service/order-vas/order-vas-query.ts +72 -0
  115. package/server/service/order-vas/order-vas-types.ts +159 -0
  116. package/server/service/order-vas/order-vas.ts +207 -0
  117. package/server/service/others/index.ts +5 -0
  118. package/server/service/others/other-query.ts +563 -0
  119. package/server/service/others/other-types.ts +115 -0
  120. package/server/service/purchase-order/index.ts +9 -0
  121. package/server/service/purchase-order/purchase-order-mutation.ts +458 -0
  122. package/server/service/purchase-order/purchase-order-query.ts +90 -0
  123. package/server/service/purchase-order/purchase-order-types.ts +154 -0
  124. package/server/service/purchase-order/purchase-order.ts +172 -0
  125. package/server/service/purchase-order-other-charge/index.ts +9 -0
  126. package/server/service/purchase-order-other-charge/purchase-order-other-charge-mutation.ts +31 -0
  127. package/server/service/purchase-order-other-charge/purchase-order-other-charge-query.ts +52 -0
  128. package/server/service/purchase-order-other-charge/purchase-order-other-charge-types.ts +44 -0
  129. package/server/service/purchase-order-other-charge/purchase-order-other-charge.ts +68 -0
  130. package/server/service/release-good/index.ts +9 -0
  131. package/server/service/release-good/release-good-mutation.ts +1686 -0
  132. package/server/service/release-good/release-good-query.ts +980 -0
  133. package/server/service/release-good/release-good-types.ts +662 -0
  134. package/server/service/release-good/release-good.ts +490 -0
  135. package/server/service/retail-replenishment-order/index.ts +9 -0
  136. package/server/service/retail-replenishment-order/retail-replenishment-order-mutation.ts +382 -0
  137. package/server/service/retail-replenishment-order/retail-replenishment-order-query.ts +54 -0
  138. package/server/service/retail-replenishment-order/retail-replenishment-order-types.ts +101 -0
  139. package/server/service/retail-replenishment-order/retail-replenishment-order.ts +115 -0
  140. package/server/service/return-order/index.ts +9 -0
  141. package/server/service/return-order/return-order-mutation.ts +516 -0
  142. package/server/service/return-order/return-order-query.ts +226 -0
  143. package/server/service/return-order/return-order-types.ts +196 -0
  144. package/server/service/return-order/return-order.ts +127 -0
  145. package/server/service/reverse-kitting-order/index.ts +9 -0
  146. package/server/service/reverse-kitting-order/reverse-kitting-order-mutation.ts +500 -0
  147. package/server/service/reverse-kitting-order/reverse-kitting-order-query.ts +197 -0
  148. package/server/service/reverse-kitting-order/reverse-kitting-order-type.ts +173 -0
  149. package/server/service/reverse-kitting-order/reverse-kitting-order.ts +121 -0
  150. package/server/service/reverse-kitting-order-inventory/index.ts +9 -0
  151. package/server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-mutation.ts +129 -0
  152. package/server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-query.ts +52 -0
  153. package/server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory-type.ts +95 -0
  154. package/server/service/reverse-kitting-order-inventory/reverse-kitting-order-inventory.ts +143 -0
  155. package/server/service/shipping-order/index.ts +9 -0
  156. package/server/service/shipping-order/shipping-order-mutation.ts +61 -0
  157. package/server/service/shipping-order/shipping-order-query.ts +61 -0
  158. package/server/service/shipping-order/shipping-order-types.ts +89 -0
  159. package/server/service/shipping-order/shipping-order.ts +129 -0
  160. package/server/service/transfer-order/index.ts +9 -0
  161. package/server/service/transfer-order/transfer-order-mutation.ts +309 -0
  162. package/server/service/transfer-order/transfer-order-query.ts +66 -0
  163. package/server/service/transfer-order/transfer-order-types.ts +97 -0
  164. package/server/service/transfer-order/transfer-order.ts +117 -0
  165. package/server/service/vas/index.ts +9 -0
  166. package/server/service/vas/vas-mutation.ts +106 -0
  167. package/server/service/vas/vas-query.ts +60 -0
  168. package/server/service/vas/vas-types.ts +71 -0
  169. package/server/service/vas/vas.ts +77 -0
  170. package/server/service/vas-order/index.ts +9 -0
  171. package/server/service/vas-order/vas-order-mutation.ts +259 -0
  172. package/server/service/vas-order/vas-order-query.ts +119 -0
  173. package/server/service/vas-order/vas-order-types.ts +49 -0
  174. package/server/service/vas-order/vas-order.ts +81 -0
  175. package/server/utils/datetime-util.ts +54 -0
  176. package/server/utils/index.ts +3 -0
  177. package/server/utils/inventory-util.ts +1155 -0
  178. package/server/utils/order-no-generator.ts +146 -0
@@ -0,0 +1,105 @@
1
+ import { ObjectRef } from '@things-factory/shell'
2
+ import { Field, InputType, Int, ObjectType } from 'type-graphql'
3
+ import { GoodsReceivalNote } from './goods-receival-note'
4
+
5
+ @ObjectType()
6
+ export class GoodsReceivalNoteList {
7
+ @Field(type => [GoodsReceivalNote], { nullable: true })
8
+ items: GoodsReceivalNote[]
9
+
10
+ @Field(type => Int, { nullable: true })
11
+ total: number
12
+ }
13
+
14
+ // Need to review with better class name
15
+ @ObjectType()
16
+ export class ProductListsType {
17
+
18
+ @Field({ nullable: true })
19
+ po: string
20
+
21
+ @Field({ nullable: true })
22
+ batchNo: string
23
+
24
+ @Field({ nullable: true })
25
+ productSKU: string
26
+
27
+ @Field({ nullable: true })
28
+ productName: string
29
+
30
+ @Field({ nullable: true })
31
+ productType: string
32
+
33
+ @Field({ nullable: true })
34
+ productBatch: string
35
+
36
+ @Field({nullable:true})
37
+ @Field({ nullable: true })
38
+ expectedQty: number
39
+
40
+ @Field({ nullable: true })
41
+ actualQty: number
42
+
43
+ @Field({ nullable: true })
44
+ actualUomValue: number
45
+
46
+ @Field({ nullable: true })
47
+ productUom: string
48
+
49
+ @Field({ nullable: true })
50
+ expiryDate: string
51
+
52
+ @Field({ nullable: true })
53
+ unitPrice: number
54
+
55
+ @Field({ nullable: true })
56
+ manufactureDate: string
57
+
58
+ @Field({ nullable: true })
59
+ remark: string
60
+ }
61
+
62
+ @InputType()
63
+ export class NewGoodsReceivalNote {
64
+ @Field({ nullable: true })
65
+ name: string
66
+
67
+ @Field({ nullable: true })
68
+ description: string
69
+
70
+ @Field({ nullable: true })
71
+ status: string
72
+
73
+ @Field({ nullable: true })
74
+ refNo: string
75
+
76
+ @Field({ nullable: true })
77
+ customer: string
78
+
79
+ @Field(type => ObjectRef, { nullable: true })
80
+ arrivalNotice: ObjectRef
81
+ }
82
+
83
+ @InputType()
84
+ export class GoodsReceivalNotePatch {
85
+ @Field({ nullable: true })
86
+ id: string
87
+
88
+ @Field({ nullable: true })
89
+ name: string
90
+
91
+ @Field({ nullable: true })
92
+ description: string
93
+
94
+ @Field({ nullable: true })
95
+ customerStatus: string
96
+
97
+ @Field({ nullable: true })
98
+ status: string
99
+
100
+ @Field({ nullable: true })
101
+ refNo: string
102
+
103
+ @Field(type => ObjectRef, { nullable: true })
104
+ arrivalNotice: ObjectRef
105
+ }
@@ -0,0 +1,127 @@
1
+ import { User } from '@things-factory/auth-base'
2
+ import { Bizplace } from '@things-factory/biz-base'
3
+ import { Attachment } from '@things-factory/attachment-base'
4
+ import { Domain } from '@things-factory/shell'
5
+ import { Field, ID, ObjectType } from 'type-graphql'
6
+ import {
7
+ Column,
8
+ CreateDateColumn,
9
+ Entity,
10
+ Index,
11
+ JoinColumn,
12
+ ManyToOne,
13
+ OneToOne,
14
+ PrimaryGeneratedColumn,
15
+ RelationId,
16
+ UpdateDateColumn
17
+ } from 'typeorm'
18
+ import { ArrivalNotice } from '../'
19
+ import { ProductListsType } from './goods-receival-note-types'
20
+
21
+ @Entity()
22
+ @Index(
23
+ 'ix_goods-receival-note_0',
24
+ (goodsReceivalNote: GoodsReceivalNote) => [goodsReceivalNote.domain, goodsReceivalNote.name],
25
+ { unique: true }
26
+ )
27
+ @ObjectType()
28
+ export class GoodsReceivalNote {
29
+ @PrimaryGeneratedColumn('uuid')
30
+ @Field(type => ID)
31
+ readonly id: string
32
+
33
+ @ManyToOne(type => Domain)
34
+ @Field(type => Domain, { nullable: true })
35
+ domain: Domain
36
+
37
+ @RelationId((grn: GoodsReceivalNote) => grn.domain)
38
+ domainId: string
39
+
40
+ @ManyToOne(type => Bizplace)
41
+ @Field(type => Bizplace, { nullable: true })
42
+ bizplace: Bizplace
43
+
44
+ @RelationId((grn: GoodsReceivalNote) => grn.bizplace)
45
+ bizplaceId: string
46
+
47
+ @Column()
48
+ @Field()
49
+ name: string
50
+
51
+ @Column()
52
+ @Field()
53
+ refNo: string
54
+
55
+ @OneToOne(type => ArrivalNotice)
56
+ @JoinColumn()
57
+ @Field(type => ArrivalNotice, { nullable: true })
58
+ arrivalNotice: ArrivalNotice
59
+
60
+ @Column({ nullable: true })
61
+ @Field({ nullable: true })
62
+ description: string
63
+
64
+ @Column({ nullable: true })
65
+ @Field({ nullable: true })
66
+ customerStatus: string
67
+
68
+ @Column({ nullable: true })
69
+ @Field({ nullable: true })
70
+ status: string
71
+
72
+ @CreateDateColumn()
73
+ @Field()
74
+ createdAt: Date
75
+
76
+ @UpdateDateColumn()
77
+ @Field()
78
+ updatedAt: Date
79
+
80
+ @ManyToOne(type => User)
81
+ @Field(type => User, { nullable: true })
82
+ creator: User
83
+
84
+ @RelationId((grn: GoodsReceivalNote) => grn.creator)
85
+ creatorId: string
86
+
87
+ @ManyToOne(type => User)
88
+ @Field(type => User, { nullable: true })
89
+ updater: User
90
+
91
+ @RelationId((grn: GoodsReceivalNote) => grn.updater)
92
+ updaterId: string
93
+
94
+ @Field(type => [Attachment], { nullable: true })
95
+ attachments: Attachment[]
96
+
97
+ @Field({nullable:true})
98
+ grnNo: string
99
+
100
+ @Field({nullable:true})
101
+ ganNo: string
102
+
103
+ @Field({nullable:true})
104
+ refGANNo: string
105
+
106
+ @Field({nullable:true})
107
+ refGANNo2: string
108
+
109
+ @Field({nullable:true})
110
+ refGANNo3: string
111
+
112
+ @Field({nullable:true})
113
+ timezoneOffSet: string
114
+
115
+ @Field(type=>[ProductListsType],{nullable:true})
116
+ productLists: ProductListsType[]
117
+
118
+ @Field({nullable:true})
119
+ companyDomain: string
120
+
121
+ @Field({nullable:true})
122
+ supplier: string
123
+
124
+ @Field({nullable:true})
125
+ date: string
126
+
127
+ }
@@ -0,0 +1,9 @@
1
+ import { GoodsReceivalNote } from './goods-receival-note'
2
+ import { GoodsReceivalNoteMutation } from './goods-receival-note-mutation'
3
+ import { GoodsReceivalNoteQuery } from './goods-receival-note-query'
4
+
5
+ export const entities = [GoodsReceivalNote]
6
+ export const resolvers = [GoodsReceivalNoteQuery, GoodsReceivalNoteMutation]
7
+
8
+ export * from './goods-receival-note-mutation'
9
+ export * from './goods-receival-note-query'
@@ -0,0 +1,238 @@
1
+ import { entities as ArrivalNoticeEntity, resolvers as ArrivalNoticeResolvers } from './arrival-notice'
2
+ import { entities as ClaimEntity, resolvers as ClaimResolvers } from './claim'
3
+ import { entities as ClaimDetailEntity, resolvers as ClaimDetailResolvers } from './claim-detail'
4
+ import { entities as ClaimOrderEntity, resolvers as ClaimOrderResolvers } from './claim-order'
5
+ import { entities as CollectionOrderEntity, resolvers as CollectionOrderResolvers } from './collection-order'
6
+ import { entities as DeliveryOrderEntity, resolvers as DeliveryOrderResolvers } from './delivery-order'
7
+ import { entities as GoodsReceivalNoteEntity, resolvers as GoodsReceivalNoteResolvers } from './goods-receival-note'
8
+ import { entities as InventoryCheckEntity, resolvers as InventoryCheckResolvers } from './inventory-check'
9
+ import { entities as InvoiceEntity, resolvers as InvoiceResolvers } from './invoice'
10
+ import { entities as InvoiceProductEntity, resolvers as InvoiceProductResolvers } from './invoice-product'
11
+ import { entities as JobSheetEntity, resolvers as JobSheetResolvers } from './job-sheet'
12
+ /* IMPORT ENTITIES AND RESOLVERS */
13
+ import { entities as DraftReleaseGoodEntities, resolvers as DraftReleaseGoodResolvers } from './draft-release-good'
14
+ import { entities as ManifestEntities, resolvers as ManifestResolvers } from './manifest'
15
+ import { entities as OrderInventoryEntity, resolvers as OrderInventoryResolvers } from './order-inventory'
16
+ import { entities as OrderProductEntity, resolvers as OrderProductResolvers } from './order-product'
17
+ import { entities as OrderVasEntity, resolvers as OrderVasResolvers } from './order-vas'
18
+ import { resolvers as OthersResolvers } from './others'
19
+ import { entities as PurchaseOrderEntity, resolvers as PurchaseOrderResolvers } from './purchase-order'
20
+ import {
21
+ entities as PurchaseOrderOtherChargeEntity, resolvers as PurchaseOrderOtherChargeResolvers
22
+ } from './purchase-order-other-charge'
23
+ import { entities as ReleaseGoodEntity, resolvers as ReleaseGoodResolvers } from './release-good'
24
+ import {
25
+ entities as RetailReplenishmentOrderEntity,
26
+ resolvers as RetailReplenishmentOrderResolvers
27
+ } from './retail-replenishment-order'
28
+ import { entities as ReturnOrderEntity, resolvers as ReturnOrderResolvers } from './return-order'
29
+ import {
30
+ entities as ReverseKittingOrderEntities,
31
+ resolvers as ReverseKittingOrderResolvers
32
+ } from './reverse-kitting-order'
33
+ import {
34
+ entities as ReverseKittingOrderInventoryEntities,
35
+ resolvers as ReverseKittingOrderInventoryResolvers
36
+ } from './reverse-kitting-order-inventory'
37
+ import { entities as ShippingOrderEntity, resolvers as ShippingOrderResolvers } from './shipping-order'
38
+ import { entities as TransferOrderEntity, resolvers as TransferOrderResolvers } from './transfer-order'
39
+ import { entities as VasEntity, resolvers as VasResolvers } from './vas'
40
+ import { entities as VasOrderEntity, resolvers as VasOrderResolvers } from './vas-order'
41
+ import { entities as OrderToteEntity, resolvers as OrderToteResolvers } from './order-tote'
42
+ import { entities as OrderToteItemEntity, resolvers as OrderToteItemResolvers } from './order-tote-item'
43
+ import { entities as OrderToteSealEntity, resolvers as OrderToteSealResolvers } from './order-tote-seal'
44
+ import { OrderTote } from './order-tote/order-tote'
45
+ import { OrderToteSeal } from './order-tote-seal/order-tote-seal'
46
+
47
+ /* EXPORT ENTITY TYPES */
48
+ export * from './arrival-notice/arrival-notice'
49
+ export * from './claim-detail/claim-detail'
50
+ export * from './claim-order/claim-order'
51
+ export * from './claim/claim'
52
+ export * from './collection-order/collection-order'
53
+ export * from './delivery-order/delivery-order'
54
+ export * from './draft-release-good/draft-release-good'
55
+ export * from './goods-receival-note/goods-receival-note'
56
+ export * from './inventory-check/inventory-check'
57
+ export * from './invoice-product/invoice-product'
58
+ export * from './invoice/invoice'
59
+ export * from './job-sheet/job-sheet'
60
+ export * from './manifest/manifest'
61
+ export * from './order-inventory/order-inventory'
62
+ export * from './order-product/order-product'
63
+ export * from './order-vas/order-vas'
64
+ export * from './purchase-order-other-charge/purchase-order-other-charge'
65
+ export * from './purchase-order/purchase-order'
66
+ export * from './release-good/release-good'
67
+ export * from './retail-replenishment-order/retail-replenishment-order'
68
+ export * from './return-order/return-order'
69
+ export * from './reverse-kitting-order-inventory/reverse-kitting-order-inventory'
70
+ export * from './reverse-kitting-order/reverse-kitting-order'
71
+ export * from './shipping-order/shipping-order'
72
+ export * from './transfer-order/transfer-order'
73
+ export * from './vas-order/vas-order'
74
+ export * from './vas/vas'
75
+ export * from './order-tote/order-tote'
76
+ export * from './order-tote-item/order-tote-item'
77
+ export * from './order-tote-seal/order-tote-seal'
78
+
79
+ /* EXPORT TYPES */
80
+ export * from './arrival-notice/arrival-notice-types'
81
+ export * from './claim-detail/claim-detail-types'
82
+ export * from './claim-order/claim-order-types'
83
+ export * from './claim/claim-types'
84
+ export * from './collection-order/collection-order-types'
85
+ export * from './delivery-order/delivery-order-types'
86
+ export * from './draft-release-good/draft-release-good-type'
87
+ export * from './goods-receival-note/goods-receival-note-types'
88
+ export * from './inventory-check/inventory-check-types'
89
+ export * from './invoice-product/invoice-product-types'
90
+ export * from './invoice/invoice-types'
91
+ export * from './job-sheet/job-sheet-types'
92
+ export * from './order-inventory/order-inventory-types'
93
+ export * from './order-product/order-product-types'
94
+ export * from './order-vas/order-vas-types'
95
+ export * from './others/other-types'
96
+ export * from './purchase-order-other-charge/purchase-order-other-charge-types'
97
+ export * from './purchase-order/purchase-order-types'
98
+ export * from './release-good/release-good-types'
99
+ export * from './retail-replenishment-order/retail-replenishment-order-types'
100
+ export * from './return-order/return-order-types'
101
+ export * from './shipping-order/shipping-order-types'
102
+ export * from './transfer-order/transfer-order-types'
103
+ export * from './vas-order/vas-order-types'
104
+ export * from './vas/vas-types'
105
+ export * from './order-tote/order-tote-types'
106
+ export * from './order-tote-item/order-tote-item-types'
107
+ export * from './order-tote-seal/order-tote-seal-types'
108
+
109
+
110
+ /* EXPORT MUTATIONS */
111
+ export * from './arrival-notice/arrival-notice-mutation'
112
+ export * from './claim-detail/claim-detail-mutation'
113
+ export * from './claim-order/claim-order-mutation'
114
+ export * from './claim/claim-mutation'
115
+ export * from './collection-order/collection-order-mutation'
116
+ export * from './delivery-order/delivery-order-mutation'
117
+ export * from './draft-release-good/draft-release-good-mutation'
118
+ export * from './goods-receival-note/goods-receival-note-mutation'
119
+ export * from './inventory-check/inventory-check-mutation'
120
+ export * from './invoice-product/invoice-product-mutation'
121
+ export * from './invoice/invoice-mutation'
122
+ export * from './job-sheet/job-sheet-mutation'
123
+ export * from './order-inventory/order-inventory-mutation'
124
+ export * from './order-product/order-product-mutation'
125
+ export * from './order-vas/order-vas-mutation'
126
+ export * from './purchase-order-other-charge/purchase-order-other-charge-mutation'
127
+ export * from './purchase-order/purchase-order-mutation'
128
+ export * from './release-good/release-good-mutation'
129
+ export * from './retail-replenishment-order/retail-replenishment-order-mutation'
130
+ export * from './return-order/return-order-mutation'
131
+ export * from './shipping-order/shipping-order-mutation'
132
+ export * from './transfer-order/transfer-order-mutation'
133
+ export * from './vas-order/vas-order-mutation'
134
+ export * from './vas/vas-mutation'
135
+ export * from './order-tote/order-tote-mutation'
136
+ export * from './order-tote-item/order-tote-item-mutation'
137
+ export * from './order-tote-seal/order-tote-seal-mutation'
138
+
139
+ /* EXPORT QUERIES */
140
+ export * from './arrival-notice/arrival-notice-query'
141
+ export * from './claim-detail/claim-detail-query'
142
+ export * from './claim-order/claim-order-query'
143
+ export * from './claim/claim-query'
144
+ export * from './collection-order/collection-order-query'
145
+ export * from './delivery-order/delivery-order-query'
146
+ export * from './draft-release-good/draft-release-good-query'
147
+ export * from './goods-receival-note/goods-receival-note-query'
148
+ export * from './inventory-check/inventory-check-query'
149
+ export * from './invoice-product/invoice-product-query'
150
+ export * from './invoice/invoice-query'
151
+ export * from './job-sheet/job-sheet-query'
152
+ export * from './order-inventory/order-inventory-query'
153
+ export * from './order-product/order-product-query'
154
+ export * from './order-vas/order-vas-query'
155
+ export * from './others/other-query'
156
+ export * from './purchase-order-other-charge/purchase-order-other-charge-query'
157
+ export * from './purchase-order/purchase-order-query'
158
+ export * from './release-good/release-good-query'
159
+ export * from './retail-replenishment-order/retail-replenishment-order-query'
160
+ export * from './return-order/return-order-query'
161
+ export * from './shipping-order/shipping-order-query'
162
+ export * from './transfer-order/transfer-order-query'
163
+ export * from './vas-order/vas-order-query'
164
+ export * from './vas/vas-query'
165
+ export * from './order-tote/order-tote-query'
166
+ export * from './order-tote-item/order-tote-item-query'
167
+ export * from './order-tote-seal/order-tote-seal-query'
168
+
169
+ export const entities = [
170
+ /* ENTITIES */
171
+ ...ArrivalNoticeEntity,
172
+ ...ClaimDetailEntity,
173
+ ...ClaimEntity,
174
+ ...ClaimOrderEntity,
175
+ ...CollectionOrderEntity,
176
+ ...DeliveryOrderEntity,
177
+ ...DraftReleaseGoodEntities,
178
+ ...GoodsReceivalNoteEntity,
179
+ ...InventoryCheckEntity,
180
+ ...InvoiceEntity,
181
+ ...InvoiceProductEntity,
182
+ ...JobSheetEntity,
183
+ ...ManifestEntities,
184
+ ...OrderInventoryEntity,
185
+ ...OrderProductEntity,
186
+ ...OrderVasEntity,
187
+ ...PurchaseOrderEntity,
188
+ ...PurchaseOrderOtherChargeEntity,
189
+ ...ReleaseGoodEntity,
190
+ ...RetailReplenishmentOrderEntity,
191
+ ...ReturnOrderEntity,
192
+ ...ReverseKittingOrderEntities,
193
+ ...ReverseKittingOrderInventoryEntities,
194
+ ...ShippingOrderEntity,
195
+ ...TransferOrderEntity,
196
+ ...VasEntity,
197
+ ...VasOrderEntity,
198
+ ...OrderToteEntity,
199
+ ...OrderToteItemEntity,
200
+ ...OrderToteSealEntity
201
+ ]
202
+
203
+ export const schema = {
204
+ resolverClasses: [
205
+ /* RESOLVER CLASSES */
206
+ ...ArrivalNoticeResolvers,
207
+ ...ClaimDetailResolvers,
208
+ ...ClaimOrderResolvers,
209
+ ...ClaimResolvers,
210
+ ...CollectionOrderResolvers,
211
+ ...DeliveryOrderResolvers,
212
+ ...DraftReleaseGoodResolvers,
213
+ ...GoodsReceivalNoteResolvers,
214
+ ...InventoryCheckResolvers,
215
+ ...InvoiceProductResolvers,
216
+ ...InvoiceResolvers,
217
+ ...JobSheetResolvers,
218
+ ...ManifestResolvers,
219
+ ...OrderInventoryResolvers,
220
+ ...OrderProductResolvers,
221
+ ...OrderVasResolvers,
222
+ ...OthersResolvers,
223
+ ...PurchaseOrderOtherChargeResolvers,
224
+ ...PurchaseOrderResolvers,
225
+ ...ReleaseGoodResolvers,
226
+ ...RetailReplenishmentOrderResolvers,
227
+ ...ReturnOrderResolvers,
228
+ ...ReverseKittingOrderInventoryResolvers,
229
+ ...ReverseKittingOrderResolvers,
230
+ ...ShippingOrderResolvers,
231
+ ...TransferOrderResolvers,
232
+ ...VasResolvers,
233
+ ...VasOrderResolvers,
234
+ ...OrderToteResolvers,
235
+ ...OrderToteItemResolvers,
236
+ ...OrderToteSealResolvers
237
+ ]
238
+ }
@@ -0,0 +1,9 @@
1
+ import { InventoryCheck } from './inventory-check'
2
+ import { InventoryCheckMutation } from './inventory-check-mutation'
3
+ import { InventoryCheckQuery } from './inventory-check-query'
4
+
5
+ export const entities = [InventoryCheck]
6
+ export const resolvers = [InventoryCheckQuery, InventoryCheckMutation]
7
+
8
+ export * from './inventory-check-mutation'
9
+ export * from './inventory-check-query'
@@ -0,0 +1,149 @@
1
+ import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
2
+ import { EntityManager, In } from 'typeorm'
3
+
4
+ import { User } from '@things-factory/auth-base'
5
+ import { Bizplace } from '@things-factory/biz-base'
6
+ import { Domain } from '@things-factory/shell'
7
+
8
+ import { InventoryCheckPatch, NewInventoryCheck } from '../'
9
+ import { ORDER_STATUS, ORDER_TYPES } from '../../constants'
10
+ import { OrderNoGenerator } from '../../utils/order-no-generator'
11
+ import { InventoryCheck } from './inventory-check'
12
+
13
+ @Resolver(InventoryCheck)
14
+ export class InventoryCheckMutation {
15
+ @Mutation(returns => InventoryCheck)
16
+ @Directive('@transaction')
17
+ async createInventoryCheck(
18
+ @Arg('inventoryCheck', type => NewInventoryCheck) inventoryCheck: NewInventoryCheck,
19
+ @Ctx() context: ResolverContext
20
+ ): Promise<InventoryCheck> {
21
+ const { tx } = context.state
22
+ return await tx.getRepository(InventoryCheck).save({
23
+ ...inventoryCheck,
24
+ domain: context.state.domain,
25
+ creator: context.state.user,
26
+ updater: context.state.user
27
+ } as any)
28
+ }
29
+
30
+ @Mutation(returns => InventoryCheck)
31
+ @Directive('@transaction')
32
+ async updateInventoryCheck(
33
+ @Arg('name') name: string,
34
+ @Arg('patch', type => InventoryCheckPatch) patch: InventoryCheckPatch,
35
+ @Ctx() context: ResolverContext
36
+ ): Promise<InventoryCheck> {
37
+ const { tx } = context.state
38
+
39
+ const repository = tx.getRepository(InventoryCheck)
40
+ const inventoryCheck = await repository.findOne({
41
+ where: { domain: { id: context.state.domain.id }, name }
42
+ })
43
+
44
+ return await repository.save({
45
+ ...inventoryCheck,
46
+ ...patch,
47
+ updater: context.state.user
48
+ })
49
+ }
50
+
51
+ @Mutation(returns => InventoryCheck)
52
+ @Directive('@transaction')
53
+ async generateCycleCount(
54
+ @Arg('executionDate') executionDate: string,
55
+ @Arg('customerId') customerId: string,
56
+ @Ctx() context: ResolverContext
57
+ ): Promise<InventoryCheck> {
58
+ const { tx, domain, user } = context.state
59
+ return await generateCycleCount(tx, domain, user, executionDate, customerId)
60
+ }
61
+
62
+ @Mutation(returns => [InventoryCheck])
63
+ @Directive('@transaction')
64
+ async updateMultipleInventoryCheck(
65
+ @Arg('patches', type => [InventoryCheckPatch]) patches: InventoryCheckPatch[],
66
+ @Ctx() context: ResolverContext
67
+ ): Promise<InventoryCheck[]> {
68
+ const { tx } = context.state
69
+
70
+ let results: InventoryCheck[] = []
71
+ const _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')
72
+ const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')
73
+ const inventoryCheckRepo = tx.getRepository(InventoryCheck)
74
+
75
+ if (_createRecords.length > 0) {
76
+ for (let i = 0; i < _createRecords.length; i++) {
77
+ const newRecord = _createRecords[i]
78
+
79
+ const result = await inventoryCheckRepo.save({
80
+ ...newRecord,
81
+ domain: context.state.domain,
82
+ creator: context.state.user,
83
+ updater: context.state.user
84
+ })
85
+
86
+ results.push({ ...result, cuFlag: '+' })
87
+ }
88
+ }
89
+
90
+ if (_updateRecords.length > 0) {
91
+ for (let i = 0; i < _updateRecords.length; i++) {
92
+ const newRecord = _updateRecords[i]
93
+ const inventoryCheck = await inventoryCheckRepo.findOneBy({ id: newRecord.id })
94
+
95
+ const result = await inventoryCheckRepo.save({
96
+ ...inventoryCheck,
97
+ ...newRecord,
98
+ updater: context.state.user
99
+ })
100
+
101
+ results.push({ ...result, cuFlag: 'M' })
102
+ }
103
+ }
104
+
105
+ return results
106
+ }
107
+
108
+ @Mutation(returns => Boolean)
109
+ @Directive('@transaction')
110
+ async deleteInventoryCheck(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<boolean> {
111
+ const { tx } = context.state
112
+ await tx.getRepository(InventoryCheck).delete({ domain: { id: context.state.domain.id }, name })
113
+ return true
114
+ }
115
+
116
+ @Mutation(returns => Boolean)
117
+ @Directive('@transaction')
118
+ async deleteInventoryChecks(
119
+ @Arg('names', type => [String]) names: string[],
120
+ @Ctx() context: ResolverContext
121
+ ): Promise<boolean> {
122
+ const { tx } = context.state
123
+ await tx.getRepository(InventoryCheck).delete({
124
+ domain: { id: context.state.domain.id },
125
+ name: In(names)
126
+ })
127
+ return true
128
+ }
129
+ }
130
+
131
+ export async function generateCycleCount(
132
+ tx: EntityManager,
133
+ domain: Domain,
134
+ user: User,
135
+ executionDate: string,
136
+ customerId: string
137
+ ): Promise<InventoryCheck> {
138
+ const customerBizplace: Bizplace = await tx.getRepository(Bizplace).findOneBy({ id: customerId })
139
+
140
+ return tx.getRepository(InventoryCheck).save({
141
+ name: OrderNoGenerator.cycleCount(),
142
+ executionDate,
143
+ type: ORDER_TYPES.CYCLE_COUNT,
144
+ status: ORDER_STATUS.PENDING,
145
+ bizplace: customerBizplace,
146
+ domain,
147
+ updater: user
148
+ })
149
+ }
@@ -0,0 +1,48 @@
1
+ import { Arg, Ctx, FieldResolver, Query, Resolver, Root } from 'type-graphql'
2
+
3
+ import { User } from '@things-factory/auth-base'
4
+ import { convertListParams, Domain, Filter, getRepository, Pagination, Sorting } from '@things-factory/shell'
5
+
6
+ import { InventoryCheckList } from '../'
7
+ import { InventoryCheck } from './inventory-check'
8
+
9
+ @Resolver(InventoryCheck)
10
+ export class InventoryCheckQuery {
11
+ @Query(returns => InventoryCheckList)
12
+ async inventoryChecks(
13
+ @Ctx() context: ResolverContext,
14
+ @Arg('filters', type => [Filter], { nullable: true }) filters?: Filter[],
15
+ @Arg('pagination', type => Pagination, { nullable: true }) pagination?: Pagination,
16
+ @Arg('sortings', type => [Sorting], { nullable: true }) sortings?: Sorting[]
17
+ ): Promise<InventoryCheckList> {
18
+ const convertedParams = convertListParams({ filters, pagination, sortings })
19
+ const [items, total] = await getRepository(InventoryCheck).findAndCount({
20
+ ...convertedParams,
21
+ relations: ['domain', 'creator', 'updater']
22
+ })
23
+ return { items, total }
24
+ }
25
+
26
+ @Query(returns => InventoryCheck)
27
+ async inventoryCheck(@Arg('name') name: string, @Ctx() context: ResolverContext): Promise<InventoryCheck> {
28
+ return await getRepository(InventoryCheck).findOne({
29
+ where: { domain: { id: context.state.domain.id }, name },
30
+ relations: ['domain', 'creator', 'updater']
31
+ })
32
+ }
33
+
34
+ @FieldResolver(type => Domain)
35
+ async domain(@Root() inventoryCheck: InventoryCheck): Promise<Domain> {
36
+ return await getRepository(Domain).findOneBy({ id: inventoryCheck.domainId })
37
+ }
38
+
39
+ @FieldResolver(type => User)
40
+ async creator(@Root() inventoryCheck: InventoryCheck): Promise<User> {
41
+ return await getRepository(User).findOneBy({ id: inventoryCheck.creatorId })
42
+ }
43
+
44
+ @FieldResolver(type => User)
45
+ async updater(@Root() inventoryCheck: InventoryCheck): Promise<User> {
46
+ return await getRepository(User).findOneBy({ id: inventoryCheck.updaterId })
47
+ }
48
+ }