DBA Data[Home] [Help]

APPS.AP_IAW_PKG SQL Statements

The following lines contain the word 'select', 'insert', 'update' or 'delete':

Line: 55

	SELECT nvl(max(notification_iteration),0) + 1
	INTO l_notif_iter
	FROM AP_APINV_APPROVERS
	WHERE Invoice_Key = p_invoice_key;
Line: 140

	SELECT invoice_amount
	INTO l_amount
	FROM ap_invoices_all
	WHERE invoice_id = l_invoice_id;
Line: 180

				SELECT displayed_field
				into l_tr_reason
                       		FROM   ap_lookup_codes
                       		WHERE  lookup_code = l_reason(i)
                       		and    lookup_type = 'NLS TRANSLATION';
Line: 205

				l_h_hist.last_update_date := sysdate;
Line: 206

				l_h_hist.last_updated_by :=
					FND_PROFILE.VALUE('AP_IAW_USER');
Line: 208

				l_h_hist.last_update_login := -1;
Line: 212

				Insert_Header_History(
					p_inv_aprvl_hist => l_h_hist);
Line: 223

				UPDATE AP_INVOICES_ALL
				SET WFApproval_Status = 'NOT REQUIRED'
				WHERE Invoice_Id = l_invoice_id
				AND WFApproval_Status = 'INITIATED';
Line: 228

				UPDATE AP_INVOICE_LINES_ALL
				SET WFApproval_Status = 'NOT REQUIRED'
				WHERE Invoice_Id = l_invoice_id
				AND WFApproval_Status = 'INITIATED';
Line: 253

				SELECT l_tr_reason || ', ' || displayed_field
                                into l_tr_reason
                                FROM   ap_lookup_codes
                                WHERE  lookup_code = l_reason(i)
                                and    lookup_type = 'NLS TRANSLATION';
Line: 281

                        l_h_hist.last_update_date := sysdate;
Line: 282

                        l_h_hist.last_updated_by :=
                                        FND_PROFILE.VALUE('AP_IAW_USER');
Line: 284

                        l_h_hist.last_update_login := -1;
Line: 287

                        Insert_Header_History(
                                p_inv_aprvl_hist => l_h_hist);
Line: 290

                        UPDATE AP_INVOICES_ALL
                        SET WFApproval_Status = 'REJECTED'
                        WHERE Invoice_Id = l_invoice_id
                        AND WFApproval_Status = 'INITIATED';
Line: 295

                        UPDATE AP_INVOICE_LINES_ALL
                        SET WFApproval_Status = 'REJECTED'
                        WHERE Invoice_Id = l_invoice_id
                        AND WFApproval_Status = 'INITIATED';
Line: 337

	   SELECT line_number, amount
	   FROM ap_invoice_lines_all
	   WHERE po_header_id is not null
	   AND invoice_id = l_invoice_id
	   AND wfapproval_status = 'INITIATED';
Line: 409

			SELECT displayed_field
			into l_tr_reason
               		FROM   ap_lookup_codes
               		WHERE  lookup_code = l_reason(i)
               		and    lookup_type = 'NLS TRANSLATION';
Line: 435

				l_l_hist.last_updated_by :=
					FND_PROFILE.VALUE('AP_IAW_USER');
Line: 437

				l_l_hist.last_update_date := sysdate;
Line: 438

				l_l_hist.last_update_login := -1;
Line: 442

				Insert_Line_History(
					p_line_aprvl_hist => l_l_hist);
Line: 447

			UPDATE AP_INVOICE_LINES_ALL
			SET WFApproval_Status = 'NOT REQUIRED'
			WHERE Invoice_Id = l_invoice_id
			AND PO_Header_Id IS NOT NULL
			AND WFApproval_Status = 'INITIATED';
Line: 528

		SELECT 1, Role_Name
		INTO l_pend, l_name
		FROM AP_APINV_APPROVERS
		WHERE Notification_Status = 'PEND'
		AND Invoice_Key = itemkey
		AND rownum = 1;
Line: 549

		SELECT nvl(max(notification_iteration),0) + 1
		INTO l_not_iteration
		FROM AP_APINV_APPROVERS
		WHERE Invoice_Key = itemkey;
Line: 561

		UPDATE AP_APINV_APPROVERS
		SET Notification_Iteration = l_not_iteration
		    ,Notification_Key = itemkey || '_' || l_not_iteration
		WHERE Role_Name = l_name
		AND Invoice_Key = itemkey;
Line: 575

			SELECT sum(DECODE(Notification_Status, 'SENT', 1, 0)),
			sum(DECODE(Notification_Status, 'COMP', 1, 0))
			INTO l_sent, l_comp
			FROM AP_APINV_APPROVERS
			WHERE Invoice_Key = itemkey
			GROUP BY Invoice_Key;
Line: 598

			UPDATE AP_INVOICES_ALL
			SET WFApproval_Status = 'NOT REQUIRED'
			WHERE Invoice_Id = l_invoice_id
			AND WFApproval_Status = 'INITIATED';
Line: 603

			UPDATE AP_INVOICE_LINES_ALL
			SET WFApproval_Status = 'NOT REQUIRED'
			WHERE Invoice_Id = l_invoice_id
			AND WFApproval_Status = 'INITIATED';
Line: 609

			DELETE FROM AP_APINV_APPROVERS
			WHERE Invoice_Id = l_invoice_id;
Line: 633

			UPDATE AP_INVOICES_ALL
			SET WFApproval_Status = 'WFAPPROVED'
			WHERE WFApproval_Status = 'INITIATED'
			AND Invoice_Id IN (SELECT DISTINCT Invoice_ID
				FROM AP_APINV_APPROVERS
				WHERE Invoice_Id = l_invoice_id
				and Invoice_Iteration = l_iteration
				AND Line_Number IS NULL);
Line: 642

			--in the subselects, we do not need
			--to filter by approval_status
			-- since any rejection
			--would have set the Line's
			--wfapproval_status to 'Rejected'
			--already, so the line will
			-- not even be selected for update by the main
			--part of the query.
			UPDATE AP_INVOICE_LINES_ALL
			SET WFApproval_Status = 'WFAPPROVED'
			WHERE Invoice_Id = l_invoice_id
			AND WFApproval_Status = 'INITIATED'
			AND Line_Number IN (SELECT DISTINCT Line_Number
				FROM AP_APINV_APPROVERS
				WHERE invoice_id = l_invoice_id
				and Invoice_Iteration = l_iteration);
Line: 666

			UPDATE AP_INVOICES_ALL
			SET WFApproval_Status = 'NOT REQUIRED'
			WHERE Invoice_Id = l_invoice_id
			AND WFApproval_Status = 'INITIATED';
Line: 671

			UPDATE AP_INVOICE_LINES_ALL
			SET WFApproval_Status = 'NOT REQUIRED'
			WHERE Invoice_Id = l_invoice_id
			AND WFApproval_Status = 'INITIATED';
Line: 677

                        DELETE FROM AP_APINV_APPROVERS
                        WHERE Invoice_Id = l_invoice_id;
Line: 827

				SELECT Invoice_Line_Number
				INTO l_line_num
                                FROM AP_INVOICE_DISTRIBUTIONS_ALL
                                WHERE project_id =l_ids(l_rec);
Line: 834

				SELECT Invoice_Line_Number
				INTO l_line_num
                                FROM AP_INVOICE_DISTRIBUTIONS_ALL
                                WHERE project_id =l_ids(l_rec);
Line: 844

				SELECT Invoice_Line_Number
				INTO l_line_num
				FROM AP_INVOICE_DISTRIBUTIONS_ALL
				WHERE invoice_distribution_id = l_ids(l_rec);
