Advertisement
filhotecmail

Return Finalizadoras

Mar 26th, 2018
309
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.91 KB | None | 0 0
  1. SET TERM ^ ;
  2.  
  3. CREATE OR ALTER PROCEDURE RETORNASOMAFINALIZADORAS (
  4.     PID INTEGER,
  5.     PSITVENDA VARCHAR(35) CHARACTER SET WIN1252 COLLATE WIN_PTBR)
  6. RETURNS (
  7.     DINHEIRO NUMERIC(18,2),
  8.     CHEQUE NUMERIC(18,2),
  9.     CARTAOCREDITO NUMERIC(15,2),
  10.     CARTAODEBITO NUMERIC(15,2),
  11.     CREDITOLOJA NUMERIC(15,2),
  12.     VALEALIMENTACAO NUMERIC(15,2),
  13.     VALEREFEICAO NUMERIC(15,2),
  14.     VALEPRESENTE NUMERIC(15,2),
  15.     VALECOMBUSTIVEL NUMERIC(15,2),
  16.     OUTROS NUMERIC(15,2))
  17. AS
  18. BEGIN
  19.   FOR
  20.     SELECT
  21.         MAX(DINHEIRO) DINHEIRO,
  22.         MAX(CHEQUE) CHEQUE,
  23.         MAX(CARTAOCREDITO) CARTAOCREDITO,
  24.         MAX(CARTAODEBITO) CARTAODEBITO,
  25.         MAX(CREDITOLOJA) CREDITOLOJA,
  26.         MAX(VALEALIMENTACAO) VALEALIMENTACAO,
  27.         MAX(VALEREFEICAO) VALEREFEICAO,
  28.         MAX(VALEPRESENTE) VALEPRESENTE,
  29.         MAX(VALECOMBUSTIVEL) VALECOMBUSTIVEL,
  30.         MAX(OUTROS) OUTROS
  31.         FROM
  32.  
  33.        (
  34.         SELECT
  35.            CASE WHEN ( PG.indice_sat = 0) AND ( PG.situacao = :psitvenda )  AND ( PG.idcaixa = :Pid )
  36.            THEN
  37.              SUM(PG.valor_recebido )
  38.             ELSE
  39.             0
  40.             END DINHEIRO,
  41.    
  42.             CASE WHEN ( PG.indice_sat = 1) AND ( PG.situacao = :psitvenda ) AND ( PG.idcaixa = :Pid )
  43.            THEN
  44.              SUM(PG.valor_recebido )
  45.             ELSE
  46.             0
  47.             END CHEQUE,
  48.    
  49.             CASE WHEN ( PG.indice_sat = 2) AND ( PG.situacao = :psitvenda ) AND ( PG.idcaixa = :Pid )
  50.            THEN
  51.              SUM(PG.valor_recebido )
  52.             ELSE
  53.             0
  54.             END CARTAOCREDITO,
  55.    
  56.             CASE WHEN ( PG.indice_sat = 3)AND ( PG.situacao = :psitvenda ) AND ( PG.idcaixa = :Pid )
  57.            THEN
  58.              SUM(PG.valor_recebido )
  59.             ELSE
  60.             0
  61.             END CARTAODEBITO,
  62.  
  63.            CASE WHEN ( PG.indice_sat = 4)AND ( PG.situacao = :psitvenda )  AND ( PG.idcaixa = :Pid )
  64.            THEN
  65.              SUM(PG.valor_recebido )
  66.             ELSE
  67.             0
  68.             END CREDITOLOJA,
  69.  
  70.             CASE WHEN ( PG.indice_sat = 5) AND ( PG.situacao = :psitvenda ) AND ( PG.idcaixa = :Pid )
  71.            THEN
  72.              SUM(PG.valor_recebido )
  73.             ELSE
  74.             0
  75.             END VALEALIMENTACAO,
  76.  
  77.             CASE WHEN ( PG.indice_sat = 6) AND ( PG.situacao = :psitvenda ) AND ( PG.idcaixa = :Pid )
  78.            THEN
  79.              SUM(PG.valor_recebido )
  80.             ELSE
  81.             0
  82.             END VALEREFEICAO,
  83.  
  84.              CASE WHEN ( PG.indice_sat = 7) AND ( PG.situacao = :psitvenda )AND ( PG.idcaixa = :Pid )
  85.            THEN
  86.              SUM(PG.valor_recebido )
  87.             ELSE
  88.             0
  89.             END VALEPRESENTE,
  90.  
  91.           CASE WHEN ( PG.indice_sat = 8 ) AND ( PG.situacao = :psitvenda ) AND ( PG.idcaixa = :Pid )
  92.            THEN
  93.              SUM( PG.valor_recebido )
  94.             ELSE
  95.             0
  96.             END VALECOMBUSTIVEL,
  97.  
  98.             CASE WHEN ( PG.indice_sat = 9) AND ( PG.situacao = :psitvenda ) AND ( PG.idcaixa = :Pid )
  99.            THEN
  100.              SUM(PG.valor_recebido )
  101.             ELSE
  102.             0
  103.             END OUTROS
  104.    
  105.         FROM venda_pagfinalreply PG
  106.  
  107.          WHERE
  108.         (
  109.           ( PG.idcaixa = :Pid )
  110.  
  111.          )
  112.  
  113.          AND
  114.          (
  115.            ( PG.situacao = :psitvenda )
  116.          )
  117.    
  118.         GROUP BY PG.indice_sat,PG.situacao,PG.idcaixa   )
  119.  
  120.     INTO :DINHEIRO,
  121.          :CHEQUE,
  122.          :CARTAOCREDITO,
  123.          :CARTAODEBITO,
  124.          :CREDITOLOJA,
  125.          :VALEALIMENTACAO,
  126.          :VALEREFEICAO,
  127.          :VALEPRESENTE,
  128.          :VALECOMBUSTIVEL,
  129.          :OUTROS
  130.   DO
  131.   BEGIN
  132.     SUSPEND;
  133.   END
  134. END^
  135.  
  136. SET TERM ; ^
  137.  
  138. /* Following GRANT statetements are generated automatically */
  139.  
  140. GRANT SELECT ON VENDA_PAGFINALREPLY TO PROCEDURE RETORNASOMAFINALIZADORAS;
  141.  
  142. /* Existing privileges on this procedure */
  143.  
  144. GRANT EXECUTE ON PROCEDURE RETORNASOMAFINALIZADORAS TO SYSDBA;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement