@things-factory/operato-wms 4.3.2 → 4.4.0-alpha.0

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 (96) hide show
  1. package/client/pages/constants/index.js +0 -1
  2. package/client/pages/constants/setting.js +0 -1
  3. package/client/pages/inbound/putaway-product.js +1 -3
  4. package/client/pages/inbound/unload-product.js +11 -21
  5. package/client/pages/inventory/inventory-adjustment-approval.js +9 -24
  6. package/client/pages/inventory/inventory-adjustment.js +13 -79
  7. package/client/pages/master/product/product-list.js +1 -1
  8. package/client/pages/order/arrival-notice/arrival-notice-detail.js +2 -0
  9. package/client/pages/order/arrival-notice/receive-arrival-notice.js +2 -0
  10. package/client/pages/order/goods-received-note/customer-received-note.js +0 -3
  11. package/client/pages/order/goods-received-note/received-note-detail.js +0 -3
  12. package/client/pages/order/release-order/b2c/b2c-order-requests.js +30 -21
  13. package/client/pages/order/release-order/bulk-print-packing-list.js +0 -4
  14. package/client/pages/order/release-order/receive-release-order-request.js +2 -0
  15. package/client/pages/order/release-order/release-order-detail.js +26 -44
  16. package/client/pages/order/return-order/receive-return-order-requests.js +2 -0
  17. package/client/pages/order/transfer-order/receive-transfer-order-request.js +1 -1
  18. package/client/pages/order/transport-order/print-delivery-note.js +1 -0
  19. package/client/pages/order/transport-order/view-delivery-note.js +1 -1
  20. package/client/pages/order/vas-order/receive-vas-order.js +2 -0
  21. package/client/pages/outbound/inventory-assign-popup.js +2 -7
  22. package/client/pages/outbound/inventory-auto-assign-popup.js +1 -2
  23. package/client/pages/outbound/loading-product.js +11 -49
  24. package/client/pages/outbound/packing-product.js +6 -42
  25. package/client/pages/outbound/packing-worksheet-list.js +0 -15
  26. package/client/pages/outbound/picking-product.js +13 -150
  27. package/client/pages/outbound/single-outbound-worksheet.js +22 -10
  28. package/client/pages/outbound/sorting-product.js +15 -78
  29. package/client/pages/outbound/worksheet-batch-picking.js +2 -9
  30. package/client/pages/outbound/worksheet-packing.js +2 -7
  31. package/client/pages/outbound/worksheet-picking.js +2 -9
  32. package/client/pages/report/inventory-summary-report.js +0 -8
  33. package/client/pages/report/outbound-order-details-report.js +0 -18
  34. package/client/pages/vas/abstract-execute-vas.js +7 -12
  35. package/client/pages/vas/print-product-label.js +6 -15
  36. package/client/pages/vas/reverse-kitting/execute-reverse-kitting.js +1 -3
  37. package/client/pages/vas/reverse-kitting/popup-reverse-kitting-template.js +1 -3
  38. package/client/route.js +0 -12
  39. package/dist-server/entities/index.js +1 -2
  40. package/dist-server/entities/index.js.map +1 -1
  41. package/dist-server/graphql/index.js +5 -1
  42. package/dist-server/graphql/index.js.map +1 -1
  43. package/dist-server/graphql/resolvers/board-setting/board-settings.js +1 -2
  44. package/dist-server/graphql/resolvers/board-setting/board-settings.js.map +1 -1
  45. package/dist-server/graphql/resolvers/index.js +7 -4
  46. package/dist-server/graphql/resolvers/index.js.map +1 -1
  47. package/dist-server/graphql/resolvers/reports/outbound-order-details-report.js +1 -3
  48. package/dist-server/graphql/resolvers/reports/outbound-order-details-report.js.map +1 -1
  49. package/dist-server/graphql/types/index.js +8 -5
  50. package/dist-server/graphql/types/index.js.map +1 -1
  51. package/dist-server/graphql/types/reports/outbound-order-details-report.js +0 -2
  52. package/dist-server/graphql/types/reports/outbound-order-details-report.js.map +1 -1
  53. package/dist-server/index.js +5 -2
  54. package/dist-server/index.js.map +1 -1
  55. package/dist-server/opa-app-setting-constants.js +1 -2
  56. package/dist-server/opa-app-setting-constants.js.map +1 -1
  57. package/dist-server/utils/index.js +5 -1
  58. package/dist-server/utils/index.js.map +1 -1
  59. package/helps/release-note.ko.md +9 -11
  60. package/helps/release-note.md +9 -11
  61. package/helps/release-note.ms.md +9 -11
  62. package/helps/release-note.zh.md +9 -11
  63. package/package.json +50 -50
  64. package/server/entities/index.ts +2 -2
  65. package/server/graphql/resolvers/board-setting/board-settings.ts +2 -4
  66. package/server/graphql/resolvers/index.ts +2 -3
  67. package/server/graphql/resolvers/reports/outbound-order-details-report.ts +2 -6
  68. package/server/graphql/types/index.ts +4 -4
  69. package/server/graphql/types/reports/outbound-order-details-report.ts +0 -2
  70. package/server/index.ts +1 -2
  71. package/server/opa-app-setting-constants.ts +0 -1
  72. package/things-factory.config.js +0 -13
  73. package/translations/en.json +8 -48
  74. package/translations/ko.json +1 -35
  75. package/translations/ms.json +1 -35
  76. package/translations/zh.json +1 -35
  77. package/client/constants/index.js +0 -1
  78. package/client/constants/order.js +0 -14
  79. package/client/pages/constants/tote.js +0 -14
  80. package/client/pages/master/tote-list.js +0 -740
  81. package/client/pages/order/draft-release-good/draft-release-good-detail.js +0 -1163
  82. package/client/pages/order/draft-release-good/draft-release-good-list.js +0 -546
  83. package/client/pages/outbound/order-remark-popup.js +0 -112
  84. package/client/pages/outbound/tote-popup.js +0 -461
  85. package/dist-server/entities/warehouse-bizplace-onhand-inventory.js +0 -168
  86. package/dist-server/entities/warehouse-bizplace-onhand-inventory.js.map +0 -1
  87. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/index.js +0 -6
  88. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/index.js.map +0 -1
  89. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.js +0 -58
  90. package/dist-server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.js.map +0 -1
  91. package/dist-server/graphql/types/warehouse-inventory-adjustment/index.js +0 -9
  92. package/dist-server/graphql/types/warehouse-inventory-adjustment/index.js.map +0 -1
  93. package/server/entities/warehouse-bizplace-onhand-inventory.ts +0 -141
  94. package/server/graphql/resolvers/warehouse-inventory-adjustment/index.ts +0 -5
  95. package/server/graphql/resolvers/warehouse-inventory-adjustment/warehouse-intentory-adjustment.ts +0 -68
  96. package/server/graphql/types/warehouse-inventory-adjustment/index.ts +0 -5
