node-sped-nfe
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
276 lines (275 loc) • 11.8 kB
JavaScript
const cUF2UF = {
"11": "RO",
"12": "AC",
"13": "AM",
"14": "RR",
"15": "PA",
"16": "AP",
"17": "TO",
"21": "MA",
"22": "PI",
"23": "CE",
"24": "RN",
"25": "PB",
"26": "PE",
"27": "AL",
"28": "SE",
"29": "BA",
"31": "MG",
"32": "ES",
"33": "RJ",
"35": "SP",
"41": "PR",
"42": "SC",
"43": "RS",
"50": "MS",
"51": "MT",
"52": "GO",
"53": "DF"
}, UF2cUF = {
"RO": "11",
"AC": "12",
"AM": "13",
"RR": "14",
"PA": "15",
"AP": "16",
"TO": "17",
"MA": "21",
"PI": "22",
"CE": "23",
"RN": "24",
"PB": "25",
"PE": "26",
"AL": "27",
"SE": "28",
"BA": "29",
"MG": "31",
"ES": "32",
"RJ": "33",
"SP": "35",
"PR": "41",
"SC": "42",
"RS": "43",
"MS": "50",
"MT": "51",
"GO": "52",
"DF": "53"
};
//Função auxliar de imposto
const impEstrutura = (imposto) => {
const gStruct = {
ICMS: {
ICMS_ICMSSN: {
"@label": "Tributação",
"@type": "select",
"@obrig": true,
"@values": [
{ "102": "Tributação Normal" },
{ "103": "Simples Nacional" }
],
"@next": {
CST: {
"@label": "Situação Tributaria",
"@type": "select",
"@obrig": true,
"@values": [
{ "00": "00 - Tributada integralmente" },
{ "10": "10 - Tributada com cobrança do ICMS por ST" },
{ "10v2": "10 - Tributada com cobrança do ICMS por ST(com partilha do ICMS entre UF de origem e a UF de destino ou a UFdefinida na legislação)" },
{ "20": "20 - Com redução de base de cálculo" },
{ "30": "30 - Isenta ou não tributada e com cobrança do ICMS por ST" },
{ "40": "40 - Isenta" },
{ "41": "41 - Não tributada" },
{ "41v2": "41 - Não tributada (ICMSST devido para UF de destino, nas operações interestaduais de produtos que tiveram retenção de ICMS na UF do rementente)" },
{ "50": "50 - Suspensão" },
{ "51": "51 - Diferimento" },
{ "60": "60 - Cobrado anteriormente por ST" },
{ "60v2": "60 - Cobrado anteriormente por ST" },
{ "70": "70 - Com redução de base de cálculo e cobrança do ICMS por ST" },
{ "90": "90 - Outros (Com partilha do ICMS entre a UF de origem e a UF de destino ou a UF definida na legistação)" },
{ "90v2": "90 - Outros" },
],
},
orig: {
"@label": "Origem",
"@type": "select",
"@obrig": true,
"@values": [
{ "0": "Nacional, exceto as indicadas nos códigos 3, 4, 5 e 8" },
{ "1": "Estrangeira - Importação direta, exceto a indicada no código 6" },
{ "2": "Estrangeira - Adquirida no mercado interno, exceto a indicada no código 7" },
{ "3": "Nacional, mercadoria ou bem com Conteúdo de Importação superior a 40% e inferior ou igual a 70%" },
{ "4": "Nacional, cuja produção tenha sido feita em conformidade com os processos produtivos básicos de que tratam as legislações citadas nos Ajustes" },
{ "5": "Nacional, mercadoria ou bem com Conteúdo de Importação inferior ou igual a 40% " },
{ "6": "Estrangeira - Importação direta, sem similar nacional, constante em lista da CAMEX e gás natural" },
{ "7": "Estrangeira - Adquirida no mercado interno, sem similar nacional, constante lista CAMEX e gás natural" }
],
},
"@next": {
"@CST_00": {
modBC: {
"@label": "Modalidade de determinação da base de calculo ICMS",
"@type": "select",
"@obrig": true,
"@values": [
{ "0": "0-Margem Valor Agregado (%)" },
{ "1": "1-Pauta (Valor)" },
{ "2": "2-Preço Tabelado Máx" },
{ "3": "3-Valor da operação" }
],
},
vBC: {
"@label": "Base de calculo ICMS",
"@type": "input",
"@obrig": true,
},
pICMS: {
"@label": "Líquota do ICMS",
"@type": "input",
"@obrig": true,
},
vICMS: {
"@label": "Valor ICMS",
"@type": "input",
"@obrig": true,
},
pFCP: {
"@label": "% Relativo ao FCP ST",
"@type": "input",
"@obrig": false,
},
vFCP: {
"@label": "Valor ICMS FCP ST",
"@type": "input",
"@obrig": false,
}
},
"@CST_10": {
modBC: {
"@label": "Modalidade de determinação da base de calculo ICMS",
"@type": "select",
"@obrig": true,
"@values": [
{ "0": "0-Margem Valor Agregado (%)" },
{ "1": "1-Pauta (Valor)" },
{ "2": "2-Preço Tabelado Máx" },
{ "3": "3-Valor da operação" }
],
},
vBC: {
"@label": "Base de calculo ICMS",
"@type": "input",
"@obrig": true,
},
pICMS: {
"@label": "Líquota do ICMS",
"@type": "input",
"@obrig": true,
},
vICMS: {
"@label": "Valor ICMS",
"@type": "input",
"@obrig": true,
},
modBCST: {
"@label": "Modalidade de determinação da BC do ICMS ST",
"@type": "select",
"@obrig": true,
"@values": [
{ "0": "Preço tabelado ou máximo sugerido" },
{ "1": "Lista Negativa (valor)" },
{ "2": "Lista Positiva (valor)" },
{ "3": "Lista Neutra (valor)" },
{ "4": "Margem Valor Agregado (%)" },
{ "5": "Pauta (valor)" },
{ "6": "Valor da Operação (NT 2019.001)" }
],
},
pMVAST: {
"@label": "% Margem de valor adic. ICMS ST",
"@type": "input",
"@obrig": true,
},
pRedBCST: {
"@label": "% Redução de BC ICMS ST",
"@type": "input",
"@obrig": true,
},
vBCST: {
"@label": "BC ICMS ST",
"@type": "input",
"@obrig": true,
},
pICMSST: {
"@label": "Alíquota de ICMS ST",
"@type": "input",
"@obrig": true,
},
vICMSST: {
"@label": "ICMS ST",
"@type": "input",
"@obrig": true,
},
vBCFCPST: {
"@label": "BC ICMS FCP ST",
"@type": "input",
"@obrig": true,
},
pFCPST: {
"@label": "% Relativo ao FCP ST",
"@type": "input",
"@obrig": true,
},
vFCPST: {
"@label": "Valor ICMS FCP ST",
"@type": "input",
"@obrig": true,
},
vBCFCP: {
"@label": "BC ICMS FCP",
"@type": "input",
"@obrig": false,
},
pFCP: {
"@label": "% Relativo ao FCP",
"@type": "input",
"@obrig": false,
},
vFCP: {
"@label": "Valor ICMS FCP",
"@type": "input",
"@obrig": false,
},
}
}
}
},
},
II: {},
ICMSint: {},
IPI: {},
IPIDev: {},
ISSQN: {},
COFINS: {},
PIS: {}
};
//Configurar valores
let configStruct = async (el, struc) => {
Object.keys(struc).forEach(key => {
if (typeof el[key] == "undefined") { //Não foi definido pelo usuario!
if (struc[key]["@obrig"]) { //Obrigatorio?
return struc; //Retonar estrutura
}
}
});
Object.keys(struc).forEach(key => {
if (typeof el[key]["@next"][`${key}_${el[key].value}`] != "undefined") { //Não foi definido pelo usuario!
}
});
if (el["@next"]) {
}
return configStruct(imposto, gStruct);
};
imposto = configStruct(imposto, gStruct);
};
export { cUF2UF, UF2cUF };