Ir para conteúdo
  • Cadastre-se

Valdir Dill

Membros Pro
  • Total de ítens

    950
  • Registro em

  • Última visita

  • Days Won

    5

Tudo que Valdir Dill postou

  1. Sim, isso mesmo @Juliomar Marchetti E pior que instalando o app diretamente no TSG800, aí funciona. Mas seu eu executar o app no celular e tentar imprimir via bluetooth, aí dá esse erro que relatei. Obrigado.
  2. Boa noite, Estou testando o AcbrPosprinter em Android e está ocorrendo um erro (print anexo). Uso o demo do svn. Erro: java.io.ioexception read failed socket might closed or timeout, read ret: -1 Ocorre no momento que que se clica no botão "Ativar" do app. Obs.: no demo não fiz nenhuma alteração no código. A única coisa que faço no app em execução é selecionar a impressora bluetooth, que é um TSG800. Alguma sugestão?
  3. Boa tarde, Não seria interessante que a "function IsWorkingDay(ADate: TDateTime): Boolean" da acbrUtil.pas considerasse também os feriados? Anexo a função já pronta para apreciação e, se for o caso, implementação oficial. Obrigado. ACBrUtil.pas
  4. Eu também acredito que seja isso...alguma coisa no gerenciador do certificado talvez... Mas não tivemos acesso à máquina do usuário para uma análise mais detalhada. Como foi um caso beeeem isolado, deixamos para lá e orientamos o usuário a comprar um A1 na próxima renovação de certificado, hehe!
  5. Boa tarde, Também temos um usuário onde isso acontece. Num universo de centenas de usuários, apenas um único ocorre isso. Certificado A3. A senha é alimentada tudo certinho no componente. Tanto é que em todos os demais usuários que usam o mesmo sistema, o processo de assinatura de XMLs ocorrem normalmente, ou seja, sem pedir a senha. Mas nesse único usuário, assim que o procedimento de assinar é acionado, abre-se a telinha do certificado para informar a senha. É como se não tivesse sido informada a senha no componente. Obriagdo
  6. Bom dia, De fato, informei os dados e foi autorizado. Obrigado.
  7. Boa tarde, Estamos testando (envio em homologação) a emissão de MDFe de CTe de lotação (apenas um documento) e estamos recebendo a rejeição: "726 - O grupo de informações da carga lotação deve ser informado"... Pelas análises, constatamos que é pela falta das informações prodPred.infLocalCarrega.CEP e prodPred.infLocalDescarrega.CEP, as quais de fato não estão sendo alimentadas. Porém, segundo a NT 2020.001 versão 1.04, essa regra só vai ser aplicada a partir de 06 de julho próximo... Porque será então que está acontecendo a rejeição? Na NT diz que será aplicada em produção. Será que estamos tendo a rejeição porque estamos enviando em homologação? Em anexo arquivos de envio/retorno. Obrigado. 289000007608599-pro-rec.xml 289000007608599-pro-rec-soap.xml 28200427818048000168580010000000511356219011-mdfe.xml
  8. Ficou bem esclarecido. Obrigado!
  9. O texto anterior com a dúvida ficou truncado. Repito-o para melhor entendimento. Então, pelo que entendi, desse jeito que estou fazendo, ou seja, com essa diretiva acima inativa, eu distribuir ou não as .dll da pasta ...\DLLs\XMLSec\MinGW\32\ não muda nada. É isso?
  10. Bom dia, ...Hoje em dia eles não são mais necessários... Não sabia disso, rs... Meu acbr.Inc está assim: //{$DEFINE USE_MINGW} Então, pelo que entendi, desse jeito que estou fazendo, ou seja, com essa diretiva acima inativa, a distribuir ou não as .dll da pasta ...\DLLs\XMLSec\MinGW\32\ não nada. É isso? Obrigado.
  11. Valdir Dill

    Dlls OpenSSl

    Boa noite, Gostaria de entender melhor essa questão das .dll que estão disponíveis no svn. Gostaria de entender melhor para que eu possa também distribuir os arquivos corretos e apenas eles. Me refiro mais especificamente às .dll openSSl. Vamos lá: Na pasta ..\DLLs\OpenSSL\1.0.2.21\x86\ temos duas bibliotecas: - ssleay32.dll - versão 1.0.2.21 - libeay32.dll - versão 1.0.2.21 Já na pasta ..\DLLs\XMLSec\MinGW\32\, temos as mesmas bibliotecas, porém em outra versão: - ssleay32.dll - versão 1.0.2.5 - libeay32.dll - versão 1.0.2.5 As dúvidas são: 1) Como esses dois arquivos estão duplicados (em duas pastas do repositório), quais desses arquivos devo utilizar no meu binário e também distribuir com a aplicação? 2) Neste tópico - https://www.projetoacbr.com.br/forum/topic/55737-fontes-do-acbr-já-suportam-openssl-111/?tab=comments#comment-365585 - recomenda a atualização dessas .dll e nele menciona que os arquivos ssleay32.dll e libeay32.dll mudaram para libssl-1_1.dll e libcrypto-1_1.dll, respectivamente. No caso de eu passar a utilizar os novos arquivos versão, não devo mais usar/distribuir os ssleay32.dll e libeay32.dll, é isso? Obrigado
  12. Bom dia, A NT 2016.002 v140 excluiu a tag/campo IPI.clEnq da NFe. Não seria o caso de excluir também essa property no Acbr para evitar dúvidas? Obrigado.
  13. Valdir Dill

    Duplicatas em NFe

    Boa tarde, Estou com uma dúvida sobre valores de pagamentos/duplicatas em NFe. Exemplo: em uma venda de R$ 90,00: - R$ 30,00 recebidos em dinheiro no ato da venda; - R$ 60,00 em 3 parcelas de R$ 20,00 com vencimentos futuros. A duvida é como informar o grupo duplicatas na NFe. Deve ser informado 4 parcelas (uma de 30,00 e outras 3 de R$ 20,00) e o valor da fatura (vLiq) no total da nota (R$ 90)? Ou deve-se informar 3 parcelas de R$ 20,00 e valor da fatura (vLiq) no valor de R$ 60,00? Há uma forma correta ou ideal para se informar esses dados? Obrigado
  14. Bom dia, Ok, obrigado @Italo Jurisato Junior
  15. Bom dia, Estou com problema com o retorno do provedor IPM, mais especificamente para o município de Colombo-PR. O envio da nota e processamento no servidor está tudo certo. Apenas o XML que estou capturando de ACBrNFSe1.NotasFiscais.Items[0].NFSe.XML vem com tags HTML e outras informações. Aí não consigo imprimir a nota pelo Acbr. Em anexo estou enviando o XML retornado. Também fiz um teste abrindo esse retorno via browser. Aí ele gera a nota na tela. Para testar -> https://sistemagfil.com.br/testeNFSe.html Estou fazendo algo errado ou é um problema desse provedor mesmo? Vi que tem dois posts do ano passado tratando desse problema, mas sem uma solução. Obrigado. retornoNFSeIPM.xml
  16. Bom dia, No caso da NFSe, o grupo "with Servico.ItemServico.Add do" deve ser informado sempre ou depende do provedor? No demo Acbr está informado que "Somente o provedor SimplISS permite infomar mais de 1 serviço". Isso quer dizer que no caso desse provedor, posso .add mais de um serviço e nos demais não, certo? Mas e nos demais provedores, posso (ou devo) também informar UM serviço no ItemServico ou não devo informar nenhum? Notei que, no caso do ISSCuritiba, se eu informar ou não, não faz diferença, pois não é gravado nada no XML. O próprio acbr controla se essa informação vai para o XML ou não, é isso? Obrigado.
  17. Bom dia, Depois de muita lida e ajuda de todos, ao que tudo indica, o problema está resolvido. Para registro vou explicar o que estava fazendo e, segundo a dica passada pelo @Daniel Simoes, não era a forma ideal. Vamos lá: O que preciso é que sejam alimentadas duas variáveis (VCNPJCert e VVctoCert) para uso em outras rotinas. Isso precisa ser feito antes de qualquer outra operação relacionada a documentos fiscais. Logicamente que primeiro são alimentadas todas as propriedades SSL do componente ACBrNFe1 e que não precisa detalhar aqui. Forma que eu estava (errada) - ACBrNFe1.SSL.NumeroSerie := SerieDoCertGravadaEmIni; - VVctoCert := ACBrNFe1.SSL.CertDataVenc; //esta linha e a próxima, disparavam a rotina ACBrNFe1.SSL.SelecionarCertificado, a qual, além de ser mais lenta, gerava o problema depois quando a aplicação era encerrada e destruía o componente ACBrNFe1, que foi o problema inicial deste post. - VCNPJCert := ACBrNFe1.SSL.CertCNPJ; Forma ideal (correta) - ACBrNFe1.SSL.LerCertificadosStore; - for I := 0 to ACBrNFe1.SSL.ListaCertificados.Count-1 do With ACBrNFe1.SSL.ListaCertificados do begin if NumeroSerie = SerieDoCertGravadaEmIni then //se é o certificado que o usuário selecionou no módulo de parametrização begin VVctoCert := DataVenc; VCNPJCert := CNPJ; end; end; Obrigado a todos.
  18. Não é minha aplicação que chama essa janela do Windows. Ela aparece sozinha, hehe! Estou investigando e percebi que a situação ocorre no encerramento da minha aplicação porque é neste momento que a aplicação destroi o dataModule e nele estã o componente ACBrNFe1 que carregou o certificado ao enviar a nota. Se, ao invés de fechar a aplicação, eu apenas fizer um ACBrNFe1.Free, acontece o mesmo problema, ou seja, aparecerá essa janela do Windows pedindo o certificado. Esse ACBrNFe1.Free chama TDFeWinCrypt.DescarregarCertificado. Debugando percebi que a janela abre ao ser executado SetCertContextPassword( FpCertContext, '' ) da procedure TDFeWinCrypt.DescarregarCertificado;
  19. Sim, também acho que seja isso, ou seja, é uma interceptação do Windows. Mas o estranho é que ocorre somente quando tento encerrar minha aplicação, entende? Se o usuário desplugar o certificado e a minha aplicação ficar 2 horas ativa, nada vai acontecer até que ela não seja encerrada. Mas tranquilo, eu imaginei que houvesse alguém que já tivesse passado por situação parecida. A ideia seria justamente isso que você mencionou, ou seja, alguma função que "dissesse" ao Windows que o certificado já não estaria mais em uso. Obrigado.
  20. Obrigado pela sugestão @Italo Jurisato Junior , mas não ajuda muito. Eu também penso assim, ou seja, que o usuário deve usar certificado A1. Mas não posso obrigar centenas de usuários a comprar o hardware que EU quero. O que podemos fazer é sempre orientamos a usar A1, mas nossos clientes são livres para fazer como acharem melhor. Se fosse tão simples, o próprio Acbr já poderia ter esse bloqueio e não aceitar A3, que tal? Não seria viável, pois, apesar do A3 ser essa porcaria, temos que aceitar que existe. Nosso papel como desenvolvedor é orientar, mas o usuário também pode ter seus critérios de escolha, segurança, etc. Nosso papel é tentar facilitar o processo, sempre que possível. Isso é o que penso! Abraços.
  21. De fato. Erro meu de Ctrl+C e Ctrl+V, rs.. O correto: SSLCryptLib := cryWinCrypt; SSLHttpLib := httpWinHttp; SSLXmlSignLib := xsLibXml2; Obrigado.
  22. Bom dia, Está ocorrendo uma situação estranha: após emitir uma nota fiscal e, por consequência estabelecer uma conexão dos componente Acbr com o certificado digital, ao se encerrar nosso sistema, está abrindo a tela do Windows pedindo que se conecte o certificado (print anexo). Isso só ocorre se, após emitida a nota fiscal e antes de fechar o sistema, se desplugar o usb da leitora do certificado. Usamos : - Certificado A3 - ACBrNFe1.SSL.SSLType := LT_TLSv1_2; - ACBrNFe1.Configuracoes.Geral.SSLCryptLib := cryOpenSSL; - ACBrNFe1.Configuracoes.Geral.SSLHttpLib := httpOpenSSL; - ACBrNFe1.Configuracoes.Geral.SSLXmlSignLib := xsLibXml2; Pelo que entendi, algum procedimento precisa do token conectado, mas qual e quando? Isso é normal ou há alguma rotina (algum componente.free, não sei) que deveria ser feito e de repente não estamos fazendo? É claro que esse procedimento (desplugar o token) não é recomendável, mas nunca se sabe quando e o que o usuário faz. Então, quanto menos telas e erros forem apresentados a ele, melhor...
  23. Bom dia, Ao executar um acbrNFe1.loadfromfile(arquivoanexo), ele está trazendo uns caracteres bem estranhos na stream. Fiz um teste com o conteúdo do xml no validador SEFAZ-RS e está ok. Fiz outro teste copiando o conteúdo e criando um novo arquivo (via bloco de notas) e salvei. Leu direitinho. Mas no arquivo original que meu cliente recebeu do fornecedor dele, não consegue ler. Imagino eu que seja problema do padrão com que o arquivo foi gravado. A dúvida é, como poderia interceptar isso ao tentar ler o arquivo e ver os dados da nota, ou seja, ao invés de dar um erro tipo "...argument out of range...", o sistema tentar confirmar se o arquivo é de fato válido. Obrigado. NFe35200201771935000215550030011388711141123558.xml
  24. Agradeço a sugestão, mas não tenho como adotá-la porque preciso das informações antes de gravar no BD. Além disso, nos outros bancos a informações no arquivo de retorno vêm numa linha só. Aí, de toda forma precisaria de rotinas diferentes. A solução que encontrei foi essa. Deixo aqui para talvez ajudar alguém no futuro: for I := 0 to ACBrBoleto1.ListadeBoletos.Count - 1 do begin if (ACBrBoleto1.ListadeBoletos.Objects.OcorrenciaOriginal.Tipo in [toRetornoLiquidado, toRetornoLiquidadoSemRegistro, toRetornoDebitoTarifas]) then begin if ACBrBoleto1.ListadeBoletos.Objects.OcorrenciaOriginal.Tipo <> toRetornoDebitoTarifas then begin VNumBoleto := ACBrBoleto1.ListadeBoletos.Objects.NossoNumero; VValorRec := ACBrBoleto1.ListadeBoletos.Objects.ValorRecebido; end; if VBaixa.FTipoRet = cobSicred then //o sicred o retorno vem em duas linhas. begin for M := 0 to ACBrBoleto1.ListadeBoletos.Count - 1 do begin if (ACBrBoleto1.ListadeBoletos.Objects[M].OcorrenciaOriginal.Tipo = toRetornoDebitoTarifas) and (ACBrBoleto1.ListadeBoletos.Objects[M].NossoNumero = ACBrBoleto1.ListadeBoletos.Objects.NossoNumero) then VTotTarifas := ACBrBoleto1.ListadeBoletos.Objects[M].ValorDespesaCobranca; end; end else VTotTarifas := ACBrBoleto1.ListadeBoletos.Objects[M].ValorDespesaCobranca; end; end; end; Obrigado.
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.