@things-factory/operato-wms 5.0.13 → 6.0.0-alpha.1

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 (206) hide show
  1. package/client/pages/bulk-operation/bulk-operation.js +96 -8
  2. package/client/pages/bulk-operation/validate-gan-popup.js +37 -27
  3. package/client/pages/bulk-operation/validate-ro-popup.js +40 -0
  4. package/client/pages/components/select-inventory-popup.js +633 -0
  5. package/client/pages/constants/order.js +2 -1
  6. package/client/pages/inbound/pallet-label-popup.js +2 -0
  7. package/client/pages/inbound/select-product-batch.js +7 -1
  8. package/client/pages/inbound/undo-unload-popup.js +37 -21
  9. package/client/pages/inbound/unload-product.js +147 -59
  10. package/client/pages/inbound/worksheet-putaway.js +1 -1
  11. package/client/pages/inbound/worksheet-unloading.js +11 -7
  12. package/client/pages/inventory/inventory-adjustment.js +261 -238
  13. package/client/pages/inventory/inventory-by-product-detail.js +99 -92
  14. package/client/pages/inventory/inventory-by-product.js +170 -68
  15. package/client/pages/inventory/onhand-inventory.js +10 -12
  16. package/client/pages/inventory/serial-number-list-popup.js +36 -5
  17. package/client/pages/inventory-check/inspecting-product.js +1 -1
  18. package/client/pages/manifest/create-loading-manifest.js +47 -22
  19. package/client/pages/manifest/dispatcher-verification-popup.js +24 -13
  20. package/client/pages/manifest/loading-manifest-detail.js +311 -46
  21. package/client/pages/manifest/loading-manifest-list.js +86 -13
  22. package/client/pages/order/arrival-notice/arrival-notice-detail.js +305 -52
  23. package/client/pages/order/arrival-notice/arrival-notice-list.js +20 -1
  24. package/client/pages/order/arrival-notice/create-arrival-notice.js +2 -2
  25. package/client/pages/order/goods-received-note/received-note-detail.js +187 -15
  26. package/client/pages/order/release-order/b2b/b2b-order-list.js +76 -80
  27. package/client/pages/order/release-order/b2c/b2c-order-requests.js +148 -123
  28. package/client/pages/order/release-order/batch-picking-popup.js +11 -0
  29. package/client/pages/order/release-order/create-release-order.js +762 -250
  30. package/client/pages/order/release-order/release-extra-product-popup.js +10 -3
  31. package/client/pages/order/release-order/release-order-detail.js +897 -215
  32. package/client/pages/order/transport-order/delivery-note-popup.js +1050 -107
  33. package/client/pages/order/transport-order/print-delivery-note.js +214 -33
  34. package/client/pages/order/transport-order/upload-delivery-note.js +6 -4
  35. package/client/pages/order/transport-order/view-delivery-note.js +0 -1
  36. package/client/pages/outbound/generate-worksheet-popup.js +374 -0
  37. package/client/pages/outbound/inventory-reassign-popup.js +1097 -0
  38. package/client/pages/outbound/loading-product.js +88 -78
  39. package/client/pages/outbound/merged-outbound-worksheet.js +1 -1
  40. package/client/pages/outbound/packing-product.js +193 -82
  41. package/client/pages/outbound/packing-worksheet-list.js +10 -9
  42. package/client/pages/outbound/picking-product.js +979 -905
  43. package/client/pages/outbound/route-label-popup.js +283 -191
  44. package/client/pages/outbound/serial-number-popup.js +1 -0
  45. package/client/pages/outbound/sorting-product.js +12 -12
  46. package/client/pages/outbound/worksheet-batch-picking.js +39 -5
  47. package/client/pages/outbound/worksheet-packing.js +17 -4
  48. package/client/pages/outbound/worksheet-picking.js +45 -6
  49. package/client/pages/report/inbound-serial-number-report.js +86 -9
  50. package/client/pages/report/inventory-report.js +10 -0
  51. package/client/pages/report/inventory-summary-report.js +28 -19
  52. package/client/pages/report/outbound-order-details-report.js +204 -43
  53. package/client/pages/report/outbound-serial-number-report.js +87 -9
  54. package/client/pages/report/release-inventory-report.js +503 -0
  55. package/client/route.js +5 -0
  56. package/client/util/index.js +2 -0
  57. package/client/util/page-settings.js +43 -0
  58. package/client/util/toast.js +10 -0
  59. package/dist-server/graphql/resolvers/board-setting/board-settings.js +3 -3
  60. package/dist-server/graphql/resolvers/board-setting/board-settings.js.map +1 -1
  61. package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-collection-report.js +2 -2
  62. package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-collection-report.js.map +1 -1
  63. package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-order-inventory-report.js +1 -1
  64. package/dist-server/graphql/resolvers/custom/elccl/elccl-daily-order-inventory-report.js.map +1 -1
  65. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-pallet-detail-report.js +2 -2
  66. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-pallet-detail-report.js.map +1 -1
  67. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.js +9 -10
  68. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.js.map +1 -1
  69. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-summary-report.js +2 -2
  70. package/dist-server/graphql/resolvers/custom/elccl/elccl-inventory-history-summary-report.js.map +1 -1
  71. package/dist-server/graphql/resolvers/custom/elccl/elccl-onhand-inventory-counter.js +6 -4
  72. package/dist-server/graphql/resolvers/custom/elccl/elccl-onhand-inventory-counter.js.map +1 -1
  73. package/dist-server/graphql/resolvers/custom/kimeda/kimeda-onhand-inventory-counter.js +6 -4
  74. package/dist-server/graphql/resolvers/custom/kimeda/kimeda-onhand-inventory-counter.js.map +1 -1
  75. package/dist-server/graphql/resolvers/dashboard/arrival-notices-by-status.js +21 -10
  76. package/dist-server/graphql/resolvers/dashboard/arrival-notices-by-status.js.map +1 -1
  77. package/dist-server/graphql/resolvers/dashboard/collection-orders-by-status.js +1 -2
  78. package/dist-server/graphql/resolvers/dashboard/collection-orders-by-status.js.map +1 -1
  79. package/dist-server/graphql/resolvers/dashboard/delivery-orders-by-status.js +1 -2
  80. package/dist-server/graphql/resolvers/dashboard/delivery-orders-by-status.js.map +1 -1
  81. package/dist-server/graphql/resolvers/dashboard/index.js +2 -1
  82. package/dist-server/graphql/resolvers/dashboard/index.js.map +1 -1
  83. package/dist-server/graphql/resolvers/dashboard/inventory-expiry-monitor.js +17 -1
  84. package/dist-server/graphql/resolvers/dashboard/inventory-expiry-monitor.js.map +1 -1
  85. package/dist-server/graphql/resolvers/dashboard/outbound-order-by-status.js +113 -75
  86. package/dist-server/graphql/resolvers/dashboard/outbound-order-by-status.js.map +1 -1
  87. package/dist-server/graphql/resolvers/dashboard/release-goods-by-status.js +21 -10
  88. package/dist-server/graphql/resolvers/dashboard/release-goods-by-status.js.map +1 -1
  89. package/dist-server/graphql/resolvers/dashboard/unit-inbounded-outbounded.js +56 -0
  90. package/dist-server/graphql/resolvers/dashboard/unit-inbounded-outbounded.js.map +1 -0
  91. package/dist-server/graphql/resolvers/index.js +5 -4
  92. package/dist-server/graphql/resolvers/index.js.map +1 -1
  93. package/dist-server/graphql/resolvers/inventory-comparison/inventory-comparison-list.js.map +1 -1
  94. package/dist-server/graphql/resolvers/opa-menu/opa-menus.js +8 -7
  95. package/dist-server/graphql/resolvers/opa-menu/opa-menus.js.map +1 -1
  96. package/dist-server/graphql/resolvers/{extra → other}/add-release-good-products.js +59 -8
  97. package/dist-server/graphql/resolvers/other/add-release-good-products.js.map +1 -0
  98. package/dist-server/graphql/resolvers/{extra → other}/index.js +3 -1
  99. package/dist-server/graphql/resolvers/other/index.js.map +1 -0
  100. package/dist-server/graphql/resolvers/other/page-settings.js +87 -0
  101. package/dist-server/graphql/resolvers/other/page-settings.js.map +1 -0
  102. package/dist-server/graphql/resolvers/reports/costing-report.js +4 -4
  103. package/dist-server/graphql/resolvers/reports/costing-report.js.map +1 -1
  104. package/dist-server/graphql/resolvers/reports/inbound-order-details-report.js +3 -3
  105. package/dist-server/graphql/resolvers/reports/inbound-order-details-report.js.map +1 -1
  106. package/dist-server/graphql/resolvers/reports/inbound-serial-number-report.js +36 -7
  107. package/dist-server/graphql/resolvers/reports/inbound-serial-number-report.js.map +1 -1
  108. package/dist-server/graphql/resolvers/reports/index.js +2 -1
  109. package/dist-server/graphql/resolvers/reports/index.js.map +1 -1
  110. package/dist-server/graphql/resolvers/reports/outbound-order-details-report.js +69 -30
  111. package/dist-server/graphql/resolvers/reports/outbound-order-details-report.js.map +1 -1
  112. package/dist-server/graphql/resolvers/reports/outbound-serial-number-report.js +36 -11
  113. package/dist-server/graphql/resolvers/reports/outbound-serial-number-report.js.map +1 -1
  114. package/dist-server/graphql/resolvers/reports/product-label-report.js +3 -3
  115. package/dist-server/graphql/resolvers/reports/product-label-report.js.map +1 -1
  116. package/dist-server/graphql/resolvers/reports/release-inventory-report.js +180 -0
  117. package/dist-server/graphql/resolvers/reports/release-inventory-report.js.map +1 -0
  118. package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js +2 -2
  119. package/dist-server/graphql/resolvers/shipping-provider/shipping-providers.js.map +1 -1
  120. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.js +1 -1
  121. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.js.map +1 -1
  122. package/dist-server/graphql/types/dashboard/index.js +1 -0
  123. package/dist-server/graphql/types/dashboard/index.js.map +1 -1
  124. package/dist-server/graphql/types/index.js +7 -2
  125. package/dist-server/graphql/types/index.js.map +1 -1
  126. package/dist-server/graphql/types/other/index.js +19 -0
  127. package/dist-server/graphql/types/other/index.js.map +1 -0
  128. package/dist-server/graphql/types/other/page-setting.js +34 -0
  129. package/dist-server/graphql/types/other/page-setting.js.map +1 -0
  130. package/dist-server/graphql/types/reports/index.js +6 -1
  131. package/dist-server/graphql/types/reports/index.js.map +1 -1
  132. package/dist-server/graphql/types/reports/outbound-order-details-report.js +17 -1
  133. package/dist-server/graphql/types/reports/outbound-order-details-report.js.map +1 -1
  134. package/dist-server/graphql/types/reports/release-inventory-report-list.js +12 -0
  135. package/dist-server/graphql/types/reports/release-inventory-report-list.js.map +1 -0
  136. package/dist-server/graphql/types/reports/release-inventory-report.js +27 -0
  137. package/dist-server/graphql/types/reports/release-inventory-report.js.map +1 -0
  138. package/dist-server/migrations/1568858861188-SeedSetting.js +5 -6
  139. package/dist-server/migrations/1568858861188-SeedSetting.js.map +1 -1
  140. package/dist-server/migrations/1623308919899-SeedLocationRecommendSetting.js +1 -1
  141. package/dist-server/migrations/1623308919899-SeedLocationRecommendSetting.js.map +1 -1
  142. package/dist-server/migrations/1623381200659-SeedStoringRule.js +1 -1
  143. package/dist-server/migrations/1623381200659-SeedStoringRule.js.map +1 -1
  144. package/dist-server/tsconfig.tsbuildinfo +1 -1
  145. package/dist-server/utils/report-query-util.js +5 -2
  146. package/dist-server/utils/report-query-util.js.map +1 -1
  147. package/helps/release-note.ko.md +8 -20
  148. package/helps/release-note.md +8 -20
  149. package/helps/release-note.ms.md +8 -20
  150. package/helps/release-note.zh.md +8 -20
  151. package/package.json +42 -42
  152. package/server/graphql/resolvers/board-setting/board-settings.ts +4 -6
  153. package/server/graphql/resolvers/custom/elccl/elccl-daily-collection-report.ts +4 -5
  154. package/server/graphql/resolvers/custom/elccl/elccl-daily-order-inventory-report.ts +9 -10
  155. package/server/graphql/resolvers/custom/elccl/elccl-inventory-history-pallet-detail-report.ts +4 -5
  156. package/server/graphql/resolvers/custom/elccl/elccl-inventory-history-report.ts +17 -19
  157. package/server/graphql/resolvers/custom/elccl/elccl-inventory-history-summary-report.ts +10 -8
  158. package/server/graphql/resolvers/custom/elccl/elccl-onhand-inventory-counter.ts +9 -9
  159. package/server/graphql/resolvers/custom/kimeda/kimeda-onhand-inventory-counter.ts +9 -9
  160. package/server/graphql/resolvers/dashboard/arrival-notices-by-status.ts +23 -14
  161. package/server/graphql/resolvers/dashboard/collection-orders-by-status.ts +4 -5
  162. package/server/graphql/resolvers/dashboard/delivery-orders-by-status.ts +4 -5
  163. package/server/graphql/resolvers/dashboard/index.ts +3 -1
  164. package/server/graphql/resolvers/dashboard/inventory-expiry-monitor.ts +18 -6
  165. package/server/graphql/resolvers/dashboard/outbound-order-by-status.ts +114 -81
  166. package/server/graphql/resolvers/dashboard/release-goods-by-status.ts +23 -14
  167. package/server/graphql/resolvers/dashboard/unit-inbounded-outbounded.ts +61 -0
  168. package/server/graphql/resolvers/index.ts +5 -4
  169. package/server/graphql/resolvers/inventory-comparison/inventory-comparison-list.ts +11 -9
  170. package/server/graphql/resolvers/opa-menu/opa-menus.ts +7 -6
  171. package/server/graphql/resolvers/{extra → other}/add-release-good-products.ts +73 -12
  172. package/server/graphql/resolvers/other/index.ts +10 -0
  173. package/server/graphql/resolvers/other/page-settings.ts +105 -0
  174. package/server/graphql/resolvers/reports/costing-report.ts +8 -10
  175. package/server/graphql/resolvers/reports/inbound-order-details-report.ts +7 -9
  176. package/server/graphql/resolvers/reports/inbound-serial-number-report.ts +41 -13
  177. package/server/graphql/resolvers/reports/index.ts +3 -1
  178. package/server/graphql/resolvers/reports/outbound-order-details-report.ts +76 -38
  179. package/server/graphql/resolvers/reports/outbound-serial-number-report.ts +42 -18
  180. package/server/graphql/resolvers/reports/product-label-report.ts +4 -6
  181. package/server/graphql/resolvers/reports/release-inventory-report.ts +201 -0
  182. package/server/graphql/resolvers/shipping-provider/shipping-providers.ts +3 -5
  183. package/server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.ts +10 -10
  184. package/server/graphql/types/dashboard/index.ts +1 -0
  185. package/server/graphql/types/index.ts +8 -2
  186. package/server/graphql/types/other/index.ts +19 -0
  187. package/server/graphql/types/other/page-setting.ts +33 -0
  188. package/server/graphql/types/reports/index.ts +6 -1
  189. package/server/graphql/types/reports/outbound-order-details-report.ts +17 -1
  190. package/server/graphql/types/reports/release-inventory-report-list.ts +8 -0
  191. package/server/graphql/types/reports/release-inventory-report.ts +23 -0
  192. package/server/migrations/1568858861188-SeedSetting.ts +4 -4
  193. package/server/migrations/1623308919899-SeedLocationRecommendSetting.ts +3 -2
  194. package/server/migrations/1623381200659-SeedStoringRule.ts +3 -2
  195. package/server/utils/report-query-util.ts +5 -2
  196. package/things-factory.config.js +4 -0
  197. package/translations/en.json +148 -27
  198. package/translations/ko.json +185 -105
  199. package/translations/ms.json +183 -98
  200. package/translations/zh.json +197 -112
  201. package/dist-server/graphql/resolvers/extra/add-release-good-products.js.map +0 -1
  202. package/dist-server/graphql/resolvers/extra/index.js.map +0 -1
  203. package/dist-server/graphql/types/extra/index.js +0 -11
  204. package/dist-server/graphql/types/extra/index.js.map +0 -1
  205. package/server/graphql/resolvers/extra/index.ts +0 -5
  206. package/server/graphql/types/extra/index.ts +0 -7
@@ -1,6 +1,7 @@
1
1
  import '@things-factory/form-ui'
2
2
  import '@things-factory/grist-ui'
3
3
  import '../batch-picking-popup'
4
+ import '../../../outbound/generate-worksheet-popup'
4
5
 
5
6
  import gql from 'graphql-tag'
6
7
  import { css, html } from 'lit-element'
@@ -13,7 +14,7 @@ import { i18next, localize } from '@things-factory/i18n-base'
13
14
  import { openPopup } from '@things-factory/layout-base'
14
15
  import { client, CustomAlert, navigate, PageView, store } from '@things-factory/shell'
15
16
  import { CommonButtonStyles, ScrollbarStyles } from '@things-factory/styles'
16
- import { isMobileDevice } from '@things-factory/utils'
17
+ import { isMobileDevice, sleep } from '@things-factory/utils'
17
18
 
18
19
  import { fetchSettingRule } from '../../../../fetch-setting-value'
19
20
  import { INTENALIZED_AWB_SETTING_KEY, ORDER_STATUS } from '../../../constants'
@@ -84,14 +85,9 @@ class B2cOrderRequests extends connect(store)(localize(i18next)(PageView)) {
84
85
  action: this._generatePackingList.bind(this),
85
86
  ...CommonButtonStyles.label
86
87
  },
