Advertisement
filhotecmail

Atacarejo

Jan 25th, 2021
1,536
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 2.68 KB | None | 0 0
  1. SET TERM ^ ;
  2.  
  3. CREATE OR ALTER PROCEDURE ATACADO_RETFROMDATA (
  4.     PID INTEGER)
  5. RETURNS (
  6.     ID INTEGER,
  7.     "PERC. DE DESCONTO %" NUMERIC(18,2),
  8.     "QTD. MÍNIMA" NUMERIC(18,2),
  9.     CONTROLE VARCHAR(37),
  10.     "SITUAÇÃO DO PRAZO" CHAR(15),
  11.     "VALOR ATACADO R$" NUMERIC(18,4),
  12.     "VALOR DE VENDA ATUAL R$" NUMERIC(18,2),
  13.     "MKP% ATUAL" NUMERIC(18,2),
  14.     "MKP% ATACADO" NUMERIC(18,6),
  15.     ATC007DFIM DATE,
  16.     MSG VARCHAR(176))
  17. AS
  18. BEGIN
  19.   FOR
  20.     SELECT
  21.        FIRST 1 C.ID,
  22.         C.ATC005PDESC AS "PERC. DE DESCONTO %",
  23.         C.ATC008QTDMIN AS "QTD. MÍNIMA",
  24.        CASE  C.ATC009CTRDATA
  25.        WHEN 0 THEN 'NAO CONTROLADO POR DATA'
  26.        WHEN 1 THEN 'DATA INICIO '||C.ATC006DINI||' ATE '||C.ATC007DFIM
  27.        END "CONTROLE",
  28.        IIF( ( ATC009CTRDATA = 0 ), 'DENTRO DO PRAZO',
  29.           IIF(  C.ATC007DFIM < CURRENT_DATE , 'PRAZO EXPIRADO','DENTRO DO PRAZO' ) )  AS "SITUAÇÃO DO PRAZO",
  30.        SUM( P.SAID_VLVENDA - ( ( P.SAID_VLVENDA * C.ATC005PDESC ) / 100  ) ) AS "VALOR ATACADO R$",
  31.        MAX(P.SAID_VLVENDA) AS "VALOR DE VENDA ATUAL R$",
  32.        MAX( P.P27MKP ) AS "MKP% ATUAL",
  33.        SUM(  (( P.SAID_VLVENDA - ( ( P.SAID_VLVENDA * C.ATC005PDESC ) / 100  ) )
  34.        - P.P26VLCUSTO ) / P.P26VLCUSTO * 100  ) AS "MKP% ATACADO",
  35.        C.ATC007DFIM,
  36.      ( 'NAS COMPRAS A PARTIR DE  '||ATC008QTDMIN||' '||MAX(P.SAID_UNVENDA) ||' VOCE GANHA UM DESCONTO DE % '||CAST(ATC005PDESC AS NUMERIC(15,2) )
  37.          ||'  - O VALOR PROMOCIONAL COM DESCONTO DESSE PRODUTO É '||CAST(SUM( P.SAID_VLVENDA - ( ( P.SAID_VLVENDA * C.ATC005PDESC ) / 100  ) )  AS NUMERIC(15,2))
  38.          ||' PROMOCAO VÁLIDA ATÉ '|| EXTRACT(DAY FROM C.ATC007DFIM) ||'/'|| EXTRACT(MONTH FROM C.ATC007DFIM)||' DE '|| EXTRACT(YEAR FROM C.ATC007DFIM)  )AS MSG
  39.    
  40.    
  41.     FROM CPRODATC001 C
  42.      LEFT JOIN CADPRODUTOS P ON ( P.CAD_IDRELPROD = C.ATC004IDPROD )
  43.      WHERE C.ATC004IDPROD = :PID
  44.         AND ( C.ATC009CTRDATA = 1 )
  45.         AND ( C.ATC006DINI < CURRENT_DATE AND C.ATC007DFIM > CURRENT_DATE )
  46.      GROUP BY 1,2,3,4,5,10
  47.        ORDER BY ATC007DFIM ASC
  48.     INTO :ID,
  49.          :"PERC. DE DESCONTO %",
  50.          :"QTD. MÍNIMA",
  51.          :CONTROLE,
  52.          :"SITUAÇÃO DO PRAZO",
  53.          :"VALOR ATACADO R$",
  54.          :"VALOR DE VENDA ATUAL R$",
  55.          :"MKP% ATUAL",
  56.          :"MKP% ATACADO",
  57.          :ATC007DFIM,
  58.          :MSG
  59.   DO
  60.   BEGIN
  61.     SUSPEND;
  62.   END
  63. END^
  64.  
  65. SET TERM ; ^
  66.  
  67. /* Following GRANT statetements are generated automatically */
  68.  
  69. GRANT SELECT ON CPRODATC001 TO PROCEDURE ATACADO_RETFROMDATA;
  70. GRANT SELECT ON CADPRODUTOS TO PROCEDURE ATACADO_RETFROMDATA;
  71.  
  72. /* Existing privileges on this procedure */
  73.  
  74. GRANT EXECUTE ON PROCEDURE ATACADO_RETFROMDATA TO SYSDBA;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement