diff --git a/ApiControllers/eva_temp_fingerscanControllers.cs b/ApiControllers/eva_temp_fingerscanControllers.cs new file mode 100644 index 0000000..75db7b9 --- /dev/null +++ b/ApiControllers/eva_temp_fingerscanControllers.cs @@ -0,0 +1,218 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Authorization; +using Microsoft.Extensions.Logging; +using TTSW.Controllers; +using TTSW.EF; +using TTSW.Utils; +using TTSW.Constant; +using TTSW.Common; +using TodoAPI2.Models; +using System.Data; +using Microsoft.Extensions.Configuration; +using System.IO; + +namespace TodoAPI2.Controllers +{ + //[Authorize] + [Produces("application/json")] + [Route("api/eva_temp_fingerscan")] + public class eva_temp_fingerscanController : BaseController + { + #region Private Variables + private ILogger _logger; + private Ieva_temp_fingerscanService _repository; + private IConfiguration Configuration { get; set; } + #endregion + + #region Properties + + #endregion + + /// + /// Default constructure for dependency injection + /// + /// + /// + /// + public eva_temp_fingerscanController(ILogger logger, Ieva_temp_fingerscanService repository, IConfiguration configuration) + { + _logger = logger; + _repository = repository; + Configuration = configuration; + } + + + /// + /// Get Blank Item + /// + /// + /// + /// Return a blank item + /// Returns the item + /// Error Occurred + [HttpGet("GetBlankItem")] + [ProducesResponseType(typeof(eva_temp_fingerscanWithSelectionViewModel), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult GetBlankItem() + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + var result = _repository.GetBlankItem(); + + return Ok(result); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception in IActionResult GetBlankItem.", ex); + return StatusCode(500, $"{ex.Message}"); + } + } + + /// + /// Get list items by badgenumber + /// + /// + /// + /// Return list of items by specifced keyword + /// Returns the item + /// Error Occurred + [HttpGet("")] + [ProducesResponseType(typeof(List), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult GetList(string badgenumber) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + return Ok(_repository.GetListBybadgenumber(badgenumber)); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception in IActionResult GetList.", ex); + return StatusCode(500, $"{ex.Message}"); + } + } + + /// + /// Get list items by search + /// + /// + /// + /// Return list of items by specifced keyword + /// Returns the item + /// Error Occurred + [HttpGet("GetListBySearch")] + [ProducesResponseType(typeof(List), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult GetListBySearch(eva_temp_fingerscanSearchModel model) + { + try + { + if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized(); + return Ok(_repository.GetListBySearch(model)); + } + catch (Exception ex) + { + _logger.LogCritical($"Exception in IActionResult GetListBySearch.", ex); + + string error_detail = ex.Message + " " + ex.StackTrace; + if(ex.InnerException != null) + { + error_detail += ex.InnerException.Message; + } + + return StatusCode(500, error_detail); + } + } + + /// + /// InsertFingerScanToHR + /// + /// + /// + /// + /// Response Result Message + /// Response Result Message + /// If the model is invalid + /// Error Occurred + [HttpPost("InsertFingerScanToHR")] + [ProducesResponseType(typeof(CommonResponseMessage), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult InsertFingerScanToHR([FromBody] List model) + { + if (ModelState.IsValid) + { + try + { + string rowCount = _repository.InsertFingerScanToHR(model); + var message = new CommonResponseMessage(); + message.code = "200"; + message.message = "เพิ่มข้อมูลเรียบร้อย จำนวน " + rowCount + " รายการ"; + message.data = null; + return Ok(message); + } + catch (Exception ex) + { + _logger.LogCritical($"InsertFingerScanToHR.", ex); + return StatusCode(500, $"{ex.Message}"); + } + } + + return BadRequest(ModelState); + } + + /// + /// RecieveFingerScanFromLocal + /// + /// + /// + /// + /// Response Result Message + /// Response Result Message + /// If the model is invalid + /// Error Occurred + [HttpPost("RecieveFingerScanFromLocal")] + [ProducesResponseType(typeof(CommonResponseMessage), 200)] + [ProducesResponseType(400)] + [ProducesResponseType(500)] + //[ValidateAntiForgeryToken] + public IActionResult RecieveFingerScanFromLocal([FromBody] List model) + { + if (ModelState.IsValid) + { + try + { + string rowCount = _repository.RecieveFingerScanFromLocal(model); + var message = new CommonResponseMessage(); + message.code = "200"; + message.message = "เพิ่มข้อมูลเรียบร้อย จำนวน " + rowCount + " รายการ"; + message.data = null; + return Ok(message); + } + catch (Exception ex) + { + _logger.LogCritical($"RecieveFingerScanFromLocal.", ex); + return StatusCode(500, $"{ex.Message}"); + } + } + + return BadRequest(ModelState); + } + } +} + + diff --git a/Models/eva_evaluation_achievement_process2/eva_evaluation_achievement_process2Service.cs b/Models/eva_evaluation_achievement_process2/eva_evaluation_achievement_process2Service.cs index f80b4f9..86a14d2 100644 --- a/Models/eva_evaluation_achievement_process2/eva_evaluation_achievement_process2Service.cs +++ b/Models/eva_evaluation_achievement_process2/eva_evaluation_achievement_process2Service.cs @@ -107,6 +107,7 @@ namespace TodoAPI2.Models thefile = m_eva_evaluation_achievement_process2.thefile, thefileDisplay = m_eva_evaluation_achievement_process2.thefileDisplay, score = m_eva_evaluation_achievement_process2.score, + sumary = m_eva_evaluation_achievement_process2.sumary, score2 = m_eva_evaluation_achievement_process2.score2, sumary2 = m_eva_evaluation_achievement_process2.sumary2, target_score1 = m_eva_evaluation_achievement_process2.target_score1, diff --git a/Models/eva_evaluation_achievement_process2/eva_evaluation_achievement_process2ViewModel.cs b/Models/eva_evaluation_achievement_process2/eva_evaluation_achievement_process2ViewModel.cs index 34575f4..8bfeaf6 100644 --- a/Models/eva_evaluation_achievement_process2/eva_evaluation_achievement_process2ViewModel.cs +++ b/Models/eva_evaluation_achievement_process2/eva_evaluation_achievement_process2ViewModel.cs @@ -34,6 +34,8 @@ namespace TodoAPI2.Models public decimal? score { get; set; } + public decimal? sumary { get; set; } + public decimal? score2 { get; set; } public decimal? sumary2 { get; set; } diff --git a/Models/eva_evaluation_behavior_process/eva_evaluation_behavior_processService.cs b/Models/eva_evaluation_behavior_process/eva_evaluation_behavior_processService.cs index 622b059..8226678 100644 --- a/Models/eva_evaluation_behavior_process/eva_evaluation_behavior_processService.cs +++ b/Models/eva_evaluation_behavior_process/eva_evaluation_behavior_processService.cs @@ -207,11 +207,11 @@ namespace TodoAPI2.Models //existingEntity.weight = i.weight; existingEntity.score = i.score; existingEntity.sumary = i.sumary; - //existingEntity.target_score1 = i.target_score1; - //existingEntity.target_score2 = i.target_score2; - //existingEntity.target_score3 = i.target_score3; - //existingEntity.target_score4 = i.target_score4; - //existingEntity.target_score5 = i.target_score5; + existingEntity.target_score1 = i.target_score1; + existingEntity.target_score2 = i.target_score2; + existingEntity.target_score3 = i.target_score3; + existingEntity.target_score4 = i.target_score4; + existingEntity.target_score5 = i.target_score5; _repository.UpdateWithoutCommit(i.id.Value, existingEntity); diff --git a/Models/eva_temp_fingerscan/Ieva_temp_fingerscanService.cs b/Models/eva_temp_fingerscan/Ieva_temp_fingerscanService.cs new file mode 100644 index 0000000..01258b2 --- /dev/null +++ b/Models/eva_temp_fingerscan/Ieva_temp_fingerscanService.cs @@ -0,0 +1,22 @@ +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; + +namespace TodoAPI2.Models +{ + public interface Ieva_temp_fingerscanService + { + List GetListBybadgenumber(string badgenumber); + List GetListBySearch(eva_temp_fingerscanSearchModel model); + eva_temp_fingerscanWithSelectionViewModel GetBlankItem(); + string InsertFingerScanToHR(List model); + string RecieveFingerScanFromLocal(List model); + } +} + diff --git a/Models/eva_temp_fingerscan/eva_temp_fingerscanEntity.cs b/Models/eva_temp_fingerscan/eva_temp_fingerscanEntity.cs new file mode 100644 index 0000000..bb2c586 --- /dev/null +++ b/Models/eva_temp_fingerscan/eva_temp_fingerscanEntity.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Threading.Tasks; +using TTSW.EF; +using TTSW.Utils; +using TTSW.Constant; +using TTSW.Common; +using System.IO; + +namespace TodoAPI2.Models +{ + public class eva_temp_fingerscanEntity : BaseEntity2 + { + + + [MaxLength(255)] + public string badgenumber { get; set; } + + [MaxLength(255)] + public string firstname { get; set; } + + [MaxLength(255)] + public string lastname { get; set; } + + public DateTime? checktime { get; set; } + + + } +} diff --git a/Models/eva_temp_fingerscan/eva_temp_fingerscanInputModel.cs b/Models/eva_temp_fingerscan/eva_temp_fingerscanInputModel.cs new file mode 100644 index 0000000..f607b27 --- /dev/null +++ b/Models/eva_temp_fingerscan/eva_temp_fingerscanInputModel.cs @@ -0,0 +1,30 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Threading.Tasks; +using TTSW.EF; +using TTSW.Utils; +using TTSW.Constant; +using TTSW.Common; + +namespace TodoAPI2.Models +{ + public class eva_temp_fingerscanInputModel + { + + public Guid? id { get; set; } + + public string badgenumber { get; set; } + + public string firstname { get; set; } + + public string lastname { get; set; } + + public DateTime? checktime { get; set; } + + public string active_mode { get; set; } + } +} + diff --git a/Models/eva_temp_fingerscan/eva_temp_fingerscanReportRequestModel.cs b/Models/eva_temp_fingerscan/eva_temp_fingerscanReportRequestModel.cs new file mode 100644 index 0000000..2b63ff2 --- /dev/null +++ b/Models/eva_temp_fingerscan/eva_temp_fingerscanReportRequestModel.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Threading.Tasks; +using TTSW.EF; +using TTSW.Utils; +using TTSW.Constant; +using TTSW.Common; + +namespace TodoAPI2.Models +{ + public class eva_temp_fingerscanReportRequestModel : eva_temp_fingerscanSearchModel + { + public string filetype { get; set; } + + public string contentType { get { return MyHelper.GetContentType(filetype); } } + } +} + diff --git a/Models/eva_temp_fingerscan/eva_temp_fingerscanSearchModel.cs b/Models/eva_temp_fingerscan/eva_temp_fingerscanSearchModel.cs new file mode 100644 index 0000000..aaba358 --- /dev/null +++ b/Models/eva_temp_fingerscan/eva_temp_fingerscanSearchModel.cs @@ -0,0 +1,29 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Threading.Tasks; +using TTSW.EF; +using TTSW.Utils; +using TTSW.Constant; +using TTSW.Common; + +namespace TodoAPI2.Models +{ + public class eva_temp_fingerscanSearchModel + { + + public Guid id { get; set; } + + public string badgenumber { get; set; } + + public string firstname { get; set; } + + public string lastname { get; set; } + + public DateTime? checktime { get; set; } + + } +} + diff --git a/Models/eva_temp_fingerscan/eva_temp_fingerscanService.cs b/Models/eva_temp_fingerscan/eva_temp_fingerscanService.cs new file mode 100644 index 0000000..68f96bf --- /dev/null +++ b/Models/eva_temp_fingerscan/eva_temp_fingerscanService.cs @@ -0,0 +1,270 @@ +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.Data.Odbc; +using Microsoft.Extensions.Configuration; + +namespace TodoAPI2.Models +{ + public class eva_temp_fingerscanService : Ieva_temp_fingerscanService + { + private IBaseRepository2 _repository; + private IMyDatabase db; + private Iexternal_linkageService ext; + private Iexternal_employeeService emp; + private IConfiguration Configuration { get; set; } + public eva_temp_fingerscanService(IBaseRepository2 repository, IMyDatabase mydb, + Iexternal_linkageService inext, Iexternal_employeeService inemp, IConfiguration configuration) + { + _repository = repository; + db = mydb; + ext = inext; + emp = inemp; + Configuration = configuration; + } + + public eva_temp_fingerscanWithSelectionViewModel GetBlankItem() + { + var i = new eva_temp_fingerscanWithSelectionViewModel(); + i.checktime = DateTime.Now; + + return i; + } + + public List GetListBybadgenumber(string badgenumber) + { + var model = new eva_temp_fingerscanSearchModel(); + model.badgenumber = badgenumber; + return GetListBySearch(model); + } + + private string GetDateStringForDB(DateTime d) + { + string year = d.Year.ToString(); + string month = d.Month.ToString(); + if (d.Month < 10) + { + month = "0" + month; + } + string day = d.Day.ToString(); + if (d.Day < 10) + { + day = "0" + day; + } + + return year + "-" + month + "-" + day; + } + + private string GetTimeStringForDB(DateTime d) + { + string hour = d.Hour.ToString(); + if (d.Hour < 10) + { + hour = "0" + hour; + } + string minute = d.Minute.ToString(); + if (d.Minute < 10) + { + minute = "0" + minute; + } + + return hour + ":" + minute; + } + + public List GetListBySearch(eva_temp_fingerscanSearchModel model) + { + //var all_emp = emp.GetListByemployee_type(null, null); + + //if (!model.checktime.HasValue) return null; + + //string connectionString = Configuration.GetConnectionString("fingerScanConnectionString"); + //List data = null; + + //List userinfo_data = new List(); + //List checkinout_data = new List(); + + //using (OdbcConnection odbcConnection = new OdbcConnection(connectionString)) + //{ + // odbcConnection.Open(); + + // using (var command = odbcConnection.CreateCommand()) + // { + // command.CommandType = System.Data.CommandType.Text; + // command.CommandText = "select Badgenumber,userid,name,lastname from USERINFO"; + // OdbcDataReader reader = command.ExecuteReader(); + + // while (reader.Read()) + // { + // userinfo info = new userinfo(); + // info.badgenumber = Convert.ToString(reader[0]); + // info.userid = Convert.ToString(reader["userid"]); + // info.name = Convert.ToString(reader["name"]); + // info.lastname = Convert.ToString(reader["lastname"]); + // userinfo_data.Add(info); + // } + // } + + // odbcConnection.Close(); + //} + + //using (OdbcConnection odbcConnection2 = new OdbcConnection(connectionString)) + //{ + // odbcConnection2.Open(); + + // using (var command2 = odbcConnection2.CreateCommand()) + // { + // command2.CommandType = System.Data.CommandType.Text; + // command2.CommandText = "select CHECKTIME,userid from checkinout"; + // OdbcDataReader reader2 = command2.ExecuteReader(); + // while (reader2.Read()) + // { + // checkinout inout = new checkinout(); + // inout.checktime = Convert.ToDateTime(reader2["CHECKTIME"]); + // inout.userid = Convert.ToString(reader2["userid"]); + // checkinout_data.Add(inout); + // } + // } + // odbcConnection2.Close(); + //} + + //data = (from i in checkinout_data + // join j in userinfo_data on i.userid equals j.userid + // join e in all_emp on j.badgenumber equals e.position_number + // where GetDateStringForDB(i.checktime) == GetDateStringForDB(model.checktime.Value) + // orderby i.checktime descending + // select new eva_temp_fingerscanViewModel() + // { + // badgenumber = j.badgenumber, + // checktime = i.checktime, + // fullname_in_finger_scan = j.name + " " + j.lastname, + // fullname_in_system = e.fullname, + // txt_checktime = GetDateStringForDB(i.checktime) + " " + GetTimeStringForDB(i.checktime), + // id = e.id.ToString() + "#" + GetDateStringForDB(i.checktime) + "#" + GetTimeStringForDB(i.checktime) + // }).ToList(); + + //return data; + + return null; + } + + private string ClearName(string fullname) + { + return fullname.Replace(" ", "") + .Replace("นาย", "") + .Replace("นางสาว", "") + .Replace("นาง", "") + .Replace("น.ส.", "") + .Replace("ผศ.ดร.", ""); + } + + public string RecieveFingerScanFromLocal(List model) + { + var all_emp = emp.GetListByemployee_type(null, null); + + var result = (from i in model + join e in all_emp on ClearName(i.fullname) equals ClearName(e.halfname) + select e.id.ToString() + "#" + GetDateStringForDB(i.checktime) + "#" + GetTimeStringForDB(i.checktime)).ToList(); + + return InsertFingerScanToHR(result); + } + + public string InsertFingerScanToHR(List model) + { + int count_insert = 0; + foreach (var i in model) + { + var data = i.Split('#'); + string employee_id = data[0]; + string date = data[1]; + string time = data[2]; + + string sql_checking = $"select employee_id,date,time from tad_time_attendances where employee_id={employee_id} and date='{date}' and time='{time}' "; + + + DataTable dt = db.ExecuteDataTableNpgsql(sql_checking, null); + if (dt.Rows.Count == 0) + { + string sql_insert = $"insert into tad_time_attendances(employee_id,date,time) values({employee_id},'{date}','{time}')"; + db.ExecuteNonQueryNpgsql(sql_insert, null); + count_insert++; + } + } + + return count_insert.ToString(); + } + } + + public class userinfo + { + public string badgenumber { get; set; } + public string userid { get; set; } + public string name { get; set; } + public string lastname { get; set; } + } + + public class checkinout + { + public DateTime checktime { get; set; } + public string userid { get; set; } + } + + public class fingerscanDataModel + { + public string badgenumber { get; set; } + + public DateTime checktime { get; set; } + + public string fullname { get; set; } + } +} + + + +//using (var command = odbcConnection.CreateCommand()) +// { +// command.CommandType = System.Data.CommandType.Text; +// string checktime = GetDateStringForDB(model.checktime.Value); +// command.CommandText = $@" +//SELECT USERINFO.[name], USERINFO.[lastname], USERINFO.Badgenumber, CHECKINOUT.CHECKTIME +//FROM CHECKINOUT INNER JOIN USERINFO ON CHECKINOUT.USERID = USERINFO.USERID +//where CHECKTIME is not null +//and DateValue(CHECKINOUT.CHECKTIME) = #{checktime}# +//order by CHECKTIME desc; "; +// OdbcDataReader reader = command.ExecuteReader(); + +// while (reader.Read()) +// { +// var n = new eva_temp_fingerscanViewModel(); +// //n.id = Convert.ToDateTime(reader["CHECKTIME"]); +// if(reader["checktime"] != DBNull.Value) +// { +// n.badgenumber = Convert.ToString(reader["Badgenumber"]); +// n.checktime = Convert.ToDateTime(reader["CHECKTIME"]); +// n.txt_checktime = GetDateStringForDB(n.checktime.Value) + " " + GetTimeStringForDB(n.checktime.Value); +// n.fullname_in_finger_scan = Convert.ToString(reader["name"]) + " " + Convert.ToString(reader["lastname"]); + +// var x = (from i in all_emp +// where i.position_number == n.badgenumber +// select i).FirstOrDefault(); +// if (x != null) +// { +// n.id = x.id.ToString()+"#"+ GetDateStringForDB(n.checktime.Value)+"#"+ GetTimeStringForDB(n.checktime.Value); +// n.fullname_in_system = x.fullname; +// }; +// data.Add(n); +// } +// } +//} \ No newline at end of file diff --git a/Models/eva_temp_fingerscan/eva_temp_fingerscanViewModel.cs b/Models/eva_temp_fingerscan/eva_temp_fingerscanViewModel.cs new file mode 100644 index 0000000..6d3e296 --- /dev/null +++ b/Models/eva_temp_fingerscan/eva_temp_fingerscanViewModel.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; +using System.Threading.Tasks; +using TTSW.EF; +using TTSW.Utils; +using TTSW.Constant; +using TTSW.Common; + +namespace TodoAPI2.Models +{ + public class eva_temp_fingerscanViewModel : BaseViewModel2 + { + + public string badgenumber { get; set; } + + public DateTime? checktime { get; set; } + + public string txt_checktime { get; set; } + //{ + // get + // { + // if (this.checktime.HasValue) + // { + // return MyHelper.GetDateStringForReport(this.checktime) + " " + this.checktime.Value.ToShortTimeString(); + // } + // else + // { + // return ""; + // } + // } + //} + + public string fullname_in_system { get; set; } + + public string fullname_in_finger_scan { get; set; } + } +} + + diff --git a/Models/eva_temp_fingerscan/eva_temp_fingerscanWithSelectionViewModel.cs b/Models/eva_temp_fingerscan/eva_temp_fingerscanWithSelectionViewModel.cs new file mode 100644 index 0000000..dab60ef --- /dev/null +++ b/Models/eva_temp_fingerscan/eva_temp_fingerscanWithSelectionViewModel.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace TodoAPI2.Models +{ + public class eva_temp_fingerscanWithSelectionViewModel: eva_temp_fingerscanViewModel + { + + } +} \ No newline at end of file diff --git a/Models/external_employee/external_employeeService.cs b/Models/external_employee/external_employeeService.cs index 0a6484a..5f16b56 100644 --- a/Models/external_employee/external_employeeService.cs +++ b/Models/external_employee/external_employeeService.cs @@ -68,6 +68,7 @@ where ha.employee_id = @emp_id and ha.workingstatus = 'สถานะปฏิ var sql = string.Format(@" select he.employee_id as id, mpn.position_number,he.employee_no,he.position_no, CONCAT(htm.title_name,' ',he.firstname,' ',he.lastname) as fullname,opd.position_name, +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, @@ -95,7 +96,8 @@ order by he.firstname,he.lastname; i.position_number = dr["position_number"].ToString(); i.position_name = dr["position_name"].ToString(); i.fullname= dr["fullname"].ToString(); - if(dr["employee_type_id"] != DBNull.Value) + i.halfname = dr["halfname"].ToString(); + if (dr["employee_type_id"] != DBNull.Value) { i.employee_type_id = Convert.ToInt32(dr["employee_type_id"]); i.employee_type_name = dr["employee_type_name"].ToString(); diff --git a/Models/external_employee/external_employeeViewModel.cs b/Models/external_employee/external_employeeViewModel.cs index f777373..1e41e24 100644 --- a/Models/external_employee/external_employeeViewModel.cs +++ b/Models/external_employee/external_employeeViewModel.cs @@ -21,6 +21,8 @@ namespace TodoAPI2.Models public string fullname { get; set; } + public string halfname { get; set; } + public int? employee_type_id { get; set; } public int? position_id { get; set; } diff --git a/Startup.cs b/Startup.cs index 9f6d4d9..53a3f13 100644 --- a/Startup.cs +++ b/Startup.cs @@ -289,6 +289,9 @@ namespace Test01 services.AddScoped, BaseRepository2>(); services.AddScoped(); + services.AddScoped, BaseRepository2>(); + services.AddScoped(); + #endregion services.TryAddSingleton(); diff --git a/Views/eva_create_evaluation_detail_processView/eva_create_evaluation_detail_process_d.cshtml b/Views/eva_create_evaluation_detail_processView/eva_create_evaluation_detail_process_d.cshtml index c241279..adda5bd 100644 --- a/Views/eva_create_evaluation_detail_processView/eva_create_evaluation_detail_process_d.cshtml +++ b/Views/eva_create_evaluation_detail_processView/eva_create_evaluation_detail_process_d.cshtml @@ -48,17 +48,17 @@

-

- -

-

- -

+
+
+
+ +

+

@@ -99,7 +99,23 @@

ข้อมูลการลา
- +
+
+ ข้อมูลการลา ณ วันที่ +
+
+ +
+
+ ถึง +
+
+ +
+
+ +
+
diff --git a/Views/eva_create_evaluation_detail_processView/eva_create_evaluation_detail_process_d2.cshtml b/Views/eva_create_evaluation_detail_processView/eva_create_evaluation_detail_process_d2.cshtml index 01dedd9..7b4bcc6 100644 --- a/Views/eva_create_evaluation_detail_processView/eva_create_evaluation_detail_process_d2.cshtml +++ b/Views/eva_create_evaluation_detail_processView/eva_create_evaluation_detail_process_d2.cshtml @@ -5,55 +5,55 @@ Layout = "_LayoutDirect"; } -
@@ -213,6 +232,7 @@ + @@ -232,6 +252,7 @@ + @@ -387,7 +408,7 @@
ลาป่วย

