@things-factory/tax-invoice 6.2.86 → 6.2.88

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 (52) hide show
  1. package/client/pages/tax-invoice/tax-invoice-detail-popup.ts +12 -6
  2. package/client/pages/tax-invoice/tax-invoice-list-page.ts +147 -176
  3. package/client/pages/tax-invoice-api/tax-invoice-api-page.ts +6 -5
  4. package/client/pages/tax-invoice-company/tax-invoice-company-importer.ts +2 -2
  5. package/client/pages/tax-invoice-send/tax-invoice-send-page.ts +580 -0
  6. package/client/route.ts +4 -4
  7. package/dist-client/pages/tax-invoice/tax-invoice-detail-popup.js +18 -9
  8. package/dist-client/pages/tax-invoice/tax-invoice-detail-popup.js.map +1 -1
  9. package/dist-client/pages/tax-invoice/tax-invoice-list-page.d.ts +63 -23
  10. package/dist-client/pages/tax-invoice/tax-invoice-list-page.js +149 -168
  11. package/dist-client/pages/tax-invoice/tax-invoice-list-page.js.map +1 -1
  12. package/dist-client/pages/tax-invoice-api/tax-invoice-api-page.d.ts +1 -1
  13. package/dist-client/pages/tax-invoice-api/tax-invoice-api-page.js +6 -5
  14. package/dist-client/pages/tax-invoice-api/tax-invoice-api-page.js.map +1 -1
  15. package/dist-client/pages/tax-invoice-company/tax-invoice-company-importer.js +2 -2
  16. package/dist-client/pages/tax-invoice-company/tax-invoice-company-importer.js.map +1 -1
  17. package/dist-client/pages/tax-invoice-send/tax-invoice-send-page.d.ts +100 -0
  18. package/dist-client/pages/tax-invoice-send/tax-invoice-send-page.js +510 -0
  19. package/dist-client/pages/tax-invoice-send/tax-invoice-send-page.js.map +1 -0
  20. package/dist-client/route.d.ts +1 -1
  21. package/dist-client/route.js +3 -3
  22. package/dist-client/route.js.map +1 -1
  23. package/dist-client/tsconfig.tsbuildinfo +1 -1
  24. package/dist-server/service/tax-invoice/tax-invoice-mutation.js +132 -27
  25. package/dist-server/service/tax-invoice/tax-invoice-mutation.js.map +1 -1
  26. package/dist-server/service/tax-invoice/tax-invoice-query.js +24 -1
  27. package/dist-server/service/tax-invoice/tax-invoice-query.js.map +1 -1
  28. package/dist-server/service/tax-invoice/tax-invoice-type.js +22 -259
  29. package/dist-server/service/tax-invoice/tax-invoice-type.js.map +1 -1
  30. package/dist-server/service/tax-invoice/tax-invoice.js +22 -16
  31. package/dist-server/service/tax-invoice/tax-invoice.js.map +1 -1
  32. package/dist-server/service/tax-invoice-api/tax-invoice-api-type.js +5 -0
  33. package/dist-server/service/tax-invoice-api/tax-invoice-api-type.js.map +1 -1
  34. package/dist-server/service/tax-invoice-item/tax-invoice-item-query.js.map +1 -1
  35. package/dist-server/service/tax-invoice-item/tax-invoice-item-type.js +4 -4
  36. package/dist-server/service/tax-invoice-item/tax-invoice-item-type.js.map +1 -1
  37. package/dist-server/service/tax-invoice-item/tax-invoice-item.js +3 -3
  38. package/dist-server/service/tax-invoice-item/tax-invoice-item.js.map +1 -1
  39. package/dist-server/service/unipost-api/tax-invoice-inquiry.js +90 -0
  40. package/dist-server/service/unipost-api/tax-invoice-inquiry.js.map +1 -0
  41. package/dist-server/tsconfig.tsbuildinfo +1 -1
  42. package/package.json +5 -5
  43. package/server/service/tax-invoice/tax-invoice-mutation.ts +137 -36
  44. package/server/service/tax-invoice/tax-invoice-query.ts +21 -3
  45. package/server/service/tax-invoice/tax-invoice-type.ts +21 -199
  46. package/server/service/tax-invoice/tax-invoice.ts +38 -45
  47. package/server/service/tax-invoice-api/tax-invoice-api-type.ts +4 -0
  48. package/server/service/tax-invoice-item/tax-invoice-item-query.ts +1 -1
  49. package/server/service/tax-invoice-item/tax-invoice-item-type.ts +4 -7
  50. package/server/service/tax-invoice-item/tax-invoice-item.ts +3 -3
  51. package/server/service/unipost-api/tax-invoice-inquiry.ts +103 -0
  52. package/translations/ko.json +10 -1
