Ir para conteúdo
  • Cadastre-se

Gr@c@

Moderadores
  • Total de ítens

    2.163
  • Registro em

  • Última visita

  • Days Won

    27

Tudo que Gr@c@ postou

  1. Um aplicativo compilado no Delphi 7 não funciona em máquinas com windows 7 64 bits ao executar a função Bematech_FI_AbrePortaSerial dá Falha ao abrir porta serial de comunicação. Já instalei o driver da impressora (é uma impressora USB).O Bematool reconhece a impressora na usb e até consigo emitir leitura X (porém somente executando como administrador. Se não for como administrador dá erro que não há nenhuma porta de comunicação) Executo meu aplicativo também como administrador, coloquei o bemafi32.ini junto com o aplicativo, já tentei no SYSWOW64 e no windows\system32(sempre deixo em apenas um desses lugares) e nada funciona. Pergunta: terei que desenvolver meu aplicativo para um delphi 64bits para usar a bemafi64.dll? Ou uso mesmo o aplicativo em delphi 32 com a bemafi32.dll? Por que não reconhece a porta serial?
  2. O que causa esse tipo de erro ao gerar TEF? - a transação ocorre com sucesso até a mensagem "TRANSACAO OK" no display - Exception List index of bound ( o comprovante não imprime ) após comando ImprimirTransaçõesPendentes ----> já debuguei até esse ponto mas não consigo chegar ao erro ao fechar o aplicativo e abrir novamente vem a mensagem na tela: Transação TEF efetuada Favor reimprimir ultimo cupom NSU: 00000000013013 (Para Cielo utilizar os 6 ultimos digitos) O fato é que às vezes dá certo, consigo finalizar a transação. Mas outras vezes não.
  3. Estou tendo problemas com o CliSiTEF neste ponto. Valor da NFCe = 40,00 Valor pago em cartão de crédito = 10,00 Valor pago em dinheiro = 30,00 Valor Saldo Restante = 10,00 (porque aqui considero que ainda não emiti o comprovante de TEF) procedure TACBrTEFDClass.VerificarTransacaoPagamento(Valor: Double); var SaldoAPagar : Double ; begin Valor := RoundTo( Valor, -2); if (Valor <= 0) then raise EACBrTEFDErro.Create( ACBrStr( 'Valor inválido' ) ); { Lendo o SubTotal do ECF } with TACBrTEFD(Owner) do begin if not (EstadoECF in ['V','P','N']) then raise EACBrTEFDErro.Create( ACBrStr('ECF deve estar em Estado de "Venda", "Pagamento" ou "Não Fiscal"') ); SaldoAPagar := InfoECFAsDouble(ineSubTotal) ; SaldoAPagar := SaldoAPagar - InfoECFAsDouble(ineTotalAPagar,0); RespostasPendentes.SaldoAPagar := SaldoAPagar ; if TrocoMaximo <= 0 then begin if (Valor > RespostasPendentes.SaldoRestante ) then raise EACBrTEFDErro.Create( ACBrStr( 'Operação TEF deve ser limitada ao '+ 'Saldo restante a Pagar' ) ); end else begin if CompareValue(Valor, RespostasPendentes.SaldoRestante + TrocoMaximo, 0.01) = GreaterThanValue then raise EACBrTEFDErro.Create( ACBrStr( 'Operação TEF permite '+ 'Troco Máximo de R$ '+FormatCurr('0.00',TrocoMaximo) ) ); end ; if MultiplosCartoes and (NumeroMaximoCartoes > 0) and // Tem multiplos Cartoes ? (RespostasPendentes.Count >= NumeroMaximoCartoes) then // Já informou todos cartões ? raise EACBrTEFDErro.Create( ACBrStr( 'Multiplos Cartões Limitado a '+ IntToStr(NumeroMaximoCartoes)+' operações.' ) ); if Self is TACBrTEFDClassTXT then // Limita Saldo Restante se for derivado de TEF discado begin if MultiplosCartoes and (NumeroMaximoCartoes > 0) and // Tem multiplos Cartoes ? (Valor <> RespostasPendentes.SaldoRestante) and // Valor é diferente do Saldo Restante a Pagar ? ((NumeroMaximoCartoes - RespostasPendentes.Count) <= 1) then // Está no último cartão ? raise EACBrTEFDErro.Create( ACBrStr( 'Multiplos Cartões Limitado a '+ IntToStr(NumeroMaximoCartoes)+' operações.'+sLineBreak+ 'Esta Operação TEF deve ser igual ao Saldo a Pagar' ) ); end ; end; end; SaldoAPagar := InfoECFAsDouble(ineSubTotal) ; ---> quando chega aqui está 10.00 SaldoAPagar := SaldoAPagar - InfoECFAsDouble(ineTotalAPagar,0); ---> quando chega aqui já está -20.00 RespostasPendentes.SaldoAPagar := SaldoAPagar ; Então obtenho a resposta operação TEF deve ser limitada ao saldo restante a pagar Meu evento InfoECF está assim begin case Operacao of ineSubTotal : begin ASubTotal := Total_VlrVenda - Total_VlrPago; (40.00-30.00) = 10.00 RetornoECF := FloatToStr(ASubTotal); if estadoSimuladoEcf = tpsPagamento then RetornoECF := FloatToStr(0); end; ineTotalAPagar : RetornoECF := FloatToStr(Total_VlrPago); -----> 30.00 ineEstadoECF : begin Case estadoSimuladoEcf of tpsLivre : RetornoECF := 'L' ; tpsVenda : RetornoECF := 'V' ; tpsPagamento : RetornoECF := 'P' ; tpsRelatorio : RetornoECF := 'R' ; else RetornoECF := 'O' ; end; end; end; end;
  4. tpEmis = 6 significa que a nota foi emitida em contingência a tag xJust é a mensagem que o emitente quer (caso tenha essa opção para editar) ou que o desenvolvedor do aplicativo emissor colocou na tag. Trata-se do motivo da contingência. Não é uma mensagem fixada pelo SEFAZ nem pelo ACBr.
  5. Alguém conseguiu realizar as transações com o ACBrTEFD sem ECF como no exemplo? No meu está funcionando se tudo for 100% finalizado. Mas se houver um erro durante a emissão, ocorrem erros muito estranhos, por exemplo, faz a transação até "Transação OK. " mas em seguida dá erro de Transação não efetuada Favor reter cupom.
  6. O que está ocorrendo é que consigo chegar a TRANSAÇÃO OK, mas logo em seguida tenho um List Index of Bounds(1) que me impede de finalizar a operação. Ao que parece, não me retorna a imagem do comprovante. CliSiTef.log ACBr_CliSiTef_001.tef
  7. não consigo debugar até o método. Retirei alguns eventos do componente (deixando somente os que estavam no demo, acrescentando apenas o OnAguardaResp (exigida pelo CliSiTef) e está funcionando até a mensagem Transação OK. Surgiu outra dúvida: ao tentar realizar uma venda com cartão vencido, ocorre o erro, dá a mensagem Transação Negada. Porém no display, permanece a mensagem "Aguarde, em processamento...35". O aplicativo já está liberado para realizar envio de outra forma de pagamento e não há mais nada em processamento. Qual o comando devo realizar logo em seguida a uma Transação Negada para liberar a mensagem do display e realizar novo pagamento (com ou sem TEF) ? Se TRANSAÇÃO OK ----> Destravo componentes, Envio NFCe, Imprimo Transações Pendentes/Comprovante TEF, EstadoSimuladoECF = tpsLivre Se TRANSAÇÃO NEGADA ----> como tratar aqui corretamento o ACBrTEFD?
  8. Estou tentando enviar um pagamento via cartão, mas ocorre o erro "Operação TEF deve ser limitada ao saldo restante a pagar" Estou enviando o valor de 60,00 que é o que corresponde ao valor da NFC-e no Debugando, verifiquei que o erro ocorre If (Valor > RespostasPendentes.SaldoRestante) then ---> aqui o valor está vindo zerado, quando deveria ser 60,00 porque ainda não foi efetuado nenhum pagamento. Alguma sugestão? SaldoAPagar := InfoECFAsDouble(ineSubTotal) ; SaldoAPagar := SaldoAPagar - InfoECFAsDouble(ineTotalAPagar,0); RespostasPendentes.SaldoAPagar := SaldoAPagar ; if TrocoMaximo <= 0 then begin if (Valor > RespostasPendentes.SaldoRestante ) then raise EACBrTEFDErro.Create( ACBrStr( 'Operação TEF deve ser limitada ao '+ 'Saldo restante a Pagar' ) ); end else begin if CompareValue(Valor, RespostasPendentes.SaldoRestante + TrocoMaximo, 0.01) = GreaterThanValue then raise EACBrTEFDErro.Create( ACBrStr( 'Operação TEF permite '+ 'Troco Máximo de R$ '+FormatCurr('0.00',TrocoMaximo) ) ); end ;
  9. A impressora é usb. Instalei o conversor da bematech, mas acho que ele não está funcionando corretamente para a MP 3000 no windows 7 32 bits.
  10. No Delphi 7 compilou. Simulei uma venda com cartão, outra com cartão e dinheiro e outra com multiplos cartões e a principio parece que tá ok. Fiz os testes com cartão de credito número digitado. Estou sem pinpad e sem impressora não fiscal, então não foi possivel testar tudo. Terei que aguardar os equipamentos para testar tudo. Mas esse demo será muito útil.
  11. Ao compilar o projeto em Delphi 7 está dando erro. E a Unit5 contém lixo no início do nome e mesmo retirando, não compila.
  12. Obrigada Warquia, vou testar com o CliSiTef.dll
  13. Nesse ponto, se a NFe se encontra no SEFAZ, é porque foi enviada e já tenho o xml assinado (só falto o protocolo da autorização). Só vou atualizar protocolot e banco de dados se o cSTAT for autorizado,cancelado ou denegado. Caso não possua o xml e não tenha como montá-lo, tem que dar um alerta ao usuário que a nota já existe no SEFAZ e requer download do xml para correção.
  14. Como aqui em MG ocorre muito esse problema de lentidão e NFe ser enviada e não retornar protocolo e, se tentasse enviar a nota novamente vem a rejeição de Duplicidade, fiz o seguinte: antes de enviar uma NFe consulto se ela já existe no SEFAZ atraves da chave de acesso. Se sim -> atualizo o protocolo no xml,imprimo a NFe e atualizo BD Se nao -> gero novo xml, envio ao Sefaz, imprimo e atualizo BD a principio, achei que isso poderia me causar o problema de Consumo Indevido. Mas isso nao ocorreu. Com esse procedimento, nunca mais tive o problema de duplicidade. var bNFeNoSEFAZ = boolean try Consulta NFe pela chave de acesso bNFeNoSEFAZ = True except bNFeNoSEFAZ = False end If bNFeNoSEFAZ begin atualiza protocolo no xml imprime atualiza BD end Else begin Gera Xml Envia NFe Imprime Atualiza protocolo no xml atualiza BD end
  15. Tenho um PinPad Ingenico 3070 Serial e tentei instalar com cabo conversor USB em um SO Windows 7. O driver Prolific instalou na porta COM5, coloquei porta=05 no CliSiTef.ini, porém a função VerificaPresencaPinpad não localizou o pinpad. Pergunta: 1-Alguém tem o driver desse pinpad (ele está descontinuado) para Windows 7? 2-como testar o pinpad para saber se está funcional ? (o display não mostra nada e teclando as teclas 1 e 3 não mostra o menu no visor)
  16. A fonte da linha digitavel ainda continua arial 13. O TRLAngleLabel txtSwHouse não aparece na impressão. Houve alguma alteração para corrigir o erro de margem cortanto ACBrBoletoFCFortesFr(linha digitavel, codigo de barras,nome da Sw House, margem direita e esquerda cortando)
  17. Ainda não. Apenas alguns eventos. Mas estou com problemas no meu pinpad ingenico 3070 (que é serial e não funcionou com cabo conversor para USB, porque meu micro só tem usb) e isso me atrasou no desenvolvimento e testes. Mas posso considerar que o TEF tá no zero ainda.
  18. Para resolver isso sem precisar criar vários loops de leitura, o ideal seria ter no componente as seguintes opções: GerarPDF_UltimoTituloDaLista; Imprimir_UltimoTituloDaLista; e poder gerar remessa completa. O pdf individual é essencial para envio de email, re-impressão e controle da empresa.
  19. A não ser que eu tenha um segundo componente ACBrBoleto2 e faça ACBrBoleto2 = ACBrBoleto1 antes de limpar a lista e usar o ACBrBoleto2 no fim do processo. E limpe o ACBrBoleto1 dentro da leitura sequencial e o ACBrBoleto2 somente antes da leitura sequencial. Vou tentar isso. Depois retorno.
  20. Correto, mas antes eu Adiciona o titulo e gerava o pdf...adicionava novo titulo...e assim sucessivamente. Após ler todos os titulos, adicioná-los a lista e gerar o pdf, eu imprimia e gerava a remessa com todos os titulos adicionados. Se limpar a lista após gerar cada pdf, como imprimir todos de uma vez e gerar a remessa completa no final da leitura dos titulos? Terei que fazer novo loop de leitura para isso? While Not Tabela.Eof do begin ---> aqui eu criava a lista de titulos GeraBoleto ; // rotina que adiciona os dados no componente ACBRBoleto ACBrBoletoFCFortes1.NomeArquivo := 'NomedoArquivo.pdf' ; ACBrBoleto1.GerarPDF ; Tabela.Next; end ; ----> aqui eu imprimia todos os titulos de uma só vez e gerava um pdf contendo todos os titulos adicionados <--- ----> limpa a lista Nesse caso, se eu quiser gerar pdf individual perco a possibilidade de usar a lista completa no fim do processo?
  21. While Not Tabela.Eof do begin GeraBoleto ; // rotina que adiciona os dados no componente ACBRBoleto ACBrBoletoFCFortes1.NomeArquivo := 'NomedoArquivo.pdf' ; ACBrBoleto1.GerarPDF ; Tabela.Next; end ; Eu estava fazendo esse procedimento e estava salvando os pdf´s individualmente. Mas após alguma atualização (não sei qual foi pois não havia percebido antes), os boletos começaram a salvar com os boletos adicionados anteriormente no Titulo. Por exemplo, adiciono a lista o Titulo 00001 e salvo. Leio o proximo titulo 00002 e salvo (esse pdf salva com o 00001 e 00002) antes salvava somente com o 00002. Como devo proceder para salvar individual o pdf?
  22. Sei que o post é antigo, mas estou tentando fazer esse procedimento com um Bematech MP3000 TH FI mas não funciona. Chego até esse ponto de configurar a porta virtual, mas dá o erro "Communication error 110: O sistema não pode abrir o dispositivo ou arquivo especificado" ao executar o TEFDDemo.exe Esse procedimento realmente está funcional?
  23. E esse caso: Emitente da NF-e = industria enquadrada no Simples Nacional Destinatário da NF-e = (oficina mecanica) Pessoa Juridica sem IE não contribuinte que irá usar o produto adquirido para prestação de serviço (conserto de veiculo de terceiros). Se aqui fosse revenda, o ST seria destacado. Destaca-se ou não a ST na NF-e?
  24. Surgiu um impasse entre os contabilistas aqui sobre : destaque de Substituição Tributária para destinatário Pessoa Juridica Sem Inscrição Estadual (não contribuinte). Deve-se destacar ou não? E pessoa física?
  25. O ACBrSPED tem que gerar o layout padrão. Também tenho alguns contabilistas que me pediram esse tipo de customização, diferente desta que você mencionou. Impossível customizar para atender a "n" solicitações. O que eu fiz foi gerar um arquivo à parte, com os dados que eles solicitaram e eles implementaram no sistema contabil deles a junção do registro padrão do SPED com o arquivo auxiliar, que tem como chave de relacionamento o fCOD_PART.
×
×
  • 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.