-
Total de ítens
13 -
Registro em
-
Última visita
Community Answers
-
leonardo.gomes's post in ACBR-8991 ISSFortaleza - Operação com tomador/intermediário estrangeiro - Preenchimento do grupo Exportação. was marked as the answer
Prezados,
Ao enviar um DPS/RPS para a Prefeitura de Fortaleza com tomador/intermediário estrangeiro, é obrigatório o preenchimento do Grupo de Exportação (Grupo de informações sobre transações entre residentes ou domiciliados no Brasil e residentes ou domiciliados no exterior).
Dessa forma, foi necessário realizar os seguintes ajustes:
ACBrNFSeXGravarXml_ABRASFv1.pas
Criação do método GerarComercioExterior.
ISSFortaleza.GravarXml.pas
Sobrescrita do método GerarComercioExterior para o devido preenchimento das informações.
Observação:
O campo tpMoeda, no layout da NFS-e Nacional, segue o padrão BACEN. Já no layout da NFS-e de Fortaleza, o campo segue o padrão ISO. Sendo assim, foi criado o objeto MoedasBACENISO.pas, contendo o DE/PARA para conversão entre os padrões.
Manual ISSFortaleza: https://ibs.sefin.fortaleza.ce.gov.br/ibs/Canal/40/Generico/3695/Ler
ACBrNFSeXGravarXml_ABRASFv1.pas ISSFortaleza.GravarXml.pas MoedasBACENISO.pas
-
leonardo.gomes's post in ACBR-9014 - NFSe Macaé - Provedor Tiplan - Modelo ABRASF - Operação com preenchimento do grupo de IBS/CBS e impostos retidos. was marked as the answer
Prezados,
Ao validar a emissão do DPS para o município de Macaé, no modelo ABRASF, com o preenchimento do grupo IBS/CBS contendo impostos retidos, identificamos a necessidade de informar também os valores das alíquotas correspondentes.
Dessa forma, foi realizada a seguinte alteração no fonte: Objeto: Tiplan.GravarXml.pas Método: TNFSeW_Tiplan203.GerarValores Ajuste: inclusão do preenchimento dos campos AliquotaPis e AliquotaCofins Alteração aplicada:
function TNFSeW_Tiplan203.GerarValores: TACBrXmlNode;
begin
Result := inherited GerarValores;
if (Result <> nil) and not
(NFSe.Servico.Valores.tribFed.CST in [cstVazio, cst00, cst08, cst09]) then
begin
Result.AppendChild(AddNode(tcStr, '#', 'SituacaoTributariaPISCOFINS', 2, 2, 1,
CSTToStr(NFSe.Servico.Valores.tribFed.CST), ''));
Result.AppendChild(AddNode(FormatoAliq, '#15', 'AliquotaPis', 1, 15, 0,
NFSe.Servico.Valores.AliquotaPis, DSC_VALIQ));
Result.AppendChild(AddNode(FormatoAliq, '#15', 'AliquotaCofins', 1, 15, 0,
NFSe.Servico.Valores.AliquotaCofins, DSC_VALIQ));
end;
end;
Segue em anexo o objeto alterado e os XML descaracterizados. Tiplan.GravarXml.pas XML Enviado.xml XML Retornado.xml
-
leonardo.gomes's post in ACBR-8702 ISSSaoPaulo - Adequação do provedor para atender ao novo endpoint Síncrono (nfews). was marked as the answer
Prezados,
Realizei a adequação da classe do provedor de São Paulo para suportar o novo endpoint:
Conforme o manual da Prefeitura de São Paulo: https://nfews.prefeitura.sp.gov.br/lotenfe.asmx?WSDL Esse novo endereço do serviço síncrono atende ambos os layouts (versões 1 e 2), e por isso recomendamos a atualização para esse endpoint.
Solicito, por gentileza, que avaliem a possibilidade de incorporar essa correção ao repositório oficial.
Observação: Não atualizei o arquivo ACBrNFSeXServicos.ini, pois o ERP da software house a que presto serviço possui uma tela de configurações que sobrescreve as informações desse arquivo, permitindo ao usuário definir o método a ser utilizado (Teste, Síncrono, Assíncrono), a versão e a URL a ser acessada.
ISSSaoPaulo.Provider.pas
-
leonardo.gomes's post in ACBR-8701 NFS-e nacional - Operação com benefício municipal was marked as the answer
Prezados,
Para atender à operação de envio de DPS ao ambiente nacional em cenários com benefício fiscal, foi necessário realizar um ajuste pontual no método GerarXMLBeneficioMunicipal do objeto PadraoNacional.GravarXml.pas, de modo que seja enviada apenas a informação do campo nBM (Identificador do benefício parametrizado pelo município).
Com o envio exclusivo desse campo, o próprio ambiente nacional passa a identificar corretamente qual alíquota deve ser aplicada, conforme a parametrização do benefício.
- ALTERAÇÃO
DE:
function TNFSeW_PadraoNacional.GerarXMLBeneficioMunicipal: TACBrXmlNode;
begin
Result := nil;
if NFSe.Servico.Valores.tribMun.nBM <> '' then
begin
Result := CreateElement('BM');
// Result.AppendChild(AddNode(tcStr, '#1', 'tpBM', 1, 1, 1,
// tpBMToStr(NFSe.Servico.Valores.tribMun.tpBM), ''));
Result.AppendChild(AddNode(tcStr, '#1', 'nBM', 14, 14, 1,
NFSe.Servico.Valores.tribMun.nBM, ''));
if NFSe.Servico.Valores.tribMun.vRedBCBM > 0 then
Result.AppendChild(AddNode(tcDe2, '#1', 'vRedBCBM', 1, 15, 1,
NFSe.Servico.Valores.tribMun.vRedBCBM, ''))
else
Result.AppendChild(AddNode(tcDe2, '#1', 'pRedBCBM', 1, 5, 1,
NFSe.Servico.Valores.tribMun.pRedBCBM, ''));
end;
end;
PARA:
function TNFSeW_PadraoNacional.GerarXMLBeneficioMunicipal: TACBrXmlNode;
begin
Result := nil;
if NFSe.Servico.Valores.tribMun.nBM <> '' then
begin
Result := CreateElement('BM');
// Result.AppendChild(AddNode(tcStr, '#1', 'tpBM', 1, 1, 1,
// tpBMToStr(NFSe.Servico.Valores.tribMun.tpBM), ''));
Result.AppendChild(AddNode(tcStr, '#1', 'nBM', 14, 14, 1,
NFSe.Servico.Valores.tribMun.nBM, ''));
if NFSe.Servico.Valores.tribMun.vRedBCBM > 0 then
Result.AppendChild(AddNode(tcDe2, '#1', 'vRedBCBM', 1, 15, 1,
NFSe.Servico.Valores.tribMun.vRedBCBM, ''))
else if NFSe.Servico.Valores.tribMun.pRedBCBM > 0 then
Result.AppendChild(AddNode(tcDe2, '#1', 'pRedBCBM', 1, 5, 1,
NFSe.Servico.Valores.tribMun.pRedBCBM, ''));
end;
end;
PadraoNacional.GravarXml.pas
-
leonardo.gomes's post in [ACBR-8616] ProPublica - Envio de DPS/RPS para Itajaí - Adequação do novo leiaute criado para atender a NFS-e nacional was marked as the answer
Prezados,
Para atender o envio de DPS/RPS para o município de Itajaí no padrão do novo leiaute, foi necessário incluir o tratamento para assinatura do grupo de RPS.
- Alterações realizada:
Objeto: Publica.Provider.pas
Método: TACBrNFSeProviderPublica.Configuracao
Trecho alterado:
with ConfigAssinar do
begin
RPS := True;
LoteRps := True;
ConsultarSituacao := True;
ConsultarLote := True;
ConsultarNFSeRps := True;
ConsultarNFSe := True;
CancelarNFSe := True;
LoteGerarNFSe := True;
end;
Observação: Segue arquivo alterado em anexo, por favor, avaliar a possibilidade de subir no repositório.
Publica.Provider.pas
-
leonardo.gomes's post in Envio de DPS para o ambiente nacional com operação de exportação de serviços. was marked as the answer
Prezados, boa tarde!
Ao realizar o envio de DPS para o ambiente nacional em operações de exportação de serviços (quando o cliente ou o intermediário é localizado no exterior), é obrigatório informar os dados de comércio exterior. Atualmente, o ambiente nacional permite que o grupo seja enviado mesmo com o campo “valor do serviço prestado” zerado.
Entretanto, o método GerarXMLComercioExterior, localizado no arquivo PadraoNacional.GravarXml.pas, possui uma validação que somente preenche o grupo de comércio exterior quando o valor do serviço é maior que zero. Para viabilizar o envio da DPS e atender ao layout, realizei um ajuste no método para que a inclusão do grupo ocorra sempre que o campo tpMoeda for maior que zero, uma vez que esse campo é obrigatório.
Erro retornado pelo emissor nacional:
{"tipoAmbiente":2,"versaoAplicativo":"SefinNac_Pre_1.4.0","dataHoraProcessamento":"2025-12-04T13:01:54.9602862-03:00","idDPS":"DPS330455721190597100010500078000000000000106","erros":[{"Codigo":"E0330","Descricao":"É obrigatório prestar informações de comércio exterior para as situações de exportação de serviços."}]} Condição antiga: NFSe.Servico.comExt.vServMoeda Nova condição: NFSe.Servico.comExt.tpMoeda Encaminho em anexo o objeto ajustado.
Solicito, por gentileza, avaliação quanto à possibilidade de disponibilizar essa alteração no repositório.
PadraoNacional.GravarXml.pas
-
leonardo.gomes's post in ISSSaoPaulo - Correção na assinatura do DPS/RPS para atender emissão da NFS-e no padrão nacional. was marked as the answer
Prezados,
Para viabilizar o envio de RPS/DPS no layout 2.0 da Prefeitura de São Paulo utilizando as fontes atualizadas do ACBRNFSex, foi necessário aplicar uma correção no método AssinaturaAdicional da classe ISSSaoPaulo.Provider.
Encaminho em anexo o objeto atualizado com o ajuste realizado.
Peço, por gentileza, que avaliem a possibilidade de incorporar essa correção ao repositório oficial.
Conforme o manual da Prefeitura de São Paulo:
Correção realizada:
procedure TACBrNFSeProviderISSSaoPaulo.AssinaturaAdicional(Nota: TNotaFiscal);
var
sSituacao, sISSRetido, sCPFCNPJTomador, sIndTomador, sTomador,
sCPFCNPJInter, sIndInter, sISSRetidoInter, sInter, sAssinatura, sNIF: string;
iTamanhoIM: Integer;
begin
with Nota do
begin
sSituacao := EnumeradoToStr(NFSe.SituacaoNfse, ['N', 'C'], [snNormal, snCancelado]);
sISSRetido := EnumeradoToStr(NFSe.Servico.Valores.IssRetido,
['N', 'S'], [stNormal, stRetencao]);
// Tomador do Serviço
sCPFCNPJTomador := OnlyNumber(NFSe.Tomador.IdentificacaoTomador.CpfCnpj);
if sCPFCNPJTomador = '' then
sIndTomador := '3'
else
if Length(sCPFCNPJTomador) <= 11 then
sIndTomador := '1'
else
if Length(sCPFCNPJTomador) <= 14 then
sIndTomador := '2';
sTomador := sIndTomador + Poem_Zeros(sCPFCNPJTomador, 14);
// Prestador Intermediario
sCPFCNPJInter := OnlyNumber(NFSe.Intermediario.Identificacao.CpfCnpj);
if sCPFCNPJInter = '' then
sIndInter := '3'
else
if Length(sCPFCNPJInter) <= 11 then
sIndInter := '1'
else
if Length(sCPFCNPJInter) <= 14 then
sIndInter := '2';
sISSRetidoInter := EnumeradoToStr(NFSe.Intermediario.IssRetido,
['N', 'S'], [stNormal, stRetencao]);
sNIF := trim(NFSe.Intermediario.Identificacao.Nif);
if sIndInter = '3' then
sNIF := NaoNIFToStr(NFSe.Intermediario.Identificacao.cNaoNIF);
if FPVersaoDFe = '2' then
begin
if (sCPFCNPJInter <> '') then
sInter := sIndInter + Poem_Zeros(sCPFCNPJInter, 14) + sISSRetidoInter + sNIF
else
sInter := '';
iTamanhoIM := 12;
end
else
begin
if sIndInter <> '3' then
sInter := sIndInter + Poem_Zeros(sCPFCNPJInter, 14) + sISSRetidoInter
else
sInter := '';
iTamanhoIM := 8;
end;
sAssinatura := Poem_Zeros(NFSe.Prestador.IdentificacaoPrestador.InscricaoMunicipal, iTamanhoIM) +
PadRight(NFSe.IdentificacaoRps.Serie, 5, ' ') +
Poem_Zeros(NFSe.IdentificacaoRps.Numero, 12) +
FormatDateTime('yyyymmdd', NFse.DataEmissao) +
TipoTributacaoRPSToStr(NFSe.TipoTributacaoRPS) +
sSituacao +
sISSRetido +
Poem_Zeros(OnlyNumber(FormatFloat('#0.00', NFSe.Servico.Valores.ValorServicos)), 15) +
Poem_Zeros(OnlyNumber(FormatFloat('#0.00', NFSe.Servico.Valores.ValorDeducoes)), 15) +
Poem_Zeros(OnlyNumber(NFSe.Servico.ItemListaServico), 5) +
sTomador +
sInter;
NFSe.Assinatura := string(TACBrNFSeX(FAOwner).SSL.CalcHash(AnsiString(sAssinatura), dgstSHA1, outBase64, True));
end;
end;
ISSSaoPaulo.Provider.pas