Line: 851

			   --Insert record into ap_apinv_approvers
			   INSERT INTO AP_APINV_APPROVERS(
				INVOICE_ID,
				INVOICE_ITERATION,
				INVOICE_KEY,
				LINE_NUMBER,
				NOTIFICATION_STATUS,
				ROLE_NAME,
				ORIG_SYSTEM,
				ORIG_SYSTEM_ID,
				DISPLAY_NAME,
				APPROVER_CATEGORY,
				API_INSERTION,
				AUTHORITY,
				APPROVAL_STATUS,
				ACTION_TYPE_ID,
				GROUP_OR_CHAIN_ID,
				OCCURRENCE,
				SOURCE,
				ITEM_CLASS,
				ITEM_ID,
				ITEM_CLASS_ORDER_NUMBER,
				ITEM_ORDER_NUMBER,
				SUB_LIST_ORDER_NUMBER,
				ACTION_TYPE_ORDER_NUMBER,
				GROUP_OR_CHAIN_ORDER_NUMBER,
				MEMBER_ORDER_NUMBER,
				APPROVER_ORDER_NUMBER,
				LAST_UPDATED_BY,
				LAST_UPDATE_DATE,
				LAST_UPDATE_LOGIN,
				CREATED_BY,
				CREATION_DATE,
				PROGRAM_APPLICATION_ID,
				PROGRAM_ID,
				PROGRAM_UPDATE_DATE,
				REQUEST_ID )
				VALUES(
				l_invoice_id,
				l_iteration,
				itemkey,
				l_line_num,
				'PEND',
				l_next_approver.NAME,
				l_next_approver.ORIG_SYSTEM,
				l_next_approver.ORIG_SYSTEM_ID,
				l_next_approver.DISPLAY_NAME,
				l_next_approver.APPROVER_CATEGORY,
				l_next_approver.API_INSERTION,
				l_next_approver.AUTHORITY,
				l_next_approver.APPROVAL_STATUS,
				l_next_approver.ACTION_TYPE_ID,
				l_next_approver.GROUP_OR_CHAIN_ID,
				l_next_approver.OCCURRENCE,
				l_next_approver.SOURCE,
				l_class(l_rec),
				l_ids(l_rec),
				l_next_approver.ITEM_CLASS_ORDER_NUMBER,
				l_next_approver.ITEM_ORDER_NUMBER,
				l_next_approver.SUB_LIST_ORDER_NUMBER,
				l_next_approver.ACTION_TYPE_ORDER_NUMBER,
				l_next_approver.GROUP_OR_CHAIN_ORDER_NUMBER,
				l_next_approver.MEMBER_ORDER_NUMBER,
				l_next_approver.APPROVER_ORDER_NUMBER,
				nvl(TO_NUMBER(FND_PROFILE.VALUE('USER_ID')),-1),
								sysdate,
				nvl(TO_NUMBER(FND_PROFILE.VALUE('LOGIN_ID')),
								-1),
				nvl(TO_NUMBER(FND_PROFILE.VALUE('USER_ID')),-1),
				sysdate,
				200,
				0,
				sysdate,
				0);
Line: 926

				l_debug_info := 'after insert';
Line: 948

                        SELECT Invoice_Line_Number
			INTO l_line_num
                        FROM AP_INVOICE_DISTRIBUTIONS_ALL
                        WHERE project_id = l_next_approver.item_id;
Line: 955

                        SELECT Invoice_Line_Number
			INTO l_line_num
                        FROM AP_INVOICE_DISTRIBUTIONS_ALL
                        WHERE project_id = l_next_approver.item_id;
Line: 965

                        SELECT Invoice_Line_Number
			INTO l_line_num
                        FROM AP_INVOICE_DISTRIBUTIONS_ALL
                        WHERE invoice_distribution_id = l_next_approver.item_id;
Line: 972

		   --Insert record into ap_apinv_approvers
		   INSERT INTO AP_APINV_APPROVERS(
				INVOICE_ID,
				INVOICE_ITERATION,
				INVOICE_KEY,
				LINE_NUMBER,
				NOTIFICATION_STATUS,
				ROLE_NAME,
				ORIG_SYSTEM,
				ORIG_SYSTEM_ID,
				DISPLAY_NAME,
				APPROVER_CATEGORY,
				API_INSERTION,
				AUTHORITY,
				APPROVAL_STATUS,
				ACTION_TYPE_ID,
				GROUP_OR_CHAIN_ID,
				OCCURRENCE,
				SOURCE,
				ITEM_CLASS,
				ITEM_ID,
				ITEM_CLASS_ORDER_NUMBER,
				ITEM_ORDER_NUMBER,
				SUB_LIST_ORDER_NUMBER,
				ACTION_TYPE_ORDER_NUMBER,
				GROUP_OR_CHAIN_ORDER_NUMBER,
				MEMBER_ORDER_NUMBER,
				APPROVER_ORDER_NUMBER,
				LAST_UPDATED_BY,
				LAST_UPDATE_DATE,
				LAST_UPDATE_LOGIN,
				CREATED_BY,
				CREATION_DATE,
				PROGRAM_APPLICATION_ID,
				PROGRAM_ID,
				PROGRAM_UPDATE_DATE,
				REQUEST_ID )
				VALUES(
				l_invoice_id,
				l_iteration,
				itemkey,
				l_line_num,
				'PEND',
				l_next_approver.NAME,
				l_next_approver.ORIG_SYSTEM,
				l_next_approver.ORIG_SYSTEM_ID,
				l_next_approver.DISPLAY_NAME,
				l_next_approver.APPROVER_CATEGORY,
				l_next_approver.API_INSERTION,
				l_next_approver.AUTHORITY,
				l_next_approver.APPROVAL_STATUS,
				l_next_approver.ACTION_TYPE_ID,
				l_next_approver.GROUP_OR_CHAIN_ID,
				l_next_approver.OCCURRENCE,
				l_next_approver.SOURCE,
				l_next_approver.item_class,
				l_next_approver.item_id,
				l_next_approver.ITEM_CLASS_ORDER_NUMBER,
				l_next_approver.ITEM_ORDER_NUMBER,
				l_next_approver.SUB_LIST_ORDER_NUMBER,
				l_next_approver.ACTION_TYPE_ORDER_NUMBER,
				l_next_approver.GROUP_OR_CHAIN_ORDER_NUMBER,
				l_next_approver.MEMBER_ORDER_NUMBER,
				l_next_approver.APPROVER_ORDER_NUMBER,
				nvl(TO_NUMBER(FND_PROFILE.VALUE('USER_ID')),-1),
                                				sysdate,
                                nvl(TO_NUMBER(FND_PROFILE.VALUE('LOGIN_ID')),
								-1),
                                nvl(TO_NUMBER(FND_PROFILE.VALUE('USER_ID')),-1),
                                sysdate,
                                200,
                                0,
                                sysdate,
                                0);
Line: 1170

				SELECT Invoice_Line_Number
				INTO l_line_num
                                FROM AP_INVOICE_DISTRIBUTIONS_ALL
                                WHERE project_id =l_ids(l_rec);
Line: 1177

				SELECT Invoice_Line_Number
				INTO l_line_num
                                FROM AP_INVOICE_DISTRIBUTIONS_ALL
                                WHERE project_id =l_ids(l_rec);
Line: 1187

				SELECT Invoice_Line_Number
				INTO l_line_num
				FROM AP_INVOICE_DISTRIBUTIONS_ALL
				WHERE invoice_distribution_id = l_ids(l_rec);
Line: 1194

			   --Insert record into ap_approvers_list_gt
			   INSERT INTO AP_APPROVERS_LIST_GT(
				LINE_NUMBER,
				ROLE_NAME,
				ORIG_SYSTEM,
				ORIG_SYSTEM_ID,
				DISPLAY_NAME,
				APPROVER_CATEGORY,
				API_INSERTION,
				AUTHORITY,
				APPROVAL_STATUS,
				ITEM_CLASS,
				ITEM_ID,
				APPROVER_ORDER_NUMBER)
				VALUES(
				l_line_num,
				l_next_approver.NAME,
				l_next_approver.ORIG_SYSTEM,
				l_next_approver.ORIG_SYSTEM_ID,
				l_next_approver.DISPLAY_NAME,
				l_next_approver.APPROVER_CATEGORY,
				l_next_approver.API_INSERTION,
				l_next_approver.AUTHORITY,
				l_next_approver.APPROVAL_STATUS,
				l_class(l_rec),
				l_ids(l_rec),
				l_next_approver.APPROVER_ORDER_NUMBER);
Line: 1222

				l_debug_info := 'after insert';
Line: 1246

                        SELECT Invoice_Line_Number
			INTO l_line_num
                        FROM AP_INVOICE_DISTRIBUTIONS_ALL
                        WHERE project_id = l_next_approver.item_id;
Line: 1253

                        SELECT Invoice_Line_Number
			INTO l_line_num
                        FROM AP_INVOICE_DISTRIBUTIONS_ALL
                        WHERE project_id = l_next_approver.item_id;
Line: 1263

                        SELECT Invoice_Line_Number
			INTO l_line_num
                        FROM AP_INVOICE_DISTRIBUTIONS_ALL
                        WHERE invoice_distribution_id = l_next_approver.item_id;
Line: 1270

			--Insert record into ap_approvers_list_gt
			INSERT INTO AP_APINV_APPROVERS(
                               LINE_NUMBER,
                                ROLE_NAME,
                                ORIG_SYSTEM,
                                ORIG_SYSTEM_ID,
                                DISPLAY_NAME,
                                APPROVER_CATEGORY,
                                API_INSERTION,
                                AUTHORITY,
                                APPROVAL_STATUS,
                                ITEM_CLASS,
                                ITEM_ID,
                                APPROVER_ORDER_NUMBER)
				VALUES(
				l_line_num,
				l_next_approver.NAME,
				l_next_approver.ORIG_SYSTEM,
				l_next_approver.ORIG_SYSTEM_ID,
				l_next_approver.DISPLAY_NAME,
				l_next_approver.APPROVER_CATEGORY,
				l_next_approver.API_INSERTION,
				l_next_approver.AUTHORITY,
				l_next_approver.APPROVAL_STATUS,
				l_next_approver.item_class,
				l_next_approver.item_id,
				l_next_approver.APPROVER_ORDER_NUMBER);
Line: 1339

	SELECT DECODE(nvl(Line_Number,''),'','HEADER','LINE'), invoice_key
	INTO l_level, l_invoice_key
	FROM AP_APINV_APPROVERS
	WHERE Notification_Key = itemkey
	AND rownum = 1;
Line: 1347

	--update approvers table
	UPDATE AP_APINV_APPROVERS
	SET Notification_Status = 'SENT'
	WHERE Notification_Key = itemkey;
Line: 1356

	--update appropriate history table
	IF l_level = 'HEADER' THEN
		Insert_Header_History(itemtype, itemkey, p_type => 'NEW');
Line: 1360

		Insert_Line_History(itemtype, itemkey, p_type => 'NEW');
Line: 1434

        SELECT supervisor_id
        INTO l_esc_approver_id
        FROM per_employees_current_x
        WHERE employee_id = l_approver_id;
Line: 1450

        l_esc_approver.api_insertion := ame_util.apiInsertion;
Line: 1454

	--update AME
	AME_API2.updateApprovalStatus2(applicationIdIn => 200,
			   transactionTypeIn =>  'APINV',
                           transactionIdIn     => to_char(l_invoice_id),
                           approvalStatusIn    => AME_UTIL.noResponseStatus,
                           approverNameIn  => l_role,
                           itemClassIn    => ame_util.headerItemClassName,
			   itemIdIn    => to_char(l_invoice_id),
                           forwardeeIn       => l_esc_approver);
Line: 1480

	--update history for non-responding approver
	Update ap_inv_aprvl_hist_all
	Set Response = 'ESCALATED'
	    ,Last_Update_Date = sysdate
            ,Last_Updated_By = nvl(TO_NUMBER(FND_PROFILE.VALUE('USER_ID')),-1)
            ,Last_Update_Login =
			nvl(TO_NUMBER(FND_PROFILE.VALUE('LOGIN_ID')),-1)
	Where invoice_id = l_invoice_id
 	AND iteration = l_iteration
	AND approver_id = l_approver_id;
Line: 1492

	Insert_Header_History(itemtype, itemkey, p_type => 'ESC');
Line: 1512

	SELECT Item_Class, Item_Id
	FROM AP_APINV_APPROVERS
	WHERE Notification_Key = itemkey;
Line: 1565

        SELECT supervisor_id
        INTO l_esc_approver_id
        FROM per_employees_current_x
        WHERE employee_id = l_approver_id;
Line: 1581

        l_esc_approver.api_insertion := ame_util.apiInsertion;
Line: 1591

		--update AME
		AME_API2.updateApprovalStatus2(applicationIdIn => 200,
			transactionTypeIn =>  'APINV',
                           transactionIdIn     => to_char(l_invoice_id),
                           approvalStatusIn    => AME_UTIL.noResponseStatus,
                           approverNameIn  => l_role,
                           itemClassIn    => l_item_class,
                           itemIdIn    => l_item_id,
                           forwardeeIn       => l_esc_approver);
Line: 1620

	--update history for non-responding approver
	Update ap_line_aprvl_hist_all
	Set Response = 'ESCALATED'
	    ,Last_Update_Date = sysdate
            ,Last_Updated_By = nvl(TO_NUMBER(FND_PROFILE.VALUE('USER_ID')),-1)
            ,Last_Update_Login =
                        nvl(TO_NUMBER(FND_PROFILE.VALUE('LOGIN_ID')),-1)
        Where invoice_id = l_invoice_id
        AND approver_id = l_approver_id
	AND notification_key = itemkey;
Line: 1633

	Insert_Line_History(itemtype, itemkey, p_type => 'ESC');
Line: 1686

	--but I want to avoid another select on the table
	CURSOR   Items_Cur(itemkey IN VARCHAR2) IS
	SELECT Item_Class, Item_Id, Role_Name, Invoice_Key
	FROM AP_APINV_APPROVERS
	WHERE Notification_Key = itemkey;
Line: 1728

	--Update Approvers table
	UPDATE AP_APINV_APPROVERS
	SET Notification_status = 'COMP'
	WHERE Notification_Key = itemkey;
Line: 1734

	SELECT DECODE(nvl(Line_Number,''),'','HEADER','LINE')
	INTO l_level
	FROM AP_APINV_APPROVERS
	WHERE Notification_Key = itemkey
	AND rownum = 1;
Line: 1740

	--update history at appropriate level
	IF l_level = 'HEADER' THEN
		update_header_history(itemtype,
			actid,
                        itemkey);
Line: 1746

		update_line_history(itemtype,
			actid,
                        itemkey);
Line: 1751

	--update AME status
	--amy check with ame as to when updateApprovalStatuses will be available
	--so I will not need to loop.
	OPEN Items_Cur(itemkey);
Line: 1761

	        --update AME with response
        	IF l_result = 'APPROVED' THEN
        	        AME_API2.updateApprovalStatus2(applicationIdIn => 200,
                                transactionIdIn     => to_char(l_invoice_id),
                                approvalStatusIn    => AME_UTIL.approvedStatus,
                                approverNameIn  => l_name,
                                transactionTypeIn =>  'APINV',
				itemClassIn	=> l_item_class,
				itemIdIn	=> l_item_id);
Line: 1771

        	        AME_API2.updateApprovalStatus2(applicationIdIn => 200,
                                transactionIdIn     => to_char(l_invoice_id),
                                approvalStatusIn    => AME_UTIL.rejectStatus,
                                approverNameIn  => l_name,
                                transactionTypeIn =>  'APINV',
				itemClassIn	=> l_item_class,
				itemIdIn	=> l_item_id);
Line: 1800

/*handles all the updates for an approvers response.  This version called
 * from the framework pages
 */
PROCEDURE Response_Handler(p_invoice_id IN NUMBER,
                        p_line_num IN NUMBER,
                        p_not_key IN VARCHAR2,
                        p_response IN  VARCHAR2,
                        p_comments IN  VARCHAR2 ) IS

	--Define cursor for lines affected by notification
	--Note that Invoice_Key s/b the same for all records in the cursor
	--but I want to avoid another select on the table
	CURSOR   Items_Cur(l_not_key IN VARCHAR2, l_line_num IN NUMBER) IS
	SELECT Item_Class, Item_Id, Role_Name, Invoice_Key
	FROM AP_APINV_APPROVERS
	WHERE Notification_Key = l_not_key
	AND line_number = l_line_num;
Line: 1834

	--Update Approvers table
	UPDATE AP_APINV_APPROVERS
	SET Notification_status = 'COMP'
	WHERE Notification_Key = p_not_key;
Line: 1839

	--update history at appropriate level
        Update_Line_History(p_invoice_id,
                        p_line_num,
                        p_response,
                        p_comments);
Line: 1845

	--update AME status
	--amy check with ame as to when updateApprovalStatuses will be available
	--so I will not need to loop.
	OPEN Items_Cur(p_not_key, p_line_num);
Line: 1855

	        --update AME with response
        	IF l_result = 'WFAPPROVED' THEN
        	        AME_API2.updateApprovalStatus2(applicationIdIn => 200,
                                transactionIdIn     => to_char(p_invoice_id),
                                approvalStatusIn    => AME_UTIL.approvedStatus,
                                approverNameIn  => l_name,
                                transactionTypeIn =>  'APINV',
				itemClassIn	=> l_item_class,
				itemIdIn	=> l_item_id);
Line: 1865

        	        AME_API2.updateApprovalStatus2(applicationIdIn => 200,
                                transactionIdIn     => to_char(p_invoice_id),
                                approvalStatusIn    => AME_UTIL.rejectStatus,
                                approverNameIn  => l_name,
                                transactionTypeIn =>  'APINV',
				itemClassIn	=> l_item_class,
				itemIdIn	=> l_item_id);
