AlexandreSoaresSP Postado 17 Março Postado 17 Março 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
Membro Pro Verificado overstep Postado 18 Março Membro Pro Verificado Postado 18 Março Bom dia, Atualiza os fontes que esse problema foi resolvido no inicio da semana. 1
AlexandreSoaresSP Postado 19 Março Autor Postado 19 Março 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.
AlexandreSoaresSP Postado 13 Abril Autor Postado 13 Abril 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
Consultores Juliomar Marchetti Postado 13 Abril Consultores Postado 13 Abril Favor anexar a unit ou units modificadas Juliomar Marchetti Ajude o Projeto ACBr crescer - Seja Pro discord: juliomar telegram: juliomar e-mail: [email protected] http://www.juliomarmarchetti.com.br Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!
Recommended Posts
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora