DBA Data[Home] [Help]

TRIGGER: APPS.IGI_MPP_AP_INVOICE_DISTS_T1

Source

Description
IGI_MPP_AP_INVOICE_DISTS_T1
BEFORE  INSERT  ON IGI_MPP_AP_INVOICE_DISTS
REFERENCING
 NEW AS NEW
 OLD AS OLD
FOR EACH ROW
Type
BEFORE EACH ROW
Event
INSERT
Column
When
Referencing
REFERENCING NEW AS NEW OLD AS OLD
Body
Begin
 declare
     function IsRecognized ( fp_invoice_id in number
                           , fp_distribution_line_num in number
                           )
     return boolean
     is
          cursor c_exists is
            select 'x'
            from   igi_mpp_ap_invoice_dists_det
            where  invoice_id = fp_invoice_id
            and    distribution_line_number =
                   fp_distribution_line_num
            and    nvl(expense_recognized_flag,'N') = 'Y'
            UNION
            select 'x'
            from   igi_mpp_subledger
            where  invoice_id = fp_invoice_id
            and    distribution_line_number =
                   fp_distribution_line_num
            and    nvl(expense_recognized_flag,'N') = 'Y'
            ;
     begin
        for l_exists in C_exists loop
            return TRUE;
        end loop;
        return FALSE;
     exception when others then
        return FALSE;
     end IsRecognized;
 Begin
    IF NOT isRecognized ( :new.invoice_id, :new.distribution_line_number)
    THEN
      IGIPMSMD.Create_MPP_details
         ( :new.invoice_id,
           :new.distribution_line_number,
           :new.accounting_rule_id,
           :new.start_date,
           :new.duration
         );
       IGIPMSLR.Create_MPPSLR_Details
         ( :new.invoice_id
         , :new.distribution_line_number
         )  ;
    END IF;
 End;
End;