Ir para conteúdo
  • Cadastre-se

Leonardo Romano Camargo

Membros
  • Total de ítens

    6
  • Registro em

  • Última visita

Tudo que Leonardo Romano Camargo postou

  1. Nós temos vários clientes que utilizam esse modelo de impressora.
  2. Ok, já estou com o ACBrRFD conectado, porém não é gerado nenhum registro de log referente ao erro que estou tendo, acredito que seja pelo item estar sendo impresso normalmente. Depurei o código e ocorre o seguinte: Chamo o método VendeItem passando para o parâmetro AliquotaICMS valor '12,00T'; procedure TACBrECF.VendeItem(Codigo, Descricao: String; AliquotaICMS : String ; Qtd: Double; ValorUnitario: Double; ValorDescontoAcrescimo: Double; Unidade: String; TipoDescontoAcrescimo : String; DescontoAcrescimo : String ; CodDepartamento: Integer); Var AliquotaECF : String ; Tratado : Boolean; begin AliquotaECF := ''; //Lembrando, aqui AliquotaICMS = '12,00T' e AliquotaECF = '' //Dentro do IniciaVendeItem, AliquotaECF := AliquotaICMS; //AliquotaECF é utilizada para verificar se essa aliquota(12,00) existe na impressora, no caso ela existe e //é índice 02; //Mas depois de localizado a aliquota, a variavel AliquotaECF := indice IniciaVendeItem(Codigo, Descricao, AliquotaICMS, AliquotaECF, Qtd, ValorUnitario, ValorDescontoAcrescimo, Unidade, TipoDescontoAcrescimo, DescontoAcrescimo, CodDepartamento); //Assim que passa pelo IniciaVendeItem, AliquotaICMS = '12,00T' e AliquotaECF = '02'; //A rotina abaixo vai funcionar corretamente, imprimindo o item na ECF try Tratado := False; fsECF.VendeItem( Codigo, CodificarPaginaDeCodigoECF( Descricao ), AliquotaECF, Qtd, ValorUnitario, ValorDescontoAcrescimo, Unidade, TipoDescontoAcrescimo, DescontoAcrescimo, CodDepartamento ); except if Assigned( FOnErrorVendeItem ) then FOnErrorVendeItem(Tratado); if not Tratado then raise; end; //E por fim é executado esta rotina. Dentro dela é verificado se o sistema está com ACBrRFD conectado, se //estiver( que é o meu caso), é executado novamente uma pesquisa nas aliquotas da impressora pra verificar se //a que estou passando existe; //Mas como observado acima a minha variavel AliquotaECF agora vale '02', e não é encontrada na impressora, //pois a pesquisa é realizada pelo valor da aliquota e não pelo índice FinalizaVendeItem(Codigo, Descricao, AliquotaICMS, AliquotaECF, Qtd, ValorUnitario, ValorDescontoAcrescimo, Unidade, TipoDescontoAcrescimo, DescontoAcrescimo); end; Bloco de comando executado dentro da rotina FinalizaVendeItem quando ACBrRFD está conectado: if RFDAtivo then begin //Aqui será executado a rotina AchaICMSAliquota passando AliquotaECF(atualmente com '02') para ser localizada, // no caso o valor a ser passado deveria ser o mesmo que encontra-se na AliquotaICMS('12,00T') para funcionar //corretamente case AliquotaICMS[1] of 'I' : AliquotaICMS := 'I1' ; 'N' : AliquotaICMS := 'N1' ; 'F' : AliquotaICMS := 'F1' ; else Aliquota := AchaICMSAliquota( AliquotaECF ) ; if Aliquota <> nil then AliquotaICMS := IntToStrZero(Aliquota.Sequencia,2) + Aliquota.Tipo + IntToStrZero(Round(Aliquota.Aliquota*100),4) else AliquotaICMS := '' ; end ; if ValorDescontoAcrescimo > 0 then begin { RFD aceita apenas desconto em Valor, convertendo... } if TipoDescontoAcrescimo = '%' then ValorDescontoAcrescimo := RoundTo( RoundABNT(ValorUnitario*Qtd,-2) * ValorDescontoAcrescimo / 100 , -2 ) ; { RFD considera Descontos, valores negativos, Acrescimos positivos } if DescontoAcrescimo = 'D' then ValorDescontoAcrescimo := -ValorDescontoAcrescimo ; end ; fsRFD.VendeItem( Codigo, Descricao, Qtd, ValorUnitario, Unidade, ValorDescontoAcrescimo, AliquotaICMS ) ; end ;
  3. Bom dia, realmente o erro não está sendo exibido no log, pois o item é impresso corretamente, o erro ocorre logo após a impressão do item. Refiz o teste e estou anexando a Resposta da aba cmd/Resp. acbrlog.txt acbrResposta.txt
  4. Boa tarde, segue em anexo o cupom junto com o arquivo de log. Verifiquei que esse problema só ocorre quando estou gerando RFD. logECF.txt
  5. Bom dia, tentei enviando "T17,00" e "17,00T", ja que dentro da rotina IniciaVendeItem() é arredondado para 17 então acredito que não haja diferença. Acontece a mesma coisa, quando passa na rotina IniciaVendeItem() a aliquota "T17,00" é encontrada e removido a letra "T", ficando apenas "17" depois na rotina FinalizaVendeItem() o "T17,00" está apenas com "17", e acaba sendo tratado como um índice gerando uma exceção de aliquota não encontrada e cancelando o cupom logo em seguida.a.
  6. Boa tarde, após a atualização dos componentes Acbr, tive problemas com o método VendeItem da Unit ACBrECF. Minha rotina estava passando alíquota com o sulfixo e indice ("T01","S01" etc), mas agora o item é impresso na ecf, e logo depois gera uma exceção de alíquota não encontrada e cancela o item. Na nova unit ACBrECF, existem dois novos métodos, IniciaVendeItem() e FinalizaVendeItem(), essas duas passam por rotinas que verificam a aliquota e nesse ponto está meu problema... Passo a aliquota("T01") como parâmetro para o metodo VendeItem(), a rotina IniciaVendeItem() verifica minha aliquota pelo sufixo("T") e depois pelo indice("01"), ela salva o índice dentro da mesma variavel onde se encontrava a aliquota, perdendo assim o sufixo(ficando apenas "01"). Logo em seguida é impresso o item normalmente. E no final é executado o metodo FinalizaVendeItem() onde ele executa a mesma verificação de aliquota com a mesma variável, porém agora só está o indice("01"), gerando assim a exceção de aliquota não encontrada e cancelando o item que acabou de ser impresso. Desde já agradeço a atenção.
×
×
  • 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...
The popup will be closed in 10 segundos...