@things-factory/tax-invoice 8.0.64 → 8.0.67

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 (42) hide show
  1. package/client/index.ts +10 -0
  2. package/client/pages/tax-invoice-api/tax-invoice-api-page.ts +6 -1
  3. package/client/pages/tax-invoice-send/company-list-popup.ts +2 -1
  4. package/client/pages/tax-invoice-send/tax-invoice-send-page.ts +2 -7
  5. package/client/pages/tax-invoice-send/tax-invoice-send.ts +92 -20
  6. package/dist-client/index.d.ts +1 -0
  7. package/dist-client/index.js +1 -1
  8. package/dist-client/index.js.map +1 -1
  9. package/dist-client/pages/tax-invoice-api/tax-invoice-api-page.js +6 -1
  10. package/dist-client/pages/tax-invoice-api/tax-invoice-api-page.js.map +1 -1
  11. package/dist-client/pages/tax-invoice-send/company-list-popup.js +7 -3
  12. package/dist-client/pages/tax-invoice-send/company-list-popup.js.map +1 -1
  13. package/dist-client/pages/tax-invoice-send/tax-invoice-send-page.js +2 -7
  14. package/dist-client/pages/tax-invoice-send/tax-invoice-send-page.js.map +1 -1
  15. package/dist-client/pages/tax-invoice-send/tax-invoice-send.d.ts +1 -0
  16. package/dist-client/pages/tax-invoice-send/tax-invoice-send.js +119 -48
  17. package/dist-client/pages/tax-invoice-send/tax-invoice-send.js.map +1 -1
  18. package/dist-client/tsconfig.tsbuildinfo +1 -1
  19. package/dist-server/service/index.d.ts +2 -2
  20. package/dist-server/service/tax-invoice/tax-invoice-query.js +1 -1
  21. package/dist-server/service/tax-invoice/tax-invoice-query.js.map +1 -1
  22. package/dist-server/service/tax-invoice/tax-invoice.d.ts +1 -0
  23. package/dist-server/service/tax-invoice/tax-invoice.js +5 -0
  24. package/dist-server/service/tax-invoice/tax-invoice.js.map +1 -1
  25. package/dist-server/service/tax-invoice-api/index.d.ts +1 -1
  26. package/dist-server/service/tax-invoice-api/tax-invoice-api-mutation.d.ts +2 -0
  27. package/dist-server/service/tax-invoice-api/tax-invoice-api-mutation.js +14 -4
  28. package/dist-server/service/tax-invoice-api/tax-invoice-api-mutation.js.map +1 -1
  29. package/dist-server/service/tax-invoice-api/tax-invoice-api-query.d.ts +1 -0
  30. package/dist-server/service/tax-invoice-api/tax-invoice-api-query.js +11 -0
  31. package/dist-server/service/tax-invoice-api/tax-invoice-api-query.js.map +1 -1
  32. package/dist-server/service/tax-invoice-api/tax-invoice-api-type.d.ts +1 -0
  33. package/dist-server/service/tax-invoice-api/tax-invoice-api-type.js +4 -0
  34. package/dist-server/service/tax-invoice-api/tax-invoice-api-type.js.map +1 -1
  35. package/dist-server/tsconfig.tsbuildinfo +1 -1
  36. package/package.json +2 -2
  37. package/server/service/tax-invoice/tax-invoice-query.ts +1 -1
  38. package/server/service/tax-invoice/tax-invoice.ts +4 -0
  39. package/server/service/tax-invoice-api/tax-invoice-api-mutation.ts +30 -7
  40. package/server/service/tax-invoice-api/tax-invoice-api-query.ts +6 -0
  41. package/server/service/tax-invoice-api/tax-invoice-api-type.ts +3 -0
  42. package/things-factory.config.js +8 -2
