node-sped-nfe 1.2.35 → 1.2.37

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.
@@ -16,11 +16,11 @@ declare class Make {
16
16
  tagAutXML(obj: any): void;
17
17
  tagProd(obj: any): Promise<void>;
18
18
  tagCreditoPresumidoProd(obj: any): void;
19
- taginfAdProd(index: any, obj: any): void;
19
+ taginfAdProd(index: number, obj: any): void;
20
20
  tagCEST(obj: any): void;
21
21
  tagRECOPI(obj: any): void;
22
- tagDI(index: any, obj: any): void;
23
- tagAdi(index: any, obj: any): void;
22
+ tagDI(index: number, obj: any): void;
23
+ tagAdi(index: number, obj: any): void;
24
24
  tagDetExport(obj: any): void;
25
25
  tagDetExportInd(obj: any): void;
26
26
  tagRastro(obj: any): void;
@@ -31,18 +31,19 @@ declare class Make {
31
31
  tagEncerrante(): void;
32
32
  tagOrigComb(): void;
33
33
  tagImposto(): void;
34
- tagProdICMS(index: any, obj: any): void;
35
- tagProdICMSST(index: any, obj: any): void;
36
- tagProdICMSSN(index: any, obj: any): void;
37
- tagProdICMSUFDest(index: any, obj: any): void;
38
- tagProdIPI(index: any, obj: any): void;
39
- tagProdII(index: any, obj: any): void;
40
- tagProdPIS(index: any, obj: any): void;
41
- tagProdPISST(index: any, obj: any): void;
42
- tagProdCOFINS(index: any, obj: any): void;
43
- tagProdCOFINSST(index: any, obj: any): void;
44
- tagProdISSQN(index: any, obj: any): void;
45
- tagProdImpostoDevol(index: any, obj: any): void;
34
+ tagProdICMS(index: number, obj: any): void;
35
+ tagProdICMSPart(index: number, obj: any): void;
36
+ tagProdICMSST(index: number, obj: any): void;
37
+ tagProdICMSSN(index: number, obj: any): void;
38
+ tagProdICMSUFDest(index: number, obj: any): void;
39
+ tagProdIPI(index: number, obj: any): void;
40
+ tagProdII(index: number, obj: any): void;
41
+ tagProdPIS(index: number, obj: any): void;
42
+ tagProdPISST(index: number, obj: any): void;
43
+ tagProdCOFINS(index: number, obj: any): void;
44
+ tagProdCOFINSST(index: number, obj: any): void;
45
+ tagProdISSQN(index: number, obj: any): void;
46
+ tagProdImpostoDevol(index: number, obj: any): void;
46
47
  tagICMSTot(obj?: null): void;
47
48
  tagISSQNTot(obj: any): void;
48
49
  tagRetTrib(obj: any): void;
@@ -234,15 +234,71 @@ class Make {
234
234
  throw "não implementado!";
235
235
  }
236
236
  tagProdICMS(index, obj) {
237
- throw "não implementado!";
237
+ if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS === undefined)
238
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS = {};
239
+ let keyXML = "";
240
+ switch (obj.CST) {
241
+ case '00':
242
+ keyXML = 'ICMS00';
243
+ break;
244
+ case '10':
245
+ keyXML = 'ICMS10';
246
+ break;
247
+ case '20':
248
+ keyXML = 'ICMS20';
249
+ break;
250
+ case '30':
251
+ keyXML = 'ICMS30';
252
+ break;
253
+ case '40':
254
+ case '41':
255
+ case '50':
256
+ keyXML = 'ICMS40';
257
+ break;
258
+ case '51':
259
+ keyXML = 'ICMS51';
260
+ break;
261
+ case '60':
262
+ keyXML = 'ICMS60';
263
+ break;
264
+ case '70':
265
+ keyXML = 'ICMS70';
266
+ break;
267
+ case '90':
268
+ keyXML = 'ICMS90';
269
+ break;
270
+ default: throw new Error('CST inválido');
271
+ }
272
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[keyXML] = {};
273
+ Object.keys(obj).forEach(key => {
274
+ if (!['orig', 'CST', 'modBC', 'modBCST', 'motDesICMS', 'motDesICMSST', 'cBenefRBC', 'indDeduzDeson', 'UFST'].includes(key))
275
+ obj[key] = obj[key] == 0 ? "0.00" : obj[key];
276
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[keyXML][key] = obj[key];
277
+ });
278
+ }
279
+ tagProdICMSPart(index, obj) {
280
+ if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS === undefined)
281
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS = {};
282
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS.ICMSPart = {};
283
+ Object.keys(obj).forEach(key => {
284
+ if (key != 'orig' && key != 'modBC')
285
+ obj[key] = obj[key] == 0 ? "0.00" : obj[key];
286
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS.ICMSPart[key] = obj[key];
287
+ });
288
+ //Calcular ICMSTot
289
+ __classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
238
290
  }
