node-sped-nfe 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/README.md +1 -22
  2. package/dist/index.d.ts +3 -0
  3. package/dist/index.js +3 -0
  4. package/dist/utils/eventos.d.ts +4 -0
  5. package/{utils → dist/utils}/eventos.js +30 -32
  6. package/dist/utils/make.d.ts +81 -0
  7. package/dist/utils/make.js +682 -0
  8. package/dist/utils/sefaz.d.ts +1 -0
  9. package/dist/utils/sefaz.js +64 -0
  10. package/dist/utils/tools.d.ts +23 -0
  11. package/dist/utils/tools.js +269 -0
  12. package/dist/utils/xmllint.d.ts +4 -0
  13. package/dist/utils/xmllint.js +234520 -0
  14. package/package.json +24 -7
  15. package/saida.txt +4 -0
  16. package/src/index.ts +4 -0
  17. package/src/utils/eventos.ts +32 -0
  18. package/{utils/make.js → src/utils/make.ts} +77 -93
  19. package/{utils/tools.js → src/utils/tools.ts} +46 -30
  20. package/tsconfig.json +16 -0
  21. package/index.js +0 -5
  22. package/testes/assinar.js +0 -16
  23. package/testes/nfe.js +0 -166
  24. package/testes/nfe.json +0 -194
  25. package/testes/nfe.xml +0 -292
  26. package/testes/nfe_guara.xml +0 -1
  27. package/testes/nfe_guara_sign.xml +0 -1
  28. package/testes/nfe_guara_sign_lote.xml +0 -1
  29. package/testes/nfe_teste.json +0 -45
  30. package/utils/sefaz.js +0 -84
  31. package/utils/xmllint.js +0 -244195
  32. /package/{utils → src/utils}/schemas/consReciNFe_v4.00.xsd +0 -0
  33. /package/{utils → src/utils}/schemas/consSitNFe_v4.00.xsd +0 -0
  34. /package/{utils → src/utils}/schemas/consStatServ_v4.00.xsd +0 -0
  35. /package/{utils → src/utils}/schemas/enviNFe_v4.00.xsd +0 -0
  36. /package/{utils → src/utils}/schemas/inutNFe_v4.00.xsd +0 -0
  37. /package/{utils → src/utils}/schemas/leiauteConsSitNFe_v4.00.xsd +0 -0
  38. /package/{utils → src/utils}/schemas/leiauteConsStatServ_v4.00.xsd +0 -0
  39. /package/{utils → src/utils}/schemas/leiauteInutNFe_v4.00.xsd +0 -0
  40. /package/{utils → src/utils}/schemas/leiauteNFe_v4.00.xsd +0 -0
  41. /package/{utils → src/utils}/schemas/nfe_v4.00.xsd +0 -0
  42. /package/{utils → src/utils}/schemas/procInutNFe_v4.00.xsd +0 -0
  43. /package/{utils → src/utils}/schemas/procNFe_v4.00.xsd +0 -0
  44. /package/{utils → src/utils}/schemas/retConsReciNFe_v4.00.xsd +0 -0
  45. /package/{utils → src/utils}/schemas/retConsSitNFe_v4.00.xsd +0 -0
  46. /package/{utils → src/utils}/schemas/retConsStatServ_v4.00.xsd +0 -0
  47. /package/{utils → src/utils}/schemas/retEnviNFe_v4.00.xsd +0 -0
  48. /package/{utils → src/utils}/schemas/retInutNFe_v4.00.xsd +0 -0
  49. /package/{utils → src/utils}/schemas/tiposBasico_v4.00.xsd +0 -0
  50. /package/{utils → src/utils}/schemas/xmldsig-core-schema_v1.01.xsd +0 -0
