node-sped-nfe-custom
Version:
Seja bem-vindo(a) à **Biblioteca de Emissão de NF-e** — sua parceira definitiva para integrar **emissão de Nota Fiscal Eletrônica modelo 55 (NF-e)** e **modelo 65 (NFC-e)** em aplicações modernas, com simplicidade, robustez e total conformidade com a legi
1,007 lines • 92.9 kB
JavaScript
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
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");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var _Make_instances, _Make_NFe, _Make_ICMSTot, _Make_ReformaTribTot, _Make_gerarChaveNFe, _Make_calcularDigitoVerificador, _Make_conditionalNumberFormatting, _Make_equalizeICMSParameters, _Make_equalizeISParameters, _Make_equalizeIBSCBSParameters, _Make_calReformaTribTot, _Make_addChildJS, _Make_equalizePISParameters, _Make_calICMSTot;
import { XMLBuilder } from "fast-xml-parser";
import { urlEventos } from "./eventos.js";
import { cUF2UF } from "./extras.js";
//Classe da nota fiscal
class Make {
constructor() {
_Make_instances.add(this);
_Make_NFe.set(this, {
"@xmlns": "http://www.portalfiscal.inf.br/nfe",
infNFe: {
//"@xmlns": "http://www.portalfiscal.inf.br/nfe",
}
});
_Make_ICMSTot.set(this, {
vBC: 0,
vICMS: 0,
vICMSDeson: 0,
vFCP: 0,
vBCST: 0,
vST: 0,
vFCPST: 0,
vFCPSTRet: 0,
vProd: 0,
vFrete: 0,
vSeg: 0,
vDesc: 0,
vII: 0,
vIPI: 0,
vIPIDevol: 0,
vPIS: 0,
vCOFINS: 0,
vOutro: 0,
vNF: 0
});
// ✅ CORRIGIDO: Totais da Reforma Tributária seguindo schema oficial
_Make_ReformaTribTot.set(this, {
// Grupo W31 - ISTot
vIS: 0,
// Grupo W34 - IBSCBSTot
vBCIBSCBS: 0,
vIBS: 0,
vCBS: 0,
vCredPres: 0,
vCredPresCondSus: 0,
vIBSMono: 0,
vCBSMono: 0,
vIBSMonoReten: 0,
vCBSMonoReten: 0,
vIBSMonoRet: 0,
vCBSMonoRet: 0,
// Diferimentos e devoluções
vDifIBSUF: 0,
vDifIBSMun: 0,
vDifCBS: 0,
vDevTribIBSUF: 0,
vDevTribIBSMun: 0,
vDevTribCBS: 0,
// Valores por ente
vIBSUF: 0,
vIBSMun: 0
});
}
formatData(dataUsr = new Date()) {
const ano = dataUsr.getFullYear();
const mes = String(dataUsr.getMonth() + 1).padStart(2, '0'); // Adiciona 1 porque os meses começam do 0
const dia = String(dataUsr.getDate()).padStart(2, '0');
const horas = String(dataUsr.getHours()).padStart(2, '0');
const minutos = String(dataUsr.getMinutes()).padStart(2, '0');
const segundos = String(dataUsr.getSeconds()).padStart(2, '0');
const fusoHorario = -dataUsr.getTimezoneOffset() / 60; // Obtém o fuso horário em horas
const formatoISO = `${ano}-${mes}-${dia}T${horas}:${minutos}:${segundos}${fusoHorario >= 0 ? '+' : '-'}${String(Math.abs(fusoHorario)).padStart(2, '0')}:00`;
return formatoISO;
}
//Optativa
tagInfNFe(obj) {
Object.keys(obj).forEach(key => {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe[`@${key}`] = obj[key];
});
}
tagIde(obj) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide = new Object();
Object.keys(obj).forEach(key => {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide[key] = obj[key];
});
}
//Referencimanto de NFe
tagRefNFe(obj) {
if (typeof __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.NFref == "undefined") {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.NFref = new Array();
}
if (Array.isArray(obj)) { //Array de referenciamento de refNFe
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.NFref = obj.map(ref => ({ refNFe: `${ref}` }));
}
else { //String unica de refNFe
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.NFref.push({ refNFe: obj });
}
}
tagRefNF(obj) {
if (typeof __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.NFref == "undefined") {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.NFref = new Array();
}
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.NFref.push({ refNF: obj });
}
tagRefNFP(obj) {
if (typeof __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.NFref == "undefined") {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.NFref = new Array();
}
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.NFref.push({ refNFP: obj });
}
tagRefCTe(obj) {
if (typeof __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.NFref == "undefined") {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.NFref = new Array();
}
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.NFref.push({ refCTe: obj });
}
tagRefECF(obj) {
if (typeof __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.NFref == "undefined") {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.NFref = new Array();
}
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.NFref.push({ refECF: obj });
}
tagEmit(obj) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.emit = new Object();
Object.keys(obj).forEach(key => {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.emit[key] = obj[key];
if (key == "xFant") {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.emit.enderEmit = {};
}
});
}
tagEnderEmit(obj) {
Object.keys(obj).forEach(key => {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.emit.enderEmit[key] = obj[key];
});
}
tagDest(obj) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.dest = {};
if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.tpAmb == 2 && obj['xNome'] !== undefined)
obj['xNome'] = "NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL";
Object.keys(obj).forEach(key => {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.dest[key] = obj[key];
if (key == "xNome" && __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.mod == 55) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.dest.enderDest = {};
}
});
}
tagEnderDest(obj) {
if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.mod == 65)
return 1;
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.dest.enderDest = {};
Object.keys(obj).forEach(key => {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.dest.enderDest[key] = obj[key];
});
}
tagRetirada(obj) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.retirada = {};
Object.keys(obj).forEach(key => {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.retirada[key] = obj[key];
});
}
tagAutXML(obj) {
if (typeof __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.autXML == "undefined") {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.autXML = new Array();
}
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.autXML.push(obj);
}
//tagprod
async tagProd(obj) {
//Abrir tag de imposto
for (let cont = 0; cont < obj.length; cont++) {
if (obj[cont]['@nItem'] === undefined) {
obj[cont] = { '@nItem': cont + 1, prod: obj[cont], imposto: {} };
}
else {
obj[cont] = { '@nItem': obj[cont]['@nItem'], prod: obj[cont], imposto: {} };
delete obj[cont].prod['@nItem'];
}
//Primeiro item + NFCe + Homologação
if (cont == 0 && __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.mod == 65 && __classPrivateFieldGet(this, _Make_NFe, "f").infNFe.ide.tpAmb == 2)
obj[cont].prod.xProd = "NOTA FISCAL EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL";
obj[cont].prod.qCom = (obj[cont].prod.qCom * 1).toFixed(4);
obj[cont].prod.vUnCom = (obj[cont].prod.vUnCom * 1).toFixed(10);
obj[cont].prod.vProd = (obj[cont].prod.vProd * 1).toFixed(2);
if (obj[cont].prod.vDesc !== undefined)
obj[cont].prod.vDesc = (obj[cont].prod.vDesc * 1).toFixed(2);
obj[cont].prod.qTrib = (obj[cont].prod.qTrib * 1).toFixed(4);
obj[cont].prod.vUnTrib = (obj[cont].prod.vUnTrib * 1).toFixed(10);
//Calcular ICMSTot
__classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj[cont].prod);
}
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det = obj;
}
tagCreditoPresumidoProd(obj) {
throw "não implementado!";
}
taginfAdProd(index, obj) {
Object.keys(obj).forEach(key => {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index][key] = obj[key];
});
}
tagCEST(obj) {
throw "não implementado!";
}
tagRECOPI(obj) {
throw "não implementado!";
}
tagDI(index, obj) {
if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].DI === undefined)
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].DI = {};
Object.keys(obj).forEach(key => {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].DI[key] = obj[key];
});
//Adicionar ao imposto global
__classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
}
tagAdi(index, obj) {
if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].DI === undefined)
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].DI = {};
if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].DI.adi === undefined)
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].DI.adi = {};
Object.keys(obj).forEach(key => {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].DI.adi[key] = obj[key];
});
//Adicionar ao imposto global
__classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
}
tagDetExport(obj) {
throw "não implementado!";
}
tagDetExportInd(obj) {
throw "não implementado!";
}
tagRastro(obj) {
throw "não implementado!";
}
tagVeicProd(obj) {
throw "não implementado!";
}
tagMed(obj) {
throw "não implementado!";
}
tagArma(obj) {
throw "não implementado!";
}
tagComb(obj) {
throw "não implementado!";
}
tagEncerrante() {
throw "não implementado!";
}
tagOrigComb() {
throw "não implementado!";
}
tagImposto() {
throw "não implementado!";
}
tagProdICMS(index, data) {
if (!__classPrivateFieldGet(this, _Make_NFe, "f")?.infNFe?.det?.[index]) {
throw new Error(`Produto na posição ${index} não existe em infNFe.det`);
}
if (!__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto = {};
}
if (!__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS = {};
}
const obj = __classPrivateFieldGet(this, _Make_instances, "m", _Make_equalizeICMSParameters).call(this, data);
let keyXML = "";
switch (obj.CST) {
case '00':
keyXML = 'ICMS00';
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[keyXML] = this.generateICMS00(obj);
break;
case '02':
keyXML = 'ICMS02';
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[keyXML] = this.generateICMS02(obj);
break;
case '10':
keyXML = 'ICMS10';
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[keyXML] = this.generateICMS10(obj);
break;
case '15':
keyXML = 'ICMS15';
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[keyXML] = this.generateICMS15(obj);
break;
case '20':
keyXML = 'ICMS20';
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[keyXML] = this.generateICMS20(obj);
break;
case '30':
keyXML = 'ICMS30';
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[keyXML] = this.generateICMS30(obj);
break;
case '40':
case '41':
case '50':
keyXML = 'ICMS40';
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[keyXML] = this.generateICMS40(obj);
break;
case '51':
keyXML = 'ICMS51';
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[keyXML] = this.generateICMS51(obj);
break;
case '53':
keyXML = 'ICMS53';
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[keyXML] = this.generateICMS53(obj);
break;
case '60':
keyXML = 'ICMS60';
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[keyXML] = this.generateICMS60(obj);
break;
case '61':
keyXML = 'ICMS61';
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[keyXML] = this.generateICMS61(obj);
break;
case '70':
keyXML = 'ICMS70';
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[keyXML] = this.generateICMS70(obj);
break;
case '90':
keyXML = 'ICMS90';
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[keyXML] = this.generateICMS90(obj);
break;
default:
throw new Error(`CST inválido: ${obj.CST}`);
}
}
tagProdICMSPart(index, obj) {
if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS === undefined)
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS = {};
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS.ICMSPart = {};
Object.keys(obj).forEach(key => {
if (key != 'orig' && key != 'modBC')
obj[key] = obj[key] == 0 ? "0.00" : obj[key];
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS.ICMSPart[key] = obj[key];
});
//Calcular ICMSTot
__classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
}
//
tagProdICMSST(index, obj) {
if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS === undefined)
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS = {};
let CST = obj.CST;
//delete obj.CST;
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[`ICMS${CST}`] = {};
Object.keys(obj).forEach(key => {
if (!["orig", "CSOSN", "modBC", "modBCST"].includes(key))
obj[key] = obj[key] == 0 ? "0.00" : obj[key];
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[`ICMS${CST}`][key] = obj[key];
});
//Calcular ICMSTot
__classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
}
//
tagProdICMSSN(index, obj) {
if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS === undefined)
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS = {};
let keyXML = "";
switch (obj.CSOSN) {
case '101':
keyXML = 'ICMSSN101';
break;
case '102':
case '103':
case '300':
case '400':
keyXML = 'ICMSSN102';
break;
case '201':
keyXML = 'ICMSSN201';
break;
case '202':
case '203':
keyXML = 'ICMSSN202';
break;
case '500':
keyXML = 'ICMSSN500';
break;
case '900':
keyXML = 'ICMSSN900';
break;
default:
throw "CSOSN não identificado!";
break;
}
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[keyXML] = {};
Object.keys(obj).forEach(key => {
if (key != 'orig')
obj[key] = obj[key] == 0 ? "0.00" : obj[key];
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMS[keyXML][key] = obj[key];
});
//Calcular ICMSTot
__classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
}
tagProdICMSUFDest(index, obj) {
console.log(__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.total);
if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMSUFDest === undefined)
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMSUFDest = {};
Object.keys(obj).forEach(key => {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ICMSUFDest[key] = obj[key] == 0 ? "0.00" : obj[key];
});
__classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot)?.call(this, obj); // opcional
}
tagProdIPI(index, data) {
if (!__classPrivateFieldGet(this, _Make_NFe, "f")?.infNFe?.det?.[index]) {
throw new Error(`Produto na posição ${index} não existe em infNFe.det`);
}
if (!__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto = {};
}
if (!__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.IPI) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.IPI = {};
}
const obj = this.equalizeIPIParameters(data);
// Campo obrigatório na raiz do IPI
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.IPI.cEnq = obj.cEnq;
let keyXML = "";
let ipiTag = {}; // Use um objeto local para construir a tag
switch (obj.CST) {
case '00':
case '49':
case '50':
case '99':
keyXML = 'IPITrib';
ipiTag = this.generateIPITrib(obj);
break;
case '01':
case '02':
case '03':
case '04':
case '05':
case '51':
case '52':
case '53':
case '54':
case '55':
keyXML = 'IPINT';
ipiTag = this.generateIPINT(obj);
break;
default:
throw new Error("CST de IPI não identificado!");
}
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.IPI[keyXML] = ipiTag;
// Adicionar campos opcionais na raiz do IPI
if (obj.clEnq) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.IPI.clEnq = obj.clEnq;
}
if (obj.CNPJProd) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.IPI.CNPJProd = obj.CNPJProd;
}
if (obj.cSelo) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.IPI.cSelo = obj.cSelo;
}
if (obj.qSelo) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.IPI.qSelo = obj.qSelo;
}
__classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj); // opcional se considerar IPI no total
}
tagProdII(index, obj) {
if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.II === undefined)
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.II = {};
Object.keys(obj).forEach(key => {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.II[key] = obj[key];
});
__classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
}
tagProdPIS(index, data) {
if (!__classPrivateFieldGet(this, _Make_NFe, "f")?.infNFe?.det?.[index]) {
throw new Error(`Produto na posição ${index} não existe em infNFe.det`);
}
if (!__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto = {};
}
if (!__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PIS) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PIS = {};
}
const obj = __classPrivateFieldGet(this, _Make_instances, "m", _Make_equalizePISParameters).call(this, data);
let keyXML = "";
let pisItem = {};
switch (obj.CST) {
case '01':
case '02':
keyXML = 'PISAliq';
pisItem = this.generatePISAliq(obj);
break;
case '03':
keyXML = 'PISQtde';
pisItem = this.generatePISQtde(obj);
break;
case '04':
case '05':
case '06':
case '07':
case '08':
case '09':
keyXML = 'PISNT';
pisItem = this.generatePISNT(obj);
break;
case '49':
case '50':
case '51':
case '52':
case '53':
case '54':
case '55':
case '56':
case '60':
case '61':
case '62':
case '63':
case '64':
case '65':
case '66':
case '67':
case '70':
case '71':
case '72':
case '73':
case '74':
case '75':
case '98':
case '99':
keyXML = 'PISOutr';
pisItem = this.generatePISOutr(obj);
break;
default:
throw new Error("CST de PIS não identificado!");
}
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PIS[keyXML] = pisItem;
//Calcular ICMSTot
__classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
}
tagProdPISST(index, obj) {
if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PISST === undefined)
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PISST = {};
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PISST = {};
Object.keys(obj).forEach(key => {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.PISST[key] = obj[key];
});
//Calcular ICMSTot
__classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
}
tagProdCOFINS(index, data) {
if (!__classPrivateFieldGet(this, _Make_NFe, "f")?.infNFe?.det?.[index]) {
throw new Error(`Produto na posição ${index} não existe em infNFe.det`);
}
if (!__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto = {};
}
if (!__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.COFINS) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.COFINS = {};
}
const obj = this.equalizeCOFINSParameters(data);
let keyXML = "";
let confinsItem = {};
switch (obj.CST) {
case '01':
case '02':
keyXML = 'COFINSAliq';
confinsItem = this.generateCOFINSAliq(obj);
break;
case '03':
keyXML = 'COFINSQtde';
confinsItem = this.generateCOFINSQtde(obj);
break;
case '04':
case '05':
case '06':
case '07':
case '08':
case '09':
keyXML = 'COFINSNT';
confinsItem = this.generateCOFINSNT(obj);
break;
case '49':
case '50':
case '51':
case '52':
case '53':
case '54':
case '55':
case '56':
case '60':
case '61':
case '62':
case '63':
case '64':
case '65':
case '66':
case '67':
case '70':
case '71':
case '72':
case '73':
case '74':
case '75':
case '98':
case '99':
keyXML = 'COFINSOutr';
confinsItem = this.generateCOFINSOutr(obj);
break;
default:
throw new Error("CST de COFINS não identificado!");
}
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.COFINS[keyXML] = confinsItem;
//Calcular ICMSTot
__classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
}
tagProdCOFINSST(index, obj) {
if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.COFINS === undefined)
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.COFINS = {};
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.COFINS.COFINSST = {};
Object.keys(obj).forEach(key => {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.COFINS.COFINSST[key] = obj[key];
});
//Calcular ICMSTot
__classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
}
tagProdISSQN(index, obj) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ISSQN = {};
Object.keys(obj).forEach(key => {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.ISSQN[key] = obj[key];
});
//Calcular ICMSTot
__classPrivateFieldGet(this, _Make_instances, "m", _Make_calICMSTot).call(this, obj);
}
tagProdImpostoDevol(index, obj) {
throw "Não implementado!";
}
// ============================================================================
// ✅ NOVOS MÉTODOS DA REFORMA TRIBUTÁRIA - SEGUINDO SCHEMA OFICIAL
// ============================================================================
/**
* ✅ CORRIGIDO: Imposto Seletivo (IS) - Grupo UB01 seguindo schema oficial
*/
tagProdIS(index, data) {
if (!__classPrivateFieldGet(this, _Make_NFe, "f")?.infNFe?.det?.[index]) {
throw new Error(`Produto na posição ${index} não existe em infNFe.det`);
}
if (!__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto = {};
}
const obj = __classPrivateFieldGet(this, _Make_instances, "m", _Make_equalizeISParameters).call(this, data);
// ✅ CORRIGIDO: Estrutura seguindo exatamente o schema oficial
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.IS = {
CSTIS: String(obj.CST).padStart(3, "0"),
cClassTribIS: obj.cClassTribIS ? String(obj.cClassTribIS).padStart(6, "0") : undefined,
vBCIS: __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.vBC),
pIS: __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.pIS, 4),
vIS: __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.vIS)
};
// Campos opcionais para alíquota específica
if (obj.pISEspec) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.IS.pISEspec = __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.pISEspec, 4);
if (obj.uTrib)
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.IS.uTrib = obj.uTrib;
if (obj.qTrib)
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.IS.qTrib = __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.qTrib, 4);
}
// Calcular totais da reforma tributária
__classPrivateFieldGet(this, _Make_instances, "m", _Make_calReformaTribTot).call(this, obj);
}
/**
* ✅ CORRIGIDO: IBS e CBS - Grupo UB12 seguindo schema oficial
*/
tagProdIBSCBS(index, obj) {
if (!__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto = {};
}
const vBC = Number(obj.vBC ?? 0);
// Aliquotas IBS
const pIBSUF = Number(obj.pIBSUF ?? 0);
const pIBSMun = Number(obj.pIBSMun ?? 0);
// Cálculos IBS
const vIBSUF = ((vBC * pIBSUF) / 100).toFixed(2);
const vIBSMun = ((vBC * pIBSMun) / 100).toFixed(2);
const vIBS = (Number(vIBSUF) + Number(vIBSMun)).toFixed(2);
// Aliquota CBS
const pCBS = Number(obj.pCBS ?? 0);
const vCBS = ((vBC * pCBS) / 100).toFixed(2);
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].imposto.IBSCBS = {
CST: String(obj.CST ?? "000").padStart(3, "0"),
cClassTrib: obj.cClassTrib ? String(obj.cClassTrib).padStart(6, "0") : "000000",
gIBSCBS: {
vBC: vBC.toFixed(2),
gIBSUF: {
pIBSUF: pIBSUF.toFixed(4),
vIBSUF: vIBSUF,
},
gIBSMun: {
pIBSMun: pIBSMun.toFixed(4),
vIBSMun: vIBSMun,
},
vIBS: vIBS,
gCBS: {
pCBS: pCBS.toFixed(4),
vCBS: vCBS,
},
},
};
}
/**
* ✅ CORRIGIDO: Total do Item - Grupo VB01 seguindo schema oficial
*/
tagTotalItem(index, data) {
if (!__classPrivateFieldGet(this, _Make_NFe, "f")?.infNFe?.det?.[index]) {
throw new Error(`Produto na posição ${index} não existe em infNFe.det`);
}
// ✅ CORRIGIDO: Campo vItem diretamente no det, não em grupo separado
if (data.vItem !== null && data.vItem !== undefined) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].vItem = __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, data.vItem);
}
}
/**
* ✅ CORRIGIDO: Referenciamento de Item - Grupo VC01 seguindo schema oficial
*/
tagRefItem(index, data) {
if (!__classPrivateFieldGet(this, _Make_NFe, "f")?.infNFe?.det?.[index]) {
throw new Error(`Produto na posição ${index} não existe em infNFe.det`);
}
// ✅ CORRIGIDO: Estrutura seguindo exatamente o schema oficial
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det[index].DFeReferenciado = {
chaveAcesso: data.chaveAcesso,
nItem: data.nItem ? String(data.nItem) : undefined
};
}
tagICMSTot(obj = null) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.total = {
ICMSTot: {}
};
Object.keys(__classPrivateFieldGet(this, _Make_ICMSTot, "f")).forEach(key => {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.total.ICMSTot[key] = (__classPrivateFieldGet(this, _Make_ICMSTot, "f")[key] * 1).toFixed(2);
});
__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);
if (obj != null) { // Substituir campos que deseja
Object.keys(obj).forEach(key => {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.total.ICMSTot[key] = obj[key];
});
}
}
/**
* ✅ CORRIGIDO: Totais da Reforma Tributária - Grupos W31 e W34 seguindo schema oficial
*/
calcTotaisReformaTributaria() {
let ISTot = {};
let IBSCBSTot = {
vBCIBSCBS: 0,
gIBS: {
gIBSUF: { vDif: 0, vDevTrib: 0, vIBSUF: 0 },
gIBSMun: { vDif: 0, vDevTrib: 0, vIBSMun: 0 },
vIBS: 0,
vCredPres: 0,
vCredPresCondSus: 0,
},
gCBS: {
vDif: 0,
vDevTrib: 0,
vCBS: 0,
vCredPres: 0,
vCredPresCondSus: 0,
},
};
if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.det.forEach((item) => {
const imposto = item.imposto?.IBSCBS?.gIBSCBS;
if (!imposto)
return;
const vBC = Number(imposto.vBC || 0);
// Soma da base
IBSCBSTot.vBCIBSCBS = (Number(IBSCBSTot.vBCIBSCBS) + vBC).toFixed(2);
// IBS UF
IBSCBSTot.gIBS.gIBSUF.vIBSUF = (Number(IBSCBSTot.gIBS.gIBSUF.vIBSUF) +
Number(imposto.gIBSUF?.vIBSUF || 0)).toFixed(2);
// IBS Mun
IBSCBSTot.gIBS.gIBSMun.vIBSMun = (Number(IBSCBSTot.gIBS.gIBSMun.vIBSMun) +
Number(imposto.gIBSMun?.vIBSMun || 0)).toFixed(2);
// IBS Total (sempre soma das partes)
IBSCBSTot.gIBS.vIBS = (Number(IBSCBSTot.gIBS.gIBSUF.vIBSUF) +
Number(IBSCBSTot.gIBS.gIBSMun.vIBSMun)).toFixed(2);
// CBS
IBSCBSTot.gCBS.vCBS = (Number(IBSCBSTot.gCBS.vCBS) +
Number(imposto.gCBS?.vCBS || 0)).toFixed(2);
});
}
if (!__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.total)
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.total = {};
if (Object.keys(ISTot).length > 0) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.total.ISTot = ISTot;
}
// Só adiciona IBSCBSTot se tiver valores
if (Number(IBSCBSTot.vBCIBSCBS) > 0 ||
Number(IBSCBSTot.gIBS.vIBS) > 0 ||
Number(IBSCBSTot.gCBS.vCBS) > 0) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.total.IBSCBSTot = IBSCBSTot;
}
// Valor total da NF com IBS/CBS/IS
const vNF = Number(__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.total.ICMSTot?.vNF || 0);
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.total.vNFTot = (vNF +
Number(IBSCBSTot.gIBS.vIBS || 0) +
Number(IBSCBSTot.gCBS.vCBS || 0) +
Number(ISTot.vIS || 0)).toFixed(2);
}
tagISSQNTot(obj) {
throw "Não implementado!";
}
tagRetTrib(obj) {
throw "Não implementado!";
}
tagTransp(obj) {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.transp = {};
Object.keys(obj).forEach(key => {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.transp[key] = obj[key];
});
}
tagTransporta(obj) {
throw "Não implementado!";
}
tagRetTransp(obj) {
throw "Não implementado!";
}
tagVeicTransp(obj) {
throw "Não implementado!";
}
tagReboque(obj) {
throw "Não implementado!";
}
tagVagao(obj) {
throw "Não implementado!";
}
tagBalsa(obj) {
throw "Não implementado!";
}
tagVol(obj) {
throw "Não implementado!";
}
tagLacres(obj) {
throw "Não implementado!";
}
tagFat(obj) {
var _a;
if (!obj)
throw new Error("Parâmetro obrigatório para tagFat está vazio");
const cobr = (_a = __classPrivateFieldGet(this, _Make_NFe, "f").infNFe).cobr ?? (_a.cobr = {}); // Garante que 'cobr' existe
const fat = cobr.fat = {};
for (const key of ['nFat', 'vOrig', 'vDesc', 'vLiq']) {
if (['vOrig', 'vDesc', 'vLiq'].includes(key)) {
fat[key] = Number(obj[key]).toFixed(2);
}
else {
fat[key] = obj[key];
}
}
return this;
}
tagDup(lista) {
var _a;
if (!Array.isArray(lista) || lista.length === 0) {
throw new Error("Parâmetro obrigatório para tagDup deve ser uma lista não vazia");
}
const cobr = (_a = __classPrivateFieldGet(this, _Make_NFe, "f").infNFe).cobr ?? (_a.cobr = {});
cobr.dup = [];
for (const dup of lista) {
if (!dup.nDup || !dup.dVenc || !dup.vDup) {
throw new Error("Campos obrigatórios em 'dup' ausentes: nDup, dVenc e vDup");
}
cobr.dup.push({
nDup: dup.nDup,
dVenc: dup.dVenc,
vDup: Number(dup.vDup).toFixed(2),
});
}
return this;
}
//tagpag()
tagTroco(obj) {
if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.pag === undefined)
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.pag = {};
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.pag.vTroco = obj;
}
tagDetPag(obj) {
if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.pag === undefined)
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.pag = {};
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.pag.detPag = obj;
}
tagIntermed(obj) {
throw "Não implementado!";
}
tagInfAdic(obj) {
if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.infAdic === undefined)
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.infAdic = {};
Object.keys(obj).forEach(key => {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.infAdic[key] = obj[key];
});
}
tagObsCont(obj) {
throw "Não implementado!";
}
tagObsFisco(obj) {
throw "Não implementado!";
}
tagProcRef(obj) {
throw "Não implementado!";
}
tagExporta(obj) {
throw "Não implementado!";
}
tagCompra(obj) {
throw "Não implementado!";
}
tagCana(obj) {
throw "Não implementado!";
}
tagforDia() {
}
tagdeduc() {
}
taginfNFeSupl() {
}
tagInfRespTec(obj) {
if (__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.infRespTec === undefined)
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.infRespTec = {};
Object.keys(obj).forEach(key => {
__classPrivateFieldGet(this, _Make_NFe, "f").infNFe.infRespTec[key] = obj[key];
});
}
//Endereço para retirada
tagRetiEnder(obj) {
throw "Ainda não configurado!";
}
//Endereço para entrega
tagEntrega(obj) {
throw "Ainda não configurado!";
}
// ============================================================================
// GERADORES DE XML PARA IMPOSTOS EXISTENTES (manter como está)
// ============================================================================
generateICMS00(obj) {
const icms00 = {};
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms00, 'orig', obj.orig, true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms00, 'CST', obj.CST, true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms00, 'modBC', obj.modBC, true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms00, 'vBC', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.vBC), true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms00, 'pICMS', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.pICMS, 4), true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms00, 'vICMS', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.vICMS), true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms00, 'pFCP', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.pFCP, 4), false);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms00, 'vFCP', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.vFCP), false);
return icms00;
}
generateICMS02(obj) {
const icms02 = {};
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms02, 'orig', obj.orig, true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms02, 'CST', obj.CST, true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms02, 'qBCMono', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.qBCMono, 4), false);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms02, 'adRemICMS', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.adRemICMS, 4), true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms02, 'vICMSMono', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.vICMSMono), true);
return icms02;
}
generateICMS10(obj) {
const icms10 = {};
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms10, 'orig', obj.orig, true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms10, 'CST', obj.CST, true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms10, 'modBC', obj.modBC, true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms10, 'vBC', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.vBC), true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms10, 'pICMS', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.pICMS, 4), true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms10, 'vICMS', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.vICMS), true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms10, 'modBCST', obj.modBCST, true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms10, 'pMVAST', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.pMVAST, 4), false);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms10, 'pRedBCST', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.pRedBCST, 4), false);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms10, 'vBCST', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.vBCST), true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms10, 'pICMSST', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.pICMSST, 4), true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms10, 'vICMSST', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.vICMSST), true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms10, 'vBCFCP', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.vBCFCP), false);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms10, 'pFCP', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.pFCP, 4), false);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms10, 'vFCP', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.vFCP), false);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms10, 'vBCFCPST', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.vBCFCPST), false);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms10, 'pFCPST', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.pFCPST, 4), false);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms10, 'vFCPST', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.vFCPST), false);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms10, 'vICMSSTDeson', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.vICMSSTDeson), false);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms10, 'motDesICMSST', obj.motDesICMSST, false);
return icms10;
}
generateICMS15(obj) {
const icms15 = {};
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms15, 'orig', obj.orig, true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms15, 'CST', obj.CST, true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms15, 'qBCMono', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.qBCMono, 4), false);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms15, 'adRemICMS', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.adRemICMS, 4), true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms15, 'vICMSMono', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.vICMSMono), true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms15, 'qBCMonoReten', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.qBCMonoReten, 4), false);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms15, 'adRemICMSReten', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.adRemICMSReten, 4), true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms15, 'vICMSMonoReten', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.vICMSMonoReten), true);
if (!obj.pRedAdRem) {
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms15, 'pRedAdRem', __classPrivateFieldGet(this, _Make_instances, "m", _Make_conditionalNumberFormatting).call(this, obj.pRedAdRem), true);
__classPrivateFieldGet(this, _Make_instances, "m", _Make_addChildJS).call(this, icms15, 'motRedAdRem', obj.motRedAdRem, true);
}
return icms15;
}
generateICMS20(obj) {
const icms20 = {};
__classPrivateFieldGet(this, _Make