Advertisement
Guest User

Untitled

a guest
Jul 19th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 16.55 KB | None | 0 0
  1. CREATE OR REPLACE PACKAGE BODY PKG_SUBJECT_PAYMENTS
  2. AS
  3. gc_scope_prefix constant VARCHAR2(31) := LOWER($$PLSQL_UNIT) || '.';
  4.  
  5. PROCEDURE P_GET_NEW_SUBJECT_PAYMENTS
  6.  
  7.   AS
  8. v_scope logger_logs.scope%TYPE := gc_scope_prefix || 'P_GET_NEW_SUBJECT_PAYMENTS';
  9. v_zmienna NUMBER;
  10. v_count NUMBER;
  11. v_subject_id NUMBER;
  12. v_id NUMBER;
  13. v_subject_payments_row SUBJECT_PAYMENTS%ROWTYPE;
  14. BEGIN
  15.  
  16. logger.log('START - wyszukanie nowych rekordów z platnościami', v_scope);
  17. FOR v_acc IN ((SELECT DISTINCT
  18.                     to_number(account_to_pay) atp FROM subjects
  19.                     WHERE account_to_pay IS NOT NULL)
  20.                 )
  21.              
  22. loop                  
  23. FOR v_trans IN (SELECT
  24.                     vpd.ID,
  25.                     vpd.CREATED_DATE,
  26.                     vpd.MODIFIED_DATE,
  27.                     vpd.TRACKING_ID,
  28.                     vpd.TRACKING_ID_SERV,
  29.                     vpd.ACCOUNT_NO,
  30.                     vpd.ACTION_CODE,
  31.                     vpd.ANNOTATION,
  32.                     vpd.TRANS_AMOUNT,
  33.                     vpd.TRANS_DATE,
  34.                     vpd.DESCRIPTION_TEXT
  35.                 FROM V_PAYMENTS_DETAILS vpd
  36.                 WHERE ACCOUNT_NO  = v_acc.atp
  37.                 AND
  38.                 NOT EXISTS (SELECT 1 FROM subject_payments WHERE id_trans=vpd.id )
  39.                )
  40.  loop
  41.     SELECT ID INTO v_subject_id FROM SUBJECTS WHERE ACCOUNT_NUMBER = to_char(v_trans.ACCOUNT_NO);  
  42.  
  43.  v_subject_payments_row.SUBJECT_ID := v_subject_id;
  44.  v_subject_payments_row.ID := SUBJECT_PAYMENTS_SEQ.NEXTVAL;
  45.  v_subject_payments_row.ANONYMIZATION_STATUS := 0;
  46.  v_subject_payments_row.ID_TRANS := v_trans.ID;
  47.  v_subject_payments_row.CREATE_DATE := v_trans.CREATED_DATE;
  48.  v_subject_payments_row.MODIFIED_DATE := v_trans.MODIFIED_DATE;
  49.  v_subject_payments_row.TRACKING_ID := v_trans.TRACKING_ID;
  50.  v_subject_payments_row.TRACKING_ID_SERV := v_trans.TRACKING_ID_SERV;
  51.  v_subject_payments_row.ACCOUNT_NO := v_trans.ACCOUNT_NO;
  52.  v_subject_payments_row.ACTION_CODE := v_trans.ACTION_CODE;
  53.  v_subject_payments_row.ANNOTATION := v_trans.ANNOTATION;
  54.  v_subject_payments_row.TRANS_AMOUNT := v_trans.TRANS_AMOUNT;
  55.  v_subject_payments_row.TRANS_DATE :=v_trans.TRANS_DATE;
  56.  v_subject_payments_row.DESCRIPTION_TEXT := v_trans.DESCRIPTION_TEXT;
  57.  v_subject_payments_row.INSERT_DATE := sysdate;
  58.  
  59.  P_INSERT_SUBJECT_PAYMENTS(pi_subject_payments_row => v_subject_payments_row);
  60. END LOOP;
  61. END LOOP;
  62.     logger.log('END - koniec wyszukania nowych rekordów z platnościami ', v_scope);
  63.  
  64.   exception
  65.     WHEN others THEN
  66.       logger.log_error('Wystąpił nieznany blad '||SQLERRM,V_scope);
  67.       raise;
  68.   END P_GET_NEW_SUBJECT_PAYMENTS;
  69.  
  70.     PROCEDURE P_INSERT_SUBJECT_PAYMENTS(pi_subject_payments_row EXTOUSR.SUBJECT_PAYMENTS%ROWTYPE)    
  71.     AS
  72.    
  73.     v_scope logger_logs.scope%TYPE := gc_scope_prefix || 'P_INSERT_SUBJECT_PAYMENTS';
  74.     v_params logger.tab_param;
  75.     v_subject_pay_row SUBJECT_PAYMENTS%ROWTYPE := pi_subject_payments_row;
  76.     v_id NUMBER;
  77.     v_subject_id NUMBER;
  78.    
  79.     BEGIN
  80.     logger.append_param(v_params, 'parametr', pi_subject_payments_row.ID);
  81.     logger.log('START - dodawanie rekordu o parametrach '||v_subject_pay_row.ID, v_scope, NULL, v_params);
  82.    
  83.     INSERT INTO SUBJECT_PAYMENTS VALUES v_subject_pay_row returning id INTO v_id;  
  84.    
  85.       logger.log('Utworzono nowy rekord ',v_id,v_scope);
  86.     exception
  87.     WHEN others THEN
  88.       logger.log_error('Wystąpił błąd podczas tworzenia rekordu podmiotu: '||SQLERRM,v_scope);
  89.       raise;
  90.     END P_INSERT_SUBJECT_PAYMENTS;
  91.    
  92.    
  93.      PROCEDURE P_GET_SUB_PAYMENTS_TO_UPDATE
  94.      AS
  95.      v_scope logger_logs.scope%TYPE := gc_scope_prefix || 'P_GET_SUB_PAYMENTS_TO_UPDATE';
  96.      v_start_date DATE;
  97.      v_end_date DATE;
  98.      v_cnt NUMBER;
  99.      v_err_msg VARCHAR(1000);
  100.      v_status varchar2(50);
  101.      
  102.     BEGIN
  103.     SELECT  MAX(START_DATE) sd INTO v_start_date  FROM LOAD_PAYMENTS_HISTORY lph WHERE END_DATE IS NOT NULL;
  104.  
  105. logger.log('START - wyszukanie platnosci do update ', v_scope);
  106. FOR v_payment IN (SELECT
  107.                     sp.ID,
  108.                     sp.MODIFIED_DATE,
  109.                     sp.ACTION_CODE
  110.                     FROM SUBJECT_PAYMENTS sp
  111.                     JOIN V_PAYMENTS_DETAILS vpd
  112.                     ON sp.ID_TRANS = vpd.ID
  113.                     WHERE sp.MODIFIED_DATE > v_start_date
  114.                     )
  115. loop
  116. P_UPDATE_SUBJECT_PAYMENTS(pi_id_trans => v_payment.ID,pi_modified_date=>v_payment.MODIFIED_DATE,pi_action_code => v_payment.ACTION_CODE);
  117. END loop;
  118.     logger.log('END - koniec wyszukania platnosciu do update ', v_scope);
  119. exception
  120.      WHEN others THEN
  121.       logger.log_error('Wystąpił błąd podczas wyszukiwania platnosci do update '||SQLERRM,V_scope);
  122.       v_status := 'Failed';
  123.       v_err_msg := SQLERRM;
  124.       UPDATE LOAD_PAYMENTS_HISTORY
  125.         SET STATUS = v_status, ERROR_MESSAGES = v_err_msg
  126.         WHERE END_DATE IS NULL;
  127.       raise;
  128.     END P_GET_SUB_PAYMENTS_TO_UPDATE;
  129.    
  130.     PROCEDURE P_UPDATE_SUBJECT_PAYMENTS(
  131.     pi_id_trans EXTOUSR.SUBJECT_PAYMENTS.ID_TRANS%TYPE,
  132.     pi_modified_date EXTOUSR.SUBJECT_PAYMENTS.MODIFIED_DATE%TYPE,
  133.     pi_action_code EXTOUSR.SUBJECT_PAYMENTS.ACTION_CODE%TYPE
  134.   )
  135.   AS
  136.   v_scope logger_logs.scope%TYPE := gc_scope_prefix || 'P_UPDATE_SUBJECT_PAYMENTS';
  137.   v_params logger.tab_param;
  138.   v_id_trans SUBJECT_PAYMENTS.ID_TRANS%TYPE := pi_id_trans;
  139.   v_modified_date SUBJECT_PAYMENTS.MODIFIED_DATE%TYPE := pi_modified_date;
  140.   v_action_code SUBJECT_PAYMENTS.ACTION_CODE%TYPE := pi_action_code;
  141.   v_err_msg VARCHAR(1000);
  142.   v_status varchar2(50);
  143. BEGIN
  144.     logger.append_param(v_params, 'parametr', v_id_trans);
  145.     logger.append_param(v_params, 'parametr', v_modified_date);
  146.     logger.append_param(v_params, 'parametr', v_action_code);
  147.  
  148.     logger.log('START - rozpoczęcie update ACTION_CODE dla transakcji: '||v_id_trans, v_scope, NULL, v_params);
  149.    
  150.     UPDATE SUBJECT_PAYMENTS
  151.         SET ACTION_CODE = v_action_code, MODIFIED_DATE = v_modified_date
  152.         WHERE ID = v_id_trans;        
  153.     logger.log('END - koniec update ACTION_CODE dla transakcji: '||v_id_trans, v_scope, NULL, v_params);
  154. exception
  155.   WHEN others THEN
  156.     logger.log_error('Nieznany błąd: '||SQLERRM, v_scope, NULL, v_params);
  157.       v_status := 'Failed';
  158.       v_err_msg := SQLERRM;
  159.       UPDATE LOAD_PAYMENTS_HISTORY
  160.         SET STATUS = v_status, ERROR_MESSAGES = v_err_msg
  161.         WHERE END_DATE IS NULL;
  162.       raise;
  163.     END P_UPDATE_SUBJECT_PAYMENTS;
  164. ----------------------------------------------------------------------------------------------------------------
  165.    
  166.     PROCEDURE P_GET_CASES_WITH_SENTENCE
  167.    
  168.     AS
  169.      v_scope logger_logs.scope%TYPE := gc_scope_prefix || 'P_GET_CASES_WITH_SENTENCE';
  170.      v_params logger.tab_param;
  171.      v_subject_id SUBJECT_PAYMENTS.SUBJECT_ID%TYPE;
  172.      v_tracking_id SUBJECT_PAYMENTS.TRACKING_ID%TYPE;
  173.      v_tracking_id_serv SUBJECT_PAYMENTS.TRACKING_ID_SERV%TYPE;
  174.      v_account_no SUBJECT_PAYMENTS.ACCOUNT_NO%TYPE;
  175.      v_annotation SUBJECT_PAYMENTS.ANNOTATION%TYPE;
  176.      v_history_row ANONYMIZATION_PAYMENTS_HISTORY%ROWTYPE;
  177.      v_subject_payments_row SUBJECT_PAYMENTS%ROWTYPE;
  178.      v_id NUMBER;
  179.      v_status varchar2(20);
  180.      
  181.     BEGIN
  182.     logger.log('START - wyszukanie podmiotu dla którego zapadl wyrok skazujacy i jego polatnosc znajduje sie w SUBJECT_PAYMENTS', v_scope);
  183. FOR v_subject_s IN ((SELECT
  184.                             sp.SUBJECT_ID,  
  185.                             sp.ID,
  186.                             sp.TRACKING_ID,
  187.                             sp.TRACKING_ID_SERV,
  188.                             sp.ACCOUNT_NO,
  189.                             sp.ANNOTATION
  190.                             FROM SUBJECT_PAYMENTS sp
  191.                             WHERE EXISTS
  192.                             (SELECT 1 FROM SUBJECTS_CASES sc
  193.                             WHERE SENTENCE = 1
  194.                             AND sc.SUBJECT_ID = sp.SUBJECT_ID
  195.                            )
  196.                            AND ANONYMIZATION_STATUS <> 1
  197.                            ))
  198. loop
  199.     v_history_row.ID := ANONYMIZATION_PAY_HISTORY_SEQ.NEXTVAL;
  200.     v_history_row.ID_SUBJECT_PAYMENTS := v_subject_s.SUBJECT_ID;
  201.     v_history_row.ID_TRANS := v_subject_s.ID;
  202.     v_history_row.ACCOUNT_NO := v_subject_s.ACCOUNT_NO;
  203.     v_history_row.OPERATION := 'ANONYMIZATION';
  204.     v_history_row.OPERATION_DATE := sysdate;
  205.    
  206.    
  207.     v_subject_id := v_subject_s.SUBJECT_ID;
  208.     v_tracking_id := v_subject_s.ID;
  209.     v_tracking_id_serv := v_subject_s.TRACKING_ID;
  210.     v_account_no := v_subject_s.ACCOUNT_NO;
  211.     logger.append_param(v_params, 'parametr', v_subject_id);
  212.     logger.append_param(v_params, 'parametr', v_tracking_id);
  213.     logger.append_param(v_params, 'parametr', v_tracking_id_serv);
  214.     logger.append_param(v_params, 'parametr', v_account_no);
  215.    
  216.     logger.log('START - rozpoczęcie update ANONYMIZATION_STATUS dla trackind_id: '||v_tracking_id ||' tracking_id_serv: ' ||v_tracking_id_serv ||' account_no: '|| v_account_no || ' Subject_id: '||v_subject_id,  v_scope, NULL, v_params);
  217.  
  218.        
  219.     --- WYWOLANIE P_SEND_REQUEST_ANONYMIZATION DO ANONIMIZACJI W BILLINGU PO WYSTAWIENIU INTERFEJSU
  220.     P_SEND_REQUEST_ANONYMIZATION(pi_tracking_id => v_tracking_id, pi_tracking_id_serv => v_tracking_id_serv, pi_account_no => v_account_no);
  221.    -- logger.log('END - koniec wyszukiwania podmiotu dla którego zapadl wyrok skazujacy i jego polatnosc znajduje sie w SUBJECT_PAYMENTS', v_scope);
  222.     v_status := ANONYMIZATION_REQUEST_STATUS();
  223.     IF v_status = 'Ok' THEN
  224.     UPDATE SUBJECT_PAYMENTS SP
  225.         SET ANONYMIZATION_STATUS = 1, ANONYMIZATION_DATE = sysdate
  226.         WHERE SP.ID = v_subject_s.ID;
  227.     logger.log('END - koniec update ANONYMIZATION_STATUS dla trackind_id: '||v_tracking_id ||' tracking_id_serv: ' ||v_tracking_id_serv ||' account_no: '|| v_account_no || ' Subject_id: '||v_subject_id, v_scope, NULL, v_params);
  228.  
  229.  
  230.     INSERT INTO ANONYMIZATION_PAYMENTS_HISTORY VALUES v_history_row returning id INTO v_id;
  231.           logger.log('Utworzono nowy rekord w tabeli ANONYMIZATION_PAYMENTS_HISTORY',v_id,v_scope);
  232. --    else
  233.     END IF;
  234.     END loop;
  235.      logger.log('END - koniec wyszukiwania podmiotu dla którego zapadl wyrok skazujacy i jego platnosc znajduje sie w SUBJECT_PAYMENTS', v_scope);      
  236.  
  237.   exception
  238.     WHEN others THEN
  239.       logger.log_error('Wystąpił nieznany blad '||SQLERRM,V_scope);
  240.       raise;
  241.     END P_GET_CASES_WITH_SENTENCE;
  242.     PROCEDURE P_GET_TRANS_TO_UNVEIL AS
  243.       v_scope logger_logs.scope%TYPE := gc_scope_prefix || 'P_UPDATE_SUBJECT_PAYMENTS';
  244.       v_params logger.tab_param;
  245.      v_tracking_id SUBJECT_PAYMENTS.TRACKING_ID%TYPE;
  246.      v_tracking_id_serv SUBJECT_PAYMENTS.TRACKING_ID_SERV%TYPE;
  247.      v_account_no SUBJECT_PAYMENTS.ACCOUNT_NO%TYPE;
  248.      v_annotation SUBJECT_PAYMENTS.ANNOTATION%TYPE;
  249.      v_history_row ANONYMIZATION_PAYMENTS_HISTORY%ROWTYPE;
  250.      v_subject_payments_row SUBJECT_PAYMENTS%ROWTYPE;
  251.      v_id NUMBER;
  252.      v_variable varchar2(20);
  253.      v_subject_id NUMBER;
  254.      
  255.     BEGIN
  256.         logger.log('START - wyszukanie podmiotu do cofnięcia anonimizacji', v_scope);
  257.     FOR v_subject_u IN ((SELECT
  258.                                 sp.SUBJECT_ID,
  259.                                 sp.ID,
  260.                                 sp.TRACKING_ID,
  261.                                 sp.TRACKING_ID_SERV,
  262.                                 sp.ACCOUNT_NO,
  263.                                 sp.ANNOTATION
  264.                                 FROM SUBJECT_PAYMENTS sp
  265.                                 WHERE EXISTS
  266.                                 (SELECT 1 FROM SUBJECTS_CASES sc
  267.                                 WHERE
  268.                             SENTENCE = 0
  269.                             AND sc.SUBJECT_ID = sp.SUBJECT_ID
  270.                            )
  271.                            AND ANONYMIZATION_STATUS = 1))
  272.     loop
  273.     v_history_row.ID := ANONYMIZATION_PAY_HISTORY_SEQ.NEXTVAL;
  274.     v_history_row.ID_SUBJECT_PAYMENTS := v_subject_u.SUBJECT_ID ;
  275.     v_history_row.ID_TRANS := v_subject_u.ID;
  276.     v_history_row.ACCOUNT_NO := v_subject_u.ACCOUNT_NO;
  277.     v_history_row.OPERATION := 'UNVEIL';
  278.     v_history_row.OPERATION_DATE := sysdate;
  279.    
  280.     v_subject_id := v_subject_u.SUBJECT_ID;
  281.     v_tracking_id := v_subject_u.ID;
  282.     v_tracking_id_serv := v_subject_u.TRACKING_ID;
  283.     v_account_no := v_subject_u.ACCOUNT_NO;
  284.     v_annotation := v_subject_u.ANNOTATION;
  285.     logger.append_param(v_params, 'parametr', v_tracking_id);
  286.     logger.append_param(v_params, 'parametr', v_tracking_id_serv);
  287.     logger.append_param(v_params, 'parametr', v_account_no);
  288.     logger.append_param(v_params, 'parametr', v_annotation);
  289.    
  290.      logger.log('START - rozpoczęcie update ANONYMIZATION_STATUS dla trackind_id: '||v_tracking_id ||' tracking_id_serv: ' ||v_tracking_id_serv ||' account_no: '|| v_account_no || ' Subject_id: '||v_subject_id,  v_scope, NULL, v_params);
  291.  
  292.    P_SEND_REQUEST_UNVEIL (pi_tracking_id => v_tracking_id, pi_tracking_id_serv => v_tracking_id_serv, pi_account_no => v_account_no, pi_annotation => v_annotation );
  293.     v_variable := UNVEIL_REQUEST_STATUS();
  294.     IF v_variable = 'Ok' THEN
  295.     UPDATE SUBJECT_PAYMENTS SP
  296.         SET ANONYMIZATION_STATUS = 0, ANONYMIZATION_DATE = sysdate
  297.         WHERE SP.ID = v_subject_u.ID;
  298.  
  299.  logger.log('END koniec update ANONYMIZATION_STATUS dla trackind_id: '||v_tracking_id ||' tracking_id_serv: ' ||v_tracking_id_serv ||' account_no: '|| v_account_no || ' Subject_id: '||v_subject_id,  v_scope, NULL, v_params);
  300.     INSERT INTO ANONYMIZATION_PAYMENTS_HISTORY VALUES v_history_row returning id INTO v_id;
  301.     logger.log('Utworzono nowy rekord w tabeli ANONYMIZATION_PAYMENTS_HISTORY',v_id,v_scope);
  302.     END IF;
  303.     END loop;
  304.       exception
  305.     WHEN others THEN
  306.       logger.log_error('Wystąpił nieznany blad '||SQLERRM,V_scope);
  307.       raise;
  308.     END P_GET_TRANS_TO_UNVEIL;
  309.     PROCEDURE P_SEND_REQUEST_ANONYMIZATION(  
  310.     pi_tracking_id EXTOUSR.SUBJECT_PAYMENTS.TRACKING_ID%TYPE,
  311.     pi_tracking_id_serv EXTOUSR.SUBJECT_PAYMENTS.TRACKING_ID_SERV%TYPE,
  312.     pi_account_no EXTOUSR.SUBJECT_PAYMENTS.ACCOUNT_NO%TYPE)
  313.     AS
  314.     BEGIN
  315.     NULL;
  316.     END P_SEND_REQUEST_ANONYMIZATION;
  317.    
  318.     PROCEDURE P_SEND_REQUEST_UNVEIL(    
  319.      pi_tracking_id EXTOUSR.SUBJECT_PAYMENTS.TRACKING_ID%TYPE,
  320.      pi_tracking_id_serv EXTOUSR.SUBJECT_PAYMENTS.TRACKING_ID_SERV%TYPE,
  321.      pi_account_no EXTOUSR.SUBJECT_PAYMENTS.ACCOUNT_NO%TYPE,
  322.      pi_annotation EXTOUSR.SUBJECT_PAYMENTS.ANNOTATION%TYPE)
  323.      AS
  324.      BEGIN
  325.      NULL;
  326.      END P_SEND_REQUEST_UNVEIL;
  327.      
  328.      
  329.     FUNCTION ANONYMIZATION_REQUEST_STATUS RETURN varchar2
  330.     IS
  331.     v_status BOOLEAN;
  332.     v_return varchar2(10);
  333.     BEGIN
  334.  
  335.     v_return := 'Ok';
  336.     RETURN v_return;
  337.     END ANONYMIZATION_REQUEST_STATUS;
  338.    
  339.    
  340.     FUNCTION UNVEIL_REQUEST_STATUS RETURN varchar2
  341.     IS
  342.     v_status BOOLEAN;
  343.     v_return varchar2(10);
  344.     BEGIN
  345.  
  346.     v_return := 'Ok';
  347.  
  348.     RETURN v_return;
  349.     END UNVEIL_REQUEST_STATUS;
  350.      
  351.     PROCEDURE P_LOAD_PAYMENTS_MAIN
  352.       AS
  353.     v_scope logger_logs.scope%TYPE := gc_scope_prefix || 'P_GET_NEW_SUBJECT_PAYMENTS';
  354.     v_load_payments_history_row LOAD_PAYMENTS_HISTORY%ROWTYPE;
  355.     v_start_date DATE;
  356.     v_end_date DATE;
  357.     v_id NUMBER;
  358.     v_status varchar2(50);
  359.     v_err_msg varchar2(1000);
  360.     BEGIN
  361.     v_err_msg := SQLERRM;
  362.     SELECT sysdate INTO v_start_date FROM dual;
  363.     v_load_payments_history_row.ID := LOAD_PAYMENTS_HISTORY_SEQ.NEXTVAL;
  364.     v_load_payments_history_row.STATUS := 'IN PROGRESS';
  365.     v_load_payments_history_row.START_DATE := v_start_date;
  366.     v_load_payments_history_row.ERROR_MESSAGES := v_err_msg;
  367.     INSERT INTO LOAD_PAYMENTS_HISTORY VALUES v_load_payments_history_row returning id INTO v_id;
  368.     P_GET_SUB_PAYMENTS_TO_UPDATE;
  369.     commit;
  370.     P_GET_NEW_SUBJECT_PAYMENTS;
  371.     commit;
  372.     SELECT sysdate INTO v_end_date FROM dual;
  373.     v_status := 'OK';
  374.     v_err_msg := SQLERRM;
  375.     UPDATE LOAD_PAYMENTS_HISTORY
  376.         SET END_DATE = v_end_date, STATUS = v_status, ERROR_MESSAGES = v_err_msg
  377.         WHERE END_DATE IS NULL;
  378.     exception
  379.     WHEN others THEN
  380.       logger.log_error('Wystąpił nieznany blad '||SQLERRM,V_scope);
  381.       v_status := 'FAILED';
  382.       v_err_msg := SQLERRM;
  383.       UPDATE LOAD_PAYMENTS_HISTORY
  384.         SET END_DATE = v_end_date, STATUS = v_status, ERROR_MESSAGES = v_err_msg
  385.         WHERE END_DATE IS NULL;
  386.       raise;
  387.     END P_LOAD_PAYMENTS_MAIN;
  388.  
  389.     PROCEDURE P_ANONYM_PAYMENTS_IN_BILLING AS
  390.     BEGIN
  391.     P_GET_CASES_WITH_SENTENCE;
  392.     END P_ANONYM_PAYMENTS_IN_BILLING;
  393.  
  394.  
  395.     PROCEDURE P_UNVEIL_TRANS_IN_BILLING AS
  396.     BEGIN
  397.     P_GET_TRANS_TO_UNVEIL;
  398.     END P_UNVEIL_TRANS_IN_BILLING;
  399.     END PKG_SUBJECT_PAYMENTS;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement