Database preparation

Create master table and master data at schema ERP_ONEWEB with below SQL. (PostgreSQL)

DROP TABLE wf_ms_employee;
CREATE TABLE wf_ms_employee (employee_id CHARACTER VARYING(15) NOT NULL, employee_name CHARACTER VARYING(60), employee_fname CHARACTER VARYING(30), employee_lname CHARACTER VARYING(30), position_id CHARACTER VARYING(30), email CHARACTER VARYING(50), create_by CHARACTER VARYING(50), create_date TIMESTAMP(6) WITHOUT TIME ZONE, update_by CHARACTER VARYING(50), update_date TIMESTAMP(6) WITHOUT TIME ZONE, PRIMARY KEY (employee_id));
INSERT INTO wf_ms_employee (employee_id, employee_name, employee_fname, employee_lname, position_id, email, create_by, create_date, update_by, update_date) VALUES ('rm2', 'rm2', 'ja', null, null, 'rm2@avalant.co.th', null, null, null, null);

DROP TABLE wf_ms_hardware;
CREATE TABLE wf_ms_hardware (hardware_id CHARACTER VARYING(10) NOT NULL, hardware_name CHARACTER VARYING(30), create_by CHARACTER VARYING(50), create_date TIMESTAMP(6) WITHOUT TIME ZONE, update_by CHARACTER VARYING(50), update_date TIMESTAMP(6) WITHOUT TIME ZONE, PRIMARY KEY (hardware_id));
INSERT INTO wf_ms_hardware (hardware_id, hardware_name, create_by, create_date, update_by, update_date) VALUES ('01', 'Personal Computer', null, null, null, null);
INSERT INTO wf_ms_hardware (hardware_id, hardware_name, create_by, create_date, update_by, update_date) VALUES ('02', 'Notebook', null, null, null, null);
INSERT INTO wf_ms_hardware (hardware_id, hardware_name, create_by, create_date, update_by, update_date) VALUES ('03', 'Projector', null, null, null, null);

DROP TABLE wf_ms_list_box;
CREATE TABLE wf_ms_list_box (list_box_id CHARACTER VARYING(10) NOT NULL, display_code CHARACTER VARYING(10), display_name CHARACTER VARYING(50), category_code CHARACTER VARYING(50), status CHARACTER VARYING(5), create_by CHARACTER VARYING(50), create_date TIMESTAMP(6) WITHOUT TIME ZONE, update_by CHARACTER VARYING(50), update_date TIMESTAMP(6) WITHOUT TIME ZONE, PRIMARY KEY (list_box_id));
INSERT INTO wf_ms_list_box (list_box_id, display_code, display_name, category_code, status, create_by, create_date, update_by, update_date) VALUES ('LB00000001', '01', 'Approve', 'BACK_OFFICE_DECISION', 'A', null, null, null, null);
INSERT INTO wf_ms_list_box (list_box_id, display_code, display_name, category_code, status, create_by, create_date, update_by, update_date) VALUES ('LB00000002', '02', 'Reject', 'BACK_OFFICE_DECISION', 'A', null, null, null, null);
INSERT INTO wf_ms_list_box (list_box_id, display_code, display_name, category_code, status, create_by, create_date, update_by, update_date) VALUES ('LB00000004', '02', 'Reject', 'ADMIN_DECISION', 'A', null, null, null, null);
INSERT INTO wf_ms_list_box (list_box_id, display_code, display_name, category_code, status, create_by, create_date, update_by, update_date) VALUES ('LB00000003', '01', 'Approve', 'ADMIN_DECISION', 'A', null, null, null, null);
INSERT INTO wf_ms_list_box (list_box_id, display_code, display_name, category_code, status, create_by, create_date, update_by, update_date) VALUES ('LB00000005', '01', 'Approve', 'AUTHORIZE_DECISION', 'A', null, null, null, null);
INSERT INTO wf_ms_list_box (list_box_id, display_code, display_name, category_code, status, create_by, create_date, update_by, update_date) VALUES ('LB00000006', '02', 'Reject', 'AUTHORIZE_DECISION', 'A', null, null, null, null);
INSERT INTO wf_ms_list_box (list_box_id, display_code, display_name, category_code, status, create_by, create_date, update_by, update_date) VALUES ('LB00000007', '01', 'Approve', 'SUP_PM_DECISION', 'A', null, null, null, null);
INSERT INTO wf_ms_list_box (list_box_id, display_code, display_name, category_code, status, create_by, create_date, update_by, update_date) VALUES ('LB00000008', '02', 'Reject', 'SUP_PM_DECISION', 'A', null, null, null, null);
INSERT INTO wf_ms_list_box (list_box_id, display_code, display_name, category_code, status, create_by, create_date, update_by, update_date) VALUES ('LB00000009', '01', 'Approve', 'HEAD_DECISION', 'A', null, null, null, null);
INSERT INTO wf_ms_list_box (list_box_id, display_code, display_name, category_code, status, create_by, create_date, update_by, update_date) VALUES ('LB00000010', '02', 'Reject', 'HEAD_DECISION', 'A', null, null, null, null);
INSERT INTO wf_ms_list_box (list_box_id, display_code, display_name, category_code, status, create_by, create_date, update_by, update_date) VALUES ('LB00000011', '01', 'Approve', 'HR_DECISION', 'A', null, null, null, null);
INSERT INTO wf_ms_list_box (list_box_id, display_code, display_name, category_code, status, create_by, create_date, update_by, update_date) VALUES ('LB00000012', '02', 'Reject', 'HR_DECISION', 'A', null, null, null, null);

