@things-factory/sales-base 3.7.6 → 3.7.7

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 (157) 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/entities/index.js +4 -1
  4. package/dist-server/entities/index.js.map +1 -1
  5. package/dist-server/entities/manifest.js +100 -0
  6. package/dist-server/entities/manifest.js.map +1 -0
  7. package/dist-server/entities/order-inventory.js +4 -0
  8. package/dist-server/entities/order-inventory.js.map +1 -1
  9. package/dist-server/entities/order-reverse-kitting.js +7 -9
  10. package/dist-server/entities/order-reverse-kitting.js.map +1 -1
  11. package/dist-server/entities/release-good.js +22 -1
  12. package/dist-server/entities/release-good.js.map +1 -1
  13. package/dist-server/graphql/resolvers/arrival-notice/add-edit-arrival-notice-products.js +1 -1
  14. package/dist-server/graphql/resolvers/arrival-notice/add-edit-arrival-notice-products.js.map +1 -1
  15. package/dist-server/graphql/resolvers/arrival-notice/arrival-notice.js +37 -32
  16. package/dist-server/graphql/resolvers/arrival-notice/arrival-notice.js.map +1 -1
  17. package/dist-server/graphql/resolvers/delivery-order/delivery-orders.js +20 -4
  18. package/dist-server/graphql/resolvers/delivery-order/delivery-orders.js.map +1 -1
  19. package/dist-server/graphql/resolvers/goods-receival-note/goods-receival-notes.js +86 -43
  20. package/dist-server/graphql/resolvers/goods-receival-note/goods-receival-notes.js.map +1 -1
  21. package/dist-server/graphql/resolvers/index.js +7 -2
  22. package/dist-server/graphql/resolvers/index.js.map +1 -1
  23. package/dist-server/graphql/resolvers/manifest/delete-manifest.js +13 -0
  24. package/dist-server/graphql/resolvers/manifest/delete-manifest.js.map +1 -0
  25. package/dist-server/graphql/resolvers/manifest/dispatch-manifest.js +22 -0
  26. package/dist-server/graphql/resolvers/manifest/dispatch-manifest.js.map +1 -0
  27. package/dist-server/graphql/resolvers/manifest/generate-manifest.js +45 -0
  28. package/dist-server/graphql/resolvers/manifest/generate-manifest.js.map +1 -0
  29. package/dist-server/graphql/resolvers/manifest/index.js +11 -0
  30. package/dist-server/graphql/resolvers/manifest/index.js.map +1 -0
  31. package/dist-server/graphql/resolvers/manifest/manifest.js +25 -0
  32. package/dist-server/graphql/resolvers/manifest/manifest.js.map +1 -0
  33. package/dist-server/graphql/resolvers/manifest/manifests.js +36 -0
  34. package/dist-server/graphql/resolvers/manifest/manifests.js.map +1 -0
  35. package/dist-server/graphql/resolvers/order-inventory/index.js +2 -1
  36. package/dist-server/graphql/resolvers/order-inventory/index.js.map +1 -1
  37. package/dist-server/graphql/resolvers/order-inventory/order-inventory.js +3 -3
  38. package/dist-server/graphql/resolvers/order-inventory/order-inventory.js.map +1 -1
  39. package/dist-server/graphql/resolvers/order-inventory/update-order-inventories-serial-number.js +23 -0
  40. package/dist-server/graphql/resolvers/order-inventory/update-order-inventories-serial-number.js.map +1 -0
  41. package/dist-server/graphql/resolvers/order-reverse-kitting/index.js +2 -1
  42. package/dist-server/graphql/resolvers/order-reverse-kitting/index.js.map +1 -1
  43. package/dist-server/graphql/resolvers/order-reverse-kitting/update-order-reverse-kitting.js +20 -0
  44. package/dist-server/graphql/resolvers/order-reverse-kitting/update-order-reverse-kitting.js.map +1 -0
  45. package/dist-server/graphql/resolvers/release-good/release-good-requests.js +2 -2
  46. package/dist-server/graphql/resolvers/release-good/release-good-requests.js.map +1 -1
  47. package/dist-server/graphql/resolvers/reverse-kitting-order/cancel-reverse-kitting-order.js +9 -3
  48. package/dist-server/graphql/resolvers/reverse-kitting-order/cancel-reverse-kitting-order.js.map +1 -1
  49. package/dist-server/graphql/resolvers/reverse-kitting-order/complete-reverse-kitting-order.js +2 -0
  50. package/dist-server/graphql/resolvers/reverse-kitting-order/complete-reverse-kitting-order.js.map +1 -1
  51. package/dist-server/graphql/resolvers/reverse-kitting-order/delete-reverse-kitting-order.js +11 -1
  52. package/dist-server/graphql/resolvers/reverse-kitting-order/delete-reverse-kitting-order.js.map +1 -1
  53. package/dist-server/graphql/resolvers/reverse-kitting-order/execute-reverse-kitting.js +1 -2
  54. package/dist-server/graphql/resolvers/reverse-kitting-order/execute-reverse-kitting.js.map +1 -1
  55. package/dist-server/graphql/resolvers/reverse-kitting-order/generate-reverse-kitting-order.js +6 -1
  56. package/dist-server/graphql/resolvers/reverse-kitting-order/generate-reverse-kitting-order.js.map +1 -1
  57. package/dist-server/graphql/resolvers/reverse-kitting-order/generate-reverse-kitting-pallet-id.js +60 -0
  58. package/dist-server/graphql/resolvers/reverse-kitting-order/generate-reverse-kitting-pallet-id.js.map +1 -0
  59. package/dist-server/graphql/resolvers/reverse-kitting-order/index.js +3 -1
  60. package/dist-server/graphql/resolvers/reverse-kitting-order/index.js.map +1 -1
  61. package/dist-server/graphql/resolvers/reverse-kitting-order/reverse-kitting-inventories.js +9 -2
  62. package/dist-server/graphql/resolvers/reverse-kitting-order/reverse-kitting-inventories.js.map +1 -1
  63. package/dist-server/graphql/resolvers/reverse-kitting-order/undo-reverse-kitting-inventory.js +46 -0
  64. package/dist-server/graphql/resolvers/reverse-kitting-order/undo-reverse-kitting-inventory.js.map +1 -0
  65. package/dist-server/graphql/types/index.js +7 -3
  66. package/dist-server/graphql/types/index.js.map +1 -1
  67. package/dist-server/graphql/types/manifest/index.js +35 -0
  68. package/dist-server/graphql/types/manifest/index.js.map +1 -0
  69. package/dist-server/graphql/types/manifest/manifest-item.js +15 -0
  70. package/dist-server/graphql/types/manifest/manifest-item.js.map +1 -0
  71. package/dist-server/graphql/types/manifest/manifest-list.js +14 -0
  72. package/dist-server/graphql/types/manifest/manifest-list.js.map +1 -0
  73. package/dist-server/graphql/types/manifest/manifest-patch.js +19 -0
  74. package/dist-server/graphql/types/manifest/manifest-patch.js.map +1 -0
  75. package/dist-server/graphql/types/manifest/manifest.js +25 -0
  76. package/dist-server/graphql/types/manifest/manifest.js.map +1 -0
  77. package/dist-server/graphql/types/manifest/new-manifest.js +13 -0
  78. package/dist-server/graphql/types/manifest/new-manifest.js.map +1 -0
  79. package/dist-server/graphql/types/manifest/tracking-no.js +20 -0
  80. package/dist-server/graphql/types/manifest/tracking-no.js.map +1 -0
  81. package/dist-server/graphql/types/order-inventory/index.js +5 -1
  82. package/dist-server/graphql/types/order-inventory/index.js.map +1 -1
  83. package/dist-server/graphql/types/order-inventory/new-order-inventory.js +1 -0
  84. package/dist-server/graphql/types/order-inventory/new-order-inventory.js.map +1 -1
  85. package/dist-server/graphql/types/order-inventory/order-inventory-patch.js +1 -0
  86. package/dist-server/graphql/types/order-inventory/order-inventory-patch.js.map +1 -1
  87. package/dist-server/graphql/types/order-inventory/order-inventory.js +1 -0
  88. package/dist-server/graphql/types/order-inventory/order-inventory.js.map +1 -1
  89. package/dist-server/graphql/types/order-reverse-kitting/index.js +6 -1
  90. package/dist-server/graphql/types/order-reverse-kitting/index.js.map +1 -1
  91. package/dist-server/graphql/types/order-reverse-kitting/new-order-reverse-kitting.js +1 -0
  92. package/dist-server/graphql/types/order-reverse-kitting/new-order-reverse-kitting.js.map +1 -1
  93. package/dist-server/graphql/types/order-reverse-kitting/order-reverse-kitting-patch.js +1 -0
  94. package/dist-server/graphql/types/order-reverse-kitting/order-reverse-kitting-patch.js.map +1 -1
  95. package/dist-server/graphql/types/order-reverse-kitting/order-reverse-kitting.js +1 -0
  96. package/dist-server/graphql/types/order-reverse-kitting/order-reverse-kitting.js.map +1 -1
  97. package/dist-server/graphql/types/release-good/release-good-detail.js +1 -0
  98. package/dist-server/graphql/types/release-good/release-good-detail.js.map +1 -1
  99. package/dist-server/graphql/types/release-good/release-good.js +2 -0
  100. package/dist-server/graphql/types/release-good/release-good.js.map +1 -1
  101. package/dist-server/graphql/types/reverse-kitting-order/index.js +8 -1
  102. package/dist-server/graphql/types/reverse-kitting-order/index.js.map +1 -1
  103. package/dist-server/utils/order-no-generator.js +35 -31
  104. package/dist-server/utils/order-no-generator.js.map +1 -1
  105. package/package.json +4 -4
  106. package/server/constants/order.ts +10 -0
  107. package/server/entities/index.ts +3 -0
  108. package/server/entities/manifest.ts +79 -0
  109. package/server/entities/order-inventory.ts +3 -0
  110. package/server/entities/order-reverse-kitting.ts +6 -9
  111. package/server/entities/release-good.ts +29 -1
  112. package/server/graphql/resolvers/arrival-notice/add-edit-arrival-notice-products.ts +3 -1
  113. package/server/graphql/resolvers/arrival-notice/arrival-notice.ts +47 -43
  114. package/server/graphql/resolvers/delivery-order/delivery-orders.ts +27 -5
  115. package/server/graphql/resolvers/goods-receival-note/goods-receival-notes.ts +105 -47
  116. package/server/graphql/resolvers/index.ts +7 -2
  117. package/server/graphql/resolvers/manifest/delete-manifest.ts +13 -0
  118. package/server/graphql/resolvers/manifest/dispatch-manifest.ts +34 -0
  119. package/server/graphql/resolvers/manifest/generate-manifest.ts +50 -0
  120. package/server/graphql/resolvers/manifest/index.ts +16 -0
  121. package/server/graphql/resolvers/manifest/manifest.ts +28 -0
  122. package/server/graphql/resolvers/manifest/manifests.ts +43 -0
  123. package/server/graphql/resolvers/order-inventory/index.ts +3 -1
  124. package/server/graphql/resolvers/order-inventory/order-inventory.ts +3 -3
  125. package/server/graphql/resolvers/order-inventory/update-order-inventories-serial-number.ts +28 -0
  126. package/server/graphql/resolvers/order-reverse-kitting/index.ts +4 -1
  127. package/server/graphql/resolvers/order-reverse-kitting/update-order-reverse-kitting.ts +26 -0
  128. package/server/graphql/resolvers/release-good/release-good-requests.ts +2 -2
  129. package/server/graphql/resolvers/reverse-kitting-order/cancel-reverse-kitting-order.ts +18 -4
  130. package/server/graphql/resolvers/reverse-kitting-order/complete-reverse-kitting-order.ts +2 -0
  131. package/server/graphql/resolvers/reverse-kitting-order/delete-reverse-kitting-order.ts +19 -1
  132. package/server/graphql/resolvers/reverse-kitting-order/execute-reverse-kitting.ts +1 -2
  133. package/server/graphql/resolvers/reverse-kitting-order/generate-reverse-kitting-order.ts +8 -1
  134. package/server/graphql/resolvers/reverse-kitting-order/generate-reverse-kitting-pallet-id.ts +71 -0
  135. package/server/graphql/resolvers/reverse-kitting-order/index.ts +5 -1
  136. package/server/graphql/resolvers/reverse-kitting-order/reverse-kitting-inventories.ts +12 -2
  137. package/server/graphql/resolvers/reverse-kitting-order/undo-reverse-kitting-inventory.ts +70 -0
  138. package/server/graphql/types/index.ts +7 -3
  139. package/server/graphql/types/manifest/index.ts +34 -0
  140. package/server/graphql/types/manifest/manifest-item.ts +9 -0
  141. package/server/graphql/types/manifest/manifest-list.ts +8 -0
  142. package/server/graphql/types/manifest/manifest-patch.ts +13 -0
  143. package/server/graphql/types/manifest/manifest.ts +19 -0
  144. package/server/graphql/types/manifest/new-manifest.ts +7 -0
  145. package/server/graphql/types/manifest/tracking-no.ts +14 -0
  146. package/server/graphql/types/order-inventory/index.ts +5 -1
  147. package/server/graphql/types/order-inventory/new-order-inventory.ts +1 -0
  148. package/server/graphql/types/order-inventory/order-inventory-patch.ts +1 -0
  149. package/server/graphql/types/order-inventory/order-inventory.ts +1 -0
  150. package/server/graphql/types/order-reverse-kitting/index.ts +6 -1
  151. package/server/graphql/types/order-reverse-kitting/new-order-reverse-kitting.ts +1 -0
  152. package/server/graphql/types/order-reverse-kitting/order-reverse-kitting-patch.ts +1 -0
  153. package/server/graphql/types/order-reverse-kitting/order-reverse-kitting.ts +1 -0
  154. package/server/graphql/types/release-good/release-good-detail.ts +1 -0
  155. package/server/graphql/types/release-good/release-good.ts +2 -0
  156. package/server/graphql/types/reverse-kitting-order/index.ts +8 -1
  157. package/server/utils/order-no-generator.ts +43 -36
