Ir para conteúdo
  • Cadastre-se

Daniel Simoes

Fundadores
  • Total de ítens

    27.751
  • Registro em

  • Última visita

  • Days Won

    767

Tudo que Daniel Simoes postou

  1. Oi Marcio, Algumas dúvidas sobre os arquivos das novas classes... * Em ACBrTEFDBanese.pas linha 610... temos um Sleep(1000), que aprentemente está sem necessidade... pois ele está depois da leitura da Resposta... Posso remove-lo ? * Em ACBrTEFDClass.pas linha: 2471... fiquei com receio de aplicar o seguinte bloco: { Se é Multiplos Cartoes, e ainda Resta SALDO deve enviar um CNF } //if MultiplosCartoes and (RespostasPendentes.SaldoRestante > 0) then if ((MultiplosCartoes = True)and (RespostasPendentes.Count (NumeroMaximoCartoes = 2)) then [/code] Qual a finalidade desta modificação ? Fizemos algumas modificações nesse método... que acho que podem funcionar corretamente em todas as classes sem essa modificação... * Linha: 2534... vi que você comentou o bloco abaixo: [code] //if MultiplosCartoes and (NumeroMaximoCartoes > 0) and // Tem multiplos Cartoes ? // (Valor RespostasPendentes.SaldoRestante) and // Valor é diferente do Saldo Restante a Pagar ? // ((NumeroMaximoCartoes - RespostasPendentes.Count) // raise Exception.Create( ACBrStr( 'Multiplos Cartões Limitado a '+ // IntToStr(NumeroMaximoCartoes)+' operações.'+sLineBreak+ // 'Esta Operação TEF deve ser igual ao Saldo a Pagar' ) ); Mas acho importante mante-lo.... Notei alguns Warnings para a Unit: ACBrTEFDTicketCar.pas... [Warning] ACBrTEFDTicketCar.pas(667): Variable 'FechaGerencialAberto' might not have been initialized [Warning] ACBrTEFDTicketCar.pas(653): Variable 'HouveImpressao' might not have been initialized E olhando nos fontes, essas váriaveis locais realmente nunca foram inicializadas... A Unit ACBrTEFDTicketCar.pas está operacional ? Porque nessa Unit, a classe não pode ser herdada de: TACBrTEFDClass ?
  2. Imaginei que você já soubesse...
  3. Veja as funções PAFMF_*... elas fazem (quase) tudo que é necessário para o Menu Fiscal do PAF-ECF
  4. Devo subir essa alteração até o fim do dia... (espero que essa mudança não cause incompatibilidade em outras classes)
  5. Na porta Serial o funcionamento é identico a antiga... Pela USB, vc precisará instalar um Driver da Epson... e mapear uma porta COM para a USB com este mesmo aplicativo...
  6. Juliomar, Experimente modificar para: procedure TACBrTEFDArquivo.GravaInformacao(const Chave, Informacao : AnsiString) ; var I, IndChave : Integer ; begin IndChave := -1 ; I := 0 ; while (IndChave begin if copy(fStringList[I],1,Length(Chave)+3) = Chave + ' = ' then IndChave := I else Inc( I ) ; end; if IndChave >= 0 then fStringList.Delete(I); // Remove o Antigo if Informacao '' then fStringList.Add( Chave + ' = '+ Informacao ) end ; .... .... function TACBrTEFDArquivo.AchaLinha(const Identificacao : Integer; const Sequencia : Integer = 0 ) : Integer; Var Campo : String; I : Integer; begin Campo := NomeCampo(Identificacao, Sequencia); Result := -1 ; I := 0 ; while (Result begin if copy(fStringList[I],1,Length(Campo)+3) = Campo + ' = ' then Result := I; Inc( I ) ; end; end; [/code]
  7. Apenas para a leitura da MFD e geração do Ato Cotepe... e a carga da DLL é dinâmica (apenas quando necessário) O Motivo... nem todos os fabricantes possuem comendos (abertos) para baixar a MFD e interpreta-la não é tarefa simples
  8. Para resolvermos... em primeiro lugar, é bom termos certeza de que não há nada de errado com as DLLs do Fabricante... Use o programa Demo do Fabricante, e instale as DLLs conforme as intruções do mesmo, e faça os testes..
  9. Acho que isso é configurável apenas por Intervenção Técnica... O Ideal é ler do ECF como ele opera (Arredonda ou Trunca)... e replicar o calculo no lado do Software.... algo como: if Trunca then TotalItem := Trunc(Itens[I].Qtd * Itens[I].Preco_Unit * 100) / 100 else TotalItem := RoundTo(Itens[I].Qtd * Itens[I].Preco_Unit, -2); [/code]
  10. Provavelmente é problema do driver com 64 bits... O recomendado é instalar uma Placa Serial... USB é uma eterna fonte de dor de cabeça...
  11. O trecho do LOG acima não mostra o verdadeiro retorno... pois o método usa uma variável de buffer... Por favor insira um BkPoint em: function TACBrECFFiscNET.GetArredonda: Boolean; e observe o valor de fsArredonda na primeira leitura do método...
  12. Sim pode ser... o que sempre observei, é que o ECF fica "mudo" por alguns instantes após o acionamento da gaveta... por isso o Sleep(500) após a abertura deve resolver...
  13. Verifique com o suporte da Dataregis, ou no manual da DLL o que é o erro -8
  14. Notei que usando... C_ON = #1 ; C_OFF = #0 ; // cExpandidoOn = ESC + SO; cExpandidoOff = #20;[/code] O Expandido funciona no emulador.. porém apenas uma vez dentro do gerencial... Mesmo seguindo as orientações desta página.. http://partners.bematech.com.br/2011/05 ... ns-no-ecf/ não obtive sucesso... Aprentemente esse comando (Expandido) nunca funcionou adequadamente na Bametech
  15. Está com as DLLs atualizadas ? https://acbr.svn.sourceforge.net/svnroo ... /DLLs/ECF/
  16. Experimente mudar as linhas: C_ON = #1; C_OFF = #0; para C_ON = '1'; C_OFF = '0';
  17. Pode faltar um Sleep(500) após o acionamento da gaveta... vou verificar
  18. Oi Marcio, Bom ver você por aqui novamente Devo terminar o merge em breve... não fiz uma analise detalhada... pois como vc disse já estar homologado, acredito que esteja quase tudo certo... Preciso depois verificar com você algumas mudanças em ACBrTEFDClass.pas... assim que subir pro SVN, posto por aqui novamente...
  19. Gobbo, A DLL da Bamatech gera um Log... você poderia anexa-lo ? Talvez no Log da DLL contenha informações mais detelhadas sobre o problema... Em todo caso, se houver um Bug na DLL precisamos reporta-lo para eles corrigirem...
  20. Tudo OK, o ACBrECF enviou o comando de Ativar/Desativar Expandido.. - 12:42:59 LinhaRelatorioGerencial( "[ESC]W[1]IDENTIFICACAO DO PAF-ECF[ESC]W[CR][LF]", 0 ) TX -> [STX]"[NUL][FS][20][ESC]W[1]IDENTIFICACAO DO PAF-ECF[ESC]W[LF]g[BEL] 12:43:00 RX [/code] [ESC]W[1] Tem certeza de que o Expandido já funcionava antes ?
  21. O ACBr é OpenSource.. apenas abra os fontes e veja...
  22. OK... Resolvi dar andamento no Patch do Marcio... as modificações dele são significativas... Para auxiliar no suporte (futuro), gostaria de ter os manuais das novas Operadoras: gpCliDTEF, gpTefPetrocard, gpCrediShop, gpTicketCar
  23. Estou aplicando os Patchs... notei a falta da Unit: ACBrTEFDPetroCard.pas
  24. A DLL deveria ler isso do cliche do ECF... Não há como informar isso para o ACBrECF... mas vc poderia editar o .INI da DLL
  25. Sim... isso é uma tarefa aberta para mim... mas só terei tempo de analisa-la após duas semanas... estou na corrida para minha re-homologação... Nesse meio tempo você pode efetuar novamente um "merge" dos fontes do tópico citado...
×
×
  • 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...