@things-factory/operato-wms 3.7.6 → 3.7.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/client/pages/components/select-product-popup.js +5 -1
  2. package/client/pages/constants/order.js +10 -0
  3. package/client/pages/inventory-check/inspecting-product.js +9 -8
  4. package/client/pages/manifest/create-loading-manifest.js +314 -0
  5. package/client/pages/manifest/dispatcher-verification-popup.js +86 -0
  6. package/client/pages/manifest/loading-manifest-detail.js +345 -0
  7. package/client/pages/manifest/loading-manifest-list.js +305 -0
  8. package/client/pages/order/goods-received-note/received-note-list.js +138 -6
  9. package/client/pages/order/release-order/b2b/b2b-order-list.js +1 -1
  10. package/client/pages/order/release-order/b2b/b2b-order-requests.js +1 -1
  11. package/client/pages/order/release-order/b2c/b2c-order-requests.js +111 -14
  12. package/client/pages/order/reverse-kitting-order/reverse-kitting-order-detail.js +115 -50
  13. package/client/pages/order/reverse-kitting-order/reverse-kitting-order-list.js +1 -6
  14. package/client/pages/order/reverse-kitting-order/reverse-kitting-pallet-label-popup.js +239 -0
  15. package/client/pages/order/transport-order/delivery-order-list.js +47 -3
  16. package/client/pages/outbound/picking-product.js +200 -66
  17. package/client/pages/outbound/serial-number-popup.js +280 -0
  18. package/client/pages/vas/reverse-kitting/execute-reverse-kitting.js +30 -12
  19. package/client/pages/vas/reverse-kitting/popup-combination-sets.js +75 -5
  20. package/client/pages/vas/reverse-kitting/popup-reverse-kitting-template.js +113 -18
  21. package/client/route.js +12 -0
  22. package/package.json +10 -10
  23. package/things-factory.config.js +12 -0
  24. package/translations/en.json +42 -6
  25. package/translations/ko.json +35 -1
  26. package/translations/ms.json +36 -1
  27. package/translations/zh.json +35 -1
@@ -7,7 +7,7 @@ import { css, html, LitElement } from 'lit-element'
7
7
  import { MultiColumnFormStyles } from '@things-factory/form-ui'
8
8
  import { i18next, localize } from '@things-factory/i18n-base'
9
9
  import { openPopup } from '@things-factory/layout-base'
10
- import { client } from '@things-factory/shell'
10
+ import { client, CustomAlert } from '@things-factory/shell'
11
11
  import { isMobileDevice } from '@things-factory/utils'
12
12
 
13
13
  class PopupReverseKittingTemplate extends localize(i18next)(LitElement) {
@@ -20,8 +20,11 @@ class PopupReverseKittingTemplate extends localize(i18next)(LitElement) {
20
20
  actualQty: Number,
21
21
  incompleteLocationName: Boolean,
22
22
  locations: Array,
23
+ _selectedInventory: Object,
23
24
  reverseKittingInventoriesConfig: Object,
24
- _reverseKittingInventories: Array
25
+ _reverseKittingInventories: Array,
26
+ _palletId: String,
27
+ _locationCode: String
25
28
  }
26
29
  }
27
30
 
@@ -62,11 +65,8 @@ class PopupReverseKittingTemplate extends localize(i18next)(LitElement) {
62
65
  color: var(--grist-title-icon-color);
63
66
  }
64
67
  .button-container {
65
- padding: var(--button-container-padding);
66
- margin: var(--button-container-margin);
67
- text-align: var(--button-container-align);
68
- background-color: var(--button-container-background);
69
- height: var(--button-container-height);
68
+ padding: 10px 0 12px 0;
69
+ text-align: center;
70
70
  }
