-----------------------------------------------------------------------------
{ *title here* - *obj here*
	{ -- TO DO

	}

	{ -- DB

	}

	{ -- FILES

	}

	{ -- UPDATES / MEETINGS

	}
}
------------------------------------------------------------------------------

{ 1. Study Leave - OBJ : Apply SL based on exam paper.
	{ -- TO DO
	}

	{ -- DB  
		1) hr__exam
		2) ALTER TABLE hr__leave_application ADD exam_id INT(11) NOT NULL AFTER type_id;
		3) view_count_exam
	}

	{ -- FILES
		1) hr/controllers/exam.php
		2) hr/models/model_exam.php
		3) hr/views/exam
		4) hr/views/dashboard/index.php
		
		5) hr/controllers/leave.php
		6) hr/models/model_leave.php
		7) hr/views/leave/allocationUsersList.php
		8) hr/views/leave/application.php
		9) hr/views/leave/departmentsApplicationList.php
		10) hr/views/leave/applicationsList.php
		10) hr/views/leave/managersApplicationsList.php

		also, update on email notification
	}

	{ -- UPDATES / MEETINGS
		Update from the UAT result.
	}
}

{ 2. Claim - OBJ : Add job id on claim form --LIVE
	{ -- TO DO
		- Field Works / Outstation : Mileage -- DONE -- /
		- Field Works / Outstation : Petrol -- DONE -- /
		- Outstation : Accomodation -- DONE -- /
		- Outstation : Subs. Allowance : Meal -- DONE -- /
		- Outstation : Subs. Allowance : Outstation -- DONE -- /
		- Outstation : Subs. Allowance : International Travel -- DONE -- /
		- Field Work : Meal Allowance -- DONE -- /
		- Field Works / Outstation : Transportation -- DONE -- /
		- Field Works / Outstation : Parking -- DONE -- /
		- Field Works / Outstation : Toll -- DONE -- /
		- Entertainment -- DONE -- /
		- Trainer / Facilitator -- DONE -- /
		- Others -- DONE -- /

		Team Leader Approval -- DONE --
		HOD Approval -- DONE --
		Admin Approval -- DONE --
		Reporting
		NEED TO SAVE dept, entity, branch for history -- PENDING --
	}

	{ -- DB
		_ref__claim_type
		ALTER TABLE `hr__claim_travelling` ADD `job_id` INT(11) NOT NULL AFTER `claim_id`; -- LIVE DB en wak dah add 14/11/2022
		ALTER TABLE `hr__claim_travelling` ADD `is_em_approved` INT(11) NOT NULL AFTER `approved_hod_by`;
		ALTER TABLE `hr__claim_travelling` ADD `approved_em_by` INT(11) NOT NULL AFTER `is_em_approved`;
		ALTER TABLE `hr__claim_travelling` ADD `em_remarks` VARCHAR(144) NOT NULL AFTER `approved_em_by`;
		ALTER TABLE `hr__claim_travelling` ADD `other_activity_id` INT(11) NOT NULL COMMENT 'refer to movement type' AFTER `job_id`, ADD `other_activity_desc` TEXT NOT NULL AFTER `other_activity_id`;

		ALTER TABLE `hr__claim_petrol` ADD `job_id` INT(11) NOT NULL AFTER `claim_id`; -- LIVE DB en wak dah add 14/11/2022
		ALTER TABLE `hr__claim_petrol` ADD `is_em_approved` INT(11) NOT NULL AFTER `hod_remarks`;
		ALTER TABLE `hr__claim_petrol` ADD `approved_em_by` INT(11) NOT NULL AFTER `is_em_approved`;
		ALTER TABLE `hr__claim_petrol` ADD `em_remarks` VARCHAR(144) NOT NULL AFTER `approved_em_by`;
		ALTER TABLE `hr__claim_petrol` ADD `other_activity_id` INT(11) NOT NULL COMMENT 'refer to movement type' AFTER `job_id`, ADD `other_activity_desc` TEXT NOT NULL AFTER `other_activity_id`;

		ALTER TABLE `hr__claim_accommodation` ADD `job_id` INT(11) NOT NULL AFTER `claim_id`; -- LIVE DB en wak dah add 14/11/2022
		ALTER TABLE `hr__claim_accommodation` ADD `is_em_approved` INT(11) NOT NULL AFTER `hod_remarks`;
		ALTER TABLE `hr__claim_accommodation` ADD `approved_em_by` INT(11) NOT NULL AFTER `is_em_approved`;
		ALTER TABLE `hr__claim_accommodation` ADD `em_remarks` VARCHAR(144) NOT NULL AFTER `approved_em_by`;
		ALTER TABLE `hr__claim_accommodation` ADD `other_activity_id` INT(11) NOT NULL COMMENT 'refer to movement type' AFTER `job_id`, ADD `other_activity_desc` TEXT NOT NULL AFTER `other_activity_id`;

		ALTER TABLE `hr__claim_meals` ADD `job_id` INT(11) NOT NULL AFTER `claim_id`; -- LIVE DB en wak dah add 14/11/2022
		ALTER TABLE `hr__claim_meals` ADD `is_em_approved` INT(11) NOT NULL AFTER `hod_remarks`;
		ALTER TABLE `hr__claim_meals` ADD `approved_em_by` INT(11) NOT NULL AFTER `is_em_approved`;
		ALTER TABLE `hr__claim_meals` ADD `em_remarks` VARCHAR(144) NOT NULL AFTER `approved_em_by`;
		ALTER TABLE `hr__claim_meals` ADD `other_activity_id` INT(11) NOT NULL COMMENT 'refer to movement type' AFTER `job_id`, ADD `other_activity_desc` TEXT NOT NULL AFTER `other_activity_id`;

		ALTER TABLE `hr__claim_subsistence` ADD `job_id` INT(11) NOT NULL AFTER `claim_id`; -- LIVE DB en wak dah add 14/11/2022
		ALTER TABLE `hr__claim_subsistence` ADD `is_em_approved` INT(11) NOT NULL AFTER `hod_remarks`;
		ALTER TABLE `hr__claim_subsistence` ADD `approved_em_by` INT(11) NOT NULL AFTER `is_em_approved`;
		ALTER TABLE `hr__claim_subsistence` ADD `em_remarks` VARCHAR(144) NOT NULL AFTER `approved_em_by`;
		ALTER TABLE `hr__claim_subsistence` ADD `other_activity_id` INT(11) NOT NULL COMMENT 'refer to movement type' AFTER `job_id`, ADD `other_activity_desc` TEXT NOT NULL AFTER `other_activity_id`;

		ALTER TABLE `hr__claim_transportation` ADD `job_id` INT(11) NOT NULL AFTER `claim_id`; -- LIVE DB en wak dah add 14/11/2022
		ALTER TABLE `hr__claim_transportation` ADD `is_em_approved` INT(11) NOT NULL AFTER `admin_remarks`;
		ALTER TABLE `hr__claim_transportation` ADD `approved_em_by` INT(11) NOT NULL AFTER `is_em_approved`;
		ALTER TABLE `hr__claim_transportation` ADD `em_remarks` VARCHAR(144) NOT NULL AFTER `approved_em_by`;
		ALTER TABLE `hr__claim_transportation` ADD `other_activity_id` INT(11) NOT NULL COMMENT 'refer to movement type' AFTER `job_id`, ADD `other_activity_desc` TEXT NOT NULL AFTER `other_activity_id`;

		ALTER TABLE `hr__claim_parking` ADD `job_id` INT(11) NOT NULL AFTER `claim_id`; -- LIVE DB en wak dah add 14/11/2022
		ALTER TABLE `hr__claim_parking` ADD `is_em_approved` INT(11) NOT NULL AFTER `admin_remarks`;
		ALTER TABLE `hr__claim_parking` ADD `approved_em_by` INT(11) NOT NULL AFTER `is_em_approved`;
		ALTER TABLE `hr__claim_parking` ADD `em_remarks` VARCHAR(144) NOT NULL AFTER `approved_em_by`;
		ALTER TABLE `hr__claim_parking` ADD `other_activity_id` INT(11) NOT NULL COMMENT 'refer to movement type' AFTER `job_id`, ADD `other_activity_desc` TEXT NOT NULL AFTER `other_activity_id`;

		ALTER TABLE `hr__claim_toll` ADD `job_id` INT(11) NOT NULL AFTER `claim_id`; -- LIVE DB en wak dah add 14/11/2022
		ALTER TABLE `hr__claim_toll` ADD `is_em_approved` INT(11) NOT NULL AFTER `admin_remarks`;
		ALTER TABLE `hr__claim_toll` ADD `approved_em_by` INT(11) NOT NULL AFTER `is_em_approved`;
		ALTER TABLE `hr__claim_toll` ADD `em_remarks` VARCHAR(144) NOT NULL AFTER `approved_em_by`;
		ALTER TABLE `hr__claim_toll` ADD `other_activity_id` INT(11) NOT NULL COMMENT 'refer to movement type' AFTER `job_id`, ADD `other_activity_desc` TEXT NOT NULL AFTER `other_activity_id`;

		ALTER TABLE `hr__claim_entertainment` ADD `job_id` INT(11) NOT NULL AFTER `claim_id`; -- LIVE DB en wak dah add 14/11/2022
		ALTER TABLE `hr__claim_entertainment` ADD `is_em_approved` INT(11) NOT NULL AFTER `admin_remarks`;
		ALTER TABLE `hr__claim_entertainment` ADD `approved_em_by` INT(11) NOT NULL AFTER `is_em_approved`;
		ALTER TABLE `hr__claim_entertainment` ADD `em_remarks` VARCHAR(144) NOT NULL AFTER `approved_em_by`;
		ALTER TABLE `hr__claim_entertainment` ADD `other_activity_id` INT(11) NOT NULL COMMENT 'refer to movement type' AFTER `job_id`, ADD `other_activity_desc` TEXT NOT NULL AFTER `other_activity_id`;

		ALTER TABLE `hr__claim_trainer` ADD `job_id` INT(11) NOT NULL AFTER `claim_id`; -- LIVE DB en wak dah add 14/11/2022
		ALTER TABLE `hr__claim_trainer` ADD `is_em_approved` INT(11) NOT NULL AFTER `admin_remarks`;
		ALTER TABLE `hr__claim_trainer` ADD `approved_em_by` INT(11) NOT NULL AFTER `is_em_approved`;
		ALTER TABLE `hr__claim_trainer` ADD `em_remarks` VARCHAR(144) NOT NULL AFTER `approved_em_by`;
		ALTER TABLE `hr__claim_trainer` ADD `other_activity_id` INT(11) NOT NULL COMMENT 'refer to movement type' AFTER `job_id`, ADD `other_activity_desc` TEXT NOT NULL AFTER `other_activity_id`;

		ALTER TABLE `hr__claim_others` ADD `job_id` INT(11) NOT NULL AFTER `claim_id`; -- LIVE DB en wak dah add 14/11/2022
		ALTER TABLE `hr__claim_others` ADD `is_em_approved` INT(11) NOT NULL AFTER `admin_remarks`;
		ALTER TABLE `hr__claim_others` ADD `approved_em_by` INT(11) NOT NULL AFTER `is_em_approved`;
		ALTER TABLE `hr__claim_others` ADD `em_remarks` VARCHAR(144) NOT NULL AFTER `approved_em_by`;
		ALTER TABLE `hr__claim_others` ADD `other_activity_id` INT(11) NOT NULL COMMENT 'refer to movement type' AFTER `job_id`, ADD `other_activity_desc` TEXT NOT NULL AFTER `other_activity_id`;
	}

	{ -- FILES
		FILES-C
		"E:\spserp.dev\application\modules\hr\controllers\Claim_v2.php"
		"E:\spserp.dev\application\modules\hr\controllers\api\Claim_v2.php"

		FILES-M
		"E:\spserp.dev\application\modules\hr\models\Model_job_v2.php"

		FILES-v
		--forms
		"E:\spserp.dev\application\modules\hr\views\claim\add_claim_travelling_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\petrol\petrol_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\accomodation\claim_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\meal_claim_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\subsistance_allowance\claim_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\travel_transportation\claim_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\parking_charges\claim_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\toll_charges\claim_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\entertainment\entertainment_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\trainer_facilitator\claim_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\outpatien_claim_no_prorate_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\hospitalization_claim_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\dental_optical_claim_no_prorate_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\dressing_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\gadget_v2.php"

		--summary
		"E:\spserp.dev\application\modules\hr\views\claim\my_claim_detail_v2.php"
		"E:\spserp.dev\application\modules\hr\claim\page\claimdetail\button.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\claimdetail\3_v2.php"

		"E:\spserp.dev\application\modules\hr\views\claim\page\claimdetail\claim_type\mileage_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\claimdetail\claim_type\petrol_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\claimdetail\claim_type\accomodation_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\claimdetail\claim_type\meal_allowance_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\claimdetail\claim_type\subsistence_allowance_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\claimdetail\claim_type\transportation_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\claimdetail\claim_type\parking_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\claimdetail\claim_type\toll_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\claimdetail\claim_type\entertainment_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\claimdetail\claim_type\trainer_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\claimdetail\claim_type\others_v2.php"

		--approval
		"E:\spserp.dev\application\modules\hr\views\claim\my_claim_list_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\claimlist\team_lead_claim_list_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\claimlist\my_claim_list_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\claimlist\department_claim_list_v2.php"
		"E:\spserp.dev\application\modules\hr\views\claim\page\claimlist\admin_v2.php"

		--report
		"E:\spserp.dev\application\modules\hr\views\report\claim\report-submission_v2.php"

		--link
		"E:\spserp.dev\application\modules\template\views\component\navbar-menu\HR.php.php"
		"E:\spserp.dev\application\modules\hr\views\dashboard\index.php"
	}

	{ -- UPDATE / MEETINGS 
		Meeting 14/6/2022
		- No related job : no job ID re-word exp: training, etc. / Choose others, choose type, compulsory fill for remarks. - DONE
		- Option to choose complete/non completed job - DONE
		- Check acknowledge job on job id listing : give popup info not acknowlegde - DONE
		- Team leader/hod claim request to differentiate screen to show claim status - DONE
		- Monthly email notification for remainder on claim, ot - wait for notification function setting 
		- Prepare UAT - DONE

		Meeting 22/8/2022
		- Refer UAT result. DONE
		- Team lead screen only show their job claim details only. DONE
		- Team lead starting with Supervisor and above. DONE

		***NEED TO COMPLY SAVE STAFF HISTORY - PENDING
	}
}

