pk82029_titan¶
Overview¶
| Field | Value |
|---|---|
| Schema | WCIS_DBA |
| Type | Package |
| Database | Oracle |
| Calling libraries | SAIF.Business |
| Calling classes | clsEmployeeLeave, clsEmployeeLeaveCollection |
Purpose¶
Employee-leave package that performs create, list, update, and delete operations for employee leave rows.
Procedures / Methods¶
Insert_employee_leave¶
| Field | Value |
|---|---|
| Returns | A NUMBER row count (SQL%ROWCOUNT) representing the inserted employee-leave row. |
| Called by | clsEmployeeLeave.BeforeInsert |
Description: Inserts an employee-leave row and stamps create and update audit columns with SYSDATE.
Parameters¶
| Parameter | Direction | Type | Default | Description |
|---|---|---|---|---|
employee_leave_seq_num_in |
IN | EMPLOYEE_LEAVE.employee_leave_seq_num%TYPE | — | Employee leave sequence number. |
employee_emplid_in |
IN | EMPLOYEE_LEAVE.employee_emplid%TYPE | — | Employee EMPLID associated with the leave record. |
leave_type_code_in |
IN | EMPLOYEE_LEAVE.LEAVE_TYPE_CODE%TYPE | — | Leave type code to persist. |
system_type_code_in |
IN | EMPLOYEE_LEAVE.SYSTEM_TYPE_CODE%TYPE | — | System type code to persist. |
begin_date_in |
IN | EMPLOYEE_LEAVE.begin_date%TYPE | — | Beginning date of the leave interval. |
end_date_in |
IN | EMPLOYEE_LEAVE.end_date%TYPE | — | Ending date of the leave interval. |
CREATE_USER_in |
IN | EMPLOYEE_LEAVE.CREATE_USER%TYPE | — | User ID recorded on insert. |
select_employee_leave¶
| Field | Value |
|---|---|
| Returns | A REF CURSOR over employee-leave rows joined to leave-type descriptions. |
| Called by | clsEmployeeLeaveCollection.GetEmployeeLeave |
Description: Returns employee-leave rows for the requested system type and start-date horizon.
Parameters¶
| Parameter | Direction | Type | Default | Description |
|---|---|---|---|---|
StartDate |
IN | DATE | — | Lower-bound date used to filter employee leave rows. |
SystemTypeCode |
IN | VARCHAR2 | — | System-type discriminator for employee leave rows. |
recordset |
OUT | ref_cursor | — | Result cursor returned to the caller. |
update_employee_leave¶
| Field | Value |
|---|---|
| Returns | A NUMBER row count (SQL%ROWCOUNT) representing the updated employee-leave row. |
| Called by | clsEmployeeLeave.BeforeUpdate |
Description: Updates the persisted leave row by sequence number and refreshes the audit columns.
Parameters¶
| Parameter | Direction | Type | Default | Description |
|---|---|---|---|---|
employee_leave_seq_num_in |
IN | EMPLOYEE_LEAVE.employee_leave_seq_num%TYPE | — | Employee leave sequence number. |
employee_emplid_in |
IN | EMPLOYEE_LEAVE.employee_emplid%TYPE | — | Employee EMPLID associated with the leave record. |
leave_type_code_in |
IN | EMPLOYEE_LEAVE.LEAVE_TYPE_CODE%TYPE | — | Leave type code to persist. |
system_type_code_in |
IN | EMPLOYEE_LEAVE.SYSTEM_TYPE_CODE%TYPE | — | System type code to persist. |
begin_date_in |
IN | EMPLOYEE_LEAVE.begin_date%TYPE | — | Beginning date of the leave interval. |
end_date_in |
IN | EMPLOYEE_LEAVE.end_date%TYPE | — | Ending date of the leave interval. |
UPDATE_USER_in |
IN | EMPLOYEE_LEAVE.UPDATE_USER%TYPE | — | User ID recorded on update. |
delete_employee_leave¶
| Field | Value |
|---|---|
| Returns | A NUMBER row count (SQL%ROWCOUNT) representing the deleted employee-leave row. |
| Called by | clsEmployeeLeave.BeforeDelete |
Description: Deletes the employee-leave row identified by sequence number.
Parameters¶
| Parameter | Direction | Type | Default | Description |
|---|---|---|---|---|
employee_leave_SEQ_NUM_in |
IN | EMPLOYEE_LEAVE.employee_leave_SEQ_NUM%TYPE | — | Employee leave sequence number. |
Business Rules¶
No additional database-level branching rules were identified in the reviewed pk82029_titan employee-leave routines beyond straightforward CRUD behavior.
| Rule ID | Rule | Condition | Action |
|---|---|---|---|
| N/A | The package performs direct employee-leave CRUD and audit stamping rather than conditional business-rule branching. | select_employee_leave, Insert_employee_leave, update_employee_leave, and delete_employee_leave run with the caller-supplied keys and values. |
Return the requested result set or SQL%ROWCOUNT, while insert and update stamp CREATE_DATE / UPDATE_DATE with SYSDATE. |
Operations¶
Operations and processes implemented in this procedure:
| Operation | Description | Trigger |
|---|---|---|
| OP-011 | Inserts a new EMPLOYEE_LEAVE row and stamps create/update audit columns with SYSDATE. |
clsEmployeeLeave.BeforeInsert uses pk82029_titan.Insert_employee_leave. |
| OP-012 | Opens a result-set cursor over employee leave rows joined to leave-type descriptions for the requested system type and start date. | clsEmployeeLeaveCollection.GetEmployeeLeave uses pk82029_titan.select_employee_leave. |
| OP-013 | Updates an EMPLOYEE_LEAVE row by sequence number and refreshes audit columns. |
clsEmployeeLeave.BeforeUpdate uses pk82029_titan.update_employee_leave. |
| OP-014 | Deletes an EMPLOYEE_LEAVE row by sequence number. |
clsEmployeeLeave.BeforeDelete uses pk82029_titan.delete_employee_leave. |
These operations are also listed in operations-processes.md.
Source Code¶
PL/SQL package specification
Function Insert_employee_leave (
employee_leave_seq_num_in IN EMPLOYEE_LEAVE.employee_leave_seq_num%TYPE,
employee_emplid_in IN EMPLOYEE_LEAVE.employee_emplid%TYPE,
leave_type_code_in IN EMPLOYEE_LEAVE.LEAVE_TYPE_CODE%TYPE,
system_type_code_in IN EMPLOYEE_LEAVE.SYSTEM_TYPE_CODE%TYPE,
begin_date_in IN EMPLOYEE_LEAVE.begin_date%TYPE,
end_date_in IN EMPLOYEE_LEAVE.end_date%TYPE,
CREATE_USER_in IN EMPLOYEE_LEAVE.CREATE_USER%TYPE)
return number;
PROCEDURE select_employee_leave (
StartDate IN DATE,
SystemTypeCode IN VARCHAR2,
recordset OUT ref_cursor);
Function update_employee_leave (
employee_leave_seq_num_in IN EMPLOYEE_LEAVE.employee_leave_seq_num%TYPE,
employee_emplid_in IN EMPLOYEE_LEAVE.employee_emplid%TYPE,
leave_type_code_in IN EMPLOYEE_LEAVE.LEAVE_TYPE_CODE%TYPE,
system_type_code_in IN EMPLOYEE_LEAVE.SYSTEM_TYPE_CODE%TYPE,
begin_date_in IN EMPLOYEE_LEAVE.begin_date%TYPE,
end_date_in IN EMPLOYEE_LEAVE.end_date%TYPE,
UPDATE_USER_in IN EMPLOYEE_LEAVE.UPDATE_USER%TYPE)
return number;
Function delete_employee_leave (
employee_leave_SEQ_NUM_in IN EMPLOYEE_LEAVE.employee_leave_SEQ_NUM%TYPE)
return number;
PL/SQL package/procedure body
PROCEDURE select_employee_leave(
StartDate IN DATE,
SystemTypeCode IN VARCHAR2,
recordset OUT ref_cursor)
IS
BEGIN
OPEN recordset FOR SELECT employee_leave_seq_num
AS
EmployeeLeaveSeqNum,
employee_emplid
AS
EmployeeEmplid,
el.LEAVE_TYPE_CODE
AS
LeaveTypeCode,
lt.code_descr
AS
leave_descr,
SYSTEM_TYPE_CODE
AS
SystemTypeCode,
begin_date
AS
BeginDate,
end_date
AS
EndDate,
create_date
AS
CreateDate,
create_user
AS
CreateUser,
update_date
AS
UpdateDate,
update_user
AS
UpdateUser FROM EMPLOYEE_LEAVE el,
LEAVE_TYPE_CODE lt WHERE el.LEAVE_TYPE_CODE = lt.code AND el.end_date >= TRUNC (StartDate) AND el.SYSTEM_TYPE_CODE = SystemTypeCode ORDER BY begin_date,
end_date;
END select_employee_leave;
FUNCTION Insert_employee_leave(
employee_leave_seq_num_in IN EMPLOYEE_LEAVE.employee_leave_seq_num%TYPE,
employee_emplid_in IN EMPLOYEE_LEAVE.employee_emplid%TYPE,
leave_type_code_in IN EMPLOYEE_LEAVE.LEAVE_TYPE_CODE%TYPE,
system_type_code_in IN EMPLOYEE_LEAVE.SYSTEM_TYPE_CODE%TYPE,
begin_date_in IN EMPLOYEE_LEAVE.begin_date%TYPE,
end_date_in IN EMPLOYEE_LEAVE.end_date%TYPE,
CREATE_USER_in IN EMPLOYEE_LEAVE.CREATE_USER%TYPE)
RETURN NUMBER
IS
BEGIN
INSERT
INTO EMPLOYEE_LEAVE
(
employee_leave_seq_num,
employee_emplid,
LEAVE_TYPE_CODE,
SYSTEM_TYPE_CODE,
begin_date,
end_date,
CREATE_DATE,
CREATE_USER,
UPDATE_DATE,
UPDATE_USER
)
VALUES
(
employee_leave_seq_num_in,
employee_emplid_in,
leave_type_code_in,
system_type_code_in,
begin_date_in,
end_date_in,
SYSDATE,
CREATE_USER_in,
SYSDATE,
CREATE_USER_in
);
RETURN sql%rowcount;
END Insert_employee_leave;
FUNCTION update_employee_leave
(
employee_leave_seq_num_in IN EMPLOYEE_LEAVE.employee_leave_seq_num%TYPE,
employee_emplid_in IN EMPLOYEE_LEAVE.employee_emplid%TYPE,
leave_type_code_in IN EMPLOYEE_LEAVE.LEAVE_TYPE_CODE%TYPE,
system_type_code_in IN EMPLOYEE_LEAVE.SYSTEM_TYPE_CODE%TYPE,
begin_date_in IN EMPLOYEE_LEAVE.begin_date%TYPE,
end_date_in IN EMPLOYEE_LEAVE.end_date%TYPE,
UPDATE_USER_in IN EMPLOYEE_LEAVE.UPDATE_USER%TYPE
)
RETURN NUMBER
IS
BEGIN
UPDATE EMPLOYEE_LEAVE
SET employee_leave_seq_num = employee_leave_seq_num_in,
employee_emplid = employee_emplid_in,
LEAVE_TYPE_CODE = leave_type_code_in,
SYSTEM_TYPE_CODE = system_type_code_in,
begin_date = begin_date_in,
end_date = end_date_in,
UPDATE_DATE = SYSDATE,
UPDATE_USER = UPDATE_USER_in
WHERE employee_leave_SEQ_NUM = employee_leave_SEQ_NUM_in;
RETURN sql%rowcount;
END update_employee_leave;
FUNCTION delete_employee_leave(
employee_leave_SEQ_NUM_in IN EMPLOYEE_LEAVE.employee_leave_SEQ_NUM%TYPE)
RETURN NUMBER
IS
BEGIN
DELETE
FROM EMPLOYEE_LEAVE
WHERE employee_leave_SEQ_NUM = employee_leave_SEQ_NUM_in;
RETURN sql%rowcount;
END delete_employee_leave;
Related Documentation¶
Sources¶
Business\SAIF.Business\clsEmployeeLeave.vbBusiness\SAIF.Business\clsEmployeeLeaveCollection.vb