Advertisement
Guest User

Untitled

a guest
Aug 7th, 2019
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 7.74 KB | None | 0 0
  1. CREATE OR REPLACE PROCEDURE AT_CREATE_OFFER_CO1(P_IDENT            IN PERS.VI_PERSON.IDENT%TYPE,
  2.                                                 P_NAME2            IN PERS.VI_PERSON.NAME2%TYPE,
  3.                                                 P_CAMPAIGN_SYBTYPE IN CAMPAIGN.PRODUCT_OFFER.CAMPAIGN_SUBTYPE%TYPE,
  4.                                                 P_REPAID_CONTRACT  IN CAMPAIGN.VI_INDIVIDUAL_OFFER.REPAID_CONTRACT%TYPE,
  5.                                                 P_PRODUCT_SETS     IN VARCHAR2,
  6.                                                 P_LIMIT            IN campaign.vi_individual_offer.limit%TYPE,
  7.                                                 P_ANNUITY_LIMIT    IN campaign.vi_individual_offer.annuity_limit%TYPE,
  8.                                                 P_RESPONSE         OUT VARCHAR2) AS
  9.  
  10.   v_ident            pers.vi_person.ident%TYPE := P_IDENT; --ident = Id card number
  11.   v_name             pers.vi_person.name2%TYPE := P_NAME2; --name of client
  12.   v_offer_valid_from campaign.vi_individual_offer.valid_from%TYPE := TO_DATE('16.08.2017',
  13.                                                                              'DD.MM.YYYY'); --offer valid from
  14.   v_offer_valid_to   campaign.vi_individual_offer.valid_to%TYPE := TO_DATE('5.11.2099',
  15.                                                                            'DD.MM.YYYY'); --offer valid to
  16.   v_product_sets     VARCHAR2(4000) := P_PRODUCT_SETS; --'6086|6146|6149'; --product set definition = See Product series screen in Approval process >> system administration part of VB6 Homer
  17.   v_limit            campaign.vi_individual_offer.limit%TYPE := P_LIMIT; --limit = Maximal credit amount of loan
  18.   v_annuity_limit    campaign.vi_individual_offer.annuity_limit%TYPE := P_ANNUITY_LIMIT; --annuity limit = Maximal credit amount of single installment
  19.   v_campaign_sybtype campaign.product_offer.campaign_subtype%TYPE := P_CAMPAIGN_SYBTYPE; --campaign subtype = use value from column REG_VAL_CODE from SELECT * FROM param.registers WHERE reg_number = 304;
  20.  
  21.   v_product_offer_param campaign.t_sasadp_offer_rec;
  22.   v_offer_limit_tab     campaign.t_sasadp_indiv_offer_tab := campaign.t_sasadp_indiv_offer_tab();
  23.   v_id_person           pers.person.id%TYPE;
  24.   v_id_emp              campaign.product_offer.id_emp%TYPE := 1;
  25.  
  26.   v_selection_score campaign.vi_individual_offer.selection_score%TYPE := 123.123456; --attributes counted by DWH sent through SAS
  27.   v_risk_grade      campaign.vi_individual_offer.risk_grade%TYPE := 'risk_grade'; --attributes counted by DWH sent through SAS
  28.   v_pilot_name      campaign.vi_individual_offer.pilot_name%TYPE := 'pilot_name'; --attributes counted by DWH sent through SAS
  29.   v_minimal_limit   campaign.vi_individual_offer.minimal_limit%TYPE := 2000;
  30.   v_repaid_contract campaign.vi_individual_offer.repaid_contract%TYPE := P_REPAID_CONTRACT; --evid_srv of repaid contract for SC003 (TOP-UP)
  31. BEGIN
  32.   BEGIN
  33.     --zjisteni ID_PERSON
  34.     SELECT p.id
  35.       INTO v_id_person
  36.       FROM pers.vi_person p
  37.      WHERE p.status = 'a'
  38.        AND p.ident = v_ident
  39.        AND p.name2 = v_name;
  40.   EXCEPTION
  41.     WHEN NO_DATA_FOUND THEN
  42.       --DBMS_OUTPUT.PUT_LINE('Client not found');
  43.       P_RESPONSE := 'Client not found';
  44.     WHEN TOO_MANY_ROWS THEN
  45.       --DBMS_OUTPUT.PUT_LINE('Two or more clients found');
  46.       P_RESPONSE := 'Two or more clients found';
  47.   END;
  48.  
  49.   IF v_id_person IS NOT NULL THEN
  50.  
  51.     v_product_offer_param := campaign.t_sasadp_offer_rec(NULL,
  52.                                                          NULL,
  53.                                                          NULL,
  54.                                                          NULL,
  55.                                                          NULL,
  56.                                                          NULL,
  57.                                                          NULL,
  58.                                                          NULL,
  59.                                                          NULL,
  60.                                                          NULL,
  61.                                                          supp.ifc_supp.get_sys_date());
  62.  
  63.     v_product_offer_param.campaign_subtype       := v_campaign_sybtype;
  64.     v_product_offer_param.start_date             := v_offer_valid_from;
  65.     v_product_offer_param.end_date               := v_offer_valid_to;
  66.     v_product_offer_param.start_date_rel         := 0;
  67.     v_product_offer_param.end_date_rel           := 0;
  68.     v_product_offer_param.product_sets           := v_product_sets;
  69.     v_product_offer_param.response_tracking_code := -1 *
  70.                                                     (campaign.sq_product_offer.NEXTVAL);
  71.  
  72.     v_offer_limit_tab.extend(1);
  73.       v_offer_limit_tab(1) := campaign.t_sasadp_indiv_offer_rec(v_id_person,        -- id_person
  74.                                                                 v_limit,            -- loan_limit
  75.                                                                 v_annuity_limit,    -- annuity_limit
  76.                                                                 v_selection_score,  -- selection_score
  77.                                                                 v_risk_grade,       -- risk_grade
  78.                                                                 v_pilot_name,       -- pilot_name
  79.                                                                 v_minimal_limit,    -- minimal_limit
  80.                                                                 v_repaid_contract,  -- repaid_contract
  81.                                                                 NULL,               -- id_individual_offer
  82.                                                                 NULL,               -- repeated_offer_count
  83.                                                                 NULL,               -- repeated_premium_offer_count
  84.                                                                 NULL,               -- duration_pre_offer
  85.                                                                 NULL,               -- duration_pre_premium_offer
  86.                                                                 NULL,               -- text_xell_risk_pilot
  87.                                                                 NULL,                  -- cnt_term_max
  88.                                                                 NULL,             -- rank
  89.                                                                 NULL,               -- real_limit
  90.                                                                 NULL,               -- add_number_info1
  91.                                                                 NULL,               -- add_text_info1
  92.                                                                 NULL,               -- add_text_info2
  93.                                                                 NULL,               -- homer_status
  94.                                                                 NULL,               -- err_msg
  95.                                                                 NULL,               -- security_auth_needed
  96.                                                                 NULL,              -- personal_info_update_needed
  97.                                                                 NULL);              -- cnt_term_min
  98.  
  99.     campaign.pkg_sasadp_offer.create_product_offer(p_product_offer_param => v_product_offer_param,
  100.                                                    p_offer_limit_tab     => v_offer_limit_tab,
  101.                                                    p_id_emp              => v_id_emp);
  102.  
  103.     --DBMS_OUTPUT.PUT_LINE(V_OFFER_LIMIT_TAB(1).HOMER_STATUS);
  104.     --DBMS_OUTPUT.PUT_LINE(V_OFFER_LIMIT_TAB(1).ERR_MSG);
  105.     P_RESPONSE := 'STATUS: ' || V_OFFER_LIMIT_TAB(1).HOMER_STATUS ||
  106.                   ', ERROR: ' || V_OFFER_LIMIT_TAB(1).ERR_MSG;
  107.  
  108.   END IF;
  109. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement