Jump to content

click.png

click.png

click.png

click.png click.png click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

Gefferson Ferraz

Membros
  • Posts

    21
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Gefferson Ferraz's Achievements

Apprentice

Apprentice (3/14)

  • First Post
  • Collaborator Rare
  • Conversation Starter
  • Week One Done
  • One Month Later

Recent Badges

1

Reputation

  1. Na tela nao vem nada de differente, tens que acompanhar o comprovante, nele mostra que tu ganhou 5% descontos, ou na prox compra tem sobremesa... Coisas assim.
  2. [PinPadCompartilhado] Porta=4 [geral] TransacoesAdicionaisHabilitadas=3323 A propriedade ParametrosAdicionais do componente estão vazias. Veja a pag. 79 do manual da dll... GDrive Manual
  3. 5 posiçõs, pelo proprio demo do acbr, ele cria um form para solicitar o cvv. Quando o form está com lendo o cvv eu altero o max_length do edit para 5. Quando fiz a homologação, no fim do procedimento achamos um cartao HSBC sem chip,..., mas naquele ponto o teste de cvv já havia sido aprovado rs
  4. Creio que não tive o direito de passar por uma analise do código enviado. Como eu disse anteriormente, eu me atentei ao fato de manter a compatibilidade com quem já preenche a tag E1 e P1 para popular nos registros que sofrem a herança. Segue código com minhas alterações e indicativos da compatibilidade aplicada: procedure TPAF_P.WriteRegistroP2; ... for intFor := 0 to FRegistroP2.Count - 1 do begin with FRegistroP2.Items[intFor] do begin if trim(CNPJ) = trim('') then ===> Se o CNPJ não for alimentado na classe do P2, será herdado da P1, assim, mantendo compatibilidade. CNPJ := FRegistroP1.CNPJ; ///Check movido para dentro do with, antes estava acima dele. Check(funChecaCNPJ(CNPJ), '(P2) ESTOQUE: O CNPJ "%s" digitado é inválido!', [CNPJ]); Add( LFill('P2') + LFill(CNPJ, 14) + ... end; procedure TPAF_E.WriteRegistroE2; ... with FRegistroE2.Items[intFor] do begin if trim(CNPJ) = trim('') then ===> Se o CNPJ não for alimentado na classe do E2, será herdado da E1, assim, mantendo compatibilidade. CNPJ := FRegistroE1.CNPJ; ///Check movido para dentro do with, antes estava acima dele. Check(funChecaCNPJ(CNPJ), '(E2) ESTOQUE: O CNPJ "%s" digitado é inválido!', [CNPJ]); Add( LFill('E2') + LFill(CNPJ, 14) + ... end; Aguardo uma nova analise e agradeço pela atenção. Att Gefferson
  5. @Juliomar Marchetti fica uma dúvida: qual a necessidade de alimentar a tag E1 / P1 para gerar o Registros do PAF-ECF?
  6. Pessoal, quando fiz minha homologação do sitef em 11/2017, em conversa com o homologador ele compreendeu que não mais existia cartão sem chip e aceitou que fosse cartão digitado. Expliquei e mostrei que a rotina (tela que solicita CVV) é a mesma em ambas as situações. A equipe do sitef num primeiro momento parece ser bem rígida, mas se for conversado e explicado, eles compreendem o desenvolvedor e aceitam o teste.
  7. Juliomar, para o P2 ocorreu a mesma situação. Segue em anexo units para analise: ACBrPAF.zip
  8. Identifiquei que o P2 também acontece o mesmo "erro". Logo mais postarei as units ajustadas.
  9. @Juliomar Marchetti, boa tarde. Nós aqui também homologamos o sistema com a e.r. 02.03 em 2016, e o registro E2 já vinha sem o CNPJ. Agora ao homologar a e.r. 02.05 notei o erro. Linha gerada pelo demo do acbr: E20000000000000028233633008827 MQVFQOIEHUOQUGWHCTIDQALSXTBQEXGMOVFKFTLYMWDUAXFLLFED +000134000 Creio que por eu ter tomado a preocupação em 'compatibilizar' com quem possivelmente não alimentará o campo CNPJ no registro E2, não vejo problemas em subir ao Svn. O que voce acha?
  10. Olá pessoal, bom dia. Apliquei uma alteração do ACBrPAF_E.pas e ACBrPAF_E_Class.pas. Motivo: ao gerar o documento Registros do PAF, através do menu fiscal, o registro E2, campo 2-CNPJ, não era preenchido. Identifiquei que para gerar esta tag, a lógica era herdar o campo CNPJ do registro E1. Problema: para gerar o documento Registros do PAF, não é necessário o preenchimento da tag E1. Solução: adicionei o campo CNPJ na classe do E2, dentro do ACBrPAF_E.pas. Preventivo: como a alteração maior ficou para o WriteRegistroE2, no Class, adicionei um IF para verificar se o campo CNPJ esta preenchido, se nao estiver, herda do E1. Assim, mantendo a compatibilidade. Segue em anexo os .pas, se possível verificar se está correto e subir ao SVN :D Obrigado. ACBrPAF_E.pas ACBrPAF_E_Class.pas
  11. @Daniel Simoes mesmo a contragosto acatei com a sua sugestão. Estou no meio de uma homologação do PAF, assim que terminar irei verificar uma melhoria para esse problema Obrigado
  12. Daniel, boa tarde. Em tempo de execução, como esperado, o erro só acontece no log da impressora. O que eu estranho, é que como o execption só aparece no em debug, ele trava o mouse e teclado, ai só com ctrl+alt+del para desbloquear o mouse e teclado.
  13. Atualizei o ACBR, após isto quando inicio meu sistema em debug, recebo mensagens de erro da ECF . A impressora é uma EPSON TM900F, dlls em dia. Já tentei identificar o que está acontecendo, mas só notei o momento em que gera o erro: Erro retornado pela Impressora: EPSON Categoria: 2-Erro em parâmetro do comando Motivo: 2-Falta parâmetro no comando Sequencia de rotinas: procedure TACBrECFEscECF.IdentificaOperador(Nome: String); ... if (aOperAtual <> Nome) then begin EscECFComando.CMD := 154; EscECFComando.AddParamString( Nome ); EnviaComando; //Aqui ele entra com o cmd vazio. end; ... function TACBrECFEscECFProtocoloEpsonDLL.EnviaComando_ECF(ACmd: AnsiString ): AnsiString; ... //Aqui ainda está com o ACMD vazio. ACmd := IntToHex(EscECFComando.CMD, 2) + '|'; For I := 0 to EscECFComando.Params.Count-1 do ACmd := ACmd + StringToBinaryString( AnsiString(EscECFComando.Params[I]) ) + '|'; //Depois das 3 linhas acima, o ACmd fica com "9A||". ... O arquivo de log completo da inicialização está em anexo. Desde já agradeço a ajuda. LOG.txt
  14. Douglas, fiz uma alteração na Unit: ACBrECFEscECF, linha 564: ACmd := ReplaceString(ACmd, NUL, '[NULL]'); ACmd := ChangeLineBreak(ACmd, LF); Depois: ACmd := ReplaceString(ACmd, NUL, '[NULL]'); //ACmd := ChangeLineBreak(ACmd, LF); Uma solução paliativa Ficarei acompanhando para ver o que será feito na unit da trunk.
  15. Boa tarde senhores. Eu já notei este erro na Epson logo quando atualizei o ACBR. Trata-se de uma TM-900F, EscPos. Em contato do o PEPS (epson), questionei se houve alguma liberação recente de atualização de firmware, mas nada mudou além da dll, a mesma do ACBR (v4.9). Esse change-log citado pelo Douglas foi de fato homologado e aprovado nas ECFs, ou é algum parâmetro novo que deve estar faltando alimentação?
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.