@@ -1 +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 { CustomAlert, PageView } from '@operato/shell'\nimport { css, html } from 'lit'\nimport { customElement, 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 { BusinessRegistrationCategory, Category, InvoiceType, Purpose } from '../tax-invoice/tax-invoice-list-page'\nimport { CompanyListPopup } from './company-list-popup'\nimport { Supplier, Buyer, TaxInvoice, TaxInvoiceItem } from './tax-invoice-send'\nimport './tax-invoice-send'\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 }\n `\n ]\n\n static get scopedElements() {\n return {\n 'company-list-popup': CompanyListPopup\n }\n }\n\n // 오늘 날짜 YYYY-MM-DD 형식으로 뽑기\n private today: string = new Intl.DateTimeFormat('fr-CA', { timeZone: 'Asia/Seoul' }).format(new Date())\n\n private defaultSupplier = {\n supplierBusinessRegistrationCategory: '01',\n supplierBusinessRegistrationNumber: '',\n supplierBranchIdentification: '',\n supplierBusinessName: '',\n supplierRepresentativeName: ''\n }\n @state() supplier: Supplier = this.defaultSupplier\n\n private defaultBuyer = {\n buyerBusinessRegistrationCategory: BusinessRegistrationCategory.BUSINESS_REGISTRATION_NUMBER,\n buyerBusinessRegistrationNumber: '',\n buyerBusinessName: '',\n buyerRepresentativeName: ''\n }\n @state() buyer: Buyer = this.defaultBuyer\n\n private defaultTaxInvoice = {\n invoiceType: InvoiceType.TAX_INVOICE,\n category: Category.EXPORT,\n issueDate: this.today,\n purpose: Purpose.INVOICE,\n supplyAmount: 0,\n taxAmount: 0,\n totalAmount: 0\n }\n @state() taxInvoice: TaxInvoice = this.defaultTaxInvoice\n\n private defaultTaxInvoiceItem = {\n sequence: new Date().getTime(), // 구분용 임시 값 (중복되면 안되니 생성 마다 넣어주기)\n supplyDate: '',\n itemName: '',\n specification: '',\n quantity: 0,\n unitPrice: 0,\n supplyPrice: 0,\n taxPrice: 0\n }\n @state() taxInvoiceItems: TaxInvoiceItem[] = [{ ...this.defaultTaxInvoiceItem }]\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` <tax-invoice-send></tax-invoice-send> `\n }\n\n async _sendTaxInvoice() {\n // 아이템 시퀀스 재 할당 + 날짜, 품목, 규격, 수량이 없으면 필터\n let taxInvoiceItems = this.taxInvoiceItems.map((item, idx) => ({\n ...item,\n sequence: idx + 1,\n quantity: Number(item.quantity),\n unitPrice: Number(item.unitPrice)\n }))\n taxInvoiceItems = taxInvoiceItems.filter(\n item => item.supplyDate && item.itemName && item.quantity && item.unitPrice\n )\n\n // taxInvoice 데이터 생성 및 타입 변환\n let taxInvoice = { ...this.taxInvoice, ...this.supplier, ...this.buyer }\n taxInvoice.paymentAmountCash = Number(taxInvoice.paymentAmountCash || 0)\n taxInvoice.paymentAmountCheck = Number(taxInvoice.paymentAmountCheck || 0)\n taxInvoice.paymentAmountPromissoryNote = Number(taxInvoice.paymentAmountPromissoryNote || 0)\n taxInvoice.paymentAmountAccountsReceivable = Number(taxInvoice.paymentAmountAccountsReceivable || 0)\n taxInvoice.supplyAmount = Number(taxInvoice.supplyAmount || 0)\n taxInvoice.taxAmount = Number(taxInvoice.taxAmount || 0)\n taxInvoice.buyerBusinessRegistrationNumber = taxInvoice.buyerBusinessRegistrationNumber.replace(/-/gi, '')\n taxInvoice.supplierBusinessRegistrationNumber = taxInvoice.supplierBusinessRegistrationNumber.replace(/-/gi, '')\n\n // 공급받는자 필수 값 체크\n if (\n !this.buyer.buyerBusinessRegistrationNumber ||\n !this.buyer.buyerBusinessName ||\n !this.buyer.buyerRepresentativeName\n ) {\n await CustomAlert({\n type: 'warning',\n title: '공급받는자 필수 값을 모두 입력해 주세요.',\n text: '공급받는자 필수 값을 모두 입력해 주세요.',\n confirmButton: { text: i18next.t('button.confirm') }\n })\n return\n }\n\n // 아이템 개수 체크\n if (taxInvoiceItems.length === 0) {\n await CustomAlert({\n type: 'warning',\n title: '등록 가능한 아이템의 개수는 1개 이상이여야 합니다.',\n text: '등록 가능한 아이템의 개수는 1개 이상이여야 합니다.',\n confirmButton: { text: i18next.t('button.confirm') }\n })\n return\n }\n\n // 세금이 없는 타입인데 세금이 있는지 체크\n if (taxInvoice.invoiceType === InvoiceType.SMALL_BUSINESS_TAX_INVOICE && taxInvoice.taxAmount > 0) {\n await CustomAlert({\n type: 'warning',\n title: '세금이 0원이 아닙니다.',\n text: '세금이 0원이 아닙니다.',\n confirmButton: { text: i18next.t('button.confirm') }\n })\n return\n }\n\n // 현금, 수표, 어음, 외상미수금의 합계 = 총 합계금액 체크\n const paymentAmount: number =\n taxInvoice.paymentAmountCash +\n taxInvoice.paymentAmountCheck +\n taxInvoice.paymentAmountPromissoryNote +\n taxInvoice.paymentAmountAccountsReceivable\n if (paymentAmount > 0 && paymentAmount !== taxInvoice.totalAmount) {\n await CustomAlert({\n type: 'warning',\n title: '현금, 수표, 어음, 외상미수금의 합계는 총 합계금액과 동일해야 합니다.',\n text: '현금, 수표, 어음, 외상미수금의 합계는 총 합계금액과 동일해야 합니다.',\n confirmButton: { text: i18next.t('button.confirm') }\n })\n return\n }\n\n const response = await client.mutate({\n mutation: gql`\n mutation SendTaxInvoicesByApi($taxInvoiceSendList: [TaxInvoiceSend!]!) {\n response: sendTaxInvoicesByApi(taxInvoiceSendList: $taxInvoiceSendList)\n }\n `,\n variables: {\n taxInvoiceSendList: [\n {\n taxInvoice,\n taxInvoiceItems\n }\n ]\n }\n })\n\n if (!response.errors) {\n notify({ message: i18next.t('text.success tax send') })\n this.taxInvoice = this.defaultTaxInvoice\n this.supplier = this.defaultSupplier\n this.buyer = this.defaultBuyer\n this.taxInvoiceItems = [{ ...this.defaultTaxInvoiceItem }]\n }\n }\n}\n"]}
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 { CustomAlert, PageView } from '@operato/shell'\nimport { css, html } from 'lit'\nimport { customElement, 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 { BusinessRegistrationCategory, Category, InvoiceType, Purpose } from '../tax-invoice/tax-invoice-list-page'\nimport { CompanyListPopup } from './company-list-popup'\nimport { Supplier, Buyer, TaxInvoice, TaxInvoiceItem } from './tax-invoice-send'\nimport './tax-invoice-send'\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 }\n `\n ]\n\n static get scopedElements() {\n return {\n 'company-list-popup': CompanyListPopup\n }\n }\n\n // 오늘 날짜 YYYY-MM-DD 형식으로 뽑기\n private today: string = new Intl.DateTimeFormat('fr-CA', { timeZone: 'Asia/Seoul' }).format(new Date())\n\n private defaultSupplier = {\n supplierBusinessRegistrationCategory: '01',\n supplierBusinessRegistrationNumber: '',\n supplierBranchIdentification: '',\n supplierBusinessName: '',\n supplierRepresentativeName: ''\n }\n @state() supplier: Supplier = this.defaultSupplier\n\n private defaultBuyer = {\n buyerBusinessRegistrationCategory: BusinessRegistrationCategory.BUSINESS_REGISTRATION_NUMBER,\n buyerBusinessRegistrationNumber: '',\n buyerBusinessName: '',\n buyerRepresentativeName: ''\n }\n @state() buyer: Buyer = this.defaultBuyer\n\n private defaultTaxInvoice = {\n invoiceType: InvoiceType.TAX_INVOICE,\n category: Category.EXPORT,\n issueDate: this.today,\n purpose: Purpose.INVOICE,\n supplyAmount: 0,\n taxAmount: 0,\n totalAmount: 0\n }\n @state() taxInvoice: TaxInvoice = this.defaultTaxInvoice\n\n private defaultTaxInvoiceItem = {\n sequence: new Date().getTime(), // 구분용 임시 값 (중복되면 안되니 생성 마다 넣어주기)\n supplyDate: '',\n itemName: '',\n specification: '',\n quantity: 0,\n unitPrice: 0,\n supplyPrice: 0,\n taxPrice: 0\n }\n @state() taxInvoiceItems: TaxInvoiceItem[] = [{ ...this.defaultTaxInvoiceItem }]\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` <tax-invoice-send .editMode=${true}></tax-invoice-send> `\n }\n\n async _sendTaxInvoice() {\n // 아이템 시퀀스 재 할당 + 날짜, 품목, 규격, 수량이 없으면 필터\n let taxInvoiceItems = this.taxInvoiceItems.map((item, idx) => ({\n ...item,\n sequence: idx + 1,\n quantity: Number(item.quantity),\n unitPrice: Number(item.unitPrice)\n }))\n taxInvoiceItems = taxInvoiceItems.filter(\n item => item.supplyDate && item.itemName && item.quantity && item.unitPrice\n )\n\n // taxInvoice 데이터 생성 및 타입 변환\n let taxInvoice = { ...this.taxInvoice, ...this.supplier, ...this.buyer }\n taxInvoice.paymentAmountCash = Number(taxInvoice.paymentAmountCash || 0)\n taxInvoice.paymentAmountCheck = Number(taxInvoice.paymentAmountCheck || 0)\n taxInvoice.paymentAmountPromissoryNote = Number(taxInvoice.paymentAmountPromissoryNote || 0)\n taxInvoice.paymentAmountAccountsReceivable = Number(taxInvoice.paymentAmountAccountsReceivable || 0)\n taxInvoice.supplyAmount = Number(taxInvoice.supplyAmount || 0)\n taxInvoice.taxAmount = Number(taxInvoice.taxAmount || 0)\n taxInvoice.buyerBusinessRegistrationNumber = taxInvoice.buyerBusinessRegistrationNumber.replace(/-/gi, '')\n taxInvoice.supplierBusinessRegistrationNumber = taxInvoice.supplierBusinessRegistrationNumber.replace(/-/gi, '')\n\n // 공급받는자 필수 값 체크\n if (\n !this.buyer.buyerBusinessRegistrationNumber ||\n !this.buyer.buyerBusinessName ||\n !this.buyer.buyerRepresentativeName\n ) {\n await CustomAlert({\n type: 'warning',\n title: '공급받는자 필수 값을 모두 입력해 주세요.',\n text: '공급받는자 필수 값을 모두 입력해 주세요.',\n confirmButton: { text: i18next.t('button.confirm') }\n })\n return\n }\n\n // 아이템 개수 체크\n if (taxInvoiceItems.length === 0) {\n await CustomAlert({\n type: 'warning',\n title: '등록 가능한 아이템의 개수는 1개 이상이여야 합니다.',\n text: '등록 가능한 아이템의 개수는 1개 이상이여야 합니다.',\n confirmButton: { text: i18next.t('button.confirm') }\n })\n return\n }\n\n // 세금이 없는 타입인데 세금이 있는지 체크\n if (taxInvoice.invoiceType === InvoiceType.SMALL_BUSINESS_TAX_INVOICE && taxInvoice.taxAmount > 0) {\n await CustomAlert({\n type: 'warning',\n title: '세금이 0원이 아닙니다.',\n text: '세금이 0원이 아닙니다.',\n confirmButton: { text: i18next.t('button.confirm') }\n })\n return\n }\n\n // 현금, 수표, 어음, 외상미수금의 합계 = 총 합계금액 체크\n const paymentAmount: number =\n taxInvoice.paymentAmountCash +\n taxInvoice.paymentAmountCheck +\n taxInvoice.paymentAmountPromissoryNote +\n taxInvoice.paymentAmountAccountsReceivable\n if (paymentAmount > 0 && paymentAmount !== taxInvoice.totalAmount) {\n await CustomAlert({\n type: 'warning',\n title: '현금, 수표, 어음, 외상미수금의 합계는 총 합계금액과 동일해야 합니다.',\n text: '현금, 수표, 어음, 외상미수금의 합계는 총 합계금액과 동일해야 합니다.',\n confirmButton: { text: i18next.t('button.confirm') }\n })\n return\n }\n\n const response = await client.mutate({\n mutation: gql`\n mutation SendTaxInvoicesByApi($taxInvoiceSendList: [TaxInvoiceSend!]!) {\n response: sendTaxInvoicesByApi(taxInvoiceSendList: $taxInvoiceSendList)\n }\n `,\n variables: {\n taxInvoiceSendList: [{ taxInvoice, taxInvoiceItems }]\n }\n })\n\n if (!response.errors) {\n notify({ message: i18next.t('text.success tax send') })\n this.taxInvoice = this.defaultTaxInvoice\n this.supplier = this.defaultSupplier\n this.buyer = this.defaultBuyer\n this.taxInvoiceItems = [{ ...this.defaultTaxInvoiceItem }]\n }\n }\n}\n"]}
@@ -93,6 +93,7 @@ export declare class TaxInvoiceSend extends TaxInvoiceSend_base {
93
93
  private defaultBuyer;
94
94
  private defaultTaxInvoice;
95
95
  private defaultTaxInvoiceItem;
96
+ editMode: boolean;
96
97
  supplier: Supplier;
97
98
  buyer: Buyer;
98
99
  taxInvoice: TaxInvoice;
@@ -65,18 +65,21 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
65
65
  supplyPrice: 0,
66
66
  taxPrice: 0
67
67
  };
