680 lines
31 KiB
C#
680 lines
31 KiB
C#
using AutoMapper;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using TTSW.EF;
|
|
using TTSW.Utils;
|
|
using TTSW.Constant;
|
|
using TTSW.Common;
|
|
using TodoAPI2.Models;
|
|
using System.IO;
|
|
using System.Web;
|
|
using System.Net;
|
|
using TTSW.Configure;
|
|
using Microsoft.Extensions.Options;
|
|
using System.Data;
|
|
using System.Globalization;
|
|
|
|
namespace TodoAPI2.Models
|
|
{
|
|
public class external_linkageService : Iexternal_linkageService
|
|
{
|
|
private IMyDatabase db;
|
|
private IBaseRepository2<eva_adjust_postponementEntity, int> _repository;
|
|
|
|
public external_linkageService(IMyDatabase mydb, IBaseRepository2<eva_adjust_postponementEntity, int> repository)
|
|
{
|
|
db = mydb;
|
|
_repository = repository;
|
|
}
|
|
|
|
public List<external_linkageViewModel> Getcreate_evaluationDetail()
|
|
{
|
|
var item_create_evaluation_id = (from x in _repository.Context.eva_create_evaluation select x);
|
|
var result = new List<external_linkageViewModel>();
|
|
foreach(var x in item_create_evaluation_id)
|
|
{
|
|
var i = new external_linkageViewModel();
|
|
i.external_id = x.id;
|
|
i.external_code = x.id.ToString();
|
|
i.external_name = x.eva_evaluation_group.thegroup + " ปี " + x.eva_performance_plan.fiscal_year.ToString();
|
|
result.Add(i);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public List<external_linkageViewModel> Gethrm_employee_types()
|
|
{
|
|
var sql = "SELECT * FROM public.hrm_employee_types where deleted_at is null and employee_type_id != '05' order by employee_type_id";
|
|
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["employee_type_id"].ToString();
|
|
i.external_name = dr["employee_type_id"].ToString() + " " + dr["employee_type_name"].ToString();
|
|
result.Add(i);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public List<external_linkageViewModel> Gethrm_position_types()
|
|
{
|
|
var sql = "SELECT * FROM public.hrm_position_types where deleted_at is null order by position_type_id";
|
|
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["position_type_id"].ToString();
|
|
i.external_name = dr["position_type_name"].ToString();
|
|
result.Add(i);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public List<external_linkageViewModel> Gethrm_position_levels()
|
|
{
|
|
var sql = "SELECT * FROM public.hrm_position_levels where deleted_at is null order by position_level_id";
|
|
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["position_level_id"].ToString();
|
|
i.external_name = dr["position_level_name"].ToString();
|
|
result.Add(i);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public List<external_linkageViewModel> GetYesNo()
|
|
{
|
|
var result = new List<external_linkageViewModel>();
|
|
var i = new external_linkageViewModel();
|
|
i.external_id = 1;
|
|
i.external_code = "yes";
|
|
i.external_name = "ใช่";
|
|
result.Add(i);
|
|
|
|
var j = new external_linkageViewModel();
|
|
j.external_id = 2;
|
|
j.external_code = "no";
|
|
j.external_name = "ไม่ใช่";
|
|
result.Add(j);
|
|
|
|
return result;
|
|
}
|
|
|
|
public List<external_linkageViewModel> GetSalaryReportType()
|
|
{
|
|
var result = new List<external_linkageViewModel>();
|
|
var i = new external_linkageViewModel();
|
|
i.external_id = 1;
|
|
i.external_code = "1";
|
|
i.external_name = "รายงานเพื่อดูย้อนหลัง";
|
|
result.Add(i);
|
|
|
|
var j = new external_linkageViewModel();
|
|
j.external_id = 2;
|
|
j.external_code = "2";
|
|
j.external_name = "รายงานปกติ";
|
|
result.Add(j);
|
|
|
|
return result;
|
|
}
|
|
|
|
public List<external_linkageViewModel> GetChoice(int start, int end)
|
|
{
|
|
var result = new List<external_linkageViewModel>();
|
|
|
|
for(int i=start; i<=end; i++)
|
|
{
|
|
var x = new external_linkageViewModel();
|
|
x.external_id = i;
|
|
x.external_code = i.ToString();
|
|
x.external_name = i.ToString();
|
|
result.Add(x);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
public List<external_linkageViewModel> GetDataType()
|
|
{
|
|
var result = new List<external_linkageViewModel>();
|
|
var i = new external_linkageViewModel();
|
|
i.external_id = 1;
|
|
i.external_code = "01";
|
|
i.external_name = "ส่วนที่ 1 ผลงาน";
|
|
result.Add(i);
|
|
|
|
var j = new external_linkageViewModel();
|
|
j.external_id = 2;
|
|
j.external_code = "02";
|
|
j.external_name = "ส่วนที่ 2 การปฏิบัติ";
|
|
result.Add(j);
|
|
|
|
return result;
|
|
}
|
|
|
|
//i.item_evaluation_type = (from x in _repository.Context.external_linkage select x).ToList();
|
|
//i.item_evaluation_status = (from x in _repository.Context.external_linkage select x).ToList();
|
|
//i.item_grantee_id = (from x in _repository.Context.external_linkage select x).ToList();
|
|
//i.item_evaluation_accept = (from x in _repository.Context.external_linkage select x).ToList();
|
|
|
|
public List<external_linkageViewModel> Getevaluation_type()
|
|
{
|
|
var result = new List<external_linkageViewModel>();
|
|
var i = new external_linkageViewModel();
|
|
i.external_id = 1;
|
|
i.external_code = "01";
|
|
i.external_name = "ผู้ถูกประเมิน";
|
|
result.Add(i);
|
|
|
|
var j = new external_linkageViewModel();
|
|
j.external_id = 2;
|
|
j.external_code = "02";
|
|
j.external_name = "ผู้ประเมิน";
|
|
result.Add(j);
|
|
|
|
var l = new external_linkageViewModel();
|
|
l.external_id = 3;
|
|
l.external_code = "03";
|
|
l.external_name = "ผู้บังคับบัญชาสูงขึ้นไปหนึ่งระดับ";
|
|
result.Add(l);
|
|
|
|
var m = new external_linkageViewModel();
|
|
m.external_id = 4;
|
|
m.external_code = "04";
|
|
m.external_name = "ผู้บังคับบัญชาสูงขึ้นไปสองระดับ";
|
|
result.Add(m);
|
|
|
|
return result;
|
|
}
|
|
|
|
public List<external_linkageViewModel> Getevaluation_status()
|
|
{
|
|
var result = new List<external_linkageViewModel>();
|
|
var i = new external_linkageViewModel();
|
|
i.external_id = 1;
|
|
i.external_code = "N";
|
|
i.external_name = "ยังไม่ส่ง";
|
|
result.Add(i);
|
|
|
|
var j = new external_linkageViewModel();
|
|
j.external_id = 2;
|
|
j.external_code = "Y";
|
|
j.external_name = "ส่งแล้ว";
|
|
result.Add(j);
|
|
|
|
return result;
|
|
}
|
|
|
|
public List<external_linkageViewModel> Getevaluation_accept()
|
|
{
|
|
var result = new List<external_linkageViewModel>();
|
|
var i = new external_linkageViewModel();
|
|
i.external_id = 10;
|
|
i.external_code = "N1";
|
|
i.external_name = "ยังไม่แจ้งผล";
|
|
result.Add(i);
|
|
|
|
var j = new external_linkageViewModel();
|
|
j.external_id = 11;
|
|
j.external_code = "Y1";
|
|
j.external_name = "แจ้งผลแล้ว";
|
|
result.Add(j);
|
|
|
|
var k = new external_linkageViewModel();
|
|
k.external_id = 20;
|
|
k.external_code = "N2";
|
|
k.external_name = "ยังไม่ทราบผล";
|
|
result.Add(k);
|
|
|
|
var l = new external_linkageViewModel();
|
|
l.external_id = 21;
|
|
l.external_code = "Y2";
|
|
l.external_name = "ทราบผลแล้ว";
|
|
result.Add(l);
|
|
|
|
return result;
|
|
}
|
|
|
|
public List<external_linkageViewModel> GetAgreeDisagree()
|
|
{
|
|
var result = new List<external_linkageViewModel>();
|
|
var i = new external_linkageViewModel();
|
|
i.external_id = 1;
|
|
i.external_code = "Y";
|
|
i.external_name = "เห็นด้วยกับผลการประเมิน";
|
|
result.Add(i);
|
|
|
|
var j = new external_linkageViewModel();
|
|
j.external_id = 2;
|
|
j.external_code = "N";
|
|
j.external_name = "ไม่เห็นด้วยและมีความเห็นต่าง";
|
|
result.Add(j);
|
|
|
|
return result;
|
|
}
|
|
|
|
public List<external_linkageViewModel> GetAgreeDisagree2()
|
|
{
|
|
var result = new List<external_linkageViewModel>();
|
|
var i = new external_linkageViewModel();
|
|
i.external_id = 1;
|
|
i.external_code = "Y";
|
|
i.external_name = "เห็นชอบ";
|
|
result.Add(i);
|
|
|
|
var j = new external_linkageViewModel();
|
|
j.external_id = 2;
|
|
j.external_code = "N";
|
|
j.external_name = "ความเห็นอื่นๆ";
|
|
result.Add(j);
|
|
|
|
return result;
|
|
}
|
|
|
|
public List<external_linkageViewModel> GetDepartmentData()
|
|
{
|
|
var sql_parent = string.Format("select" +
|
|
" org_chart_detail.department_id," +
|
|
" org_depart.department_code," +
|
|
|
|
" (case when org_chart_detail.department_id is not null then" +
|
|
" (select org_short.department_name" +
|
|
" from public.org_department_version_names as org_short" +
|
|
" where org_short.deleted_at is null" +
|
|
" and org_short.department_id = org_chart_detail.department_id" +
|
|
" and org_short.effective_date <= now()" +
|
|
" order by org_short.effective_date desc limit 1) else null end) as department_name," +
|
|
|
|
" (case when cast(org_chart_detail.parent_department_id AS int) < 0 then" +
|
|
" (select org.organization_name from public.org_organization_datas as org" +
|
|
" where org.deleted_at is null" +
|
|
" and org.organization_id = ABS(org_chart_detail.parent_department_id))" +
|
|
" else (select org_department_version.department_name from public.org_department_version_names as org_department_version" +
|
|
" where org_department_version.deleted_at is null" +
|
|
" and org_department_version.department_id = ABS(org_chart_detail.parent_department_id)" +
|
|
" and org_department_version.effective_date <= now()" +
|
|
" order by org_department_version.effective_date desc limit 1)" +
|
|
" end) as parent_name," +
|
|
|
|
" cast(org_chart_detail.parent_department_id as int) as parent_department_id" +
|
|
|
|
" from public.org_organization_chart_details as org_chart_detail" +
|
|
" left join public.org_organization_charts as org_chart on org_chart_detail.organization_chart_id = org_chart.id" +
|
|
" left join public.org_department_datas as org_depart on org_chart_detail.department_id = org_depart.id" +
|
|
" left join public.org_type_departments as org_type_depart on org_depart.department_type_id = org_type_depart.id" +
|
|
" where org_chart_detail.deleted_at is null" +
|
|
" and org_chart.deleted_at is null" +
|
|
" and org_depart.deleted_at is null" +
|
|
" and org_type_depart.deleted_at is null" +
|
|
" and org_chart.version = (select max(max_org_chart.version) from public.org_organization_charts as max_org_chart where max_org_chart.deleted_at is null and max_org_chart.effective_date <= now())" +
|
|
" and org_chart_detail.parent_department_id <= 0" +
|
|
" order by cast(org_depart.department_code as int) asc;", '"'.ToString());
|
|
|
|
var sql_childs = string.Format("select" +
|
|
" org_chart_detail.department_id," +
|
|
" org_depart.department_code," +
|
|
|
|
" (case when org_chart_detail.department_id is not null then" +
|
|
" (select org_short.department_name" +
|
|
" from public.org_department_version_names as org_short" +
|
|
" where org_short.deleted_at is null" +
|
|
" and org_short.department_id = org_chart_detail.department_id" +
|
|
" and org_short.effective_date <= now()" +
|
|
" order by org_short.effective_date desc limit 1) else null end) as department_name," +
|
|
|
|
" (case when cast(org_chart_detail.parent_department_id AS int) < 0 then" +
|
|
" (select org.organization_name from public.org_organization_datas as org" +
|
|
" where org.deleted_at is null" +
|
|
" and org.organization_id = ABS(org_chart_detail.parent_department_id))" +
|
|
" else (select org_department_version.department_name from public.org_department_version_names as org_department_version" +
|
|
" where org_department_version.deleted_at is null" +
|
|
" and org_department_version.department_id = ABS(org_chart_detail.parent_department_id)" +
|
|
" and org_department_version.effective_date <= now()" +
|
|
" order by org_department_version.effective_date desc limit 1)" +
|
|
" end) as parent_name," +
|
|
|
|
" cast(org_chart_detail.parent_department_id as int) as parent_department_id" +
|
|
|
|
" from public.org_organization_chart_details as org_chart_detail" +
|
|
" left join public.org_organization_charts as org_chart on org_chart_detail.organization_chart_id = org_chart.id" +
|
|
" left join public.org_department_datas as org_depart on org_chart_detail.department_id = org_depart.id" +
|
|
" left join public.org_type_departments as org_type_depart on org_depart.department_type_id = org_type_depart.id" +
|
|
" where org_chart_detail.deleted_at is null" +
|
|
" and org_chart.deleted_at is null" +
|
|
" and org_depart.deleted_at is null" +
|
|
" and org_type_depart.deleted_at is null" +
|
|
" and org_chart.version = (select max(max_org_chart.version) from public.org_organization_charts as max_org_chart where max_org_chart.deleted_at is null and max_org_chart.effective_date <= now())" +
|
|
" and org_chart_detail.parent_department_id > 0" +
|
|
" order by cast(org_depart.department_code as int) asc;", '"'.ToString());
|
|
|
|
var p_para = db.GetParameterListNpgsql();
|
|
DataTable data_parent = db.ExecuteDataTableNpgsql(sql_parent, p_para);
|
|
|
|
var c_para = db.GetParameterListNpgsql();
|
|
DataTable data_childs = db.ExecuteDataTableNpgsql(sql_childs, c_para);
|
|
|
|
var result = new List<external_linkageViewModel>();
|
|
foreach (DataRow parent_depart in data_parent.Rows)
|
|
{
|
|
var i = new external_linkageViewModel();
|
|
i.external_id = Convert.ToInt32(parent_depart["department_id"]);
|
|
i.external_code = parent_depart["department_code"].ToString();
|
|
i.external_name = parent_depart["department_name"].ToString();
|
|
result.Add(i);
|
|
|
|
var val_department_id = Convert.ToInt32(parent_depart["department_id"]);
|
|
var val_department_name = parent_depart["department_name"].ToString();
|
|
RecursiveLoopDepartmentParentToChilds(result, val_department_id, val_department_name, data_childs);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
public void RecursiveLoopDepartmentParentToChilds(List<external_linkageViewModel> result, int param_department_id, string param_department_name, DataTable data_childs)
|
|
{
|
|
foreach(DataRow childs_parent in data_childs.Rows)
|
|
{
|
|
var val_parent_department_id = Convert.ToInt32(childs_parent["parent_department_id"]);
|
|
if (val_parent_department_id == param_department_id)
|
|
{
|
|
var i = new external_linkageViewModel();
|
|
i.external_id = Convert.ToInt32(childs_parent["department_id"]);
|
|
i.external_code = childs_parent["department_code"].ToString();
|
|
i.external_name = param_department_name + " - " + childs_parent["department_name"].ToString();
|
|
result.Add(i);
|
|
|
|
var val_child_department_id = Convert.ToInt32(childs_parent["department_id"]);
|
|
var val_child_department_name = childs_parent["department_name"].ToString();
|
|
RecursiveLoopDepartmentParentToChilds(result, val_child_department_id, val_child_department_name, data_childs);
|
|
}
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
// FOR REPORT
|
|
|
|
public List<external_linkageViewModel> GetDepartmentDataForReport()
|
|
{
|
|
var sql = string.Format("select {0}a{0}.{0}chart_detail_id{0}, {0}a{0}.{0}organization_chart_id{0}, {0}a{0}.{0}department_id{0}, (CASE WHEN a.department_id IS NOT null THEN (SELECT org_short.department_name FROM org_department_version_names AS org_short WHERE org_short.deleted_at IS null AND org_short.department_id = a.department_id AND org_short.effective_date <= now() ORDER BY org_short.effective_date DESC LIMIT 1) ELSE null END) AS department_name, {0}c{0}.{0}effective_date{0}, {0}c{0}.{0}expry_date{0}, CASE WHEN CAST(a.parent_department_id AS int) < 0 THEN (SELECT organization_name FROM org_organization_datas WHERE deleted_at IS null AND organization_id = ABS(a.parent_department_id)) ELSE (SELECT org_department_version.department_name FROM org_department_version_names AS org_department_version WHERE org_department_version.deleted_at IS null AND org_department_version.department_id = ABS(a.parent_department_id) AND org_department_version.effective_date <= now() ORDER BY org_department_version.effective_date DESC LIMIT 1) END AS parent_name_datas, CAST(a.parent_department_id AS int) AS parent_department_id, {0}b{0}.{0}organization_chart_name{0}, {0}b{0}.{0}version{0}, {0}a{0}.{0}created_at{0}, {0}a{0}.{0}updated_at{0} from {0}org_organization_chart_details{0} as {0}a{0} left join {0}org_organization_charts{0} as {0}b{0} on {0}b{0}.{0}id{0} = {0}a{0}.{0}organization_chart_id{0} left join {0}org_department_datas{0} as {0}c{0} on {0}a{0}.{0}department_id{0} = {0}c{0}.{0}id{0} where ({0}b{0}.{0}version{0} = (SELECT MAX(version) FROM org_organization_charts WHERE deleted_at IS null AND effective_date <= now())) and {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", '"'.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["department_id"]);
|
|
i.external_code = dr["department_id"].ToString();
|
|
i.external_name = dr["department_name"].ToString();
|
|
result.Add(i);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public List<external_linkageViewModel> GetPositionForReport()
|
|
{
|
|
var sql = string.Format("select * from {0}org_position_datas{0} order by position_name", '"'.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["position_id"]);
|
|
i.external_code = dr["position_id"].ToString();
|
|
i.external_name = dr["position_name"].ToString();
|
|
result.Add(i);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public List<external_linkageViewModel> GetEducationForReport()
|
|
{
|
|
var sql = string.Format("SELECT * FROM hrm_education_masters;", '"'.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["edu_name"].ToString();
|
|
result.Add(i);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public List<external_linkageViewModel> GetRelationshipForReport()
|
|
{
|
|
var sql = string.Format("SELECT * FROM hrm_relationship_masters;", '"'.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["relationship_name"].ToString();
|
|
result.Add(i);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public List<external_linkageViewModel> GetFiscalYear()
|
|
{
|
|
int start_year = DateTime.Now.Year - 10;
|
|
if (start_year < 2400) start_year += 543;
|
|
int end_year = DateTime.Now.Year + 3;
|
|
if (end_year < 2400) end_year += 543;
|
|
|
|
var result = new List<external_linkageViewModel>();
|
|
for (int x = start_year; x<=end_year; x++)
|
|
{
|
|
var i = new external_linkageViewModel();
|
|
i.external_id = x;
|
|
i.external_code = x.ToString();
|
|
i.external_name = x.ToString();
|
|
result.Add(i);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
public List<external_linkageViewModel> GetFiscalYear2()
|
|
{
|
|
int start_year = DateTime.Now.Year - 10;
|
|
if (start_year < 2400) start_year += 543;
|
|
int end_year = DateTime.Now.Year + 3;
|
|
if (end_year < 2400) end_year += 543;
|
|
|
|
var result = new List<external_linkageViewModel>();
|
|
for (int x = start_year; x <= end_year; x++)
|
|
{
|
|
var i = new external_linkageViewModel();
|
|
i.external_id = x - 543;
|
|
i.external_code = x.ToString();
|
|
i.external_name = x.ToString();
|
|
result.Add(i);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
//public List<external_linkageViewModel> GetEvaRound()
|
|
//{
|
|
// var sql = string.Format("select distinct eva_performance_plan.id,eva_performance_plan.{0}theTime{0} , eva_performance_plan.fiscal_year from eva_performance_plan order by eva_performance_plan.fiscal_year,eva_performance_plan.{0}theTime{0}", '"'.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["theTime"]);
|
|
// i.id_guid = Guid.Parse(dr["id"].ToString());
|
|
// i.external_code = dr["theTime"].ToString();
|
|
// i.external_name = dr["theTime"].ToString() + "/" + dr["fiscal_year"].ToString();
|
|
// result.Add(i);
|
|
// }
|
|
// return result;
|
|
//}
|
|
|
|
public List<external_linkageViewModel> GetEvaRound()
|
|
{
|
|
var sql = string.Format("select id,fiscal_year,{0}theRound{0} from eva_adjust_postponement where create_evaluation_id is null order by fiscal_year,{0}theRound{0}", '"'.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.id_guid = Guid.Parse(dr["id"].ToString());
|
|
i.external_code = dr["fiscal_year"].ToString() + dr["theRound"].ToString();
|
|
i.external_name = dr["theRound"].ToString() + "/" + dr["fiscal_year"].ToString();
|
|
result.Add(i);
|
|
}
|
|
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 string GetMainDept(int? dep_id)
|
|
{
|
|
var sql = string.Format(@"select data1.id,data1.department_name as p1,data2.department_name as p2
|
|
from public.{0}DepartmentData{0} data1
|
|
left join org_organization_chart_details detail
|
|
on data1.id=detail.department_id
|
|
left join public.{0}DepartmentData{0} data2
|
|
on data2.id=detail.parent_department_id
|
|
where data1.id={1};", '"'.ToString(), dep_id.ToString());
|
|
var para = db.GetParameterListNpgsql();
|
|
DataTable dt = db.ExecuteDataTableNpgsql(sql, para);
|
|
var result = "";
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
if(dr["p2"] != null)
|
|
{
|
|
result = dr["p2"].ToString();
|
|
}
|
|
}
|
|
return 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> GetThaiMonth()
|
|
{
|
|
var result = new List<external_linkageViewModel>();
|
|
|
|
for (int monthNo = 1; monthNo <= 12; monthNo++)
|
|
{
|
|
var bar = new DateTime(DateTime.Now.Year, monthNo, 1);
|
|
string month = bar.ToString("MMMM", new CultureInfo("th-TH"));
|
|
|
|
var i = new external_linkageViewModel();
|
|
//i.external_guid = null;
|
|
i.external_id = monthNo;
|
|
i.external_code = monthNo.ToString();
|
|
i.external_name = month;
|
|
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
|
|
and orgdata.deleted_at is null and orgdata2.deleted_at is 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;
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|