@@ -2,6 +2,7 @@ import { EntityManager, In } from 'typeorm'
2
2
 
3
3
  import { User } from '@things-factory/auth-base'
4
4
  import { Domain } from '@things-factory/shell'
5
+ import { Inventory } from '@things-factory/warehouse-base'
5
6
 
6
7
  import { OrderReverseKitting, ReverseKittingOrder } from '../../../entities'
7
8
 
@@ -21,13 +22,30 @@ export async function deleteReverseKittingOrder(
21
22
  ): Promise<boolean> {
22
23
  let foundReverseKittingOrder: ReverseKittingOrder = await tx.getRepository(ReverseKittingOrder).findOne({
23
24
  where: { domain, name },
24
- relations: ['bizplace', 'orderReverseKittings', 'creator', 'updater']
25
+ relations: ['bizplace', 'orderReverseKittings', 'orderReverseKittings.inventory', 'creator', 'updater']
25
26
  })
26
27
 
27
28
  if (!foundReverseKittingOrder) throw new Error(`Reverse kitting order doesn't exists.`)
28
29
 
29
30
  const foundORKs: OrderReverseKitting[] = foundReverseKittingOrder.orderReverseKittings
30
31
 
32
+ // Delete order reverse kittings by ids
33
+ await Promise.all(
34
+ foundORKs.map(async (ork: OrderReverseKitting) => {
35
+ if (ork?.inventory?.id) {
36
+ ork.inventory = await tx.getRepository(Inventory).findOne(ork.inventory.id)
37
+
38
+ await tx.getRepository(Inventory).save({
39
+ ...ork.inventory,
40
+ lockedQty: ork.inventory.lockedQty - ork.qty,
41
+ lockedUomValue: ork.inventory.lockedUomValue - ork.uomValue,
42
+ updater: user
43
+ })
44
+ }
45
+ return ork
46
+ })
47
+ )
48
+
31
49
  // 1. delete order reverse kittings
32
50
  const productIds = foundORKs.map((ork: OrderReverseKitting) => ork.id)
33
51
  if (productIds.length) {
@@ -50,7 +50,6 @@ export async function executeReverseKittingFunction(
50
50
 
51
51
  const productDetail: ProductDetail = await tx.getRepository(ProductDetail).findOne({
52
52
  where: {
53
- domain: customerCompanyBizplace.domain,
54
53
  id: inventory.productDetailId
55
54
  },
56
55
  relations: ['product']
@@ -115,7 +114,7 @@ export async function executeReverseKittingFunction(
115
114
  let productCombinationSets: any[] = operationGuide.data.productCombinationSets
116
115
  operationGuide.data.productCombinationSets = productCombinationSets.map(item => {
117
116
  if (item.productDetailId == inventory.productDetailId) {
118
- item.actualQty++
117
+ item.actualQty += qty
119
118
  }
120
119
  return item
121
120
  })
@@ -38,7 +38,14 @@ export const generateReverseKittingOrder = {
38
38
  orderReverseKittings = await Promise.all(
39
39
  orderReverseKittings.map(async (ork: OrderReverseKitting) => {
40
40
  if (ork?.inventory?.id) {
41
- ork.inventory = await tx.getRepository(Inventory).findOne(ork.inventory.id)
41
+ const foundInv: Inventory = await tx.getRepository(Inventory).findOne(ork.inventory.id)
42
+ ork.inventory = foundInv
43
+
44
+ foundInv.lockedQty = Number(foundInv.lockedQty) + ork.qty
45
+ foundInv.lockedUomValue = Number(foundInv.lockedUomValue) + ork.uomValue
46
+ foundInv.updater = user
47
+
48
+ await tx.getRepository(Inventory).save(foundInv)
42
49
  }
43
50
  return {
44
51
  ...ork,
@@ -0,0 +1,71 @@
1
+ import { EntityManager, In } from 'typeorm'
2
+
3
+ import { generateId } from '@things-factory/id-rule-base'
4
+ import { Domain } from '@things-factory/shell'
5
+
6
+ import { OrderReverseKitting } from '../../../entities'
7
+
8
+ export const generateReverseKittingPalletIdResolver = {
9
+ async generateReverseKittingPalletId(_: any, { targets, type }, context: any) {
10
+ const { tx, domain }: { tx: EntityManager; domain: Domain } = context.state
11
+ // 1. get and set the date
12
+ const today = new Date()
13
+ const year = today.getFullYear()
14
+ const month = today.getMonth()
15
+ const day = today.getDate()
16
+
17
+ const yy = String(year).substr(String(year).length - 2)
18
+ const mm = String(month + 1).padStart(2, '0')
19
+ const dd = String(day).padStart(2, '0')
20
+
21
+ const date = yy + mm + dd
22
+ let results = []
23
+
24
+ // 2. get worksheet detail
25
+ let ids = targets.map(target => target.id)
26
+
27
+ // - getRepository using In(array) to pass the value to defined variable
28
+ const foundOrderReverseKittings: OrderReverseKitting[] = await tx.getRepository(OrderReverseKitting).find({
29
+ where: {
30
+ domain,
31
+ id: In(ids)
32
+ },
33
+ relations: ['domain', 'bizplace']
34
+ })
35
+
36
+ // 3. from worksheet detail get product name, product type, batchid, packing type, bizplace
37
+
38
+ if (foundOrderReverseKittings.length <= 0) throw new Error('Unable to find order reverse kittings')
39
+ else {
40
+ for (let i = 0; i < foundOrderReverseKittings.length; i++) {
41
+ let foundORK = foundOrderReverseKittings[i]
42
+ for (let idx = 0; idx < targets.length; idx++) {
43
+ if (foundORK.id === targets[idx].id) {
44
+ // 4. generate pallet id based on print qty > call generateId resolver
45
+ for (let i = 0; i < targets[idx].printQty; i++) {
46
+ const generatedPalletId = await generateId({
47
+ domain,
48
+ type,
49
+ seed: {
50
+ batchId: foundORK.inventory.batchId,
51
+ date: date
52
+ }
53
+ })
54
+
55
+ // 5. map all data to be returned
56
+ if (foundORK != null) {
57
+ results.push({
58
+ ...foundORK,
59
+ palletId: generatedPalletId,
60
+ bizplace: foundORK.bizplace
61
+ })
62
+ }
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+
69
+ return results
70
+ }
71
+ }
@@ -6,9 +6,11 @@ import { deleteReverseKittingOrderResolver } from './delete-reverse-kitting-orde
6
6
  import { executeReverseKittingResolver } from './execute-reverse-kitting'
7
7
  import { executingReverseKittingOrderResolver } from './executing-reverse-kitting-order'
8
8
  import { generateReverseKittingOrder } from './generate-reverse-kitting-order'
9
+ import { generateReverseKittingPalletIdResolver } from './generate-reverse-kitting-pallet-id'
9
10
  import { reverseKittingInventoriesResolver } from './reverse-kitting-inventories'
10
11
  import { reverseKittingOrderResolver } from './reverse-kitting-order'
11
12
  import { reverseKittingOrdersResolver } from './reverse-kitting-orders'
13
+ import { undoReverseKittingInventoryResolver } from './undo-reverse-kitting-inventory'
12
14
 
13
15
  export const Query = {
14
16
  ...reverseKittingOrdersResolver,
@@ -24,5 +26,7 @@ export const Mutation = {
24
26
  ...deleteReverseKittingOrderResolver,
25
27
  ...cancelReverseKittingOrderResolver,
26
28
  ...executeReverseKittingResolver,
27
- ...completeReverseKittingOrderResolver
29
+ ...completeReverseKittingOrderResolver,
30
+ ...generateReverseKittingPalletIdResolver,
31
+ ...undoReverseKittingInventoryResolver
28
32
  }
@@ -1,6 +1,7 @@
1
1
  import { getRepository } from 'typeorm'
2
2
 
3
3
  import { Bizplace } from '@things-factory/biz-base'
4
+ import { Product, ProductDetail } from '@things-factory/product-base'
4
5
  import { Domain } from '@things-factory/shell'
5
6
  import { Inventory, INVENTORY_STATUS } from '@things-factory/warehouse-base'
6
7
 
@@ -8,8 +9,16 @@ import { ORDER_VAS_STATUS } from '../../../constants'
8
9
  import { OrderReverseKitting, ReverseKittingOrder } from '../../../entities'
9
10
 
10
11
  export const reverseKittingInventoriesResolver = {
11
- async reverseKittingInventories(_: any, { orderReverseKittingName }, context: any) {
12
+ async reverseKittingInventories(_: any, { orderReverseKittingName, productDetailId }, context: any) {
12
13
  const { domain }: { domain: Domain } = context.state
14
+
15
+ const productDetail: ProductDetail = await getRepository(ProductDetail).findOne({
16
+ where: { id: productDetailId },
17
+ relations: ['product']
18
+ })
19
+
20
+ const product: Product = productDetail.product
21
+
13
22
  const foundOrderReverseKitting: OrderReverseKitting = await getRepository(OrderReverseKitting).findOne({
14
23
  where: {
15
24
  domain,
@@ -29,9 +38,10 @@ export const reverseKittingInventoriesResolver = {
29
38
  bizplace: customerBizplace,
30
39
  refOrderId: reverseKittingOrder.id,
31
40
  orderVasId: foundOrderReverseKitting.id,
41
+ product: product,
32
42
  status: INVENTORY_STATUS.STORED
33
43
  },
34
- relations: ['product', 'bizplace']
44
+ relations: ['product', 'bizplace', 'location']
35
45
  })
36
46
  }
37
47
  }
@@ -0,0 +1,70 @@
1
+ import { EntityManager } from 'typeorm'
2
+
3
+ import { User } from '@things-factory/auth-base'
4
+ import { Bizplace } from '@things-factory/biz-base'
5
+ import { Domain } from '@things-factory/shell'
6
+ import {
7
+ Inventory,
8
+ INVENTORY_STATUS,
9
+ INVENTORY_TRANSACTION_TYPE,
10
+ InventoryHistory
11
+ } from '@things-factory/warehouse-base'
12
+
13
+ import { OrderReverseKitting, ReverseKittingOrder } from '../../../entities'
14
+ import { InventoryUtil } from '../../../utils'
15
+
16
+ export const undoReverseKittingInventoryResolver = {
17
+ async undoReverseKittingInventory(_: any, { orderReverseKittingName, palletId }, context: any) {
18
+ const { tx, domain, user }: { tx: EntityManager; domain: Domain; user: User } = context.state
19
+
20
+ //@sumjoekin please add stricter validation. It is dangerous without strict validation. Unexpected behaviour will cause accidental deletion of inventory.
21
+
22
+ const orderReverseKitting: OrderReverseKitting = await tx.getRepository(OrderReverseKitting).findOne({
23
+ where: { domain, name: orderReverseKittingName },
24
+ relations: ['bizplace', 'reverseKittingOrder']
25
+ })
26
+
27
+ const bizplace: Bizplace = orderReverseKitting.bizplace
28
+ const reverseKittingOrder: ReverseKittingOrder = orderReverseKitting.reverseKittingOrder
29
+ let foundInventory: Inventory = await tx.getRepository(Inventory).findOne({
30
+ where: { domain, bizplace, orderVasId: orderReverseKitting.id, palletId },
31
+ relations: ['bizplace', 'product']
32
+ })
33
+ if (!foundInventory) throw new Error(`There's no results matched with condition ${foundInventory.palletId}`)
34
+
35
+ let operationGuide: any = JSON.parse(orderReverseKitting.operationGuide)
36
+ let productCombinationSets: any[] = operationGuide.data.productCombinationSets
37
+ productCombinationSets = productCombinationSets.map(item => {
38
+ if (foundInventory.product.id == item.productId) {
39
+ item.actualQty -= foundInventory.qty
40
+ }
41
+ return item
42
+ })
43
+ operationGuide.data.productCombinationSets = productCombinationSets
44
+
45
+ await tx
46
+ .getRepository(OrderReverseKitting)
47
+ .update({ id: orderReverseKitting.id }, { operationGuide: operationGuide })
48
+
49
+ foundInventory.lastSeq++
50
+ foundInventory.status = INVENTORY_STATUS.DELETED
51
+ foundInventory = await InventoryUtil.transactionInventory(
52
+ foundInventory,
53
+ reverseKittingOrder,
54
+ -foundInventory.qty,
55
+ -foundInventory.uomValue,
56
+ INVENTORY_TRANSACTION_TYPE.UNDO_REVERSE_KITTING,
57
+ user,
58
+ tx
59
+ )
60
+ foundInventory.qty = 0
61
+ foundInventory.uomValue = 0
62
+ foundInventory.updater = this.user
63
+
64
+ await tx.getRepository(InventoryHistory).update({ inventory: foundInventory }, { inventory: null })
65
+
66
+ await tx.getRepository(Inventory).delete({ id: foundInventory.id })
67
+
68
+ return true
69
+ }
70
+ }
@@ -8,6 +8,7 @@ import * as GoodsReceivalNote from './goods-receival-note'
8
8
  import * as InventoryCheck from './inventory-check'
9
9
  import * as Invoice from './invoice'
10
10
  import * as JobSheet from './job-sheet'
11
+ import * as Manifest from './manifest'
11
12
  import * as OrderInventory from './order-inventory'
12
13
  import * as OrderProduct from './order-product'
13
14
  import * as OrderReverseKitting from './order-reverse-kitting'
@@ -49,7 +50,8 @@ export const queries = [
49
50
  GoodsReceivalNote.Query,
50
51
  Others.Query,
51
52
  OrderReverseKitting.Query,
52
- ReverseKittingOrder.Query
53
+ ReverseKittingOrder.Query,
54
+ Manifest.Query
53
55
  ]
54
56
 
55
57
  export const mutations = [
@@ -76,7 +78,8 @@ export const mutations = [
76
78
  VasOrder.Mutation,
77
79
  GoodsReceivalNote.Mutation,
78
80
  ReverseKittingOrder.Mutation,
79
- OrderReverseKitting.Mutation
81
+ OrderReverseKitting.Mutation,
82
+ Manifest.Mutation
80
83
  ]
81
84
 
82
85
  export const types = [
@@ -104,5 +107,6 @@ export const types = [
104
107
  ...GoodsReceivalNote.Types,
105
108
  ...Others.Types,
106
109
  ...ReverseKittingOrder.Types,
107
- ...OrderReverseKitting.Types
110
+ ...OrderReverseKitting.Types,
111
+ ...Manifest.Types
108
112
  ]
@@ -0,0 +1,34 @@
1
+ import { Manifest } from './manifest'
2
+ import { ManifestItem } from './manifest-item'
3
+ import { ManifestList } from './manifest-list'
4
+ import { ManifestPatch } from './manifest-patch'
5
+ import { NewManifest } from './new-manifest'
6
+ import { TrackingNo } from './tracking-no'
7
+
8
+ export const Mutation = `
9
+ generateManifest (
10
+ manifest: NewManifest
11
+ ): Boolean @transaction
12
+
13
+ dispatchManifest (
14
+ name: String!
15
+ patch: ManifestPatch!
16
+ ): Manifest @transaction
17
+
18
+ deleteManifest (
19
+ name: String!
20
+ ): Manifest @transaction
21
+ `
22
+
23
+ export const Query = `
24
+ manifests(
25
+ filters: [Filter],
26
+ pagination: Pagination,sortings: [Sorting]
27
+ ): ManifestList @transaction
28
+
29
+ manifest(
30
+ name: String!
31
+ ): Manifest @transaction
32
+ `
33
+
34
+ export const Types = [Manifest, NewManifest, ManifestList, ManifestPatch, ManifestItem, TrackingNo]
@@ -0,0 +1,9 @@
1
+ import gql from 'graphql-tag'
2
+
3
+ export const ManifestItem = gql`
4
+ input ManifestItem {
5
+ trackingNo: String
6
+ refNo: String
7
+ transporter: String
8
+ }
9
+ `
@@ -0,0 +1,8 @@
1
+ import gql from 'graphql-tag'
2
+
3
+ export const ManifestList = gql`
4
+ type ManifestList {
5
+ items: [Manifest]
6
+ total: Int
7
+ }
8
+ `
@@ -0,0 +1,13 @@
1
+ import gql from 'graphql-tag'
2
+
3
+ export const ManifestPatch = gql`
4
+ input ManifestPatch {
5
+ id: String
6
+ name: String
7
+ shippingProvider: String
8
+ dispatcherName: String
9
+ dispatcherIdentity: String
10
+ status: String
11
+ cuFlag: String
12
+ }
13
+ `
@@ -0,0 +1,19 @@
1
+ import gql from 'graphql-tag'
2
+
3
+ export const Manifest = gql`
4
+ type Manifest {
5
+ id: String
6
+ name: String
7
+ domain: Domain
8
+ shippingProvider: String
9
+ dispatcherName: String
10
+ dispatcherIdentity: String
11
+ dispatchedAt: String
12
+ trackingNos: [TrackingNo]
13
+ status: String
14
+ updater: User
15
+ creator: User
16
+ updatedAt: String
17
+ createdAt: String
18
+ }
19
+ `
@@ -0,0 +1,7 @@
1
+ import gql from 'graphql-tag'
2
+
3
+ export const NewManifest = gql`
4
+ input NewManifest {
5
+ manifestItems: [ManifestItem]
6
+ }
7
+ `
@@ -0,0 +1,14 @@
1
+ import gql from 'graphql-tag'
2
+
3
+ export const TrackingNo = gql`
4
+ type TrackingNo {
5
+ trackingNo: String
6
+ refNo: String
7
+ dispatchmentStatus: String
8
+ deliveryAddress: String
9
+ attentionTo: String
10
+ postalCode: String
11
+ phone: String
12
+ city: String
13
+ }
14
+ `
@@ -11,12 +11,16 @@ export const Mutation = /* GraphQL */ `
11
11
  deleteOrderInventories (
12
12
  names: [String]!
13
13
  ): Boolean @transaction
14
+
15
+ updateOrderInventorySerialNumber(
16
+ orderInventory: OrderInventoryPatch
17
+ ): OrderInventory @transaction
14
18
  `
15
19
 
16
20
  export const Query = /* GraphQL */ `
17
21
  orderInventories(filters: [Filter], pagination: Pagination, sortings: [Sorting]): OrderInventoryList
18
22
  mergedProductOrderInventories(filters: [Filter], pagination: Pagination, sortings: [Sorting]): OrderInventoryList
19
- orderInventory(name: String!): OrderInventory
23
+ orderInventory(id: String!): OrderInventory
20
24
  inventoriesByOrder(filters: [Filter], pagination: Pagination, sortings: [Sorting]): OrderInventoryList
21
25
  `
22
26
 
@@ -27,6 +27,7 @@ export const NewOrderInventory = gql`
27
27
  remark: String
28
28
  issue: String
29
29
  crossDocking: Boolean
30
+ serialNumber: String
30
31
  status: String
31
32
  existingRow: Boolean
32
33
  returnQty: Float
@@ -34,6 +34,7 @@ export const OrderInventoryPatch = gql`
34
34
  remark: String
35
35
  issue: String
36
36
  crossDocking: Boolean
37
+ serialNumber: String
37
38
  status: String
38
39
  pallet: String
39
40
  extraJsonData: String
@@ -47,6 +47,7 @@ export const OrderInventory = gql`
47
47
  actualPackQty: Float
48
48
  actualPalletQty: Float
49
49
  crossDocking: Boolean
50
+ serialNumber: String
50
51
  status: String
51
52
  updater: User
52
53
  creator: User
@@ -3,7 +3,12 @@ import { OrderReverseKitting } from './order-reverse-kitting'
3
3
  import { OrderReverseKittingList } from './order-reverse-kitting-list'
4
4
  import { OrderReverseKittingPatch } from './order-reverse-kitting-patch'
5
5
 
6
- export const Mutation = ``
6
+ export const Mutation = `
7
+ updateOrderReverseKitting (
8
+ id: String!
9
+ patch: OrderReverseKittingPatch!
10
+ ): OrderReverseKitting @transaction
11
+ `
7
12
 
8
13
  export const Query = `
9
14
  orderReverseKittings(filters: [Filter], pagination: Pagination, sortings: [Sorting]): OrderReverseKittingList
@@ -21,5 +21,6 @@ export const NewOrderReverseKitting = gql`
21
21
  remark: String
22
22
  description: String
23
23
  status: String
24
+ issue: String
24
25
  }
25
26
  `
@@ -21,6 +21,7 @@ export const OrderReverseKittingPatch = gql`
21
21
  remark: String
22
22
  description: String
23
23
  status: String
24
+ issue: String
24
25
  cuFlag: String
25
26
  }
26
27
  `
@@ -23,6 +23,7 @@ export const OrderReverseKitting = gql`
23
23
  remark: String
24
24
  description: String
25
25
  status: String
26
+ issue: String
26
27
  createdAt: String
27
28
  updatedAt: String
28
29
  creator: User
@@ -21,6 +21,7 @@ export const ReleaseGoodDetail = gql`
21
21
  crossDocking: Boolean
22
22
  arrivalNotice: ArrivalNotice
23
23
  truckNo: String
24
+ dispatchmentStatus: String
24
25
  marketplaceOrderStatus: String
25
26
  billingAddress: String
26
27
  deliveryAddress1: String
@@ -7,6 +7,8 @@ export const ReleaseGood = gql`
7
7
  type: String
8
8
  domain: Domain
9
9
  bizplace: Bizplace
10
+ manifest: Manifest
11
+ dispatchmentStatus: String
10
12
  releaseDate: String
11
13
  releaseDateTime: String
12
14
  collectionOrderNo: String
@@ -32,6 +32,11 @@ export const Mutation = `
32
32
  completeReverseKittingOrder (
33
33
  name: String!
34
34
  ): Boolean @privilege(category: "worksheet_execute", privilege: "mutation") @transaction
35
+
36
+ undoReverseKittingInventory (
37
+ orderReverseKittingName: String!
38
+ palletId: String!
39
+ ): Boolean @privilege(category: "worksheet_execute", privilege: "mutation") @transaction
35
40
  `
36
41
 
37
42
  export const Query = `
@@ -39,8 +44,10 @@ export const Query = `
39
44
  reverseKittingOrder(name: String!): ReverseKittingOrder
40
45
  executingReverseKittingOrder(name: String!): ReverseKittingOrder
41
46
  reverseKittingInventories (
42
- orderReverseKittingName: String!
47
+ orderReverseKittingName: String!,
48
+ productDetailId: String
43
49
  ): [Inventory]
50
+ generateReverseKittingPalletId(targets: [PalletInfo], type: String!): [InventoryDetail] @transaction
44
51
  `
45
52
 
46
53
  export const Types = [ReverseKittingOrder, NewReverseKittingOrder, ReverseKittingOrderPatch, ReverseKittingOrderList]