ปิดให้ ผอ และ แผนกบุคคล เห็นคะแนน และ เรื่องอื่นๆ

This commit is contained in:
nakorn
2022-03-29 18:27:31 +07:00
parent f5ebda01bf
commit 71f1906d79
13 changed files with 180 additions and 117 deletions

View File

@@ -101,7 +101,7 @@ namespace TodoAPI2.Models
{
if (s == "Y")
{
return "ส่งแบบประเมินแล้ว <br/>";
return "ส่งข้อตกลงแล้ว <br/>";
}
else if (s == "N")
{

View File

@@ -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();

View File

@@ -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);
}

View File

@@ -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();