Line: 1941

	SELECT
      			PV.vendor_name,
      			AI.invoice_num,
      			AI.invoice_date,
      			AI.description,
			decode(AI.source, 'ISP', u.user_name, null)
    	INTO
      			l_invoice_supplier_name,
      			l_invoice_number,
      			l_invoice_date,
      			l_invoice_description,
			l_supplier_role
    	FROM
      			ap_invoices_all AI,
     			po_vendors PV,
      			po_vendor_sites_all PVS,
			fnd_user u
    	WHERE
      			AI.invoice_id = l_invoice_id AND
      			AI.vendor_id = PV.vendor_id AND
      			AI.vendor_site_id = PVS.vendor_site_id(+) and
	 		u.user_id = ai.created_by;
Line: 2008

	l_parameter_list.delete;
Line: 2069

		SELECT Invoice_Id, Invoice_Iteration, Notification_Key,
			Notification_Iteration
		INTO l_invoice_id, l_iteration, l_not_key, l_not_it
		FROM AP_APINV_APPROVERS
		WHERE Invoice_Key = itemkey
		AND Notification_Status = 'PEND'
		AND ROWNUM = 1;
Line: 2096

		SELECT Invoice_Id, Invoice_Iteration, Notification_Key,
			Notification_Iteration, Role_Name, orig_system_id
		INTO l_invoice_id, l_iteration, l_not_key, l_not_it
			, l_role, l_orig_id
		FROM AP_APINV_APPROVERS
		WHERE Notification_Key = itemkey
		AND ROWNUM = 1;
Line: 2148

		SELECT
      			PV.vendor_name,
      			PVS.vendor_site_code,
      			AI.invoice_num,
      			AI.invoice_date,
      			AI.description,
      			NVL(AI.invoice_amount, 0),
      			AI.invoice_currency_code
    		INTO
      			l_invoice_supplier_name,
      			l_invoice_supplier_site,
      			l_invoice_number,
      			l_invoice_date,
      			l_invoice_description,
      			l_invoice_total,
      			l_invoice_currency_code
    		FROM
      			ap_invoices_all AI,
     			 po_vendors PV,
      			po_vendor_sites_all PVS
    		WHERE
      			AI.invoice_id = l_invoice_id AND
      			AI.vendor_id = PV.vendor_id AND
      			AI.vendor_site_id = PVS.vendor_site_id(+);
Line: 2268

PROCEDURE Insert_Header_History(
                        p_inv_aprvl_hist IN ap_iaw_pkg.r_inv_aprvl_hist) IS

	l_api_name	CONSTANT VARCHAR2(200) := 'Insert_Header_History';
Line: 2285

        SELECT AP_INV_APRVL_HIST_S.nextval
        INTO l_hist_id
        FROM dual;
Line: 2289

	SELECT max(notification_order) + 1
	INTO l_not_cnt
	FROM ap_inv_aprvl_hist_all
	WHERE invoice_id = p_inv_aprvl_hist.invoice_id
	AND  iteration = p_inv_aprvl_hist.iteration;
Line: 2295

	--insert into the history table
        INSERT INTO  AP_INV_APRVL_HIST_ALL
        (APPROVAL_HISTORY_ID
        ,INVOICE_ID
        ,ITERATION
        ,RESPONSE
        ,APPROVER_ID
        ,CREATED_BY
        ,CREATION_DATE
        ,LAST_UPDATE_DATE
        ,LAST_UPDATED_BY
        ,LAST_UPDATE_LOGIN
        ,ORG_ID
        ,AMOUNT_APPROVED
	,NOTIFICATION_ORDER)
        VALUES (
        l_hist_id
        ,p_inv_aprvl_hist.invoice_id
        ,p_inv_aprvl_hist.iteration
        ,p_inv_aprvl_hist.response
        ,p_inv_aprvl_hist.approver_id
        ,p_inv_aprvl_hist.created_by
        ,p_inv_aprvl_hist.creation_date
        ,p_inv_aprvl_hist.last_update_date
        ,p_inv_aprvl_hist.last_updated_by
        ,p_inv_aprvl_hist.last_update_login
        ,p_inv_aprvl_hist.org_id
        ,p_inv_aprvl_hist.amount_approved
	,l_not_cnt);
Line: 2328

          WF_CORE.CONTEXT('APINVLDP','Insert_Header_History');
Line: 2331

END Insert_Header_History;
Line: 2336

PROCEDURE Insert_Header_History(itemtype IN VARCHAR2,
                        itemkey IN VARCHAR2,
			p_type IN VARCHAR2 ) IS

	l_approver_id		NUMBER;
Line: 2346

	l_api_name	CONSTANT VARCHAR2(200) := 'Insert_Header_History';
Line: 2387

        SELECT AP_INV_APRVL_HIST_S.nextval
        INTO l_hist_id
        FROM dual;
Line: 2391

	SELECT max(nvl(notification_order,0)) + 1
        INTO l_not_cnt
        FROM ap_inv_aprvl_hist_all
        WHERE invoice_id = l_invoice_id
        AND  iteration = l_iteration;
Line: 2398

 	--insert into the history table
        INSERT INTO  AP_INV_APRVL_HIST_ALL
        (APPROVAL_HISTORY_ID
        ,INVOICE_ID
        ,ITERATION
        ,RESPONSE
        ,APPROVER_ID
        ,CREATED_BY
        ,CREATION_DATE
        ,LAST_UPDATE_DATE
        ,LAST_UPDATED_BY
        ,LAST_UPDATE_LOGIN
        ,ORG_ID
        ,AMOUNT_APPROVED
	,NOTIFICATION_ORDER)
        VALUES (
        l_hist_id
        ,l_invoice_id
        ,l_iteration
        ,'PENDING'
        ,l_approver_id
        ,-1 --nvl(TO_NUMBER(FND_PROFILE.VALUE('USER_ID')),-1)
        ,sysdate
        ,sysdate
        ,-1 --nvl(TO_NUMBER(FND_PROFILE.VALUE('USER_ID')),-1)
        ,-1 --nvl(TO_NUMBER(FND_PROFILE.VALUE('LOGIN_ID')),-1)
        ,l_org_id
        ,l_amount
	,l_not_cnt);
Line: 2431

          WF_CORE.CONTEXT('APINVLDP','Insert_Header_History',itemtype,
					itemkey);
Line: 2435

END Insert_Header_History;
Line: 2440

PROCEDURE Insert_Line_History(
                        p_line_aprvl_hist IN ap_iaw_pkg.r_line_aprvl_hist) IS

	l_api_name      CONSTANT VARCHAR2(200) := 'Insert_Line_History';
Line: 2456

		SELECT AP_INV_APRVL_HIST_S.nextval
        	INTO l_hist_id
        	FROM dual;
Line: 2460

		SELECT max(notification_order) + 1
        	INTO l_not_cnt
        	FROM ap_line_aprvl_hist
        	WHERE invoice_id = p_line_aprvl_hist.invoice_id
        	AND  iteration = p_line_aprvl_hist.iteration
		AND line_number = p_line_aprvl_hist.line_number;
Line: 2468

                INSERT INTO  AP_LINE_APRVL_HIST
                (LINE_APRVL_HISTORY_ID
                ,LINE_NUMBER
                ,INVOICE_ID
                ,ITERATION
                ,RESPONSE
                ,APPROVER_ID
                --,NOTIFICATION_KEY
                ,LINE_AMOUNT_APPROVED
                ,CREATED_BY
                ,CREATION_DATE
                ,LAST_UPDATE_DATE
                ,LAST_UPDATED_BY
                ,LAST_UPDATE_LOGIN
                ,ORG_ID
                ,ITEM_CLASS
                ,ITEM_ID
		,NOTIFICATION_ORDER)
                VALUES (
                l_hist_id
                ,p_line_aprvl_hist.line_number
                ,p_line_aprvl_hist.invoice_id
                ,p_line_aprvl_hist.iteration
                ,'PENDING'
                ,p_line_aprvl_hist.approver_id
                --,p_line_aprvl_hist.notification_key
                ,p_line_aprvl_hist.line_amount_approved
                ,p_line_aprvl_hist.created_by
                ,p_line_aprvl_hist.creation_date
                ,p_line_aprvl_hist.last_update_date
                ,p_line_aprvl_hist.last_updated_by
                ,p_line_aprvl_hist.last_update_login
                ,p_line_aprvl_hist.org_id
                ,p_line_aprvl_hist.item_class
                ,p_line_aprvl_hist.item_id
		,l_not_cnt);
Line: 2508

          WF_CORE.CONTEXT('APINVLDP','Insert_Line_History');
Line: 2511

END Insert_Line_History;
Line: 2517

