Ir para conteúdo
  • Cadastre-se

dev botao

SAT - Erro na sequência de cadastro do II e NN


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

Recommended Posts

O método:

procedure TACBrECFVirtualClass.CriarMemoriaInicial;   -> esta inicializando  a sequencia   FF, NN, II   ->   correto é:    FF, II, NN

Em função disto, o XML do SAT esta indicando CST errada, assim como o relatório X,Z;

 

Corrigido no fonte anexo.

 

(Precisa verifica se tem impacto em outros projetos Ex: NFCe)


 

ACBrECFVirtual.pas

Amarildo Lacerda

Storeware Team

Link para o comentário
Compartilhar em outros sites

No arquivo de inicialização:

[Alíquotas]      *** Estava errado

00=1|FF|0|T|0|
01=2|NN|0|T|0|         *  ItemCupom.PosAliq = 1            
02=3|II|0|T|0|             * ItemCupom.PosAliq = 2

Correto deveria ser:

[Alíquotas]       **** Esta Correto (depois da alteração)

00=1|FF|0|T|0|
01=2|II|0|T|0|
02=3|NN|0|T|0|

 

--------------------------------------------------------------------------------------

Na Virtual SAT:

 AliqECF := fpAliquotas[ ItemCupom.PosAliq ];
 
    Det.Prod.CFOP          := '5102';
    Det.Imposto.ICMS.CST   := cst00;
    Det.Imposto.ICMS.pICMS := AliqECF.Aliquota;
 
    if ItemCupom.PosAliq = 0 then       // FF
    begin
      Det.Prod.CFOP        := '5405';
      Det.Imposto.ICMS.CST := cst60;
    end
    else if ItemCupom.PosAliq = 1 then  // II          **************  esta correto
    begin
      Det.Imposto.ICMS.CST := cst40;
    end
    else if ItemCupom.PosAliq = 2 then  // NN
    begin
      Det.Imposto.ICMS.CST := cst41;
    end
 
-----------------------------------------------------------------------------------
Nota que quanto ele monta o XML, ele pega a posição fixa do registrado "else if ItemCupom.PosAliq = 1 then  // II"   ( no arquivo de inicialização estava na  PosAliq=2 para o II)
 
Se o cadastro de inicialização foi feito trocado     FF, NN, II..... então a posição fixa vai trocar no XML....
 
Para testar, basta vender um item  NN  e olhar o CST que vai no XLM... vc vai notar que o CST estar trocado entre o II e o NN... porque o arquivo de inicialização não esta na sequencia esperada. ( um esta indo no lugar do outro );
 
------------------------------------------------------------------------------------------------
 
No relatório X   (esta correto),
    Add( PadSpace('Isencao (II)|'+FormatFloat('###,###,##0.00', fpAliquotas[1].Total ), Colunas,'|') ) ;
    Add( PadSpace('Nao Incidencia (NN)|'+FormatFloat('###,###,##0.00', fpAliquotas[2].Total ), Colunas,'|') ) ;
 
 
  • Curtir 1

Amarildo Lacerda

Storeware Team

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois ...
  • Fundadores

Amarildo,

Repare que modifiquei a forma como a VendaBruta é tratada nos cancelamentos... Deixei de forma idêntica ao ECF... mas pode ser que isso afete a sua aplicação...

Você pode usar o valor de TotalCanceladoEmAberto, para subtrair da VendaBruta

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.

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

Alterações:

1) o desconto / acréscimo não estava indo para o XML do SAT (alterado);

2) publiquei o contador de cancelamentos em aberto;

3) alterei a  X/Z, que estava pegando o contador na variável errada.

ACBrECFVirtual.pas

ACBrECFVirtualBuffer.pas

ACBrECFVirtualSAT.pas

ACBrECFClass.pas

Amarildo Lacerda

Storeware Team

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Amarildo,

Finalmente achei um tempo para analisar...

Não compreendi a necessidade de comentar a linha abaixo:

procedure TACBrECFVirtualBufferClass.DescontoAcrescimoItemAnteriorVirtual(
  ItemCupom: TACBrECFVirtualClassItemCupom; PorcDesc: Double);
.....
....
// ImprimeBuffer ;  -- Amarildo Lacerda - so imprimir no final

Acredito que o problema ocorria porque você está chamando "inherited" em "TACBrECFVirtualSATClass.DescontoAcrescimoItemAnteriorVirtual" ( e isso não é necessário )

 

Notei que você introduziu o método: "GetNumCFCEmAberto", para recuperar o valor: "fpCuponsCanceladosEmAberto"... mas isso não é necessário, pois já existe o método: "GetTotalCancelamentosEmAberto", chamado pela propriedade: "TotalCancelamentosEmAberto"

 

 

notei ainda que em: "TACBrECFVirtualSATClass.VendeItemVirtual", estava adicionando o Desconto/Acrescimo e isso estava ocorrendo 2x, pois no final de  "TACBrECFVirtualClass.VendeItem", há uma chamada ao método: "DescontoAcrescimoItemAnterior"

 

Modificações já estão no SVN...

 

 

 

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.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Modifiquei a rotina "DescontoAcrescimoAnterior" para considerar os acréscimos em:

Det.Prod.vOutro -  "Valor de acréscimos sobre valor do item"

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.

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3180 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.

The popup will be closed in 10 segundos...