รวม code แก้ไข Change Request จากทีม

This commit is contained in:
Nakorn Rientrakrunchai
2020-07-25 23:21:43 +07:00
parent fef57e2655
commit 565fa89be2
11 changed files with 146 additions and 23 deletions

View File

@@ -104,6 +104,10 @@ namespace TodoAPI2.Models
into external_linkageResult2
from fk_external_linkageResult2 in external_linkageResult2.DefaultIfEmpty()
join sort_dep in ext.GetSortingDep() on fk_external_linkageResult2.department_id equals sort_dep.id
into sort_depResult2
from fk_sort_depResult2 in sort_depResult2.DefaultIfEmpty()
join create_detail in _repository.Context.eva_create_evaluation_detail
on fk_eva_adjust_postponementResult1A.create_evaluation_id equals create_detail.create_evaluation_id
into create_detailResult
@@ -114,9 +118,12 @@ namespace TodoAPI2.Models
&& (m_eva_adjust_postponement_detail_quota_02.adjust_postponement_quota_id == model.adjust_postponement_quota_id || !model.adjust_postponement_quota_id.HasValue)
&& (fk_create_detailResult.employee_id == m_eva_adjust_postponement_detail_quota_02.employee_id || fk_create_detailResult == null)
orderby fk_external_linkageResult2.department_degree_id,
fk_external_linkageResult2.department_code,
fk_external_linkageResult2.position_level_id,
orderby
fk_sort_depResult2.external_code,
//fk_external_linkageResult2.department_degree_id,
//fk_external_linkageResult2.department_code,
fk_external_linkageResult2.hpt_position_type_id,
fk_external_linkageResult2.hpl_position_level_id,
fk_external_linkageResult2.employee_no
select new eva_adjust_postponement_detail_quota_02ViewModel()
{
@@ -138,7 +145,7 @@ namespace TodoAPI2.Models
emp_fullname = fk_external_linkageResult2.fullname,
emp_position = fk_external_linkageResult2.position_name,
emp_level = fk_external_linkageResult2.position_level_text,
emp_department_name = fk_external_linkageResult2.department_name,
emp_department_name = fk_sort_depResult2.external_name,
total_score = fk_create_detailResult.score_supervisor,
eva_result = fk_create_detailResult.level_score_supervisor,

View File

@@ -161,6 +161,7 @@ namespace TodoAPI2.Models
public List<eva_create_evaluation_detail_processViewModel> GetListBySearch(eva_create_evaluation_detail_processSearchModel model, int? emp_id, string path)
{
var allemp = emp.GetListByemployee_type(null, null);
var all_org_id = from i in ext.GetAllChildInDep(model.org_id) select i.external_id;
var data = (
from m_eva_create_evaluation_detail_process in _repository.Context.eva_create_evaluation_detail
@@ -169,6 +170,10 @@ namespace TodoAPI2.Models
into external_employeeResult
from fk_external_employee in external_employeeResult.DefaultIfEmpty()
join sort_dep in ext.GetSortingDep() on fk_external_employee.department_id equals sort_dep.id
into sort_depResult2
from fk_sort_depResult2 in sort_depResult2.DefaultIfEmpty()
join fk_external_chief in allemp on m_eva_create_evaluation_detail_process.chief equals fk_external_chief.id
into external_chiefResult
from fk_external_chief in external_chiefResult.DefaultIfEmpty()
@@ -179,7 +184,7 @@ namespace TodoAPI2.Models
where 1 == 1
&& (m_eva_create_evaluation_detail_process.create_evaluation_id == model.create_evaluation_id || !model.create_evaluation_id.HasValue)
&& (fk_external_employee.department_id == model.org_id || !model.org_id.HasValue)
&& (all_org_id.Contains(fk_external_employee.department_id) || !model.org_id.HasValue)
&& (fk_external_employee.employee_no == model.search_employee_code || string.IsNullOrEmpty(model.search_employee_code))
&& (fk_external_employee.fullname.Contains(model.search_employee_fullname) || string.IsNullOrEmpty(model.search_employee_fullname))
&& emp_id.HasValue
@@ -190,9 +195,12 @@ namespace TodoAPI2.Models
|| (fk_eva_create_evaluationResult10.supervisor2_id.HasValue && emp_id == fk_eva_create_evaluationResult10.supervisor2_id)
)
orderby fk_external_employee.department_degree_id,
fk_external_employee.department_code,
fk_external_employee.position_level_id,
orderby
fk_sort_depResult2.external_code,
//fk_external_employee.department_degree_id,
//fk_external_employee.department_code,
fk_external_employee.hpt_position_type_id,
fk_external_employee.hpl_position_level_id,
fk_external_employee.employee_no
select new eva_create_evaluation_detail_processViewModel()
{
@@ -204,7 +212,7 @@ namespace TodoAPI2.Models
employee_position = fk_external_employee.position_name,
employee_position_type = fk_external_employee.position_type_name,
employee_position_level = fk_external_employee.position_level_text,
employee_org = fk_external_employee.department_name,
employee_org = fk_sort_depResult2.external_name,
chief_fullname = fk_external_chief.fullname,
chief_position = fk_external_chief.position_name,
create_evaluation_id = m_eva_create_evaluation_detail_process.create_evaluation_id,
@@ -212,7 +220,7 @@ namespace TodoAPI2.Models
search_employee_code = fk_external_employee.employee_no,
search_employee_fullname = fk_external_employee.fullname,
org_id_external_linkage_external_name = fk_external_employee.department_name,
org_id_external_linkage_external_name = fk_sort_depResult2.external_name,
status_self = m_eva_create_evaluation_detail_process.status_self,
status_chief = m_eva_create_evaluation_detail_process.status_chief,

View File

@@ -71,8 +71,14 @@ CONCAT(htm.title_name,' ',he.firstname,' ',he.lastname) as fullname,opd.position
CONCAT(he.firstname,he.lastname) as halfname,
orgdata.id as department_id,orgdata.department_name,orgdata.department_code,he.salary,
he.employee_type_id, het.employee_type_name,opd.position_id as position_id,
u.email as user_email, u.id as user_id,hpl.position_level_name,he.position_level_id,
he.position_type_id,hpt.position_type_name,he.packing_date,he.cost_of_living,
u.email as user_email, u.id as user_id,hpl.position_level_name,
he.position_level_id,
he.position_type_id,
hpl.position_level_id as hpl_position_level_id,
hpt.position_type_id as hpt_position_type_id,
hpt.position_type_name,he.packing_date,he.cost_of_living,
(CASE WHEN (SELECT hrm_work_rec.id FROM hrm_working_records as hrm_work_rec
WHERE hrm_work_rec.employee_id = he.employee_id
AND hrm_work_rec.start_date <= now()
@@ -129,6 +135,7 @@ order by he.firstname, he.lastname;
{
i.position_type_id = Convert.ToInt32(dr["position_type_id"]);
i.position_type_name = dr["position_type_name"].ToString();
i.hpt_position_type_id = Convert.ToInt32(dr["hpt_position_type_id"]);
}
if (dr["position_id"] != DBNull.Value)
@@ -155,6 +162,7 @@ order by he.firstname, he.lastname;
{
i.position_level_id = Convert.ToInt32(dr["position_level_id"]);
i.position_level_text = dr["position_level_name"].ToString();
i.hpl_position_level_id = Convert.ToInt32(dr["hpl_position_level_id"]);
}
i.salary = 0;
if (dr["salary"] != DBNull.Value)

View File

@@ -35,6 +35,7 @@ namespace TodoAPI2.Models
public int? employee_type_id { get; set; }
public int? position_id { get; set; }
public int? position_type_id { get; set; }
public int? hpt_position_type_id { get; set; }
public string position_type_name { get; set; }
public string user_email { get; set; }
public int? user_id { get; set; }
@@ -45,6 +46,7 @@ namespace TodoAPI2.Models
public string employee_type_name { get; set; }
public string employee_no { get; set; }
public int? position_level_id { get; set; }
public int? hpl_position_level_id { get; set; }
public string position_level_text { get; set; }
public DateTime? packing_date { get; set; }
public int? department_degree_id { get; set; }

View File

@@ -30,6 +30,9 @@ namespace TodoAPI2.Models
List<external_linkageViewModel> GetRelationshipForReport();
List<external_linkageViewModel> GetFiscalYear();
List<external_linkageViewModel> GetEvaRound();
List<external_linkageViewModel> GetAllChildInDep(int? dep_id);
List<external_linkageViewModel> GetChildInDep(int? dep_id);
List<external_linkageViewModel> GetSortingDep();
}
}

View File

@@ -249,7 +249,7 @@ namespace TodoAPI2.Models
public List<external_linkageViewModel> GetDepartmentData()
{
var sql = string.Format("select * from public.{0}DepartmentData{0} where department_name != '' and deleted_at is null; ", '"'.ToString());
var sql = string.Format("select * from public.{0}DepartmentData{0} where department_name != '' and deleted_at is null order by department_name; ", '"'.ToString());
var para = db.GetParameterListNpgsql();
DataTable dt = db.ExecuteDataTableNpgsql(sql, para);
var result = new List<external_linkageViewModel>();
@@ -371,6 +371,85 @@ namespace TodoAPI2.Models
return result;
}
public List<external_linkageViewModel> GetAllChildInDep(int? dep_id)
{
var all_result = new List<external_linkageViewModel>();
if (dep_id.HasValue)
{
var result = GetChildInDep(dep_id);
all_result.AddRange(result);
foreach (var i in result)
{
var result2 = GetChildInDep(i.id.Value);
all_result.AddRange(result2);
}
}
return all_result;
}
public List<external_linkageViewModel> GetChildInDep(int? dep_id)
{
var sql = string.Format(@"select data1.id,data1.department_name
from public.{0}DepartmentData{0} data1
left join org_organization_chart_details detail on data1.id=detail.department_id
where detail.parent_department_id={1} or data1.id={1};", '"'.ToString(), dep_id.ToString());
var para = db.GetParameterListNpgsql();
DataTable dt = db.ExecuteDataTableNpgsql(sql, para);
var result = new List<external_linkageViewModel>();
foreach (DataRow dr in dt.Rows)
{
var i = new external_linkageViewModel();
i.external_id = Convert.ToInt32(dr["id"]);
i.external_code = dr["id"].ToString();
i.external_name = dr["department_name"].ToString();
result.Add(i);
}
return result;
}
public List<external_linkageViewModel> GetSortingDep()
{
var sql = string.Format(@"
select orgdata.id,
case when orgdata2.department_name is not null then
concat(orgdata2.department_name,' - ',orgdata.department_name)
else orgdata.department_name end as full_dep,
orgdata.department_name,
orgdata.department_code,detail.parent_department_id,
case
when org_type_depart.department_degree_id = 1 then orgdata.department_code::int*1000
when detail.parent_department_id is not null and detail.parent_department_id>0
then orgdata2.department_code::int*1000+orgdata.department_code::int
else orgdata.department_code::int*100000 end as sort_order,org_type_depart.department_degree_id
from public.{0}DepartmentData{0} orgdata
left join org_organization_chart_details detail on orgdata.id = detail.department_id
left join public.{0}DepartmentData{0} orgdata2 on orgdata2.id = detail.parent_department_id
left join public.org_type_departments as org_type_depart on orgdata.department_type_id = org_type_depart.id
left join public.org_type_department_colors as org_depart_color
on org_type_depart.department_degree_id = org_depart_color.id
where orgdata.department_name is not null
order by case
when org_type_depart.department_degree_id = 1 then orgdata.department_code::int*1000
when detail.parent_department_id is not null and detail.parent_department_id>0
then orgdata2.department_code::int*1000+orgdata.department_code::int
else orgdata.department_code::int*100000 end
", '"'.ToString());
var para = db.GetParameterListNpgsql();
DataTable dt = db.ExecuteDataTableNpgsql(sql, para);
var result = new List<external_linkageViewModel>();
foreach (DataRow dr in dt.Rows)
{
var i = new external_linkageViewModel();
i.external_id = Convert.ToInt32(dr["id"]);
i.external_code = dr["sort_order"].ToString();
i.external_name = dr["full_dep"].ToString();
result.Add(i);
}
return result;
}
}
}

View File

@@ -56,17 +56,29 @@ namespace TodoAPI2.Models
public List<search_employee_for_groupViewModel> GetListBySearch(search_employee_for_groupSearchModel model)
{
var allemp = emp.GetListByemployee_type(null, null);
var all_org_id = from i in ext.GetAllChildInDep(model.org_id) select i.external_id;
var data = (
from m_search_employee_for_group in allemp
join sort_dep in ext.GetSortingDep() on m_search_employee_for_group.department_id equals sort_dep.id
into sort_depResult2
from fk_sort_depResult2 in sort_depResult2.DefaultIfEmpty()
where 1 == 1
&& (string.IsNullOrEmpty(model.employee_number) || (!string.IsNullOrEmpty(model.employee_number) && m_search_employee_for_group.employee_no.Contains(model.employee_number)))
&& (string.IsNullOrEmpty(model.fullname) || (!string.IsNullOrEmpty(model.fullname) && m_search_employee_for_group.fullname.Contains(model.fullname)))
&& (m_search_employee_for_group.position_id == model.position_id || !model.position_id.HasValue)
&& (m_search_employee_for_group.department_id == model.org_id || !model.org_id.HasValue)
&& (all_org_id.Contains(m_search_employee_for_group.department_id) || !model.org_id.HasValue)
orderby
fk_sort_depResult2.external_code,
//fk_external_employee.department_degree_id,
//fk_external_employee.department_code,
m_search_employee_for_group.hpt_position_type_id,
m_search_employee_for_group.hpl_position_level_id,
m_search_employee_for_group.employee_no
orderby m_search_employee_for_group.fullname
select new search_employee_for_groupViewModel()
{
id = m_search_employee_for_group.id,

View File

@@ -26,7 +26,7 @@
<div class="row">
<input class="form-control" type="hidden" id="s_eva_create_evaluation_detail_process_create_evaluation_id" />
<div class="form-group col-md-3">
<div class="form-group col-md-4">
<label id='lab_s_eva_create_evaluation_detail_process_org_id' for='s_eva_create_evaluation_detail_process_org_id'>หน่วยงาน</label>
<select class="form-control" id="s_eva_create_evaluation_detail_process_org_id" iLabel="หน่วยงาน" iRequire="true" iGroup="s_eva_create_evaluation_detail_process" title='หน่วยงาน' placeholder='หน่วยงาน'></select>
</div>
@@ -41,7 +41,7 @@
<input class="form-control" type="text" id="s_eva_create_evaluation_detail_process_search_employee_fullname" iLabel="ชื่อ-สกุล" iRequire="true" iGroup="s_eva_create_evaluation_detail_process" title='ชื่อ-สกุล' placeholder='ชื่อ-สกุล' />
</div>
<div class="col-md-3">
<div class="col-md-2">
<button class="btn btn-info" onclick="javascript:eva_create_evaluation_detail_process_DoSearch();">ค้นหา</button>
</div>
@@ -52,7 +52,6 @@
<thead>
<tr>
<th>เครื่องมือ</th>
<th><label id='h_eva_create_evaluation_detail_process_employee_code'>รหัสพนักงาน</label></th>
<th><label id='h_eva_create_evaluation_detail_process_employee_fullname'>ชื่อ-สกุล</label></th>
<th><label id='h_eva_create_evaluation_detail_process_employee_position'>ตำแหน่ง</label></th>
@@ -77,6 +76,7 @@
eva_create_evaluation_detail_process_InitiateDataTable();
eva_create_evaluation_detail_process_InitialForm();
SetupValidationRemark("eva_create_evaluation_detail_process");
$("#s_eva_create_evaluation_detail_process_org_id").select2();
});
</script>
}

View File

@@ -63,10 +63,11 @@
<tr>
<th>เลือก</th>
<th><label id='h_search_employee_for_group_employee_number'>รหัสพนักงาน</label></th>
<th><label id='h_search_employee_for_group_org_id'>หน่วยงาน</label></th>
<th><label id='h_search_employee_for_group_fullname'>ชื่อ-สกุล</label></th>
<th><label id='h_search_employee_for_group_position_id'>ตำแหน่ง</label></th>
<th><label id='h_search_employee_for_group_level_name'>ระดับ</label></th>
<th><label id='h_search_employee_for_group_org_id'>หน่วยงาน</label></th>
<th><label id='h_search_employee_for_group_remark'>หมายเหตุ</label></th>
</tr>
</thead>

View File

@@ -196,7 +196,6 @@ console.log(result);
{ "data": "org_id_external_linkage_external_name" },
{ "data": "status_chief" },
{ "data": "status_supervisor" },
{ "data": "id" }
],
@@ -214,10 +213,13 @@ console.log(result);
"render": function (data, type, row, meta) {
if(row.status_chief === "Y"){
return "<button type='button' class='btn btn-warning btn-sm' onclick='javascript:eva_create_evaluation_detail_agreement_GoSelfReview(" + tmp + data + tmp + ")'><i class='fa fa-pencil'></i></button> ";
}else{
return "";
}
}
}],
}
],
"language": {
"url": appsite + "/DataTables-1.10.16/thai.json"
},

View File

@@ -164,6 +164,7 @@ var search_employee_for_group_setupTable = function (result) {
search_employee_for_groupTableV = $('#search_employee_for_groupTable').DataTable({
"processing": true,
"serverSide": false,
"ordering": false,
"data": result,
"select": {
"style": 'multi'
@@ -171,10 +172,10 @@ var search_employee_for_group_setupTable = function (result) {
"columns": [
{ "data": "" },
{ "data": "employee_number" },
{ "data": "org_id_external_linkage_external_name" },
{ "data": "fullname" },
{ "data": "position_id_external_linkage_external_name" },
{ "data": "level_name" },
{ "data": "org_id_external_linkage_external_name" },
{ "data": "level_name" },
{ "data": "remark" },
],
"columnDefs": [