68
+ this.editMode = true;
68
69
  this.supplier = this.defaultSupplier;
69
70
  this.buyer = this.defaultBuyer;
70
71
  this.taxInvoice = this.defaultTaxInvoice;
71
72
  this.taxInvoiceItems = [Object.assign({}, this.defaultTaxInvoiceItem)];
72
73
  }
73
74
  render() {
74
- 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;
75
+ 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;
76
+ const invoiceTypeKey = ((_a = this.taxInvoice) === null || _a === void 0 ? void 0 : _a.invoiceType) || InvoiceType.TAX_INVOICE;
77
+ const invoiceTypeLabel = INVOICE_TYPE[invoiceTypeKey] || '';
78
+ const buyerRegCategoryKey = ((_b = this.buyer) === null || _b === void 0 ? void 0 : _b.buyerBusinessRegistrationCategory) || BusinessRegistrationCategory.BUSINESS_REGISTRATION_NUMBER;
79
+ const buyerRegCategoryLabel = SHORT_BUSINESS_REGISTRATION_CATEGORY[buyerRegCategoryKey] || '';
80
+ const readOnly = !this.editMode;
75
81
  return html `
76
- <div class="invoice-type">
77
- * ${INVOICE_TYPE[(_a = this.taxInvoice) === null || _a === void 0 ? void 0 : _a.invoiceType]}
78
- (${SHORT_BUSINESS_REGISTRATION_CATEGORY[this.buyer.buyerBusinessRegistrationCategory]})
79
- </div>
82
+ <div class="invoice-type">* ${invoiceTypeLabel} (${buyerRegCategoryLabel})</div>
80
83
 
81
84
  <div class="title">
82
85
  <table>
@@ -87,16 +90,18 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
87
90
  const disabled = key !== InvoiceType.TAX_INVOICE && key !== InvoiceType.SMALL_BUSINESS_TAX_INVOICE;
88
91
  const checked = key === InvoiceType.TAX_INVOICE;
89
92
  return html `
90
- <label for="${'tax_' + key}">${SHORT_INVOICE_TYPE['TAX_INVOICE'][key]}</label>
91
- <input
92
- type="radio"
93
- id="${'tax_' + key}"
94
- .value="${key}"
95
- name="invoiceType"
96
- ?checked=${checked}
97
- ?disabled=${disabled}
98
- @change=${this._onInputTaxInvoice}
99
- />
93
+ <span class="radio-wrapper">
94
+ <label for="${'tax_' + key}">${SHORT_INVOICE_TYPE['TAX_INVOICE'][key]}</label>
95
+ <input
96
+ type="radio"
97
+ id="${'tax_' + key}"
98
+ .value="${key}"
99
+ name="invoiceType"
100
+ ?checked=${checked}
101
+ ?disabled=${disabled || readOnly}
102
+ @change=${this._onInputTaxInvoice}
103
+ />
104
+ </span>
100
105
  `;
101
106
  })}
102
107
  </td>
@@ -113,7 +118,7 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
113
118
  value="${key}"
114
119
  name="buyerBusinessRegistrationCategory"
115
120
  ?checked=${checked}
116
- ?disabled=${disabled}
121
+ ?disabled=${disabled || readOnly}
117
122
  />
118
123
  `;
119
124
  })}