71
71
  `
72
72
  ]
@@ -99,13 +99,23 @@ class PopupReverseKittingTemplate extends localize(i18next)(LitElement) {
99
99
  <legend>${this.productSku} [ ${this.actualQty} / ${this.qty} ]</legend>
100
100
 
101
101
  <label>${i18next.t('label.lot_id')}</label>
102
- <barcode-scanable-input name="palletId" without-enter custom-input></barcode-scanable-input>
102
+ <barcode-scanable-input
103
+ name="palletId"
104
+ value="${this._palletId}"
105
+ without-enter
106
+ custom-input
107
+ ></barcode-scanable-input>
103
108
 
104
109
  <label>${i18next.t('label.qty')}</label>
105
- <input name="qty" type="number" min="1" />
110
+ <input name="qty" type="number" value="" min="1" />
106
111
 
107
112
  <label>${i18next.t('label.location')}</label>
108
- <barcode-scanable-input name="locationCode" without-enter custom-input></barcode-scanable-input>
113
+ <barcode-scanable-input
114
+ name="locationCode"
115
+ value="${this._locationCode}"
116
+ without-enter
117
+ custom-input
118
+ ></barcode-scanable-input>
109
119
  </fieldset>
110
120
  </form>
111
121
 
@@ -118,12 +128,21 @@ class PopupReverseKittingTemplate extends localize(i18next)(LitElement) {
118
128
  .config=${this.reverseKittingInventoriesConfig}
119
129
  .data=${this._reverseKittingInventories}
120
130
  ></data-grist>
121
- </div>`
131
+ </div>
132
+ <div class="button-container">
133
+ <mwc-button
134
+ raised
135
+ @click=${this._undoInventory.bind(this)}
136
+ label="${i18next.t('button.undo')}"
137
+ ></mwc-button>
138
+ </div> `
122
139
  : ''}
123
140
  `
124
141
  }
125
142
 
126
143
  async firstUpdated() {
144
+ this._palletId = ''
145
+ this._locationCode = ''
127
146
  this.productSku = this.data.productSku
128
147
  this.qty = this.data.qty
129
148
  this.actualQty = this.data.actualQty
@@ -133,7 +152,10 @@ class PopupReverseKittingTemplate extends localize(i18next)(LitElement) {
133
152
  appendable: false,
134
153
  handlers: {
135
154
  click: (columns, data, column, record, rowIndex) => {
136
- return
155
+ this._selectedInventory = record
156
+ this._palletId = record.palletId
157
+ this._locationCode = record.locationCode
158
+ this._fillUpForm(this.inputForm, record)
137
159
  }
138
160
  }
139
161
  },
@@ -202,8 +224,11 @@ class PopupReverseKittingTemplate extends localize(i18next)(LitElement) {
202
224
  async _fetchInventories() {
203
225
  const response = await client.query({
204
226
  query: gql`
205
- query reverseKittingInventories($orderReverseKittingName: String!) {
206
- reverseKittingInventories(orderReverseKittingName: $orderReverseKittingName) {
227
+ query reverseKittingInventories($orderReverseKittingName: String!, $productDetailId: String) {
228
+ reverseKittingInventories(
229
+ orderReverseKittingName: $orderReverseKittingName
230
+ productDetailId: $productDetailId
231
+ ) {
207
232
  batchId
208
233
  packingType
209
234
  bizplace {
@@ -218,6 +243,11 @@ class PopupReverseKittingTemplate extends localize(i18next)(LitElement) {
218
243
  qty
219
244
  expirationDate
220
245
  status
246
+ location {
247
+ id
248
+ name
249
+ description
250
+ }
221
251
  product {
222
252
  id
223
253
  name
@@ -227,7 +257,7 @@ class PopupReverseKittingTemplate extends localize(i18next)(LitElement) {
227
257
  }
228
258
  }
229
259
  `,
230
- variables: { orderReverseKittingName: this.orderReverseKittingName }
260
+ variables: { orderReverseKittingName: this.orderReverseKittingName, productDetailId: this.data.productDetailId }
231
261
  })
232
262
 
233
263
  if (!response.errors) {
@@ -237,15 +267,24 @@ class PopupReverseKittingTemplate extends localize(i18next)(LitElement) {
237
267
  return {
238
268
  ...reverseKittingInventory,
239
269
  sku: reverseKittingInventory.product.sku,
240
- packingTypeSize: `${reverseKittingInventory.packingType}(${reverseKittingInventory.packingSize})`
270
+ packingTypeSize: `${reverseKittingInventory.packingType}(${reverseKittingInventory.packingSize})`,
271
+ locationCode: reverseKittingInventory.location.name
241
272
  }
242
273
  }) || []
243
274
  }
275
+
276
+ let totalActualQty = 0
277
+ response.data.reverseKittingInventories.forEach(inventory => {
278
+ totalActualQty += inventory.qty
279
+ })
280
+
281
+ this.actualQty = totalActualQty
244
282
  }
245
283
  }
