Advertisement
filhotecmail

Untitled

Nov 25th, 2024 (edited)
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 5.05 KB | Source Code | 0 0
  1. CREATE OR REPLACE PROCEDURE USISTEMA.ACERTO
  2. (P_CDG_ORGAO IN NUMBER,
  3.  P_REF_ANOMES IN NUMBER) AS
  4.  
  5.  
  6. L_CDG_ORDEM NUMBER;
  7. L_CDG_FUNCIONAL NUMBER;
  8. L_CDG_SITFUNC NUMBER;
  9.  
  10. L_CDG_PROVDESC NUMBER;
  11. L_VLR_PROVDESC FLOAT;
  12.  
  13. L_21181 FLOAT;
  14. L_21182 FLOAT;
  15. L_52311 FLOAT;
  16.  
  17. L_VLR_AUX FLOAT;
  18.  
  19.  
  20.  
  21. CURSOR PEGA_MATRICULAS IS
  22. SELECT
  23.         DISTINCT
  24.         FIN.CDG_ORDEM,
  25.         FIN.CDG_FUNCIONAL,
  26.         FUN.CDG_SITFUNC
  27.  
  28.   FROM USISTEMA.TBFINANCEIRO FIN,
  29.        USISTEMA.TBCADFUNCIONAL FUN
  30.  WHERE FIN.REF_ANOMES = 201001
  31.    AND FIN.CDG_ORGAO = 303
  32.    AND FIN.ID_AUX = 0
  33.    AND FIN.REF_ANOMES = FUN.REF_ANOMES
  34.    AND FIN.CDG_ORGAO = FUN.CDG_ORGAO
  35.    AND FIN.ID_AUX = FUN.ID_AUX
  36.    AND FIN.CDG_ORDEM = FUN.CDG_ORDEM
  37.    AND FIN.CDG_FUNCIONAL = FUN.CDG_FUNCIONAL
  38.    AND FUN.CDG_SITFUNC IN (4,11);
  39.  
  40.  
  41. CURSOR PEGA_PROVENTOS IS
  42. SELECT SUM(VALOR)
  43.   FROM USISTEMA.TBFINANCEIRO
  44.  WHERE REF_ANOMES = 201001
  45.    AND ID_AUX = 0
  46.    AND CDG_PROVDESC IN (21180,21184)
  47.    AND CDG_ORDEM = L_CDG_ORDEM
  48.    AND CDG_FUNCIONAL = L_CDG_FUNCIONAL;
  49.  
  50. CURSOR PEGA_52310 IS
  51. SELECT SUM(VALOR)
  52.   FROM USISTEMA.TBFINANCEIRO
  53.  WHERE REF_ANOMES = 201001
  54.    AND ID_AUX = 0
  55.    AND CDG_PROVDESC IN (52310)
  56.    AND CDG_ORDEM = L_CDG_ORDEM
  57.    AND CDG_FUNCIONAL = L_CDG_FUNCIONAL;
  58.  
  59.  
  60.  
  61. BEGIN
  62.  
  63.  
  64.    OPEN  PEGA_MATRICULAS;
  65.    LOOP
  66.  
  67.        FETCH PEGA_MATRICULAS INTO L_CDG_ORDEM, L_CDG_FUNCIONAL, L_CDG_SITFUNC;
  68.        EXIT WHEN PEGA_MATRICULAS%NOTFOUND;
  69.  
  70.        L_21181 := 0;
  71.        L_21182 := 0;
  72.        L_52311 := 0;
  73.        L_VLR_AUX := 0;
  74.  
  75.         OPEN PEGA_PROVENTOS;
  76.        FETCH PEGA_PROVENTOS INTO L_VLR_AUX;
  77.        CLOSE PEGA_PROVENTOS;
  78.  
  79.        L_VLR_AUX := NVL(L_VLR_AUX,0);
  80.  
  81.        IF L_CDG_SITFUNC = 4 THEN
  82.  
  83.           L_21181 := L_VLR_AUX;
  84.  
  85.        ELSE
  86.  
  87.           L_21182 := L_VLR_AUX;
  88.  
  89.        END IF;
  90.  
  91.        L_VLR_AUX := 0;
  92.  
  93.         OPEN PEGA_52310;
  94.        FETCH PEGA_52310 INTO L_VLR_AUX;
  95.        CLOSE PEGA_52310;
  96.  
  97.        L_VLR_AUX := NVL(L_VLR_AUX,0);
  98.  
  99.        L_52311 := L_VLR_AUX;
  100.  
  101.        DELETE FROM TBFINANCEIRO
  102.         WHERE REF_ANOMES = 201001
  103.           AND CDG_PROVDESC IN (21180,21184)
  104.           AND ID_AUX = 0
  105.           AND CDG_ORDEM = L_CDG_ORDEM
  106.           AND CDG_FUNCIONAL = L_CDG_FUNCIONAL;
  107.  
  108.        DELETE FROM TBFINANCEIRO
  109.         WHERE REF_ANOMES = 201001
  110.           AND CDG_PROVDESC IN (52310)
  111.           AND ID_AUX = 0
  112.           AND CDG_ORDEM = L_CDG_ORDEM
  113.           AND CDG_FUNCIONAL = L_CDG_FUNCIONAL;
  114.  
  115.  
  116.        IF L_21181 > 0 THEN
  117.  
  118.            INSERT INTO
  119.                TBFINANCEIRO
  120.                (REF_ANOMES,
  121.                 ID_AUX,
  122.                 CDG_ORGAO,
  123.                 CDG_ORDEM,
  124.                 CDG_FUNCIONAL,
  125.                 CDG_PROVDESC,
  126.                 FORMULA,
  127.                 PRAZO_INI,
  128.                 PRAZO_FIM,
  129.                 QUANTIDADE,
  130.                 VALOR,
  131.                 OPERACAO,
  132.                 CALCULADO,
  133.                 DTA_ATUALIZACAO,
  134.                 ODM_ATUALIZACAO,
  135.                 OBSERVACAO)
  136.                VALUES
  137.                (P_REF_ANOMES,
  138.                 0,
  139.                 P_CDG_ORGAO,
  140.                 L_CDG_ORDEM,
  141.                 L_CDG_FUNCIONAL,
  142.                 21181,
  143.                 0,
  144.                 1,
  145.                 1,
  146.                 0,
  147.                 L_21181,
  148.                 2,
  149.                 0,
  150.                 SYSDATE,
  151.                 77777,
  152.                 'DIF FINAL-2 2009');
  153.  
  154.        END IF;
  155.  
  156.        IF L_21182> 0 THEN
  157.  
  158.            INSERT INTO
  159.                TBFINANCEIRO
  160.                (REF_ANOMES,
  161.                 ID_AUX,
  162.                 CDG_ORGAO,
  163.                 CDG_ORDEM,
  164.                 CDG_FUNCIONAL,
  165.                 CDG_PROVDESC,
  166.                 FORMULA,
  167.                 PRAZO_INI,
  168.                 PRAZO_FIM,
  169.                 QUANTIDADE,
  170.                 VALOR,
  171.                 OPERACAO,
  172.                 CALCULADO,
  173.                 DTA_ATUALIZACAO,
  174.                 ODM_ATUALIZACAO,
  175.                 OBSERVACAO)
  176.                VALUES
  177.                (P_REF_ANOMES,
  178.                 0,
  179.                 P_CDG_ORGAO,
  180.                 L_CDG_ORDEM,
  181.                 L_CDG_FUNCIONAL,
  182.                 21182,
  183.                 0,
  184.                 1,
  185.                 1,
  186.                 0,
  187.                 L_21182,
  188.                 2,
  189.                 0,
  190.                 SYSDATE,
  191.                 77777,
  192.                 'DIF FINAL-2 2009');
  193.  
  194.        END IF;
  195.  
  196.        IF L_52311 > 0 THEN
  197.  
  198.            INSERT INTO
  199.                TBFINANCEIRO
  200.                (REF_ANOMES,
  201.                 ID_AUX,
  202.                 CDG_ORGAO,
  203.                 CDG_ORDEM,
  204.                 CDG_FUNCIONAL,
  205.                 CDG_PROVDESC,
  206.                 FORMULA,
  207.  
  208.  
  209. CREATE OR REPLACE TYPE BODY USISTEMA.TP_ACERTO AS
  210.     MEMBER FUNCTION IS_VALID RETURN BOOLEAN IS
  211.     BEGIN
  212.           IF REF_ANOMES < 200001 OR REF_ANOMES > 209912 THEN
  213.             RETURN FALSE;
  214.         END IF;
  215.         IF CDG_ORDEM <= 0 OR CDG_FUNCIONAL <= 0 THEN
  216.             RETURN FALSE;
  217.         END IF;
  218.  
  219.         IF VALOR < 0 THEN
  220.             RETURN FALSE;
  221.         END IF;
  222.  
  223.         RETURN TRUE;
  224.     END;
  225. END;
Tags: DomainTypes
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement