DBA Data[Home] [Help]

APPS.PA_IC_INV_CNL SQL Statements

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

Line: 57

   select *
   from   pa_draft_invoice_details did
   where  project_id = p_proj_id
     and  draft_invoice_num = p_inv_num
     and  not exists
          ( select 'x'
            from pa_draft_invoice_details did1
            where did1.project_id = p_proj_id
              and did1.detail_id_reversed = did.draft_invoice_detail_id) ;
Line: 78

    l_user_id := pa_ic_inv_utils.g_last_update_login;
Line: 86

 Invoice generation process and other processes that  update invoice details.
*/

IF (pa_ic_inv_utils.Set_User_Lock (P_Project_Id) <> 0) THEN
   IF g1_debug_mode  = 'Y' THEN
   	pa_ic_inv_utils.log_message('cancel_invoice: ' || 'unable to acquire lock');
Line: 98

  update the Invoice comment to indicate that Invoice is canceled
  provided it satisfies the following criteria
+ Invoice has not been canceled earlier
+ Credit memo has not been generated for the Invoice
*/

-- This update statement also returns the agreement_id
--
 Update pa_draft_invoices
 Set canceled_flag = 'Y',
     invoice_comment =
                     (select rtrim(upper(l.meaning)||' '||
                             rtrim(substrb(i.invoice_comment,1,232)))
                      from   pa_lookups l,
                             pa_draft_invoices i
                      where  i.project_id = p_project_id
                      and    i.draft_invoice_num = p_draft_inv_num
                      and    l.lookup_type = 'INVOICE_CREDIT_TYPE'
                      AND    l.lookup_code = 'CANCEL'
                     ) ,
    last_update_date = SYSDATE,
    last_update_login = l_user_id,
    request_id        = l_request_id,
    program_application_id = l_program_application_id,
    program_id        = l_program_id
 where project_id = P_PROJECT_ID
 and draft_invoice_num = P_DRAFT_INV_NUM
 and nvl(canceled_flag, 'N') <> 'Y'
 and not exists
     (
         select null
         from pa_draft_invoices di
         where di.project_id = P_PROJECT_ID
         and di.draft_invoice_num_credited = P_DRAFT_INV_NUM
      )
 returning agreement_id into l_agreement_id;
Line: 136

/* If no rows are updated then raise the exception
   so that the ineligibility criteria is reported.
*/

if SQL%ROWCOUNT = 0 then
    IF g1_debug_mode  = 'Y' THEN
    	pa_ic_inv_utils.log_message('cancel_invoice: ' || 'raising error');
Line: 167

              Issue: As part of the MOAC changes, the org_id insertion is missing
               Fix : Org Id is inserted for the new invoices */


     INSERT INTO PA_DRAFT_INVOICES
     (
        DRAFT_INVOICE_NUM,
        PROJECT_ID,
        AGREEMENT_ID,
        LAST_UPDATE_DATE,
        LAST_UPDATED_BY,
        CREATION_DATE,
        CREATED_BY,
        TRANSFER_STATUS_CODE,
        PA_DATE,
        REQUEST_ID,
        PROGRAM_APPLICATION_ID,
        PROGRAM_ID,
        PROGRAM_UPDATE_DATE,
        BILL_THROUGH_DATE,
        WRITE_OFF_FLAG,
        UNEARNED_REVENUE_CR,
        UNBILLED_RECEIVABLE_DR,
        INVOICE_COMMENT,
        DRAFT_INVOICE_NUM_CREDITED,
        CANCEL_CREDIT_MEMO_FLAG,
        APPROVED_BY_PERSON_ID,
        APPROVED_DATE,
        GENERATION_ERROR_FLAG,
        TRANSFER_REJECTION_REASON,
        RETENTION_PERCENTAGE,
        INV_CURRENCY_CODE,
        INV_RATE_TYPE,
        INV_RATE_DATE,
        INV_EXCHANGE_RATE,
        BILL_TO_ADDRESS_ID,
        SHIP_TO_ADDRESS_ID,
        LANGUAGE,
        CC_PROJECT_ID,
        CC_INVOICE_GROUP_CODE  ,
	INVPROC_CURRENCY_CODE,
        CUSTOMER_ID,
        BILL_TO_CUSTOMER_ID,
        SHIP_TO_CUSTOMER_ID,
        BILL_TO_CONTACT_ID,
        SHIP_TO_CONTACT_ID   /*Added for 2760630*/,
        PROJFUNC_INVTRANS_RATE_TYPE, /* Added below columns for bug 4500281*/
        PROJFUNC_INVTRANS_RATE_DATE,
        PROJFUNC_INVTRANS_EX_RATE,
        ORG_ID
      )
      SELECT l_new_draft_inv_num,
             I2.PROJECT_ID,
             I2.AGREEMENT_ID,
             TRUNC(SYSDATE),
             l_user_id,
             TRUNC(SYSDATE),
             l_user_id,
             'P',
             TRUNC(SYSDATE),
             l_request_id,
             l_program_application_id,
             l_program_id,
             TRUNC(SYSDATE),
             I2.BILL_THROUGH_DATE,
             NULL,
             0,
             0,
             P.INVOICE_COMMENT,
             I2.DRAFT_INVOICE_NUM,
             'Y',
             NULL,
             TRUNC(SYSDATE),
             'N',
             NULL,
             I2.RETENTION_PERCENTAGE,
             I2.INV_CURRENCY_CODE,
             I2.INV_RATE_TYPE,
             I2.INV_RATE_DATE,
             I2.INV_EXCHANGE_RATE,
             I2.BILL_TO_ADDRESS_ID,
             I2.SHIP_TO_ADDRESS_ID,
             I2.LANGUAGE,
             I2.CC_PROJECT_ID,
             I2.CC_INVOICE_GROUP_CODE,
	     I2.INVPROC_CURRENCY_CODE,
             I2.CUSTOMER_ID,
             I2.BILL_TO_CUSTOMER_ID,
             I2.SHIP_TO_CUSTOMER_ID,
             I2.BILL_TO_CONTACT_ID,
             I2.SHIP_TO_CONTACT_ID,
             I2.PROJFUNC_INVTRANS_RATE_TYPE, /* Added below columns for bug 4500281*/
             I2.PROJFUNC_INVTRANS_RATE_DATE,
             I2.PROJFUNC_INVTRANS_EX_RATE,
             I2.ORG_ID
      FROM   PA_DRAFT_INVOICES I2, PA_PROJECTS P
      WHERE  I2.DRAFT_INVOICE_NUM = P_DRAFT_INV_NUM
      AND    I2.PROJECT_ID = P_PROJECT_ID
      AND    P.PROJECT_ID = P_PROJECT_ID;
