0% found this document useful (0 votes)
33 views3 pages

Leave Trigger

This trigger updates the number of leave days taken in the HR_EMPLOYEE_YEARLY_LEAVE table after a leave request is approved in the HR_EMPLOYEE_LEAVE table. It also inserts attendance records into the ATTENDENCE table for the period of the approved leave with the appropriate leave status code, if the employee's place of work matches certain codes.

Uploaded by

ahsumonbd
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views3 pages

Leave Trigger

This trigger updates the number of leave days taken in the HR_EMPLOYEE_YEARLY_LEAVE table after a leave request is approved in the HR_EMPLOYEE_LEAVE table. It also inserts attendance records into the ATTENDENCE table for the period of the approved leave with the appropriate leave status code, if the employee's place of work matches certain codes.

Uploaded by

ahsumonbd
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

CREATE OR REPLACE TRIGGER NAVANA_ERP.UPD_LEAVE_TAKEN_DAYS AFTER UPDATE OF IS_APPROVED ON NAVANA_ERP.

HR_EMPLOYEE_LEAVE REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW DECLARE TOTAL_LEAVE_DAYS NUMBER; BEGIN IF :NEW.IS_APPROVED = 'Y' THEN TOTAL_LEAVE_DAYS := 1 + :NEW.TO_DATE - :NEW.FROM_DATE; UPDATE SET WHERE HR_EMPLOYEE_YEARLY_LEAVE TAKEN_DAYS = NVL (TAKEN_DAYS, 0) + TOTAL_LEAVE_DAYS COMPANY_ID = :NEW.COMPANY_ID AND EMPLOYEE_ID = :NEW.EMPLOYEE_ID AND LEAVE_ID = :NEW.LEAVE_ID AND LEAVE_YEAR = TO_CHAR (SYSDATE, 'RRRR');

END IF; END; /

CREATE OR REPLACE TRIGGER NAVANA_ERP."HR_EMPLOYEE_LEAVE_B_U" BEFORE UPDATE OF IS_APPROVED ON NAVANA_ERP.HR_EMPLOYEE_LEAVE REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW DECLARE V_FORM_NAME VARCHAR2 (30); BEGIN IF :NEW.IS_APPROVED = '0' AND (:OLD.IS_APPROVED IS NULL or :OLD.IS_APPROVED='D') THEN -SELECT FORM_NAME INTO V_FORM_NAME FROM ALL_FORM_PARAMETER WHERE FORM_ID ='015'; -:NEW.REFERENCE_NO := APPROVAL.APPROVAL_COMPLETE_TRG (V_FORM_NAME, :new.LEAVE_APPL_NO, :new.EMPLOYEE_ID); END IF; END; /

CREATE OR REPLACE TRIGGER NAVANA_ERP.leave_regis_after_insert AFTER INSERT ON NAVANA_ERP.HR_EMPLOYEE_LEAVE FOR EACH ROW

DECLARE cnt number; v_total number; v_date date; v_leave_id varchar2 (10); v_palce varchar2 (100); VV NUMBER; BEGIN cnt := v_total; V_TOTAL := (:NEW.TO_DATE - :NEW.FROM_DATE) + 1; V_DATE := :NEW.FROM_DATE; SELECT INTO FROM WHERE SELECT INTO FROM WHERE IF VV > 0 THEN UPDATE SET place_of_work v_palce hr_employee employee_id = :NEW.EMPLOYEE_ID AND place_of_work IN ('PRO-000286', 'PRO-000122'); COUNT ( * ) VV ACCESS_CONTROL.ATTENDENCE ATTEND_DATE = :NEW.FROM_DATE AND emp_id = :NEW.EMPLOYEE_ID;

WHERE ELSE IF v_palce IN ('PRO-000286', 'PRO-000122') THEN FOR i IN 1 .. v_total LOOP INSERT INTO ACCESS_CONTROL.ATTENDENCE (

ACCESS_CONTROL.ATTENDENCE FIRST_STATUS = DECODE (:NEW.LEAVE_ID, 'L-01', '5', 'L-02', '6', 'L-03', '7', 'L-04', '8') ATTEND_DATE = :NEW.FROM_DATE AND emp_id = :NEW.EMPLOYEE_ID;

EMP_ID, ATTEND_DATE, FIRST_STATUS VALUES ) (:NEW.EMPLOYEE_ID, V_DATE, DECODE (:NEW.LEAVE_ID, 'L-01', '5', 'L-02', '6', 'L-03', '7', 'L-04',

'8')); v_date := v_date + 1; END LOOP; ELSE NULL; END IF; -- COMMIT; END IF; EXCEPTION WHEN NO_DATA_FOUND THEN NULL; END; / CREATE OR REPLACE TRIGGER NAVANA_ERP.auto_appr_del_23 BEFORE DELETE ON NAVANA_ERP.HR_EMPLOYEE_LEAVE REFERENCING NEW AS New OLD AS Old FOR EACH ROW BEGIN IF :OLD.IS_APPROVED IN ('1', 'Y') THEN RAISE_APPLICATION_ERROR ( -20188, 'ERROR MACKX PERTIAL/APPROVED CAN NOT BE DROPPED. REF:' || :OLD.REFERENCE_NO ); ELSIF :OLD.IS_APPROVED IN ('0', 'D') AND :OLD.REFERENCE_NO IS NOT NULL THEN DELETE FROM NAVANA_ERP.APPROVAL_QUEUE WHERE REFERENCE_NO = :OLD.REFERENCE_NO; DELETE FROM WHERE END IF;END; NAVANA_ERP.APPROVAL_MASTER REFERENCE_NO = :OLD.REFERENCE_NO;

You might also like