You are on page 1of 12

SET SERVEROUTPUT ON;

DECLARE
p_cust_site_use_rec
HZ_CUST_ACCOUNT_SITE_V2PUB.CUST_SITE_USE_REC_TYPE;
p_customer_profile_rec
HZ_CUSTOMER_PROFILE_V2PUB.CUSTOMER_PROFILE_REC_TYPE;
x_site_use_id NUMBER;
x_return_status VARCHAR2(2000);
x_msg_count NUMBER;
x_msg_data VARCHAR2(2000);
gd_date DATE;
gn_user_id NUMBER;
gn_login_id NUMBER;
gn_request_id NUMBER;
gn_commit_int NUMBER;
gn_current_org NUMBER := 0;
gn_init NUMBER := 0;
gv_a VARCHAR2(1);
gv_b VARCHAR2(1);
gv_d VARCHAR2(1);
gv_s VARCHAR2(1);
gv_n VARCHAR2(1);
gv_y VARCHAR2(1);
gv_i VARCHAR2(1);
gv_u VARCHAR2(1);
gv_t VARCHAR2(1);
gv_e VARCHAR2(1);
gv_f VARCHAR2(1);
gv_x VARCHAR2(1);
gv_bill_to VARCHAR2(30);
gv_ship_to VARCHAR2(30);
gv_module VARCHAR2(300);
gv_organization VARCHAR2(300);
gv_module_ca VARCHAR2(300); -- customer account
gv_module_pl VARCHAR2(300); -- physical location
gv_module_ps VARCHAR2(300); -- party site
gv_module_as VARCHAR2(300); -- account site
gv_module_su VARCHAR2(300); -- site use
gv_module_cp VARCHAR2(300); -- contact party
gv_module_rp VARCHAR2(300); -- contact party relation with org
party [object_id(org party) + subject_id(contact party)=rel_party]
gv_module_ac VARCHAR2(300); -- account contact role
[rel_party+cust_acct+site_use]
gv_module_rt VARCHAR2(300); -- account role type
[account_role+BILL_TO]
gv_separator VARCHAR2(30); -- this should be parameter if the
value is different for each source
gv_hz_parties VARCHAR2(30);
gv_gen VARCHAR2(30);
gv_phone VARCHAR2(30);
gv_mailhtml VARCHAR2(30);
gv_email VARCHAR2(30);
gv_contact VARCHAR2(30);
gv_cs_type VARCHAR2(30);
gv_business VARCHAR2(30);
gv_search VARCHAR2(30);
gv_prepays VARCHAR2(30);
gv_postpays VARCHAR2(30); --Added by Reena for PAYG
gv_invoiced VARCHAR2(30);
gv_agency VARCHAR2(30);
gv_reseller VARCHAR2(30);
gv_ysmcam_dff VARCHAR2(30);
gv_cb_dff VARCHAR2(30);
gv_ysmcam_source_sys VARCHAR2(30);
gv_apt_source_sys VARCHAR2(30);
gv_apt_ship_source_sys VARCHAR2(30);
P_REQUEST_ID NUMBER;
lr_cust_site_use_rec
HZ_CUST_ACCOUNT_SITE_V2PUB.CUST_SITE_USE_REC_TYPE;
lr_customer_profile_rec
HZ_CUSTOMER_PROFILE_V2PUB.CUSTOMER_PROFILE_REC_TYPE;
ln_custacct_site_use_id NUMBER;
ln_msg_count NUMBER;
ln_loop_count NUMBER;
ln_rowcount NUMBER;
lv_return_status VARCHAR2(2000);
lv_msg_data VARCHAR2(4000);
lv_err_message VARCHAR2(4000);