@@ -0,0 +1,682 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var _Make_instances, _Make_NFe, _Make_ICMSTot, _Make_gerarChaveNFe, _Make_calcularDigitoVerificador, _Make_getInfoQRCodeByUF, _Make_calICMSTot;
7
+ import { XMLBuilder } from "fast-xml-parser";
8
+ //Classe da nota fiscal
9
+ class Make {
10
+ constructor() {
11
+ _Make_instances.add(this);
12
+ _Make_NFe.set(this, {
13
+ "@xmlns": "http://www.portalfiscal.inf.br/nfe",
14
+ infNFe: {
15
+ "@xmlns": "http://www.portalfiscal.inf.br/nfe",
16
+ }
17
+ });
18
+ _Make_ICMSTot.set(this, {
19
+ vBC: 0,
20
+ vICMS: 0,
21
+ vICMSDeson: 0,
22
+ vFCP: 0,
23
+ vBCST: 0,
24
+ vST: 0,
25
+ vFCPST: 0,
26
+ vFCPSTRet: 0,
27
+ vProd: 0,
28
+ vFrete: 0,
29
+ vSeg: 0,
30
+ vDesc: 0,
31
+ vII: 0,
32
+ vIPI: 0,
33
+ vIPIDevol: 0,
34
+ vPIS: 0,
35
+ vCOFINS: 0,
36
+ vOutro: 0,
37
+ vNF: 0
38
+ });
39
+ }
40
+ formatData(dataUsr = new Date()) {
41
+ const ano = dataUsr.getFullYear();
42
+ const mes = String(dataUsr.getMonth() + 1).padStart(2, '0'); // Adiciona 1 porque os meses começam do 0
43
+ const dia = String(dataUsr.getDate()).padStart(2, '0');
44
+ const horas = String(dataUsr.getHours()).padStart(2, '0');
45
+ const minutos = String(dataUsr.getMinutes()).padStart(2, '0');
46
+ const segundos = String(dataUsr.getSeconds()).padStart(2, '0');
47
+ const fusoHorario = -dataUsr.getTimezoneOffset() / 60; // Obtém o fuso horário em horas
48
+ const formatoISO = `${ano}-${mes}-${dia}T${horas}:${minutos}:${segundos}${fusoHorario >= 0 ? '+' : '-'}${String(Math.abs(fusoHorario)).padStart(2, '0')}:00`;
49
+ return formatoISO;
50
+ }
51
+ //Optativa
52
+ tagInfNFe(obj) {
53
+ Object.keys(obj).forEach(key => {
54
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe[`@${key}`] = obj[key];
55
+ });
56
+ }
57
+ tagIde(obj) {
58
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide = new Object();
59
+ Object.keys(obj).forEach(key => {
60
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide[key] = obj[key];
61
+ });
62
+ }
63
+ tagRefNFe(obj) {
64
+ throw "Não implementado!";
65
+ }
66
+ tagRefNF(obj) {
67
+ throw "Não implementado!";
68
+ }
69
+ tagRefNFP(obj) {
70
+ throw "Não implementado!";
71
+ }
72
+ tagRefCTe(obj) {
73
+ throw "Não implementado!";
74
+ }
75
+ tagRefECF(obj) {
76
+ throw "Não implementado!";
77
+ }
78
+ tagEmit(obj) {
79
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.emit = new Object();
80
+ Object.keys(obj).forEach(key => {
81
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.emit[key] = obj[key];
82
+ if (key == "xFant") {
83
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.emit.enderEmit = {};
84
+ }
85
+ });
86
+ }
87
+ tagEnderEmit(obj) {
88
+ Object.keys(obj).forEach(key => {
89
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.emit.enderEmit[key] = obj[key];
90
+ });
91
+ }
92
+ tagDest(obj) {
93
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.dest = {};
94
+ if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.tpAmb == 2 && obj['xNome'] !== undefined)
95
+ obj['xNome'] = "NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL";
96
+ Object.keys(obj).forEach(key => {
97
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.dest[key] = obj[key];
98
+ if (key == "xNome" && __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.mod == 55) {
99
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.dest.enderDest = {};
100
+ }
101
+ });
102
+ }
103
+ tagEnderDest(obj) {
104
+ if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.mod == 65)
105
+ return 1;
106
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.dest.enderDest = {};
107
+ Object.keys(obj).forEach(key => {
108
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.dest.enderDest[key] = obj[key];
109
+ });
110
+ }
111
+ tagRetirada(obj) {
112
+ throw "não implementado!";
113
+ }
114
+ tagAutXML(obj) {
115
+ throw "não implementado!";
116
+ }
117
+ //tagprod
118
+ tagProd(obj) {
119
+ //Abrir tag de imposto
120
+ for (let cont = 0; cont < obj.length; cont++) {
121
+ if (obj[cont]['@nItem'] === undefined) {
122
+ obj[cont] = { '@nItem': cont + 1, prod: obj[cont], imposto: {} };
123
+ }
124
+ else {
125
+ obj[cont] = { '@nItem': obj[cont]['@nItem'], prod: obj[cont], imposto: {} };
126
+ delete obj[cont].prod['@nItem'];
127
+ }
128
+ obj[cont].prod.qCom = (obj[cont].prod.qCom * 1).toFixed(4);
129
+ obj[cont].prod.vUnCom = (obj[cont].prod.vUnCom * 1).toFixed(10);
130
+ obj[cont].prod.vProd = (obj[cont].prod.vProd * 1).toFixed(2);
131
+ if (obj[cont].prod.vDesc !== undefined)
132
+ obj[cont].prod.vDesc = (obj[cont].prod.vDesc * 1).toFixed(2);
133
+ obj[cont].prod.qTrib = (obj[cont].prod.qTrib * 1).toFixed(4);
134
+ obj[cont].prod.vUnTrib = (obj[cont].prod.vUnTrib * 1).toFixed(10);
135
+ //Calcular ICMSTot
136
+ __classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj[cont].prod);
137
+ }
138
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det = obj;
139
+ }
140
+ tagCreditoPresumidoProd(obj) {
141
+ throw "não implementado!";
142
+ }
143
+ taginfAdProd(obj) {
144
+ throw "não implementado!";
145
+ }
146
+ tagCEST(obj) {
147
+ throw "não implementado!";
148
+ }
149
+ tagRECOPI(obj) {
150
+ throw "não implementado!";
151
+ }
152
+ tagAdi(obj) {
153
+ throw "não implementado!";
154
+ }
155
+ tagDetExport(obj) {
156
+ throw "não implementado!";
157
+ }
158
+ tagDetExportInd(obj) {
159
+ throw "não implementado!";
160
+ }
161
+ tagRastro(obj) {
162
+ throw "não implementado!";
163
+ }
164
+ tagVeicProd(obj) {
165
+ throw "não implementado!";
166
+ }
167
+ tagMed(obj) {
168
+ throw "não implementado!";
169
+ }
170
+ tagArma(obj) {
171
+ throw "não implementado!";
172
+ }
173
+ tagComb(obj) {
174
+ throw "não implementado!";
175
+ }
176
+ tagEncerrante() {
177
+ throw "não implementado!";
178
+ }
179
+ tagOrigComb() {
180
+ throw "não implementado!";
181
+ }
182
+ tagImposto() {
183
+ throw "não implementado!";
184
+ }
185
+ tagProdICMS(index, obj) {
186
+ throw "não implementado!";
187
+ }
188
+ //
189
+ tagProdICMSST(index, obj) {
190
+ if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS === undefined)
191
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS = {};
192
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS.ICMSST = {};
193
+ Object.keys(obj).forEach(key => {
194
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS.ICMSST[key] = obj[key];
195
+ });
196
+ //Calcular ICMSTot
197
+ __classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
198
+ }
199
+ //
200
+ tagProdICMSSN(index, obj) {
201
+ if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS === undefined)
202
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS = {};
203
+ let keyXML = "";
204
+ switch (obj.CSOSN) {
205
+ case '101':
206
+ keyXML = 'ICMSSN101';
207
+ break;
208
+ case '102':
209
+ case '103':
210
+ case '300':
211
+ case '400':
212
+ keyXML = 'ICMSSN102';
213
+ break;
214
+ case '201':
215
+ keyXML = 'ICMSSN201';
216
+ break;
217
+ case '202':
218
+ case '203':
219
+ keyXML = 'ICMSSN202';
220
+ break;
221
+ case '500':
222
+ keyXML = 'ICMSSN500';
223
+ break;
224
+ case '900':
225
+ keyXML = 'ICMSSN900';
226
+ break;
227
+ default:
228
+ throw "CSOSN não identificado!";
229
+ break;
230
+ }
231
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[keyXML] = {};
232
+ Object.keys(obj).forEach(key => {
233
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[keyXML][key] = obj[key];
234
+ });
235
+ //Calcular ICMSTot
236
+ __classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
237
+ }
238
+ tagProdICMSUFDest(index, obj) {
239
+ throw "Não implementado!";
240
+ }
241
+ tagProdIPI(index, obj) {
242
+ throw "Não implementado!";
243
+ }
244
+ tagProdII(index, obj) {
245
+ throw "Não implementado!";
246
+ }
247
+ tagProdPIS(index, obj) {
248
+ if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PIS === undefined)
249
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PIS = {};
250
+ let keyXML = "";
251
+ switch (obj.CST) {
252
+ case '01':
253
+ case '02':
254
+ keyXML = 'PISAliq';
255
+ break;
256
+ case '03':
257
+ keyXML = 'PISQtde';
258
+ break;
259
+ case '04':
260
+ case '05':
261
+ case '06':
262
+ case '07':
263
+ case '08':
264
+ case '09':
265
+ keyXML = 'PISNT';
266
+ break;
267
+ case '49':
268
+ case '50':
269
+ case '51':
270
+ case '52':
271
+ case '53':
272
+ case '54':
273
+ case '55':
274
+ case '56':
275
+ case '60':
276
+ case '61':
277
+ case '62':
278
+ case '63':
279
+ case '64':
280
+ case '65':
281
+ case '66':
282
+ case '67':
283
+ case '70':
284
+ case '71':
285
+ case '72':
286
+ case '73':
287
+ case '74':
288
+ case '75':
289
+ case '98':
290
+ case '99':
291
+ keyXML = 'PISOutr';
292
+ break;
293
+ default:
294
+ throw "CSOSN não identificado!";
295
+ break;
296
+ }
297
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PIS[keyXML] = {};
298
+ Object.keys(obj).forEach(key => {
299
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PIS[keyXML][key] = obj[key];
300
+ });
301
+ //Calcular ICMSTot
302
+ __classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
303
+ }
304
+ tagProdPISST(index, obj) {
305
+ if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PIS === undefined)
306
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PIS = {};
307
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PIS.PISST = {};
308
+ Object.keys(obj).forEach(key => {
309
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PIS.PISST[key] = obj[key];
310
+ });
311
+ //Calcular ICMSTot
312
+ __classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
313
+ }
314
+ tagProdCOFINS(index, obj) {
315
+ if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.COFINS === undefined)
316
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.COFINS = {};
317
+ let keyXML = null;
318
+ switch (obj.CST) {
319
+ case '01':
320
+ case '02':
321
+ keyXML = null;
322
+ break;
323
+ case '03':
324
+ keyXML = "COFINSQtde";
325
+ break;
326
+ case '04':
327
+ case '05':
328
+ case '06':
329
+ case '07':
330
+ case '08':
331
+ case '09':
332
+ keyXML = "COFINSNT";
333
+ break;
334
+ case '49':
335
+ case '50':
336
+ case '51':
337
+ case '52':
338
+ case '53':
339
+ case '54':
340
+ case '55':
341
+ case '56':
342
+ case '60':
343
+ case '61':
344
+ case '62':
345
+ case '63':
346
+ case '64':
347
+ case '65':
348
+ case '66':
349
+ case '67':
350
+ case '70':
351
+ case '71':
352
+ case '72':
353
+ case '73':
354
+ case '74':
355
+ case '75':
356
+ case '98':
357
+ case '99':
358
+ keyXML = "COFINSOutr";
359
+ break;
360
+ }
361
+ if (keyXML == null) {
362
+ Object.keys(obj).forEach(key => {
363
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.COFINS[key] = obj[key];
364
+ });
365
+ }
366
+ else {
367
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.COFINS[keyXML] = {};
368
+ Object.keys(obj).forEach(key => {
369
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.COFINS[keyXML][key] = obj[key];
370
+ });
371
+ }
372
+ //Calcular ICMSTot
373
+ __classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
374
+ }
375
+ tagProdCOFINSST(index, obj) {
376
+ if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.COFINS === undefined)
377
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.COFINS = {};
378
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.COFINS.COFINSST = {};
379
+ Object.keys(obj).forEach(key => {
380
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PIS.COFINSST[key] = obj[key];
381
+ });
382
+ //Calcular ICMSTot
383
+ __classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
384
+ }
385
+ tagProdISSQN(index, obj) {
386
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ISSQN = {};
387
+ Object.keys(obj).forEach(key => {
388
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ISSQN[key] = obj[key];
389
+ });
390
+ //Calcular ICMSTot
391
+ __classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
392
+ }
393
+ tagProdImpostoDevol(index, obj) {
394
+ throw "Não implementado!";
395
+ }
396
+ tagICMSTot(obj = null) {
397
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.total = {
398
+ ICMSTot: {}
399
+ };
400
+ if (obj != null) {
401
+ Object.keys(obj).forEach(key => {
402
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.total.ICMSTot[key] = obj[key];
403
+ });
404
+ }
405
+ else {
406
+ Object.keys(__classPrivateFieldGet(this, _Make_ICMSTot, "f")).forEach(key => {
407
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.total.ICMSTot[key] = (__classPrivateFieldGet(this, _Make_ICMSTot, "f")[key] * 1).toFixed(2);
408
+ });
409
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.total.ICMSTot.vNF = (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.total.ICMSTot.vProd - __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.total.ICMSTot.vDesc).toFixed(2);
410
+ }
411
+ }
412
+ tagISSQNTot(obj) {
413
+ throw "Não implementado!";
414
+ }
415
+ tagRetTrib(obj) {
416
+ throw "Não implementado!";
417
+ }
418
+ tagTransp(obj) {
419
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.transp = {};
420
+ Object.keys(obj).forEach(key => {
421
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.transp[key] = obj[key];
422
+ });
423
+ }
424
+ tagTransporta(obj) {
425
+ throw "Não implementado!";
426
+ }
427
+ tagRetTransp(obj) {
428
+ throw "Não implementado!";
429
+ }
430
+ tagVeicTransp(obj) {
431
+ throw "Não implementado!";
432
+ }
433
+ tagReboque(obj) {
434
+ throw "Não implementado!";
435
+ }
436
+ tagVagao(obj) {
437
+ throw "Não implementado!";
438
+ }
439
+ tagBalsa(obj) {
440
+ throw "Não implementado!";
441
+ }
442
+ tagVol(obj) {
443
+ throw "Não implementado!";
444
+ }
445
+ tagLacres(obj) {
446
+ throw "Não implementado!";
447
+ }
448
+ tagFat(obj) {
449
+ throw "Não implementado!";
450
+ }
451
+ tagDup(obj) {
452
+ throw "Não implementado!";
453
+ }
454
+ //tagpag()
455
+ tagTroco(obj) {
456
+ if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.pag === undefined)
457
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.pag = {};
458
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.pag.vTroco = obj;
459
+ }
460
+ tagDetPag(obj) {
461
+ if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.pag === undefined)
462
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.pag = {};
463
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.pag.detPag = obj;
464
+ }
465
+ tagIntermed(obj) {
466
+ throw "Não implementado!";
467
+ }
468
+ tagInfAdic(obj) {
469
+ throw "Não implementado!";
470
+ }
471
+ tagObsCont(obj) {
472
+ throw "Não implementado!";
473
+ }
474
+ tagObsFisco(obj) {
475
+ throw "Não implementado!";
476
+ }
477
+ tagProcRef(obj) {
478
+ throw "Não implementado!";
479
+ }
480
+ tagExporta(obj) {
481
+ throw "Não implementado!";
482
+ }
483
+ tagCompra(obj) {
484
+ throw "Não implementado!";
485
+ }
486
+ tagCana(obj) {
487
+ throw "Não implementado!";
488
+ }
489
+ tagforDia() {
490
+ }
491
+ tagdeduc() {
492
+ }
493
+ taginfNFeSupl() {
494
+ }
495
+ tagInfRespTec(obj) {
496
+ if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.infRespTec === undefined)
497
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.infRespTec = {};
498
+ Object.keys(obj).forEach(key => {
499
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.infRespTec[key] = obj[key];
500
+ });
501
+ }
502
+ //Endereço para retirada
503
+ tagRetiEnder(obj) {
504
+ throw "Ainda não configurado!";
505
+ }
506
+ //Endereço para entrega
507
+ tagEntrega(obj) {
508
+ throw "Ainda não configurado!";
509
+ }
510
+ xml() {
511
+ if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe[`@Id`] == null)
512
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe[`@Id`] = `NFe${__classPrivateFieldGet(this, _Make_instances, "m", _Make_gerarChaveNFe).call(this)}`;
513
+ //Adicionar QrCode
514
+ if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.mod == 55) {
515
+ /*this.#NFe.infNFeSupl = {
516
+ qrCode: "",
517
+ urlChave: ""
518
+ }*/
519
+ }
520
+ let tempBuild = new XMLBuilder({
521
+ ignoreAttributes: false,
522
+ attributeNamePrefix: "@"
523
+ });
524
+ return tempBuild.build({ NFe: __classPrivateFieldGet(this, _Make_NFe, "f") });
525
+ }
526
+ }
527
+ _Make_NFe = new WeakMap(), _Make_ICMSTot = new WeakMap(), _Make_instances = new WeakSet(), _Make_gerarChaveNFe = function _Make_gerarChaveNFe() {
528
+ const chaveSemDV = __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.cUF.padStart(2, '0') + // Código da UF (2 dígitos)
529
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.dhEmi.substring(2, 4) + __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.dhEmi.substring(5, 7) + // Ano e Mês da emissão (AAMM, 4 dígitos)
530
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.emit.CNPJ.padStart(14, '0') + // CNPJ do emitente (14 dígitos)
531
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.mod.padStart(2, '0') + // Modelo da NF (2 dígitos)
532
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.serie.padStart(3, '0') + // Série da NF (3 dígitos)
533
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.nNF.padStart(9, '0') + // Número da NF (9 dígitos)
534
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.tpEmis.padStart(1, '0') + // Tipo de Emissão (1 dígito)
535
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.cNF.padStart(8, '0'); // Código Numérico da NF (8 dígitos)
536
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.cDV = __classPrivateFieldGet(this, _Make_instances, "m", _Make_calcularDigitoVerificador).call(this, chaveSemDV);
537
+ return `${chaveSemDV}${__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.cDV}`;
538
+ }, _Make_calcularDigitoVerificador = function _Make_calcularDigitoVerificador(key) {
539
+ if (key.length !== 43) {
540
+ return '';
541
+ }
542
+ const multipliers = [2, 3, 4, 5, 6, 7, 8, 9];
543
+ let iCount = 42;
544
+ let weightedSum = 0;
545
+ while (iCount >= 0) {
546
+ for (let mCount = 0; mCount < 8 && iCount >= 0; mCount++) {
547
+ const sub = parseInt(key[iCount], 10);
548
+ weightedSum += sub * multipliers[mCount];
549
+ iCount--;
550
+ }
551
+ }
552
+ let vdigit = 11 - (weightedSum % 11);
553
+ if (vdigit > 9) {
554
+ vdigit = 0;
555
+ }
556
+ return vdigit.toString();
557
+ }, _Make_getInfoQRCodeByUF = function _Make_getInfoQRCodeByUF(uf, amb) {
558
+ if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.tpAmb) {
559
+ switch (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.cUF) {
560
+ case 'AC':
561
+ return { urlChave: 'www.sefaznet.ac.gov.br/nfce/consulta', urlQRCode: 'http://www.sefaznet.ac.gov.br/nfce/qrcode' };
562
+ case 'AL':
563
+ return { urlChave: 'www.sefaz.al.gov.br/nfce/consulta', urlQRCode: 'http://nfce.sefaz.al.gov.br/QRCode/consultarNFCe.jsp' };
564
+ case 'AP':
565
+ return { urlChave: 'www.sefaz.ap.gov.br/nfce/consulta', urlQRCode: 'https://www.sefaz.ap.gov.br/nfce/nfcep.php' };
566
+ case 'AM':
567
+ return { urlChave: 'www.sefaz.am.gov.br/nfce/consulta', urlQRCode: 'http://sistemas.sefaz.am.gov.br/nfceweb/consultarNFCe.jsp' };
568
+ case 'BA':
569
+ return { urlChave: 'www.sefaz.ba.gov.br/nfce/consulta', urlQRCode: 'http://nfe.sefaz.ba.gov.br/servicos/nfce/modulos/geral/NFCEC_consulta_chave_acesso.aspx' };
570
+ case 'CE':
571
+ return { urlChave: 'www.sefaz.ce.gov.br/nfce/consulta', urlQRCode: 'http://nfce.sefaz.ce.gov.br/pages/ShowNFCe.html' };
572
+ case 'DF':
573
+ return { urlChave: 'www.fazenda.df.gov.br/nfce/consulta', urlQRCode: 'http://dec.fazenda.df.gov.br/ConsultarNFCe.aspx' };
574
+ case 'ES':
575
+ return { urlChave: 'www.sefaz.es.gov.br/nfce/consulta', urlQRCode: 'http://app.sefaz.es.gov.br/ConsultaNFCe/qrcode.aspx' };
576
+ case 'GO':
577
+ return { urlChave: 'www.sefaz.go.gov.br/nfce/consulta', urlQRCode: 'http://nfe.sefaz.go.gov.br/nfeweb/sites/nfce/danfeNFCe' };
578
+ case 'MA':
579
+ return { urlChave: 'www.sefaz.ma.gov.br/nfce/consulta', urlQRCode: 'http://www.nfce.sefaz.ma.gov.br/portal/consultarNFCe.jsp' };
580
+ case 'MG':
581
+ return { urlChave: 'http://nfce.fazenda.mg.gov.br/portalnfce', urlQRCode: 'https://nfce.fazenda.mg.gov.br/portalnfce/sistema/qrcode.xhtml' };
582
+ case 'MS':
583
+ return { urlChave: 'http://www.dfe.ms.gov.br/nfce/consulta', urlQRCode: 'http://www.dfe.ms.gov.br/nfce/qrcode' };
584
+ case '51': //MT
585
+ return { urlChave: 'http://www.sefaz.mt.gov.br/nfce/consultanfce', urlQRCode: 'http://www.sefaz.mt.gov.br/nfce/consultanfce' };
586
+ case 'PA':
587
+ return { urlChave: 'www.sefa.pa.gov.br/nfce/consulta', urlQRCode: 'https://appnfc.sefa.pa.gov.br/portal/view/consultas/nfce/nfceForm.seam' };
588
+ case 'PB':
589
+ return { urlChave: 'www.receita.pb.gov.br/nfce/consulta', urlQRCode: 'http://www.receita.pb.gov.br/nfce' };
590
+ case 'PE':
591
+ return { urlChave: 'nfce.sefaz.pe.gov.br/nfce/consulta', urlQRCode: 'http://nfce.sefaz.pe.gov.br/nfce-web/consultarNFCe' };
592
+ case 'PI':
593
+ return { urlChave: 'www.sefaz.pi.gov.br/nfce/consulta', urlQRCode: 'http://www.sefaz.pi.gov.br/nfce/qrcode' };
594
+ case 'PR':
595
+ return { urlChave: 'http://www.fazenda.pr.gov.br/nfce/consulta', urlQRCode: 'http://www.fazenda.pr.gov.br/nfce/qrcode/' };
596
+ case 'RJ':
597
+ return { urlChave: 'www.fazenda.rj.gov.br/nfce/consulta', urlQRCode: 'http://www4.fazenda.rj.gov.br/consultaNFCe/QRCode' };
598
+ case 'RN':
599
+ return { urlChave: 'www.set.rn.gov.br/nfce/consulta', urlQRCode: 'http://nfce.set.rn.gov.br/consultarNFCe.aspx' };
600
+ case 'RO':
601
+ return { urlChave: 'www.sefin.ro.gov.br/nfce/consulta', urlQRCode: 'http://www.nfce.sefin.ro.gov.br/consultanfce/consulta.jsp' };
602
+ case 'RS':
603
+ return { urlChave: 'www.sefaz.rs.gov.br/nfce/consulta', urlQRCode: 'https://www.sefaz.rs.gov.br/NFCE/NFCE-COM.aspx' };
604
+ case 'RR':
605
+ return { urlChave: 'www.sefaz.rr.gov.br/nfce/consulta', urlQRCode: 'https://www.sefaz.rr.gov.br/nfce/servlet/qrcode' };
606
+ case 'SE':
607
+ return { urlChave: 'http://www.nfce.se.gov.br/nfce/consulta', urlQRCode: 'http://www.nfce.se.gov.br/portal/consultarNFCe.jsp' };
608
+ case 'SP':
609
+ return { urlChave: 'https://www.nfce.fazenda.sp.gov.br/consulta', urlQRCode: 'https://www.nfce.fazenda.sp.gov.br/qrcode' };
610
+ case 'TO':
611
+ return { urlChave: 'www.sefaz.to.gov.br/nfce/consulta', urlQRCode: 'http://www.sefaz.to.gov.br/nfce/qrcode' };
612
+ default:
613
+ throw new Error('URL do QRCode não encontrada pelo UF (' + uf + ') informado.');
614
+ }
615
+ }
616
+ else {
617
+ switch (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.cUF) {
618
+ case 'AC':
619
+ return { urlChave: 'www.sefaznet.ac.gov.br/nfce/consulta', urlQRCode: 'http://hml.sefaznet.ac.gov.br/nfce/qrcode' };
620
+ case 'AL':
621
+ return { urlChave: 'www.sefaz.al.gov.br/nfce/consulta', urlQRCode: 'http://nfce.sefaz.al.gov.br/QRCode/consultarNFCe.jsp' };
622
+ case 'AP':
623
+ return { urlChave: 'www.sefaz.ap.gov.br/nfce/consulta', urlQRCode: 'https://www.sefaz.ap.gov.br/nfcehml/nfce.php' };
624
+ case 'AM':
625
+ return { urlChave: 'https://sistemas.sefaz.am.gov.br/nfceweb-hom/formConsulta.do', urlQRCode: 'https://sistemas.sefaz.am.gov.br/nfceweb-hom/consultarNFCe.jsp' };
626
+ case 'BA':
627
+ return { urlChave: 'http://hinternet.sefaz.ba.gov.br/nfce/consulta', urlQRCode: 'http://hnfe.sefaz.ba.gov.br/servicos/nfce/modulos/geral/NFCEC_consulta_chave_acesso.aspx' };
628
+ case 'CE':
629
+ return { urlChave: 'www.sefaz.ce.gov.br/nfce/consulta', urlQRCode: 'http://nfceh.sefaz.ce.gov.br/pages/ShowNFCe.html' };
630
+ case 'DF':
631
+ return { urlChave: 'www.fazenda.df.gov.br/nfce/consulta', urlQRCode: 'http://dec.fazenda.df.gov.br/ConsultarNFCe.aspx' };
632
+ case 'ES':
633
+ return { urlChave: 'www.sefaz.es.gov.br/nfce/consulta', urlQRCode: 'http://homologacao.sefaz.es.gov.br/ConsultaNFCe/qrcode.aspx' };
634
+ case 'GO':
635
+ return { urlChave: 'http://www.nfce.go.gov.br/post/ver/214413/consulta-nfc-e-homologacao', urlQRCode: 'http://homolog.sefaz.go.gov.br/nfeweb/sites/nfce/danfeNFCe' };
636
+ case 'MA':
637
+ return { urlChave: 'www.sefaz.ma.gov.br/nfce/consulta', urlQRCode: 'http://www.hom.nfce.sefaz.ma.gov.br/portal/consultarNFCe.jsp' };
638
+ case 'MG':
639
+ return { urlChave: 'http://hnfce.fazenda.mg.gov.br/portalnfce', urlQRCode: 'https://nfce.fazenda.mg.gov.br/portalnfce/sistema/qrcode.xhtml' };
640
+ case 'MS':
641
+ return { urlChave: 'http://www.dfe.ms.gov.br/nfce/consulta', urlQRCode: 'http://www.dfe.ms.gov.br/nfce/qrcode' };
642
+ case '51': //MT
643
+ return { urlChave: 'http://homologacao.sefaz.mt.gov.br/nfce/consultanfce', urlQRCode: 'http://homologacao.sefaz.mt.gov.br/nfce/consultanfce' };
644
+ case 'PA':
645
+ return { urlChave: 'www.sefa.pa.gov.br/nfce/consulta', urlQRCode: 'https://appnfc.sefa.pa.gov.br/portal-homologacao/view/consultas/nfce/nfceForm.seam' };
646
+ case 'PB':
647
+ return { urlChave: 'www.receita.pb.gov.br/nfcehom', urlQRCode: 'http://www.receita.pb.gov.br/nfcehom' };
648
+ case 'PE':
649
+ return { urlChave: 'nfce.sefaz.pe.gov.br/nfce/consulta', urlQRCode: 'http://nfcehomolog.sefaz.pe.gov.br/nfce-web/consultarNFCe' };
650
+ case 'PI':
651
+ return { urlChave: 'www.sefaz.pi.gov.br/nfce/consulta', urlQRCode: 'http://www.sefaz.pi.gov.br/nfce/qrcode' };
652
+ case 'PR':
653
+ return { urlChave: 'http://www.fazenda.pr.gov.br/nfce/consulta', urlQRCode: 'http://www.fazenda.pr.gov.br/nfce/qrcode/' };
654
+ case 'RJ':
655
+ return { urlChave: 'www.fazenda.rj.gov.br/nfce/consulta', urlQRCode: 'http://www4.fazenda.rj.gov.br/consultaNFCe/QRCode' };
656
+ case 'RN':
657
+ return { urlChave: 'www.set.rn.gov.br/nfce/consulta', urlQRCode: 'http://hom.nfce.set.rn.gov.br/consultarNFCe.aspx' };
658
+ case 'RO':
659
+ return { urlChave: 'www.sefin.ro.gov.br/nfce/consulta', urlQRCode: 'http://www.nfce.sefin.ro.gov.br/consultanfce/consulta.jsp' };
660
+ case 'RS':
661
+ return { urlChave: 'www.sefaz.rs.gov.br/nfce/consulta', urlQRCode: 'https://www.sefaz.rs.gov.br/NFCE/NFCE-COM.aspx' };
662
+ case 'RR':
663
+ return { urlChave: 'www.sefaz.rr.gov.br/nfce/consulta', urlQRCode: 'http://200.174.88.103:8080/nfce/servlet/qrcode' };
664
+ case 'SE':
665
+ return { urlChave: 'http://www.hom.nfe.se.gov.br/nfce/consulta', urlQRCode: 'http://www.hom.nfe.se.gov.br/portal/consultarNFCe.jsp' };
666
+ case 'SP':
667
+ return { urlChave: 'https://www.homologacao.nfce.fazenda.sp.gov.br/consulta', urlQRCode: 'https://www.homologacao.nfce.fazenda.sp.gov.br/qrcode' };
668
+ case 'TO':
669
+ return { urlChave: 'http://homologacao.sefaz.to.gov.br/nfce/consulta.jsf', urlQRCode: 'http://homologacao.sefaz.to.gov.br/nfce/qrcode' };
670
+ default:
671
+ throw new Error('URL do QRCode não encontrada pelo UF (' + uf + ') informado.');
672
+ }
673
+ }
674
+ }, _Make_calICMSTot = function _Make_calICMSTot(obj) {
675
+ Object.keys(obj).map(key => {
676
+ if (__classPrivateFieldGet(this, _Make_ICMSTot, "f")[key] !== undefined) {
677
+ __classPrivateFieldGet(this, _Make_ICMSTot, "f")[key] += 1 * (obj[key]);
678
+ }
679
+ });
680
+ };
681
+ export { Make };
682
+ export default { Make };