Supplier Interface
Supplier Interface
AP_VENDOR_PUB_PKG AS
/* $Header: appvndrb.pls 120.78.12010000.28 2009/02/02 11:19:33 skyadav ship $ */
G_Vendor_Type_Lookup_Code VARCHAR2(30);
--Function: Insert_Rejections
--This function is called whenever the process needs to insert a
--rejection into new supplier interface rejection table.
FUNCTION Insert_Rejections (
p_parent_table IN VARCHAR2,
p_parent_id IN NUMBER,
p_reject_code IN VARCHAR2,
p_last_updated_by IN NUMBER,
p_last_update_login IN NUMBER,
p_calling_sequence IN VARCHAR2)
RETURN BOOLEAN IS
l_current_calling_sequence VARCHAR2(2000);
l_debug_info VARCHAR2(500);
l_api_name CONSTANT VARCHAR2(100) := 'INSERT_REJECTIONS';
BEGIN
-- Update the calling sequence
l_current_calling_sequence := 'AP_VENDOR_PUB_PKG.Insert_rejections<-'
||P_calling_sequence;
RETURN(TRUE);
EXCEPTION
WHEN OTHERS THEN
IF (SQLCODE <> -20001 ) THEN
FND_MESSAGE.SET_NAME('SQLAP','AP_DEBUG');
FND_MESSAGE.SET_TOKEN('ERROR', SQLERRM );
FND_MESSAGE.SET_TOKEN('CALLING_SEQUENCE',l_current_calling_sequence );
FND_MESSAGE.SET_TOKEN('DEBUG_INFO', l_debug_info );
END IF;
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,SQLERRM);
END IF;
RETURN (FALSE);
END Insert_Rejections;
--
BEGIN
x_valid := TRUE;
END IF;
END IF;
END Val_Currency_Code;
PROCEDURE Validate_Lookups(
p_column_name IN VARCHAR2,
p_column_value IN VARCHAR2,
p_lookup_type IN VARCHAR2,
p_lookup_table IN VARCHAR2,
x_valid OUT NOCOPY BOOLEAN
)
IS
l_dummy_lookup VARCHAR2(30);
BEGIN
x_valid := TRUE;
Begin
SELECT lookup_code
INTO l_dummy_lookup
FROM ap_lookup_codes
WHERE lookup_type = p_lookup_type
AND lookup_code = p_column_value
AND enabled_flag = 'Y'
AND nvl(inactive_date,sysdate+1) > sysdate;
EXCEPTION
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME', p_column_name );
FND_MSG_PUB.ADD;
End;
ELSIF p_lookup_table = 'PO_LOOKUP_CODES' THEN
Begin
SELECT lookup_code
INTO l_dummy_lookup
FROM po_lookup_codes
WHERE lookup_type = p_lookup_type
AND lookup_code = p_column_value
AND enabled_flag = 'Y'
AND nvl(inactive_date,sysdate+1) > sysdate;
EXCEPTION
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME', p_column_name );
FND_MSG_PUB.ADD;
End;
EXCEPTION
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME', p_column_name );
FND_MSG_PUB.ADD;
End;
END IF;
END validate_lookups;
PROCEDURE Check_dup_vendor_site ( x_vendor_id IN NUMBER,
x_vendor_site_code IN VARCHAR2,
x_org_name IN VARCHAR2,
x_org_id IN NUMBER,
x_valid OUT NOCOPY BOOLEAN)
IS
l_dup_count_org_id number;
l_dup_count_org_name number;
BEGIN
END IF;
END Check_dup_vendor_site;
--
-- Check if the 1099 type is expected here
--
PROCEDURE Check_Valid_1099_type(p_1099_type IN VARCHAR2,
p_federal_flag IN VARCHAR2,
x_valid OUT NOCOPY BOOLEAN
) IS
BEGIN
x_valid := TRUE;
END Check_Valid_1099_type;
--
-- Check if the Payment_Priority number is valid
--
PROCEDURE Check_Payment_Priority(p_payment_priority IN NUMBER,
x_valid OUT NOCOPY BOOLEAN
) IS
BEGIN
x_valid := TRUE;
IF ((p_payment_priority < 1) OR
(p_payment_priority > 99) OR
(p_payment_priority <> trunc(p_payment_priority))) THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','PAYMENT_PRIORITY' );
FND_MSG_PUB.ADD;
END IF;
END Check_Payment_Priority;
--
-- Check if the Employee is valid
--
PROCEDURE Check_Valid_Employee(p_employee_id IN NUMBER,
x_valid OUT NOCOPY BOOLEAN
) IS
l_dummy hr_employees_current_v.employee_id%TYPE;
BEGIN
x_valid := TRUE;
SELECT employee_id
INTO l_dummy
FROM hr_employees_current_v
WHERE employee_id = p_employee_id;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','EMPLOYEE_ID' );
FND_MSG_PUB.ADD;
END Check_Valid_Employee;
--
-- Check if Inspection_required_flag and Receipt_required_flag are valid
--
PROCEDURE Check_Valid_match_level(p_inspection_reqd_flag IN VARCHAR2,
p_receipt_reqd_flag IN VARCHAR2,
x_valid OUT NOCOPY BOOLEAN
) IS
BEGIN
x_valid := TRUE;
END Check_Valid_match_level;
--
-- Check if the Name_control is valid
--
PROCEDURE Check_Valid_name_control(p_name_control IN VARCHAR2,
x_valid OUT NOCOPY BOOLEAN
) IS
BEGIN
x_valid := TRUE;
IF (nvl(NVL(length(ltrim(translate(p_name_control,
'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&- ',
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'),'X')), 0),0) > 0) THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','NAME_CONTROL' );
FND_MSG_PUB.ADD;
END IF;
END Check_Valid_name_control;
--
-- Check if ship_via_lookup_code is valid
--
PROCEDURE Check_Valid_ship_via(p_ship_via_lookup_code IN VARCHAR2,
p_inventory_org_id IN NUMBER DEFAULT NULL,
x_valid OUT NOCOPY BOOLEAN
) IS
l_dummy number;
BEGIN
x_valid := TRUE;
SELECT nvl(count(freight_code),0)
INTO l_dummy
FROM org_freight
WHERE organization_id = p_inventory_org_id
AND nvl(disable_date, sysdate +1 ) > sysdate
AND freight_code = p_ship_via_lookup_code;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SHIP_VIA_LOOKUP_CODE' );
FND_MSG_PUB.ADD;
END IF;
END Check_Valid_ship_via;
--
-- Check if the set_of_books_id is valid
--
PROCEDURE Check_Valid_Sob_Id(p_sob_id IN NUMBER,
x_valid OUT NOCOPY BOOLEAN
) IS
l_dummy GL_SETS_OF_BOOKS.set_of_books_id%TYPE;
BEGIN
x_valid := TRUE;
SELECT set_of_books_id
INTO l_dummy
FROM GL_SETS_OF_BOOKS
WHERE set_of_books_id = p_sob_id;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SET_OF_BOOKS_ID' );
FND_MSG_PUB.ADD;
END Check_Valid_Sob_Id;
--
-- Check if the Employee has already been assigned
--
PROCEDURE Chk_Dup_Employee(p_vendor_id IN NUMBER,
p_employee_id IN NUMBER,
x_valid OUT NOCOPY BOOLEAN
) IS
l_count NUMBER := 0;
BEGIN
x_valid := TRUE;
SELECT COUNT(*)
INTO l_count
FROM po_vendors
WHERE (p_vendor_id IS NULL OR p_vendor_id = ap_null_num OR vendor_id <> p_vendor_id) --bug7023543
AND employee_id = p_employee_id;
FND_MESSAGE.SET_NAME('SQLAP','AP_EMPLOYEE_ASSIGNED');
FND_MSG_PUB.ADD;
END IF;
END Chk_Dup_Employee;
--
-- Check for duplicate vendor number
--
PROCEDURE Chk_Dup_segment1_int(p_segment1 IN VARCHAR2,
x_valid OUT NOCOPY BOOLEAN
) IS
l_count NUMBER := 1;
BEGIN
x_valid := TRUE;
--Bug 7526020 Validating SEGMENT1 against ap_suppliers instead of ap_suppliers_int
SELECT COUNT(*)
INTO l_count
FROM ap_suppliers
WHERE segment1 = p_segment1;
END Chk_Dup_segment1_int;
--
-- Check for duplicate vendor names
--
/* Bug 6939863 - Made Chk_Dup_Vendor_Name_new with same logic as update.
* Bug 5606948 added a call to Chk_Dup_Vendor_Name_update in
* PROCEDURE Validate_Vendor even in Insert mode.
* Chk_Dup_Vendor_Name_new is not called from anywhere, so made this similar
* to Chk_Dup_Vendor_Name_update and also corrected employee_id logic
* in both calls.
PROCEDURE Chk_Dup_Vendor_Name_new(p_vendor_name IN VARCHAR2,
x_valid OUT NOCOPY BOOLEAN
) IS
l_count NUMBER := 0;
BEGIN
x_valid := TRUE;
SELECT COUNT(*)
INTO l_count
FROM ap_suppliers_int
WHERE UPPER(vendor_name) = UPPER(p_vendor_name);
END Chk_Dup_Vendor_Name_new;
Bug 6939863 */
BEGIN
x_valid := TRUE;
SELECT COUNT(*)
INTO l_count
FROM ap_suppliers
WHERE UPPER(vendor_name) = UPPER(p_vendor_name)
AND (p_vendor_id IS NULL OR vendor_id <> p_vendor_id); --bug 5606948
ELSE
SELECT COUNT(*)
INTO l_count
FROM ap_suppliers
WHERE UPPER(vendor_name) = UPPER(p_vendor_name)
AND (p_vendor_id IS NULL OR vendor_id <> p_vendor_id)
--bug 6939863 - changed <> to = for employee_id
AND (p_employee_id IS NULL OR employee_id = p_employee_id);
END IF;
END Chk_Dup_Vendor_Name_new;
--
-- Check for duplicate vendor number
--
PROCEDURE Chk_Dup_Vendor_Number(p_vendor_id IN NUMBER,
p_segment1 IN VARCHAR2,
x_valid OUT NOCOPY BOOLEAN
) IS
l_count NUMBER := 0;
BEGIN
x_valid := TRUE;
SELECT COUNT(*)
INTO l_count
FROM po_vendors
WHERE (p_vendor_id IS NULL OR vendor_id <> p_vendor_id)
AND segment1 = p_segment1;
IF l_count = 0 THEN
SELECT count(*)
INTO l_count
FROM po_history_vendors
WHERE segment1 = p_segment1;
END IF;
END Chk_Dup_Vendor_Number;
--
-- Check if the receiving_routing_id is valid
--
PROCEDURE Chk_rcv_routing_id(p_rcv_rtg_id IN NUMBER,
x_valid OUT NOCOPY BOOLEAN
) IS
l_dummy RCV_ROUTING_HEADERS.routing_header_id%TYPE;
BEGIN
x_valid := TRUE;
SELECT routing_header_id
INTO l_dummy
FROM RCV_ROUTING_HEADERS
WHERE routing_header_id = p_rcv_rtg_id;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','RECEIVING_ROUTING_ID' );
FND_MSG_PUB.ADD;
END Chk_rcv_routing_id;
--
-- This procedure should perform Other Employee Validations
--
PROCEDURE employee_type_checks(p_vendor_type IN VARCHAR2,
p_employee_id IN NUMBER,
p_valid OUT NOCOPY BOOLEAN
) IS
BEGIN
p_valid := TRUE;
p_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
FND_MESSAGE.SET_TOKEN('ID','VENDOR_TYPE_LOOKUP_CODE');
FND_MESSAGE.SET_TOKEN('NAME','EMPLOYEE_ID');
FND_MSG_PUB.ADD;
END IF;
END employee_type_checks;
--
-- This procedure should ensure the value for 'payment_currency_code' exists as a valid
-- currency_code on the target database
-- Bug 2931673, replaced parameter p_vendor_id with p_invoice_currency_code
--
PROCEDURE payment_currency_code_valid(p_payment_currency_code IN VARCHAR2,
p_invoice_currency_code IN VARCHAR2,
p_valid OUT NOCOPY BOOLEAN
) IS
l_count NUMBER := 1;
BEGIN
p_valid := TRUE;
/*
* assumes p_invoice_currency_code is valid
* only validate if they're different
*/
IF(p_payment_currency_code<>p_invoice_currency_code) THEN
SELECT count(*)
INTO l_count
FROM fnd_currencies_vl
WHERE currency_code = p_payment_currency_code
AND (gl_currency_api.is_fixed_rate(p_invoice_currency_code
,currency_code
,sysdate)= 'Y'
AND enabled_flag = 'Y'
AND trunc(nvl(start_date_active,sysdate)) <= trunc(sysdate)
AND trunc(nvl(end_date_active,sysdate)) >= trunc(sysdate)
);
IF (l_count = 0) THEN
FND_MESSAGE.SET_NAME('SQLAP','AP_API_INVALID_PAYMENT_CURR');
p_valid := FALSE;
FND_MSG_PUB.ADD;
END IF;
END IF;
END payment_currency_code_valid;
--
-- Validate the Income Tax Type
--
PROCEDURE Val_Income_Tax_Type(p_type_1099 IN VARCHAR2,
x_valid OUT NOCOPY BOOLEAN
) IS
l_count NUMBER := 0;
BEGIN
x_valid := TRUE;
SELECT COUNT(*)
INTO l_count
FROM ap_income_tax_types
WHERE income_tax_type = p_type_1099
AND TRUNC(SYSDATE) < TRUNC(NVL(inactive_date, SYSDATE+1));
END Val_Income_Tax_Type;
PROCEDURE Validate_CCIDs(
p_column_name IN VARCHAR2,
p_ccid IN NUMBER,
p_sob_id IN NUMBER,
x_valid OUT NOCOPY BOOLEAN
)
IS
l_ccid gl_code_combinations.Code_Combination_Id%TYPE;
BEGIN
x_valid := TRUE;
Begin
SELECT GCC.code_combination_id
INTO l_ccid
FROM GL_CODE_COMBINATIONS GCC, GL_SETS_OF_BOOKS GSOB
WHERE GCC.code_combination_id = p_ccid
AND GCC.account_type = 'L'
AND GCC.enabled_flag = 'Y'
AND GCC.detail_posting_allowed_flag = 'Y'
AND GSOB.set_of_books_id = p_sob_id
AND GSOB.chart_of_accounts_id = GCC.chart_of_accounts_id
AND nvl(GCC.end_date_active,sysdate+1) > sysdate;
EXCEPTION
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME', p_column_name );
FND_MSG_PUB.ADD;
End;
ELSE
Begin
SELECT GCC.code_combination_id
INTO l_ccid
FROM GL_CODE_COMBINATIONS GCC, GL_SETS_OF_BOOKS GSOB
WHERE GCC.code_combination_id = p_ccid
AND GCC.enabled_flag = 'Y'
AND GCC.detail_posting_allowed_flag = 'Y'
AND GCC.chart_of_accounts_id = GSOB.chart_of_accounts_id
AND GSOB.set_of_books_id = p_sob_id
AND nvl(GCC.end_date_active,sysdate+1) > sysdate;
EXCEPTION
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME', p_column_name );
FND_MSG_PUB.ADD;
End;
END IF;
END validate_CCIDs;
--
-- Check for duplicate vendor names
--
-- Added parameter p_vendor_type_lookup_code and p_employee_id
-- for bug 6775797
PROCEDURE Chk_Dup_Vendor_Name_update(p_vendor_name IN VARCHAR2,
p_vendor_id IN NUMBER,
p_vendor_type_lookup_code IN VARCHAR2,
p_employee_id IN NUMBER,
x_valid OUT NOCOPY BOOLEAN
) IS
l_count NUMBER := 0;
BEGIN
x_valid := TRUE;
SELECT COUNT(*)
INTO l_count
FROM ap_suppliers
WHERE UPPER(vendor_name) = UPPER(p_vendor_name)
AND (p_vendor_id IS NULL OR vendor_id <> p_vendor_id); --bug 5606948
ELSE
SELECT COUNT(*)
INTO l_count
FROM ap_suppliers
WHERE UPPER(vendor_name) = UPPER(p_vendor_name)
AND (p_vendor_id IS NULL OR vendor_id <> p_vendor_id)
--bug 6939863 - changed <> to = for employee_id
AND (p_employee_id IS NULL OR employee_id = p_employee_id);
END IF;
END Chk_Dup_Vendor_Name_update;
--
-- Check for duplicate vendor number
--
PROCEDURE Chk_Null_Vendor_Number(p_segment1 IN VARCHAR2 default null,
x_valid OUT NOCOPY BOOLEAN
) IS
l_ven_num_code financials_system_parameters.user_defined_vendor_num_code%TYPE;
BEGIN
x_valid := TRUE;
--sally
SELECT supplier_numbering_method
INTO l_ven_num_code
FROM ap_product_setup;
END Chk_Null_Vendor_Number;
BEGIN
l_ret_value := 'Y';
l_legislative_cat_code := 'INCOME_TAX';
l_required_flag := 'Y'; --7442513
l_return_status := FND_API.G_RET_STS_SUCCESS;
return l_ret_value;
END is_taxpayer_id_valid;
--
-- Validate and generate Vendor Number.
--
l_ven_num_code ap_product_setup.SUPPLIER_NUMBERING_METHOD%TYPE;
BEGIN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SEGMENT1' );
FND_MSG_PUB.ADD;
END IF;
END Check_valid_vendor_num;
--
-- Check if the Match_Option value is valid
--
PROCEDURE Check_Valid_Match_Option(p_match_option IN VARCHAR2,
x_valid OUT NOCOPY BOOLEAN
) IS
BEGIN
x_valid := TRUE;
END Check_Valid_Match_Option;
--
-- Check if the allow_awt_flag is valid
--
PROCEDURE Chk_allow_awt_flag(p_allow_awt_flag IN VARCHAR2,
p_org_id IN NUMBER,
x_valid OUT NOCOPY BOOLEAN
) IS
l_asp_awt_flag VARCHAR2(1);
BEGIN
x_valid := TRUE;
SELECT allow_awt_flag
INTO l_asp_awt_flag
FROM ap_system_parameters
WHERE org_id = p_org_id;
IF l_asp_awt_flag = 'N'
AND p_allow_awt_flag = 'Y' THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','ALLOW_AWT_FLAG' );
FND_MSG_PUB.ADD;
END IF;
END Chk_allow_awt_flag;
--
-- Check if the awt_group_id and name are in sync.
--
l_dummy_id AP_AWT_GROUPS.group_id%TYPE;
l_dummy_name AP_AWT_GROUPS.name%TYPE;
BEGIN
x_valid := TRUE;
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
FND_MESSAGE.SET_TOKEN('ID','ALLOW_AWT_FLAG');
FND_MESSAGE.SET_TOKEN('NAME','AWT_GROUP_ID');
FND_MSG_PUB.ADD;
Elsif p_awt_name is NOT NULL Then
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
FND_MESSAGE.SET_TOKEN('ID','ALLOW_AWT_FLAG');
FND_MESSAGE.SET_TOKEN('NAME','AWT_GROUP_NAME');
FND_MSG_PUB.ADD;
End If;
END;
ELSIF (p_allow_awt_flag = 'Y' and (p_awt_id is NOT NULL and p_awt_name is NULL)) THEN
BEGIN
SELECT name
INTO l_dummy_name
FROM AP_AWT_GROUPS
WHERE group_id = p_awt_id
AND sysdate < nvl(inactive_date, sysdate + 1);
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','AWT_GROUP_ID' );
FND_MSG_PUB.ADD;
END;
ELSIF (p_allow_awt_flag = 'Y' and (p_awt_id is NOT NULL and p_awt_name is NOT NULL)) THEN
BEGIN
SELECT group_id
INTO l_dummy_id
FROM AP_AWT_GROUPS
WHERE group_id = p_awt_id
AND name = p_awt_name
AND sysdate < nvl(inactive_date, sysdate + 1);
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_NOT_MATCHED');
FND_MESSAGE.SET_TOKEN('ID','AWT_GROUP_ID');
FND_MESSAGE.SET_TOKEN('NAME','AWT_GROUP_NAME');
FND_MSG_PUB.ADD;
END;
ELSIF (p_allow_awt_flag = 'Y' and (p_awt_id is NULL and p_awt_name is NOT NULL)) THEN
BEGIN
SELECT group_id
INTO p_awt_id
FROM AP_AWT_GROUPS
WHERE name = p_awt_name
AND sysdate < nvl(inactive_date, sysdate + 1);
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','AWT_GROUP_NAME' );
FND_MSG_PUB.ADD;
END;
END IF;
END Chk_awt_grp_id_name;
--
-- Check if the Hold_by is valid
--
PROCEDURE Check_Valid_Hold_by(p_hold_by IN NUMBER,
x_valid OUT NOCOPY BOOLEAN
) IS
l_dummy hr_employees_current_v.employee_id%TYPE;
BEGIN
x_valid := TRUE;
SELECT employee_id
INTO l_dummy
FROM hr_employees_current_v
WHERE employee_id = p_hold_by;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','HOLD_BY' );
FND_MSG_PUB.ADD;
END Check_Valid_Hold_by;
--
-- Check that terms_id and terms_name are in sync.
--
l_terms_id AP_TERMS_TL.term_id%TYPE;
l_terms_name AP_TERMS_TL.name%TYPE;
BEGIN
x_valid := TRUE;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','TERMS_ID' );
FND_MSG_PUB.ADD;
END;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_NOT_MATCHED');
FND_MESSAGE.SET_TOKEN('ID','TERMS_ID');
FND_MESSAGE.SET_TOKEN('NAME','TERMS_NAME');
FND_MSG_PUB.ADD;
END;
ELSIF (p_terms_id is NULL and p_terms_name is NOT NULL) THEN
BEGIN
SELECT term_id
INTO p_terms_id
FROM AP_TERMS_TL
WHERE name = p_terms_name
AND language = userenv('LANG')
AND sysdate < nvl(end_date_active, sysdate+1);
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','TERMS_NAME' );
FND_MSG_PUB.ADD;
END;
END IF;
END Check_terms_id_code;
--
-- Check that dist_set_id and name are in sync.
l_dist_id AP_DISTRIBUTION_SETS_ALL.distribution_set_id%TYPE;
l_dist_name AP_DISTRIBUTION_SETS_ALL.distribution_set_name%TYPE;
BEGIN
x_valid := TRUE;
p_dist_id := p_default_dist_id;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_NOT_MATCHED');
FND_MESSAGE.SET_TOKEN('ID','DISTRIBUTION_SET_ID');
FND_MESSAGE.SET_TOKEN('NAME','DISTRIBUTION_SET_NAME');
FND_MSG_PUB.ADD;
END;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','DISTRIBUTION_SET_NAME' );
FND_MSG_PUB.ADD;
END;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','DISTRIBUTION_SET_ID' );
FND_MSG_PUB.ADD;
END;
END IF;
END Check_dist_set_id_name;
--
-- Check that ship_to_location_id and ship_to_location_code are in sync.
--
l_ship_locn_id HR_LOCATIONS_ALL.ship_to_location_id%TYPE;
l_ship_locn_code HR_LOCATIONS_ALL.location_code%TYPE;
BEGIN
x_valid := TRUE;
p_ship_location_id := p_default_ship_to_loc_id;
BEGIN
SELECT lot.location_code
INTO l_ship_locn_code
FROM HR_LOCATIONS_ALL loc, HR_LOCATIONS_ALL_TL lot
WHERE loc.location_id = p_ship_location_id
AND sysdate < nvl(loc.inactive_date, sysdate + 1)
AND loc.location_id = lot.location_id
AND lot.language = userenv('LANG')
AND (nvl(loc.business_group_id,nvl(hr_general.get_business_group_id,-99))=
nvl(hr_general.get_business_group_id,-99))
AND loc.ship_to_site_flag = 'Y';
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SHIP_TO_LOCATION_ID' );
FND_MSG_PUB.ADD;
END;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_NOT_MATCHED');
FND_MESSAGE.SET_TOKEN('ID','SHIP_TO_LOCATION_ID');
FND_MESSAGE.SET_TOKEN('NAME','SHIP_TO_LOCATION_CODE');
FND_MSG_PUB.ADD;
END;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SHIP_TO_LOCATION_CODE' );
FND_MSG_PUB.ADD;
END;
END IF;
END Check_ship_locn_id_code;
--
-- Check that bill_to_location_id and bill_to_location_code are in sync.
--
l_bill_locn_id HR_LOCATIONS_ALL.location_id%TYPE;
l_bill_locn_code HR_LOCATIONS_ALL.location_code%TYPE;
BEGIN
x_valid := TRUE;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','BILL_TO_LOCATION_ID' );
FND_MSG_PUB.ADD;
END;
BEGIN
SELECT loc.location_id
INTO l_bill_locn_id
FROM HR_LOCATIONS_ALL loc, HR_LOCATIONS_ALL_TL lot
WHERE loc.location_id = p_bill_location_id
AND lot.location_code = p_bill_location_code
AND sysdate < nvl(loc.inactive_date, sysdate + 1)
AND loc.location_id = lot.location_id
AND lot.language = userenv('LANG')
AND (nvl(loc.business_group_id,nvl(hr_general.get_business_group_id,-99))=
nvl(hr_general.get_business_group_id,-99))
AND loc.bill_to_site_flag = 'Y';
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_NOT_MATCHED');
FND_MESSAGE.SET_TOKEN('ID','BILL_TO_LOCATION_ID');
FND_MESSAGE.SET_TOKEN('NAME','BILL_TO_LOCATION_CODE');
FND_MSG_PUB.ADD;
END;
BEGIN
SELECT loc.location_id
INTO p_bill_location_id
FROM HR_LOCATIONS_ALL loc, HR_LOCATIONS_ALL_TL lot
WHERE lot.location_code = p_bill_location_code
AND sysdate < nvl(loc.inactive_date, sysdate + 1)
AND loc.location_id = lot.location_id
AND lot.language = userenv('LANG')
AND (nvl(loc.business_group_id,nvl(hr_general.get_business_group_id,-99))=
nvl(hr_general.get_business_group_id,-99))
AND loc.bill_to_site_flag = 'Y';
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','BILL_TO_LOCATION_CODE' );
FND_MSG_PUB.ADD;
END;
END IF;
END Check_bill_locn_id_code;
--
-- Check if the Default_pay_site_id is valid
--
PROCEDURE Check_Default_pay_site(p_default_pay_site_id IN NUMBER,
p_vendor_id IN NUMBER,
p_org_id IN NUMBER,
x_valid OUT NOCOPY BOOLEAN
) IS
l_dummy po_vendor_sites_all.vendor_site_id%TYPE;
BEGIN
x_valid := TRUE;
SELECT vendor_site_id
INTO l_dummy
FROM po_vendor_sites_all
WHERE vendor_id = p_vendor_id
AND vendor_site_id = p_default_pay_site_id
AND org_id = p_org_id
AND nvl(inactive_date, sysdate +1 ) > sysdate
AND pay_site_flag = 'Y';
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','DEFAULT_PAY_SITE_ID' );
FND_MSG_PUB.ADD;
END Check_Default_pay_site;
--
-- This procedure should ensure the value for 'state' exists on the
-- target database.
--
PROCEDURE state_valid(p_state IN VARCHAR2,
p_valid OUT NOCOPY BOOLEAN
) IS
l_count NUMBER := 0;
BEGIN
p_valid := TRUE;
SELECT count(*)
INTO l_count
FROM ap_income_tax_regions
WHERE region_short_name = p_state
AND sysdate < nvl(inactive_date,sysdate+1);
IF (l_count = 0) THEN
FND_MESSAGE.SET_NAME('SQLAP','AP_API_INVALID_STATE');
FND_MSG_PUB.ADD;
p_valid := FALSE;
END IF;
END state_valid;
--
-- Check that Org_Id and Operating Unit name are in sync
-- Modified for 11i Import functionality
l_org_id HR_OPERATING_UNITS.organization_id%TYPE;
l_org_name HR_OPERATING_UNITS.name%TYPE;
l_api_name CONSTANT VARCHAR2(30) := 'Check_Org_Id_Name';
BEGIN
x_valid := TRUE;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
p_int_table,
p_int_key,
'AP_INCONSISTENT_ORG_INFO',
g_user_id,
g_login_id,
'Check_Org_Id_Name') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
||' P_Org_Id: '|| p_org_id
||', P_Org_Name: '||p_org_name
||', P_Int_Table: '||p_int_table
||', P_Int_Key: '||p_int_key);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_ORG_INFO');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END;
BEGIN
SELECT organization_id
INTO p_org_id
FROM HR_OPERATING_UNITS
WHERE name = p_org_name
AND sysdate < nvl(date_to, sysdate + 1);
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
p_int_table,
p_int_key,
'AP_INVALID_ORG_INFO',
g_user_id,
g_login_id,
'Check_Org_Id_Name') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
||' P_Org_Id: '|| p_org_id
||', P_Org_Name: '||p_org_name
||', P_Int_Table: '||p_int_table
||', P_Int_Key: '||p_int_key);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ORG_INFO');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END;
BEGIN
SELECT name
INTO l_org_name
FROM HR_OPERATING_UNITS
WHERE organization_id = p_org_id
AND sysdate < nvl(date_to, sysdate + 1);
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
p_int_table,
p_int_key,
'AP_INVALID_ORG_INFO',
g_user_id,
g_login_id,
'Check_Org_Id_Name') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
||' P_Org_Id: '|| p_org_id
||', P_Org_Name: '||p_org_name
||', P_Int_Table: '||p_int_table
||', P_Int_Key: '||p_int_key);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ORG_INFO');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END;
END IF;
END Check_org_id_name;
e_apps_exception EXCEPTION;
BEGIN
x_valid := TRUE;
Raise e_apps_exception;
Raise e_apps_exception;
Raise e_apps_exception;
END IF;
END IF;
EXCEPTION
WHEN e_apps_exception THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMNS_INCONSISTENT');
FND_MESSAGE.SET_TOKEN('ID','PAY_ON_CODE');
FND_MESSAGE.SET_TOKEN('NAME','PAY_ON_RECEIPT_SUMMARY_CODE');
FND_MSG_PUB.ADD;
END Check_pay_on_rec_sum_code;
--
-- Check if the Shipping_Control value is valid
--
BEGIN
x_valid := TRUE;
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SHIPPING_CONTROL' );
FND_MSG_PUB.ADD;
END IF;
END Check_Shipping_Control;
--
-- Check the pay_on_code values
--
PROCEDURE Check_Valid_pay_on_code(p_pay_on_code IN VARCHAR2,
p_purchasing_site_flag IN VARCHAR2 DEFAULT NULL,
p_pay_site_flag IN VARCHAR2,
p_default_pay_site_id IN NUMBER DEFAULT NULL,
x_valid OUT NOCOPY BOOLEAN
) IS
l_dummy VARCHAR2(1);
l_default_pay_site_id NUMBER;
BEGIN
x_valid := TRUE;
-- Bug #7197985 Checking the default pay site id
IF(p_default_pay_site_id IS NULL OR p_default_pay_site_id = ap_null_num) THEN
l_default_pay_site_id := NULL;
ELSE
l_default_pay_site_id := p_default_pay_site_id;
END IF;
END IF;
END Check_Valid_pay_on_Code;
--
-- This procedure should ensure the value for 'pay_on_receipt_summary_code'
-- exists on the target database
--
PROCEDURE pay_on_receipt_summary_valid( p_pay_on_receipt_summary_code IN VARCHAR2,
p_pay_on_code IN VARCHAR2,
p_valid OUT NOCOPY BOOLEAN
) IS
l_count NUMBER := 0;
BEGIN
p_valid := TRUE;
SELECT count(*)
INTO l_count
FROM po_lookup_codes
WHERE lookup_code = p_pay_on_receipt_summary_code
AND lookup_type = 'ERS INVOICE_SUMMARY'
AND sysdate < nvl(inactive_date,sysdate+1)
AND (lookup_code = 'PAY_SITE'
OR (p_pay_on_code = 'USE' AND lookup_code = 'CONSUMPTION_ADVICE')
OR (p_pay_on_code = 'RECEIPT' and lookup_code IN ('RECEIPT','PACKING_SLIP'))
);
IF (l_count = 0) THEN
FND_MESSAGE.SET_NAME('SQLAP','AP_API_INVALID_RECPT_SUMM');
FND_MSG_PUB.ADD;
p_valid := FALSE;
END IF;
END pay_on_receipt_summary_valid;
--
-- Check for matching address
--
l_dummy NUMBER;
l_sync_count NUMBER;
BEGIN
x_valid := TRUE;
x_loc_count := 0; -- Bug 7429668
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
-- Bug 7429668 Trap validation error when more than 1 row is found
WHEN OTHERS THEN
x_valid := FALSE;
x_loc_count := 2;
END Check_Valid_Location;
--
-- Take care of CCID etc. defaulting from Parameters for SITE Import
--
PROCEDURE Default_CCIDs_for_Site(p_org_id IN NUMBER DEFAULT NULL,
p_org_name IN VARCHAR2 DEFAULT NULL,
p_multi_org_flag IN VARCHAR2,
p_accts_pay_ccid IN OUT NOCOPY NUMBER,
p_prepay_ccid IN OUT NOCOPY NUMBER,
p_future_pay_ccid IN OUT NOCOPY NUMBER,
p_rfq_site_flag IN OUT NOCOPY VARCHAR2 ,
p_country_code IN OUT NOCOPY VARCHAR2,
p_ship_via_lookup_code IN OUT NOCOPY VARCHAR2
) IS
l_rfq_only_site FINANCIALS_SYSTEM_PARAMS_ALL.rfq_only_site_flag%TYPE;
l_accts_pay_ccid FINANCIALS_SYSTEM_PARAMS_ALL.accts_pay_code_combination_id%TYPE;
l_prepay_ccid FINANCIALS_SYSTEM_PARAMS_ALL.prepay_code_combination_id%TYPE;
l_future_pay_ccid FINANCIALS_SYSTEM_PARAMS_ALL.future_dated_payment_ccid%TYPE;
l_home_country_code FINANCIALS_SYSTEM_PARAMS_ALL.vat_country_code%TYPE;
l_default_country_code FINANCIALS_SYSTEM_PARAMS_ALL.vat_country_code%TYPE;
BEGIN
SELECT FIN.rfq_only_site_flag,
FIN.accts_pay_code_combination_id,
FIN.prepay_code_combination_id,
FIN.future_dated_payment_ccid,
fin.vat_country_code,
fin.ship_via_lookup_code
INTO l_rfq_only_site,
l_accts_pay_ccid,
l_prepay_ccid,
l_future_pay_ccid,
l_home_country_code,
p_ship_via_lookup_code
FROM FINANCIALS_SYSTEM_PARAMS_ALL FIN,
HR_OPERATING_UNITS HR
WHERE HR.organization_id = FIN.org_id
AND ( HR.name = p_org_name OR
HR.organization_id = p_org_id);
fnd_profile.get('DEFAULT_COUNTRY',l_default_country_code);
--
--
if ( l_default_country_code is null ) then
p_country_code := l_home_country_code;
end if;
END IF;
END Default_CCIDs_for_Site;
--
-- Do some validation checks in Apps and in Interface table
--
PROCEDURE Validate_unique_per_vendor(
p_column_name IN VARCHAR2,
p_vendor_id IN NUMBER,
p_vendor_site_id IN NUMBER DEFAULT NULL,
p_org_id IN NUMBER DEFAULT NULL,
p_org_name IN VARCHAR2 DEFAULT NULL,
x_valid OUT NOCOPY BOOLEAN
)
IS
l_dummy_1 NUMBER;
l_dummy_2 NUMBER;
BEGIN
x_valid := TRUE;
Begin
SELECT nvl(count(primary_pay_site_flag),0)
INTO l_dummy_1
FROM ap_vendor_sites_v
WHERE nvl(primary_pay_site_flag,'N') = 'Y'
AND vendor_id = p_vendor_id
AND nvl(inactive_date, sysdate + 1) > sysdate
AND nvl(vendor_site_id, -99) <> nvl(p_vendor_site_id, -99);
SELECT count(*)
INTO l_dummy_2
FROM AP_SUPPLIER_SITES_INT
WHERE vendor_id = p_vendor_id
AND nvl(inactive_date ,sysdate+1) > sysdate
AND primary_pay_site_flag = 'Y'
AND (org_id = p_org_id OR
operating_unit_name = p_org_name);
End;
ELSIF p_column_name = 'TAX_REPORTING_SITE_FLAG' THEN
SELECT nvl(count(tax_reporting_site_flag),0)
INTO l_dummy_1
FROM ap_vendor_sites_v
WHERE nvl(tax_reporting_site_flag,'N') = 'Y'
AND vendor_id = p_vendor_id
AND nvl(inactive_date, sysdate + 1) > sysdate
AND nvl(vendor_site_id, -99) <> nvl(p_vendor_site_id, -99);
SELECT count(*)
INTO l_dummy_2
FROM AP_SUPPLIER_SITES_INT
WHERE vendor_id = p_vendor_id
AND nvl(inactive_date ,sysdate+1) > sysdate
AND tax_reporting_site_flag = 'Y'
AND (org_id = p_org_id OR
operating_unit_name = p_org_name);
END IF;
END Validate_unique_per_vendor;
--
-- This procedure should ensure the value for 'country_of_origin_code' exists
-- on the target database
--
PROCEDURE country_of_origin_valid(p_country_of_origin_code IN VARCHAR2,
p_valid OUT NOCOPY BOOLEAN
) IS
l_count NUMBER := 0;
BEGIN
p_valid := TRUE;
SELECT count(*)
INTO l_count
FROM fnd_territories_vl
WHERE territory_code = p_country_of_origin_code;
IF (l_count = 0) THEN
FND_MESSAGE.SET_NAME('SQLAP','AP_API_INVALID_COUNTRY_OF_ORIG');
FND_MSG_PUB.ADD;
p_valid := FALSE;
END IF;
END country_of_origin_valid;
-- Bug 5100831
-- Added the validations related the Gapless Invoice Numbering Feature.
-- Validations Performed are:
-- 1) If Gapless Invoice Number is Y then Selling Company Identifier should
-- be populated.
PROCEDURE Check_Gapless_Inv_Num
(p_gapless_inv_num_flag IN VARCHAR2,
p_selling_company_identifier IN VARCHAR2,
p_vendor_id IN NUMBER, --Bug5260465
p_valid OUT NOCOPY BOOLEAN
) IS
l_column_name VARCHAR2(30);
l_vendor_count NUMBER := 0; --Bug5260465
BEGIN
p_valid := TRUE;
l_column_name := 'SELLING_COMPANY_IDENTIFIER';
IF nvl(p_gapless_inv_num_flag,'N') = 'Y' THEN
IF (p_selling_company_identifier IS NULL OR
p_selling_company_identifier = ap_null_char) THEN
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME', l_column_name);
FND_MSG_PUB.ADD;
p_valid := FALSE;
END IF;
END IF;
--Bug5260465 starts Adding validation if Selling company identifier is unique for supplier
IF p_selling_company_identifier is not null THEN
SELECT COUNT(vendor_id)
INTO l_vendor_count
FROM po_vendor_sites_all
WHERE selling_company_identifier = p_selling_company_identifier
AND vendor_id <> p_vendor_id;
END IF;
--Bud5260465 ends
END Check_Gapless_Inv_Num;
--
-- Check if the Supplier_Notif_Method is valid
--
PROCEDURE Check_Valid_Sup_Notif_Method(p_sup_notif_method IN VARCHAR2,
x_valid OUT NOCOPY BOOLEAN
) IS
BEGIN
x_valid := TRUE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SUPPLIER_NOTIF_METHOD' );
FND_MSG_PUB.ADD;
END IF;
END Check_Valid_Sup_Notif_Method;
--
-- Validate and default Tolerance_Id and Tolerance_Name.
--
l_tolerance_id AP_TOLERANCE_TEMPLATES.tolerance_id%TYPE;
l_tolerance_name AP_TOLERANCE_TEMPLATES.tolerance_name%TYPE;
l_default_tolerance AP_TOLERANCE_TEMPLATES.tolerance_id%TYPE;
BEGIN
x_valid := TRUE;
--bug6335105
IF p_tolerance_type = 'QUANTITY' then
SELECT tolerance_id
INTO l_default_tolerance
FROM ap_system_parameters;
ELSE
SELECT services_tolerance_id
INTO l_default_tolerance
FROM ap_system_parameters;
END IF;
ELSE
--bug6335105
IF p_tolerance_type = 'QUANTITY' then
SELECT ASP.tolerance_id
INTO l_default_tolerance
FROM ap_system_parameters_all ASP, HR_OPERATING_UNITS ORG
WHERE ASP.org_id = ORG.organization_id
AND (ORG.organization_id = p_org_id OR
ORG.name = p_org_name);
ELSE
SELECT ASP.services_tolerance_id
INTO l_default_tolerance
FROM ap_system_parameters_all ASP, HR_OPERATING_UNITS ORG
WHERE ASP.org_id = ORG.organization_id
AND (ORG.organization_id = p_org_id OR
ORG.name = p_org_name);
END IF;
END IF;
IF (p_tolerance_id is NULL and p_tolerance_name is NULL) THEN
p_tolerance_id := l_default_tolerance;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
IF p_tolerance_type = 'QUANTITY' THEN
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','TOLERANCE_NAME' );
FND_MSG_PUB.ADD;
ELSE
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SERVICES_TOLERANCE_NAME' );
FND_MSG_PUB.ADD;
END IF;
END;
END IF;
END Check_tolerance_id_code;
--
-- Check if ship_via_lookup_code is valid for the site
--
PROCEDURE Check_Site_Ship_Via(p_ship_via_lookup_code IN VARCHAR2,
p_org_id IN NUMBER,
x_valid OUT NOCOPY BOOLEAN
) IS
l_dummy org_freight.freight_code%TYPE;
BEGIN
x_valid := TRUE;
SELECT FRT.freight_code
INTO l_dummy
FROM org_freight FRT, financials_system_params_all FIN
WHERE FRT.organization_id = FIN.inventory_organization_id
AND FIN.org_id = p_org_id
AND nvl(FRT.disable_date, sysdate +1 ) > sysdate
AND FRT.freight_code = p_ship_via_lookup_code;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','SHIP_VIA_LOOKUP_CODE' );
FND_MSG_PUB.ADD;
END Check_Site_Ship_Via;
--
-- Check if the party_id is valid
--
PROCEDURE Check_Valid_Party_Id(p_party_id IN NUMBER,
x_valid OUT NOCOPY BOOLEAN
) IS
l_dummy NUMBER;
l_count NUMBER;
BEGIN
x_valid := TRUE;
SELECT party_id
INTO l_dummy
FROM hz_parties
WHERE party_id = p_party_id;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','PARTY_ID' );
FND_MSG_PUB.ADD;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','PARTY_ID' );
FND_MSG_PUB.ADD;
END IF;
END IF;
END Check_Valid_Party_Id;
--
-- Check if the location_id is valid
--
PROCEDURE Check_Valid_Location_Id(p_location_id IN NUMBER,
p_party_site_id IN NUMBER,
x_valid OUT NOCOPY BOOLEAN
) IS
l_dummy NUMBER;
BEGIN
x_valid := TRUE;
SELECT Count(*)
INTO l_dummy
FROM hz_locations hl, hz_party_sites hps
WHERE hl.location_id = p_location_id
AND hl.location_id = hps.location_id
AND hps.party_site_id = nvl(p_party_site_id, hps.party_site_id);
IF nvl(l_dummy,0) = 0 THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','LOCATION_ID' );
FND_MSG_PUB.ADD;
END IF;
END Check_Valid_Location_Id;
--
-- Check if the party_site_id is valid
--
PROCEDURE Check_Valid_Party_Site_Id(p_party_Site_id IN NUMBER,
p_location_id IN NUMBER,
x_valid OUT NOCOPY BOOLEAN
) IS
l_dummy NUMBER;
BEGIN
x_valid := TRUE;
SELECT Count(*)
INTO l_dummy
FROM hz_party_sites hps
WHERE ( hps.location_id = nvl(p_location_id, hps.location_id)
AND hps.party_site_id = p_party_site_id);
IF nvl(l_dummy,0) = 0 THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','PARTY_SITE_ID' );
FND_MSG_PUB.ADD;
END IF;
END Check_Valid_Party_Site_Id;
--
-- Check if relationship_id is valid
--
PROCEDURE Check_Valid_Relationship_Id
(p_relationship_id IN NUMBER,
x_valid OUT NOCOPY BOOLEAN) IS
l_dummy NUMBER;
BEGIN
x_valid := TRUE;
SELECT relationship_id
INTO l_dummy
FROM hz_relationships
WHERE relationship_id = p_relationship_id
AND rownum < 2;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','RELATIONSHIP_ID' );
FND_MSG_PUB.ADD;
END Check_Valid_Relationship_Id;
--
-- Check if org_contact_id is valid
--
PROCEDURE Check_Valid_Org_Contact_Id
(p_org_contact_id IN NUMBER,
x_valid OUT NOCOPY BOOLEAN) IS
l_dummy NUMBER;
BEGIN
x_valid := TRUE;
SELECT org_contact_id
INTO l_dummy
FROM hz_org_contacts
WHERE org_contact_id = p_org_contact_id;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','ORG_CONTACT_ID' );
FND_MSG_PUB.ADD;
END Check_Valid_Org_Contact_Id;
l_dummy po_vendor_sites_all.vendor_site_id%TYPE;
l_api_name CONSTANT VARCHAR2(30) := 'Check_Vendor_Site_Id';
BEGIN
x_valid := TRUE;
SELECT vendor_site_id
INTO l_dummy
FROM po_vendor_sites_all
WHERE vendor_site_id = p_vendor_site_id
AND nvl(inactive_date, sysdate +1 ) > sysdate;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
p_int_table,
p_int_key,
'AP_INVALID_VENDOR_SITE_ID',
g_user_id,
g_login_id,
'Check_Vendor_Site_Id') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
||' P_Vendor_Site_Id: '|| p_vendor_site_id
||', P_Int_Table: '||p_int_table
||', P_Int_Key: '||p_int_key);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_VENDOR_SITE_ID');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
-- Trap unknown errors
WHEN OTHERS THEN
x_valid := FALSE;
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
||' P_Vendor_Site_Id: '|| p_vendor_site_id
||', P_Int_Table: '||p_int_table
||', P_Int_Key: '||p_int_key
||', ERROR: '||SUBSTR(SQLERRM,1,200));
END IF;
END Check_Vendor_site_id;
l_org_id HR_OPERATING_UNITS.organization_id%TYPE;
l_org_name HR_OPERATING_UNITS.name%TYPE;
l_vendor_site_code PO_VENDOR_SITES_ALL.vendor_site_code%TYPE;
l_api_name CONSTANT VARCHAR2(30) := 'Check_Org_Id_Name_Site_Code';
BEGIN
x_valid := TRUE;
BEGIN
SELECT SITE.vendor_site_code,vendor_site_id
INTO l_vendor_site_code,p_vendor_site_id
FROM PO_VENDOR_SITES_ALL SITE, HR_OPERATING_UNITS ORG
WHERE ORG.name = p_org_name
AND SITE.org_id = ORG.organization_id
AND SITE.vendor_site_code = p_vendor_site_code;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
p_int_table,
p_int_key,
'AP_INVALID_VENDOR_SITE_CODE',
g_user_id,
g_login_id,
'Check_Org_Id_Name_Site_Code') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
||' P_Org_Id: '||p_org_id
||', P_Org_Name: '||p_org_name
||', P_Vendor_Site_Code: '||p_vendor_site_code
||', P_Vendor_Site_Id: '|| p_vendor_site_id
||', P_Int_Table: '||p_int_table
||', P_Int_Key: '||p_int_key);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_VENDOR_SITE_CODE');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END;
END IF;
EXCEPTION
-- Trap unknown errors
WHEN OTHERS THEN
x_valid := FALSE;
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
||' P_Org_Id: '||p_org_id
||', P_Org_Name: '||p_org_name
||', P_Vendor_Site_Code: '||p_vendor_site_code
||', P_Vendor_Site_Id: '|| p_vendor_site_id
||', P_Int_Table: '||p_int_table
||', P_Int_Key: '||p_int_key
||', ERROR: '||SUBSTR(SQLERRM,1,200));
END IF;
END Check_org_id_name_site_code;
l_org_id HR_OPERATING_UNITS.organization_id%TYPE;
l_org_name HR_OPERATING_UNITS.name%TYPE;
l_party_site_name hz_party_sites.party_site_name%TYPE;
l_api_name CONSTANT VARCHAR2(30) := 'Check_org_id_party_site_name';
BEGIN
x_valid := TRUE;
BEGIN
SELECT hzps.party_site_name, hzps.party_site_id
INTO l_party_site_name,p_party_site_id
FROM hz_party_sites hzps, ap_supplier_sites_all aps,
HR_OPERATING_UNITS ORG
WHERE ORG.name = p_org_name
AND aps.org_id = ORG.organization_id
AND hzps.party_site_name = p_party_site_name
AND hzps.party_site_id = aps.party_site_id
AND aps.vendor_id = p_vendor_id;
EXCEPTION
-- Trap validation error
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
END;
END IF;
EXCEPTION
-- Trap unknown errors
WHEN OTHERS THEN
x_valid := FALSE;
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name,'Parameters: '
||' P_Org_Id: '||p_org_id
||', P_Org_Name: '||p_org_name
||', p_party_site_name: '||p_party_site_name
||', p_party_site_id: '|| p_party_site_id
||', p_vendor_id: '|| p_vendor_id
||', P_Int_Table: '||p_int_table
||', P_Int_Key: '||p_int_key
||', ERROR: '||SUBSTR(SQLERRM,1,200));
END IF;
END Check_org_id_party_site_name;
---------------------------------------------------------------------
-- PROCEDURE : Chk_new_duns_number
-- PURPOSE : Validates the Duns number passed as argument
-- Added for the FSIO gap in R12(bug6053476)
---------------------------------------------------------------------
e_apps_exception EXCEPTION;
BEGIN
x_valid := TRUE;
EXCEPTION
-- Trap validation error
WHEN e_apps_exception THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_IMPORT_COLUMN_INVALID');
FND_MESSAGE.SET_TOKEN('COLUMN_NAME','DUNS_NUMBER' );
FND_MSG_PUB.ADD;
END Chk_new_duns_number;
-----------------------------------------------------------------------------
-- PROCEDURE : Update_supplier_JFMIP_checks
-- PURPOSE : Checks if one is trying to update the restricted fields on a
-- CCR supplier.
-- Added for the R12 FSIO gap.(bug6053476)
------------------------------------------------------------------------------
BEGIN
x_valid := TRUE;
IF ((AP_UTILITIES_PKG.get_ccr_status(p_vendor_rec.vendor_id,'S') = 'T')
AND (nvl(p_calling_prog,'NOT CCR') <> 'CCRImport')) THEN
If (p_vendor_rec.jgzz_fiscal_code is NOT NULL) THEN
Raise e_apps_exception;
End If;
END IF;
EXCEPTION
-- Trap validation error
WHEN e_apps_exception THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_CCR_NO_UPDATE');
FND_MSG_PUB.ADD;
END update_supplier_JFMIP_checks;
-----------------------------------------------------------------------------
-- PROCEDURE : Chk_Update_site_CCR_values
-- PURPOSE : Checks if one is trying to update the restricted fields on a
-- CCR supplier site.
-- Added for the R12 FSIO gap.(bug6053476)
------------------------------------------------------------------------------
BEGIN
x_valid := TRUE;
Raise e_apps_exception;
End If;
END IF;
EXCEPTION
-- Trap validation error
WHEN e_apps_exception THEN
x_valid := FALSE;
FND_MESSAGE.SET_NAME('SQLAP','AP_CCR_NO_UPDATE');
FND_MSG_PUB.ADD;
END Chk_update_site_ccr_values;
PROCEDURE Create_Vendor
( p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
p_commit IN VARCHAR2 := FND_API.G_FALSE,
p_validation_level IN NUMBER :=
FND_API.G_VALID_LEVEL_FULL,
x_return_status OUT NOCOPY VARCHAR2 ,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_vendor_rec IN r_vendor_rec_type,
x_vendor_id OUT NOCOPY AP_SUPPLIERS.VENDOR_ID%TYPE,
x_party_id OUT NOCOPY HZ_PARTIES.PARTY_ID%TYPE
)
IS
l_vendor_rec r_vendor_rec_type;
--
-- Added Sync Party Related return variables
--
l_sync_return_status VARCHAR2(50);
l_sync_msg_count NUMBER;
l_sync_msg_data VARCHAR2(1000);
l_ext_payee_rec IBY_DISBURSEMENT_SETUP_PUB.EXTERNAL_PAYEE_REC_TYPE;
l_party_usg_rec HZ_PARTY_USG_ASSIGNMENT_PVT.party_usg_assignment_rec_type; --Bug6648405
l_party_usg_validation_level NUMBER;
l_debug_info VARCHAR2(500); -- Bug 6823885
BEGIN
-- Standard Start of API savepoint
SAVEPOINT Create_Vendor_PUB;
-- API body
-- Run initialize and get required default values
ap_apxvdmvd_pkg.initialize_supplier_attr(
x_user_defined_vendor_num_code => l_user_defined_vendor_num_code,
x_manual_vendor_num_type => l_manual_vendor_num_type,
x_terms_id => l_terms_id,
x_terms_disp => l_terms_disp,
x_always_take_disc_flag => l_always_take_disc_flag,
x_invoice_currency_code => l_invoice_currency_code,
x_vendor_pay_group_lookup_code => l_vendor_pay_group_lookup_code,
x_sys_auto_calc_int_flag => l_sys_auto_calc_int_flag,
x_terms_date_basis => l_terms_date_basis,
x_terms_date_basis_disp => l_terms_date_basis_disp,
x_vendor_pay_group_disp => l_vendor_pay_group_disp,
x_fin_require_matching => l_fin_require_matching,
x_fin_match_option => l_fin_match_option,
x_sysdate => l_sysdate,
x_pay_date_basis_lookup_code => l_pay_date_basis_lookup_code,
x_pay_date_basis_disp => l_pay_date_basis_disp,
x_ap_inst_flag => l_ap_inst_flag,
x_use_bank_charge_flag => l_use_bank_charge_flag,
x_bank_charge_bearer => l_bank_charge_bearer,
x_calling_sequence => ''); --l_calling_sequence
l_vendor_rec := p_vendor_rec;
l_vendor_rec.always_take_disc_flag
:= nvl(l_vendor_rec.always_take_disc_flag, l_always_take_disc_flag);
l_vendor_rec.pay_date_basis_lookup_code
:= nvl(l_vendor_rec.pay_date_basis_lookup_code,
l_pay_date_basis_lookup_code);
l_vendor_rec.pay_group_lookup_code
:= nvl(l_vendor_rec.pay_group_lookup_code,
l_vendor_pay_group_lookup_code);
l_vendor_rec.payment_priority := nvl(l_vendor_rec.payment_priority, 99);
l_vendor_rec.invoice_currency_code
:= nvl(l_vendor_rec.invoice_currency_code, l_invoice_currency_code);
l_vendor_rec.payment_currency_code
:= nvl(l_vendor_rec.payment_currency_code, l_invoice_currency_code);
l_vendor_rec.hold_all_payments_flag
:= nvl(l_vendor_rec.hold_all_payments_flag, 'N');
l_vendor_rec.hold_future_payments_flag
:= nvl(l_vendor_rec.hold_future_payments_flag, 'N');
l_vendor_rec.start_date_active
:= nvl(l_vendor_rec.start_date_active, SYSDATE);
/*po defaults
l_vendor_rec.qty_rcv_tolerance
:= nvl(l_vendor_rec.qty_rcv_tolerance, l_qty_rcv_tolerance);
*/
l_vendor_rec.women_owned_flag := NVL(l_vendor_rec.women_owned_flag, 'N');
l_vendor_rec.small_business_flag
:= NVL(l_vendor_rec.small_business_flag, 'N');
l_vendor_rec.hold_flag := nvl(l_vendor_rec.hold_flag, 'N');
l_vendor_rec.terms_date_basis
:= nvl(l_vendor_rec.terms_date_basis, l_terms_date_basis);
/*po defaults
l_vendor_rec.days_early_receipt_allowed
:= nvl(l_vendor_rec.days_early_receipt_allowed,
l_days_early_receipt_allowed);
l_vendor_rec.days_late_receipt_allowed
:= nvl(l_vendor_rec.days_late_receipt_allowed,
l_days_late_receipt_allowed);
l_vendor_rec.enforce_ship_to_location_code
:= nvl(l_vendor_rec.enforce_ship_to_location_code,
l_enforce_ship_to_loc_code);
*/
l_vendor_rec.federal_reportable_flag
:= nvl(l_vendor_rec.federal_reportable_flag, 'N');
--bug6401663
l_vendor_rec.hold_unmatched_invoices_flag
:= nvl(l_vendor_rec.hold_unmatched_invoices_flag,
l_fin_require_matching);
--bug6075649
l_vendor_rec.match_option
:= nvl(l_vendor_rec.match_option, l_fin_match_option);
/*l_vendor_rec.create_debit_memo_flag
:= nvl(l_vendor_rec.create_debit_memo_flag, l_po_create_dm_flag);
l_vendor_rec.inspection_required_flag
:= nvl(l_vendor_rec.inspection_required_flag,
l_inspection_required_flag);
l_vendor_rec.receipt_required_flag
:= nvl(l_vendor_rec.receipt_required_flag, l_receipt_required_flag);
l_vendor_rec.receiving_routing_id
:= nvl(l_vendor_rec.receiving_routing_id, l_receiving_routing_id);
*/
l_vendor_rec.auto_calculate_interest_flag
:= nvl(l_vendor_rec.auto_calculate_interest_flag,
l_sys_auto_calc_int_flag);
/*po defaults
l_vendor_rec.allow_substitute_receipts_flag
:= nvl(l_vendor_rec.allow_substitute_receipts_flag,
l_allow_sub_receipts_flag);
l_vendor_rec.allow_unordered_receipts_flag
:= nvl(l_vendor_rec.allow_unordered_receipts_flag,
l_allow_unord_receipts_flag);
l_vendor_rec.qty_rcv_exception_code
:= nvl(l_vendor_rec.qty_rcv_exception_code, l_qty_rcv_exception_code);
*/
l_vendor_rec.exclude_freight_from_discount
:= nvl(l_vendor_rec.exclude_freight_from_discount, 'N');
l_org_rec.created_by_module := 'AP_SUPPLIERS_API';
l_org_rec.application_id := 200;
l_org_rec.organization_name := l_vendor_rec.vendor_name;
l_org_rec.organization_name_phonetic :=
l_vendor_rec.vendor_name_alt;
IF ( UPPER(p_vendor_rec.organization_type_lookup_code) IN
('INDIVIDUAL','FOREIGN INDIVIDUAL')
OR
(UPPER(p_vendor_rec.vendor_type_lookup_code)='EMPLOYEE')) THEN
l_org_rec.jgzz_fiscal_code :=NULL;
ELSE
l_org_rec.jgzz_fiscal_code := l_vendor_rec.jgzz_fiscal_code;
END IF;
fnd_profile.get('HZ_GENERATE_PARTY_NUMBER', l_party_num);
IF nvl(l_party_num, 'Y') = 'N' THEN
SELECT HZ_PARTY_NUMBER_S.Nextval
INTO l_party_rec.party_number
FROM DUAL;
END IF;
l_org_rec.party_rec := l_party_rec;
hz_party_v2pub.create_organization(
p_init_msg_list => FND_API.G_FALSE,
p_organization_rec => l_org_rec,
p_party_usage_code => 'SUPPLIER',
-- p_commit => FND_API.G_FALSE,
x_return_status => l_org_return_status,
x_msg_count => l_org_msg_count,
x_msg_data => l_org_msg_data,
x_party_id => l_org_party_id,
x_party_number => l_org_party_number,
x_profile_id => l_org_profile_id);
IF l_org_return_status <> FND_API.G_RET_STS_SUCCESS THEN
------------------------------------------------------------------------
l_debug_info := 'After call to hz_party_v2pub.create_organization';
l_debug_info := l_debug_info||' Return status : '||l_org_return_status||' Error : '||l_org_msg_data;
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
END IF;
END IF;
l_vendor_rec.party_id := l_org_party_id;
HZ_PARTY_USG_ASSIGNMENT_PVT.assign_party_usage (
p_validation_level => l_party_usg_validation_level,
p_party_usg_assignment_rec => l_party_usg_rec,
x_return_status => l_org_return_status,
x_msg_count => l_org_msg_count,
x_msg_data => l_org_msg_data);
IF l_org_return_status <> FND_API.G_RET_STS_SUCCESS THEN
------------------------------------------------------------------------
l_debug_info := 'After call to HZ_PARTY_USG_ASSIGNMENT_PVT.assign_party_usage';
l_debug_info := l_debug_info||' Return status : '||l_org_return_status||' Error : '||l_org_msg_data;
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
END IF;
END IF;
l_ext_payee_rec.payee_party_id := l_vendor_rec.party_id;
l_ext_payee_rec.payment_function := 'PAYABLES_DISB';
l_ext_payee_rec.exclusive_pay_flag := 'N';
-- Bug 6458813
l_ext_payee_rec.default_pmt_method := l_vendor_rec.ext_payee_rec.default_pmt_method;
l_ext_payee_rec.ece_tp_loc_code := l_vendor_rec.ext_payee_rec.ece_tp_loc_code;
l_ext_payee_rec.bank_charge_bearer := l_vendor_rec.ext_payee_rec.bank_charge_bearer;
l_ext_payee_rec.bank_instr1_code := l_vendor_rec.ext_payee_rec.bank_instr1_code;
l_ext_payee_rec.bank_instr2_code := l_vendor_rec.ext_payee_rec.bank_instr2_code;
l_ext_payee_rec.bank_instr_detail := l_vendor_rec.ext_payee_rec.bank_instr_detail;
l_ext_payee_rec.pay_reason_code := l_vendor_rec.ext_payee_rec.pay_reason_code;
l_ext_payee_rec.pay_reason_com := l_vendor_rec.ext_payee_rec.pay_reason_com;
l_ext_payee_rec.pay_message1 := l_vendor_rec.ext_payee_rec.pay_message1;
l_ext_payee_rec.pay_message2 := l_vendor_rec.ext_payee_rec.pay_message2;
l_ext_payee_rec.pay_message3 := l_vendor_rec.ext_payee_rec.pay_message3;
l_ext_payee_rec.delivery_channel := l_vendor_rec.ext_payee_rec.delivery_channel;
l_ext_payee_rec.pmt_format := l_vendor_rec.ext_payee_rec.pmt_format;
l_ext_payee_rec.settlement_priority := l_vendor_rec.ext_payee_rec.settlement_priority;
-- Bug 6458813 ends
ext_payee_tab(1) := l_ext_payee_rec;
ELSE
ext_payee_tab(1) := l_vendor_rec.ext_payee_rec;
END IF;
END IF;
zx_tcm_bes_registration_pvt.synch_ptp_code_assigment(
p_party_id => l_vendor_rec.party_id,
p_class_category => 'SUPPLIER_TYPE',
p_class_code => p_vendor_rec.vendor_type_lookup_code,
x_return_status => l_zx_return_status,
x_msg_count => l_zx_msg_count,
x_msg_data => l_zx_msg_data );
IF l_zx_return_status <> FND_API.G_RET_STS_SUCCESS THEN
------------------------------------------------------------------------
l_debug_info := 'After call to zx_tcm_bes_registration_pvt.synch_ptp_code_assigment';
l_debug_info := l_debug_info||' Return status : '||l_zx_return_status||' Error : '||l_zx_msg_data;
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
END IF;
END IF;
END IF;
ap_vendors_pkg.insert_row(
p_vendor_rec => l_vendor_rec
,p_last_update_date => sysdate
,p_last_updated_by => nvl(l_user_id,-1)
,p_last_update_login => nvl(l_last_update_login,-1)
,p_creation_date => sysdate
,p_created_by => nvl(l_user_id,-1)
,p_request_id => l_request_id
,p_program_application_id => l_program_application_id
,p_program_id => l_program_id
,p_program_update_date => sysdate
,x_rowid => l_row_id
,x_vendor_id => l_vendor_id);
------------------------------------------------------------------------
l_debug_info := 'After call to ap_vendors_pkg.insert_row';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
END IF;
--
-- Added Call to Sync the Party Information into ap_supplier
-- record for the performance reasons.
--
AP_TCA_SUPPLIER_SYNC_PKG.SYNC_Supplier(
l_sync_return_status,
l_sync_msg_count,
l_sync_msg_data,
l_vendor_rec.party_id);
IF l_sync_return_status <> FND_API.G_RET_STS_SUCCESS THEN
------------------------------------------------------------------------
l_debug_info := 'After call to AP_TCA_SUPPLIER_SYNC_PKG.SYNC_Supplier';
l_debug_info := l_debug_info||' Return status : '||l_sync_return_status||' Error : '||l_sync_msg_data;
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
END IF;
END IF;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
ELSE
x_return_status := FND_API.G_RET_STS_ERROR;
END IF; --Supplier Valid
EXCEPTION
WHEN FND_API.G_EXC_ERROR THEN
ROLLBACK TO Create_Vendor_PUB;
x_return_status := FND_API.G_RET_STS_ERROR ;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
ROLLBACK TO Create_Vendor_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
WHEN OTHERS THEN
ROLLBACK TO Create_Vendor_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
IF FND_MSG_PUB.Check_Msg_Level
(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
FND_MSG_PUB.Add_Exc_Msg
( G_PKG_NAME ,
l_api_name
);
END IF;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
END Create_Vendor;
PROCEDURE Update_Vendor
( p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
p_commit IN VARCHAR2 := FND_API.G_FALSE,
p_validation_level IN NUMBER :=
FND_API.G_VALID_LEVEL_FULL,
x_return_status OUT NOCOPY VARCHAR2 ,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_vendor_rec IN r_vendor_rec_type,
p_vendor_id IN NUMBER
)
IS
l_api_name CONSTANT VARCHAR2(30) := 'Update_Vendor';
l_api_version CONSTANT NUMBER := 1.0;
l_def_org_id NUMBER;
l_org_context VARCHAR2(1);
l_vendor_rec r_vendor_rec_type;
l_val_return_status VARCHAR2(50);
l_val_msg_count NUMBER;
l_val_msg_data VARCHAR2(1000);
l_party_valid VARCHAR2(1);
l_payee_valid VARCHAR2(1);
l_rowid VARCHAR2(255);
l_sync_return_status VARCHAR2(50);
l_sync_msg_count NUMBER;
l_sync_msg_data VARCHAR2(1000);
l_org_party_id NUMBER;
BEGIN
-- Standard Start of API savepoint
SAVEPOINT Update_Vendor_PUB;
-- API body
/*
If (FV_INSTALL.ENABLED(l_def_org_id)) THEN
g_fed_fin_installed := 'Y';
Else
g_fed_fin_installed := 'N';
End If;
*/
l_vendor_rec := p_vendor_rec;
ap_vendors_pkg.update_row(
p_vendor_rec => l_vendor_rec,
p_last_update_date => sysdate,
p_last_updated_by => l_user_id,
p_last_update_login => l_last_update_login,
p_request_id => l_request_id ,
p_program_application_id => l_program_application_id,
p_program_id => l_program_id,
p_program_update_date => sysdate,
p_rowid => l_rowid,
p_vendor_id => p_vendor_id);
--
-- Added Call to Sync the Party Information into ap_supplier
-- record for the performance reasons.
--
AP_TCA_SUPPLIER_SYNC_PKG.SYNC_Supplier(
l_sync_return_status,
l_sync_msg_count,
l_sync_msg_data,
l_vendor_rec.party_id);
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
ELSE
x_return_status := FND_API.G_RET_STS_ERROR;
END IF;
EXCEPTION
WHEN FND_API.G_EXC_ERROR THEN
ROLLBACK TO Update_Vendor_PUB;
x_return_status := FND_API.G_RET_STS_ERROR ;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
ROLLBACK TO Update_Vendor_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
WHEN OTHERS THEN
ROLLBACK TO Update_Vendor_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
IF FND_MSG_PUB.Check_Msg_Level
(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
FND_MSG_PUB.Add_Exc_Msg
( G_PKG_NAME ,
l_api_name
);
END IF;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
END Update_Vendor;
PROCEDURE Validate_Vendor
( p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
p_commit IN VARCHAR2 := FND_API.G_FALSE,
p_validation_level IN NUMBER :=
FND_API.G_VALID_LEVEL_FULL,
x_return_status OUT NOCOPY VARCHAR2 ,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_vendor_rec IN OUT NOCOPY r_vendor_rec_type,
p_mode IN VARCHAR2,
p_calling_prog IN VARCHAR2,
x_party_valid OUT NOCOPY VARCHAR2,
x_payee_valid OUT NOCOPY VARCHAR2,
p_vendor_id IN NUMBER
)
IS
l_api_name CONSTANT VARCHAR2(30) := 'Validate_Vendor';
l_api_version CONSTANT NUMBER := 1.0;
l_def_org_id NUMBER;
l_debug_info VARCHAR2(2000);
x_valid BOOLEAN;
l_segment1 VARCHAR2(30);
l_payee_return_status VARCHAR2(50);
l_payee_msg_count NUMBER;
l_payee_msg_data VARCHAR2(1000);
l_default_country_code VARCHAR2(25); --bug6050423
BEGIN
-- Standard Start of API savepoint
SAVEPOINT Validate_Vendor_PUB;
-- API body
------------------------------------------------------------------------
l_debug_info := 'Call to Validate inspection_required_flag';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
END IF;
--
-- Validate inspection_required_flag
--
IF p_vendor_rec.inspection_required_flag is NOT NULL
AND p_vendor_rec.inspection_required_flag <> ap_null_char THEN
------------------------------------------------------------------------
l_debug_info := 'Call to Validate receipt_required_flag';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME|| l_api_name,l_debug_info);
END IF;
--
-- Validate receipt_required_flag
--
IF p_vendor_rec.receipt_required_flag is NOT NULL
AND p_vendor_rec.receipt_required_flag <> ap_null_char THEN
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_REC_REQ_FLAG');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate Payment_Priority';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate Payment_Priority
--
IF p_vendor_rec.payment_priority is NOT NULL
AND p_vendor_rec.payment_priority <> ap_null_num THEN
Check_payment_priority(p_vendor_rec.payment_priority,
x_valid
);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_PAYMENT_PRIORITY',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
||' ,Payment_Priority: '||p_vendor_rec.payment_priority);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAYMENT_PRIORITY');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate the 1099_type value';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate the 1099_type value
--
IF p_vendor_rec.type_1099 IS NOT NULL
AND p_vendor_rec.type_1099 <> ap_null_char THEN
Check_Valid_1099_type(p_vendor_rec.type_1099,
p_vendor_rec.federal_reportable_flag,
x_valid
);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INCONSISTENT_1099_TYPE',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
||' ,Type_1099: '||p_vendor_rec.type_1099
||' ,Federal_Reportable_Flag: '||p_vendor_rec.federal_reportable_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_1099_TYPE');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
/* if ( UPPER(p_vendor_rec.vendor_type_lookup_code)='CONTRACTOR'
AND UPPER(p_vendor_rec.organization_type_lookup_code) IN
('INDIVIDUAL','FOREIGN INDIVIDUAL',
'PARTNERSHIP','FOREIGN PARTNERSHIP') )THEN*/
if ( UPPER(p_vendor_rec.organization_type_lookup_code) IN
('INDIVIDUAL','FOREIGN INDIVIDUAL') )THEN
------------------------------------------------------------------------
l_debug_info := 'Call to Validate the jgzz_fiscal_code value';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate the jgzz_fiscal_code value
--
fnd_profile.get('DEFAULT_COUNTRY',l_default_country_code);
/*
SELECT FIN.vat_country_code
INTO l_default_country_code
FROM FINANCIALS_SYSTEM_PARAMS_ALL FIN,
AP_SYSTEM_PARAMETERS_ALL ASP
WHERE ASP.set_of_books_id=p_vendor_rec.set_of_books_id
AND FIN.org_id = ASP.org_id;
*/
END IF;
IF(is_taxpayer_id_valid(p_vendor_rec.jgzz_fiscal_code,
l_default_country_code) = 'N') THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_TAXPAYER_ID',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
||' ,NUM_1099: '||p_vendor_rec.jgzz_fiscal_code
||' ,Federal_Reportable_Flag: '||p_vendor_rec.federal_reportable_flag);
END IF;
END IF;
ELSE
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_TAXPAYER_ID');
FND_MSG_PUB.ADD;
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate the Employee_Id';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Employee_Id validation
--
-- start added by abhsaxen for bug 7147735
IF (p_vendor_rec.employee_id is null AND
UPPER(p_vendor_rec.vendor_type_lookup_code)='EMPLOYEE') THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_EMPLOYEE_ID',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
||' ,Vendor_Type_Lookup_Code: '||p_vendor_rec.vendor_type_lookup_code
||' ,Employee_Id: NULL');
END IF;
END IF;
ELSE
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_EMPLOYEE_ID');
FND_MSG_PUB.ADD;
END IF;
END IF;
-- end added by abhsaxen for bug 7147735
IF p_vendor_rec.employee_id is NOT NULL
AND p_vendor_rec.employee_id <> fnd_api.g_miss_num THEN
Check_Valid_Employee (p_vendor_rec.employee_id,
x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_EMPLOYEE_ID',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
||' ,Employee_Id: '||p_vendor_rec.employee_id);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_EMPLOYEE_ID');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
-- start added by abhsaxen for bug 7147735
IF x_valid THEN
BEGIN
SELECT PPF.PARTY_ID
INTO P_VENDOR_REC.PARTY_ID
FROM PER_PEOPLE_F PPF
WHERE PPF.PERSON_ID = P_VENDOR_REC.EMPLOYEE_ID
AND TRUNC(SYSDATE) BETWEEN
TRUNC(ppf.effective_start_date) AND
TRUNC(ppf.effective_end_date);
EXCEPTION
WHEN OTHERS THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_EMPLOYEE_ID',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
||' ,Vendor_Type_Lookup_Code: '||p_vendor_rec.vendor_type_lookup_code
||' ,Not able to get Party Id From Employee Id.');
END IF;
END IF;
ELSE
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_EMPLOYEE_ID');
FND_MSG_PUB.ADD;
END IF;
END;
-- end added by abhsaxen for bug 7147735
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate inspection_required_flag and receipt_required_flag';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate inspection_required_flag and receipt_required_flag
--
IF (p_vendor_rec.inspection_required_flag is NOT NULL AND
p_vendor_rec.receipt_required_flag is NOT NULL AND
p_vendor_rec.inspection_required_flag <> ap_null_char AND
p_vendor_rec.receipt_required_flag <> ap_null_char) THEN
Check_Valid_match_level(p_vendor_rec.inspection_required_flag,
p_vendor_rec.receipt_required_flag,
x_valid
);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INCONSISTENT_INSPEC_RECEIPT',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
||' ,Inspection_Required_Flag: '||p_vendor_rec.inspection_required_flag
||' ,Receipt_Required_Flag: '||p_vendor_rec.receipt_required_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_INSPEC_RECEIPT');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate Name Control';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate the Name Control value
--
IF p_vendor_rec.name_control IS NOT NULL
AND p_vendor_rec.name_control <> ap_null_char THEN
Check_Valid_name_control(p_vendor_rec.name_control,
x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_NAME_CONTROL',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
||' ,Name_Control: '||p_vendor_rec.name_control);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_NAME_CONTROL');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
/*
------------------------------------------------------------------------
l_debug_info := 'Call to Validate ship_via_lookup_code';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate ship_via_lookup_code
--
IF (p_vendor_rec.ship_via_lookup_code is NOT NULL and
p_vendor_rec.inventory_organization_id is NOT NULL AND
p_vendor_rec.ship_via_lookup_code <> ap_null_char AND
p_vendor_rec.inventory_organization_id <> ap_null_num) THEN
Check_Valid_ship_via(p_vendor_rec.ship_via_lookup_code,
p_vendor_rec.inventory_organization_id,
x_valid
);
------------------------------------------------------------------------
l_debug_info := 'Call to Validate set_of_books_id';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Set_of_books_Id validation
--
IF p_vendor_rec.set_of_books_id is NOT NULL AND
p_vendor_rec.set_of_books_id <> ap_null_num THEN
Check_Valid_Sob_Id(p_vendor_rec.set_of_books_id,
x_valid);
------------------------------------------------------------------------
l_debug_info := 'Call to Check for duplicate Employee assignment';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Check for duplicate employee assignment
--
IF (p_vendor_rec.employee_id IS NOT NULL and --bug7023543 removed condition p_vendor_rec.vendor_id
p_vendor_rec.employee_id <> ap_null_num) THEN --is not null
Chk_Dup_Employee(p_vendor_id,
p_vendor_rec.employee_id,
x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Check for duplicate vendor number';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Check for potential duplicate vendor numbers in Interface table
--
IF p_vendor_rec.segment1 IS NOT NULL AND
p_vendor_rec.segment1 <> ap_null_char THEN
Chk_Dup_segment1_int(p_vendor_rec.segment1,
x_valid);
------------------------------------------------------------------------
l_debug_info := 'Call to Check Duplicate Vendor Number in PO_VENDORS';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Check for duplicate vendor number
--
IF p_vendor_rec.segment1 IS NOT NULL AND
p_vendor_rec.segment1 <> ap_null_char THEN
Chk_Dup_Vendor_Number(p_vendor_id,
p_vendor_rec.segment1,
x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
--bug 5606948
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_VEN_DUPLICATE_VEN_NUM',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
------------------------------------------------------------------------
l_debug_info := 'Call to Validate receiving_routing_id';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate receiving_routing_id
--
IF p_vendor_rec.receiving_routing_id is NOT NULL and
p_vendor_rec.receiving_routing_id <> ap_null_num THEN
Chk_rcv_routing_id(p_vendor_rec.receiving_routing_id ,
x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_RCV_ROUTING',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
||' ,Receiving_Routing_Id: '||p_vendor_rec.receiving_routing_id);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_RCV_ROUTING');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate Employee type Vendor`';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Employee type Vendor validations
--
--
IF p_vendor_rec.vendor_type_lookup_code is NOT NULL and
p_vendor_rec.vendor_type_lookup_code <> ap_null_char THEN
employee_type_checks(p_vendor_rec.vendor_type_lookup_code,
p_vendor_rec.employee_id,
x_valid
);
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate Invoice Currency Code';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate Payment Currency Code';
------------------------------------------------------------------------
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate Income Tax Type';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate the Income Tax Type
--
IF p_vendor_rec.type_1099 IS NOT NULL AND
p_vendor_rec.type_1099 <> ap_null_char THEN
Val_Income_Tax_Type(p_vendor_rec.type_1099,
x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_TYPE_1099',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
||' ,Type_1099: '||p_vendor_rec.type_1099);
END IF;
END IF;
ELSE
END IF;
END IF;
END IF;
--update validations
--
--calling the API to check if we are trying to update
--any restricted field on a CCR vendor. Added for R12
--FSIO gap.(bug6053476)
--
update_supplier_JFMIP_checks(p_vendor_rec,
p_calling_prog,
x_valid);
ELSE
FND_MESSAGE.SET_NAME('SQLAP','AP_CANT_UPDATE_CCR_VENDOR');
FND_MSG_PUB.ADD;
END IF;
END IF;
--bug 5606948
------------------------------------------------------------------------
l_debug_info := 'Call to Validate vendor name';
------------------------------------------------------------------------
if g_source= 'IMPORT' Then
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Check for duplicate vendor names
--
IF p_vendor_rec.vendor_name IS NOT NULL THEN
-- Bug 6775797. Added parameters vendor type and employee id
-- Bug 6939863. Changed from update to new since this is
-- insert mode.
Chk_Dup_Vendor_Name_new(p_vendor_rec.vendor_name,
p_vendor_id,
p_vendor_rec.vendor_type_lookup_code,
p_vendor_rec.employee_id,
x_valid);
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_VEN_DUPLICATE_NAME',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
END IF;
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate payee';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Calling IBY Payee Validation API
--
IF p_vendor_rec.ext_payee_rec.payer_org_type IS NOT NULL THEN
IBY_DISBURSEMENT_SETUP_PUB.Validate_External_Payee
( p_api_version => 1.0,
p_init_msg_list => FND_API.G_FALSE,
p_ext_payee_rec => p_vendor_rec.ext_payee_rec,
x_return_status => l_payee_return_status,
x_msg_count => l_payee_msg_count,
x_msg_data => l_payee_msg_data);
------------------------------------------------------------------------
l_debug_info := 'Call to Validate party_id';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Check for validity of party_id
--
IF p_vendor_rec.party_id IS NOT NULL and
p_vendor_rec.party_id <> ap_null_num THEN
Check_Valid_Party_ID(p_vendor_rec.party_id,
x_valid);
END IF;
ELSE
x_party_valid := 'V';
END IF;
ELSE
x_party_valid := 'N';
END IF;
--insert validations
------------------------------------------------------------------------
l_debug_info := 'Call to Validate vendor number';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Check for Null vendor number
--
IF p_vendor_rec.segment1 IS NULL and
p_vendor_rec.segment1 <> ap_null_char THEN
Chk_Null_Vendor_Number(p_vendor_rec.segment1,
x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_NULL_VENDOR_NUMBER', --bug 5568861
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id: '||p_vendor_rec.vendor_interface_id
||' ,Segment1: '||p_vendor_rec.segment1);
END IF;
END IF;
ELSE
END IF;
END IF;
END IF;
---------------------------------------------------------------
l_debug_info := 'Call to Validate one_time_flag';
---------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate one_time_flag
--
IF p_vendor_rec.one_time_flag is NOT NULL and
p_vendor_rec.one_time_flag <> ap_null_char THEN
Validate_Lookups(
'ONE_TIME_FLAG',p_vendor_rec.one_time_flag,'YES/NO',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_ONE_TIME_FLAG',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,One_Time_Flag: '||p_vendor_rec.one_time_flag);
END IF;
END IF;
ELSE
END IF;
END IF;
END IF;
----------------------------------------------------------------
l_debug_info := 'Call to Validate Summary_flag';
---------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate Summary_flag
--
IF p_vendor_rec.summary_flag is NOT NULL AND
p_vendor_rec.summary_flag <> ap_null_char THEN
Validate_Lookups(
'SUMMARY_FLAG',p_vendor_rec.summary_flag,'YES/NO',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_SUMMARY_FLAG',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Summary_Flag: '||p_vendor_rec.summary_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SUMMARY_FLAG');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
----------------------------------------------------------------
l_debug_info := 'Call to Validate Enabled_flag';
---------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate Enabled_flag
--
IF p_vendor_rec.enabled_flag is NOT NULL
AND p_vendor_rec.enabled_flag <> ap_null_char THEN
Validate_Lookups(
'ENABLED_FLAG',p_vendor_rec.enabled_flag,'YES/NO',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_ENABLED_FLAG',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Enabled_Flag: '||p_vendor_rec.enabled_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ENABLED_FLAG');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
---------------------------------------------------------------
l_debug_info := 'Call to Validate vendor_type_lookup_code';
---------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
-- Validate vendor_type_lookup_code
--
IF p_vendor_rec.vendor_type_lookup_code is NOT NULL
AND p_vendor_rec.vendor_type_lookup_code <> ap_null_char THEN
Validate_Lookups( 'VENDOR_TYPE_LOOKUP_CODE',
p_vendor_rec.vendor_type_lookup_code,'VENDOR TYPE',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_VENDOR_TYPE',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Vendor_Type_Lookup_Code: '
||p_vendor_rec.vendor_type_lookup_code);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_VENDOR_TYPE');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
---------------------------------------------------------------
l_debug_info := 'Call to Validate pay_date_basis_lookup_code';
----------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate pay_date_basis_lookup_code
--
IF p_vendor_rec.pay_date_basis_lookup_code is NOT NULL
AND p_vendor_rec.pay_date_basis_lookup_code <> ap_null_char THEN
Validate_Lookups( 'PAY_DATE_BASIS_LOOKUP_CODE',
p_vendor_rec.pay_date_basis_lookup_code,
'PAY DATE BASIS',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_PAY_DATE_BASIS',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Pay_Date_Basis_Lookup_Code: '
|| p_vendor_rec.pay_date_basis_lookup_code);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_DATE_BASIS');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
---------------------------------------------------------------
l_debug_info := 'Call to Validate pay_group_lookup_code';
----------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate pay_group_lookup_code
--
IF p_vendor_rec.pay_group_lookup_code is NOT NULL
AND p_vendor_rec.pay_group_lookup_code <> ap_null_char THEN
Validate_Lookups( 'PAY_GROUP_LOOKUP_CODE',
p_vendor_rec.pay_group_lookup_code,'PAY GROUP',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_PAY_GROUP',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Pay_Group_Lookup_Code:'
||p_vendor_rec.pay_group_lookup_code);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_GROUP');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
----------------------------------------------------------------
l_debug_info := 'Call to Validate org type_lookup code';
---------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate organization_type_lookup_code
--
IF p_vendor_rec.organization_type_lookup_code is NOT NULL
AND p_vendor_rec.organization_type_lookup_code <> ap_null_char THEN
Validate_Lookups( 'ORGANIZATION_TYPE_LOOKUP_CODE',
p_vendor_rec.organization_type_lookup_code,
'ORGANIZATION TYPE',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_ORG_TYPE',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Organization_Type_Lookup_Code:'
||p_vendor_rec.organization_type_lookup_code);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ORG_TYPE');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
---------------------------------------------------------------
l_debug_info := 'Call to Validate minority_group_lookup_code';
---------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate minority_group_lookup_code
--
IF p_vendor_rec.minority_group_lookup_code is NOT NULL
AND p_vendor_rec.minority_group_lookup_code <> ap_null_char THEN
Validate_Lookups( 'MINORITY_GROUP_LOOKUP_CODE',
p_vendor_rec.minority_group_lookup_code,'MINORITY GROUP',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_MINORITY_GROUP',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Minority_Group_Lookup_Code:'
||p_vendor_rec.minority_group_lookup_code);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_MINORITY_GROUP');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
---------------------------------------------------------------
l_debug_info := 'Call to Validate terms_date_basis';
----------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate terms_date_basis
--
IF p_vendor_rec.terms_date_basis is NOT NULL
AND p_vendor_rec.terms_date_basis <> ap_null_char THEN
Validate_Lookups( 'TERMS_DATE_BASIS',
p_vendor_rec.terms_date_basis,'TERMS DATE BASIS',
'AP_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_TERMS_DATE',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Terms_Date_Basis:'
||p_vendor_rec.terms_date_basis);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_TERMS_DATE');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
---------------------------------------------------------------
l_debug_info := 'Call to Validate qty_rcv_exception_code';
---------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate qty_rcv_exception_code
--
IF p_vendor_rec.qty_rcv_exception_code is NOT NULL
AND p_vendor_rec.qty_rcv_exception_code <> ap_null_char THEN
Validate_Lookups( 'QTY_RCV_EXCEPTION_CODE',
p_vendor_rec.qty_rcv_exception_code,'RCV OPTION',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_QTY_RCV_OPTION',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Qty_Rcv_Execption_Code:'
||p_vendor_rec.Qty_Rcv_Exception_code);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_QTY_RCV_OPTION');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate ship to loc code';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate enforce_ship_to_location_code
--
IF p_vendor_rec.enforce_ship_to_location_code is NOT NULL
AND p_vendor_rec.enforce_ship_to_location_code <> ap_null_char THEN
Validate_Lookups( 'ENFORCE_SHIP_TO_LOCATION_CODE',
p_vendor_rec.enforce_ship_to_location_code,'RCV OPTION',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_SHIP_RCV_OPTION',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Enforce_Ship_To_Location_Code:'
||p_vendor_rec.enforce_ship_to_location_code);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SHIP_RCV_OPTION');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
---------------------------------------------------------------
l_debug_info := 'Call to Validate receipt_days_exception_code';
----------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate receipt_days_exception_code
--
IF p_vendor_rec.receipt_days_exception_code is NOT NULL
AND p_vendor_rec.receipt_days_exception_code <> ap_null_char THEN
Validate_Lookups( 'RECEIPT_DAYS_EXCEPTION_CODE',
p_vendor_rec.receipt_days_exception_code,'RCV OPTION',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_REC_RCV_OPTION',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Receipt_Days_Exception_Code:'
||p_vendor_rec.receipt_days_exception_code);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_REC_RCV_OPTION');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
---------------------------------------------------------------
l_debug_info := 'Call to Validate create_debit_memo_flag';
----------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate create_debit_memo_flag
--
IF p_vendor_rec.create_debit_memo_flag is NOT NULL
AND p_vendor_rec.create_debit_memo_flag <> ap_null_char THEN
Validate_Lookups( 'CREATE_DEBIT_MEMO_FLAG',
p_vendor_rec.create_debit_memo_flag ,'YES/NO',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_DEBIT_MEMO',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Create_Debit_Memo_Flag:'
||p_vendor_rec.create_debit_memo_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_DEBIT_MEMO');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
---------------------------------------------------------------
l_debug_info := 'Call to Validate federal_reportable_flag';
---------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate federal_reportable_flag
--
IF p_vendor_rec.federal_reportable_flag is NOT NULL
AND p_vendor_rec.federal_reportable_flag <> ap_null_char THEN
Validate_Lookups( 'FEDERAL_REPORTABLE_FLAG',
p_vendor_rec.federal_reportable_flag ,'YES/NO',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_FED_REPORTABLE',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Federal_Reportable_Flag:'
||p_vendor_rec.federal_reportable_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_FED_REPORTABLE');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
----------------------------------------------------------------
l_debug_info := 'Call to Validate state_reportable_flag';
----------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate state_reportable_flag
--
IF p_vendor_rec.state_reportable_flag is NOT NULL
AND p_vendor_rec.state_reportable_flag <> ap_null_char THEN
Validate_Lookups('STATE_REPORTABLE_FLAG',
p_vendor_rec.state_reportable_flag ,'YES/NO',
'PO_LOOKUP_CODES', x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_STATE_REPORTABLE',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,State_Reportable_Flag:'
||p_vendor_rec.state_reportable_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_STATE_REPORTABLE');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
---------------------------------------------------------------
l_debug_info := 'Call to Validate auto_calculate_interest_flag';
----------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate auto_calculate_interest_flag
--
IF p_vendor_rec.auto_calculate_interest_flag is NOT NULL
AND p_vendor_rec.auto_calculate_interest_flag <> ap_null_char THEN
Validate_Lookups('AUTO_CALCULATE_INTEREST_FLAG',
p_vendor_rec.auto_calculate_interest_flag,'YES/NO',
'PO_LOOKUP_CODES', x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_CALC_INT',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' , Auto_Calculate_Interest_Flag'
||p_vendor_rec.auto_calculate_interest_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_CALC_INT');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
---------------------------------------------------------------
l_debug_info := 'Call to Validate excl freight from disc';
---------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate exclude_freight_from_discount
--
IF p_vendor_rec.exclude_freight_from_discount is NOT NULL
AND p_vendor_rec.exclude_freight_from_discount <> ap_null_char THEN
Validate_Lookups( 'EXCLUDE_FREIGHT_FROM_DISCOUNT',
p_vendor_rec.exclude_freight_from_discount ,'YES/NO',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_EXC_FR_DISC',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Exclude_Freight_From_Discount:'
||p_vendor_rec.exclude_freight_from_discount);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_EXC_FR_DISC');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
----------------------------------------------------------------
l_debug_info := 'Call to Validate hold_unmatched_invoices_flag';
----------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate hold_unmatched_invoices_flag
--
IF p_vendor_rec.hold_unmatched_invoices_flag is NOT NULL
AND p_vendor_rec.hold_unmatched_invoices_flag <> ap_null_char THEN
Validate_Lookups('HOLD_UNMATCHED_INVOICES_FLAG',
p_vendor_rec.hold_unmatched_invoices_flag ,'YES/NO',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_HOLD_UNMAT_INV',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Hold_Unmatched_Invoices_Flag:'
||p_vendor_rec.hold_unmatched_invoices_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_HOLD_UNMAT_INV');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
---------------------------------------------------------------
l_debug_info := 'Call to Validate allow_unord_receipts_flag';
---------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate allow_unord_receipts_flag
--
IF p_vendor_rec.allow_unordered_receipts_flag is NOT NULL
AND p_vendor_rec.allow_unordered_receipts_flag <> ap_null_char THEN
Validate_Lookups('ALLOW_UNORDERED_RECEIPTS_FLAG',
p_vendor_rec.allow_unordered_receipts_flag,'YES/NO',
'PO_LOOKUP_CODES', x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_UNORD_RCV',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Allow_Unordered_Receipts_Flag:'
||p_vendor_rec.allow_unordered_receipts_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_UNORD_RCV');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
---------------------------------------------------------------
l_debug_info :=
'Call to Validate allow_substitute_receipts_flag';
-------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate allow_substitute_receipts_flag
--
IF p_vendor_rec.allow_substitute_receipts_flag is NOT NULL
AND p_vendor_rec.allow_substitute_receipts_flag <> ap_null_char THEN
Validate_Lookups('ALLOW_SUBSTITUTE_RECEIPTS_FLAG',
p_vendor_rec.allow_substitute_receipts_flag,'YES/NO',
'PO_LOOKUP_CODES', x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_SUBS_RCV',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Allow_Substitute_Receipts_Flag:'
||p_vendor_rec.allow_substitute_receipts_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SUB_RCV');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
---------------------------------------------------------------
l_debug_info := 'Call to Validate hold_flag';
----------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate hold_flag
--
IF p_vendor_rec.hold_flag is NOT NULL
AND p_vendor_rec.hold_flag <> ap_null_char THEN
Validate_Lookups('HOLD_FLAG', p_vendor_rec.hold_flag,
'YES/NO',
'PO_LOOKUP_CODES', x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_HOLD',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Hold_Flag:'
||p_vendor_rec.hold_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_HOLD');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
----------------------------------------------------------------
l_debug_info := 'Call to Validate small_business_flag';
---------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate small_business_flag
--
IF p_vendor_rec.small_business_flag is NOT NULL
AND p_vendor_rec.small_business_flag <> ap_null_char THEN
Validate_Lookups('SMALL_BUSINESS_FLAG',
p_vendor_rec.small_business_flag,'YES/NO',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_SMALL_BUSINESS',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Small_Business_Flag:'
||p_vendor_rec.small_business_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SMALL_BUSINESS');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
----------------------------------------------------------------
l_debug_info := 'Call to Validate women_owned_flag';
---------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate women_owned_flag
--
IF p_vendor_rec.women_owned_flag is NOT NULL
AND p_vendor_rec.women_owned_flag <> ap_null_char THEN
Validate_Lookups('WOMEN_OWNED_FLAG',
p_vendor_rec.women_owned_flag,'YES/NO',
'PO_LOOKUP_CODES', x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_WOMEN_OWNED',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Women_Owned_Flag:'
||p_vendor_rec.women_owned_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_WOMEN_OWNED');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
--------------------------------------------------------------
l_debug_info := 'Call to Validate hold_future_payments_flag';
---------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate hold_future_payments_flag
--
IF p_vendor_rec.hold_future_payments_flag is NOT NULL
AND p_vendor_rec.hold_future_payments_flag <> ap_null_char THEN
Validate_Lookups('HOLD_FUTURE_PAYMENTS_FLAG',
p_vendor_rec.hold_future_payments_flag,'YES/NO',
'PO_LOOKUP_CODES', x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_HOLD_FUT_PAY',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Hold_Future_Payments_Flag:'
||p_vendor_rec.hold_future_payments_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_HOLD_FUT_PAY');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
----------------------------------------------------------------
l_debug_info := 'Call to Validate hold_all_payments_flag';
----------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate hold_all_payments_flag
--
IF p_vendor_rec.hold_all_payments_flag is NOT NULL
AND p_vendor_rec.hold_all_payments_flag <> ap_null_char THEN
Validate_Lookups('HOLD_ALL_PAYMENTS_FLAG',
p_vendor_rec.hold_all_payments_flag,'YES/NO',
'PO_LOOKUP_CODES', x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_HOLD_ALL_PAY',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Hold_All_Payments_Flag:'
||p_vendor_rec.hold_all_payments_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_HOLD_ALL_PAY');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
---------------------------------------------------------------
l_debug_info := 'Call to Validate always_take_disc_flag';
----------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate always_take_disc_flag
--
IF p_vendor_rec.always_take_disc_flag is NOT NULL
AND p_vendor_rec.always_take_disc_flag <> ap_null_char THEN
Validate_Lookups( 'ALWAYS_TAKE_DISC_FLAG',
p_vendor_rec.always_take_disc_flag,'YES/NO',
'PO_LOOKUP_CODES', x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_TAKE_DISC',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Always_Take_Disc_Flag:'
||p_vendor_rec.always_take_disc_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_TAKE_DISC');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
----------------------------------------------------------------
l_debug_info := 'Call to Validate Vendor Number';
----------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
l_segment1 := p_vendor_rec.segment1;
Check_valid_vendor_num(l_segment1,
x_valid);
----------------------------------------------------------------
l_debug_info := 'Call to Validate match_option';
----------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate match_option
--
IF p_vendor_rec.match_option is NOT NULL
AND p_vendor_rec.match_option <> ap_null_char THEN
Check_Valid_Match_Option(p_vendor_rec.match_option,
x_valid
);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
p_vendor_rec.vendor_interface_id,
'AP_INVALID_MATCH_OPTION',
g_user_id,
g_login_id,
'Validate_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id:'
||p_vendor_rec.vendor_interface_id
||' ,Match_Option:'
||p_vendor_rec.match_option);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_MATCH_OPTION');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
---------------------------------------------------------------
l_debug_info :=
'Call to Validate awt_group_id and awt_group_name';
---------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate awt_group_id and awt_group_name
--
IF ((p_vendor_rec.awt_group_id is NOT NULL AND
p_vendor_rec.awt_group_id <> ap_null_num)
or (p_vendor_rec.awt_group_name is NOT NULL AND
p_vendor_rec.awt_group_name <> ap_null_char)) AND
(p_vendor_rec.allow_awt_flag = 'Y') THEN
Chk_awt_grp_id_name(p_vendor_rec.awt_group_id,
p_vendor_rec.awt_group_name,
p_vendor_rec.allow_awt_flag,
x_valid
);
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate Hold_by';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
-- Hold_by validation
------------------------------------------------------------------------
l_debug_info := 'Call to Validate Terms_Id and Terms_Name';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
Check_terms_id_code(p_vendor_rec.terms_id,
p_vendor_rec.terms_name,
p_vendor_rec.default_terms_id,
x_valid);
EXCEPTION
WHEN FND_API.G_EXC_ERROR THEN
ROLLBACK TO Validate_Vendor_PUB;
x_return_status := FND_API.G_RET_STS_ERROR ;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
ROLLBACK TO Validate_Vendor_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
WHEN OTHERS THEN
ROLLBACK TO Validate_Vendor_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
IF FND_MSG_PUB.Check_Msg_Level
(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
FND_MSG_PUB.Add_Exc_Msg
( G_PKG_NAME ,
l_api_name
);
END IF;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
END Validate_Vendor;
PROCEDURE Create_Vendor_Site
( p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
p_commit IN VARCHAR2 := FND_API.G_FALSE,
p_validation_level IN NUMBER :=
FND_API.G_VALID_LEVEL_FULL,
x_return_status OUT NOCOPY VARCHAR2 ,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_vendor_site_rec IN r_vendor_site_rec_type,
x_vendor_site_id OUT NOCOPY NUMBER,
x_party_site_id OUT NOCOPY NUMBER,
x_location_id OUT NOCOPY NUMBER
)
IS
l_api_name CONSTANT VARCHAR2(30) := 'Create_Vendor_Site';
l_api_version CONSTANT NUMBER := 1.0;
l_def_org_id NUMBER;
l_party_site_rec HZ_PARTY_SITE_V2PUB.party_site_rec_type;
l_location_rec HZ_LOCATION_V2PUB.location_rec_type;
l_inventory_org_id NUMBER;
l_old_org_id VARCHAR2(255);
l_org_id NUMBER;
l_not_used VARCHAR2(2000);
l_default_country VARCHAR2(255);
l_federal_reportable_flag VARCHAR2(1); -- Supplier Import
l_org_type_lookup_code VARCHAR2(25); -- Supplier Import
l_set_of_books_id NUMBER; -- Supplier Import
l_pay_on_rec_summary_code VARCHAR2(25); -- Supplier Import
l_duns_number VARCHAR2(30);
l_tolerance_id NUMBER;
l_accts_pay_ccid_def VARCHAR2(255);
l_prepay_ccid_def VARCHAR2(255);
l_future_pay_ccid_def VARCHAR2(255);
l_val_return_status VARCHAR2(50);
l_val_msg_count NUMBER;
l_val_msg_data VARCHAR2(2000);
l_loc_return_status VARCHAR2(50);
l_loc_msg_count NUMBER;
l_loc_msg_data VARCHAR2(2000);
l_site_return_status VARCHAR2(50);
l_site_msg_count NUMBER;
l_site_msg_data VARCHAR2(2000);
l_pay_return_status VARCHAR2(50);
l_pay_msg_count NUMBER;
l_pay_msg_data VARCHAR2(2000);
l_org_context VARCHAR2(1);
l_multi_org_flag VARCHAR2(1);
l_debug_info VARCHAR2(2000);
l_party_id NUMBER;
l_vendor_type_lookup_code VARCHAR2(30);
l_vendor_site_rec r_vendor_site_rec_type;
l_accts_pay_ccid NUMBER;
l_prepay_ccid NUMBER;
l_future_ccid NUMBER;
l_last_updated_by NUMBER;
l_created_by NUMBER;
l_default_country_code VARCHAR2(25);
l_home_country_code VARCHAR2(25);
l_location_valid VARCHAR2(1);
l_party_site_valid VARCHAR2(1);
l_payee_valid VARCHAR2(1);
l_loc_id NUMBER;
l_party_site_id NUMBER;
l_party_site_number VARCHAR2(30);
l_org_id_derive NUMBER;
x_valid BOOLEAN;
-- bug 7371143 start
l_offset_tax_flag VARCHAR2(1);
l_auto_tax_calc_flag VARCHAR2(1);
-- bug 7371143 end
l_ext_payee_rec IBY_DISBURSEMENT_SETUP_PUB.EXTERNAL_PAYEE_REC_TYPE;
-- Bug#7506443 start
l_tax_classification_code ZX_PARTY_TAX_PROFILE.TAX_CLASSIFICATION_CODE%TYPE;
l_pymt_method_code iby_external_payees_all.default_payment_method_code%TYPE;
l_inactive_date iby_external_payees_all.Inactive_Date%TYPE;
l_primary_flag iby_ext_party_pmt_mthds.primary_flag%TYPE;
l_Exclusive_Pay_Flag IBY_EXTERNAL_PAYEES_ALL.exclusive_payment_flag%TYPE;
-- Bug#7506443 start
l_sync_return_status VARCHAR2(50);
l_sync_msg_count NUMBER;
l_sync_msg_data VARCHAR2(2000);
l_sup_awt_flag VARCHAR2(1);
-- BUG 6739544 Start
ORG_ID_EXCEPTION EXCEPTION;
-- BUG 6739544 End
BEGIN
-- Standard Start of API savepoint
SAVEPOINT Create_Vendor_Site_PUB;
IF NOT FND_API.Compatible_API_Call ( l_api_version ,
p_api_version ,
l_api_name ,
G_PKG_NAME )
THEN
RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
END IF;
-- Bug 6812010 :Due to 5055120, Payables' own supplier site import program fails
-- because MO initialization is not happening.To fix 6812010 and keep 5055120 intact,
-- strategy is that if calling application id is not AP then we will not call MO_GLOBAL.INIT
-- since it is calling module's responsibility to perform MO initialization.
-- Bug 6930102
If (l_program_application_id = 200 OR l_program_application_id = -1)then
MO_GLOBAL.INIT ('SQLAP');
end if;
-- API body
------------------------------------------------------------------------
l_debug_info := 'Call Org_Id and Operating_unit_name validation for Import';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
Check_org_id_name(l_org_id_derive,
p_vendor_site_rec.org_name,
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
x_valid);
END IF;
MO_GLOBAL.validate_orgid_pub_api(l_def_org_id,
'N',
x_return_status);
EXCEPTION
WHEN OTHERS
THEN
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_ORG_INFO_NULL', --bug 5568861
g_user_id,
g_login_id,
'Create_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
||' ,Vendor_Site_Code: '||p_vendor_site_rec.vendor_site_code);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_ORG_INFO_NULL');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
-- RAISE FND_API.G_EXC_ERROR;
RAISE ORG_ID_EXCEPTION; -- BUG 6739544
END;
l_org_context := mo_global.get_access_mode;
SELECT nvl(multi_org_flag,'N')
INTO l_multi_org_flag
FROM FND_PRODUCT_GROUPS;
l_vendor_site_rec := p_vendor_site_rec;
l_vendor_site_rec.org_id := l_def_org_id;
ap_apxvdmvd_pkg.initialize(
x_user_defined_vendor_num_code => l_not_used,
x_manual_vendor_num_type => l_not_used,
x_rfq_only_site_flag => l_rfq_only_site_flag,
x_ship_to_location_id => l_ship_to_location_id,
x_ship_to_location_code => l_not_used,
x_bill_to_location_id => l_bill_to_location_id,
x_bill_to_location_code => l_not_used,
x_fob_lookup_code => l_fob_lookup_code,
x_freight_terms_lookup_code => l_freight_terms_lookup_code,
x_terms_id => l_terms_id,
x_terms_disp => l_not_used,
x_always_take_disc_flag => l_always_take_disc_flag,
x_invoice_currency_code => l_invoice_currency_code,
x_org_id => l_vendor_site_rec.org_id,
x_set_of_books_id => l_not_used,
x_short_name => l_not_used,
x_payment_currency_code => l_payment_currency_code,
x_accts_pay_ccid => l_accts_pay_ccid,
x_future_dated_payment_ccid => l_future_pay_ccid,
x_prepay_code_combination_id => l_prepay_ccid,
x_vendor_pay_group_lookup_code => l_pay_group_lookup_code,
x_sys_auto_calc_int_flag => l_not_used,
x_terms_date_basis => l_terms_date_basis,
x_terms_date_basis_disp => l_not_used,
x_chart_of_accounts_id => l_not_used,
x_fob_lookup_disp => l_not_used,
x_freight_terms_lookup_disp => l_not_used,
x_vendor_pay_group_disp => l_not_used,
x_fin_require_matching => l_hold_unmatched_invoices_flag, --Bug 7651872
x_sys_require_matching => l_not_used,
x_fin_match_option => l_not_used,
x_po_create_dm_flag => l_not_used,
x_exclusive_payment => l_not_used,
x_vendor_auto_int_default => l_not_used,
x_inventory_organization_id => l_not_used,
x_ship_via_lookup_code => l_ship_via_lookup_code,
x_ship_via_disp => l_not_used,
x_sysdate => l_not_used,
x_enforce_ship_to_loc_code => l_not_used,
x_receiving_routing_id => l_not_used,
x_qty_rcv_tolerance => l_not_used,
x_qty_rcv_exception_code => l_not_used,
x_days_early_receipt_allowed => l_not_used,
x_days_late_receipt_allowed => l_not_used,
x_allow_sub_receipts_flag => l_not_used,
x_allow_unord_receipts_flag => l_not_used,
x_receipt_days_exception_code => l_not_used,
x_enforce_ship_to_loc_disp => l_not_used,
x_qty_rcv_exception_disp => l_not_used,
x_receipt_days_exception_disp => l_not_used,
x_receipt_required_flag => l_not_used,
x_inspection_required_flag => l_not_used,
x_payment_method_lookup_code => l_not_used,
x_payment_method_disp => l_not_used,
x_pay_date_basis_lookup_code => l_not_used,
x_pay_date_basis_disp => l_not_used,
x_receiving_routing_name => l_not_used,
x_ap_inst_flag => l_not_used,
x_po_inst_flag => l_not_used,
x_home_country_code => l_home_country_code,
x_default_country_code => l_default_country,
x_default_country_disp => l_not_used,
x_default_awt_group_id => l_awt_group_id,
x_default_awt_group_name => l_not_used,
x_allow_awt_flag => l_allow_awt_flag,
x_base_currency_code => l_not_used,
x_address_style => l_not_used,
x_use_bank_charge_flag => l_not_used,
x_bank_charge_bearer => l_bank_charge_bearer,
x_calling_sequence => null);
/* Bug 7155121 Modified the below select to get values from both ap_system_parameters_all and po_vendors*/
l_last_updated_by := fnd_global.user_id;
l_last_update_login := fnd_global.login_id;
l_created_by := fnd_global.user_id;
--Bug6679696
IF l_vendor_type_lookup_code = 'EMPLOYEE' then
l_vendor_site_rec.pay_site_flag := nvl(l_vendor_site_rec.pay_site_flag,'Y');
END IF;
G_vendor_type_lookup_code := l_vendor_type_lookup_code;
l_vendor_site_rec.rfq_only_site_flag
:= nvl(l_vendor_site_rec.rfq_only_site_flag, l_rfq_only_site_flag);
l_vendor_site_rec.attention_ar_flag :=
nvl(l_vendor_site_rec.attention_ar_flag, 'N');
l_vendor_site_rec.ship_to_location_id
:= nvl(l_vendor_site_rec.ship_to_location_id, l_ship_to_location_id);
l_vendor_site_rec.bill_to_location_id
:= nvl(l_vendor_site_rec.bill_to_location_id, l_bill_to_location_id);
l_vendor_site_rec.ship_via_lookup_code
:= nvl(l_vendor_site_rec.ship_via_lookup_code, l_ship_via_lookup_code);
l_vendor_site_rec.freight_terms_lookup_code
:= nvl(l_vendor_site_rec.freight_terms_lookup_code,
l_freight_terms_lookup_code);
l_vendor_site_rec.fob_lookup_code
:= nvl(l_vendor_site_rec.fob_lookup_code, l_fob_lookup_code);
-- Bug#7506443 start
/* l_vendor_site_rec.terms_date_basis :=
nvl(l_vendor_site_rec.terms_date_basis, nvl(l_terms_date_basis,
l_sup_terms_date_basis)); */
l_vendor_site_rec.terms_date_basis :=
nvl(l_vendor_site_rec.terms_date_basis, nvl(l_sup_terms_date_basis,
l_terms_date_basis));
-- Bug#7506443 end
l_vendor_site_rec.accts_pay_code_combination_id
:= nvl(l_vendor_site_rec.accts_pay_code_combination_id,
l_accts_pay_ccid);
l_vendor_site_rec.future_dated_payment_ccid
:= nvl(l_vendor_site_rec.future_dated_payment_ccid,
l_future_pay_ccid);
l_vendor_site_rec.prepay_code_combination_id
:= nvl(l_vendor_site_rec.prepay_code_combination_id,
l_prepay_ccid);
-- Bug 5409457. Pay Group should be based supplier, if there is no value at
-- supplier then from product setup level.
l_vendor_site_rec.pay_group_lookup_code
:= nvl(l_vendor_site_rec.pay_group_lookup_code,
nvl(l_sup_pay_group_lookup_code, l_pay_group_lookup_code));
l_vendor_site_rec.payment_priority
:= nvl(l_vendor_site_rec.payment_priority, l_payment_priority);
-- Bug#7506443 start
/*l_vendor_site_rec.terms_id := nvl(l_vendor_site_rec.terms_id,
nvl(l_terms_id, l_sup_terms_id)); */
l_vendor_site_rec.terms_id := nvl(l_vendor_site_rec.terms_id,
nvl(l_sup_terms_id, l_terms_id));
-- Bug#7506443 end
l_vendor_site_rec.invoice_amount_limit
:= nvl(l_vendor_site_rec.invoice_amount_limit, l_invoice_amount_limit);
l_vendor_site_rec.pay_date_basis_lookup_code
:= nvl(l_vendor_site_rec.pay_date_basis_lookup_code,
nvl(l_pay_date_basis_lookup_code, l_sup_pay_date_basis_lk_code));
-- bug6680946
l_vendor_site_rec.always_take_disc_flag
:= nvl(l_vendor_site_rec.always_take_disc_flag, l_sup_always_take_disc_flag);
l_vendor_site_rec.invoice_currency_code
:= nvl(l_vendor_site_rec.invoice_currency_code,
nvl(l_sup_invoice_currency_code, l_invoice_currency_code )); --bug:7282105
l_vendor_site_rec.payment_currency_code
:= nvl(l_vendor_site_rec.payment_currency_code,
nvl(l_sup_payment_currency_code, l_payment_currency_code)); --bug:7282105
l_vendor_site_rec.hold_all_payments_flag
:= nvl(l_vendor_site_rec.hold_all_payments_flag,
l_hold_all_payments_flag);
l_vendor_site_rec.hold_future_payments_flag
:= nvl(l_vendor_site_rec.hold_future_payments_flag,
l_hold_future_payments_flag);
l_vendor_site_rec.hold_reason
:= nvl(l_vendor_site_rec.hold_reason, l_hold_reason);
l_vendor_site_rec.hold_unmatched_invoices_flag
:= nvl(l_vendor_site_rec.hold_unmatched_invoices_flag,
l_hold_unmatched_invoices_flag);
l_vendor_site_rec.match_option
:= nvl(l_vendor_site_rec.match_option, l_match_option);
l_vendor_site_rec.create_debit_memo_flag
:= nvl(l_vendor_site_rec.create_debit_memo_flag, 'N');
l_vendor_site_rec.tax_reporting_site_flag
:= nvl(l_vendor_site_rec.tax_reporting_site_flag, 'N');
l_vendor_site_rec.validation_number
:= nvl(l_vendor_site_rec.validation_number, 0);
l_vendor_site_rec.exclude_freight_from_discount
:= nvl(l_vendor_site_rec.exclude_freight_from_discount,
l_exclude_freight_from_disc);
--Bug 7384699 populate allow_awt_flag only iff Supplier awt_flag is enabled
if(l_sup_awt_flag = 'Y') THEN
l_vendor_site_rec.allow_awt_flag
:= nvl(l_vendor_site_rec.allow_awt_flag, l_allow_awt_flag);
else
l_vendor_site_rec.allow_awt_flag := 'N';
end if;
--Bug6317600 Populate awt_group_id only if allow_awt_flag is Y
if nvl( l_vendor_site_rec.allow_awt_flag,'N') = 'Y' THEN
l_vendor_site_rec.awt_group_id
:= nvl(l_vendor_site_rec.awt_group_id, l_awt_group_id);
end if;
l_vendor_site_rec.bank_charge_bearer
:= nvl(l_vendor_site_rec.bank_charge_bearer,
nvl(l_bank_charge_bearer, l_sup_bank_charge_bearer));
l_vendor_site_rec.pcard_site_flag
:= nvl(l_vendor_site_rec.pcard_site_flag, 'N');
l_vendor_site_rec.country_of_origin_code
:= nvl(l_vendor_site_rec.country_of_origin_code, l_default_country);
l_vendor_site_rec.org_id := nvl(l_vendor_site_rec.org_id, l_org_id);
l_vendor_site_rec.duns_number
:= nvl(l_vendor_site_rec.duns_number, l_duns_number);
l_location_rec.created_by_module := 'AP_SUPPLIERS_API';
l_location_rec.application_id := 200;
l_location_rec.address_style := l_vendor_site_rec.address_style;
l_location_rec.province := l_vendor_site_rec.province;
l_location_rec.country := l_vendor_site_rec.country;
l_location_rec.county := l_vendor_site_rec.county;
l_location_rec.address1 := l_vendor_site_rec.address_line1;
l_location_rec.address2 := l_vendor_site_rec.address_line2;
l_location_rec.address3 := l_vendor_site_rec.address_line3;
l_location_rec.address4 := l_vendor_site_rec.address_line4;
l_location_rec.address_lines_phonetic := l_vendor_site_rec.address_lines_alt;
l_location_rec.city := l_vendor_site_rec.city;
l_location_rec.state := l_vendor_site_rec.state;
l_location_rec.postal_code := l_vendor_site_rec.zip;
-- Bug#7506443 start
l_vendor_site_rec.OFFSET_TAX_FLAG := nvl(l_vendor_site_rec.OFFSET_TAX_FLAG, l_offset_tax_flag);
l_vendor_site_rec.AUTO_TAX_CALC_FLAG := nvl(l_vendor_site_rec.AUTO_TAX_CALC_FLAG, l_auto_tax_calc_flag);
l_vendor_site_rec.VAT_CODE := nvl(l_vendor_site_rec.VAT_CODE, l_tax_classification_code);
-- Bug#7506443 start
l_offset_tax_flag := l_vendor_site_rec.OFFSET_TAX_FLAG;
l_auto_tax_calc_flag := l_vendor_site_rec.AUTO_TAX_CALC_FLAG;
l_tax_classification_code := l_vendor_site_rec.VAT_CODE;
-- Bug#7642742 end
BEGIN
SELECT PARTY_TAX_PROFILE_ID INTO L_PARTY_TAX_PROFILE_ID
FROM ZX_PARTY_TAX_PROFILE
WHERE PARTY_ID = l_party_site_id
AND PARTY_TYPE_CODE = 'THIRD_PARTY_SITE'
AND ROWNUM = 1;
EXCEPTION
WHEN OTHERS THEN
L_PARTY_TAX_PROFILE_ID := NULL;
END;
-- Bug 5244172
-- Allow the vendor site creation even if we do not have
-- location or party site IDs and the vendor type is
-- Employee.
ap_vendor_sites_pkg.insert_row(
p_vendor_site_rec => l_vendor_site_rec,
p_last_update_date => sysdate,
p_last_updated_by => nvl(l_user_id,-1),
p_last_update_login => nvl(l_last_update_login, -1),
p_creation_date => sysdate,
p_created_by => nvl(l_user_id, -1) ,
p_request_id => l_request_id ,
p_program_application_id => l_program_application_id,
p_program_id => l_program_id,
p_program_update_date => sysdate,
x_rowid => l_rowid,
x_vendor_site_id => l_vendor_site_id);
------------------------------------------------------------------------
l_debug_info := 'After call to ap_vendor_sites_pkg.insert_row';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
END IF;
--Bug6648405
--Bug 6753822 - Added NVL on vendor_type_lookup_code
IF (NVL(l_vendor_type_lookup_code,'DUMMY') <> 'EMPLOYEE') then
AP_TCA_SUPPLIER_SYNC_PKG.SYNC_Supplier_Sites(
l_sync_return_status,
l_sync_msg_count,
l_sync_msg_data,
l_vendor_site_rec.location_id,
l_vendor_site_rec.party_site_id);
IF l_sync_return_status <> FND_API.G_RET_STS_SUCCESS THEN
------------------------------------------------------------------------
l_debug_info := 'After call to AP_TCA_SUPPLIER_SYNC_PKG.SYNC_Supplier_Sites';
l_debug_info := l_debug_info||' Return status : '||l_sync_return_status||' Error : '||l_sync_msg_data;
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
END IF;
END IF;
END IF;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
ELSE
x_return_status := FND_API.G_RET_STS_ERROR;
END IF;
l_ext_payee_rec.payee_party_id := l_party_id;
l_ext_payee_rec.payee_party_site_id := l_vendor_site_rec.party_site_id;
l_ext_payee_rec.supplier_site_id := l_vendor_site_id;
l_ext_payee_rec.payment_function := 'PAYABLES_DISB';
l_ext_payee_rec.payer_org_id := l_vendor_site_rec.org_id;
l_ext_payee_rec.payer_org_type := 'OPERATING_UNIT';
l_ext_payee_rec.exclusive_pay_flag := 'N';
-- 6458813 starts
-- 7506443 changes start
l_ext_payee_rec.default_pmt_method := nvl (l_vendor_site_rec.ext_payee_rec.default_pmt_method,
l_pymt_method_code);
l_ext_payee_rec.inactive_date := l_inactive_date;
-- l_ext_payee_rec.Exclusive_Pay_Flag := l_Exclusive_Pay_Flag; -- Bug8200842
-- 7506443 changes start
l_ext_payee_rec.ece_tp_loc_code := l_vendor_site_rec.ext_payee_rec.ece_tp_loc_code;
l_ext_payee_rec.bank_charge_bearer := l_vendor_site_rec.ext_payee_rec.bank_charge_bearer;
l_ext_payee_rec.bank_instr1_code := l_vendor_site_rec.ext_payee_rec.bank_instr1_code;
l_ext_payee_rec.bank_instr2_code := l_vendor_site_rec.ext_payee_rec.bank_instr2_code;
l_ext_payee_rec.bank_instr_detail := l_vendor_site_rec.ext_payee_rec.bank_instr_detail;
l_ext_payee_rec.pay_reason_code := l_vendor_site_rec.ext_payee_rec.pay_reason_code;
l_ext_payee_rec.pay_reason_com := l_vendor_site_rec.ext_payee_rec.pay_reason_com;
l_ext_payee_rec.pay_message1 := l_vendor_site_rec.ext_payee_rec.pay_message1;
l_ext_payee_rec.pay_message2 := l_vendor_site_rec.ext_payee_rec.pay_message2;
l_ext_payee_rec.pay_message3 := l_vendor_site_rec.ext_payee_rec.pay_message3;
l_ext_payee_rec.delivery_channel := l_vendor_site_rec.ext_payee_rec.delivery_channel;
l_ext_payee_rec.pmt_format := l_vendor_site_rec.ext_payee_rec.pmt_format;
l_ext_payee_rec.settlement_priority := l_vendor_site_rec.ext_payee_rec.settlement_priority;
-- 6458813 ends
ext_payee_tab(1) := l_ext_payee_rec;
ELSE
-- 7506443 changes start
l_vendor_site_rec.ext_payee_rec.default_pmt_method :=nvl
(l_vendor_site_rec.ext_payee_rec.default_pmt_method,l_pymt_method_code);
l_vendor_site_rec.ext_payee_rec.inactive_date := l_inactive_date;
l_ext_payee_rec.Exclusive_Pay_Flag := l_Exclusive_Pay_Flag;
-- 7506443 changes start
ext_payee_tab(1) := l_vendor_site_rec.ext_payee_rec;
END IF;
/* Bug 5310356 */
IF l_org_context <> MO_Global.Get_Access_Mode THEN
MO_GLOBAL.Set_Policy_Context(l_org_context, l_def_org_id);
END IF;
EXCEPTION
WHEN FND_API.G_EXC_ERROR THEN
ROLLBACK TO Create_Vendor_Site_PUB;
x_return_status := FND_API.G_RET_STS_ERROR ;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
ROLLBACK TO Create_Vendor_Site_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
-- BUG 6739544 START
WHEN ORG_ID_EXCEPTION THEN
x_return_status := FND_API.G_RET_STS_ERROR ;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
-- BUG 6739544 END.
WHEN OTHERS THEN
ROLLBACK TO Create_Vendor_Site_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
IF FND_MSG_PUB.Check_Msg_Level
(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
FND_MSG_PUB.Add_Exc_Msg
( G_PKG_NAME ,
l_api_name
);
END IF;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
END Create_Vendor_Site;
PROCEDURE Update_Vendor_Site
( p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
p_commit IN VARCHAR2 := FND_API.G_FALSE,
p_validation_level IN NUMBER :=
FND_API.G_VALID_LEVEL_FULL,
x_return_status OUT NOCOPY VARCHAR2 ,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_vendor_site_rec IN r_vendor_site_rec_type,
p_vendor_site_id IN NUMBER,
p_calling_prog IN VARCHAR2 DEFAULT 'NOT ISETUP'
)
IS
l_api_name CONSTANT VARCHAR2(30) := 'Update_Vendor_Site';
l_api_version CONSTANT NUMBER := 1.0;
l_def_org_id NUMBER;
l_sync_return_status VARCHAR2(50);
l_sync_msg_count NUMBER;
l_sync_msg_data VARCHAR2(1000);
BEGIN
-- Standard Start of API savepoint
SAVEPOINT Update_Vendor_Site_PUB;
-- API body
-- Bug 5055120
-- This call is incorrect. The correct call is to have the calling
-- modules set the context and call this API with the right ORG_ID.
-- Bug 6812010 :Due to 5055120, Payables' own supplier site import program fails
-- because MO initialization is not happening.To fix 6812010 and keep 5055120 intact,
-- strategy is that if calling application id is not AP then we will not call MO_GLOBAL.INIT
-- since it is calling module's responsibility to perform MO initialization.
-- Bug 6930102
If (l_program_application_id = 200 OR l_program_application_id = -1)then
MO_GLOBAL.INIT ('SQLAP');
end if;
l_org_context := mo_global.get_access_mode;
l_vendor_site_rec := p_vendor_site_rec;
AP_TCA_SUPPLIER_SYNC_PKG.SYNC_Supplier_Sites(
l_sync_return_status,
l_sync_msg_count,
l_sync_msg_data,
l_vendor_site_rec.location_id,
l_vendor_site_rec.party_site_id);
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
ELSE
x_return_status := FND_API.G_RET_STS_ERROR;
END IF;
PROCEDURE Validate_Vendor_Site
( p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
p_commit IN VARCHAR2 := FND_API.G_FALSE,
p_validation_level IN NUMBER :=
FND_API.G_VALID_LEVEL_FULL,
x_return_status OUT NOCOPY VARCHAR2 ,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_vendor_site_rec IN OUT NOCOPY r_vendor_site_rec_type,
p_mode IN VARCHAR2,
p_calling_prog IN VARCHAR2,
x_party_site_valid OUT NOCOPY VARCHAR2,
x_location_valid OUT NOCOPY VARCHAR2,
x_payee_valid OUT NOCOPY VARCHAR2,
p_vendor_site_id IN NUMBER
)
IS
l_api_name CONSTANT VARCHAR2(30) := 'Validate_Vendor_Site';
l_api_version CONSTANT NUMBER := 1.0;
l_def_org_id NUMBER;
l_debug_info VARCHAR2(2000);
x_valid BOOLEAN;
l_sob NUMBER;
l_location_id NUMBER;
l_payee_return_status VARCHAR2(50);
l_payee_msg_count NUMBER;
l_payee_msg_data VARCHAR2(1000);
l_tolerance_type VARCHAR2(50);
l_status NUMBER;
-- Bug 6645014 l_status added to import vat_code
-- Bug 6918411/6808171 CTETALA
-- l_dummy added for usage in validating country code
l_dummy VARCHAR2(2);
x_loc_count NUMBER := 0; -- Bug 7429668
BEGIN
l_tolerance_type := 'QUANTITY';
-- API body
--get sob
--Bug 4597347
--Bug 5305536
IF p_vendor_site_rec.org_id IS NOT NULL THEN
SELECT Set_Of_Books_Id
INTO l_sob
FROM ap_system_parameters
WHERE org_id = p_vendor_site_rec.org_id;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate hold_unmatched_invoices_flag';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate hold_unmatched_invoices_flag
--
IF p_vendor_site_rec.hold_unmatched_invoices_flag is NOT NULL
AND p_vendor_site_rec.hold_unmatched_invoices_flag <> ap_null_char THEN
Validate_Lookups('HOLD_UNMATCHED_INVOICES_FLAG',
p_vendor_site_rec.hold_unmatched_invoices_flag ,'YES/NO',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INVALID_HOLD_UNMAT_INV',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
||' ,Hold_Unmatched_Invoices_Flag: '
||p_vendor_site_rec.hold_unmatched_invoices_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_HOLD_UNMAT_INV');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate tax_reporting_site_flag';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate tax_reporting_site_flag
--
IF p_vendor_site_rec.tax_reporting_site_flag is NOT NULL
AND p_vendor_site_rec.tax_reporting_site_flag <> ap_null_char THEN
Validate_Lookups( 'TAX_REPORTING_SITE_FLAG',
p_vendor_site_rec.tax_reporting_site_flag ,'YES/NO',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INVALID_TAX_RS_FLAG',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
||' ,Tax_Reporting_Site_Flag: '
||p_vendor_site_rec.tax_reporting_site_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_TAX_RS_FLAG');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
IF l_status = 0 THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INVALID_VAT_CODE',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
||' ,Vat_Code: '
||p_vendor_site_rec.vat_code);
END IF;
END IF;
ELSE
FND_MESSAGE.SET_NAME('SQLAP', 'AP_INVALID_VAT_CODE');
FND_MSG_PUB.ADD;
END IF;
END IF;
END IF;
-- Bug 6645014 ends
------------------------------------------------------------------------
l_debug_info := 'Call to Validate default_pay_site_id';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- We should check for Valid Sites for any default_pay_site_id
--
IF (p_vendor_site_rec.default_pay_site_id is NOT NULL) AND
(p_vendor_site_rec.default_pay_site_id <> ap_null_num) THEN
Check_Default_pay_site(p_vendor_site_rec.default_pay_site_id,
p_vendor_site_rec.vendor_id,
p_vendor_site_rec.org_id,
x_valid
);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INVALID_DEF_PAY_SITE',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
||' ,Org_Id: '||p_vendor_site_rec.org_id
||' ,Deafult_Pay_Site_Id: '
||p_vendor_site_rec.default_pay_site_id);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_DEF_PAY_SITE');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
Check_dup_vendor_site ( p_vendor_site_rec.vendor_id,
p_vendor_site_rec.vendor_site_code,
p_vendor_site_rec.org_name,
p_vendor_site_rec.org_id,
x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_DUPLICATE_VENDOR_SITE',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
||' ,Org_Id: '||p_vendor_site_rec.org_id
||' ,Vendor_Site_Code: '
||p_vendor_site_rec.vendor_site_code);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_DUPLICATE_VENDOR_SITE');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call Org_Id and Operating_unit_name validation';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
-- Org_Id and Operating_unit_name validation
IF (p_vendor_site_rec.org_id is NOT NULL AND
p_vendor_site_rec.org_id <> ap_null_num) OR
(p_vendor_site_rec.org_name is NOT NULL AND
p_vendor_site_rec.org_name <> ap_null_char) THEN
Check_org_id_name(p_vendor_site_rec.org_id,
p_vendor_site_rec.org_name,
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
x_valid);
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate pay_on_receipt_summary_code';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate and default pay_on_receipt_summary_code
--
IF p_vendor_site_rec.pay_on_code is NOT NULL AND
p_vendor_site_rec.pay_on_code <> ap_null_char THEN
Check_pay_on_rec_sum_code(p_vendor_site_rec.pay_on_code,
p_vendor_site_rec.pay_on_receipt_summary_code,
x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INVALID_PAY_ON_RCE',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
||' ,Pay_On_Code: '||p_vendor_site_rec.pay_on_code
||' ,Pay_On_Receipt_Summary_Code: '
||p_vendor_site_rec.pay_on_receipt_summary_code);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_ON_RCE');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate shipping_control';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate shipping_control
--
IF p_vendor_site_rec.shipping_control is NOT NULL
AND p_vendor_site_rec.shipping_control <> ap_null_char THEN
Check_Shipping_Control(p_vendor_site_rec.shipping_control,
x_valid
);
------------------------------------------------------------------------
l_debug_info := 'Call to Validate Terms_Id and Terms_Name';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
Check_terms_id_code(p_vendor_site_rec.terms_id,
p_vendor_site_rec.terms_name,
p_vendor_site_rec.default_terms_id,
x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INCONSISTENT_TERM',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
||' ,Terms_Id: '||p_vendor_site_rec.terms_id
||' ,Terms_Name: '||p_vendor_site_rec.terms_name
||' ,Default_Terms_Id: '||p_vendor_site_rec.default_terms_Id);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_TERM');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate pay_on_code';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate pay_on_code
--
IF p_vendor_site_rec.pay_on_code is NOT NULL AND
p_vendor_site_rec.pay_on_code <> ap_null_char THEN
Check_Valid_pay_on_code(p_vendor_site_rec.pay_on_code,
p_vendor_site_rec.purchasing_site_flag,
p_vendor_site_rec.pay_site_flag,
p_vendor_site_rec.default_pay_site_id,
x_valid);
------------------------------------------------------------------------
l_debug_info := 'Call to Validate pay_on_code and pay_on_receipt_summary_code';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate Payment_Priority';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate Payment_Priority
--
IF p_vendor_site_rec.payment_priority is NOT NULL AND
p_vendor_site_rec.payment_priority <> ap_null_num THEN
Check_payment_priority(p_vendor_site_rec.payment_priority,
x_valid
);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INVALID_PAY_PRIORITY',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
||' ,Payment_Priority: '||p_vendor_site_rec.payment_priority);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAYMENT_PRIORITY');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate Invoice Currency Code';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate Payment Currency Code';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate accts_pay_ccid';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate accts_pay_ccid
--
IF p_vendor_site_rec.accts_pay_code_combination_id is NOT NULL
AND p_vendor_site_rec.accts_pay_code_combination_id <> ap_null_num THEN
Validate_CCIDs('ACCTS_PAY_CCID',
p_vendor_site_rec.accts_pay_code_combination_id, l_sob,
x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INVALID_ACCOUNTS_PAY_CCID',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
||' ,Accts_Pay_Code_Comb_Id: '
||p_vendor_site_rec.accts_pay_code_combination_id
||' ,Set_Of_Books_Id: '||l_sob);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ACCOUNTS_PAY_CCID');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate prepay_ccid';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate prepay_code_combination_id
--
IF p_vendor_site_rec.prepay_code_combination_id is NOT NULL AND
p_vendor_site_rec.prepay_code_combination_id <> ap_null_num THEN
Validate_CCIDs( 'PREPAY_CCID',
p_vendor_site_rec.prepay_code_combination_id, l_sob,
x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_SUPP_INVALID_CCID',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
||' ,Prepay_Code_Combination_Id: '
||p_vendor_site_rec.prepay_code_combination_id
||' ,Set_Of_Books_Id: '||l_sob);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_SUPP_INVALID_CCID');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate future_dated_payment_ccid';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate future_dated_payment_ccid
--
IF p_vendor_site_rec.future_dated_payment_ccid is NOT NULL AND
p_vendor_site_rec.future_dated_payment_ccid <> ap_null_num THEN
Validate_CCIDs( 'FUTURE_DATED_PAYMENT_CCID',
p_vendor_site_rec.future_dated_payment_ccid, l_sob,
x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_SUPP_INVALID_CCID',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
||' ,Future_Dated_Payment_Ccid: '
||p_vendor_site_rec.future_dated_payment_ccid
||' ,Set_Of_Books_Id: '||l_sob);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_SUPP_INVALID_CCID');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate duns_number';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate supplier site duns number
-- Added for the R12 FSIO gap
--(bug6053476)
IF p_vendor_site_rec.duns_number is NOT NULL
AND p_vendor_site_rec.duns_number <> ap_null_char THEN
--update validations
null;
------------------------------------------------------------------------
l_debug_info := 'check for prohibiting the update of CCR vendor site';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Check if there is an attempt to update any restricted
-- fields for a CCR vendor site. Added for the R12 FSIO
-- GAP.(bug6053476)
Chk_update_site_ccr_values(p_vendor_site_rec,
p_calling_prog,
x_valid);
--insert validations
------------------------------------------------------------------------
l_debug_info := 'Call to Validate payee';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Calling IBY Payee Validation API
--
IF p_vendor_site_rec.ext_payee_rec.payer_org_type IS NOT NULL THEN
IBY_DISBURSEMENT_SETUP_PUB.Validate_External_Payee
( p_api_version => 1.0,
p_init_msg_list => FND_API.G_FALSE,
p_ext_payee_rec => p_vendor_site_rec.ext_payee_rec,
x_return_status => l_payee_return_status,
x_msg_count => l_payee_msg_count,
x_msg_data => l_payee_msg_data);
EXCEPTION
WHEN NO_DATA_FOUND THEN
x_valid := FALSE;
END;
Check_Valid_Location(
p_party_site_id => p_vendor_site_rec.party_site_id,
p_address_line1 => p_vendor_site_rec.address_line1,
p_address_line2 => p_vendor_site_rec.address_line2,
p_address_line3 => p_vendor_site_rec.address_line3,
p_address_line4 => p_vendor_site_rec.address_line4,
p_city => p_vendor_site_rec.city ,
p_state => p_vendor_site_rec.state ,
p_zip => p_vendor_site_rec.zip ,
p_province => p_vendor_site_rec.province ,
p_country => p_vendor_site_rec.country,
p_county => p_vendor_site_rec.county,
p_language => p_vendor_site_rec.language,
p_address_style => p_vendor_site_rec.address_style ,
p_vendor_id => p_vendor_site_rec.vendor_id,
x_location_id => l_location_id,
x_valid => x_valid,
x_loc_count => x_loc_count); -- Bug 7429668
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_MULTIPLE_ADDRESS',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
END IF;
ELSE
-- Bug 5584046 --
FND_MESSAGE.SET_NAME('SQLAP','AP_MULTIPLE_ADDRESS');
FND_MSG_PUB.ADD;
END IF; --import
ELSIF x_loc_count = 0 AND
p_vendor_site_rec.party_site_id IS NOT NULL THEN
-- We have to ensure that no new locations are created in this case.
x_location_valid := 'F';
x_return_status := FND_API.G_RET_STS_ERROR;
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INCONSISTENT_ADDRESS',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
END IF;
ELSE
-- Bug 5584046 --
FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_ADDRESS');
FND_MSG_PUB.ADD;
END IF; --import
-- Bug 7429668 End
ELSE
/*bug 5584046 Before calling the HZ api we need to ensure that
Country and address_line1 coulumns are not null*/
IF(p_vendor_site_rec.country IS NULL)
AND (NVL(G_Vendor_Type_Lookup_Code,'DUMMY') <> 'EMPLOYEE') THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_NULL_COUNTRY_NAME',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
END IF;
ELSE
-- Bug 5584046 --
FND_MESSAGE.SET_NAME('SQLAP','AP_NULL_COUNTRY_NAME');
FND_MSG_PUB.ADD;
END IF; --import
END IF;
IF(p_vendor_site_rec.address_line1 IS NULL)
AND (NVL(G_Vendor_Type_Lookup_Code,'DUMMY') <> 'EMPLOYEE') THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_NULL_ADDRESS_LINE1',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
||' ,Org_id: '||p_vendor_site_rec.org_id
||' ,Org_Name: '||p_vendor_site_rec.org_name);
END IF;
END IF;
ELSE
-- Bug 5584046
FND_MESSAGE.SET_NAME('SQLAP','AP_NULL_ADDRESS_LINE1');
FND_MSG_PUB.ADD;
END IF; --import
END IF;
--bug 5584046
END IF;
ELSE
--found valid matching location
x_location_valid := 'V';
p_vendor_site_rec.location_id := l_location_id;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate party_site_id';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Check for validity of party_site_id
--
------------------------------------------------------------------------
l_debug_info := 'Call to Validate primary_pay_site_flag unique per Vendor';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate primary_pay_site_flag - unique per vendor
--
Validate_unique_per_vendor('PRIMARY_PAY_SITE_FLAG',
p_vendor_site_rec.vendor_id,
p_vendor_site_id,
p_vendor_site_rec.org_id,
p_vendor_site_rec.org_name,
x_valid
);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INVALID_PRIM_PAY_SITE',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '||p_vendor_site_rec.vendor_site_interface_id
||' ,Vendor_Id: '||p_vendor_site_rec.vendor_id
||' ,Org_id: '||p_vendor_site_rec.org_id
||' ,Org_Name: '||p_vendor_site_rec.org_name);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PRIM_PAY_SITE');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate Country of Origin Code';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate pcard_site_flag';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate pcard_site_flag
--
IF p_vendor_site_rec.pcard_site_flag is NOT NULL THEN
------------------------------------------------------------------------
l_debug_info := 'Call to Validate Purchasing Site Flag';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate purchasing_site_flag
--
IF p_vendor_site_rec.purchasing_site_flag is NOT NULL THEN
------------------------------------------------------------------------
l_debug_info := 'Call to Validate rfq_only_site_flag';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate rfq_only_site_flag
--
IF p_vendor_site_rec.rfq_only_site_flag is NOT NULL THEN
------------------------------------------------------------------------
l_debug_info := 'Call to Validate pay_site_flag';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate pay_site_flag
--
IF p_vendor_site_rec.pay_site_flag is NOT NULL THEN
------------------------------------------------------------------------
l_debug_info := 'Call to Validate attention_ar_flag';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate attention_ar_flag
--
IF p_vendor_site_rec.attention_ar_flag is NOT NULL THEN
------------------------------------------------------------------------
l_debug_info := 'Call to Validate primary_pay_site_flag';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate primary_pay_site_flag
--
IF p_vendor_site_rec.primary_pay_site_flag is NOT NULL THEN
------------------------------------------------------------------------
l_debug_info := 'Call to Validate freight_terms_lookup_code';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate freight_terms_lookup_code
--
IF p_vendor_site_rec.freight_terms_lookup_code is NOT NULL THEN
Validate_Lookups( 'FREIGHT_TERMS_LOOKUP_CODE',
p_vendor_site_rec.freight_terms_lookup_code,'FREIGHT TERMS',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INVALID_FREIGHT_TERMS',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '
||p_vendor_site_rec.vendor_site_interface_id
||' ,Freight_Terms_Lookup_Code '
||p_vendor_site_rec.freight_terms_lookup_code);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_FREIGHT_TERMS');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate fob_lookup_code';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate fob_lookup_code
--
IF p_vendor_site_rec.fob_lookup_code is NOT NULL THEN
Validate_Lookups( 'FOB_LOOKUP_CODE',p_vendor_site_rec.fob_lookup_code,'FOB',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INVALID_FOB',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '
||p_vendor_site_rec.vendor_site_interface_id
||' ,Fob_Lookup_Code '
||p_vendor_site_rec.fob_lookup_code);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_FOB');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate pay_date_basis_lookup_code';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate pay_date_basis_lookup_code
--
IF p_vendor_site_rec.pay_date_basis_lookup_code is NOT NULL THEN
Validate_Lookups( 'PAY_DATE_BASIS_LOOKUP_CODE',
p_vendor_site_rec.pay_date_basis_lookup_code,'PAY DATE BASIS',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INVALID_PAY_DATE_BASIS',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '
||p_vendor_site_rec.vendor_site_interface_id
||' ,Pay_Date_Basis_Lookup_Code '
||p_vendor_site_rec.pay_date_basis_lookup_code);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_DATE_BASIS');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate pay_group_lookup_code';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate pay_group_lookup_code
--
IF p_vendor_site_rec.pay_group_lookup_code is NOT NULL THEN
Validate_Lookups( 'PAY_GROUP_LOOKUP_CODE',
p_vendor_site_rec.pay_group_lookup_code,'PAY GROUP',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INVALID_PAY_GROUP',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '
||p_vendor_site_rec.vendor_site_interface_id
||' ,Pay_Group_Lookup_Code '
||p_vendor_site_rec.pay_group_lookup_code);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_PAY_GROUP');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate terms_date_basis';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate terms_date_basis
--
IF p_vendor_site_rec.terms_date_basis is NOT NULL THEN
------------------------------------------------------------------------
l_debug_info := 'Call to Validate create_debit_memo_flag';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate create_debit_memo_flag
--
IF p_vendor_site_rec.create_debit_memo_flag is NOT NULL THEN
Validate_Lookups( 'CREATE_DEBIT_MEMO_FLAG',
p_vendor_site_rec.create_debit_memo_flag ,'YES/NO',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INVALID_DEBIT_MEMO',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '
||p_vendor_site_rec.vendor_site_interface_id
||' ,Create_Debit_Memo_Flag '
||p_vendor_site_rec.create_debit_memo_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_DEBIT_MEMO');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate exclude_freight_from_discount';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate exclude_freight_from_discount
--
IF p_vendor_site_rec.exclude_freight_from_discount is NOT NULL THEN
Validate_Lookups( 'EXCLUDE_FREIGHT_FROM_DISCOUNT',
p_vendor_site_rec.exclude_freight_from_discount ,'YES/NO',
'PO_LOOKUP_CODES',x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INVALID_EXC_FR_DISC',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '
||p_vendor_site_rec.vendor_site_interface_id
||' ,Exclude_Freight_From_Discount '
||p_vendor_site_rec.exclude_freight_from_discount);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_EXC_FR_DISC');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate hold_future_payments_flag';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate hold_future_payments_flag
--
IF p_vendor_site_rec.hold_future_payments_flag is NOT NULL THEN
Validate_Lookups('HOLD_FUTURE_PAYMENTS_FLAG',
p_vendor_site_rec.hold_future_payments_flag,'YES/NO',
'PO_LOOKUP_CODES', x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INVALID_HOLD_FUT_PAY',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '
||p_vendor_site_rec.vendor_site_interface_id
||' ,Hold_Future_Payments_Flag '
||p_vendor_site_rec.hold_future_payments_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_HOLD_FUT_PAY');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate hold_all_payments_flag';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate hold_all_payments_flag
--
IF p_vendor_site_rec.hold_all_payments_flag is NOT NULL THEN
Validate_Lookups('HOLD_ALL_PAYMENTS_FLAG', p_vendor_site_rec.hold_all_payments_flag,'YES/NO',
'PO_LOOKUP_CODES', x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INVALID_HOLD_ALL_PAY',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '
||p_vendor_site_rec.vendor_site_interface_id
||' ,Hold_All_Payments_Flag '
||p_vendor_site_rec.hold_all_payments_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_HOLD_ALL_PAY');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate always_take_disc_flag';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate always_take_disc_flag
--
IF p_vendor_site_rec.always_take_disc_flag is NOT NULL THEN
------------------------------------------------------------------------
l_debug_info := 'Call to Validate match_option';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate match_option
--
IF p_vendor_site_rec.match_option is NOT NULL THEN
Check_Valid_Match_Option(p_vendor_site_rec.match_option,
x_valid
);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INVALID_MATCH_OPTION',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '
||p_vendor_site_rec.vendor_site_interface_id
||' ,Match_Option '
||p_vendor_site_rec.match_option);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_MATCH_OPTION');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate allow_awt_flag';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate allow_awt_flag
--
IF p_vendor_site_rec.allow_awt_flag is NOT NULL THEN
Chk_allow_awt_flag(p_vendor_site_rec.allow_awt_flag,
p_vendor_site_rec.org_id,
x_valid
);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INVALID_ALLOW_AWT',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '
||p_vendor_site_rec.vendor_site_interface_id
||' ,Allow_Awt_Flag '
||p_vendor_site_rec.allow_awt_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_ALLOW_AWT');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate awt_group_id and awt_group_name';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate awt_group_id and awt_group_name
--
--Bug6317600 Added conditions to resolve the null case for AWT
--Do not call the AWT validation if AWT_FLAG is not 'Y'
IF ((p_vendor_site_rec.awt_group_id is NOT NULL AND
p_vendor_site_rec.awt_group_id <> ap_null_num)
or (p_vendor_site_rec.awt_group_name is NOT NULL AND
p_vendor_site_rec.awt_group_name <> ap_null_char)) AND
(p_vendor_site_rec.allow_awt_flag = 'Y') THEN
Chk_awt_grp_id_name(p_vendor_site_rec.awt_group_id,
p_vendor_site_rec.awt_group_name,
p_vendor_site_rec.allow_awt_flag,
x_valid
);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INCONSISTENT_AWT_GROUP',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '
||p_vendor_site_rec.vendor_site_interface_id
||' ,Allow_Awt_Flag '
||p_vendor_site_rec.allow_awt_flag
||' , Awt_Group_Id: '||p_vendor_site_rec.awt_group_id
||' ,Awt_Group_Name: '||p_vendor_site_rec.awt_group_name);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_AWT_GROUP');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate Distribution_set_Id and Distribution_set_name';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
Check_dist_set_id_name(p_vendor_site_rec.distribution_set_id,
p_vendor_site_rec.distribution_set_name,
p_vendor_site_rec.default_dist_set_id,
x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INCONSISTENT_DIST_SET',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '
||p_vendor_site_rec.vendor_site_interface_id
||' ,Distribution_Set_Id '
||p_vendor_site_rec.distribution_set_id
||' , Distribution_Set_Name: '
||p_vendor_site_rec.distribution_set_name
||' ,Default_Dist_Set_Id: '
||p_vendor_site_rec.default_dist_set_id);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_DIST_SET');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate Ship_to_location_Id and Ship_to_location_code`';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
Check_ship_locn_id_code(p_vendor_site_rec.ship_to_location_id,
p_vendor_site_rec.ship_to_location_code,
p_vendor_site_rec.default_ship_to_loc_id,
x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INCONSISTENT_SHIP_LOC',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '
||p_vendor_site_rec.vendor_site_interface_id
||' ,Ship_To_Location_Id '
||p_vendor_site_rec.ship_to_location_id
||' , Ship_To_Location_Code '
||p_vendor_site_rec.ship_to_location_code
||' ,Default_ship_to_loc_Id: '
||p_vendor_site_rec.default_ship_to_loc_id);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_SHIP_LOC');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate Bill_to_location_Id and Bill_to_location_code';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
Check_bill_locn_id_code(p_vendor_site_rec.bill_to_location_id,
p_vendor_site_rec.bill_to_location_code,
p_vendor_site_rec.default_bill_to_loc_id,
x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INCONSISTENT_BILL_LOC',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '
||p_vendor_site_rec.vendor_site_interface_id
||' ,Bill_To_Location_Id '
||p_vendor_site_rec.bill_to_location_id
||' , Bill_To_Location_Code '
||p_vendor_site_rec.bill_to_location_code
||' ,Default_bill_to_loc_Id: '
||p_vendor_site_rec.default_bill_to_loc_id);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_BILL_LOC');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate supplier_notification_method';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate supplier_notification_method
--
IF p_vendor_site_rec.supplier_notif_method is NOT NULL THEN
Check_Valid_Sup_Notif_Method(p_vendor_site_rec.supplier_notif_method,
x_valid
);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INVALID_NOTIF_METHOD',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '
||p_vendor_site_rec.vendor_site_interface_id
||' ,Supplier_Notif_Method: '
||p_vendor_site_rec.supplier_notif_method);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_NOTIF_METHOD');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Checking Tolerance_Id / Name information';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--bug6335105
/*IF (p_vendor_site_rec.tolerance_name is NOT NULL
OR p_vendor_site_rec.tolerance_id is NOT NULL) THEN*/
l_tolerance_type := 'QUANTITY';
Check_tolerance_id_code(p_vendor_site_rec.tolerance_id,
p_vendor_site_rec.tolerance_name,
p_vendor_site_rec.org_id,
p_vendor_site_rec.org_name,
x_valid,
l_tolerance_type
);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INCONSISTENT_TOLERANCE',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '
||p_vendor_site_rec.vendor_site_interface_id
||' ,Toleranace_Id: '
||p_vendor_site_rec.tolerance_id
||' ,Tolerance_Name: '||p_vendor_site_rec.tolerance_name);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_TOLERANCE');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
--END IF;
------------------------------------------------------------------------
l_debug_info := 'Checking Services Tolerance_Id / Name information';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--bug6335105
/*IF (p_vendor_site_rec.services_tolerance_name is NOT NULL
OR p_vendor_site_rec.services_tolerance_id is NOT NULL) THEN*/
l_tolerance_type := 'SERVICE';
Check_tolerance_id_code(p_vendor_site_rec.services_tolerance_id,
p_vendor_site_rec.services_tolerance_name,
p_vendor_site_rec.org_id,
p_vendor_site_rec.org_name,
x_valid,
l_tolerance_type
);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INCONSISTENT_SERVICE_TOL',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '
||p_vendor_site_rec.vendor_site_interface_id
||' ,Toleranace_Id: '
||p_vendor_site_rec.services_tolerance_id
||' ,Tolerance_Name: '||p_vendor_site_rec.services_tolerance_name);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSIS_SERVICE_TOL');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
--END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate retainage_rate';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INVALID_RETAINAGE_RATE',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '
||p_vendor_site_rec.vendor_site_interface_id
||' ,Retainage_Rate '
||p_vendor_site_rec.retainage_rate);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_RETAINAGE_RATE');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate ship_via_lookup_code';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate ship_via_lookup_code
--
IF p_vendor_site_rec.ship_via_lookup_code is NOT NULL THEN
Check_Site_Ship_Via(p_vendor_site_rec.ship_via_lookup_code,
p_vendor_site_rec.org_id,
x_valid
);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_INVALID_SHIP_VIA',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '
||p_vendor_site_rec.vendor_site_interface_id
||' ,Ship_Via_Lookup_Code: '
||p_vendor_site_rec.ship_via_lookup_code);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INVALID_SHIP_VIA');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate tax_reporting_site_flag';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--
-- Validate tax_reporting_site_flag
--
IF p_vendor_site_rec.tax_reporting_site_flag = 'Y' THEN
Validate_unique_per_vendor('TAX_REPORTING_SITE_FLAG',
p_vendor_site_rec.vendor_id,
p_vendor_site_rec.vendor_site_id,
p_vendor_site_rec.org_id,
p_vendor_site_rec.org_name,
x_valid
);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUPPLIER_SITES_INT',
p_vendor_site_rec.vendor_site_interface_id,
'AP_DUPLICATE_TAX_RS',
g_user_id,
g_login_id,
'Validate_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '
||p_vendor_site_rec.vendor_site_interface_id
||' Vendor_Id: '||p_vendor_site_rec.vendor_id
||' Vendor_Site_Id: '||p_vendor_site_rec.vendor_site_id
||' Org_Id: '||p_vendor_site_rec.org_id
||' Org_Name: '||p_vendor_site_rec.org_name
||' ,Tax_Reporting_Site_Flag: '
||p_vendor_site_rec.tax_reporting_site_flag);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_DUPLICATE_TAX_RS');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;
END IF;
END IF;
Check_Gapless_Inv_Num
(p_vendor_site_rec.gapless_inv_num_flag,
p_vendor_site_rec.selling_company_identifier,
p_vendor_site_rec.vendor_id,--Bug5260465
x_valid);
EXCEPTION
WHEN FND_API.G_EXC_ERROR THEN
ROLLBACK TO Validate_Vendor_Site_PUB;
x_return_status := FND_API.G_RET_STS_ERROR ;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
ROLLBACK TO Validate_Vendor_Site_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
WHEN OTHERS THEN
ROLLBACK TO Validate_Vendor_Site_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
IF FND_MSG_PUB.Check_Msg_Level
(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
FND_MSG_PUB.Add_Exc_Msg
( G_PKG_NAME ,
l_api_name
);
END IF;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
END Validate_Vendor_Site;
PROCEDURE Create_Vendor_Contact
( p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
p_commit IN VARCHAR2 := FND_API.G_FALSE,
p_validation_level IN NUMBER :=
FND_API.G_VALID_LEVEL_FULL,
x_return_status OUT NOCOPY VARCHAR2 ,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_vendor_contact_rec IN r_vendor_contact_rec_type,
x_vendor_contact_id OUT NOCOPY NUMBER,
x_per_party_id OUT NOCOPY NUMBER,
x_rel_party_id OUT NOCOPY NUMBER,
x_rel_id OUT NOCOPY NUMBER,
x_org_contact_id OUT NOCOPY NUMBER,
x_party_site_id OUT NOCOPY NUMBER
)
IS
l_def_org_id NUMBER;
l_vendor_contact_rec r_vendor_contact_rec_type;
l_party_rec HZ_PARTY_V2PUB.party_rec_type;
l_per_rec HZ_PARTY_V2PUB.person_rec_type;
l_rel_rec HZ_RELATIONSHIP_V2PUB.relationship_rec_type;
l_org_contact_rec HZ_PARTY_CONTACT_V2PUB.org_contact_rec_type;
l_party_site_rec HZ_PARTY_SITE_V2PUB.party_site_rec_type;
l_contact_point_rec HZ_CONTACT_POINT_V2PUB.contact_point_rec_type;
l_email_rec HZ_CONTACT_POINT_V2PUB.email_rec_type;
l_phone_rec HZ_CONTACT_POINT_V2PUB.phone_rec_type;
l_alt_phone_rec HZ_CONTACT_POINT_V2PUB.phone_rec_type;
l_fax_rec HZ_CONTACT_POINT_V2PUB.phone_rec_type;
l_url_rec HZ_CONTACT_POINT_V2PUB.web_rec_type;
l_party_usg_rec HZ_PARTY_USG_ASSIGNMENT_PVT.party_usg_assignment_rec_type;
l_val_return_status VARCHAR2(50);
l_val_msg_count NUMBER;
l_val_msg_data VARCHAR2(1000);
l_party_site_valid VARCHAR2(1);
l_rel_party_valid VARCHAR2(1);
l_per_party_valid VARCHAR2(1);
l_rel_valid VARCHAR2(1);
l_org_party_valid VARCHAR2(1);
l_location_valid VARCHAR2(1);
l_org_contact_valid VARCHAR2(1);
l_per_return_status VARCHAR2(50);
l_per_msg_count NUMBER;
l_per_msg_data VARCHAR2(1000);
l_per_party_id NUMBER;
l_per_party_number VARCHAR2(30);
l_per_profile_id NUMBER;
l_org_contact_return_status VARCHAR2(50);
l_org_contact_msg_count NUMBER;
l_org_contact_msg_data VARCHAR2(1000);
l_org_contact_id NUMBER;
l_rel_party_id NUMBER;
l_rel_party_number VARCHAR2(30);
l_site_return_status VARCHAR2(50);
l_site_msg_count NUMBER;
l_site_msg_data VARCHAR2(1000);
l_party_site_id NUMBER;
l_phone_return_status VARCHAR2(50);
l_phone_msg_count NUMBER;
l_phone_msg_data VARCHAR2(1000);
l_phone_contact_point_id NUMBER;
l_alt_phone_return_status VARCHAR2(50);
l_alt_phone_msg_count NUMBER;
l_alt_phone_msg_data VARCHAR2(1000);
l_alt_phone_contact_point_id NUMBER;
l_fax_return_status VARCHAR2(50);
l_fax_msg_count NUMBER;
l_fax_msg_data VARCHAR2(1000);
l_fax_contact_point_id NUMBER;
l_email_return_status VARCHAR2(50);
l_email_msg_count NUMBER;
l_email_msg_data VARCHAR2(1000);
l_email_contact_point_id NUMBER;
l_url_return_status VARCHAR2(50);
l_url_msg_count NUMBER;
l_url_msg_data VARCHAR2(1000);
l_url_contact_point_id NUMBER;
l_org_party_id NUMBER;
l_location_id NUMBER;
l_rel_id NUMBER;
l_party_id NUMBER;
l_party_number VARCHAR2(30);
l_party_site_number VARCHAR2(30);
l_party_num VARCHAR2(1);
l_debug_info VARCHAR2(500); -- Bug 6823885
l_party_site_num VARCHAR2(1); -- Bug 6823885
BEGIN
-- Standard Start of API savepoint
SAVEPOINT Create_Vendor_Contact_PUB;
-- API body
l_vendor_contact_rec := p_vendor_contact_rec;
l_per_rec.person_first_name := l_vendor_contact_rec.person_first_name;
l_per_rec.person_middle_name := l_vendor_contact_rec.person_middle_name;
l_per_rec.person_last_name := l_vendor_contact_rec.person_last_name;
l_per_rec.person_title := l_vendor_contact_rec.person_title;
l_per_rec.person_first_name_phonetic := l_vendor_contact_rec.person_first_name_phonetic;
l_per_rec.person_last_name_phonetic := l_vendor_contact_rec.person_last_name_phonetic;
l_per_rec.created_by_module := 'AP_SUPPLIERS_API';
l_per_rec.application_id := 200;
l_per_rec.attribute1 := l_vendor_contact_rec.attribute1;
l_per_rec.attribute2 := l_vendor_contact_rec.attribute2;
l_per_rec.attribute3 := l_vendor_contact_rec.attribute3;
l_per_rec.attribute4 := l_vendor_contact_rec.attribute4;
l_per_rec.attribute5 := l_vendor_contact_rec.attribute5;
l_per_rec.attribute6 := l_vendor_contact_rec.attribute6;
l_per_rec.attribute7 := l_vendor_contact_rec.attribute7;
l_per_rec.attribute8 := l_vendor_contact_rec.attribute8;
l_per_rec.attribute9 := l_vendor_contact_rec.attribute9;
l_per_rec.attribute10 := l_vendor_contact_rec.attribute10;
l_per_rec.attribute11 := l_vendor_contact_rec.attribute11;
l_per_rec.attribute12 := l_vendor_contact_rec.attribute12;
l_per_rec.attribute13 := l_vendor_contact_rec.attribute13;
l_per_rec.attribute14 := l_vendor_contact_rec.attribute14;
l_per_rec.attribute15 := l_vendor_contact_rec.attribute15;
l_per_rec.person_pre_name_adjunct := l_vendor_contact_rec.prefix;
l_per_rec.person_name_phonetic := l_vendor_contact_rec.contact_name_phonetic;
fnd_profile.get('HZ_GENERATE_PARTY_NUMBER', l_party_num);
IF nvl(l_party_num, 'Y') = 'N' THEN
SELECT HZ_PARTY_NUMBER_S.Nextval
INTO l_party_rec.party_number
FROM DUAL;
END IF;
l_per_rec.party_rec := l_party_rec;
hz_party_v2pub.create_person(
p_init_msg_list => FND_API.G_FALSE,
p_person_rec => l_per_rec,
p_party_usage_code => 'SUPPLIER_CONTACT',
--p_commit => FND_API.G_FALSE,
x_return_status => l_per_return_status,
x_msg_count => l_per_msg_count,
x_msg_data => l_per_msg_data,
x_party_id => l_per_party_id,
x_party_number => l_per_party_number,
x_profile_id => l_per_profile_id);
IF l_per_return_status <> FND_API.G_RET_STS_SUCCESS THEN
------------------------------------------------------------------------
l_debug_info := 'After call to hz_party_v2pub.create_person';
l_debug_info := l_debug_info||' Return status : '||l_per_return_status||' Error : '||l_per_msg_data;
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
END IF;
END IF;
l_vendor_contact_rec.per_party_id := l_per_party_id;
HZ_PARTY_USG_ASSIGNMENT_PVT.assign_party_usage(
p_init_msg_list => FND_API.G_FALSE,
p_party_usg_assignment_rec => l_party_usg_rec,
x_return_status => l_per_return_status,
x_msg_count => l_per_msg_count,
x_msg_data => l_per_msg_data);
*/
fnd_profile.get('HZ_GENERATE_PARTY_NUMBER', l_party_num);
IF nvl(l_party_num, 'Y') = 'N' THEN
SELECT HZ_PARTY_NUMBER_S.Nextval
INTO l_party_rec.party_number
FROM DUAL;
END IF;
l_rel_rec.party_rec := l_party_rec;
hz_party_contact_v2pub.create_org_contact(
p_init_msg_list => FND_API.G_FALSE,
p_org_contact_rec => l_org_contact_rec,
--p_commit => FND_API.G_FALSE,
x_return_status => l_org_contact_return_status,
x_msg_count => l_org_contact_msg_count,
x_msg_data => l_org_contact_msg_data,
x_org_contact_id => l_org_contact_id,
x_party_rel_id => l_rel_id,
x_party_id => l_rel_party_id,
x_party_number => l_rel_party_number);
IF l_org_contact_return_status <> FND_API.G_RET_STS_SUCCESS THEN
------------------------------------------------------------------------
l_debug_info := 'After call to hz_party_contact_v2pub.create_org_contact';
l_debug_info := l_debug_info||' Return status : '||l_org_contact_return_status||' Error : '||l_org_contact_msg_data;
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
END IF;
END IF;
l_vendor_contact_rec.relationship_id := l_rel_id;
l_vendor_contact_rec.rel_party_id := l_rel_party_id;
l_vendor_contact_rec.org_contact_id := l_org_contact_id;
hz_party_site_v2pub.create_party_site(
p_init_msg_list => FND_API.G_FALSE,
p_party_site_rec => l_party_site_rec,
--p_commit => FND_API.G_FALSE,
x_return_status => l_site_return_status,
x_msg_count => l_site_msg_count,
x_msg_data => l_site_msg_data,
x_party_site_id => l_party_site_id,
x_party_site_number => l_party_site_number);
IF l_site_return_status <> FND_API.G_RET_STS_SUCCESS THEN
------------------------------------------------------------------------
l_debug_info := 'After call to hz_party_site_v2pub.create_party_site';
l_debug_info := l_debug_info||' Return status : '||l_site_return_status||' Error : '||l_site_msg_data;
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
END IF;
END IF;
l_vendor_contact_rec.party_site_id := l_party_site_id;
l_contact_point_rec.contact_point_type := 'PHONE';
l_contact_point_rec.primary_flag := 'Y';
l_contact_point_rec.contact_point_purpose := 'BUSINESS';
l_contact_point_rec.primary_by_purpose := 'Y';
l_phone_rec.phone_area_code := l_vendor_contact_rec.area_code;
l_phone_rec.phone_number := l_vendor_contact_rec.phone;
--
-- Bug 5117377
-- Changed the phone line type to GEN.
--
l_phone_rec.phone_line_type := 'GEN';
hz_contact_point_v2pub.create_phone_contact_point(
p_init_msg_list => FND_API.G_FALSE,
p_contact_point_rec => l_contact_point_rec,
p_phone_rec => l_phone_rec,
--p_commit => FND_API.G_FALSE,
x_return_status => l_phone_return_status,
x_msg_count => l_phone_msg_count,
x_msg_data => l_phone_msg_data,
x_contact_point_id => l_phone_contact_point_id);
IF l_phone_return_status <> FND_API.G_RET_STS_SUCCESS THEN
------------------------------------------------------------------------
l_debug_info := 'After call to hz_contact_point_v2pub.create_phone_contact_point Primary Phone';
l_debug_info := l_debug_info||' Return status : '||l_phone_return_status||' Error : '||l_phone_msg_data;
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
END IF;
END IF;
l_contact_point_rec.contact_point_type := 'PHONE';
l_contact_point_rec.primary_flag := 'N';
l_contact_point_rec.contact_point_purpose := 'BUSINESS';
l_contact_point_rec.primary_by_purpose := 'N';
l_alt_phone_rec.phone_area_code := l_vendor_contact_rec.alt_area_code;
l_alt_phone_rec.phone_number := l_vendor_contact_rec.alt_phone;
--
-- Bug 5117377
-- Changed the phone line type to GEN.
--
l_alt_phone_rec.phone_line_type := 'GEN';
hz_contact_point_v2pub.create_phone_contact_point(
p_init_msg_list => FND_API.G_FALSE,
p_contact_point_rec => l_contact_point_rec,
p_phone_rec => l_alt_phone_rec,
--p_commit => FND_API.G_FALSE,
x_return_status => l_alt_phone_return_status,
x_msg_count => l_alt_phone_msg_count,
x_msg_data => l_alt_phone_msg_data,
x_contact_point_id => l_alt_phone_contact_point_id);
IF l_alt_phone_return_status <> FND_API.G_RET_STS_SUCCESS THEN
------------------------------------------------------------------------
l_debug_info := 'After call to hz_contact_point_v2pub.create_phone_contact_point Alt Phone';
l_debug_info := l_debug_info||' Return status : '||l_alt_phone_return_status||' Error : '||l_alt_phone_msg_data;
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
END IF;
END IF;
l_contact_point_rec.contact_point_type := 'PHONE';
l_contact_point_rec.primary_flag := 'N';
l_contact_point_rec.contact_point_purpose := 'BUSINESS';
l_contact_point_rec.primary_by_purpose := 'N';
l_fax_rec.phone_area_code := l_vendor_contact_rec.fax_area_code;
l_fax_rec.phone_number := l_vendor_contact_rec.fax_phone;
l_fax_rec.phone_line_type := 'FAX';
hz_contact_point_v2pub.create_phone_contact_point(
p_init_msg_list => FND_API.G_FALSE,
p_contact_point_rec => l_contact_point_rec,
p_phone_rec => l_fax_rec,
--p_commit => FND_API.G_FALSE,
x_return_status => l_fax_return_status,
x_msg_count => l_fax_msg_count,
x_msg_data => l_fax_msg_data,
x_contact_point_id => l_fax_contact_point_id);
IF l_fax_return_status <> FND_API.G_RET_STS_SUCCESS THEN
------------------------------------------------------------------------
l_debug_info := 'After call to hz_contact_point_v2pub.create_phone_contact_point Fax Phone';
l_debug_info := l_debug_info||' Return status : '||l_fax_return_status||' Error : '||l_fax_msg_data;
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
END IF;
END IF;
l_contact_point_rec.contact_point_type := 'EMAIL';
l_contact_point_rec.primary_flag := 'Y';
l_contact_point_rec.contact_point_purpose := 'BUSINESS';
l_contact_point_rec.primary_by_purpose := 'N';
l_email_rec.email_address := l_vendor_contact_rec.email_address;
hz_contact_point_v2pub.create_email_contact_point(
p_init_msg_list => FND_API.G_FALSE,
p_contact_point_rec => l_contact_point_rec,
p_email_rec => l_email_rec,
--p_commit => FND_API.G_FALSE,
x_return_status => l_email_return_status,
x_msg_count => l_email_msg_count,
x_msg_data => l_email_msg_data,
x_contact_point_id => l_email_contact_point_id);
IF l_email_return_status <> FND_API.G_RET_STS_SUCCESS THEN
------------------------------------------------------------------------
l_debug_info := 'After call to hz_contact_point_v2pub.create_email_contact_point';
l_debug_info := l_debug_info||' Return status : '||l_email_return_status||' Error : '||l_email_msg_data;
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
END IF;
END IF;
l_contact_point_rec.contact_point_type := 'WEB';
l_contact_point_rec.primary_flag := 'Y';
l_contact_point_rec.contact_point_purpose := 'HOMEPAGE'; --bug5875982
l_contact_point_rec.primary_by_purpose := 'N';
--Open Issue 5
l_url_rec.web_type := 'HTTP';
l_url_rec.url := l_vendor_contact_rec.url;
hz_contact_point_v2pub.create_web_contact_point(
p_init_msg_list => FND_API.G_FALSE,
p_contact_point_rec => l_contact_point_rec,
p_web_rec => l_url_rec,
--p_commit => FND_API.G_FALSE,
x_return_status => l_url_return_status,
x_msg_count => l_url_msg_count,
x_msg_data => l_url_msg_data,
x_contact_point_id => l_url_contact_point_id);
IF l_url_return_status <> FND_API.G_RET_STS_SUCCESS THEN
------------------------------------------------------------------------
l_debug_info := 'After call to hz_contact_point_v2pub.create_web_contact_point';
l_debug_info := l_debug_info||' Return status : '||l_url_return_status||' Error : '||l_url_msg_data;
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,l_debug_info);
END IF;
END IF;
SELECT po_vendor_contacts_s.nextval
INTO l_vendor_contact_rec.vendor_contact_id
FROM dual;
x_vendor_contact_id := l_vendor_contact_rec.vendor_contact_id;
x_per_party_id := l_vendor_contact_rec.per_party_id;
x_rel_party_id := l_vendor_contact_rec.rel_party_id;
x_rel_id := l_vendor_contact_rec.relationship_id;
x_org_contact_id := l_vendor_contact_rec.org_contact_id;
x_party_site_id := l_vendor_contact_rec.party_site_id;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
ELSE
x_return_status := FND_API.G_RET_STS_ERROR;
END IF;
EXCEPTION
WHEN FND_API.G_EXC_ERROR THEN
ROLLBACK TO Create_Vendor_Contact_PUB;
x_return_status := FND_API.G_RET_STS_ERROR ;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
ROLLBACK TO Create_Vendor_Contact_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
WHEN OTHERS THEN
ROLLBACK TO Create_Vendor_Contact_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
IF FND_MSG_PUB.Check_Msg_Level
(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
FND_MSG_PUB.Add_Exc_Msg
( G_PKG_NAME ,
l_api_name
);
END IF;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
END Create_Vendor_Contact;
PROCEDURE Update_Vendor_Contact
( p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
p_commit IN VARCHAR2 := FND_API.G_FALSE,
p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
p_vendor_contact_rec IN r_vendor_contact_rec_type,
x_return_status OUT NOCOPY VARCHAR2 ,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2
)
IS
l_api_name CONSTANT VARCHAR2(30) := 'Update_Vendor_Contact';
l_api_version CONSTANT NUMBER := 1.0;
BEGIN
-- Standard Start of API savepoint
SAVEPOINT Update_Vendor_Contact_PUB;
-- API body
ELSE
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
END IF;
EXCEPTION
WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
ROLLBACK TO Update_Vendor_Contact_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
WHEN OTHERS THEN
ROLLBACK TO Update_Vendor_Contact_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
IF FND_MSG_PUB.Check_Msg_Level
(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
FND_MSG_PUB.Add_Exc_Msg
( G_PKG_NAME ,
l_api_name
);
END IF;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
END Update_Vendor_Contact;
PROCEDURE Validate_Vendor_Contact
( p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
p_commit IN VARCHAR2 := FND_API.G_FALSE,
p_validation_level IN NUMBER :=
FND_API.G_VALID_LEVEL_FULL,
x_return_status OUT NOCOPY VARCHAR2 ,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2,
p_vendor_contact_rec IN OUT NOCOPY r_vendor_contact_rec_type,
x_rel_party_valid OUT NOCOPY VARCHAR2,
x_per_party_valid OUT NOCOPY VARCHAR2,
x_rel_valid OUT NOCOPY VARCHAR2,
x_org_party_id OUT NOCOPY NUMBER,
x_org_contact_valid OUT NOCOPY VARCHAR2,
x_location_id OUT NOCOPY NUMBER,
x_party_site_valid OUT NOCOPY VARCHAR2
)
IS
l_api_name CONSTANT VARCHAR2(30) := 'Validate_Vendor_Contact';
l_api_version CONSTANT NUMBER := 1.0;
l_def_org_id NUMBER;
l_debug_info VARCHAR2(2000);
x_valid BOOLEAN;
BEGIN
-- Bug 7013954 The validation logic is modified to accomodate the changes
-- related to contacts. The Contacts are now associated at Party Site/Address
-- or at Supplier level. Supplier Site level association is deprecated in R12.
-- Standard Start of API savepoint
SAVEPOINT Validate_Vendor_Contact_PUB;
-- API body
Check_org_id_name(p_vendor_contact_rec.org_id,
p_vendor_contact_rec.operating_unit_name,
'AP_SUP_SITE_CONTACT_INT',
p_vendor_contact_rec.vendor_contact_interface_id,
x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
END IF;
END IF;
SELECT party_site_id
INTO p_vendor_contact_rec.org_party_site_id
FROM po_vendor_sites
WHERE vendor_site_id = p_vendor_contact_rec.vendor_site_id;
END IF;
ELSIF (p_vendor_contact_rec.vendor_site_code IS NOT NULL AND
p_vendor_contact_rec.org_party_site_id IS NULL AND
p_vendor_contact_rec.PARTY_SITE_NAME IS NULL AND
(p_vendor_contact_rec.org_id IS NOT NULL OR
p_vendor_contact_rec.operating_unit_name IS NOT NULL))THEN
Check_Org_Id_Name_Site_Code(p_vendor_contact_rec.org_id,
p_vendor_contact_rec.operating_unit_name,
p_vendor_contact_rec.vendor_site_id,
p_vendor_contact_rec.vendor_site_code,
'AP_SUP_SITE_CONTACT_INT',
p_vendor_contact_rec.vendor_contact_interface_id,
x_valid);
IF NOT x_valid THEN
x_return_status := FND_API.G_RET_STS_ERROR;
END IF;
END IF;
END IF;
------------------------------------------------------------------------
l_debug_info := 'Call to Validate party_site_id';
------------------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
-- Check for validity of party_site_id
--
IF p_vendor_contact_rec.party_site_id IS NOT NULL THEN
Check_Valid_Party_Site_ID(p_vendor_contact_rec.party_site_id,
x_location_id,
x_valid);
x_valid := TRUE;
--set some values
IF p_vendor_contact_rec.org_party_site_id IS NOT NULL THEN
Check_Valid_Party_Site_ID(p_vendor_contact_rec.org_party_site_id,
x_location_id,
x_valid);
IF x_valid THEN
SELECT hps.party_id,
hps.location_id
INTO x_org_party_id,
x_location_id
FROM HZ_Party_Sites hps
WHERE hps.party_site_id =
p_vendor_contact_rec.org_party_site_id;
END if;
--open issue 12, no way to populate vendor_site_id
-- Bug 7013954
-- If the contact is to be created at supplier level then
-- party_site_id is null. We need to populate org_party_id
-- based on the vendor_id value. We should also set party_site_valid
-- variable as valid because there is no party site associated with the
-- contact and we should not create one in create_vendor_contact method.
ELSIF p_vendor_contact_rec.vendor_site_id IS NULL and
p_vendor_contact_rec.vendor_site_code IS NULL and
p_vendor_contact_rec.org_party_site_id IS NULL and
p_vendor_contact_rec.PARTY_SITE_NAME IS NULL and
p_vendor_contact_rec.vendor_id IS NOT NULL THEN
SELECT aps.party_id
INTO x_org_party_id
FROM AP_SUPPLIERS aps
WHERE aps.vendor_id = p_vendor_contact_rec.vendor_id;
x_party_site_valid := 'V';
x_valid := TRUE;
/*
-- new message
x_return_status := FND_API.G_RET_STS_ERROR;
-- Special logic for Import
IF g_source = 'IMPORT' THEN
IF (Insert_Rejections(
'AP_SUP_SITE_CONTACT_INT',
p_vendor_contact_rec.vendor_contact_interface_id,
'AP_INCONSISTENT_PARTY_SITE',
g_user_id,
g_login_id,
'Validate_Vendor_Contact') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Contact_Interface_Id: '||
p_vendor_contact_rec.vendor_contact_interface_id
||',Vendor_Site_Id: '||p_vendor_contact_rec.vendor_site_id
||', Org_Party_Site_Id: '||p_vendor_contact_rec.org_party_site_id);
END IF;
END IF;
ELSE
-- Bug 5491139 hkaniven start --
FND_MESSAGE.SET_NAME('SQLAP','AP_INCONSISTENT_PARTY_SITE');
FND_MSG_PUB.ADD;
-- Bug 5491139 hkaniven end --
END IF;*/
END IF;
-----------------------------------------------------------------------
l_debug_info := 'Call to Validate rel_party_id';
--------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
--------------------------------------------------------------
l_debug_info := 'Call to Validate relationship_id';
--------------------------------------------------------------
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||
l_api_name,l_debug_info);
END IF;
Check_Valid_Relationship_ID(p_vendor_contact_rec.relationship_id,
x_valid);
Check_Valid_Org_Contact_ID(p_vendor_contact_rec.org_contact_id,
x_valid);
EXCEPTION
WHEN FND_API.G_EXC_ERROR THEN
ROLLBACK TO Validate_Vendor_Contact_PUB;
x_return_status := FND_API.G_RET_STS_ERROR ;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
ROLLBACK TO Validate_Vendor_Contact_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
WHEN OTHERS THEN
ROLLBACK TO Validate_Vendor_Contact_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
IF FND_MSG_PUB.Check_Msg_Level
(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
FND_MSG_PUB.Add_Exc_Msg
( G_PKG_NAME ,
l_api_name
);
END IF;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
END Validate_Vendor_Contact;
PROCEDURE Import_Vendors
( p_api_version IN NUMBER,
p_source IN VARCHAR2 DEFAULT 'IMPORT',
p_what_to_import IN VARCHAR2 DEFAULT NULL,
p_commit_size IN NUMBER DEFAULT 1000,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2
)
IS
l_return_status VARCHAR2(2000);
l_msg_count NUMBER;
l_msg_data VARCHAR2(2000);
l_vendor_id NUMBER;
l_party_id NUMBER;
CURSOR vendor_int_cur IS
SELECT *
FROM Ap_Suppliers_Int
WHERE import_request_id = l_request_id
AND vendor_interface_id IS NOT NULL
ORDER BY segment1;
vendor_int_rec vendor_int_cur%ROWTYPE;
vendor_rec r_vendor_rec_type;
l_ext_payee_id NUMBER;
l_bank_acct_id NUMBER;
BEGIN
FND_MSG_PUB.initialize;
g_user_id := FND_GLOBAL.USER_ID;
g_login_id := FND_GLOBAL.LOGIN_ID;
g_source := p_source;
-- Initialize API return status to success
x_return_status := FND_API.G_RET_STS_SUCCESS;
-- API body
UPDATE Ap_Suppliers_Int
SET import_request_id = l_request_id
WHERE import_request_id IS NULL AND
((p_what_to_import = 'ALL' AND nvl(status,'NEW') in ('NEW', 'REJECTED')) OR
(p_what_to_import = 'NEW' AND nvl(status,'NEW') = 'NEW') OR
(p_what_to_import = 'REJECTED' AND nvl(status,'NEW') = 'REJECTED'));
COMMIT;
vendor_rec.vendor_interface_id := vendor_int_rec.vendor_interface_id;
vendor_rec.vendor_name := vendor_int_rec.vendor_name;
vendor_rec.segment1 := vendor_int_rec.segment1;
vendor_rec.vendor_name_alt := vendor_int_rec.vendor_name_alt;
vendor_rec.summary_flag := vendor_int_rec.summary_flag;
vendor_rec.enabled_flag := vendor_int_rec.enabled_flag;
vendor_rec.employee_id := vendor_int_rec.employee_id;
vendor_rec.vendor_type_lookup_code := vendor_int_rec.vendor_type_lookup_code;
vendor_rec.customer_num := vendor_int_rec.customer_num;
vendor_rec.one_time_flag := vendor_int_rec.one_time_flag;
vendor_rec.min_order_amount := vendor_int_rec.min_order_amount;
vendor_rec.terms_id := vendor_int_rec.terms_id;
vendor_rec.terms_name := vendor_int_rec.terms_name;
vendor_rec.set_of_books_id := vendor_int_rec.set_of_books_id;
vendor_rec.always_take_disc_flag := vendor_int_rec.always_take_disc_flag;
vendor_rec.pay_date_basis_lookup_code := vendor_int_rec.pay_date_basis_lookup_code;
vendor_rec.pay_group_lookup_code := vendor_int_rec.pay_group_lookup_code;
vendor_rec.payment_priority := vendor_int_rec.payment_priority;
vendor_rec.invoice_currency_code := vendor_int_rec.invoice_currency_code;
vendor_rec.payment_currency_code := vendor_int_rec.payment_currency_code;
vendor_rec.invoice_amount_limit := vendor_int_rec.invoice_amount_limit;
vendor_rec.hold_all_payments_flag := vendor_int_rec.hold_all_payments_flag;
vendor_rec.hold_future_payments_flag := vendor_int_rec.hold_future_payments_flag;
vendor_rec.hold_reason := vendor_int_rec.hold_reason;
vendor_rec.jgzz_fiscal_code := vendor_int_rec.num_1099;--bug6050423
vendor_rec.type_1099 := vendor_int_rec.type_1099;
vendor_rec.organization_type_lookup_code :=
vendor_int_rec.organization_type_lookup_code;
vendor_rec.start_date_active := vendor_int_rec.start_date_active;
vendor_rec.end_date_active := vendor_int_rec.end_date_active;
vendor_rec.minority_group_lookup_code := vendor_int_rec.minority_group_lookup_code;
vendor_rec.women_owned_flag := vendor_int_rec.women_owned_flag;
vendor_rec.small_business_flag := vendor_int_rec.small_business_flag;
vendor_rec.SIC_Code := vendor_int_rec.standard_industry_class;
vendor_rec.hold_flag := vendor_int_rec.hold_flag;
vendor_rec.purchasing_hold_reason := vendor_int_rec.purchasing_hold_reason;
vendor_rec.hold_by := vendor_int_rec.hold_by;
vendor_rec.hold_date := vendor_int_rec.hold_date;
vendor_rec.terms_date_basis := vendor_int_rec.terms_date_basis;
vendor_rec.inspection_required_flag := vendor_int_rec.inspection_required_flag;
vendor_rec.receipt_required_flag := vendor_int_rec.receipt_required_flag;
vendor_rec.qty_rcv_tolerance := vendor_int_rec.qty_rcv_tolerance;
vendor_rec.qty_rcv_exception_code := vendor_int_rec.qty_rcv_exception_code;
vendor_rec.enforce_ship_to_location_code :=
vendor_int_rec.enforce_ship_to_location_code;
vendor_rec.days_early_receipt_allowed := vendor_int_rec.days_early_receipt_allowed;
vendor_rec.days_late_receipt_allowed := vendor_int_rec.days_late_receipt_allowed;
vendor_rec.receipt_days_exception_code := vendor_int_rec.receipt_days_exception_code;
vendor_rec.receiving_routing_id := vendor_int_rec.receiving_routing_id;
vendor_rec.allow_substitute_receipts_flag :=
vendor_int_rec.allow_substitute_receipts_flag;
vendor_rec.allow_unordered_receipts_flag :=
vendor_int_rec.allow_unordered_receipts_flag;
vendor_rec.hold_unmatched_invoices_flag :=
vendor_int_rec.hold_unmatched_invoices_flag;
vendor_rec.tax_verification_date := vendor_int_rec.tax_verification_date;
vendor_rec.name_control := vendor_int_rec.name_control;
vendor_rec.state_reportable_flag := vendor_int_rec.state_reportable_flag;
vendor_rec.federal_reportable_flag := vendor_int_rec.federal_reportable_flag;
vendor_rec.attribute_category := vendor_int_rec.attribute_category;
vendor_rec.attribute1 := vendor_int_rec.attribute1;
vendor_rec.attribute2 := vendor_int_rec.attribute2;
vendor_rec.attribute3 := vendor_int_rec.attribute3;
vendor_rec.attribute4 := vendor_int_rec.attribute4;
vendor_rec.attribute5 := vendor_int_rec.attribute5;
vendor_rec.attribute6 := vendor_int_rec.attribute6;
vendor_rec.attribute7 := vendor_int_rec.attribute7;
vendor_rec.attribute8 := vendor_int_rec.attribute8;
vendor_rec.attribute9 := vendor_int_rec.attribute9;
vendor_rec.attribute10 := vendor_int_rec.attribute10;
vendor_rec.attribute11 := vendor_int_rec.attribute11;
vendor_rec.attribute12 := vendor_int_rec.attribute12;
vendor_rec.attribute13 := vendor_int_rec.attribute13;
vendor_rec.attribute14 := vendor_int_rec.attribute14;
vendor_rec.attribute15 := vendor_int_rec.attribute15;
vendor_rec.auto_calculate_interest_flag :=
vendor_int_rec.auto_calculate_interest_flag;
vendor_rec.exclude_freight_from_discount :=
vendor_int_rec.exclude_freight_from_discount;
vendor_rec.tax_reporting_name := vendor_int_rec.tax_reporting_name;
vendor_rec.allow_awt_flag := vendor_int_rec.allow_awt_flag;
vendor_rec.awt_group_id := vendor_int_rec.awt_group_id;
vendor_rec.awt_group_name := vendor_int_rec.awt_group_name;
vendor_rec.global_attribute1 := vendor_int_rec.global_attribute1;
vendor_rec.global_attribute2 := vendor_int_rec.global_attribute2;
vendor_rec.global_attribute3 := vendor_int_rec.global_attribute3;
vendor_rec.global_attribute4 := vendor_int_rec.global_attribute4;
vendor_rec.global_attribute5 := vendor_int_rec.global_attribute5;
vendor_rec.global_attribute6 := vendor_int_rec.global_attribute6;
vendor_rec.global_attribute7 := vendor_int_rec.global_attribute7;
vendor_rec.global_attribute8 := vendor_int_rec.global_attribute8;
vendor_rec.global_attribute9 := vendor_int_rec.global_attribute9;
vendor_rec.global_attribute10 := vendor_int_rec.global_attribute10;
vendor_rec.global_attribute11 := vendor_int_rec.global_attribute11;
vendor_rec.global_attribute12 := vendor_int_rec.global_attribute12;
vendor_rec.global_attribute13 := vendor_int_rec.global_attribute13;
vendor_rec.global_attribute14 := vendor_int_rec.global_attribute14;
vendor_rec.global_attribute15 := vendor_int_rec.global_attribute15;
vendor_rec.global_attribute16 := vendor_int_rec.global_attribute16;
vendor_rec.global_attribute17 := vendor_int_rec.global_attribute17;
vendor_rec.global_attribute18 := vendor_int_rec.global_attribute18;
vendor_rec.global_attribute19 := vendor_int_rec.global_attribute19;
vendor_rec.global_attribute20 := vendor_int_rec.global_attribute20;
vendor_rec.global_attribute_category := vendor_int_rec.global_attribute_category;
vendor_rec.bank_charge_bearer := vendor_int_rec.bank_charge_bearer;
vendor_rec.match_option := vendor_int_rec.match_option;
vendor_rec.create_debit_memo_flag := vendor_int_rec.create_debit_memo_flag;
vendor_rec.tax_reference := vendor_int_rec.vat_registration_num; --bug6070735
ext_payee_rec.payment_function := 'PAYABLES_DISB';
ext_payee_rec.payer_org_type := 'OPERATING_UNIT';
ext_payee_rec.exclusive_pay_flag :=NVL(vendor_int_rec.exclusive_payment_flag,'N');
--bug6495364
--CD
ext_payee_rec.default_pmt_method := vendor_int_rec.payment_method_lookup_code;
ext_payee_rec.ece_tp_loc_code := vendor_int_rec.ece_tp_location_code;
ext_payee_rec.bank_charge_bearer := vendor_int_rec.iby_bank_charge_bearer;
ext_payee_rec.bank_instr1_code := vendor_int_rec.bank_instruction1_code;
ext_payee_rec.bank_instr2_code := vendor_int_rec.bank_instruction2_code;
ext_payee_rec.bank_instr_detail := vendor_int_rec.bank_instruction_details;
ext_payee_rec.pay_reason_code := vendor_int_rec.payment_reason_code;
ext_payee_rec.pay_reason_com := vendor_int_rec.payment_reason_comments;
ext_payee_rec.pay_message1 := vendor_int_rec.payment_text_message1;
ext_payee_rec.pay_message2 := vendor_int_rec.payment_text_message2;
ext_payee_rec.pay_message3 := vendor_int_rec.payment_text_message3;
ext_payee_rec.delivery_channel := vendor_int_rec.delivery_channel_code;
ext_payee_rec.pmt_format := vendor_int_rec.payment_format_code;
ext_payee_rec.settlement_priority := vendor_int_rec.settlement_priority;
-- Bug 7437549 Start
-- Note that we must populate these EDI related fields only to ext_payee_rec
-- Because only this record is passed for call to IBY. There is no need
-- to populate vendor_rec.ext_payee_rec. Even if we pass it wont be used.
ext_payee_rec.edi_payment_format := vendor_int_rec.edi_payment_format;
ext_payee_rec.edi_transaction_handling := vendor_int_rec.edi_transaction_handling;
ext_payee_rec.edi_payment_method := vendor_int_rec.edi_payment_method;
ext_payee_rec.edi_remittance_method := vendor_int_rec.edi_remittance_method;
ext_payee_rec.edi_remittance_instruction := vendor_int_rec.edi_remittance_instruction;
-- Bug 7437549 End
--6458813 Populating the ext_payee_rec of Vendor_rec
vendor_rec.ext_payee_rec.default_pmt_method := vendor_int_rec.payment_method_lookup_code;
--bug6495364
vendor_rec.ext_payee_rec.payment_function := 'PAYABLES_DISB';
vendor_rec.ext_payee_rec.payer_org_type := 'OPERATING_UNIT';
vendor_rec.ext_payee_rec.exclusive_pay_flag := nvl(vendor_int_rec.exclusive_payment_flag,'N');
vendor_rec.ext_payee_rec.ece_tp_loc_code := vendor_int_rec.ece_tp_location_code;
vendor_rec.ext_payee_rec.bank_charge_bearer := vendor_int_rec.iby_bank_charge_bearer;
vendor_rec.ext_payee_rec.bank_instr1_code := vendor_int_rec.bank_instruction1_code;
vendor_rec.ext_payee_rec.bank_instr2_code := vendor_int_rec.bank_instruction2_code;
vendor_rec.ext_payee_rec.bank_instr_detail := vendor_int_rec.bank_instruction_details;
vendor_rec.ext_payee_rec.pay_reason_code := vendor_int_rec.payment_reason_code;
vendor_rec.ext_payee_rec.pay_reason_com := vendor_int_rec.payment_reason_comments;
vendor_rec.ext_payee_rec.pay_message1 := vendor_int_rec.payment_text_message1;
vendor_rec.ext_payee_rec.pay_message2 := vendor_int_rec.payment_text_message2;
vendor_rec.ext_payee_rec.pay_message3 := vendor_int_rec.payment_text_message3;
vendor_rec.ext_payee_rec.delivery_channel := vendor_int_rec.delivery_channel_code;
vendor_rec.ext_payee_rec.pmt_format := vendor_int_rec.payment_format_code;
vendor_rec.ext_payee_rec.settlement_priority := vendor_int_rec.settlement_priority;
-- 6458813 ends
Create_Vendor
( 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,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
p_vendor_rec => vendor_rec,
x_vendor_id => l_vendor_id,
x_party_id => l_party_id);
UPDATE Ap_Suppliers_Int
SET status = 'PROCESSED'
WHERE vendor_interface_id = vendor_rec.vendor_interface_id;
UPDATE Ap_Supplier_Sites_Int
SET vendor_id = l_vendor_id
WHERE vendor_interface_id = vendor_rec.vendor_interface_id;
UPDATE Ap_Sup_Site_Contact_Int
SET vendor_id = l_vendor_id
WHERE vendor_interface_id = vendor_rec.vendor_interface_id;
ext_payee_rec.payee_party_id := l_party_id;
UPDATE IBY_TEMP_EXT_BANK_ACCTS
SET ext_payee_id = l_ext_payee_id
,account_owner_party_id = l_party_id -- bug 6753331
WHERE calling_app_unique_ref1 = vendor_rec.vendor_interface_id;
FETCH iby_ext_accts_cur
INTO l_temp_ext_acct_id;
EXIT WHEN iby_ext_accts_cur%NOTFOUND;
ELSE
UPDATE iby_temp_ext_bank_accts
SET status = 'REJECTED'
WHERE temp_ext_bank_acct_id = l_temp_ext_acct_id;
IF (Insert_Rejections(
'IBY_TEMP_EXT_BANK_ACCTS',
vendor_rec.vendor_interface_id,
'AP_BANK_ACCT_CREATION',
g_user_id,
g_login_id,
'Import_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_MSG_PUB.Count_And_Get(
p_count => l_msg_count,
p_data => l_msg_data);
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id: '||vendor_rec.vendor_interface_id
||' Acct Validation Msg: '||l_msg_data);
END IF;
END IF;
ELSE
UPDATE iby_temp_ext_bank_accts
SET status = 'REJECTED'
WHERE temp_ext_bank_acct_id = l_temp_ext_acct_id;
IF (Insert_Rejections(
'IBY_TEMP_EXT_BANK_ACCTS',
vendor_rec.vendor_interface_id,
'AP_INVALID_BANK_ACCT_INFO',
g_user_id,
g_login_id,
'Import_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_MSG_PUB.Count_And_Get(
p_count => l_msg_count,
p_data => l_msg_data);
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id: '||vendor_rec.vendor_interface_id
||' Acct Validation Msg: '||l_msg_data);
END IF;
END IF;
END LOOP;
CLOSE iby_ext_accts_cur;
ELSE
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
vendor_rec.vendor_interface_id,
'AP_PAYEE_CREATION',
g_user_id,
g_login_id,
'Import_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_MSG_PUB.Count_And_Get(
p_count => l_msg_count,
p_data => l_msg_data);
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id: '||vendor_rec.vendor_interface_id
||' Payee Validation Msg: '||l_msg_data);
END IF;
END IF;
ELSE
IF (Insert_Rejections(
'AP_SUPPLIERS_INT',
vendor_rec.vendor_interface_id,
'AP_INVALID_PAYEE',
g_user_id,
g_login_id,
'Import_Vendor') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_MSG_PUB.Count_And_Get(
p_count => l_msg_count,
p_data => l_msg_data);
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Interface_Id: '||vendor_rec.vendor_interface_id
||' Payee Validation Msg: '||l_msg_data);
END IF;
END IF;
ELSE
UPDATE Ap_Suppliers_Int
SET status = 'REJECTED'
WHERE vendor_interface_id = vendor_rec.vendor_interface_id;
END LOOP;
CLOSE vendor_int_cur;
END IF;
-- End of API body.
COMMIT WORK;
EXCEPTION
WHEN FND_API.G_EXC_ERROR THEN
ROLLBACK TO Import_Vendor_PUB;
x_return_status := FND_API.G_RET_STS_ERROR ;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
ROLLBACK TO Import_Vendor_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
WHEN OTHERS THEN
ROLLBACK TO Import_Vendor_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
IF FND_MSG_PUB.Check_Msg_Level
(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
FND_MSG_PUB.Add_Exc_Msg
( G_PKG_NAME,
l_api_name
);
END IF;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
END Import_Vendors;
PROCEDURE Import_Vendor_Sites
( p_api_version IN NUMBER,
p_source IN VARCHAR2 DEFAULT 'IMPORT',
p_what_to_import IN VARCHAR2 DEFAULT NULL,
p_commit_size IN NUMBER DEFAULT 1000,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2
)
IS
l_return_status VARCHAR2(2000);
l_msg_count NUMBER;
l_msg_data VARCHAR2(2000);
l_vendor_site_id NUMBER;
l_party_site_id NUMBER;
l_location_id NUMBER;
CURSOR site_int_cur IS
SELECT *
FROM Ap_Supplier_Sites_Int
WHERE import_request_id = l_request_id
AND (org_id IS NOT NULL OR operating_unit_name IS NOT NULL)
AND vendor_id IS NOT NULL;
site_int_rec site_int_cur%ROWTYPE;
site_rec r_vendor_site_rec_type;
l_party_id NUMBER;
l_ext_payee_id NUMBER;
l_bank_acct_id NUMBER;
BEGIN
FND_MSG_PUB.initialize;
g_user_id := FND_GLOBAL.USER_ID;
g_login_id := FND_GLOBAL.LOGIN_ID;
g_source := p_source;
-- Initialize API return status to success
x_return_status := FND_API.G_RET_STS_SUCCESS;
-- API body
UPDATE Ap_Supplier_Sites_Int
SET import_request_id = l_request_id
WHERE import_request_id IS NULL AND
((p_what_to_import = 'ALL' AND nvl(status,'NEW') in ('NEW', 'REJECTED')) OR
(p_what_to_import = 'NEW' AND nvl(status,'NEW') = 'NEW') OR
(p_what_to_import = 'REJECTED' AND nvl(status,'NEW') = 'REJECTED'));
UPDATE Ap_Supplier_Sites_Int
SET status = 'REJECTED',
import_request_id = l_request_id
WHERE (operating_unit_name IS NULL AND org_id IS NULL) OR
vendor_id IS NULL ;
--bug 5584046
INSERT INTO Ap_Supplier_Int_Rejections
(SELECT 'AP_SUPPLIER_SITES_INT',vendor_site_interface_id,'AP_ORG_INFO_NULL',
g_user_id,SYSDATE,g_login_id,g_user_id,SYSDATE
FROM Ap_Supplier_Sites_Int
WHERE STATUS='REJECTED'
AND import_request_id=l_request_id
AND (operating_unit_name IS NULL and org_id IS NULL))
UNION
select 'AP_SUPPLIER_SITES_INT',vendor_site_interface_id,'AP_VENDOR_ID_NULL',
g_user_id,SYSDATE,g_login_id,g_user_id,SYSDATE
from Ap_Supplier_Sites_Int
where status='REJECTED'
AND import_request_id=l_request_id
AND vendor_id IS NULL;
--bug 5584046
COMMIT;
FETCH site_int_cur
INTO site_int_rec;
EXIT WHEN site_int_cur%NOTFOUND;
site_rec.vendor_site_interface_id := site_int_rec.vendor_site_interface_id;
site_rec.vendor_interface_id := site_int_rec.vendor_interface_id;
site_rec.vendor_id := site_int_rec.vendor_id;
site_rec.vendor_site_code := site_int_rec.vendor_site_code;
site_rec.vendor_site_code_alt := site_int_rec.vendor_site_code_alt;
site_rec.purchasing_site_flag := site_int_rec.purchasing_site_flag;
site_rec.rfq_only_site_flag := site_int_rec.rfq_only_site_flag;
site_rec.pay_site_flag := site_int_rec.pay_site_flag;
site_rec.attention_ar_flag := site_int_rec.attention_ar_flag;
/* Bug 6620831. Trimming Trailing Spaces for address related fields */
site_rec.address_line1 := rtrim(site_int_rec.address_line1);
site_rec.address_lines_alt := rtrim(site_int_rec.address_lines_alt);
site_rec.address_line2 := rtrim(site_int_rec.address_line2);
site_rec.address_line3 := rtrim(site_int_rec.address_line3);
site_rec.city := rtrim(site_int_rec.city);
site_rec.state := rtrim(site_int_rec.state);
site_rec.zip := site_int_rec.zip;
site_rec.province := site_int_rec.province;
site_rec.country := site_int_rec.country;
site_rec.phone := site_int_rec.phone;
site_rec.area_code := site_int_rec.area_code;
site_rec.customer_num := site_int_rec.customer_num;
site_rec.ship_to_location_id := site_int_rec.ship_to_location_id;
site_rec.ship_to_location_code := site_int_rec.ship_to_location_code;
site_rec.bill_to_location_id := site_int_rec.bill_to_location_id;
site_rec.bill_to_location_code := site_int_rec.bill_to_location_code;
site_rec.ship_via_lookup_code := site_int_rec.ship_via_lookup_code;
site_rec.freight_terms_lookup_code := site_int_rec.freight_terms_lookup_code;
site_rec.fob_lookup_code := site_int_rec.fob_lookup_code;
site_rec.inactive_date := site_int_rec.inactive_date;
site_rec.fax := site_int_rec.fax;
site_rec.fax_area_code := site_int_rec.fax_area_code;
site_rec.telex := site_int_rec.telex;
site_rec.terms_date_basis := site_int_rec.terms_date_basis;
site_rec.distribution_set_id := site_int_rec.distribution_set_id;
site_rec.distribution_set_name := site_int_rec.distribution_set_name;
site_rec.accts_pay_code_combination_id :=
site_int_rec.accts_pay_code_combination_id;
site_rec.prepay_code_combination_id := site_int_rec.prepay_code_combination_id;
site_rec.pay_group_lookup_code := site_int_rec.pay_group_lookup_code;
site_rec.payment_priority := site_int_rec.payment_priority;
site_rec.terms_id := site_int_rec.terms_id;
site_rec.terms_name := site_int_rec.terms_name;
/* Added for bug#7363316 Start */
site_rec.tolerance_id := site_int_rec.tolerance_id;
site_rec.tolerance_name := site_int_rec.tolerance_name;
/* Added for bug#7363316 End */
site_rec.invoice_amount_limit := site_int_rec.invoice_amount_limit;
site_rec.pay_date_basis_lookup_code := site_int_rec.pay_date_basis_lookup_code;
site_rec.always_take_disc_flag := site_int_rec.always_take_disc_flag;
site_rec.invoice_currency_code := site_int_rec.invoice_currency_code;
site_rec.payment_currency_code := site_int_rec.payment_currency_code;
site_rec.hold_all_payments_flag := site_int_rec.hold_all_payments_flag;
site_rec.hold_future_payments_flag := site_int_rec.hold_future_payments_flag;
site_rec.hold_reason := site_int_rec.hold_reason;
site_rec.hold_unmatched_invoices_flag := site_int_rec.hold_unmatched_invoices_flag;
site_rec.tax_reporting_site_flag := site_int_rec.tax_reporting_site_flag;
site_rec.attribute_category := site_int_rec.attribute_category;
site_rec.attribute1 := site_int_rec.attribute1;
site_rec.attribute2 := site_int_rec.attribute2;
site_rec.attribute3 := site_int_rec.attribute3;
site_rec.attribute4 := site_int_rec.attribute4;
site_rec.attribute5 := site_int_rec.attribute5;
site_rec.attribute6 := site_int_rec.attribute6;
site_rec.attribute7 := site_int_rec.attribute7;
site_rec.attribute8 := site_int_rec.attribute8;
site_rec.attribute9 := site_int_rec.attribute9;
site_rec.attribute10 := site_int_rec.attribute10;
site_rec.attribute11 := site_int_rec.attribute11;
site_rec.attribute12 := site_int_rec.attribute12;
site_rec.attribute13 := site_int_rec.attribute13;
site_rec.attribute14 := site_int_rec.attribute14;
site_rec.attribute15 := site_int_rec.attribute15;
site_rec.exclude_freight_from_discount:= site_int_rec.exclude_freight_from_discount;
site_rec.org_id := site_int_rec.org_id;
site_rec.org_name := site_int_rec.operating_unit_name;
site_rec.address_line4 := rtrim(site_int_rec.address_line4);
site_rec.county := site_int_rec.county;
site_rec.address_style := site_int_rec.address_style;
site_rec.language := site_int_rec.language;
site_rec.allow_awt_flag := site_int_rec.allow_awt_flag;
site_rec.awt_group_id := site_int_rec.awt_group_id;
site_rec.awt_group_name := site_int_rec.awt_group_name;
site_rec.global_attribute1 := site_int_rec.global_attribute1;
site_rec.global_attribute2 := site_int_rec.global_attribute2;
site_rec.global_attribute3 := site_int_rec.global_attribute3;
site_rec.global_attribute4 := site_int_rec.global_attribute4;
site_rec.global_attribute5 := site_int_rec.global_attribute5;
site_rec.global_attribute6 := site_int_rec.global_attribute6;
site_rec.global_attribute7 := site_int_rec.global_attribute7;
site_rec.global_attribute8 := site_int_rec.global_attribute8;
site_rec.global_attribute9 := site_int_rec.global_attribute9;
site_rec.global_attribute10 := site_int_rec.global_attribute10;
site_rec.global_attribute11 := site_int_rec.global_attribute11;
site_rec.global_attribute12 := site_int_rec.global_attribute12;
site_rec.global_attribute13 := site_int_rec.global_attribute13;
site_rec.global_attribute14 := site_int_rec.global_attribute14;
site_rec.global_attribute15 := site_int_rec.global_attribute15;
site_rec.global_attribute16 := site_int_rec.global_attribute16;
site_rec.global_attribute17 := site_int_rec.global_attribute17;
site_rec.global_attribute18 := site_int_rec.global_attribute18;
site_rec.global_attribute19 := site_int_rec.global_attribute19;
site_rec.global_attribute20 := site_int_rec.global_attribute20;
site_rec.global_attribute_category := site_int_rec.global_attribute_category;
site_rec.bank_charge_bearer := site_int_rec.bank_charge_bearer;
site_rec.pay_on_code := site_int_rec.pay_on_code;
site_rec.pay_on_receipt_summary_code := site_int_rec.pay_on_receipt_summary_code;
site_rec.default_pay_site_id := site_int_rec.default_pay_site_id;
site_rec.tp_header_id := site_int_rec.tp_header_id;
site_rec.ece_tp_location_code := site_int_rec.ece_tp_location_code;
site_rec.pcard_site_flag := site_int_rec.pcard_site_flag;
site_rec.match_option := site_int_rec.match_option;
site_rec.country_of_origin_code := site_int_rec.country_of_origin_code;
site_rec.future_dated_payment_ccid := site_int_rec.future_dated_payment_ccid;
site_rec.create_debit_memo_flag := site_int_rec.create_debit_memo_flag;
site_rec.supplier_notif_method := site_int_rec.supplier_notif_method;
site_rec.email_address := site_int_rec.email_address;
site_rec.primary_pay_site_flag := site_int_rec.primary_pay_site_flag;
site_rec.shipping_control := site_int_rec.shipping_control;
site_rec.duns_number := site_int_rec.duns_number;
site_rec.retainage_rate := site_int_rec.retainage_rate;
site_rec.vat_code := site_int_rec.vat_code;
-- bug 6645014 To Import VAT Code.
site_rec.vat_registration_num := site_int_rec.vat_registration_num; -- Bug 7207314
site_rec.edi_id_number := site_int_rec.edi_id_number; -- Bug 7437549
ext_payee_rec.payer_org_type := 'OPERATING_UNIT';
ext_payee_rec.exclusive_pay_flag :=NVL(site_int_rec.exclusive_payment_flag,'N');
--bug6495364
-- udhenuko Bug 6823885 Removed the comment for default payment method as this
-- should be populated to create payment methods in IBY tables.
ext_payee_rec.default_pmt_method := site_int_rec.payment_method_lookup_code;
ext_payee_rec.ece_tp_loc_code := site_int_rec.ece_tp_location_code;
--BG
ext_payee_rec.bank_charge_bearer := site_int_rec.iby_bank_charge_bearer;
ext_payee_rec.bank_instr1_code := site_int_rec.bank_instruction1_code;
ext_payee_rec.bank_instr2_code := site_int_rec.bank_instruction2_code;
ext_payee_rec.bank_instr_detail := site_int_rec.bank_instruction_details;
ext_payee_rec.pay_reason_code := site_int_rec.payment_reason_code;
ext_payee_rec.pay_reason_com := site_int_rec.payment_reason_comments;
ext_payee_rec.pay_message1 := site_int_rec.payment_text_message1;
ext_payee_rec.pay_message2 := site_int_rec.payment_text_message2;
ext_payee_rec.pay_message3 := site_int_rec.payment_text_message3;
ext_payee_rec.delivery_channel := site_int_rec.delivery_channel_code;
ext_payee_rec.pmt_format := site_int_rec.payment_format_code;
ext_payee_rec.settlement_priority := site_int_rec.settlement_priority;
-- Bug 7437549 Start
-- Note that we must populate these EDI related fields only to ext_payee_rec
-- Because only this record is passed for call to IBY in case of import.
-- There is no need to populate site_rec.ext_payee_rec.
-- Even if we pass it wont be used.
ext_payee_rec.edi_payment_format := site_int_rec.edi_payment_format;
ext_payee_rec.edi_transaction_handling := site_int_rec.edi_transaction_handling;
ext_payee_rec.edi_payment_method := site_int_rec.edi_payment_method;
ext_payee_rec.edi_remittance_method := site_int_rec.edi_remittance_method;
ext_payee_rec.edi_remittance_instruction := site_int_rec.edi_remittance_instruction;
-- Bug 7437549 End
-- 6458813 Populating the ext_payee_rec of site_rec
site_rec.ext_payee_rec.payer_org_type := 'OPERATING_UNIT';--bug6495364
site_rec.ext_payee_rec.payment_function := 'PAYABLES_DISB';--bug6495364
site_rec.ext_payee_rec.exclusive_pay_flag := nvl(site_int_rec.exclusive_payment_flag,'N');--bug6495364
site_rec.ext_payee_rec.default_pmt_method := site_int_rec.payment_method_lookup_code;
site_rec.ext_payee_rec.ece_tp_loc_code := site_int_rec.ece_tp_location_code;
site_rec.ext_payee_rec.bank_charge_bearer := site_int_rec.iby_bank_charge_bearer;
site_rec.ext_payee_rec.bank_instr1_code := site_int_rec.bank_instruction1_code;
site_rec.ext_payee_rec.bank_instr2_code := site_int_rec.bank_instruction2_code;
site_rec.ext_payee_rec.bank_instr_detail := site_int_rec.bank_instruction_details;
site_rec.ext_payee_rec.pay_reason_code := site_int_rec.payment_reason_code;
site_rec.ext_payee_rec.pay_reason_com := site_int_rec.payment_reason_comments;
site_rec.ext_payee_rec.pay_message1 := site_int_rec.payment_text_message1;
site_rec.ext_payee_rec.pay_message2 := site_int_rec.payment_text_message2;
site_rec.ext_payee_rec.pay_message3 := site_int_rec.payment_text_message3;
site_rec.ext_payee_rec.delivery_channel := site_int_rec.delivery_channel_code;
site_rec.ext_payee_rec.pmt_format := site_int_rec.payment_format_code;
site_rec.ext_payee_rec.settlement_priority := site_int_rec.settlement_priority;
-- 6458813 ends
Create_Vendor_Site
( 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,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
p_vendor_site_rec => site_rec,
x_vendor_site_id => l_vendor_site_id,
x_party_site_id => l_party_site_id,
x_location_id => l_location_id);
UPDATE Ap_Supplier_Sites_Int
SET status = 'PROCESSED'
WHERE vendor_site_interface_id =
site_rec.vendor_site_interface_id;
UPDATE AP_Sup_Site_Contact_Int
SET vendor_site_id = l_vendor_site_id
WHERE vendor_id = site_rec.vendor_id
AND vendor_site_code = site_rec.vendor_site_code
AND (org_id = site_rec.org_id OR
operating_unit_name = site_rec.org_name);
ext_payee_rec.supplier_site_id := l_vendor_site_id;
ext_payee_rec.payee_party_site_id := l_party_site_id;
SELECT org_id
INTO ext_payee_rec.payer_org_id
FROM Po_Vendor_Sites_All
WHERE vendor_site_id = l_vendor_site_id;
UPDATE IBY_TEMP_EXT_BANK_ACCTS
SET ext_payee_id = l_ext_payee_id
,account_owner_party_id = ext_payee_rec.payee_party_id --bug 6753331
WHERE calling_app_unique_ref2 = site_rec.vendor_site_interface_id;
FETCH iby_ext_accts_cur
INTO l_temp_ext_acct_id;
EXIT WHEN iby_ext_accts_cur%NOTFOUND;
IF (Insert_Rejections(
'IBY_TEMP_EXT_BANK_ACCTS',
site_rec.vendor_site_interface_id,
'AP_BANK_ACCT_CREATION',
g_user_id,
g_login_id,
'Import_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_MSG_PUB.Count_And_Get(
p_count => l_msg_count,
p_data => l_msg_data);
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '||site_rec.vendor_site_interface_id
||' Acct Validation Msg: '||l_msg_data);
END IF;
END IF;
IF (Insert_Rejections(
'IBY_TEMP_EXT_BANK_ACCTS',
site_rec.vendor_site_interface_id,
'AP_INVALID_BANK_ACCT_INFO',
g_user_id,
g_login_id,
'Import_Vendor_Site') <> TRUE) THEN
--
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_MSG_PUB.Count_And_Get(
p_count => l_msg_count,
p_data => l_msg_data);
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||
l_api_name,'Parameters: '
||' Vendor_Site_Interface_Id: '||site_rec.vendor_site_interface_id
||' Acct Validation Msg: '||l_msg_data);
END IF;
END IF;
END LOOP;
CLOSE iby_ext_accts_cur;
UPDATE Ap_Supplier_Sites_Int
SET status = 'REJECTED'
WHERE vendor_site_interface_id =
site_rec.vendor_site_interface_id;
END LOOP;
CLOSE site_int_cur;
END IF;
-- End of API body.
PROCEDURE Import_Vendor_Contacts
( p_api_version IN NUMBER,
p_source IN VARCHAR2 DEFAULT 'IMPORT',
p_what_to_import IN VARCHAR2 DEFAULT NULL,
p_commit_size IN NUMBER DEFAULT 1000,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2
)
IS
l_return_status VARCHAR2(2000);
l_msg_count NUMBER;
l_msg_data VARCHAR2(2000);
l_vendor_contact_id NUMBER;
l_per_party_id NUMBER;
l_rel_party_id NUMBER;
l_rel_id NUMBER;
l_org_contact_id NUMBER;
l_party_site_id NUMBER;
CURSOR contact_int_cur IS
SELECT *
FROM Ap_Sup_Site_Contact_Int
WHERE import_request_id = l_request_id
AND vendor_id IS NOT NULL
AND (org_id IS NOT NULL OR operating_unit_name IS NOT NULL )
AND vendor_id not in(select vendor_id from ap_suppliers
where vendor_type_lookup_code = 'EMPLOYEE') --Bug6648405
contact_int_rec contact_int_cur%ROWTYPE;
vendor_contact_rec r_vendor_contact_rec_type;
BEGIN
FND_MSG_PUB.initialize;
g_user_id := FND_GLOBAL.USER_ID;
g_login_id := FND_GLOBAL.LOGIN_ID;
g_source := p_source;
-- Initialize API return status to success
x_return_status := FND_API.G_RET_STS_SUCCESS;
-- API body
UPDATE Ap_Sup_Site_Contact_Int
SET import_request_id = l_request_id
WHERE import_request_id IS NULL AND
((p_what_to_import = 'ALL' AND nvl(status,'NEW') in ('NEW', 'REJECTED')) OR
(p_what_to_import = 'NEW' AND nvl(status,'NEW') = 'NEW') OR
(p_what_to_import = 'REJECTED' AND nvl(status,'NEW') = 'REJECTED'));
UPDATE Ap_Sup_Site_Contact_Int
SET status = 'REJECTED',
import_request_id = l_request_id
WHERE ((vendor_id IS NULL) OR
(operating_unit_name IS NULL AND org_id IS NULL) OR
-- Bug 7013954 Vendor site info no longer used for validation
-- (vendor_site_code IS NULL and vendor_site_id IS NULL) OR
(last_name IS NULL) OR
--Bug7390094 - rejecting contacts for Employee type suppliers.
(vendor_id in(select vendor_id from ap_suppliers
where vendor_type_lookup_code = 'EMPLOYEE')));
--bug 5591652
insert into ap_supplier_int_rejections
(select 'AP_SUP_SITE_CONTACT_INT',vendor_contact_interface_id,'AP_ORG_INFO_NULL',
g_user_id,SYSDATE,g_login_id,g_user_id,SYSDATE
from ap_sup_site_contact_int
where status='REJECTED'
AND import_request_id=l_request_id
AND (operating_unit_name IS NULL and org_id IS NULL))
-- Bug 7013954 Conditions related to supplier site needs to be commented.
/*UNION
(select 'AP_SUP_SITE_CONTACT_INT',vendor_contact_interface_id,'AP_VENDOR_SITE_INFO_NULL',
g_user_id,SYSDATE,g_login_id,g_user_id,SYSDATE
from ap_sup_site_contact_int
where status='REJECTED'
AND import_request_id=l_request_id
AND (vendor_site_code IS NULL and vendor_site_id IS NULL))*/
UNION
(select 'AP_SUP_SITE_CONTACT_INT',vendor_contact_interface_id,'AP_LAST_NAME_NULL',
g_user_id,SYSDATE,g_login_id,g_user_id,SYSDATE
from ap_sup_site_contact_int
where status='REJECTED'
AND import_request_id=l_request_id
AND last_name IS NULL)
UNION
(select 'AP_SUP_SITE_CONTACT_INT',vendor_contact_interface_id,'AP_VENDOR_ID_NULL',
g_user_id,SYSDATE,g_login_id,g_user_id,SYSDATE
from ap_sup_site_contact_int
where status='REJECTED'
AND import_request_id=l_request_id
AND vendor_id IS NULL)
-- Bug 7390094 Prevent contacts import for employee type supplier.
UNION
(select 'AP_SUP_SITE_CONTACT_INT',vendor_contact_interface_id,'AP_EMPLOYEE_CONTACTS',
g_user_id,SYSDATE,g_login_id,g_user_id,SYSDATE
from ap_sup_site_contact_int
where status='REJECTED'
AND import_request_id=l_request_id
AND vendor_id in(select vendor_id from ap_suppliers
where vendor_type_lookup_code = 'EMPLOYEE'));
COMMIT;
FETCH contact_int_cur
INTO contact_int_rec;
EXIT WHEN contact_int_cur%NOTFOUND;
vendor_contact_rec.vendor_contact_interface_id :=
contact_int_rec.vendor_contact_interface_id;
vendor_contact_rec.vendor_site_id := contact_int_rec.vendor_site_id;
vendor_contact_rec.person_first_name := contact_int_rec.first_name;
vendor_contact_rec.person_middle_name:= contact_int_rec.middle_name;
vendor_contact_rec.person_last_name := contact_int_rec.last_name;
vendor_contact_rec.person_title := contact_int_rec.title;
vendor_contact_rec.person_first_name_phonetic :=
contact_int_rec.first_name_alt;
vendor_contact_rec.person_last_name_phonetic :=
contact_int_rec.last_name_alt;
vendor_contact_rec.contact_name_phonetic :=
contact_int_rec.contact_name_alt;
vendor_contact_rec.prefix := contact_int_rec.prefix;
vendor_contact_rec.inactive_date := contact_int_rec.inactive_date;
vendor_contact_rec.department := contact_int_rec.department;
vendor_contact_rec.mail_stop := contact_int_rec.mail_stop;
vendor_contact_rec.area_code := contact_int_rec.area_code;
vendor_contact_rec.phone := contact_int_rec.phone;
vendor_contact_rec.alt_area_code := contact_int_rec.alt_area_code;
vendor_contact_rec.alt_phone := contact_int_rec.alt_phone;
vendor_contact_rec.fax_area_code := contact_int_rec.fax_area_code;
vendor_contact_rec.fax_phone := contact_int_rec.fax;
vendor_contact_rec.email_address := contact_int_rec.email_address;
vendor_contact_rec.url := contact_int_rec.url;
vendor_contact_rec.vendor_site_code := contact_int_rec.vendor_site_code;
vendor_contact_rec.org_id := contact_int_rec.org_id;
vendor_contact_rec.operating_unit_name :=
contact_int_rec.operating_unit_name;
vendor_contact_rec.vendor_interface_id := contact_int_rec.vendor_interface_id;
vendor_contact_rec.vendor_id := contact_int_rec.vendor_id;
-- Bug 7013954 start Need to populate party site related info
vendor_contact_rec.org_party_site_id := contact_int_rec.party_site_id;
vendor_contact_rec.party_site_name := contact_int_rec.party_site_name;
-- Bug 7013954 end
Create_Vendor_Contact
( 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,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data,
p_vendor_contact_rec => vendor_contact_rec,
x_vendor_contact_id => l_vendor_contact_id,
x_per_party_id => l_per_party_id,
x_rel_party_id => l_rel_party_id,
x_rel_id => l_rel_id,
x_org_contact_id => l_org_contact_id,
x_party_site_id => l_party_site_id);
UPDATE Ap_Sup_Site_Contact_Int
SET status = 'PROCESSED'
WHERE CURRENT OF contact_int_cur; --Bug6413297
/*WHERE vendor_contact_interface_id =
vendor_contact_rec.vendor_contact_interface_id;*/--Bug6413297
ELSE
UPDATE Ap_Sup_Site_Contact_Int
SET status = 'REJECTED'
WHERE CURRENT OF contact_int_cur; --Bug6413297
/*WHERE vendor_contact_interface_id =
vendor_contact_rec.vendor_contact_interface_id;*/--Bug6413297
END IF;
END LOOP;
CLOSE contact_int_cur;
END IF;
-- End of API body.
COMMIT WORK;
EXCEPTION
WHEN FND_API.G_EXC_ERROR THEN
ROLLBACK TO Import_Vendor_Contact_PUB;
x_return_status := FND_API.G_RET_STS_ERROR ;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
ROLLBACK TO Import_Vendor_Contact_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
WHEN OTHERS THEN
ROLLBACK TO Import_Vendor_Contact_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
IF FND_MSG_PUB.Check_Msg_Level
(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
FND_MSG_PUB.Add_Exc_Msg
( G_PKG_NAME,
l_api_name
);
END IF;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
END Import_Vendor_Contacts;
PROCEDURE Update_Address_Assignments_DFF(
p_api_version IN NUMBER,
p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE,
p_commit IN VARCHAR2 := FND_API.G_FALSE,
p_contact_party_id IN NUMBER,
p_org_party_site_id IN NUMBER,
p_attribute_category IN VARCHAR2 DEFAULT NULL,
p_attribute1 IN VARCHAR2 DEFAULT NULL,
p_attribute2 IN VARCHAR2 DEFAULT NULL,
p_attribute3 IN VARCHAR2 DEFAULT NULL,
p_attribute4 IN VARCHAR2 DEFAULT NULL,
p_attribute5 IN VARCHAR2 DEFAULT NULL,
p_attribute6 IN VARCHAR2 DEFAULT NULL,
p_attribute7 IN VARCHAR2 DEFAULT NULL,
p_attribute8 IN VARCHAR2 DEFAULT NULL,
p_attribute9 IN VARCHAR2 DEFAULT NULL,
p_attribute10 IN VARCHAR2 DEFAULT NULL,
p_attribute11 IN VARCHAR2 DEFAULT NULL,
p_attribute12 IN VARCHAR2 DEFAULT NULL,
p_attribute13 IN VARCHAR2 DEFAULT NULL,
p_attribute14 IN VARCHAR2 DEFAULT NULL,
p_attribute15 IN VARCHAR2 DEFAULT NULL,
x_return_status OUT NOCOPY VARCHAR2,
x_msg_count OUT NOCOPY NUMBER,
x_msg_data OUT NOCOPY VARCHAR2
IS
l_api_name CONSTANT VARCHAR2(30) := 'Update_Address_Assignments_DFF';
l_api_version CONSTANT NUMBER := 1.0;
l_count NUMBER := 0;
l_event_vendor_contact_id AP_SUPPLIER_CONTACTS.vendor_contact_id%TYPE; --Bug 7307669
BEGIN
-- API body
UPDATE ap_supplier_contacts
SET attribute_category=p_attribute_category,
attribute1 = p_attribute1,
attribute2 = p_attribute2,
attribute3 = p_attribute3,
attribute4 = p_attribute4,
attribute5 = p_attribute5,
attribute6 = p_attribute6,
attribute7 = p_attribute7,
attribute8 = p_attribute8,
attribute9 = p_attribute9,
attribute10 = p_attribute10,
attribute11 = p_attribute11,
attribute12 = p_attribute12,
attribute13 = p_attribute13,
attribute14 = p_attribute14,
attribute15 = p_attribute15
WHERE per_party_id=p_contact_party_id
AND org_party_site_id=p_org_party_site_id
AND NVL(inactive_date, SYSDATE+1 ) > SYSDATE
;
l_count := SQL%ROWCOUNT;
EXCEPTION
WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
ROLLBACK TO Update_Address_Assign_DFF_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
WHEN OTHERS THEN
ROLLBACK TO Update_Address_Assign_DFF_PUB;
x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
IF FND_MSG_PUB.Check_Msg_Level
(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
FND_MSG_PUB.Add_Exc_Msg
( G_PKG_NAME ,
l_api_name
);
END IF;
FND_MSG_PUB.Count_And_Get
( p_count => x_msg_count,
p_data => x_msg_data
);
END Update_Address_Assignments_DFF;
PROCEDURE Raise_Supplier_Event (
i_vendor_id IN NUMBER DEFAULT NULL,
i_vendor_site_id IN NUMBER DEFAULT NULL,
i_vendor_contact_id IN NUMBER DEFAULT NULL
)
IS
l_api_name CONSTANT VARCHAR2(200) := ' Raise_Supplier_Event';
l_debug_info VARCHAR2(2000);
l_parameter_list wf_parameter_list_t;
l_event_key VARCHAR2(100);
l_event_name VARCHAR2(100) := 'oracle.apps.ap.supplier.event';
l_vendor_id AP_SUPPLIERS.vendor_id%TYPE;
BEGIN
l_debug_info := 'Called with parameters : i_vendor_id = '
|| to_char(i_vendor_id) || ', i_vendor_site_id = '
|| to_char(i_vendor_site_id) || ', i_vendor_contact_id = '
|| to_char(i_vendor_contact_id);
IF (G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME || l_api_name,
l_debug_info);
END IF;
l_parameter_list := wf_parameter_list_t(
wf_parameter_t('VENDOR_ID',
to_char(l_vendor_id) ),
wf_parameter_t('VENDOR_SITE_ID',
to_char(i_vendor_site_id) ),
wf_parameter_t('VENDOR_CONTACT_ID',
to_char(i_vendor_contact_id) )
);
SELECT to_char(ap_supplier_event_s.nextval)
INTO l_event_key
FROM dual;
EXCEPTION
WHEN NO_DATA_FOUND OR TOO_MANY_ROWS THEN
IF (G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME || l_api_name,
SQLERRM);
END IF;
APP_EXCEPTION.RAISE_EXCEPTION;
WHEN OTHERS THEN
WF_CORE.CONTEXT(G_MODULE_NAME, l_api_name, l_event_name,
l_event_key);
RAISE;
END Raise_Supplier_Event;
END AP_VENDOR_PUB_PKG;
/