@things-factory/operato-hub 4.3.79-alpha.1 → 4.3.79

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 (168) hide show
  1. package/dist-server/middlewares/business-middleware.js +1 -4
  2. package/dist-server/middlewares/business-middleware.js.map +1 -1
  3. package/dist-server/middlewares/store-middleware.js.map +1 -1
  4. package/dist-server/routers/api/restful-apis/unstable/add-draft-release-order.js +2 -3
  5. package/dist-server/routers/api/restful-apis/unstable/add-draft-release-order.js.map +1 -1
  6. package/dist-server/routers/api/restful-apis/unstable/add-inbound-order.js +2 -5
  7. package/dist-server/routers/api/restful-apis/unstable/add-inbound-order.js.map +1 -1
  8. package/dist-server/routers/api/restful-apis/unstable/add-release-order.js +2 -4
  9. package/dist-server/routers/api/restful-apis/unstable/add-release-order.js.map +1 -1
  10. package/dist-server/routers/api/restful-apis/v1/bizplace.js +45 -0
  11. package/dist-server/routers/api/restful-apis/v1/bizplace.js.map +1 -0
  12. package/dist-server/routers/api/restful-apis/v1/get-contact-point-list.js +103 -0
  13. package/dist-server/routers/api/restful-apis/v1/get-contact-point-list.js.map +1 -0
  14. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-detail.js +47 -0
  15. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-detail.js.map +1 -0
  16. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-list.js +124 -0
  17. package/dist-server/routers/api/restful-apis/v1/get-delivery-order-list.js.map +1 -0
  18. package/dist-server/routers/api/restful-apis/v1/get-delivery-orders.js +164 -0
  19. package/dist-server/routers/api/restful-apis/v1/get-delivery-orders.js.map +1 -0
  20. package/dist-server/routers/api/restful-apis/v1/get-goods-received-notes.js +120 -0
  21. package/dist-server/routers/api/restful-apis/v1/get-goods-received-notes.js.map +1 -0
  22. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-detail.js +115 -0
  23. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-detail.js.map +1 -0
  24. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-list.js +125 -0
  25. package/dist-server/routers/api/restful-apis/v1/get-inbound-order-list.js.map +1 -0
  26. package/dist-server/routers/api/restful-apis/v1/get-inventory-overall-product-group.js +88 -0
  27. package/dist-server/routers/api/restful-apis/v1/get-inventory-overall-product-group.js.map +1 -0
  28. package/dist-server/routers/api/restful-apis/v1/get-marketplace-store-list.js +79 -0
  29. package/dist-server/routers/api/restful-apis/v1/get-marketplace-store-list.js.map +1 -0
  30. package/dist-server/routers/api/restful-apis/v1/get-onhand-inventories.js +110 -0
  31. package/dist-server/routers/api/restful-apis/v1/get-onhand-inventories.js.map +1 -0
  32. package/dist-server/routers/api/restful-apis/v1/get-partners.js +23 -0
  33. package/dist-server/routers/api/restful-apis/v1/get-partners.js.map +1 -0
  34. package/dist-server/routers/api/restful-apis/v1/get-products.js +210 -0
  35. package/dist-server/routers/api/restful-apis/v1/get-products.js.map +1 -0
  36. package/dist-server/routers/api/restful-apis/v1/get-release-order-detail.js +122 -0
  37. package/dist-server/routers/api/restful-apis/v1/get-release-order-detail.js.map +1 -0
  38. package/dist-server/routers/api/restful-apis/v1/get-release-order-list.js +191 -0
  39. package/dist-server/routers/api/restful-apis/v1/get-release-order-list.js.map +1 -0
  40. package/dist-server/routers/api/restful-apis/v1/get-warehouses.js +20 -0
  41. package/dist-server/routers/api/restful-apis/v1/get-warehouses.js.map +1 -0
  42. package/dist-server/routers/api/restful-apis/v1/index.js +31 -2
  43. package/dist-server/routers/api/restful-apis/v1/index.js.map +1 -1
  44. package/package.json +54 -54
  45. package/server/middlewares/business-middleware.ts +1 -5
  46. package/server/middlewares/store-middleware.ts +0 -1
  47. package/server/routers/api/restful-apis/unstable/add-draft-release-order.ts +2 -3
  48. package/server/routers/api/restful-apis/unstable/add-inbound-order.ts +2 -5
  49. package/server/routers/api/restful-apis/unstable/add-release-order.ts +2 -4
  50. package/server/routers/api/restful-apis/v1/bizplace.ts +45 -0
  51. package/server/routers/api/restful-apis/v1/get-contact-point-list.ts +110 -0
  52. package/server/routers/api/restful-apis/v1/get-delivery-order-detail.ts +46 -0
  53. package/server/routers/api/restful-apis/v1/get-delivery-order-list.ts +121 -0
  54. package/server/routers/api/restful-apis/v1/get-delivery-orders.ts +178 -0
  55. package/server/routers/api/restful-apis/v1/get-goods-received-notes.ts +134 -0
  56. package/server/routers/api/restful-apis/v1/get-inbound-order-detail.ts +128 -0
  57. package/server/routers/api/restful-apis/v1/get-inbound-order-list.ts +126 -0
  58. package/server/routers/api/restful-apis/v1/get-inventory-overall-product-group.ts +99 -0
  59. package/server/routers/api/restful-apis/v1/get-marketplace-store-list.ts +81 -0
  60. package/server/routers/api/restful-apis/v1/get-onhand-inventories.ts +125 -0
  61. package/server/routers/api/restful-apis/v1/get-partners.ts +24 -0
  62. package/server/routers/api/restful-apis/v1/get-products.ts +216 -0
  63. package/server/routers/api/restful-apis/v1/get-release-order-detail.ts +134 -0
  64. package/server/routers/api/restful-apis/v1/get-release-order-list.ts +198 -0
  65. package/server/routers/api/restful-apis/v1/get-warehouses.ts +18 -0
  66. package/server/routers/api/restful-apis/v1/index.ts +31 -2
  67. package/dist-server/routers/api/restful-apis/v1/company/add-contact-points.js +0 -94
  68. package/dist-server/routers/api/restful-apis/v1/company/add-contact-points.js.map +0 -1
  69. package/dist-server/routers/api/restful-apis/v1/company/add-marketplace-order.js +0 -208
  70. package/dist-server/routers/api/restful-apis/v1/company/add-marketplace-order.js.map +0 -1
  71. package/dist-server/routers/api/restful-apis/v1/company/add-product.js +0 -65
  72. package/dist-server/routers/api/restful-apis/v1/company/add-product.js.map +0 -1
  73. package/dist-server/routers/api/restful-apis/v1/company/cancel-marketplace-order.js +0 -97
  74. package/dist-server/routers/api/restful-apis/v1/company/cancel-marketplace-order.js.map +0 -1
  75. package/dist-server/routers/api/restful-apis/v1/company/get-bizplace-list.js +0 -50
  76. package/dist-server/routers/api/restful-apis/v1/company/get-bizplace-list.js.map +0 -1
  77. package/dist-server/routers/api/restful-apis/v1/company/get-contact-point-list.js +0 -63
  78. package/dist-server/routers/api/restful-apis/v1/company/get-contact-point-list.js.map +0 -1
  79. package/dist-server/routers/api/restful-apis/v1/company/get-marketplace-order-shipping-list.js +0 -110
  80. package/dist-server/routers/api/restful-apis/v1/company/get-marketplace-order-shipping-list.js.map +0 -1
  81. package/dist-server/routers/api/restful-apis/v1/company/get-marketplace-store-list.js +0 -52
  82. package/dist-server/routers/api/restful-apis/v1/company/get-marketplace-store-list.js.map +0 -1
  83. package/dist-server/routers/api/restful-apis/v1/company/get-partner-list.js +0 -90
  84. package/dist-server/routers/api/restful-apis/v1/company/get-partner-list.js.map +0 -1
  85. package/dist-server/routers/api/restful-apis/v1/company/get-product-list.js +0 -99
  86. package/dist-server/routers/api/restful-apis/v1/company/get-product-list.js.map +0 -1
  87. package/dist-server/routers/api/restful-apis/v1/company/index.js +0 -14
  88. package/dist-server/routers/api/restful-apis/v1/company/index.js.map +0 -1
  89. package/dist-server/routers/api/restful-apis/v1/company/update-marketplace-order-delivered.js +0 -65
  90. package/dist-server/routers/api/restful-apis/v1/company/update-marketplace-order-delivered.js.map +0 -1
  91. package/dist-server/routers/api/restful-apis/v1/middlewares/business-middleware.js +0 -29
  92. package/dist-server/routers/api/restful-apis/v1/middlewares/business-middleware.js.map +0 -1
  93. package/dist-server/routers/api/restful-apis/v1/middlewares/index.js +0 -40
  94. package/dist-server/routers/api/restful-apis/v1/middlewares/index.js.map +0 -1
  95. package/dist-server/routers/api/restful-apis/v1/middlewares/logging-middleware.js +0 -23
  96. package/dist-server/routers/api/restful-apis/v1/middlewares/logging-middleware.js.map +0 -1
  97. package/dist-server/routers/api/restful-apis/v1/middlewares/store-middleware.js +0 -32
  98. package/dist-server/routers/api/restful-apis/v1/middlewares/store-middleware.js.map +0 -1
  99. package/dist-server/routers/api/restful-apis/v1/middlewares/validation-middleware.js +0 -53
  100. package/dist-server/routers/api/restful-apis/v1/middlewares/validation-middleware.js.map +0 -1
  101. package/dist-server/routers/api/restful-apis/v1/middlewares/warehouse-middleware.js +0 -31
  102. package/dist-server/routers/api/restful-apis/v1/middlewares/warehouse-middleware.js.map +0 -1
  103. package/dist-server/routers/api/restful-apis/v1/utils/error-util.js +0 -71
  104. package/dist-server/routers/api/restful-apis/v1/utils/error-util.js.map +0 -1
  105. package/dist-server/routers/api/restful-apis/v1/utils/expected-parameters.js +0 -201
  106. package/dist-server/routers/api/restful-apis/v1/utils/expected-parameters.js.map +0 -1
  107. package/dist-server/routers/api/restful-apis/v1/utils/params.js +0 -293
  108. package/dist-server/routers/api/restful-apis/v1/utils/params.js.map +0 -1
  109. package/dist-server/routers/api/restful-apis/v1/utils/validate-util.js +0 -90
  110. package/dist-server/routers/api/restful-apis/v1/utils/validate-util.js.map +0 -1
  111. package/dist-server/routers/api/restful-apis/v1/warehouse/add-inbound-order.js +0 -277
  112. package/dist-server/routers/api/restful-apis/v1/warehouse/add-inbound-order.js.map +0 -1
  113. package/dist-server/routers/api/restful-apis/v1/warehouse/add-release-order.js +0 -810
  114. package/dist-server/routers/api/restful-apis/v1/warehouse/add-release-order.js.map +0 -1
  115. package/dist-server/routers/api/restful-apis/v1/warehouse/cancel-inbound-order.js +0 -116
  116. package/dist-server/routers/api/restful-apis/v1/warehouse/cancel-inbound-order.js.map +0 -1
  117. package/dist-server/routers/api/restful-apis/v1/warehouse/get-delivery-order-list.js +0 -140
  118. package/dist-server/routers/api/restful-apis/v1/warehouse/get-delivery-order-list.js.map +0 -1
  119. package/dist-server/routers/api/restful-apis/v1/warehouse/get-goods-received-note-list.js +0 -100
  120. package/dist-server/routers/api/restful-apis/v1/warehouse/get-goods-received-note-list.js.map +0 -1
  121. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inbound-order-details.js +0 -78
  122. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inbound-order-details.js.map +0 -1
  123. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inbound-order-list.js +0 -96
  124. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inbound-order-list.js.map +0 -1
  125. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inventory-product-group-list.js +0 -244
  126. package/dist-server/routers/api/restful-apis/v1/warehouse/get-inventory-product-group-list.js.map +0 -1
  127. package/dist-server/routers/api/restful-apis/v1/warehouse/get-onhand-inventory-list.js +0 -96
  128. package/dist-server/routers/api/restful-apis/v1/warehouse/get-onhand-inventory-list.js.map +0 -1
  129. package/dist-server/routers/api/restful-apis/v1/warehouse/get-release-order-details.js +0 -94
  130. package/dist-server/routers/api/restful-apis/v1/warehouse/get-release-order-details.js.map +0 -1
  131. package/dist-server/routers/api/restful-apis/v1/warehouse/get-release-order-list.js +0 -112
  132. package/dist-server/routers/api/restful-apis/v1/warehouse/get-release-order-list.js.map +0 -1
  133. package/dist-server/routers/api/restful-apis/v1/warehouse/index.js +0 -13
  134. package/dist-server/routers/api/restful-apis/v1/warehouse/index.js.map +0 -1
  135. package/server/routers/api/restful-apis/v1/company/add-contact-points.ts +0 -94
  136. package/server/routers/api/restful-apis/v1/company/add-marketplace-order.ts +0 -242
  137. package/server/routers/api/restful-apis/v1/company/add-product.ts +0 -78
  138. package/server/routers/api/restful-apis/v1/company/cancel-marketplace-order.ts +0 -102
  139. package/server/routers/api/restful-apis/v1/company/get-bizplace-list.ts +0 -56
  140. package/server/routers/api/restful-apis/v1/company/get-contact-point-list.ts +0 -69
  141. package/server/routers/api/restful-apis/v1/company/get-marketplace-order-shipping-list.ts +0 -118
  142. package/server/routers/api/restful-apis/v1/company/get-marketplace-store-list.ts +0 -58
  143. package/server/routers/api/restful-apis/v1/company/get-partner-list.ts +0 -97
  144. package/server/routers/api/restful-apis/v1/company/get-product-list.ts +0 -105
  145. package/server/routers/api/restful-apis/v1/company/index.ts +0 -11
  146. package/server/routers/api/restful-apis/v1/company/update-marketplace-order-delivered.ts +0 -70
  147. package/server/routers/api/restful-apis/v1/middlewares/business-middleware.ts +0 -31
  148. package/server/routers/api/restful-apis/v1/middlewares/index.ts +0 -26
  149. package/server/routers/api/restful-apis/v1/middlewares/logging-middleware.ts +0 -24
  150. package/server/routers/api/restful-apis/v1/middlewares/store-middleware.ts +0 -34
  151. package/server/routers/api/restful-apis/v1/middlewares/validation-middleware.ts +0 -50
  152. package/server/routers/api/restful-apis/v1/middlewares/warehouse-middleware.ts +0 -31
  153. package/server/routers/api/restful-apis/v1/utils/error-util.ts +0 -70
  154. package/server/routers/api/restful-apis/v1/utils/expected-parameters.ts +0 -199
  155. package/server/routers/api/restful-apis/v1/utils/params.ts +0 -291
  156. package/server/routers/api/restful-apis/v1/utils/validate-util.ts +0 -74
  157. package/server/routers/api/restful-apis/v1/warehouse/add-inbound-order.ts +0 -361
  158. package/server/routers/api/restful-apis/v1/warehouse/add-release-order.ts +0 -1000
  159. package/server/routers/api/restful-apis/v1/warehouse/cancel-inbound-order.ts +0 -139
  160. package/server/routers/api/restful-apis/v1/warehouse/get-delivery-order-list.ts +0 -144
  161. package/server/routers/api/restful-apis/v1/warehouse/get-goods-received-note-list.ts +0 -109
  162. package/server/routers/api/restful-apis/v1/warehouse/get-inbound-order-details.ts +0 -74
  163. package/server/routers/api/restful-apis/v1/warehouse/get-inbound-order-list.ts +0 -99
  164. package/server/routers/api/restful-apis/v1/warehouse/get-inventory-product-group-list.ts +0 -295
  165. package/server/routers/api/restful-apis/v1/warehouse/get-onhand-inventory-list.ts +0 -99
  166. package/server/routers/api/restful-apis/v1/warehouse/get-release-order-details.ts +0 -97
  167. package/server/routers/api/restful-apis/v1/warehouse/get-release-order-list.ts +0 -116
  168. package/server/routers/api/restful-apis/v1/warehouse/index.ts +0 -10