PROCEDURE Insert_Line_History(itemtype IN VARCHAR2,
                        itemkey IN VARCHAR2,
			P_type IN VARCHAR2 ) IS

	l_approver_id		NUMBER;
Line: 2527

	l_api_name	CONSTANT VARCHAR2(200) := 'Insert_Line_History';
Line: 2537

	SELECT Line_Number, item_class, item_id
	FROM AP_APINV_APPROVERS
	WHERE Notification_Key = itemkey
	GROUP BY Line_Number, item_class, item_id;
Line: 2584

		SELECT AP_INV_APRVL_HIST_S.nextval
        	INTO l_hist_id
        	FROM dual;
Line: 2588

		SELECT max(nvl(notification_order,0)) + 1
                INTO l_not_cnt
                FROM ap_line_aprvl_hist
                WHERE invoice_id = l_invoice_id
                AND  iteration = l_iteration
                AND line_number = l_line_num;
Line: 2595

 		--insert into the history table
        	INSERT INTO  AP_LINE_APRVL_HIST
        	(LINE_APRVL_HISTORY_ID
		,LINE_NUMBER
        	,INVOICE_ID
        	,ITERATION
        	,RESPONSE
        	,APPROVER_ID
		,NOTIFICATION_KEY
		,LINE_AMOUNT_APPROVED
        	,CREATED_BY
        	,CREATION_DATE
        	,LAST_UPDATE_DATE
        	,LAST_UPDATED_BY
        	,LAST_UPDATE_LOGIN
        	,ORG_ID
		,ITEM_CLASS
		,ITEM_ID
		,NOTIFICATION_ORDER)
        	VALUES (
        	l_hist_id
		,l_line_num
        	,l_invoice_id
        	,l_iteration
        	,'PENDING'
        	,l_approver_id
		,itemkey
		,l_line_amt
              	,nvl(TO_NUMBER(FND_PROFILE.VALUE('USER_ID')),-1)
      		,sysdate
        	,sysdate
       		,nvl(TO_NUMBER(FND_PROFILE.VALUE('USER_ID')),-1)
        	,nvl(TO_NUMBER(FND_PROFILE.VALUE('LOGIN_ID')),-1)
        	,l_org_id
		,l_item_class
		,l_item_id
		,l_not_cnt);
Line: 2639

          WF_CORE.CONTEXT('APINVLDP','Insert_Line_History',itemtype, itemkey);
Line: 2642

END Insert_Line_History;
Line: 2644

/*This procedure updates the pending record in the history table with the
result values returned by the notification.  It will also set the line status
to Rejected, if that is the approver's response.*/
PROCEDURE Update_Header_History(itemtype IN VARCHAR2,
			actid IN NUMBER,
                        itemkey IN VARCHAR2) IS

	l_invoice_id    NUMBER(15);
Line: 2660

	l_api_name      CONSTANT VARCHAR2(200) := 'Update_Header_History';
Line: 2697

	--update history table status
	--If this is an escalation approver, need condition
        --to avoid clobbering original approvers record.
	Update ap_inv_aprvl_hist_all
	Set Response = l_result
	    ,Approver_Comments = l_comments
	    ,Last_Update_Date = sysdate
            ,Last_Updated_By = l_user_id
            ,Last_Update_Login = l_login_id
	Where invoice_id = l_invoice_id
	AND iteration = l_iteration
	And Response = 'PENDING';
Line: 2715

               UPDATE AP_INVOICES
               SET wfapproval_status = l_result
		,Last_Update_Date = sysdate
            	,Last_Updated_By = l_user_id
            	,Last_Update_Login = l_login_id
               WHERE invoice_id = l_invoice_id
                AND wfapproval_status = 'INITIATED';
Line: 2728

          WF_CORE.CONTEXT('APINVLPN','Update_Header_History',itemtype, itemkey,
                                  to_char(actid));
Line: 2732

End Update_Header_History;
Line: 2734

/*This procedure updates the pending record in the history table with the
result values returned by the notification.  It will also set the line status
to Rejected, if that is the approver's response.*/

PROCEDURE Update_Line_History(
                        p_invoice_id IN NUMBER,
                        p_line_num IN NUMBER,
			p_response IN VARCHAR2,
			p_comments IN VARCHAR2) IS

        l_api_name      CONSTANT VARCHAR2(200) := 'Update_Line_History';
Line: 2758

	--update line history table status
        --If this is an escalation approver, need
        --condition to avoid clobbering original approvers record.
        Update ap_line_aprvl_hist_all
        Set Response = p_response
            ,Approver_Comments = p_comments
            ,Last_Update_Date = sysdate
            ,Last_Updated_By = -1
            ,Last_Update_Login = -1
        Where  invoice_id = p_invoice_id
	AND line_number = p_line_num
        And Response = 'PENDING';
Line: 2774

               UPDATE AP_INVOICE_LINES
               SET wfapproval_status = p_response
                ,Last_Update_Date = sysdate
                ,Last_Updated_By = -1
                ,Last_Update_Login = -1
               WHERE invoice_id = p_invoice_id
                AND wfapproval_status <> 'MANUALLY APPROVED'
                AND line_number = p_line_num;
Line: 2789

          WF_CORE.CONTEXT('APINVLPN','Update_Line_History');
Line: 2793

END Update_Line_History;
Line: 2795

PROCEDURE Update_Line_History(itemtype IN VARCHAR2,
			actid IN NUMBER,
                        itemkey IN VARCHAR2) IS

	l_invoice_id    NUMBER(15);
Line: 2807

	l_api_name      CONSTANT VARCHAR2(200) := 'Update_Line_History';
Line: 2840

	--update line history table status
	--If this is an escalation approver, need
	--condition to avoid clobbering original approvers record.
	Update ap_line_aprvl_hist_all
	Set Response = l_result
	    ,Approver_Comments = l_comments
	    ,Last_Update_Date = sysdate
            ,Last_Updated_By = l_user_id
            ,Last_Update_Login = l_login_id
	Where Notification_key = itemkey
	And Response = 'PENDING';
Line: 2855

               UPDATE AP_INVOICE_LINES
               SET wfapproval_status = l_result
		,Last_Update_Date = sysdate
            	,Last_Updated_By = l_user_id
            	,Last_Update_Login = l_login_id
               WHERE invoice_id = l_invoice_id
                AND wfapproval_status <> 'MANUALLY APPROVED'
		AND line_number in (SELECT line_number
					FROM ap_apinv_approvers
					WHERE notification_key = itemkey);
Line: 2870

          WF_CORE.CONTEXT('APINVLPN','Update_Line_History',itemtype, itemkey,
                                  to_char(actid));
Line: 2874

END Update_Line_History;
Line: 2929

	SELECT Item_Class, Item_Id
	FROM AP_LINE_APRVL_HIST_ALL
	WHERE Invoice_ID = p_invoice_id
	AND Line_Number = p_line_num
	GROUP BY Item_Class, Item_Id;
Line: 2993

	SELECT Item_Class, Item_Id, Role_Name, Invoice_Key, Notification_Key
	FROM AP_APINV_APPROVERS
	WHERE Invoice_ID = p_invoice_id
	AND NOTIFICATION_STATUS = 'SENT'
	GROUP BY Item_Class, Item_Id, Role_Name, Invoice_Key, Notification_Key
	ORDER BY Notification_Key;
Line: 3001

        SELECT Item_Class, Item_Id, Role_Name, Invoice_Key, Notification_Key
        FROM AP_APINV_APPROVERS
        WHERE Invoice_ID = p_invoice_id
	AND Line_Number = p_line_number
        AND NOTIFICATION_STATUS = 'SENT'
        GROUP BY Item_Class, Item_Id, Role_Name, Invoice_Key, Notification_Key
        ORDER BY Notification_Key;
Line: 3034

        select approval_iteration
        into   l_approval_iteration
        from   ap_invoices
        where  invoice_id=p_invoice_id;
Line: 3042

          SELECT  end_date
          INTO    l_end_date
          FROM    wf_items
          WHERE   item_type = 'APINVLDP'
          AND     item_key  = l_invoice_key;
Line: 3079

		AME_API2.updateApprovalStatus2(applicationIdIn => 200,
                                transactionIdIn     => to_char(l_invoice_id),
                                approvalStatusIn    => AME_UTIL.nullStatus,
                                approverNameIn  => l_name,
                                transactionTypeIn =>  'APINV',
                                itemClassIn     => l_item_class,
                                itemIdIn        => l_item_id);