DROP TABLE wf_ms_phase;
CREATE TABLE wf_ms_phase (phase_id CHARACTER VARYING(10) NOT NULL, phase_name CHARACTER VARYING(50), create_by CHARACTER VARYING(50), create_date TIMESTAMP(6) WITHOUT TIME ZONE, update_by CHARACTER VARYING(50), update_date TIMESTAMP(6) WITHOUT TIME ZONE, PRIMARY KEY (phase_id));
INSERT INTO wf_ms_phase (phase_id, phase_name, create_by, create_date, update_by, update_date) VALUES ('01', 'Development', null, null, null, null);
INSERT INTO wf_ms_phase (phase_id, phase_name, create_by, create_date, update_by, update_date) VALUES ('02', 'UAT', null, null, null, null);
INSERT INTO wf_ms_phase (phase_id, phase_name, create_by, create_date, update_by, update_date) VALUES ('03', 'Production', null, null, null, null);

DROP TABLE wf_ms_position;
CREATE TABLE wf_ms_position (position_id CHARACTER VARYING(15) NOT NULL, position_name CHARACTER VARYING(100), create_by CHARACTER VARYING(50), create_date TIMESTAMP(6) WITHOUT TIME ZONE, update_by CHARACTER VARYING(50), update_date TIMESTAMP(6) WITHOUT TIME ZONE, PRIMARY KEY (position_id));

DROP TABLE wf_ms_project;
CREATE TABLE wf_ms_project (project_id CHARACTER VARYING(10) NOT NULL, project_name CHARACTER VARYING(50), create_by CHARACTER VARYING(50), create_date TIMESTAMP(6) WITHOUT TIME ZONE, update_by CHARACTER VARYING(50), update_date TIMESTAMP(6) WITHOUT TIME ZONE, project_manager CHARACTER VARYING(15), project_status CHARACTER VARYING(20), PRIMARY KEY (project_id));
INSERT INTO wf_ms_project (project_id, project_name, create_by, create_date, update_by, update_date, project_manager, project_status) VALUES ('01', 'Internal Project', null, null, null, null, 'admin', 'A');
INSERT INTO wf_ms_project (project_id, project_name, create_by, create_date, update_by, update_date, project_manager, project_status) VALUES ('02', 'MSIG - Digital Project', null, null, null, null, 'admin', 'A');

