nfse
Version:
Geração de nota fiscal de serviço
345 lines (314 loc) • 34.4 kB
JavaScript
// Models
const abrasf100Model = require('../models/abrasf-1.00');
const abrasf201Model = require('../models/abrasf-2.01');
const saopaulo100Model = require('../models/sao-paulo-1.00');
const setParticularities = (object, city) => {
const particularitiesObject = {
isSigned: {},
tags: {}
};
switch (city.nfseKeyword) {
case 'ginfes':
try {
object.config.producaoHomologacao === 'producao' ? particularitiesObject['webserviceUrl'] = 'https://producao.ginfes.com.br/ServiceGinfesImpl?wsdl' : particularitiesObject['webserviceUrl'] = 'https://homologacao.ginfes.com.br/ServiceGinfesImpl?wsdl';
object.config.producaoHomologacao === 'producao' ? particularitiesObject['urlXmlns'] = 'http://producao.ginfes.com.br' : particularitiesObject['urlXmlns'] = 'http://homologacao.ginfes.com.br';
particularitiesObject['nfseKeyword'] = 'ginfes';
if (object.config.acao === 'enviarLoteRps') {
particularitiesObject['tags'] = {...abrasf100Model.abrasf100};
addPrefixesAsync(['EnviarLoteRpsEnvio', 'LoteRps'], 'ns3:', particularitiesObject);
doNotAddPrefixesAsync(['EnviarLoteRpsEnvio', 'LoteRps'], 'ns4:', particularitiesObject);
particularitiesObject['tags']['enviarLoteRpsEnvioAlterada'] = `${particularitiesObject['tags']['enviarLoteRpsEnvio']} xmlns:ns3="http://www.ginfes.com.br/servico_enviar_lote_rps_envio_v03.xsd" xmlns:ns4="http://www.ginfes.com.br/tipos_v03.xsd"`;
particularitiesObject['tags']['loteRpsAlterada'] = `${particularitiesObject['tags']['loteRps']} Id="_uniqueValue"`;
particularitiesObject['tags']['infRpsAlterada'] = `${particularitiesObject['tags']['infRps']} Id="_uniqueValue"`;
particularitiesObject['envelopment'] = '<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\"><soap:Body><ns1:RecepcionarLoteRpsV3 xmlns:ns1=\"http://homologacao.ginfes.com.br\"><arg0><ns2:cabecalho versao=\"3\" xmlns:ns2=\"http://www.ginfes.com.br/cabecalho_v03.xsd\"><versaoDados>3</versaoDados></ns2:cabecalho></arg0><arg1>__xml__</arg1></ns1:RecepcionarLoteRpsV3></soap:Body></soap:Envelope>';
}
if (object.config.acao === 'consultarLoteRps') {
particularitiesObject['tags'] = {...abrasf100Model.abrasf100};
addPrefixesAsync(['ConsultarLoteRpsEnvio', 'Prestador', 'Protocolo'], 'ns3:', particularitiesObject);
doNotAddPrefixesAsync(['ConsultarLoteRpsEnvio', 'Prestador', 'Protocolo'], 'ns4:', particularitiesObject);
particularitiesObject['tags']['consultarLoteRpsEnvioAlterada'] = `${particularitiesObject['tags']['consultarLoteRpsEnvio']} xmlns:ns3="http://www.ginfes.com.br/servico_consultar_lote_rps_envio_v03.xsd" xmlns:ns4="http://www.ginfes.com.br/tipos_v03.xsd"`;
particularitiesObject['envelopment'] = '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns1:ConsultarLoteRpsV3 xmlns:ns1="' + particularitiesObject['urlXmlns'] + '"><arg0><ns2:cabecalho versao="3" xmlns:ns2="http://www.ginfes.com.br/cabecalho_v03.xsd"><versaoDados>3</versaoDados></ns2:cabecalho></arg0><arg1>__xml__</arg1></ns1:ConsultarLoteRpsV3></soap:Body></soap:Envelope>';
particularitiesObject['isSigned']['consultarLoteRps'] = true;
}
if (object.config.acao === 'consultarNfsePorRps') {
particularitiesObject['tags'] = {...abrasf100Model.abrasf100};
addPrefixesAsync(['ConsultarNfseRpsEnvio', 'Prestador', 'IdentificacaoRps'], 'ns3:', particularitiesObject);
doNotAddPrefixesAsync(['ConsultarNfseRpsEnvio', 'Prestador', 'IdentificacaoRps'], 'ns4:', particularitiesObject);
particularitiesObject['tags']['consultarNfseRpsEnvioAlterada'] = `${particularitiesObject['tags']['consultarNfseRpsEnvio']} xmlns:ns3="http://www.ginfes.com.br/servico_consultar_nfse_rps_envio_v03.xsd" xmlns:ns4="http://www.ginfes.com.br/tipos_v03.xsd"`;
particularitiesObject['envelopment'] = '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns1:ConsultarNfsePorRpsV3 xmlns:ns1="' + particularitiesObject['urlXmlns'] + '"><arg0><ns2:cabecalho versao="3" xmlns:ns2="http://www.ginfes.com.br/cabecalho_v03.xsd"><versaoDados>3</versaoDados></ns2:cabecalho></arg0><arg1>__xml__</arg1></ns1:ConsultarNfsePorRpsV3></soap:Body></soap:Envelope>';
particularitiesObject['isSigned']['consultarNfseRps'] = true;
particularitiesObject['isSigned']['isEmptyUri'] = true;
}
if (object.config.acao === 'cancelarNfse') {
particularitiesObject['tags'] = {...abrasf201Model.abrasf201};
addPrefixesAsync(['CancelarNfseEnvio', 'Prestador', 'NumeroNfse'], 'ns3:', particularitiesObject);
doNotAddPrefixesAsync(['CancelarNfseEnvio', 'Prestador', 'NumeroNfse'], 'ns4:', particularitiesObject);
particularitiesObject['tags']['cancelarNfseEnvioAlterada'] = `${particularitiesObject['tags']['cancelarNfseEnvio']} xmlns:ns3="http://www.ginfes.com.br/servico_cancelar_nfse_envio" xmlns:ns4="http://www.ginfes.com.br/tipos"`;
particularitiesObject['envelopment'] = `<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header/><soap:Body><ns1:CancelarNfse xmlns:ns1="${particularitiesObject['urlXmlns']}"><arg0>__xml__</arg0></ns1:CancelarNfse></soap:Body></soap:Envelope>`;
particularitiesObject['isSigned']['cancelarNfse'] = true;
particularitiesObject['isSigned']['isEmptyUri'] = true;
}
particularitiesObject['xsds'] = {
enviarLoteRps: '/../../../resources/xsd/ginfes/servico_enviar_lote_rps_envio_v03.xsd',
consultarLoteRps: '/../../../resources/xsd/ginfes/servico_consultar_lote_rps_envio_v03.xsd',
consultarNfseRps: '/../../../resources/xsd/ginfes/servico_consultar_nfse_rps_envio_v03.xsd'
}
} catch (error) {
console.error(error);
}
break;
case 'saojosedospinhais':
try {
object.config.producaoHomologacao === 'producao' ? particularitiesObject['webserviceUrl'] = 'https://nfe.sjp.pr.gov.br/servicos/issOnline2/ws/index.php?wsdl' : particularitiesObject['webserviceUrl'] = 'https://nfe.sjp.pr.gov.br/servicos/issOnline2/homologacao/ws/index.php?wsdl';
particularitiesObject['nfseKeyword'] = 'saojosedospinhais';
if (object.config.acao === 'enviarLoteRps') {
particularitiesObject['tags'] = {...abrasf100Model.abrasf100};
// addPrefixesAsync(['EnviarLoteRpsEnvio', 'LoteRps'], 'ns3:', particularitiesObject);
// doNotAddPrefixesAsync(['EnviarLoteRpsEnvio', 'LoteRps'], 'ns4:', particularitiesObject);
particularitiesObject['tags']['enviarLoteRpsEnvioAlterada'] = `${particularitiesObject['tags']['enviarLoteRpsEnvio']} xmlns="http://nfe.sjp.pr.gov.br/servico_enviar_lote_rps_envio_v03.xsd"`;
particularitiesObject['tags']['loteRpsAlterada'] = `${particularitiesObject['tags']['loteRps']} Id="_uniqueValue"`;
particularitiesObject['tags']['numeroLoteAlterada'] = `${particularitiesObject['tags']['numeroLote']} xmlns="http://nfe.sjp.pr.gov.br/tipos_v03.xsd"`;
particularitiesObject['tags']['cnpjAlterada'] = `${particularitiesObject['tags']['cnpj']} xmlns="http://nfe.sjp.pr.gov.br/tipos_v03.xsd"`;
particularitiesObject['tags']['inscricaoMunicipalAlterada'] = `${particularitiesObject['tags']['inscricaoMunicipal']} xmlns="http://nfe.sjp.pr.gov.br/tipos_v03.xsd"`;
particularitiesObject['tags']['quantidadeRpsAlterada'] = `${particularitiesObject['tags']['quantidadeRps']} xmlns="http://nfe.sjp.pr.gov.br/tipos_v03.xsd"`;
particularitiesObject['tags']['listaRpsAlterada'] = `${particularitiesObject['tags']['listaRps']} xmlns="http://nfe.sjp.pr.gov.br/tipos_v03.xsd"`;
particularitiesObject['tags']['infRpsAlterada'] = `${particularitiesObject['tags']['infRps']} Id="_uniqueValue"`;
particularitiesObject['envelopment'] = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://nfe.sjp.pr.gov.br"><soapenv:Header /><soapenv:Body><ns1:RecepcionarLoteRpsV3><arg0><![CDATA[<ns2:cabecalho xmlns:ns2="http://nfe.sjp.pr.gov.br/cabecalho_v03.xsd" versao="3"><versaoDados>3</versaoDados></ns2:cabecalho>]]></arg0><arg1><![CDATA[__xml__]]></arg1></ns1:RecepcionarLoteRpsV3></soapenv:Body></soapenv:Envelope>';
particularitiesObject['isSigned']['isDifferentSignature'] = true;
}
if (object.config.acao === 'consultarLoteRps') {
particularitiesObject['tags'] = {...abrasf100Model.abrasf100};
addPrefixesAsync(['ConsultarLoteRpsEnvio', 'Prestador', 'Protocolo'], 'ns3:', particularitiesObject);
doNotAddPrefixesAsync(['ConsultarLoteRpsEnvio', 'Prestador', 'Protocolo'], 'ns4:', particularitiesObject);
particularitiesObject['tags']['consultarLoteRpsEnvioAlterada'] = `${particularitiesObject['tags']['consultarLoteRpsEnvio']} xmlns:ns3="http://www.ginfes.com.br/servico_consultar_lote_rps_envio_v03.xsd" xmlns:ns4="http://www.ginfes.com.br/tipos_v03.xsd"`;
particularitiesObject['envelopment'] = '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns1:ConsultarLoteRpsV3 xmlns:ns1="' + particularitiesObject['urlXmlns'] + '"><arg0><ns2:cabecalho versao="3" xmlns:ns2="http://www.ginfes.com.br/cabecalho_v03.xsd"><versaoDados>3</versaoDados></ns2:cabecalho></arg0><arg1>__xml__</arg1></ns1:ConsultarLoteRpsV3></soap:Body></soap:Envelope>';
particularitiesObject['isSigned']['consultarLoteRps'] = true;
}
if (object.config.acao === 'cancelarNfse') {
particularitiesObject['tags'] = {...abrasf201Model.abrasf201};
addPrefixesAsync(['CancelarNfseEnvio', 'Prestador', 'NumeroNfse'], 'ns3:', particularitiesObject);
doNotAddPrefixesAsync(['CancelarNfseEnvio', 'Prestador', 'NumeroNfse'], 'ns4:', particularitiesObject);
particularitiesObject['tags']['cancelarNfseEnvioAlterada'] = `${particularitiesObject['tags']['cancelarNfseEnvio']} xmlns:ns3="http://www.ginfes.com.br/servico_cancelar_nfse_envio" xmlns:ns4="http://www.ginfes.com.br/tipos"`;
particularitiesObject['envelopment'] = `<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header/><soap:Body><ns1:CancelarNfse xmlns:ns1="${particularitiesObject['urlXmlns']}"><arg0>__xml__</arg0></ns1:CancelarNfse></soap:Body></soap:Envelope>`;
particularitiesObject['isSigned']['cancelarNfse'] = true;
}
particularitiesObject['xsds'] = {
enviarLoteRps: '/../../../resources/xsd/sao-jose-dos-pinhais/servico_enviar_lote_rps_envio_v03.xsd',
consultarLoteRps: '/../../../resources/xsd/sao-jose-dos-pinhais/servico_consultar_lote_rps_envio_v03.xsd'
}
} catch (error) {
console.error(error);
}
break;
case 'riodejaneiro': // TO-DO: consultarNfsePorRps is returning an empty string, no error
try {
object.config.producaoHomologacao === 'producao' ? particularitiesObject['webserviceUrl'] = 'https://notacarioca.rio.gov.br/WSNacional/nfse.asmx?wsdl' : particularitiesObject['webserviceUrl'] = 'https://homologacao.notacarioca.rio.gov.br/WSNacional/nfse.asmx?wsdl';
particularitiesObject['nfseKeyword'] = 'riodejaneiro';
if (object.config.acao === 'enviarLoteRps') {
particularitiesObject['tags'] = {...abrasf100Model.abrasf100};
particularitiesObject['tags']['enviarLoteRpsEnvioAlterada'] = `${particularitiesObject['tags']['enviarLoteRpsEnvio']} xmlns="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd"`;
particularitiesObject['tags']['loteRpsAlterada'] = `${particularitiesObject['tags']['loteRps']} Id="_uniqueValue"`;
particularitiesObject['tags']['infRpsAlterada'] = `${particularitiesObject['tags']['infRps']} xmlns="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd" Id="_uniqueValue"`;
particularitiesObject['envelopment'] = '<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:not=\"http://notacarioca.rio.gov.br/\"><soapenv:Header/><soapenv:Body><not:RecepcionarLoteRpsRequest><not:inputXML><![CDATA[__xml__]]></not:inputXML></not:RecepcionarLoteRpsRequest></soapenv:Body></soapenv:Envelope>';
}
if (object.config.acao === 'consultarLoteRps') {
particularitiesObject['tags'] = {...abrasf100Model.abrasf100};
particularitiesObject['tags']['consultarLoteRpsEnvioAlterada'] = `${particularitiesObject['tags']['consultarLoteRpsEnvio']} xmlns="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd"`;
particularitiesObject['envelopment'] = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:not="http://notacarioca.rio.gov.br/"><soapenv:Header/><soapenv:Body><not:ConsultarLoteRpsRequest><not:inputXML><![CDATA[__xml__]]></not:inputXML></not:ConsultarLoteRpsRequest></soapenv:Body></soapenv:Envelope>';
}
if (object.config.acao === 'consultarNfsePorRps') {
particularitiesObject['tags'] = {...abrasf100Model.abrasf100};
particularitiesObject['tags']['consultarNfseRpsEnvioAlterada'] = `${particularitiesObject['tags']['consultarNfseRpsEnvio']} xmlns="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd"`;
particularitiesObject['envelopment'] = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:not="http://notacarioca.rio.gov.br/"><soapenv:Header/><soapenv:Body><not:ConsultarNfsePorRpsRequest><not:inputXML>__xml__</not:inputXML></not:ConsultarNfsePorRpsRequest></soapenv:Body></soapenv:Envelope>';
}
if (object.config.acao === 'cancelarNfse') {
particularitiesObject['tags'] = {...abrasf100Model.abrasf100};
particularitiesObject['tags']['cancelarNfseEnvioAlterada'] = `${particularitiesObject['tags']['cancelarNfseEnvio']} xmlns="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd"`;
particularitiesObject['tags']['pedidoAlterada'] = `${particularitiesObject['tags']['pedido']} xmlns="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd"`;
particularitiesObject['tags']['infPedidoCancelamentoAlterada'] = `${particularitiesObject['tags']['infPedidoCancelamento']} Id="_uniqueValue"`;
particularitiesObject['envelopment'] = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:not="http://notacarioca.rio.gov.br/"><soapenv:Header/><soapenv:Body><not:CancelarNfseRequest><not:inputXML><![CDATA[__xml__]]></not:inputXML></not:CancelarNfseRequest></soapenv:Body></soapenv:Envelope>';
}
particularitiesObject['xsds'] = {
enviarLoteRps: '/../../../resources/xsd/rio-de-janeiro/tipos_nfse_v01.xsd',
consultarLoteRps: '/../../../resources/xsd/rio-de-janeiro/tipos_nfse_v01.xsd'
}
particularitiesObject['soapActions'] = {
enviarLoteRps: 'http://notacarioca.rio.gov.br/RecepcionarLoteRps',
consultarLoteRps: 'http://notacarioca.rio.gov.br/ConsultarLoteRps',
cancelarNfse: 'http://notacarioca.rio.gov.br/CancelarNfse',
consultarNfseRps: 'http://notacarioca.rio.gov.br/ConsultarNfsePorRps'
}
} catch (error) {
console.error(error);
}
break;
case 'portoalegre':
try {
object.config.producaoHomologacao === 'producao' ? particularitiesObject['webserviceUrl'] = 'https://nfe.portoalegre.rs.gov.br/bhiss-ws/nfse?wsdl' : particularitiesObject['webserviceUrl'] = 'https://nfse-hom.procempa.com.br/bhiss-ws/nfse?wsdl';
particularitiesObject['envelopment'] = '<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:not=\"http://ws.bhiss.pbh.gov.br\"><soapenv:Header/><soapenv:Body><not:RecepcionarLoteRpsRequest><nfseCabecMsg><![CDATA[<cabecalho xmlns=\"http://www.abrasf.org.br/nfse.xsd\" versao=\"1.00\"><versaoDados>1.00</versaoDados></cabecalho>]]></nfseCabecMsg><nfseDadosMsg><![CDATA[__xml__]]></nfseDadosMsg></not:RecepcionarLoteRpsRequest></soapenv:Body></soapenv:Envelope>';
particularitiesObject['nfseKeyword'] = 'portoalegre';
if (object.config.acao === 'enviarLoteRps') {
particularitiesObject['tags'] = {...abrasf100Model.abrasf100};
particularitiesObject['tags']['enviarLoteRpsEnvioAlterada'] = `${particularitiesObject['tags']['enviarLoteRpsEnvio']} xmlns="http://www.abrasf.org.br/nfse.xsd"`;
particularitiesObject['tags']['loteRpsAlterada'] = `${particularitiesObject['tags']['loteRps']} Id="_uniqueValue" versao="1.00"`;
particularitiesObject['tags']['infRpsAlterada'] = `${particularitiesObject['tags']['infRps']} xmlns="http://www.abrasf.org.br/nfse.xsd" Id="_uniqueValue"`;
particularitiesObject['envelopment'] = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:not="http://ws.bhiss.pbh.gov.br"><soapenv:Header/><soapenv:Body><not:RecepcionarLoteRpsRequest><nfseCabecMsg><![CDATA[<cabecalho xmlns="http://www.abrasf.org.br/nfse.xsd" versao="1.00"><versaoDados>1.00</versaoDados></cabecalho>]]></nfseCabecMsg><nfseDadosMsg><![CDATA[__xml__]]></nfseDadosMsg></not:RecepcionarLoteRpsRequest></soapenv:Body></soapenv:Envelope>';
particularitiesObject['isSigned']['infRps'] = true;
}
if (object.config.acao === 'gerarNfse') {
particularitiesObject['tags'] = {...abrasf100Model.abrasf100};
particularitiesObject['tags']['gerarNfseEnvioAlterada'] = `${particularitiesObject['tags']['gerarNfseEnvio']} xmlns="http://www.abrasf.org.br/nfse.xsd"`;
particularitiesObject['tags']['loteRpsAlterada'] = `${particularitiesObject['tags']['loteRps']} Id="_uniqueValue" versao="1.00"`;
particularitiesObject['tags']['infRpsAlterada'] = `${particularitiesObject['tags']['infRps']} xmlns="http://www.abrasf.org.br/nfse.xsd" Id="_uniqueValue"`;
particularitiesObject['envelopment'] = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:not="http://ws.bhiss.pbh.gov.br"><soapenv:Header/><soapenv:Body><not:GerarNfseRequest><nfseCabecMsg><![CDATA[<cabecalho xmlns="http://www.abrasf.org.br/nfse.xsd" versao="1.00"><versaoDados>1.00</versaoDados></cabecalho>]]></nfseCabecMsg><nfseDadosMsg><![CDATA[__xml__]]></nfseDadosMsg></not:GerarNfseRequest></soapenv:Body></soapenv:Envelope>';
particularitiesObject['isSigned']['infRps'] = true;
}
if (object.config.acao === 'consultarLoteRps') {
particularitiesObject['tags'] = {...abrasf100Model.abrasf100};
particularitiesObject['tags']['consultarLoteRpsEnvioAlterada'] = `${particularitiesObject['tags']['consultarLoteRpsEnvio']} xmlns="http://www.abrasf.org.br/nfse.xsd"`;
particularitiesObject['envelopment'] = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:not="http://ws.bhiss.pbh.gov.br"><soapenv:Header/><soapenv:Body><not:ConsultarLoteRpsRequest><nfseCabecMsg><![CDATA[<cabecalho xmlns="http://www.abrasf.org.br/nfse.xsd" versao="1.00"><versaoDados>1.00</versaoDados></cabecalho>]]></nfseCabecMsg><nfseDadosMsg><![CDATA[__xml__]]></nfseDadosMsg></not:ConsultarLoteRpsRequest></soapenv:Body></soapenv:Envelope>';
}
if (object.config.acao === 'consultarNfsePorRps') {
particularitiesObject['tags'] = {...abrasf100Model.abrasf100};
particularitiesObject['tags']['consultarNfseRpsEnvioAlterada'] = `${particularitiesObject['tags']['consultarNfseRpsEnvio']} xmlns="http://www.abrasf.org.br/nfse.xsd"`;
particularitiesObject['envelopment'] = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.bhiss.pbh.gov.br"><soapenv:Header/><soapenv:Body><ws:ConsultarNfsePorRpsRequest><nfseCabecMsg><![CDATA[<cabecalho xmlns="http://www.abrasf.org.br/nfse.xsd" versao="1.00"><versaoDados>1.00</versaoDados></cabecalho>]]></nfseCabecMsg><nfseDadosMsg><![CDATA[__xml__]]></nfseDadosMsg></ws:ConsultarNfsePorRpsRequest></soapenv:Body></soapenv:Envelope>';
}
if (object.config.acao === 'cancelarNfse') {
particularitiesObject['tags'] = {...abrasf100Model.abrasf100};
particularitiesObject['tags']['cancelarNfseEnvioAlterada'] = `${particularitiesObject['tags']['cancelarNfseEnvio']} xmlns="http://www.abrasf.org.br/nfse.xsd"`;
particularitiesObject['tags']['pedidoAlterada'] = `${particularitiesObject['tags']['pedido']} xmlns="http://www.abrasf.org.br/nfse.xsd"`;
particularitiesObject['tags']['infPedidoCancelamentoAlterada'] = `${particularitiesObject['tags']['infPedidoCancelamento']} Id="Cancela__uniqueValue"`;
particularitiesObject['envelopment'] = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:not="http://ws.bhiss.pbh.gov.br"><soapenv:Header/><soapenv:Body><not:CancelarNfseRequest><nfseCabecMsg><![CDATA[<cabecalho xmlns="http://www.abrasf.org.br/nfse.xsd" versao="1.00"><versaoDados>1.00</versaoDados></cabecalho>]]></nfseCabecMsg><nfseDadosMsg><![CDATA[__xml__]]></nfseDadosMsg></not:CancelarNfseRequest></soapenv:Body></soapenv:Envelope>';
particularitiesObject['isSigned']['cancelarNfse'] = true;
particularitiesObject['isSigned']['isEmptyUri'] = true;
}
particularitiesObject['xsds'] = {
enviarLoteRps: '/../../../resources/xsd/porto-alegre/nfse_v20_08_2015.xsd',
consultarLoteRps: '/../../../resources/xsd/porto-alegre/nfse_v20_08_2015.xsd'
}
particularitiesObject['soapActions'] = {
enviarLoteRps: 'http://ws.bhiss.pbh.gov.br/RecepcionarLoteRps',
consultarLoteRps: 'http://ws.bhiss.pbh.gov.br/ConsultarLoteRps',
cancelarNfse: 'http://ws.bhiss.pbh.gov.br/CancelarNfse'
}
} catch (error) {
console.error(error);
}
break;
case 'catalao':
try {
object.config.producaoHomologacao === 'producao' ? particularitiesObject['webserviceUrl'] = 'http://187.111.62.130/prodataws/services/NfseWSService?wsdl' : particularitiesObject['webserviceUrl'] = 'http://187.111.62.130:8585/prodataws/services/NfseWSService?wsdl';
particularitiesObject['nfseKeyword'] = 'catalao';
if (object.config.acao === 'enviarLoteRps') {
particularitiesObject['tags'] = {...abrasf201Model.abrasf201};
particularitiesObject['tags']['enviarLoteRpsEnvioAlterada'] = `${particularitiesObject['tags']['enviarLoteRpsEnvio']} xmlns="http://www.abrasf.org.br/nfse.xsd"`;
particularitiesObject['tags']['loteRpsAlterada'] = `${particularitiesObject['tags']['loteRps']} Id="_uniqueValue" versao="2.01"`;
particularitiesObject['tags']['infDeclaracaoPrestacaoServicoAlterada'] = `${particularitiesObject['tags']['infDeclaracaoPrestacaoServico']} xmlns="http://www.abrasf.org.br/nfse.xsd" Id="_uniqueValue"`;
particularitiesObject['envelopment'] = '<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ser=\"http://services.nfse\"><soapenv:Header/><soapenv:Body><ser:RecepcionarLoteRpsRequest><nfseCabecMsg></nfseCabecMsg><nfseDadosMsg><![CDATA[<?xml version="1.0" encoding="utf-8"?>__xml__]]></nfseDadosMsg></ser:RecepcionarLoteRpsRequest></soapenv:Body></soapenv:Envelope>';
// console.log(particularitiesObject['tags'], 224) ;
}
if (object.config.acao === 'consultarLoteRps') {
particularitiesObject['tags'] = {...abrasf201Model.abrasf201};
particularitiesObject['tags']['consultarLoteRpsEnvioAlterada'] = `${particularitiesObject['tags']['consultarLoteRpsEnvio']} xmlns="http://www.abrasf.org.br/nfse.xsd"`;
particularitiesObject['envelopment'] = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.nfse"><soapenv:Header/><soapenv:Body><ser:ConsultarLoteRpsRequest><nfseCabecMsg><![CDATA[<cabecalho xmlns=\"http://www.abrasf.org.br/nfse.xsd\" versao=\"2.01\"><versaoDados>1.00</versaoDados></cabecalho>]]></nfseCabecMsg><nfseDadosMsg><![CDATA[__xml__]]></nfseDadosMsg></ser:ConsultarLoteRpsRequest></soapenv:Body></soapenv:Envelope>';
}
if (object.config.acao === 'consultarNfsePorRps') {
particularitiesObject['tags'] = {...abrasf201Model.abrasf201};
particularitiesObject['tags']['consultarNfseRpsEnvioAlterada'] = `${particularitiesObject['tags']['consultarNfseRpsEnvio']} xmlns="http://www.abrasf.org.br/nfse.xsd"`;
particularitiesObject['envelopment'] = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.nfse"><soapenv:Header/><soapenv:Body><ser:ConsultarNfsePorRpsRequest><nfseCabecMsg><![CDATA[<cabecalho xmlns=\"http://www.abrasf.org.br/nfse.xsd\" versao=\"2.01\"><versaoDados>1.00</versaoDados></cabecalho>]]></nfseCabecMsg><nfseDadosMsg><![CDATA[__xml__]]></nfseDadosMsg></ser:ConsultarNfsePorRpsRequest></soapenv:Body></soapenv:Envelope>';
}
if (object.config.acao === 'cancelarNfse') {
particularitiesObject['tags'] = {...abrasf201Model.abrasf201};
particularitiesObject['tags']['cancelarNfseEnvioAlterada'] = `${particularitiesObject['tags']['cancelarNfseEnvio']} xmlns="http://www.abrasf.org.br/nfse.xsd"`;
particularitiesObject['tags']['pedidoAlterada'] = `${particularitiesObject['tags']['pedido']} xmlns="http://www.abrasf.org.br/nfse.xsd"`;
particularitiesObject['tags']['infPedidoCancelamentoAlterada'] = `${particularitiesObject['tags']['infPedidoCancelamento']}`;
particularitiesObject['envelopment'] = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.nfse"><soapenv:Header/><soapenv:Body><ser:CancelarNfseRequest><nfseCabecMsg><![CDATA[<cabecalho xmlns=\"http://www.abrasf.org.br/nfse.xsd\" versao=\"2.01\"><versaoDados>1.00</versaoDados></cabecalho>]]></nfseCabecMsg><nfseDadosMsg><![CDATA[__xml__]]></nfseDadosMsg></ser:CancelarNfseRequest></soapenv:Body></soapenv:Envelope>';
}
particularitiesObject['xsds'] = {
enviarLoteRps: '/../../../resources/xsd/catalao/nfse_v2_01.xsd',
consultarLoteRps: '/../../../resources/xsd/catalao/nfse_v2_01.xsd',
cancelarLoteRps: '/../../../resources/xsd/catalao/nfse_v2_01.xsd'
}
} catch (error) {
console.error(error);
}
break;
case 'saopaulo':
try {
object.config.producaoHomologacao === 'producao' ? particularitiesObject['webserviceUrl'] = 'http://200.23.238.210/prodataws/services/NfseWSService?wsdl' : particularitiesObject['webserviceUrl'] = 'http://200.23.238.210:8585/prodataws/services/NfseWSService?wsdl';
particularitiesObject['nfseKeyword'] = 'saopaulo';
if (object.config.acao === 'enviarLoteRps') {
particularitiesObject['tags'] = {...saopaulo100Model.saopaulo100};
particularitiesObject['tags']['enviarLoteRpsEnvioAlterada'] = `${particularitiesObject['tags']['enviarLoteRpsEnvio']} xmlns="http://www.abrasf.org.br/nfse.xsd"`;
particularitiesObject['tags']['loteRpsAlterada'] = `${particularitiesObject['tags']['loteRps']} Id="_uniqueValue" versao="2.01"`;
particularitiesObject['tags']['infDeclaracaoPrestacaoServicoAlterada'] = `${particularitiesObject['tags']['infDeclaracaoPrestacaoServico']} xmlns="http://www.abrasf.org.br/nfse.xsd" Id="_uniqueValue"`;
particularitiesObject['envelopment'] = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:nfe="http://www.prefeitura.sp.gov.br/nfe"><soapenv:Header/><soapenv:Body><nfe:EnvioLoteRPSRequest><nfe:VersaoSchema>1.00</nfe:VersaoSchema><nfe:MensagemXML>__xml__</nfe:MensagemXML></nfe:EnvioLoteRPSRequest></soapenv:Body></soapenv:Envelope>';
}
if (object.config.acao === 'consultarLoteRps') {
particularitiesObject['tags'] = {...saopaulo100Model.saopaulo100};
particularitiesObject['tags']['consultarLoteRpsEnvioAlterada'] = `${particularitiesObject['tags']['consultarLoteRpsEnvio']} xmlns="http://www.abrasf.org.br/nfse.xsd"`;
particularitiesObject['envelopment'] = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.nfse"><soapenv:Header/><soapenv:Body><ser:ConsultarLoteRpsRequest><nfseCabecMsg><![CDATA[<cabecalho xmlns=\"http://www.abrasf.org.br/nfse.xsd\" versao=\"2.01\"><versaoDados>1.00</versaoDados></cabecalho>]]></nfseCabecMsg><nfseDadosMsg><![CDATA[__xml__]]></nfseDadosMsg></ser:ConsultarLoteRpsRequest></soapenv:Body></soapenv:Envelope>';
}
if (object.config.acao === 'cancelarNfse') {
particularitiesObject['tags'] = {...saopaulo100Model.saopaulo100};
particularitiesObject['tags']['cancelarNfseEnvioAlterada'] = `${particularitiesObject['tags']['cancelarNfseEnvio']} xmlns="http://www.abrasf.org.br/nfse.xsd"`;
particularitiesObject['tags']['pedidoAlterada'] = `${particularitiesObject['tags']['pedido']} xmlns="http://www.abrasf.org.br/nfse.xsd"`;
particularitiesObject['tags']['infPedidoCancelamentoAlterada'] = `${particularitiesObject['tags']['infPedidoCancelamento']}`;
particularitiesObject['envelopment'] = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.nfse"><soapenv:Header/><soapenv:Body><ser:CancelarNfseRequest><nfseCabecMsg><![CDATA[<cabecalho xmlns=\"http://www.abrasf.org.br/nfse.xsd\" versao=\"2.01\"><versaoDados>1.00</versaoDados></cabecalho>]]></nfseCabecMsg><nfseDadosMsg><![CDATA[__xml__]]></nfseDadosMsg></ser:CancelarNfseRequest></soapenv:Body></soapenv:Envelope>';
}
particularitiesObject['xsds'] = {
enviarLoteRps: '/../../../resources/xsd/sao-paulo/PedidoEnvioLoteRPS_v01.xsd',
consultarLoteRps: '/../../../resources/xsd/sao-paulo/PedidoConsultaLote_v01.xsd',
cancelarLoteRps: '/../../../resources/xsd/sao-paulo/PedidoCancelamentoNFe_v01.xsd'
}
} catch (error) {
console.error(error);
}
break;
default:
console.error('Sem modelo padrão de NFSe definido para este município');
break;
}
return particularitiesObject;
}
const addPrefixes = (tagsArray, prefix, particularitiesObject) => {
for (const key in particularitiesObject['tags']) {
if (particularitiesObject['tags'].hasOwnProperty(key)) {
const tag = particularitiesObject['tags'][key];
tagsArray.forEach(tagToCompare => {
if (tag === tagToCompare) {
particularitiesObject['tags'][key] = prefix + tag;
}
});
}
}
return tagsArray;
}
const doNotAddPrefixes = (tagsArray, prefix, particularitiesObject) => {
for (const key in particularitiesObject['tags']) {
if (particularitiesObject['tags'].hasOwnProperty(key)) {
const tag = particularitiesObject['tags'][key];
let checkTag = '';
let checkTagToCompare = 0;
tagsArray.forEach(tagToCompare => {
(tag.split(':').length > 1) ? checkTag = tag.split(':')[1]: checkTag = tag;
if (checkTag != tagToCompare) {
checkTagToCompare++;
}
});
if (checkTagToCompare === tagsArray.length) {
particularitiesObject['tags'][key] = prefix + tag;
}
}
}
return tagsArray;
}
const addPrefixesAsync = (tagsArray, prefix, particularitiesObject) => {
return addPrefixes(tagsArray, prefix, particularitiesObject);
}
const doNotAddPrefixesAsync = (tagsArray, prefix, particularitiesObject) => {
return doNotAddPrefixes(tagsArray, prefix, particularitiesObject);
}
module.exports = {
setParticularities
}