You are on page 1of 6

CREATE OR REPLACE PACKAGE BODY rlz_sales_heirarchy_pkg IS TYPE sal_hir_ter_record IS RECORD ( Customer_Number apps.hz_cust_accounts.account _number%TYPE, Customer_Name apps.hz_cust_accounts.

account _name%TYPE, SBU apps.hz_customer_profiles.att ribute1%TYPE, Territory_on_Customer apps.hz_customer_profiles.att ribute9%TYPE, Salesrep_Number apps.rlz_oic_commission_dtls. salesrep_no%TYPE, Salesrep_Name apps.rlz_oic_commission_dtls. salesrep_name%TYPE, Primary_Office_Code apps.jtf_rs_groups_vl.attribu te3%TYPE, Primary_RSM apps.jtf_rs_salesreps.name%TY PE, Primary_DVP apps.jtf_rs_salesreps.name%TY PE, Primary_Flag apps.rlz_oic_commission_dtls. primary_salesrep_flag%TYPE, split_percent apps.rlz_oic_commission_dtls. commission_alloc_perc%TYPE, Base_Territory apps.rlz_oic_commission_dtls. base_territory_number%TYPE, Territory_Name apps.rlz_oic_salesrep_terr_hd r.territory_name%TYPE, Sales_Credit_Office_Code apps.rlz_oic_salesrep_terr_hd r.office_code%TYPE, Sales_Credit_RSM apps.jtf_rs_salesreps.name%TY PE, Sales_Credit_DVP apps.jtf_rs_salesreps.name%TY PE); sal_hir_ter_rec sal_hir_ter_record; TYPE sal_hir_ter_tab IS TABLE OF sal_hir_ter_rec%TYPE INDEX BY PLS_INTEGER; sal_hir_ter_arr sal_hir_ter_tab; PROCEDURE main( errbuf OUT VARCHAR2, retcode OUT NUMBER) IS v_org_id v_rs_groups_att3 v_ret_value1 v_ret_value2 office_exception BEGIN v_org_id := FND_PROFILE.VALUE('ORG_ID'); FND_CLIENT_INFO.SET_ORG_CONTEXT(v_org_id); BEGIN SELECT CUST_TABLE.ACCOUNT_NUMBER Customer_Number ,CUST_TABLE.ACCOUNT_NAME Customer_Name NUMBER; apps.jtf_rs_groups_vl.attribute3%TYPE; NUMBER:=0; NUMBER:=0; EXCEPTION;

,CUST_TABLE.SBU SBU ,CUST_TABLE.TERRITORY Territory_on_Customer ,TERR_TABLE.SALESREP_NUMBER Salesrep_Number ,TERR_TABLE.SALESREP_NAME Salesrep_Name ,OFFICE_TABLE.PRIMARY_OFFICE_CODE Primary_Office_Code ,NULL Primary_RSM ,NULL Primary_DVP ,TERR_TABLE.PRIMARY_FLAG Primary_Flag ,TERR_TABLE.COMM_PERCENT Split_percent ,TERR_TABLE.BASE_TERRITORY Base_Territory ,TERR_TABLE.BASE_TERRITORY_NAME Territory_Name ,TERR_TABLE.OFFICE_CODE Sales_Credit_Office_Code ,NULL Sales_Credit_RSM ,NULL Sales_Credit_DVP BULK COLLECT INTO sal_hir_ter_arr FROM (SELECT hca.cust_account_id account_id, hca.account_number, hca.account_name, hcp.attribute1 sbu, hcp.attribute9 territory FROM apps.hz_cust_accounts hca, apps.hz_customer_profiles hcp, apps.hz_cust_site_uses_all hcsu WHERE hca.cust_account_id = hcp.cust_account_id AND hcp.site_use_id = hcsu.site_use_id AND hca.status = hcp.status AND hca.status = hcsu.status AND hcsu.site_use_code = 'BILL_TO' AND hcsu.primary_flag = 'Y' AND hcp.status = 'A' AND hcp.attribute1 <> 'W') CUST_TABLE ,(SELECT rosth.territory_number master_territory ,rosth.territory_name master_territory_name ,jrs.salesrep_id salesrep_id ,rocd.salesrep_no salesrep_number ,rocd.salesrep_name salesrep_name ,rocd.commission_alloc_perc comm_percent ,rocd.primary_salesrep_flag primary_flag ,rocd.base_territory_number base_territory ,(select a.territory_name FROM apps.rlz_oic_salesrep_terr_hdr a WHERE a.territory_number = rocd.base_territory_number AND rownum = 1) base_territory_name ,(SELECT b.office_code FROM apps.rlz_oic_salesrep_terr_hdr b WHERE b.territory_number = rocd.base_territory_number AND rownum = 1) office_code FROM apps.rlz_oic_alloc_dtls road, apps.rlz_oic_commission_dtls rocd, apps.rlz_oic_salesrep_terr_hdr rosth, apps.jtf_rs_salesreps jrs WHERE rocd.territory_number = rosth.territory_number AND rocd.allocation_number = road.allocation_number AND rocd.territory_number = road.territory_number AND rocd.salesrep_no = jrs.salesrep_number AND SYSDATE BETWEEN rosth.start_date AND Nvl(rosth.end_date,To_Date('31 -DEC-9999','DD-MON-RRRR')) AND SYSDATE BETWEEN road.start_date AND Nvl(road.end_date,To_Date('31-D EC-9999','DD-MON-RRRR'))

) TERR_TABLE ,(SELECT DISTINCT jrs.salesrep_id salesrep_id ,NVL(jrv.attribute3,' ') primary_office_code ,jrv.group_id primary_office_id FROM apps.jtf_rs_salesreps jrs, apps.jtf_rs_groups_vl jrv, apps.jtf_rs_group_members jrgm, apps.jtf_rs_defresroles_vl jrd, apps.jtf_rs_grp_relations_vl jrgr WHERE jrs.resource_id = jrgm.resource_id AND jrv.group_id = jrgm.group_id AND jrd.role_resource_id = jrgm.resource_id AND jrgr.group_id = jrv.group_id AND jrs.org_id = 81 AND SYSDATE BETWEEN jrv.start_date_active AND NVL (jrv.end_date_active , TO_DATE ('31-DEC-9999', 'DD-MON-YYYY')) AND SYSDATE BETWEEN jrd.res_rl_start_date AND NVL (jrd.res_rl_end_date , TO_DATE ('31-DEC-9999', 'DD-MON-YYYY')) AND SYSDATE BETWEEN jrgr.start_date_active AND NVL (jrgr.end_date_acti ve, TO_DATE ('31-DEC-9999', 'DD-MON-YYYY')) AND UPPER(jrd.role_type_name)='SALES COMPENSATION' AND jrgr.relation_type = 'PARENT_GROUP' AND jrgm.delete_flag <> 'Y' AND jrd.delete_flag <> 'Y' AND jrgr.delete_flag <> 'Y' ) OFFICE_TABLE WHERE CUST_TABLE.TERRITORY = TERR_TABLE.MASTER_TERRITORY AND TERR_TABLE.SALESREP_ID = OFFICE_TABLE.SALESREP_ID(+) ORDER BY 1, 4, 5, 11; IF(sal_hir_ter_arr.count > 0) THEN fnd_file.put_line(fnd_file.output,'Customer Number' ' ' 'Customer Name' ' ' 'SBU' ' ' 'Territory on Customer' ' ' 'Salesrep Number' ' ' 'Salesrep Name' ' ' 'Primary Office Code' ' ' 'Primary RSM' ' ' 'Primary DVP' ' ' 'Primary Flag' ' ' 'Split %' ' ' 'Base Territory' ' ' 'Territory Name' ' ' 'Sales Credit Office Code' ' ' 'Sales Credit RSM' ' ' 'Sales Credit DVP'); FOR i IN sal_hir_ter_arr.FIRST..sal_hir_ter_arr.LAST LOOP BEGIN v_ret_value1:=rsm_dvp_fun(sal_hir_ter_arr(i).Primary_Office_Code,'Primary ',sal_hir_ter_arr(i).Primary_RSM,sal_hir_ter_arr(i).Primary_DVP); EXCEPTION WHEN OTHERS THEN

FND_FILE.PUT_LINE(FND_FILE.LOG, Primary RSM and DVP values for Primary Office ry_Office_Code ' . Error - ' SQLERRM); sal_hir_ter_arr(i).Primary_RSM sal_hir_ter_arr(i).Primary_DVP

'Unable to call function to fetch Code - ' sal_hir_ter_arr(i).Prima := NULL; := NULL;

END; BEGIN v_ret_value2:=rsm_dvp_fun(sal_hir_ter_arr(i).Sales_Credit_Office_Code,'Sa les Credit ',sal_hir_ter_arr(i).Sales_Credit_RSM,sal_hir_ter_arr(i).Sales_Credit _DVP); EXCEPTION WHEN OTHERS THEN FND_FILE.PUT_LINE(FND_FILE.LOG, 'Unable to call function to fetch Sales Credit RSM and DVP values for Sales Credit Office Code - ' sal_hir_ter_ar r(i).Sales_Credit_Office_Code ' . Error - ' SQLERRM); sal_hir_ter_arr(i).Sales_Credit_RSM := NULL; sal_hir_ter_arr(i).Sales_Credit_DVP := NULL; END; fnd_file.put_line (fnd_file.output,sal_hir_ter_arr(i).Customer_Number ' ' sal_hir_ter_arr(i).Customer_Name ' ' sal_hir_ter_arr(i).SBU ' ' sal_hir_ter_arr(i).Territory_on_Custo mer ' ' sal_hir_ter_arr(i).Salesrep_Number ' ' sal_hir_ter_arr(i).Salesrep_Name ' ' sal_hir_ter_arr(i).Primary_Office_Cod e ' ' ' ' ' ' ' e_Code ' ' sal_hir_ter_arr(i).Sales_Credit_RSM ' ' sal_hir_ter_arr(i).Sales_Credit_DVP); END LOOP; sal_hir_ter_arr.DELETE; ELSE FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'****** No Records Found, Please Che ck Selection Parameters *****'); retcode :=0; END IF; END; EXCEPTION WHEN OTHERS THEN FND_FILE.PUT_LINE(FND_FILE.LOG,'UNEXPECTED ERROR IN MAIN PROCEDURE - ' SUB STR(SQLERRM,1,200)); retcode := 2; END main; ' ' ' ' ' ' ' sal_hir_ter_arr(i).Primary_RSM sal_hir_ter_arr(i).Primary_DVP sal_hir_ter_arr(i).Primary_Flag sal_hir_ter_arr(i).Split_percent sal_hir_ter_arr(i).Base_Territory sal_hir_ter_arr(i).Territory_Name sal_hir_ter_arr(i).Sales_Credit_Offic

FUNCTION rsm_dvp_fun(office_code IN apps.jtf_rs_groups_vl.attribute3%TYPE, code IN varchar2, v_rsm OUT apps.jtf_rs_salesreps.name%TYPE, v_dvp OUT apps.jtf_rs_salesreps.name%TYPE) RETURN NUMBER IS v_rs_group_att3 apps.jtf_rs_groups_vl.attribute3%TYPE; BEGIN begin SELECT jrgv.attribute3 ,jrsm.name RSM ,jdvp.name DVP INTO v_rs_group_att3, v_rsm, v_dvp FROM apps.jtf_rs_groups_vl jrgv ,apps.jtf_rs_grp_relations_vl jrgr ,apps.jtf_rs_grp_relations_vl jrgr2 ,apps.jtf_rs_group_members jrgm ,apps.jtf_rs_group_members jrgm2 ,apps.jtf_rs_salesreps jrsm ,apps.jtf_rs_salesreps jdvp WHERE jrgv.group_id = jrgr.group_id and jrgr.related_group_id = jrgm.group_id and jrgm.resource_id = jrsm.resource_id and jrgr.related_group_id = jrgr2.group_id and jrgr2.related_group_id = jrgm2.group_id and jrgm2.resource_id = jdvp.resource_id and jrgr.relation_type = 'PARENT_GROUP' and jrgr2.relation_type = 'PARENT_GROUP' and jrgm.delete_flag <> 'Y' and jrgm2.delete_flag <> 'Y' and SYSDATE BETWEEN jrgv.start_date_active AND NVL (jrgv.end_date_active,TO_DA TE ('31-DEC-9999', 'DD-MON-YYYY')) and SYSDATE BETWEEN jrgr.start_date_active AND NVL (jrgr.end_date_active,TO_DA TE ('31-DEC-9999', 'DD-MON-YYYY')) and SYSDATE BETWEEN jrgr2.start_date_active AND NVL (jrgr2.end_date_active,TO_ DATE ('31-DEC-9999', 'DD-MON-YYYY')) and SYSDATE BETWEEN jrsm.start_date_active AND NVL (jrsm.end_date_active,TO_DA TE ('31-DEC-9999', 'DD-MON-YYYY')) and SYSDATE BETWEEN jdvp.start_date_active AND NVL (jdvp.end_date_active,TO_DA TE ('31-DEC-9999', 'DD-MON-YYYY')) and jrgv.attribute2 = 'O' and jrgv.attribute3 = office_code AND rownum = 1; return 1; EXCEPTION WHEN OTHERS THEN FND_FILE.PUT_LINE(FND_FILE.LOG, 'Unable to fetch ' code ' Sales Credit RSM and DVP values for ' code ' Office Code - ' office_code ' . Err or - ' SQLERRM); v_rsm:=NULL; v_dvp:=NULL; RETURN 0; END; END rsm_dvp_fun; END rlz_sales_heirarchy_pkg;

You might also like