87
- {
88
- title: i18next.t('button.batch_picking'),
89
- action: this._openBatchPickingPopup.bind(this),
90
- ...CommonButtonStyles.activate
91
- },
92
88
  {
93
89
  title: i18next.t('button.generate_worksheet'),
94
- action: this._generatePickingWorksheet.bind(this),
90
+ action: this._openGenerateWorksheetPopup.bind(this),
95
91
  ...CommonButtonStyles.activate
96
92
  }
97
93
  ]
@@ -131,7 +127,7 @@ class B2cOrderRequests extends connect(store)(localize(i18next)(PageView)) {
131
127
 
132
128
  this._searchFields = [
133
129
  {
134
- label: i18next.t('field.release_order_no'),
130
+ label: i18next.t('field.order_info'),
135
131
  name: 'name',
136
132
  type: 'text',
137
133
  props: { searchOper: 'i_like' }
@@ -159,40 +155,26 @@ class B2cOrderRequests extends connect(store)(localize(i18next)(PageView)) {
159
155
  type: 'select',
160
156
  options: [
161
157
  { value: '' },
162
- ..._orderStatus.map(status => {
163
- return { name: i18next.t(`label.${status.description}`), value: status.name }
164
- })
158
+ ..._orderStatus
159
+ .filter(res => {
160
+ return res.name !== 'LOADING'
161
+ })
162
+ .map(status => {
163
+ return { name: i18next.t(`label.${status.description}`), value: status.name }
164
+ })
165
165
  ],
166
166
  props: { searchOper: 'eq' }
167
167
  },
168
- {
169
- label: i18next.t('field.ref_no'),
170
- name: 'refNo',
171
- type: 'text',
172
- props: { searchOper: 'i_like' }
173
- },
174
- {
175
- label: i18next.t('field.ref_no_2'),
176
- name: 'refNo2',
177
- type: 'text',
178
- props: { searchOper: 'i_like' }
179
- },
180
- {
181
- label: i18next.t('field.ref_no_3'),
182
- name: 'refNo3',
183
- type: 'text',
184
- props: { searchOper: 'i_like' }
185
- },
186
168
  {
187
169
  label: i18next.t('field.from'),
188
170
  name: 'fromDate',
189
171
  type: 'date',
190
172
  props: {
191
- searchOper: 'eq'
173
+ searchOper: 'gte'
192
174
  },
193
175
  value: (() => {
194
176
  let date = new Date()
195
- date.setMonth(date.getMonth() - 6)
177
+ date.setMonth(date.getMonth() - 1)
196
178
  return date.toISOString().split('T')[0]
197
179
  })(),
198
180
  handlers: { change: this._modifyDateRange.bind(this) }
@@ -202,10 +184,15 @@ class B2cOrderRequests extends connect(store)(localize(i18next)(PageView)) {
202
184
  name: 'toDate',
203
185
  type: 'date',
204
186
  props: {
205
- searchOper: 'eq',
187
+ searchOper: 'lte',
206
188
  min: (() => {
207
189
  let date = new Date()
208
- date.setMonth(date.getMonth() - 6)
190
+ date.setMonth(date.getMonth() - 1)
191
+ return date.toISOString().split('T')[0]
192
+ })(),
193
+ max: (() => {
194
+ let date = new Date()
195
+ date.setDate(date.getDate())
209
196
  return date.toISOString().split('T')[0]
210
197
  })()
211
198
  },
@@ -238,7 +225,7 @@ class B2cOrderRequests extends connect(store)(localize(i18next)(PageView)) {
238
225
  options: [{ value: '' }, { name: 'Single Item', value: 1 }, { name: 'Multiple Item', value: 2 }]
239
226
  },
240
227
  {
241
- label: i18next.t('field.sku'),
228
+ label: i18next.t('field.product_info'),
242
229
  name: 'sku',
243
230
  type: 'text',
244
231
  props: { searchOper: 'i_like' }
@@ -249,6 +236,13 @@ class B2cOrderRequests extends connect(store)(localize(i18next)(PageView)) {
249
236
  type: 'checkbox',
250
237
  props: { searchOper: 'eq' },
251
238
  attrs: ['indeterminate']
239
+ },
240
+ {
241
+ label: i18next.t('field.manifested'),
242
+ name: 'manifested',
243
+ type: 'checkbox',
244
+ props: { searchOper: 'eq' },
245
+ attrs: ['indeterminate']
252
246
  }
253
247
  ]
254
248
 
@@ -344,6 +338,7 @@ class B2cOrderRequests extends connect(store)(localize(i18next)(PageView)) {
344
338
  type: 'string',
345
339
  name: 'postalCode',
346
340
  header: i18next.t('field.postal_code'),
341
+ imex: { header: i18next.t('field.postal_code'), key: 'postalCode', width: 25, type: 'string' },
347
342
  sortable: true,
348
343
  width: 100
349
344
  },
@@ -351,6 +346,7 @@ class B2cOrderRequests extends connect(store)(localize(i18next)(PageView)) {
351
346
  type: 'string',
352
347
  name: 'transporter',
353
348
  header: i18next.t('field.transporter'),
349
+ imex: { header: i18next.t('field.transporter'), key: 'transporter', width: 25, type: 'string' },
354
350
  sortable: true,
355
351
  width: 120
356
352
  },
@@ -366,7 +362,7 @@ class B2cOrderRequests extends connect(store)(localize(i18next)(PageView)) {
366
362
  type: 'string',
367
363
  name: 'status',
368
364
  header: i18next.t('field.status'),
369
- imex: { header: i18next.t('field.grn_status'), key: 'status', width: 25, type: 'string' },
365
+ imex: { header: i18next.t('field.status'), key: 'status', width: 25, type: 'string' },
370
366
  sortable: true,
371
367
  width: 120
372
368
  },
@@ -378,6 +374,14 @@ class B2cOrderRequests extends connect(store)(localize(i18next)(PageView)) {
378
374
  sortable: true,
379
375
  width: 120
380
376
  },
377
+ {
378
+ type: 'datetime',
379
+ name: 'acceptedAt',
380
+ header: i18next.t('field.accepted_at'),
381
+ imex: { header: i18next.t('field.accepted_at'), key: 'acceptedAt', width: 25, type: 'datetime' },
382
+ sortable: true,
383
+ width: 160
384
+ },
381
385
  {
382
386
  type: 'datetime',
383
387
  name: 'updatedAt',
@@ -393,6 +397,86 @@ class B2cOrderRequests extends connect(store)(localize(i18next)(PageView)) {
393
397
  imex: { header: i18next.t('field.accepted_by'), key: 'acceptedBy.name', width: 25, type: 'string' },
394
398
  sortable: true,
395
399
  width: 200
400
+ },
401
+ {
402
+ type: 'object',
403
+ name: 'updater',
404
+ header: i18next.t('field.updated_by'),
405
+ imex: { header: i18next.t('field.updated_by'), key: 'updater.name', width: 25, type: 'string' },
406
+ sortable: true,
407
+ width: 200
408
+ },
409
+ {
410
+ type: 'string',
411
+ name: 'attentionTo',
412
+ header: i18next.t('field.receiver_name'),
413
+ imex: { header: i18next.t('field.receiver_name'), key: 'attentionTo', width: 25, type: 'string' },
414
+ width: 200,
415
+ hidden: true
416
+ },
417
+ {
418
+ type: 'string',
419
+ name: 'attentionCompany',
420
+ header: i18next.t('field.receiver_company'),
421
+ imex: { header: i18next.t('field.receiver_company'), key: 'attentionCompany', width: 25, type: 'string' },
422
+ width: 200,
423
+ hidden: true
424
+ },
425
+ {
426
+ type: 'string',
427
+ name: 'deliveryAddress1',
428
+ header: i18next.t('field.delivery_address'),
429
+ imex: { header: i18next.t('field.delivery_address'), key: 'deliveryAddress1', width: 75, type: 'string' },
430
+ width: 200,
431
+ hidden: true
432
+ },
433
+ {
434
+ type: 'string',
435
+ name: 'city',
436
+ header: i18next.t('field.city'),
437
+ imex: { header: i18next.t('field.city'), key: 'city', width: 25, type: 'string' },
438
+ width: 200,
439
+ hidden: true
440
+ },
441
+ {
442
+ type: 'string',
443
+ name: 'state',
444
+ header: i18next.t('field.state'),
445
+ imex: { header: i18next.t('field.state'), key: 'state', width: 25, type: 'string' },
446
+ width: 200,
447
+ hidden: true
448
+ },
449
+ {
450
+ type: 'string',
451
+ name: 'country',
452
+ header: i18next.t('field.country'),
453
+ imex: { header: i18next.t('field.country'), key: 'country', width: 20, type: 'string' },
454
+ width: 200,
455
+ hidden: true
456
+ },
457
+ {
458
+ type: 'string',
459
+ name: 'phone1',
460
+ header: `${i18next.t('field.contact')} 1`,
461
+ imex: { header: `${i18next.t('field.contact')} 1`, key: 'phone1', width: 25, type: 'string' },
462
+ width: 200,
463
+ hidden: true
464
+ },
465
+ {
466
+ type: 'string',
467
+ name: 'phone2',
468
+ header: `${i18next.t('field.contact')} 2`,
469
+ imex: { header: `${i18next.t('field.contact')} 2`, key: 'phone2', width: 25, type: 'string' },
470
+ width: 200,
471
+ hidden: true
472
+ },
473
+ {
474
+ type: 'string',
475
+ name: 'email',
476
+ header: i18next.t('field.email'),
477
+ imex: { header: i18next.t('field.email'), key: 'email', width: 25, type: 'string' },
478
+ width: 200,
479
+ hidden: true
396
480
  }
397
481
  ]
398
482
  }
@@ -406,6 +490,10 @@ class B2cOrderRequests extends connect(store)(localize(i18next)(PageView)) {
406
490
  return this.shadowRoot.querySelector('data-grist')
407
491
  }
408
492
 
493
+ get _toDateInput() {
494
+ return this.searchForm.shadowRoot.querySelector('input[name=toDate]')
495
+ }
496
+
409
497
  async fetchHandler({ page, limit, sorters = [] }) {
410
498
  const response = await client.query({
411
499
  query: gql`
@@ -414,7 +502,6 @@ class B2cOrderRequests extends connect(store)(localize(i18next)(PageView)) {
414
502
  items {
415
503
  id
416
504
  trackingNo
417
- attentionTo
418
505
  deliveryAddress1
419
506
  deliveryAddress2
420
507
  deliveryAddress3
@@ -428,6 +515,7 @@ class B2cOrderRequests extends connect(store)(localize(i18next)(PageView)) {
428
515
  country
429
516
  phone1
430
517
  phone2
518
+ email
431
519
  postalCode
432
520
  marketplaceOrderStatus
433
521
  transporter
@@ -446,11 +534,17 @@ class B2cOrderRequests extends connect(store)(localize(i18next)(PageView)) {
446
534
  noOfItems
447
535
  createdAt
448
536
  updatedAt
537
+ acceptedAt
449
538
  acceptedBy {
450
539
  id
451
540
  name
452
541
  description
453
542
  }
543
+ updater {
544
+ id
545
+ name
546
+ description
547
+ }
454
548
  airwayBill
455
549
  trackingNo
456
550
  }
@@ -548,24 +642,6 @@ class B2cOrderRequests extends connect(store)(localize(i18next)(PageView)) {
548
642
  }
549
643
  }
550
644
 
551
- _openBatchPickingPopup() {
552
- openPopup(
553
- html`
554
- <batch-picking-popup
555
- @generated="${() => {
556
- navigate('merged_outbound_worksheets')
557
- this._showToast({ message: i18next.t('text.worksheet_has_been_generated') })
558
- }}"
559
- ></batch-picking-popup>
560
- `,
561
- {
562
- backdrop: true,
563
- size: 'large',
564
- title: i18next.t('title.generate_batch_picking')
565
- }
566
- )
567
- }
568
-
569
645
  async _printInvoices() {
570
646
  try {
571
647
  if (this.dataGrist.selected && this.dataGrist.selected.length > 0) {
@@ -709,82 +785,25 @@ class B2cOrderRequests extends connect(store)(localize(i18next)(PageView)) {
709
785
  )
710
786
  }
711
787
 
712
- async _exportableData() {
713
- try {
714
- let data = []
715
-
716
- var headerSetting = [
717
- { header: i18next.t('field.ro'), key: 'name', width: 25, type: 'string' },
718
- { header: i18next.t('field.company'), key: 'bizplaceName', width: 25, type: 'string' },
719
- { header: i18next.t('field.ref_no'), key: 'refNo', width: 25, type: 'string' },
720
- { header: i18next.t('field.ref_no_2'), key: 'refNo2', width: 25, type: 'string' },
721
- { header: i18next.t('field.release_date'), key: 'releaseDate', width: 30, type: 'date' },
722
- { header: i18next.t('field.postal_code'), key: 'postalCode', width: 30, type: 'string' },
723
- {
724
- header: i18next.t('field.marketplace_order_status'),
725
- key: 'marketplaceOrderStatus',
726
- width: 30,
727
- type: 'string'
728
- },
729
- { header: i18next.t('field.warehouse_status'), key: 'status', width: 30, type: 'string' },
730
- { header: i18next.t('field.transporter'), key: 'transporter', width: 30, type: 'string' },
731
- { header: i18next.t('field.delivery_address'), key: 'deliveryAddress1', width: 30, type: 'string' },
732
- { header: i18next.t('field.attention_to'), key: 'attentionTo', width: 30, type: 'string' },
733
- { header: i18next.t('field.phone'), key: 'phone1', width: 30, type: 'string' }
734
- ]
735
-
736
- if (this.dataGrist.selected && this.dataGrist.selected.length > 0) {
737
- data = this.dataGrist.selected
738
- } else {
739
- const bizplaceFilters = (await this.searchForm.getQueryFilters()).filter(x => x.name === 'bizplaceId')
740
- if (bizplaceFilters.length == 0) {
741
- throw new Error(`Please select a customer for export.`)
742
- }
743
- data = await this.fetchHandler({ page: 1, limit: 9999999 })
744
- }
745
-
746
- return { header: headerSetting, data }
747
- } catch (e) {
748
- this._showToast(e)
749
- }
750
- }
751
-
752
- async _generatePickingWorksheet() {
788
+ async _openGenerateWorksheetPopup() {
753
789
  try {
754
- let releaseGoodNos = []
755
790
  if (this.dataGrist.selected.length <= 0)
756
791
  throw new Error(i18next.t('text.please_select_one_or_more_order_to_generate_worksheet'))
757
792
 
793
+ let releaseGoodNos = []
794
+
758
795
  let readyToPick = this.dataGrist.selected.filter(itm => itm.status === ORDER_STATUS.PENDING_WORKSHEET.value)
759
796
  releaseGoodNos = readyToPick.map(record => record.name)
760
797
 
761
798
  if (releaseGoodNos.length <= 0)
762
- throw new Error(i18next.t('text.selected_release_order(s)_has_existing_worksheet'))
763
-
764
- let result = await CustomAlert({
765
- title: i18next.t('title.are_you_sure'),
766
- text: i18next.t('text.generate_worksheet'),
767
- confirmButton: { text: i18next.t('button.submit') },
768
- cancelButton: { text: i18next.t('button.cancel') }
769
- })
770
-
771
- if (!result.value) return
799
+ throw new Error(i18next.t('text.selected_release_order(s)_is_not_in_pending_worksheet_status'))
772
800
 
773
- const response = await client.mutate({
774
- mutation: gql`
775
- mutation generateMultipleReleaseGoodWorksheet($releaseGoodNos: [String!]) {
776
- generateMultipleReleaseGoodWorksheet(releaseGoodNos: $releaseGoodNos)
777
- }
778
- `,
779
- variables: {
780
- releaseGoodNos
781
- }
801
+ await sleep(1010)
802
+ openPopup(html` <generate-worksheet-popup .gristData=${this.dataGrist}></generate-worksheet-popup> `, {
803
+ backdrop: true,
804
+ size: 'medium',
805
+ title: i18next.t('title.generate_picking_worksheet')
782
806
  })
783
-
784
- if (!response.errors) {
785
- navigate('single_outbound_worksheets')
786
- this._showToast({ message: i18next.t('text.worksheet(s)_has_been_generated') })
787
- }
788
807
  } catch (e) {
789
808
  this._showToast(e)
790
809
  }
@@ -812,15 +831,21 @@ class B2cOrderRequests extends connect(store)(localize(i18next)(PageView)) {
812
831
  _modifyDateRange(e) {
813
832
  const fromDate = e.currentTarget.value
814
833
 
815
- if (this._toDateInput.value < fromDate) this._toDateInput.value = fromDate
834
+ if (this._toDateInput?.value < fromDate) this._toDateInput.value = fromDate
816
835
 
817
836
  let min = new Date(fromDate)
818
837
  let today = new Date()
838
+ let oneMonthRange = new Date(fromDate)
839
+ oneMonthRange.setMonth(oneMonthRange.getMonth() + 1)
840
+ oneMonthRange = oneMonthRange.toISOString().split('T')[0]
841
+
819
842
  today.setHours(0, 0, 0, 0)
820
843
 
821
844
  min = min.toISOString().split('T')[0]
822
845
 
823
846
  this._toDateInput.min = min
847
+ this._toDateInput.value = oneMonthRange
848
+ this._toDateInput.max = oneMonthRange
824
849
  }
825
850
 
826
851
  _exportableData() {
@@ -832,7 +857,7 @@ class B2cOrderRequests extends connect(store)(localize(i18next)(PageView)) {
832
857
  }
833
858
 
834
859
  var headerSetting = this.dataGrist._config.columns
835
- .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
860
+ .filter(column => column.type !== 'gutter' /* && column.record !== undefined */ && column.imex !== undefined)
836
861
  .map(column => {
837
862
  return column.imex
838
863
  })
@@ -841,7 +866,7 @@ class B2cOrderRequests extends connect(store)(localize(i18next)(PageView)) {
841
866
  return {
842
867
  id: item.id,
843
868
  ...this._columns
844
- .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
869
+ .filter(column => column.type !== 'gutter' /* && column.record !== undefined */ && column.imex !== undefined)
845
870
  .reduce((record, column) => {
846
871
  record[column.imex.key] = column.imex.key
847
872
  .split('.')
@@ -312,6 +312,7 @@ class BatchPickingPopup extends localize(i18next)(LitElement) {
312
312
  name
313
313
  description
314
314
  }
315
+ recall
315
316
  }
316
317
  total
317
318
  }
@@ -369,7 +370,17 @@ class BatchPickingPopup extends localize(i18next)(LitElement) {
369
370
 
370
371
  async generateBatchPicking() {
371
372
  try {
373
+ const data = this.releaseOrderGrist
372
374
  if (this.releaseOrderGrist.selected.length < 2) throw new Error('Minimum of 2 orders required for batch picking')
375
+
376
+ let uniqueWS = this.releaseOrderGrist.selected.filter(
377
+ res => res.recall !== this.releaseOrderGrist.selected[0].recall
378
+ )
379
+
380
+ if (uniqueWS.length > 0) {
381
+ throw new Error("Recall Release Order can't be generated together with Normal Release Order")
382
+ }
383
+
373
384
  let result = await CustomAlert({
374
385
  title: i18next.t('title.are_you_sure'),
375
386
  text: i18next.t('text.create_batch_picking'),