@things-factory/operato-hub 6.1.83 → 6.1.85

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 (189) hide show
  1. package/dist-server/tsconfig.tsbuildinfo +1 -1
  2. package/package.json +46 -46
  3. package/server/controllers/bizplace-initializer/codes.ts +0 -32
  4. package/server/controllers/bizplace-initializer/dataset/codes.ts +0 -398
  5. package/server/controllers/bizplace-initializer/dataset/groups.ts +0 -21
  6. package/server/controllers/bizplace-initializer/dataset/index.ts +0 -5
  7. package/server/controllers/bizplace-initializer/dataset/menus.ts +0 -500
  8. package/server/controllers/bizplace-initializer/dataset/roles-privileges.ts +0 -402
  9. package/server/controllers/bizplace-initializer/dataset/settings.ts +0 -91
  10. package/server/controllers/bizplace-initializer/generate-bizplace-domain-roles.ts +0 -29
  11. package/server/controllers/bizplace-initializer/generate-bizplace-domain.ts +0 -56
  12. package/server/controllers/bizplace-initializer/groups.ts +0 -19
  13. package/server/controllers/bizplace-initializer/index.ts +0 -5
  14. package/server/controllers/bizplace-initializer/menus.ts +0 -42
  15. package/server/controllers/bizplace-initializer/settings.ts +0 -20
  16. package/server/controllers/company-initializer/business-register.ts +0 -59
  17. package/server/controllers/company-initializer/codes.ts +0 -147
  18. package/server/controllers/company-initializer/generate-company-roles.ts +0 -119
  19. package/server/controllers/company-initializer/index.ts +0 -6
  20. package/server/controllers/company-initializer/menus.ts +0 -359
  21. package/server/controllers/company-initializer/settings.ts +0 -33
  22. package/server/controllers/company-initializer/transporter.ts +0 -20
  23. package/server/controllers/index.ts +0 -0
  24. package/server/controllers/invitation.ts +0 -132
  25. package/server/controllers/utils/make-invitation-token.ts +0 -5
  26. package/server/controllers/utils/save-invitation-token.ts +0 -9
  27. package/server/entities/index.ts +0 -0
  28. package/server/errors/index.ts +0 -1
  29. package/server/errors/validation-error.ts +0 -17
  30. package/server/graphql/index.ts +0 -7
  31. package/server/graphql/resolvers/generators/generate-bizplace.ts +0 -40
  32. package/server/graphql/resolvers/generators/generate-company.ts +0 -76
  33. package/server/graphql/resolvers/generators/index.ts +0 -9
  34. package/server/graphql/resolvers/generators/update-domain-extType.ts +0 -55
  35. package/server/graphql/resolvers/index.ts +0 -8
  36. package/server/graphql/resolvers/invitations/index.ts +0 -5
  37. package/server/graphql/resolvers/invitations/partner-invitation.ts +0 -62
  38. package/server/graphql/resolvers/oauth2/company-roles-by-scope.ts +0 -38
  39. package/server/graphql/resolvers/oauth2/index.ts +0 -5
  40. package/server/graphql/resolvers/synchronization/auto-update-all-marketplace-product-variation-quantity.ts +0 -180
  41. package/server/graphql/resolvers/synchronization/create-dat-shipments.ts +0 -64
  42. package/server/graphql/resolvers/synchronization/fetch-sync-invoices.ts +0 -52
  43. package/server/graphql/resolvers/synchronization/fetch-sync-products.ts +0 -99
  44. package/server/graphql/resolvers/synchronization/fetch-sync-purchase-orders.ts +0 -75
  45. package/server/graphql/resolvers/synchronization/index.ts +0 -26
  46. package/server/graphql/resolvers/synchronization/sellercraft-pack-marketplace-order.ts +0 -91
  47. package/server/graphql/resolvers/synchronization/sync-all-products-to-sellercraft.ts +0 -39
  48. package/server/graphql/resolvers/synchronization/sync-products-from-account.ts +0 -40
  49. package/server/graphql/resolvers/synchronization/sync-products-to-account.ts +0 -64
  50. package/server/graphql/resolvers/synchronization/sync-products-to-sellercraft.ts +0 -176
  51. package/server/graphql/types/generators/generate-bizplace-input.ts +0 -11
  52. package/server/graphql/types/generators/generate-company-input.ts +0 -11
  53. package/server/graphql/types/generators/index.ts +0 -11
  54. package/server/graphql/types/generators/update-domain-type-input.ts +0 -8
  55. package/server/graphql/types/index.ts +0 -10
  56. package/server/graphql/types/invitations/index.ts +0 -5
  57. package/server/graphql/types/oauth2/company-role.ts +0 -8
  58. package/server/graphql/types/oauth2/index.ts +0 -7
  59. package/server/graphql/types/synchronization/index.ts +0 -33
  60. package/server/graphql/types/synchronization/sync-invoice-list.ts +0 -8
  61. package/server/graphql/types/synchronization/sync-invoice-set.ts +0 -38
  62. package/server/graphql/types/synchronization/sync-product-list.ts +0 -8
  63. package/server/graphql/types/synchronization/sync-product-set.ts +0 -8
  64. package/server/graphql/types/synchronization/sync-purchase-order-list.ts +0 -8
  65. package/server/graphql/types/synchronization/sync-purchase-order-set.ts +0 -28
  66. package/server/index.ts +0 -37
  67. package/server/middlewares/business-middleware.ts +0 -32
  68. package/server/middlewares/index.ts +0 -20
  69. package/server/middlewares/store-middleware.ts +0 -36
  70. package/server/middlewares/warehouse-middleware.ts +0 -36
  71. package/server/migrations/1597668478399-SeedBusinessDomain.ts +0 -34
  72. package/server/migrations/1597668478401-SeedBusinessRoles.ts +0 -377
  73. package/server/migrations/1608009991065-SeedUser.ts +0 -64
  74. package/server/migrations/index.ts +0 -9
  75. package/server/routers/api/index.ts +0 -3
  76. package/server/routers/api/restful-apis/unstable/add-contact-point.ts +0 -89
  77. package/server/routers/api/restful-apis/unstable/add-draft-release-order.ts +0 -198
  78. package/server/routers/api/restful-apis/unstable/add-inbound-order.ts +0 -246
  79. package/server/routers/api/restful-apis/unstable/add-marketplace-order.ts +0 -171
  80. package/server/routers/api/restful-apis/unstable/add-products.ts +0 -112
  81. package/server/routers/api/restful-apis/unstable/add-release-order.ts +0 -1061
  82. package/server/routers/api/restful-apis/unstable/add-sales-invoice.ts +0 -144
  83. package/server/routers/api/restful-apis/unstable/bizplace.ts +0 -45
  84. package/server/routers/api/restful-apis/unstable/cancel-marketplace-order.ts +0 -81
  85. package/server/routers/api/restful-apis/unstable/cancel-release-order.ts +0 -91
  86. package/server/routers/api/restful-apis/unstable/get-contact-point-list.ts +0 -110
  87. package/server/routers/api/restful-apis/unstable/get-delivery-order-detail.ts +0 -46
  88. package/server/routers/api/restful-apis/unstable/get-delivery-order-list.ts +0 -121
  89. package/server/routers/api/restful-apis/unstable/get-delivery-orders.ts +0 -178
  90. package/server/routers/api/restful-apis/unstable/get-goods-received-notes.ts +0 -134
  91. package/server/routers/api/restful-apis/unstable/get-inbound-order-detail.ts +0 -128
  92. package/server/routers/api/restful-apis/unstable/get-inbound-order-list.ts +0 -126
  93. package/server/routers/api/restful-apis/unstable/get-inventory-overall-product-group.ts +0 -99
  94. package/server/routers/api/restful-apis/unstable/get-inventory-product-group.ts +0 -107
  95. package/server/routers/api/restful-apis/unstable/get-marketplace-order-shipping-list.ts +0 -156
  96. package/server/routers/api/restful-apis/unstable/get-marketplace-store-list.ts +0 -81
  97. package/server/routers/api/restful-apis/unstable/get-onhand-inventories.ts +0 -125
  98. package/server/routers/api/restful-apis/unstable/get-partners.ts +0 -26
  99. package/server/routers/api/restful-apis/unstable/get-products.ts +0 -216
  100. package/server/routers/api/restful-apis/unstable/get-release-order-detail.ts +0 -138
  101. package/server/routers/api/restful-apis/unstable/get-release-order-list.ts +0 -199
  102. package/server/routers/api/restful-apis/unstable/get-warehouses.ts +0 -19
  103. package/server/routers/api/restful-apis/unstable/index.ts +0 -32
  104. package/server/routers/api/restful-apis/unstable/reject-inbound-order.ts +0 -46
  105. package/server/routers/api/restful-apis/unstable/set-marketplace-order-delivered.ts +0 -60
  106. package/server/routers/api/restful-apis/unstable/set-marketplace-order-failed-delivery.ts +0 -60
  107. package/server/routers/api/restful-apis/unstable/update-marketplace-order.ts +0 -111
  108. package/server/routers/api/restful-apis/unstable/update-marketplace-shipping-order.ts +0 -107
  109. package/server/routers/api/restful-apis/unstable/update-release-order-details.ts +0 -94
  110. package/server/routers/api/restful-apis/v1/add-contact-point.ts +0 -77
  111. package/server/routers/api/restful-apis/v1/add-draft-release-order.ts +0 -196
  112. package/server/routers/api/restful-apis/v1/add-inbound-order.ts +0 -243
  113. package/server/routers/api/restful-apis/v1/add-marketplace-order.ts +0 -172
  114. package/server/routers/api/restful-apis/v1/add-products.ts +0 -112
  115. package/server/routers/api/restful-apis/v1/add-release-order.ts +0 -967
  116. package/server/routers/api/restful-apis/v1/bizplace.ts +0 -45
  117. package/server/routers/api/restful-apis/v1/cancel-marketplace-order.ts +0 -81
  118. package/server/routers/api/restful-apis/v1/cancel-release-order.ts +0 -91
  119. package/server/routers/api/restful-apis/v1/get-contact-point-list.ts +0 -110
  120. package/server/routers/api/restful-apis/v1/get-delivery-order-detail.ts +0 -46
  121. package/server/routers/api/restful-apis/v1/get-delivery-order-list.ts +0 -121
  122. package/server/routers/api/restful-apis/v1/get-delivery-orders.ts +0 -178
  123. package/server/routers/api/restful-apis/v1/get-goods-received-notes.ts +0 -134
  124. package/server/routers/api/restful-apis/v1/get-inbound-order-detail.ts +0 -128
  125. package/server/routers/api/restful-apis/v1/get-inbound-order-list.ts +0 -126
  126. package/server/routers/api/restful-apis/v1/get-inventory-overall-product-group.ts +0 -99
  127. package/server/routers/api/restful-apis/v1/get-inventory-product-group.ts +0 -112
  128. package/server/routers/api/restful-apis/v1/get-marketplace-order-shipping-list.ts +0 -156
  129. package/server/routers/api/restful-apis/v1/get-marketplace-store-list.ts +0 -81
  130. package/server/routers/api/restful-apis/v1/get-onhand-inventories.ts +0 -125
  131. package/server/routers/api/restful-apis/v1/get-partners.ts +0 -26
  132. package/server/routers/api/restful-apis/v1/get-products.ts +0 -216
  133. package/server/routers/api/restful-apis/v1/get-release-order-detail.ts +0 -134
  134. package/server/routers/api/restful-apis/v1/get-release-order-list.ts +0 -198
  135. package/server/routers/api/restful-apis/v1/get-warehouses.ts +0 -19
  136. package/server/routers/api/restful-apis/v1/index.ts +0 -31
  137. package/server/routers/api/restful-apis/v1/reject-inbound-order.ts +0 -46
  138. package/server/routers/api/restful-apis/v1/set-marketplace-order-delivered.ts +0 -60
  139. package/server/routers/api/restful-apis/v1/set-marketplace-order-failed-delivery.ts +0 -60
  140. package/server/routers/api/restful-apis/v1/update-marketplace-order.ts +0 -111
  141. package/server/routers/api/restful-apis/v1/update-marketplace-shipping-order.ts +0 -104
  142. package/server/routers/api/restful-apis/v1/update-release-order-details.ts +0 -94
  143. package/server/routers/api/restful-apis/v2/add-contact-point.ts +0 -77
  144. package/server/routers/api/restful-apis/v2/add-draft-release-order.ts +0 -196
  145. package/server/routers/api/restful-apis/v2/add-inbound-order.ts +0 -243
  146. package/server/routers/api/restful-apis/v2/add-marketplace-order.ts +0 -172
  147. package/server/routers/api/restful-apis/v2/add-products.ts +0 -112
  148. package/server/routers/api/restful-apis/v2/add-release-order.ts +0 -967
  149. package/server/routers/api/restful-apis/v2/bizplace.ts +0 -45
  150. package/server/routers/api/restful-apis/v2/cancel-marketplace-order.ts +0 -81
  151. package/server/routers/api/restful-apis/v2/cancel-release-order.ts +0 -91
  152. package/server/routers/api/restful-apis/v2/get-contact-point-list.ts +0 -110
  153. package/server/routers/api/restful-apis/v2/get-delivery-order-detail.ts +0 -46
  154. package/server/routers/api/restful-apis/v2/get-delivery-order-list.ts +0 -121
  155. package/server/routers/api/restful-apis/v2/get-delivery-orders.ts +0 -178
  156. package/server/routers/api/restful-apis/v2/get-goods-received-notes.ts +0 -134
  157. package/server/routers/api/restful-apis/v2/get-inbound-order-detail.ts +0 -128
  158. package/server/routers/api/restful-apis/v2/get-inbound-order-list.ts +0 -126
  159. package/server/routers/api/restful-apis/v2/get-inventory-overall-product-group.ts +0 -99
  160. package/server/routers/api/restful-apis/v2/get-inventory-product-group.ts +0 -112
  161. package/server/routers/api/restful-apis/v2/get-marketplace-order-shipping-list.ts +0 -156
  162. package/server/routers/api/restful-apis/v2/get-marketplace-store-list.ts +0 -81
  163. package/server/routers/api/restful-apis/v2/get-onhand-inventories.ts +0 -125
  164. package/server/routers/api/restful-apis/v2/get-partners.ts +0 -26
  165. package/server/routers/api/restful-apis/v2/get-products.ts +0 -216
  166. package/server/routers/api/restful-apis/v2/get-release-order-detail.ts +0 -134
  167. package/server/routers/api/restful-apis/v2/get-release-order-list.ts +0 -198
  168. package/server/routers/api/restful-apis/v2/get-warehouses.ts +0 -19
  169. package/server/routers/api/restful-apis/v2/index.ts +0 -31
  170. package/server/routers/api/restful-apis/v2/reject-inbound-order.ts +0 -46
  171. package/server/routers/api/restful-apis/v2/set-marketplace-order-delivered.ts +0 -60
  172. package/server/routers/api/restful-apis/v2/set-marketplace-order-failed-delivery.ts +0 -60
  173. package/server/routers/api/restful-apis/v2/update-marketplace-order.ts +0 -111
  174. package/server/routers/api/restful-apis/v2/update-marketplace-shipping-order.ts +0 -104
  175. package/server/routers/api/restful-apis/v2/update-release-order-details.ts +0 -94
  176. package/server/routers/auth-invitation-router.ts +0 -25
  177. package/server/routers/business/bizplace-register-router.ts +0 -31
  178. package/server/routers/business/business-register-router.ts +0 -32
  179. package/server/routers/business/index.ts +0 -3
  180. package/server/routers/business/path-base-business-router.ts +0 -15
  181. package/server/routes.ts +0 -28
  182. package/server/templates/account-unlock-email.ts +0 -64
  183. package/server/templates/invitation-email.ts +0 -65
  184. package/server/templates/reset-password-email.ts +0 -64
  185. package/server/templates/verification-email.ts +0 -65
  186. package/server/utils/build-map.ts +0 -18
  187. package/server/utils/get-warehouses.ts +0 -115
  188. package/server/utils/index.ts +0 -3
  189. package/server/utils/order-no-generator.ts +0 -8