Line: 268

        pa_ic_inv_utils.log_message('Inserting pa_draft_invoices rows = '||
                                 SQL%ROWCOUNT);
Line: 274

   The following insert statement will create all the crediting invoice
   lines.
*/

INSERT INTO PA_DRAFT_INVOICE_ITEMS
       (LINE_NUM,
        DRAFT_INVOICE_NUM,
        PROJECT_ID,
        TASK_ID,
        AMOUNT,
        INV_AMOUNT,
        LAST_UPDATE_DATE,
        LAST_UPDATED_BY,
        CREATION_DATE,
        CREATED_BY,
        TEXT,
        EVENT_TASK_ID,
        EVENT_NUM,
        REQUEST_ID,
        PROGRAM_APPLICATION_ID,
        PROGRAM_ID,
        PROGRAM_UPDATE_DATE,
        UNEARNED_REVENUE_CR,
        UNBILLED_RECEIVABLE_DR,
        DRAFT_INV_LINE_NUM_CREDITED,
        INVOICE_LINE_TYPE,
        TAXABLE_FLAG,
        SHIP_TO_ADDRESS_ID,
        OUTPUT_TAX_CLASSIFICATION_CODE,
        OUTPUT_TAX_EXEMPT_FLAG,
        OUTPUT_TAX_EXEMPT_REASON_CODE,
        OUTPUT_TAX_EXEMPT_NUMBER,
        CC_PROJECT_ID,
        CC_TAX_TASK_ID,
        CC_REV_CODE_COMBINATION_ID,
        TRANSLATED_TEXT,
	invproc_currency_code,
	projfunc_currency_code,
	projfunc_bill_amount,
	project_currency_code,
	project_bill_amount,
	funding_currency_code,
	funding_bill_amount
        )
 SELECT I2.LINE_NUM,
        l_new_draft_inv_num,
        I2.PROJECT_ID,
        I2.TASK_ID,
        -1 * AMOUNT,
        -1 * INV_AMOUNT,
        TRUNC(SYSDATE),
        l_user_id,
        TRUNC(SYSDATE),
        l_user_id,
        I2.TEXT,
        I2.EVENT_TASK_ID,
        NULL,
        l_request_id,
        l_program_application_id,
        l_program_id,
        TRUNC(SYSDATE),
        0,
        0,
        I2.LINE_NUM,
        I2.INVOICE_LINE_TYPE,
        I2.TAXABLE_FLAG,
        I2.SHIP_TO_ADDRESS_ID,
        I2.OUTPUT_TAX_CLASSIFICATION_CODE,
        I2.OUTPUT_TAX_EXEMPT_FLAG,
        I2.OUTPUT_TAX_EXEMPT_REASON_CODE,
        I2.OUTPUT_TAX_EXEMPT_NUMBER,
        I2.CC_PROJECT_ID,
        I2.CC_TAX_TASK_ID,
        I2.CC_REV_CODE_COMBINATION_ID,
        I2.TRANSLATED_TEXT,
	I2.invproc_currency_code,
	I2.projfunc_currency_code,
	-1 * I2.projfunc_bill_amount,
	I2.project_currency_code,
	-1 * I2.project_bill_amount,
	I2.funding_currency_code,
	-1 * I2.funding_bill_amount
