Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3484 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom dia senhores.

Meu software é direcionado a postos de combustíveis e já tenho o Sat implantado em alguns clientes e estou adequando os fontes e presenciando algumas situações específicas.

Um dos meus clientes reparou que na impressão, o preço do combustível não estava correto com as 3 casas decimais como de costume.

Fui analisar a situação e eu estava direcionando o item com a tag "EhCombustivel" para que o ACBr fizesse os devidos tratamentos quanto as casas decimais.

Debugando, percebi que ao passar pela segunda vez na função procedure TCFeW.GerarDetProd(const i: integer); essa indicação "EhCombustivel" se perde (volta a ser false), e daí em diante, todas as informações dos itens, são tratadas como se trabalhasse com apenas 2 casas decimais (XML e Impressão).

 

Por hora, alterei o fonte \ACBr\Trunk\Fontes\ACBrSat\pcnCFeW.pas com o seguinte código:

procedure TCFeW.GerarDetProd(const i: integer);
var
  DecQtd: TpcnTipoCampo;
begin
  If CFe.Det[i].Prod.indRegra = irArredondamento then
     begin
        DecQtd := tcDe2;
     end
  Else
     begin
        DecQtd := tcDe3;
     end;

Poderiam me dizer se estou fazendo algo errado ou se essa solução é valida?

Desde já agradeço a atenção dos senhores e qualquer dúvida, estou a disposição.

 

Postado

Estranho porque comigo está normal esta questão, emite com 3 casas quando é combustível...

 

Seus fontes estão atualizados?

 

Eu passo a propriedade ehcombustivel primeiro e depois informo o valor unitário para o componente, vc faz assim tbm? 

 

abs

Postado

Bom dia EvandroMira.

Meus fontes estão atualizados sim. 

Eu primeiro direciono que é combustível e depois passo os valores.

Ao capturar a informação do XML novamente, a propriedade EhCombustivel fica perdida, não entendi muito bem o porque. De toda forma essa adaptação funcionou, pois a informação referente ao Arredondamento/Truncamento não se perde ao chamar a função novamente.

  • Fundadores
Postado

Vc precisa setar a propriedade para cada Item vendido.. sempre...

 

Quando recupera o XML, o ACBrSAT.CFe, não tem como saber se a venda foi para combustível ou para um item com 3 decimais comum... ele não irá ligar a propriedade ao Ler o XML...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Postado

Certo, entendido. 

O que estranhei foi não ter limpo o componente do Cupom Eletronico e só de chamar a função 

Chave:= UpperCase(ACBrSAT1.CFe.AsXMLString); 

Ele já perdeu essa configuração.

Sendo assim, achei mais sensato utilizar a configuração do Arredondamento/Truncamento para setar o número de casas decimais, pois essa não é perdida.

  • Fundadores
Postado

Tenha em mente que a sua modificação não será aplicada no SVN, da maneira proposta... Pois modificaria o comportamento do componente para todos que usam o Arredondamento

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Fundadores
Postado

Verifique se seus fontes estão atualizados... A poucos dias, houve uma modificação, para que o componente não faça uma nova geração do XML a cada chamada de "ACBrSAT1.CFe.AsXMLString"...

Acredito que essas correções possam também evitar que o Objeto "ACBrSAT.CFe" seja limpo de forma indevida...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Este tópico foi criado há 3484 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.