{ 3. Profiling - Combination of Education in Progress, Professional Memberships, Professional Licenses, Professional Education, Professional Certificate
	{ -- TO DO
		Refer UAT Study Leave
	}

	{ -- DB
		Tab Academic Education 			: user__academic_qualification, user__academic_qualification_attachment
		Tab Education In Progress 		: user__pursuing_study, user__pursuing_study_attachment
		Tab Professional Education 		: user__professional_academic type=0 ,user__professional_academic_attachment
		Tab Professional Certificate 	: user__professional_academic type=1 ,user__professional_academic_attachment

		_ref__paper_status 
		_ref__academic
		_ref__academic_category

		ALTER TABLE `user__academic_qualification` ADD `status_id` INT(11) NULL AFTER `cgpa`; ***DONE LIVE
		ALTER TABLE `user__academic_qualification` CHANGE `status_id` `status_id` INT(11) NULL DEFAULT NULL COMMENT '_ref__paper_status';
		ALTER TABLE `user__academic_qualification` ADD `lock_status` INT(11) NOT NULL COMMENT '0=no, 1=yes' AFTER `status_id`

		ALTER TABLE `user__professional_academic` ADD `status_id` INT(11) NULL AFTER `result`; ***DONE LIVE
		ALTER TABLE `user__professional_academic` CHANGE `status_id` `status_id` INT(11) NULL DEFAULT NULL COMMENT '_ref__paper_status';
		ALTER TABLE `user__professional_academic` ADD `lock_status` INT(11) NOT NULL COMMENT '0=no, 1=yes' AFTER `status_id`;

		ALTER TABLE `user__pursuing_study` ADD `level_id` INT(11) NULL AFTER `program`; ***DONE LIVE
		ALTER TABLE `user__pursuing_study` CHANGE `level_id` `level_id` INT(11) NOT NULL COMMENT '_ref__academic';
		ALTER TABLE `user__pursuing_study` ADD `lock_status` INT(11) NOT NULL COMMENT '0=no, 1=yes' AFTER `status`;

		ALTER TABLE `hr__exam` CHANGE `status` `status` INT(11) NOT NULL COMMENT '0=first attempt, 1=repeat';


		CREATE OR REPLACE VIEW view_academic_pro_education as  
		SELECT a.action_type_id AS action_type_id,
		a.action_efective_date AS action_efective_date,
		a.created_at AS created_at,
		b.type AS action_type,
		c.id AS id,
		c.profiling_id AS profiling_id,
		c.user_id AS user_id,
		c.program AS program,
		c.institution AS institution,
		c.year AS year_graduated,
		c.cgpa AS final_result,
		c.level_id AS level_id,
		c.lock_status AS lock_status,
		d.level AS level,
		d.category_id AS category_id,
		f.category AS category,
 		IF(c.status_id IS NULL, 1, c.status_id) as status_id,
		e.status AS status,
		 "user__academic_qualification" as tablename
		FROM  user__academic_qualification c
		LEFT OUTER JOIN user__profiling a ON a.id = c.profiling_id AND a.is_delete = 0
		LEFT OUTER JOIN _ref__action_type b ON b.id = a.action_type_id
		LEFT OUTER JOIN _ref__academic d ON d.id = c.level_id
		LEFT OUTER JOIN _ref__paper_status e ON e.ref_id = IF(c.status_id IS NULL, 1, c.status_id)
		LEFT OUTER JOIN _ref__academic_category f ON f.id = d.category_id
		WHERE c.profiling_id = a.id
		AND c.is_delete = 0
		UNION 
		SELECT a.action_type_id AS action_type_id,
		a.action_efective_date AS action_efective_date,
		a.created_at AS created_at,
		b.type AS action_type,
		c.id AS id,
		c.profiling_id AS profiling_id,
		c.user_id AS user_id,
		c.program AS program,
		c.associate_name AS institution,
		YEAR(c.date_finish) AS year_graduated,
		c.result AS final_result,
		c.level AS level_id,
		c.lock_status AS lock_status,
		d.level AS level,
		d.category_id AS category_id,
		f.category AS category,
		IF(c.status_id IS NULL, 1, c.status_id) as status_id, 
		e.status AS status,
		"user__professional_academic" as tablename
		FROM  user__professional_academic c
		LEFT OUTER JOIN user__profiling a ON a.id = c.profiling_id AND a.is_delete = 0
		LEFT OUTER JOIN _ref__action_type b ON b.id = a.action_type_id
		LEFT OUTER JOIN _ref__academic d ON d.id = c.level
		LEFT OUTER JOIN _ref__paper_status e ON e.ref_id = IF(c.status_id IS NULL, 1, c.status_id)
		LEFT OUTER JOIN _ref__academic_category f ON f.id = d.category_id
		WHERE c.profiling_id = a.id
		AND c.is_delete = 0
		UNION
		SELECT a.action_type_id AS action_type_id,
		a.action_efective_date AS action_efective_date,
		a.created_at AS created_at,
		b.type AS action_type,
		c.id AS id,
		c.profiling_id AS profiling_id,
		c.user_id AS user_id,
		c.program AS program,
		c.institution AS institution,
		IF(c.date_end != '0000-00-00', YEAR(c.date_end), NULL) as year_graduated, 
		c.result AS final_result,
		c.level_id AS level_id,
		c.lock_status AS lock_status,
		d.level AS level,
		d.category_id AS category_id,
		f.category AS category,
		c.status AS status_id,
		e.status AS status,
		"user__pursuing_study" as tablename
		FROM  user__pursuing_study c
		LEFT OUTER JOIN user__profiling a ON a.id = c.profiling_id AND a.is_delete = 0
		LEFT OUTER JOIN _ref__action_type b ON b.id = a.action_type_id
		LEFT OUTER JOIN _ref__academic d ON d.id = c.level_id
		LEFT OUTER JOIN _ref__paper_status e ON e.ref_id = c.status
		LEFT OUTER JOIN _ref__academic_category f ON f.id = d.category_id
		WHERE c.profiling_id = a.id
		AND c.is_delete = 0 
	}

	{ -- FILES
		hr/controllers/StaffProfile.php
		hr/controllers/MyProfile.php
		hr/controllers/api/Staffprofiling.php

		hr/models/model_academic_qualification.php
		hr/models/model_user_pursuing_study.php
		hr/models/model_user_professional_academic.php
		hr/models/model_profiling.php 
		hr/models/model_exam.php

		hr/views/staff_profiling/page/list/component/content/tab-segment-academic-qualification.php
		hr/views/staff_profiling/page/list/component/content/tab-segment-education-in-progress.php
		hr/views/staff_profiling/page/list/component/content/tab-segment-professional-education.php
		hr/views/staff_profiling/page/list/component/content/tab-segment-professional-certificate.php

		##new propose

		hr/views/staff_profiling/page/list/list.php
		hr/views/staff_profiling/page/list/scripts/tabcolor.php
		hr/views/staff_profiling/page/list/scripts/tab-academic-qualification.php
		hr/views/staff_profiling/page/list/component/tab/tab-academic-professional-education.php
		hr/views/staff_profiling/page/list/component/content/tab-segment-academic-professional-education.php

		hr/views/myprofile/list/list.php
		hr/views/myprofile/list/scripts/tabcolor.php
		hr/views/myprofile/page/list/component/tab/tab-academic-professional-education.php
		hr/views/myprofile/page/list/component/content/tab-segment-academic-professional-education.php

		hr/views/myprofile/mymainprofile.php
		hr/views/myprofile/professional_education.php

		hr/views/staff_profiling/page/transaction/create_update_action.php
		hr/views/staff_profiling/page/transaction/components/widget/toggle_infotype.php
		hr/views/staff_profiling/page/transaction/components/infotype/academic_pro_qualification.php
		hr/views/staff_profiling/page/transaction/components/scripts/action.php
		hr/views/staff_profiling/page/transaction/components/scripts/action-edit.php
		hr/views/staff_profiling/page/transaction/components/modal/edit/edit.php

		cronautoupdate.php
		cron/autoupdate.php

		cronreminder.php
		cron/reminder.php
	}

	{ -- UPDATES / MEETINGS
		- need lock and auto lock DONE
		- noti to remind update exam result after 30 days from exam date DONE PENDING ON AYAT EMAIL
		- noti email congratulate for complete the exam and pass DONE PENDING ON AYAT EMAIL
	}
}