FROM    PA_DRAFT_INVOICE_ITEMS  I2
WHERE  I2.PROJECT_ID = P_PROJECT_ID
AND    I2.DRAFT_INVOICE_NUM = P_DRAFT_INV_NUM;
Line: 361

       pa_ic_inv_utils.log_message('Inserting pa_draft_invoice_items rows = '||
                                 SQL%ROWCOUNT);
Line: 370

   but the reversing  invoice details will be updated with the new Invoice
   number and line number.
*/

/* Open the cursor to fetch the non reversed invoice details of
   the original invoice .
   For each row create reversing invoice details using the table
   handlers.
*/

   l_EI_upd_cnt := 0;
Line: 404

   /* Store the values in local tables to be used later for EI update */

   l_expenditure_item_id (l_EI_upd_cnt)
                     := l_inv_detail_rec.expenditure_item_id;
Line: 448

/* Update the existing reversing invoice details ,
   these rows will already have the columns orig_draft_invoice_num
   and orig_draft_invoice_line_num populated */

   UPDATE PA_DRAFT_INVOICE_DETAILS
      SET DRAFT_INVOICE_NUM = l_new_draft_inv_num ,
	  DRAFT_INVOICE_LINE_NUM = ORIG_DRAFT_INVOICE_LINE_NUM,
          INVOICED_FLAG = 'Y',
          last_update_date = SYSDATE,
          last_update_login = l_user_id,
          request_id        = l_request_id,
          program_application_id = l_program_application_id,
          program_id        = l_program_id
    WHERE ORIG_DRAFT_INVOICE_NUM = P_DRAFT_INV_NUM
      AND INVOICED_FLAG = 'N'
      AND PROJECT_ID = P_PROJECT_ID;
Line: 471

/* Update the project summary fundings to reflect the cancellation */

   pa_ic_inv_utils.update_SPF(l_new_draft_inv_num,
                              l_agreement_id,
                              P_DRAFT_INV_NUM,
                              'CANCEL');
Line: 478

/* Update the EI's with the transfer price attributes.
   Only those EI's corresponding to Invoice details
   that have been reversed in the procedure will be Updated.
   The others are not updated since the other processes
   must have updated the appropriate TP attributes
*/

/* For bug 2968292 Assigned a value of NULL to denom_transfer_price,
   acct_transfer_price and projacct_transfer_price */
/* For bug 3857986, added system_linkage_fuction in returning clause of this update statement */
  FORALL I IN 1..l_EI_upd_cnt
  UPDATE PA_EXPENDITURE_ITEMS
  SET    DENOM_TP_CURRENCY_CODE = l_DENOM_TP_CURRENCY_CODE(I),
         DENOM_TRANSFER_PRICE   = NULL ,
         ACCT_TP_RATE_TYPE      = l_ACCT_TP_RATE_TYPE(I),
         ACCT_TP_RATE_DATE      = l_ACCT_TP_RATE_DATE(I),
         ACCT_TP_EXCHANGE_RATE  = l_ACCT_TP_EXCHANGE_RATE(I),
         ACCT_TRANSFER_PRICE    = NULL,
         PROJACCT_TRANSFER_PRICE = NULL,
         CC_MARKUP_BASE_CODE     = l_CC_MARKUP_BASE_CODE(I),
         TP_BASE_AMOUNT         = l_TP_BASE_AMOUNT(I),
         TP_IND_COMPILED_SET_ID = l_TP_IND_COMPILED_SET_ID(I),
         TP_BILL_RATE           = l_TP_BILL_RATE(I),
         TP_BILL_MARKUP_PERCENTAGE = l_TP_BILL_MARKUP_PERCENTAGE(I),
         TP_SCHEDULE_LINE_PERCENTAGE = l_TP_SCHEDULE_LINE_PERCENTAGE(I),
         TP_RULE_PERCENTAGE     = l_TP_RULE_PERCENTAGE(I),
         cc_ic_processed_code = decode(cc_cross_charge_code,'I','N','X'),
         last_update_date = SYSDATE,
         last_update_login = l_user_id,
         request_id        = l_request_id,
         program_application_id = l_program_application_id,
         program_id        = l_program_id
   WHERE  EXPENDITURE_ITEM_ID = L_EXPENDITURE_ITEM_ID(I)
   RETURNING expenditure_item_date , system_linkage_function
   BULK COLLECT INTO l_ei_date, l_sys_linkage;