@@ -125,7 +130,7 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
125
130
  <div class="body">
126
131
  <div class="header">
127
132
  <span><button @click=${this._openSupplierPopup}>공급처 선택</button></span>
128
- <span><button @click=${this._openBuyerPopup}>공급받는자 선택</button></span>
133
+ <span><button @click=${this._openBuyerPopup} ?disabled=${readOnly}>공급받는자 선택</button></span>
129
134
  </div>
130
135
 
131
136
  <div class="data">
@@ -141,10 +146,10 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
141
146
  <th rowspan="6" class="target">${i18next.t('field.tax invoice supplier')}</th>
142
147
  <th required>${i18next.t('field.short business registration number')}</th>
143
148
  <td>
144
- ${(_c = (_b = this.supplier) === null || _b === void 0 ? void 0 : _b.supplierBusinessRegistrationNumber) === null || _c === void 0 ? void 0 : _c.replace(/(\S{3})(\S{2})(\S{5})/g, '$1-$2-$3')}
149
+ ${(_d = (_c = this.supplier) === null || _c === void 0 ? void 0 : _c.supplierBusinessRegistrationNumber) === null || _d === void 0 ? void 0 : _d.replace(/(\S{3})(\S{2})(\S{5})/g, '$1-$2-$3')}
145
150
  </td>
