@things-factory/operato-wms 3.7.10 → 3.7.14

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 (35) hide show
  1. package/client/pages/components/select-product-popup.js +9 -0
  2. package/client/pages/inbound/worksheet-putaway-return.js +8 -0
  3. package/client/pages/inbound/worksheet-putaway.js +8 -0
  4. package/client/pages/inbound/worksheet-unloading-return.js +8 -0
  5. package/client/pages/inbound/worksheet-unloading.js +8 -0
  6. package/client/pages/inventory/inventory-adjustment.js +10 -0
  7. package/client/pages/inventory/inventory-by-product.js +8 -0
  8. package/client/pages/inventory/inventory-history-by-pallet.js +9 -0
  9. package/client/pages/inventory/inventory-history.js +10 -0
  10. package/client/pages/inventory/onhand-inventory.js +11 -1
  11. package/client/pages/inventory-check/create-cycle-count.js +11 -0
  12. package/client/pages/inventory-check/cycle-count-report.js +8 -0
  13. package/client/pages/inventory-check/worksheet-cycle-count.js +14 -0
  14. package/client/pages/order/arrival-notice/arrival-notice-detail.js +119 -107
  15. package/client/pages/order/arrival-notice/assign-buffer-location.js +8 -1
  16. package/client/pages/order/arrival-notice/check-arrived-notice.js +9 -1
  17. package/client/pages/order/arrival-notice/create-arrival-notice.js +7 -0
  18. package/client/pages/order/arrival-notice/receive-arrival-notice.js +8 -1
  19. package/client/pages/order/release-order/create-release-order.js +24 -1
  20. package/client/pages/order/release-order/receive-release-order-request.js +8 -0
  21. package/client/pages/order/release-order/release-extra-product-popup.js +64 -64
  22. package/client/pages/order/release-order/release-order-detail.js +9 -3
  23. package/client/pages/order/return-order/check-return-order.js +9 -1
  24. package/client/pages/order/return-order/create-return-order.js +13 -1
  25. package/client/pages/order/return-order/receive-return-order-requests.js +9 -1
  26. package/client/pages/order/return-order/return-order-detail.js +9 -1
  27. package/client/pages/order/return-order/return-order-inventory-popup.js +7 -0
  28. package/client/pages/outbound/inventory-assign-popup.js +10 -1
  29. package/client/pages/outbound/inventory-auto-assign-popup.js +9 -0
  30. package/client/pages/outbound/worksheet-loading.js +9 -1
  31. package/client/pages/outbound/worksheet-packing.js +8 -0
  32. package/client/pages/outbound/worksheet-picking.js +19 -0
  33. package/client/pages/outbound/worksheet-return.js +9 -1
  34. package/client/pages/outbound/worksheet-sorting.js +9 -1
  35. package/package.json +6 -6
@@ -136,11 +136,11 @@ class ArrivalNoticeDetail extends localize(i18next)(PageView) {
136
136
  height: 100px;
137
137
  margin: 10px;
138
138
  }
