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. 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 ;
  2. 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
  3. 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
  4. 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.
  5. 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.