{ 4. Claim update 2023 --LIVE

	{ -- DB
		INSERT INTO `hr__ref_claim_travelling_zone` (`id`, `zone`, `description`, `is_delete`) VALUES (NULL, 'West Malaysia & Sabah Sarawak', 'starting 2023', '0');

		`hr__ref_claim_traveling_zone_claim_type`

		INSERT INTO `spserp_dev`.`hr__claim_travelling_rate` (`id`, `type_id`, `type`, `rate_amount`, `rate_km`, `sequence`) VALUES (NULL, '9', 'Motorcar', '0.80', '500', '0'), (NULL, '9', 'Motorcar', '0.70', '150', '1'), (NULL, '9', 'Motorcar', '0.60', '50', '2'), (NULL, '9', 'Motorcar', '0.40', '0', '3'), (NULL, '10', 'Motorcycle', '0.40', '0', '0');

		INSERT INTO `spserp_dev`.`hr__ref_claim_travelling_vehicle` (`id`, `type`, `is_delete`) VALUES (NULL, 'Motorcar', '0'), (NULL, 'Motorcycle', '0');

		_ref__claim_type

		_ref__claim_type_detail

		ALTER TABLE `hr__claim_allocation` ADD `membership_as` INT(128) NOT NULL AFTER `dental_optical`;
	}
}

{ 5. Overtime 2.0
	{ -- TO DO

	}

	{ -- DB 
		-- SPSERP
		ALTER TABLE `hr__ot` ADD `staff_ot_grade` INT NOT NULL AFTER `remarks`, ADD `staff_ot_salary` FLOAT NOT NULL AFTER `staff_ot_grade`;
		ALTER TABLE `hr__ot` ADD `staff_basic_pay` FLOAT NOT NULL AFTER `staff_ot_grade`;
		ALTER TABLE `hr__ot` ADD `staff_dept_id` INT(11) NOT NULL AFTER `staff_ot_salary`;

		-- MGS DB
		ts__ot_request

		ALTER TABLE ts__hour ADD `dayType` INT(11) NOT NULL , ADD `ot_startTime` TIME NOT NULL , ADD `ot_endTime` TIME NOT NULL;
		ALTER TABLE ts__hour CHANGE `dayType` `dayType` INT(11) NOT NULL COMMENT '1=Normal, 2=Rest, 3=Public, 6=Off';
		ALTER TABLE ts__hour ADD `admin_is_approved` INT(11) NOT NULL COMMENT '0=pending,1=verified,2=rejected' ;
		ALTER TABLE ts__hour ADD `em_is_approved` INT(11) NOT NULL COMMENT '0=pending,1=approved, 2=rejected' AFTER `ot_endTime`;
		ALTER TABLE ts__hour ADD `admin_remarks` TEXT NOT NULL ;

		-- e_attendance
		UPDATE `module` SET `module_location` = 'e_attendance/e_attendance_v2' WHERE `module`.`id` = 22;
		ALTER TABLE `_ref__working_session` CHANGE `is_flexible` `is_flexible` INT(11) NOT NULL COMMENT '0=not flexible; 1=flexible; 2=manager only, 3 = Overtime Hour';
		INSERT INTO `spserp_dev`.`_ref__working_session` (`id`, `session`, `status`, `is_flexible`, `branch_id`) VALUES (NULL, 'Overtime Hour', '1', '3', '');
		ALTER TABLE `attd__user_clock` ADD `ot_startTime` TIME NOT NULL AFTER `work_session_id`, ADD `ot_endTime` TIME NOT NULL AFTER `ot_startTime`;
	}

	{ -- FILES
	
		-- SPSERP
		hr/views/dashboard/index.php  -- Overtime module link
		hr/controllers/Overtime_v2.php{
			index()
			yearList()
		}

		e_attendance/models/model_attendance.php
		hr/models/ot/model_ot.php

		hr/views/overtime/index_v2.php
		hr/views/overtime/ot-year-list_v2.php

		hr/controllers/Overtime_report_v2.php{
			
		}

		-- MGS
		controllers/Timesheet.php {
			use Carbon\Carbon;
			save()
			ot_request()
			save_ot_req() 
			cancel_ot_req()
			ot_req_approval()
			get_ot_req_details()
			get_ot_req_details_by_job()
			save_ot_change_status()
			approve_all_ot_req_details()
			getOTDate()
			get_day_type()
			get_total_OT_hours()
			get_staff_ot_hours()
		}

		models/model_job.php {
			getInProgressTaskByUserID()
			getLeadJobByUserID()
		}

		models/model_timesheet.php {
			insert_ot_request()
			update_ot_request()
			get_ot_request_details()
			get_approved_ot_request_details()
			getGrossSalary()
			getOtDate()
			get_day_type()
			get_total_OT_hours()
			get_project_timesheet_by_staff_weekly()
			get_staff_detail_ot_hours()
			count_pending_ot()
			update_ot_hour_status()
		}
		
		views/template/stisla/components/sidebar.php
		views/page/timesheet/ot_request_listing.php
		views/page/timesheet/ot_request_modal.php
		views/page/timesheet/ot_approval_listing.php
		views/page/timesheet/ot_approval_change_status_modal.php
		views/page/timesheet/my_timesheet_modal.php
		views/page/timesheet/my_2.php
		views/page/timesheet/approval_listing.php
		views/page/timesheet/approval_modal.php

		-- e_attendance
		e_attendance/controllers/e_attendance_v2.php
		e_attendance/views/attendance_form_v2.php
		e_attendance/views/staff_day_history_v2.php
		e_attendance/models/model_attendace.php{
			get_working_session_v2()
			get_day_type()
			get_last_working_session()
			get_attendance_by_month()
		}

	}

	{ -- UPDATES / MEETINGS

		1) utk branch, public holiday diorang follow negeri or follow HQ? contoh : cuti2 yg melibatkan certain negeri shj : FOLLOW HQ
		2) what if dia staff branch jb, tp ot di HQ? contoh : staff johor yg kena stay HQ utk settlekan job : FOLLOW HQ
		3) Antara day type (Public Holiday, Rest Day, Off Day) yang mana nak check dulu? contoh : Public Holiday jatuh pada sabtu atau ahad. Nak ambil kira as Public Holiday or Rest Day/Off Day 
		4) Dekat Leave 2.0 ada function move Holiday ke lain hari. Contoh : Cuti Thaipusam dibawa ke cuti raya. So Public Holiday dikira pada tarikh asal atau tarikh baru yg dibawa?

	}	
}