239
291
  //
240
292
  tagProdICMSST(index, obj) {
241
293
  if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS === undefined)
242
294
  __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS = {};
243
- __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS.ICMSST = {};
295
+ let CST = obj.CST;
296
+ //delete obj.CST;
297
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[`ICMS${CST}`] = {};
244
298
  Object.keys(obj).forEach(key => {
245
- __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS.ICMSST[key] = obj[key];
299
+ if (!["orig", "CSOSN", "modBC", "modBCST"].includes(key))
300
+ obj[key] = obj[key] == 0 ? "0.00" : obj[key];
301
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[`ICMS${CST}`][key] = obj[key];
246
302
  });
247
303
  //Calcular ICMSTot
248
304
  __classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
@@ -281,19 +337,65 @@ class Make {
281
337
  }
282
338
  __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[keyXML] = {};
283
339
  Object.keys(obj).forEach(key => {
340
+ if (key != 'orig')
341
+ obj[key] = obj[key] == 0 ? "0.00" : obj[key];
284
342
  __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[keyXML][key] = obj[key];
285
343
  });
286
344
  //Calcular ICMSTot
287
345
  __classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
288
346
  }
289
347
  tagProdICMSUFDest(index, obj) {
290
- throw "Não implementado!";
348
+ console.log(__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.total);
349
+ if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMSUFDest === undefined)
350
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMSUFDest = {};
351
+ Object.keys(obj).forEach(key => {
352
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMSUFDest[key] = obj[key] == 0 ? "0.00" : obj[key];
353
+ });
354
+ __classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot)?.call(this, obj); // opcional
291
355
  }
292
356
  tagProdIPI(index, obj) {
293
- throw "Não implementado!";
357
+ if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.IPI === undefined)
358
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.IPI = {};
359
+ // Campo obrigatório na raiz do IPI
360
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.IPI.cEnq = obj.cEnq;
361
+ delete obj.cEnq;
362
+ let keyXML = "";
363
+ switch (obj.CST) {
364
+ case '00':
365
+ case '49':
366
+ case '50':
367
+ case '99':
368
+ keyXML = 'IPITrib';
369
+ break;
370
+ case '01':
371
+ case '02':
372
+ case '03':
373
+ case '04':
374
+ case '05':
375
+ case '51':
376
+ case '52':
377
+ case '53':
378
+ case '54':
379
+ case '55':
380
+ keyXML = 'IPINT';
381
+ break;
382
+ default:
383
+ throw new Error("CST de IPI não identificado!");
384
+ }
385
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.IPI[keyXML] = {};
386
+ Object.keys(obj).forEach(key => {
387
+ obj[key] = obj[key] == 0 ? "0.00" : obj[key];
388
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.IPI[keyXML][key] = obj[key];
389
+ });
390
+ __classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj); // opcional se considerar IPI no total
294
391
  }
295
392
  tagProdII(index, obj) {
296
- throw "Não implementado!";
393
+ if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.II === undefined)
394
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.II = {};
395
+ Object.keys(obj).forEach(key => {
396
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.II[key] = obj[key];
397
+ });
398
+ __classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
297
399
  }
298
400
  tagProdPIS(index, obj) {
299
401
  if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PIS === undefined)
@@ -353,11 +455,11 @@ class Make {
353
455
  __classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
354
456
  }
355
457
  tagProdPISST(index, obj) {
356
- if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PIS === undefined)
357
- __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PIS = {};
358
- __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PIS.PISST = {};
458
+ if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PISST === undefined)
459
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PISST = {};
460
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PISST = {};
359
461
  Object.keys(obj).forEach(key => {
360
- __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PIS.PISST[key] = obj[key];
462
+ __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PISST[key] = obj[key];
361
463
  });
362
464
  //Calcular ICMSTot
363
465
  __classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
@@ -654,9 +654,10 @@ async function _Tools_limparSoap(xml) {
654
654
  if (xml == "Bad Request")
655
655
  throw xml;
656
656
  const clear = [
657
+ 'S:Envelope',
658
+ 'S:Body',
657
659
  'soapenv:Envelope',
658
660
  'soapenv:Body',
659
- 'nfeResultMsg',
660
661
  'soap:Envelope',
661
662
  'soap:Body',
662
663
  'nfeResultMsg',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-sped-nfe",
3
- "version": "1.2.35",
3
+ "version": "1.2.37",
4
4
  "author": "Kalmon V. Tavares",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",