Professional Documents
Culture Documents
Database Trigger
Database Trigger
Database Trigger
================================
IF V_PER>=25 THEN
PKG_EMAIL_STANDARD.SEND_SALE_25_NOTIF(:NEW.COMPANY_NUMBER,:NEW.EMPLOYEE_NUMBER,:NEW
.SALE_REF_NO,V_PER);
END IF;
END;
===================================================================================
=======================================================
CREATE OR REPLACE TRIGGER "TRIG_SUB_BTRIP_TRANS"
BEFORE UPDATE OF TRIP_STATUS ON HR_BUSINESS_TRIP_REQ_M
REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
DECLARE
V_DTL_SRL NUMBER;
BEGIN
SELECT TO_CHAR(SYSDATE,'RRRR')||LPAD(NVL(MAX(SUBSTR(SERIAL_NO,5)),0)+1,6,0)
INTO V_DTL_SRL
FROM PAY_OFFICIAL_LEAVES
WHERE TO_CHAR(LEAVE_DATE,'RRRR') = TO_CHAR(SYSDATE,'RRRR')
AND COMPANY_NUMBER = :NEW.COMPANY_NUMBER;
END;
===================================================================================
===========================================================
END;
===================================================================================
==============================================================
SELECT Nvl(Max(DTL_SRL),0)+1
INTO V_DTL_SRL
FROM ITS_REQUEST_TRANS_LOGS
WHERE TT_NO = :NEW.TT_NO;
END;
===================================================================================
=================================================
Used in (PAY_PENDING_LEAVE_TRANS) table =>
=======================================
ELSE -- IF EXIST
IF To_Char(:NEW.DATE_FROM,'RRRR') = V_BAL_YEAR THEN -- IF SAME YEAR
UPDATE PAY_LEAVE_BALANCE_TAMIMI
SET DAYS_ADDED = DAYS_ADDED + Nvl(:NEW.NO_OF_DAYS,1),
NET_BALANCE = NET_BALANCE + Nvl(:NEW.NO_OF_DAYS,1)
WHERE COMPANY_NUMBER = :NEW.COMPANY_NUMBER
AND EMPLOYEE_NUMBER = :NEW.EMPLOYEE_NUMBER
AND LEAVE_TYPE = :NEW.LEAVE_TYPE
AND LEAVE_YEAR = V_BAL_YEAR;
ELSIF To_Char(:NEW.DATE_FROM,'RRRR') = (V_BAL_YEAR-1) THEN -- IF PREVIOUS
YEAR BALANCE ENTERED, MODIFY PREVIOUS, ADD OPENING IN NEW.
IF V_CURR_CNT = 1 THEN
UPDATE PAY_LEAVE_BALANCE_TAMIMI
SET DAYS_ADDED = DAYS_ADDED + Nvl(:NEW.NO_OF_DAYS,1),
NET_BALANCE = NET_BALANCE + Nvl(:NEW.NO_OF_DAYS,1)
WHERE COMPANY_NUMBER = :NEW.COMPANY_NUMBER
AND EMPLOYEE_NUMBER = :NEW.EMPLOYEE_NUMBER
AND LEAVE_TYPE = :NEW.LEAVE_TYPE
AND LEAVE_YEAR = To_Char(:NEW.DATE_FROM,'RRRR');
ELSE
INSERT INTO PAY_LEAVE_BALANCE_TAMIMI ( COMPANY_NUMBER,
EMPLOYEE_NUMBER, LEAVE_TYPE, LEAVE_YEAR,
LEV_START_DATE, OP_BALANCE,
DUE_YEAR_BALANCE,
DAYS_ADDED, DAYS_DEDUCTED,
HOLIDAY_DAYS,
ENCASH_LEAVE_DAYS, RESERVE_DAYS, UNPAID_DAYS,
TAKEN_LEAVE_DAYS, NET_BALANCE,
ENTITLED_LEAVE_BALANCE,
TRANS_DATE, TRANS_USER )
VALUES ( :NEW.COMPANY_NUMBER, :NEW.EMPLOYEE_NUMBER, :NEW.LEAVE_TYPE,
To_Char(:NEW.DATE_FROM,'RRRR'),
Trunc(:NEW.DATE_FROM,'YEAR'), 0,0,
Nvl(:NEW.NO_OF_DAYS,1), 0,
0,0,0,0,
0,Nvl(:NEW.NO_OF_DAYS,1),0,
SYSDATE, :NEW.ENTRY_USER );
END IF;
UPDATE PAY_LEAVE_BALANCE_TAMIMI
SET OP_BALANCE = OP_BALANCE + Nvl(:NEW.NO_OF_DAYS,1),
NET_BALANCE = NET_BALANCE + Nvl(:NEW.NO_OF_DAYS,1)
WHERE COMPANY_NUMBER = :NEW.COMPANY_NUMBER
AND EMPLOYEE_NUMBER = :NEW.EMPLOYEE_NUMBER
AND LEAVE_TYPE = :NEW.LEAVE_TYPE
AND LEAVE_YEAR = V_BAL_YEAR;
END;
===================================================================================
=================================================
PKG_HRMS_STANDARD.P_GET_LEAVE_TYPE(:NEW.COMPANY_NUMBER,'EN',:NEW.LEAVE_TYPE,V_LV_TY
PE_DESC);
PKG_EMAIL_STANDARD.SEND_LV_DOC_EXPIRY_EML ( :NEW.COMPANY_NUMBER,
:NEW.EMPLOYEE_NUMBER, :NEW.ACTUAL_START_DATE, :NEW.EXPECT_RETURN_DATE,
V_LV_TYPE_DESC);
END IF;
END;
/
NOTIFICATIONS_SYSTEM_PKG.Insert_Notification(:NEW.CREATED_BY,:NEW.DEP_CODE,'RQ',:NE
W.REQ_NO);
END IF;
ELSIF UPDATING THEN
IF :new.APPROVAL_FLAG=1 AND :OLD.REQ_STATUS = 'A' AND
NVL(:OLD.APPROVAL_FLAG,0)=0 THEN
NOTIFICATIONS_SYSTEM_PKG.Insert_Notification(:NEW.CREATED_BY,:NEW.DEP_CODE,'RQ',:NE
W.REQ_NO);
END IF;
END IF;
END;