@things-factory/tax-invoice 6.2.122 → 6.2.126

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.
@@ -10,6 +10,7 @@ const tax_invoice_item_type_1 = require("../tax-invoice-item/tax-invoice-item-ty
10
10
  const tax_invoice_item_1 = require("../tax-invoice-item/tax-invoice-item");
11
11
  const tax_invoice_api_1 = require("../tax-invoice-api/tax-invoice-api");
12
12
  const tax_invoice_inquiry_1 = require("../unipost-api/tax-invoice-inquiry");
13
+ const tax_invoice_util_1 = require("./tax-invoice-util");
13
14
  let TaxInvoiceMutation = class TaxInvoiceMutation {
14
15
  constructor() {
15
16
  // YYYYMMDD => YYYY-MM-DD
@@ -74,89 +75,10 @@ let TaxInvoiceMutation = class TaxInvoiceMutation {
74
75
  // 있는지 없는지 확인 (이미 있는 세금계산서는 패스)
75
76
  if (existingIds.includes(tax.exd_id))
76
77
  continue;
77
- // 세금계산서 데이터 객체 생성
78
- const newTaxInvoice = {
79
- issueNo: tax.exd_id,
80
- approvalNo: tax.tid_issueid,
81
- originalApprovalNo: tax.tid_originalissueid,
82
- issueDate: this._dateFormat(tax.tid_issuedatetime),
83
- signatureDate: this._dateFormat(tax.exd_issuedatetime),
84
- invoiceType: tax.tid_typecode,
85
- purpose: tax.tid_purposecode,
86
- revisedReason: tax.tid_amendcode,
87
- remark0: tax.tid_desc0,
88
- remark1: tax.tid_desc1,
89
- remark2: tax.tid_desc2,
90
- category: tax.category,
91
- supplierBusinessRegistrationCategory: tax.tit_alice_specorg_biztypecode,
92
- supplierBusinessRegistrationNumber: tax.tit_alice_id,
93
- supplierBranchIdentification: tax.tit_alice_specorg_taxregid,
94
- supplierBusinessName: tax.tit_alice_name,
95
- supplierRepresentativeName: tax.tit_alice_specperson_name,
96
- supplierAddress: tax.tit_alice_specaddr_lineone,
97
- supplierBusinessType: tax.tit_alice_typecode,
98
- supplierIndustryType: tax.tit_alice_classcode,
99
- supplierDepartment: tax.tit_alice_defcont_deptname,
100
- supplierContactName: tax.tit_alice_defcont_personname,
101
- supplierContactPhone: tax.tit_alice_defcont_telcomm,
102
- supplierContactEmail: tax.tit_alice_defcont_uricomm,
103
- supplierContactCellPhone: tax.tit_alice_defcont_cellphone,
104
- buyerBusinessRegistrationCategory: tax.tit_bob_specorg_biztypecode,
105
- buyerBusinessRegistrationNumber: tax.tit_bob_id,
106
- buyerBranchIdentification: tax.tit_bob_specorg_taxregid,
107
- buyerBusinessName: tax.tit_bob_name,
108
- buyerRepresentativeName: tax.tit_bob_specperson_name,
109
- buyerAddress: tax.tit_bob_specaddr_lineone,
110
- buyerBusinessType: tax.tit_bob_typecode,
111
- buyerIndustryType: tax.tit_bob_classcode,
112
- buyer1stDepartment: tax.tit_bob_1stdefcont_deptname,
113
- buyer1stContactName: tax.tit_bob_1stdefcont_personname,
114
- buyer1stContactPhone: tax.tit_bob_1stdefcont_telcomm,
115
- buyer1stContactEmail: tax.tit_bob_1stdefcont_uricomm,
116
- buyer1stContactCellPhone: tax.tit_bob_1stdefcont_cellphone,
117
- buyer2ndDepartment: tax.tit_bob_2nddefcont_deptname,
118
- buyer2ndContactName: tax.tit_bob_2nddefcont_personname,
119
- buyer2ndContactPhone: tax.tit_bob_2nddefcont_telcomm,
120
- buyer2ndContactEmail: tax.tit_bob_2nddefcont_uricomm,
121
- buyer2ndContactCellPhone: tax.tit_bob_2nddefcont_cellphone,
122
- agentBusinessRegistrationCategory: tax.tit_broker_specorg_biztypecode,
123
- agentBusinessRegistrationNumber: tax.tit_broker_id,
124
- agentBranchIdentification: tax.tit_broker_specorg_taxregid,
125
- agentBusinessName: tax.tit_broker_name,
126
- agentRepresentativeName: tax.tit_broker_specperson_name,
127
- agentAddress: tax.tit_broker_specaddr_lineone,
128
- agentBusinessType: tax.tit_broker_typecode,
129
- agentIndustryType: tax.tit_broker_classcode,
130
- agentDepartment: tax.tit_broker_defcont_deptname,
131
- agentContactName: tax.tit_broker_defcont_personname,
132
- agentContactPhone: tax.tit_broker_defcont_telcomm,
133
- agentContactEmail: tax.tit_broker_defcont_uricomm,
134
- agentContactCellPhone: tax.tit_broker_defcont_cellphone,
135
- paymentAmountCash: tax.tit_specpay_paidamount10,
136
- paymentAmountCheck: tax.tit_specpay_paidamount20,
137
- paymentAmountPromissoryNote: tax.tit_specpay_paidamount30,
138
- paymentAmountAccountsReceivable: tax.tit_specpay_paidamount40,
139
- supplyAmount: tax.tit_specsum_chargeamount,
140
- taxAmount: tax.tit_specsum_taxamount,
141
- totalAmount: tax.tit_specsum_grandamount
142
- };
143
- // 세금계산서 아이템 데이터 객체 생성
144
- const newTaxInvoiceItem = [];
145
- for (let item of tax.tAliceItemList) {
146
- newTaxInvoiceItem.push({
147
- sequence: item.tii_seqnumeric,
148
- supplyDate: this._dateFormat(item.tii_purchaseexpirydatetime),
149
- itemName: item.tii_nametext,
150
- specification: item.tii_informationtext,
151
- quantity: item.tii_chargeableunitquantity,
152
- unitPrice: item.tii_unitprice_unitamount,
153
- supplyPrice: item.tii_invoiceamount,
154
- taxPrice: item.tii_totaltax_calcamount,
155
- remark: item.tii_descriptiontext
156
- });
157
- }
78
+ // api로 받은 데이터를 DB 형태로 파싱
79
+ const { taxInvoice, taxInvoiceItems } = (0, tax_invoice_util_1.parseTaxInvoiceByUnipostFormat)(tax, tax.tAliceItemList, tax.category);
158
80
  // Insert
159
- this.createTaxInvoice(newTaxInvoice, newTaxInvoiceItem, context);
81
+ this.createTaxInvoice(taxInvoice, taxInvoiceItems, context);
160
82
  // API 결과 회신 데이터 생성
161
83
  insertedData.push({
162
84
  aid: aid,
@@ -1 +1 @@
1
- {"version":3,"file":"tax-invoice-mutation.js","sourceRoot":"","sources":["../../../server/service/tax-invoice/tax-invoice-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { Category, TaxInvoice } from './tax-invoice'\nimport { NewTaxInvoice, TaxInvoicePatch } from './tax-invoice-type'\nimport { NewTaxInvoiceItem } from '../tax-invoice-item/tax-invoice-item-type'\nimport { TaxInvoiceItem } from '../tax-invoice-item/tax-invoice-item'\nimport { TaxInvoiceApi } from '../tax-invoice-api/tax-invoice-api'\nimport { AttributeSet } from '@things-factory/shell/dist-server/service/attribute-set/attribute-set'\nimport { ConfirmData, UnipostTaxType, callTaxInvoiceConfirm, getTaxInvoiceByUniposApi } from '../unipost-api/tax-invoice-inquiry'\n\n@Resolver(TaxInvoice)\nexport class TaxInvoiceMutation {\n @Directive('@transaction')\n @Mutation(returns => TaxInvoice, { description: 'To create new TaxInvoice' })\n async createTaxInvoice(\n @Arg('taxInvoice') taxInvoice: NewTaxInvoice,\n @Arg('taxInvoiceItems', () => [NewTaxInvoiceItem]) taxInvoiceItems: NewTaxInvoiceItem[],\n @Ctx() context: ResolverContext\n ): Promise<TaxInvoice> {\n const { domain, user, tx } = context.state\n\n const newTaxInvoice = await tx.getRepository(TaxInvoice).save({\n ...taxInvoice,\n domain,\n creator: user,\n updater: user\n })\n\n // 아이템 저장\n for (const item of taxInvoiceItems) {\n await tx.getRepository(TaxInvoiceItem).save({ ...item, taxInvoice: newTaxInvoice, domain, creator: user })\n }\n\n return newTaxInvoice\n }\n\n // 그리드에서 메모 수정용 으로만\n @Directive('@transaction')\n @Mutation(returns => [TaxInvoice], { description: \"To modify multiple TaxInvoices' information\" })\n async updateMultipleTaxInvoice(@Arg('patches', type => [TaxInvoicePatch]) patches: TaxInvoicePatch[], @Ctx() context: ResolverContext): Promise<TaxInvoice[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const taxInvoiceRepo = tx.getRepository(TaxInvoice)\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const updateRecord = _updateRecords[i]\n const taxInvoice = await taxInvoiceRepo.findOneBy({ id: updateRecord.id })\n\n const result = await taxInvoiceRepo.save({\n ...taxInvoice,\n ...updateRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete TaxInvoice' })\n async deleteTaxInvoice(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(TaxInvoice).delete({ domain: { id: domain.id }, id })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple TaxInvoices' })\n async deleteTaxInvoices(@Arg('ids', type => [String]) ids: string[], @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(TaxInvoice).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'create tax invoice data by API' })\n async fetchTaxInvoiceByApi(@Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, user, tx } = context.state\n const taxInvoiceApiRepo = tx.getRepository(TaxInvoiceApi)\n const taxInvoiceRepo = tx.getRepository(TaxInvoice)\n const insertedData: ConfirmData[] = [] // API 호출 후 결과 회신용\n\n const apiInfo = (await taxInvoiceApiRepo.find()).at(0)\n const businessRegistrationNumber = apiInfo.businessRegistrationNumber\n const { aid = '', bearer = '' } = apiInfo?.attributes\n\n // API 호출하여 세금계산서 데이터 가져옴\n const { issueNoList, taxList } = await getTaxInvoiceByUniposApi(businessRegistrationNumber, aid, bearer)\n\n // 이미 있는 데이터 아이디 검색\n const existingTaxInvoice = await taxInvoiceRepo.find({\n select: ['issueNo'],\n where: { issueNo: In(issueNoList) }\n })\n const existingIds = existingTaxInvoice.map(taxInvoice => taxInvoice.issueNo)\n\n // 매입, 매출 for문\n for (let tax of taxList) {\n // 있는지 없는지 확인 (이미 있는 세금계산서는 패스)\n if (existingIds.includes(tax.exd_id)) continue\n\n // 세금계산서 데이터 객체 생성\n const newTaxInvoice: NewTaxInvoice = {\n issueNo: tax.exd_id,\n approvalNo: tax.tid_issueid,\n originalApprovalNo: tax.tid_originalissueid,\n issueDate: this._dateFormat(tax.tid_issuedatetime),\n signatureDate: this._dateFormat(tax.exd_issuedatetime),\n invoiceType: tax.tid_typecode,\n purpose: tax.tid_purposecode,\n revisedReason: tax.tid_amendcode,\n remark0: tax.tid_desc0,\n remark1: tax.tid_desc1,\n remark2: tax.tid_desc2,\n category: tax.category,\n supplierBusinessRegistrationCategory: tax.tit_alice_specorg_biztypecode,\n supplierBusinessRegistrationNumber: tax.tit_alice_id,\n supplierBranchIdentification: tax.tit_alice_specorg_taxregid,\n supplierBusinessName: tax.tit_alice_name,\n supplierRepresentativeName: tax.tit_alice_specperson_name,\n supplierAddress: tax.tit_alice_specaddr_lineone,\n supplierBusinessType: tax.tit_alice_typecode,\n supplierIndustryType: tax.tit_alice_classcode,\n supplierDepartment: tax.tit_alice_defcont_deptname,\n supplierContactName: tax.tit_alice_defcont_personname,\n supplierContactPhone: tax.tit_alice_defcont_telcomm,\n supplierContactEmail: tax.tit_alice_defcont_uricomm,\n supplierContactCellPhone: tax.tit_alice_defcont_cellphone,\n buyerBusinessRegistrationCategory: tax.tit_bob_specorg_biztypecode,\n buyerBusinessRegistrationNumber: tax.tit_bob_id,\n buyerBranchIdentification: tax.tit_bob_specorg_taxregid,\n buyerBusinessName: tax.tit_bob_name,\n buyerRepresentativeName: tax.tit_bob_specperson_name,\n buyerAddress: tax.tit_bob_specaddr_lineone,\n buyerBusinessType: tax.tit_bob_typecode,\n buyerIndustryType: tax.tit_bob_classcode,\n buyer1stDepartment: tax.tit_bob_1stdefcont_deptname,\n buyer1stContactName: tax.tit_bob_1stdefcont_personname,\n buyer1stContactPhone: tax.tit_bob_1stdefcont_telcomm,\n buyer1stContactEmail: tax.tit_bob_1stdefcont_uricomm,\n buyer1stContactCellPhone: tax.tit_bob_1stdefcont_cellphone,\n buyer2ndDepartment: tax.tit_bob_2nddefcont_deptname,\n buyer2ndContactName: tax.tit_bob_2nddefcont_personname,\n buyer2ndContactPhone: tax.tit_bob_2nddefcont_telcomm,\n buyer2ndContactEmail: tax.tit_bob_2nddefcont_uricomm,\n buyer2ndContactCellPhone: tax.tit_bob_2nddefcont_cellphone,\n agentBusinessRegistrationCategory: tax.tit_broker_specorg_biztypecode,\n agentBusinessRegistrationNumber: tax.tit_broker_id,\n agentBranchIdentification: tax.tit_broker_specorg_taxregid,\n agentBusinessName: tax.tit_broker_name,\n agentRepresentativeName: tax.tit_broker_specperson_name,\n agentAddress: tax.tit_broker_specaddr_lineone,\n agentBusinessType: tax.tit_broker_typecode,\n agentIndustryType: tax.tit_broker_classcode,\n agentDepartment: tax.tit_broker_defcont_deptname,\n agentContactName: tax.tit_broker_defcont_personname,\n agentContactPhone: tax.tit_broker_defcont_telcomm,\n agentContactEmail: tax.tit_broker_defcont_uricomm,\n agentContactCellPhone: tax.tit_broker_defcont_cellphone,\n paymentAmountCash: tax.tit_specpay_paidamount10,\n paymentAmountCheck: tax.tit_specpay_paidamount20,\n paymentAmountPromissoryNote: tax.tit_specpay_paidamount30,\n paymentAmountAccountsReceivable: tax.tit_specpay_paidamount40,\n supplyAmount: tax.tit_specsum_chargeamount,\n taxAmount: tax.tit_specsum_taxamount,\n totalAmount: tax.tit_specsum_grandamount\n }\n\n // 세금계산서 아이템 데이터 객체 생성\n const newTaxInvoiceItem: NewTaxInvoiceItem[] = []\n for (let item of tax.tAliceItemList) {\n newTaxInvoiceItem.push({\n sequence: item.tii_seqnumeric,\n supplyDate: this._dateFormat(item.tii_purchaseexpirydatetime),\n itemName: item.tii_nametext,\n specification: item.tii_informationtext,\n quantity: item.tii_chargeableunitquantity,\n unitPrice: item.tii_unitprice_unitamount,\n supplyPrice: item.tii_invoiceamount,\n taxPrice: item.tii_totaltax_calcamount,\n remark: item.tii_descriptiontext\n })\n }\n\n // Insert\n this.createTaxInvoice(newTaxInvoice, newTaxInvoiceItem, context)\n\n // API 결과 회신 데이터 생성\n insertedData.push({\n aid: aid,\n tax_type: tax.category == Category.EXPORT ? UnipostTaxType.EXPORT : UnipostTaxType.IMPORT,\n tid_issueid: tax.tid_issueid,\n success: true,\n message: ''\n })\n }\n\n // 유니 포스트에 조회 후 결과 회신 API 호출\n callTaxInvoiceConfirm(businessRegistrationNumber, aid, bearer, insertedData)\n\n return true\n }\n\n // YYYYMMDD => YYYY-MM-DD\n private _dateFormat = date => date.replace(/(\\d{4})(\\d{2})(\\d{2})/g, '$1-$2-$3')\n}\n"]}
1
+ {"version":3,"file":"tax-invoice-mutation.js","sourceRoot":"","sources":["../../../server/service/tax-invoice/tax-invoice-mutation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Mutation, Arg, Ctx, Directive } from 'type-graphql'\nimport { In } from 'typeorm'\n\nimport { Category, TaxInvoice } from './tax-invoice'\nimport { NewTaxInvoice, TaxInvoicePatch } from './tax-invoice-type'\nimport { NewTaxInvoiceItem } from '../tax-invoice-item/tax-invoice-item-type'\nimport { TaxInvoiceItem } from '../tax-invoice-item/tax-invoice-item'\nimport { TaxInvoiceApi } from '../tax-invoice-api/tax-invoice-api'\nimport { AttributeSet } from '@things-factory/shell/dist-server/service/attribute-set/attribute-set'\nimport { ConfirmData, UnipostTaxType, callTaxInvoiceConfirm, getTaxInvoiceByUniposApi } from '../unipost-api/tax-invoice-inquiry'\nimport { parseTaxInvoiceByUnipostFormat } from './tax-invoice-util'\n\n@Resolver(TaxInvoice)\nexport class TaxInvoiceMutation {\n @Directive('@transaction')\n @Mutation(returns => TaxInvoice, { description: 'To create new TaxInvoice' })\n async createTaxInvoice(\n @Arg('taxInvoice') taxInvoice: NewTaxInvoice,\n @Arg('taxInvoiceItems', () => [NewTaxInvoiceItem]) taxInvoiceItems: NewTaxInvoiceItem[],\n @Ctx() context: ResolverContext\n ): Promise<TaxInvoice> {\n const { domain, user, tx } = context.state\n\n const newTaxInvoice = await tx.getRepository(TaxInvoice).save({\n ...taxInvoice,\n domain,\n creator: user,\n updater: user\n })\n\n // 아이템 저장\n for (const item of taxInvoiceItems) {\n await tx.getRepository(TaxInvoiceItem).save({ ...item, taxInvoice: newTaxInvoice, domain, creator: user })\n }\n\n return newTaxInvoice\n }\n\n // 그리드에서 메모 수정용 으로만\n @Directive('@transaction')\n @Mutation(returns => [TaxInvoice], { description: \"To modify multiple TaxInvoices' information\" })\n async updateMultipleTaxInvoice(@Arg('patches', type => [TaxInvoicePatch]) patches: TaxInvoicePatch[], @Ctx() context: ResolverContext): Promise<TaxInvoice[]> {\n const { domain, user, tx } = context.state\n\n let results = []\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const taxInvoiceRepo = tx.getRepository(TaxInvoice)\n\n if (_updateRecords.length > 0) {\n for (let i = 0; i < _updateRecords.length; i++) {\n const updateRecord = _updateRecords[i]\n const taxInvoice = await taxInvoiceRepo.findOneBy({ id: updateRecord.id })\n\n const result = await taxInvoiceRepo.save({\n ...taxInvoice,\n ...updateRecord,\n updater: user\n })\n\n results.push({ ...result, cuFlag: 'M' })\n }\n }\n\n return results\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete TaxInvoice' })\n async deleteTaxInvoice(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(TaxInvoice).delete({ domain: { id: domain.id }, id })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'To delete multiple TaxInvoices' })\n async deleteTaxInvoices(@Arg('ids', type => [String]) ids: string[], @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await tx.getRepository(TaxInvoice).delete({\n domain: { id: domain.id },\n id: In(ids)\n })\n\n return true\n }\n\n @Directive('@transaction')\n @Mutation(returns => Boolean, { description: 'create tax invoice data by API' })\n async fetchTaxInvoiceByApi(@Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, user, tx } = context.state\n const taxInvoiceApiRepo = tx.getRepository(TaxInvoiceApi)\n const taxInvoiceRepo = tx.getRepository(TaxInvoice)\n const insertedData: ConfirmData[] = [] // API 호출 후 결과 회신용\n\n const apiInfo = (await taxInvoiceApiRepo.find()).at(0)\n const businessRegistrationNumber = apiInfo.businessRegistrationNumber\n const { aid = '', bearer = '' } = apiInfo?.attributes\n\n // API 호출하여 세금계산서 데이터 가져옴\n const { issueNoList, taxList } = await getTaxInvoiceByUniposApi(businessRegistrationNumber, aid, bearer)\n\n // 이미 있는 데이터 아이디 검색\n const existingTaxInvoice = await taxInvoiceRepo.find({\n select: ['issueNo'],\n where: { issueNo: In(issueNoList) }\n })\n const existingIds = existingTaxInvoice.map(taxInvoice => taxInvoice.issueNo)\n\n // 매입, 매출 for문\n for (let tax of taxList) {\n // 있는지 없는지 확인 (이미 있는 세금계산서는 패스)\n if (existingIds.includes(tax.exd_id)) continue\n\n // api로 받은 데이터를 DB 형태로 파싱\n const { taxInvoice, taxInvoiceItems } = parseTaxInvoiceByUnipostFormat(tax, tax.tAliceItemList, tax.category)\n\n // Insert\n this.createTaxInvoice(taxInvoice, taxInvoiceItems, context)\n\n // API 결과 회신 데이터 생성\n insertedData.push({\n aid: aid,\n tax_type: tax.category == Category.EXPORT ? UnipostTaxType.EXPORT : UnipostTaxType.IMPORT,\n tid_issueid: tax.tid_issueid,\n success: true,\n message: ''\n })\n }\n\n // 유니 포스트에 조회 후 결과 회신 API 호출\n callTaxInvoiceConfirm(businessRegistrationNumber, aid, bearer, insertedData)\n\n return true\n }\n\n // YYYYMMDD => YYYY-MM-DD\n private _dateFormat = date => date.replace(/(\\d{4})(\\d{2})(\\d{2})/g, '$1-$2-$3')\n}\n"]}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseTaxInvoiceByUnipostFormat = void 0;
4
+ // 유니포스트 데이터 포맷을 DB에 넣을수 있는 포맷으로 변경
5
+ function parseTaxInvoiceByUnipostFormat(unipostTaxInvoice, unipostTaxInvoiceItems, category) {
6
+ let taxInvoice;
7
+ let taxInvoiceItems;
8
+ // 한개 라도 없으면 전부 빈값으로 리턴
9
+ if (!unipostTaxInvoice || !unipostTaxInvoiceItems)
10
+ return { taxInvoice, taxInvoiceItems };
11
+ // exd_issuedatetime 이 두개는 조회 API에서는 yyyymmdd 로 오지만 발행에서는 yyyymmddhhmmss로 옴
12
+ taxInvoice = {
13
+ issueNo: unipostTaxInvoice.exd_id,
14
+ approvalNo: unipostTaxInvoice.tid_issueid,
15
+ originalApprovalNo: unipostTaxInvoice.tid_originalissueid,
16
+ issueDate: _dateFormat(unipostTaxInvoice.tid_issuedatetime),
17
+ signatureDate: _dateFormat(unipostTaxInvoice.exd_issuedatetime.substring(0, 8)),
18
+ invoiceType: unipostTaxInvoice.tid_typecode,
19
+ purpose: unipostTaxInvoice.tid_purposecode,
20
+ revisedReason: unipostTaxInvoice.tid_amendcode,
21
+ remark0: unipostTaxInvoice.tid_desc0,
22
+ remark1: unipostTaxInvoice.tid_desc1,
23
+ remark2: unipostTaxInvoice.tid_desc2,
24
+ category: category,
25
+ supplierBusinessRegistrationCategory: unipostTaxInvoice.tit_alice_specorg_biztypecode,
26
+ supplierBusinessRegistrationNumber: unipostTaxInvoice.tit_alice_id,
27
+ supplierBranchIdentification: unipostTaxInvoice.tit_alice_specorg_taxregid,
28
+ supplierBusinessName: unipostTaxInvoice.tit_alice_name,
29
+ supplierRepresentativeName: unipostTaxInvoice.tit_alice_specperson_name,
30
+ supplierAddress: unipostTaxInvoice.tit_alice_specaddr_lineone,
31
+ supplierBusinessType: unipostTaxInvoice.tit_alice_typecode,
32
+ supplierIndustryType: unipostTaxInvoice.tit_alice_classcode,
33
+ supplierDepartment: unipostTaxInvoice.tit_alice_defcont_deptname,
34
+ supplierContactName: unipostTaxInvoice.tit_alice_defcont_personname,
35
+ supplierContactPhone: unipostTaxInvoice.tit_alice_defcont_telcomm,
36
+ supplierContactEmail: unipostTaxInvoice.tit_alice_defcont_uricomm,
37
+ supplierContactCellPhone: unipostTaxInvoice.tit_alice_defcont_cellphone,
38
+ buyerBusinessRegistrationCategory: unipostTaxInvoice.tit_bob_specorg_biztypecode,
39
+ buyerBusinessRegistrationNumber: unipostTaxInvoice.tit_bob_id,
40
+ buyerBranchIdentification: unipostTaxInvoice.tit_bob_specorg_taxregid,
41
+ buyerBusinessName: unipostTaxInvoice.tit_bob_name,
42
+ buyerRepresentativeName: unipostTaxInvoice.tit_bob_specperson_name,
43
+ buyerAddress: unipostTaxInvoice.tit_bob_specaddr_lineone,
44
+ buyerBusinessType: unipostTaxInvoice.tit_bob_typecode,
45
+ buyerIndustryType: unipostTaxInvoice.tit_bob_classcode,
46
+ buyer1stDepartment: unipostTaxInvoice.tit_bob_1stdefcont_deptname,
47
+ buyer1stContactName: unipostTaxInvoice.tit_bob_1stdefcont_personname,
48
+ buyer1stContactPhone: unipostTaxInvoice.tit_bob_1stdefcont_telcomm,
49
+ buyer1stContactEmail: unipostTaxInvoice.tit_bob_1stdefcont_uricomm,
50
+ buyer1stContactCellPhone: unipostTaxInvoice.tit_bob_1stdefcont_cellphone,
51
+ buyer2ndDepartment: unipostTaxInvoice.tit_bob_2nddefcont_deptname,
52
+ buyer2ndContactName: unipostTaxInvoice.tit_bob_2nddefcont_personname,
53
+ buyer2ndContactPhone: unipostTaxInvoice.tit_bob_2nddefcont_telcomm,
54
+ buyer2ndContactEmail: unipostTaxInvoice.tit_bob_2nddefcont_uricomm,
55
+ buyer2ndContactCellPhone: unipostTaxInvoice.tit_bob_2nddefcont_cellphone,
56
+ agentBusinessRegistrationCategory: unipostTaxInvoice.tit_broker_specorg_biztypecode,
57
+ agentBusinessRegistrationNumber: unipostTaxInvoice.tit_broker_id,
58
+ agentBranchIdentification: unipostTaxInvoice.tit_broker_specorg_taxregid,
59
+ agentBusinessName: unipostTaxInvoice.tit_broker_name,
60
+ agentRepresentativeName: unipostTaxInvoice.tit_broker_specperson_name,
61
+ agentAddress: unipostTaxInvoice.tit_broker_specaddr_lineone,
62
+ agentBusinessType: unipostTaxInvoice.tit_broker_typecode,
63
+ agentIndustryType: unipostTaxInvoice.tit_broker_classcode,
64
+ agentDepartment: unipostTaxInvoice.tit_broker_defcont_deptname,
65
+ agentContactName: unipostTaxInvoice.tit_broker_defcont_personname,
66
+ agentContactPhone: unipostTaxInvoice.tit_broker_defcont_telcomm,
67
+ agentContactEmail: unipostTaxInvoice.tit_broker_defcont_uricomm,
68
+ agentContactCellPhone: unipostTaxInvoice.tit_broker_defcont_cellphone,
69
+ paymentAmountCash: unipostTaxInvoice.tit_specpay_paidamount10,
70
+ paymentAmountCheck: unipostTaxInvoice.tit_specpay_paidamount20,
71
+ paymentAmountPromissoryNote: unipostTaxInvoice.tit_specpay_paidamount30,
72
+ paymentAmountAccountsReceivable: unipostTaxInvoice.tit_specpay_paidamount40,
73
+ supplyAmount: unipostTaxInvoice.tit_specsum_chargeamount,
74
+ taxAmount: unipostTaxInvoice.tit_specsum_taxamount,
75
+ totalAmount: unipostTaxInvoice.tit_specsum_grandamount
76
+ };
77
+ taxInvoiceItems = unipostTaxInvoiceItems.map(item => ({
78
+ sequence: item.tii_seqnumeric,
79
+ supplyDate: _dateFormat(item.tii_purchaseexpirydatetime),
80
+ itemName: item.tii_nametext,
81
+ specification: item.tii_informationtext,
82
+ quantity: item.tii_chargeableunitquantity,
83
+ unitPrice: item.tii_unitprice_unitamount,
84
+ supplyPrice: item.tii_invoiceamount,
85
+ taxPrice: item.tii_totaltax_calcamount,
86
+ remark: item.tii_descriptiontext
87
+ }));
88
+ return { taxInvoice, taxInvoiceItems };
89
+ }
90
+ exports.parseTaxInvoiceByUnipostFormat = parseTaxInvoiceByUnipostFormat;
91
+ // YYYYMMDD => YYYY-MM-DD
92
+ const _dateFormat = date => date.replace(/(\d{4})(\d{2})(\d{2})/g, '$1-$2-$3');
93
+ //# sourceMappingURL=tax-invoice-util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tax-invoice-util.js","sourceRoot":"","sources":["../../../server/service/tax-invoice/tax-invoice-util.ts"],"names":[],"mappings":"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","sourcesContent":["import { NewTaxInvoiceItem } from 'service/tax-invoice-item/tax-invoice-item-type'\nimport { NewTaxInvoice } from './tax-invoice-type'\nimport { BusinessRegistrationCategory, Category, InvoiceType, Purpose, RevisedReason } from './tax-invoice'\n\ninterface UnipostTaxInvoice {\n offset?: string\n limit?: string\n aid?: string\n exd_id?: string\n exd_refdoc_id?: string\n exd_issuedatetime?: string\n exd_issuedatetime_format?: string\n tid_issueid?: string\n tid_issuedatetime?: string\n tid_issuedatetime_format?: string\n tid_typecode?: InvoiceType\n tid_typecode_desc?: string\n tid_purposecode?: Purpose\n tid_purposecode_desc?: string\n tid_amendcode?: RevisedReason\n tid_amendcode_desc?: string\n tid_originalissueid?: string\n tid_desc0?: string\n tid_desc1?: string\n tid_desc2?: string\n tid_refimpdoc_id?: string\n tid_refimpdoc_itemquantity?: string\n tid_refimpdoc_accept_sdate?: string\n tid_refimpdoc_accept_edate?: string\n tit_alice_specorg_biztypecode?: BusinessRegistrationCategory\n tit_alice_id?: string\n tit_alice_specorg_taxregid?: string\n tit_alice_name?: string\n tit_alice_specperson_name?: string\n tit_alice_specaddr_lineone?: string\n tit_alice_typecode?: string\n tit_alice_classcode?: string\n tit_alice_defcont_deptname?: string\n tit_alice_defcont_personname?: string\n tit_alice_defcont_telcomm?: string\n tit_alice_defcont_uricomm?: string\n tit_alice_defcont_cellphone?: string\n tit_bob_specorg_biztypecode?: BusinessRegistrationCategory\n tit_bob_id?: string\n tit_bob_specorg_taxregid?: string\n tit_bob_name?: string\n tit_bob_specperson_name?: string\n tit_bob_specaddr_lineone?: string\n tit_bob_typecode?: string\n tit_bob_classcode?: string\n tit_bob_1stdefcont_deptname?: string\n tit_bob_1stdefcont_personname?: string\n tit_bob_1stdefcont_telcomm?: string\n tit_bob_1stdefcont_uricomm?: string\n tit_bob_1stdefcont_cellphone?: string\n tit_bob_2nddefcont_deptname?: string\n tit_bob_2nddefcont_personname?: string\n tit_bob_2nddefcont_telcomm?: string\n tit_bob_2nddefcont_uricomm?: string\n tit_bob_2nddefcont_cellphone?: string\n tit_broker_specorg_biztypecode?: BusinessRegistrationCategory\n tit_broker_id?: string\n tit_broker_specorg_taxregid?: string\n tit_broker_name?: string\n tit_broker_specperson_name?: string\n tit_broker_specaddr_lineone?: string\n tit_broker_typecode?: string\n tit_broker_classcode?: string\n tit_broker_defcont_deptname?: string\n tit_broker_defcont_personname?: string\n tit_broker_defcont_telcomm?: string\n tit_broker_defcont_uricomm?: string\n tit_broker_defcont_cellphone?: string\n tit_specpay_paidamount10?: number\n tit_specpay_paidamount20?: number\n tit_specpay_paidamount30?: number\n tit_specpay_paidamount40?: number\n tit_specpay_paidamount10_format?: string\n tit_specpay_paidamount20_format?: string\n tit_specpay_paidamount30_format?: string\n tit_specpay_paidamount40_format?: string\n tit_specsum_chargeamount?: number\n tit_specsum_taxamount?: number\n tit_specsum_grandamount?: number\n tit_specsum_chargeamount_format?: string\n tit_specsum_taxamount_format?: string\n tit_specsum_grandamount_format?: string\n biz_tocharlesconfirmstatus?: string\n inv_sign?: string\n mbill_send_status?: string\n erp_sync_yn?: string\n prt_yn?: string\n prt_yn_desc?: string\n inv_seq?: string\n view_date?: string\n reg_date?: string\n sot_yn?: string\n table_alias?: string\n biz_no?: string\n tAliceItemList?: Array<any>\n tcTrItemList?: Array<any>\n tAliceFileList?: Array<any>\n tAliceDSig?: Object\n tAliceStat?: Object\n biz_tocharlesconfirmstatus_desc?: string\n}\n\ninterface UnipostTaxInvoiceItem {\n offset?: number\n limit?: number\n aid?: string\n exd_id?: string\n tii_seqnumeric?: number\n tii_purchaseexpirydatetime?: string\n tii_purchaseexpirydatetime_format?: string\n tii_purchaseexpirydatetime_format_month?: string\n tii_purchaseexpirydatetime_format_day?: string\n tii_nametext?: string\n tii_informationtext?: string\n tii_chargeableunitquantity?: number\n tii_chargeableunitquantity_format?: string\n tii_chargeableunittext?: string\n tii_unitprice_unitamount?: number\n tii_unitprice_unitamount_format?: string\n tii_invoiceamount?: number\n tii_invoiceamount_format?: string\n tii_totaltax_calcamount?: number\n tii_totaltax_calcamount_format?: string\n tii_descriptiontext?: string\n}\n\n// 유니포스트 데이터 포맷을 DB에 넣을수 있는 포맷으로 변경\nexport function parseTaxInvoiceByUnipostFormat(unipostTaxInvoice: UnipostTaxInvoice, unipostTaxInvoiceItems: UnipostTaxInvoiceItem[], category: Category) {\n let taxInvoice: NewTaxInvoice\n let taxInvoiceItems: NewTaxInvoiceItem[]\n\n // 한개 라도 없으면 전부 빈값으로 리턴\n if (!unipostTaxInvoice || !unipostTaxInvoiceItems) return { taxInvoice, taxInvoiceItems }\n\n // exd_issuedatetime 이 두개는 조회 API에서는 yyyymmdd 로 오지만 발행에서는 yyyymmddhhmmss로 옴\n taxInvoice = {\n issueNo: unipostTaxInvoice.exd_id,\n approvalNo: unipostTaxInvoice.tid_issueid,\n originalApprovalNo: unipostTaxInvoice.tid_originalissueid,\n issueDate: _dateFormat(unipostTaxInvoice.tid_issuedatetime),\n signatureDate: _dateFormat(unipostTaxInvoice.exd_issuedatetime.substring(0, 8)),\n invoiceType: unipostTaxInvoice.tid_typecode,\n purpose: unipostTaxInvoice.tid_purposecode,\n revisedReason: unipostTaxInvoice.tid_amendcode,\n remark0: unipostTaxInvoice.tid_desc0,\n remark1: unipostTaxInvoice.tid_desc1,\n remark2: unipostTaxInvoice.tid_desc2,\n category: category,\n supplierBusinessRegistrationCategory: unipostTaxInvoice.tit_alice_specorg_biztypecode,\n supplierBusinessRegistrationNumber: unipostTaxInvoice.tit_alice_id,\n supplierBranchIdentification: unipostTaxInvoice.tit_alice_specorg_taxregid,\n supplierBusinessName: unipostTaxInvoice.tit_alice_name,\n supplierRepresentativeName: unipostTaxInvoice.tit_alice_specperson_name,\n supplierAddress: unipostTaxInvoice.tit_alice_specaddr_lineone,\n supplierBusinessType: unipostTaxInvoice.tit_alice_typecode,\n supplierIndustryType: unipostTaxInvoice.tit_alice_classcode,\n supplierDepartment: unipostTaxInvoice.tit_alice_defcont_deptname,\n supplierContactName: unipostTaxInvoice.tit_alice_defcont_personname,\n supplierContactPhone: unipostTaxInvoice.tit_alice_defcont_telcomm,\n supplierContactEmail: unipostTaxInvoice.tit_alice_defcont_uricomm,\n supplierContactCellPhone: unipostTaxInvoice.tit_alice_defcont_cellphone,\n buyerBusinessRegistrationCategory: unipostTaxInvoice.tit_bob_specorg_biztypecode,\n buyerBusinessRegistrationNumber: unipostTaxInvoice.tit_bob_id,\n buyerBranchIdentification: unipostTaxInvoice.tit_bob_specorg_taxregid,\n buyerBusinessName: unipostTaxInvoice.tit_bob_name,\n buyerRepresentativeName: unipostTaxInvoice.tit_bob_specperson_name,\n buyerAddress: unipostTaxInvoice.tit_bob_specaddr_lineone,\n buyerBusinessType: unipostTaxInvoice.tit_bob_typecode,\n buyerIndustryType: unipostTaxInvoice.tit_bob_classcode,\n buyer1stDepartment: unipostTaxInvoice.tit_bob_1stdefcont_deptname,\n buyer1stContactName: unipostTaxInvoice.tit_bob_1stdefcont_personname,\n buyer1stContactPhone: unipostTaxInvoice.tit_bob_1stdefcont_telcomm,\n buyer1stContactEmail: unipostTaxInvoice.tit_bob_1stdefcont_uricomm,\n buyer1stContactCellPhone: unipostTaxInvoice.tit_bob_1stdefcont_cellphone,\n buyer2ndDepartment: unipostTaxInvoice.tit_bob_2nddefcont_deptname,\n buyer2ndContactName: unipostTaxInvoice.tit_bob_2nddefcont_personname,\n buyer2ndContactPhone: unipostTaxInvoice.tit_bob_2nddefcont_telcomm,\n buyer2ndContactEmail: unipostTaxInvoice.tit_bob_2nddefcont_uricomm,\n buyer2ndContactCellPhone: unipostTaxInvoice.tit_bob_2nddefcont_cellphone,\n agentBusinessRegistrationCategory: unipostTaxInvoice.tit_broker_specorg_biztypecode,\n agentBusinessRegistrationNumber: unipostTaxInvoice.tit_broker_id,\n agentBranchIdentification: unipostTaxInvoice.tit_broker_specorg_taxregid,\n agentBusinessName: unipostTaxInvoice.tit_broker_name,\n agentRepresentativeName: unipostTaxInvoice.tit_broker_specperson_name,\n agentAddress: unipostTaxInvoice.tit_broker_specaddr_lineone,\n agentBusinessType: unipostTaxInvoice.tit_broker_typecode,\n agentIndustryType: unipostTaxInvoice.tit_broker_classcode,\n agentDepartment: unipostTaxInvoice.tit_broker_defcont_deptname,\n agentContactName: unipostTaxInvoice.tit_broker_defcont_personname,\n agentContactPhone: unipostTaxInvoice.tit_broker_defcont_telcomm,\n agentContactEmail: unipostTaxInvoice.tit_broker_defcont_uricomm,\n agentContactCellPhone: unipostTaxInvoice.tit_broker_defcont_cellphone,\n paymentAmountCash: unipostTaxInvoice.tit_specpay_paidamount10,\n paymentAmountCheck: unipostTaxInvoice.tit_specpay_paidamount20,\n paymentAmountPromissoryNote: unipostTaxInvoice.tit_specpay_paidamount30,\n paymentAmountAccountsReceivable: unipostTaxInvoice.tit_specpay_paidamount40,\n supplyAmount: unipostTaxInvoice.tit_specsum_chargeamount,\n taxAmount: unipostTaxInvoice.tit_specsum_taxamount,\n totalAmount: unipostTaxInvoice.tit_specsum_grandamount\n }\n\n taxInvoiceItems = unipostTaxInvoiceItems.map(item => ({\n sequence: item.tii_seqnumeric,\n supplyDate: _dateFormat(item.tii_purchaseexpirydatetime),\n itemName: item.tii_nametext,\n specification: item.tii_informationtext,\n quantity: item.tii_chargeableunitquantity,\n unitPrice: item.tii_unitprice_unitamount,\n supplyPrice: item.tii_invoiceamount,\n taxPrice: item.tii_totaltax_calcamount,\n remark: item.tii_descriptiontext\n }))\n\n return { taxInvoice, taxInvoiceItems }\n}\n\n// YYYYMMDD => YYYY-MM-DD\nconst _dateFormat = date => date.replace(/(\\d{4})(\\d{2})(\\d{2})/g, '$1-$2-$3')\n"]}
@@ -118,7 +118,7 @@ tslib_1.__decorate([
118
118
  tslib_1.__metadata("design:type", String)
119
119
  ], TaxInvoice.prototype, "approvalNo", void 0);
120
120
  tslib_1.__decorate([
121
- (0, typeorm_1.Column)({ nullable: true, comment: '원 승인 번호 (계산서 수정시 원래의 승인 번호)' }),
121
+ (0, typeorm_1.Column)({ nullable: true, default: '', comment: '원 승인 번호 (계산서 수정시 원래의 승인 번호)' }),
122
122
  (0, type_graphql_1.Field)({ nullable: true, description: '원 승인 번호 (계산서 수정시 원래의 승인 번호)' }),
123
123
  tslib_1.__metadata("design:type", String)
124
124
  ], TaxInvoice.prototype, "originalApprovalNo", void 0);
@@ -173,7 +173,7 @@ tslib_1.__decorate([
173
173
  tslib_1.__metadata("design:type", String)
174
174
  ], TaxInvoice.prototype, "supplierBusinessRegistrationNumber", void 0);
175
175
  tslib_1.__decorate([
176
- (0, typeorm_1.Column)({ nullable: true, comment: '종사업장 식별 코드' }),
176
+ (0, typeorm_1.Column)({ nullable: true, default: '0', comment: '종사업장 식별 코드' }),
177
177
  (0, type_graphql_1.Field)({ nullable: true, description: '종사업장 식별 코드' }),
178
178
  tslib_1.__metadata("design:type", String)
179
179
  ], TaxInvoice.prototype, "supplierBranchIdentification", void 0);
@@ -238,7 +238,7 @@ tslib_1.__decorate([
238
238
  tslib_1.__metadata("design:type", String)
239
239
  ], TaxInvoice.prototype, "buyerBusinessRegistrationNumber", void 0);
240
240
  tslib_1.__decorate([
241
- (0, typeorm_1.Column)({ nullable: true, comment: '공급받는자 종사업장 식별 코드' }),
241
+ (0, typeorm_1.Column)({ nullable: true, default: '0', comment: '공급받는자 종사업장 식별 코드' }),
242
242
  (0, type_graphql_1.Field)({ nullable: true, description: '공급받는자 종사업장 식별 코드' }),
243
243
  tslib_1.__metadata("design:type", String)
244
244
  ], TaxInvoice.prototype, "buyerBranchIdentification", void 0);
@@ -328,7 +328,7 @@ tslib_1.__decorate([
328
328
  tslib_1.__metadata("design:type", String)
329
329
  ], TaxInvoice.prototype, "agentBusinessRegistrationNumber", void 0);
330
330
  tslib_1.__decorate([
331
- (0, typeorm_1.Column)({ nullable: true, comment: '수탁사업자 종사업장 식별코드' }),
331
+ (0, typeorm_1.Column)({ nullable: true, default: '', comment: '수탁사업자 종사업장 식별코드' }),
332
332
  (0, type_graphql_1.Field)({ nullable: true, description: '수탁사업자 종사업장 식별코드' }),
333
333
  tslib_1.__metadata("design:type", String)
334
334
  ], TaxInvoice.prototype, "agentBranchIdentification", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"tax-invoice.js","sourceRoot":"","sources":["../../../server/service/tax-invoice/tax-invoice.ts"],"names":[],"mappings":"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","sourcesContent":["import { CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Entity, Index, Column, RelationId, ManyToOne, OneToMany, PrimaryGeneratedColumn } from 'typeorm'\nimport { ObjectType, Field, ID, registerEnumType } from 'type-graphql'\nimport { encryptTransformer } from '@things-factory/shell'\n\nimport { Domain } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { TaxInvoiceItem } from '../tax-invoice-item/tax-invoice-item'\n\nexport enum Category {\n EXPORT = '10', // 매출\n IMPORT = '20', // 매입\n NTS = '30' // NTS\n}\n// 세금계산서 종류\nexport enum InvoiceType {\n GENERAL_TAX_INVOICE = '0101', // 일반 전자세금계산서\n ZERO_RATED_TAX_INVOICE = '0102', // 영세율 전자세금계산서\n CONSIGNMENT_TAX_INVOICE = '0103', // 위수탁 전자세금계산서\n IMPORT__RATED_CONSIGNMENT_TAX_INVOICE = '0105', // 영세율 위수탁 전자세금계산서\n REVISED_GENERAL_TAX_INVOICE = '0201', // 수정 일반 전자세금계산서\n REVISED_ZERORATED_TAX_INVOICE = '0202', // 수정 영세율 전자세금계산서\n REVISED_CONSIGNMENT_TAX_INVOICE = '0203', // 수정 위수탁 전자세금계산서\n REVISED_IMPORT_TAX_INVOICE = '0204', // 수정 수입 전자세금계산서\n REVISED_ZERORATED_CONSIGNMENT_TAX_INVOICE = '0205', // 수정 영세율 위수탁 전자세금계산서\n GENERAL_INVOICE = '0301', // 일반 전자계산서\n CONSIGNMENT_INVOICE = '0303', // 위수탁 전자계산서\n IMPORT_INVOICE = '0304', // 수입 전자계산서\n REVISED_GENERAL_INVOICE = '0401', // 수정 일반 전자계산서\n REVISED_CONSIGNMENT_INVOICE = '0403', // 수정 위수탁 전자계산서\n REVISED_IMPORT_INVOICE = '0404' // 수정 수입 전자계산서\n}\n// 세금계산서 영수/청구 구분 지시자\nexport enum Purpose {\n RECEIPT = '01', // 영수\n BILLING = '02' // 청구\n}\n// 세금계산서 수정사유 코드\nexport enum RevisedReason {\n ENTRY_ERROR_CORRECTION = '01', // 기재사항 착오·정정\n SUPPLY_VALUE_CHANGE = '02', // 공급가액 변동\n REVERSAL_ENTRY = '03', // 환입\n CONTRACT_CANCELLATION = '04', // 계약의 해제\n POST_FACTO_DOMESTIC_LC_ISSUANCE = '05', // 내국신용장 사후 개설\n ERROR_BASED_DUPLICATE_ISSUANCE = '06' // 착오에 의한 이중발급\n}\n// 세금계산서 공급받는자 사업자등록번호 구분코드\nexport enum BusinessRegistrationCategory {\n BUSINESS_REGISTRATION_NUMBER = '01', // 사업자등록번호\n RESIDENT_REGISTRATION_NUMBER = '02', // 주민등록번호\n FOREIGNER_REGISTRATION_NUMBER = '03' // 외국인등록번호\n}\n\nregisterEnumType(Category, {\n name: 'Category',\n description: 'category'\n})\nregisterEnumType(InvoiceType, {\n name: 'InvoiceType',\n description: 'invoice type'\n})\nregisterEnumType(Purpose, {\n name: 'Purpose',\n description: 'purpose'\n})\nregisterEnumType(RevisedReason, {\n name: 'RevisedReason',\n description: 'revised reason'\n})\nregisterEnumType(BusinessRegistrationCategory, {\n name: 'BusinessRegistrationCategory',\n description: 'business registration category'\n})\n\n@Entity()\n@Index('ix_tax_invoice_0', (taxInvoice: TaxInvoice) => [taxInvoice.domain, taxInvoice.id, taxInvoice.deletedAt], {\n unique: true\n})\n@Index('ix_tax_invoice_1', (taxInvoice: TaxInvoice) => [taxInvoice.domain, taxInvoice.issueDate])\n@Index('ix_approval_no', (taxInvoice: TaxInvoice) => [taxInvoice.domain, taxInvoice.approvalNo], { unique: true })\n@ObjectType({ description: 'Entity for TaxInvoice' })\nexport class TaxInvoice {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id!: string\n\n @ManyToOne(type => Domain)\n @Field({ nullable: true })\n domain?: Domain\n\n @RelationId((taxInvoice: TaxInvoice) => taxInvoice.domain)\n domainId?: string\n\n @OneToMany(type => TaxInvoiceItem, taxInvoiceItem => taxInvoiceItem.taxInvoice)\n @Field(type => [TaxInvoiceItem], { nullable: true })\n taxInvoiceItems?: TaxInvoiceItem[]\n\n @Column({ nullable: true, comment: '메모' })\n @Field({ nullable: true, description: '메모' })\n memo?: string\n\n @Column({ nullable: false, comment: '세금계산서 구분 (매출: 10, 매입: 20, NTS: 30)' })\n @Field({ nullable: false, description: '세금계산서 구분 (매출: 10, 매입: 20, NTS: 30)' })\n category!: Category\n\n @Column({ nullable: true, comment: '연동 번호 (작성 시 번호, 승인번호와 동일)' })\n @Field({ nullable: true, description: '연동 번호 (작성 시 번호, 승인번호와 동일)' })\n issueNo?: string\n\n @Column({ nullable: true, comment: '승인 번호 (24자리)' })\n @Field({ nullable: true, description: '승인 번호 (24자리)' })\n approvalNo?: string\n\n @Column({ nullable: true, comment: '원 승인 번호 (계산서 수정시 원래의 승인 번호)' })\n @Field({ nullable: true, description: '원 승인 번호 (계산서 수정시 원래의 승인 번호)' })\n originalApprovalNo?: string\n\n @Column({ nullable: false, comment: '세금계산서 작성 일자 (YYYY-MM-DD)' })\n @Field({ nullable: false, description: '세금계산서 작성 일자 (YYYY-MM-DD)' })\n issueDate!: Date\n\n @Column({ nullable: true, comment: '세금계산서 전자 서명 일자 (YYYY-MM-DD)' })\n @Field({ nullable: true, description: '세금계산서 전자 서명 일자 (YYYY-MM-DD)' })\n signatureDate?: Date\n\n @Column({ nullable: false, comment: '세금계산서 종류 코드 (일반, 영세율, 위수탁)' })\n @Field({ nullable: false, description: '세금계산서 종류 코드 (일반, 영세율, 위수탁)' })\n invoiceType!: InvoiceType\n\n @Column({ nullable: false, comment: '세금계산서의 영수/청구 구분 지시자 코드' })\n @Field({ nullable: false, description: '세금계산서의 영수/청구 구분 지시자 코드' })\n purpose!: Purpose\n\n @Column({ nullable: true, comment: '수정 사유 코드' })\n @Field({ nullable: true, description: '수정 사유 코드' })\n revisedReason?: RevisedReason\n\n @Column({ nullable: true, comment: '비고0' })\n @Field({ nullable: true, description: '비고0' })\n remark0?: string\n\n @Column({ nullable: true, comment: '비고1' })\n @Field({ nullable: true, description: '비고1' })\n remark1?: string\n\n @Column({ nullable: true, comment: '비고2' })\n @Field({ nullable: true, description: '비고2' })\n remark2?: string\n\n @Column({ nullable: true, comment: '공급자 사업자등록번호 구분 코드' })\n @Field({ nullable: true, description: '공급자 사업자등록번호 구분 코드' })\n supplierBusinessRegistrationCategory?: BusinessRegistrationCategory\n\n @Column({ nullable: false, comment: '공급자 사업자등록번호', transformer: encryptTransformer })\n @Field({ nullable: false, description: '공급자 사업자등록번호' })\n supplierBusinessRegistrationNumber!: string\n\n @Column({ nullable: true, comment: '종사업장 식별 코드' })\n @Field({ nullable: true, description: '종사업장 식별 코드' })\n supplierBranchIdentification?: string\n\n @Column({ nullable: false, comment: '공급자 사업자명' })\n @Field({ nullable: false, description: '공급자 사업자명' })\n supplierBusinessName!: string\n\n @Column({ nullable: false, comment: '공급자 대표자명' })\n @Field({ nullable: false, description: '공급자 대표자명' })\n supplierRepresentativeName!: string\n\n @Column({ nullable: true, comment: '공급자 주소', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급자 주소' })\n supplierAddress?: string\n\n @Column({ nullable: true, comment: '공급자 업태' })\n @Field({ nullable: true, description: '공급자 업태' })\n supplierBusinessType?: string\n\n @Column({ nullable: true, comment: '공급자 업종' })\n @Field({ nullable: true, description: '공급자 업종' })\n supplierIndustryType?: string\n\n @Column({ nullable: true, comment: '공급자 담당 부서' })\n @Field({ nullable: true, description: '공급자 담당 부서' })\n supplierDepartment?: string\n\n @Column({ nullable: true, comment: '공급자 담당자명', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급자 담당자명' })\n supplierContactName?: string\n\n @Column({ nullable: true, comment: '공급자 담당자 전화번호', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급자 담당자 전화번호' })\n supplierContactPhone?: string\n\n @Column({ nullable: true, comment: '공급자 담당자 이메일', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급자 담당자 이메일' })\n supplierContactEmail?: string\n\n @Column({ nullable: true, comment: '공급자 담당자 핸드폰 번호', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급자 담당자 핸드폰 번호' })\n supplierContactCellPhone?: string\n\n @Column({ nullable: true, comment: '공급받는자 사업자등록번호 구분 코드' })\n @Field({ nullable: true, description: '공급받는자 사업자등록번호 구분 코드' })\n buyerBusinessRegistrationCategory?: BusinessRegistrationCategory\n\n @Column({ nullable: false, comment: '공급받는자 사업자등록번호', transformer: encryptTransformer })\n @Field({ nullable: false, description: '공급받는자 사업자등록번호' })\n buyerBusinessRegistrationNumber!: string\n\n @Column({ nullable: true, comment: '공급받는자 종사업장 식별 코드' })\n @Field({ nullable: true, description: '공급받는자 종사업장 식별 코드' })\n buyerBranchIdentification?: string\n\n @Column({ nullable: false, comment: '공급받는자 사업자명' })\n @Field({ nullable: false, description: '공급받는자 사업자명' })\n buyerBusinessName!: string\n\n @Column({ nullable: false, comment: '공급받는자 대표자명' })\n @Field({ nullable: false, description: '공급받는자 대표자명' })\n buyerRepresentativeName!: string\n\n @Column({ nullable: true, comment: '공급받는자 주소', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급받는자 주소' })\n buyerAddress?: string\n\n @Column({ nullable: true, comment: '공급받는자 업태' })\n @Field({ nullable: true, description: '공급받는자 업태' })\n buyerBusinessType?: string\n\n @Column({ nullable: true, comment: '공급받는자 업종' })\n @Field({ nullable: true, description: '공급받는자 업종' })\n buyerIndustryType?: string\n\n @Column({ nullable: true, comment: '공급받는자 1st 담당부서' })\n @Field({ nullable: true, description: '공급받는자 1st 담당부서' })\n buyer1stDepartment?: string\n\n @Column({ nullable: true, comment: '공급받는자 1st 담당자명', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급받는자 1st 담당자명' })\n buyer1stContactName?: string\n\n @Column({ nullable: true, comment: '공급받는자 1st 담당자 전화번호', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급받는자 1st 담당자 전화번호' })\n buyer1stContactPhone?: string\n\n @Column({ nullable: true, comment: '공급받는자 1st 담당자 이메일', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급받는자 1st 담당자 이메일' })\n buyer1stContactEmail?: string\n\n @Column({ nullable: true, comment: '공급받는자 1st 담당자 핸드폰번호', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급받는자 1st 담당자 핸드폰번호' })\n buyer1stContactCellPhone?: string\n\n @Column({ nullable: true, comment: '공급받는자 2nd 담당부서' })\n @Field({ nullable: true, description: '공급받는자 2nd 담당부서' })\n buyer2ndDepartment?: string\n\n @Column({ nullable: true, comment: '공급받는자 2nd 담당자명', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급받는자 2nd 담당자명' })\n buyer2ndContactName?: string\n\n @Column({ nullable: true, comment: '공급받는자 2nd 담당자 전화번호', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급받는자 2nd 담당자 전화번호' })\n buyer2ndContactPhone?: string\n\n @Column({ nullable: true, comment: '공급받는자 2nd 담당자 이메일', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급받는자 2nd 담당자 이메일' })\n buyer2ndContactEmail?: string\n\n @Column({ nullable: true, comment: '공급받는자 2nd 담당자 핸드폰번호', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급받는자 2nd 담당자 핸드폰번호' })\n buyer2ndContactCellPhone?: string\n\n @Column({ nullable: true, comment: '수탁사업자 사업자등록번호 구분 코드' })\n @Field({ nullable: true, description: '수탁사업자 사업자등록번호 구분 코드' })\n agentBusinessRegistrationCategory?: BusinessRegistrationCategory\n\n @Column({ nullable: true, comment: '수탁사업자 사업자등록번호 (nnnnnnnnnn)', transformer: encryptTransformer })\n @Field({ nullable: true, description: '수탁사업자 사업자등록번호 (nnnnnnnnnn)' })\n agentBusinessRegistrationNumber?: string\n\n @Column({ nullable: true, comment: '수탁사업자 종사업장 식별코드' })\n @Field({ nullable: true, description: '수탁사업자 종사업장 식별코드' })\n agentBranchIdentification?: string\n\n @Column({ nullable: true, comment: '수탁사업자 사업자명' })\n @Field({ nullable: true, description: '수탁사업자 사업자명' })\n agentBusinessName?: string\n\n @Column({ nullable: true, comment: '수탁사업자 대표자명' })\n @Field({ nullable: true, description: '수탁사업자 대표자명' })\n agentRepresentativeName?: string\n\n @Column({ nullable: true, comment: '수탁사업자 주소', transformer: encryptTransformer })\n @Field({ nullable: true, description: '수탁사업자 주소' })\n agentAddress?: string\n\n @Column({ nullable: true, comment: '수탁사업자 업태' })\n @Field({ nullable: true, description: '수탁사업자 업태' })\n agentBusinessType?: string\n\n @Column({ nullable: true, comment: '수탁사업자 업종' })\n @Field({ nullable: true, description: '수탁사업자 업종' })\n agentIndustryType?: string\n\n @Column({ nullable: true, comment: '수탁사업자 담당부서' })\n @Field({ nullable: true, description: '수탁사업자 담당부서' })\n agentDepartment?: string\n\n @Column({ nullable: true, comment: '수탁사업자 담당자명', transformer: encryptTransformer })\n @Field({ nullable: true, description: '수탁사업자 담당자명' })\n agentContactName?: string\n\n @Column({ nullable: true, comment: '수탁사업자 담당자 전화번호', transformer: encryptTransformer })\n @Field({ nullable: true, description: '수탁사업자 담당자 전화번호' })\n agentContactPhone?: string\n\n @Column({ nullable: true, comment: '수탁사업자 담당자 이메일', transformer: encryptTransformer })\n @Field({ nullable: true, description: '수탁사업자 담당자 이메일' })\n agentContactEmail?: string\n\n @Column({ nullable: true, comment: '수탁사업자 담당자 핸드폰번호', transformer: encryptTransformer })\n @Field({ nullable: true, description: '수탁사업자 담당자 핸드폰번호' })\n agentContactCellPhone?: string\n\n @Column({ nullable: true, comment: '결제 금액 - 현금' })\n @Field({ nullable: true, description: '결제 금액 - 현금' })\n paymentAmountCash?: number\n\n @Column({ nullable: true, comment: '결제 금액 - 수표' })\n @Field({ nullable: true, description: '결제 금액 - 수표' })\n paymentAmountCheck?: number\n\n @Column({ nullable: true, comment: '결제 금액 - 어음' })\n @Field({ nullable: true, description: '결제 금액 - 어음' })\n paymentAmountPromissoryNote?: number\n\n @Column({ nullable: true, comment: '결제 금액 - 외상 미수금' })\n @Field({ nullable: true, description: '결제 금액 - 외상 미수금' })\n paymentAmountAccountsReceivable?: number\n\n @Column({ nullable: false, comment: '공급 가액' })\n @Field({ nullable: false, description: '공급 가액' })\n supplyAmount!: number\n\n @Column({ nullable: true, comment: '세액' })\n @Field({ nullable: true, description: '세액' })\n taxAmount?: number\n\n @Column({ nullable: false, comment: '총액 = 공급 가액 + 세액' })\n @Field({ nullable: false, description: '총액 = 공급 가액 + 세액' })\n totalAmount!: number\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @DeleteDateColumn()\n @Field({ nullable: true })\n deletedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((taxInvoice: TaxInvoice) => taxInvoice.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((taxInvoice: TaxInvoice) => taxInvoice.updater)\n updaterId?: string\n}\n"]}
1
+ {"version":3,"file":"tax-invoice.js","sourceRoot":"","sources":["../../../server/service/tax-invoice/tax-invoice.ts"],"names":[],"mappings":"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","sourcesContent":["import { CreateDateColumn, UpdateDateColumn, DeleteDateColumn, Entity, Index, Column, RelationId, ManyToOne, OneToMany, PrimaryGeneratedColumn } from 'typeorm'\nimport { ObjectType, Field, ID, registerEnumType } from 'type-graphql'\nimport { encryptTransformer } from '@things-factory/shell'\n\nimport { Domain } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { TaxInvoiceItem } from '../tax-invoice-item/tax-invoice-item'\n\nexport enum Category {\n EXPORT = '10', // 매출\n IMPORT = '20', // 매입\n NTS = '30' // NTS\n}\n// 세금계산서 종류\nexport enum InvoiceType {\n GENERAL_TAX_INVOICE = '0101', // 일반 전자세금계산서\n ZERO_RATED_TAX_INVOICE = '0102', // 영세율 전자세금계산서\n CONSIGNMENT_TAX_INVOICE = '0103', // 위수탁 전자세금계산서\n IMPORT__RATED_CONSIGNMENT_TAX_INVOICE = '0105', // 영세율 위수탁 전자세금계산서\n REVISED_GENERAL_TAX_INVOICE = '0201', // 수정 일반 전자세금계산서\n REVISED_ZERORATED_TAX_INVOICE = '0202', // 수정 영세율 전자세금계산서\n REVISED_CONSIGNMENT_TAX_INVOICE = '0203', // 수정 위수탁 전자세금계산서\n REVISED_IMPORT_TAX_INVOICE = '0204', // 수정 수입 전자세금계산서\n REVISED_ZERORATED_CONSIGNMENT_TAX_INVOICE = '0205', // 수정 영세율 위수탁 전자세금계산서\n GENERAL_INVOICE = '0301', // 일반 전자계산서\n CONSIGNMENT_INVOICE = '0303', // 위수탁 전자계산서\n IMPORT_INVOICE = '0304', // 수입 전자계산서\n REVISED_GENERAL_INVOICE = '0401', // 수정 일반 전자계산서\n REVISED_CONSIGNMENT_INVOICE = '0403', // 수정 위수탁 전자계산서\n REVISED_IMPORT_INVOICE = '0404' // 수정 수입 전자계산서\n}\n// 세금계산서 영수/청구 구분 지시자\nexport enum Purpose {\n RECEIPT = '01', // 영수\n BILLING = '02' // 청구\n}\n// 세금계산서 수정사유 코드\nexport enum RevisedReason {\n ENTRY_ERROR_CORRECTION = '01', // 기재사항 착오·정정\n SUPPLY_VALUE_CHANGE = '02', // 공급가액 변동\n REVERSAL_ENTRY = '03', // 환입\n CONTRACT_CANCELLATION = '04', // 계약의 해제\n POST_FACTO_DOMESTIC_LC_ISSUANCE = '05', // 내국신용장 사후 개설\n ERROR_BASED_DUPLICATE_ISSUANCE = '06' // 착오에 의한 이중발급\n}\n// 세금계산서 공급받는자 사업자등록번호 구분코드\nexport enum BusinessRegistrationCategory {\n BUSINESS_REGISTRATION_NUMBER = '01', // 사업자등록번호\n RESIDENT_REGISTRATION_NUMBER = '02', // 주민등록번호\n FOREIGNER_REGISTRATION_NUMBER = '03' // 외국인등록번호\n}\n\nregisterEnumType(Category, {\n name: 'Category',\n description: 'category'\n})\nregisterEnumType(InvoiceType, {\n name: 'InvoiceType',\n description: 'invoice type'\n})\nregisterEnumType(Purpose, {\n name: 'Purpose',\n description: 'purpose'\n})\nregisterEnumType(RevisedReason, {\n name: 'RevisedReason',\n description: 'revised reason'\n})\nregisterEnumType(BusinessRegistrationCategory, {\n name: 'BusinessRegistrationCategory',\n description: 'business registration category'\n})\n\n@Entity()\n@Index('ix_tax_invoice_0', (taxInvoice: TaxInvoice) => [taxInvoice.domain, taxInvoice.id, taxInvoice.deletedAt], {\n unique: true\n})\n@Index('ix_tax_invoice_1', (taxInvoice: TaxInvoice) => [taxInvoice.domain, taxInvoice.issueDate])\n@Index('ix_approval_no', (taxInvoice: TaxInvoice) => [taxInvoice.domain, taxInvoice.approvalNo], { unique: true })\n@ObjectType({ description: 'Entity for TaxInvoice' })\nexport class TaxInvoice {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id!: string\n\n @ManyToOne(type => Domain)\n @Field({ nullable: true })\n domain?: Domain\n\n @RelationId((taxInvoice: TaxInvoice) => taxInvoice.domain)\n domainId?: string\n\n @OneToMany(type => TaxInvoiceItem, taxInvoiceItem => taxInvoiceItem.taxInvoice)\n @Field(type => [TaxInvoiceItem], { nullable: true })\n taxInvoiceItems?: TaxInvoiceItem[]\n\n @Column({ nullable: true, comment: '메모' })\n @Field({ nullable: true, description: '메모' })\n memo?: string\n\n @Column({ nullable: false, comment: '세금계산서 구분 (매출: 10, 매입: 20, NTS: 30)' })\n @Field({ nullable: false, description: '세금계산서 구분 (매출: 10, 매입: 20, NTS: 30)' })\n category!: Category\n\n @Column({ nullable: true, comment: '연동 번호 (작성 시 번호, 승인번호와 동일)' })\n @Field({ nullable: true, description: '연동 번호 (작성 시 번호, 승인번호와 동일)' })\n issueNo?: string\n\n @Column({ nullable: true, comment: '승인 번호 (24자리)' })\n @Field({ nullable: true, description: '승인 번호 (24자리)' })\n approvalNo?: string\n\n @Column({ nullable: true, default: '', comment: '원 승인 번호 (계산서 수정시 원래의 승인 번호)' })\n @Field({ nullable: true, description: '원 승인 번호 (계산서 수정시 원래의 승인 번호)' })\n originalApprovalNo?: string\n\n @Column({ nullable: false, comment: '세금계산서 작성 일자 (YYYY-MM-DD)' })\n @Field({ nullable: false, description: '세금계산서 작성 일자 (YYYY-MM-DD)' })\n issueDate!: Date\n\n @Column({ nullable: true, comment: '세금계산서 전자 서명 일자 (YYYY-MM-DD)' })\n @Field({ nullable: true, description: '세금계산서 전자 서명 일자 (YYYY-MM-DD)' })\n signatureDate?: Date\n\n @Column({ nullable: false, comment: '세금계산서 종류 코드 (일반, 영세율, 위수탁)' })\n @Field({ nullable: false, description: '세금계산서 종류 코드 (일반, 영세율, 위수탁)' })\n invoiceType!: InvoiceType\n\n @Column({ nullable: false, comment: '세금계산서의 영수/청구 구분 지시자 코드' })\n @Field({ nullable: false, description: '세금계산서의 영수/청구 구분 지시자 코드' })\n purpose!: Purpose\n\n @Column({ nullable: true, comment: '수정 사유 코드' })\n @Field({ nullable: true, description: '수정 사유 코드' })\n revisedReason?: RevisedReason\n\n @Column({ nullable: true, comment: '비고0' })\n @Field({ nullable: true, description: '비고0' })\n remark0?: string\n\n @Column({ nullable: true, comment: '비고1' })\n @Field({ nullable: true, description: '비고1' })\n remark1?: string\n\n @Column({ nullable: true, comment: '비고2' })\n @Field({ nullable: true, description: '비고2' })\n remark2?: string\n\n @Column({ nullable: true, comment: '공급자 사업자등록번호 구분 코드' })\n @Field({ nullable: true, description: '공급자 사업자등록번호 구분 코드' })\n supplierBusinessRegistrationCategory?: BusinessRegistrationCategory\n\n @Column({ nullable: false, comment: '공급자 사업자등록번호', transformer: encryptTransformer })\n @Field({ nullable: false, description: '공급자 사업자등록번호' })\n supplierBusinessRegistrationNumber!: string\n\n @Column({ nullable: true, default: '0', comment: '종사업장 식별 코드' })\n @Field({ nullable: true, description: '종사업장 식별 코드' })\n supplierBranchIdentification?: string\n\n @Column({ nullable: false, comment: '공급자 사업자명' })\n @Field({ nullable: false, description: '공급자 사업자명' })\n supplierBusinessName!: string\n\n @Column({ nullable: false, comment: '공급자 대표자명' })\n @Field({ nullable: false, description: '공급자 대표자명' })\n supplierRepresentativeName!: string\n\n @Column({ nullable: true, comment: '공급자 주소', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급자 주소' })\n supplierAddress?: string\n\n @Column({ nullable: true, comment: '공급자 업태' })\n @Field({ nullable: true, description: '공급자 업태' })\n supplierBusinessType?: string\n\n @Column({ nullable: true, comment: '공급자 업종' })\n @Field({ nullable: true, description: '공급자 업종' })\n supplierIndustryType?: string\n\n @Column({ nullable: true, comment: '공급자 담당 부서' })\n @Field({ nullable: true, description: '공급자 담당 부서' })\n supplierDepartment?: string\n\n @Column({ nullable: true, comment: '공급자 담당자명', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급자 담당자명' })\n supplierContactName?: string\n\n @Column({ nullable: true, comment: '공급자 담당자 전화번호', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급자 담당자 전화번호' })\n supplierContactPhone?: string\n\n @Column({ nullable: true, comment: '공급자 담당자 이메일', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급자 담당자 이메일' })\n supplierContactEmail?: string\n\n @Column({ nullable: true, comment: '공급자 담당자 핸드폰 번호', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급자 담당자 핸드폰 번호' })\n supplierContactCellPhone?: string\n\n @Column({ nullable: true, comment: '공급받는자 사업자등록번호 구분 코드' })\n @Field({ nullable: true, description: '공급받는자 사업자등록번호 구분 코드' })\n buyerBusinessRegistrationCategory?: BusinessRegistrationCategory\n\n @Column({ nullable: false, comment: '공급받는자 사업자등록번호', transformer: encryptTransformer })\n @Field({ nullable: false, description: '공급받는자 사업자등록번호' })\n buyerBusinessRegistrationNumber!: string\n\n @Column({ nullable: true, default: '0', comment: '공급받는자 종사업장 식별 코드' })\n @Field({ nullable: true, description: '공급받는자 종사업장 식별 코드' })\n buyerBranchIdentification?: string\n\n @Column({ nullable: false, comment: '공급받는자 사업자명' })\n @Field({ nullable: false, description: '공급받는자 사업자명' })\n buyerBusinessName!: string\n\n @Column({ nullable: false, comment: '공급받는자 대표자명' })\n @Field({ nullable: false, description: '공급받는자 대표자명' })\n buyerRepresentativeName!: string\n\n @Column({ nullable: true, comment: '공급받는자 주소', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급받는자 주소' })\n buyerAddress?: string\n\n @Column({ nullable: true, comment: '공급받는자 업태' })\n @Field({ nullable: true, description: '공급받는자 업태' })\n buyerBusinessType?: string\n\n @Column({ nullable: true, comment: '공급받는자 업종' })\n @Field({ nullable: true, description: '공급받는자 업종' })\n buyerIndustryType?: string\n\n @Column({ nullable: true, comment: '공급받는자 1st 담당부서' })\n @Field({ nullable: true, description: '공급받는자 1st 담당부서' })\n buyer1stDepartment?: string\n\n @Column({ nullable: true, comment: '공급받는자 1st 담당자명', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급받는자 1st 담당자명' })\n buyer1stContactName?: string\n\n @Column({ nullable: true, comment: '공급받는자 1st 담당자 전화번호', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급받는자 1st 담당자 전화번호' })\n buyer1stContactPhone?: string\n\n @Column({ nullable: true, comment: '공급받는자 1st 담당자 이메일', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급받는자 1st 담당자 이메일' })\n buyer1stContactEmail?: string\n\n @Column({ nullable: true, comment: '공급받는자 1st 담당자 핸드폰번호', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급받는자 1st 담당자 핸드폰번호' })\n buyer1stContactCellPhone?: string\n\n @Column({ nullable: true, comment: '공급받는자 2nd 담당부서' })\n @Field({ nullable: true, description: '공급받는자 2nd 담당부서' })\n buyer2ndDepartment?: string\n\n @Column({ nullable: true, comment: '공급받는자 2nd 담당자명', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급받는자 2nd 담당자명' })\n buyer2ndContactName?: string\n\n @Column({ nullable: true, comment: '공급받는자 2nd 담당자 전화번호', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급받는자 2nd 담당자 전화번호' })\n buyer2ndContactPhone?: string\n\n @Column({ nullable: true, comment: '공급받는자 2nd 담당자 이메일', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급받는자 2nd 담당자 이메일' })\n buyer2ndContactEmail?: string\n\n @Column({ nullable: true, comment: '공급받는자 2nd 담당자 핸드폰번호', transformer: encryptTransformer })\n @Field({ nullable: true, description: '공급받는자 2nd 담당자 핸드폰번호' })\n buyer2ndContactCellPhone?: string\n\n @Column({ nullable: true, comment: '수탁사업자 사업자등록번호 구분 코드' })\n @Field({ nullable: true, description: '수탁사업자 사업자등록번호 구분 코드' })\n agentBusinessRegistrationCategory?: BusinessRegistrationCategory\n\n @Column({ nullable: true, comment: '수탁사업자 사업자등록번호 (nnnnnnnnnn)', transformer: encryptTransformer })\n @Field({ nullable: true, description: '수탁사업자 사업자등록번호 (nnnnnnnnnn)' })\n agentBusinessRegistrationNumber?: string\n\n @Column({ nullable: true, default: '', comment: '수탁사업자 종사업장 식별코드' })\n @Field({ nullable: true, description: '수탁사업자 종사업장 식별코드' })\n agentBranchIdentification?: string\n\n @Column({ nullable: true, comment: '수탁사업자 사업자명' })\n @Field({ nullable: true, description: '수탁사업자 사업자명' })\n agentBusinessName?: string\n\n @Column({ nullable: true, comment: '수탁사업자 대표자명' })\n @Field({ nullable: true, description: '수탁사업자 대표자명' })\n agentRepresentativeName?: string\n\n @Column({ nullable: true, comment: '수탁사업자 주소', transformer: encryptTransformer })\n @Field({ nullable: true, description: '수탁사업자 주소' })\n agentAddress?: string\n\n @Column({ nullable: true, comment: '수탁사업자 업태' })\n @Field({ nullable: true, description: '수탁사업자 업태' })\n agentBusinessType?: string\n\n @Column({ nullable: true, comment: '수탁사업자 업종' })\n @Field({ nullable: true, description: '수탁사업자 업종' })\n agentIndustryType?: string\n\n @Column({ nullable: true, comment: '수탁사업자 담당부서' })\n @Field({ nullable: true, description: '수탁사업자 담당부서' })\n agentDepartment?: string\n\n @Column({ nullable: true, comment: '수탁사업자 담당자명', transformer: encryptTransformer })\n @Field({ nullable: true, description: '수탁사업자 담당자명' })\n agentContactName?: string\n\n @Column({ nullable: true, comment: '수탁사업자 담당자 전화번호', transformer: encryptTransformer })\n @Field({ nullable: true, description: '수탁사업자 담당자 전화번호' })\n agentContactPhone?: string\n\n @Column({ nullable: true, comment: '수탁사업자 담당자 이메일', transformer: encryptTransformer })\n @Field({ nullable: true, description: '수탁사업자 담당자 이메일' })\n agentContactEmail?: string\n\n @Column({ nullable: true, comment: '수탁사업자 담당자 핸드폰번호', transformer: encryptTransformer })\n @Field({ nullable: true, description: '수탁사업자 담당자 핸드폰번호' })\n agentContactCellPhone?: string\n\n @Column({ nullable: true, comment: '결제 금액 - 현금' })\n @Field({ nullable: true, description: '결제 금액 - 현금' })\n paymentAmountCash?: number\n\n @Column({ nullable: true, comment: '결제 금액 - 수표' })\n @Field({ nullable: true, description: '결제 금액 - 수표' })\n paymentAmountCheck?: number\n\n @Column({ nullable: true, comment: '결제 금액 - 어음' })\n @Field({ nullable: true, description: '결제 금액 - 어음' })\n paymentAmountPromissoryNote?: number\n\n @Column({ nullable: true, comment: '결제 금액 - 외상 미수금' })\n @Field({ nullable: true, description: '결제 금액 - 외상 미수금' })\n paymentAmountAccountsReceivable?: number\n\n @Column({ nullable: false, comment: '공급 가액' })\n @Field({ nullable: false, description: '공급 가액' })\n supplyAmount!: number\n\n @Column({ nullable: true, comment: '세액' })\n @Field({ nullable: true, description: '세액' })\n taxAmount?: number\n\n @Column({ nullable: false, comment: '총액 = 공급 가액 + 세액' })\n @Field({ nullable: false, description: '총액 = 공급 가액 + 세액' })\n totalAmount!: number\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @DeleteDateColumn()\n @Field({ nullable: true })\n deletedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((taxInvoice: TaxInvoice) => taxInvoice.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((taxInvoice: TaxInvoice) => taxInvoice.updater)\n updaterId?: string\n}\n"]}
@@ -9,6 +9,7 @@ const tax_invoice_api_type_1 = require("./tax-invoice-api-type");
9
9
  const tax_invoice_item_1 = require("../tax-invoice-item/tax-invoice-item");
10
10
  const tax_invoice_1 = require("../tax-invoice/tax-invoice");
11
11
  const tax_invoice_send_1 = require("../unipost-api/tax-invoice-send");
12
+ const tax_invoice_util_1 = require("../tax-invoice/tax-invoice-util");
12
13
  let TaxInvoiceApiMutation = class TaxInvoiceApiMutation {
13
14
  async updateMultipleTaxInvoiceApi(patch, context) {
14
15
  const { domain, user, tx } = context.state;
@@ -34,6 +35,7 @@ let TaxInvoiceApiMutation = class TaxInvoiceApiMutation {
34
35
  return true;
35
36
  }
36
37
  async sendTaxInvoicesByApi(taxInvoiceSendList, context) {
38
+ var _a;
37
39
  if (taxInvoiceSendList.length === 0)
38
40
  throw new Error('tax invoice send exception: no list');
39
41
  const { domain, user, tx } = context.state;
@@ -43,18 +45,33 @@ let TaxInvoiceApiMutation = class TaxInvoiceApiMutation {
43
45
  const apiInfo = (await taxInvoiceApiRepo.find()).at(0);
44
46
  const businessRegistrationNumber = apiInfo.businessRegistrationNumber;
45
47
  const { aid = '', bearer = '', customer_no = '' } = apiInfo === null || apiInfo === void 0 ? void 0 : apiInfo.attributes;
46
- console.log(apiInfo === null || apiInfo === void 0 ? void 0 : apiInfo.attributes);
47
- // 밸리데이션 및 데이터 파싱
48
+ let failCount = 0;
49
+ // 1. 밸리데이션 및 데이터 파싱
48
50
  let newTaxInvoiceSendList = taxInvoiceSendList.map(taxInvoiceSend => this._parseTaxInvoiceSendForApi(taxInvoiceSend, aid, customer_no));
49
- // 세금계산서 발행 API 호출
50
- const apiResult = (0, tax_invoice_send_1.sendTaxInvoiceByUniposApi)(businessRegistrationNumber, aid, bearer, newTaxInvoiceSendList);
51
- if (!apiResult) {
52
- throw new Error('tax invoice send exception: api problem');
51
+ // 2. 세금계산서 발행 API 호출
52
+ const apiResult = await (0, tax_invoice_send_1.sendTaxInvoiceByUniposApi)(businessRegistrationNumber, aid, bearer, newTaxInvoiceSendList);
53
+ // 3. 성공하면 세금계산서 DB에 저장
54
+ for (let item of apiResult) {
55
+ if (item === null || item === void 0 ? void 0 : item.success) {
56
+ const { taxInvoice, taxInvoiceItems } = (0, tax_invoice_util_1.parseTaxInvoiceByUnipostFormat)(item === null || item === void 0 ? void 0 : item.tAliceEntry, (_a = item === null || item === void 0 ? void 0 : item.tAliceEntry) === null || _a === void 0 ? void 0 : _a.tAliceItemList, tax_invoice_1.Category.EXPORT);
57
+ // 세금계산서 저장
58
+ const newTaxInvoice = await taxInvoiceRepo.save(Object.assign(Object.assign({}, taxInvoice), { domain, creator: user, updater: user }));
59
+ // 아이템 저장
60
+ for (const item of taxInvoiceItems) {
61
+ await taxInvoiceItemRepo.save(Object.assign(Object.assign({}, item), { taxInvoice: newTaxInvoice, domain, creator: user }));
62
+ }
63
+ }
64
+ else {
65
+ failCount++;
66
+ }
53
67
  }
54
- // 세금계산서 저장 리졸버 호출
55
- // createTaxInvoice
56
- return apiResult;
68
+ // 실패가 1개라도 있으면 에러
69
+ if (failCount > 0) {
70
+ throw new Error(failCount + '개의 계산서 등록에 실패하였습니다.');
71
+ }
72
+ return true;
57
73
  }
74
+ // 유니스포트에 받을수 있는 포맷으로 데이터 파싱
58
75
  _parseTaxInvoiceSendForApi(taxInvoiceSend, aid, customer_no) {
59
76
  const { taxInvoice, taxInvoiceItems } = taxInvoiceSend;
60
77
  let newTaxInvoiceItems = [];
@@ -188,7 +205,7 @@ tslib_1.__decorate([
188
205
  ], TaxInvoiceApiMutation.prototype, "deleteTaxInvoiceApis", null);
189
206
  tslib_1.__decorate([
190
207
  (0, type_graphql_1.Directive)('@transaction'),
191
- (0, type_graphql_1.Mutation)(returns => tax_invoice_api_1.TaxInvoiceApi, { description: 'To Send Tax Invoices By Api' }),
208
+ (0, type_graphql_1.Mutation)(returns => Boolean, { description: 'To Send Tax Invoices By Api' }),
192
209
  tslib_1.__param(0, (0, type_graphql_1.Arg)('taxInvoiceSendList', type => [tax_invoice_api_type_1.TaxInvoiceSend])),
193
210
  tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
194
211
  tslib_1.__metadata("design:type", Function),