Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Produto:

Solucoes_totvs
SolucaoTOTVS Varejo Supermercados

Linha de Produto:

Linhas_totvs
LinhaSupermercados - Linha Consinco

Segmento:

Segmentos_totvs
Segmento Varejo

Tipo de Documento:

Manutenção

Módulo:Contrato Fidelidade
Caminho: Apuração > Apuração de Contratos
Função:APURAÇÃO DOS CONTRATOS - MGC00109
País:Brasil
Ticket:21527057
Requisito/Story/Issue (informe o requisito relacionado) :

Jira
serverJIRA
serverId0c783de1-186e-383b-975c-a1acd7d76cb5
keyDSUPCONTR-9025

02. SITUAÇÃO/REQUISITO

- Contexto: problema, inovação, manutenção ou necessidade legislativa. Seja claro e objetivo.

...

Problema identificado no ambiente do cliente: durante a apuração de contratos de fidelidade, quando uma nota fiscal recebida está associada a dois ou mais pedidos com seleção inversa contendo o mesmo produto, os valores apresentados na aplicação Apuração dos Contratos de Retorno são calculados de forma incorreta.

A causa do problema está na forma como a tabela MGC_APURACAONFDET trata os registros, desconsiderando os pedidos relacionados. Isso resulta em inconsistências nos campos VLRBASE e VLRNET, o que, por consequência, afeta também os valores exibidos nas colunas Vlr. NET, Vlr Base Desc. e % Desconto.

O erro foi identificado no ambiente do cliente Savegnago, devido à ausência da chave primária Mgc_ApuracaoNfDetItemPK, o que permitiu a inclusão de registros duplicados — com variações apenas no campo SeqRetornoApuracaoPedProd.

Problema identificado em base local: Ao realizar a apuração de contratos de fidelidade, quando uma nota fiscal recebida está associada a dois ou mais pedidos com seleção inversa contendo o mesmo produto, é retornado erro de SQL, por conta da violação da Mgc_ApuracaoNfDetItemPK.

03. PRÉ-REQUISITOS

Nota

Alterações ou parametrizações incorretas podem comprometer o desempenho e causar falhas no sistema. Sempre que necessário, consulte um especialista ou a equipe responsável para garantir a configuração correta.

04. SOLUÇÃO


Contrato de retorno com múltiplas classificações:
O contrato deve conter mais de uma classificação de retorno.

Notas fiscais vinculadas com pedidos de compra distintos:
As notas fiscais recebidas, associadas ao contrato, devem referenciar, para o mesmo produto, diferentes pedidos de compra, cada um relacionado a uma seleção inversa diferente.






04. SOLUÇÃO

Ajuste no INSERT da tabela MGC_APURACAONFDET: O comando INSERT foi ajustado para realizar o agrupamento pelo campo SeqRetornoApuracaoPedProd nos casos em que houver associação com pedidos de compra. Essa mudança garante que os agrupamentos sejam realizados corretamente por pedido, evitando duplicidades e inconsistências nos cálculos.

Criação de script para alteração da chave primária 





passo2
Bloco de código
languagesql
firstline1
titleScript criação chave primária
linenumberstrue
declare
  contador number;
begin
  select count(*)
  into contador
  from user_constraints
  where upper(table_name) = 'MGC_APURACAONFDETITEM'
  and upper(constraint_name) = 'MGC_APURACAONFDETITEMPK';  if contador > 0 then
    execute immediate 'alter table Mgc_ApuracaoNfDetItem drop constraint Mgc_ApuracaoNfDetItemPK';
  end if;  delete 
  from Gex_DadosTemporarios DadosTemporarios 
  where DadosTemporarios.String1 = 'DSUPCONTR-9025';
  
  insert into Gex_DadosTemporarios (String1, String2, String3)
  select 'DSUPCONTR-9025',
          Trigger_Name,
          Status
  from    User_Triggers
  where   Table_Name = 'MGC_APURACAONFDETITEM'
  and     Status = 'ENABLED';
        
  execute immediate 'alter table Mgc_ApuracaoNfDetItem disable all triggers';  update Mgc_ApuracaoNfDetItem
  set SeqRetornoApuracaoPedProd = 0
  where SeqRetornoApuracaoPedProd is null;
  commit;
  
  begin
    for vtTrigger in (select DadosTemporarios.String2 as Trigger_Name
                        from Gex_DadosTemporarios DadosTemporarios
                       where DadosTemporarios.String1 = 'DSUPCONTR-9025')
    loop/
      execute immediate 'alter trigger ' || vtTrigger.Trigger_Name ||
                        ' enable';
    end loop;
  end;  delete 
  from Gex_DadosTemporarios DadosTemporarios 
  where DadosTemporarios.String1 = 'DSUPCONTR-9025';
 
  execute immediate 'alter table Mgc_ApuracaoNfDetItem
                     add constraint Mgc_ApuracaoNfDetItemPK primary key (SeqRetornoApuracaoPedProd, 
                                                                         SeqRetornoApuracao, 
                                                                         SeqIdentificador, 
                                                                         NumeroNf, 
                                                                         SeqPessoa, 
                                                                         SerieNf, 
                                                                         TipNotaFiscal, 
                                                                         NroEmpresa, 
                                                                         SeqNF, 
                                                                         SeqProduto, 
                                                                         NfReferenciaNro, 
                                                                         NfReferenciaSerie, 
                                                                         SeqItemNf)
                     using index 
                     tablespace &TSIndice';
end;
/  
Totvs custom tabs box
tabsPasso 01, Passo 02, Passo 03, Passo 04
idspasso1,passo2
Totvs custom tabs box items
defaultyes
referenciapasso1
Totvs custom tabs box items
defaultno
referencia



05. REQUISITOS DE VERSÃO

06. DOCUMENTOS RELACIONADOS

...