-
Total de ítens
61 -
Registro em
-
Última visita
Últimos Visitantes
O bloco dos últimos visitantes está desativado e não está sendo visualizado por outros usuários.
AlexandreSoaresSP's Achievements
-
AlexandreSoaresSP changed their profile photo
-
Município: Guaíba/RS Código IBGE: 4309308 Provedor: IPM / Atende.Net Componente: ACBrNFSeX Problema: Ao enviar NFS-e para Guaíba/RS, o provedor retornava inicialmente o erro: "Código 00183 - Econômico sem autorização para emissão de RPS/DPS ou não contém uma autorização liberada para conversão." Após criar/liberar a autorização de RPS no portal Atende.Net, o envio passou a retornar: "Não é possível inserir o registro, pois já existe um registro com estas informações." Verificações: - A autorização de RPS estava liberada para a faixa utilizada. - O RPS não aparecia como convertido no portal. - O município utiliza IPM/Atende.Net. - O caso é semelhante ao ajuste já aplicado para Palhoça/SC, onde foi necessário usar o parâmetro NaoGerarGrupoRps. Configuração atual no ACBrNFSeXServicos.ini: [4309308] Nome=Guaiba UF=RS Provedor=IPM Versao=1.01 Params=GerarTag:codigo_atividade|ServicosPadraoNacional:ObterDANFSE ProRecepcionar=https://guaiba.atende.net/?pg=rest&service=WNERestServiceNFSe HomRecepcionar=https://guaiba.atende.net/?pg=rest&service=WNERestServiceNFSe Alteração testada com sucesso: [4309308] Nome=Guaiba UF=RS Provedor=IPM Versao=1.01 Params=GerarTag:codigo_atividade|NaoGerarGrupoRps:|ServicosPadraoNacional:ObterDANFSE ProRecepcionar=https://guaiba.atende.net/?pg=rest&service=WNERestServiceNFSe HomRecepcionar=https://guaiba.atende.net/?pg=rest&service=WNERestServiceNFSe Solicitação: Favor avaliar a inclusão do parâmetro NaoGerarGrupoRps para o município de Guaíba/RS (4309308) no ACBrNFSeXServicos.ini oficial. Alexandre
-
WebService retornou um XML vazio - Guaibá/RS
AlexandreSoaresSP replied to AlexandreSoaresSP's tópico in ACBrNFSe
IPM.GravarXml.pasObrigado! -
WebService retornou um XML vazio - Guaibá/RS
AlexandreSoaresSP replied to AlexandreSoaresSP's tópico in ACBrNFSe
boa tarde amigos, ao atualizar o acbr o problema do cliente continuou , adicionei a correção acima, recompilei o acbrnfsex.bpl e voltou a funcionar, se possivel atualizar a correção no Trunk seria interessante pois assim não vai dar problema quando atualizar o acbr da próxima vez, e buscar a versão sem a correção, obrigado! Alexandre -
👉 NFSeX CONAM – Geração indevida de Reg40 (LOCPREEXT_*) quando CodigoPais = 0
um tópico no fórum postou AlexandreSoaresSP ACBrNFSe
Olá pessoal, Estou utilizando o ACBr NFSeX com o provedor CONAM (Etransparência) para emissão de NFSe no município de Taboão da Serra/SP e identifiquei um comportamento incorreto na geração do XML, especificamente no Registro 40 (campos adicionais). Problema encontrado O componente está gerando automaticamente os campos: LOCPREEXT_CODPOST LOCPREEXT_CIDADE LOCPREEXT_ESTPROVREG mesmo quando o serviço é prestado no Brasil e sem conteúdo preenchido. Isso resulta no seguinte erro do webservice: "Reg40 - Sigla (LOCPREEXT_CODPOST) é necessário informar o conteúdo. A quantidade de Reg40 no Registro 90 não corresponde à quantidade válida." Análise O problema ocorre porque o código atual gera esses campos apenas com base em: if CodigoPais <> 1058 then Porém, em muitos casos o CodigoPais vem como 0, fazendo com que o sistema interprete erroneamente como exterior e gere os campos LOCPREEXT, mesmo sem dados válidos. Além disso, o campo LOCPREEXT_CODPOST estava sendo preenchido incorretamente com UF ao invés de CEP. Correção aplicada Foi necessário ajustar a geração do Reg40 para: validar também CodigoPais <> 0 só gerar os campos quando houver conteúdo corrigir o uso do CEP no CODPOST Exemplo: if (CodigoPais <> 0) and (CodigoPais <> 1058) then E validar conteúdo antes de gerar cada campo. Sugestão de melhoria Seria interessante que o ACBr: não gerasse automaticamente campos LOCPREEXT quando vazios validasse corretamente CodigoPais = 0 como Brasil ou ignorasse garantisse consistência entre Reg40 e Reg90 ✔ Resultado Após o ajuste, o XML passou a ser aceito normalmente pelo webservice. Obrigado pelo excelente trabalho com o ACBr. Segue código alterado: function TNFSeW_Conam.GerarReg40: TACBrXmlNode; var xmlNode: TACBrXmlNode; aValor: string; begin Result := CreateElement('Reg40'); if NFSe.Servico.Valores.DescontoIncondicionado > 0 then begin aValor := FormatFloat('0.00', NFSe.Servico.Valores.DescontoIncondicionado); xmlNode := GerarReg40Item('DESCINCOND', aValor); Result.AppendChild(xmlNode); Inc(FQtdReg40); end; if Trim(NFSe.Servico.InfAdicional) <> '' then begin aValor := NFSe.Servico.InfAdicional; xmlNode := GerarReg40Item('DADOSADICIONAIS', aValor); Result.AppendChild(xmlNode); Inc(FQtdReg40); end; if Trim(NFSe.Servico.CodigoCnae) <> '' then begin aValor := NFSe.Servico.CodigoCnae; xmlNode := GerarReg40Item('SRV_CNAE', aValor); Result.AppendChild(xmlNode); Inc(FQtdReg40); end; if Trim(NFSe.Servico.CodigoAnexoCnae) <> '' then begin aValor := NFSe.Servico.CodigoAnexoCnae; xmlNode := GerarReg40Item('SRV_ANEXOSN', aValor); Result.AppendChild(xmlNode); Inc(FQtdReg40); end; if Trim(NFSe.Servico.CodigoServicoNacional) <> '' then begin aValor := NFSe.Servico.CodigoServicoNacional; xmlNode := GerarReg40Item('SRV_CTN', aValor); Result.AppendChild(xmlNode); Inc(FQtdReg40); end; if Trim(NFSe.Servico.CodigoNBS) <> '' then begin aValor := NFSe.Servico.CodigoNBS; xmlNode := GerarReg40Item('SRV_NBS', aValor); Result.AppendChild(xmlNode); Inc(FQtdReg40); end; if NFSe.IBSCBS.tpEnteGov <> tcgNenhum then begin aValor := tpEnteGovToStr(NFSe.IBSCBS.tpEnteGov); if Trim(aValor) <> '' then begin xmlNode := GerarReg40Item('TOM_TPENTGOV', aValor); Result.AppendChild(xmlNode); Inc(FQtdReg40); end; end; if (NFSe.Tomador.Endereco.CodigoPais <> 0) and (NFSe.Tomador.Endereco.CodigoPais <> 1058) then begin aValor := CodIBGEPaisToSiglaISO2(NFSe.Tomador.Endereco.CodigoPais); if Trim(aValor) <> '' then begin xmlNode := GerarReg40Item('TOMEXT_PAIS', aValor); Result.AppendChild(xmlNode); Inc(FQtdReg40); end; aValor := OnlyNumber(NFSe.Tomador.Endereco.CEP); if Trim(aValor) <> '' then begin xmlNode := GerarReg40Item('TOMEXT_CODPOST', aValor); Result.AppendChild(xmlNode); Inc(FQtdReg40); end; aValor := Trim(NFSe.Tomador.Endereco.xMunicipio); if aValor <> '' then begin xmlNode := GerarReg40Item('TOMEXT_CIDADE', aValor); Result.AppendChild(xmlNode); Inc(FQtdReg40); end; aValor := Trim(NFSe.Tomador.Endereco.UF); if aValor <> '' then begin xmlNode := GerarReg40Item('TOMEXT_ESTPROVREG', aValor); Result.AppendChild(xmlNode); Inc(FQtdReg40); end; end; if (NFSe.Servico.Endereco.CodigoPais <> 0) and (NFSe.Servico.Endereco.CodigoPais <> 1058) then begin aValor := OnlyNumber(NFSe.Servico.Endereco.CEP); if Trim(aValor) <> '' then begin xmlNode := GerarReg40Item('LOCPREEXT_CODPOST', aValor); Result.AppendChild(xmlNode); Inc(FQtdReg40); end; aValor := Trim(NFSe.Servico.Endereco.xMunicipio); if aValor <> '' then begin xmlNode := GerarReg40Item('LOCPREEXT_CIDADE', aValor); Result.AppendChild(xmlNode); Inc(FQtdReg40); end; aValor := Trim(NFSe.Servico.Endereco.UF); if aValor <> '' then begin xmlNode := GerarReg40Item('LOCPREEXT_ESTPROVREG', aValor); Result.AppendChild(xmlNode); Inc(FQtdReg40); end; end; end; att, Alexandre -
Não imprime Informações complementares no DANFSE
AlexandreSoaresSP replied to AlexandreSoaresSP's tópico in ACBrNFSe
Boa tarde, Fiz a correção na procedure procedure TfrlXDANFSeRLPadraoNacional.rlbBanda13_InformacoesComplementaresBeforePrint( Sender: TObject; var PrintIt: Boolean); begin inherited; rlmDadosAdicionais.Lines.BeginUpdate; try rlmDadosAdicionais.Lines.Clear; if fpNFSe.Servico.CodigoNBS <> '' then rlmDadosAdicionais.Lines.Append(ACBrStr('NBS: ') + fpNFSe.Servico.CodigoNBS); if fpDANFSe.OutrasInformacaoesImp <> '' then rlmDadosAdicionais.Lines.Add(StringReplace(fpDANFSe.OutrasInformacaoesImp, FQuebradeLinha, #13#10, [rfReplaceAll])); if fpNFSe.OutrasInformacoes <> '' then rlmDadosAdicionais.Lines.Add(StringReplace(fpNFSe.OutrasInformacoes, FQuebradeLinha, #13#10, [rfReplaceAll])); if fpNFSe.InformacoesComplementares <> '' then rlmDadosAdicionais.Lines.Add(StringReplace(fpNFSe.InformacoesComplementares, FQuebradeLinha, #13#10, [rfReplaceAll])); finally rlmDadosAdicionais.Lines.EndUpdate; end; rllMsgTeste.Visible := (fpDANFSe.Producao = snNao); rllMsgTeste.Enabled := (fpDANFSe.Producao = snNao); if fpDANFSe.Cancelada or (fpNFSe.NfseCancelamento.DataHora <> 0) or (fpNFSe.SituacaoNfse = snCancelado) or (fpNFSe.StatusRps = srCancelado) then begin rllMsgTeste.Caption := 'NFS-e CANCELADA'; rllMsgTeste.Visible := True; rllMsgTeste.Enabled := True; end; rllMsgTeste.Repaint; end; Por favor se possivel avaliar e atualizarem, se já não foi corrigido por favor avaliarem outras correções dos tópicos: https://www.projetoacbr.com.br/forum/topic/91131-webservice-retornou-um-xml-vazio-guaibárs/ https://www.projetoacbr.com.br/forum/topic/91271-não-imprime-número-da-nota-e-não-traz-o-código-de-verificação-nfse-ginfes/ muito Obrigado, Alexandre -
Não imprime número da nota e não traz o código de verificação - Nfse - Ginfes
um tópico no fórum postou AlexandreSoaresSP ACBrNFSe
Boa tarde, estou com um problema na hora de imprimir usando provedor GINFES, não sai o número da nota e também não traz o código de verificação quanto autoriza a nota, só o protocolo. Segue anexos para verificação: 3526035896594800016156000000000001566-rps.xml OBrigado, Alexandre -
WebService retornou um XML vazio - Guaibá/RS
AlexandreSoaresSP replied to AlexandreSoaresSP's tópico in ACBrNFSe
Boa tarde, o problema do WebService resolveu, consegui enviar mas tive que fazer duas alterações, peço aos administradores para por favor verificar e atualizar no trunk Tive que alterar o arquivo ACBrNFSeXServicos.ini [4309308] Nome=Guaiba UF=RS Provedor=IPM Versao=1.01 Params=GerarTag:codigo_atividade|ServicosPadraoNacional:ObterDANFSE ProRecepcionar=https://guaiba.atende.net/?pg=rest&service=WNERestServiceNFSe HomRecepcionar=https://guaiba.atende.net/?pg=rest&service=WNERestServiceNFSe Pois é obrigatório a tag codigo_atividade, adicionei GerarTag:codigo_atividade| e Identificamos um comportamento inconsistente na geração do XML de NFSe para o provedor IPM (versão 1.01), especificamente no método TNFSeW_IPM.GerarLista da unit IPM.GravarXml. Atualmente, o ACBr está gerando automaticamente a tag <unidade_codigo>, mesmo quando os campos relacionados à unidade de serviço não estão efetivamente informados (quantidade e valor unitário). Isso resulta em XMLs incompletos do ponto de vista do provedor, causando rejeição com a seguinte mensagem: Código 00166: "Para utilizar Unidade de Serviço nos ítens dos serviços é necessário informar os campos unidade_codigo, unidade_quantidade e unidade_valor_unitario." Conforme validado: O provedor IPM não exige o uso de unidade de serviço; Porém, quando a tag <unidade_codigo> é enviada, torna-se obrigatório informar também: <unidade_quantidade> <unidade_valor_unitario> O problema ocorre porque o ACBr inclui <unidade_codigo> mesmo quando Quantidade e ValorUnitario estão zerados ou não informados, gerando um XML inconsistente com as regras do provedor. Corriji da seguinte forma que esta em IPM.GravarXml; : function TNFSeW_IPM.GerarLista: TACBrXmlNodeArray; var i: Integer; xDescr: string; xUnidade: string; lGerarUnidade: Boolean; begin Result := nil; SetLength(Result, NFSe.Servico.ItemServico.Count); for i := 0 to NFSe.Servico.ItemServico.Count - 1 do begin Result[i] := CreateElement('lista'); Result[i].AppendChild(AddNode(tcStr, '#', 'tributa_municipio_prestador', 1, 1, 1, FpAOwner.SimNaoToStr(NFSe.Servico.ItemServico[i].TribMunPrestador), '')); Result[i].AppendChild(AddNode(tcStr, '#', 'codigo_local_prestacao_servico', 1, 9, 1, CodIBGEToCodTOM(StrToIntDef(NFSe.Servico.ItemServico[i].CodMunPrestacao, 0)), '')); xUnidade := Trim(UnidadeToStr(NFSe.Servico.ItemServico[i].TipoUnidade)); lGerarUnidade := (xUnidade <> '') and (NFSe.Servico.ItemServico[i].Quantidade > 0) and (NFSe.Servico.ItemServico[i].ValorUnitario > 0); if lGerarUnidade then begin Result[i].AppendChild(AddNode(tcStr, '#', 'unidade_codigo', 1, 9, 0, xUnidade, '')); Result[i].AppendChild(AddNode(tcDe10, '#', 'unidade_quantidade', 1, 15, 0, NFSe.Servico.ItemServico[i].Quantidade, '')); Result[i].AppendChild(AddNode(tcDe10, '#', 'unidade_valor_unitario', 1, 15, 0, NFSe.Servico.ItemServico[i].ValorUnitario, '')); end; Result[i].AppendChild(AddNode(tcStr, '#', 'codigo_item_lista_servico', 1, 9, 1, OnlyNumber(NFSe.Servico.ItemServico[i].ItemListaServico), '')); Result[i].AppendChild(AddNode(tcStr, '#', 'codigo_nbs', 1, 9, 0, OnlyNumber(NFSe.Servico.CodigoNBS), '')); Result[i].AppendChild(AddNode(tcStr, '#', 'codigo_atividade', 1, 9, FpNrOcorrCodigoAtividade, OnlyNumber(NFSe.Servico.ItemServico[i].CodigoCnae), '')); if NFSe.Servico.ItemServico[i].Descricao = '' then xDescr := NFSe.Servico.Discriminacao else xDescr := NFSe.Servico.ItemServico[i].Descricao; xDescr := StringReplace(xDescr, Opcoes.QuebraLinha, FpAOwner.ConfigGeral.QuebradeLinha, [rfReplaceAll]); Result[i].AppendChild(AddNode(tcStr, '#', 'descritivo', 1, 1000, 1, xDescr, '')); if NFSe.Servico.ItemServico[i].Aliquota = 0 then Result[i].AppendChild(AddNode(tcDe4, '#', 'aliquota_item_lista_servico', 1, 15, 1, NFSe.Servico.Valores.Aliquota, '')) else Result[i].AppendChild(AddNode(tcDe4, '#', 'aliquota_item_lista_servico', 1, 15, 1, NFSe.Servico.ItemServico[i].Aliquota, '')); Result[i].AppendChild(AddNode(tcInt, '#', 'situacao_tributaria', 1, 4, 1, NFSe.Servico.ItemServico[i].SituacaoTributaria, '')); Result[i].AppendChild(AddNode(tcDe2, '#', 'valor_tributavel', 1, 15, 0, NFSe.Servico.ItemServico[i].ValorTributavel, '')); Result[i].AppendChild(AddNode(tcDe2, '#', 'valor_deducao', 1, 15, 0, NFSe.Servico.ItemServico[i].ValorDeducoes, '')); Result[i].AppendChild(AddNode(tcDe2, '#', 'valor_desconto_incondicional', 1, 15, 0, NFSe.Servico.ItemServico[i].DescontoIncondicionado, '')); if NFSe.Servico.ItemServico[i].SituacaoTributaria in [3, 4] then Result[i].AppendChild(AddNode(tcDe2, '#', 'valor_issrf', 1, 15, 1, NFSe.Servico.ItemServico[i].ValorISSRetido, DSC_VISS)) else Result[i].AppendChild(AddNode(tcDe2, '#', 'valor_issrf', 1, 15, 0, NFSe.Servico.ItemServico[i].ValorISSRetido, DSC_VISS)); Result[i].AppendChild(AddNode(tcStr, '#', 'cno', 1, 15, 0, NFSe.Servico.ItemServico[i].CodCNO, '')); end; if NFSe.Servico.ItemServico.Count > 10 then wAlerta('#', 'lista', '', ERR_MSG_MAIOR_MAXIMO + '10'); end; Se possivel avaliar e fazer as devidas atualizações, pois meu cliente já está usando a minha versão bpl aqui em ambiente de produção, amanhã vou tentar resolver a questão do tópico: meu cliente esta a alguns dias precisando urgente dessa informação na impressão, se alguém tiver uma solução eu agradeço, tentarei achar e corrigir daqui enquanto isso. Alexandre. -
Não imprime Informações complementares no DANFSE
AlexandreSoaresSP replied to AlexandreSoaresSP's tópico in ACBrNFSe
achei mas não vi bpl com essa unidade acoplada. Alguém tem alguma sugestão para ajudar? preciso resolver pois estou a 3 dias sem essa informação nas impressões. Alexandre -
Boa tarde, implementei o código para Servidor próprio IPM para Guaibá/RS mas segue mensagem quando envio a nota e não sei o que pode ser: Modo de Envio : Enviar Lote Numero do Lote: 101 Data de Envio : 30/12/1899 Numero do Prot: Sucesso : True Erro(s): Código : X201 Mensagem: WebService retornou um XML vazio. Correção: Alexandre
-
Não imprime Informações complementares no DANFSE
um tópico no fórum postou AlexandreSoaresSP ACBrNFSe
Bom dia, Depois que atualizei o acbr não imprime mais informações complementares no envio Padrão Nacional, Segue arquivo anexado do cliente, testei pelo acbrnfsex teste mas também não sai, preciso preencher algo novo nessa versão nova para sair? Obrigado pelo suporte, Alexandre 35302012206959482000198000000000029326034855054262-nfse.xml