{ 6. E-Learning 
	{ -- TO DO
		E-Learning Module 
		Sub : E-Induction
		Sub : Library *DONE
	}

	{ -- DB
		INSERT INTO `module` (`id`, `parent_id`, `is_external`, `order_index`, `name`, `module_location`, `description`, `icon`, `bg_color`, `background_color`, `status`, `created_by`, `created_ts`, `updated_by`, `updated_ts`, `is_delete`, `deleted_by`, `deleted_ts`) VALUES (NULL, NULL, '0', '0', 'e-Learning', '', 'e-Learning', 'fas fa-users', NULL, 'bg-gradient-5', '0', '1', '2018-02-03 02:22:08', NULL, NULL, '0', NULL, NULL);

		INSERT INTO `module` (`id`, `parent_id`, `is_external`, `order_index`, `name`, `module_location`, `description`, `icon`, `bg_color`, `background_color`, `status`, `created_by`, `created_ts`, `updated_by`, `updated_ts`, `is_delete`, `deleted_by`, `deleted_ts`) VALUES (NULL, '27', '0', '0', 'e-Induction', 'e_induction', 'e-Induction', '', NULL, 'bg-gradient-5', '0', '1', '2018-02-03 02:22:08', NULL, NULL, '0', NULL, NULL);

		el_einduction_dashboard_category
		el_einduction_dashboard_subcategory
		el_einduction_content_manage
		_ref__el_einduction_content_type
	}

	{ -- FILES
		-- controllers
		e_learning/e_learning.php 
		e_learning/e_induction.php 

		-- models
		e_learning/model_e_induction.php

		-- views 
		e_learning/views/dashboard.php 
		e_learning/views/e_induction_dashboard.php
		e_learning/views/e_induction_dashboard_setup.php
		e_learning/views/e_induction_assessment_setup.php
		e_learning/views/file_manager.php
		e_learning/views/e_induction_outcome_report.php

		template/sufee-template/components/layout_e_learning.php
		template/sufee-template/components/sidebar_e_learning.php
		template/sufee-template/components/header_e_learning.php
		template/sufee-template/components/breadcrumb_e_learning.php

		template/sufee-template/components/layout_e_induction.php
		template/sufee-template/components/header_e_induction.php
		template/sufee-template/components/breadcrumb_e_induction.php
	}

	{ -- UPDATES / MEETINGS

	}
}

