/*声明DO_CREATE_JOB_TITLE*/
PROCEDURE DO_CREATE_JOB_TITLE
(
I_JOB_TITLE VARCHAR2,
I_CUST_PARTY_ID NUMBER,
I_CUST_ACCOUNT_ID NUMBER,
I_CUST_ACCT_SITE_ID NUMBER,
I_PERSON_LAST_NAME HZ_PARTIES.PERSON_LAST_NAME%TYPE DEFAULT 'N/A',
I_PHONE HZ_CONTACT_POINTS.PHONE_NUMBER%TYPE,
I_FAX HZ_CONTACT_POINTS.PHONE_NUMBER%TYPE,
I_EMAIL HZ_CONTACT_POINTS.EMAIL_ADDRESS%TYPE
);
/*实现DO_CREATE_JOB_TITLE*/
PROCEDURE DO_CREATE_JOB_TITLE
(
I_JOB_TITLE VARCHAR2,
I_CUST_PARTY_ID NUMBER,
I_CUST_ACCOUNT_ID NUMBER,
I_CUST_ACCT_SITE_ID NUMBER,
I_PERSON_LAST_NAME HZ_PARTIES.PERSON_LAST_NAME%TYPE DEFAULT 'N/A',
I_PHONE HZ_CONTACT_POINTS.PHONE_NUMBER%TYPE,
I_FAX HZ_CONTACT_POINTS.PHONE_NUMBER%TYPE,
I_EMAIL HZ_CONTACT_POINTS.EMAIL_ADDRESS%TYPE
) AS
V_JOB_TITLE VARCHAR2(100);
V_CUST_PARTY_ID NUMBER(10);
V_CUST_ACCOUNT_ID NUMBER(10);
V_CUST_ACCT_SITE_ID NUMBER(10);
--create person
P_PERSON_REC HZ_PARTY_V2PUB.PERSON_REC_TYPE;
X_PARTY_ID NUMBER;
X_PARTY_NUMBER VARCHAR2(100);
X_PROFILE_ID NUMBER;
--create org_contact
P_ORG_CONTACT_REC HZ_PARTY_CONTACT_V2PUB.ORG_CONTACT_REC_TYPE;
X_ORG_CONTACT_ID NUMBER;
X_PARTY_REL_ID NUMBER;
X_PARTY_ID2 NUMBER;
X_PARTY_NUMBER2 VARCHAR2(100);
--create acctount_role
P_CR_CUST_ACC_ROLE_REC HZ_CUST_ACCOUNT_ROLE_V2PUB.CUST_ACCOUNT_ROLE_REC_TYPE;
X_CUST_ACCOUNT_ROLE_ID NUMBER;
--create contact_point
P_CONTACT_POINT_REC HZ_CONTACT_POINT_V2PUB.CONTACT_POINT_REC_TYPE;
P_EMAIL_REC HZ_CONTACT_POINT_V2PUB.EMAIL_REC_TYPE;
P_PHONE_REC_GEN HZ_CONTACT_POINT_V2PUB.PHONE_REC_TYPE;
P_PHONE_REC_FAX HZ_CONTACT_POINT_V2PUB.PHONE_REC_TYPE;
X_CONTACT_POINT_ID NUMBER;
X_RETURN_STATUS VARCHAR2(2000);
X_MSG_COUNT NUMBER;
X_MSG_DATA VARCHAR2(2000);
BEGIN
V_JOB_TITLE := I_JOB_TITLE;
V_CUST_PARTY_ID := I_CUST_PARTY_ID;
V_CUST_ACCOUNT_ID := I_CUST_ACCOUNT_ID;
V_CUST_ACCT_SITE_ID := I_CUST_ACCT_SITE_ID;
--step 1 创建hz_parties
P_PERSON_REC.PERSON_LAST_NAME := I_PERSON_LAST_NAME;
P_PERSON_REC.CREATED_BY_MODULE := 'TCA_V2_API';
--调用TCAPI中创建方法
HZ_PARTY_V2PUB.CREATE_PERSON('T',
P_PERSON_REC,
X_PARTY_ID,
X_PARTY_NUMBER,
X_PROFILE_ID,
X_RETURN_STATUS,
X_MSG_COUNT,
X_MSG_DATA);
COMMIT;
DBMS_OUTPUT.PUT_LINE('********CREATE PERSON SUCCESSFUL********');
DBMS_OUTPUT.PUT_LINE('Output information ....');
DBMS_OUTPUT.PUT_LINE('x_party_id: ' || X_PARTY_ID);
DBMS_OUTPUT.PUT_LINE('x_party_number: ' || X_PARTY_NUMBER);
DBMS_OUTPUT.PUT_LINE('x_profile_id: ' || X_PROFILE_ID);
DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
--step 2 创建hz_org_contacts并同时创建了hz_relationships
IF X_RETURN_STATUS = 'S' THEN
P_ORG_CONTACT_REC.JOB_TITLE := V_JOB_TITLE;
P_ORG_CONTACT_REC.CREATED_BY_MODULE := 'TCA_V2_API';
P_ORG_CONTACT_REC.PARTY_REL_REC.SUBJECT_ID := X_PARTY_ID; -- from step 1
P_ORG_CONTACT_REC.PARTY_REL_REC.SUBJECT_TYPE := 'PERSON';
P_ORG_CONTACT_REC.PARTY_REL_REC.SUBJECT_TABLE_NAME := 'HZ_PARTIES';
P_ORG_CONTACT_REC.PARTY_REL_REC.OBJECT_ID := V_CUST_PARTY_ID;
P_ORG_CONTACT_REC.PARTY_REL_REC.OBJECT_TYPE := 'ORGANIZATION';
P_ORG_CONTACT_REC.PARTY_REL_REC.OBJECT_TABLE_NAME := 'HZ_PARTIES';
P_ORG_CONTACT_REC.PARTY_REL_REC.RELATIONSHIP_CODE := 'CONTACT_OF';
P_ORG_CONTACT_REC.PARTY_REL_REC.RELATIONSHIP_TYPE := 'CONTACT';
P_ORG_CONTACT_REC.PARTY_REL_REC.START_DATE := SYSDATE;
P_ORG_CONTACT_REC.PARTY_REL_REC.STATUS := 'A';
--调用TCAPI中的创建方法
HZ_PARTY_CONTACT_V2PUB.CREATE_ORG_CONTACT('T',
P_ORG_CONTACT_REC,
X_ORG_CONTACT_ID,
X_PARTY_REL_ID,
X_PARTY_ID2,
X_PARTY_NUMBER2,
X_RETURN_STATUS,
X_MSG_COUNT,
X_MSG_DATA);
COMMIT;
DBMS_OUTPUT.PUT_LINE('******CREATE_ORG_CONTACT SUCCESSFUL************');
DBMS_OUTPUT.PUT_LINE('Output information ....');
DBMS_OUTPUT.PUT_LINE('x_org_contact_id: ' || X_ORG_CONTACT_ID);
DBMS_OUTPUT.PUT_LINE('x_party_rel_id: ' || X_PARTY_REL_ID);
DBMS_OUTPUT.PUT_LINE('x_party_id: ' || X_PARTY_ID2);
DBMS_OUTPUT.PUT_LINE('x_party_number: ' || X_PARTY_NUMBER2);
DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
ELSE
RETURN;
END IF;
IF X_RETURN_STATUS = 'S' THEN
--step 3 创建hz_cust_acctount_roles
P_CR_CUST_ACC_ROLE_REC.PARTY_ID := X_PARTY_ID2; -- from step 2;
P_CR_CUST_ACC_ROLE_REC.CUST_ACCOUNT_ID := V_CUST_ACCOUNT_ID;
P_CR_CUST_ACC_ROLE_REC.CUST_ACCT_SITE_ID := V_CUST_ACCT_SITE_ID;
/*P_CR_CUST_ACC_ROLE_REC.ORIG_SYSTEM := 'UNKNOWN';
P_CR_CUST_ACC_ROLE_REC.orig_system_reference:='N';*/
P_CR_CUST_ACC_ROLE_REC.PRIMARY_FLAG := 'N';
P_CR_CUST_ACC_ROLE_REC.ROLE_TYPE := 'CONTACT';
P_CR_CUST_ACC_ROLE_REC.CREATED_BY_MODULE := 'TCA_V2_API';
--调用TCAPI中的创建方法
HZ_CUST_ACCOUNT_ROLE_V2PUB.CREATE_CUST_ACCOUNT_ROLE('T',
P_CR_CUST_ACC_ROLE_REC,
X_CUST_ACCOUNT_ROLE_ID,
X_RETURN_STATUS,
X_MSG_COUNT,
X_MSG_DATA);
COMMIT;
DBMS_OUTPUT.PUT_LINE('********CREATE_CUST_ACCOUNT_ROLE SUCCESSFUL************');
DBMS_OUTPUT.PUT_LINE('Output information ....');
DBMS_OUTPUT.PUT_LINE('x_cust_account_role_id: ' ||
X_CUST_ACCOUNT_ROLE_ID);
DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
ELSE
RETURN;
END IF;
IF X_RETURN_STATUS = 'S' THEN
--step 4 创建hz_contact_points
P_CONTACT_POINT_REC.OWNER_TABLE_NAME := 'HZ_PARTIES';
P_CONTACT_POINT_REC.OWNER_TABLE_ID := X_PARTY_ID2;
P_CONTACT_POINT_REC.CREATED_BY_MODULE := 'TCA_V2_API';
P_CONTACT_POINT_REC.CONTACT_POINT_TYPE := 'PHONE';
--create GEN
P_PHONE_REC_GEN.PHONE_NUMBER := I_PHONE;
P_PHONE_REC_GEN.PHONE_LINE_TYPE := 'GEN';
P_CONTACT_POINT_REC.PRIMARY_FLAG := 'Y';
HZ_CONTACT_POINT_V2PUB.CREATE_PHONE_CONTACT_POINT('T',
P_CONTACT_POINT_REC,
P_PHONE_REC_GEN,
X_CONTACT_POINT_ID,
X_RETURN_STATUS,
X_MSG_COUNT,
X_MSG_DATA);
COMMIT;
DBMS_OUTPUT.PUT_LINE('*********CREATE GEN SUCCESSFUL**********');
DBMS_OUTPUT.PUT_LINE('Output information ....');
DBMS_OUTPUT.PUT_LINE('X_CONTACT_POINT_ID: ' || X_CONTACT_POINT_ID);
DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
--create FAX
P_PHONE_REC_FAX.PHONE_NUMBER := I_FAX;
P_PHONE_REC_FAX.PHONE_LINE_TYPE := 'FAX';
P_CONTACT_POINT_REC.PRIMARY_FLAG := 'N';
HZ_CONTACT_POINT_V2PUB.CREATE_PHONE_CONTACT_POINT('T',
P_CONTACT_POINT_REC,
P_PHONE_REC_FAX,
X_CONTACT_POINT_ID,
X_RETURN_STATUS,
X_MSG_COUNT,
X_MSG_DATA);
COMMIT;
DBMS_OUTPUT.PUT_LINE('********CREATE FAX SUCCESSFUL*********');
DBMS_OUTPUT.PUT_LINE('Output information ....');
DBMS_OUTPUT.PUT_LINE('X_CONTACT_POINT_ID: ' || X_CONTACT_POINT_ID);
DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
--create email
P_CONTACT_POINT_REC.CONTACT_POINT_TYPE := 'EMAIL';
P_EMAIL_REC.EMAIL_ADDRESS := I_EMAIL;
P_CONTACT_POINT_REC.PRIMARY_FLAG := 'Y';
P_CONTACT_POINT_REC.ATTRIBUTE_CATEGORY := 'CPC Email Information';
P_CONTACT_POINT_REC.ATTRIBUTE1 := 'N';
P_CONTACT_POINT_REC.ATTRIBUTE2 := 'N';
P_CONTACT_POINT_REC.ATTRIBUTE3 := 'N';
P_CONTACT_POINT_REC.ATTRIBUTE4 := 'N';
P_CONTACT_POINT_REC.ATTRIBUTE5 := 'N';
P_CONTACT_POINT_REC.ATTRIBUTE6 := 'N';
P_CONTACT_POINT_REC.ATTRIBUTE7 := 'Y';
HZ_CONTACT_POINT_V2PUB.CREATE_EMAIL_CONTACT_POINT('T',
P_CONTACT_POINT_REC,
P_EMAIL_REC,
X_CONTACT_POINT_ID,
X_RETURN_STATUS,
X_MSG_COUNT,
X_MSG_DATA);
COMMIT;
DBMS_OUTPUT.PUT_LINE('********CREATE EMAIL SUCCESSFUL********');
DBMS_OUTPUT.PUT_LINE('Output information ....');
DBMS_OUTPUT.PUT_LINE('X_CONTACT_POINT_ID: ' || X_CONTACT_POINT_ID);
DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
END IF;
END DO_CREATE_JOB_TITLE;
/*声明DO_CREATE_CONTACT_POINT*/
PROCEDURE DO_CREATE_CONTACT_POINT
(
I_OWNER_TABLE_ID NUMBER,
I_CONTACT_POINT_TYPE VARCHAR,
I_PHONE HZ_CONTACT_POINTS.PHONE_NUMBER%TYPE,
I_FAX HZ_CONTACT_POINTS.PHONE_NUMBER%TYPE,
I_EMAIL HZ_CONTACT_POINTS.EMAIL_ADDRESS%TYPE
);
/*实现DO_CREATE_CONTACT_POINT*/
PROCEDURE DO_CREATE_CONTACT_POINT
(
I_OWNER_TABLE_ID NUMBER,
I_CONTACT_POINT_TYPE VARCHAR,
I_PHONE HZ_CONTACT_POINTS.PHONE_NUMBER%TYPE,
I_FAX HZ_CONTACT_POINTS.PHONE_NUMBER%TYPE,
I_EMAIL HZ_CONTACT_POINTS.EMAIL_ADDRESS%TYPE
) AS
V_OWNER_TABLE_ID NUMBER(10);
V_CONTACT_POINT_TYPE VARCHAR(100);
P_CONTACT_POINT_REC HZ_CONTACT_POINT_V2PUB.CONTACT_POINT_REC_TYPE;
P_EMAIL_REC HZ_CONTACT_POINT_V2PUB.EMAIL_REC_TYPE;
P_PHONE_REC HZ_CONTACT_POINT_V2PUB.PHONE_REC_TYPE;
X_CONTACT_POINT_ID NUMBER;
X_RETURN_STATUS VARCHAR2(2000);
X_MSG_COUNT NUMBER;
X_MSG_DATA VARCHAR2(2000);
BEGIN
V_OWNER_TABLE_ID := I_OWNER_TABLE_ID;
V_CONTACT_POINT_TYPE := I_CONTACT_POINT_TYPE;
P_CONTACT_POINT_REC.OWNER_TABLE_NAME := 'HZ_PARTIES';
P_CONTACT_POINT_REC.OWNER_TABLE_ID := V_OWNER_TABLE_ID;
P_CONTACT_POINT_REC.CREATED_BY_MODULE := 'TCA_V2_API';
--根据需要创造不同的contact_point
IF V_CONTACT_POINT_TYPE = 'GEN' THEN
P_CONTACT_POINT_REC.CONTACT_POINT_TYPE := 'PHONE';
P_CONTACT_POINT_REC.PRIMARY_FLAG := 'Y';
P_PHONE_REC.PHONE_NUMBER := I_PHONE;
P_PHONE_REC.PHONE_LINE_TYPE := V_CONTACT_POINT_TYPE;
HZ_CONTACT_POINT_V2PUB.CREATE_PHONE_CONTACT_POINT('T',
P_CONTACT_POINT_REC,
P_PHONE_REC,
X_CONTACT_POINT_ID,
X_RETURN_STATUS,
X_MSG_COUNT,
X_MSG_DATA);
COMMIT;
DBMS_OUTPUT.PUT_LINE('********CREATE GEN SUCCESSFUL********');
DBMS_OUTPUT.PUT_LINE('Output information ....');
DBMS_OUTPUT.PUT_LINE('X_CONTACT_POINT_ID: ' || X_CONTACT_POINT_ID);
DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
DBMS_OUTPUT.PUT_LINE('***************************');
ELSIF V_CONTACT_POINT_TYPE = 'FAX' THEN
P_CONTACT_POINT_REC.CONTACT_POINT_TYPE := 'PHONE';
P_CONTACT_POINT_REC.PRIMARY_FLAG := 'N';
P_PHONE_REC.PHONE_NUMBER := I_FAX;
P_PHONE_REC.PHONE_LINE_TYPE := V_CONTACT_POINT_TYPE;
HZ_CONTACT_POINT_V2PUB.CREATE_PHONE_CONTACT_POINT('T',
P_CONTACT_POINT_REC,
P_PHONE_REC,
X_CONTACT_POINT_ID,
X_RETURN_STATUS,
X_MSG_COUNT,
X_MSG_DATA);
COMMIT;
DBMS_OUTPUT.PUT_LINE('********CREATE FAX SUCCESSFUL********');
DBMS_OUTPUT.PUT_LINE('Output information ....');
DBMS_OUTPUT.PUT_LINE('X_CONTACT_POINT_ID: ' || X_CONTACT_POINT_ID);
DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
DBMS_OUTPUT.PUT_LINE('***************************');
ELSIF V_CONTACT_POINT_TYPE = 'EMAIL' THEN
P_CONTACT_POINT_REC.CONTACT_POINT_TYPE := 'EMAIL';
P_CONTACT_POINT_REC.PRIMARY_FLAG := 'Y';
P_EMAIL_REC.EMAIL_ADDRESS := I_EMAIL;
P_CONTACT_POINT_REC.ATTRIBUTE_CATEGORY := 'CPC Email Information';
P_CONTACT_POINT_REC.ATTRIBUTE1 := 'N';
P_CONTACT_POINT_REC.ATTRIBUTE2 := 'N';
P_CONTACT_POINT_REC.ATTRIBUTE3 := 'N';
P_CONTACT_POINT_REC.ATTRIBUTE4 := 'N';
P_CONTACT_POINT_REC.ATTRIBUTE5 := 'N';
P_CONTACT_POINT_REC.ATTRIBUTE6 := 'N';
P_CONTACT_POINT_REC.ATTRIBUTE7 := 'Y';
HZ_CONTACT_POINT_V2PUB.CREATE_EMAIL_CONTACT_POINT('T',
P_CONTACT_POINT_REC,
P_EMAIL_REC,
X_CONTACT_POINT_ID,
X_RETURN_STATUS,
X_MSG_COUNT,
X_MSG_DATA);
COMMIT;
DBMS_OUTPUT.PUT_LINE('********CREATE EMAIL SUCCESSFUL********');
DBMS_OUTPUT.PUT_LINE('Output information ....');
DBMS_OUTPUT.PUT_LINE('X_CONTACT_POINT_ID: ' || X_CONTACT_POINT_ID);
DBMS_OUTPUT.PUT_LINE('x_return_status: ' || X_RETURN_STATUS);
DBMS_OUTPUT.PUT_LINE('x_msg_count: ' || X_MSG_COUNT);
DBMS_OUTPUT.PUT_LINE('x_msg_data: ' || X_MSG_DATA);
DBMS_OUTPUT.PUT_LINE('***************************');
END IF;
END;
/*name:Create_Contacts
effect:根据传入的site_gid和ou_name来判断当前的site是否已经创建了General Default、General Additional、Account Manager,
如果没有创建,则进行创建,并同时创建contact_point,如果已经创建了Account Manager,则要判断其是否创建了phone、
fax、email,如果没有,则必须创建
*/
PROCEDURE CREATE_CONTACTS
(
I_SITE_GID HZ_LOCATIONS.ADDRESS_LINES_PHONETIC%TYPE,
I_OU_NAME HR_ORGANIZATION_UNITS.NAME%TYPE
) AS
V_GENERAL_DEFAULT_CNT NUMBER;
V_GENERAL_ADDITIONAL_CNT NUMBER;
V_ACCOUNT_MANAGER_CNT NUMBER;
V_GEN_CNT NUMBER DEFAULT 0;
V_FAX_CNT NUMBER DEFAULT 0;
V_EMAIL_CNT NUMBER DEFAULT 0;
V_SITE_GID VARCHAR2(100);
V_OU_NAME VARCHAR2(100);
V_CUST_PARTY_ID NUMBER;
V_CUST_ACCOUNT_ID NUMBER;
V_CUST_ACCT_SITE_ID NUMBER;
V_OWNER_TABLE_ID NUMBER;
BEGIN
V_SITE_GID := I_SITE_GID;
V_OU_NAME := I_OU_NAME;
/*查询当前site对应OU的General Default、General Additional、Account Manager的数量*/
SELECT NVL(SUM(DECODE(CSC.JOB_TITLE, 'General Default', 1, 0)), 0),
NVL(SUM(DECODE(CSC.JOB_TITLE, 'General Additional', 1, 0)), 0),
NVL(SUM(DECODE(CSC.JOB_TITLE, 'Account Manager', 1, 0)), 0)
INTO V_GENERAL_DEFAULT_CNT,
V_GENERAL_ADDITIONAL_CNT,
V_ACCOUNT_MANAGER_CNT
FROM CPC_V_CUSTOMER_SITE_CONTACT CSC
WHERE 1 = 1
AND CSC.SITE_USE_CODE = 'BILL_TO'
AND CSC.SITE_GID = V_SITE_GID
AND OU_NAME = V_OU_NAME
--AND CSC.CONTACT_P_STATUS = 'A'
AND CSC.CUST_ACCOUNT_ROLE_STATUS = 'A'
AND CSC.PARTY_SITE_STATUS = 'A'
AND CSC.ACCT_SITE_STATUS = 'A';
--为后面创建parties、relationships等准备参数
SELECT DISTINCT CSC.CUST_PARTY_ID,
CSC.CUST_ACCOUNT_ID,
CSC.CUST_ACCT_SITE_ID,
CSC.ACCT_ROLE_PARTY_ID
INTO V_CUST_PARTY_ID,
V_CUST_ACCOUNT_ID,
V_CUST_ACCT_SITE_ID,
V_OWNER_TABLE_ID
FROM CPC_V_CUSTOMER_SITE_CONTACT CSC
WHERE 1 = 1
AND CSC.SITE_USE_CODE = 'BILL_TO'
AND CSC.SITE_GID = V_SITE_GID
AND OU_NAME = V_OU_NAME
AND CSC.PARTY_SITE_STATUS = 'A'
AND CSC.ACCT_SITE_STATUS = 'A';
MO_GLOBAL.INIT('PO'); --必须
--如果。。为0,则调用创建job_title的方法
IF V_GENERAL_DEFAULT_CNT = 0 THEN
DO_CREATE_JOB_TITLE('General Default',
V_CUST_PARTY_ID,
V_CUST_ACCOUNT_ID,
V_CUST_ACCT_SITE_ID,
'N/A',
'N/A',
'N/A',
'N/A');
DBMS_OUTPUT.PUT_LINE('General Default Create Successful!');
DBMS_OUTPUT.PUT_LINE('***************************');
END IF;
IF V_GENERAL_ADDITIONAL_CNT = 0 THEN
DO_CREATE_JOB_TITLE('General Additional',
V_CUST_PARTY_ID,
V_CUST_ACCOUNT_ID,
V_CUST_ACCT_SITE_ID,
'N/A',
'N/A',
'N/A',
'N/A');
DBMS_OUTPUT.PUT_LINE('General Additional Create Successful!');
DBMS_OUTPUT.PUT_LINE('***************************');
END IF;
IF V_ACCOUNT_MANAGER_CNT = 0 THEN
DO_CREATE_JOB_TITLE('Account Manager',
V_CUST_PARTY_ID,
V_CUST_ACCOUNT_ID,
V_CUST_ACCT_SITE_ID,
'N/A',
'N/A',
'N/A',
'N/A');
DBMS_OUTPUT.PUT_LINE('Account Manager Create Successful!');
DBMS_OUTPUT.PUT_LINE('***************************');
END IF;
--如果..不为0
IF V_GENERAL_DEFAULT_CNT > 0 THEN
--查询出当前的job_title所拥有的contact_point的数量
SELECT NVL(SUM(DECODE(CSC.PHONE_LINE_TYPE, 'GEN', 1, 0)), 0),
NVL(SUM(DECODE(CSC.PHONE_LINE_TYPE, 'FAX', 1, 0)), 0),
NVL(SUM(DECODE(CSC.CONTACT_POINT_TYPE, 'EMAIL', 1, 0)), 0)
INTO V_GEN_CNT,
V_FAX_CNT,
V_EMAIL_CNT
FROM CPC_V_CUSTOMER_SITE_CONTACT CSC
WHERE 1 = 1
AND CSC.SITE_USE_CODE = 'BILL_TO'
AND CSC.SITE_GID = V_SITE_GID
AND OU_NAME = V_OU_NAME
AND CSC.JOB_TITLE = 'General Default'
AND CSC.CONTACT_P_STATUS = 'A'
AND CSC.CUST_ACCOUNT_ROLE_STATUS = 'A'
AND CSC.PARTY_SITE_STATUS = 'A'
AND CSC.ACCT_SITE_STATUS = 'A';
--如果,,为0则进行创建
IF V_GEN_CNT = 0 THEN
DO_CREATE_CONTACT_POINT(V_OWNER_TABLE_ID,
'GEN',
'N/A',
'N/A',
'N/A');
DBMS_OUTPUT.PUT_LINE('Gen Create Successful!');
END IF;
IF V_FAX_CNT = 0 THEN
DO_CREATE_CONTACT_POINT(V_OWNER_TABLE_ID,
'FAX',
'N/A',
'N/A',
'N/A');
DBMS_OUTPUT.PUT_LINE('Fax Create Successful!');
END IF;
IF V_EMAIL_CNT = 0 THEN
DO_CREATE_CONTACT_POINT(V_OWNER_TABLE_ID,
'EMAIL',
'N/A',
'N/A',
'N/A');
DBMS_OUTPUT.PUT_LINE('Email Create Successful!');
END IF;
END IF;
IF V_GENERAL_ADDITIONAL_CNT > 0 THEN
SELECT NVL(SUM(DECODE(CSC.PHONE_LINE_TYPE, 'GEN', 1, 0)), 0),
NVL(SUM(DECODE(CSC.PHONE_LINE_TYPE, 'FAX', 1, 0)), 0),
NVL(SUM(DECODE(CSC.CONTACT_POINT_TYPE, 'EMAIL', 1, 0)), 0)
INTO V_GEN_CNT,
V_FAX_CNT,
V_EMAIL_CNT
FROM CPC_V_CUSTOMER_SITE_CONTACT CSC
WHERE 1 = 1
AND CSC.SITE_USE_CODE = 'BILL_TO'
AND CSC.SITE_GID = V_SITE_GID
AND OU_NAME = V_OU_NAME
AND CSC.JOB_TITLE = 'General Additional'
AND CSC.CONTACT_P_STATUS = 'A'
AND CSC.CUST_ACCOUNT_ROLE_STATUS = 'A'
AND CSC.PARTY_SITE_STATUS = 'A'
AND CSC.ACCT_SITE_STATUS = 'A'
GROUP BY CSC.JOB_TITLE;
IF V_GEN_CNT = 0 THEN
DO_CREATE_CONTACT_POINT(V_OWNER_TABLE_ID,
'GEN',
'N/A',
'N/A',
'N/A');
DBMS_OUTPUT.PUT_LINE('Gen Create Successful!');
END IF;
IF V_FAX_CNT = 0 THEN
DO_CREATE_CONTACT_POINT(V_OWNER_TABLE_ID,
'FAX',
'N/A',
'N/A',
'N/A');
DBMS_OUTPUT.PUT_LINE('Fax Create Successful!');
END IF;
IF V_EMAIL_CNT = 0 THEN
DO_CREATE_CONTACT_POINT(V_OWNER_TABLE_ID,
'EMAIL',
'N/A',
'N/A',
'N/A');
DBMS_OUTPUT.PUT_LINE('Email Create Successful!');
END IF;
END IF;
IF V_ACCOUNT_MANAGER_CNT > 0 THEN
SELECT NVL(SUM(DECODE(CSC.PHONE_LINE_TYPE, 'GEN', 1, 0)), 0),
NVL(SUM(DECODE(CSC.PHONE_LINE_TYPE, 'FAX', 1, 0)), 0),
NVL(SUM(DECODE(CSC.CONTACT_POINT_TYPE, 'EMAIL', 1, 0)), 0)
INTO V_GEN_CNT,
V_FAX_CNT,
V_EMAIL_CNT
FROM CPC_V_CUSTOMER_SITE_CONTACT CSC
WHERE 1 = 1
AND CSC.SITE_USE_CODE = 'BILL_TO'
AND CSC.SITE_GID = V_SITE_GID
AND OU_NAME = V_OU_NAME
AND CSC.JOB_TITLE = 'Account Manager'
AND CSC.CONTACT_P_STATUS = 'A'
AND CSC.CUST_ACCOUNT_ROLE_STATUS = 'A'
AND CSC.PARTY_SITE_STATUS = 'A'
AND CSC.ACCT_SITE_STATUS = 'A'
GROUP BY CSC.JOB_TITLE;
IF V_GEN_CNT = 0 THEN
DO_CREATE_CONTACT_POINT(V_OWNER_TABLE_ID,
'GEN',
'N/A',
'N/A',
'N/A');
DBMS_OUTPUT.PUT_LINE('Gen Create Successful!');
END IF;
IF V_FAX_CNT = 0 THEN
DO_CREATE_CONTACT_POINT(V_OWNER_TABLE_ID,
'FAX',
'N/A',
'N/A',
'N/A');
DBMS_OUTPUT.PUT_LINE('Fax Create Successful!');
END IF;
IF V_EMAIL_CNT = 0 THEN
DO_CREATE_CONTACT_POINT(V_OWNER_TABLE_ID,
'EMAIL',
'N/A',
'N/A',
'N/A');
DBMS_OUTPUT.PUT_LINE('Email Create Successful!');
END IF;
END IF;
END CREATE_CONTACTS;