Árvore de páginas

01. DADOS GERAIS

Produto:

TOTVS Varejo Supermercados

Linha de Produto:

Supermercados - Linha Consinco

Segmento:

Varejo

Tipo de Documento:

Manutenção

Módulo:ACORDOS E VERBAS
Caminho:Administração > Acordos Promocionais
Função:MANUTENCAO DE ACORDOS PROMOCIONAIS - MAC0045
País:Brasil
Ticket:22325358
Requisito/Story/Issue (informe o requisito relacionado) :DSUPCONTR-8588

02. SITUAÇÃO/REQUISITO

        Ao executar o processo de zerar o saldo do acordo por meio do objeto pkg_adm_acordoverba.SP_CONSUMOVERBA_ZERASALDO, o filtro aplicado aos acordos promocionais — com ou sem verba — incluía indevidamente acordos reprovados e cancelados na busca.

03. PRÉ-REQUISITOS

Parâmetro Dinâmico a ser configurado:

Configurações de Parâmetros Dinâmicos

    Imagem 01: Configurações de Parâmetros Dinâmicos


Query realizada no processo de zera saldo:

Rotina para zerar saldo
-- ACORDOS COM VERBA
SELECT a.Nroacordo, a.Nroempresa, a.Seqfornecedor, a.Seqcomprador,
       a.Vlracordo,
       Fsaldoacordopromoc(a.Nroempresa, a.Nroacordo, a.Seqfornecedor) AS Vlrsaldo,
       'S' AS Indexisteverba, a.Nroempresa Nroempacordo, a.situacaoacordo, a.statusacordo
  FROM Msu_Acordopromoc a
 WHERE a.Apporigem = 2
   AND a.Dtafim + 1 <= Trunc(SYSDATE)
   and a.Statusacordo IN ('A')
   AND Fsaldoacordopromoc(a.Nroempresa, a.Nroacordo, a.Seqfornecedor) > 0
   AND EXISTS (SELECT 1
          FROM Mrl_Custoverba w
         WHERE w.Nroacordo = a.Nroacordo
           AND w.Nroempresaacordo = a.Nroempresa
           AND Nvl(w.Indtipacordo, 'R') = 'R'
           AND w.Statusverba = 'A')
   AND NOT EXISTS
 (SELECT 1
          FROM Mrl_Custoverba x
         WHERE x.Nroacordo = a.Nroacordo
           AND x.Nroempresaacordo = a.Nroempresa
           AND Nvl(x.Indtipacordo, 'R') = 'R'
           AND x.Statusverba = 'A'
           AND x.Dtafinal >= Trunc(SYSDATE)
           AND x.Qtdlimiteverba >
               Decode(Nvl(x.Qtdutilizadaverba, 0), 0, -1, x.Qtdutilizadaverba))
--
UNION ALL
--
-- ACORDOS SEM VERBA
SELECT b.Nroacordo, b.Nroempresa, b.Seqfornecedor, b.Seqcomprador,
       b.Vlracordo,
       Fsaldoacordopromoc(b.Nroempresa, b.Nroacordo, b.Seqfornecedor) AS Vlrsaldo,
       'N' AS Indexisteverba, b.Nroempresa Nroempacordo, b.situacaoacordo, b.statusacordo
  FROM Msu_Acordopromoc b
 WHERE b.Apporigem = 2
   AND b.Dtafim + 1 <= Trunc(SYSDATE)
   AND Fsaldoacordopromoc(b.Nroempresa, b.Nroacordo, b.Seqfornecedor) > 0
   AND NOT EXISTS (SELECT 1
          FROM Mrl_Custoverba y
         WHERE y.Nroacordo = b.Nroacordo
           AND y.Nroempresaacordo = b.Nroempresa
           AND Nvl(y.Indtipacordo, 'R') = 'R'
           AND y.Statusverba = 'A'); 


Execução do processo:

Rotina para zerar saldo
pkg_adm_acordoverba.SP_CONSUMOVERBA_ZERASALDO(pdData => trunc(sysdate)); 


04. SOLUÇÃO

       Ajustado para que ambos os selects, tanto para acordos com quanto sem verba, não retornem acordos reprovados ou cancelados durante a execução.

05. REQUISITOS DE VERSÃO

       Se estiver na versão 24.07, atualizar o sistema para o service pack 24.07.038 ou service pack superior.

       Se estiver na versão 25.01, atualizar o sistema para o service pack 25.01.012 ou service pack superior.

06. DOCUMENTOS RELACIONADOS

DOCUMENTO(S) DE REFERÊNCIA