CURSOR cur_csite_use
IS
SELECT CMINT.*
FROM xxyh_customer_master_int CMINT
WHERE CMINT.process_flag = 'E' --gv_b
AND CMINT.exec_su_change = 'E'--gv_y
AND CMINT.customer_account_site_id = 6091853
AND CMINT.customer_account_site_id IS NOT NULL
AND CMINT.customer_account_site_use_id IS NULL;
master_rec cur_csite_use%ROWTYPE;
BEGIN
IF gn_init = 0 THEN
gn_init := 1;
gn_commit_int := 100; -- do not change this limit
gd_date := SYSDATE;
gn_user_id := fnd_global.user_id;
gn_login_id := fnd_global.login_id;
gn_request_id := fnd_global.conc_request_id;
gv_a := 'A'; -- Active
gv_b := 'B'; -- selected for batch processing
gv_n := 'N'; -- No or new or No Change
gv_y := 'Y'; -- Yes
gv_e := 'E'; -- Error
gv_s := 'S'; -- Success
gv_d := 'D'; -- Duplicate
gv_i := 'I'; -- insert
gv_u := 'U'; -- update, unexpected error
gv_t := 'T'; -- true
gv_f := 'F'; -- false
gv_x := 'X';
gv_module := 'XXYH_CUSTOMER_MASTER_PKG'; -- should
this be set by caller?
gv_bill_to := 'BILL_TO';
gv_ship_to := 'SHIP_TO';
gv_organization := 'ORGANIZATION';
gv_module_ca := 'HZ_CUST_ACCOUNTS';
gv_module_pl := 'HZ_LOCATIONS';
gv_module_ps := 'HZ_PARTY_SITES';
gv_module_as := 'HZ_CUST_ACCT_SITES_ALL';
gv_module_su := 'HZ_CUST_SITE_USES_ALL' ;
gv_module_cp := 'HZ_PARTIES'; -- type PERSON,
contact party
gv_module_rp := 'HZ_PARTIES'; -- type
PARTY_RELATIONSHIP, relation party
gv_module_ac := 'HZ_CUST_ACCOUNT_ROLES'; -- account role
[rel_party+cust_acct+acct_site]
gv_module_rt := 'HZ_ROLE_RESPONSIBILITY'; -- account role
resp [account_role+BILL_TO]
gv_separator := '.';
gv_hz_parties := 'HZ_PARTIES';
gv_gen := 'GEN';
gv_phone := 'PHONE';
gv_mailhtml := 'MAILHTML';
gv_email := 'EMAIL';
gv_contact := 'CONTACT';
gv_business := 'BUSINESS';
gv_cs_type := hz_party_v2pub.g_miss_content_source_type;
gv_search := 'SEARCH';
gv_prepays := 'PREPAYS';
gv_postpays := 'POSTPAY';
gv_agency := 'AGENCY';
gv_invoiced := 'INVOICED';
gv_reseller := 'RESELLER';
gv_ysmcam_dff := 'YSMCAM';
gv_cb_dff := 'CURVEBALL';
gv_ysmcam_source_sys := 'MIT';
gv_apt_source_sys := 'APT-SF';
gv_apt_ship_source_sys := 'APT-SF-SHIP';
END IF;
DBMS_OUTPUT.PUT_LINE('START push_customer_su_ins');
-- intialize_globals();
mo_global.init('AR');
fnd_global.apps_initialize ( user_id => 57886 ,resp_id => 54682
,resp_appl_id => 222);
mo_global.set_policy_context('S',2939);
fnd_global.set_nls_context('AMERICAN');
ln_loop_count := 0;
------------------------------------------
-- Create Cust Account Site
------------------------------------------
OPEN cur_csite_use;
LOOP
BEGIN
ln_loop_count := 1 + ln_loop_count;
IF mod(ln_loop_count, gn_commit_int) = 0 THEN
COMMIT;
IF cur_csite_use%ISOPEN THEN
CLOSE cur_csite_use;
OPEN cur_csite_use;
END IF;
END IF;
FETCH cur_csite_use INTO master_rec;
EXIT
WHEN cur_csite_use%NOTFOUND;
--set_context(master_rec.org_id);
ln_msg_count := 0;
lv_return_status := NULL;
lv_msg_data := NULL;
lv_err_message := NULL;
lr_cust_site_use_rec := NULL;
ln_custacct_site_use_id := NULL;
lr_customer_profile_rec := NULL;
IF master_rec.salesrep_id IS NOT NULL THEN
lr_cust_site_use_rec.primary_salesrep_id :=
master_rec.salesrep_id;
END IF;
/*Updated for salesrep_id error */
lr_cust_site_use_rec.cust_acct_site_id :=
master_rec.customer_account_site_id;
lr_cust_site_use_rec.location := master_rec.location;
lr_cust_site_use_rec.site_use_code := gv_bill_to;
lr_cust_site_use_rec.created_by_module := gv_module;
lr_cust_site_use_rec.tax_reference :=
master_rec.tax_reference;
lr_cust_site_use_rec.tax_code := master_rec.tax_code;
lr_cust_site_use_rec.primary_flag := gv_y; -- good?
lr_cust_site_use_rec.gl_id_rec := master_rec.gl_id_rec;
lr_cust_site_use_rec.gl_id_rev := master_rec.gl_id_rev;
lr_cust_site_use_rec.gl_id_tax := master_rec.gl_id_tax;
lr_cust_site_use_rec.gl_id_freight := master_rec.gl_id_freight;
lr_cust_site_use_rec.gl_id_clearing :=
master_rec.gl_id_clearing;
lr_cust_site_use_rec.gl_id_unbilled :=
master_rec.gl_id_unbilled;
lr_cust_site_use_rec.gl_id_unearned :=
master_rec.gl_id_unearned;
lr_cust_site_use_rec.gl_id_unpaid_rec :=
master_rec.gl_id_unpaid_rec;
lr_cust_site_use_rec.gl_id_remittance :=
master_rec.gl_id_remittance;
lr_cust_site_use_rec.gl_id_factor := master_rec.gl_id_factor;
lr_cust_site_use_rec.attribute_category :=
master_rec.su_attribute_category;
lr_cust_site_use_rec.attribute1 :=
master_rec.su_attribute1;
lr_cust_site_use_rec.attribute2 :=
master_rec.su_attribute2;
lr_cust_site_use_rec.attribute3 :=
master_rec.su_attribute3;
lr_cust_site_use_rec.attribute4 :=
master_rec.su_attribute4;
lr_cust_site_use_rec.attribute5 :=
master_rec.su_attribute5;
lr_cust_site_use_rec.attribute6 :=
master_rec.su_attribute6;
lr_cust_site_use_rec.attribute7 :=
master_rec.su_attribute7;
lr_cust_site_use_rec.attribute8 :=
master_rec.su_attribute8;
lr_cust_site_use_rec.attribute9 :=
master_rec.su_attribute9;
lr_cust_site_use_rec.attribute10 :=
master_rec.su_attribute10;
lr_cust_site_use_rec.attribute11 :=
master_rec.su_attribute11;
lr_cust_site_use_rec.attribute12 :=
master_rec.su_attribute12;
lr_cust_site_use_rec.attribute13 :=
master_rec.su_attribute13;
lr_cust_site_use_rec.attribute14 :=
master_rec.su_attribute14;
lr_cust_site_use_rec.attribute15 :=
master_rec.su_attribute15;
lr_cust_site_use_rec.attribute16 :=
master_rec.su_attribute16;
lr_cust_site_use_rec.attribute17 :=
master_rec.su_attribute17;
lr_cust_site_use_rec.attribute18 :=
master_rec.su_attribute18;
lr_cust_site_use_rec.attribute19 :=
master_rec.su_attribute19;
lr_cust_site_use_rec.attribute20 :=
master_rec.su_attribute20;
lr_cust_site_use_rec.global_attribute_category :=
master_rec.su_global_attribute_category;
lr_cust_site_use_rec.global_attribute1 :=
master_rec.su_global_attribute1;
lr_cust_site_use_rec.global_attribute2 :=
master_rec.su_global_attribute2;
lr_cust_site_use_rec.global_attribute3 :=
master_rec.su_global_attribute3;
lr_cust_site_use_rec.global_attribute4 :=
master_rec.su_global_attribute4;
lr_cust_site_use_rec.global_attribute5 :=
master_rec.su_global_attribute5;
lr_cust_site_use_rec.global_attribute6 :=
master_rec.su_global_attribute6;
lr_cust_site_use_rec.global_attribute7 :=
master_rec.su_global_attribute7;
lr_cust_site_use_rec.global_attribute8 :=
master_rec.su_global_attribute8;
lr_cust_site_use_rec.global_attribute9 :=
master_rec.su_global_attribute9;
lr_cust_site_use_rec.global_attribute10 :=
master_rec.su_global_attribute10;
lr_cust_site_use_rec.global_attribute11 :=
master_rec.su_global_attribute11;
lr_cust_site_use_rec.global_attribute12 :=
master_rec.su_global_attribute12;
lr_cust_site_use_rec.global_attribute13 :=
master_rec.su_global_attribute13;
lr_cust_site_use_rec.global_attribute14 :=
master_rec.su_global_attribute14;
lr_cust_site_use_rec.global_attribute15 :=
master_rec.su_global_attribute15;
lr_cust_site_use_rec.global_attribute16 :=
master_rec.su_global_attribute16;
lr_cust_site_use_rec.global_attribute17 :=
master_rec.su_global_attribute17;
lr_cust_site_use_rec.global_attribute18 :=
master_rec.su_global_attribute18;
lr_cust_site_use_rec.global_attribute19 :=
master_rec.su_global_attribute19;
lr_cust_site_use_rec.global_attribute20 :=
master_rec.su_global_attribute20;
--lr_cust_site_use_rec.CONS_INV_TYPE :=
master_rec.CONS_INV_TYPE;
lr_cust_site_use_rec.payment_term_id :=
TO_NUMBER(NVL(master_rec.site_payment_terms,master_rec.payment
_terms));
DBMS_OUTPUT.PUT_LINE('MG#
master_rec.account_site_profile_class_id : ' ||
master_rec.account_site_profile_class_id );
IF master_rec.account_site_profile_class_id IS
NOT NULL THEN
lr_customer_profile_rec.profile_class_id :=
master_rec.account_site_profile_class_id;
lr_customer_profile_rec.created_by_module :=
gv_module;
/*IF
TO_NUMBER(NVL(master_rec.site_payment_terms,master_rec.payment
_terms)) IS NOT NULL THEN
lr_customer_profile_rec.standard_terms :=
TO_NUMBER(NVL(master_rec.site_payment_terms,master_rec.payment
_terms));
END IF;*/

DBMS_OUTPUT.PUT_LINE('MG#
lr_customer_profile_rec.standard_terms : ' ||
lr_customer_profile_rec.standard_terms);
-- DBMS_OUTPUT.PUT_LINE('MG# Before Calling
lr_customer_profile_rec.CONS_INV_FLAG: ' ||
lr_customer_profile_rec.CONS_INV_FLAG );
-- DBMS_OUTPUT.PUT_LINE('MG# Before Calling
lr_customer_profile_rec.CONS_INV_TYPE: ' ||
lr_customer_profile_rec.CONS_INV_TYPE );
-- DBMS_OUTPUT.PUT_LINE('MG# Before Calling
lr_customer_profile_rec.CONS_BILL_LEVEL: ' ||
lr_customer_profile_rec.CONS_BILL_LEVEL );
/*IF
master_rec.CONS_BILL_LEVEL IS NULL THEN */
-- lr_customer_profile_rec.standard_terms :=
TO_NUMBER(master_rec.payment_terms);
--lr_customer_profile_rec.CONS_INV_FLAG := 'Y'; --Added by
Mrudula Garikipati for Blance Forward billing issue 02/15/2017
--lr_customer_profile_rec.CONS_INV_TYPE := 'DETAIL'; --Added by
Mrudula Garikipati for Blance Forward billing issue 02/15/2017
--lr_customer_profile_rec.CONS_BILL_LEVEL := 'SITE'; --Added by
Mrudula Garikipati for Blance Forward billing issue 02/15/2017
--END IF;
END IF;
DBMS_OUTPUT.PUT_LINE('MG# Before Calling create_cust_site_use
API' );

hz_cust_account_site_v2pub.create_cust_site_use
(p_init_msg_list => gv_t ,
p_cust_site_use_rec => lr_cust_site_use_rec ,
p_customer_profile_rec => lr_customer_profile_rec ,
p_create_profile => ''
,p_create_profile_amt => '' ,
x_site_use_id => ln_custacct_site_use_id ,
x_return_status => lv_return_status ,
x_msg_count => ln_msg_count ,
x_msg_data => lv_msg_data);

DBMS_OUTPUT.PUT_LINE(' After Calling create_cust_site_use


API:ln_msg_count' ||ln_msg_count);
DBMS_OUTPUT.PUT_LINE('MG# After Calling create_cust_site_use
API:lv_return_status' || lv_return_status );
DBMS_OUTPUT.PUT_LINE('MG# After Calling create_cust_site_use
API: cust_acct_site_id' || lr_cust_site_use_rec.cust_acct_site_id);
DBMS_OUTPUT.PUT_LINE('After Calling create_cust_site_use
API:lv_return_status: master_rec.org_id ' ||master_rec.org_id);
DBMS_OUTPUT.PUT_LINE('MG# After Calling create_cust_site_use
API: location' || lr_cust_site_use_rec.location );
DBMS_OUTPUT.PUT_LINE('MG# After Calling create_cust_site_use
API: site_use_code' || lr_cust_site_use_rec.site_use_code );

IF lv_return_status <> gv_s THEN


IF ln_msg_count > 1 THEN
FOR i IN 1..ln_msg_count
LOOP
lv_err_message := SUBSTR(lv_err_message||' , ' ||
fnd_msg_pub.get (i, 'F'),1,4000);
END LOOP;
ELSIF ln_msg_count = 1 THEN
lv_err_message := SUBSTR(lv_msg_data,1,4000);
END IF;

DBMS_OUTPUT.PUT_LINE('MG# create_cust_site_use
API:lv_err_message ' || lv_err_message );
UPDATE xxyh_customer_master_int CMINT
SET CMINT.error_message =
TRIM(SUBSTR(lv_err_message,1,4000)) ,
CMINT.exec_su_change = gv_e ,
CMINT.process_flag = gv_e ,
CMINT.error_module = gv_module_as
WHERE CMINT.hz_party_id = master_rec.hz_party_id
AND CMINT.hz_location_id = master_rec.hz_location_id
AND CMINT.customer_account_id =
master_rec.customer_account_id
AND CMINT.org_id = master_rec.org_id
AND CMINT.customer_account_site_id =
master_rec.customer_account_site_id
AND CMINT.process_request_id = p_request_id
AND CMINT.exec_su_change = gv_y
AND CMINT.customer_account_site_use_id IS NULL;
ln_rowcount := SQL%ROWCOUNT;
IF (ln_rowcount > 1) THEN
COMMIT;
IF cur_csite_use%ISOPEN THEN
CLOSE cur_csite_use;
OPEN cur_csite_use;
END IF;
END IF; -- more than one record with same reference, this should
be unique, if more than one then issue
ELSE
UPDATE xxyh_customer_master_int CMINT
SET CMINT.customer_account_site_use_id =
ln_custacct_site_use_id ,
CMINT.exec_su_change = gv_s
WHERE CMINT.hz_party_id = master_rec.hz_party_id
AND CMINT.hz_location_id = master_rec.hz_location_id
AND CMINT.customer_account_id =
master_rec.customer_account_id
AND CMINT.org_id = master_rec.org_id
AND CMINT.customer_account_site_id =
master_rec.customer_account_site_id
AND CMINT.process_request_id = p_request_id
AND CMINT.exec_su_change = gv_y
AND CMINT.customer_account_site_use_id IS NULL;
ln_rowcount := SQL%ROWCOUNT;
IF (ln_rowcount > 1) THEN
COMMIT;
IF cur_csite_use%ISOPEN THEN
CLOSE cur_csite_use;
OPEN cur_csite_use;
END IF;
END IF; -- more than one record with same reference
END IF; -- no error in creating party site bill to
END; -- anon block
END LOOP; -- End Location
COMMIT;
IF cur_csite_use%ISOPEN THEN
CLOSE cur_csite_use;
OPEN cur_csite_use;
END IF;
DBMS_OUTPUT.PUT_LINE('END push_customer_su_ins');
COMMIT;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
IF cur_csite_use%ISOPEN THEN
CLOSE cur_csite_use;
OPEN cur_csite_use;
END IF;
fnd_file.put_line(fnd_file.output, 'push_customer_su_ins-SQLERR ' ||
SQLERRM);
DBMS_OUTPUT.PUT_LINE('push_customer_su_ins-SQLERR ' ||
SQLERRM);
END;
/

You might also like