@things-factory/tax-invoice 8.0.79 → 8.0.80
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.
- package/dist-server/service/tax-invoice/tax-invoice-mutation.js +17 -7
- package/dist-server/service/tax-invoice/tax-invoice-mutation.js.map +1 -1
- package/dist-server/service/tax-invoice-api/tax-invoice-api.js +1 -1
- package/dist-server/service/tax-invoice-api/tax-invoice-api.js.map +1 -1
- package/dist-server/service/unipost-api/tax-invoice-inquiry.js +2 -2
- package/dist-server/service/unipost-api/tax-invoice-inquiry.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/server/service/tax-invoice/tax-invoice-mutation.ts +19 -7
- package/server/service/tax-invoice-api/tax-invoice-api.ts +1 -1
- package/server/service/unipost-api/tax-invoice-inquiry.ts +2 -2
|
@@ -58,20 +58,30 @@ let TaxInvoiceMutation = class TaxInvoiceMutation {
|
|
|
58
58
|
const taxInvoiceRepo = tx.getRepository(tax_invoice_1.TaxInvoice);
|
|
59
59
|
const insertedData = []; // API 호출 후 결과 회신용
|
|
60
60
|
// TODO 여기 기본값으로 가져와야하는거 아님?
|
|
61
|
-
const apiInfo =
|
|
61
|
+
const apiInfo = await taxInvoiceApiRepo
|
|
62
|
+
.createQueryBuilder('tia')
|
|
63
|
+
.leftJoinAndSelect('tia.domain', 'domain')
|
|
64
|
+
.where('domain.id = :domainId', { domainId: domain.id })
|
|
65
|
+
.andWhere('tia.isDefault = true')
|
|
66
|
+
.orderBy('tia.createdAt', 'DESC')
|
|
67
|
+
.getOne();
|
|
68
|
+
if (!apiInfo) {
|
|
69
|
+
throw new Error('기본 세금계산서 API 정보가 설정되어 있지 않습니다.');
|
|
70
|
+
}
|
|
62
71
|
const businessRegistrationNumber = apiInfo.businessRegistrationNumber;
|
|
63
|
-
const { aid = '', bearer = '' } = apiInfo
|
|
64
|
-
env_1.logger.info(
|
|
72
|
+
const { aid = '', bearer = '' } = apiInfo.attributes || {};
|
|
73
|
+
env_1.logger.info(`apiInfo : ${JSON.stringify(apiInfo)}`);
|
|
65
74
|
// API 호출하여 세금계산서 데이터 가져옴
|
|
66
75
|
const { issueNoList, taxList } = await (0, tax_invoice_inquiry_1.getTaxInvoiceByUniposApi)(businessRegistrationNumber, aid, bearer);
|
|
67
|
-
env_1.logger.info(
|
|
76
|
+
env_1.logger.info(`issueNoList : ${JSON.stringify(issueNoList)}`);
|
|
77
|
+
env_1.logger.info(`taxList : ${JSON.stringify(taxList)}`);
|
|
68
78
|
// 이미 있는 데이터 아이디 검색
|
|
69
79
|
const existingTaxInvoice = await taxInvoiceRepo.find({
|
|
70
80
|
select: ['issueNo'],
|
|
71
81
|
where: { issueNo: (0, typeorm_1.In)(issueNoList) }
|
|
72
82
|
});
|
|
73
83
|
const existingIds = existingTaxInvoice.map(taxInvoice => taxInvoice.issueNo);
|
|
74
|
-
env_1.logger.info(
|
|
84
|
+
env_1.logger.info(`existingTaxInvoice : ${JSON.stringify(existingTaxInvoice)}`);
|
|
75
85
|
// 매입, 매출 for문
|
|
76
86
|
for (let tax of taxList) {
|
|
77
87
|
// 있는지 없는지 확인 (이미 있는 세금계산서는 패스)
|
|
@@ -92,8 +102,8 @@ let TaxInvoiceMutation = class TaxInvoiceMutation {
|
|
|
92
102
|
}
|
|
93
103
|
// 유니 포스트에 조회 후 결과 회신 API 호출
|
|
94
104
|
const confirmResult = await (0, tax_invoice_inquiry_1.callTaxInvoiceConfirm)(businessRegistrationNumber, aid, bearer, insertedData);
|
|
95
|
-
env_1.logger.info(
|
|
96
|
-
env_1.logger.info(
|
|
105
|
+
env_1.logger.info(`insertedData : ${JSON.stringify(insertedData)}`);
|
|
106
|
+
env_1.logger.info(`confirmResult : ${JSON.stringify(confirmResult)}`);
|
|
97
107
|
return true;
|
|
98
108
|
}
|
|
99
109
|
};
|
|
@@ -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 {\n ConfirmData,\n UnipostTaxType,\n callTaxInvoiceConfirm,\n getTaxInvoiceByUniposApi\n} from '../unipost-api/tax-invoice-inquiry'\nimport { parseTaxInvoiceByUnipostFormat } from './tax-invoice-util'\nimport { logger } from '@things-factory/env'\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(\n @Arg('patches', type => [TaxInvoicePatch]) patches: TaxInvoicePatch[],\n @Ctx() context: ResolverContext\n ): 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(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): 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 logger.info('fetchTaxInvoiceByApi')\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 // TODO 여기 기본값으로 가져와야하는거 아님?\n const apiInfo = (await taxInvoiceApiRepo.find())[0]\n const businessRegistrationNumber = apiInfo.businessRegistrationNumber\n const { aid = '', bearer = '' } = apiInfo?.attributes\n\n logger.info('apiInfo : ', apiInfo)\n\n // API 호출하여 세금계산서 데이터 가져옴\n const { issueNoList, taxList } = await getTaxInvoiceByUniposApi(businessRegistrationNumber, aid, bearer)\n\n logger.info('issueNoList, taxList : ', issueNoList, taxList)\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 logger.info('existingTaxInvoice : ', existingTaxInvoice)\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 const confirmResult = await callTaxInvoiceConfirm(businessRegistrationNumber, aid, bearer, insertedData)\n\n logger.info('insertedData : ', insertedData)\n logger.info('confirmResult : ', confirmResult)\n\n return true\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"tax-invoice-mutation.js","sourceRoot":"","sources":["../../../server/service/tax-invoice/tax-invoice-mutation.ts"],"names":[],"mappings":";;;;AAAA,+CAAsE;AACtE,qCAA4B;AAE5B,+CAAoD;AACpD,yDAAmE;AACnE,qFAA6E;AAC7E,2EAAqE;AACrE,wEAAkE;AAElE,4EAK2C;AAC3C,yDAAmE;AACnE,6CAA4C;AAGrC,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAGvB,AAAN,KAAK,CAAC,gBAAgB,CACD,UAAyB,EACO,eAAoC,EAChF,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,wBAAU,CAAC,CAAC,IAAI,iCACxD,UAAU,KACb,MAAM,EACN,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;QAEF,SAAS;QACT,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACnC,MAAM,EAAE,CAAC,aAAa,CAAC,iCAAc,CAAC,CAAC,IAAI,iCAAM,IAAI,KAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,IAAG,CAAA;QAC5G,CAAC;QAED,OAAO,aAAa,CAAA;IACtB,CAAC;IAED,mBAAmB;IAGb,AAAN,KAAK,CAAC,wBAAwB,CACe,OAA0B,EAC9D,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAE1C,IAAI,OAAO,GAAG,EAAE,CAAA;QAChB,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAA;QACzF,MAAM,cAAc,GAAG,EAAE,CAAC,aAAa,CAAC,wBAAU,CAAC,CAAA;QAEnD,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,YAAY,GAAG,cAAc,CAAC,CAAC,CAAC,CAAA;gBACtC,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAA;gBAE1E,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,IAAI,+CACnC,UAAU,GACV,YAAY,KACf,OAAO,EAAE,IAAI,IACb,CAAA;gBAEF,OAAO,CAAC,IAAI,iCAAM,MAAM,KAAE,MAAM,EAAE,GAAG,IAAG,CAAA;YAC1C,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAA;IAChB,CAAC;IAIK,AAAN,KAAK,CAAC,gBAAgB,CAAY,EAAU,EAAS,OAAwB;QAC3E,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,wBAAU,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAE5E,OAAO,IAAI,CAAA;IACb,CAAC;IAIK,AAAN,KAAK,CAAC,iBAAiB,CACS,GAAa,EACpC,OAAwB;QAE/B,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEpC,MAAM,EAAE,CAAC,aAAa,CAAC,wBAAU,CAAC,CAAC,MAAM,CAAC;YACxC,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;YACzB,EAAE,EAAE,IAAA,YAAE,EAAC,GAAG,CAAC;SACZ,CAAC,CAAA;QAEF,OAAO,IAAI,CAAA;IACb,CAAC;IAIK,AAAN,KAAK,CAAC,oBAAoB,CAAQ,OAAwB;QACxD,YAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;QACnC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAC1C,MAAM,iBAAiB,GAAG,EAAE,CAAC,aAAa,CAAC,+BAAa,CAAC,CAAA;QACzD,MAAM,cAAc,GAAG,EAAE,CAAC,aAAa,CAAC,wBAAU,CAAC,CAAA;QACnD,MAAM,YAAY,GAAkB,EAAE,CAAA,CAAC,kBAAkB;QAEzD,4BAA4B;QAC5B,MAAM,OAAO,GAAG,MAAM,iBAAiB;aACpC,kBAAkB,CAAC,KAAK,CAAC;aACzB,iBAAiB,CAAC,YAAY,EAAE,QAAQ,CAAC;aACzC,KAAK,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;aACvD,QAAQ,CAAC,sBAAsB,CAAC;aAChC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC;aAChC,MAAM,EAAE,CAAA;QAEX,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACnD,CAAC;QAED,MAAM,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAA;QACrE,MAAM,EAAE,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAA;QAE1D,YAAM,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAEnD,yBAAyB;QACzB,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,8CAAwB,EAAC,0BAA0B,EAAE,GAAG,EAAE,MAAM,CAAC,CAAA;QAExG,YAAM,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;QAC3D,YAAM,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAEnD,mBAAmB;QACnB,MAAM,kBAAkB,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC;YACnD,MAAM,EAAE,CAAC,SAAS,CAAC;YACnB,KAAK,EAAE,EAAE,OAAO,EAAE,IAAA,YAAE,EAAC,WAAW,CAAC,EAAE;SACpC,CAAC,CAAA;QACF,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAE5E,YAAM,CAAC,IAAI,CAAC,wBAAwB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAA;QAEzE,cAAc;QACd,KAAK,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;YACxB,+BAA+B;YAC/B,IAAI,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;gBAAE,SAAQ;YAE9C,yBAAyB;YACzB,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,IAAA,iDAA8B,EAAC,GAAG,EAAE,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;YAE7G,SAAS;YACT,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;YAE3D,mBAAmB;YACnB,YAAY,CAAC,IAAI,CAAC;gBAChB,GAAG,EAAE,GAAG;gBACR,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,sBAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,oCAAc,CAAC,MAAM,CAAC,CAAC,CAAC,oCAAc,CAAC,MAAM;gBACzF,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,EAAE;aACZ,CAAC,CAAA;QACJ,CAAC;QAED,4BAA4B;QAC5B,MAAM,aAAa,GAAG,MAAM,IAAA,2CAAqB,EAAC,0BAA0B,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,CAAA;QAExG,YAAM,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;QAC7D,YAAM,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;QAE/D,OAAO,IAAI,CAAA;IACb,CAAC;CACF,CAAA;AAzJY,gDAAkB;AAGvB;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,wBAAU,EAAE,EAAE,WAAW,EAAE,0BAA0B,EAAE,CAAC;IAE1E,mBAAA,IAAA,kBAAG,EAAC,YAAY,CAAC,CAAA;IACjB,mBAAA,IAAA,kBAAG,EAAC,iBAAiB,EAAE,GAAG,EAAE,CAAC,CAAC,yCAAiB,CAAC,CAAC,CAAA;IACjD,mBAAA,IAAA,kBAAG,GAAE,CAAA;;6CAFyB,gCAAa;;0DAmB7C;AAKK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,CAAC,wBAAU,CAAC,EAAE,EAAE,WAAW,EAAE,6CAA6C,EAAE,CAAC;IAE/F,mBAAA,IAAA,kBAAG,EAAC,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,kCAAe,CAAC,CAAC,CAAA;IACzC,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;kEAwBP;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;IAC9C,mBAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;0DAMnD;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;IAE7E,mBAAA,IAAA,kBAAG,EAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5B,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;2DAUP;AAIK;IAFL,IAAA,wBAAS,EAAC,cAAc,CAAC;IACzB,IAAA,uBAAQ,EAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,gCAAgC,EAAE,CAAC;IACpD,mBAAA,IAAA,kBAAG,GAAE,CAAA;;;;8DAoEhC;6BAxJU,kBAAkB;IAD9B,IAAA,uBAAQ,EAAC,wBAAU,CAAC;GACR,kBAAkB,CAyJ9B","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 {\n ConfirmData,\n UnipostTaxType,\n callTaxInvoiceConfirm,\n getTaxInvoiceByUniposApi\n} from '../unipost-api/tax-invoice-inquiry'\nimport { parseTaxInvoiceByUnipostFormat } from './tax-invoice-util'\nimport { logger } from '@things-factory/env'\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(\n @Arg('patches', type => [TaxInvoicePatch]) patches: TaxInvoicePatch[],\n @Ctx() context: ResolverContext\n ): 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(\n @Arg('ids', type => [String]) ids: string[],\n @Ctx() context: ResolverContext\n ): 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 logger.info('fetchTaxInvoiceByApi')\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 // TODO 여기 기본값으로 가져와야하는거 아님?\n const apiInfo = await taxInvoiceApiRepo\n .createQueryBuilder('tia')\n .leftJoinAndSelect('tia.domain', 'domain')\n .where('domain.id = :domainId', { domainId: domain.id })\n .andWhere('tia.isDefault = true')\n .orderBy('tia.createdAt', 'DESC')\n .getOne()\n\n if (!apiInfo) {\n throw new Error('기본 세금계산서 API 정보가 설정되어 있지 않습니다.')\n }\n\n const businessRegistrationNumber = apiInfo.businessRegistrationNumber\n const { aid = '', bearer = '' } = apiInfo.attributes || {}\n\n logger.info(`apiInfo : ${JSON.stringify(apiInfo)}`)\n\n // API 호출하여 세금계산서 데이터 가져옴\n const { issueNoList, taxList } = await getTaxInvoiceByUniposApi(businessRegistrationNumber, aid, bearer)\n\n logger.info(`issueNoList : ${JSON.stringify(issueNoList)}`)\n logger.info(`taxList : ${JSON.stringify(taxList)}`)\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 logger.info(`existingTaxInvoice : ${JSON.stringify(existingTaxInvoice)}`)\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 const confirmResult = await callTaxInvoiceConfirm(businessRegistrationNumber, aid, bearer, insertedData)\n\n logger.info(`insertedData : ${JSON.stringify(insertedData)}`)\n logger.info(`confirmResult : ${JSON.stringify(confirmResult)}`)\n\n return true\n }\n}\n"]}
|
|
@@ -24,7 +24,7 @@ tslib_1.__decorate([
|
|
|
24
24
|
tslib_1.__metadata("design:type", String)
|
|
25
25
|
], TaxInvoiceApi.prototype, "domainId", void 0);
|
|
26
26
|
tslib_1.__decorate([
|
|
27
|
-
(0, typeorm_1.Column)({ nullable: true, comment: '디폴트 여부' }),
|
|
27
|
+
(0, typeorm_1.Column)({ type: 'boolean', nullable: true, comment: '디폴트 여부' }),
|
|
28
28
|
(0, type_graphql_1.Field)({ nullable: true, description: '디폴트 여부' }),
|
|
29
29
|
tslib_1.__metadata("design:type", Boolean)
|
|
30
30
|
], TaxInvoiceApi.prototype, "isDefault", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tax-invoice-api.js","sourceRoot":"","sources":["../../../server/service/tax-invoice-api/tax-invoice-api.ts"],"names":[],"mappings":";;;;AAAA,qCASgB;AAChB,+CAAoD;AAEpD,iDAAgF;AAChF,yDAAgD;AASzC,IAAM,aAAa,GAAnB,MAAM,aAAa;CAyGzB,CAAA;AAzGY,sCAAa;AAGf;IAFR,IAAA,gCAAsB,EAAC,MAAM,CAAC;IAC9B,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,iBAAE,CAAC;;yCACE;AAIpB;IAFC,IAAA,mBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IACzB,IAAA,oBAAK,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;sCACb,cAAM;6CAAA;AAGf;IADC,IAAA,oBAAU,EAAC,CAAC,aAA4B,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC;;+CAClD;AAIjB;IAFC,IAAA,gBAAM,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"tax-invoice-api.js","sourceRoot":"","sources":["../../../server/service/tax-invoice-api/tax-invoice-api.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n CreateDateColumn,\n UpdateDateColumn,\n Entity,\n Index,\n Column,\n RelationId,\n ManyToOne,\n PrimaryGeneratedColumn\n} from 'typeorm'\nimport { ObjectType, Field, ID } from 'type-graphql'\n\nimport { Domain, ScalarObject, encryptTransformer } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\n\n@Entity()\n@Index(\n 'ix_tax_invoice_api_provider',\n (taxInvoiceApi: TaxInvoiceApi) => [taxInvoiceApi.domain, taxInvoiceApi.provider],\n { unique: true }\n)\n@ObjectType({ description: 'Entity for Tax Invoice Api' })\nexport class TaxInvoiceApi {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id!: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain)\n domain?: Domain\n\n @RelationId((taxInvoiceApi: TaxInvoiceApi) => taxInvoiceApi.domain)\n domainId?: string\n\n @Column({ type: 'boolean', nullable: true, comment: '디폴트 여부' })\n @Field({ nullable: true, description: '디폴트 여부' })\n isDefault?: boolean\n\n @Column({ nullable: false, comment: '공급자' })\n @Field({ nullable: false, description: '공급자' })\n provider!: string\n\n @Column({ nullable: true, comment: 'API Key', transformer: encryptTransformer })\n @Field({ nullable: true, description: 'API Key' })\n apiKey?: string\n\n @Column({ nullable: true, comment: 'API 계정 ID', transformer: encryptTransformer })\n @Field({ nullable: true, description: 'API 계정 ID' })\n apiAccountId?: string\n\n @Column({ nullable: true, comment: 'API 계정 비밀번호', transformer: encryptTransformer })\n @Field({ nullable: true, description: 'API 계정 비밀번호' })\n apiAccountPassword?: string\n\n @Column({ nullable: true, comment: '사업자등록번호', transformer: encryptTransformer })\n @Field({ nullable: true, description: '사업자등록번호' })\n businessRegistrationNumber?: string\n\n @Column({ nullable: true, comment: '종사업장 식별 코드' })\n @Field({ nullable: true, description: '종사업장 식별 코드' })\n branchIdentification?: string\n\n @Column({ nullable: true, comment: '사업자명' })\n @Field({ nullable: true, description: '사업자명' })\n businessName?: string\n\n @Column({ nullable: true, comment: '대표자명' })\n @Field({ nullable: true, description: '대표자명' })\n representativeName?: string\n\n @Column({ nullable: true, comment: '주소', transformer: encryptTransformer })\n @Field({ nullable: true, description: '주소' })\n address?: string\n\n @Column({ nullable: true, comment: '업태' })\n @Field({ nullable: true, description: '업태' })\n businessType?: string\n\n @Column({ nullable: true, comment: '업종' })\n @Field({ nullable: true, description: '업종' })\n industryType?: string\n\n @Column({ nullable: true, comment: '담당 부서' })\n @Field({ nullable: true, description: '담당 부서' })\n department?: string\n\n @Column({ nullable: true, comment: '담당자명', transformer: encryptTransformer })\n @Field({ nullable: true, description: '담당자명' })\n contactName?: string\n\n @Column({ nullable: true, comment: '담당자 전화번호', transformer: encryptTransformer })\n @Field({ nullable: true, description: '담당자 전화번호' })\n contactPhone?: string\n\n @Column({ nullable: true, comment: '담당자 이메일', transformer: encryptTransformer })\n @Field({ nullable: true, description: '담당자 이메일' })\n contactEmail?: string\n\n @Column({ nullable: true, comment: '담당자 핸드폰 번호', transformer: encryptTransformer })\n @Field({ nullable: true, description: '담당자 핸드폰 번호' })\n contactCellPhone?: string\n\n @Column('simple-json', { nullable: true })\n @Field(type => ScalarObject, { nullable: true })\n attributes?: any\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((taxInvoiceApi: TaxInvoiceApi) => taxInvoiceApi.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((taxInvoiceApi: TaxInvoiceApi) => taxInvoiceApi.updater)\n updaterId?: string\n}\n"]}
|
|
@@ -27,12 +27,12 @@ async function getTaxInvoiceByUniposApi(businessRegistrationNumber, aid, bearer)
|
|
|
27
27
|
// 매입, 매출 각각 요청
|
|
28
28
|
for (const taxType of taxTypeArr) {
|
|
29
29
|
const response = await _callTaxInvoiceInquiry(businessRegistrationNumber, aid, bearer, taxType);
|
|
30
|
-
env_2.logger.info(
|
|
30
|
+
env_2.logger.info(`response : ${JSON.stringify(response)}`);
|
|
31
31
|
// 성공 일시 세금 계산서 데이터 배열에 추가
|
|
32
32
|
if (response.status === 200) {
|
|
33
33
|
const category = taxType === 'AR' ? tax_invoice_1.Category.EXPORT : tax_invoice_1.Category.IMPORT; // 유니포스트의 타입 => 우리 솔루션 형태로 변환
|
|
34
34
|
const taxData = await response.json();
|
|
35
|
-
env_2.logger.info(
|
|
35
|
+
env_2.logger.info(`taxData : ${JSON.stringify(taxData)}`);
|
|
36
36
|
if (taxData.success === true) {
|
|
37
37
|
for (let tax of taxData.tAliceEntry) {
|
|
38
38
|
issueNoList.push(tax.exd_id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tax-invoice-inquiry.js","sourceRoot":"","sources":["../../../server/service/unipost-api/tax-invoice-inquiry.ts"],"names":[],"mappings":";;;AAwBA,4DA6CC;AA4BD,sDAoBC;AArHD,4DAAqD;AACrD,6CAA4C;AAC5C,kDAAkD;AAClD,6CAA4C;AAE5C,MAAM,aAAa,GAAG,YAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;AAC9C,eAAe;AACf,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,IAAI,EAAE,CAAA;AACnD,sBAAsB;AACtB,MAAM,WAAW,GAAG,aAAa,CAAC,WAAW,IAAI,EAAE,CAAA;AAEnD,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,+BAAa,CAAA;IACb,+BAAa,CAAA,CAAC,KAAK;AACrB,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAUM,KAAK,UAAU,wBAAwB,CAAC,0BAAkC,EAAE,GAAW,EAAE,MAAc;IAC5G,IAAI,CAAC,0BAA0B,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;IAC/C,CAAC;IAED,MAAM,WAAW,GAAkB,EAAE,CAAA;IACrC,MAAM,OAAO,GAAG,EAAE,CAAA;IAClB,MAAM,UAAU,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,CAAC,CAAA;IAEjE,eAAe;IACf,KAAK,MAAM,OAAO,IAAI,UAAU,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,0BAA0B,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;QAE/F,YAAM,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"tax-invoice-inquiry.js","sourceRoot":"","sources":["../../../server/service/unipost-api/tax-invoice-inquiry.ts"],"names":[],"mappings":"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","sourcesContent":["import { Category } from '../tax-invoice/tax-invoice'\nimport { config } from '@things-factory/env'\n// import getTestTaxInvoiceData from './test-data'\nimport { logger } from '@things-factory/env'\n\nconst UNITAX_CONFIG = config.get('unitax', {})\n// 세금계산서 조회 API\nconst INQUIRY_URL = UNITAX_CONFIG.INQUIRY_URL || ''\n// 세금계산서 조회 후 처리 결과 갱신\nconst CONFIRM_URL = UNITAX_CONFIG.CONFIRM_URL || ''\n\nexport enum UnipostTaxType {\n EXPORT = 'AR', // 매출\n IMPORT = 'AP' // 매입\n}\n\nexport interface ConfirmData {\n aid: string\n tax_type: UnipostTaxType\n tid_issueid: string\n success: boolean\n message: string\n}\n\nexport async function getTaxInvoiceByUniposApi(businessRegistrationNumber: string, aid: string, bearer: string) {\n if (!businessRegistrationNumber || !aid || !bearer) {\n throw new Error('no parameter in unipos api')\n }\n\n const issueNoList: Array<string> = []\n const taxList = []\n const taxTypeArr = [UnipostTaxType.EXPORT, UnipostTaxType.IMPORT]\n\n // 매입, 매출 각각 요청\n for (const taxType of taxTypeArr) {\n const response = await _callTaxInvoiceInquiry(businessRegistrationNumber, aid, bearer, taxType)\n\n logger.info(`response : ${JSON.stringify(response)}`)\n\n // 성공 일시 세금 계산서 데이터 배열에 추가\n if (response.status === 200) {\n const category = taxType === 'AR' ? Category.EXPORT : Category.IMPORT // 유니포스트의 타입 => 우리 솔루션 형태로 변환\n const taxData = await response.json()\n\n logger.info(`taxData : ${JSON.stringify(taxData)}`)\n\n if (taxData.success === true) {\n for (let tax of taxData.tAliceEntry) {\n issueNoList.push(tax.exd_id)\n taxList.push({ ...tax, category })\n }\n }\n }\n\n // 테스트 코드\n // const category = taxType === 'AR' ? Category.EXPORT : Category.IMPORT\n // const taxData = getTestTaxInvoiceData(category)\n // if (taxData.success === true) {\n // for (let tax of taxData.tAliceEntry) {\n // issueNoList.push(tax.exd_id)\n // taxList.push({ ...tax, category })\n // }\n // }\n }\n\n return {\n issueNoList,\n taxList\n }\n}\n\nasync function _callTaxInvoiceInquiry(\n businessRegistrationNumber: string,\n aid: string,\n bearer: string,\n taxType: UnipostTaxType\n) {\n businessRegistrationNumber = businessRegistrationNumber.replace(/-/g, '')\n\n const response = await fetch(INQUIRY_URL, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: 'Basic ' + bearer,\n AID: aid,\n COM_REGNO: businessRegistrationNumber\n },\n body: JSON.stringify({\n aid,\n tax_type: taxType,\n biz_no: businessRegistrationNumber,\n period: 30\n })\n })\n\n return response\n}\nexport async function callTaxInvoiceConfirm(\n businessRegistrationNumber: string,\n aid: string,\n bearer: string,\n confirmData: ConfirmData[]\n) {\n businessRegistrationNumber = businessRegistrationNumber.replace(/-/g, '')\n\n const response = await fetch(CONFIRM_URL, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: 'Basic ' + bearer,\n AID: aid,\n COM_REGNO: businessRegistrationNumber\n },\n body: JSON.stringify(confirmData)\n })\n\n return response\n}\n"]}
|