-
Total de ítens
81 -
Registro em
-
Última visita
-
Days Won
3
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Delcio postou
-
Bom dia @Renato Rubinho, acredito que não cause problemas, o trecho que alterei estava ignorando o ultimo caractere do link, acredito que tenha passado batido na hora da implementação, a não ser que tenha sido proposital. Estou encaminhando um XML de exemplo no e-mail.
-
Olá pessoal. Identifiquei que o link retornado no provedor Betha estava faltando o ultimo caractere, investigando parece que o problema está em TNFSeRClass.LerCampoLink, talvez afete outros provedores. Segue o ajuste para análise. ACBrNFSeXLerXml.pas
-
ACBrCargaBal - Implementação Triunfo com suporte a RDC429
um tópico no fórum postou Delcio ACBrDiversos
Olá pessoal. A Triunfo usa o leiaute da Toledo, mas nas últimas versões do Gerenciador Triunfo com suporte a RDC429 tem diferenças para os arquivos da Toledo que o ACBR gera, o MGV7 é o mais parecido, mas mesmo assim não é aceito pelo sistema da triunfo, então resolvi criar um tipo próprio. Segue a unit caso alguém queira analisar e juntar ao projeto. No Gerenciador Triunfo tem que setar da seguinte forma: Menu Gerenciador >> Opções Gerais: Na aba "Tabela Nutricional" mudar para "Padrão novo com açúcares da IN 75/2020..." Menu Cadastros >> Importar: Em "Opções" clicar na aba "Padrão MGV Toledo", em "Layout de Produtos" selecionar "FORMATO MGV5 - MGVITENS V2"; A Triunfo não tem manual de layout para anexar, me passaram apenas uns arquivos de exemplo que estão em anexo. ACBrCargaBal.pas Infnutri.txt Itensmgv.txt -
Olá pessoal, se alguém puder avaliar e incluir. Os XMLs de notas canceladas baixados do site da prefeitura não vem com a TAG "situacao_codigo_nfse", vem "<situacao>C</situacao>". Segue a unit em anexo. IPM.LerXml.pas IPM.patch NFSe.xml
-
Olá pessoal, estava tendo problema com tomadores com "&" na razão social para a cidade de Chapecó-SC. Ajustei apenas para na versão 2.04, pois não tenho clientes pra testar na 2.03. Segue em anexo para a validação. SigCorp.Provider.pas
-
Olá pessoal. Alterei a variável usada na consulta de integer para Int64. Esse provedor retorna o ano no numero da NFS-e, ficando no formato '202300000000001', estourando o limite do integer. Na cidade que testei(Guatambu - SC) exigiu também que informasse a tag "NumeroNfseFinal" para que houvesse êxito, segundo o manual parece que tem que informar mesmo. Seguem em anexo as sugestões e o manual para análise. publica.pdf Publica.Provider.pas
-
Olá @marcelosantos, havia tentado baixar o teu código mas não tinha permissão para baixar o anexo do teu post, dai por necessidade, tive que implementar. Vi que o teu já tem boa parte da implementação dos métodos de alteração e acredito que eu tenha todos esses endpoints liberados aqui pra poder testar. @marcelosantos, @Daniel InfoCotidiano @Pedro A. AraújoAssim que der um tempo, se me permite, vou ver qual a melhor forma de juntar as duas implementações. Seria interessante implementar os métodos de consulta por período também, mas parece que o Sicoob implementou isso de forma assíncrona, são 3 endpoints: 1- Solicitar Movimentação, 2 - Consultar Situação da Solicitação de Movimentação e 3 - Baixar Movimentação, esse último parece que traz as movimentações em um arquivo zipado, então teria que extrair e ver como é o formato desse retorno das movimentações, que não encontrei na documentação.
- 55 replies
-
Pequenas correções na leitura das propriedades TituloRet.EMV e RetornoWeb.JSON ACBrBoletoRet_Bancoob.pas
- 55 replies
-
- 1
-
-
@Juliomar Marchetti Isso, a nova que tem ambiente de homologação e boleto híbrido, havia dado uma procurada e não encontrei no fórum, dai surgiu a necessidade e tive que implementar. Mas se já tem alguém trabalhando nisso, perfeito. Vou ter que terminar de testar e colocar isso em produção ainda essa semana, qualquer dúvida fico a disposição.
-
Olá pessoal. Não sei se alguém está trabalhando na nova API do Sicredi, estou trabalhando nessa implementação, vou fazer alguns ajustes e em breve posto aqui para análise.
-
@Pedro A. Araújo Pra facilitar aí: 1 - Extrair a Chave pública e privada do certificado da empresa, detalhe: Tem que ser um certificado A1 ICP-BRASIL, não serve gerar um certificado auto assinado. Para facilitar a extração, usar o Demo do ACBRPixCD. 2 - Cadastrar o aplicativo no https://developers.sicoob.com.br/portal/, conforme o vídeo abaixo, mudar somente na parte da seleção da API, deve selecionar a API "Cobrança Bancária", no vídeo está a selecionando a do PIX. Na parte que pede o certificado, inserir o arquivo da chave pública do certificado extraído anteriormente. Copiar o Client ID do aplicativo cadastrado. Vídeo Cadastro Aplicativo Sicoob. 3 - Configurar o ACBRBoleto da mesma forma que configura para emitir por arquivo de remessa e incluir: AcBrBoleto.Cedente.CedenteWS.ClientID := Client_Id gerado no portal developpers sicoob; AcBrBoleto.Cedente.CedenteWS.ClientSecret := Client_Id gerado no portal developpers sicoob; AcBrBoleto.Cedente.CedenteWS.Scope := 'cobranca_boletos_consultar cobranca_boletos_incluir cobranca_boletos_baixa'; AcBrBoleto.Cedente.CedenteWS.IndicadorPix := True; //para boleto híbrido AcBrBoleto.Configuracoes.WebService.Ambiente := taProducao; //Só tem produção AcBrBoleto.Configuracoes.WebService.SSLCryptLib := cryOpenSSL; AcBrBoleto.Configuracoes.WebService.SSLHTTPLib := httpOpenSSL; AcBrBoleto.Configuracoes.WebService.SSLType := LT_TLSv1_2; AcBrBoleto.Configuracoes.WebService.TimeOut := 30000; AcBrBoleto.Configuracoes.WebService.UseCertificateHTTP := True; AcBrBoleto.Configuracoes.WebService.ArquivoCRT := 'c:\ChavePublica.pem'; \\Chave pública extraída no passo 1 AcBrBoleto.Configuracoes.WebService.ArquivoKEY := 'c:\ChavePrivada.key'; \\Chave privada extraída no passo 1 Demais scopes se for usar algum outro endpoint: { cobranca_boletos_consultar cobranca_boletos_incluir- cobranca_boletos_pagador cobranca_boletos_segunda_via cobranca_boletos_descontos cobranca_boletos_abatimentos cobranca_boletos_valor_nominal cobranca_boletos_seu_numero cobranca_boletos_especie_documento cobranca_boletos_baixa cobranca_boletos_rateio_credito cobranca_pagadores cobranca_boletos_negativacoes_incluir cobranca_boletos_negativacoes_alterar cobranca_boletos_negativacoes_baixar cobranca_boletos_protestos_incluir cobranca_boletos_protestos_alterar cobranca_boletos_protestos_desistir cobranca_boletos_solicitacao_movimentacao_incluir cobranca_boletos_solicitacao_movimentacao_consultar cobranca_boletos_solicitacao_movimentacao_download cobranca_boletos_prorrogacoes_data_vencimento cobranca_boletos_prorrogacoes_data_limite_pagamento cobranca_boletos_encargos_multas cobranca_boletos_encargos_juros_mora cobranca_boletos_pix cobranca_boletos_faixa_nn_disponiveis } Qualquer dúvida estou a disposição.
- 55 replies
-
- 1
-
-
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.patch
- 55 replies
-
- 5
-
-
Estou com essa implementação em andamento, tenho os endpoints de Registro, Consulta Detalhada e Baixa funcionando, só preciso dar uma revisada e consigo postar aqui, vi que o @marcelosantos estava implementado esse banco também, mas não consegui contato com ele por mensagem aqui no fórum, e como tinha certa urgência resolvi implementar.
- 55 replies
-
- 1
-
-
Ajustes nos registros D3 e D4 para PAF-NFCe Layout 2.00
Delcio replied to Delcio's tópico in ACBrSintegra/ACBrPAF
Não Juliomar, não deixei claro, esses campos não foram removidos do ACBr, foram removidos na nova ER 2.00, no ACBR que continuam os campos como na versão anterior. Essas alterações que sugeri são justamente pra ficar de acordo com a ER 2.00, retirando os campos quando selecionado o layout PAF-NFCe. -
Ajustes nos registros D3 e D4 para PAF-NFCe Layout 2.00
um tópico no fórum postou Delcio ACBrSintegra/ACBrPAF
Olá pessoal, fiz algumas alterações nos registros D3 e D4 para atender a ER 2.00 do PAF-NFCe. Confesso que achei as alterações meio estranhas, removeram VL_DESCTO, VL_ACRES, e VL_TOTAL, Fiquei na dúvida de como preencher no caso de haver desconto ou acréscimo, se coloco o valor unitário levando em conta o desconto e acréscimo ou o valor normal... Seguem as diferenças e a Unit alterada em anexo para avaliação. ACBrPAF_D_Class.pas -
Olá Italo, sim, já faço isso, mas algumas coisas fogem de nosso controle, por exemplo quedas na conexão durante o envio da inutilização, neste caso ao tentar inutilizar novamente trato o retorno, que vem com os dados da inutilização original e armazeno no banco. São casos raros, mas acontecem.
-
Olá pessoal. Pequeno ajuste para permitir a leitura do protocolo e outras informações da inutilização em caso de Rejeição 682 "Já existe pedido de inutilização com a mesma faixa de inutilização"; Segue em anexo: pcteRetInutCTe.pas
-
Nem o DNS da SVRS está resolvendo:
-
Percebi isso, boa parte está sendo direcionada para System.Net, mas acho ela muito "dependente" das APIs do SO, e muito fechada também, por exemplo a implementação para o windows está em System.Net.HttpClient.Win e fica toda na seção implementation da Unit, muito engessada na minha opinião. Não consigo usar o certificado carregado no ACBr com ela, e não consigo herdar para sobrescrever algo, até consigo registrar outra classe com TURLSchemes.RegisterURLClientScheme para usar com o windows por exemplo, mas tem que implementar toda ela. Minha ideia inicial com Indy seria fazer uma implementação independente e talvez colocar na pasta terceiros, para ficar independente das IDEs. mas acho que não vai dar com Indy, vamos ver com o Synalist, que já tem no ACBr inclusive.
-
Fiz mais uns testes por aqui criando uma classe http 100% Indy, tive alguma evolução, mas acho que vou ter que partir pra outra biblioteca. O Indy usa OpenSSl para a conexão segura, consegui fazer o Indy funcionar com o certificado carregado no ACBr usando OpenSSl, funcionou tanto com Certificado A3 quanto com A1 carregado em memória, mas fui barrado por outro problema: Parece que o Indy ainda não suporta as versões mais novas da OpenSSL, daí só funcionou com TLS 1.1, que não nos atende. Vou tentar outro caminho: Alterar a TDFeHttpOpenSSL para suportar certificado A3, se der certo acho que teríamos quase todas as vantagens:
-
Olá. Consegui fazer funcionar com o Context do TDFeSSL, porém teria que ver se o inicio da assinatura da classe TWinHTTPClient não mudou nas versões mais novas, tenho só o D10.3.1 aqui. Está em anexo, se quiser dar uma olhada. Talvez fosse melhor implementar uma classe HTTP do zero, baseada em Indy ou outra biblioteca mais independente da RTL, já que a TDFeHttpIndy atualmente nem usa Indy mais. Assim que conseguir um tempo vou dar uma pesquisada sobre algo nesse sentido. Em um cenário ideal ela teria que: Compilar em x68 e x64; Não depender da API do S.O, isso permitiria: Compilar para Linux; Não depender de configurações do S.O.; Não depender de atualizações do S.O; Ser compatível com FPC; Permitir certificado de cliente sem instalação; Permitir certificados A3 e A1; Suportar SSL, TLS, mais algum? Evitar dependência de bibliotecas externas(DLLs); Esqueci de algo? ACBrDFeHttpIndy.pas
-
Pois é, não me atentei a esse detalhe, nos meus clientes estão todos instalados, vou verificar se tem como resolver isso.
-
Olá pessoal. De uns tempos pra cá venho tendo alguns chamados relativos a problemas de comunicação com o TLS1.2 usando a httpWinHttp, grande maioria devido as atualizações do windows(ou a falta delas), estive buscando então alternativas para evitar esse transtorno: A httpWinINet depende de configurações do IE, que de vez em quando são alteradas por outros aplicativos e acabam causando o mesmo problema. A httpOpenSSL além de causar dependências das Dlls acho que só vai de A1 e infelizmente tem uns que insistem no A3. Um opção seria usar a HttpIndy, que não depende de configurações do IE e aparentemente não é afetada pelos updates do windows, porém nos Delphi mais novos não estava funcionando direito devido a mudanças na RTL. Apresentava o erro "Erro ao ajustar INTERNET_OPTION_CLIENT_CERT_CONTEXT". Dei uma mexida nela e consegui fazer funcionar, nos testes com a NFe transmitiu normalmente no Rio 10.3.1, inclusive estou testando em alguns clientes onde a httpWinHttp estava apresentando problemas, porém não tenho outras versões do Delphi instaladas aqui pra testar. Vou deixar em anexo se alguém quiser testar/melhorar e enviar para repositório. ACBrDFeHttpIndy.pas
-
Objetos: Saber se é a mesma instância - Chupa essa manga
Delcio replied to Delcio's tópico in Object Pascal - Delphi & Lazarus
Verdade, acabei não testando o código de exemplo antes de postar e esqueci de umas coisas; O correto é esse: type TTest = class private FVar: Pointer; public constructor Create(var CheckInstanceVar); virtual; destructor Destroy; override; end; constructor TTest.Create(var CheckInstanceVar); begin inherited Create; FVar := @CheckInstanceVar; end; destructor TTest.Destroy; begin if TTest(FVar^) = Self then Pointer(FVar^) := nil; inherited; end; ... var A, B: TTest; begin A := TTest.Create(B); B:= A; A.Free; A := TTest.Create(B); // Agora A é outro objeto ShowMessage( // BoolToStr(A = B, True) // ); end; Basicamente armazeno um ponteiro para a variável no objeto para que possa setar a variável para nil ao destruir o objeto; Lembrando que esse código é somente um exemplo, usei esse artifício em uma implementação bastante complexa, onde A pode ser destruído e criado indiscriminadamente e depois preciso saber se A continua sendo a mesma instância do início; -
Objetos: Saber se é a mesma instância - Chupa essa manga
Delcio replied to Delcio's tópico in Object Pascal - Delphi & Lazarus
Entendi sim, as duas variáveis estão apontando para o mesmo endereço, e é justamente isso que causa a confusão, no final do código as duas variáveis estão armazenando o mesmo objeto. Exatamente isso que impede eu comparar se "A" é igual a instância que eu tinha anteriormente e referenciei em "B". O que eu precisava era uma forma de saber se meu "A" é a mesma instância de antes. Não me atentei a esse detalhe de endereçamento, e isso causou o problema; Resumindo: Uma variável armazena uma referência a um endereço, e não o objeto em si.