Line: 3116

                AME_API2.updateApprovalStatus2(applicationIdIn => 200,
                                transactionIdIn     => to_char(l_invoice_id),
                                approvalStatusIn    => AME_UTIL.nullStatus,
                                approverNameIn  => l_name,
                                transactionTypeIn =>  'APINV',
                                itemClassIn     => l_item_class,
                                itemIdIn        => l_item_id);
Line: 3163

	SELECT  Invoice_Key, Notification_Key, Invoice_ID, Notification_status
	FROM AP_APINV_APPROVERS
	GROUP BY Invoice_Key, Notification_Key, Invoice_Id, Notification_Status
	ORDER BY Notification_Key;
Line: 3207

		--we only need to update at the header level once
		IF l_invoice_key <> nvl(l_old_inv_key, 'dummy') THEN

			WF_Engine.abortProcess(
			itemType => 'APINVLDP',
			itemKey  => l_invoice_key,
			process => 'APPROVAL_STAGING');
Line: 3226

	DELETE FROM AP_APINV_APPROVERS;
Line: 3229

	UPDATE  ap_invoice_lines_all
    	SET  wfapproval_status = 'NOT REQUIRED'
  	WHERE  wfapproval_status in ('INITIATED','REQUIRED','REJECTED',
					'NEEDS REAPPROVAL','STOPPED');
Line: 3235

	UPDATE  ap_invoices_all
    	SET  wfapproval_status = 'NOT REQUIRED'
  	WHERE  wfapproval_status in ('INITIATED','REQUIRED','REJECTED',
					'NEEDS REAPPROVAL','STOPPED');
Line: 3277

	SELECT dist_code_combination_id,set_of_books_id
	INTO l_ccid,l_sob
	FROM ap_invoice_distributions_all
	WHERE invoice_distribution_id=p_dist_id;
Line: 3282

	SELECT chart_of_accounts_id
        INTO l_chart_of_accounts_id
        FROM gl_sets_of_books
       WHERE set_of_books_id = l_sob;
Line: 3362

		  SELECT organization
		    INTO l_return_val
		    FROM PA_EXP_ORGS_IT
		   WHERE organization_id=(SELECT expenditure_organization_id
				       FROM ap_invoices_all
				       WHERE invoice_id = p_invoice_id);
Line: 3371

			SELECT count(invoice_distribution_id)
			INTO l_count_pa_rel
			FROM ap_invoice_distributions_all
			WHERE invoice_id = p_invoice_id
			AND project_id is not null;
Line: 3387

			SELECT sum(decode(po_header_id, null, 0, 1)),
					count(line_number)
			INTO l_sum_matched, l_item_count
			FROM ap_invoice_lines_all
			WHERE invoice_id = p_invoice_id
			AND line_type_lookup_code = 'ITEM';
Line: 3402

			SELECT sum(decode(tax_already_calculated_flag, 'Y',
					1, 0)), count(line_number)
                        INTO l_sum_calc, l_line_count
                        FROM ap_invoice_lines_all
                        WHERE invoice_id = p_invoice_id
                        AND line_type_lookup_code not in ('TAX','AWT');
Line: 3421

		   SELECT employee_number
		     INTO l_return_val
		     FROM per_all_people_f pap
		    WHERE person_id = (SELECT ph.agent_id
			   FROM ap_invoice_distributions_all aid,
				po_distributions_all pd,
				po_headers_all ph
			   WHERE pd.po_distribution_id =
				aid.po_distribution_id
			   AND  pd.po_header_id = ph.po_header_id
			   AND aid.invoice_distribution_id =
						p_sub_class_id
			   AND pd.creation_date >= pap.effective_start_date
                           AND pd.creation_date <=
                                      nvl(pap.effective_end_date,sysdate));
Line: 3440

		  SELECT employee_number
                    INTO l_return_val
                    FROM per_all_people_f pap
		   WHERE person_id = (
                        SELECT pd.deliver_to_person_id
                          FROM ap_invoice_distributions_all aid,
                               po_distributions_all pd
                         WHERE pd.po_distribution_id =
                               aid.po_distribution_id
                           AND aid.invoice_distribution_id =
                                      p_sub_class_id
			   AND pd.creation_date >= pap.effective_start_date
			   AND pd.creation_date <=
                                      nvl(pap.effective_end_date,sysdate));
Line: 3458

			SELECT decode(po_header_id, null, 'N', 'Y')
                        INTO l_return_val
                        FROM ap_invoice_lines_all
                        WHERE invoice_id = p_invoice_id
                        AND line_number = p_sub_class_id;
Line: 3494

	INSERT 	INTO	AP_HOLDS_all(
                INVOICE_ID,
                LINE_LOCATION_ID,
                HOLD_LOOKUP_CODE,
                LAST_UPDATE_DATE,
                LAST_UPDATED_BY,
                HELD_BY,
                HOLD_DATE,
                HOLD_REASON,
                RELEASE_LOOKUP_CODE,
                RELEASE_REASON,
                STATUS_FLAG,
                LAST_UPDATE_LOGIN,
                CREATION_DATE,
                CREATED_BY,
                ATTRIBUTE_CATEGORY,
                ATTRIBUTE1,
                ATTRIBUTE2,
                ATTRIBUTE3,
                ATTRIBUTE4,
                ATTRIBUTE5,
                ATTRIBUTE6,
                ATTRIBUTE7,
                ATTRIBUTE8,
                ATTRIBUTE9,
                ATTRIBUTE10,
                ATTRIBUTE11,
                ATTRIBUTE12,
                ATTRIBUTE13,
                ATTRIBUTE14,
                ATTRIBUTE15,
                ORG_ID,
                RESPONSIBILITY_ID,
                RCV_TRANSACTION_ID,
                LINE_NUMBER)
	select 	il.invoice_id invoice_id,
		NULL,
		hc.hold_lookup_code,
		sysdate,
		fnd_global.user_id,
		fnd_global.user_id,
		sysdate,
		hc.description description,
		NULL,
		NULL,
		'S',
		NULL,
		sysdate,
		fnd_global.user_id,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		fnd_global.org_id,
		null,
		null,
		il.line_number line_number
	from	ap_invoice_lines_all il,
		po_lines_all pl,
		ap_hold_codes hc
	where	il.invoice_id = p_invoice_id
	and	il.po_line_location_id is not null
	and	pl.po_line_id = il.po_line_id
	and	pl.unit_price <> il.unit_price
	and	hc.hold_lookup_code = 'PRICE'
	and 	il.line_type_lookup_code = 'ITEM'
	UNION ALL
	select 	il.invoice_id invoice_id,
			NULL,
		hc.hold_lookup_code,
		sysdate,
		fnd_global.user_id,
		fnd_global.user_id,
		sysdate,
		hc.description description,
		NULL,
		NULL,
		'S',
		NULL,
		sysdate,
		fnd_global.user_id,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		fnd_global.org_id,
		null,
		null,
		il.line_number line_number
	from	ap_invoice_lines_all il,
		po_line_locations_all ll,
		ap_hold_codes hc
	where	il.invoice_id = p_invoice_id
	and	il.po_line_location_id = ll.line_location_id
	and	il.quantity_invoiced > ll.quantity_received
	and	hc.hold_lookup_code = 'QTY REC'
	and 	il.line_type_lookup_code = 'ITEM'
	UNION ALL
	select 	il.invoice_id invoice_id,
		NULL,
		hc.hold_lookup_code,
		sysdate,
		fnd_global.user_id,
		fnd_global.user_id,
		sysdate,
		hc.description description,
		NULL,
		NULL,
		'S',
		NULL,
		sysdate,
		fnd_global.user_id,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		fnd_global.org_id,
		null,
		null,
		il.line_number line_number
	from	ap_invoice_lines_all il,
		po_line_locations_all ll,
		ap_hold_codes hc
	where	il.invoice_id = p_invoice_id
	and	il.po_line_location_id = ll.line_location_id
	and	il.quantity_invoiced > ll.quantity
	and	hc.hold_lookup_code = 'QTY ORD'
	and 	il.line_type_lookup_code = 'ITEM'
	UNION ALL
	select 	il.invoice_id invoice_id,
		NULL,
		hc.hold_lookup_code,
		sysdate,
		fnd_global.user_id,
		fnd_global.user_id,
		sysdate,
		hc.description description,
		NULL,
		NULL,
		'S',
		NULL,
		sysdate,
		fnd_global.user_id,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		fnd_global.org_id,
		null,
		null,
		il.line_number line_number
	from	ap_invoice_lines_all il,
		po_line_locations_all ll,
		ap_hold_codes hc
	where	il.invoice_id = p_invoice_id
	and	il.po_line_location_id = ll.line_location_id
	and	il.amount > ll.amount
	and	hc.hold_lookup_code = 'AMT ORD'
	and 	il.line_type_lookup_code = 'ITEM'
	UNION ALL
	select 	il.invoice_id invoice_id,
		NULL,
		hc.hold_lookup_code,
		sysdate,
		fnd_global.user_id,
		fnd_global.user_id,
		sysdate,
		hc.description description,
		NULL,
		NULL,
		'S',
		NULL,
		sysdate,
		fnd_global.user_id,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		null,
		fnd_global.org_id,
		null,
		null,
		il.line_number line_number
	from	ap_invoice_lines_all il,
		po_line_locations_all ll,
		ap_hold_codes hc
	where	il.invoice_id = p_invoice_id
	and	il.po_line_location_id = ll.line_location_id
	and	il.amount > ll.amount_received
	and	hc.hold_lookup_code = 'AMT REC'
	and 	il.line_type_lookup_code = 'ITEM';
