รวม code ปรับปรุงตาม change request จากทีม

This commit is contained in:
Nakorn Rientrakrunchai
2020-04-26 13:27:10 +07:00
parent f353f73d17
commit 60dd022bea
29 changed files with 496 additions and 93 deletions

View File

@@ -83,7 +83,7 @@ left join public.{0}DepartmentData{0} as orgdata on orgdata.id = he.department_i
left join public.hrm_employee_types as het on het.id = he.employee_type_id
left join public.users as u on u.employee_id = he.employee_id
where he.workingstatus = 'สถานะปฏิบัติงาน' and he.deleted_at is null and mpn.deleted_at is null
and opd.deleted_at is null and htm.deleted_at is null
and opd.deleted_at is null --and htm.deleted_at is null
order by he.firstname,he.lastname;
", '"'.ToString());
var para = db.GetParameterListNpgsql();
@@ -161,7 +161,7 @@ left join public.org_position_datas as opd on opd.position_id = mpn.position_id
left join public.hrm_title_masters as htm on htm.id = he.prefix_card_name
left join public.users as u on u.employee_id = he.employee_id
where he.workingstatus = 'สถานะปฏิบัติงาน' and he.deleted_at is null and mpn.deleted_at is null
and opd.deleted_at is null and htm.deleted_at is null
and opd.deleted_at is null --and htm.deleted_at is null
and u.id=@user_id;
";
var para = db.GetParameterListNpgsql();
@@ -198,6 +198,196 @@ 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(tad_general.total_dayoff) 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 >= @start_date
AND tad_general.end_date <= @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 >= @start_date
AND tad_general.end_date <= @end_date
) as count_sick_leave, (
SELECT SUM(tad_general.total_dayoff) 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 >= @start_date
AND tad_general.end_date <= @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 >= @start_date
AND tad_general.end_date <= @end_date
) as count_personal_leave, (
SELECT SUM(tad_general.total_dayoff) 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 >= @start_date
AND tad_general.end_date <= @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 >= @start_date
AND tad_general.end_date <= @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(tad_general.total_dayoff) 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 >= @start_date
AND tad_general.end_date <= @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 >= @start_date
AND tad_general.end_date <= @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
", '"'.ToString());
var para = db.GetParameterListNpgsql();
var p_employee_id = new NpgsqlParameter("employee_id", DbType.Int32);
p_employee_id.Value = employee_id;
para.Add(p_employee_id);
var p_start_date = new NpgsqlParameter("start_date", DbType.Date);
p_start_date.Value = start_date;
para.Add(p_start_date);
var p_end_date = new NpgsqlParameter("end_date", DbType.Date);
p_end_date.Value = end_date;
para.Add(p_end_date);
DataTable dt = db.ExecuteDataTableNpgsql(sql, para);
var dr = dt.Rows[0];
var i = new employee_leaveViewModel();
i.sum_day_sick_leave = 0;
i.count_sick_leave = 0;
i.sum_day_personal_leave = 0;
i.count_personal_leave = 0;
i.sum_day_vacation_leave = 0;
i.count_vacation_leave = 0;
i.count_stop_working = 0;
i.count_late_tad_processing_time_results = 0;
i.count_absence_tad_processing_time_results = 0;
i.sum_day_sick_personal_leave = 0;
i.count_sick_personal_leave = 0;
if (dr["sum_day_sick_leave"] != DBNull.Value)
{
i.sum_day_sick_leave = Convert.ToInt32(dr["sum_day_sick_leave"]);
}
if (dr["count_sick_leave"] != DBNull.Value)
{
i.count_sick_leave = Convert.ToInt32(dr["count_sick_leave"]);
}
if (dr["sum_day_personal_leave"] != DBNull.Value)
{
i.sum_day_personal_leave = Convert.ToInt32(dr["sum_day_personal_leave"]);
}
if (dr["count_personal_leave"] != DBNull.Value)
{
i.count_personal_leave = Convert.ToInt32(dr["count_personal_leave"]);
}
if (dr["sum_day_vacation_leave"] != DBNull.Value)
{
i.sum_day_vacation_leave = Convert.ToInt32(dr["sum_day_vacation_leave"]);
}
if (dr["count_vacation_leave"] != DBNull.Value)
{
i.count_vacation_leave = Convert.ToInt32(dr["count_vacation_leave"]);
}
if (dr["count_stop_working"] != DBNull.Value)
{
i.count_stop_working = Convert.ToInt32(dr["count_stop_working"]);
}
if (dr["count_late_tad_processing_time_results"] != DBNull.Value)
{
i.count_late_tad_processing_time_results = Convert.ToInt32(dr["count_late_tad_processing_time_results"]);
}
if (dr["count_absence_tad_processing_time_results"] != DBNull.Value)
{
i.count_absence_tad_processing_time_results = Convert.ToInt32(dr["count_absence_tad_processing_time_results"]);
}
if (dr["sum_day_sick_personal_leave"] != DBNull.Value)
{
i.sum_day_sick_personal_leave = Convert.ToInt32(dr["sum_day_sick_personal_leave"]);
}
if (dr["count_sick_personal_leave"] != DBNull.Value)
{
i.count_sick_personal_leave = Convert.ToInt32(dr["count_sick_personal_leave"]);
}
return i;
}
public external_employeeWithSelectionViewModel GetBlankItem()
{
var i = new external_employeeWithSelectionViewModel();