246
284
 
247
285
  async _executeReverseKitting(e) {
248
286
  if (e.keyCode === 13) {
287
+ e.preventDefault()
249
288
  try {
250
289
  await this._validateReverseKitting()
251
290
  if (!this.incompleteLocationName) {
@@ -266,8 +305,8 @@ class PopupReverseKittingTemplate extends localize(i18next)(LitElement) {
266
305
  }
267
306
  })
268
307
  if (!response.errors) {
269
- this.dispatchEvent(new CustomEvent('updated'))
270
- history.back()
308
+ this._clearView()
309
+ await this._fetchInventories()
271
310
  }
272
311
  } else {
273
312
  this._openSelectLocationPopup()
@@ -278,6 +317,41 @@ class PopupReverseKittingTemplate extends localize(i18next)(LitElement) {
278
317
  }
279
318
  }
280
319
 
320
+ async _undoInventory() {
321
+ try {
322
+ this._validateSelectedInventory()
323
+ const result = await CustomAlert({
324
+ title: i18next.t('title.are_you_sure'),
325
+ text: i18next.t('text.undo_x', { state: { x: this._palletId } }),
326
+ confirmButton: { text: i18next.t('button.confirm') },
327
+ cancelButton: { text: i18next.t('button.cancel') }
328
+ })
329
+
330
+ if (!result.value) {
331
+ return
332
+ }
333
+
334
+ let response = await client.mutate({
335
+ mutation: gql`
336
+ mutation undoReverseKittingInventory($orderReverseKittingName: String!, $palletId: String!) {
337
+ undoReverseKittingInventory(orderReverseKittingName: $orderReverseKittingName, palletId: $palletId)
338
+ }
339
+ `,
340
+ variables: {
341
+ orderReverseKittingName: this.orderReverseKittingName,
342
+ palletId: this._palletId.trim()
343
+ }
344
+ })
345
+
346
+ if (!response.errors) {
347
+ this._clearView()
348
+ await this._fetchInventories()
349
+ }
350
+ } catch (e) {
351
+ this._showToast(e)
352
+ }
353
+ }
354
+
281
355
  _fillUpForm(form, data) {
282
356
  for (let key in data) {
283
357
  Array.from(form.querySelectorAll('input')).forEach(field => {
@@ -299,12 +373,25 @@ class PopupReverseKittingTemplate extends localize(i18next)(LitElement) {
299
373
  }
300
374
  }
301
375
 
376
+ _clearView() {
377
+ this.inputForm.reset()
378
+ this._palletId = ''
379
+ this._locationCode = ''
380
+ }
381
+
302
382
  async _validateReverseKitting() {
303
383
  if (!this.palletInput.value) {
304
384
  this._focusOnPalletInput()
305
385
  throw new Error(i18next.t('text.lot_id_is_empty'))
306
386
  }
307
387
 
388
+ if (!this.qtyInput.value) {
389
+ this._focusOnQtyInput()
390
+ throw new Error(i18next.t('text.qty_is_empty'))
391
+ } else {
392
+ if (!this.qtyInput.checkValidity()) throw new Error(i18next.t('text.qty_invalid'))
393
+ }
394
+
308
395
  // 4. location code existing
309
396
  if (!this.locationInput.value) {
310
397
  this._focusOnLocationInput()
@@ -327,6 +414,10 @@ class PopupReverseKittingTemplate extends localize(i18next)(LitElement) {
327
414
  }
328
415
  }
329
416
 
417
+ _validateSelectedInventory() {
418
+ if (!this._selectedInventory) throw new Error(i18next.t('text.target_does_not_selected'))
419
+ }
420
+
330
421
  async _fetchLocations(zone, row, column) {
331
422
  const filters = [
332
423
  {
@@ -420,6 +511,10 @@ class PopupReverseKittingTemplate extends localize(i18next)(LitElement) {
420
511
  setTimeout(() => this.palletInput.focus(), 100)
421
512
  }
422
513
 
514
+ _focusOnQtyInput() {
515
+ setTimeout(() => this.qtyInput.focus(), 100)
516
+ }
517
+
423
518
  _focusOnLocationInput() {
424
519
  setTimeout(() => this.locationInput.focus(), 100)
425
520
  }
package/client/route.js CHANGED
@@ -212,6 +212,18 @@ export default function route(page) {
212
212
  import('./pages/order/release-order/bulk-print-packing-list')
213
213
  return page
214
214
 
215
+ case 'create_loading_manifest':
216
+ import('./pages/manifest/create-loading-manifest')
217
+ return page
218
+
219
+ case 'loading_manifest_list':
220
+ import('./pages/manifest/loading-manifest-list')
221
+ return page
222
+
223
+ case 'loading_manifest_detail':
224
+ import('./pages/manifest/loading-manifest-detail')
225
+ return page
226
+
215
227
  /**
216
228
  * GRN Menus Section
217
229
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/operato-wms",
3
- "version": "3.7.6",
3
+ "version": "3.7.7",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -44,8 +44,8 @@
44
44
  "@operato/ghost-print": "0.1.14",
45
45
  "@things-factory/apptool-ui": "^3.7.5",
46
46
  "@things-factory/attachment-ui": "^3.7.5",
47
- "@things-factory/auth-ui": "^3.7.5",
48
- "@things-factory/barcode-ui": "^3.7.6",
47
+ "@things-factory/auth-ui": "^3.7.7",
48
+ "@things-factory/barcode-ui": "^3.7.7",
49
49
  "@things-factory/biz-ui": "^3.7.5",
50
50
  "@things-factory/board-service": "^3.7.5",
51
51
  "@things-factory/board-ui": "^3.7.5",
@@ -69,9 +69,9 @@
69
69
  "@things-factory/print-proxy-service": "^3.7.5",
70
70
  "@things-factory/print-service": "^3.7.5",
71
71
  "@things-factory/print-ui": "^3.7.5",
72
- "@things-factory/product-base": "^3.7.5",
73
- "@things-factory/resource-ui": "^3.7.5",
74
- "@things-factory/sales-ui": "^3.7.6",
72
+ "@things-factory/product-base": "^3.7.7",
73
+ "@things-factory/resource-ui": "^3.7.7",
74
+ "@things-factory/sales-ui": "^3.7.7",
75
75
  "@things-factory/scene-chartjs": "^3.7.5",
76
76
  "@things-factory/scene-clock": "^3.7.5",
77
77
  "@things-factory/scene-clone": "^3.7.5",
@@ -85,7 +85,7 @@
85
85
  "@things-factory/scene-graphql": "^3.7.5",
86
86
  "@things-factory/scene-half-roundrect": "^3.7.5",
87
87
  "@things-factory/scene-indoor-map": "^3.7.5",
88
- "@things-factory/scene-label": "^3.7.6",
88
+ "@things-factory/scene-label": "^3.7.7",
89
89
  "@things-factory/scene-legend": "^3.7.5",
90
90
  "@things-factory/scene-marker": "^3.7.5",
91
91
  "@things-factory/scene-mqtt": "^3.7.5",
@@ -102,11 +102,11 @@
102
102
  "@things-factory/system-ui": "^3.7.5",
103
103
  "@things-factory/transport-base": "^3.7.5",
104
104
  "@things-factory/tutorial-ui": "^3.7.5",
105
- "@things-factory/warehouse-base": "^3.7.6",
106
- "@things-factory/worksheet-base": "^3.7.6"
105
+ "@things-factory/warehouse-base": "^3.7.7",
106
+ "@things-factory/worksheet-base": "^3.7.7"
107
107
  },
108
108
  "devDependencies": {
109
109
  "@things-factory/builder": "^3.7.5"
110
110
  },
111
- "gitHead": "d9d72c07fc3b01af2ede46808ec0aced3241ed51"
111
+ "gitHead": "7e1cfc771ca9e8970d90493d3049d4d589e96f08"
112
112
  }
@@ -211,6 +211,18 @@ export default {
211
211
  tagname: 'bulk-print-packing-list',
212
212
  page: 'bulk_print_packing_list'
213
213
  },
214
+ {
215
+ tagname: 'create-loading-manifest',
216
+ page: 'create_loading_manifest'
217
+ },
218
+ {
219
+ tagname: 'loading-manifest-list',
220
+ page: 'loading_manifest_list'
221
+ },
222
+ {
223
+ tagname: 'loading-manifest-detail',
224
+ page: 'loading_manifest_detail'
225
+ },
214
226
  /**
215
227
  * Billing Menus Section
216
228
  */
@@ -93,9 +93,9 @@
93
93
  "delivery_order_form_invalid": "delivery order form invalid",
94
94
  "field.accepted_at": "accepted at",
95
95
  "field.accepted_by": "accepted by",
96
- "field.actual_qty": "actual qty",
97
96
  "field.actual_pack_qty": "actual pack qty",
98
97
  "field.actual_pallet_qty": "actual pallet qty",
98
+ "field.actual_qty": "actual qty",
99
99
  "field.actual_unpack_qty": "actual unpack qty",
100
100
  "field.addable_qty": "addable qty",
101
101
  "field.addable_uom_value": "addable uom value",
@@ -191,10 +191,12 @@
191
191
  "field.delivery_date": "delivery date",
192
192
  "field.delivery_order": "delivery order",
193
193
  "field.delivery_summary": "delivery summary",
194
+ "field.delivery_to": "delivery to",
194
195
  "field.delivery": "delivery",
195
196
  "field.density": "density",
196
197
  "field.depth": "depth",
197
198
  "field.description": "description",
199
+ "field.dispatch_at": "dispatch at",
198
200
  "field.do_delivery_date": "DO delivery date",
199
201
  "field.do_no": "DO No.",
200
202
  "field.do_ref_no": "do ref no",
@@ -275,6 +277,7 @@
275
277
  "field.lot_id": "lot id",
276
278
  "field.low_on_stock": "low on stock",
277
279
  "field.main_bizplace": "main customer",
280
+ "field.manifest_no": "manifest no",
278
281
  "field.manufacture_year": "manufacture year",
279
282
  "field.marketplace_order_status": "marketplace order status",
280
283
  "field.max_qty": "max qty",
@@ -286,6 +289,7 @@
286
289
  "field.need_fleet": "need fleet",
287
290
  "field.need_transport": "need transport",
288
291
  "field.nett_weight": "nett weight",
292
+ "field.no_of_items": "no of items",
289
293
  "field.non_tally": "non tally",
290
294
  "field.number_of_column": "number of column",
291
295
  "field.number_of_depth": "number of depth",
@@ -387,6 +391,7 @@
387
391
  "field.replenishment_order_no": "replenishment order no",
388
392
  "field.request_date": "request date",
389
393
  "field.require_packing": "require packing",
394
+ "field.require_serial_number_scanning": "require serial number scanning",
390
395
  "field.reserve_qty": "reserve qty",
391
396
  "field.reserve_uom_value": "reserve uom value",
392
397
  "field.resource_name": "resource name",
@@ -411,6 +416,7 @@
411
416
  "field.self_collect_summary": "self collect summary",
412
417
  "field.self_collect": "self collect",
413
418
  "field.seq": "seq",
419
+ "field.serial_number": "serial number",
414
420
  "field.service": "service",
415
421
  "field.services": "services",
416
422
  "field.set": "set",
@@ -462,6 +468,7 @@
462
468
  "field.total_uom": "total uom",
463
469
  "field.total_volume": "total volume",
464
470
  "field.total": "total",
471
+ "field.tracking_no": "tracking no",
465
472
  "field.transaction_type": "transaction type",
466
473
  "field.transaction": "transaction",
467
474
  "field.transport_driver": "transport driver",
@@ -554,6 +561,7 @@
554
561
  "label.case_sensitive": "case sensitive",
555
562
  "label.charges": "charges",
556
563
  "label.claim": "claim",
564
+ "label.closed": "closed",
557
565
  "label.co_no": "CO number",
558
566
  "label.collection_date_time": "collection date time",
559
567
  "label.collection_date": "collection date",
@@ -609,6 +617,10 @@
609
617
  "label.diesel_cash": "diesel cash",
610
618
  "label.diesel_fc": "diesel fc",
611
619
  "label.diff_batch_id": "different batch no",
620
+ "label.dispatch_at": "dispatch at",
621
+ "label.dispatch_time": "dispatch time",
622
+ "label.dispatcher_identity": "dispatcher identity",
623
+ "label.dispatcher_name": "dispatcher name",
612
624
  "label.do_no": "DO No.",
613
625
  "label.document": "document",
614
626
  "label.domain": "domain",
@@ -675,6 +687,7 @@
675
687
  "label.new_lot_id": "new lot id",
676
688
  "label.no_of_random_item": "no of random item",
677
689
  "label.not_tally": "not tally",
690
+ "label.open": "open",
678
691
  "label.options": "options",
679
692
  "label.order_name": "order name",
680
693
  "label.order_no": "order no",
@@ -692,6 +705,7 @@
692
705
  "label.order_status_inspecting": "inspecting",
693
706
  "label.order_status_intransit": "intransit",
694
707
  "label.order_status_loading": "loading",
708
+ "label.order_status_packing": "packing",
695
709
  "label.order_status_partial_return": "partial return",
696
710
  "label.order_status_pending_approval": "pending approval",
697
711
  "label.order_status_pending_cancel": "pending cancel",
@@ -736,6 +750,7 @@
736
750
  "label.pending_adjustment": "pending adjustment",
737
751
  "label.pending_approval": "pending approval",
738
752
  "label.pending_process": "pending process",
753
+ "label.pending_receive": "pending receive",
739
754
  "label.pending": "pending",
740
755
  "label.phone_no": "phone no",
741
756
  "label.picked_qty": "picked qty",
@@ -800,11 +815,14 @@
800
815
  "label.rule_field": "rule field",
801
816
  "label.scan_product_barcode": "scan product barcode",
802
817
  "label.scan_task_no": "scan task no",
818
+ "label.scan_tracking_no": "scan tracking no",
803
819
  "label.search_type": "search type",
804
820
  "label.select_by_pallet": "select by pallet",
805
821
  "label.select_by_product": "select by product",
806
822
  "label.select_file": "select file",
807
823
  "label.sent": "sent",
824
+ "label.serial_number_list": "serial number list",
825
+ "label.serial_number": "serial number",
808
826
  "label.setting": "setting",
809
827
  "label.shelf_extension": "shelf extension",
810
828
  "label.shelf": "shelf",
@@ -816,6 +834,7 @@
816
834
  "label.shipping_provider": "shipping provider",
817
835
  "label.single_picking": "single picking",
818
836
  "label.sku": "sku",
837
+ "label.sorting": "sorting",
819
838
  "label.special_vas": "special vas",
820
839
  "label.staging_area": "staging area",
821
840
  "label.started_at": "started at",
@@ -851,6 +870,7 @@
851
870
  "label.total_opening_balance": "total opening balance",
852
871
  "label.total_pack_qty": "total pack qty",
853
872
  "label.total_pallet_qty": "total pallet qty",
873
+ "label.total_tracking_no": "total tracking no",
854
874
  "label.total_uom_value": "total uom value",
855
875
  "label.total": "total",
856
876
  "label.tracking_no": "tracking no",
@@ -958,7 +978,6 @@
958
978
  "text.confirm": "confirm",
959
979
  "text.container_no_is_empty": "container no is empty",
960
980
  "text.container_size_is_empty": "container size is empty",
961
- "text.create": "create",
962
981
  "text.create_arrival_notice": "create arrival notice",
963
982
  "text.create_batch_picking": "create batch picking",
964
983
  "text.create_collection_order": "create collection order",
@@ -970,6 +989,7 @@
970
989
  "text.create_return_order": "create return order",
971
990
  "text.create_reverse_kitting_order": "create reverse kitting order",
972
991
  "text.create_vas_order": "create vas order",
992
+ "text.create": "create",
973
993
  "text.creating_cycle_count_worksheet": "creating cycle count worksheet",
974
994
  "text.creating_release_order_is_required": "creating release order is required",
975
995
  "text.current_order_complete_sorting": "current order complete sorting",
@@ -1008,6 +1028,7 @@
1008
1028
  "text.edit_add_order_product": "edit add order product",
1009
1029
  "text.edited_batch_no_have_been_processed": "edited batch no have been processed",
1010
1030
  "text.empty_product_barcode": "empty product barcode",
1031
+ "text.empty_serial_number": "empty serial number",
1011
1032
  "text.empty_value_in_add_product_list": "empty value in add product list",
1012
1033
  "text.empty_value_in_list": "empty value in list",
1013
1034
  "text.enter_qty": "enter qty",
@@ -1078,6 +1099,9 @@
1078
1099
  "text.logistics_has_been_initialised": "logistics has been initialised",
1079
1100
  "text.lot_id_is_duplicated": "lot id is duplicated",
1080
1101
  "text.lot_id_is_empty": "lot id is empty",
1102
+ "text.manifest_has_been_dispatched_and_closed": "manifest has been dispatched and closed",
1103
+ "text.manifest_has_been_generated": "manifest has been generated",
1104
+ "text.manifest_items_is_empty": "manifest items is empty",
1081
1105
  "text.missing_zone_name": "missing zone name",
1082
1106
  "text.new_batch_id_is_empty": "new batch no is empty",
1083
1107
  "text.no_changes_to_be_submitted": "no changes to be submitted",
@@ -1089,6 +1113,7 @@
1089
1113
  "text.no_matching_product_found": "no matching product found",
1090
1114
  "text.no_product_barcode_detected": "no product barcode detected",
1091
1115
  "text.no_products": "no products",
1116
+ "text.no_serial_number_selected": "no serial number selected",
1092
1117
  "text.not_found_in_putaway_list": "not found in putaway list",
1093
1118
  "text.offline": "offline",
1094
1119
  "text.online": "online",
@@ -1109,6 +1134,7 @@
1109
1134
  "text.pickup_info_is_not_completed": "pickup info is not completed",
1110
1135
  "text.please_check_your_setting": "please check your setting",
1111
1136
  "text.please_check_your_vas_target": "please check your vas target",
1137
+ "text.please_key_in_new_serial_number": "please key in new serial number",
1112
1138
  "text.please_select_a_company": "please select a company",
1113
1139
  "text.please_select_a_driver": "please select a driver",
1114
1140
  "text.please_select_a_truck": "select a truck",
@@ -1122,6 +1148,7 @@
1122
1148
  "text.please_wait": "please wait",
1123
1149
  "text.preunload_has_completed": "preunload has been completed",
1124
1150
  "text.previous_picking_is_still_executing_please_wait": "Previous picking is still executing. Please wait",
1151
+ "text.previous_scan_is_executing": "previous scan is executing",
1125
1152
  "text.print_1_label_for_item_with_non_specified_print_qty": "print 1 label for item with non-specified print qty",
1126
1153
  "text.print_qty_is_empty": "print qty is empty",
1127
1154
  "text.printing": "printing",
@@ -1158,7 +1185,6 @@
1158
1185
  "text.remark_is_empty": "remark is empty",
1159
1186
  "text.remark_updated": "remark updated",
1160
1187
  "text.replacement_pallet_not_match_criteria": "replacement pallet not match criteria",
1161
- "text.previous_scan_is_executing": "previous scan is executing",
1162
1188
  "text.return_order_confirmed": "return order confirmed",
1163
1189
  "text.return_order_created": "return order created",
1164
1190
  "text.return_order_form_invalid": "return order form invalid",
@@ -1168,12 +1194,12 @@
1168
1194
  "text.return_order_rejected": "return order rejected",
1169
1195
  "text.return": "return",
1170
1196
  "text.reverse_kitting_completed": "reverse kitting completed",
1171
- "text.reverse_kitting_order": "reverse kitting order",
1172
1197
  "text.reverse_kitting_order_activated": "reverse kitting order activated",
1173
1198
  "text.reverse_kitting_order_cancelled": "reverse kitting order cancelled",
1174
1199
  "text.reverse_kitting_order_confirmed": "reverse kitting order confirmed",
1175
1200
  "text.reverse_kitting_order_created": "reverse kitting order created",
1176
1201
  "text.reverse_kitting_order_deleted": "reverse kitting order deleted",
1202
+ "text.reverse_kitting_order": "reverse kitting order",
1177
1203
  "text.scan_product_barcode": "scan product barcode",
1178
1204
  "text.select_a_delivery_type": "select a delivery type",
1179
1205
  "text.select_a_logistics_type": "select a logistics type",
@@ -1226,6 +1252,7 @@
1226
1252
  "text.this_is_cross_docking": "this is cross docking",
1227
1253
  "text.to_date_is_empty": "to date is empty",
1228
1254
  "text.to_lot_id_is_empty": "to lot id is empty",
1255
+ "text.tracking_no_already_exist_in_manifest_list": "tracking no already exist in manifest list",
1229
1256
  "text.transfer_inventory_to_different_location": "transfer inventory to different location",
1230
1257
  "text.transfer_location_completed": "transfer location completed",
1231
1258
  "text.undo_inventory": "undo inventory",
@@ -1235,6 +1262,7 @@
1235
1262
  "text.undo_repalletizing": "undo repalletizing",
1236
1263
  "text.undo_unloading": "undo unloading",
1237
1264
  "text.undo_vas": "undo vas",
1265
+ "text.undo_x": "undo {state.x}",
1238
1266
  "text.unloading_completed": "unloading completed",
1239
1267
  "text.unpack_qty_is_empty": "unpack qty is empty",
1240
1268
  "text.unpack_uom_value_is_empty": "unpack uom value is empty",
@@ -1292,8 +1320,8 @@
1292
1320
  "title.claim_chit_details": "claim chit details",
1293
1321
  "title.claim_chit": "claim chit",
1294
1322
  "title.code_management": "code management",
1295
- "title.combination": "combination",
1296
1323
  "title.combination_sets": "combination sets",
1324
+ "title.combination": "combination",
1297
1325
  "title.company": "company",
1298
1326
  "title.completed_delivery_order": "completed delivery order",
1299
1327
  "title.completed": "completed",
@@ -1305,6 +1333,7 @@
1305
1333
  "title.create_claim_chit": "create claim chit",
1306
1334
  "title.create_cycle_count": "create cycle count",
1307
1335
  "title.create_delivery_order": "create delivery order",
1336
+ "title.create_loading_manifest": "create loading manifest",
1308
1337
  "title.create_release_order": "create release order",
1309
1338
  "title.create_return_order": "create return order",
1310
1339
  "title.create_template": "create template",
@@ -1323,6 +1352,7 @@
1323
1352
  "title.delivery_order_summary": "delivery order summary",
1324
1353
  "title.delivery_order": "delivery order",
1325
1354
  "title.delivery_orders": "delivery orders",
1355
+ "title.dispatcher_verification": "dispatcher verification",
1326
1356
  "title.document_template_management": "document template management",
1327
1357
  "title.edit_add_order_product": "edit/add order product",
1328
1358
  "title.edit_delivery_note": "edit delivery note",
@@ -1394,6 +1424,10 @@
1394
1424
  "title.location": "location",
1395
1425
  "title.lot_information": "lot information",
1396
1426
  "title.lot_label": "lot label",
1427
+ "title.manifest_items": "manifest items",
1428
+ "title.manifest_list": "manifest list",
1429
+ "title.manifest_no": "manifest no",
1430
+ "title.manifest": "manifest",
1397
1431
  "title.menu_management": "menu management",
1398
1432
  "title.menu": "menu",
1399
1433
  "title.merged_outbound_worksheet": "merged outbound worksheet",
@@ -1477,10 +1511,10 @@
1477
1511
  "title.return_orders": "return orders",
1478
1512
  "title.return_product_list": "return product list",
1479
1513
  "title.reusable_pallet": "plastic pallet",
1480
- "title.reverse_kitting": "reverse kitting",
1481
1514
  "title.reverse_kitting_no": "reverse kitting no",
1482
1515
  "title.reverse_kitting_order_detail": "reverse kitting order detail",
1483
1516
  "title.reverse_kitting_orders": "reverse kitting orders",
1517
+ "title.reverse_kitting": "reverse kitting",
1484
1518
  "title.role": "role",
1485
1519
  "title.same_pallet_is_found": "same pallet is found",
1486
1520
  "title.scan_area": "scan area",
@@ -1494,6 +1528,8 @@
1494
1528
  "title.select_product_batch": "select product batch",
1495
1529
  "title.select_truck": "select truck",
1496
1530
  "title.select_warehouse": "select warehouse",
1531
+ "title.serial_number_list": "serial number list",
1532
+ "title.serial_number": "serial number",
1497
1533
  "title.setting": "setting",
1498
1534
  "title.shipping_information": "shipping information",
1499
1535
  "title.shipping_order": "shipping order",