@things-factory/operato-wms 3.8.8 → 3.8.12
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/bulk-operation.js +58 -43
- package/client/pages/bulk-operation/validate-ro-popup.js +52 -22
- package/client/pages/vas/print-product-label.js +15 -9
- package/package.json +6 -6
- package/translations/en.json +5 -1
- package/translations/ko.json +6 -2
- package/translations/ms.json +6 -2
- package/translations/zh.json +6 -2
|
@@ -134,8 +134,6 @@ class BulkOperation extends localize(i18next)(PageView) {
|
|
|
134
134
|
|
|
135
135
|
static get properties() {
|
|
136
136
|
return {
|
|
137
|
-
_files: Array,
|
|
138
|
-
_releaseOrders: Array,
|
|
139
137
|
_bizplaceId: String,
|
|
140
138
|
_bizplaceName: String
|
|
141
139
|
}
|
|
@@ -159,33 +157,13 @@ class BulkOperation extends localize(i18next)(PageView) {
|
|
|
159
157
|
return this.shadowRoot.querySelector('#upload-document')
|
|
160
158
|
}
|
|
161
159
|
|
|
162
|
-
get _dummyData() {
|
|
163
|
-
return this._releaseOrders.map(x => {
|
|
164
|
-
x.orderInventories = x.orderInventories.map(y => {
|
|
165
|
-
return {
|
|
166
|
-
...y,
|
|
167
|
-
availableQty: Math.floor(Math.random() * 50) + 30
|
|
168
|
-
}
|
|
169
|
-
})
|
|
170
|
-
return {
|
|
171
|
-
...x,
|
|
172
|
-
releaseDate: new Date().toISOString().split('T')
|
|
173
|
-
}
|
|
174
|
-
})
|
|
175
|
-
}
|
|
176
|
-
|
|
177
160
|
render() {
|
|
178
|
-
let subtitle = 'Release Order'
|
|
179
|
-
let attachment = {
|
|
180
|
-
path: ''
|
|
181
|
-
}
|
|
182
|
-
|
|
183
161
|
return html`
|
|
184
162
|
<ul export-form>
|
|
185
163
|
<li>
|
|
186
164
|
<div subtitle>
|
|
187
|
-
|
|
188
|
-
<a
|
|
165
|
+
Release Order
|
|
166
|
+
<a @click=${async () => await this._getReleaseOrderTemplate()}" download>
|
|
189
167
|
<mwc-icon>file_download</mwc-icon>
|
|
190
168
|
</a>
|
|
191
169
|
</div>
|
|
@@ -223,17 +201,39 @@ class BulkOperation extends localize(i18next)(PageView) {
|
|
|
223
201
|
`
|
|
224
202
|
}
|
|
225
203
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
204
|
+
async _getReleaseOrderTemplate() {
|
|
205
|
+
const data = [
|
|
206
|
+
{
|
|
207
|
+
refNo: '',
|
|
208
|
+
refNo2: '',
|
|
209
|
+
refNo3: '',
|
|
210
|
+
releaseDate: '',
|
|
211
|
+
attentionTo: '',
|
|
212
|
+
deliveryAddress1: '',
|
|
213
|
+
deliveryAddress2: '',
|
|
214
|
+
deliveryAddress3: '',
|
|
215
|
+
deliveryAddress4: '',
|
|
216
|
+
postalCode: '',
|
|
217
|
+
city: '',
|
|
218
|
+
state: '',
|
|
219
|
+
country: '',
|
|
220
|
+
phone1: '',
|
|
221
|
+
sku: '',
|
|
222
|
+
packingType: '',
|
|
223
|
+
packingSize: 0,
|
|
224
|
+
uom: '',
|
|
225
|
+
releaseQty: 0
|
|
231
226
|
}
|
|
232
|
-
|
|
233
|
-
|
|
227
|
+
]
|
|
228
|
+
/* make the worksheet */
|
|
229
|
+
const ws = XLSX.utils.json_to_sheet(data)
|
|
230
|
+
|
|
231
|
+
/* add to workbook */
|
|
232
|
+
const wb = XLSX.utils.book_new()
|
|
233
|
+
XLSX.utils.book_append_sheet(wb, ws)
|
|
234
234
|
|
|
235
|
-
|
|
236
|
-
|
|
235
|
+
/* generate an XLSX file */
|
|
236
|
+
XLSX.writeFile(wb, 'release_orders.xlsx')
|
|
237
237
|
}
|
|
238
238
|
|
|
239
239
|
async _extractRawDataFromExcel() {
|
|
@@ -261,26 +261,41 @@ class BulkOperation extends localize(i18next)(PageView) {
|
|
|
261
261
|
let rawData = XLSX.utils.sheet_to_json(worksheet)
|
|
262
262
|
rawData = rawData.map(raw => {
|
|
263
263
|
if (!raw.releaseDate || raw.releaseDate.constructor !== String) raw.releaseDate = ''
|
|
264
|
-
|
|
265
|
-
return raw
|
|
264
|
+
//return entries without empty strings
|
|
265
|
+
return Object.fromEntries(Object.entries(raw).filter(([_, val]) => !/^\s*$/.test(val)))
|
|
266
266
|
})
|
|
267
|
-
/* return rawData to validate with inventory stocks */
|
|
268
267
|
this._validateReleaseOrder(rawData)
|
|
269
268
|
}
|
|
270
269
|
} else if (_docs.files.length > 1)
|
|
271
|
-
this._showToast({ level: 'error', message: i18next.t('text.
|
|
270
|
+
this._showToast({ level: 'error', message: i18next.t('text.you_can_only_upload_one_file_max') })
|
|
272
271
|
else this._showToast({ level: 'error', message: i18next.t('text.please_attach_the_file') })
|
|
273
272
|
} else this._showToast({ level: 'error', message: i18next.t('text.please_attach_the_file') })
|
|
274
273
|
}
|
|
275
274
|
|
|
276
275
|
async _validateReleaseOrder(records) {
|
|
277
276
|
/* validate excel that user uploaded */
|
|
278
|
-
openPopup(
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
277
|
+
openPopup(
|
|
278
|
+
html`
|
|
279
|
+
<validate-ro-popup
|
|
280
|
+
.records=${records.map(record => {
|
|
281
|
+
return {
|
|
282
|
+
...record,
|
|
283
|
+
postalCode: String(record.postalCode || ''),
|
|
284
|
+
phone1: String(record.phone1 || ''),
|
|
285
|
+
releaseDate: String(record.releaseDate || ''),
|
|
286
|
+
releaseQty: Number(record.releaseQty || 0)
|
|
287
|
+
}
|
|
288
|
+
})}
|
|
289
|
+
.bizplaceId=${this._bizplaceId}
|
|
290
|
+
></validate-ro-popup>
|
|
291
|
+
`,
|
|
292
|
+
{
|
|
293
|
+
backdrop: true,
|
|
294
|
+
escapable: false,
|
|
295
|
+
size: 'large',
|
|
296
|
+
title: i18next.t('title.import')
|
|
297
|
+
}
|
|
298
|
+
)
|
|
284
299
|
}
|
|
285
300
|
|
|
286
301
|
_openBizplacesSelector() {
|
|
@@ -7,7 +7,7 @@ import { css, html, LitElement } from 'lit-element'
|
|
|
7
7
|
import { i18next, localize } from '@things-factory/i18n-base'
|
|
8
8
|
import { client, CustomAlert } from '@things-factory/shell'
|
|
9
9
|
import { ScrollbarStyles } from '@things-factory/styles'
|
|
10
|
-
import { isMobileDevice
|
|
10
|
+
import { isMobileDevice } from '@things-factory/utils'
|
|
11
11
|
|
|
12
12
|
class ValidateRoPopup extends localize(i18next)(LitElement) {
|
|
13
13
|
static get properties() {
|
|
@@ -79,11 +79,11 @@ class ValidateRoPopup extends localize(i18next)(LitElement) {
|
|
|
79
79
|
return {
|
|
80
80
|
// if the condition not met, the grist row will be red
|
|
81
81
|
emphasized:
|
|
82
|
-
record.assignedQty
|
|
82
|
+
record.assignedQty < record.releaseQty ||
|
|
83
83
|
!record.refNo ||
|
|
84
84
|
record?.refNo == '' ||
|
|
85
|
-
|
|
86
|
-
record?.releaseDate
|
|
85
|
+
record?.releaseDate == '' ||
|
|
86
|
+
record?.releaseDate < this._getStdDateStr(new Date())
|
|
87
87
|
}
|
|
88
88
|
}
|
|
89
89
|
},
|
|
@@ -192,8 +192,8 @@ class ValidateRoPopup extends localize(i18next)(LitElement) {
|
|
|
192
192
|
},
|
|
193
193
|
{
|
|
194
194
|
type: 'string',
|
|
195
|
-
name: '
|
|
196
|
-
header: i18next.t('field.
|
|
195
|
+
name: 'productInfo',
|
|
196
|
+
header: i18next.t('field.product_info'),
|
|
197
197
|
width: 400
|
|
198
198
|
},
|
|
199
199
|
{
|
|
@@ -226,6 +226,18 @@ class ValidateRoPopup extends localize(i18next)(LitElement) {
|
|
|
226
226
|
header: i18next.t('field.uom'),
|
|
227
227
|
width: 100
|
|
228
228
|
},
|
|
229
|
+
{
|
|
230
|
+
type: 'string',
|
|
231
|
+
name: 'packingType',
|
|
232
|
+
header: i18next.t('field.packing_type'),
|
|
233
|
+
width: 100
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
type: 'string',
|
|
237
|
+
name: 'packingSize',
|
|
238
|
+
header: i18next.t('field.packing_size'),
|
|
239
|
+
width: 100
|
|
240
|
+
},
|
|
229
241
|
{
|
|
230
242
|
type: 'string',
|
|
231
243
|
name: 'remark',
|
|
@@ -295,6 +307,7 @@ class ValidateRoPopup extends localize(i18next)(LitElement) {
|
|
|
295
307
|
country
|
|
296
308
|
sku
|
|
297
309
|
productId
|
|
310
|
+
productInfo
|
|
298
311
|
batchId
|
|
299
312
|
packingType
|
|
300
313
|
packingSize
|
|
@@ -338,16 +351,21 @@ class ValidateRoPopup extends localize(i18next)(LitElement) {
|
|
|
338
351
|
|
|
339
352
|
if (!response.errors) {
|
|
340
353
|
this.records = response.data.bulkReleaseGoodsAvailableItems.map(item => {
|
|
354
|
+
let releaseDate = this._getStdDateStr(new Date(item.releaseDate || ''))
|
|
355
|
+
|
|
341
356
|
return {
|
|
342
357
|
...item,
|
|
358
|
+
releaseDate,
|
|
343
359
|
remark: !item.productId
|
|
344
360
|
? i18next.t('text.product_not_found')
|
|
345
361
|
: item.releaseQty <= 0
|
|
346
362
|
? i18next.t('text.invalid_release_qty')
|
|
347
|
-
: item.assignedQty
|
|
363
|
+
: item.assignedQty < item.releaseQty
|
|
348
364
|
? i18next.t('text.insufficient_stock')
|
|
349
|
-
:
|
|
365
|
+
: releaseDate == ''
|
|
350
366
|
? i18next.t('text.release_date_is_empty')
|
|
367
|
+
: releaseDate < this._getStdDateStr(new Date())
|
|
368
|
+
? i18next.t('text.backdate_is_not_allowed')
|
|
351
369
|
: !item.refNo
|
|
352
370
|
? i18next.t('text.ref_no_is_empty')
|
|
353
371
|
: ''
|
|
@@ -374,11 +392,12 @@ class ValidateRoPopup extends localize(i18next)(LitElement) {
|
|
|
374
392
|
`,
|
|
375
393
|
variables: {
|
|
376
394
|
rawReleaseGoods: this.records.map(x => {
|
|
395
|
+
// list out all properties again to avoid additional props added by user in excel
|
|
377
396
|
return {
|
|
378
397
|
refNo: x.refNo,
|
|
379
398
|
refNo2: x.refNo2,
|
|
380
399
|
refNo3: x.refNo3,
|
|
381
|
-
releaseDate:
|
|
400
|
+
releaseDate: x.releaseDate,
|
|
382
401
|
deliveryAddress1: x.deliveryAddress1,
|
|
383
402
|
deliveryAddress2: x.deliveryAddress2,
|
|
384
403
|
deliveryAddress3: x.deliveryAddress3,
|
|
@@ -401,21 +420,22 @@ class ValidateRoPopup extends localize(i18next)(LitElement) {
|
|
|
401
420
|
}
|
|
402
421
|
})
|
|
403
422
|
|
|
404
|
-
this.dataGrist.hideSpinner()
|
|
405
|
-
await sleep(1)
|
|
406
|
-
|
|
407
423
|
if (!response.errors) {
|
|
408
424
|
this._showToast({ message: i18next.t('text.release_order_created') })
|
|
409
425
|
history.back()
|
|
426
|
+
} else {
|
|
427
|
+
let insufficientStockError = response.errors.find(err => err.extensions.exception.errorCode == 'ins1')
|
|
428
|
+
if (insufficientStockError) {
|
|
429
|
+
// if system suddenly found that any item is insufficient,
|
|
430
|
+
// display the available items again.
|
|
431
|
+
await this._getAvailableItems(this.records)
|
|
432
|
+
this._showToast({ message: i18next.t('text.please_recheck_your_request_data') })
|
|
433
|
+
}
|
|
410
434
|
}
|
|
411
435
|
} catch (e) {
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
// display the available items again.
|
|
416
|
-
await this._getAvailableItems(this.records)
|
|
417
|
-
this._showToast({ message: i18next.t('text.please_recheck_your_request_data') })
|
|
418
|
-
} else this._showToast(e)
|
|
436
|
+
this._showToast(e)
|
|
437
|
+
} finally {
|
|
438
|
+
this.dataGrist.hideSpinner()
|
|
419
439
|
}
|
|
420
440
|
}
|
|
421
441
|
|
|
@@ -423,11 +443,21 @@ class ValidateRoPopup extends localize(i18next)(LitElement) {
|
|
|
423
443
|
if (this.records.some(record => !record.refNo || record?.refNo == ''))
|
|
424
444
|
throw new Error(i18next.t('text.ref_no_is_required'))
|
|
425
445
|
|
|
426
|
-
if (this.records.some(record => !record.releaseDate || record?.releaseDate == ''))
|
|
427
|
-
throw new Error(i18next.t('text.release_date_is_required'))
|
|
428
|
-
|
|
429
446
|
if (this.records.some(record => !record.releaseQty || record.releaseQty > record.assignedQty))
|
|
430
447
|
throw new Error(i18next.t('text.invalid_release_qty'))
|
|
448
|
+
|
|
449
|
+
if (this.records.some(record => record?.releaseDate == ''))
|
|
450
|
+
throw new Error(i18next.t('text.release_date_is_required'))
|
|
451
|
+
else if (this.records.some(record => record.releaseDate < this._getStdDateStr(new Date())))
|
|
452
|
+
throw new Error(i18next.t('text.backdate_is_not_allowed'))
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
_getStdDateStr(date) {
|
|
456
|
+
if (isNaN(date.getFullYear())) return ''
|
|
457
|
+
else {
|
|
458
|
+
date.setHours(date.getHours() + 8)
|
|
459
|
+
return date.toISOString().split('T')[0]
|
|
460
|
+
}
|
|
431
461
|
}
|
|
432
462
|
|
|
433
463
|
_showToast({ type, message }) {
|
|
@@ -401,7 +401,7 @@ class PrintProductLabel extends connect(store)(localize(i18next)(PageView)) {
|
|
|
401
401
|
return {
|
|
402
402
|
...record,
|
|
403
403
|
gtin: productDetail.gtin,
|
|
404
|
-
productName:
|
|
404
|
+
productName: product.name
|
|
405
405
|
}
|
|
406
406
|
})
|
|
407
407
|
} else {
|
|
@@ -433,7 +433,8 @@ class PrintProductLabel extends connect(store)(localize(i18next)(PageView)) {
|
|
|
433
433
|
auxValue1: product.auxValue1 || '',
|
|
434
434
|
auxUnit2: product.auxUnit2 || '',
|
|
435
435
|
auxValue2: product.auxValue2 || '',
|
|
436
|
-
bizplaceId: arrivalNotice.bizplace.id
|
|
436
|
+
bizplaceId: arrivalNotice.bizplace.id,
|
|
437
|
+
bizplaceName: arrivalNotice.bizplace.name
|
|
437
438
|
}
|
|
438
439
|
|
|
439
440
|
if (product.productDetails && product.productDetails.length) {
|
|
@@ -441,7 +442,7 @@ class PrintProductLabel extends connect(store)(localize(i18next)(PageView)) {
|
|
|
441
442
|
return {
|
|
442
443
|
...record,
|
|
443
444
|
gtin: productDetail.gtin,
|
|
444
|
-
productName:
|
|
445
|
+
productName: product.name
|
|
445
446
|
}
|
|
446
447
|
})
|
|
447
448
|
} else {
|
|
@@ -551,6 +552,7 @@ class PrintProductLabel extends connect(store)(localize(i18next)(PageView)) {
|
|
|
551
552
|
auxUnit2: product.auxUnit2 || '',
|
|
552
553
|
auxValue2: product.auxValue2 || '',
|
|
553
554
|
bizplaceId: releaseGood.bizplace.id,
|
|
555
|
+
bizplaceName: releaseGood.bizplace.name,
|
|
554
556
|
printQty: oi.releaseQty || 0
|
|
555
557
|
}
|
|
556
558
|
|
|
@@ -559,7 +561,7 @@ class PrintProductLabel extends connect(store)(localize(i18next)(PageView)) {
|
|
|
559
561
|
return {
|
|
560
562
|
...record,
|
|
561
563
|
gtin: productDetail.gtin,
|
|
562
|
-
productName:
|
|
564
|
+
productName: product.name
|
|
563
565
|
}
|
|
564
566
|
})
|
|
565
567
|
} else {
|
|
@@ -590,7 +592,8 @@ class PrintProductLabel extends connect(store)(localize(i18next)(PageView)) {
|
|
|
590
592
|
auxValue1: product.auxValue1 || '',
|
|
591
593
|
auxUnit2: product.auxUnit2 || '',
|
|
592
594
|
auxValue2: product.auxValue2 || '',
|
|
593
|
-
bizplaceId: releaseGood.bizplace.id
|
|
595
|
+
bizplaceId: releaseGood.bizplace.id,
|
|
596
|
+
bizplaceName: releaseGood.bizplace.name
|
|
594
597
|
}
|
|
595
598
|
|
|
596
599
|
if (product.productDetails && product.productDetails.length) {
|
|
@@ -598,7 +601,7 @@ class PrintProductLabel extends connect(store)(localize(i18next)(PageView)) {
|
|
|
598
601
|
return {
|
|
599
602
|
...record,
|
|
600
603
|
gtin: productDetail.gtin,
|
|
601
|
-
productName:
|
|
604
|
+
productName: product.name
|
|
602
605
|
}
|
|
603
606
|
})
|
|
604
607
|
} else {
|
|
@@ -626,7 +629,7 @@ class PrintProductLabel extends connect(store)(localize(i18next)(PageView)) {
|
|
|
626
629
|
async _fetchInventories(fetcherDetail, filters) {
|
|
627
630
|
const response = await client.query({
|
|
628
631
|
query: gql`
|
|
629
|
-
query inventories($filters: [Filter], $pagination: Pagination, $sortings: [Sorting]) {
|
|
632
|
+
query inventories($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
|
|
630
633
|
inventories(filters: $filters, pagination: $pagination, sortings: $sortings) {
|
|
631
634
|
items {
|
|
632
635
|
palletId
|
|
@@ -650,6 +653,7 @@ class PrintProductLabel extends connect(store)(localize(i18next)(PageView)) {
|
|
|
650
653
|
}
|
|
651
654
|
bizplace {
|
|
652
655
|
id
|
|
656
|
+
name
|
|
653
657
|
}
|
|
654
658
|
expirationDate
|
|
655
659
|
}
|
|
@@ -685,7 +689,8 @@ class PrintProductLabel extends connect(store)(localize(i18next)(PageView)) {
|
|
|
685
689
|
auxUnit2: product.auxUnit2 || '',
|
|
686
690
|
auxValue2: product.auxValue2 || '',
|
|
687
691
|
productInfo: product.description ? `${product.name} (${product.description})` : `${product.name}`,
|
|
688
|
-
bizplaceId: inventory.bizplace.id
|
|
692
|
+
bizplaceId: inventory.bizplace.id,
|
|
693
|
+
bizplaceName: inventory.bizplace.name
|
|
689
694
|
}
|
|
690
695
|
|
|
691
696
|
if (product.productDetails && product.productDetails.length) {
|
|
@@ -693,7 +698,7 @@ class PrintProductLabel extends connect(store)(localize(i18next)(PageView)) {
|
|
|
693
698
|
return {
|
|
694
699
|
...record,
|
|
695
700
|
gtin: productDetail.gtin,
|
|
696
|
-
productName:
|
|
701
|
+
productName: product.name
|
|
697
702
|
}
|
|
698
703
|
})
|
|
699
704
|
} else {
|
|
@@ -757,6 +762,7 @@ class PrintProductLabel extends connect(store)(localize(i18next)(PageView)) {
|
|
|
757
762
|
searchParams.append('aux_value_2', record.auxValue2)
|
|
758
763
|
searchParams.append('expiration_date', record.expirationDate)
|
|
759
764
|
searchParams.append('location', record.location)
|
|
765
|
+
searchParams.append('company_name', record.bizplaceName)
|
|
760
766
|
|
|
761
767
|
let printCounter = 0
|
|
762
768
|
try {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/operato-wms",
|
|
3
|
-
"version": "3.8.
|
|
3
|
+
"version": "3.8.12",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -69,9 +69,9 @@
|
|
|
69
69
|
"@things-factory/print-proxy-service": "^3.8.0",
|
|
70
70
|
"@things-factory/print-service": "^3.8.0",
|
|
71
71
|
"@things-factory/print-ui": "^3.8.0",
|
|
72
|
-
"@things-factory/product-base": "^3.8.
|
|
72
|
+
"@things-factory/product-base": "^3.8.9",
|
|
73
73
|
"@things-factory/resource-ui": "^3.8.0",
|
|
74
|
-
"@things-factory/sales-ui": "^3.8.
|
|
74
|
+
"@things-factory/sales-ui": "^3.8.12",
|
|
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",
|
|
@@ -102,11 +102,11 @@
|
|
|
102
102
|
"@things-factory/system-ui": "^3.8.0",
|
|
103
103
|
"@things-factory/transport-base": "^3.8.0",
|
|
104
104
|
"@things-factory/tutorial-ui": "^3.8.0",
|
|
105
|
-
"@things-factory/warehouse-base": "^3.8.
|
|
106
|
-
"@things-factory/worksheet-base": "^3.8.
|
|
105
|
+
"@things-factory/warehouse-base": "^3.8.12",
|
|
106
|
+
"@things-factory/worksheet-base": "^3.8.12"
|
|
107
107
|
},
|
|
108
108
|
"devDependencies": {
|
|
109
109
|
"@things-factory/builder": "^3.7.5"
|
|
110
110
|
},
|
|
111
|
-
"gitHead": "
|
|
111
|
+
"gitHead": "8c183f820cce8f335d326ddbc8c7922fb6cf4bde"
|
|
112
112
|
}
|
package/translations/en.json
CHANGED
|
@@ -1150,6 +1150,7 @@
|
|
|
1150
1150
|
"text.picking_worksheet_will_be_activated": "picking worksheet will be activated",
|
|
1151
1151
|
"text.picking_worksheet_will_be_generated": "picking worksheet will be generated",
|
|
1152
1152
|
"text.pickup_info_is_not_completed": "pickup info is not completed",
|
|
1153
|
+
"text.please_attach_the_file": "please attach the file",
|
|
1153
1154
|
"text.please_check_your_setting": "please check your setting",
|
|
1154
1155
|
"text.please_check_your_vas_target": "please check your vas target",
|
|
1155
1156
|
"text.please_key_in_new_serial_number": "please key in new serial number",
|
|
@@ -1159,6 +1160,7 @@
|
|
|
1159
1160
|
"text.please_select_a_truck": "select a truck",
|
|
1160
1161
|
"text.please_select_label_indicator": "please select label indicator",
|
|
1161
1162
|
"text.please_select_release_order": "please select release order",
|
|
1163
|
+
"text.please_select_the_company": "please select the company",
|
|
1162
1164
|
"text.please_select_the_contact_type": "please select the contact type",
|
|
1163
1165
|
"text.please_select_the_location_again": "please select the location again",
|
|
1164
1166
|
"text.please_select_the_location": "please select the location",
|
|
@@ -1192,6 +1194,7 @@
|
|
|
1192
1194
|
"text.related_arrival_notice_will_be_deleted": "related arrival notice will be deleted",
|
|
1193
1195
|
"text.related_release_order_will_be_rejected": "related release order will be rejected",
|
|
1194
1196
|
"text.release_date_is_empty": "release date is empty",
|
|
1197
|
+
"text.backdate_is_not_allowed": "backdate is not allowed",
|
|
1195
1198
|
"text.release_date_is_required": "release date is required",
|
|
1196
1199
|
"text.release_order_confirmed": "release order confirmed",
|
|
1197
1200
|
"text.release_order_created": "release order created",
|
|
@@ -1204,8 +1207,8 @@
|
|
|
1204
1207
|
"text.release_order_rejected": "release order rejected",
|
|
1205
1208
|
"text.release_order_will_be_deleted": "release order will be deleted",
|
|
1206
1209
|
"text.release_qty_cannot_exceed_stored_qty": "release qty cannot exceed stored qty",
|
|
1207
|
-
"text.release_qty_is_empty": "release quantity is empty",
|
|
1208
1210
|
"text.release_qty_invalid": "release quantity is invalid",
|
|
1211
|
+
"text.release_qty_is_empty": "release quantity is empty",
|
|
1209
1212
|
"text.release_qty_is_more_than_expected": "release qty is more than expected",
|
|
1210
1213
|
"text.remark_is_empty": "remark is empty",
|
|
1211
1214
|
"text.remark_updated": "remark updated",
|
|
@@ -1317,6 +1320,7 @@
|
|
|
1317
1320
|
"text.x_should_be_positive": "{state.x} should be positive value",
|
|
1318
1321
|
"text.yes": "yes",
|
|
1319
1322
|
"text.you_can_only_select_one_transport_type": "you can only select one transport type",
|
|
1323
|
+
"text.you_can_only_upload_one_file_max": "you can only upload one file max",
|
|
1320
1324
|
"text.you_wont_be_able_to_revert_this": "you won't be able to revert this",
|
|
1321
1325
|
"text.you.are.now.in": "you are now in {state.text}",
|
|
1322
1326
|
"text.your_work_has_completed": "your work has completed",
|
package/translations/ko.json
CHANGED
|
@@ -1233,6 +1233,7 @@
|
|
|
1233
1233
|
"text.picking_worksheet_will_be_activated": "피킹 작업지시서가 활성화 됩니다",
|
|
1234
1234
|
"text.picking_worksheet_will_be_generated": "피킹 작업지시서가 생성 됩니다",
|
|
1235
1235
|
"text.pickup_info_is_not_completed": "픽업 정보가 완료되지 않았습니다",
|
|
1236
|
+
"text.please_attach_the_file": "[ko]please attach the file",
|
|
1236
1237
|
"text.please_check_your_setting": "설정을 확인해 주세요",
|
|
1237
1238
|
"text.please_check_your_vas_target": "[ko] please check your vas target",
|
|
1238
1239
|
"text.please_key_in_new_serial_number": "[ko]please key in new serial number",
|
|
@@ -1247,6 +1248,7 @@
|
|
|
1247
1248
|
"text.please_select_an_arrival_notice": "select arrival notice",
|
|
1248
1249
|
"text.please_select_label_indicator": "라벨 포시기 선택",
|
|
1249
1250
|
"text.please_select_release_order": "[ko] please select release order",
|
|
1251
|
+
"text.please_select_the_company": "[ko]please select the company",
|
|
1250
1252
|
"text.please_select_the_contact_type": "연락처 유형 선택",
|
|
1251
1253
|
"text.please_select_the_label_format": "please select the label format",
|
|
1252
1254
|
"text.please_select_the_location_again": "로케이션을 다시 선택해 주세요",
|
|
@@ -1288,6 +1290,7 @@
|
|
|
1288
1290
|
"text.related_arrival_notice_will_be_deleted": "관련된 입고주문이 삭제 됩니다",
|
|
1289
1291
|
"text.related_release_order_will_be_rejected": "관련된 출고주문이 삭제 됩니다",
|
|
1290
1292
|
"text.release_date_is_empty": "[ko]release date is empty",
|
|
1293
|
+
"text.backdate_is_not_allowed": "[ko]backdate is not allowed",
|
|
1291
1294
|
"text.release_date_is_required": "[ko]release date is required",
|
|
1292
1295
|
"text.release_order_confirmed": "출고주문 확인",
|
|
1293
1296
|
"text.release_order_created": "출고주문 생성",
|
|
@@ -1301,6 +1304,7 @@
|
|
|
1301
1304
|
"text.release_order_submit_for_cancellation": "release order submit for cancellation",
|
|
1302
1305
|
"text.release_order_will_be_deleted": "출고주문이 삭제 됩니다",
|
|
1303
1306
|
"text.release_qty_cannot_exceed_stored_qty": "출고수량은 재고수량을 초과 할 수 없습니다",
|
|
1307
|
+
"text.release_qty_invalid": "[ko] release quantity is invalid",
|
|
1304
1308
|
"text.release_qty_is_empty": "출고수량이 없습니다",
|
|
1305
1309
|
"text.release_qty_is_more_than_expected": "출고수량이 예상보다 많습니다",
|
|
1306
1310
|
"text.remark_is_empty": "비고가 없습니다",
|
|
@@ -1432,6 +1436,7 @@
|
|
|
1432
1436
|
"text.x_should_be_positive": "{state.x}은(는) 반드시 양의 값이여야 합니다",
|
|
1433
1437
|
"text.yes": "예",
|
|
1434
1438
|
"text.you_can_only_select_one_transport_type": "운송유형은 하나만 선택 할 수 있습니다",
|
|
1439
|
+
"text.you_can_only_upload_one_file_max": "[ko]you can only upload one file max",
|
|
1435
1440
|
"text.you_wont_be_able_to_revert_this": "되돌릴 수 없습니다",
|
|
1436
1441
|
"text.you.are.now.in": "당신은 {state} 입니다",
|
|
1437
1442
|
"text.your_work_has_completed": "작업이 완료 되었습니다",
|
|
@@ -1603,6 +1608,7 @@
|
|
|
1603
1608
|
"title.loaded": "상차 완료",
|
|
1604
1609
|
"title.loading": "상차 중",
|
|
1605
1610
|
"title.location_label_format": "로케이션 라벨 형식",
|
|
1611
|
+
"title.location_scanned_is_not_quarantine_zone": "[ko] Location scanned is not a quarantine zone!",
|
|
1606
1612
|
"title.location_sorting_rule": "로케이션 정렬 규칙",
|
|
1607
1613
|
"title.location": "로케이션",
|
|
1608
1614
|
"title.lot_information": "lot 정보",
|
|
@@ -1819,7 +1825,5 @@
|
|
|
1819
1825
|
"title.worksheet_vas": "부가서비스 작업지시서",
|
|
1820
1826
|
"title.worksheet": "작업지시서",
|
|
1821
1827
|
"vas_order_created": "부가서비스주문 생성됨",
|
|
1822
|
-
"title.location_scanned_is_not_quarantine_zone": "[ko] Location scanned is not a quarantine zone!",
|
|
1823
|
-
"text.release_qty_invalid": "[ko] release quantity is invalid",
|
|
1824
1828
|
"text.generate_worksheet": "[ko] generate worksheet"
|
|
1825
1829
|
}
|
package/translations/ms.json
CHANGED
|
@@ -1180,6 +1180,7 @@
|
|
|
1180
1180
|
"text.picking_worksheet_will_be_activated": "lembaran kerja pengambilan akan diaktifkan",
|
|
1181
1181
|
"text.picking_worksheet_will_be_generated": "lembaran kerja pengambilan akan dijana",
|
|
1182
1182
|
"text.pickup_info_is_not_completed": "maklumat pengambilan tidak lengkap",
|
|
1183
|
+
"text.please_attach_the_file": "[ms]please attach the file",
|
|
1183
1184
|
"text.please_check_your_setting": "tolong semak tetapan anda",
|
|
1184
1185
|
"text.please_check_your_vas_target": "sila semak sasaran vas anda",
|
|
1185
1186
|
"text.please_key_in_new_serial_number": "[ms]please key in new serial number",
|
|
@@ -1189,6 +1190,7 @@
|
|
|
1189
1190
|
"text.please_select_a_truck": "sila pilih trak",
|
|
1190
1191
|
"text.please_select_label_indicator": "sila pilih petunjuk label",
|
|
1191
1192
|
"text.please_select_release_order": "[ms] please select release order",
|
|
1193
|
+
"text.please_select_the_company": "[ms]please select the company",
|
|
1192
1194
|
"text.please_select_the_contact_type": "sila pilih jenis kenalan",
|
|
1193
1195
|
"text.please_select_the_location_again": "sila pilih lokasi sekali lagi",
|
|
1194
1196
|
"text.please_select_the_location": "sila pilih lokasi",
|
|
@@ -1224,6 +1226,7 @@
|
|
|
1224
1226
|
"text.related_arrival_notice_will_be_deleted": "notis ketibaan yang berkaitan akan dipadam",
|
|
1225
1227
|
"text.related_release_order_will_be_rejected": "pelepasan pesanan yang berkaitan akan ditolak",
|
|
1226
1228
|
"text.release_date_is_empty": "[ms]release date is empty",
|
|
1229
|
+
"text.backdate_is_not_allowed": "[ms]backdate is not allowed",
|
|
1227
1230
|
"text.release_date_is_required": "[ms]release date is required",
|
|
1228
1231
|
"text.release_order_confirmed": "stok pelepasan pesanan disahkan",
|
|
1229
1232
|
"text.release_order_created": "pelepasan pesanan dicipta",
|
|
@@ -1236,6 +1239,7 @@
|
|
|
1236
1239
|
"text.release_order_rejected": "stok pelepasan pesanan keluar ditolak",
|
|
1237
1240
|
"text.release_order_will_be_deleted": "stok pelepasan pesanan akan dipadam",
|
|
1238
1241
|
"text.release_qty_cannot_exceed_stored_qty": "kuantiti pelepasan melebihi kuantiti disimpan dalam gudang",
|
|
1242
|
+
"text.release_qty_invalid": "[ms] release quantity is invalid",
|
|
1239
1243
|
"text.release_qty_is_empty": "stok pelepasan kuantiti tiada nilai",
|
|
1240
1244
|
"text.release_qty_is_more_than_expected": "kuantiti pelepasan melebihi",
|
|
1241
1245
|
"text.remark_is_empty": "disemak tidak diisi",
|
|
@@ -1345,6 +1349,7 @@
|
|
|
1345
1349
|
"text.x_should_be_positive": "{state.x} should be positive value",
|
|
1346
1350
|
"text.yes": "ya",
|
|
1347
1351
|
"text.you_can_only_select_one_transport_type": "you can only select one transport type",
|
|
1352
|
+
"text.you_can_only_upload_one_file_max": "[ms]you can only upload one file max",
|
|
1348
1353
|
"text.you_wont_be_able_to_revert_this": "anda tidak boleh kembali selepas langkah ini",
|
|
1349
1354
|
"text.you.are.now.in": "anda berada di {state}",
|
|
1350
1355
|
"text.your_work_has_completed": "kerja anda telah selesai",
|
|
@@ -1497,6 +1502,7 @@
|
|
|
1497
1502
|
"title.loaded": "telah muat naik",
|
|
1498
1503
|
"title.loading": "muat naik",
|
|
1499
1504
|
"title.location_label_format": "format label lokasi",
|
|
1505
|
+
"title.location_scanned_is_not_quarantine_zone": "[ms] Location scanned is not a quarantine zone!",
|
|
1500
1506
|
"title.location_sorting_rule": "peraturan susunan lokasi",
|
|
1501
1507
|
"title.location": "lokasi",
|
|
1502
1508
|
"title.lot_information": "informasi lot",
|
|
@@ -1689,7 +1695,5 @@
|
|
|
1689
1695
|
"title.worksheet_vas": "VAS worksheet",
|
|
1690
1696
|
"title.worksheet": "lembaran kerja",
|
|
1691
1697
|
"vas_order_created": "pesanan value added service telah dicipta",
|
|
1692
|
-
"title.location_scanned_is_not_quarantine_zone": "[ms] Location scanned is not a quarantine zone!",
|
|
1693
|
-
"text.release_qty_invalid": "[ms] release quantity is invalid",
|
|
1694
1698
|
"text.generate_worksheet": "[ms] generate worksheet"
|
|
1695
1699
|
}
|
package/translations/zh.json
CHANGED
|
@@ -1148,6 +1148,7 @@
|
|
|
1148
1148
|
"text.picking_worksheet_will_be_activated": "picking worksheet will be activated",
|
|
1149
1149
|
"text.picking_worksheet_will_be_generated": "picking worksheet will be generated",
|
|
1150
1150
|
"text.pickup_info_is_not_completed": "pickup info is not completed",
|
|
1151
|
+
"text.please_attach_the_file": "[zh]please attach the file",
|
|
1151
1152
|
"text.please_check_your_setting": "please check your setting",
|
|
1152
1153
|
"text.please_check_your_vas_target": "[zh] please check your vas target",
|
|
1153
1154
|
"text.please_key_in_new_serial_number": "[zh]please key in new serial number",
|
|
@@ -1157,6 +1158,7 @@
|
|
|
1157
1158
|
"text.please_select_a_truck": "select a truck",
|
|
1158
1159
|
"text.please_select_label_indicator": "please select label indicator",
|
|
1159
1160
|
"text.please_select_release_order": "[zh] please select release order",
|
|
1161
|
+
"text.please_select_the_company": "[zh]please select the company",
|
|
1160
1162
|
"text.please_select_the_contact_type": "please select the contact type",
|
|
1161
1163
|
"text.please_select_the_location_again": "please select the location again",
|
|
1162
1164
|
"text.please_select_the_location": "please select the location",
|
|
@@ -1190,6 +1192,7 @@
|
|
|
1190
1192
|
"text.related_arrival_notice_will_be_deleted": "related arrival notice will be deleted",
|
|
1191
1193
|
"text.related_release_order_will_be_rejected": "related release order will be rejected",
|
|
1192
1194
|
"text.release_date_is_empty": "[zh]release date is empty",
|
|
1195
|
+
"text.backdate_is_not_allowed": "[zh]backdate is not allowed",
|
|
1193
1196
|
"text.release_date_is_required": "[zh]release date is required",
|
|
1194
1197
|
"text.release_order_confirmed": "release order confirmed",
|
|
1195
1198
|
"text.release_order_created": "release order created",
|
|
@@ -1202,6 +1205,7 @@
|
|
|
1202
1205
|
"text.release_order_rejected": "release order rejected",
|
|
1203
1206
|
"text.release_order_will_be_deleted": "release order will be deleted",
|
|
1204
1207
|
"text.release_qty_cannot_exceed_stored_qty": "release qty cannot exceed stored qty",
|
|
1208
|
+
"text.release_qty_invalid": "[zh] release quantity is invalid",
|
|
1205
1209
|
"text.release_qty_is_empty": "release quantity is empty",
|
|
1206
1210
|
"text.release_qty_is_more_than_expected": "release qty is more than expected",
|
|
1207
1211
|
"text.remark_is_empty": "remark is empty",
|
|
@@ -1311,6 +1315,7 @@
|
|
|
1311
1315
|
"text.x_should_be_positive": "{state.x} should be positive value",
|
|
1312
1316
|
"text.yes": "yes",
|
|
1313
1317
|
"text.you_can_only_select_one_transport_type": "you can only select one transport type",
|
|
1318
|
+
"text.you_can_only_upload_one_file_max": "[zh]you can only upload one file max",
|
|
1314
1319
|
"text.you_wont_be_able_to_revert_this": "you won't be able to revert this",
|
|
1315
1320
|
"text.you.are.now.in": "you are now in {state.text}",
|
|
1316
1321
|
"text.your_work_has_completed": "your work has completed",
|
|
@@ -1454,6 +1459,7 @@
|
|
|
1454
1459
|
"title.loaded": "loaded",
|
|
1455
1460
|
"title.loading": "loading",
|
|
1456
1461
|
"title.location_label_format": "location label format",
|
|
1462
|
+
"title.location_scanned_is_not_quarantine_zone": "[zh] Location scanned is not a quarantine zone!",
|
|
1457
1463
|
"title.location_sorting_rule": "location sorting rule",
|
|
1458
1464
|
"title.location": "location",
|
|
1459
1465
|
"title.lot_information": "lot information",
|
|
@@ -1639,7 +1645,5 @@
|
|
|
1639
1645
|
"title.worksheet_vas": "worksheet vas",
|
|
1640
1646
|
"title.worksheet": "worksheet",
|
|
1641
1647
|
"vas_order_created": "vas order created",
|
|
1642
|
-
"title.location_scanned_is_not_quarantine_zone": "[zh] Location scanned is not a quarantine zone!",
|
|
1643
|
-
"text.release_qty_invalid": "[zh] release quantity is invalid",
|
|
1644
1648
|
"text.generate_worksheet": "[zh] generate worksheet"
|
|
1645
1649
|
}
|