Line: 3765

	update 	ap_invoice_lines_all il
	set	disputable_flag = 'Y'
	where	il.invoice_id = l_invoice_id
	and	il.org_id = l_org_id
	and	il.line_type_lookup_code = 'ITEM'
        -- bug 4611844
	-- non-po matched or
	-- po_matched: driven by line_location_id
        and	( il.po_line_location_id is null
		  or (exists
			(select	h.line_location_id
			 from	ap_holds_all h
			 where	h.invoice_id = l_invoice_id
			 and	h.org_id = l_org_id
	        	 and    il.po_line_location_id = h.line_location_id
			 and	h.status_flag = 'S'
			 and	h.hold_lookup_code in ('PRICE', 'QTY ORD', 'QTY REC', 'AMT ORD', 'AMT REC'))));
Line: 3783

	select 	count(*)
	into	l_num
	from	ap_invoice_lines_all
	where 	invoice_id = l_invoice_id
	and	org_id = l_org_id
	and	disputable_flag = 'Y';
Line: 3815

select count(*)
into   l_num
from  ap_holds_all
	where	invoice_id = l_invoice_id
	and	org_id = l_org_id
	and	hold_lookup_code in ('QTY REC', 'AMT REC');
Line: 3851

    select line_number
    from   ap_invoice_lines_all
    where  invoice_id = p_invoice_id
    and    line_type_lookup_code = 'ITEM'
    and    nvl(disputable_flag, 'N' ) = 'Y';
Line: 3870

PROCEDURE insert_approver_rec(p_item_key IN VARCHAR2,
					p_invoice_id IN NUMBER,
					p_invoice_iteration IN NUMBER,
                              p_mapping_tbl IN tLineApprovers,
                              p_invoice_source IN VARCHAR2,
                              p_ext_user_name  IN VARCHAR2) as

  l_org_id              ap_invoices_all.org_id%TYPE;
Line: 3880

  l_api_name	     	CONSTANT VARCHAR2(200) := 'insert_approver_rec';
Line: 3895

    insert into ap_apinv_approvers (
		invoice_id,
 		invoice_iteration,
		invoice_key,
		line_number,
		notification_iteration,
		notification_key,
		notification_status,
		role_name,
		orig_system,
		orig_system_id,
		external_role_name,
		approval_status,
		access_control_flag,
		source,
		last_updated_by,
		last_update_date,
		created_by,
		creation_date,
		program_application_id,
		program_id,
		program_update_date,
		request_id)
	    VALUES (
		p_invoice_id,
		p_invoice_iteration,
		p_item_key,
		p_mapping_tbl(i).line_number,
		l_notif_iter,
		l_notif_key,
		'PEND',
		p_mapping_tbl(i).role_name,
		'PER',
		p_mapping_tbl(i).approver_id,
		decode(p_invoice_source,'ISP', p_ext_user_name, null),
		'NEGOTIATE',
		'I',
		p_invoice_source,
		nvl(TO_NUMBER(FND_PROFILE.VALUE('USER_ID')), -1),
		sysdate,
		nvl(TO_NUMBER(FND_PROFILE.VALUE('LOGIN_ID')), -1),
		sysdate,
		200,
		0,
		sysdate,
		0);
Line: 3959

end insert_approver_rec;
Line: 3997

    select ail.line_number, pll.work_approver_id, wfr.name
    from   ap_invoice_lines_all ail,
           po_line_locations_all pll,
           ap_invoices_all ai,
           wf_local_roles wfr
    where  ai.invoice_id = l_invoice_id
    and    ai.invoice_id = ail.invoice_id
    and    ai.invoice_type_lookup_code in ('STANDARD', 'CREDIT', 'PREPAYMENT')
    and    ail.line_type_lookup_code = 'ITEM'
    and    nvl(ail.disputable_flag, 'N') = 'Y'
    and    pll.line_location_id = ail.po_line_location_id
    and    pll.work_approver_id = wfr.orig_system_id
    and    wfr.orig_system = 'PER';
Line: 4013

    select ph.agent_id, ail.line_number, wfr.name
    from   ap_invoice_lines_all ail,
           po_headers_all ph,
           ap_invoices_all ai,
           wf_local_roles wfr
    where  ai.invoice_id = l_invoice_id
    and    ai.invoice_id = ail.invoice_id
    and    ai.invoice_type_lookup_code in ('STANDARD', 'CREDIT', 'PREPAYMENT')
    and    ail.line_type_lookup_code = 'ITEM'
    and    nvl(ail.disputable_flag, 'N') = 'Y'
    and    ail.po_header_id = ph.po_header_id
    and    ph.agent_id = wfr.orig_system_id
    and    wfr.orig_system = 'PER';
Line: 4034

    select ail.requester_id, ail.line_number, wfr.name
    from   ap_invoice_lines_all ail,
           ap_invoices_all ai,
           wf_local_roles wfr
    where  ai.invoice_id = l_invoice_id
    and    ai.invoice_id = ail.invoice_id
    and    ai.invoice_type_lookup_code in ('STANDARD', 'CREDIT', 'PREPAYMENT')
    and    ail.line_type_lookup_code = 'ITEM'
    and    nvl(ail.disputable_flag, 'N') = 'Y'
    and    ail.requester_id = wfr.orig_system_id
    and    wfr.orig_system = 'PER';
Line: 4048

    select pt.task_manager_person_id, ail.line_number, wfr.name
    from   ap_invoice_lines_all ail,
           ap_invoices_all ai,
           pa_tasks pt,
           wf_local_roles wfr
    where  ai.invoice_id = l_invoice_id
    and    ai.invoice_id = ail.invoice_id
    and    ai.invoice_type_lookup_code in ('STANDARD', 'CREDIT', 'PREPAYMENT')
    and    ail.line_type_lookup_code = 'ITEM'
    and    nvl(ail.disputable_flag, 'N') = 'Y'
    and    ail.project_id = pt.project_id
    and    ail.task_id = pt.task_id
    and    pt.task_manager_person_id = wfr.orig_system_id
    and    wfr.orig_system = 'PER';
Line: 4087

  select ai.invoice_type_lookup_code, ai.internal_contact_email,
         ai.source, u.user_name
  into   l_invoice_type, l_internal_contact_email,
         l_source, l_ext_user_name
  from   ap_invoices_all ai,
         fnd_user u
  where  invoice_id = l_invoice_id
  and    u.user_id = ai.created_by
  and    trunc(sysdate) between trunc(u.start_date)
	 and trunc(nvl(u.end_date, sysdate+1));
Line: 4127

      select count(*)
      into   l_adhoc_role_count
      from   wf_local_roles
      where  name = l_adhoc_role_name
      and    display_name = l_adhoc_display_name;
Line: 4243

    insert_approver_rec(itemkey, l_invoice_id, l_invoice_iteration,
	l_line_appr_tbl, l_source, l_ext_user_name);
Line: 4251

      update ap_invoice_lines_all
      set    line_owner_role = l_line_appr_tbl(i).role_name
      where  invoice_id = l_invoice_id
      and    line_number = l_line_appr_tbl(i).line_number
      and    line_type_lookup_code = 'ITEM'
      and    line_owner_role is null
      and    disputable_flag = 'Y';
Line: 4290

	  select distinct il.line_owner_role, i.source, u.user_name
	  from	 ap_invoice_lines_all il,
		 ap_invoices_all i,
		 fnd_user u
	  where	 il.line_owner_role is not null
	  and 	 il.line_type_lookup_code = 'ITEM'
          and	 i.invoice_id = l_invoice_id
	  and 	 i.org_id = l_org_id
	  and	 i.invoice_id = il.invoice_id
	  and 	 il.org_id = l_org_id
	  and 	 u.user_id = i.created_by;
