@things-factory/tax-invoice 8.0.74 → 8.0.78

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.
@@ -3,7 +3,7 @@ import '@operato/data-grist'
3
3
  import { CommonButtonStyles, CommonGristStyles, ScrollbarStyles } from '@operato/styles'
4
4
  import { CustomAlert, PageView } from '@operato/shell'
5
5
  import { css, html } from 'lit'
6
- import { customElement, state } from 'lit/decorators.js'
6
+ import { customElement, state, query } from 'lit/decorators.js'
7
7
  import { ScopedElementsMixin } from '@open-wc/scoped-elements'
8
8
  import { client } from '@operato/graphql'
9
9
  import { i18next, localize } from '@operato/i18n'
@@ -11,11 +11,13 @@ import { notify } from '@operato/layout'
11
11
  import gql from 'graphql-tag'
12
12
  import { BusinessRegistrationCategory, Category, InvoiceType, Purpose } from '../tax-invoice/tax-invoice-list-page'
13
13
  import { CompanyListPopup } from './company-list-popup'
14
- import { Supplier, Buyer, TaxInvoice, TaxInvoiceItem } from './tax-invoice-send'
14
+ import { Supplier, Buyer, TaxInvoice, TaxInvoiceItem, TaxInvoiceSend } from './tax-invoice-send'
15
15
  import './tax-invoice-send'
16
16
 
17
17
  @customElement('tax-invoice-send-page')