139
- .form-container {
140
- display: flex
139
+ .form-container {
140
+ display: flex;
141
141
  }
142
- .form-container > form {
143
- flex: 1
142
+ .form-container > form {
143
+ flex: 1;
144
144
  }
145
145
  `
146
146
  ]
@@ -238,111 +238,111 @@ class ArrivalNoticeDetail extends localize(i18next)(PageView) {
238
238
 
239
239
  render() {
240
240
  return html`
241
- <div class="form-container">
242
- <form name="arrivalNotice" class="multi-column-form">
243
- <fieldset>
244
- <legend>${i18next.t('title.gan_no')}: ${this._ganNo}</legend>
245
-
246
- <label>${i18next.t('label.options')}</label>
247
- <div options-wrap>
248
- <input
249
- id="ownTransport"
250
- type="checkbox"
251
- name="ownTransport"
252
- ?checked="${this._ownTransport}"
253
- @change="${e => (this._ownTransport = e.currentTarget.checked)}"
254
- disabled
255
- />
256
- <label>${i18next.t('label.own_transport')}</label>
257
-
258
- <input
259
- id="warehouseTransport"
260
- type="checkbox"
261
- name="warehouseTransport"
262
- ?checked="${!this._ownTransport}"
263
- disabled
264
- />
265
- <label>${i18next.t('label.warehouse_transport')}</label>
266
-
267
- <input id="container" type="checkbox" name="container" ?checked="${this._hasContainer}" disabled />
268
- <label for="container">${i18next.t('label.container')}</label>
269
-
270
- <input id="looseItem" type="checkbox" name="looseItem" ?checked="${this._looseItem}" disabled />
271
- <label for="looseItem">${i18next.t('label.loose_item')}</label>
272
-
273
- <input id="importedOrder" type="checkbox" name="importCargo" ?checked="${this._importedOrder}" disabled />
274
- <label for="importedOrder">${i18next.t('label.import_cargo')}</label>
275
-
276
- ${this._crossDocking
241
+ <div class="form-container">
242
+ <form name="arrivalNotice" class="multi-column-form">
243
+ <fieldset>
244
+ <legend>${i18next.t('title.gan_no')}: ${this._ganNo}</legend>
245
+
246
+ <label>${i18next.t('label.options')}</label>
247
+ <div options-wrap>
248
+ <input
249
+ id="ownTransport"
250
+ type="checkbox"
251
+ name="ownTransport"
252
+ ?checked="${this._ownTransport}"
253
+ @change="${e => (this._ownTransport = e.currentTarget.checked)}"
254
+ disabled
255
+ />
256
+ <label>${i18next.t('label.own_transport')}</label>
257
+
258
+ <input
259
+ id="warehouseTransport"
260
+ type="checkbox"
261
+ name="warehouseTransport"
262
+ ?checked="${!this._ownTransport}"
263
+ disabled
264
+ />
265
+ <label>${i18next.t('label.warehouse_transport')}</label>
266
+
267
+ <input id="container" type="checkbox" name="container" ?checked="${this._hasContainer}" disabled />
268
+ <label for="container">${i18next.t('label.container')}</label>
269
+
270
+ <input id="looseItem" type="checkbox" name="looseItem" ?checked="${this._looseItem}" disabled />
271
+ <label for="looseItem">${i18next.t('label.loose_item')}</label>
272
+
273
+ <input id="importedOrder" type="checkbox" name="importCargo" ?checked="${this._importedOrder}" disabled />
274
+ <label for="importedOrder">${i18next.t('label.import_cargo')}</label>
275
+
276
+ ${this._crossDocking
277
+ ? html`
278
+ <input
279
+ id="crossDocking"
280
+ type="checkbox"
281
+ name="crossDocking"
282
+ ?checked="${this._crossDocking}"
283
+ disabled
284
+ />
285
+ <label for="crossDocking">${i18next.t('label.cross_docking')}</label>
286
+ `
287
+ : ''}
288
+ </div>
289
+
290
+ <label>${i18next.t('label.company')}</label>
291
+ <input name="bizplaceName" value="${this._bizplaceName}" readonly />
292
+
293
+ <label>${i18next.t('label.ref_no')}${`1`}</label>
294
+ <input name="refNo" readonly />
295
+
296
+ <label>${i18next.t('label.ref_no')}${`2`}</label>
297
+ <input name="refNo2" readonly />
298
+
299
+ <label>${i18next.t('label.ref_no')}${`3`}</label>
300
+ <input name="refNo3" readonly />
301
+
302
+ <label>${i18next.t('label.eta_date')}</label>
303
+ <input name="etaDate" type="date" readonly />
304
+
305
+ <label ?hidden="${!this._ownTransport}">${i18next.t('label.do_no')}</label>
306
+ <input name="deliveryOrderNo" ?hidden="${!this._ownTransport}" readonly />
307
+
308
+ <label ?hidden="${this._importedOrder || !this._ownTransport}">${i18next.t('label.truck_no')}</label>
309
+ <input ?hidden="${this._importedOrder || !this._ownTransport}" name="truckNo" readonly />
310
+
311
+ <label ?hidden="${!this._hasContainer}">${i18next.t('label.container_no')}</label>
312
+ <input ?hidden="${!this._hasContainer}" type="text" name="containerNo" readonly />
313
+
314
+ <label>${i18next.t('label.container_size')}</label>
315
+ <input type="text" name="containerSize" readonly />
316
+
317
+ <label>${i18next.t('label.status')}</label>
318
+ <select name="status" disabled>
319
+ ${Object.keys(ORDER_STATUS).map(key => {
320
+ const status = ORDER_STATUS[key]
321
+ return html` <option value="${status.value}">${i18next.t(`label.${status.name}`)}</option> `
322
+ })}
323
+ </select>
324
+
325
+ ${this._attachments?.length > 0
277
326
  ? html`
278
- <input
279
- id="crossDocking"
280
- type="checkbox"
281
- name="crossDocking"
282
- ?checked="${this._crossDocking}"
283
- disabled
284
- />
285
- <label for="crossDocking">${i18next.t('label.cross_docking')}</label>
327
+ <label>${i18next.t('label.attachment')}</label>
328
+ <ul attachment-wrap>
329
+ ${(this._attachments || []).map(
330
+ attachment =>
331
+ html`
332
+ <li>
333
+ <a href="${location.origin}/attachment/${attachment.path}" download
334
+ ><mwc-icon>attach_file</mwc-icon> ${attachment.name}</a
335
+ >
336
+ </li>
337
+ `
338
+ )}
339
+ </ul>
286
340
  `
287
341
  : ''}
288
- </div>
289
-
290
- <label>${i18next.t('label.company')}</label>
291
- <input name="bizplaceName" value="${this._bizplaceName}" readonly />
292
-
293
- <label>${i18next.t('label.ref_no')}${`1`}</label>
294
- <input name="refNo" readonly />
295
-
296
- <label>${i18next.t('label.ref_no')}${`2`}</label>
297
- <input name="refNo2" readonly />
298
-
299
- <label>${i18next.t('label.ref_no')}${`3`}</label>
300
- <input name="refNo3" readonly />
301
-
302
- <label>${i18next.t('label.eta_date')}</label>
303
- <input name="etaDate" type="date" readonly />
304
-
305
- <label ?hidden="${!this._ownTransport}">${i18next.t('label.do_no')}</label>
306
- <input name="deliveryOrderNo" ?hidden="${!this._ownTransport}" readonly />
307
-
308
- <label ?hidden="${this._importedOrder || !this._ownTransport}">${i18next.t('label.truck_no')}</label>
309
- <input ?hidden="${this._importedOrder || !this._ownTransport}" name="truckNo" readonly />
310
-
311
- <label ?hidden="${!this._hasContainer}">${i18next.t('label.container_no')}</label>
312
- <input ?hidden="${!this._hasContainer}" type="text" name="containerNo" readonly />
313
-
314
- <label>${i18next.t('label.container_size')}</label>
315
- <input type="text" name="containerSize" readonly />
316
-
317
- <label>${i18next.t('label.status')}</label>
318
- <select name="status" disabled>
319
- ${Object.keys(ORDER_STATUS).map(key => {
320
- const status = ORDER_STATUS[key]
321
- return html` <option value="${status.value}">${i18next.t(`label.${status.name}`)}</option> `
322
- })}
323
- </select>
324
-
325
- ${this._attachments?.length > 0
326
- ? html`
327
- <label>${i18next.t('label.attachment')}</label>
328
- <ul attachment-wrap>
329
- ${(this._attachments || []).map(
330
- attachment =>
331
- html`
332
- <li>
333
- <a href="${location.origin}/attachment/${attachment.path}" download
334
- ><mwc-icon>attach_file</mwc-icon> ${attachment.name}</a
335
- >
336
- </li>
337
- `
338
- )}
339
- </ul>
340
- `
341
- : ''}
342
- </fieldset>
343
- </form>
344
- <barcode-tag bcid="qrcode" .value=${this._ganNo}></barcode-tag>
345
- </div>
342
+ </fieldset>
343
+ </form>
344
+ <barcode-tag bcid="qrcode" .value=${this._ganNo}></barcode-tag>
345
+ </div>
346
346
 
347
347
  <div class="container">
348
348
  <div class="grist">
@@ -541,6 +541,12 @@ class ArrivalNoticeDetail extends localize(i18next)(PageView) {
541
541
  record: { options: { queryName: 'products' } },
542
542
  width: 350
543
543
  },
544
+ {
545
+ type: 'string',
546
+ name: 'productBrand',
547
+ header: i18next.t('field.brand'),
548
+ width: 150
549
+ },
544
550
  {
545
551
  type: 'string',
546
552
  name: 'packingType',
@@ -618,6 +624,7 @@ class ArrivalNoticeDetail extends localize(i18next)(PageView) {
618
624
  'packingType',
619
625
  'uomValue',
620
626
  'uom',
627
+ 'brand',
621
628
  'packQty',
622
629
  'totalUomValue',
623
630
  'palletQty',
@@ -687,6 +694,7 @@ class ArrivalNoticeDetail extends localize(i18next)(PageView) {
687
694
  name
688
695
  description
689
696
  sku
697
+ brand
690
698
  }
691
699
  remark
692
700
  unitPrice
@@ -761,7 +769,11 @@ class ArrivalNoticeDetail extends localize(i18next)(PageView) {
761
769
  this.setProductGristConfig()
762
770
  this.productData = {
763
771
  records: orderProducts.map(record => {
764
- return { ...record, productSku: record.product.sku }
772
+ return {
773
+ ...record,
774
+ productSku: record.product.sku,
775
+ productBrand: record.product.brand
776
+ }
765
777
  })
766
778
  }
767
779
  this.vasData = {
@@ -450,6 +450,7 @@ class AssignBufferLocation extends localize(i18next)(PageView) {
450
450
  name
451
451
  description
452
452
  sku
453
+ brand
453
454
  }
454
455
  remark
455
456
  unitPrice
@@ -523,7 +524,7 @@ class AssignBufferLocation extends localize(i18next)(PageView) {
523
524
  this.setProductGristConfig()
524
525
  this.productData = {
525
526
  records: orderProducts.map(record => {
526
- return { ...record, productSku: record.product.sku }
527
+ return { ...record, productSku: record.product.sku, productBrand: record.product.brand }
527
528
  })
528
529
  }
529
530
  this.vasData = {
@@ -577,6 +578,12 @@ class AssignBufferLocation extends localize(i18next)(PageView) {
577
578
  header: i18next.t('field.product'),
578
579
  width: 350
579
580
  },
581
+ {
582
+ type: 'string',
583
+ name: 'productBrand',
584
+ header: i18next.t('field.brand'),
585
+ width: 150
586
+ },
580
587
  {
581
588
  type: 'string',
582
589
  name: 'packingType',
@@ -300,6 +300,7 @@ class CheckArrivedNotice extends localize(i18next)(PageView) {
300
300
  fields: [
301
301
  'batchId',
302
302
  'productSku',
303
+ 'productBrand',
303
304
  'product',
304
305
  'packingType',
305
306
  'uomValue',
@@ -333,6 +334,12 @@ class CheckArrivedNotice extends localize(i18next)(PageView) {
333
334
  header: i18next.t('field.product'),
334
335
  width: 350
335
336
  },
337
+ {
338
+ type: 'string',
339
+ name: 'productBrand',
340
+ header: i18next.t('field.brand'),
341
+ width: 150
342
+ },
336
343
  {
337
344
  type: 'string',
338
345
  name: 'packingType',
@@ -552,6 +559,7 @@ class CheckArrivedNotice extends localize(i18next)(PageView) {
552
559
  name
553
560
  description
554
561
  sku
562
+ brand
555
563
  }
556
564
  remark
557
565
  unitPrice
@@ -622,7 +630,7 @@ class CheckArrivedNotice extends localize(i18next)(PageView) {
622
630
 
623
631
  this.productData = {
624
632
  records: orderProducts.map(record => {
625
- return { ...record, productSku: record.product.sku }
633
+ return { ...record, productSku: record.product.sku, productBrand: record.product.brand }
626
634
  })
627
635
  }
628
636
  this.vasData = {
@@ -563,6 +563,13 @@ class CreateArrivalNotice extends localize(i18next)(PageView) {
563
563
  },
564
564
  width: 350
565
565
  },
566
+ {
567
+ type: 'string',
568
+ name: 'productBrand',
569
+ header: i18next.t('field.brand'),
570
+ imex: { header: i18next.t('field.brand'), key: 'productBrand', width: 25, type: 'string' },
571
+ width: 150
572
+ },
566
573
  {
567
574
  type: 'object',
568
575
  name: 'product',
@@ -454,6 +454,7 @@ class ReceiveArrivalNotice extends localize(i18next)(PageView) {
454
454
  name
455
455
  description
456
456
  sku
457
+ brand
457
458
  }
458
459
  remark
459
460
  unitPrice
@@ -527,7 +528,7 @@ class ReceiveArrivalNotice extends localize(i18next)(PageView) {
527
528
  this.setProductGristConfig()
528
529
  this.productData = {
529
530
  records: orderProducts.map(record => {
530
- return { ...record, productSku: record.product.sku }
531
+ return { ...record, productSku: record.product.sku, productBrand: record.product.brand }
531
532
  })
532
533
  }
533
534
  this.vasData = {
@@ -582,6 +583,12 @@ class ReceiveArrivalNotice extends localize(i18next)(PageView) {
582
583
  record: { options: { queryName: 'products' } },
583
584
  width: 350
584
585
  },
586
+ {
587
+ type: 'string',
588
+ name: 'productBrand',
589
+ header: i18next.t('field.brand'),
590
+ width: 150
591
+ },
585
592
  {
586
593
  type: 'string',
587
594
  name: 'packingType',
@@ -845,6 +845,7 @@ class CreateReleaseOrder extends localize(i18next)(PageView) {
845
845
  header: i18next.t('field.product_info'),
846
846
  width: 280
847
847
  },
848
+ { name: 'productBrand', header: i18next.t('field.brand') },
848
849
  { name: 'packingType', header: i18next.t('field.packing_type') },
849
850
  { name: 'packingSize', header: i18next.t('field.packing_size') },
850
851
  { name: 'uom', header: i18next.t('field.uom') },
@@ -869,6 +870,7 @@ class CreateReleaseOrder extends localize(i18next)(PageView) {
869
870
  'batchId',
870
871
  'batchIdRef',
871
872
  'productName',
873
+ 'productBrand',
872
874
  'packingType',
873
875
  'remainQty',
874
876
  'remainUomValue',
@@ -891,6 +893,12 @@ class CreateReleaseOrder extends localize(i18next)(PageView) {
891
893
  header: i18next.t('field.product'),
892
894
  width: 150
893
895
  },
896
+ {
897
+ type: 'string',
898
+ name: 'productBrand',
899
+ header: i18next.t('field.brand'),
900
+ width: 100
901
+ },
894
902
  {
895
903
  type: 'code',
896
904
  name: 'packingType',
@@ -995,6 +1003,7 @@ class CreateReleaseOrder extends localize(i18next)(PageView) {
995
1003
  { name: 'palletId', header: i18next.t('field.lot_id') },
996
1004
  { name: 'productSKU', header: i18next.t('field.sku') },
997
1005
  { name: 'productName', header: i18next.t('field.product_info') },
1006
+ { name: 'productBrand', header: i18next.t('field.brand') },
998
1007
  { name: 'batchId', header: i18next.t('field.batch_id') },
999
1008
  {
1000
1009
  name: 'location',
@@ -1019,7 +1028,15 @@ class CreateReleaseOrder extends localize(i18next)(PageView) {
1019
1028
  }
1020
1029
  ],
1021
1030
  list: {
1022
- fields: ['palletId', 'productName', 'batchId', 'location', 'remainUomValue', 'batchIdRef']
1031
+ fields: [
1032
+ 'palletId',
1033
+ 'productName',
1034
+ 'productBrand',
1035
+ 'batchId',
1036
+ 'location',
1037
+ 'remainUomValue',
1038
+ 'batchIdRef'
1039
+ ]
1023
1040
  }
1024
1041
  }
1025
1042
  },
@@ -1037,6 +1054,12 @@ class CreateReleaseOrder extends localize(i18next)(PageView) {
1037
1054
  header: i18next.t('field.product'),
1038
1055
  width: 150
1039
1056
  },
1057
+ {
1058
+ type: 'string',
1059
+ name: 'productBrand',
1060
+ header: i18next.t('field.brand'),
1061
+ width: 100
1062
+ },
1040
1063
  {
1041
1064
  type: 'object',
1042
1065
  name: 'location',
@@ -400,6 +400,12 @@ class ReceiveReleaseOrderRequest extends connect(store)(localize(i18next)(PageVi
400
400
  header: i18next.t('field.product'),
401
401
  width: 150
402
402
  },
403
+ {
404
+ type: 'string',
405
+ name: 'productBrand',
406
+ header: i18next.t('field.brand'),
407
+ width: 100
408
+ },
403
409
  {
404
410
  type: 'string',
405
411
  name: 'packingType',
@@ -595,6 +601,7 @@ class ReceiveReleaseOrderRequest extends connect(store)(localize(i18next)(PageVi
595
601
  product {
596
602
  id
597
603
  sku
604
+ brand
598
605
  name
599
606
  description
600
607
  }
@@ -652,6 +659,7 @@ class ReceiveReleaseOrderRequest extends connect(store)(localize(i18next)(PageVi
652
659
  return {
653
660
  ...inventoryInfo,
654
661
  productSKU: inventoryInfo?.product?.sku || '',
662
+ productBrand: inventoryInfo?.product?.brand || '',
655
663
  qty: inventoryInfo.qty + inventoryInfo.releaseQty,
656
664
  remainUomValue: `${inventoryInfo.uomValue + inventoryInfo.releaseUomValue} ${inventoryInfo.uom}`,
657
665
  releaseUomValue: inventoryInfo.releaseUomValue + ' ' + inventoryInfo.uom,
@@ -519,71 +519,75 @@ export class ReleaseExtraProductPopup extends localize(i18next)(LitElement) {
519
519
  let columnName = e.detail.column.name
520
520
  let packageUomValue = 0
521
521
 
522
- if (!e.detail.after) {
523
- throw new Error(i18next.t('text.invalid_form_value'))
524
- }
525
-
526
- const result = this._calculateQtyAndUom(
527
- packageUomValue,
528
- columnName,
529
- e.detail.record.uomValue,
530
- e.detail.record.qty,
531
- e.detail.record.__origin__.releaseUomValue,
532
- e.detail.record.__origin__.releaseQty,
533
- e.detail.record.__origin__.addableUomValue,
534
- e.detail.record.__origin__.addableQty,
535
- e.detail.record.__origin__.remainUomValue,
536
- e.detail.record.__origin__.remainQty,
537
- e.detail.after
538
- )
522
+ try {
523
+ if (e.details?.after && e.details?.after !== 0) {
524
+ throw new Error(i18next.t('text.invalid_form_value'))
525
+ }
539
526
 
540
- this.existingInventoryData = {
541
- ...this.existingInventoryGrist.dirtyData,
542
- records: this.existingInventoryGrist.dirtyData.records.map((record, idx) => {
543
- if (result.releaseQty >= 0 && result.roundedUom >= 0) {
544
- if ((columnName == 'releaseUomValue' || columnName == 'releaseQty') && idx === e.detail.row) {
545
- if (columnName == 'releaseUomValue') {
546
- record.releaseQty = result.releaseQty
547
- }
548
- record.releaseUomValue = result.roundedUom
549
- record.addableQty = record.__origin__.releaseQty + record.__origin__.addableQty - result.releaseQty
550
- if (record.addableQty <= 0) {
551
- record.addableQty = 0
552
- }
553
- if (record.addableUomValue == 0) {
554
- record.addableUomValue =
555
- record.addableQty * (record.__origin__.releaseUomValue / record.__origin__.releaseQty)
556
- } else {
557
- if (record.addableQty == 0) {
558
- record.addableUomValue = 0
527
+ const result = this._calculateQtyAndUom(
528
+ packageUomValue,
529
+ columnName,
530
+ e.detail.record.uomValue,
531
+ e.detail.record.qty,
532
+ e.detail.record.__origin__.releaseUomValue,
533
+ e.detail.record.__origin__.releaseQty,
534
+ e.detail.record.__origin__.addableUomValue,
535
+ e.detail.record.__origin__.addableQty,
536
+ e.detail.record.__origin__.remainUomValue,
537
+ e.detail.record.__origin__.remainQty,
538
+ e.detail.after
539
+ )
540
+
541
+ this.existingInventoryData = {
542
+ ...this.existingInventoryGrist.dirtyData,
543
+ records: this.existingInventoryGrist.dirtyData.records.map((record, idx) => {
544
+ if (result.releaseQty >= 0 && result.roundedUom >= 0) {
545
+ if ((columnName == 'releaseUomValue' || columnName == 'releaseQty') && idx === e.detail.row) {
546
+ if (columnName == 'releaseUomValue') {
547
+ record.releaseQty = result.releaseQty
548
+ }
549
+ record.releaseUomValue = result.roundedUom
550
+ record.addableQty = record.__origin__.releaseQty + record.__origin__.addableQty - result.releaseQty
551
+ if (record.addableQty <= 0) {
552
+ record.addableQty = 0
553
+ }
554
+ if (record.addableUomValue == 0) {
555
+ record.addableUomValue =
556
+ record.addableQty * (record.__origin__.releaseUomValue / record.__origin__.releaseQty)
559
557
  } else {
560
- if (e.detail.record.__origin__.releaseQty == 0 || e.detail.record.__origin__.releaseUomValue == 0) {
561
- record.addableUomValue =
562
- record.addableQty *
563
- (e.detail.record.__origin__.addableUomValue / e.detail.record.__origin__.addableQty)
558
+ if (record.addableQty == 0) {
559
+ record.addableUomValue = 0
564
560
  } else {
565
- record.addableUomValue =
566
- record.addableQty *
567
- (e.detail.record.__origin__.releaseUomValue / e.detail.record.__origin__.releaseQty)
561
+ if (e.detail.record.__origin__.releaseQty == 0 || e.detail.record.__origin__.releaseUomValue == 0) {
562
+ record.addableUomValue =
563
+ record.addableQty *
564
+ (e.detail.record.__origin__.addableUomValue / e.detail.record.__origin__.addableQty)
565
+ } else {
566
+ record.addableUomValue =
567
+ record.addableQty *
568
+ (e.detail.record.__origin__.releaseUomValue / e.detail.record.__origin__.releaseQty)
569
+ }
568
570
  }
569
571
  }
570
572
  }
571
573
  }
572
- }
573
574
 
574
- let returnObj = {
575
- ...record
576
- }
575
+ let returnObj = {
576
+ ...record
577
+ }
577
578
 
578
- if (this._pickingStd === PICKING_STANDARD.SELECT_BY_PRODUCT.value) {
579
- returnObj.product = {
580
- id: record.inventory.productId,
581
- name: record.inventory.productName
579
+ if (this._pickingStd === PICKING_STANDARD.SELECT_BY_PRODUCT.value) {
580
+ returnObj.product = {
581
+ id: record.inventory.productId,
582
+ name: record.inventory.productName
583
+ }
582
584
  }
583
- }
584
585
 
585
- return returnObj
586
- })
586
+ return returnObj
587
+ })
588
+ }
589
+ } catch (e) {
590
+ this._showToast(e)
587
591
  }
588
592
  }
589
593
 
@@ -605,18 +609,14 @@ export class ReleaseExtraProductPopup extends localize(i18next)(LitElement) {
605
609
 
606
610
  if (afterValue >= 0) {
607
611
  if (columnName == 'releaseUomValue' || columnName == 'releaseQty') {
608
- if (detailUom && detailQty) {
609
- packageUom = detailUom / detailQty
610
- } else {
611
- if (originQty) {
612
- if (originQty == 0 || originUom == 0) {
613
- packageUom = originAddableUom / originAddableQty
614
- } else {
615
- packageUom = originUom / originQty
616
- }
612
+ if (originQty) {
613
+ if (originQty == 0 || originUom == 0) {
614
+ packageUom = originAddableUom / originAddableQty
617
615
  } else {
618
- packageUom = originRemainUom / originRemainQty
616
+ packageUom = originUom / originQty
619
617
  }
618
+ } else {
619
+ packageUom = originRemainUom / originRemainQty
620
620
  }
621
621
 
622
622
  if (columnName === 'releaseQty') {