รวม code ปรับปรุงตาม change request จากทีม
This commit is contained in:
@@ -16,6 +16,8 @@ namespace TodoAPI2.Models
|
||||
int? GetLeader(int? emp_id);
|
||||
external_employeeViewModel GetEmployeeForLogin(int? user_id);
|
||||
external_employeeWithSelectionViewModel GetBlankItem();
|
||||
|
||||
employee_leaveViewModel GetLeaveOfEmployee(int employee_id, DateTime? start_date, DateTime? end_date);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -11,6 +11,20 @@ using TTSW.Common;
|
||||
|
||||
namespace TodoAPI2.Models
|
||||
{
|
||||
public class employee_leaveViewModel
|
||||
{
|
||||
public int? sum_day_sick_leave { get; set; }
|
||||
public int? count_sick_leave { get; set; }
|
||||
public int? sum_day_personal_leave { get; set; }
|
||||
public int? count_personal_leave { get; set; }
|
||||
public int? sum_day_vacation_leave { get; set; }
|
||||
public int? count_vacation_leave { get; set; }
|
||||
public int? count_stop_working { get; set; }
|
||||
public int? count_late_tad_processing_time_results { get; set; }
|
||||
public int? count_absence_tad_processing_time_results { get; set; }
|
||||
public int? sum_day_sick_personal_leave { get; set; }
|
||||
public int? count_sick_personal_leave { get; set; }
|
||||
}
|
||||
public class external_employeeViewModel
|
||||
{
|
||||
public int id { get; set; }
|
||||
|
||||
Reference in New Issue
Block a user