Painel de líderes
Conteúdo popular
Showing content with the highest reputation on 22-03-2023 em todas as áreas
-
Seguem as units e o patch do svn, caso alguém queira analisar, devido a falta de tempo, implementei somente os endpoints para atender a minha necessidade, as funcionalidade básicas estão implementadas, caso alguém queira incluir os outros endpoints, como alterar vencimento, desconto, etc, fique a vontade, caso contrario implementarei conforme sobrar um tempo aqui. Está funcionando o boleto híbrido inclusive, com o retorno do EMV. Tive que alterar a ACBrBoletoWS.Rest.pas para incluir o HttpResultCode 207 como Result válido, por que o Sicoob retorna ele, na inclusão de boletos. Alterei também a ACBrBoletoWS.pas, pois ao chamar TBoletoWS.Clear, o field FBoleto não era setado, passando a ser Nil; ACBrBoletoW_Bancoob.pas ACBrBoletoWS.Rest.pas ACBrBoletoWS.pas ACBrBoletoRet_Bancoob.pas Sicoob Api.patch2 pontos
-
Olá pessoal, Sou de São José do Rio Preto/SP, e gostaria de contribuir com layout para NFSe da minha cidade. Ambos validados (ocultei os dados sensíveis). Em anexo. Gostaria de colaborar com a criação do ACBrLibNFSe ... o quanto antes ... o que for possível eu acrescentar, por favor, coloquem ... Obrigado Canc-00001718.xml ConsPosicao-00000179.xml ConsSitLote-00000179.xml Venda-00000179.xml1 ponto
-
Pequenas correções na leitura das propriedades TituloRet.EMV e RetornoWeb.JSON ACBrBoletoRet_Bancoob.pas1 ponto
-
Boa tarde, Confirme com o provedor se o cliente está habilitado para utilização do webservice. Alguns provedores tem que habilitar individualmente para produção e homologação, confirme se o ambiente que está utilizando está habilitado. O certificado que está sendo utilizado é deste CNPJ? Confirmar também se o cliente está habilitado para uso do webservice.1 ponto
-
Boa tarde, Segue tópico do Italo com maiores detalhes. Resumindo, você irá utilizar a propriedade LayoutNFSe para identificar se deverá gerar no layout do provedor ou no padrão nacional.1 ponto
-
Muito obrigado por querer colaborar! Pelo link que disponibilizou, da a entender que o provedor que atende a esta cidade é o SpeedGov. Esse provedor já está implementado no ACBrNFSeX, então em tese, adicionar as informações para esta cidade é mais fácil. Veja um exemplo de configuração para outra cidade do mesmo provedor. [2301000] Nome=Aquiraz UF=CE Provedor=SpeedGov ProRecepcionar=http://www.speedgov.com.br/wsaqz/Nfes Por favor, pode conseguir a URL de produção para está cidade?1 ponto
-
Foi isso o que quis dizer com o CarregarXMLNFSe. Vamos conferir como é a procedure TratarRetornoConsultaLoteRPS NotaCompleta := (Pos('<nfse>', Response.ArquivoRetorno) > 0); //No seu arquivo, não tem essa tag, então essa variável tem o valor False. //... if NotaCompleta then begin AuxNode := ANode.Childrens.FindAnyNs('rps'); NumRps := ''; if AuxNode <> nil then NumRps := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('nro_recibo_provisorio'), tcStr); with Response do begin AuxNode := ANode.Childrens.FindAnyNs('nf'); NumeroNota := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('numero_nfse'), tcStr); SerieNota := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('serie_nfse'), tcStr); Data := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('data_nfse'), tcDatVcto); Data := Data + ObterConteudoTag(AuxNode.Childrens.FindAnyNs('hora_nfse'), tcHor); Link := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('link_nfse'), tcStr); Link := StringReplace(Link, '&', '&', [rfReplaceAll]); Protocolo := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('cod_verificador_autenticidade'), tcStr); CodigoVerificacao := Protocolo; Situacao := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('situacao_codigo_nfse'), tcStr); DescSituacao := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('situacao_descricao_nfse'), tcStr); end; AResumo := Response.Resumos.New; AResumo.NumeroNota := Response.NumeroNota; AResumo.SerieNota := Response.SerieNota; AResumo.Data := Response.Data; AResumo.Link := Response.Link; AResumo.Protocolo := Response.Protocolo; AResumo.CodigoVerificacao := Response.CodigoVerificacao; AResumo.Situacao := Response.Situacao; AResumo.DescSituacao := Response.DescSituacao; if NumRps <> '' then ANota := TACBrNFSeX(FAOwner).NotasFiscais.FindByRps(NumRps) else ANota := TACBrNFSeX(FAOwner).NotasFiscais.FindByNFSe(Response.NumeroNota); ANota := CarregarXmlNfse(ANota, ANode.OuterXml); //Essa é a procedure que atrubui valor a propriedade NotasFiscais[Indice].XmlNfse SalvarXmlNfse(ANota); end else begin //Como NotaCompleta é False, esse é o trecho de código que é executado. with Response do begin NumeroNota := ObterConteudoTag(ANode.Childrens.FindAnyNs('numero_nfse'), tcStr); SerieNota := ObterConteudoTag(ANode.Childrens.FindAnyNs('serie_nfse'), tcStr); Data := ObterConteudoTag(ANode.Childrens.FindAnyNs('data_nfse'), tcDatVcto); Data := Data + ObterConteudoTag(ANode.Childrens.FindAnyNs('hora_nfse'), tcHor); Situacao := ObterConteudoTag(ANode.Childrens.FindAnyNs('situacao_codigo_nfse'), tcStr); DescSituacao := ObterConteudoTag(ANode.Childrens.FindAnyNs('situacao_descricao_nfse'), tcStr); Link := ObterConteudoTag(ANode.Childrens.FindAnyNs('link_nfse'), tcStr); Link := StringReplace(Link, '&', '&', [rfReplaceAll]); Protocolo := ObterConteudoTag(ANode.Childrens.FindAnyNs('cod_verificador_autenticidade'), tcStr); CodigoVerificacao := Protocolo; end; AResumo := Response.Resumos.New; AResumo.NumeroNota := Response.NumeroNota; AResumo.SerieNota := Response.SerieNota; AResumo.Data := Response.Data; AResumo.Link := Response.Link; AResumo.Protocolo := Response.Protocolo; AResumo.CodigoVerificacao := Response.CodigoVerificacao; AResumo.Situacao := Response.Situacao; AResumo.DescSituacao := Response.DescSituacao; end; Agora vamos olhar a resposta que você recebeu do WebService da IPM no arquivo 0186250054441760-lista-nfse-con-lot-soap.xml. O conteúdo dela está organizado nesta estrutura. <retorno> <mensagem> <codigo></codigo> </mensagem> <numero_nfse></numero_nfse> <serie_nfse></serie_nfse> <situacao_codigo_nfse></situacao_codigo_nfse> <situacao_descricao_nfse></situacao_descricao_nfse> <data_nfse></data_nfse> <hora_nfse></hora_nfse> <arquivo_gerador_nfse></arquivo_gerador_nfse> <nome_arquivo_gerado_eletron></nome_arquivo_gerado_eletron> <link_nfse></link_nfse> <cod_verificador_autenticidade></cod_verificador_autenticidade> <codigo_html></codigo_html> </retorno> Veja que ela de fato não é um XML de Nfse.1 ponto
-
Consulta o lote após o envio, mais percebi que servidor de homologação deles as vezes da problema1 ponto
-
1 ponto
-
Não Julio, a versao atual do layout é 017 , que equivale a variavel da acbr vlVersao116 ( pois é o decimo setimo layout, pois iniciou em 000 ) ou seja na linha 545 vai dar um exit, eu monitorei com debug o tipo esta igual ao itcompleto e o cod_ver esta vlVersao116 , ou seja sai fora no exit. "então a 117 deveria passar se o tipo estiver ok" não existe no acbr a vlVersao117 , só vai existir quando estivermos no layout 018, isso se alguém lembrar de alterar esse fonte, por isso acho que não precisava desse if da linha 545 e dos subsequentes...1 ponto
-
1 ponto
-
Bom dia. Claro, iremos consultar o provedor e reposto o retorno quando obtivermos.1 ponto
-
Boa noite Mario, Complementando, a validação do schema pelo componente está gerando a exceção porque aparentemente a tag não é prevista para o RPS, com isso não terá o soap. Aparentemente o schema prevê as OutrasInformacoes apenas no grupo de dados da NFSe, provavelmente ao trazer um XML emitido via provedor. <xsd:complexType name="tcInfNfse"> <xsd:sequence> <xsd:element name="Numero" type="tsNumeroNfse" minOccurs="1" maxOccurs="1"/> <xsd:element name="CodigoVerificacao" type="tsCodigoVerificacao" minOccurs="1" maxOccurs="1"/> <xsd:element name="DataEmissao" type="xsd:dateTime" minOccurs="1" maxOccurs="1"/> <xsd:element name="NfseSubstituida" type="tsNumeroNfse" minOccurs="0" maxOccurs="1"/> <xsd:element name="OutrasInformacoes" type="tsOutrasInformacoes" minOccurs="0" maxOccurs="1"/> <xsd:element name="ValoresNfse" type="tcValoresNfse" minOccurs="1" maxOccurs="1"/> <xsd:element name="ValorCredito" type="tsValor" minOccurs="0" maxOccurs="1"/> <xsd:element name="PrestadorServico" type="tcDadosPrestador" minOccurs="1" maxOccurs="1"/> <xsd:element name="OrgaoGerador" type="tcIdentificacaoOrgaoGerador" minOccurs="1" maxOccurs="1"/> <xsd:element name="DeclaracaoPrestacaoServico" type="tcDeclaracaoPrestacaoServico" minOccurs="1" maxOccurs="1"/> </xsd:sequence> Antes de ficar batendo cabeça, confirme com o provedor se o webservice aceita esta tag e, se possível, solicite a eles um soap de um RPS de exemplo.1 ponto
-
Boa noite, Cola o print do programa de exemplo com o retorno do envio. Aparentemente este provedor devolve as mensagens na lista de erros, no campo descrição. procedure TACBrNFSeProviderABRASFv1.ProcessarMensagemErros(RootNode: TACBrXmlNode; Response: TNFSeWebserviceResponse; const AListTag, AMessageTag: string); . . . for I := Low(ANodeArray) to High(ANodeArray) do begin Mensagem := ObterConteudoTag(ANodeArray[I].Childrens.FindAnyNs('Mensagem'), tcStr); if Mensagem <> '' then begin AErro := Response.Erros.New; AErro.Codigo := ObterConteudoTag(ANodeArray[I].Childrens.FindAnyNs('Codigo'), tcStr); AErro.Descricao := ACBrStr(Mensagem); AErro.Correcao := ACBrStr(ObterConteudoTag(ANodeArray[I].Childrens.FindAnyNs('Correcao'), tcStr)); end; end;1 ponto
-
Na verdade tem que olhar o manual nova e ver se entra . eu até li mas um contador é quem deve indicar melhor isso1 ponto
-
Revert clica com o lado direito, vai até a opção do tortoisesvn e lá tem um revert depois faz o mesmo e vai achar um clean up marca tudo e depois faz um update1 ponto
-
no caso salvo exceções em locais os valores monetarios são todos 2 digitos.1 ponto
-
Boa tarde, você faz um checkout na sua maquina e update para fazer download do repositório na sua maquina, não há necessidade de usuário / senha. https://projetoacbr.com.br/fontes/ Commit nos fontes seja trunk ou branchs são exclusivo dos consultores do ACBr.1 ponto
-
Não seria um SVN Update ? SVN Commit, só com permissão do Daniel Simões para subir alterações para o SVN.. Se você quer atualizar do SVN para sua máquina, é o SVN Update.. ou reverter alguma alteração local SVN Revert.1 ponto
-
Veja se não esta carregando a dll desatualizada por engano, isso pode acontecer.. faça limpa das dlls da maquina e cole somente a dll atualizada, pode pesquisar pelas dlls, usando o cmd: cd \ dir ACBrLibBoleto.dll /s Verifique se não tem nenhuma configuração divergente de um terminal para o outro. Realmente ACBrLibBoleto estava ocorrendo este A.V, porém já subimos uma correção..1 ponto
-
Obrigado pela contribuição, em breve será validada para possível inclusão ao svn #TK-37371 ponto
-
Olá Pessoal, O nosso Moderador Renato Rubinho implementou e disponibilizou os fontes de um novo provedor: Prescon. No momento temos apenas a cidade Vargem/SP configurada para este provedor. O Renato entrou em contato com o provedor, mas infelizmente eles não forneceram as demais cidades atendidas por eles, paciência. Abaixo algumas informações importantes levantadas pelo Renato sobre o provedor. 1. Particularidades: * Não requer certificado digital. * Não possui ambiente de homologação. * Não retornam xml da NFSe. * Utiliza token, gerado com o método GerarToken. * Na documentação, diz que o token expira em 15 minutos, mas durante os testes, não expirou. * Emitente.InscMun: IM utilizada como usuário para geração do token. * Emitente.WSSenha: Senha para geração do token. * Emitente.WSChaveAutoriz: Token obtido pelo método GerarToken, que será utilizado pelos demais métodos. 1.1. Método para retorno do próximo Número de NFSe a utilizar (getNextInvoice). * O provedor possui um método que consiste em retornar o próximo número de NFSe a utilizar. * Para não criar um novo método específico, foi utilizado o método ConsultarNFSePorFaixa para obter o próximo número de NFSe a ser utilizado, pois o provedor não utiliza este método. * Na procedure GerarMsgDadosEmitir, gerada trava quando o NFSe.Numero não for preenchido. Na mensagem, avisado sobre a utilização da ConsultarNFSePorFaixa para pegar o próximo número. 1.2. Erros * Existe uma tabela com as descrições dos erros, pois na maioria são retornados apenas códigos. * Configuada função para retornar a descrição dos respectivos erros. * Em algumas situações, retornam a descrição do erro na tag "retorno" ao invés apenas do código. 1.2.1. Existem bugs nos tratamentos de erros do provedor * Documentei o problema por e-mail e retornaram que está em análise. * Se passar um json inválido, retorna erro de token expirado. * Testei anomalias, passando por exemplo na chave devidoNoLocal "N" e "S" ao invés de "0" e "1", retornou apenas "ERRO". Passei para o provedor e não responderam se corrigiriam. * E-mail de contato do provedor: [email protected] Quem desejar ou precisar emitir notas para a cidade de Vargem/SP, favor atualizar todos os fontes de todas as pastas, reinstale o ACBr e inicie os testes usando o programa exemplo do ACBrNFSeX.1 ponto
-
Boa tarde, Veja a tag <dhEmi> de ambos os XML, note que esta diferente. Isso significa que você esta gerando novamente o XML e atribuindo ao campo dhEmi a data/hora corrente da maquina antes de fazer a consulta. Não se deve fazer isso. Depois do XML gerado, não se deve gerar para realizar uma consulta e sim carregar o XML através do método LoadFromFile. Ao gerar o XML pela segunda vez com uma data/hora diferente da que foi enviado (mesmo que a diferença seja segundos) o digestValue será diferente.1 ponto