146
151
  <th>${i18next.t('field.short branch identification')}</th>
147
- <td>${(_d = this.supplier) === null || _d === void 0 ? void 0 : _d.supplierBranchIdentification}</td>
152
+ <td>${(_e = this.supplier) === null || _e === void 0 ? void 0 : _e.supplierBranchIdentification}</td>
148
153
  </tr>
149
154
  <tr>
150
155
  <th required>${i18next.t('field.short tax invoice business name')}</th>
@@ -152,7 +157,7 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
152
157
  <input
153
158
  type="text"
154
159
  name="supplierBusinessName"
155
- .value=${((_e = this.supplier) === null || _e === void 0 ? void 0 : _e.supplierBusinessName) || ''}
160
+ .value=${((_f = this.supplier) === null || _f === void 0 ? void 0 : _f.supplierBusinessName) || ''}
156
161
  @input=${this._onInputTaxInvoice}
157
162
  />
158
163
  </td>
@@ -161,14 +166,14 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
161
166
  <input
162
167
  type="text"
163
168
  name="supplierRepresentativeName"
164
- .value=${((_f = this.supplier) === null || _f === void 0 ? void 0 : _f.supplierRepresentativeName) || ''}
169
+ .value=${((_g = this.supplier) === null || _g === void 0 ? void 0 : _g.supplierRepresentativeName) || ''}
165
170
  @input=${this._onInputTaxInvoice}
166
171
  />
167
172
  </td>
168
173
  </tr>
169
174
  <tr>
170
175
  <th>${i18next.t('field.address')}</th>
171
- <td colspan="3">${(_g = this.supplier) === null || _g === void 0 ? void 0 : _g.supplierAddress}</td>
176
+ <td colspan="3">${(_h = this.supplier) === null || _h === void 0 ? void 0 : _h.supplierAddress}</td>
172
177
  </tr>
173
178
  <tr>
174
179
  <th>${i18next.t('field.business type')}</th>
@@ -176,7 +181,7 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
176
181
  <input
177
182
  type="text"
178
183
  name="supplierBusinessType"
179
- .value=${((_h = this.supplier) === null || _h === void 0 ? void 0 : _h.supplierBusinessType) || ''}
184
+ .value=${((_j = this.supplier) === null || _j === void 0 ? void 0 : _j.supplierBusinessType) || ''}
180
185
  @input=${this._onInputTaxInvoice}
181
186
  />
182
187
  </td>
@@ -185,7 +190,7 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
185
190
  <input
186
191
  type="text"
187
192
  name="supplierIndustryType"
188
- .value=${((_j = this.supplier) === null || _j === void 0 ? void 0 : _j.supplierIndustryType) || ''}
193
+ .value=${((_k = this.supplier) === null || _k === void 0 ? void 0 : _k.supplierIndustryType) || ''}
189
194
  @input=${this._onInputTaxInvoice}
190
195
  />
191
196
  </td>
@@ -196,7 +201,7 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
196
201
  <input
197
202
  type="text"
198
203
  name="supplierContactEmail"
199
- .value=${((_k = this.supplier) === null || _k === void 0 ? void 0 : _k.supplierContactEmail) || ''}
204
+ .value=${((_l = this.supplier) === null || _l === void 0 ? void 0 : _l.supplierContactEmail) || ''}
200
205
  @input=${this._onInputTaxInvoice}
201
206
  />
202
207
  </td>
@@ -220,8 +225,9 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
220
225
  type="text"
221
226
  maxlength="10"
222
227
  name="buyerBusinessRegistrationNumber"
223
- .value=${((_l = this.buyer) === null || _l === void 0 ? void 0 : _l.buyerBusinessRegistrationNumber) || ''}
228
+ .value=${((_m = this.buyer) === null || _m === void 0 ? void 0 : _m.buyerBusinessRegistrationNumber) || ''}
224
229
  @input=${this._onInputTaxInvoice}
230
+ ?disabled=${readOnly}
225
231
  />
226
232
  </td>
227
233
  <th>${i18next.t('field.short branch identification')}</th>
@@ -229,8 +235,9 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
229
235
  <input
230
236
  type="text"
231
237
  name="buyerBranchIdentification"
232
- .value=${((_m = this.buyer) === null || _m === void 0 ? void 0 : _m.buyerBranchIdentification) || ''}
238
+ .value=${((_o = this.buyer) === null || _o === void 0 ? void 0 : _o.buyerBranchIdentification) || ''}
233
239
  @input=${this._onInputTaxInvoice}
240
+ ?disabled=${readOnly}
234
241
  />
235
242
  </td>
236
243
  </tr>
@@ -240,8 +247,9 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
240
247
  <input
241
248
  type="text"
242
249
  name="buyerBusinessName"
243
- .value=${((_o = this.buyer) === null || _o === void 0 ? void 0 : _o.buyerBusinessName) || ''}
250
+ .value=${((_p = this.buyer) === null || _p === void 0 ? void 0 : _p.buyerBusinessName) || ''}
244
251
  @input=${this._onInputTaxInvoice}
252
+ ?disabled=${readOnly}
245
253
  />
246
254
  </td>
247
255
  <th required>${i18next.t('field.tax invoice representative name')}</th>
@@ -249,8 +257,9 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
249
257
  <input
250
258
  type="text"
251
259
  name="buyerRepresentativeName"
252
- .value=${((_p = this.buyer) === null || _p === void 0 ? void 0 : _p.buyerRepresentativeName) || ''}
260
+ .value=${((_q = this.buyer) === null || _q === void 0 ? void 0 : _q.buyerRepresentativeName) || ''}
253
261
  @input=${this._onInputTaxInvoice}
262
+ ?disabled=${readOnly}
254
263
  />
255
264
  </td>
256
265
  </tr>
@@ -260,8 +269,9 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
260
269
  <input
261
270
  type="text"
262
271
  name="buyerAddress"
263
- .value=${((_q = this.buyer) === null || _q === void 0 ? void 0 : _q.buyerAddress) || ''}
272
+ .value=${((_r = this.buyer) === null || _r === void 0 ? void 0 : _r.buyerAddress) || ''}
264
273
  @input=${this._onInputTaxInvoice}
274
+ ?disabled=${readOnly}
265
275
  />
266
276
  </td>
267
277
  </tr>
@@ -271,8 +281,9 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
271
281
  <input
272
282
  type="text"
273
283
  name="buyerBusinessType"
274
- .value=${((_r = this.buyer) === null || _r === void 0 ? void 0 : _r.buyerBusinessType) || ''}
284
+ .value=${((_s = this.buyer) === null || _s === void 0 ? void 0 : _s.buyerBusinessType) || ''}
275
285
  @input=${this._onInputTaxInvoice}
286
+ ?disabled=${readOnly}
276
287
  />
277
288
  </td>
278
289
 
@@ -281,8 +292,9 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
281
292
  <input
282
293
  type="text"
283
294
  name="buyerIndustryType"
284
- .value=${((_s = this.buyer) === null || _s === void 0 ? void 0 : _s.buyerIndustryType) || ''}
295
+ .value=${((_t = this.buyer) === null || _t === void 0 ? void 0 : _t.buyerIndustryType) || ''}
285
296
  @input=${this._onInputTaxInvoice}
297
+ ?disabled=${readOnly}
286
298
  />
287
299
  </td>
288
300
  </tr>
@@ -292,8 +304,9 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
292
304
  <input
293
305
  type="text"
294
306
  name="buyer1stContactEmail"
295
- .value=${((_t = this.buyer) === null || _t === void 0 ? void 0 : _t.buyer1stContactEmail) || ''}
307
+ .value=${((_u = this.buyer) === null || _u === void 0 ? void 0 : _u.buyer1stContactEmail) || ''}
296
308
  @input=${this._onInputTaxInvoice}
309
+ ?disabled=${readOnly}
297
310
  />
298
311
  </td>
299
312
  </tr>
@@ -303,8 +316,9 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
303
316
  <input
304
317
  type="text"
305
318
  name="buyer2ndContactEmail"
306
- .value=${((_u = this.buyer) === null || _u === void 0 ? void 0 : _u.buyer2ndContactEmail) || ''}
319
+ .value=${((_v = this.buyer) === null || _v === void 0 ? void 0 : _v.buyer2ndContactEmail) || ''}
307
320
  @input=${this._onInputTaxInvoice}
321
+ ?disabled=${readOnly}
308
322
  />
309
323
  </td>
310
324
  </tr>
@@ -320,6 +334,7 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
320
334
  name="issueDate"
321
335
  .value=${this.taxInvoice.issueDate}
322
336
  @input=${this._onInputTaxInvoice}
337
+ ?disabled=${readOnly}
323
338
  />
324
339
  <span class="desc">※ 작성일자는 공급 연월일을 의미함</span>
325
340
  </div>
@@ -328,18 +343,19 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
328
343
  <input
329
344
  type="text"
330
345
  name="remark0"
331
- .value=${((_v = this.taxInvoice) === null || _v === void 0 ? void 0 : _v.remark0) || ''}
346
+ .value=${((_w = this.taxInvoice) === null || _w === void 0 ? void 0 : _w.remark0) || ''}
332
347
  @input=${this._onInputTaxInvoice}
348
+ ?disabled=${readOnly}
333
349
  />
334
350
  </div>
335
351
  </div>
336
352
  <div class="flex-row">
337
353
  <div class="title">${i18next.t('field.total amount')}</div>
338
- <div class="value">${this._numberFormat((_w = this.taxInvoice) === null || _w === void 0 ? void 0 : _w.totalAmount)}</div>
354
+ <div class="value">${this._numberFormat((_x = this.taxInvoice) === null || _x === void 0 ? void 0 : _x.totalAmount)}</div>
339
355
  <div class="title">${i18next.t('field.supply amount')}</div>
