@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.
- package/client/pages/components/select-product-popup.js +9 -0
- package/client/pages/inbound/worksheet-putaway-return.js +8 -0
- package/client/pages/inbound/worksheet-putaway.js +8 -0
- package/client/pages/inbound/worksheet-unloading-return.js +8 -0
- package/client/pages/inbound/worksheet-unloading.js +8 -0
- package/client/pages/inventory/inventory-adjustment.js +10 -0
- package/client/pages/inventory/inventory-by-product.js +8 -0
- package/client/pages/inventory/inventory-history-by-pallet.js +9 -0
- package/client/pages/inventory/inventory-history.js +10 -0
- package/client/pages/inventory/onhand-inventory.js +11 -1
- package/client/pages/inventory-check/create-cycle-count.js +11 -0
- package/client/pages/inventory-check/cycle-count-report.js +8 -0
- package/client/pages/inventory-check/worksheet-cycle-count.js +14 -0
- package/client/pages/order/arrival-notice/arrival-notice-detail.js +119 -107
- package/client/pages/order/arrival-notice/assign-buffer-location.js +8 -1
- package/client/pages/order/arrival-notice/check-arrived-notice.js +9 -1
- package/client/pages/order/arrival-notice/create-arrival-notice.js +7 -0
- package/client/pages/order/arrival-notice/receive-arrival-notice.js +8 -1
- package/client/pages/order/release-order/create-release-order.js +24 -1
- package/client/pages/order/release-order/receive-release-order-request.js +8 -0
- package/client/pages/order/release-order/release-extra-product-popup.js +64 -64
- package/client/pages/order/release-order/release-order-detail.js +9 -3
- package/client/pages/order/return-order/check-return-order.js +9 -1
- package/client/pages/order/return-order/create-return-order.js +13 -1
- package/client/pages/order/return-order/receive-return-order-requests.js +9 -1
- package/client/pages/order/return-order/return-order-detail.js +9 -1
- package/client/pages/order/return-order/return-order-inventory-popup.js +7 -0
- package/client/pages/outbound/inventory-assign-popup.js +10 -1
- package/client/pages/outbound/inventory-auto-assign-popup.js +9 -0
- package/client/pages/outbound/worksheet-loading.js +9 -1
- package/client/pages/outbound/worksheet-packing.js +8 -0
- package/client/pages/outbound/worksheet-picking.js +19 -0
- package/client/pages/outbound/worksheet-return.js +9 -1
- package/client/pages/outbound/worksheet-sorting.js +9 -1
- 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
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
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
|
-
<
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
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
|
-
</
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
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 {
|
|
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: [
|
|
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
|
-
|
|
523
|
-
|
|
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
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
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 (
|
|
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.
|
|
566
|
-
record.
|
|
567
|
-
|
|
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
|
-
|
|
575
|
-
|
|
576
|
-
|
|
575
|
+
let returnObj = {
|
|
576
|
+
...record
|
|
577
|
+
}
|
|
577
578
|
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
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
|
-
|
|
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 (
|
|
609
|
-
|
|
610
|
-
|
|
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 =
|
|
616
|
+
packageUom = originUom / originQty
|
|
619
617
|
}
|
|
618
|
+
} else {
|
|
619
|
+
packageUom = originRemainUom / originRemainQty
|
|
620
620
|
}
|
|
621
621
|
|
|
622
622
|
if (columnName === 'releaseQty') {
|