Line: 4315

	  insert into ap_apinv_approvers
            (	invoice_id,
		invoice_key,
		notification_key,
		role_name,
		external_role_name,
		approval_status,
		access_control_flag,
		source)
	    values
            (	l_invoice_id,
		itemKey,
		l_notif_key,
		l_rec.line_owner_role,
		decode(l_rec.source,'ISP', l_rec.user_name, null),
		'NEGOTIATE',
		'I',
		l_rec.source);
Line: 4354

	select 	count(*)
	into	l_num
	from	ap_invoice_lines_all
	where	org_id = l_org_id
	and	invoice_id = l_invoice_id
	and	line_owner_role is null
	and 	line_type_lookup_code = 'ITEM';
Line: 4389

	update 	ap_invoice_lines_all
	set	line_owner_role = l_role
	where	invoice_id = l_invoice_id
	and	org_id = l_org_id
	and	line_type_lookup_code = 'ITEM'
	and	line_owner_role is null
	and	disputable_flag = 'Y';
Line: 4413

	select 	count(*)
	into	l_num
	from	ap_apinv_approvers
	where	invoice_id = l_invoice_id
	and	invoice_key = itemKey
	and 	notification_status is NULL;
Line: 4446

		select 	'X'
		into	l_f
		from	dual
		where	exists(	select 'e' from ap_invoices_all
				where invoice_id = l_invoice_id and
				org_id = l_org_id and wfapproval_status = 'REJECTED'
				union all
				select 'e' from ap_invoice_lines_all
				where invoice_id = l_invoice_id and
				org_id = l_org_id and wfapproval_status = 'REJECTED');
Line: 4487

  	  select 	rowid, notification_key
	  from		ap_apinv_approvers
	  where		notification_status is null
	  and		invoice_id = l_invoice_id
	  and		invoice_key = itemKey
	  for 		update;
Line: 4495

  	  select 	distinct role_name,  notification_key
	  from		ap_apinv_approvers
	  -- for dispute child process, we use role_name for grouping
  	  -- notification_key is not necessary
	  where         notification_status = 'PEND'
	  and		invoice_id = l_invoice_id
	  and		invoice_key = itemKey;
Line: 4533

	SELECT
      			PV.vendor_name,
      			AI.invoice_num,
      			AI.invoice_date,
      			AI.description
    	INTO
      			l_invoice_supplier_name,
      			l_invoice_number,
      			l_invoice_date,
      			l_invoice_description
    	FROM
      			ap_invoices_all AI,
     			po_vendors PV,
      			po_vendor_sites_all PVS
    	WHERE
      			AI.invoice_id = l_invoice_id AND
      			AI.vendor_id = PV.vendor_id AND
      			AI.vendor_site_id = PVS.vendor_site_id(+);
Line: 4575

	  update 	ap_apinv_approvers
	  set		notification_status = 'SENT'
   	  where		invoice_id = l_invoice_id
	  and   	invoice_key = itemkey
 	  and  	        role_name = l_role_name;
Line: 4597

		select 	rowid
		from	ap_apinv_approvers
		where	invoice_id = l_invoice_id
		and	notification_key = itemkey;
Line: 4613

		update	ap_apinv_approvers
		set	access_control_flag =
			decode(access_control_flag, 	'I', 'E',
							'E', 'I',
							'I')
		where	rowid = l_rowid;
Line: 4634

	delete 	from ap_apinv_approvers
	where 	invoice_id = l_invoice_id
	and 	invoice_key = itemkey;
Line: 4650

		select 	decode(access_control_flag,
			'E',EXTERNAL_ROLE_NAME, ROLE_NAME)
		from	ap_apinv_approvers
		where	invoice_id = l_invoice_id
		and	notification_key = itemkey;
Line: 4676

	l_last_updated_by number;
Line: 4677

	l_last_update_login number;
Line: 4686

	l_last_update_date date;
Line: 4693

		select 	gl_date,
			last_updated_by,
			last_update_login
		from	ap_invoices_all
		where	invoice_id = l_invoice_id
		and	org_id = l_org_id;
Line: 4710

	fetch invoice into l_accounting_date, l_last_updated_by, l_last_update_login;
Line: 4715

		l_last_updated_by,
		l_last_update_login,
		l_accounting_date,
		l_message_name,
		l_invoice_amount,
		l_base_amount,
		l_temp_cancelled_amount,
		l_cancelled_by,
		l_cancelled_amount,
		l_cancelled_date,
		l_last_update_date,
		l_original_prepayment_amount,
		l_pay_curr_invoice_amount,
		l_token,
		null);
Line: 4751

	update 	ap_invoice_lines_all
	set	disputable_flag = 'N'
	where	invoice_id = l_invoice_id
	and	org_id = l_org_id
	and	line_owner_role =(
			select 	ROLE_NAME
			from	ap_apinv_approvers
			where	invoice_id = l_invoice_id
			and	notification_key = itemkey);
Line: 4774

		select 	invoice_key
		from	ap_apinv_approvers
		where	invoice_id = l_invoice_id
		and	notification_key = itemkey;
Line: 4815

	select 	count(*)
	into	l_num
	from	ap_invoice_lines_all
	where	invoice_id = l_invoice_id
	and	org_id = l_org_id
	and	disputable_flag = 'Y'
	and	line_type_lookup_code = 'ITEM';
Line: 4830

PROCEDURE is_invoice_updated(	itemtype IN VARCHAR2,
                     		itemkey IN VARCHAR2,
                        	actid   IN NUMBER,
                        	funcmode IN VARCHAR2,
                        	resultout OUT NOCOPY VARCHAR2) as
	l_num number;
Line: 4846

	select 	count(*)
	into	l_num
	from	ap_invoice_lines_all
	where	invoice_id = l_invoice_id
	and	org_id = l_org_id
	and	creation_date <> last_update_date
	and	line_type_lookup_code = 'ITEM';
Line: 4870

		select 	access_control_flag
		from	ap_apinv_approvers
		where	invoice_id = l_invoice_id
		and	notification_key = itemkey;
Line: 4907

		select 	invoice_type_lookup_code
		into	l_type
		from	ap_invoices_all
		where 	invoice_id = l_invoice_id
		and	org_id = l_org_id;
Line: 4924

PROCEDURE update_to_invoice(	itemtype IN VARCHAR2,
                     		itemkey IN VARCHAR2,
                        	actid   IN NUMBER,
                        	funcmode IN VARCHAR2,
                        	resultout OUT NOCOPY VARCHAR2) as
	l_invoice_id number;
Line: 4938

	update	ap_invoices_all
	set	invoice_type_lookup_code =
		decode(invoice_type_lookup_code,
			'INVOICE REQUEST', 'STANDARD',
			'CREDIT MEMO REQUEST', 'CREDIT', 'STANDARD')
        where   invoice_id = l_invoice_id;
Line: 4984

  	  select 	rowid, notification_key
	  from		ap_apinv_approvers
	  where		notification_status is null
	  and		invoice_id = l_invoice_id
	  and		invoice_key = itemKey
	  and 		rownum = 1
	  for 		update;
Line: 5008

	SELECT
      			PV.vendor_name,
      			AI.invoice_num,
      			AI.invoice_date,
      			AI.description
    	INTO
      			l_invoice_supplier_name,
      			l_invoice_number,
      			l_invoice_date,
      			l_invoice_description
    	FROM
      			ap_invoices_all AI,
     			po_vendors PV,
      			po_vendor_sites_all PVS
    	WHERE
      			AI.invoice_id = l_invoice_id AND
      			AI.vendor_id = PV.vendor_id AND
      			AI.vendor_site_id = PVS.vendor_site_id(+);
Line: 5093

	  update 	ap_apinv_approvers
	  set		notification_status = 'STARTED'
   	  where		rowid = l_rowid;
Line: 5131

select vendor_id, set_of_books_id
into   l_vendor_id, l_set_of_books_id
from   ap_invoices_all
where  invoice_id = l_invoice_id;
Line: 5196

    UPDATE ap_holds_all
    SET  release_lookup_code = l_release_lookup_code,
         release_reason = (SELECT description
                             FROM   ap_lookup_codes
                             WHERE  lookup_code = l_release_lookup_code
                               AND    lookup_type = 'HOLD CODE'),
         last_update_date = sysdate,
         last_updated_by = 5,
         status_flag = 'R'
    WHERE invoice_id = p_invoice_id
    -- AND   nvl(line_location_id, -1) = nvl(p_line_location_id, -1)
    -- AND   nvl(rcv_transaction_id, -1) = nvl(rcv_transaction_id, -1)
    AND   hold_lookup_code = p_hold_lookup_code
    AND   nvl(status_flag, 'x') <> 'x';