340
- <div class="value">${this._numberFormat((_x = this.taxInvoice) === null || _x === void 0 ? void 0 : _x.supplyAmount)}</div>
356
+ <div class="value">${this._numberFormat((_y = this.taxInvoice) === null || _y === void 0 ? void 0 : _y.supplyAmount)}</div>
341
357
  <div class="title">${i18next.t('field.tax amount')}</div>
342
- <div class="value">${this._numberFormat((_y = this.taxInvoice) === null || _y === void 0 ? void 0 : _y.taxAmount)}</div>
358
+ <div class="value">${this._numberFormat((_z = this.taxInvoice) === null || _z === void 0 ? void 0 : _z.taxAmount)}</div>
343
359
  </div>
344
360
  </div>
345
361
 
@@ -349,8 +365,8 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
349
365
  세액으로 계산할 수 있습니다.
350
366
  </div>
351
367
  <div class="desc">
352
- <button class="btn-add" @click=${this._onAddInvoiceItem}>품목추가</button> 품목은 최대 16개까지 추가, 삭제
353
- 가능
368
+ <button class="btn-add" @click=${this._onAddInvoiceItem} ?disabled=${readOnly}>품목추가</button> 품목은 최대
369
+ 16개까지 추가, 삭제 가능
354
370
  </div>
355
371
 
356
372
  <table>
@@ -379,7 +395,9 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
379
395
  <th>${i18next.t('field.delete')}</th>
380
396
  </tr>
381
397
 
382
- ${this.taxInvoiceItems.map((item, idx) => html `
398
+ ${this.taxInvoiceItems.map((item, idx) => {
399
+ var _a, _b;
400
+ return html `
383
401
  <tr>
384
402
  <input type="hidden" name="sequence" value=${item.sequence} />
385
403
  <td>${this.taxInvoice.issueDate.split('-')[1]}</td>
@@ -389,7 +407,9 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
389
407
  numeric
390
408
  maxlength="2"
391
409
  name="supplyDate"
410
+ .value=${((_b = (_a = item.supplyDate) === null || _a === void 0 ? void 0 : _a.split('-')) === null || _b === void 0 ? void 0 : _b[2]) || ''}
392
411
  @input=${e => this._onInputItem(e, idx)}
412
+ ?disabled=${readOnly}
393
413
  />
394
414
  </td>
395
415
  <td>
@@ -398,6 +418,7 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
398
418
  name="itemName"
399
419
  .value=${item.itemName}
400
420
  @input=${e => this._onInputItem(e, idx)}
421
+ ?disabled=${readOnly}
401
422
  />
402
423
  </td>
403
424
  <td>
@@ -406,6 +427,7 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
406
427
  name="specification"
407
428
  .value=${item.specification}
408
429
  @input=${e => this._onInputItem(e, idx)}
430
+ ?disabled=${readOnly}
409
431
  />
410
432
  </td>
411
433
  <td>
@@ -415,6 +437,7 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
415
437
  name="quantity"
416
438
  .value=${this._numberFormat(item.quantity)}
417
439
  @input=${e => this._onInputItem(e, idx)}
440
+ ?disabled=${readOnly}
418
441
  />
419
442
  </td>
420
443
  <td>
@@ -424,6 +447,7 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
424
447
  name="unitPrice"
425
448
  .value=${this._numberFormat(item.unitPrice)}
426
449
  @input=${e => this._onInputItem(e, idx)}
450
+ ?disabled=${readOnly}
427
451
  />
428
452
  </td>
429
453
  <td>
@@ -433,6 +457,7 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
433
457
  name="supplyPrice"
434
458
  .value=${this._numberFormat(item.supplyPrice)}
435
459
  @input=${e => this._onInputItem(e, idx)}
460
+ ?disabled=${readOnly}
436
461
  />
437
462
  </td>
438
463
  <td>
@@ -442,7 +467,7 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
442
467
  name="taxPrice"
443
468
  .value=${this._numberFormat(item.taxPrice)}
444
469
  @input=${e => this._onInputItem(e, idx)}
445
- .disabled=${this.isTaxFree}
470
+ ?disabled=${this.isTaxFree || readOnly}
446
471
  />
447
472
  </td>
448
473
  <td>
@@ -451,13 +476,21 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
451
476
  name="remark"
452
477
  .value=${item.remark || ''}
453
478
  @input=${e => this._onInputItem(e, idx)}
479
+ ?disabled=${readOnly}
454
480
  />
455
481
  </td>
456
482
  <td>
457
- <button class="btn-delete" @click=${e => this._onRemoveInvoiceItem(e, item.sequence)}>삭제</button>
483
+ <button
484
+ class="btn-delete"
485
+ @click=${e => this._onRemoveInvoiceItem(e, item.sequence)}
486
+ ?disabled=${readOnly}
487
+ >
488
+ 삭제
489
+ </button>
458
490
  </td>
459
491
  </tr>
460
- `)}
492
+ `;
493
+ })}
461
494
  </table>
462
495
  </div>
463
496
 
@@ -481,7 +514,7 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
481
514
  type="text"
482
515
  numeric
483
516
  name="paymentAmountCash"
484
- .value=${((_z = this.taxInvoice) === null || _z === void 0 ? void 0 : _z.paymentAmountCash) || ''}
517
+ .value=${((_0 = this.taxInvoice) === null || _0 === void 0 ? void 0 : _0.paymentAmountCash) || ''}
485
518
  @input=${this._onInputTaxInvoice}
