Ir para conteúdo
  • Cadastre-se

bnobre

Membros Pro
  • Total de ítens

    1.491
  • Registro em

  • Última visita

  • Days Won

    4

Tudo que bnobre postou

  1. Oi Basicamente no dia 30-09-2022 eu executei a consulta começando com o 961. Então executei o código abaixo: CNPJ := Emitente_CNPJCPF; docs := 0; repeat try ACBrNFe1.DistribuicaoDFe( iso_estado, CNPJ, sUltimoNSU, '' ); //UltimoNSU = Começou com 961 sStat := IntToStr(ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat); sMotivo := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.xMotivo; if ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 137 then sTemMais := 'N' else sTemMais := 'S'; sUltimoNSU := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU; ...//armazeno o valor acima no banco if ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.cStat = 138 then begin j := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count - 1; for i := 0 to j do begin sSerie := ''; sNumero := ''; sCNPJ := ''; sNome := ''; sIEst := ''; sNSU := ''; sEmissao := ''; sTipoNFe := ''; Valor := 0.0; Impresso := ' '; if ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.chDFe <> '' then begin // Conjunto de informações resumo da NF-e localizadas. // Este conjunto de informação será gerado quando a NF-e for autorizada ou denegada. sChave := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.chDFe; sSerie := Copy(sChave, 23, 3); sNumero := Copy(sChave, 26, 9); sCNPJ := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.CNPJCPF; sNome := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.xNome; sIEst := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.IE; case ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.tpNF of tnEntrada: sTipoNFe := '0'; tnSaida: sTipoNFe := '1'; end; sNSU := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].NSU; sEmissao := DateToStr(ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.dhEmi); Valor := ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.vNF; case ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Items[i].resDFe.cSitDFe of snAutorizado: Impresso := 'AUTORIZADO'; snDenegado: Impresso := 'DENEGADO'; snCancelado: Impresso := 'CANCELADO'; end; end; ...// Registro no Banco de Dados as Notas Retornadas pela Consulta end; end; except on E : Exception do begin messageBox(handle,Pchar(e.message),'Erro!',MB_ICONERROR+mb_OK); Exit; end; end; until (sTemMais = 'N'); Com esse código os únicos arquivos de LOG que foram gerados foram esses... Como assim o retorno dessa execução? Algum outro log? Devo especificar algo há mais no meu código para ter esse retorno? Não entendi que retorno seria esse... seria um arquivo de log?
  2. Descobri o que era... No meu exemplo estava pegando o valor para descriptografar de um Memo, e não de um Edit conforme você fez... Se pegar de um Memo (Memo1.Text) o valor criptografado e tentar descriptografar, tu vai ter o mesmo problema que eu... Estranho... Mas era isso mesmo que precisa... Valeu mesmo Pena que o Delphi não tem algo assim nativo
  3. Então... Me desculpe a ignorância, mas o que seria um TYPE? Se souber de algum texto que possa me explicar eu te agradeço. E conseguiu ver a questão do caractere que aparece no final? Esqueci de anexar a imagem... Segue anexo. Ah... O nome são tipo enumerados, achei aqui https://drgarcia1986.wordpress.com/2011/12/07/tipos-enumerados-em-delphi/
  4. É exatamente isso que preciso, mas por algum motivo ficou acrescentando um caracter ao final na hora de descriptografar, conforme em anexo. Sabe porque? E outra dúvida, essa seria sobre Delphi... o que significa o trecho abaixo e onde é o local correto para colocá-lo no código (coloquei antes do implementation): Type TTipoCript = (tcCript, tcDecript); Desde já agradeço as discas
  5. Oi @Italo Giurizzato Junior... Tudo bom? Segue os arquivos de log do momento em que realizei a consulta em anexo. Como pode ver o ultNSU é o 000000000001077. Conforme tinha falado, a última nota retornada na consulta tem o NSU de número 000000000001051. Daí a minha dúvida... É isso mesmo? O ultNSU não teria que ser o NSU da última nota carregada? 20220930093111-con-dist-dfe.xml 20220930093111-dist-dfe.xml 20220930093108-con-dist-dfe.xml
  6. Opa... Vou dar uma olhada durante a semana e posto os comentários aqui... Obrigado meu amigo
  7. Oi Italo, tudo bom? Segunda vou consultar no micro do escritório e posto aqui.
  8. Dei uma conferida aqui, mas não é isso que eu estava pensando. O que eu queria é especificar por exemplo: 1 - Tenho uma senha "teste123" e um SALT "F881mwZnJ&29". 2 - Com os dados acima o sistema geraria uma criptografia e eu armazenaria no banco. 3 - Depois eu quero pegar esse conteúdo no banco e descriptografar (e não apenas comparar como no caso do MD5 ou do BCrypt) 4 - Sendo que para essa descriptografia eu precisaria, além da senha criptografada que está no banco, também do SALT que estaria no código do meu executável.
  9. Oi @datilas, tudo bom? Sua explicação sobre o MD5 está correta, portanto com o acesso ao HASH completo (que foi gravado no banco) o invasor pode através de um ataque de força bruta descobrir. Já com o SALT, se eu não estiver falando besteira, eu não teria o HASH completo no banco, teria uma parte lá e o SALT no meu código fonte, e só com os 2 eu teria o HASH completo, então para isso o invasor teria que descobrir o SALT no meu código. Esse bcrypt usa esse conceito de SALT?
  10. Como eu disse essas impressoras estão uma epidemia aqui... Não sei como vocês estão se virando nos outros estados.
  11. Olá a todos, Me perdoem pela demora, mas ficou o caos aqui, aí pedi para a @Juliana Tamizou reabrir o tópico pra mim. Conforme pedido pelo Daniel, estou anexando algumas fotos: Primeiro de um cupom impresso nessa impressora e um em uma impressora tradicional (Epson, Bematech, Elgin, etc), para que possam ver a diferença: Segundo de um fechamento de caixa nessa impressora e um em uma impressora tradicional (Epson, Bematech, Elgin, etc), para que possam ver a diferença: Como podem ver, no cupom já fica estranho, mas no fechamento de caixa corta. Normalmente uso 48 ou 42 colunas para a maioria das impressoras no ACBrESCPOS, mas essa o melhor resultado que obtive com 30 colunas, conforma a configuração abaixo:
  12. Olá a todos, Tenho um projeto em Delphi onde eu criptografo a senha em MD5 e armazeno no banco, depois eu descriptografo e leio a senha. Mas se alguém tiver acesso ao banco e executar uma função de descriptografia MD5, assim como eu, terá acesso a senha. O Delphi tem algum tipo de criptografia com SALT? Uso isso em JS e resolve essa questão, pois o SALT ficaria gravado no código do executável e ninguém teria acesso, e sem o mesmo só a senha criptografada o banco seria inútil. Desde já agradeço a atenção
  13. PS: Outra coisa que achei interessante, na consulta, a última nota carrega tem o NSU 000000000001051, mas o componente retornou como ultNSU (ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU) o valor 000000000001077. É isso mesmo? O ultNSU não teria que ser o NSU da última nota carregada?
  14. Bom dia meu amigo... Tudo bom? Desculpa a demora, está um caos aqui. kkkkkkkkkkkkk Teve uma reviravolta, copiei o banco de dados do cliente agora e testei em minha máquina, aqui consultou normal. Com o mesmo ultNSU (961). Não sei porque lá estava dando erro esse tempo todo... Terei que acompanhar... Tem idéia do que poderia ser? Desde já agradeço a atenção
  15. Olá Renato, Beleza? Obrigado pelo retorno. Então estou usando o código correto, na verdade até imaginei que usava, pois outros clientes conseguem consultar normal. Mas estou com um cliente que sempre que ele tenta consultar ele recebe o seguinte erro: Rejeicao: Consumo Indevido (Deve ser utilizado o ultNSU nas solicitacoes subsequentes. Tente apos 1 hora) A última consulta que ele conseguiu fazer foi dia 18/03/2022 e o ultNSU no sistema está gravado com o valor "000000000000961". Pra piorar a situação esse cliente usa nosso sistema em mais 2 CNPJs dele e nos mesmos a consulta funciona normal. Alguém pode me dar uma luz do que pode estar acontecendo? Desde já agradeço a atenção de todos
  16. Oi Juliomar, tudo bom? Já tinha visto esse comando... Mas esse que estou usando ainda funciona e tem um parâmetro ULTNSU, portanto creio que ele se baseia no ultimo NSU consultado que é a exigência da consulta. Por isso queria saber se ele é equivalente ao "DistribuicaoDFePorUltNSU( <código da UF do destinatário>, <CNPJ do destinatário>, <numero do ultimo NSU> )" que você citou.
  17. Olá a todos, Atualmente nos meus clientes eu uso o seguinte código para fazer a consulta das notas: ACBrNFe1.DistribuicaoDFe( iso_estado, CNPJ, sUltimoNSU, '' ) Aonde o "sUltimoNSU" representa o ultNSU que armazenei no banco, capturado ao final de cada consulta com o comando ACBrNFe1.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU. Está correto isso?
  18. Boa tarde galera, Basicamente coloquei a chamada de uma função no evento onException do componente ApplicationEvents que irá registrar em um TXT qualquer exceção global gerada pelo programa, armazenando o valor do E.Message. Até aí tudo certo, mas seria bem mais interessante se além do E.Message, eu pudesse também registrar a linha que disparou essa exceção. Tem algo no Delphi para atingir esse objetivo? Desde já agradeço a atenção
  19. Kkkkkkkkk Era usado pelo Delphi X4? Qual é o usado agora? Desde já agradeço os esclarecimentos
  20. Oi Daniel... O que seria esse compilador NEXTGEN?
  21. RESTRequest1.Method := rmPOST; RESTRequest1.Resource := ''; RESTRequest1.Params.ParameterByName('body').Value := jsonInsert; RESTRequest1.Execute; jsonValue := TJSONObject.ParseJSONValue(RESTResponse1.Content); try inseridos := jsonValue.GetValue<integer>('result'); finally jsonValue.Free; end; Tipo assim?
  22. Olá a todos, Estou com o seguinte código procedure ... var jsonValue: TJSONValue; begin try RESTRequest1.Method := rmPOST; RESTRequest1.Resource := ''; RESTRequest1.Params.ParameterByName('body').Value := jsonInsert; RESTRequest1.Execute; jsonValue := TJSONObject.ParseJSONValue(RESTResponse1.Content); inseridos := jsonValue.GetValue<integer>('result'); finally jsonValue.Free; end; end; Bem, com esse código recebo o alerta abaixo: [dcc32 Warning] Unit1.pas(236): W1036 Variable 'jsonValue' might not have been initialized Até tudo bem, pois sei que o alerta surgiu pelo fato de eu não ter inicializado ela antes do try. Então coloquei o seguinte comando antes: jsonValue := nil; Com isso o alerta sumiu... Mas existe alguma forma mais "recomendável" de inicializar essa variável? Desde já agradeço a atenção
  23. Oi Juliomar... Na verdade não... É aplicação desktop Windows mesmo, estou usando VCL. Mas nos tutoriais tem essa mistura! Devo usar qual então?
  24. Oi Pessoal, Estou trabalhado com JSON no Delphi... Em alguns tutoriais eu vejo o pessoal usar o DisposeOf para encerrar objetos JSON, por exemplo: jsonObject.DisposeOf; Em outros usam o Free: jsonObject.Free; Qual a diferença entre eles? Qual é o que devo usar? Desde já agradeço a atenção de todos
  25. Também estou precisando fazer isso... No axios funciona: https://masteringjs.io/tutorials/axios/delete-with-body
×
×
  • 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.

The popup will be closed in 10 segundos...