Painel de líderes
Conteúdo popular
Showing content with the highest reputation on 10-10-2024 em todas as áreas
-
Olá Pessoal, O componente ACBrANe passou por um Refactoring. A motivação para esse Refactoring é tornar o componente mais fácil e prático no que se refere a implementar novas seguradoras bem como realizar manutenção no código sem correr o risco de gerar um efeito colateral nas seguradoras já implementadas. Antes tínhamos apenas uma unit responsável por gerar o arquivo de envio para todas as seguradoras. Isso gerava riscos na implementação e manutenção das seguradoras existentes. Agora temos uma unit para cada seguradora que gera o arquivo. Assim, podemos fazer as devidas melhorias bem como as correções sem afetar as outras seguradoras. Pasta dos fontes: Outro ponto importante é a localização das Units que compõe o componente: Pasta Descrição ACBrANe Pasta raiz dos fontes do componente. Seguradoras Pasta que contem as units das seguradoras: (NomeSeguradora.Provider). Base Pasta que contem as units de classes, conversão e constantes. Base\Seguradoras Pasta que contem as units bases e manager. Base\WebServices Pasta que contem as units base e response do webservice Situação atual: Hoje o componente já conta com as seguintes seguradoras implementadas: ATM e ELT. Até tem a PortoSeguro, mas não esta funcional, se faz necessário finalizar a sua implementação. Desafios a frente: Implementar e testar novas seguradoras. Para que isso ocorra, contamos com a colaboração de todos.5 pontos
-
Já subimos a correção. Commit da alteração na classe do C#: Rev-35505 Commit dos pacotes do Nuget: Rev-355351 ponto
-
Boa tarde! A nova versão foi implementada com o nome de provedor Giss. Por favor, veja mais no tópico abaixo:1 ponto
-
Boa tarde @Mistral Sistemas Estamos levantando informações quanto a ser algo somente em homologação, mas o teste indicado pelo Diego realizando um venda de baixo valor, nos dará a resposta rapidamente também. At.1 ponto
-
Se fosse isso lembre-se a gente teria deixado para isso. tu deve preencher os dados e será gerado o nosso numero senão é gerado correto é porque os dados não são os mesmos que usou para gerar1 ponto
-
Analisando o arquivo fornecido pelo email, você está passando a string com os dados do cedente como parâmetro. Fiz alguns teste em meu ambiente e tive o mesmo resultado. Apenas o endereço era atualizado, ignorando as outras seções. Faça um teste adicionando aspas para delimitar a string. Exemplo: BOLETO.ConfigurarDados("conteúdo")1 ponto
-
Olá pessoal! Conferindo no painel Situação SVC é possível observar que a Sefaz de Pernambuco ativou a contingência no dia 09/10/2024 às 14h45 com previsão de encerramento às 10h00 do dia 10/10/2024. Para utilizar as soluções do ACBr em contingência durante este período siga as orientações do tópico abaixo.1 ponto
-
1 ponto
-
Amigo, muito obrigado. Deu super certo. Apenas sugiro que altere esta parte no seu código na unit.pas: Use GetAccessToken ao invés de InteractiveAuthentication, pois no InteractiveAuthentication ele limpa os campos de token, já no GetAccessToken ele utiliza o InteractiveAuthentication e já retorna o campo certinho. procedure TForm1.btnConsentimentoClick(Sender: TObject); const msg = 'Será solicitado ao usuário permissão para enviar emails em seu nome.' + 'O código retornado será armazenado para futura solicitação do token de acesso'; var IniFile: string; Ini: TIniFile; begin Application.MessageBox(msg, 'Informação', 64); AjustaParametrosDeEnvio; //Antes: {ACBrMail1.Authenticator.InteractiveAuthentication;} //Depois: ACBrMail1.Authenticator.GetAccessToken; // ACBrMail1.Authenticator.AuthorizeToken contem o codigo de autorização para solicitar access token // Apos autorização atualizar tokens de acesso inválidos IniFile := ChangeFileExt(Application.ExeName, '.ini'); Ini := TIniFile.Create(IniFile); try Ini.WriteString('OAuth2', 'RefreshToken', ACBrMail1.Authenticator.RefreshToken); Ini.WriteString('OAuth2', 'AccessToken', ACBrMail1.Authenticator.AccessToken); Ini.WriteDateTime('OAuth2', 'ExpiraEm', ACBrMail1.Authenticator.ExpiresIn); finally Ini.Free; end; end; Eu vou tentar agora com o Hotmail1 ponto
-
Bom dia @tcharraw, Complementando tudo o que já foi dito, segundo o manual só podemos imprimir no DANFE a informação que esta no XML, o desconto em percentual não consta no XML somente o desconto em valor, no manual também não deixa claro se podemos imprimir uma informação que é resultado de cálculos de duas ou mais informações que estão no XML. Por falta de informações claras e precisas optamos por imprimir somente o que esta no XML.1 ponto
-
Boa noite Italo, Fiz as alterações e assim que o cliente me liberar o acesso para testar novamente lhe atualizo. Muito obrigado.1 ponto
-
Ola, Fazia tempo que não era atualizado o monitor nesse cliente , digo isso porque se não me falha a memória isso foi desativado a tempo atrás para imprimir sempre o valor do desconto1 ponto
-
Nem perto está do que tu tem. sugiro baixar o que tem no svn e olhar ele tentar fazer a implementação no que tem1 ponto
-
Pessoal eu acabei alterando o nome de algumas propriedades e métodos para seguir o padrão (inglês) adotado para o componente. Vai quebrar o código de alguém, mas achei que o melhor momento é agora que ainda não foi adicionado ao repositório. Desculpa ai!!! Alterações realizadas: * Mudar eventos de autenticação (antes e depois) para ACBrMail; * Alterar a classe Autenticador (SubComponent) para propriedade de classe (Persistent); * Alterar o nome da classe Autenticador para Authenticator (seguir padrão de nomenclatura) * Alterar o nome da property ExpiraEm para ExpiresIn (seguir padrão de nomenclatura); * Alterar as propriedades RefreshToken, AccessToken e ExpiresIn para leitura e escrita; * Alterar o nome do método AutorizacaoInterativa para InteractiveAuthentication (seguir padrão de nomenclatura); * Alterar o nome do método AtualizarAccessToken para GetAccessToken (seguir padrão de nomenclatura); * Adicionar propriedade ChallengeError para indicar se deve responder quando o login não é realizado com sucesso; * Adicionar método GetChallengeError para responder quando o login não é realizado com sucesso; * Corrigir identificação do login realizado (se for ESMTP, usuário e senha estiver informado, deve ser verificado SMTP.AuthDone); * Adicionar mensagem de erro decodificando o retorno quando não for possível realizar o login; * Enviar resposta com ChallengeError para capturar erros adicionais; * Alterar mensagens do tratamento de erros para inglês (seguir padrão de mensagens de erros); (unit1 é do exemplo) unit1.pas unit1.dfm ACBrMail.pas1 ponto
-
1 ponto
-
Olá Pessoal, Quem tem clientes prestadores de serviços cujas cidades são atendidas pelos provedores: Facundo, FGMaiss, PriMax, Sam e WebFisco, foi feita uma pequena alteração. Para quem não sabe todos esses provedores tem o mesmo layout, portanto todos eles herdam as classes do provedor WebFisco e este ao gerar o XML do RPS verifica se o ambiente é de produção ou de homologação para gerar o conteúdo das tag: <prf> que contem o CNPJ da Prefeitura e <usr> que contem o CNPJ do prestador. Se for produção é utilizado como CNPJ da Prefeitura o CNPJ que consta na configuração do componente, Lib ou Monitor e o CNPJ do prestador o que foi informado ao alimentar o componente ou o que esta no arquivo INI para quem utiliza a Lib ou Monitor. Por outro lado quando se trata de homologação estava sendo utilizado CNPJs prefixados no código do componente que é utilizado pela Lib e pelo Monitor. O problema disso é que os provedores que herdam as classes do WebFisco estão utilizando CNPJs diferentes e com isso esta ocorrendo erros ao tentar enviar um RPS em homologação. A partir de agora não tem mais nenhum CNPJ prefixado, sendo assim para ambos os ambientes vai ser necessário informar corretamente os CNPJ que o provedor espera que conste no XML nas tags: <prf> e <usr>.1 ponto
-
Olá comunidade do Projeto ACBr ! Neste tópico vou demonstrar como utilizar ACBrLib no Android Studio. Abaixo um passo a passo de como importar ACBrLibNFe em build.gradle e build.gradle.kts: build.gradle: -> Para importar o ACBrLibNFe e dependências no build.gradle, primeiro passo é criar a pasta libs (./app/libs). -> Após criar a pasta libs, abra o arquivo build.gradle de app e adicione: implementation( files('./libs/ACBrLibNFe-debug.aar')) implementation 'net.java.dev.jna:jna:5.14.0@aar' build.gradle.kts: -> Em ./app/build.gradle.kts adicione as seguintes linhas: implementation(files("./libs/ACBrLibNFe-debug.aar")) implementation ("net.java.dev.jna:jna:5.14.0@aar") -> Após adicionar abra settings.gradle.kts dentro de repositories adicione as seguintes linhas: flatDir { dirs("libs") } Após seguir os passos acima é necessário realizar a sincronização. Podemos sincronizar clicando em File -> Sync Project with Gradle Files ou utilizando teclas de atalho apertando Ctrl + Shift + O. Agora vamos demonstrar como utilizar o ACBrLibNFe no programa exemplo disponibilizado em nosso SVN. Primeiro passo precisamos realizar o download do ACBrLib no fórum do Projeto ACBr. PRO -> https://www.projetoacbr.com.br/forum/files/category/64-acbrlib-android-pro/ DEMO -> https://www.projetoacbr.com.br/forum/files/category/65-acbrlib-android-demo/ Após realizar download, vamos descompactar o arquivo .zip. Ambas as versões PRO e DEMO, disponibilizamos o .aar Release e Debug para uso no Android. Agora vamos para o Android Studio ! Em nosso SVN, disponibilizamos um programa exemplo para uso do ACBrLibNFe -> Commit At revision: 35501. Então vamos abrir o Android Studio e depois abrir o projeto do Programa Exemplo: Assim que você abrir o programa exemplo, pode aparecer este erro no programa exemplo: Para resolver, vamos precisar copiar e colar o ACBrLibNFe.aar para a pasta libs do programa exemplo. O programa exemplo esta configurado para usar a versão debug do ACBrLib.aar, então vamos copiar e colar para a pasta libs do programa exemplo, desta forma: Projetos -> ACBrLib -> Demos -> Android -> Java -> NFe -> app -> libs -> Colar versão Debug (ACBrLibNFe-debug.aar). Feito isso, será necessário sincronizar o programa exemplo apertando Ctrl + Shift + O. Agora com o programa exemplo sincronizado, não deverá aparecer nenhum erro: Você pode emular um dispositivo Android com o próprio Android Studio ou utilizar algum dispositivo físico. Para demonstração estou utilizando o Tectoy Smart PDV Móvel V2 com Android 7.1, para que ele funcione, precisamos habilitar algumas opções nas configurações do dispositivo, ativar as opções do desenvolvedor e depuração USB, feito isso Android Studio deve reconhecer o dispositivo: Agora precisamos compilar o programa exemplo !!! Com o aplicativo scrcpy, podemos transmitir a tela do dispositivo para o computador, isso facilita o desenvolvimento. Caso tenham dúvidas ou problemas, fiquem à vontade para nos procurar aqui no fórum ou em nosso Discord ! Até o próximo tópico1 ponto
-
EXEMPLO DE CONFIGURAÇÃO DO COMPONENTE ACBR BOLETO Banrisul Solicitar credenciais de autenticação junto ao portal Banrisul de Desenvolvedores: https://developersdev.banrisul.com.br FACBrBoleto.Cedente.CedenteWS.ClientID := API Key (ClientID) criado no portal FACBrBoleto.Cedente.CedenteWS.ClientSecret:= Shared Secret (Client Secret) Criado no portal. FACBrBoleto.Cedente.CedenteWS.Scope := boletos FACBrBoleto.Cedente.CedenteWS.KeyUser := Deixar em Branco. Dados Homologação: Para homologação a conta é fictícia fornecida na documentação, exemplo Agencia : 0010 Conta : 0000010 DV Cta : 88 Cod Convenio: 0010000001088 Cod Cedente/Beneficiario: 0010000001088 Composição Código Beneficiário e Convenio: Agencia (4 Dígitos) + Conta (8 Dígitos) + Digito Conta (1)1 ponto
-
Version 2.0.1.101
473 downloads
ACBrLibNFSe - DEMO - Biblioteca para emissão e impressão de Nota Fiscal de Serviço Eletrônica (NFSe). Faça Download pelo SVN, dos Demos de uso da ACBrLibNFSe em diversas linguagens, usando o endereço: http://svn.code.sf.net/p/acbr/code/trunk2/Projetos/ACBrLib/Demos/ Manual On-Line: https://acbr.sourceforge.io/ACBrLib/ACBrLib.html1 ponto -
Boa tarde. Obrigado pelo retorno @Diego Foliene @Cantu lendo os fontes acredito que o motivo tenha sido que no código estava vindo mais de um código e foi alterado para poder "quebrar" esse código em vários itens e esses itens foram lançados dentro do Registro0. Verifiquei que parece ser possível identificar as mensagens de cada segmento/item através das propriedades Segmento e SeuNumero, porém no momento estamos sem nenhum arquivo de retorno em mãos e não conseguimos testar. Segue o código: ACBrPagFor1.LerTxtRetorno(NomeArquivo); for I := 0 to ACBrPagFor1.Arquivos.Count - 1 do begin for J := 0 to ACBrPagFor1.Arquivos.Items[I].PagFor.Lote.Count - 1 do begin for K := 0 to ACBrPagFor1.Arquivos.Items[I].PagFor.Lote.Items[J].SegmentoA.Count - 1 do begin vValor := 0; vCodOcorrencia := ACBrPagFor1.Arquivos.Items[I].PagFor.Lote.Items[J].SegmentoA.Items[K].CodOcorrencia; // vDescOcorrencia := ACBrPagFor1.Arquivos.Items[I].PagFor.Lote.Items[J].SegmentoA.Items[K].DescOcorrencia; vDescOcorrencia := ''; if vCodOcorrencia <> '' then begin for A := 0 to ACBrPagFor1.Arquivos.Items[I].PagFor.Registro0.Aviso.Count - 1 do begin // Busca avisos do segmento A deste SeuNumero if (ACBrPagFor1.Arquivos.Items[I].PagFor.Registro0.Aviso.Items[A].Segmento = 'A') and (ACBrPagFor1.Arquivos.Items[I].PagFor.Registro0.Aviso.Items[A].SeuNumero = ACBrPagFor1.Arquivos.Items[I].PagFor.Lote.Items[J].SegmentoA.Items[K].Credito.SeuNumero) then begin if vDescOcorrencia <> '' then vDescOcorrencia := vDescOcorrencia + ' | '; vDescOcorrencia := vDescOcorrencia + ACBrPagFor1.Arquivos.Items[I].PagFor.Registro0.Aviso.Items[A].CodigoRetorno + ': ' + ACBrPagFor1.Arquivos.Items[I].PagFor.Registro0.Aviso.Items[A].MensagemRetorno; end; end; end; ... end; end; end;1 ponto
-
Olá Familia ACBR. Estou com um problema na emissão de NFC-e. Tenho um cliente do RJ que possui um servidor na Alemanha, e emite NFC-e pelo meu sistema. Esse sistema de emissão de NFC-e é automatico e tem dias que ele simplesmente não emite mais as NFC-e dado esse erro: Erro Interno: 0 Erro HTTP: 0 URL: https://nfce.svrs.rs.gov.br/ws/NfeAutorizacao/NFeAutorizacao4.asmx tentei configurar o ACBR dessa forma ACBrNFe.Configuracoes.WebServices.TimeOut := 5000; ACBrNFe.Configuracoes.WebServices.IntervaloTentativas := 5000; ACBrNFe.Configuracoes.WebServices.Tentativas := 5; Estava configurado no windows SSL 3.0 tcl 1.1 e 1.2, para ver se resolvia troquei para SSL desabilitado e habilitado apenas TCL 1.2 a principio deu certo mas depois de um tempo voltou a ocorrer o erro, hoje deixei novamente com o SSL 3.0 tcl 1.1 e 1.2 e voltou a emitir novamente, o problema é que como é um emissor automático as vezes fica dias dando o erro até perceber. O que posso fazer para para de dar esse erro? Abandonar a CAPICOM resolve? Abraço a todos1 ponto
-
-1 pontos