18
18
  export class TaxInvoiceSendPage extends localize(i18next)(ScopedElementsMixin(PageView)) {
19
+ @query('tax-invoice-send') private taxInvoiceSend!: TaxInvoiceSend
20
+
19
21
  static styles = [
20
22
  ScrollbarStyles,
21
23
  CommonGristStyles,
@@ -95,7 +97,7 @@ export class TaxInvoiceSendPage extends localize(i18next)(ScopedElementsMixin(Pa
95
97
 
96
98
  async _sendTaxInvoice() {
97
99
  // 아이템 시퀀스 재 할당 + 날짜, 품목, 규격, 수량이 없으면 필터
98
- let taxInvoiceItems = this.taxInvoiceItems.map((item, idx) => ({
100
+ let taxInvoiceItems = this.taxInvoiceSend.taxInvoiceItems.map((item, idx) => ({
99
101
  ...item,
100
102
  sequence: idx + 1,
101
103
  quantity: Number(item.quantity),
@@ -106,7 +108,11 @@ export class TaxInvoiceSendPage extends localize(i18next)(ScopedElementsMixin(Pa
106
108
  )
107
109
 
108
110
  // taxInvoice 데이터 생성 및 타입 변환
109
- let taxInvoice = { ...this.taxInvoice, ...this.supplier, ...this.buyer }
111
+ let taxInvoice = {
112
+ ...this.taxInvoiceSend.taxInvoice,
113
+ ...this.taxInvoiceSend.supplier,
114
+ ...this.taxInvoiceSend.buyer
115
+ }
110
116
  taxInvoice.paymentAmountCash = Number(taxInvoice.paymentAmountCash || 0)
111
117
  taxInvoice.paymentAmountCheck = Number(taxInvoice.paymentAmountCheck || 0)
112
118
  taxInvoice.paymentAmountPromissoryNote = Number(taxInvoice.paymentAmountPromissoryNote || 0)
@@ -116,11 +122,13 @@ export class TaxInvoiceSendPage extends localize(i18next)(ScopedElementsMixin(Pa
116
122
  taxInvoice.buyerBusinessRegistrationNumber = taxInvoice.buyerBusinessRegistrationNumber.replace(/-/gi, '')
117
123
  taxInvoice.supplierBusinessRegistrationNumber = taxInvoice.supplierBusinessRegistrationNumber.replace(/-/gi, '')
118
124
 
125
+ console.log('this.buyer :', this.taxInvoiceSend.buyer)
126
+
119
127
  // 공급받는자 필수 값 체크
120
128
  if (
121
- !this.buyer.buyerBusinessRegistrationNumber ||
122
- !this.buyer.buyerBusinessName ||
123
- !this.buyer.buyerRepresentativeName
129
+ !this.taxInvoiceSend.buyer.buyerBusinessRegistrationNumber ||
130
+ !this.taxInvoiceSend.buyer.buyerBusinessName ||
131
+ !this.taxInvoiceSend.buyer.buyerRepresentativeName
124
132
  ) {
125
133
  await CustomAlert({
126
134
  type: 'warning',
@@ -182,10 +190,11 @@ export class TaxInvoiceSendPage extends localize(i18next)(ScopedElementsMixin(Pa
182
190
 
183
191
  if (!response.errors) {
184
192
  notify({ message: i18next.t('text.success tax send') })
185
- this.taxInvoice = this.defaultTaxInvoice
186
- this.supplier = this.defaultSupplier
187
- this.buyer = this.defaultBuyer
188
- this.taxInvoiceItems = [{ ...this.defaultTaxInvoiceItem }]
193
+ this.taxInvoiceSend.taxInvoice = { ...this.defaultTaxInvoice }
194
+ this.taxInvoiceSend.supplier = { ...this.defaultSupplier }
195
+ this.taxInvoiceSend.buyer = { ...this.defaultBuyer }
196
+ this.taxInvoiceSend.taxInvoiceItems = [{ ...this.defaultTaxInvoiceItem }]
197
+ this.taxInvoiceSend.requestUpdate()
189
198
  }
190
199
  }
191
200
  }
@@ -5,6 +5,7 @@ import { Supplier, Buyer, TaxInvoice, TaxInvoiceItem } from './tax-invoice-send'
5
5
  import './tax-invoice-send';
6
6
  declare const TaxInvoiceSendPage_base: (new (...args: any[]) => import("lit").LitElement) & typeof PageView & import("@open-wc/dedupe-mixin").Constructor<import("@open-wc/scoped-elements/types/src/types").ScopedElementsHost>;
7
7
  export declare class TaxInvoiceSendPage extends TaxInvoiceSendPage_base {
8
+ private taxInvoiceSend;
8
9
  static styles: import("lit").CSSResult[];
9
10
  static get scopedElements(): {
10
11
  'company-list-popup': typeof CompanyListPopup;
@@ -3,7 +3,7 @@ import '@operato/data-grist';
3
3
  import { CommonButtonStyles, CommonGristStyles, ScrollbarStyles } from '@operato/styles';
4
4
  import { CustomAlert, PageView } from '@operato/shell';
5
5
  import { css, html } from 'lit';
6
- import { customElement, state } from 'lit/decorators.js';
6
+ import { customElement, state, query } from 'lit/decorators.js';
7
7
  import { ScopedElementsMixin } from '@open-wc/scoped-elements';
8
8
  import { client } from '@operato/graphql';
9
9
  import { i18next, localize } from '@operato/i18n';
@@ -11,6 +11,7 @@ import { notify } from '@operato/layout';
11
11
  import gql from 'graphql-tag';
12
12
  import { BusinessRegistrationCategory, Category, InvoiceType, Purpose } from '../tax-invoice/tax-invoice-list-page';
13
13
  import { CompanyListPopup } from './company-list-popup';
14
+ import { TaxInvoiceSend } from './tax-invoice-send';
14
15
  import './tax-invoice-send';
15
16
  let TaxInvoiceSendPage = class TaxInvoiceSendPage extends localize(i18next)(ScopedElementsMixin(PageView)) {
16
17
  constructor() {
@@ -73,10 +74,10 @@ let TaxInvoiceSendPage = class TaxInvoiceSendPage extends localize(i18next)(Scop
73
74
  }
74
75
  async _sendTaxInvoice() {
75
76
  // 아이템 시퀀스 재 할당 + 날짜, 품목, 규격, 수량이 없으면 필터
76
- let taxInvoiceItems = this.taxInvoiceItems.map((item, idx) => (Object.assign(Object.assign({}, item), { sequence: idx + 1, quantity: Number(item.quantity), unitPrice: Number(item.unitPrice) })));
77
+ let taxInvoiceItems = this.taxInvoiceSend.taxInvoiceItems.map((item, idx) => (Object.assign(Object.assign({}, item), { sequence: idx + 1, quantity: Number(item.quantity), unitPrice: Number(item.unitPrice) })));
77
78
  taxInvoiceItems = taxInvoiceItems.filter(item => item.supplyDate && item.itemName && item.quantity && item.unitPrice);
78
79
  // taxInvoice 데이터 생성 및 타입 변환
79
- let taxInvoice = Object.assign(Object.assign(Object.assign({}, this.taxInvoice), this.supplier), this.buyer);
80
+ let taxInvoice = Object.assign(Object.assign(Object.assign({}, this.taxInvoiceSend.taxInvoice), this.taxInvoiceSend.supplier), this.taxInvoiceSend.buyer);
80
81
  taxInvoice.paymentAmountCash = Number(taxInvoice.paymentAmountCash || 0);
81
82
  taxInvoice.paymentAmountCheck = Number(taxInvoice.paymentAmountCheck || 0);
82
83
  taxInvoice.paymentAmountPromissoryNote = Number(taxInvoice.paymentAmountPromissoryNote || 0);
@@ -85,10 +86,11 @@ let TaxInvoiceSendPage = class TaxInvoiceSendPage extends localize(i18next)(Scop
85
86
  taxInvoice.taxAmount = Number(taxInvoice.taxAmount || 0);
86
87
  taxInvoice.buyerBusinessRegistrationNumber = taxInvoice.buyerBusinessRegistrationNumber.replace(/-/gi, '');
87
88
  taxInvoice.supplierBusinessRegistrationNumber = taxInvoice.supplierBusinessRegistrationNumber.replace(/-/gi, '');
89
+ console.log('this.buyer :', this.taxInvoiceSend.buyer);
88
90
  // 공급받는자 필수 값 체크
89
- if (!this.buyer.buyerBusinessRegistrationNumber ||
90
- !this.buyer.buyerBusinessName ||
91
- !this.buyer.buyerRepresentativeName) {
91
+ if (!this.taxInvoiceSend.buyer.buyerBusinessRegistrationNumber ||
92
+ !this.taxInvoiceSend.buyer.buyerBusinessName ||
93
+ !this.taxInvoiceSend.buyer.buyerRepresentativeName) {
92
94
  await CustomAlert({
93
95
  type: 'warning',
94
96
  title: '공급받는자 필수 값을 모두 입력해 주세요.',
@@ -143,10 +145,11 @@ let TaxInvoiceSendPage = class TaxInvoiceSendPage extends localize(i18next)(Scop
143
145
  });
144
146
  if (!response.errors) {
145
147
  notify({ message: i18next.t('text.success tax send') });
146
- this.taxInvoice = this.defaultTaxInvoice;
147
- this.supplier = this.defaultSupplier;
148
- this.buyer = this.defaultBuyer;
149
- this.taxInvoiceItems = [Object.assign({}, this.defaultTaxInvoiceItem)];
148
+ this.taxInvoiceSend.taxInvoice = Object.assign({}, this.defaultTaxInvoice);
149
+ this.taxInvoiceSend.supplier = Object.assign({}, this.defaultSupplier);
150
+ this.taxInvoiceSend.buyer = Object.assign({}, this.defaultBuyer);
151
+ this.taxInvoiceSend.taxInvoiceItems = [Object.assign({}, this.defaultTaxInvoiceItem)];
152
+ this.taxInvoiceSend.requestUpdate();
150
153
  }
151
154
  }
152
155
  };
@@ -159,6 +162,10 @@ TaxInvoiceSendPage.styles = [
159
162
  }
160
163
  `
161
164
  ];
165
+ __decorate([
166
+ query('tax-invoice-send'),
167
+ __metadata("design:type", TaxInvoiceSend)
168
+ ], TaxInvoiceSendPage.prototype, "taxInvoiceSend", void 0);
162
169
  __decorate([
163
170
  state(),
164
171
  __metadata("design:type", Object)
@@ -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 .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"]}
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, query } 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, TaxInvoiceSend } from './tax-invoice-send'\nimport './tax-invoice-send'\n\n@customElement('tax-invoice-send-page')\nexport class TaxInvoiceSendPage extends localize(i18next)(ScopedElementsMixin(PageView)) {\n @query('tax-invoice-send') private taxInvoiceSend!: TaxInvoiceSend\n\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.taxInvoiceSend.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 = {\n ...this.taxInvoiceSend.taxInvoice,\n ...this.taxInvoiceSend.supplier,\n ...this.taxInvoiceSend.buyer\n }\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 console.log('this.buyer :', this.taxInvoiceSend.buyer)\n\n // 공급받는자 필수 값 체크\n if (\n !this.taxInvoiceSend.buyer.buyerBusinessRegistrationNumber ||\n !this.taxInvoiceSend.buyer.buyerBusinessName ||\n !this.taxInvoiceSend.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.taxInvoiceSend.taxInvoice = { ...this.defaultTaxInvoice }\n this.taxInvoiceSend.supplier = { ...this.defaultSupplier }\n this.taxInvoiceSend.buyer = { ...this.defaultBuyer }\n this.taxInvoiceSend.taxInvoiceItems = [{ ...this.defaultTaxInvoiceItem }]\n this.taxInvoiceSend.requestUpdate()\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- export default function route(page: string): "tax-invoice-send" | "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;