@things-factory/operato-wms 4.3.816 → 4.3.818
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/bulk-operation/validate-gan-popup.js +1 -1
- package/client/pages/order/goods-received-note/received-note-detail.js +7 -7
- package/client/pages/order/release-order/packing-label-history-popup.js +32 -17
- package/client/pages/report/inventory-summary-report.js +12 -6
- package/package.json +5 -5
|
@@ -437,7 +437,7 @@ class ValidateGanPopup extends localize(i18next)(LitElement) {
|
|
|
437
437
|
//make sure no batchId and sku pair is duplicated in the same gan
|
|
438
438
|
let batchSkuPairs = this.records
|
|
439
439
|
.filter(item => item.batchId !== null && item.sku !== null) // Filter out items with null batchId or sku
|
|
440
|
-
.map(item => `${item.batchId.toLowerCase()}-${item.sku
|
|
440
|
+
.map(item => `${item.batchId.toLowerCase()}-${item.sku}-${item.refNo.toLowerCase()}`) // Create a combined key of batchId and sku
|
|
441
441
|
|
|
442
442
|
let uniqueBatchSkuPairs = new Set(batchSkuPairs)
|
|
443
443
|
if (uniqueBatchSkuPairs.size !== batchSkuPairs.length) {
|
|
@@ -90,13 +90,6 @@ class ReceivedNoteDetail extends localize(i18next)(PageView) {
|
|
|
90
90
|
case 'el-cold-chain-warehouse':
|
|
91
91
|
this.shadowRoot.querySelector('#container').src = `/view_elccl_grn/${this._grnNo}`
|
|
92
92
|
break
|
|
93
|
-
case 'orientage-warehouse':
|
|
94
|
-
case 'shah-alam-warehouse':
|
|
95
|
-
this.shadowRoot.querySelector('#container').src = `/view_orientage_grn/${this._grnNo}`
|
|
96
|
-
break
|
|
97
|
-
case 'seebuu-warehouse':
|
|
98
|
-
this.shadowRoot.querySelector('#container').src = `/view_seebuu_grn/${this._grnNo}`
|
|
99
|
-
break
|
|
100
93
|
case 'fmn01s-default':
|
|
101
94
|
this.shadowRoot.querySelector('#container').src = `/view_fm_grn/${this._grnNo}/${timezoneOffSet}`
|
|
102
95
|
break
|
|
@@ -130,6 +123,7 @@ class ReceivedNoteDetail extends localize(i18next)(PageView) {
|
|
|
130
123
|
po
|
|
131
124
|
productSKU
|
|
132
125
|
productName
|
|
126
|
+
productDescription
|
|
133
127
|
productType
|
|
134
128
|
productBatch
|
|
135
129
|
expectedQty
|
|
@@ -288,6 +282,12 @@ class ReceivedNoteDetail extends localize(i18next)(PageView) {
|
|
|
288
282
|
width: 25,
|
|
289
283
|
type: 'string'
|
|
290
284
|
},
|
|
285
|
+
{
|
|
286
|
+
header: i18next.t('field.product_description'),
|
|
287
|
+
key: 'productDescription',
|
|
288
|
+
width: 30,
|
|
289
|
+
type: 'string'
|
|
290
|
+
},
|
|
291
291
|
{
|
|
292
292
|
header: i18next.t('field.packing_type'),
|
|
293
293
|
key: 'productType',
|
|
@@ -101,7 +101,7 @@ class PackingLabelHistoryPopup extends localize(i18next)(LitElement) {
|
|
|
101
101
|
_initConfig() {
|
|
102
102
|
this.config = {
|
|
103
103
|
rows: { selectable: { multiple: true }, appendable: false },
|
|
104
|
-
list: { fields: ['releaseGood', 'refNo', 'displayNumber', 'printedAt'] },
|
|
104
|
+
list: { fields: ['releaseGood', 'refNo', 'refNo2', 'refNo3', 'displayNumber', 'printedAt'] },
|
|
105
105
|
pagination: { limit: 50, pages: [20, 50, 100, 200] },
|
|
106
106
|
columns: [
|
|
107
107
|
{ type: 'gutter', gutterName: 'sequence' },
|
|
@@ -128,6 +128,20 @@ class PackingLabelHistoryPopup extends localize(i18next)(LitElement) {
|
|
|
128
128
|
sortable: true,
|
|
129
129
|
width: 150
|
|
130
130
|
},
|
|
131
|
+
{
|
|
132
|
+
type: 'string',
|
|
133
|
+
name: 'refNo2',
|
|
134
|
+
header: i18next.t('field.ref_no_2') || 'Ref No.2',
|
|
135
|
+
sortable: true,
|
|
136
|
+
width: 150
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
type: 'string',
|
|
140
|
+
name: 'refNo3',
|
|
141
|
+
header: i18next.t('field.ref_no_3') || 'Ref No.3',
|
|
142
|
+
sortable: true,
|
|
143
|
+
width: 150
|
|
144
|
+
},
|
|
131
145
|
{
|
|
132
146
|
type: 'number',
|
|
133
147
|
name: 'displayNumber',
|
|
@@ -187,7 +201,7 @@ class PackingLabelHistoryPopup extends localize(i18next)(LitElement) {
|
|
|
187
201
|
|
|
188
202
|
async fetchHandler({ page, limit, sorters = [] }) {
|
|
189
203
|
const filters = this.searchForm.queryFilters
|
|
190
|
-
|
|
204
|
+
|
|
191
205
|
const response = await client.query({
|
|
192
206
|
query: gql`
|
|
193
207
|
query printedLoadingPackagesHistory($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
|
|
@@ -200,6 +214,8 @@ class PackingLabelHistoryPopup extends localize(i18next)(LitElement) {
|
|
|
200
214
|
id
|
|
201
215
|
name
|
|
202
216
|
refNo
|
|
217
|
+
refNo2
|
|
218
|
+
refNo3
|
|
203
219
|
}
|
|
204
220
|
printedAt
|
|
205
221
|
printedBy {
|
|
@@ -225,7 +241,9 @@ class PackingLabelHistoryPopup extends localize(i18next)(LitElement) {
|
|
|
225
241
|
records:
|
|
226
242
|
response.data.printedLoadingPackagesHistory.items.map(item => ({
|
|
227
243
|
...item,
|
|
228
|
-
refNo: item.releaseGood?.refNo || ''
|
|
244
|
+
refNo: item.releaseGood?.refNo || '',
|
|
245
|
+
refNo2: item.releaseGood?.refNo2 || '',
|
|
246
|
+
refNo3: item.releaseGood?.refNo3 || ''
|
|
229
247
|
})) || []
|
|
230
248
|
}
|
|
231
249
|
}
|
|
@@ -249,7 +267,7 @@ class PackingLabelHistoryPopup extends localize(i18next)(LitElement) {
|
|
|
249
267
|
<print-quantity-popup
|
|
250
268
|
@print="${e => {
|
|
251
269
|
const printQuantity = e.detail.printQuantity
|
|
252
|
-
|
|
270
|
+
|
|
253
271
|
// Validate print quantity
|
|
254
272
|
if (!printQuantity || printQuantity <= 0) {
|
|
255
273
|
showToast({
|
|
@@ -258,7 +276,7 @@ class PackingLabelHistoryPopup extends localize(i18next)(LitElement) {
|
|
|
258
276
|
})
|
|
259
277
|
return
|
|
260
278
|
}
|
|
261
|
-
|
|
279
|
+
|
|
262
280
|
// Close popup and execute print
|
|
263
281
|
history.back()
|
|
264
282
|
this._executePrint(selected, printQuantity)
|
|
@@ -280,7 +298,10 @@ class PackingLabelHistoryPopup extends localize(i18next)(LitElement) {
|
|
|
280
298
|
const loadingPackageIds = selected.map(item => item.id).filter(Boolean)
|
|
281
299
|
|
|
282
300
|
if (loadingPackageIds.length === 0) {
|
|
283
|
-
showToast({
|
|
301
|
+
showToast({
|
|
302
|
+
type: 'error',
|
|
303
|
+
message: i18next.t('text.no_valid_packages_selected') || 'No valid packages selected'
|
|
304
|
+
})
|
|
284
305
|
return
|
|
285
306
|
}
|
|
286
307
|
|
|
@@ -302,7 +323,10 @@ class PackingLabelHistoryPopup extends localize(i18next)(LitElement) {
|
|
|
302
323
|
|
|
303
324
|
const renderedHtml = await response.text()
|
|
304
325
|
if (!renderedHtml) {
|
|
305
|
-
showToast({
|
|
326
|
+
showToast({
|
|
327
|
+
type: 'error',
|
|
328
|
+
message: i18next.t('text.failed_to_render_template') || 'Failed to render template'
|
|
329
|
+
})
|
|
306
330
|
return
|
|
307
331
|
}
|
|
308
332
|
|
|
@@ -343,17 +367,9 @@ class PackingLabelHistoryPopup extends localize(i18next)(LitElement) {
|
|
|
343
367
|
return this.shadowRoot?.querySelector('#print-iframe')
|
|
344
368
|
}
|
|
345
369
|
|
|
346
|
-
_closePopup() {
|
|
347
|
-
history.back()
|
|
348
|
-
}
|
|
349
|
-
|
|
350
370
|
render() {
|
|
351
371
|
return html`
|
|
352
|
-
<search-form
|
|
353
|
-
id="search-form"
|
|
354
|
-
.fields=${this._searchFields}
|
|
355
|
-
@submit=${() => this.dataGrist.fetch()}
|
|
356
|
-
></search-form>
|
|
372
|
+
<search-form id="search-form" .fields=${this._searchFields} @submit=${() => this.dataGrist.fetch()}></search-form>
|
|
357
373
|
|
|
358
374
|
<div class="grist-container">
|
|
359
375
|
<div class="grist">
|
|
@@ -366,7 +382,6 @@ class PackingLabelHistoryPopup extends localize(i18next)(LitElement) {
|
|
|
366
382
|
</div>
|
|
367
383
|
|
|
368
384
|
<div class="button-container">
|
|
369
|
-
<mwc-button @click=${this._closePopup}>${i18next.t('button.close')}</mwc-button>
|
|
370
385
|
<mwc-button raised @click=${this._handlePrint}>${i18next.t('button.print')}</mwc-button>
|
|
371
386
|
</div>
|
|
372
387
|
|
|
@@ -223,9 +223,15 @@ class InventorySummaryReport extends connect(store)(localize(i18next)(PageView))
|
|
|
223
223
|
},
|
|
224
224
|
{
|
|
225
225
|
type: 'string',
|
|
226
|
-
name: '
|
|
227
|
-
header: i18next.t('field.
|
|
228
|
-
width:
|
|
226
|
+
name: 'productName',
|
|
227
|
+
header: i18next.t('field.product_name'),
|
|
228
|
+
width: 250
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
type: 'string',
|
|
232
|
+
name: 'productDescription',
|
|
233
|
+
header: i18next.t('field.product_description'),
|
|
234
|
+
width: 200
|
|
229
235
|
},
|
|
230
236
|
{
|
|
231
237
|
type: 'string',
|
|
@@ -289,7 +295,7 @@ class InventorySummaryReport extends connect(store)(localize(i18next)(PageView))
|
|
|
289
295
|
]
|
|
290
296
|
|
|
291
297
|
if (this._byPallet) {
|
|
292
|
-
columns.splice(
|
|
298
|
+
columns.splice(7, 1)
|
|
293
299
|
}
|
|
294
300
|
|
|
295
301
|
return {
|
|
@@ -297,6 +303,7 @@ class InventorySummaryReport extends connect(store)(localize(i18next)(PageView))
|
|
|
297
303
|
fields: [
|
|
298
304
|
'productSku',
|
|
299
305
|
'productName',
|
|
306
|
+
'productDescription',
|
|
300
307
|
'productType',
|
|
301
308
|
'packingType',
|
|
302
309
|
'packingSize',
|
|
@@ -393,9 +400,8 @@ class InventorySummaryReport extends connect(store)(localize(i18next)(PageView))
|
|
|
393
400
|
flattenObject({
|
|
394
401
|
...item,
|
|
395
402
|
productSku: item.product.sku,
|
|
396
|
-
productNameDescription: `${item.product.name} (${item.product.description})`,
|
|
397
403
|
productName: item.product.name,
|
|
398
|
-
productDescription: item.product.description,
|
|
404
|
+
productDescription: item.product.description || '',
|
|
399
405
|
productType: item.product.type
|
|
400
406
|
})
|
|
401
407
|
) || []
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/operato-wms",
|
|
3
|
-
"version": "4.3.
|
|
3
|
+
"version": "4.3.818",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
"@things-factory/print-ui": "^4.3.815",
|
|
92
92
|
"@things-factory/product-base": "^4.3.815",
|
|
93
93
|
"@things-factory/resource-ui": "^4.3.815",
|
|
94
|
-
"@things-factory/sales-ui": "^4.3.
|
|
94
|
+
"@things-factory/sales-ui": "^4.3.818",
|
|
95
95
|
"@things-factory/scene-data-transform": "^4.3.815",
|
|
96
96
|
"@things-factory/scene-excel": "^4.3.815",
|
|
97
97
|
"@things-factory/scene-firebase": "^4.3.815",
|
|
@@ -107,8 +107,8 @@
|
|
|
107
107
|
"@things-factory/system-ui": "^4.3.815",
|
|
108
108
|
"@things-factory/transport-base": "^4.3.815",
|
|
109
109
|
"@things-factory/tutorial-ui": "^4.3.815",
|
|
110
|
-
"@things-factory/warehouse-base": "^4.3.
|
|
111
|
-
"@things-factory/worksheet-base": "^4.3.
|
|
110
|
+
"@things-factory/warehouse-base": "^4.3.818",
|
|
111
|
+
"@things-factory/worksheet-base": "^4.3.818"
|
|
112
112
|
},
|
|
113
113
|
"devDependencies": {
|
|
114
114
|
"@things-factory/builder": "^4.3.815",
|
|
@@ -117,5 +117,5 @@
|
|
|
117
117
|
"cypress-localstorage-commands": "^1.6.1",
|
|
118
118
|
"eslint-plugin-cypress": "^2.12.1"
|
|
119
119
|
},
|
|
120
|
-
"gitHead": "
|
|
120
|
+
"gitHead": "68f211abfcbc53a014e9ad11d536680b2b86c250"
|
|
121
121
|
}
|