ปิดให้ ผอ และ แผนกบุคคล เห็นคะแนน และ เรื่องอื่นๆ
This commit is contained in:
+1
-1
@@ -101,7 +101,7 @@ namespace TodoAPI2.Models
|
||||
{
|
||||
if (s == "Y")
|
||||
{
|
||||
return "ส่งแบบประเมินแล้ว <br/>";
|
||||
return "ส่งข้อตกลงแล้ว <br/>";
|
||||
}
|
||||
else if (s == "N")
|
||||
{
|
||||
|
||||
+12
@@ -388,6 +388,18 @@ namespace TodoAPI2.Models
|
||||
|
||||
private void SendNotification(int? noti_to_employee_id, int? owner_eva_employee_id, int? detail_id, string noti_message, string noti_url)
|
||||
{
|
||||
/*
|
||||
@Nakorn (ต้น) คุณนครคะ
|
||||
ผอ.กลางจะให้ท่านเลขาธิการฯ เริ่มทำในระบบ วันที่ 1 เมษายน 2565 ค่ะ โดยที่ประชุมที่ผ่านมาได้ตรวจรับระบบใบลาไว้ ผอ.กลางจึงขอให้ทางแซดดี ระงับการแจ้งเตือนที่ส่งไปถึงท่าน ณ ตอนนี้ทุกรายการ
|
||||
และล้างรายการแจ้งเตือนของเดิมที่ค้างไว้ออกให้หมดค่ะ เพื่อที่ทางผอ.กลางจะส่งเรื่องให้ท่านเริ่มใช้งานค่ะ
|
||||
|
||||
*** โดยในวันที่ 1 เมษายน 65 เริ่มให้มีแต่การแจ้งเตือนและการอนุมัติเฉพาะระบบใบลาเท่านั้นค่ะ ***
|
||||
*
|
||||
ขอให้คุณนครดำเนินการให้ด้วยค่ะ
|
||||
*/
|
||||
|
||||
if (noti_to_employee_id == 163) return;
|
||||
|
||||
if (!noti_to_employee_id.HasValue || !owner_eva_employee_id.HasValue || !detail_id.HasValue) return;
|
||||
|
||||
var all_emp = emp.GetAllEmployee();
|
||||
|
||||
+20
@@ -151,6 +151,20 @@ namespace TodoAPI2.Models
|
||||
return newkey.Value;
|
||||
}
|
||||
|
||||
private void updateMissionNo(int? create_evaluation_detail_id)
|
||||
{
|
||||
var items = (from i in _repository.Context.eva_evaluation_operating_agreement
|
||||
where i.create_evaluation_detail_id == create_evaluation_detail_id
|
||||
orderby i.mission_no
|
||||
select i);
|
||||
int p = 1;
|
||||
foreach(var i in items)
|
||||
{
|
||||
i.mission_no = p;
|
||||
p++;
|
||||
}
|
||||
_repository.Context.SaveChanges();
|
||||
}
|
||||
|
||||
public eva_evaluation_operating_agreementViewModel Insert(eva_evaluation_operating_agreementInputModel model)
|
||||
{
|
||||
@@ -175,6 +189,9 @@ namespace TodoAPI2.Models
|
||||
entity.SetAutoField(_repository.Context);
|
||||
|
||||
var inserted = _repository.Insert(entity);
|
||||
|
||||
updateMissionNo(entity.create_evaluation_detail_id);
|
||||
|
||||
entity.DoAfterInsertUpdate(_repository.Context);
|
||||
return Get(inserted.id);
|
||||
}
|
||||
@@ -193,6 +210,9 @@ namespace TodoAPI2.Models
|
||||
existingEntity.SetAutoField(_repository.Context);
|
||||
|
||||
var updated = _repository.Update(id, existingEntity);
|
||||
|
||||
updateMissionNo(existingEntity.create_evaluation_detail_id);
|
||||
|
||||
existingEntity.DoAfterInsertUpdate(_repository.Context);
|
||||
return Get(updated.id);
|
||||
}
|
||||
|
||||
@@ -312,112 +312,63 @@ and u.id=@user_id;
|
||||
public employee_leaveViewModel GetLeaveOfEmployee(int employee_id, DateTime? start_date, DateTime? end_date)
|
||||
{
|
||||
var sql = string.Format(@"
|
||||
select {0}b{0}.{0}employee_id{0}, (
|
||||
SELECT SUM((select count(d::date) as d from generate_series(case when start_date<@start_date then @start_date else start_date end,case when end_date>@end_date then @end_date else end_date end, '1 day'::interval) d where extract('dow' from d) not in (0, 6))) FROM tad_general_leaves as tad_general
|
||||
LEFT JOIN tad_leave_types as leave_type ON tad_general.leave_type_id = CAST(leave_type.id as varchar)
|
||||
WHERE tad_general.deleted_at is null
|
||||
AND leave_type.deleted_at is null
|
||||
AND leave_type.id = 2
|
||||
AND tad_general.employee_id = b.employee_id
|
||||
AND tad_general.status = '3'
|
||||
AND ((tad_general.start_date between @start_date and @end_date)
|
||||
or (tad_general.end_date between @start_date and @end_date))
|
||||
) as sum_day_sick_leave, (
|
||||
SELECT COUNT(tad_general.*) FROM tad_general_leaves as tad_general
|
||||
LEFT JOIN tad_leave_types as leave_type ON tad_general.leave_type_id = CAST(leave_type.id as varchar)
|
||||
WHERE tad_general.deleted_at is null
|
||||
AND leave_type.deleted_at is null
|
||||
AND leave_type.id = 2
|
||||
AND tad_general.employee_id = b.employee_id
|
||||
AND tad_general.status = '3'
|
||||
AND ((tad_general.start_date between @start_date and @end_date)
|
||||
or (tad_general.end_date between @start_date and @end_date))
|
||||
) as count_sick_leave, (
|
||||
SELECT SUM((select count(d::date) as d from generate_series(case when start_date<@start_date then @start_date else start_date end,case when end_date>@end_date then @end_date else end_date end, '1 day'::interval) d where extract('dow' from d) not in (0, 6))) FROM tad_general_leaves as tad_general
|
||||
LEFT JOIN tad_leave_types as leave_type ON tad_general.leave_type_id = CAST(leave_type.id as varchar)
|
||||
WHERE tad_general.deleted_at is null
|
||||
AND leave_type.deleted_at is null
|
||||
AND leave_type.id = 4
|
||||
AND tad_general.employee_id = b.employee_id
|
||||
AND tad_general.status = '3'
|
||||
AND ((tad_general.start_date between @start_date and @end_date)
|
||||
or (tad_general.end_date between @start_date and @end_date))
|
||||
) as sum_day_personal_leave, (
|
||||
SELECT COUNT(tad_general.*) FROM tad_general_leaves as tad_general
|
||||
LEFT JOIN tad_leave_types as leave_type ON tad_general.leave_type_id = CAST(leave_type.id as varchar)
|
||||
WHERE tad_general.deleted_at is null
|
||||
AND leave_type.deleted_at is null
|
||||
AND leave_type.id = 4
|
||||
AND tad_general.employee_id = b.employee_id
|
||||
AND tad_general.status = '3'
|
||||
AND ((tad_general.start_date between @start_date and @end_date)
|
||||
or (tad_general.end_date between @start_date and @end_date))
|
||||
) as count_personal_leave, (
|
||||
SELECT SUM((select count(d::date) as d from generate_series(case when start_date<@start_date then @start_date else start_date end,case when end_date>@end_date then @end_date else end_date end, '1 day'::interval) d where extract('dow' from d) not in (0, 6))) FROM tad_general_leaves as tad_general
|
||||
LEFT JOIN tad_leave_types as leave_type ON tad_general.leave_type_id = CAST(leave_type.id as varchar)
|
||||
WHERE tad_general.deleted_at is null
|
||||
AND leave_type.deleted_at is null
|
||||
AND leave_type.id = 1
|
||||
AND tad_general.employee_id = b.employee_id
|
||||
AND tad_general.status = '3'
|
||||
AND ((tad_general.start_date between @start_date and @end_date)
|
||||
or (tad_general.end_date between @start_date and @end_date))
|
||||
) as sum_day_vacation_leave, (
|
||||
SELECT COUNT(tad_general.*) FROM tad_general_leaves as tad_general
|
||||
LEFT JOIN tad_leave_types as leave_type ON tad_general.leave_type_id = CAST(leave_type.id as varchar)
|
||||
WHERE tad_general.deleted_at is null
|
||||
AND leave_type.deleted_at is null
|
||||
AND leave_type.id = 1
|
||||
AND tad_general.employee_id = b.employee_id
|
||||
AND tad_general.status = '3'
|
||||
AND ((tad_general.start_date between @start_date and @end_date)
|
||||
or (tad_general.end_date between @start_date and @end_date))
|
||||
) as count_vacation_leave, (
|
||||
SELECT COUNT(DISTINCT tad_stop.date) FROM tad_stop_workings as tad_stop
|
||||
WHERE tad_stop.deleted_at is null
|
||||
AND tad_stop.employee_id = b.employee_id
|
||||
AND tad_stop.date BETWEEN @start_date AND @end_date
|
||||
) as count_stop_working, (
|
||||
SELECT COUNT(prs_time_result.id) FROM tad_processing_time_results as prs_time_result
|
||||
LEFT JOIN tad_processing_times as prs_time ON prs_time_result.processing_time_id = prs_time.id
|
||||
WHERE prs_time_result.deleted_at is null
|
||||
AND prs_time.deleted_at is null
|
||||
AND prs_time_result.employee_id = b.employee_id
|
||||
AND prs_time_result.time_in is not null
|
||||
AND prs_time_result.time_out is not null
|
||||
AND prs_time_result.late is not null
|
||||
AND prs_time_result.date BETWEEN @start_date AND @end_date
|
||||
) as count_late_tad_processing_time_results, (
|
||||
SELECT COUNT(prs_time_result.id) FROM tad_processing_time_results as prs_time_result
|
||||
LEFT JOIN tad_processing_times as prs_time ON prs_time_result.processing_time_id = prs_time.id
|
||||
WHERE prs_time_result.deleted_at is null
|
||||
AND prs_time.deleted_at is null
|
||||
AND prs_time_result.employee_id = b.employee_id
|
||||
AND prs_time_result.time_in is null
|
||||
AND prs_time_result.time_out is null
|
||||
AND prs_time_result.record_type = 'Absence'
|
||||
AND prs_time_result.date BETWEEN @start_date AND @end_date
|
||||
) as count_absence_tad_processing_time_results, (
|
||||
SELECT SUM((select count(d::date) as d from generate_series(case when start_date<@start_date then @start_date else start_date end,case when end_date>@end_date then @end_date else end_date end, '1 day'::interval) d where extract('dow' from d) not in (0, 6))) FROM tad_general_leaves as tad_general
|
||||
LEFT JOIN tad_leave_types as leave_type ON tad_general.leave_type_id = CAST(leave_type.id as varchar)
|
||||
WHERE tad_general.deleted_at is null
|
||||
AND leave_type.deleted_at is null
|
||||
AND leave_type.id in (2,4)
|
||||
AND tad_general.employee_id = b.employee_id
|
||||
AND tad_general.status = '3'
|
||||
AND ((tad_general.start_date between @start_date and @end_date)
|
||||
or (tad_general.end_date between @start_date and @end_date))
|
||||
) as sum_day_sick_personal_leave, (
|
||||
SELECT COUNT(tad_general.*) FROM tad_general_leaves as tad_general
|
||||
LEFT JOIN tad_leave_types as leave_type ON tad_general.leave_type_id = CAST(leave_type.id as varchar)
|
||||
WHERE tad_general.deleted_at is null
|
||||
AND leave_type.deleted_at is null
|
||||
AND leave_type.id in (2,4)
|
||||
AND tad_general.employee_id = b.employee_id
|
||||
AND tad_general.status = '3'
|
||||
AND ((tad_general.start_date between @start_date and @end_date)
|
||||
or (tad_general.end_date between @start_date and @end_date))
|
||||
) as count_sick_personal_leave from {0}tad_table_workings{0} as {0}a{0} left join {0}hrm_employees{0} as {0}b{0} on {0}a{0}.{0}employee_id{0} = {0}b{0}.{0}employee_id{0} left join {0}tad_workshifts{0} as {0}c{0} on {0}a{0}.{0}workshift_id{0} = {0}c{0}.{0}id{0} where {0}a{0}.{0}deleted_at{0} is null and {0}b{0}.{0}deleted_at{0} is null and {0}c{0}.{0}deleted_at{0} is null and {0}b{0}.{0}employee_id{0} = @employee_id
|
||||
SELECT
|
||||
|
||||
SUM(CASE WHEN tad_general.leave_type_id = '2' THEN tad_general_detail.dayoff_qty END) as sum_day_sick_leave,
|
||||
COUNT(DISTINCT CASE WHEN tad_general.leave_type_id = '2' THEN tad_general_detail.general_leave_id END) as count_sick_leave,
|
||||
|
||||
SUM(CASE WHEN tad_general.leave_type_id = '4' THEN tad_general_detail.dayoff_qty END) as sum_day_personal_leave,
|
||||
COUNT(DISTINCT CASE WHEN tad_general.leave_type_id = '4' THEN tad_general_detail.general_leave_id END) as count_personal_leave,
|
||||
|
||||
SUM(CASE WHEN tad_general.leave_type_id = '1' THEN tad_general_detail.dayoff_qty END) as sum_day_vacation_leave,
|
||||
COUNT(DISTINCT CASE WHEN tad_general.leave_type_id = '1' THEN tad_general_detail.general_leave_id END) as count_vacation_leave,
|
||||
|
||||
(
|
||||
SELECT COUNT(DISTINCT tad_stop.date) FROM public.tad_stop_workings as tad_stop
|
||||
WHERE tad_stop.deleted_at is null
|
||||
AND tad_stop.status = 3
|
||||
|
||||
AND tad_stop.employee_id = @employee_id
|
||||
AND tad_stop.date BETWEEN @start_date AND @end_date
|
||||
) as count_stop_working,
|
||||
|
||||
(
|
||||
SELECT COUNT(prs_time_result.id) FROM tad_processing_time_results as prs_time_result
|
||||
INNER JOIN tad_processing_times as prs_time ON prs_time_result.processing_time_id = prs_time.id
|
||||
WHERE prs_time_result.deleted_at is null
|
||||
AND prs_time.deleted_at is null
|
||||
AND prs_time_result.time_in is not null
|
||||
AND prs_time_result.time_out is not null
|
||||
AND prs_time_result.late is not null
|
||||
|
||||
AND prs_time_result.employee_id = @employee_id
|
||||
AND prs_time_result.date BETWEEN @start_date AND @end_date
|
||||
) as count_late_tad_processing_time_results,
|
||||
|
||||
(
|
||||
SELECT COUNT(prs_time_result.id) FROM tad_processing_time_results as prs_time_result
|
||||
INNER JOIN tad_processing_times as prs_time ON prs_time_result.processing_time_id = prs_time.id
|
||||
WHERE prs_time_result.deleted_at is null
|
||||
AND prs_time.deleted_at is null
|
||||
AND prs_time_result.time_in is null
|
||||
AND prs_time_result.time_out is null
|
||||
AND prs_time_result.record_type = 'Absence'
|
||||
|
||||
AND prs_time_result.employee_id = @employee_id
|
||||
AND prs_time_result.date BETWEEN @start_date AND @end_date
|
||||
) as count_absence_tad_processing_time_results,
|
||||
|
||||
SUM(CASE WHEN tad_general.leave_type_id = '2' OR tad_general.leave_type_id = '4' THEN tad_general_detail.dayoff_qty END) as sum_day_sick_personal_leave,
|
||||
COUNT(DISTINCT CASE WHEN tad_general.leave_type_id = '2' OR tad_general.leave_type_id = '4' THEN tad_general_detail.general_leave_id END) as count_sick_personal_leave
|
||||
|
||||
FROM public.tad_general_leave_details as tad_general_detail
|
||||
inner join public.tad_general_leaves as tad_general on tad_general_detail.general_leave_id = tad_general.id
|
||||
where tad_general_detail.deleted_at is null
|
||||
and tad_general.deleted_at is null
|
||||
and tad_general.status = '3'
|
||||
|
||||
and tad_general.employee_id = @employee_id
|
||||
and tad_general_detail.date BETWEEN @start_date AND @end_date
|
||||
", '"'.ToString());
|
||||
|
||||
var para = db.GetParameterListNpgsql();
|
||||
|
||||
Reference in New Issue
Block a user