DROP TABLE wf_ms_status;
CREATE TABLE wf_ms_status (status_id CHARACTER VARYING(10) NOT NULL, status_name CHARACTER VARYING(100), create_by CHARACTER VARYING(50), create_date TIMESTAMP(6) WITHOUT TIME ZONE, update_by CHARACTER VARYING(50), update_date TIMESTAMP(6) WITHOUT TIME ZONE, PRIMARY KEY (status_id));

DROP TABLE wf_ms_sub_request_type;
CREATE TABLE wf_ms_sub_request_type (sub_req_type_id CHARACTER VARYING(10) NOT NULL, sub_req_name CHARACTER VARYING(30), create_by CHARACTER VARYING(50), create_date TIMESTAMP(6) WITHOUT TIME ZONE, update_by CHARACTER VARYING(50), update_date TIMESTAMP(6) WITHOUT TIME ZONE, request_type CHARACTER VARYING(10), PRIMARY KEY (sub_req_type_id));
INSERT INTO wf_ms_sub_request_type (sub_req_type_id, sub_req_name, create_by, create_date, update_by, update_date, request_type) VALUES ('6', 'Normal Leave', null, null, null, null, '04');
INSERT INTO wf_ms_sub_request_type (sub_req_type_id, sub_req_name, create_by, create_date, update_by, update_date, request_type) VALUES ('7', 'Replacement Leave', null, null, null, null, '04');

Create transaction table at schema ERP_ONEWEB with below SQL. (PostgreSQL)

CREATE TABLE wf_leave_req_item (
     leave_item_id CHARACTER VARYING(20) NOT NULL, 
     request_id CHARACTER VARYING(10) NOT NULL, 
     leave_type CHARACTER VARYING(10) NOT NULL, 
     specify CHARACTER VARYING(500) NOT NULL, 
     work_date DATE, 
     rw_no CHARACTER VARYING(20), 
     start_date DATE, 
     end_date DATE, 
     total NUMERIC(5,2), 
     create_by CHARACTER VARYING(50), 
     create_date TIMESTAMP(6) WITHOUT TIME ZONE, 
     update_by CHARACTER VARYING(50), 
     update_date TIMESTAMP(6) WITHOUT TIME ZONE, 
     PRIMARY KEY (leave_item_id));

CREATE TABLE wf_service_request (
     request_id CHARACTER VARYING(10) NOT NULL, 
     requester CHARACTER VARYING(50), 
     request_type CHARACTER VARYING(10), 
     project CHARACTER VARYING(10), 
     phase CHARACTER VARYING(10), 
     sub_request_type CHARACTER VARYING(10), 
     description CHARACTER VARYING(200), 
     status CHARACTER VARYING(200) DEFAULT 'New'::character varying, 
     decision CHARACTER VARYING(2), 
     decision_remark CHARACTER VARYING(200), 
     decision_role CHARACTER VARYING(10), 
     contact_info CHARACTER VARYING(200), 
     create_by CHARACTER VARYING(50), 
     create_date TIMESTAMP(6) WITHOUT TIME ZONE, 
     update_by CHARACTER VARYING(50), 
     update_date TIMESTAMP(6) WITHOUT TIME ZONE, 
     total_amt NUMERIC(24,2), 
     decision_sup_pm_remark CHARACTER VARYING(200), 
     decision_sup_pm CHARACTER VARYING(2), 
     decision_head CHARACTER VARYING(2), 
     decision_head_remark CHARACTER VARYING(200), 
     decision_hr CHARACTER VARYING(2), 
     decision_hr_remark CHARACTER VARYING(200), 
     decision_auth CHARACTER VARYING(2), 
     decision_auth_remark CHARACTER VARYING(200), 
     PRIMARY KEY (request_id));

Create database sequence lists below.

REQUEST_ID_SEQ

LEAVE_ITEM_ID_SEQ

Last updated