@@ -1,546 +0,0 @@
1
- import '@things-factory/form-ui'
2
- import '@things-factory/grist-ui'
3
- import { GhostPrint } from '@operato/ghost-print'
4
- import gql from 'graphql-tag'
5
- import { css, html } from 'lit-element'
6
-
7
- import { getCodeByName } from '@things-factory/code-base'
8
- import { i18next, localize } from '@things-factory/i18n-base'
9
- import { client, navigate, PageView, CustomAlert } from '@things-factory/shell'
10
- import { CommonButtonStyles, ScrollbarStyles } from '@things-factory/styles'
11
- import { isMobileDevice } from '@things-factory/utils'
12
-
13
- import { DRAFT_RELEASE_ORDER_STATUS, PRODUCT_GROUP_TYPES } from '../../../constants'
14
-
15
- // const HEADER_JSON = {
16
- // 'Content-Type': 'application/json',
17
- // Accept: 'application/json'
18
- // }
19
-
20
- class DraftReleaseGoodList extends localize(i18next)(PageView) {
21
- static get styles() {
22
- return [
23
- ScrollbarStyles,
24
- css`
25
- :host {
26
- display: flex;
27
- flex-direction: column;
28
- overflow: hidden;
29
- }
30
-
31
- search-form {
32
- overflow: visible;
33
- }
34
-
35
- data-grist {
36
- overflow-y: auto;
37
- flex: 1;
38
- }
39
- `
40
- ]
41
- }
42
-
43
- static get properties() {
44
- return {
45
- _searchFields: Array,
46
- config: Object,
47
- data: Object
48
- }
49
- }
50
-
51
- render() {
52
- return html`
53
- <search-form id="search-form" .fields=${this._searchFields} @submit=${e => this.dataGrist.fetch()}></search-form>
54
-
55
- <data-grist
56
- .mode=${isMobileDevice() ? 'LIST' : 'GRID'}
57
- .config=${this.config}
58
- .fetchHandler="${this.fetchHandler.bind(this)}"
59
- ></data-grist>
60
- `
61
- }
62
-
63
- get context() {
64
- return {
65
- title: i18next.t('title.draft_release_order'),
66
- actions: [
67
- {
68
- title: i18next.t('button.create_release_order'),
69
- action: this._generateReleaseGood.bind(this),
70
- ...CommonButtonStyles.activate
71
- },
72
- {
73
- title: i18next.t('button.create_draft_release_order'),
74
- action: this._navigateToCreate.bind(this),
75
- ...CommonButtonStyles.add
76
- }
77
- ],
78
- help: 'operato-wms/draft-release-good-list'
79
- }
80
- }
81
-
82
- pageUpdated(changes, lifecycle) {
83
- if (this.active) {
84
- this.dataGrist.fetch()
85
- }
86
- }
87
-
88
- async pageInitialized() {
89
- this.isUserBelongsDomain = await this._checkUserBelongsDomain()
90
- const [_bizplacesReq] = await Promise.allSettled([this._fetchBizplaces()])
91
-
92
- const _bizplaces = _bizplacesReq.status == 'fulfilled' ? _bizplacesReq.value : []
93
-
94
- this._searchFields = [
95
- {
96
- label: i18next.t('field.order_no'),
97
- name: 'name',
98
- type: 'text',
99
- props: { searchOper: 'i_like' }
100
- },
101
- {
102
- label: i18next.t('field.company'),
103
- name: 'bizplaceId',
104
- type: 'select',
105
- options: [
106
- { value: '' },
107
- ..._bizplaces
108
- .map(bizplace => {
109
- return {
110
- name: `${bizplace.name} ${bizplace.description ? `(${bizplace.description})` : ''}`,
111
- value: bizplace.id
112
- }
113
- })
114
- .sort(this._compareValues('name', 'asc'))
115
- ],
116
- props: { searchOper: 'eq' }
117
- },
118
- {
119
- label: i18next.t('field.ref_no'),
120
- name: 'refNo',
121
- type: 'text',
122
- props: { searchOper: 'i_like' }
123
- },
124
- {
125
- label: i18next.t('field.ref_no_2'),
126
- name: 'refNo2',
127
- type: 'text',
128
- props: { searchOper: 'i_like' }
129
- },
130
- {
131
- label: i18next.t('field.ref_no_3'),
132
- name: 'refNo3',
133
- type: 'text',
134
- props: { searchOper: 'i_like' }
135
- },
136
- {
137
- label: i18next.t('field.status'),
138
- name: 'status',
139
- type: 'select',
140
- options: [
141
- { value: '' },
142
- ...Object.keys(DRAFT_RELEASE_ORDER_STATUS).map(key => {
143
- return { name: key, value: DRAFT_RELEASE_ORDER_STATUS[key] }
144
- })
145
- ],
146
- props: { searchOper: 'eq' }
147
- },
148
- {
149
- label: i18next.t('field.from'),
150
- name: 'fromDate',
151
- type: 'date',
152
- props: {
153
- searchOper: 'eq'
154
- },
155
- value: (() => {
156
- let date = new Date()
157
- date.setMonth(date.getMonth() - 6)
158
- return date.toISOString().split('T')[0]
159
- })(),
160
- handlers: { change: this._modifyDateRange.bind(this) }
161
- },
162
- {
163
- label: i18next.t('field.to'),
164
- name: 'toDate',
165
- type: 'date',
166
- props: {
167
- searchOper: 'eq',
168
- min: (() => {
169
- let date = new Date()
170
- date.setMonth(date.getMonth() - 6)
171
- return date.toISOString().split('T')[0]
172
- })()
173
- },
174
- value: new Date().toISOString().split('T')[0]
175
- },
176
- {
177
- label: i18next.t('field.no_of_items'),
178
- name: 'noOfItems',
179
- type: 'select',
180
- props: {
181
- searchOper: 'gte'
182
- },
183
- options: [{ value: '' }, { name: 'Single Item', value: 1 }, { name: 'Multiple Item', value: 2 }]
184
- },
185
- {
186
- label: i18next.t('field.sku'),
187
- name: 'sku',
188
- type: 'text',
189
- props: { searchOper: 'i_like' }
190
- }
191
- ]
192
-
193
- this.config = {
194
- rows: { selectable: { multiple: true }, appendable: false },
195
- list: { fields: ['name', 'releaseDate', 'status', 'updatedAt'] },
196
- pagination: { limit: 100, pages: [20, 50, 100, 200, 500] },
197
- columns: [
198
- { type: 'gutter', gutterName: 'sequence' },
199
- { type: 'gutter', gutterName: 'row-selector', multiple: true },
200
- {
201
- type: 'gutter',
202
- gutterName: 'button',
203
- icon: 'reorder',
204
- handlers: {
205
- click: (columns, data, column, record, rowIndex) => {
206
- navigate(`draft_release_good_detail/${record.name}`)
207
- }
208
- }
209
- },
210
- {
211
- type: 'string',
212
- name: 'name',
213
- header: i18next.t('field.order_no'),
214
- imex: { header: i18next.t('field.order_no'), key: 'name', width: 30, type: 'string' },
215
- sortable: false,
216
- width: 150
217
- },
218
- {
219
- type: 'object',
220
- name: 'bizplace',
221
- header: i18next.t('field.company'),
222
- imex: { header: i18next.t('field.company'), key: 'bizplace.name', width: 30, type: 'string' },
223
- sortable: false,
224
- width: 250
225
- },
226
- {
227
- type: 'string',
228
- name: 'type',
229
- header: i18next.t('field.type'),
230
- imex: { header: i18next.t('field.type'), key: 'type', width: 30, type: 'string' },
231
- sortable: false,
232
- width: 150
233
- },
234
- {
235
- type: 'string',
236
- name: 'refNo',
237
- header: i18next.t('field.ref_no'),
238
- imex: { header: i18next.t('field.ref_no'), key: 'refNo', width: 20, type: 'string' },
239
- sortable: false,
240
- width: 150
241
- },
242
- {
243
- type: 'string',
244
- name: 'refNo2',
245
- header: i18next.t('field.ref_no_2'),
246
- imex: { header: i18next.t('field.ref_no_2'), key: 'refNo2', width: 20, type: 'string' },
247
- sortable: false,
248
- width: 150
249
- },
250
- {
251
- type: 'string',
252
- name: 'refNo3',
253
- header: i18next.t('field.ref_no_3'),
254
- imex: { header: i18next.t('field.ref_no_3'), key: 'refNo3', width: 20, type: 'string' },
255
- sortable: false,
256
- width: 150
257
- },
258
- {
259
- type: 'date',
260
- name: 'releaseDate',
261
- header: i18next.t('field.release_date'),
262
- imex: { header: i18next.t('field.release_date'), key: 'releaseDate', width: 20, type: 'string' },
263
- sortable: false,
264
- width: 120
265
- },
266
- {
267
- type: 'boolean',
268
- name: 'exportOption',
269
- header: i18next.t('field.export_option'),
270
- imex: { header: i18next.t('field.export_option'), key: 'exportOption', width: 20, type: 'string' },
271
- sortable: false,
272
- width: 60
273
- },
274
- {
275
- type: 'boolean',
276
- name: 'ownTransport',
277
- header: i18next.t('field.own_transport'),
278
- imex: { header: i18next.t('field.own_transport'), key: 'ownTransport', width: 20, type: 'string' },
279
- sortable: false,
280
- width: 60
281
- },
282
- {
283
- type: 'string',
284
- name: 'status',
285
- header: i18next.t('field.status'),
286
- imex: { header: i18next.t('field.status'), key: 'status', width: 30, type: 'string' },
287
- sortable: false,
288
- width: 120
289
- },
290
- {
291
- type: 'datetime',
292
- name: 'createdAt',
293
- header: i18next.t('field.created_at'),
294
- imex: { header: i18next.t('field.created_at'), key: 'createdAt', width: 30, type: 'datetime' },
295
- sortable: false,
296
- width: 160
297
- },
298
- {
299
- type: 'datetime',
300
- name: 'updatedAt',
301
- header: i18next.t('field.updated_at'),
302
- imex: { header: i18next.t('field.updated_at'), key: 'updatedAt', width: 30, type: 'datetime' },
303
- sortable: false,
304
- width: 160
305
- },
306
- {
307
- type: 'object',
308
- name: 'creator',
309
- header: i18next.t('field.created_by'),
310
- imex: { header: i18next.t('field.created_by'), key: 'creator.name', width: 30, type: 'string' },
311
- sortable: false,
312
- width: 200
313
- }
314
- ]
315
- }
316
- }
317
-
318
- get searchForm() {
319
- return this.shadowRoot.querySelector('search-form')
320
- }
321
-
322
- get dataGrist() {
323
- return this.shadowRoot.querySelector('data-grist')
324
- }
325
-
326
- async fetchHandler({ page, limit, sorters = [{ name: 'createdAt', desc: true }] }) {
327
- const response = await client.query({
328
- query: gql`
329
- query draftReleaseGoods($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
330
- draftReleaseGoods(filters: $filters, pagination: $pagination, sortings: $sortings) {
331
- items {
332
- id
333
- name
334
- bizplace {
335
- id
336
- name
337
- description
338
- }
339
- ownTransport
340
- releaseGood {
341
- id
342
- name
343
- description
344
- }
345
- refNo
346
- refNo2
347
- refNo3
348
- type
349
- exportOption
350
- releaseDate
351
- status
352
- createdAt
353
- updatedAt
354
- creator {
355
- id
356
- name
357
- description
358
- }
359
- }
360
- total
361
- }
362
- }
363
- `,
364
- variables: {
365
- filters: [...(await this.searchForm.getQueryFilters())],
366
- pagination: { page, limit },
367
- sortings: sorters
368
- }
369
- })
370
-
371
- if (!response.errors) {
372
- this._ownTransport = response.data.draftReleaseGoods.ownTransport
373
- this._exportOption = response.data.draftReleaseGoods.exportOption
374
- return {
375
- total: response.data.draftReleaseGoods.total || 0,
376
- records: response.data.draftReleaseGoods.items || []
377
- }
378
- }
379
- }
380
-
381
- get _columns() {
382
- return this.config.columns
383
- }
384
-
385
- async _generateReleaseGood() {
386
- try {
387
- let orderIds = []
388
-
389
- let selectedGristData = this.dataGrist.selected
390
- if (selectedGristData.filter(itm => itm.status == DRAFT_RELEASE_ORDER_STATUS.DRAFT).length <= 0)
391
- throw new Error(i18next.t('text.please_select_a_valid_draft_order_to_generate_release_order'))
392
-
393
- let selectedOrders = selectedGristData.filter(itm => itm.status === DRAFT_RELEASE_ORDER_STATUS.DRAFT)
394
- orderIds = selectedOrders.map(record => record.id)
395
-
396
- let result = await CustomAlert({
397
- title: i18next.t('title.are_you_sure'),
398
- text: i18next.t('text.generate_release_order(s)'),
399
- confirmButton: { text: i18next.t('button.submit') },
400
- cancelButton: { text: i18next.t('button.cancel') }
401
- })
402
-
403
- if (!result.value) return
404
-
405
- const response = await client.mutate({
406
- mutation: gql`
407
- mutation generateReleaseGoodsFromDraft($ids: [String!]!) {
408
- generateReleaseGoodsFromDraft(ids: $ids)
409
- }
410
- `,
411
- variables: {
412
- ids: orderIds
413
- }
414
- })
415
-
416
- if (!response.errors) {
417
- this.dataGrist.fetch()
418
- this._showToast({ message: i18next.t('text.release_order(s)_has_been_generated') })
419
- }
420
- } catch (e) {
421
- this._showToast(e)
422
- }
423
- }
424
-
425
- _navigateToCreate() {
426
- navigate(`draft_release_good_detail/new`)
427
- }
428
-
429
- _showToast({ type, message }) {
430
- document.dispatchEvent(
431
- new CustomEvent('notify', {
432
- detail: {
433
- type,
434
- message
435
- }
436
- })
437
- )
438
- }
439
-
440
- async _fetchBizplaces() {
441
- const filters = []
442
- const response = await client.query({
443
- query: gql`
444
- query partnersBizplaces($filters: [Filter!]) {
445
- partnersBizplaces(filters: $filters) {
446
- items {
447
- id
448
- name
449
- description
450
- }
451
- }
452
- }
453
- `,
454
- variables: { filters }
455
- })
456
-
457
- if (!response.errors) {
458
- return response.data.partnersBizplaces.items
459
- }
460
- }
461
-
462
- _compareValues(key, order = 'asc') {
463
- return function innerSort(a, b) {
464
- if (!a.hasOwnProperty(key) || !b.hasOwnProperty(key)) {
465
- return 0
466
- }
467
-
468
- const varA = typeof a[key] === 'string' ? a[key].toUpperCase() : a[key]
469
- const varB = typeof b[key] === 'string' ? b[key].toUpperCase() : b[key]
470
-
471
- let comparison = 0
472
- if (varA > varB) {
473
- comparison = 1
474
- } else if (varA < varB) {
475
- comparison = -1
476
- }
477
- return order === 'desc' ? comparison * -1 : comparison
478
- }
479
- }
480
-
481
- _modifyDateRange(e) {
482
- const fromDate = e.currentTarget.value
483
-
484
- if (this._toDateInput.value < fromDate) this._toDateInput.value = fromDate
485
-
486
- let min = new Date(fromDate)
487
- let today = new Date()
488
- today.setHours(0, 0, 0, 0)
489
-
490
- min = min.toISOString().split('T')[0]
491
-
492
- this._toDateInput.min = min
493
- }
494
-
495
- async _checkUserBelongsDomain() {
496
- try {
497
- const response = await client.query({
498
- query: gql`
499
- query {
500
- checkUserBelongsDomain
501
- }
502
- `
503
- })
504
-
505
- if (!response.errors) {
506
- return response.data.checkUserBelongsDomain
507
- }
508
- } catch (e) {
509
- this._showToast(e)
510
- }
511
- }
512
-
513
- async _callPrintDialog(contentSource) {
514
- GhostPrint.print({
515
- srcdoc: contentSource,
516
- onfinish: () => {
517
- this._showToast({ message: i18next.t('text.document_has_been_generated') })
518
- }
519
- })
520
- }
521
-
522
- async _fetchContactPoints() {
523
- const response = await client.query({
524
- query: gql`
525
- query contactPoints($filters: [Filter!]!, $pagination: Pagination, $sortings: [Sorting!]!) {
526
- contactPoints(filters: $filters, pagination: $pagination, sortings: $sortings) {
527
- items {
528
- id
529
- name
530
- companyName
531
- }
532
- }
533
- }
534
- `,
535
- variables: {
536
- filters: [{ name: 'type', operator: 'eq', value: 'SUPPLIER' }],
537
- pagination: { page: 0, limit: 999999 },
538
- sortings: [{ name: 'name' }]
539
- }
540
- })
541
-
542
- return response.data.contactPoints.items || []
543
- }
544
- }
545
-
546
- window.customElements.define('draft-release-good-list', DraftReleaseGoodList)
@@ -1,112 +0,0 @@
1
- import '@things-factory/grist-ui'
2
-
3
- import gql from 'graphql-tag'
4
- import { css, html, LitElement } from 'lit-element'
5
-
6
- import { SingleColumnFormStyles } from '@things-factory/form-ui'
7
- import { i18next, localize } from '@things-factory/i18n-base'
8
- import { client } from '@things-factory/shell'
9
-
10
- class OrderRemarkPopup extends localize(i18next)(LitElement) {
11
- static get properties() {
12
- return {
13
- orderRemark: String,
14
- releaseGoodNo: String,
15
- checkedRemarkAt: String
16
- }
17
- }
18
-
19
- static get styles() {
20
- return [
21
- SingleColumnFormStyles,
22
- css`
23
- :host {
24
- padding: 10px;
25
- display: flex;
26
- flex-direction: column;
27
- overflow-x: overlay;
28
- background-color: var(--main-section-background-color);
29
- }
30
- .button-container {
31
- padding: var(--button-container-padding);
32
- margin: var(--button-container-margin);
33
- text-align: var(--button-container-align);
34
- background-color: var(--button-container-background);
35
- height: var(--button-container-height);
36
- }
37
- .button-container button {
38
- background-color: var(--button-container-button-background-color);
39
- border-radius: var(--button-container-button-border-radius);
40
- height: var(--button-container-button-height);
41
- border: var(--button-container-button-border);
42
- margin: var(--button-container-button-margin);
43
-
44
- padding: var(--button-padding);
45
- color: var(--theme-white-color);
46
- font: var(--button-font);
47
- text-transform: var(--button-text-transform);
48
- }
49
- .button-container button:hover,
50
- .button-container button:active {
51
- background-color: var(--button-background-focus-color);
52
- }
53
- `
54
- ]
55
- }
56
-
57
- render() {
58
- const remarkValue = this.orderRemark || ''
59
- const checkedRemarkAt = this.checkedRemarkAt || ''
60
-
61
- return html`
62
- <form id="input-form" class="single-column-form">
63
- <fieldset>
64
- <label>${i18next.t('label.order_remark')}</label>
65
- <textarea name="remark" row="10" readonly .value=${remarkValue}></textarea>
66
- </fieldset>
67
- </form>
68
- <div class="button-container">
69
- ${checkedRemarkAt
70
- ? html`
71
- <mwc-button
72
- danger
73
- raised
74
- @click="${e => history.back()}"
75
- label="${i18next.t('button.back')}"
76
- ></mwc-button>
77
- `
78
- : html`
79
- <mwc-button
80
- danger
81
- raised
82
- @click="${e => history.back()}"
83
- label="${i18next.t('button.back')}"
84
- ></mwc-button>
85
- <mwc-button
86
- raised
87
- @click="${this._executeOrderRemark.bind(this)}"
88
- label="${i18next.t('button.check')}"
89
- ></mwc-button>
90
- `}
91
- </div>
92
- `
93
- }
94
-
95
- async _executeOrderRemark() {
96
- const response = await client.mutate({
97
- mutation: gql`
98
- mutation executeOrderRemark($releaseGoodNo: String!) {
99
- executeOrderRemark(releaseGoodNo: $releaseGoodNo)
100
- }
101
- `,
102
- variables: { releaseGoodNo: this.releaseGoodNo }
103
- })
104
-
105
- if (!response.errors) {
106
- this.dispatchEvent(new CustomEvent('remark-checked'))
107
- history.back()
108
- }
109
- }
110
- }
111
-
112
- window.customElements.define('order-remark-popup', OrderRemarkPopup)