-
Total de ítens
962 -
Registro em
-
Última visita
-
Days Won
5
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Valdir Dill postou
-
Fluxo de Execuções de Pagamentos TEF
Valdir Dill replied to Valdir Dill's tópico in Dúvidas sobre TEF
Bom dia, Sim, eles mandam toda documentação que você precisa para implementar seu código. Depois fazem uma revisão (homologação) para ver o teu sistema está fazendo tudo corretamente. Ainda não cheguei nessa parte, rs. Como vou usar apenas TEF, sem ECF, decidi implementar sem usar o AcbrTEFD diretamente. Estou fazendo tudo "no braço", hehe! Mas o demo do Acbr está me ajudando bastante a entender o processo de troca de arquivos. Estou criando uma classe e faço tudo com ela. Tabela de preços no anexo. Abraços. -
Fluxo de Execuções de Pagamentos TEF
Valdir Dill replied to Valdir Dill's tópico in Dúvidas sobre TEF
Bom dia, Não há nenhum tipo de exclusividade. Posso inclusive ter mais de um TEF, o deles e outros. Eu analisei a proposta da SkyTef também. Mas achei um pouco mais complicado. Tem que fazer um monte de testes. Para homologar precisa inclusive mandar cupons de testes pelos Correios e tem que homologar novamente todo ano. Além do preço ser bem mais salgado para o usuário final. Esse da TefExpress é apenas um código relativamente simples que precisa implementar para enviar/receber arquivos na C:\Tef_dial\. Achei mais simples. Mas como ainda estamos engatinhando nessa linha de TEF, sempre é bom "ouvir" os mestres antes de tomar uma decisão, hehe! Obrigado pelas dicas Daniel. Ajudou bastante. Abraços -
Fluxo de Execuções de Pagamentos TEF
Valdir Dill replied to Valdir Dill's tópico in Dúvidas sobre TEF
Certo. Ainda estou bastante "cru" em relação a TEF. Estamos pensando em uma parceria com uma empresa http://tefexpress.com.br. Pelo que entendi, nessa opção deles não precisa fazer homologação junto às bandeiras de cartão. Faz-se apenas a integração do nosso aplicativo com o TEF deles. Alguém teria informações sobre essa empresa? Recomendaria essa parceria? Obrigado! -
Boa tarde, Estou implementando rotinas de TEF, mas sem utilizar o componente AcbrTEFD. Minha dúvida é em relação à impressão do comprovante TEF. Tenho as seguintes rotinas prontas e funcionando para 1 cartão: 1 - Executa o CRT; 2 - Recebe confirmação do pagamento; 3 - Imprime o comprovante; 4 - Confirma executando o CNF. E quando forem 2 ou mais cartões? Como fazer? Devo executar todos os pagamentos primeiro e no final imprimir os comprovantes de todos os pagamentos ou executar o mesmo fluxo acima, ou seja, executa o CRT, imprime e confirma a cada pagamento realizado? Obrigado
-
Sicoob - Arquivo Remessa CNAB 240 (Atualizado Julho/2017)
Valdir Dill replied to Paulo Nichio's tópico in ACBrBoleto
Boa tarde, Alguma novidade? Obrigado. -
Imprimir 2 Cópias NFCe
Valdir Dill replied to Valdir Dill's tópico in NFC-e - Nota Fiscal do Consumidor Eletrônica
Beleza Carlos, acabei fazendo fiz como você sugeriu e agora está tudo certo. Na verdade, do jeito inicial que eu estava querendo, mesmo que eu conseguisse imprimir 2 cópias do Danfe, ficaria errado, pois, ou ambas seriam "via consumidor" ou ambas seriam "via empresa". Com essa sua dica me fez "cair a ficha", rs.. Só para enriquecer o post para o caso de outro colega tiver situação parecida, deixo aqui a rotina final que ficou no meu sistema: ACBrNFCe.DANFE.ViaConsumidor := true; ACBrNFCe.NotasFiscais.Imprimir; //imprime a via consumidor, sempre. if VImprimindoDanfeOff then begin ACBrNFCe.DANFE.ViaConsumidor := false; ACBrNFCe.NotasFiscais.Imprimir; //se estiver em contingência off, imprime a via empresa. end; Obrigado! -
Imprimir 2 Cópias NFCe
Valdir Dill replied to Valdir Dill's tópico in NFC-e - Nota Fiscal do Consumidor Eletrônica
Sim, ambos atualizados e recompilados. Testei com Fast (TACBrNFeDANFEFRNFCe) e acontece a mesma situação. Mas beleza, vou fuçar mais aqui e ver se encontro uma solução. Obrigado. -
Imprimir 2 Cópias NFCe
Valdir Dill replied to Valdir Dill's tópico in NFC-e - Nota Fiscal do Consumidor Eletrônica
Sim, eu vi um post no fórum, mas lá naquele relato o problema era um pouco diferente, ou seja, setava-se para 2 a quantidade e imprimia 4 (o dobro). No meu caso alimento direto, sem printDialog. Exemplo: if VImprimindoOffLine then ACBrNFeDANFCeFortes1.NumCopias := 2 else ACBrNFeDANFCeFortes1.NumCopias := 1; Eu debuguei e lá no ACBrDANFCeFortesFr.pas, a linha RLPrinter.Copies := NumCopias está alimentado certo, ou seja, RLPrinter.Copies fica com valor 2, mas mesmo assim, imprime só uma cópia. Obrigado. -
Imprimir 2 Cópias NFCe
um tópico no fórum postou Valdir Dill NFC-e - Nota Fiscal do Consumidor Eletrônica
Boa tarde, Quero imprimir 2 ou mais cópias de um danfe de NFCe, mas não consigo. Seto ACBrNFeDANFCeFortes1.NumCopias := 2, mas não adianta, sempre imprime apenas 1 via. Fiz teste com preview=true para imprimir na tela e também false, para imprimir na impressora. Mas sempre gera apenas uma impressão. Posso inclusive colocar mais cópias (3, 4,..), sempre imprime uma só Alguma dica? Obrigado. -
Erro ao atualizar Captcha na consulta CNPJ e Consulta CPF
Valdir Dill replied to Matias.Pontes's tópico in ACBrTCP
De fato, estava faltando a libgcc_s_seh-1.dll . Copiei-a para a pasta da aplicação e agora está funcionando 100%. Essas .dll da pasta MingGW eu tenho que distribuir junto com a aplicação sempre? Ou há alguma outra forma de fazer, sem ter que enviar todas essas .dll junto? Obrigado. -
Erro ao atualizar Captcha na consulta CNPJ e Consulta CPF
Valdir Dill replied to Matias.Pontes's tópico in ACBrTCP
Boa tarde, Aqui estava funcionando. Aí fiz atualização dos fontes (agora pouco) e passou a da erro (print anexo). Alguma dica? Obrigado. -
Boa tarde, Minha dúvida é em relação a alimentação do campo codigoCedente. Pelo que entendi, alguns bancos devo informar o DV desse dado. Já em outros, não posso informar. Vejamos dois casos/exemplos: 1 - Banco Bancoob function TACBrBancoob.MontarCampoCodigoCedente ( const ACBrTitulo: TACBrTitulo ) : String; var CodigoCedente: String; begin CodigoCedente := ACBrTitulo.ACBrBoleto.Cedente.CodigoCedente; Result := ACBrTitulo.ACBrBoleto.Cedente.Agencia + '/'+ copy(CodigoCedente,1,length(CodigoCedente)-1)+ '-'+ copy(CodigoCedente,length(CodigoCedente),1); end; 2 - Caixa Econômica function TACBrCaixaEconomica.MontarCampoCodigoCedente ( const ACBrTitulo: TACBrTitulo ) : String; begin Result := RightStr(ACBrTitulo.ACBrBoleto.Cedente.Agencia,4)+ '/' + ACBrTitulo.ACBrBoleto.Cedente.CodigoCedente+ '-' + CalcularDVCedente(ACBrTitulo); end; Para o Bancoob (exemplo 1) o Acbr considera o DV como sendo o último caractere do codigoCedente informado, ou seja, na alimentação desse campo devo obrigatoriamente concatenar código cedente + DV. Já no exemplo 2 (CEF), o acbr calcula acrescenta o DV ao código do cedente, ou seja, devo informar apenas o código cedente, sem DV. A dúvida é: como posso saber qual banco devo e qual banco NÃO devo alimentar o DV do código do cedente? Obrigado.
-
- 1
-
-
Sicoob - Arquivo Remessa CNAB 240 (Atualizado Julho/2017)
Valdir Dill replied to Paulo Nichio's tópico in ACBrBoleto
Boa tarde, Em anexo a unit alteração sugerida que gera o código correto na linha detalhe para Cnab 400. Alteração na linha 89. Obrigado ACBrBancoBancoob.pas -
Tratar Erro de Certificado que Não Gera Exceção em Tempo de Projeto.
Valdir Dill replied to Valdir Dill's tópico in ACBrNFe
Boa tarde, Obrigado pela dica, mas o método Configuracoes.Certificados.GetCertificado não existe mais. Além disso, esse método utiliza a Capicom, que também está com viés deprecated no Acbr. Obrigado! -
Tratar Erro de Certificado que Não Gera Exceção em Tempo de Projeto.
um tópico no fórum postou Valdir Dill ACBrNFe
Boa tarde, Estou com uma situação e gostaria de uma dica para resolver ou pelo menos criar um aviso mais transparente ao usuário. É assim: 1) Configuro todos os dados do certificado (A3 com Capicom) nas propriedade SSL. 2) Aciono a rotina ACBrNFCe.SSL.CarregarCertificado; Estando tudo ok com o certificado, funciona tudo beleza. Mas, se deixar o certificado desconectado da leitora, ocorrerá o seguinte erro: "Falha em obter Provedor de Criptografia do certificado. Erro: 80092008". Gostaria de alguma dica dos colegas, não exatamente em relação a esse erro específico, mas sim como tratar um erro que ocorre quando, por exemplo, o usuário não tiver o certificado conectado na leitora. É lógico que o certificado estando desconectado é um problema que o usuário tem que resolver, mas eu preciso poder dar um aviso a ele que algo está errado. Se o certificado estiver desconectado e eu fizer assim: try ACBrNFCe.SSL.CarregarCertificado; except ShowMessage('Houve um erro na tentativa de conexão com o certificado.'); //isso aqui não acontece, ou seja, mesmo que ocorra erro no try acima, não gera esta exceção. end; Em tempo de projeto, a linha ACBrNFCe.SSL.CarregarCertificado gera uma mensagem com o erro acima relatado ("Falha em obter provedor..."). Mas em em execução não aparece nada para o usuário, mas o certificado não é carregado. Alguma dica de como tratar essa situação? Obrigado. -
Boa noite, Acho que você tem razão. A contingência EPEC pode ser acionada pelo próprio emitente. Os SVC (RS e AN) é que precisam de autorização especial de cada SEFAZ. Abraços
-
Certo, mas uma hora você vai precisar, rs... Lembrando que quem define qual contingência usar não é o software, mas sim a própria SEFAZ, no momento que libera o envio em contingência. Obrigado.
-
Bom dia, Sim, NFe em contigência EPEC. Obrigado
-
Bom dia, Também tivemos umas 4 ou 5 situações exatamente como essa relatada no post. Nossa orientação foi para o usuário solicitar algo mais concreto (como um laudo, por exemplo) por parte da certificado e não apenas alegações verbais. Outro argumento que pedimos para nosso cliente utilizar junto à certificadora é "...o certificado de vocês é tão frágil em termos de segurança que o nosso simples sistema gerencial consegue acessar o cartão e destruí-lo? Qual é a segurança que o certificado oferece então?..." Nunca tivemos retorno, rs... Abraços.
-
Bom dia, Estou abrindo este post, mais com o objetivo de buscar opinião sobre uma questão que estou na dúvida como proceder. Trata-se de NFes enviadas em contingência e que depois devem ser reenviadas mudando a forma para normal. Pelo que analisei nos manuais de integração, o que encontrei foi que a nota enviada em contingência deve ser retransmitida pela opção normal após sanado problema da contingência, mas essa retransmissão deve ser com o mesmo arquivo XML que foi enviado quando da contingência. Ocorre que, como todos sabemos, a conferência do XML pelo WS na contingência é precário, ou seja, confere apenas alguns poucos dados. Nessa conferência, a nota pode ter algum dado incorreto, mas esse erro "passa" na contigência. Porém, no envio normal, o erro não passa e aí acontece a rejeição quando da retransmissão. Como vocês procedem nesses casos? Permitem que o usuário faça alterações nos dados da nota? Mas aí teria que gerar um novo XML e isso não seria contrário às normas? Por outro lado, se não permitir alteração na nota depois de enviado por contigência e ocorrer a rejeição posterior, o usuário não conseguirá retransmitir a nota!!! Agradeço pelas opiniões/sugestões Obrigado!
-
Bom dia, Funciona sim Agnaldo, basta não atribuir a senha ao componente Acbr na segunda vez que for usá-lo. Mas só acontece com SERASA. Isso é certeza, pois fiz dezenas e dezenas de testes com outros certificados e não ocorre. Com SERASA, fiz dezenas e dezenas de testes e, se atribuir a vez segunda a senha ao componente antes a aplicação ser encerrada, dá o erro ao usar qualquer operação do Acbr que chame o certificado. E nem adianta destruir/recriar o componente Acbr, vai dar erro igual. Acho que o certificado controla isso da aplicação que o chamou e não pelo componente Acbr. Prova disso é que quando não se alimenta a senha no componente, a tela do PIN é chamada uma única vez pelo gerenciador do certificado (isso já vale para qualquer certificado A3). Eu fiz da seguinte forma e e está funcionando 100% em vários clientes que antes (quando eu atribuía a senha na segunda vez) não funcionava: 1) No onCreate do DataModule (que é onde está meu componente): - ACBRNFe1.tag := 0; //atribuo 0 só para garantir, pois 0 já é o default. Obs.: a) O DM é criado somente uma vez durante toda aplicação; Não, não adianta criar o DM dinamicamente e destruí-lo depois. Como mencionei acima, o certificado faz algum tipo de controle pela aplicação que o chama. 2) Ao iniciar qualquer procedimento do Acbr que necessitará do certificado: a) if ACBRNFe1.tag = 10 then exit; try b) ACBRNFe1.SSL.Senha := TBDadosCertif.FieldByName('SenhaCert').asString; c) Configuracoes.Geral.SSLLib := libWinCrypt; n) ...; y) ACBRNFe1.SSL.CarregarCertificado; z) ACBRNFe1.tag := 10; except ACBRNFe1.tag := 0; end; Funciona perfeito. Mas, se o item 2 b for executado uma segunda vez pela aplicação, e se tentar assinar um XML, por exemplo, vai dar o erro se o certificado vinculado for A3 SERASA. Abraços.
-
Boa tarde, Bem, em primeiro lugar é preciso salientar que o problema só ocorre com certificados A3 SERASA. Pelo menos comigo foi assim. 1 - AcbreNFe1.Configuracoes.Geral.SSLLiB = Wincrypt 2 - AcbreNFe1.SSL.Senha := '123456' 3 - Enviar uma nota 4 - Sem sair do sistema, repetir passos 2 e 3. Ao tentar enviar a segunda nota, dá o erro. Observações: 1 - Se não informar a senha para o componente nenhuma vez (passo 2), aí quando vai enviar a nota, será aberta a tela do PIN (só pede a primeira vez), informa-se a senha normalmente e o erro não ocorre; 2 - No passo 2 acima, se mudar para "if AcbreNFe1.SSL.Senha <> emptyStr then AcbreNFe1.SSL.Senha := '123456'", aí o erro não ocorre, ou seja, se não atribuir a senha uma segunda vez ao componente, aí o erro também não ocorre. Obrigado
-
Bom dia, Sim, agora com a mudança de url (atualização 13903) está funcionando beleza, mesmo com acentuação/espaços. Provavelmente que a URL antiga é que não aceitava no formato "Lucas%20do%20Rio%20Verde". Mas agora está beleza. Obrigado.
-
Bom dia, Pelo código está funcionando. O que não funciona é pelo nome da cidade quando o nome tem espaço(s) e/ou acentuação. A linha Param := AjustaParam( ACidade ) da function TACBrIBGE.BuscarPorNome(const ACidade : String ; ... está formatando assim: Espaços: cidade: Lucas do Rio Verde: formatação do ACBR: Lucas%20do%20Rio%20Verde. O correto seria Lucas+do+Rio+Verde. Pelo menos é assim que gera lá na url do site do IBGE, quando se consulta direto. Acentuação: cidade: Divinópolis: formatação do ACBR: Divin%F3polis. O correto (para funcionar) seria Divinopolis. No caso da acentuação, um simples TiraAcentos() já resolve. Mas no caso dos acentos...não sei ainda como fazer. Obrigado!
-
Bom dia, Não sei se entendi direito, mas nesse caso não seria dispensável a variável? Colocando apenas if ACBrNF.SSL.Senha= '' then begin ... end; ao invés de U_Acesso_Term.VSENHADIGITADACERT = '' then begin ...end;? Obrigado!