486
519
  />
487
520
  </td>
@@ -490,7 +523,7 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
490
523
  type="text"
491
524
  numeric
492
525
  name="paymentAmountCheck"
493
- .value=${((_0 = this.taxInvoice) === null || _0 === void 0 ? void 0 : _0.paymentAmountCheck) || ''}
526
+ .value=${((_1 = this.taxInvoice) === null || _1 === void 0 ? void 0 : _1.paymentAmountCheck) || ''}
494
527
  @input=${this._onInputTaxInvoice}
495
528
  />
496
529
  </td>
@@ -499,7 +532,7 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
499
532
  type="text"
500
533
  numeric
501
534
  name="paymentAmountPromissoryNote"
502
- .value=${((_1 = this.taxInvoice) === null || _1 === void 0 ? void 0 : _1.paymentAmountPromissoryNote) || ''}
535
+ .value=${((_2 = this.taxInvoice) === null || _2 === void 0 ? void 0 : _2.paymentAmountPromissoryNote) || ''}
503
536
  @input=${this._onInputTaxInvoice}
504
537
  />
505
538
  </td>
@@ -508,7 +541,7 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
508
541
  type="text"
509
542
  numeric
510
543
  name="paymentAmountAccountsReceivable"
511
- .value=${((_2 = this.taxInvoice) === null || _2 === void 0 ? void 0 : _2.paymentAmountAccountsReceivable) || ''}
544
+ .value=${((_3 = this.taxInvoice) === null || _3 === void 0 ? void 0 : _3.paymentAmountAccountsReceivable) || ''}
512
545
  @input=${this._onInputTaxInvoice}
513
546
  />
514
547
  </td>
@@ -525,6 +558,7 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
525
558
  .value=${Purpose.INVOICE}
526
559
  @change=${this._onInputTaxInvoice}
527
560
  checked
561
+ ?disabled=${readOnly}
528
562
  />
529
563
  <label for="purpose_20">${PURPOSE[Purpose.INVOICE]}</label>
530
564
  </div>
@@ -535,6 +569,7 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
535
569
  name="purpose"
536
570
  .value=${Purpose.RECEIPT}
537
571
  @change=${this._onInputTaxInvoice}
572
+ ?disabled=${readOnly}
538
573
  />
539
574
  <label for="purpose_10">${PURPOSE[Purpose.RECEIPT]}</label>
540
575
  </div>
@@ -709,6 +744,11 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
709
744
  supplierContactEmail: e.detail.contactEmail || '',
710
745
  supplierContactCellPhone: e.detail.contactCellPhone || ''
711
746
  };
747
+ this.dispatchEvent(new CustomEvent('supplier-selected', {
748
+ detail: { supplier: this.supplier },
749
+ bubbles: true,
750
+ composed: true
751
+ }));
712
752
  history.back();
713
753
  }}
714
754
  >
@@ -762,6 +802,11 @@ let TaxInvoiceSend = class TaxInvoiceSend extends localize(i18next)(LitElement)
762
802
  buyer1stContactEmail: e.detail.contactEmail || '',
763
803
  buyer1stContactCellPhone: e.detail.contactCellPhone || ''
764
804
  };
805
+ this.dispatchEvent(new CustomEvent('buyer-selected', {
806
+ detail: { buyer: this.buyer },
807
+ bubbles: true,
808
+ composed: true
809
+ }));
765
810
  history.back();
766
811
  }}
767
812
  >
@@ -846,6 +891,16 @@ TaxInvoiceSend.styles = [
846
891
  input:disabled {
847
892
  background-color: #eee;
848
893
  }
894
+ input[type='radio'] {
895
+ cursor: pointer;
896
+ }
897
+ input[type='radio']:disabled {
898
+ cursor: default;
899
+ }
900
+ input[type='radio'] + label,
901
+ label + input[type='radio'] {
902
+ cursor: pointer;
903
+ }
849
904
 
850
905
  div.invoice-type {
851
906
  font-size: 18px;
@@ -881,6 +936,17 @@ TaxInvoiceSend.styles = [
881
936
  & > input {
882
937
  margin: 0 5px 0 1px;
883
938
  }
939
+ & .radio-wrapper {
940
+ display: inline-flex;
941
+ align-items: center;
942
+ gap: 4px;
943
+ margin-right: 6px;
944
+ cursor: pointer;
945
+
946
+ input[type='radio'] {
947
+ margin: 0;
948
+ }
949
+ }
884
950
  }
885
951
  }
886
952
 
@@ -1012,6 +1078,7 @@ TaxInvoiceSend.styles = [
1012
1078
 
1013
1079
  span.type-wrapper {
1014
1080
  margin: 0 10px;
1081
+ cursor: pointer;
1015
1082
 
1016
1083
  & > div {
1017
1084
  display: flex;
@@ -1063,6 +1130,10 @@ TaxInvoiceSend.styles = [
1063
1130
  }
1064
1131
  `
1065
1132
  ];
1133
+ __decorate([
1134
+ property({ type: Boolean }),
1135
+ __metadata("design:type", Boolean)
1136
+ ], TaxInvoiceSend.prototype, "editMode", void 0);
1066
1137
  __decorate([
1067
1138
  property({ type: Object }),
1068
1139
  __metadata("design:type", Object)