-
+
ความเห็นผู้ประเมิน
@@ -437,7 +458,7 @@
- +
@@ -448,7 +469,7 @@
- +
@@ -492,11 +513,10 @@ -
- +
@@ -507,7 +527,7 @@
- +
@@ -544,7 +564,7 @@
- +
@@ -555,7 +575,7 @@
- +
@@ -605,7 +625,7 @@ eva_create_evaluation_detail_status_SetEditForm(id); eva_idp_plan_InitiateDataTable(id); - eva_idp_plan_InitialForm(); + eva_idp_plan_InitialForm(); setTimeout(Oneva_evaluation_achievement_process2_scoreChange, 1000); setTimeout(Oneva_evaluation_behavior_process2_scoreChange, 1000); @@ -619,6 +639,37 @@ SetupValidationRemark("eva_create_evaluation_detail_review04"); SetupValidationRemark("eva_idp_plan"); }); + + function Oneva_create_evaluation_detail_review02_supervisor2_resultChanged(a){ + console.log($(a).val()); + if($(a).val() == "Y"){ + $("#eva_create_evaluation_detail_review02_supervisor2_remark").attr("iRequire","false"); + $("#eva_create_evaluation_detail_review02_supervisor2_remark").css('border-color', ''); + }else{ + $("#eva_create_evaluation_detail_review02_supervisor2_remark").attr("iRequire","true"); + } + } + + function Oneva_create_evaluation_detail_review03_supervisor1A_resultChanged(a){ + console.log($(a).val()); + if($(a).val() == "Y"){ + $("#eva_create_evaluation_detail_review03_supervisor1A_remark").attr("iRequire","false"); + $("#eva_create_evaluation_detail_review03_supervisor1A_remark").css('border-color', ''); + }else{ + $("#eva_create_evaluation_detail_review03_supervisor1A_remark").attr("iRequire","true"); + } + } + + function Oneva_create_evaluation_detail_review04_supervisor2A_resultChanged(a){ + console.log($(a).val()); + if($(a).val() == "Y"){ + $("#eva_create_evaluation_detail_review04_supervisor2A_remark").attr("iRequire","false"); + $("#eva_create_evaluation_detail_review04_supervisor2A_remark").css('border-color', ''); + }else{ + $("#eva_create_evaluation_detail_review04_supervisor2A_remark").attr("iRequire","true"); + } + } + } diff --git a/Views/rep_eva01View/rep_eva01_report.cshtml b/Views/rep_eva01View/rep_eva01_report.cshtml index aa8de2a..f4660b4 100644 --- a/Views/rep_eva01View/rep_eva01_report.cshtml +++ b/Views/rep_eva01View/rep_eva01_report.cshtml @@ -20,7 +20,7 @@
-
รายงานบัญชีรายละเอียดขั้นเงินเดือนและเงินเพิ่มการครองชีพชั่วคราวของพนักงาน
+
รายงานบัญชีรายละเอียดขั้นเงินเดือนและเงินเพิ่มการครองชีพชั่วคราวของพนักงาน เนติบัณฑิตยสภา
diff --git a/Views/rep_eva02View/rep_eva02_report.cshtml b/Views/rep_eva02View/rep_eva02_report.cshtml index 5557a8f..53c298e 100644 --- a/Views/rep_eva02View/rep_eva02_report.cshtml +++ b/Views/rep_eva02View/rep_eva02_report.cshtml @@ -20,7 +20,7 @@
-
รายงานประวัติการเลื่อนขั้นเงินเดือนของพนักงาน
+
รายงานประวัติการเลื่อนขั้นเงินเดือนของพนักงาน เนติบัณฑิตยสภา
diff --git a/Views/rep_eva03View/rep_eva03_report.cshtml b/Views/rep_eva03View/rep_eva03_report.cshtml index 765f9be..ff21533 100644 --- a/Views/rep_eva03View/rep_eva03_report.cshtml +++ b/Views/rep_eva03View/rep_eva03_report.cshtml @@ -20,7 +20,7 @@
-
รายงานโครงสร้างของขั้นเงินเดือน
+
รายงานโครงสร้างของขั้นเงินเดือน เนติบัณฑิตยสภา
diff --git a/tb320eva.xml b/tb320eva.xml index eb72e28..1aeb0f6 100644 --- a/tb320eva.xml +++ b/tb320eva.xml @@ -3372,6 +3372,68 @@ If the model is invalid Error Occurred + + + Default constructure for dependency injection + + + + + + + + Get Blank Item + + + + Return a blank item + Returns the item + Error Occurred + + + + Get list items by badgenumber + + + + Return list of items by specifced keyword + Returns the item + Error Occurred + + + + Get list items by search + + + + Return list of items by specifced keyword + Returns the item + Error Occurred + + + + InsertFingerScanToHR + + + + + Response Result Message + Response Result Message + If the model is invalid + Error Occurred + + + + RecieveFingerScanFromLocal + + + + + Response Result Message + Response Result Message + If the model is invalid + Error Occurred + Default constructure for dependency injection diff --git a/wwwroot/js/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03_d.js b/wwwroot/js/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03_d.js index 56e0386..024bccd 100644 --- a/wwwroot/js/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03_d.js +++ b/wwwroot/js/eva_create_evaluation_detail_review03/eva_create_evaluation_detail_review03_d.js @@ -7,7 +7,7 @@ function eva_create_evaluation_detail_review03_FeedDataToForm(data) { $("#eva_create_evaluation_detail_review03_id").val(data.id); $("#eva_create_evaluation_detail_review03_create_evaluation_id").val(data.create_evaluation_id); $("#eva_create_evaluation_detail_review03_supervisor1A").val(data.supervisor1A); -DropDownClearFormAndFeedWithData($("#eva_create_evaluation_detail_review03_supervisor1A_result"), data, "id", "external_name", "item_supervisor1A_result", data.supervisor1A_result); +DropDownClearFormAndFeedWithData($("#eva_create_evaluation_detail_review03_supervisor1A_result"), data, "external_code", "external_name", "item_supervisor1A_result", data.supervisor1A_result); $("#eva_create_evaluation_detail_review03_supervisor1A_remark").val(data.supervisor1A_remark); $("#eva_create_evaluation_detail_review03_supervisor1A_date").val(formatDate(data.supervisor1A_date)); diff --git a/wwwroot/js/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04_d.js b/wwwroot/js/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04_d.js index d3ff2c5..c3715cd 100644 --- a/wwwroot/js/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04_d.js +++ b/wwwroot/js/eva_create_evaluation_detail_review04/eva_create_evaluation_detail_review04_d.js @@ -7,7 +7,7 @@ function eva_create_evaluation_detail_review04_FeedDataToForm(data) { $("#eva_create_evaluation_detail_review04_id").val(data.id); $("#eva_create_evaluation_detail_review04_create_evaluation_id").val(data.create_evaluation_id); $("#eva_create_evaluation_detail_review04_supervisor2A").val(data.supervisor2A); -DropDownClearFormAndFeedWithData($("#eva_create_evaluation_detail_review04_supervisor2A_result"), data, "id", "external_name", "item_supervisor2A_result", data.supervisor2A_result); +DropDownClearFormAndFeedWithData($("#eva_create_evaluation_detail_review04_supervisor2A_result"), data, "external_code", "external_name", "item_supervisor2A_result", data.supervisor2A_result); $("#eva_create_evaluation_detail_review04_supervisor2A_remark").val(data.supervisor2A_remark); $("#eva_create_evaluation_detail_review04_supervisor2A_date").val(formatDate(data.supervisor2A_date)); diff --git a/wwwroot/js/eva_evaluation_achievement_process/eva_evaluation_achievement_process_inline.js b/wwwroot/js/eva_evaluation_achievement_process/eva_evaluation_achievement_process_inline.js index 4c9b515..9860304 100644 --- a/wwwroot/js/eva_evaluation_achievement_process/eva_evaluation_achievement_process_inline.js +++ b/wwwroot/js/eva_evaluation_achievement_process/eva_evaluation_achievement_process_inline.js @@ -129,7 +129,7 @@ console.log(w1); $("#eva_create_evaluation_detail_summary1_total_summary_chief").text((total_achievement * 20).toFixed(2)); $("#eva_create_evaluation_detail_summary1_Final_summary_chief").text((total_achievement * 20).toFixed(2)); - $("#eva_create_evaluation_detail_summary1_achievement_chief").text((total_achievement_score * w1/10).toFixed(2)); + $("#eva_create_evaluation_detail_summary1_achievement_chief").text(((total_achievement * 20) * w1/100).toFixed(2)); calculationAllItem(); } diff --git a/wwwroot/js/eva_evaluation_achievement_process2/eva_evaluation_achievement_process2_inline.js b/wwwroot/js/eva_evaluation_achievement_process2/eva_evaluation_achievement_process2_inline.js index a8c33cf..b47cd25 100644 --- a/wwwroot/js/eva_evaluation_achievement_process2/eva_evaluation_achievement_process2_inline.js +++ b/wwwroot/js/eva_evaluation_achievement_process2/eva_evaluation_achievement_process2_inline.js @@ -24,6 +24,7 @@ $("#eva_evaluation_achievement_process2_achievement_" + i).text(data.achievement $("#eva_evaluation_achievement_process2_weight_" + i).text(data.weight); $("#eva_evaluation_achievement_process2_score_" + i).text(data.score); +$("#eva_evaluation_achievement_process2_sumary_" + i).text(data.sumary); $("#eva_evaluation_achievement_process2_score2_" + i).val(data.score2); $("#eva_evaluation_achievement_process2_sumary2_" + i).text(data.sumary2); $("#eva_evaluation_achievement_process2_target_score1_" + i).text(data.target_score1); @@ -77,7 +78,7 @@ function eva_evaluation_achievement_process2_Get(a, blankItem) { $('#eva_evaluation_achievement_process2Body').empty(); var successFunc = function (response) { - //console.log(response); + console.log(response); $.each(response, function (i, data) { var tag = ''; tag += ''; @@ -89,6 +90,7 @@ function eva_evaluation_achievement_process2_Get(a, blankItem) { tag += '

ร้อยละ
81-90

'; tag += '

ร้อยละ
91-100

'; tag += '

'; + tag += '

'; tag += ''; tag += '

'; tag += ''; @@ -121,6 +123,7 @@ function Oneva_evaluation_achievement_process2_scoreChange(){ var total_achievement_weight = 0; var total_achievement_score = 0; var total_achievement_score_old = 0; + var total_achievement_old = 0; $('#eva_evaluation_achievement_process2Body tr').each(function () { var i = $(this).find("#rowCount").text(); var score_old = $("#eva_evaluation_achievement_process2_score_" + i).text(); @@ -128,10 +131,13 @@ function Oneva_evaluation_achievement_process2_scoreChange(){ var weight = $("#eva_evaluation_achievement_process2_weight_" + i).text(); var total = (score * weight / 100).toFixed(2); $("#eva_evaluation_achievement_process2_sumary2_" + i).text(total); + var total_old = (score_old * weight / 100).toFixed(2); + $("#eva_evaluation_achievement_process2_sumary_" + i).text(total_old); total_achievement += parseFloat(total); total_achievement_weight += parseFloat(weight); total_achievement_score += parseFloat(score); total_achievement_score_old += parseFloat(score_old); + total_achievement_old += parseFloat(total_old); //console.log(score_old); }); $("#h_eva_evaluation_achievement_process2_weight").text(total_achievement_weight.toFixed(2)); @@ -140,6 +146,7 @@ function Oneva_evaluation_achievement_process2_scoreChange(){ var w1 = parseFloat($("#w1").text()); + $("#x1").text((total_achievement_old*20).toFixed(2)); $("#eva_create_evaluation_detail_summary2_total_summary_supervisor").text((total_achievement*20).toFixed(2)); $("#eva_create_evaluation_detail_summary2_Final_summary_supervisor").text((total_achievement*20).toFixed(2)); $("#eva_create_evaluation_detail_summary2_achievement_supervisor").text(((total_achievement*20)*w1/100).toFixed(2)); diff --git a/wwwroot/js/eva_evaluation_behavior_process/eva_evaluation_behavior_process_inline.js b/wwwroot/js/eva_evaluation_behavior_process/eva_evaluation_behavior_process_inline.js index f323928..c0f5ba7 100644 --- a/wwwroot/js/eva_evaluation_behavior_process/eva_evaluation_behavior_process_inline.js +++ b/wwwroot/js/eva_evaluation_behavior_process/eva_evaluation_behavior_process_inline.js @@ -6,11 +6,11 @@ $("#eva_evaluation_behavior_process_behavior_" + i).text(""); $("#eva_evaluation_behavior_process_weight_" + i).text(""); $("#eva_evaluation_behavior_process_score_" + i).val(""); $("#eva_evaluation_behavior_process_sumary_" + i).text(""); -$("#eva_evaluation_behavior_process_target_score1_" + i).text(""); -$("#eva_evaluation_behavior_process_target_score2_" + i).text(""); -$("#eva_evaluation_behavior_process_target_score3_" + i).text(""); -$("#eva_evaluation_behavior_process_target_score4_" + i).text(""); -$("#eva_evaluation_behavior_process_target_score5_" + i).text(""); +$("#eva_evaluation_behavior_process_target_score1_" + i).val(""); +$("#eva_evaluation_behavior_process_target_score2_" + i).val(""); +$("#eva_evaluation_behavior_process_target_score3_" + i).val(""); +$("#eva_evaluation_behavior_process_target_score4_" + i).val(""); +$("#eva_evaluation_behavior_process_target_score5_" + i).val(""); } @@ -21,11 +21,11 @@ $("#eva_evaluation_behavior_process_behavior_" + i).text(data.behavior); $("#eva_evaluation_behavior_process_weight_" + i).text(data.weight); $("#eva_evaluation_behavior_process_score_" + i).val(data.score); $("#eva_evaluation_behavior_process_sumary_" + i).text(data.sumary); -$("#eva_evaluation_behavior_process_target_score1_" + i).text(data.target_score1); -$("#eva_evaluation_behavior_process_target_score2_" + i).text(data.target_score2); -$("#eva_evaluation_behavior_process_target_score3_" + i).text(data.target_score3); -$("#eva_evaluation_behavior_process_target_score4_" + i).text(data.target_score4); -$("#eva_evaluation_behavior_process_target_score5_" + i).text(data.target_score5); +$("#eva_evaluation_behavior_process_target_score1_" + i).val(data.target_score1); +$("#eva_evaluation_behavior_process_target_score2_" + i).val(data.target_score2); +$("#eva_evaluation_behavior_process_target_score3_" + i).val(data.target_score3); +$("#eva_evaluation_behavior_process_target_score4_" + i).val(data.target_score4); +$("#eva_evaluation_behavior_process_target_score5_" + i).val(data.target_score5); } @@ -37,11 +37,11 @@ eva_evaluation_behavior_processObject.behavior = obj.find("#eva_evaluation_behav eva_evaluation_behavior_processObject.weight = obj.find("#eva_evaluation_behavior_process_weight_" + i).text(); eva_evaluation_behavior_processObject.score = obj.find("#eva_evaluation_behavior_process_score_" + i).val(); eva_evaluation_behavior_processObject.sumary = obj.find("#eva_evaluation_behavior_process_sumary_" + i).text(); -eva_evaluation_behavior_processObject.target_score1 = obj.find("#eva_evaluation_behavior_process_target_score1_" + i).text(); -eva_evaluation_behavior_processObject.target_score2 = obj.find("#eva_evaluation_behavior_process_target_score2_" + i).text(); -eva_evaluation_behavior_processObject.target_score3 = obj.find("#eva_evaluation_behavior_process_target_score3_" + i).text(); -eva_evaluation_behavior_processObject.target_score4 = obj.find("#eva_evaluation_behavior_process_target_score4_" + i).text(); -eva_evaluation_behavior_processObject.target_score5 = obj.find("#eva_evaluation_behavior_process_target_score5_" + i).text(); +eva_evaluation_behavior_processObject.target_score1 = obj.find("#eva_evaluation_behavior_process_target_score1_" + i).val(); +eva_evaluation_behavior_processObject.target_score2 = obj.find("#eva_evaluation_behavior_process_target_score2_" + i).val(); +eva_evaluation_behavior_processObject.target_score3 = obj.find("#eva_evaluation_behavior_process_target_score3_" + i).val(); +eva_evaluation_behavior_processObject.target_score4 = obj.find("#eva_evaluation_behavior_process_target_score4_" + i).val(); +eva_evaluation_behavior_processObject.target_score5 = obj.find("#eva_evaluation_behavior_process_target_score5_" + i).val(); eva_evaluation_behavior_processObject.active_mode = obj.find("#isActive_" + i + "_eva_evaluation_behavior_process").val(); return eva_evaluation_behavior_processObject; @@ -76,11 +76,11 @@ function eva_evaluation_behavior_process_Get(a, blankItem) { tag += '

'; tag += '

'; - tag += '

'; - tag += '

'; - tag += '

'; - tag += '

'; - tag += '

'; + tag += '

'; + tag += '

'; + tag += '

'; + tag += '

'; + tag += '

'; tag += ''; tag += '

';