{ 7. Client Portal
	{ -- TO DO
		Login Mockup accoding to process flow. 2,3 template mockup
	}

	{ -- DB

	}

	{ -- FILES

	}

	{ -- UPDATES / MEETINGS

	}
}

{ 99. SQL Statement
	
}

{ 100. Meetings

	1) 10/06/22 Meeting with En Salihin on Digital Transformation ***DONE
	
		Workshop/retreat must come out with strategy (short and long term) 
		In term of governance
		Study on Digital Transformation Journey doing by Others, articles, research
		Digital Transformation Committee

	2) Refer no. 4 ***DONE
	3) CRM issue 20/6/22 ***DONE
		CRM - MGS : remove compulsory complete crm info on mgs for terminated/strike off client.

	4) SKM - Development Meeting 20/7/22 ***DONE

		1. Guna Ci3
		2. DNS 
		3. Layout / theme
		4. Study on existing system - iaccounts & spslite

			ci
			php
			api
			functionality
			user management
			email config
			constant
			template exp:email
			notification
			assets
			issue
			db operation
			files management and security exp: attachment can open when session end 
			improvement
			clean up for non source code 
			playaround

		Task : 
		Copy only source code

	5) PRIDIK Meeting - 17/8/22 ***DONE

		Materiality - susunan kena ikut setting materiality
		COA - check GP23 DONE
		Materiality calculate PM - buat engine
		Template - Maklumat koperasi
		Team

	6) SDC 22/8/22 ***DONE

		Claim refer no.2
		New EA 2022 update by gov on OT. exp: salary > 4000 and calculation. Need to tie with attendance.
		FWA application. Get ready with system on application.

	7) Audit Caseware DEMO 22/8/22 ***DONE

		Type of audit engagement:
		statutory audit
		set of working paper
		agreed upon procedure

		1. Engagement Setup
		------------------------
		1.1 Complete Engagement Propeties
		1.2 Complete Optimiser Checklist and Confirmation Report
		1.3 Import Trial Balance
			excel, import from accounting software, others import option
		1.4 Review Trial Balance
		1.5 Assign Mapping Numbers
		1.6 Begin Engagement Work

		2. Workflow
		--------------------------
		2.1. Planning and Risk Assessment
		2.2. Risk Response
		2.3. Completing and Reporting

		Storage
		---------------------------
		Engagement File Setup > Optimizer
		General Audit Procedure
		Audit
		Planning
		Risk Assessment
		Risk Response
		Audit Plans and Procedures - Asset
		Audit Plans and Procedures - Liabilities and Equity
		Audit Plans and Procedures - Income Statement
		Completion Documents
		***Caseware Audit System Document
		*** ***DONE

	8) Tender SKM Meeting 20/9/22 ***DONE

		kod 4 - Ternakan - Terbalik
	
	9) PEKEMA Meeting - 27/9/22 ***DONE
		
		- User start download 24/10/22 and submit by 11/11/22. System need to be ready by 14/10/22.
		- Ahli kena bayar before 02/11/2

	10) Audit Software Meeting 17/10/22 ***DONE
		- SPSERP only for Audit

		STEP 1 : ENGAGEMENT - 
		- Audit file no. attached to mgs jobid
		- No generated after 3 form fulfilled :-
			1) Client and Engagement Independence Confirmation - AUD-ISQC 1/E2/FORM E
			2) Client Re-Appoint Review Checklist
			3) New Client Checklist
		
		- Hyperlink
		- Diff server for audit system
		- Conflict management
		- Initial of team member from MGS
		- Progress from audit system with show on MGS

	11) Handing over IT Support 18/10/22 ***DONE

		- QR code on ticketing support
		- Induction video : 1) Introduction to the system 2) How to use the system

	12) Dashboard meeting 18/10/22, 31/10/22, 22/11/22 ***DONE

		- will be displayed on TV screen (based on category)
		- announcement included on dashboard
		- birthday announcement
		- new client announcement - 10 latest client with logo
		- staff movement
		- booking dashboard - meeting with client name and status, buffer on booking
		- budget vs in-progress vs actual revenue - keyin sales order as in-progress amount on job request form and reflected to mgs (Contract Fee exc. SST) : Jan 2023

		31/10/22
		- Admin flow change to 1 page only
		- Auto full screen
		- Will involve designer
		- Event of the day
		- Retreat 2/12/22 need to go live on that day

		22/11/22
		- CRM change to client/customer data only
		- Business and indutries sebelah2
		- Remove CRM by Classes, CRM Grade by Dept
		- Latest Appointed remove Engagement column, replace with Industries
		- Add graph region and state
		- Only display Active and Dormant for Customer only.

		- Booking change design 3 venue per screen

		- HR staff by age
		- Remove Leave by Month 
		- Remove Today On Leave

	13) E-Reqruitment meeting 21/10/22 ***DONE
	14) PRIDIK 25/10/22 ***DONE

		- IT Admin, Audit Admin, Juruaudit Ibupejabat, Negeri, Koperasi (Roles:Jurusemak/juruaudit)

	15) IT Lab 1/12/2022 ***DONE
	16) DPIM Meeting - 14/12/2022 ***DONE

		- adjust/recheck iziwizi landing page, change icon, add product dekat features on landing, remove first 2 box on benefits
		- request logo with nazim - SALIHIN DIGITAL
		- QR code for slides and iziwizi
		- masuk BI/dashboard dalam slides
		- business card
		- IT to provide slides video and QR code

	17) SDC - 17/1/2023

		- Profiling : PCB check IC. If same IC not include as new PCB. Check claim also.
		- Notification : Register Study and Exam Courses - notification to HOD and HR

	18) 1. CLIENT PORTAL 31/1/23 -- IT PIC/Programmer | FF
		- To develop Client Portal
		- MY Role for Digital Tax : Advice on IT technical part. Exp: Data, migration, backup, customization, api, etc.
		- Who Client/Customer? Who Client Processor/Backend?
		- v1.0 March, v2.0 June-July, v3.0
		- Ticketing for support

		Ref. link :
			1. https://www.zendesk.com/service/help-center/client-portal/ 

		2. CLIENT PORTAL 15/2/23

			CRM : 
			1) Prospect
			2) Client Onboarding

			Account:
			1) Quotation
			2) Invoice
			3) Client Request
			4) Reminder
			5) Support

	19) E-induction meeting 15/2/2023
		- part of e-learning
		- refer e-latih
		- Ready by 6/3/2023
		- ready platform for upload content and questionnaire
		- idea utk pisahkan mysa dgn salihin
	
	20) SDC 8/3/22
		Claim - Keluarkan list job yg completed date 3 bulan ke belakang shj.
		OT - Add time start time end when tick overtime hour in timesheet
		Notification - check who is receiver and what method want to use
		CRM - Group is not company, need to have email info

	21) SDC 4 - 6/4/22
		OT - July 3rd Quarter
		Study Leave - Livekan paper and study record in profiling dulu.
	
	22) Dept Meeting 10/3/22
		MGS Engagement Team tick staff.
		Claim flow to present in IDC.

	23) OT Discussion with HR 4/5/2023
		Promotion 	: User Employment Detail, Basic Pay, Recurring Pay
		Increament 	: 
		Change Payroll : Change of Business Entity

		Tukar Gaji & Tukar Payroll : Change of Pay

		1 April 2023 : Change of Pay & Promotion (5 orang) : 
		Employment Details (Copy latest action, bagi HR isi Reason shj), 
		Basic Pay (Pay Scale Group ambil yg latest dari Employment Details, start date 1/4/2023, INACTIVE yg lama, Reason guna Action Type), 
		Recurring Pay

		Comment Staff Grade & Basic Pay

		Claim Approval Admin make scroll to latest approve & check Completed status tu buat apa.
	24) IT Assuring Brainstorming 22/5/2023
		Tomorrow agenda:
		1. Product Assuring to present on SED 2/6/2023
		2. Product ITD
		3. Infra, hardware, email, & other SALIHIN admin matter for Assuring

		Prepare template for CRM for Assuring client

	25) IT Lab 30/5/2023
		1) Data Analytics
		2) IT Audit & Assurance
		3) IT Cyber Securitiy

		CRM > Keluarkan Project on Engagement Timeline
		Tengok balik SPSERP > Helpdesk

	26) SDC 21/6/2023
	- Profiling : Professional Edu + lock function. 1 times only.
	- pass : send email congratulation
	- remind to update exam status 1 month after exam paper

} 

{
	
}