@@ -1,104 +0,0 @@
1
- /** Customer list to inform when there are changes */
2
- /** 1. SeeBuu */
3
-
4
- import gql from 'graphql-tag'
5
-
6
- import { restfulApiRouter as router } from '@things-factory/api'
7
-
8
- import { businessMiddleware } from '../../../../middlewares/business-middleware'
9
- import { storeMiddleware } from '../../../../middlewares/store-middleware'
10
-
11
- const debug = require('debug')('things-factory:operato-hub:restful-api:v1:update-marketplace-shipping-order')
12
-
13
- router.post(
14
- '/v1/warehouse/:storeId/update-marketplace-shipping-order',
15
- businessMiddleware,
16
- storeMiddleware,
17
- async (context, next) => {
18
- const { client, marketplaceStore, domain } = context.state
19
- const { t } = context
20
- const bodyReq = context.request.body
21
-
22
- if (typeof bodyReq === undefined || !Object.keys(bodyReq)?.length) {
23
- context.throw(400, t('error.invalid body request format'))
24
- }
25
-
26
- await checkMandatoryKey(context, bodyReq)
27
- debug('post:/update-marketplace-shipping-order body request', bodyReq)
28
-
29
- const patch: any = Object.assign({}, bodyReq)
30
- delete patch.orderNo
31
-
32
- context.body = {
33
- result: (
34
- await client.mutate({
35
- mutation: gql`
36
- mutation updateMarketplaceOrderShipping($orderNo: String!, $patch: MarketplaceOrderShippingPatch!) {
37
- updateMarketplaceOrderShipping(orderNo: $orderNo, patch: $patch) {
38
- id
39
- shippingId
40
- orderNoRef
41
- attentionTo
42
- address1
43
- address2
44
- address3
45
- address4
46
- address5
47
- state
48
- city
49
- postCode
50
- country
51
- phone1
52
- phone2
53
- email
54
- orderType
55
- weightUnit
56
- totalWeight
57
- volumeUnit
58
- totalVolume
59
- transporter
60
- trackingNo
61
- airwayBill
62
- marketplaceStore {
63
- id
64
- name
65
- storeId
66
- }
67
- }
68
- }
69
- `,
70
- variables: { orderNo: bodyReq.orderNo, patch },
71
- context: {
72
- ...context,
73
- state: {
74
- ...context.state,
75
- marketplaceStore,
76
- domain,
77
- type: 'api'
78
- }
79
- }
80
- } as any)
81
- ).data
82
- }
83
- }
84
- )
85
-
86
- export function checkMandatoryKey(context, params) {
87
- let noparams = []
88
-
89
- if (!params?.orderNo) {
90
- noparams.push('orderNo')
91
- }
92
-
93
- if (!params?.trackingNo) {
94
- noparams.push('trackingNo')
95
- }
96
-
97
- if (!params?.airwayBill) {
98
- noparams.push('airwayBill')
99
- }
100
-
101
- if (noparams.length > 0) {
102
- context.throw(400, context.t('error.required param x not found', { x: `${noparams.join(', ')}` }))
103
- }
104
- }
@@ -1,94 +0,0 @@
1
- import gql from 'graphql-tag'
2
-
3
- import { restfulApiRouter as router } from '@things-factory/api'
4
- import { Bizplace } from '@things-factory/biz-base'
5
- import { getRepository } from '@things-factory/shell'
6
-
7
- import { businessMiddleware } from '../../../../middlewares/business-middleware'
8
- import { warehouseMiddleware } from '../../../../middlewares/warehouse-middleware'
9
-
10
- const debug = require('debug')('things-factory:operato-hub:restful-api:v1:update-release-order-details')
11
-
12
- router.post(
13
- '/v1/warehouse/:warehouseId/update-release-order-details',
14
- businessMiddleware,
15
- warehouseMiddleware,
16
- async (context, next) => {
17
- const { client, domain } = context.state
18
- const { warehouseId: customerBizplaceId } = context.params
19
- const { t } = context
20
- const bodyReq = context.request.body
21
-
22
- if (!customerBizplaceId) context.throw(404, t('error.warehouse id not found'))
23
- const customerBizplace: Bizplace = await getRepository(Bizplace).findOne({
24
- where: { id: customerBizplaceId }
25
- })
26
-
27
- if (typeof bodyReq === undefined || !Object.keys(bodyReq)?.length) {
28
- debug('bodyReq', bodyReq)
29
- context.throw(400, t('error.invalid body request format'))
30
- }
31
-
32
- let patch: any = {}
33
- if (bodyReq?.releaseOrder) patch.releaseGood = bodyReq.releaseOrder
34
- else context.throw(400, t('error.body request require releaseGood property'))
35
-
36
- if (bodyReq?.shippingOrder) patch.shippingOrder = bodyReq.shippingOrder
37
- else patch.shippingOrder = null
38
-
39
- context.body = {
40
- result: (
41
- await client.mutate({
42
- mutation: gql`
43
- mutation updateReleaseGoodDetails($releaseGood: ReleaseGoodPatch, $shippingOrder: ShippingOrderPatch) {
44
- updateReleaseGoodDetails(releaseGood: $releaseGood, shippingOrder: $shippingOrder) {
45
- id
46
- name
47
- refNo
48
- refNo2
49
- refNo3
50
- ownTransport
51
- collectionOrderNo
52
- exportOption
53
- courierOption
54
- packingOption
55
- type
56
- billingAddress
57
- deliveryAddress1
58
- deliveryAddress2
59
- deliveryAddress3
60
- deliveryAddress4
61
- deliveryAddress5
62
- attentionTo
63
- attentionCompany
64
- city
65
- state
66
- postalCode
67
- country
68
- phone1
69
- phone2
70
- email
71
- handoverType
72
- dropoffAddress
73
- pickupAddress
74
- transporter
75
- trackingNo
76
- marketplaceOrderStatus
77
- }
78
- }
79
- `,
80
- variables: { ...patch },
81
- context: {
82
- ...context,
83
- state: {
84
- ...context.state,
85
- bizplace: customerBizplace,
86
- domain,
87
- type: 'api'
88
- }
89
- }
90
- } as any)
91
- ).data
92
- }
93
- }
94
- )
@@ -1,77 +0,0 @@
1
- import { restfulApiRouter as router } from '@things-factory/api'
2
- import gql from 'graphql-tag'
3
- import { businessMiddleware } from '../../../../middlewares/business-middleware'
4
- import { warehouseMiddleware } from '../../../../middlewares/warehouse-middleware'
5
-
6
- const debug = require('debug')('things-factory:operato-hub:restful-api:v2:add-contact-point')
7
-
8
- router.post(
9
- '/v2/warehouse/:warehouseId/add-contact-point',
10
- businessMiddleware,
11
- warehouseMiddleware,
12
- async (context, next) => {
13
- const { client, warehouse: bizplace, domain } = context.state
14
- const { warehouseId } = context.params
15
- const { t } = context
16
- let bodyReq = context.request.body
17
-
18
- if (!warehouseId) context.throw(404, t('error.warehouse id not found'))
19
-
20
- if (typeof bodyReq === undefined || !Object.keys(bodyReq)?.length) {
21
- context.throw(400, context.t('error.invalid body request format'))
22
- }
23
-
24
- await checkMandatoryKey(context, bodyReq)
25
- debug('post:/add-contact-point request.body', bodyReq)
26
-
27
- let patches: any[] = bodyReq.map(record => {
28
- let patch = Object.assign({}, record)
29
- patch.cuFlag = '+'
30
-
31
- return patch
32
- })
33
-
34
- context.body = {
35
- result: (
36
- await client.query({
37
- query: gql`
38
- mutation updateMultipleContactPoint($patches: [ContactPointPatch]!) {
39
- updateMultipleContactPoint(patches: $patches) {
40
- name
41
- companyName
42
- phone
43
- address
44
- address2
45
- city
46
- state
47
- postalCode
48
- type
49
- fax
50
- email
51
- address
52
- billingAddress
53
- accountNo
54
- }
55
- }
56
- `,
57
- variables: { patches },
58
- context: {
59
- ...context,
60
- state: {
61
- ...context.state,
62
- bizplace,
63
- domain
64
- }
65
- }
66
- } as any)
67
- ).data
68
- }
69
- }
70
- )
71
-
72
- export async function checkMandatoryKey(context, params) {
73
- let noparams = ['name', 'email', 'phone', 'address', 'billingAddress', 'type'].filter(param => !(param in params))
74
-
75
- if (noparams?.length)
76
- context.throw(400, context.t('error.required param x not found', { x: `${noparams.join(', ')}` }))
77
- }
@@ -1,196 +0,0 @@
1
- import gql from 'graphql-tag'
2
- import { EntityManager, getConnection } from 'typeorm'
3
-
4
- import { restfulApiRouter as router } from '@things-factory/api'
5
- import { Bizplace } from '@things-factory/biz-base'
6
- import { OrderInventory } from '@things-factory/sales-base'
7
-
8
- import { businessMiddleware } from '../../../../middlewares/business-middleware'
9
- import { warehouseMiddleware } from '../../../../middlewares/warehouse-middleware'
10
-
11
- const debug = require('debug')('things-factory:operato-hub:restful-api:unstable:add-draft-release-order')
12
-
13
- router.post(
14
- '/v2/warehouse/:warehouseId/add-draft-release-order',
15
- businessMiddleware,
16
- warehouseMiddleware,
17
- async (context, next) => {
18
- return await getConnection().transaction(async (tx: EntityManager) => {
19
- const { client, domain } = context.state
20
- const { warehouseId: customerBizplaceId } = context.params
21
- const { t } = context
22
-
23
- if (!customerBizplaceId) context.throw(404, t('error.warehouse id not found'))
24
-
25
- let bodyReq = context.request.body
26
- if (typeof bodyReq === undefined || !Object.keys(bodyReq)?.length) {
27
- context.throw(400, t('error.invalid body request format'))
28
- }
29
- debug('post:/add-draft-release-order request.body', bodyReq)
30
- await checkMandatoryKey(context, bodyReq)
31
-
32
- // get customer company's bizplace
33
- const customerBizplace: Bizplace = await tx.getRepository(Bizplace).findOne({
34
- where: { id: customerBizplaceId }
35
- })
36
-
37
- const orderInventories: OrderInventory[] = bodyReq.orderInventories
38
-
39
- context.body = {
40
- result: (
41
- await client.mutate({
42
- mutation: gql`
43
- mutation upsertDraftReleaseGood(
44
- $draftReleaseGood: DraftReleaseGoodPatch!
45
- $orderProducts: [OrderProductPatch!]!
46
- $files: [Upload!]
47
- ) {
48
- upsertDraftReleaseGood(
49
- draftReleaseGood: $draftReleaseGood
50
- orderProducts: $orderProducts
51
- files: $files
52
- ) {
53
- id
54
- name
55
- refNo
56
- refNo2
57
- refNo3
58
- status
59
- truckNo
60
- ownTransport
61
- marketplaceOrderStatus
62
- billingAddress
63
- deliveryAddress1
64
- deliveryAddress2
65
- deliveryAddress3
66
- deliveryAddress4
67
- deliveryAddress5
68
- attentionTo
69
- attentionCompany
70
- city
71
- state
72
- postalCode
73
- country
74
- phone1
75
- phone2
76
- email
77
- type
78
- exportOption
79
- releaseDate
80
- collectionOrderNo
81
- bizplace {
82
- name
83
- }
84
- orderProducts {
85
- product {
86
- sku
87
- name
88
- description
89
- }
90
- packingType
91
- packingSize
92
- releaseQty
93
- }
94
- }
95
- }
96
- `,
97
- variables: {
98
- draftReleaseGood: {
99
- bizplace: {
100
- id: customerBizplace.id
101
- },
102
- courierOption: bodyReq.courierOption,
103
- collectionOrderNo: bodyReq.collectionOrderNo,
104
- exportOption: bodyReq.exportOption,
105
- ownTransport: bodyReq.ownTransport,
106
- packingOption: bodyReq.packingOption,
107
- refNo: bodyReq.refNo,
108
- refNo2: bodyReq?.refNo2,
109
- refNo3: bodyReq?.refNo3,
110
- releaseDate: bodyReq.releaseDate,
111
- type: bodyReq.type,
112
- marketplaceOrderStatus: bodyReq?.marketplaceOrderStatus,
113
- remark: bodyReq?.remark || null,
114
- billingAddress: bodyReq?.billTo?.billingAddress || null,
115
- deliveryAddress1: bodyReq?.deliverTo?.deliveryAddress1 || null,
116
- deliveryAddress2: bodyReq?.deliverTo?.deliveryAddress2 || null,
117
- deliveryAddress3: bodyReq?.deliverTo?.deliveryAddress3 || null,
118
- deliveryAddress4: bodyReq?.deliverTo?.deliveryAddress4 || null,
119
- deliveryAddress5: bodyReq?.deliverTo?.deliveryAddress5 || null,
120
- attentionTo: bodyReq?.deliverTo?.attentionTo || null,
121
- attentionCompany: bodyReq?.deliverTo?.attentionCompany || null,
122
- city: bodyReq?.deliverTo?.city || null,
123
- state: bodyReq?.deliverTo?.state || null,
124
- postalCode: bodyReq?.deliverTo?.postalCode || null,
125
- country: bodyReq?.deliverTo?.country || null,
126
- phone1: bodyReq?.deliverTo?.phone1 || null,
127
- phone2: bodyReq?.deliverTo?.phone2 || null,
128
- email: bodyReq?.deliverTo?.email || null
129
- },
130
- orderProducts: orderInventories,
131
- files: []
132
- },
133
- context: {
134
- ...context,
135
- hasUpload: true,
136
- state: {
137
- ...context.state,
138
- customerBizplace,
139
- domain,
140
- type: 'api'
141
- }
142
- }
143
- } as any)
144
- ).data
145
- }
146
- })
147
- }
148
- )
149
-
150
- export async function checkMandatoryKey(context, params) {
151
- let noparams = ['releaseDate', 'exportOption'].filter(param => !(param in params))
152
-
153
- if ('ownTransport' in params) {
154
- if (params.ownTransport == true) {
155
- if (!params.hasOwnProperty('collectionOrderNo')) {
156
- noparams.push('collectionOrderNo')
157
- }
158
- }
159
- } else {
160
- noparams.push('ownTransport')
161
- }
162
-
163
- if ('exportOption' in params) {
164
- if (params.exportOption === true) {
165
- if (
166
- params.exportOption.filter(
167
- record =>
168
- !record.containerNo || !record.containerArrivalDate || !record.containerLeavingDate || !record.shipName
169
- ).length
170
- ) {
171
- noparams.push('exportOption')
172
- }
173
- }
174
- }
175
-
176
- if ('orderInventories' in params) {
177
- params.orderInventories.forEach((param, key) => {
178
- let noSubParams = []
179
-
180
- if (!param?.releaseQty) noSubParams.push('releaseQty')
181
-
182
- if (!param?.product) noSubParams.push('product')
183
-
184
- if (noSubParams?.length)
185
- context.throw(400, context.t('error.required param x not found', { x: `${noSubParams.join(', ')}` }))
186
- })
187
- } else {
188
- noparams.push('orderInventories')
189
- }
190
-
191
- if (noparams?.length) {
192
- context.throw(400, context.t('error.required param x not found', { x: `${noparams.join(', ')}` }))
193
- }
194
-
195
- return params
196
- }