Monday, 18 May 2015

OZF Provision Transfer (Oracle Trade Management)

Declare

lr_adjustment_rec      ozf_fund_utilized_pub.adjustment_rec_type;
   lc_return_status       VARCHAR2 (1);
   lc_record_exist        VARCHAR2 (1);
   lc_error_flag          VARCHAR2 (1) := 'N';
   lc_adjustment_type     VARCHAR2 (80);
   lc_error_msg           VARCHAR2 (200);
   lc_err_locations       VARCHAR2 (200);
   lc_msg_data            VARCHAR2 (32767);
   lc_errbuf              VARCHAR2 (32767);
   ln_claim_type_id       NUMBER;
   ln_qp_list_header_id   NUMBER;
   ln_cr_ccid             NUMBER;
   ln_dr_ccid             NUMBER;
   ln_fund_id             NUMBER;
   ln_msg_count           NUMBER;
   ln_util_id             NUMBER;
   ln_user_id             NUMBER;
   ln_resp_id             NUMBER;
   ln_resp_app_id         NUMBER;
   ln_budget_amt          NUMBER;
   ln_cust_id             NUMBER;
   ln_num_of_months       NUMBER;
   ln_loop_count          NUMBER;
   ln_tot_budg_amt        NUMBER;
   ln_prov_amt            NUMBER;
   ld_fund_date           DATE;
   ld_start_date          DATE;
   ld_end_date            DATE;
   n_request_id           NUMBER := 0;
 
   CURSOR lcur_fund_data(p_fund_number number)
   IS
 
      SELECT v.fund_id, v.fund_number,b.cust_account_id,
             o.qp_list_header_id,
             adjustment_type_id old_adjustment_type_id, b.attribute4
        FROM ozf_funds_all_vl v,
             ozf_funds_utilized_all_b b,
             ozf_offers o
      WHERE  1 = 1
         AND b.fund_id = v.fund_id
         AND v.attribute3 = o.offer_code
         AND v.fund_number = p_fund_number
         AND b.attribute4 = 'PROVISION'
         AND rownum = 1;
 
 BEGIN
      BEGIN
        mo_global.set_policy_context (UPPER ('s'), 22);
      END;
 
    FOR i IN lcur_fund_data (p_fund_id)
    LOOP
      EXIT WHEN lcur_fund_data%NOTFOUND;

      FND_GLOBAL.apps_initialize (user_id        => 8605,
                                 resp_id        => 22371,
                                  resp_appl_id   => 682);

     lr_adjustment_rec.adjustment_type := 'STANDARD';
     lr_adjustment_rec.adjustment_type_id := 21;
     lr_adjustment_rec.fund_id := i.fund_id;
     lr_adjustment_rec.fund_number := i.fund_number;
     lr_adjustment_rec.adjustment_date := Sysdate;
      lr_adjustment_rec.gl_date := Sysdate;
      lr_adjustment_rec.activity_type := 'OFFR';
      lr_adjustment_rec.activity_id := i.qp_list_header_id;
      lr_adjustment_rec.plan_currency_code :='INR';
      lr_adjustment_rec.org_id := 22;
      lr_adjustment_rec.skip_acct_gen_flag := 'F';
      lr_adjustment_rec.amount := p_amount;
      lr_adjustment_rec.customer_type := 'CUSTOMER';
      lr_adjustment_rec.attribute4 := 'PROVISION';
      lr_adjustment_rec.cust_id := i.cust_account_id;
      ozf_fund_utilized_pub.create_fund_adjustment (
         p_api_version        => 1.0,
         p_init_msg_list      => fnd_api.g_false,
         p_commit             => fnd_api.g_false,
         p_validation_level   => fnd_api.g_valid_level_full,
         p_adj_rec            => lr_adjustment_rec,
         x_return_status      => lc_return_status,
         x_msg_count          => ln_msg_count,
         x_msg_data           => lc_msg_data,
         x_utilization_id     => ln_util_id);
 
      FND_FILE.PUT_LINE(FND_FILE.LOG,'lc_return_status ' || lc_return_status);
   
        IF lc_return_status <> 'S'
            THEN
               IF ln_msg_count <= 1
               THEN
                  lc_errbuf := NULL;
                  lc_errbuf := lc_errbuf || lc_msg_data;
                  lc_errbuf:=substr(lc_errbuf,1,150);
                  FND_FILE.PUT_LINE(FND_FILE.LOG,'error message - '||lc_errbuf);
                 
               ELSE
               lc_errbuf := NULL;
                  FOR ln_i IN 1 .. ln_msg_count
                  LOOP
                 
                     lc_errbuf :=
                              lc_errbuf || ' ' || fnd_msg_pub.get (ln_i, 'F');
                             
                             
                  lc_errbuf:=Substr(lc_errbuf,1,150);
                   FND_FILE.PUT_LINE(FND_FILE.LOG,'error message - '|| lc_errbuf);
                             
                  END LOOP;
               END IF;
        ELSE
            FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'Provision transfer is Successfull and utilization id is - '||ln_util_id);  
        END IF;


      COMMIT;
   END LOOP;

END;

No comments:

Post a Comment