@things-factory/tax-invoice 6.2.84 → 6.2.88
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client/pages/tax-invoice/tax-invoice-detail-popup.ts +34 -11
- package/client/pages/tax-invoice/tax-invoice-list-page.ts +150 -152
- package/client/pages/tax-invoice-api/tax-invoice-api-page.ts +6 -5
- package/client/pages/tax-invoice-company/tax-invoice-company-importer.ts +2 -2
- package/client/pages/tax-invoice-send/tax-invoice-send-page.ts +580 -0
- package/client/route.ts +4 -4
- package/dist-client/pages/tax-invoice/tax-invoice-detail-popup.js +39 -13
- package/dist-client/pages/tax-invoice/tax-invoice-detail-popup.js.map +1 -1
- package/dist-client/pages/tax-invoice/tax-invoice-list-page.d.ts +63 -23
- package/dist-client/pages/tax-invoice/tax-invoice-list-page.js +149 -143
- package/dist-client/pages/tax-invoice/tax-invoice-list-page.js.map +1 -1
- package/dist-client/pages/tax-invoice-api/tax-invoice-api-page.d.ts +1 -1
- package/dist-client/pages/tax-invoice-api/tax-invoice-api-page.js +6 -5
- package/dist-client/pages/tax-invoice-api/tax-invoice-api-page.js.map +1 -1
- package/dist-client/pages/tax-invoice-company/tax-invoice-company-importer.js +2 -2
- package/dist-client/pages/tax-invoice-company/tax-invoice-company-importer.js.map +1 -1
- package/dist-client/pages/tax-invoice-send/tax-invoice-send-page.d.ts +100 -0
- package/dist-client/pages/tax-invoice-send/tax-invoice-send-page.js +510 -0
- package/dist-client/pages/tax-invoice-send/tax-invoice-send-page.js.map +1 -0
- package/dist-client/route.d.ts +1 -1
- package/dist-client/route.js +3 -3
- package/dist-client/route.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/service/tax-invoice/tax-invoice-mutation.js +137 -41
- package/dist-server/service/tax-invoice/tax-invoice-mutation.js.map +1 -1
- package/dist-server/service/tax-invoice/tax-invoice-query.js +25 -2
- package/dist-server/service/tax-invoice/tax-invoice-query.js.map +1 -1
- package/dist-server/service/tax-invoice/tax-invoice-type.js +22 -259
- package/dist-server/service/tax-invoice/tax-invoice-type.js.map +1 -1
- package/dist-server/service/tax-invoice/tax-invoice.js +22 -24
- package/dist-server/service/tax-invoice/tax-invoice.js.map +1 -1
- package/dist-server/service/tax-invoice-api/tax-invoice-api-type.js +5 -0
- package/dist-server/service/tax-invoice-api/tax-invoice-api-type.js.map +1 -1
- package/dist-server/service/tax-invoice-api/tax-invoice-api.js +0 -8
- package/dist-server/service/tax-invoice-api/tax-invoice-api.js.map +1 -1
- package/dist-server/service/tax-invoice-company/tax-invoice-company.js +0 -8
- package/dist-server/service/tax-invoice-company/tax-invoice-company.js.map +1 -1
- package/dist-server/service/tax-invoice-item/tax-invoice-item-query.js.map +1 -1
- package/dist-server/service/tax-invoice-item/tax-invoice-item-type.js +4 -12
- package/dist-server/service/tax-invoice-item/tax-invoice-item-type.js.map +1 -1
- package/dist-server/service/tax-invoice-item/tax-invoice-item.js +6 -15
- package/dist-server/service/tax-invoice-item/tax-invoice-item.js.map +1 -1
- package/dist-server/service/unipost-api/tax-invoice-inquiry.js +90 -0
- package/dist-server/service/unipost-api/tax-invoice-inquiry.js.map +1 -0
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/server/service/tax-invoice/tax-invoice-mutation.ts +143 -45
- package/server/service/tax-invoice/tax-invoice-query.ts +22 -4
- package/server/service/tax-invoice/tax-invoice-type.ts +21 -199
- package/server/service/tax-invoice/tax-invoice.ts +38 -49
- package/server/service/tax-invoice-api/tax-invoice-api-type.ts +4 -0
- package/server/service/tax-invoice-api/tax-invoice-api.ts +0 -4
- package/server/service/tax-invoice-company/tax-invoice-company.ts +0 -4
- package/server/service/tax-invoice-item/tax-invoice-item-query.ts +1 -1
- package/server/service/tax-invoice-item/tax-invoice-item-type.ts +4 -13
- package/server/service/tax-invoice-item/tax-invoice-item.ts +6 -10
- package/server/service/unipost-api/tax-invoice-inquiry.ts +103 -0
- package/translations/ko.json +10 -1
|
@@ -6,34 +6,30 @@ const type_graphql_1 = require("type-graphql");
|
|
|
6
6
|
const typeorm_1 = require("typeorm");
|
|
7
7
|
const tax_invoice_1 = require("./tax-invoice");
|
|
8
8
|
const tax_invoice_type_1 = require("./tax-invoice-type");
|
|
9
|
+
const tax_invoice_item_type_1 = require("../tax-invoice-item/tax-invoice-item-type");
|
|
10
|
+
const tax_invoice_item_1 = require("../tax-invoice-item/tax-invoice-item");
|
|
11
|
+
const tax_invoice_api_1 = require("../tax-invoice-api/tax-invoice-api");
|
|
12
|
+
const tax_invoice_inquiry_1 = require("../unipost-api/tax-invoice-inquiry");
|
|
9
13
|
let TaxInvoiceMutation = class TaxInvoiceMutation {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return result;
|
|
14
|
+
constructor() {
|
|
15
|
+
// YYYYMMDD => YYYY-MM-DD
|
|
16
|
+
this._dateFormat = date => date.replace(/(\d{4})(\d{2})(\d{2})/g, '$1-$2-$3');
|
|
14
17
|
}
|
|
15
|
-
async
|
|
18
|
+
async createTaxInvoice(taxInvoice, taxInvoiceItems, context) {
|
|
16
19
|
const { domain, user, tx } = context.state;
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
return
|
|
20
|
+
const newTaxInvoice = await tx.getRepository(tax_invoice_1.TaxInvoice).save(Object.assign(Object.assign({}, taxInvoice), { domain, creator: user, updater: user }));
|
|
21
|
+
// 아이템 저장
|
|
22
|
+
for (const item of taxInvoiceItems) {
|
|
23
|
+
await tx.getRepository(tax_invoice_item_1.TaxInvoiceItem).save(Object.assign(Object.assign({}, item), { taxInvoice: newTaxInvoice, domain, creator: user }));
|
|
24
|
+
}
|
|
25
|
+
return newTaxInvoice;
|
|
23
26
|
}
|
|
27
|
+
// 그리드에서 메모 수정용 으로만
|
|
24
28
|
async updateMultipleTaxInvoice(patches, context) {
|
|
25
29
|
const { domain, user, tx } = context.state;
|
|
26
30
|
let results = [];
|
|
27
|
-
const _createRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === '+');
|
|
28
31
|
const _updateRecords = patches.filter((patch) => patch.cuFlag.toUpperCase() === 'M');
|
|
29
32
|
const taxInvoiceRepo = tx.getRepository(tax_invoice_1.TaxInvoice);
|
|
30
|
-
if (_createRecords.length > 0) {
|
|
31
|
-
for (let i = 0; i < _createRecords.length; i++) {
|
|
32
|
-
const newRecord = _createRecords[i];
|
|
33
|
-
const result = await taxInvoiceRepo.save(Object.assign(Object.assign({}, newRecord), { domain, creator: user, updater: user }));
|
|
34
|
-
results.push(Object.assign(Object.assign({}, result), { cuFlag: '+' }));
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
33
|
if (_updateRecords.length > 0) {
|
|
38
34
|
for (let i = 0; i < _updateRecords.length; i++) {
|
|
39
35
|
const updateRecord = _updateRecords[i];
|
|
@@ -57,11 +53,121 @@ let TaxInvoiceMutation = class TaxInvoiceMutation {
|
|
|
57
53
|
});
|
|
58
54
|
return true;
|
|
59
55
|
}
|
|
60
|
-
async
|
|
61
|
-
const { domain, tx } = context.state;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
56
|
+
async fetchTaxInvoiceByApi(context) {
|
|
57
|
+
const { domain, user, tx } = context.state;
|
|
58
|
+
const taxInvoiceApiRepo = tx.getRepository(tax_invoice_api_1.TaxInvoiceApi);
|
|
59
|
+
const taxInvoiceRepo = tx.getRepository(tax_invoice_1.TaxInvoice);
|
|
60
|
+
const insertedData = []; // API 호출 후 결과 회신용
|
|
61
|
+
const apiInfo = (await taxInvoiceApiRepo.find()).at(0);
|
|
62
|
+
const businessRegistrationNumber = apiInfo.businessRegistrationNumber;
|
|
63
|
+
const { aid = '', bearer = '' } = apiInfo === null || apiInfo === void 0 ? void 0 : apiInfo.attributes;
|
|
64
|
+
// API 호출하여 세금계산서 데이터 가져옴
|
|
65
|
+
const { approvalNoList, taxList } = await (0, tax_invoice_inquiry_1.getTaxInvoiceByUniposApi)(businessRegistrationNumber, aid, bearer);
|
|
66
|
+
// 이미 있는 데이터 아이디 검색
|
|
67
|
+
const existingTaxInvoice = await taxInvoiceRepo.find({
|
|
68
|
+
select: ['approvalNo'],
|
|
69
|
+
where: { approvalNo: (0, typeorm_1.In)(approvalNoList) }
|
|
70
|
+
});
|
|
71
|
+
const existingIds = existingTaxInvoice.map(taxInvoice => taxInvoice.approvalNo);
|
|
72
|
+
// 매입, 매출 for문
|
|
73
|
+
for (let tax of taxList) {
|
|
74
|
+
// 있는지 없는지 확인
|
|
75
|
+
if (existingIds.includes(tax.tid_issueid))
|
|
76
|
+
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
|
+
}
|
|
158
|
+
// Insert
|
|
159
|
+
this.createTaxInvoice(newTaxInvoice, newTaxInvoiceItem, context);
|
|
160
|
+
// API 결과 회신 데이터 생성
|
|
161
|
+
insertedData.push({
|
|
162
|
+
aid: aid,
|
|
163
|
+
tax_type: tax.category == tax_invoice_1.Category.EXPORT ? tax_invoice_inquiry_1.UnipostTaxType.EXPORT : tax_invoice_inquiry_1.UnipostTaxType.IMPORT,
|
|
164
|
+
tid_issueid: tax.tid_issueid,
|
|
165
|
+
success: true,
|
|
166
|
+
message: ''
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
// 유니 포스트에 조회 후 결과 회신 API 호출
|
|
170
|
+
(0, tax_invoice_inquiry_1.callTaxInvoiceConfirm)(businessRegistrationNumber, aid, bearer, insertedData);
|
|
65
171
|
return true;
|
|
66
172
|
}
|
|
67
173
|
};
|
|
@@ -69,21 +175,12 @@ tslib_1.__decorate([
|
|
|
69
175
|
(0, type_graphql_1.Directive)('@transaction'),
|
|
70
176
|
(0, type_graphql_1.Mutation)(returns => tax_invoice_1.TaxInvoice, { description: 'To create new TaxInvoice' }),
|
|
71
177
|
tslib_1.__param(0, (0, type_graphql_1.Arg)('taxInvoice')),
|
|
72
|
-
tslib_1.__param(1, (0, type_graphql_1.
|
|
73
|
-
tslib_1.__metadata("design:type", Function),
|
|
74
|
-
tslib_1.__metadata("design:paramtypes", [tax_invoice_type_1.NewTaxInvoice, Object]),
|
|
75
|
-
tslib_1.__metadata("design:returntype", Promise)
|
|
76
|
-
], TaxInvoiceMutation.prototype, "createTaxInvoice", null);
|
|
77
|
-
tslib_1.__decorate([
|
|
78
|
-
(0, type_graphql_1.Directive)('@transaction'),
|
|
79
|
-
(0, type_graphql_1.Mutation)(returns => tax_invoice_1.TaxInvoice, { description: 'To modify TaxInvoice information' }),
|
|
80
|
-
tslib_1.__param(0, (0, type_graphql_1.Arg)('id')),
|
|
81
|
-
tslib_1.__param(1, (0, type_graphql_1.Arg)('patch')),
|
|
178
|
+
tslib_1.__param(1, (0, type_graphql_1.Arg)('taxInvoiceItems', () => [tax_invoice_item_type_1.NewTaxInvoiceItem])),
|
|
82
179
|
tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
|
|
83
180
|
tslib_1.__metadata("design:type", Function),
|
|
84
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
181
|
+
tslib_1.__metadata("design:paramtypes", [tax_invoice_type_1.NewTaxInvoice, Array, Object]),
|
|
85
182
|
tslib_1.__metadata("design:returntype", Promise)
|
|
86
|
-
], TaxInvoiceMutation.prototype, "
|
|
183
|
+
], TaxInvoiceMutation.prototype, "createTaxInvoice", null);
|
|
87
184
|
tslib_1.__decorate([
|
|
88
185
|
(0, type_graphql_1.Directive)('@transaction'),
|
|
89
186
|
(0, type_graphql_1.Mutation)(returns => [tax_invoice_1.TaxInvoice], { description: "To modify multiple TaxInvoices' information" }),
|
|
@@ -113,13 +210,12 @@ tslib_1.__decorate([
|
|
|
113
210
|
], TaxInvoiceMutation.prototype, "deleteTaxInvoices", null);
|
|
114
211
|
tslib_1.__decorate([
|
|
115
212
|
(0, type_graphql_1.Directive)('@transaction'),
|
|
116
|
-
(0, type_graphql_1.Mutation)(returns => Boolean, { description: '
|
|
117
|
-
tslib_1.__param(0, (0, type_graphql_1.
|
|
118
|
-
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
213
|
+
(0, type_graphql_1.Mutation)(returns => Boolean, { description: 'create tax invoice data by API' }),
|
|
214
|
+
tslib_1.__param(0, (0, type_graphql_1.Ctx)()),
|
|
119
215
|
tslib_1.__metadata("design:type", Function),
|
|
120
|
-
tslib_1.__metadata("design:paramtypes", [
|
|
216
|
+
tslib_1.__metadata("design:paramtypes", [Object]),
|
|
121
217
|
tslib_1.__metadata("design:returntype", Promise)
|
|
122
|
-
], TaxInvoiceMutation.prototype, "
|
|
218
|
+
], TaxInvoiceMutation.prototype, "fetchTaxInvoiceByApi", null);
|
|
123
219
|
TaxInvoiceMutation = tslib_1.__decorate([
|
|
124
220
|
(0, type_graphql_1.Resolver)(tax_invoice_1.TaxInvoice)
|
|
125
221
|
], TaxInvoiceMutation);
|
|
@@ -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 { TaxInvoice } from './tax-invoice'\nimport { NewTaxInvoice, TaxInvoicePatch } from './tax-invoice-type'\n\n@Resolver(TaxInvoice)\nexport class TaxInvoiceMutation {\n @Directive('@transaction')\n @Mutation(returns => TaxInvoice, { description: 'To create new TaxInvoice' })\n async createTaxInvoice(@Arg('taxInvoice') taxInvoice: NewTaxInvoice, @Ctx() context: ResolverContext): Promise<TaxInvoice> {\n const { domain, user, tx } = context.state\n\n const result = await tx.getRepository(TaxInvoice).save({\n ...taxInvoice,\n domain,\n creator: user,\n updater: user\n })\n\n return result\n }\n\n @Directive('@transaction')\n @Mutation(returns => TaxInvoice, { description: 'To modify TaxInvoice information' })\n async updateTaxInvoice(@Arg('id') id: string, @Arg('patch') patch: TaxInvoicePatch, @Ctx() context: ResolverContext): Promise<TaxInvoice> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(TaxInvoice)\n const taxInvoice = await repository.findOne({\n where: { domain: { id: domain.id }, id }\n })\n\n const result = await repository.save({\n ...taxInvoice,\n ...patch,\n updater: user\n })\n\n return result\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 _createRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === '+')\n const _updateRecords = patches.filter((patch: any) => patch.cuFlag.toUpperCase() === 'M')\n const taxInvoiceRepo = tx.getRepository(TaxInvoice)\n\n if (_createRecords.length > 0) {\n for (let i = 0; i < _createRecords.length; i++) {\n const newRecord = _createRecords[i]\n\n const result = await taxInvoiceRepo.save({\n ...newRecord,\n domain,\n creator: user,\n updater: user\n })\n\n results.push({ ...result, cuFlag: '+' })\n }\n }\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: 'To import multiple TaxInvoices' })\n async importTaxInvoices(@Arg('taxInvoices', type => [TaxInvoicePatch]) taxInvoices: TaxInvoicePatch[], @Ctx() context: ResolverContext): Promise<boolean> {\n const { domain, tx } = context.state\n\n await Promise.all(\n taxInvoices.map(async (taxInvoice: TaxInvoicePatch) => {\n const createdTaxInvoice: TaxInvoice = await tx.getRepository(TaxInvoice).save({ domain, ...taxInvoice })\n })\n )\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":"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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 { approvalNoList, taxList } = await getTaxInvoiceByUniposApi(businessRegistrationNumber, aid, bearer)\n\n // 이미 있는 데이터 아이디 검색\n const existingTaxInvoice = await taxInvoiceRepo.find({\n select: ['approvalNo'],\n where: { approvalNo: In(approvalNoList) }\n })\n const existingIds = existingTaxInvoice.map(taxInvoice => taxInvoice.approvalNo)\n\n // 매입, 매출 for문\n for (let tax of taxList) {\n // 있는지 없는지 확인\n if (existingIds.includes(tax.tid_issueid)) 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"]}
|
|
@@ -21,13 +21,28 @@ let TaxInvoiceQuery = class TaxInvoiceQuery {
|
|
|
21
21
|
domain,
|
|
22
22
|
params,
|
|
23
23
|
repository: await (0, shell_1.getRepository)(tax_invoice_1.TaxInvoice),
|
|
24
|
-
searchables: ['
|
|
24
|
+
searchables: ['memo']
|
|
25
25
|
});
|
|
26
26
|
const [items, total] = await queryBuilder.getManyAndCount();
|
|
27
27
|
return { items, total };
|
|
28
28
|
}
|
|
29
|
+
async taxInvoicesSummary(params, context) {
|
|
30
|
+
const { domain } = context.state;
|
|
31
|
+
const queryBuilder = (0, shell_1.getQueryBuilderFromListParams)({
|
|
32
|
+
domain,
|
|
33
|
+
params: Object.assign(Object.assign({}, params), { pagination: {} }),
|
|
34
|
+
repository: await (0, shell_1.getRepository)(tax_invoice_1.TaxInvoice)
|
|
35
|
+
});
|
|
36
|
+
const summary = await queryBuilder
|
|
37
|
+
.select('SUM(supply_amount)', 'supply_amount')
|
|
38
|
+
.addSelect('SUM(tax_amount)', 'tax_amount')
|
|
39
|
+
.addSelect('SUM(total_amount)', 'total_amount')
|
|
40
|
+
.addSelect('COUNT(id)', 'cnt')
|
|
41
|
+
.getRawOne();
|
|
42
|
+
return { summary };
|
|
43
|
+
}
|
|
29
44
|
async taxInvoiceItems(taxInvoice) {
|
|
30
|
-
return taxInvoice.id && (await (0, shell_1.getRepository)(tax_invoice_item_1.TaxInvoiceItem).findBy({
|
|
45
|
+
return taxInvoice.id && (await (0, shell_1.getRepository)(tax_invoice_item_1.TaxInvoiceItem).findBy({ taxInvoice: { id: taxInvoice.id } }));
|
|
31
46
|
}
|
|
32
47
|
async domain(taxInvoice) {
|
|
33
48
|
return taxInvoice.domainId && (await (0, shell_1.getRepository)(shell_1.Domain).findOneBy({ id: taxInvoice.domainId }));
|
|
@@ -55,6 +70,14 @@ tslib_1.__decorate([
|
|
|
55
70
|
tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
|
|
56
71
|
tslib_1.__metadata("design:returntype", Promise)
|
|
57
72
|
], TaxInvoiceQuery.prototype, "taxInvoices", null);
|
|
73
|
+
tslib_1.__decorate([
|
|
74
|
+
(0, type_graphql_1.Query)(returns => tax_invoice_type_1.TaxInvoiceSummary, { description: 'To fetch TaxInvoices Summary' }),
|
|
75
|
+
tslib_1.__param(0, (0, type_graphql_1.Args)()),
|
|
76
|
+
tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
|
|
77
|
+
tslib_1.__metadata("design:type", Function),
|
|
78
|
+
tslib_1.__metadata("design:paramtypes", [shell_1.ListParam, Object]),
|
|
79
|
+
tslib_1.__metadata("design:returntype", Promise)
|
|
80
|
+
], TaxInvoiceQuery.prototype, "taxInvoicesSummary", null);
|
|
58
81
|
tslib_1.__decorate([
|
|
59
82
|
(0, type_graphql_1.FieldResolver)(type => [tax_invoice_item_1.TaxInvoiceItem]),
|
|
60
83
|
tslib_1.__param(0, (0, type_graphql_1.Root)()),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tax-invoice-query.js","sourceRoot":"","sources":["../../../server/service/tax-invoice/tax-invoice-query.ts"],"names":[],"mappings":";;;;AAAA,+CAAmF;AACnF,iDAAuG;AACvG,yDAAgD;AAChD,+CAA0C;AAC1C,
|
|
1
|
+
{"version":3,"file":"tax-invoice-query.js","sourceRoot":"","sources":["../../../server/service/tax-invoice/tax-invoice-query.ts"],"names":[],"mappings":"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","sourcesContent":["import { Resolver, Query, FieldResolver, Root, Args, Arg, Ctx } from 'type-graphql'\nimport { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'\nimport { User } from '@things-factory/auth-base'\nimport { TaxInvoice } from './tax-invoice'\nimport { TaxInvoiceList, TaxInvoiceSummary } from './tax-invoice-type'\nimport { TaxInvoiceItem } from '../tax-invoice-item/tax-invoice-item'\n\n@Resolver(TaxInvoice)\nexport class TaxInvoiceQuery {\n @Query(returns => TaxInvoice!, { nullable: true, description: 'To fetch a TaxInvoice' })\n async taxInvoice(@Arg('id') id: string, @Ctx() context: ResolverContext): Promise<TaxInvoice> {\n const { domain } = context.state\n\n return await getRepository(TaxInvoice).findOne({\n where: { domain: { id: domain.id }, id }\n })\n }\n\n @Query(returns => TaxInvoiceList, { description: 'To fetch multiple TaxInvoices' })\n async taxInvoices(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<TaxInvoiceList> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params,\n repository: await getRepository(TaxInvoice),\n searchables: ['memo']\n })\n const [items, total] = await queryBuilder.getManyAndCount()\n\n return { items, total }\n }\n\n @Query(returns => TaxInvoiceSummary, { description: 'To fetch TaxInvoices Summary' })\n async taxInvoicesSummary(@Args() params: ListParam, @Ctx() context: ResolverContext): Promise<TaxInvoiceSummary> {\n const { domain } = context.state\n\n const queryBuilder = getQueryBuilderFromListParams({\n domain,\n params: { ...params, pagination: {} },\n repository: await getRepository(TaxInvoice)\n })\n const summary = await queryBuilder\n .select('SUM(supply_amount)', 'supply_amount')\n .addSelect('SUM(tax_amount)', 'tax_amount')\n .addSelect('SUM(total_amount)', 'total_amount')\n .addSelect('COUNT(id)', 'cnt')\n .getRawOne()\n\n return { summary }\n }\n\n @FieldResolver(type => [TaxInvoiceItem])\n async taxInvoiceItems(@Root() taxInvoice: TaxInvoice): Promise<TaxInvoiceItem[]> {\n return taxInvoice.id && (await getRepository(TaxInvoiceItem).findBy({ taxInvoice: { id: taxInvoice.id } }))\n }\n\n @FieldResolver(type => Domain)\n async domain(@Root() taxInvoice: TaxInvoice): Promise<Domain> {\n return taxInvoice.domainId && (await getRepository(Domain).findOneBy({ id: taxInvoice.domainId }))\n }\n\n @FieldResolver(type => User)\n async updater(@Root() taxInvoice: TaxInvoice): Promise<User> {\n return taxInvoice.updaterId && (await getRepository(User).findOneBy({ id: taxInvoice.updaterId }))\n }\n\n @FieldResolver(type => User)\n async creator(@Root() taxInvoice: TaxInvoice): Promise<User> {\n return taxInvoice.creatorId && (await getRepository(User).findOneBy({ id: taxInvoice.creatorId }))\n }\n}\n"]}
|