@@ -0,0 +1,510 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import '@operato/data-grist';
3
+ import { CommonButtonStyles, CommonGristStyles, ScrollbarStyles } from '@operato/styles';
4
+ import { PageView } from '@operato/shell';
5
+ import { css, html } from 'lit';
6
+ import { customElement, property, query, state } from 'lit/decorators.js';
7
+ import { ScopedElementsMixin } from '@open-wc/scoped-elements';
8
+ import { client } from '@operato/graphql';
9
+ import { i18next, localize } from '@operato/i18n';
10
+ import { notify } from '@operato/layout';
11
+ import gql from 'graphql-tag';
12
+ import { BUSINESS_REGISTRATION_CATEGORY, BusinessRegistrationCategory, Category, INVOICE_TYPE, InvoiceType, Purpose } from '../tax-invoice/tax-invoice-list-page';
13
+ const SHORT_INVOICE_TYPE = {
14
+ TAX_INVOICE: {
15
+ [InvoiceType.TAX_INVOICE]: '일반',
16
+ [InvoiceType.SMALL_BUSINESS_TAX_INVOICE]: '영세율',
17
+ [InvoiceType.CONSIGNMENT_TAX_INVOICE]: '위수탁',
18
+ [InvoiceType.SMALL_BUSINESS_CONSIGNMENT_TAX_INVOICE]: '위수탁영세율'
19
+ },
20
+ INVOICE: {
21
+ [InvoiceType.INVOICE]: '일반',
22
+ [InvoiceType.CONSIGNMENT_INVOICE]: '위수탁'
23
+ // [InvoiceType.IMPORT_INVOICE]: INVOICE_TYPE[IMPORT_INVOICE],
24
+ }
25
+ };
26
+ const SHORT_BUSINESS_REGISTRATION_CATEGORY = {
27
+ [BusinessRegistrationCategory.BUSINESS_REGISTRATION_NUMBER]: '사업자',
28
+ [BusinessRegistrationCategory.RESIDENT_REGISTRATION_NUMBER]: '개인',
29
+ [BusinessRegistrationCategory.FOREIGNER_REGISTRATION_NUMBER]: '외국인'
30
+ };
31
+ let TaxInvoiceSendPage = class TaxInvoiceSendPage extends localize(i18next)(ScopedElementsMixin(PageView)) {
32
+ constructor() {
33
+ super(...arguments);
34
+ this.supplier = {
35
+ supplierBusinessRegistrationNumber: '',
36
+ supplierBusinessName: '',
37
+ supplierRepresentativeName: ''
38
+ };
39
+ this.buyer = {
40
+ buyerBusinessRegistrationCategory: BusinessRegistrationCategory.BUSINESS_REGISTRATION_NUMBER,
41
+ buyerBusinessRegistrationNumber: '',
42
+ buyerBusinessName: '',
43
+ buyerRepresentativeName: ''
44
+ };
45
+ this.taxInvoice = {
46
+ invoiceType: InvoiceType.TAX_INVOICE,
47
+ category: Category.EXPORT,
48
+ issueDate: null,
49
+ purpose: Purpose.RECEIPT,
50
+ supplyAmount: 0,
51
+ totalAmount: 0
52
+ };
53
+ }
54
+ get context() {
55
+ return {
56
+ title: i18next.t('title.tax invoice send'),
57
+ help: 'tax-invoice-send/tax-invoice-send',
58
+ actions: [
59
+ Object.assign({ title: i18next.t('button.tax invoice send'), action: this._sendTaxInvoice.bind(this) }, CommonButtonStyles.add)
60
+ ]
61
+ };
62
+ }
63
+ render() {
64
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5;
65
+ return html `
66
+ <div class="invoice-type">
67
+ * ${INVOICE_TYPE[(_a = this.taxInvoice) === null || _a === void 0 ? void 0 : _a.invoiceType]} (${SHORT_BUSINESS_REGISTRATION_CATEGORY[this.buyer.buyerBusinessRegistrationCategory]})
68
+ </div>
69
+
70
+ <div class="title">
71
+ <table>
72
+ <tr>
73
+ <th>${i18next.t('field.short invoice type')}</th>
74
+ <td>
75
+ ${Object.keys(SHORT_INVOICE_TYPE['TAX_INVOICE']).map(key => {
76
+ const disabled = key !== InvoiceType.TAX_INVOICE;
77
+ const checked = key === InvoiceType.TAX_INVOICE;
78
+ return html `
79
+ <label for="${'tax_' + key}">${SHORT_INVOICE_TYPE['TAX_INVOICE'][key]}</label>
80
+ <input type="radio" id="${'tax_' + key}" value="${key}" name="taxInvoice" ?checked=${checked} ?disabled=${disabled} />
81
+ `;
82
+ })}
83
+ </td>
84
+ <th>${i18next.t('field.tax invoice buyer registration category')}</th>
85
+ <td>
86
+ ${Object.keys(BUSINESS_REGISTRATION_CATEGORY).map(key => {
87
+ const disabled = key !== BusinessRegistrationCategory.BUSINESS_REGISTRATION_NUMBER;
88
+ const checked = key === BusinessRegistrationCategory.BUSINESS_REGISTRATION_NUMBER;
89
+ return html `
90
+ <label for="${'tax_' + key}">${BUSINESS_REGISTRATION_CATEGORY[key]}</label>
91
+ <input type="radio" id="${'tax_' + key}" value="${key}" name="buyerBusinessRegistrationCategory" ?checked=${checked} ?disabled=${disabled} />
92
+ `;
93
+ })}
94
+ </td>
95
+ </tr>
96
+ </table>
97
+ </div>
98
+
99
+ <div class="body">
100
+ <form id="tax-invoice-form">
101
+ <div class="data">
102
+ <table class="supplier">
103
+ <colgroup>
104
+ <col width="150px" />
105
+ <col width="18%" />
106
+ <col width="32%" />
107
+ <col width="18%" />
108
+ <col width="32%" />
109
+ </colgroup>
110
+ <tr>
111
+ <th rowspan="6" class="target">${i18next.t('field.tax invoice supplier')}</th>
112
+ <th>${i18next.t('field.short business registration number')}</th>
113
+ <td><input type="text" name="supplierBusinessRegistrationNumber" .value=${((_b = this.supplier) === null || _b === void 0 ? void 0 : _b.supplierBusinessRegistrationNumber) || ''} readonly /></td>
114
+ <th>${i18next.t('field.short branch identification')}</th>
115
+ <td><input type="text" name="supplierBranchIdentification" .value=${((_c = this.supplier) === null || _c === void 0 ? void 0 : _c.supplierBranchIdentification) || ''} readonly /></td>
116
+ </tr>
117
+ <tr>
118
+ <th>${i18next.t('field.short tax invoice business name')}</th>
119
+ <td><input type="text" name="supplierBusinessName" .value=${((_d = this.supplier) === null || _d === void 0 ? void 0 : _d.supplierBusinessName) || ''} @input=${this._onInputTaxInvoice} /></td>
120
+ <th>${i18next.t('field.short representative name')}</th>
121
+ <td>${(_e = this.supplier) === null || _e === void 0 ? void 0 : _e.supplierRepresentativeName}</td>
122
+ </tr>
123
+ <tr>
124
+ <th>${i18next.t('field.address')}</th>
125
+ <td colspan="3">${(_f = this.supplier) === null || _f === void 0 ? void 0 : _f.supplierAddress}</td>
126
+ </tr>
127
+ <tr>
128
+ <th>${i18next.t('field.business type')}</th>
129
+ <td>${(_g = this.supplier) === null || _g === void 0 ? void 0 : _g.supplierBusinessType}</td>
130
+ <th>${i18next.t('field.industry type')}</th>
131
+ <td>${(_h = this.supplier) === null || _h === void 0 ? void 0 : _h.supplierIndustryType}</td>
132
+ </tr>
133
+ <tr>
134
+ <th rowspan="2">${i18next.t('field.email')}</th>
135
+ <td rowspan="2" colspan="3">${(_j = this.supplier) === null || _j === void 0 ? void 0 : _j.supplierContactEmail}</td>
136
+ </tr>
137
+ <tr></tr>
138
+ </table>
139
+
140
+ <table class="buyer">
141
+ <colgroup>
142
+ <col width="150px" />
143
+ <col width="18%" />
144
+ <col width="32%" />
145
+ <col width="18%" />
146
+ <col width="32%" />
147
+ </colgroup>
148
+ <tr>
149
+ <th rowspan="6" class="target">${i18next.t('field.tax invoice buyer')}</th>
150
+ <th>${i18next.t('field.short business registration number')}</th>
151
+ <td>${(_k = this.buyer) === null || _k === void 0 ? void 0 : _k.buyerBusinessRegistrationNumber}</td>
152
+ <th>${i18next.t('field.short branch identification')}</th>
153
+ <td>${(_l = this.buyer) === null || _l === void 0 ? void 0 : _l.buyerBranchIdentification}</td>
154
+ </tr>
155
+ <tr>
156
+ <th>${i18next.t('field.short tax invoice business name')}</th>
157
+ <td>${(_m = this.buyer) === null || _m === void 0 ? void 0 : _m.buyerBusinessName}</td>
158
+ <th>${i18next.t('field.short representative name')}</th>
159
+ <td>${(_o = this.buyer) === null || _o === void 0 ? void 0 : _o.buyerRepresentativeName}</td>
160
+ </tr>
161
+ <tr>
162
+ <th>${i18next.t('field.address')}</th>
163
+ <td colspan="3">${(_p = this.buyer) === null || _p === void 0 ? void 0 : _p.buyerAddress}</td>
164
+ </tr>
165
+ <tr>
166
+ <th>${i18next.t('field.business type')}</th>
167
+ <td>${(_q = this.buyer) === null || _q === void 0 ? void 0 : _q.buyerBusinessType}</td>
168
+ <th>${i18next.t('field.industry type')}</th>
169
+ <td>${(_r = this.buyer) === null || _r === void 0 ? void 0 : _r.buyerIndustryType}</td>
170
+ </tr>
171
+ <tr>
172
+ <th>${i18next.t('field.email')}</th>
173
+ <td colspan="3">${(_s = this.buyer) === null || _s === void 0 ? void 0 : _s.buyer1stContactEmail}</td>
174
+ </tr>
175
+ <tr>
176
+ <th>${i18next.t('field.email')}</th>
177
+ <td colspan="3">${(_t = this.buyer) === null || _t === void 0 ? void 0 : _t.buyer2ndContactEmail}</td>
178
+ </tr>
179
+ </table>
180
+ </div>
181
+
182
+ <div class="info">
183
+ <table>
184
+ <colgroup>
185
+ <col width="15%" />
186
+ <col width="15%" />
187
+ <col width="15%" />
188
+ <col width="40%" />
189
+ </colgroup>
190
+ <tr>
191
+ <th>${i18next.t('field.issue date')}</th>
192
+ <th>${i18next.t('field.supply amount')}</th>
193
+ <th>${i18next.t('field.tax amount')}</th>
194
+ <th>${i18next.t('field.remark0')}</th>
195
+ </tr>
196
+ <tr>
197
+ <td>${(_u = this.taxInvoice) === null || _u === void 0 ? void 0 : _u.issueDate}</td>
198
+ <td>${this._numberFormat((_v = this.taxInvoice) === null || _v === void 0 ? void 0 : _v.supplyAmount)}</td>
199
+ <td>${this._numberFormat((_w = this.taxInvoice) === null || _w === void 0 ? void 0 : _w.taxAmount)}</td>
200
+ <td>${(_x = this.taxInvoice) === null || _x === void 0 ? void 0 : _x.remark0}</td>
201
+ </tr>
202
+ </table>
203
+ </div>
204
+
205
+ <div class="items">
206
+ <table>
207
+ <colgroup>
208
+ <col width="4%" />
209
+ <col width="4%" />
210
+ <col width="15%" />
211
+ <col width="9%" />
212
+ <col width="9%" />
213
+ <col width="13%" />
214
+ <col width="13%" />
215
+ <col width="13%" />
216
+ <col width="20%" />
217
+ </colgroup>
218
+ <tr>
219
+ <th>${i18next.t('field.tax invoice month')}</th>
220
+ <th>${i18next.t('field.tax invoice day')}</th>
221
+ <th>${i18next.t('field.tax invoice item name')}</th>
222
+ <th>${i18next.t('field.tax invoice ea')}</th>
223
+ <th>${i18next.t('field.tax invoice quantity')}</th>
224
+ <th>${i18next.t('field.tax invoice price')}</th>
225
+ <th>${i18next.t('field.supply amount')}</th>
226
+ <th>${i18next.t('field.tax amount')}</th>
227
+ <th>${i18next.t('field.remark0')}</th>
228
+ </tr>
229
+
230
+ ${(_z = (_y = this.taxInvoice) === null || _y === void 0 ? void 0 : _y.taxInvoiceItems) === null || _z === void 0 ? void 0 : _z.map(item => html `
231
+ <tr>
232
+ <td>${item.supplyDate}</td>
233
+ <td>${item.supplyDate}</td>
234
+ <td>${item.itemName}</td>
235
+ <td>${item.specification}</td>
236
+ <td>${item.quantity}</td>
237
+ <td>${this._numberFormat(item.unitPrice)}</td>
238
+ <td>${this._numberFormat(item.supplyPrice)}</td>
239
+ <td>${this._numberFormat(item.taxPrice)}</td>
240
+ <td>${item.remark}</td>
241
+ </tr>
242
+ `)}
243
+ </table>
244
+ </div>
245
+
246
+ <div class="summary">
247
+ <table>
248
+ <colgroup>
249
+ <col width="20%" />
250
+ <col width="20%" />
251
+ <col width="20%" />
252
+ <col width="20%" />
253
+ <col width="20%" />
254
+ </colgroup>
255
+ <tr>
256
+ <th>${i18next.t('field.total amount')}</th>
257
+ <th>${i18next.t('field.tax invoice payment cash')}</th>
258
+ <th>${i18next.t('field.tax invoice payment check')}</th>
259
+ <th>${i18next.t('field.tax invoice payment promissory note')}</th>
260
+ <th>${i18next.t('field.tax invoice payment accounts receivable')}</th>
261
+ </tr>
262
+ <tr>
263
+ <td>${this._numberFormat((_0 = this.taxInvoice) === null || _0 === void 0 ? void 0 : _0.totalAmount)}</td>
264
+ <td>${this._numberFormat((_1 = this.taxInvoice) === null || _1 === void 0 ? void 0 : _1.paymentAmountCash)}</td>
265
+ <td>${this._numberFormat((_2 = this.taxInvoice) === null || _2 === void 0 ? void 0 : _2.paymentAmountCheck)}</td>
266
+ <td>${this._numberFormat((_3 = this.taxInvoice) === null || _3 === void 0 ? void 0 : _3.paymentAmountPromissoryNote)}</td>
267
+ <td>${this._numberFormat((_4 = this.taxInvoice) === null || _4 === void 0 ? void 0 : _4.paymentAmountAccountsReceivable)}</td>
268
+ </tr>
269
+ </table>
270
+ <div>${i18next.t('text.tax invoice description payment', { value: i18next.t(`text.tax invoice description purpose ${(_5 = this.taxInvoice) === null || _5 === void 0 ? void 0 : _5.purpose}`) })}</div>
271
+ </div>
272
+ </form>
273
+ </div>
274
+ `;
275
+ }
276
+ async pageInitialized(lifecycle) {
277
+ this._fetchSupplier();
278
+ }
279
+ async _fetchSupplier() {
280
+ const response = await client.query({
281
+ query: gql `
282
+ query TaxInvoiceApi() {
283
+ taxInvoiceApi() {
284
+ businessRegistrationNumber
285
+ branchIdentification
286
+ businessName
287
+ representativeName
288
+ address
289
+ businessType
290
+ industryType
291
+ department
292
+ contactName
293
+ contactPhone
294
+ contactEmail
295
+ contactCellPhone
296
+ }
297
+ }
298
+ `
299
+ });
300
+ console.log('response.data.responses : ', response.data.responses);
301
+ this.supplier = response.data.responses;
302
+ }
303
+ async pageUpdated(changes, lifecycle) {
304
+ if (this.active) {
305
+ // do something here when this page just became as active
306
+ }
307
+ }
308
+ async _sendTaxInvoice(num) {
309
+ console.log(this.taxInvoiceForm);
310
+ console.log(this.supplier);
311
+ return;
312
+ const response = await client.mutate({
313
+ mutation: gql `
314
+ mutation SendTaxInvoiceByApi($taxInvoice: NewTaxInvoice!, $taxInvoiceItems: [NewTaxInvoiceItem!]!) {
315
+ sendTaxInvoiceByApi(taxInvoice: $taxInvoice, taxInvoiceItems: $taxInvoiceItems) {
316
+ id
317
+ }
318
+ }
319
+ `,
320
+ variables: {
321
+ // taxInvoice,
322
+ // taxInvoiceItems
323
+ }
324
+ });
325
+ if (!response.errors) {
326
+ notify({
327
+ message: i18next.t('text.info_x_successfully', { x: i18next.t('text.delete') })
328
+ });
329
+ }
330
+ }
331
+ _numberFormat(value) {
332
+ return !value ? '' : new Intl.NumberFormat('en-US').format(value);
333
+ }
334
+ // Input 요소의 값이 변경될 때 호출되는 콜백 함수
335
+ _onInputTaxInvoice(event) {
336
+ const target = event.target;
337
+ this.supplier[target.name] = target.value;
338
+ }
339
+ };
340
+ TaxInvoiceSendPage.styles = [
341
+ ScrollbarStyles,
342
+ CommonGristStyles,
343
+ css `
344
+ :host {
345
+ display: flex;
346
+ flex-direction: column;
347
+
348
+ width: 100%;
349
+ min-width: 850px;
350
+ margin: 0 40px;
351
+
352
+ --grid-record-emphasized-background-color: red;
353
+ --grid-record-emphasized-color: yellow;
354
+ }
355
+
356
+ div.invoice-type {
357
+ font-size: 18px;
358
+ margin-top: 15px;
359
+ }
360
+
361
+ table {
362
+ border: solid;
363
+ border-width: 2px 0;
364
+ border-collapse: collapse;
365
+ border-spacing: 0;
366
+
367
+ input[type='text'] {
368
+ height: 14px;
369
+ margin: 0;
370
+ padding: 4px 5px 5px;
371
+ line-height: 14px;
372
+ border: 1px solid #bbb;
373
+ background: #fff;
374
+ letter-spacing: 0.5px;
375
+ }
376
+ }
377
+
378
+ .title table {
379
+ border-color: #d3dbe5;
380
+ width: 100%;
381
+ height: 33px;
382
+ margin-top: 10px;
383
+ font-size: 12px;
384
+
385
+ th {
386
+ font-size: 13px;
387
+ background-color: #e9edf6;
388
+ min-width: 140px;
389
+ }
390
+ td {
391
+ width: 50%;
392
+ padding-left: 10px;
393
+
394
+ & > * {
395
+ vertical-align: middle;
396
+ }
397
+ & > input {
398
+ margin: 0 5px 0 1px;
399
+ }
400
+ }
401
+ }
402
+
403
+ div.body {
404
+ margin-top: 15px;
405
+ font-size: 14px;
406
+
407
+ div.data {
408
+ display: flex;
409
+ margin-top: 5px;
410
+
411
+ table {
412
+ flex: 1;
413
+
414
+ td,
415
+ th {
416
+ padding: 5px;
417
+ }
418
+ th.target {
419
+ width: 25px;
420
+ writing-mode: vertical-rl;
421
+ }
422
+
423
+ &.supplier {
424
+ border-color: #f64843;
425
+
426
+ td,
427
+ th {
428
+ background-color: #fef5f7;
429
+ border: solid 1.5px #f5b1b1;
430
+ }
431
+ th.target {
432
+ background-color: #fedbde;
433
+ }
434
+ }
435
+ &.buyer {
436
+ border-color: #007ed9;
437
+
438
+ td,
439
+ th {
440
+ background-color: #f7f7ff;
441
+ border: solid 1.5px #a7bcff;
442
+ }
443
+ th.target {
444
+ background-color: #c6daf6;
445
+ }
446
+ }
447
+ }
448
+ }
449
+
450
+ div.items,
451
+ div.info,
452
+ div.summary {
453
+ margin-top: 15px;
454
+
455
+ table {
456
+ width: 100%;
457
+ border-color: #000;
458
+ border-width: 2px 0px 0px 0px;
459
+
460
+ th {
461
+ background-color: #e9edf5;
462
+ }
463
+ th,
464
+ td {
465
+ border: solid 1.5px #c4d2ff;
466
+ padding: 5px;
467
+ text-align: center;
468
+ }
469
+ }
470
+ }
471
+
472
+ div.summary {
473
+ display: flex;
474
+
475
+ & > table {
476
+ flex: 6.7;
477
+ }
478
+ & > div {
479
+ flex: 3.2;
480
+ display: flex;
481
+ justify-content: center;
482
+ align-items: center;
483
+ border: 1.5px solid #c4d2ff;
484
+ border-top: 2px solid #000;
485
+ }
486
+ }
487
+ }
488
+ `
489
+ ];
490
+ __decorate([
491
+ query('form[name="tax-invoice-form"]'),
492
+ __metadata("design:type", HTMLFormElement)
493
+ ], TaxInvoiceSendPage.prototype, "taxInvoiceForm", void 0);
494
+ __decorate([
495
+ state(),
496
+ __metadata("design:type", Object)
497
+ ], TaxInvoiceSendPage.prototype, "supplier", void 0);
498
+ __decorate([
499
+ property(),
500
+ __metadata("design:type", Object)
501
+ ], TaxInvoiceSendPage.prototype, "buyer", void 0);
502
+ __decorate([
503
+ property(),
504
+ __metadata("design:type", Object)
505
+ ], TaxInvoiceSendPage.prototype, "taxInvoice", void 0);
506
+ TaxInvoiceSendPage = __decorate([
507
+ customElement('tax-invoice-send-page')
508
+ ], TaxInvoiceSendPage);
509
+ export { TaxInvoiceSendPage };
510
+ //# sourceMappingURL=tax-invoice-send-page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tax-invoice-send-page.js","sourceRoot":"","sources":["../../../client/pages/tax-invoice-send/tax-invoice-send-page.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/data-grist'\n\nimport { CommonButtonStyles, CommonGristStyles, ScrollbarStyles } from '@operato/styles'\nimport { PageView } from '@operato/shell'\nimport { css, html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { ScopedElementsMixin } from '@open-wc/scoped-elements'\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { notify } from '@operato/layout'\nimport gql from 'graphql-tag'\nimport { BUSINESS_REGISTRATION_CATEGORY, BusinessRegistrationCategory, Category, INVOICE_TYPE, InvoiceType, Purpose } from '../tax-invoice/tax-invoice-list-page'\n\nconst SHORT_INVOICE_TYPE = {\n TAX_INVOICE: {\n [InvoiceType.TAX_INVOICE]: '일반',\n [InvoiceType.SMALL_BUSINESS_TAX_INVOICE]: '영세율',\n [InvoiceType.CONSIGNMENT_TAX_INVOICE]: '위수탁',\n [InvoiceType.SMALL_BUSINESS_CONSIGNMENT_TAX_INVOICE]: '위수탁영세율'\n },\n INVOICE: {\n [InvoiceType.INVOICE]: '일반',\n [InvoiceType.CONSIGNMENT_INVOICE]: '위수탁'\n // [InvoiceType.IMPORT_INVOICE]: INVOICE_TYPE[IMPORT_INVOICE],\n }\n}\n\nconst SHORT_BUSINESS_REGISTRATION_CATEGORY = {\n [BusinessRegistrationCategory.BUSINESS_REGISTRATION_NUMBER]: '사업자',\n [BusinessRegistrationCategory.RESIDENT_REGISTRATION_NUMBER]: '개인',\n [BusinessRegistrationCategory.FOREIGNER_REGISTRATION_NUMBER]: '외국인'\n}\n\ninterface Supplier {\n supplierBusinessRegistrationNumber: string\n supplierBranchIdentification?: string\n supplierBusinessName: string\n supplierRepresentativeName: string\n supplierAddress?: string\n supplierBusinessType?: string\n supplierIndustryType?: string\n supplierDepartment?: string\n supplierContactName?: string\n supplierContactPhone?: string\n supplierContactEmail?: string\n supplierContactCellPhone?: string\n}\ninterface Buyer {\n buyerBusinessRegistrationCategory: BusinessRegistrationCategory\n buyerBusinessRegistrationNumber: string\n buyerBranchIdentification?: string\n buyerBusinessName: string\n buyerRepresentativeName: string\n buyerAddress?: string\n buyerBusinessType?: string\n buyerIndustryType?: string\n buyer1stDepartment?: string\n buyer1stContactName?: string\n buyer1stContactPhone?: string\n buyer1stContactEmail?: string\n buyer1stContactCellPhone?: string\n buyer2ndDepartment?: string\n buyer2ndContactName?: string\n buyer2ndContactPhone?: string\n buyer2ndContactEmail?: string\n buyer2ndContactCellPhone?: string\n}\ninterface TaxInvoice {\n category: Category\n issueNo?: string\n approvalNo?: string\n originalApprovalNo?: string\n issueDate: Date | null\n signatureDate?: Date\n invoiceType: InvoiceType\n purpose: Purpose\n remark0?: string\n remark1?: string\n remark2?: string\n paymentAmountCash?: number\n paymentAmountCheck?: number\n paymentAmountPromissoryNote?: number\n paymentAmountAccountsReceivable?: number\n supplyAmount: number\n taxAmount?: number\n totalAmount: number\n taxInvoiceItems?: TaxInvoiceItem[]\n // revisedReason?: RevisedReason\n}\ninterface TaxInvoiceItem {\n sequence?: number\n supplyDate: Date\n itemName: string\n specification: string\n quantity: number\n unitPrice: number\n supplyPrice: number\n taxPrice: number\n remark?: string\n}\n\n@customElement('tax-invoice-send-page')\nexport class TaxInvoiceSendPage extends localize(i18next)(ScopedElementsMixin(PageView)) {\n static styles = [\n ScrollbarStyles,\n CommonGristStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n width: 100%;\n min-width: 850px;\n margin: 0 40px;\n\n --grid-record-emphasized-background-color: red;\n --grid-record-emphasized-color: yellow;\n }\n\n div.invoice-type {\n font-size: 18px;\n margin-top: 15px;\n }\n\n table {\n border: solid;\n border-width: 2px 0;\n border-collapse: collapse;\n border-spacing: 0;\n\n input[type='text'] {\n height: 14px;\n margin: 0;\n padding: 4px 5px 5px;\n line-height: 14px;\n border: 1px solid #bbb;\n background: #fff;\n letter-spacing: 0.5px;\n }\n }\n\n .title table {\n border-color: #d3dbe5;\n width: 100%;\n height: 33px;\n margin-top: 10px;\n font-size: 12px;\n\n th {\n font-size: 13px;\n background-color: #e9edf6;\n min-width: 140px;\n }\n td {\n width: 50%;\n padding-left: 10px;\n\n & > * {\n vertical-align: middle;\n }\n & > input {\n margin: 0 5px 0 1px;\n }\n }\n }\n\n div.body {\n margin-top: 15px;\n font-size: 14px;\n\n div.data {\n display: flex;\n margin-top: 5px;\n\n table {\n flex: 1;\n\n td,\n th {\n padding: 5px;\n }\n th.target {\n width: 25px;\n writing-mode: vertical-rl;\n }\n\n &.supplier {\n border-color: #f64843;\n\n td,\n th {\n background-color: #fef5f7;\n border: solid 1.5px #f5b1b1;\n }\n th.target {\n background-color: #fedbde;\n }\n }\n &.buyer {\n border-color: #007ed9;\n\n td,\n th {\n background-color: #f7f7ff;\n border: solid 1.5px #a7bcff;\n }\n th.target {\n background-color: #c6daf6;\n }\n }\n }\n }\n\n div.items,\n div.info,\n div.summary {\n margin-top: 15px;\n\n table {\n width: 100%;\n border-color: #000;\n border-width: 2px 0px 0px 0px;\n\n th {\n background-color: #e9edf5;\n }\n th,\n td {\n border: solid 1.5px #c4d2ff;\n padding: 5px;\n text-align: center;\n }\n }\n }\n\n div.summary {\n display: flex;\n\n & > table {\n flex: 6.7;\n }\n & > div {\n flex: 3.2;\n display: flex;\n justify-content: center;\n align-items: center;\n border: 1.5px solid #c4d2ff;\n border-top: 2px solid #000;\n }\n }\n }\n `\n ]\n\n @query('form[name=\"tax-invoice-form\"]') private taxInvoiceForm!: HTMLFormElement\n\n @state() supplier: Supplier = {\n supplierBusinessRegistrationNumber: '',\n supplierBusinessName: '',\n supplierRepresentativeName: ''\n }\n @property() buyer: Buyer = {\n buyerBusinessRegistrationCategory: BusinessRegistrationCategory.BUSINESS_REGISTRATION_NUMBER,\n buyerBusinessRegistrationNumber: '',\n buyerBusinessName: '',\n buyerRepresentativeName: ''\n }\n @property() taxInvoice: TaxInvoice = {\n invoiceType: InvoiceType.TAX_INVOICE,\n category: Category.EXPORT,\n issueDate: null,\n purpose: Purpose.RECEIPT,\n supplyAmount: 0,\n totalAmount: 0\n }\n\n get context() {\n return {\n title: i18next.t('title.tax invoice send'),\n help: 'tax-invoice-send/tax-invoice-send',\n actions: [\n {\n title: i18next.t('button.tax invoice send'),\n action: this._sendTaxInvoice.bind(this),\n ...CommonButtonStyles.add\n }\n ]\n }\n }\n\n render() {\n return html`\n <div class=\"invoice-type\">\n * ${INVOICE_TYPE[this.taxInvoice?.invoiceType]} (${SHORT_BUSINESS_REGISTRATION_CATEGORY[this.buyer.buyerBusinessRegistrationCategory]})\n </div>\n\n <div class=\"title\">\n <table>\n <tr>\n <th>${i18next.t('field.short invoice type')}</th>\n <td>\n ${Object.keys(SHORT_INVOICE_TYPE['TAX_INVOICE']).map(key => {\n const disabled: boolean = key !== InvoiceType.TAX_INVOICE\n const checked: boolean = key === InvoiceType.TAX_INVOICE\n return html`\n <label for=\"${'tax_' + key}\">${SHORT_INVOICE_TYPE['TAX_INVOICE'][key]}</label>\n <input type=\"radio\" id=\"${'tax_' + key}\" value=\"${key}\" name=\"taxInvoice\" ?checked=${checked} ?disabled=${disabled} />\n `\n })}\n </td>\n <th>${i18next.t('field.tax invoice buyer registration category')}</th>\n <td>\n ${Object.keys(BUSINESS_REGISTRATION_CATEGORY).map(key => {\n const disabled: boolean = key !== BusinessRegistrationCategory.BUSINESS_REGISTRATION_NUMBER\n const checked: boolean = key === BusinessRegistrationCategory.BUSINESS_REGISTRATION_NUMBER\n return html`\n <label for=\"${'tax_' + key}\">${BUSINESS_REGISTRATION_CATEGORY[key]}</label>\n <input type=\"radio\" id=\"${'tax_' + key}\" value=\"${key}\" name=\"buyerBusinessRegistrationCategory\" ?checked=${checked} ?disabled=${disabled} />\n `\n })}\n </td>\n </tr>\n </table>\n </div>\n\n <div class=\"body\">\n <form id=\"tax-invoice-form\">\n <div class=\"data\">\n <table class=\"supplier\">\n <colgroup>\n <col width=\"150px\" />\n <col width=\"18%\" />\n <col width=\"32%\" />\n <col width=\"18%\" />\n <col width=\"32%\" />\n </colgroup>\n <tr>\n <th rowspan=\"6\" class=\"target\">${i18next.t('field.tax invoice supplier')}</th>\n <th>${i18next.t('field.short business registration number')}</th>\n <td><input type=\"text\" name=\"supplierBusinessRegistrationNumber\" .value=${this.supplier?.supplierBusinessRegistrationNumber || ''} readonly /></td>\n <th>${i18next.t('field.short branch identification')}</th>\n <td><input type=\"text\" name=\"supplierBranchIdentification\" .value=${this.supplier?.supplierBranchIdentification || ''} readonly /></td>\n </tr>\n <tr>\n <th>${i18next.t('field.short tax invoice business name')}</th>\n <td><input type=\"text\" name=\"supplierBusinessName\" .value=${this.supplier?.supplierBusinessName || ''} @input=${this._onInputTaxInvoice} /></td>\n <th>${i18next.t('field.short representative name')}</th>\n <td>${this.supplier?.supplierRepresentativeName}</td>\n </tr>\n <tr>\n <th>${i18next.t('field.address')}</th>\n <td colspan=\"3\">${this.supplier?.supplierAddress}</td>\n </tr>\n <tr>\n <th>${i18next.t('field.business type')}</th>\n <td>${this.supplier?.supplierBusinessType}</td>\n <th>${i18next.t('field.industry type')}</th>\n <td>${this.supplier?.supplierIndustryType}</td>\n </tr>\n <tr>\n <th rowspan=\"2\">${i18next.t('field.email')}</th>\n <td rowspan=\"2\" colspan=\"3\">${this.supplier?.supplierContactEmail}</td>\n </tr>\n <tr></tr>\n </table>\n\n <table class=\"buyer\">\n <colgroup>\n <col width=\"150px\" />\n <col width=\"18%\" />\n <col width=\"32%\" />\n <col width=\"18%\" />\n <col width=\"32%\" />\n </colgroup>\n <tr>\n <th rowspan=\"6\" class=\"target\">${i18next.t('field.tax invoice buyer')}</th>\n <th>${i18next.t('field.short business registration number')}</th>\n <td>${this.buyer?.buyerBusinessRegistrationNumber}</td>\n <th>${i18next.t('field.short branch identification')}</th>\n <td>${this.buyer?.buyerBranchIdentification}</td>\n </tr>\n <tr>\n <th>${i18next.t('field.short tax invoice business name')}</th>\n <td>${this.buyer?.buyerBusinessName}</td>\n <th>${i18next.t('field.short representative name')}</th>\n <td>${this.buyer?.buyerRepresentativeName}</td>\n </tr>\n <tr>\n <th>${i18next.t('field.address')}</th>\n <td colspan=\"3\">${this.buyer?.buyerAddress}</td>\n </tr>\n <tr>\n <th>${i18next.t('field.business type')}</th>\n <td>${this.buyer?.buyerBusinessType}</td>\n <th>${i18next.t('field.industry type')}</th>\n <td>${this.buyer?.buyerIndustryType}</td>\n </tr>\n <tr>\n <th>${i18next.t('field.email')}</th>\n <td colspan=\"3\">${this.buyer?.buyer1stContactEmail}</td>\n </tr>\n <tr>\n <th>${i18next.t('field.email')}</th>\n <td colspan=\"3\">${this.buyer?.buyer2ndContactEmail}</td>\n </tr>\n </table>\n </div>\n\n <div class=\"info\">\n <table>\n <colgroup>\n <col width=\"15%\" />\n <col width=\"15%\" />\n <col width=\"15%\" />\n <col width=\"40%\" />\n </colgroup>\n <tr>\n <th>${i18next.t('field.issue date')}</th>\n <th>${i18next.t('field.supply amount')}</th>\n <th>${i18next.t('field.tax amount')}</th>\n <th>${i18next.t('field.remark0')}</th>\n </tr>\n <tr>\n <td>${this.taxInvoice?.issueDate}</td>\n <td>${this._numberFormat(this.taxInvoice?.supplyAmount)}</td>\n <td>${this._numberFormat(this.taxInvoice?.taxAmount)}</td>\n <td>${this.taxInvoice?.remark0}</td>\n </tr>\n </table>\n </div>\n\n <div class=\"items\">\n <table>\n <colgroup>\n <col width=\"4%\" />\n <col width=\"4%\" />\n <col width=\"15%\" />\n <col width=\"9%\" />\n <col width=\"9%\" />\n <col width=\"13%\" />\n <col width=\"13%\" />\n <col width=\"13%\" />\n <col width=\"20%\" />\n </colgroup>\n <tr>\n <th>${i18next.t('field.tax invoice month')}</th>\n <th>${i18next.t('field.tax invoice day')}</th>\n <th>${i18next.t('field.tax invoice item name')}</th>\n <th>${i18next.t('field.tax invoice ea')}</th>\n <th>${i18next.t('field.tax invoice quantity')}</th>\n <th>${i18next.t('field.tax invoice price')}</th>\n <th>${i18next.t('field.supply amount')}</th>\n <th>${i18next.t('field.tax amount')}</th>\n <th>${i18next.t('field.remark0')}</th>\n </tr>\n\n ${this.taxInvoice?.taxInvoiceItems?.map(\n item =>\n html`\n <tr>\n <td>${item.supplyDate}</td>\n <td>${item.supplyDate}</td>\n <td>${item.itemName}</td>\n <td>${item.specification}</td>\n <td>${item.quantity}</td>\n <td>${this._numberFormat(item.unitPrice)}</td>\n <td>${this._numberFormat(item.supplyPrice)}</td>\n <td>${this._numberFormat(item.taxPrice)}</td>\n <td>${item.remark}</td>\n </tr>\n `\n )}\n </table>\n </div>\n\n <div class=\"summary\">\n <table>\n <colgroup>\n <col width=\"20%\" />\n <col width=\"20%\" />\n <col width=\"20%\" />\n <col width=\"20%\" />\n <col width=\"20%\" />\n </colgroup>\n <tr>\n <th>${i18next.t('field.total amount')}</th>\n <th>${i18next.t('field.tax invoice payment cash')}</th>\n <th>${i18next.t('field.tax invoice payment check')}</th>\n <th>${i18next.t('field.tax invoice payment promissory note')}</th>\n <th>${i18next.t('field.tax invoice payment accounts receivable')}</th>\n </tr>\n <tr>\n <td>${this._numberFormat(this.taxInvoice?.totalAmount)}</td>\n <td>${this._numberFormat(this.taxInvoice?.paymentAmountCash)}</td>\n <td>${this._numberFormat(this.taxInvoice?.paymentAmountCheck)}</td>\n <td>${this._numberFormat(this.taxInvoice?.paymentAmountPromissoryNote)}</td>\n <td>${this._numberFormat(this.taxInvoice?.paymentAmountAccountsReceivable)}</td>\n </tr>\n </table>\n <div>${i18next.t('text.tax invoice description payment', { value: i18next.t(`text.tax invoice description purpose ${this.taxInvoice?.purpose}`) })}</div>\n </div>\n </form>\n </div>\n `\n }\n\n async pageInitialized(lifecycle: any) {\n this._fetchSupplier()\n }\n\n async _fetchSupplier() {\n const response = await client.query({\n query: gql`\n query TaxInvoiceApi() {\n taxInvoiceApi() {\n businessRegistrationNumber\n branchIdentification\n businessName\n representativeName\n address\n businessType\n industryType\n department\n contactName\n contactPhone\n contactEmail\n contactCellPhone\n }\n }\n `\n })\n\n console.log('response.data.responses : ', response.data.responses)\n\n this.supplier = response.data.responses\n }\n\n async pageUpdated(changes: any, lifecycle: any) {\n if (this.active) {\n // do something here when this page just became as active\n }\n }\n\n async _sendTaxInvoice(num: string) {\n console.log(this.taxInvoiceForm)\n console.log(this.supplier)\n\n return\n\n const response = await client.mutate({\n mutation: gql`\n mutation SendTaxInvoiceByApi($taxInvoice: NewTaxInvoice!, $taxInvoiceItems: [NewTaxInvoiceItem!]!) {\n sendTaxInvoiceByApi(taxInvoice: $taxInvoice, taxInvoiceItems: $taxInvoiceItems) {\n id\n }\n }\n `,\n variables: {\n // taxInvoice,\n // taxInvoiceItems\n }\n })\n\n if (!response.errors) {\n notify({\n message: i18next.t('text.info_x_successfully', { x: i18next.t('text.delete') })\n })\n }\n }\n\n private _numberFormat(value: number | undefined): string {\n return !value ? '' : new Intl.NumberFormat('en-US').format(value)\n }\n\n // Input 요소의 값이 변경될 때 호출되는 콜백 함수\n private _onInputTaxInvoice(event: InputEvent) {\n const target = event.target as HTMLInputElement\n this.supplier[target.name] = target.value\n }\n}\n"]}
@@ -1 +1 @@
1
- export default function route(page: string): "tax-invoice-main" | "tax-invoice-list" | "tax-invoice-company-list" | "tax-invoice-api" | "tax-audit-result-list" | undefined;
1
+ export default function route(page: string): "tax-invoice-list" | "tax-invoice-send" | "tax-invoice-company-list" | "tax-invoice-api" | "tax-audit-result-list" | undefined;
@@ -1,11 +1,11 @@
1
1
  export default function route(page) {
2
2
  switch (page) {
3
- case 'tax-invoice-main':
4
- import('./pages/main');
5
- return page;
6
3
  case 'tax-invoice-list':
7
4
  import('./pages/tax-invoice/tax-invoice-list-page');
8
5
  return page;
6
+ case 'tax-invoice-send':
7
+ // import('./pages/tax-invoice-send/tax-invoice-send-page')
8
+ return page;
9
9
  case 'tax-invoice-company-list':
10
10
  import('./pages/tax-invoice-company/tax-invoice-company-list-page');
11
11
  return page;
@@ -1 +1 @@
1
- {"version":3,"file":"route.js","sourceRoot":"","sources":["../client/route.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,IAAY;IACxC,QAAQ,IAAI,EAAE;QACZ,KAAK,kBAAkB;YACrB,MAAM,CAAC,cAAc,CAAC,CAAA;YACtB,OAAO,IAAI,CAAA;QAEb,KAAK,kBAAkB;YACrB,MAAM,CAAC,2CAA2C,CAAC,CAAA;YACnD,OAAO,IAAI,CAAA;QAEb,KAAK,0BAA0B;YAC7B,MAAM,CAAC,2DAA2D,CAAC,CAAA;YACnE,OAAO,IAAI,CAAA;QAEb,KAAK,iBAAiB;YACpB,MAAM,CAAC,8CAA8C,CAAC,CAAA;YACtD,OAAO,IAAI,CAAA;QAEb,KAAK,uBAAuB;YAC1B,MAAM,CAAC,qDAAqD,CAAC,CAAA;YAC7D,OAAO,IAAI,CAAA;KACd;AACH,CAAC","sourcesContent":["export default function route(page: string) {\n switch (page) {\n case 'tax-invoice-main':\n import('./pages/main')\n return page\n\n case 'tax-invoice-list':\n import('./pages/tax-invoice/tax-invoice-list-page')\n return page\n\n case 'tax-invoice-company-list':\n import('./pages/tax-invoice-company/tax-invoice-company-list-page')\n return page\n\n case 'tax-invoice-api':\n import('./pages/tax-invoice-api/tax-invoice-api-page')\n return page\n\n case 'tax-audit-result-list':\n import('./pages/tax-audit-result/tax-audit-result-list-page')\n return page\n }\n}\n"]}
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../client/route.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,IAAY;IACxC,QAAQ,IAAI,EAAE;QACZ,KAAK,kBAAkB;YACrB,MAAM,CAAC,2CAA2C,CAAC,CAAA;YACnD,OAAO,IAAI,CAAA;QAEb,KAAK,kBAAkB;YACrB,2DAA2D;YAC3D,OAAO,IAAI,CAAA;QAEb,KAAK,0BAA0B;YAC7B,MAAM,CAAC,2DAA2D,CAAC,CAAA;YACnE,OAAO,IAAI,CAAA;QAEb,KAAK,iBAAiB;YACpB,MAAM,CAAC,8CAA8C,CAAC,CAAA;YACtD,OAAO,IAAI,CAAA;QAEb,KAAK,uBAAuB;YAC1B,MAAM,CAAC,qDAAqD,CAAC,CAAA;YAC7D,OAAO,IAAI,CAAA;KACd;AACH,CAAC","sourcesContent":["export default function route(page: string) {\n switch (page) {\n case 'tax-invoice-list':\n import('./pages/tax-invoice/tax-invoice-list-page')\n return page\n\n case 'tax-invoice-send':\n // import('./pages/tax-invoice-send/tax-invoice-send-page')\n return page\n\n case 'tax-invoice-company-list':\n import('./pages/tax-invoice-company/tax-invoice-company-list-page')\n return page\n\n case 'tax-invoice-api':\n import('./pages/tax-invoice-api/tax-invoice-api-page')\n return page\n\n case 'tax-audit-result-list':\n import('./pages/tax-audit-result/tax-audit-result-list-page')\n return page\n }\n}\n"]}