@@ -0,0 +1,81 @@
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
+
10
+ router.get('/v1/warehouse/get-marketplace-store-list', businessMiddleware, async (context, next) => {
11
+ const { client, domain } = context.state
12
+ const { t } = context
13
+ const { paginationEntriesPerPage, paginationOffset } = context.query
14
+
15
+ let filters: any = []
16
+ let pagination: any = { page: 1, limit: 20 }
17
+
18
+ pagination = await validatePagination(context, pagination, paginationEntriesPerPage, paginationOffset)
19
+
20
+ context.body = {
21
+ result: (
22
+ await client.query({
23
+ query: gql`
24
+ query marketplaceStores($filters: [Filter], $pagination: Pagination, $sortings: [Sorting]) {
25
+ marketplaceStores(filters: $filters, pagination: $pagination, sortings: $sortings) {
26
+ items {
27
+ id
28
+ name
29
+ platform
30
+ eTrax
31
+ storeName
32
+ isAutoUpdateStockQty
33
+ isAutoUpdateShipment
34
+ storeId
35
+ countryCode
36
+ status
37
+ updatedAt
38
+ }
39
+ total
40
+ }
41
+ }
42
+ `,
43
+ variables: {
44
+ filters,
45
+ pagination,
46
+ sortings: [{ name: 'createdAt', desc: true }]
47
+ },
48
+ context: {
49
+ ...context,
50
+ state: {
51
+ ...context.state,
52
+ domain
53
+ }
54
+ }
55
+ } as any)
56
+ ).data
57
+ }
58
+ })
59
+
60
+ export async function validatePagination(context, pagination, entries, offset) {
61
+ if (!entries) entries = ''
62
+ if (!offset) offset = ''
63
+
64
+ if (entries !== '' && offset !== '' && !isNaN(parseInt(entries)) && !isNaN(parseInt(offset))) {
65
+ entries = parseInt(entries)
66
+ offset = parseInt(offset)
67
+
68
+ if (offset < 1) context.throw(400, context.t('paginationOffset cannot be less than 1'))
69
+ else if (entries < 1) context.throw(400, context.t('paginationEntriesPerPage cannot be less than 1'))
70
+ else if (entries > 100) context.throw(400, context.t('paginationEntriesPerPage cannot be more than 100'))
71
+ else pagination = { ...pagination, page: offset, limit: entries }
72
+ } else if (entries !== '' && offset === '' && !isNaN(parseInt(entries))) {
73
+ entries = parseInt(entries)
74
+
75
+ if (entries < 1) context.throw(400, context.t('paginationEntriesPerPage cannot be less than 1'))
76
+ else if (entries > 100) context.throw(400, context.t('paginationEntriesPerPage cannot be more than 100'))
77
+ else pagination = { ...pagination, limit: entries }
78
+ }
79
+
80
+ return pagination
81
+ }
@@ -0,0 +1,125 @@
1
+ import gql from 'graphql-tag'
2
+ import { getRepository } from 'typeorm'
3
+
4
+ import { restfulApiRouter as router } from '@things-factory/api'
5
+ import { Product } from '@things-factory/product-base'
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:onhand-inventories')
11
+
12
+ router.get(
13
+ '/v1/warehouse/:warehouseId/onhand-inventories',
14
+ businessMiddleware,
15
+ warehouseMiddleware,
16
+ async (context, next) => {
17
+ const { client, warehouse: bizplace, domain } = context.state
18
+ const { skuId, batchId } = context.query
19
+ const { t } = context
20
+ const { warehouseId } = context.params
21
+
22
+ if (!warehouseId) context.throw(404, t('error.warehouse id not found'))
23
+ if (!skuId) context.throw(400, context.t('error.required param x not found', { x: 'skuId' }))
24
+ if (!batchId) context.throw(400, context.t('error.required param x not found', { x: 'batchId' }))
25
+ debug('query-params', context.query)
26
+
27
+ let filters = await checkValidity(bizplace, skuId, batchId)
28
+
29
+ context.body = {
30
+ result: (
31
+ await client.query({
32
+ query: gql`
33
+ query inventories($filters: [Filter!]) {
34
+ inventories(filters: $filters) {
35
+ items {
36
+ id
37
+ palletId
38
+ batchId
39
+ packingType
40
+ weight
41
+ bizplace {
42
+ id
43
+ name
44
+ description
45
+ }
46
+ product {
47
+ id
48
+ name
49
+ description
50
+ sku
51
+ }
52
+ qty
53
+ remainQty
54
+ warehouse {
55
+ id
56
+ name
57
+ description
58
+ }
59
+ zone
60
+ location {
61
+ id
62
+ name
63
+ description
64
+ }
65
+ updatedAt
66
+ updater {
67
+ name
68
+ description
69
+ }
70
+ }
71
+ total
72
+ }
73
+ }
74
+ `,
75
+ variables: {
76
+ filters
77
+ },
78
+ context: {
79
+ ...context,
80
+ state: {
81
+ ...context.state,
82
+ bizplace,
83
+ domain
84
+ }
85
+ }
86
+ } as any)
87
+ ).data
88
+ }
89
+ }
90
+ )
91
+
92
+ export async function checkValidity(bizplace, skuId, batchId) {
93
+ let product: Product = []
94
+
95
+ let filters: any = [
96
+ { name: 'status', operator: 'notin', value: ['INTRANSIT', 'TERMINATED', 'DELETED'] },
97
+ { name: 'remainOnly', operator: 'eq', value: true },
98
+ { name: 'unlockOnly', operator: 'eq', value: true }
99
+ ]
100
+
101
+ if (bizplace.id != '') {
102
+ filters = [...filters, { name: 'bizplace', operator: 'in', value: [bizplace.id], relation: true }]
103
+ }
104
+
105
+ if (skuId) {
106
+ product = await getRepository(Product).findOne({
107
+ where: {
108
+ sku: skuId
109
+ },
110
+ relations: ['domain']
111
+ })
112
+
113
+ if (product) {
114
+ filters = [...filters, { name: 'product', operator: 'in', value: [product.id], relation: true }]
115
+ } else {
116
+ filters = [...filters, { name: 'product', operator: 'in', value: [skuId], relation: true }]
117
+ }
118
+ }
119
+
120
+ if (batchId) {
121
+ filters = [...filters, { name: 'batchId', operator: 'eq', value: batchId }]
122
+ }
123
+
124
+ return filters
125
+ }
@@ -0,0 +1,24 @@
1
+ import { restfulApiRouter as router } from '@things-factory/api'
2
+ import { Bizplace, Partner } from '@things-factory/biz-base'
3
+ import { getRepository, In } from 'typeorm'
4
+
5
+ const debug = require('debug')('things-factory:operato-hub:restful-api:v1:get-partners')
6
+
7
+ router.get('/v1/partners/:bizplaceId', async (context, next) => {
8
+ const { bizplaceId } = context.params
9
+ const bizplace: Bizplace = await getRepository(Bizplace).findOne(bizplaceId)
10
+ const partners: Partner[] = await getRepository(Partner).find({
11
+ where: { partnerBizplace: bizplace },
12
+ relations: ['domainBizplace']
13
+ })
14
+
15
+ const domainBizplacesId: string[] = partners.map((p: Partner) => p.domainBizplace.id)
16
+ const domainBizplaces: Bizplace = await getRepository(Bizplace).find({
17
+ where: { id: In(domainBizplacesId) },
18
+ relations: ['domain']
19
+ })
20
+
21
+ context.body = {
22
+ result: domainBizplaces.map((b: Bizplace) => b.domain)
23
+ }
24
+ })
@@ -0,0 +1,216 @@
1
+ import gql from 'graphql-tag'
2
+
3
+ import { restfulApiRouter as router } from '@things-factory/api'
4
+
5
+ import { businessMiddleware } from '../../../../middlewares/business-middleware'
6
+ import { warehouseMiddleware } from '../../../../middlewares/warehouse-middleware'
7
+
8
+ router.get(
9
+ '/v1/warehouse/:warehouseId/get-products',
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
+ const { skuId, name, paginationEntriesPerPage, paginationOffset } = context.query
17
+
18
+ if (!warehouseId) context.throw(404, t('error.warehouse id not found'))
19
+
20
+ let filters: any = [{ name: 'bizplace_id', operator: 'eq', value: warehouseId }]
21
+ let pagination: any = { page: 1, limit: 20 }
22
+
23
+ filters = await validateFilters(filters, skuId, name)
24
+ pagination = await validatePagination(context, pagination, paginationEntriesPerPage, paginationOffset)
25
+
26
+ context.body = {
27
+ result: (
28
+ await client.query({
29
+ query: gql`
30
+ query products($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
31
+ products(filters: $filters, pagination: $pagination, sortings: $sortings) {
32
+ items {
33
+ id
34
+ sku
35
+ name
36
+ description
37
+ type
38
+ brand
39
+ subBrand
40
+ brandSku
41
+ isRequiredCheckExpiry
42
+ expirationPeriod
43
+ pickingStrategy
44
+ auxUnit1
45
+ auxValue1
46
+ auxUnit2
47
+ auxValue2
48
+ auxUnit3
49
+ auxValue3
50
+ updatedAt
51
+ ###############################################
52
+ ## TEMPORARY REMOVE DUE TO TYPEGRAPHQL ISSUE ##
53
+ # updater {
54
+ # id
55
+ # name
56
+ # }
57
+ # creator {
58
+ # id
59
+ # name
60
+ # }
61
+ ###############################################
62
+ productDetails {
63
+ id
64
+ gtin
65
+ sku
66
+ description
67
+ type
68
+ refCode
69
+ isDefault
70
+ packingType
71
+ packingSize
72
+ movement
73
+ uom
74
+ uomValue
75
+ childProductDetail {
76
+ id
77
+ gtin
78
+ sku
79
+ description
80
+ type
81
+ refCode
82
+ product {
83
+ id
84
+ }
85
+ isDefault
86
+ packingType
87
+ packingSize
88
+ movement
89
+ uom
90
+ uomValue
91
+ bundleQty
92
+ weightUnit
93
+ nettWeight
94
+ grossWeight
95
+ lengthUnit
96
+ width
97
+ depth
98
+ height
99
+ volume
100
+ bufferQty
101
+ minQty
102
+ maxQty
103
+ auxUnit1
104
+ auxValue1
105
+ auxUnit2
106
+ auxValue2
107
+ auxUnit3
108
+ auxValue3
109
+ auxUnit4
110
+ auxValue4
111
+ auxUnit5
112
+ auxValue5
113
+ costPrice
114
+ sellPrice
115
+ afterTaxCostPrice
116
+ afterTaxSalesPrice
117
+ updatedAt
118
+ createdAt
119
+ deletedAt
120
+ }
121
+ childQty
122
+ bundleQty
123
+ weightUnit
124
+ nettWeight
125
+ grossWeight
126
+ lengthUnit
127
+ width
128
+ depth
129
+ height
130
+ volume
131
+ bufferQty
132
+ minQty
133
+ maxQty
134
+ auxUnit1
135
+ auxValue1
136
+ auxUnit2
137
+ auxValue2
138
+ auxUnit3
139
+ auxValue3
140
+ auxUnit4
141
+ auxValue4
142
+ auxUnit5
143
+ auxValue5
144
+ costPrice
145
+ sellPrice
146
+ afterTaxCostPrice
147
+ afterTaxSalesPrice
148
+ ###############################################
149
+ ## TEMPORARY REMOVE DUE TO TYPEGRAPHQL ISSUE ##
150
+ # updater {
151
+ # id
152
+ # name
153
+ # }
154
+ # creator {
155
+ # id
156
+ # name
157
+ # }
158
+ ###############################################
159
+ updatedAt
160
+ createdAt
161
+ deletedAt
162
+ }
163
+ }
164
+ total
165
+ }
166
+ }
167
+ `,
168
+ variables: {
169
+ filters,
170
+ pagination,
171
+ sortings: []
172
+ },
173
+ context: {
174
+ ...context,
175
+ state: {
176
+ ...context.state,
177
+ bizplace,
178
+ domain
179
+ }
180
+ }
181
+ } as any)
182
+ ).data
183
+ }
184
+ }
185
+ )
186
+
187
+ export async function validateFilters(filters, skuId, name) {
188
+ if (skuId && skuId !== '') filters = [...filters, { name: 'sku', operator: 'i_like', value: skuId }]
189
+
190
+ if (name && name !== '') filters = [...filters, { name: 'name', operator: 'i_like', value: name }]
191
+
192
+ return filters
193
+ }
194
+
195
+ export async function validatePagination(context, pagination, entries, offset) {
196
+ if (!entries) entries = ''
197
+ if (!offset) offset = ''
198
+
199
+ if (entries !== '' && offset !== '' && !isNaN(parseInt(entries)) && !isNaN(parseInt(offset))) {
200
+ entries = parseInt(entries)
201
+ offset = parseInt(offset)
202
+
203
+ if (offset < 1) context.throw(400, context.t('paginationOffset cannot be less than 1'))
204
+ else if (entries < 1) context.throw(400, context.t('paginationEntriesPerPage cannot be less than 1'))
205
+ else if (entries > 100) context.throw(400, context.t('paginationEntriesPerPage cannot be more than 100'))
206
+ else pagination = { ...pagination, page: offset, limit: entries }
207
+ } else if (entries !== '' && offset === '' && !isNaN(parseInt(entries))) {
208
+ entries = parseInt(entries)
209
+
210
+ if (entries < 1) context.throw(400, context.t('paginationEntriesPerPage cannot be less than 1'))
211
+ else if (entries > 100) context.throw(400, context.t('paginationEntriesPerPage cannot be more than 100'))
212
+ else pagination = { ...pagination, limit: entries }
213
+ }
214
+
215
+ return pagination
216
+ }
@@ -0,0 +1,134 @@
1
+ import gql from 'graphql-tag'
2
+
3
+ import { restfulApiRouter as router } from '@things-factory/api'
4
+
5
+ import { businessMiddleware } from '../../../../middlewares/business-middleware'
6
+ import { warehouseMiddleware } from '../../../../middlewares/warehouse-middleware'
7
+
8
+ const debug = require('debug')('things-factory:operato-hub:restful-api:v1:get-release-order-detail')
9
+
10
+ router.get(
11
+ '/v1/warehouse/:warehouseId/get-release-order-detail',
12
+ businessMiddleware,
13
+ warehouseMiddleware,
14
+ async (context, next) => {
15
+ const { client, warehouse: bizplace, domain } = context.state
16
+ const { warehouseId } = context.params
17
+ const { t } = context
18
+ const { releaseOrderNo, refNo } = context.query
19
+
20
+ debug('query-params', context.query)
21
+
22
+ if (!warehouseId) context.throw(404, t('error.warehouse id not found'))
23
+ if (!releaseOrderNo) context.throw(400, t('error.required param x not found', { x: 'releaseorderNo' }))
24
+
25
+ context.body = {
26
+ result: (
27
+ await client.query({
28
+ query: gql`
29
+ query releaseGoodDetail($releaseOrderNo: String, $refNo: String) {
30
+ releaseGoodDetail(name: $releaseOrderNo, refNo: $refNo) {
31
+ id
32
+ name
33
+ truckNo
34
+ bizplace {
35
+ id
36
+ name
37
+ }
38
+ status
39
+ refNo
40
+ refNo2
41
+ refNo3
42
+ ownTransport
43
+ crossDocking
44
+ arrivalNotice {
45
+ name
46
+ }
47
+ exportOption
48
+ courierOption
49
+ packingOption
50
+ releaseDate
51
+ collectionOrderNo
52
+ attachment {
53
+ id
54
+ name
55
+ refBy
56
+ path
57
+ mimetype
58
+ }
59
+ bizplace {
60
+ id
61
+ name
62
+ description
63
+ }
64
+ inventoryInfos {
65
+ id
66
+ name
67
+ batchId
68
+ batchIdRef
69
+ palletId
70
+ product {
71
+ id
72
+ sku
73
+ name
74
+ description
75
+ }
76
+ productName
77
+ packingType
78
+ qty
79
+ uomValue
80
+ releaseQty
81
+ releaseUomValue
82
+ uom
83
+ location {
84
+ id
85
+ name
86
+ }
87
+ status
88
+ }
89
+ shippingOrderInfo {
90
+ containerNo
91
+ containerLeavingDate
92
+ containerArrivalDate
93
+ shipName
94
+ }
95
+ orderVass {
96
+ vas {
97
+ name
98
+ operationGuide
99
+ operationGuideType
100
+ }
101
+ set
102
+ targetType
103
+ targetBatchId
104
+ targetProduct {
105
+ id
106
+ name
107
+ description
108
+ }
109
+ packingType
110
+ qty
111
+ uomValue
112
+ otherTarget
113
+ description
114
+ remark
115
+ status
116
+ operationGuide
117
+ }
118
+ }
119
+ }
120
+ `,
121
+ variables: { releaseOrderNo, refNo },
122
+ context: {
123
+ ...context,
124
+ state: {
125
+ ...context.state,
126
+ bizplace,
127
+ domain
128
+ }
129
+ }
130
+ } as any)
131
+ ).data
132
+ }
133
+ }
134
+ )