94 Commits

Author SHA1 Message Date
Sudkhet Authairat
8a799f9725 แก้ bug supervisor1_remark ไม่มีข้อมูล 2022-10-03 17:38:19 +07:00
Sudkhet Authairat
d345d579a1 เพิ่ม (supervisor1_remark) parameter jasperReport 2022-10-03 16:11:12 +07:00
Mart Sudkhet Authairat
eae11f4765 เพิ่ม orderby drowdrop แผนการประเมิน 2022-09-26 16:45:37 +07:00
nakorn
8f2e0af11b Last commit 2022-08-27 11:22:12 +07:00
nakorn
804bb7d9f2 Update source code 2022-05-09 14:47:12 +07:00
nakorn
ccef30e588 เสร็จงานอนุมัติ ปรับเลื่อนเงินเดือน และ โควต้า 2022-05-06 07:54:55 +07:00
nakorn
bfb9c80fac ปรับปรุง ลำดับการอนุมัติ 2022-05-03 15:27:30 +07:00
nakorn
086f101d0f ทำเรื่องอนุมัติวงเงิน 2022-05-02 10:53:45 +07:00
nakorn
42e1878aa8 อนุมัติและส่งต่อ การปรับเลื่อน ค่าตอบแทน 2022-05-01 12:20:21 +07:00
nakorn
32280778e6 keep source 2022-04-19 14:32:50 +07:00
nakorn
94bf0709d1 ปลด lock การกรอกคะแนน ให้กรอกได้อิสระ 2022-04-08 11:55:20 +07:00
nakorn
71f1906d79 ปิดให้ ผอ และ แผนกบุคคล เห็นคะแนน และ เรื่องอื่นๆ 2022-03-29 18:27:31 +07:00
nakorn
f5ebda01bf ปรับปรุงวันที่ 2022-03-22 15:04:57 +07:00
nakorn
ba57633ab8 แก้ไขหลายอย่าง 2022-03-21 17:19:56 +07:00
nakorn
9774fb0a9c แจ้งพนักงานแซดดีทราบ
ที่ประชุมทรัพย์เมื่อวันศุกร์ที่ 4 มี.ค. 65 ได้มีมติให้ พนักงานทั่วไปเงินเดือนตันที่ 25020 บาท ถ้าเลยนี้ให้รับเป็นค่าตอบแทนพิเศษ และพนักงานในระดับชำนาญงาน ให้ตันที่ 49480 บาท ถ้าเลยนี้ให้ได้ค่าตอบแทนพิเศษ จึงขอให้ทาง บ. ไปปรับแก้ใน text box เดิมในระบบ และเพิ่มช่องค่าตอบแทนพิเศษในเมนูที่ ผอ. ใช้หยอดเงินในระบบด้วยค่ะ
2022-03-19 12:48:21 +07:00
nakorn
c6d107e179 ปรับปรุงหลายอย่าง 2022-03-19 11:32:56 +07:00
nakorn
61f067f150 ปรับปรุง การอนุมัติแบบข้อตกลง ของ ผอ 2022-03-17 16:12:32 +07:00
nakorn
f6afc23b45 Update report signature 2022-03-13 12:04:14 +07:00
nakorn
67a4c35f8e ปรับปรุงการ default 2021-11-21 21:47:22 +07:00
nakorn
aae66b1d97 ปรับปรุงจากหลายข้อ 2021-11-18 14:00:11 +07:00
nakorn
b6e27e9f12 ปรับปรุงรายงาน 2021-11-17 15:20:33 +07:00
nakorn
afc4429e63 แก้ให้ ผู้ประเมินสูงสุด พิเศษ ประเมินได้แล้ว 2021-11-16 18:07:33 +07:00
nakorn
4b98790d2e ปรับปรุงหลายส่วน 2021-11-15 13:53:13 +07:00
nakorn
6d0a2ace7d แก้ไขหน้าจอ โควต้า 2021-11-07 12:05:09 +07:00
nakorn
260c542b10 ปรับปรุงการตัดหน้าบรรทัด 2021-11-03 15:38:17 +07:00
nakorn
0d0e309589 ปรับรายงานให้ ไม่ตกบรรทัด 2021-10-31 21:48:44 +07:00
nakorn
7baab53365 ปรับปรุงส่วน ตารางกำหนดช่วงร้อยละที่ได้เลื่อน 2021-10-30 11:53:07 +07:00
nakorn
8e8596116f แก้ไข ความยาว ตัวอักษรที่เก็บได้ 2021-10-28 10:42:03 +07:00
nakorn
4d7f6186d5 Fix Bug save data 2021-10-26 16:57:06 +07:00
nakorn
40d91d2ad2 แก้ไข ให้บันทึก เพื่อพิมพ์ได้ก่อน 2021-10-26 16:38:42 +07:00
nakorn
26f416ec46 เก็บ source code 2021-10-25 17:23:40 +07:00
nakorn
544d1224de ปรับการคำนวณคะแนน ขั้นสุดท้าย 2021-10-23 17:17:05 +07:00
nakorn
f6b58c8406 ปรับปรุงการแจ้งเตือน 2021-10-23 16:08:43 +07:00
nakorn
77c8e31dcd สร้างตัวเตือน เกณฑ์คะแนน 2021-10-19 22:37:31 +07:00
Nakorn Rientrakrunchai
ee76b39491 Add migration 2021-10-19 20:58:45 +07:00
nakorn
3b8d643eca Add level score detail 2021-10-19 20:41:43 +07:00
nakorn
8a02127499 ปรับปรุงการมองเห็นของ หัวหน้าแผนก 2021-10-18 16:42:58 +07:00
nakorn
3db2768ed5 ปรับปรุง 2021-10-17 10:51:13 +07:00
nakorn
887c4d05dc Add flow agreement 2021-10-16 23:14:06 +07:00
nakorn
df7d36b06b ปรับปรุง คนที่ได้สิทธิพิเศษ ให้ดูรายชื่อได้ทั้งเนติ 2021-10-16 21:51:16 +07:00
nakorn
ac0e022966 เอาเข้าระบบ โควตา เฉพาะคนที่ทำงาน 2021-10-13 21:33:52 +07:00
nakorn
686f22eddb เอากรรมการออก 2021-10-13 21:12:36 +07:00
nakorn
32db80e4aa ปรับปรุง ให้แสดงคนที่ลาออก 2021-10-13 20:01:19 +07:00
nakorn
07d70e4a66 แก้ไข https://app.clickup.com/t/1nav665 2021-10-13 15:49:07 +07:00
nakorn
40de9ca053 ซ่อน reward 2021-10-11 12:36:12 +07:00
nakorn
be227895a5 ปรับปรุง https://app.clickup.com/t/1me7cdm 2021-10-05 22:26:47 +07:00
nakorn
e5cb49c75e Hide back button 2021-09-30 18:04:25 +07:00
nakorn
d6d125cea0 แสดงคะแนน 1-5 ให้กรอก 2021-09-30 17:47:38 +07:00
nakorn
64f6c4b1af แก้บัก ไฟล์หาย 2021-09-29 17:05:12 +07:00
nakorn
c520fb9a99 ปรับเป็น dropdown 2021-09-29 16:47:07 +07:00
nakorn
a71c8bb11e ปรับปรุงการแาดงผลเวลา 2021-09-27 15:37:05 +07:00
nakorn
fe365008c2 เสร็จรายงานใหม่ 2021-09-27 13:47:59 +07:00
LAPTOP-KB8JC2K2\acer
0aac403a33 ปรับปรุง report 2021-09-26 17:36:59 +07:00
LAPTOP-KB8JC2K2\acer
14c7df9d17 Add new report 2021-09-23 16:49:08 +07:00
LAPTOP-KB8JC2K2\acer
dacfe151cf ปรับปรุงตามที่ได้รับแจ้ง 2021-09-16 11:52:23 +07:00
LAPTOP-KB8JC2K2\acer
3016221910 ปรับปรุงตามได้รับแจ้ง 2021-09-14 18:25:36 +07:00
LAPTOP-KB8JC2K2\acer
e201075167 แก้ไขเพิ่มเติม 2021-09-14 17:30:37 +07:00
LAPTOP-KB8JC2K2\acer
7fdf9f7b01 ปรับปรุงหลายข้อ 2021-09-14 15:52:06 +07:00
LAPTOP-KB8JC2K2\acer
d4212da199 แก้ปัญหา clear cache 2021-09-14 10:40:24 +07:00
LAPTOP-KB8JC2K2\acer
646bf3e249 เพิ่มตัวเลือก ทั้งหมด 2021-09-13 16:52:16 +07:00
LAPTOP-KB8JC2K2\acer
656d991f07 ปรับปรุงหน้าจอ ประวัติการแก้ไข 2021-09-11 15:00:56 +07:00
LAPTOP-KB8JC2K2\acer
fdb09a2427 ปรับปรุงการค้นหา ต่อจากเดิม 2021-09-11 14:19:35 +07:00
LAPTOP-KB8JC2K2\acer
98dd8b0860 ปรับปรุงการค้นหา 2021-09-11 12:28:00 +07:00
LAPTOP-KB8JC2K2\acer
edc9bf053e เพิ่มฟิล remark2 2021-09-10 15:13:26 +07:00
LAPTOP-KB8JC2K2\acer
a898de8ab2 - ประเมิน : เรียงลำดับ
- ประเมิน : บันทึกแล้วเลขซ้ำ
2021-09-07 13:36:29 +07:00
LAPTOP-KB8JC2K2\acer
ccacb814a3 ปรับปรุงสูตรและซ่อนปุ่ม 2021-09-02 18:50:32 +07:00
LAPTOP-KB8JC2K2\acer
c86841c480 Fix bug 2021-09-02 18:22:31 +07:00
LAPTOP-KB8JC2K2\acer
65d454ca74 แก้สี ปุ่มตีกลับ 2021-09-02 12:56:27 +07:00
LAPTOP-KB8JC2K2\acer
23c3142058 เพิ่มข้อความ การแนบไฟล์ 2021-09-02 12:08:36 +07:00
LAPTOP-KB8JC2K2\acer
ef178b8120 แก้เอาข้อความออก 2021-09-01 16:36:20 +07:00
LAPTOP-KB8JC2K2\acer
095d8b1a60 แก้ไข https://app.clickup.com/t/cqx9eg 2021-09-01 16:32:23 +07:00
LAPTOP-KB8JC2K2\acer
f1dad78f66 เปิดให้ผู้ประเมินสูงสุด ตีกลับ 2021-08-31 15:53:48 +07:00
LAPTOP-KB8JC2K2\acer
91b4e67522 ทดลองแก้ไข กรณีกดแล้ว ไม่ส่งข้อมูล 2021-08-30 11:38:47 +07:00
LAPTOP-KB8JC2K2\acer
e64f675036 แก้บัก วงเงินที่ใช้ในการเลื่อนเงินเดือน - กรณีที่มีหมายเหตุมากกว่า 1 ข้อ run เลขข้อซ้ำค่ะ และกรณีที่มีหมายเหตุมากกว่า 1 ข้อ run เลขข้อซ้ำ 2021-08-30 10:16:00 +07:00
LAPTOP-KB8JC2K2\acer
d0d9b50238 ปรับปรุง วันลาใน UI 2021-08-27 16:18:19 +07:00
LAPTOP-KB8JC2K2\acer
440454b7dd แก้ด่วน การเรียงลำดับ 2021-08-27 16:05:38 +07:00
LAPTOP-KB8JC2K2\acer
b44c25e2d7 แก้บักด่วน 2021-08-27 16:00:43 +07:00
LAPTOP-KB8JC2K2\acer
e91666e9db ปรับปรุงวันที่่ลาใน report 2021-08-27 13:58:44 +07:00
LAPTOP-KB8JC2K2\acer
8735c12bd7 เพิ่มช่อง วันที่เริ่มลา / สิ้นสุด ลา 2021-08-27 10:20:02 +07:00
LAPTOP-KB8JC2K2\acer
910ef472ec ปรับปรุง เพิ่มเติม 2021-08-26 14:55:35 +07:00
LAPTOP-KB8JC2K2\acer
a108bbbc4a ปรับแก้ตาม https://app.clickup.com/t/e5gb58 2021-08-26 14:43:05 +07:00
LAPTOP-KB8JC2K2\acer
1c01a326b2 https://app.clickup.com/t/cqr5xv เมนูบัญชีเงินเดือนขั้นต่ำขั้นสูงของพนักงานเนติบัณฑิตยสภา - เพิ่มฟิลล์ในการเก็บกรอบเงินเดือนสูงสุด(1 ขั้น)ของกรอบเงินเดือน 2021-08-24 10:41:39 +07:00
LAPTOP-KB8JC2K2\acer
a5664503f0 แก้ไข https://app.clickup.com/t/7hzjan และ https://app.clickup.com/t/71uwkz 2021-08-23 17:34:55 +07:00
Pairat Sangprasert
5747602eb5 Merge branch 'feature/20210719_enhancement_01' into develop 2021-07-19 17:00:41 +07:00
LAPTOP-KB8JC2K2\acer
38a2e1fe88 ปรับปรุงหลายข้อ 2021-07-19 16:47:05 +07:00
LAPTOP-KB8JC2K2\acer
dce57d2ca1 ปรับปรุงให้แสดงผลรวม ของจำนวนพนักงาน และปรับ layout 2021-07-19 14:54:44 +07:00
LAPTOP-KB8JC2K2\acer
99389df14d แก้ไขปัญหา จอยข้อมูลไม่เจอ 2021-07-19 14:19:10 +07:00
Pairat Sangprasert
93ce18f352 Merge branch 'feature/pond_20210714_001_savemessage_report' into develop 2021-07-16 16:33:45 +07:00
Pairat Sangprasert
3de7c45968 เพิ่ม decimal_limit_quota ใน model สำหรับ report บันทีกข้อความ ใช้ค่าจาก limit_quota 2021-07-16 16:20:53 +07:00
LAPTOP-KB8JC2K2\acer
18303d092f ปรับปรุง คิวรี่ เพื่อให้เจอ plan 2021-07-16 11:50:25 +07:00
Pairat Sangprasert
622fb46323 ทำ set parameter จาก font-end และ back-end ให้ jasper กำลังทำต่อ ในส่วนของรายชื่อ ทำวัน พฤหัสบดี ที่ 15/07/2564 เวลา 20.00 - 23.00 น. 2021-07-15 23:04:53 +07:00
LAPTOP-KB8JC2K2\acer
6f06b1e544 เตรียม code เพื่อสอน การดึงข้อมูลผ่าน C# และส่งไปให้ report 2021-07-15 14:31:49 +07:00
Pairat Sangprasert
9aa338ff18 ทำหน้า font ให้แสดง report jasper และ เขียน api controller ให้แสดง report และ ทำ class model รับ parameter จาก font 2021-07-14 18:54:07 +07:00
Pairat Sangprasert
c7745f6ab4 Merge tag 'pond_20210713_001' into develop 2021-07-14 12:27:27 +07:00
319 changed files with 38901 additions and 808 deletions

View File

@@ -15,6 +15,7 @@ using TodoAPI2.Models;
using System.Data;
using Microsoft.Extensions.Configuration;
using System.IO;
using System.Net;
namespace TodoAPI2.Controllers
{
@@ -315,6 +316,47 @@ namespace TodoAPI2.Controllers
return BadRequest(ModelState);
}
/// <summary>
/// Download Report
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return list of items by specifced keyword</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("rep_eva_savemessage")]
[ProducesResponseType(typeof(FileStreamResult), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult rep_eva_savemessage(rep_eva_savemessageReportRequestModel model)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
//var httpclient = MyHelper.getHttpClient(Configuration);
var httpclient = new WebClient();
string mainurl = MyHelper.GetConfig(Configuration, "JasperReportServer:MainURL");
string reportsite = MyHelper.GetConfig(Configuration, "JasperReportServer:reportsite");
string username = MyHelper.GetConfig(Configuration, "JasperReportServer:username");
string password = MyHelper.GetConfig(Configuration, "JasperReportServer:password");
_repository.setModelFor_rep_eva_savemessageReport(model);
string url = $"{mainurl}{reportsite}/rep_eva_savemessage.{model.filetype}?{MyHelper.GetParameterForJasperReport(model)}&j_username={username}&j_password={password}";
var data = httpclient.DownloadData(url);
var stream = new MemoryStream(data);
return File(stream, model.contentType);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while GetReport.", ex);
return StatusCode(500, $"Exception while GetReport. {ex.Message}");
}
}
}
}

View File

@@ -0,0 +1,230 @@
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;
using System.Net;
namespace TodoAPI2.Controllers
{
//[Authorize]
[Produces("application/json")]
[Route("api/eva_adjust_postponement_update_status")]
public class eva_adjust_postponement_update_statusController : BaseController
{
#region Private Variables
private ILogger<eva_adjust_postponement_update_statusController> _logger;
private Ieva_adjust_postponement_update_statusService _repository;
private Iexternal_employeeService emp;
private IConfiguration Configuration { get; set; }
#endregion
#region Properties
#endregion
/// <summary>
/// Default constructure for dependency injection
/// </summary>
/// <param name="repository"></param>
/// <param name="configuration"></param>
/// <param name="logger"></param>
public eva_adjust_postponement_update_statusController(ILogger<eva_adjust_postponement_update_statusController> logger,
Ieva_adjust_postponement_update_statusService repository, IConfiguration configuration,
Iexternal_employeeService inemp)
{
_logger = logger;
_repository = repository;
Configuration = configuration;
emp = inemp;
}
/// <summary>
/// Get specific item by id
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return Get specific item by id</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("{id}")]
[ProducesResponseType(typeof(eva_adjust_postponement_update_statusWithSelectionViewModel), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult Get(int id)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var result = _repository.GetWithSelection(id);
return Ok(result);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception in IActionResult Get.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
/// <summary>
/// Get Blank Item
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return a blank item</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("GetBlankItem")]
[ProducesResponseType(typeof(eva_adjust_postponement_update_statusWithSelectionViewModel), 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}");
}
}
/// <summary>
/// Get list items by postponement_status_note
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return list of items by specifced keyword</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("")]
[ProducesResponseType(typeof(List<eva_adjust_postponement_update_statusViewModel>), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult GetList(string postponement_status_note)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
return Ok(_repository.GetListBypostponement_status_note(postponement_status_note));
}
catch (Exception ex)
{
_logger.LogCritical($"Exception in IActionResult GetList.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
/// <summary>
/// Get list items by search
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return list of items by specifced keyword</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("GetListBySearch")]
[ProducesResponseType(typeof(List<eva_adjust_postponement_update_statusViewModel>), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult GetListBySearch(eva_adjust_postponement_update_statusSearchModel model)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
return Ok(_repository.GetListBySearch(model));
}
catch (Exception ex)
{
_logger.LogCritical($"Exception in IActionResult GetListBySearch.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
/// <summary>
/// Update item
/// </summary>
/// <remarks>
/// </remarks>
/// <param name="id"></param>
/// <param name="model"></param>
/// <returns>Response Result Message</returns>
/// <response code="200">Response Result Message</response>
/// <response code="400">If the model is invalid</response>
/// <response code="500">Error Occurred</response>
[HttpPut("{id}")]
[ProducesResponseType(typeof(CommonResponseMessage), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult Update(int id, [FromBody] eva_adjust_postponement_update_statusInputModel model)
{
if (ModelState.IsValid)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
int? e = null;
if (!string.IsNullOrEmpty(HttpContext.Request.Cookies["user_id"]))
{
var loginid = Convert.ToInt32(HttpContext.Request.Cookies["user_id"]);
var theEmp = emp.GetEmployeeForLogin(Convert.ToInt32(loginid));
if(theEmp != null)
{
e = theEmp.id;
}
else
{
return Unauthorized();
}
}
else
{
return Unauthorized();
}
var result = _repository.Update(id, model, true, e);
var message = new CommonResponseMessage();
message.code = "200";
message.message = $"บันทึกการอนุมัติและส่งต่อ เรียบร้อย";
message.data = result;
return Ok(message);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while update {id.ToString()}.", ex);
return StatusCode(500, $"{id.ToString()}. {ex.Message}");
}
}
return BadRequest(ModelState);
}
}
}

View File

@@ -0,0 +1,275 @@
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;
using System.Net;
namespace TodoAPI2.Controllers
{
//[Authorize]
[Produces("application/json")]
[Route("api/eva_adjust_quota_update_final_status")]
public class eva_adjust_quota_update_final_statusController : BaseController
{
#region Private Variables
private ILogger<eva_adjust_quota_update_final_statusController> _logger;
private Ieva_adjust_quota_update_final_statusService _repository;
private Iexternal_employeeService emp;
private IConfiguration Configuration { get; set; }
#endregion
#region Properties
#endregion
/// <summary>
/// Default constructure for dependency injection
/// </summary>
/// <param name="repository"></param>
/// <param name="configuration"></param>
/// <param name="inemp"></param>
/// <param name="logger"></param>
public eva_adjust_quota_update_final_statusController(ILogger<eva_adjust_quota_update_final_statusController> logger,
Ieva_adjust_quota_update_final_statusService repository, IConfiguration configuration,
Iexternal_employeeService inemp)
{
_logger = logger;
_repository = repository;
Configuration = configuration;
emp = inemp;
}
/// <summary>
/// Get specific item by id
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return Get specific item by id</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("{id}")]
[ProducesResponseType(typeof(eva_adjust_quota_update_final_statusWithSelectionViewModel), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult Get(int id)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var result = _repository.GetWithSelection(id);
return Ok(result);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception in IActionResult Get.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
/// <summary>
/// Get Blank Item
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return a blank item</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("GetBlankItem")]
[ProducesResponseType(typeof(eva_adjust_quota_update_final_statusWithSelectionViewModel), 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}");
}
}
/// <summary>
/// Get list items by quota_final_status_note
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return list of items by specifced keyword</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("")]
[ProducesResponseType(typeof(List<eva_adjust_quota_update_final_statusViewModel>), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult GetList(string quota_final_status_note)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
return Ok(_repository.GetListByquota_final_status_note(quota_final_status_note));
}
catch (Exception ex)
{
_logger.LogCritical($"Exception in IActionResult GetList.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
/// <summary>
/// Get list items by search
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return list of items by specifced keyword</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("GetListBySearch")]
[ProducesResponseType(typeof(List<eva_adjust_quota_update_final_statusViewModel>), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult GetListBySearch(eva_adjust_quota_update_final_statusSearchModel model)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
return Ok(_repository.GetListBySearch(model));
}
catch (Exception ex)
{
_logger.LogCritical($"Exception in IActionResult GetListBySearch.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
/// <summary>
/// Download Report
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return list of items by specifced keyword</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("eva_adjust_quota_update_final_status_report")]
[ProducesResponseType(typeof(FileStreamResult), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult eva_adjust_quota_update_final_status_report(eva_adjust_quota_update_final_statusReportRequestModel model)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var httpclient = new WebClient();
string mainurl = MyHelper.GetConfig(Configuration, "JasperReportServer:MainURL");
string reportsite = MyHelper.GetConfig(Configuration, "JasperReportServer:reportsite");
string username = MyHelper.GetConfig(Configuration, "JasperReportServer:username");
string password = MyHelper.GetConfig(Configuration, "JasperReportServer:password");
string url = $"{mainurl}{reportsite}/xxใส่ชื่อรายงานตรงนี้xx.{model.filetype}?{MyHelper.GetParameterForJasperReport(model)}&j_username={username}&j_password={password}";
if (model.filetype == "xlsx")
{
url += "&ignorePagination=true";
}
var data = httpclient.DownloadData(url);
var stream = new MemoryStream(data);
return File(stream, model.contentType);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while GetReport.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
/// <summary>
/// Update item
/// </summary>
/// <remarks>
/// </remarks>
/// <param name="id"></param>
/// <param name="model"></param>
/// <returns>Response Result Message</returns>
/// <response code="200">Response Result Message</response>
/// <response code="400">If the model is invalid</response>
/// <response code="500">Error Occurred</response>
[HttpPut("{id}")]
[ProducesResponseType(typeof(CommonResponseMessage), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult Update(int id, [FromBody] eva_adjust_quota_update_final_statusInputModel model)
{
if (ModelState.IsValid)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
int? e = null;
if (!string.IsNullOrEmpty(HttpContext.Request.Cookies["user_id"]))
{
var loginid = Convert.ToInt32(HttpContext.Request.Cookies["user_id"]);
var theEmp = emp.GetEmployeeForLogin(Convert.ToInt32(loginid));
if (theEmp != null)
{
e = theEmp.id;
}
else
{
return Unauthorized();
}
}
else
{
return Unauthorized();
}
var result = _repository.Update(id, model, true, e);
var message = new CommonResponseMessage();
message.code = "200";
message.message = $"แก้ไขข้อมูล เรียบร้อย";
message.data = result;
return Ok(message);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while update {id.ToString()}.", ex);
return StatusCode(500, $"{id.ToString()}. {ex.Message}");
}
}
return BadRequest(ModelState);
}
}
}

View File

@@ -0,0 +1,230 @@
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;
using System.Net;
namespace TodoAPI2.Controllers
{
//[Authorize]
[Produces("application/json")]
[Route("api/eva_adjust_quota_update_status")]
public class eva_adjust_quota_update_statusController : BaseController
{
#region Private Variables
private ILogger<eva_adjust_quota_update_statusController> _logger;
private Ieva_adjust_quota_update_statusService _repository;
private Iexternal_employeeService emp;
private IConfiguration Configuration { get; set; }
#endregion
#region Properties
#endregion
/// <summary>
/// Default constructure for dependency injection
/// </summary>
/// <param name="repository"></param>
/// <param name="configuration"></param>
/// <param name="logger"></param>
/// <param name="inemp"></param>
public eva_adjust_quota_update_statusController(ILogger<eva_adjust_quota_update_statusController> logger, Ieva_adjust_quota_update_statusService repository,
IConfiguration configuration,
Iexternal_employeeService inemp)
{
_logger = logger;
_repository = repository;
Configuration = configuration;
emp = inemp;
}
/// <summary>
/// Get specific item by id
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return Get specific item by id</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("{id}")]
[ProducesResponseType(typeof(eva_adjust_quota_update_statusWithSelectionViewModel), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult Get(int id)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var result = _repository.GetWithSelection(id);
return Ok(result);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception in IActionResult Get.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
/// <summary>
/// Get Blank Item
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return a blank item</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("GetBlankItem")]
[ProducesResponseType(typeof(eva_adjust_quota_update_statusWithSelectionViewModel), 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}");
}
}
/// <summary>
/// Get list items by quota_status_note
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return list of items by specifced keyword</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("")]
[ProducesResponseType(typeof(List<eva_adjust_quota_update_statusViewModel>), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult GetList(string quota_status_note)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
return Ok(_repository.GetListByquota_status_note(quota_status_note));
}
catch (Exception ex)
{
_logger.LogCritical($"Exception in IActionResult GetList.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
/// <summary>
/// Get list items by search
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return list of items by specifced keyword</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("GetListBySearch")]
[ProducesResponseType(typeof(List<eva_adjust_quota_update_statusViewModel>), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult GetListBySearch(eva_adjust_quota_update_statusSearchModel model)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
return Ok(_repository.GetListBySearch(model));
}
catch (Exception ex)
{
_logger.LogCritical($"Exception in IActionResult GetListBySearch.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
/// <summary>
/// Update item
/// </summary>
/// <remarks>
/// </remarks>
/// <param name="id"></param>
/// <param name="model"></param>
/// <returns>Response Result Message</returns>
/// <response code="200">Response Result Message</response>
/// <response code="400">If the model is invalid</response>
/// <response code="500">Error Occurred</response>
[HttpPut("{id}")]
[ProducesResponseType(typeof(CommonResponseMessage), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult Update(int id, [FromBody] eva_adjust_quota_update_statusInputModel model)
{
if (ModelState.IsValid)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
int? e = null;
if (!string.IsNullOrEmpty(HttpContext.Request.Cookies["user_id"]))
{
var loginid = Convert.ToInt32(HttpContext.Request.Cookies["user_id"]);
var theEmp = emp.GetEmployeeForLogin(Convert.ToInt32(loginid));
if (theEmp != null)
{
e = theEmp.id;
}
else
{
return Unauthorized();
}
}
else
{
return Unauthorized();
}
var result = _repository.Update(id, model, true, e);
var message = new CommonResponseMessage();
message.code = "200";
message.message = $"แก้ไขข้อมูล เรียบร้อย";
message.data = result;
return Ok(message);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while update {id.ToString()}.", ex);
return StatusCode(500, $"{id.ToString()}. {ex.Message}");
}
}
return BadRequest(ModelState);
}
}
}

View File

@@ -109,7 +109,9 @@ namespace TodoAPI2.Controllers
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var result = _repository.GetBlankItem();
var loginid = Convert.ToInt32(HttpContext.Request.Cookies["user_id"]);
var e = emp.GetEmployeeForLogin(Convert.ToInt32(loginid));
var result = _repository.GetBlankItemWithEmp(e.id);
return Ok(result);
}

View File

@@ -108,7 +108,10 @@ namespace TodoAPI2.Controllers
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var result = _repository.GetBlankItem();
var loginid = Convert.ToInt32(HttpContext.Request.Cookies["user_id"]);
var e = emp.GetEmployeeForLogin(Convert.ToInt32(loginid));
var result = _repository.GetBlankItemWithEmp(e.id);
return Ok(result);
}

View File

@@ -0,0 +1,361 @@
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;
using System.Net;
namespace TodoAPI2.Controllers
{
//[Authorize]
[Produces("application/json")]
[Route("api/eva_create_evaluation_detail_review05")]
public class eva_create_evaluation_detail_review05Controller : BaseController
{
#region Private Variables
private ILogger<eva_create_evaluation_detail_review05Controller> _logger;
private Ieva_create_evaluation_detail_review05Service _repository;
private IConfiguration Configuration { get; set; }
#endregion
#region Properties
#endregion
/// <summary>
/// Default constructure for dependency injection
/// </summary>
/// <param name="repository"></param>
/// <param name="configuration"></param>
/// <param name="logger"></param>
public eva_create_evaluation_detail_review05Controller(ILogger<eva_create_evaluation_detail_review05Controller> logger, Ieva_create_evaluation_detail_review05Service repository, IConfiguration configuration)
{
_logger = logger;
_repository = repository;
Configuration = configuration;
}
/// <summary>
/// Get specific item by id
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return Get specific item by id</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("{id}")]
[ProducesResponseType(typeof(eva_create_evaluation_detail_review05WithSelectionViewModel), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult Get(int id)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var result = _repository.GetWithSelection(id);
return Ok(result);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception in IActionResult Get.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
/// <summary>
/// Get Blank Item
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return a blank item</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("GetBlankItem")]
[ProducesResponseType(typeof(eva_create_evaluation_detail_review05WithSelectionViewModel), 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}");
}
}
/// <summary>
/// Get list items by create_evaluation_id
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return list of items by specifced keyword</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("")]
[ProducesResponseType(typeof(List<eva_create_evaluation_detail_review05ViewModel>), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult GetList(int? create_evaluation_id)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
return Ok(_repository.GetListBycreate_evaluation_id(create_evaluation_id));
}
catch (Exception ex)
{
_logger.LogCritical($"Exception in IActionResult GetList.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
/// <summary>
/// Get list items by search
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return list of items by specifced keyword</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("GetListBySearch")]
[ProducesResponseType(typeof(List<eva_create_evaluation_detail_review05ViewModel>), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult GetListBySearch(eva_create_evaluation_detail_review05SearchModel model)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
return Ok(_repository.GetListBySearch(model));
}
catch (Exception ex)
{
_logger.LogCritical($"Exception in IActionResult GetListBySearch.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
/// <summary>
/// Create new item
/// </summary>
/// <remarks>
/// </remarks>
/// <param name="model"></param>
/// <returns>Response Result Message</returns>
/// <response code="200">Response Result Message</response>
/// <response code="400">If the model is invalid</response>
/// <response code="500">Error Occurred</response>
[HttpPost("")]
[ProducesResponseType(typeof(CommonResponseMessage), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult Insert([FromBody] eva_create_evaluation_detail_review05InputModel model)
{
if (ModelState.IsValid)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var result = _repository.Insert(model, true);
var message = new CommonResponseMessage();
message.code = "200";
message.message = $"เพิ่มข้อมูล เรียบร้อย";
message.data = result;
return Ok(message);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while insert.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
return BadRequest(ModelState);
}
/// <summary>
/// Update item
/// </summary>
/// <remarks>
/// </remarks>
/// <param name="id"></param>
/// <param name="model"></param>
/// <returns>Response Result Message</returns>
/// <response code="200">Response Result Message</response>
/// <response code="400">If the model is invalid</response>
/// <response code="500">Error Occurred</response>
[HttpPut("{id}")]
[ProducesResponseType(typeof(CommonResponseMessage), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult Update(int id, [FromBody] eva_create_evaluation_detail_review05InputModel model)
{
if (ModelState.IsValid)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var result = _repository.Update(id, model, true);
var message = new CommonResponseMessage();
message.code = "200";
message.message = $"แก้ไขข้อมูล เรียบร้อย";
message.data = result;
return Ok(message);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while update {id.ToString()}.", ex);
return StatusCode(500, $"{id.ToString()}. {ex.Message}");
}
}
return BadRequest(ModelState);
}
/// <summary>
/// Delete item
/// </summary>
/// <remarks>
/// </remarks>
/// <param name="id"></param>
/// <returns>Response Result Message</returns>
/// <response code="200">Response Result Message</response>
/// <response code="400">If the model is invalid</response>
/// <response code="500">Error Occurred</response>
[HttpDelete("{id}")]
[ProducesResponseType(typeof(CommonResponseMessage), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult Delete(int id)
{
if (ModelState.IsValid)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
_repository.Delete(id);
var message = new CommonResponseMessage();
message.code = "200";
message.message = $"ลบข้อมูล เรียบร้อย";
message.data = null;
return Ok(message);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while delete {id.ToString()}.", ex);
return StatusCode(500, $"{id.ToString()}. {ex.Message}");
}
}
return BadRequest(ModelState);
}
/// <summary>
/// Update multiple item
/// </summary>
/// <remarks>
/// </remarks>
/// <param name="model"></param>
/// <returns>Response Result Message</returns>
/// <response code="200">Response Result Message</response>
/// <response code="400">If the model is invalid</response>
/// <response code="500">Error Occurred</response>
[HttpPut("UpdateMultiple")]
[ProducesResponseType(typeof(CommonResponseMessage), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult UpdateMultiple([FromBody] List<eva_create_evaluation_detail_review05InputModel> model)
{
if (ModelState.IsValid)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
string rowCount = _repository.UpdateMultiple(model, true);
var message = new CommonResponseMessage();
message.code = "200";
message.message = "ปรับปรุงข้อมูลเรียบร้อย จำนวน "+rowCount+" รายการ";
message.data = null;
return Ok(message);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while UpdateMultiple.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
return BadRequest(ModelState);
}
/// <summary>
/// Refresh AutoField of all items
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Response Result Message</returns>
/// <response code="200">Response Result Message</response>
/// <response code="400">If the model is invalid</response>
/// <response code="500">Error Occurred</response>
[HttpPut("RefreshAutoField")]
[ProducesResponseType(typeof(CommonResponseMessage), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult RefreshAutoField()
{
if (ModelState.IsValid)
{
try
{
//if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
_repository.RefreshAutoFieldOfAllData();
var message = new CommonResponseMessage();
message.code = "200";
message.message = $"ปรับปรุง Auto Field ของทุก record เรียบร้อย";
message.data = null;
return Ok(message);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while RefreshAutoField.", ex);
return StatusCode(500, $"มีปัญหาระหว่างการปรับปรุง Auto Field. {ex.Message}");
}
}
return BadRequest(ModelState);
}
}
}

View File

@@ -0,0 +1,403 @@
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;
using System.Net;
namespace TodoAPI2.Controllers
{
//[Authorize]
[Produces("application/json")]
[Route("api/eva_level_score_detail")]
public class eva_level_score_detailController : BaseController
{
#region Private Variables
private ILogger<eva_level_score_detailController> _logger;
private Ieva_level_score_detailService _repository;
private IConfiguration Configuration { get; set; }
#endregion
#region Properties
#endregion
/// <summary>
/// Default constructure for dependency injection
/// </summary>
/// <param name="repository"></param>
/// <param name="configuration"></param>
/// <param name="logger"></param>
public eva_level_score_detailController(ILogger<eva_level_score_detailController> logger, Ieva_level_score_detailService repository, IConfiguration configuration)
{
_logger = logger;
_repository = repository;
Configuration = configuration;
}
/// <summary>
/// Get specific item by id
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return Get specific item by id</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("{id}")]
[ProducesResponseType(typeof(eva_level_score_detailWithSelectionViewModel), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult Get(Guid id)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var result = _repository.GetWithSelection(id);
return Ok(result);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception in IActionResult Get.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
/// <summary>
/// Get Blank Item
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return a blank item</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("GetBlankItem")]
[ProducesResponseType(typeof(eva_level_score_detailWithSelectionViewModel), 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}");
}
}
/// <summary>
/// Get list items by level_score_id
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return list of items by specifced keyword</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("")]
[ProducesResponseType(typeof(List<eva_level_score_detailViewModel>), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult GetList(Guid level_score_id)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
return Ok(_repository.GetListBylevel_score_id(level_score_id));
}
catch (Exception ex)
{
_logger.LogCritical($"Exception in IActionResult GetList.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
/// <summary>
/// Get list items by search
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return list of items by specifced keyword</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("GetListBySearch")]
[ProducesResponseType(typeof(List<eva_level_score_detailViewModel>), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult GetListBySearch(eva_level_score_detailSearchModel model)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
return Ok(_repository.GetListBySearch(model));
}
catch (Exception ex)
{
_logger.LogCritical($"Exception in IActionResult GetListBySearch.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
/// <summary>
/// Download Report
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return list of items by specifced keyword</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("eva_level_score_detail_report")]
[ProducesResponseType(typeof(FileStreamResult), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult eva_level_score_detail_report(eva_level_score_detailReportRequestModel model)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var httpclient = new WebClient();
string mainurl = MyHelper.GetConfig(Configuration, "JasperReportServer:MainURL");
string reportsite = MyHelper.GetConfig(Configuration, "JasperReportServer:reportsite");
string username = MyHelper.GetConfig(Configuration, "JasperReportServer:username");
string password = MyHelper.GetConfig(Configuration, "JasperReportServer:password");
string url = $"{mainurl}{reportsite}/xxใส่ชื่อรายงานตรงนี้xx.{model.filetype}?{MyHelper.GetParameterForJasperReport(model)}&j_username={username}&j_password={password}";
if (model.filetype == "xlsx")
{
url += "&ignorePagination=true";
}
var data = httpclient.DownloadData(url);
var stream = new MemoryStream(data);
return File(stream, model.contentType);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while GetReport.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
/// <summary>
/// Create new item
/// </summary>
/// <remarks>
/// </remarks>
/// <param name="model"></param>
/// <returns>Response Result Message</returns>
/// <response code="200">Response Result Message</response>
/// <response code="400">If the model is invalid</response>
/// <response code="500">Error Occurred</response>
[HttpPost("")]
[ProducesResponseType(typeof(CommonResponseMessage), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult Insert([FromBody] eva_level_score_detailInputModel model)
{
if (ModelState.IsValid)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var result = _repository.Insert(model, true);
var message = new CommonResponseMessage();
message.code = "200";
message.message = $"เพิ่มข้อมูล เรียบร้อย";
message.data = result;
return Ok(message);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while insert.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
return BadRequest(ModelState);
}
/// <summary>
/// Update item
/// </summary>
/// <remarks>
/// </remarks>
/// <param name="id"></param>
/// <param name="model"></param>
/// <returns>Response Result Message</returns>
/// <response code="200">Response Result Message</response>
/// <response code="400">If the model is invalid</response>
/// <response code="500">Error Occurred</response>
[HttpPut("{id}")]
[ProducesResponseType(typeof(CommonResponseMessage), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult Update(Guid id, [FromBody] eva_level_score_detailInputModel model)
{
if (ModelState.IsValid)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var result = _repository.Update(id, model, true);
var message = new CommonResponseMessage();
message.code = "200";
message.message = $"แก้ไขข้อมูล เรียบร้อย";
message.data = result;
return Ok(message);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while update {id.ToString()}.", ex);
return StatusCode(500, $"{id.ToString()}. {ex.Message}");
}
}
return BadRequest(ModelState);
}
/// <summary>
/// Delete item
/// </summary>
/// <remarks>
/// </remarks>
/// <param name="id"></param>
/// <returns>Response Result Message</returns>
/// <response code="200">Response Result Message</response>
/// <response code="400">If the model is invalid</response>
/// <response code="500">Error Occurred</response>
[HttpDelete("{id}")]
[ProducesResponseType(typeof(CommonResponseMessage), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult Delete(Guid id)
{
if (ModelState.IsValid)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
_repository.Delete(id);
var message = new CommonResponseMessage();
message.code = "200";
message.message = $"ลบข้อมูล เรียบร้อย";
message.data = null;
return Ok(message);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while delete {id.ToString()}.", ex);
return StatusCode(500, $"{id.ToString()}. {ex.Message}");
}
}
return BadRequest(ModelState);
}
/// <summary>
/// Update multiple item
/// </summary>
/// <remarks>
/// </remarks>
/// <param name="model"></param>
/// <returns>Response Result Message</returns>
/// <response code="200">Response Result Message</response>
/// <response code="400">If the model is invalid</response>
/// <response code="500">Error Occurred</response>
[HttpPut("UpdateMultiple")]
[ProducesResponseType(typeof(CommonResponseMessage), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult UpdateMultiple([FromBody] List<eva_level_score_detailInputModel> model)
{
if (ModelState.IsValid)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
string rowCount = _repository.UpdateMultiple(model, true);
var message = new CommonResponseMessage();
message.code = "200";
message.message = "ปรับปรุงข้อมูลเรียบร้อย จำนวน "+rowCount+" รายการ";
message.data = null;
return Ok(message);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while UpdateMultiple.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
return BadRequest(ModelState);
}
/// <summary>
/// Refresh AutoField of all items
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Response Result Message</returns>
/// <response code="200">Response Result Message</response>
/// <response code="400">If the model is invalid</response>
/// <response code="500">Error Occurred</response>
[HttpPut("RefreshAutoField")]
[ProducesResponseType(typeof(CommonResponseMessage), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult RefreshAutoField()
{
if (ModelState.IsValid)
{
try
{
//if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
_repository.RefreshAutoFieldOfAllData();
var message = new CommonResponseMessage();
message.code = "200";
message.message = $"ปรับปรุง Auto Field ของทุก record เรียบร้อย";
message.data = null;
return Ok(message);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while RefreshAutoField.", ex);
return StatusCode(500, $"มีปัญหาระหว่างการปรับปรุง Auto Field. {ex.Message}");
}
}
return BadRequest(ModelState);
}
}
}

View File

@@ -0,0 +1,403 @@
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;
using System.Net;
namespace TodoAPI2.Controllers
{
//[Authorize]
[Produces("application/json")]
[Route("api/eva_setup_permission")]
public class eva_setup_permissionController : BaseController
{
#region Private Variables
private ILogger<eva_setup_permissionController> _logger;
private Ieva_setup_permissionService _repository;
private IConfiguration Configuration { get; set; }
#endregion
#region Properties
#endregion
/// <summary>
/// Default constructure for dependency injection
/// </summary>
/// <param name="repository"></param>
/// <param name="configuration"></param>
/// <param name="logger"></param>
public eva_setup_permissionController(ILogger<eva_setup_permissionController> logger, Ieva_setup_permissionService repository, IConfiguration configuration)
{
_logger = logger;
_repository = repository;
Configuration = configuration;
}
/// <summary>
/// Get specific item by id
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return Get specific item by id</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("{id}")]
[ProducesResponseType(typeof(eva_setup_permissionWithSelectionViewModel), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult Get(Guid id)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var result = _repository.GetWithSelection(id);
return Ok(result);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception in IActionResult Get.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
/// <summary>
/// Get Blank Item
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return a blank item</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("GetBlankItem")]
[ProducesResponseType(typeof(eva_setup_permissionWithSelectionViewModel), 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}");
}
}
/// <summary>
/// Get list items by remark
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return list of items by specifced keyword</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("")]
[ProducesResponseType(typeof(List<eva_setup_permissionViewModel>), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult GetList(string remark)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
return Ok(_repository.GetListByremark(remark));
}
catch (Exception ex)
{
_logger.LogCritical($"Exception in IActionResult GetList.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
/// <summary>
/// Get list items by search
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return list of items by specifced keyword</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("GetListBySearch")]
[ProducesResponseType(typeof(List<eva_setup_permissionViewModel>), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult GetListBySearch(eva_setup_permissionSearchModel model)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
return Ok(_repository.GetListBySearch(model));
}
catch (Exception ex)
{
_logger.LogCritical($"Exception in IActionResult GetListBySearch.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
/// <summary>
/// Download Report
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return list of items by specifced keyword</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("eva_setup_permission_report")]
[ProducesResponseType(typeof(FileStreamResult), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult eva_setup_permission_report(eva_setup_permissionReportRequestModel model)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var httpclient = new WebClient();
string mainurl = MyHelper.GetConfig(Configuration, "JasperReportServer:MainURL");
string reportsite = MyHelper.GetConfig(Configuration, "JasperReportServer:reportsite");
string username = MyHelper.GetConfig(Configuration, "JasperReportServer:username");
string password = MyHelper.GetConfig(Configuration, "JasperReportServer:password");
string url = $"{mainurl}{reportsite}/xxใส่ชื่อรายงานตรงนี้xx.{model.filetype}?{MyHelper.GetParameterForJasperReport(model)}&j_username={username}&j_password={password}";
if (model.filetype == "xlsx")
{
url += "&ignorePagination=true";
}
var data = httpclient.DownloadData(url);
var stream = new MemoryStream(data);
return File(stream, model.contentType);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while GetReport.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
/// <summary>
/// Create new item
/// </summary>
/// <remarks>
/// </remarks>
/// <param name="model"></param>
/// <returns>Response Result Message</returns>
/// <response code="200">Response Result Message</response>
/// <response code="400">If the model is invalid</response>
/// <response code="500">Error Occurred</response>
[HttpPost("")]
[ProducesResponseType(typeof(CommonResponseMessage), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult Insert([FromBody] eva_setup_permissionInputModel model)
{
if (ModelState.IsValid)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var result = _repository.Insert(model, true);
var message = new CommonResponseMessage();
message.code = "200";
message.message = $"เพิ่มข้อมูล เรียบร้อย";
message.data = result;
return Ok(message);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while insert.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
return BadRequest(ModelState);
}
/// <summary>
/// Update item
/// </summary>
/// <remarks>
/// </remarks>
/// <param name="id"></param>
/// <param name="model"></param>
/// <returns>Response Result Message</returns>
/// <response code="200">Response Result Message</response>
/// <response code="400">If the model is invalid</response>
/// <response code="500">Error Occurred</response>
[HttpPut("{id}")]
[ProducesResponseType(typeof(CommonResponseMessage), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult Update(Guid id, [FromBody] eva_setup_permissionInputModel model)
{
if (ModelState.IsValid)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var result = _repository.Update(id, model, true);
var message = new CommonResponseMessage();
message.code = "200";
message.message = $"แก้ไขข้อมูล เรียบร้อย";
message.data = result;
return Ok(message);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while update {id.ToString()}.", ex);
return StatusCode(500, $"{id.ToString()}. {ex.Message}");
}
}
return BadRequest(ModelState);
}
/// <summary>
/// Delete item
/// </summary>
/// <remarks>
/// </remarks>
/// <param name="id"></param>
/// <returns>Response Result Message</returns>
/// <response code="200">Response Result Message</response>
/// <response code="400">If the model is invalid</response>
/// <response code="500">Error Occurred</response>
[HttpDelete("{id}")]
[ProducesResponseType(typeof(CommonResponseMessage), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult Delete(Guid id)
{
if (ModelState.IsValid)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
_repository.Delete(id);
var message = new CommonResponseMessage();
message.code = "200";
message.message = $"ลบข้อมูล เรียบร้อย";
message.data = null;
return Ok(message);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while delete {id.ToString()}.", ex);
return StatusCode(500, $"{id.ToString()}. {ex.Message}");
}
}
return BadRequest(ModelState);
}
/// <summary>
/// Update multiple item
/// </summary>
/// <remarks>
/// </remarks>
/// <param name="model"></param>
/// <returns>Response Result Message</returns>
/// <response code="200">Response Result Message</response>
/// <response code="400">If the model is invalid</response>
/// <response code="500">Error Occurred</response>
[HttpPut("UpdateMultiple")]
[ProducesResponseType(typeof(CommonResponseMessage), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult UpdateMultiple([FromBody] List<eva_setup_permissionInputModel> model)
{
if (ModelState.IsValid)
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
string rowCount = _repository.UpdateMultiple(model, true);
var message = new CommonResponseMessage();
message.code = "200";
message.message = "ปรับปรุงข้อมูลเรียบร้อย จำนวน "+rowCount+" รายการ";
message.data = null;
return Ok(message);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while UpdateMultiple.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
return BadRequest(ModelState);
}
/// <summary>
/// Refresh AutoField of all items
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Response Result Message</returns>
/// <response code="200">Response Result Message</response>
/// <response code="400">If the model is invalid</response>
/// <response code="500">Error Occurred</response>
[HttpPut("RefreshAutoField")]
[ProducesResponseType(typeof(CommonResponseMessage), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult RefreshAutoField()
{
if (ModelState.IsValid)
{
try
{
//if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
_repository.RefreshAutoFieldOfAllData();
var message = new CommonResponseMessage();
message.code = "200";
message.message = $"ปรับปรุง Auto Field ของทุก record เรียบร้อย";
message.data = null;
return Ok(message);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while RefreshAutoField.", ex);
return StatusCode(500, $"มีปัญหาระหว่างการปรับปรุง Auto Field. {ex.Message}");
}
}
return BadRequest(ModelState);
}
}
}

View File

@@ -94,7 +94,9 @@ namespace TodoAPI2.Controllers
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
model.print_dt = MyHelper.GetDateStringForReport(DateTime.Now) + " " + MyHelper.GetTimeStringFromDate(DateTime.Now);
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
//var httpclient = MyHelper.getHttpClient(Configuration);
var httpclient = new WebClient();

View File

@@ -94,13 +94,18 @@ namespace TodoAPI2.Controllers
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
model.print_dt = MyHelper.GetDateStringForReport(DateTime.Now) + " " + MyHelper.GetTimeStringFromDate(DateTime.Now);
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
//var httpclient = MyHelper.getHttpClient(Configuration);
var httpclient = new WebClient();
string mainurl = MyHelper.GetConfig(Configuration, "JasperReportServer:MainURL");
string reportsite = MyHelper.GetConfig(Configuration, "JasperReportServer:reportsite");
string username = MyHelper.GetConfig(Configuration, "JasperReportServer:username");
string password = MyHelper.GetConfig(Configuration, "JasperReportServer:password");
_repository.SetEvaDate(model);
string url = $"{mainurl}{reportsite}/rep_eva02.{model.filetype}?{MyHelper.GetParameterForJasperReport(model)}&j_username={username}&j_password={password}";
var data = httpclient.DownloadData(url);

View File

@@ -93,7 +93,9 @@ namespace TodoAPI2.Controllers
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
model.print_dt = MyHelper.GetDateStringForReport(DateTime.Now) + " " + MyHelper.GetTimeStringFromDate(DateTime.Now);
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
//var httpclient = MyHelper.getHttpClient(Configuration);
var httpclient = new WebClient();
string mainurl = MyHelper.GetConfig(Configuration, "JasperReportServer:MainURL");

View File

@@ -95,7 +95,9 @@ namespace TodoAPI2.Controllers
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
model.print_dt = MyHelper.GetDateStringForReport(DateTime.Now) + " " + MyHelper.GetTimeStringFromDate(DateTime.Now);
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var httpclient = new WebClient();
string mainurl = MyHelper.GetConfig(Configuration, "JasperReportServer:MainURL");
string reportsite = MyHelper.GetConfig(Configuration, "JasperReportServer:reportsite");

View File

@@ -96,23 +96,25 @@ namespace TodoAPI2.Controllers
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
model.print_dt = MyHelper.GetDateStringForReport(DateTime.Now) + " " + MyHelper.GetTimeStringFromDate(DateTime.Now);
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var httpclient = new WebClient();
var stream = new MemoryStream();
Document document = new Document();
PdfCopy writer = new PdfCopy(document, stream);
document.Open();
//var stream = new MemoryStream();
//Document document = new Document();
//PdfCopy writer = new PdfCopy(document, stream);
//document.Open();
var data1 = GetReport01(model);
PdfReader reader1 = new PdfReader(data1);
reader1.ConsolidateNamedDestinations();
for (int i = 1; i <= reader1.NumberOfPages; i++)
{
PdfImportedPage page = writer.GetImportedPage(reader1, i);
writer.AddPage(page);
}
reader1.Close();
//PdfReader reader1 = new PdfReader(data1);
//reader1.ConsolidateNamedDestinations();
//for (int i = 1; i <= reader1.NumberOfPages; i++)
//{
// PdfImportedPage page = writer.GetImportedPage(reader1, i);
// writer.AddPage(page);
//}
//reader1.Close();
//var data2 = GetReport02(model);
//PdfReader reader2 = new PdfReader(data2);
@@ -124,13 +126,15 @@ namespace TodoAPI2.Controllers
//}
//reader2.Close();
writer.Close();
document.Close();
//writer.Close();
//document.Close();
var datax = stream.ToArray();
var streamx = new MemoryStream(datax);
//var datax = stream.ToArray();
//var streamx = new MemoryStream(datax);
return File(streamx, model.contentType);
var stream = new MemoryStream(data1);
return File(stream, model.contentType);
}
catch (Exception ex)
{

View File

@@ -94,7 +94,9 @@ namespace TodoAPI2.Controllers
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
model.print_dt = MyHelper.GetDateStringForReport(DateTime.Now) + " " + MyHelper.GetTimeStringFromDate(DateTime.Now);
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var httpclient = new WebClient();
string mainurl = MyHelper.GetConfig(Configuration, "JasperReportServer:MainURL");
string reportsite = MyHelper.GetConfig(Configuration, "JasperReportServer:reportsite");

View File

@@ -271,10 +271,65 @@ namespace TodoAPI2.Controllers
var rep_type = new int[] { 1, 2, 3, 4, 5 };
var loginPositionName = (from i in emp.GetAllEmployee()
where i.id.ToString() == Request.Cookies["emp_id"]
select i.position_name).FirstOrDefault();
foreach (var k in rep_type)
{
//if (!string.IsNullOrEmpty(loginPositionName))
//{
// if (!(loginPositionName == "นักทรัพยากรบุคคล" || loginPositionName.Contains("ผู้อำนวยการ"))
// && (k == 2 || k == 3 || k == 4 || k == 5)
// )
// {
// continue;
// }
//}
string url = $"{mainurl}{reportsite}/rep_eva_x{k}.{model.filetype}?{MyHelper.GetParameterForJasperReport(p1)}&j_username={username}&j_password={password}";
if(k == 3)
{
if (p1.chief_fullname == p1.supervisor2_fullname)
{
url = $"{mainurl}{reportsite}/rep_eva_x{k}A.{model.filetype}?{MyHelper.GetParameterForJasperReport(p1)}&j_username={username}&j_password={password}";
if (!string.IsNullOrEmpty(p1.supervisor3A_fullname))
{
url = $"{mainurl}{reportsite}/rep_eva_x{k}AC.{model.filetype}?{MyHelper.GetParameterForJasperReport(p1)}&j_username={username}&j_password={password}";
}
if (string.IsNullOrEmpty(p1.supervisor2A_fullname))
{
url = $"{mainurl}{reportsite}/rep_eva_x{k}A2.{model.filetype}?{MyHelper.GetParameterForJasperReport(p1)}&j_username={username}&j_password={password}";
}
}
else
{
if (!string.IsNullOrEmpty(p1.supervisor2A_fullname) && string.IsNullOrEmpty(p1.supervisor1A_fullname))
{
url = $"{mainurl}{reportsite}/rep_eva_x{k}B.{model.filetype}?{MyHelper.GetParameterForJasperReport(p1)}&j_username={username}&j_password={password}";
}
else if (string.IsNullOrEmpty(p1.supervisor2A_fullname) && string.IsNullOrEmpty(p1.supervisor1A_fullname))
{
url = $"{mainurl}{reportsite}/rep_eva_x{k}B2.{model.filetype}?{MyHelper.GetParameterForJasperReport(p1)}&j_username={username}&j_password={password}";
}
else if (string.IsNullOrEmpty(p1.supervisor3A_fullname))
{
url = $"{mainurl}{reportsite}/rep_eva_x{k}C.{model.filetype}?{MyHelper.GetParameterForJasperReport(p1)}&j_username={username}&j_password={password}";
if (p1.supervisor1A_fullname == p1.supervisor2A_fullname || string.IsNullOrEmpty(p1.supervisor2A_fullname))
{
url = $"{mainurl}{reportsite}/rep_eva_x{k}C2.{model.filetype}?{MyHelper.GetParameterForJasperReport(p1)}&j_username={username}&j_password={password}";
}
}
}
}
if (p1.employee_position_type == "อำนวยการ" && k == 1)
{
url = $"{mainurl}{reportsite}/rep_eva_x{k}a.{model.filetype}?{MyHelper.GetParameterForJasperReport(p1)}&j_username={username}&j_password={password}";
}
var data = httpclient.DownloadData(url);
PdfReader reader = new PdfReader(data);
@@ -296,6 +351,18 @@ namespace TodoAPI2.Controllers
return data2;
}
private string checkLevel(int? position_type_id, string position_level_text, string name)
{
if (position_type_id.HasValue)
{
if(position_type_id == 3 || position_type_id == 4 || position_type_id == 5)
{
return " " + position_level_text;
}
}
return "";
}
private rep_eva_xInputModel2 GetParameter(int detail_id)
{
var i = new rep_eva_xInputModel2();
@@ -312,6 +379,8 @@ namespace TodoAPI2.Controllers
if (i.employee_org != null) i.employee_org = i.employee_org.Replace("แผนก", "");
i.employee_position = p.employee_position;
i.employee_position_full = p.employee_position + checkLevel(p.employee_position_type_id, p.employee_position_level_text, p.employee_fullname);
if (!string.IsNullOrEmpty(p.employee_profile_picture))
{
i.image_url = MyHelper.GetConfig(Configuration, "SiteInformation:hr_svc") + "/api/image/" + p.employee_profile_picture;
@@ -330,19 +399,24 @@ namespace TodoAPI2.Controllers
}
i.chief_fullname = p.chief_fullname;
i.chief_position = p.chief_position;
i.chief_position = p.chief_position + checkLevel(p.chief_position_type_id, p.chief_position_level_text, p.chief_fullname);
i.supervisor1_remark = p.supervisor1_remark;
i.supervisor2_fullname = p.supervisor2_fullname;
i.supervisor2_position = p.supervisor2_position;
i.supervisor2_position = p.supervisor2_position + checkLevel(p.supervisor2_position_type_id, p.supervisor2_position_level_text, p.supervisor2_fullname);
i.supervisor1A_fullname = p.supervisor1A_fullname;
i.supervisor1A_position = p.supervisor1A_position;
i.supervisor1A_position = p.supervisor1A_position + checkLevel(p.supervisor1A_position_type_id, p.supervisor1A_position_level_text, p.supervisor1A_fullname);
i.supervisor2A_fullname = p.supervisor2A_fullname;
i.supervisor2A_position = p.supervisor2A_position;
i.supervisor2A_position = p.supervisor2A_position + checkLevel(p.supervisor2A_position_type_id, p.supervisor2A_position_level_text, p.supervisor2A_fullname);
i.supervisor3A_fullname = p.supervisor3A_fullname;
i.supervisor3A_position = p.supervisor3A_position + checkLevel(p.supervisor3A_position_type_id, p.supervisor3A_position_level_text, p.supervisor3A_fullname);
i.main_dept = p.employee_main_dept;
if (i.main_dept != null) i.main_dept = i.main_dept.Replace("กอง","");
i.leave_period = MyHelper.GetDateStringForReport(p.start_date) + " ถึง " + MyHelper.GetDateStringForReport(p.end_date);
i.leave_period = MyHelper.GetDateStringForReport(p.leave_start_date) + " ถึง " + MyHelper.GetDateStringForReport(p.leave_end_date);
i.selected_round = p.selected_round;
i.plan_remark = p.plan_remark;
i.eva_detail_remark = p.eva_detail_remark;
var context = _process.GetDataContext();
var all_eva = (from x in context.eva_performance_plan
@@ -355,8 +429,8 @@ namespace TodoAPI2.Controllers
where n.performance_plan_id == x2.id
select n.start_date).Min();
var end = (from n in context.eva_performance_plan_detail
where n.performance_plan_id == x2.id
select n.end_date).Min();
where n.performance_plan_id == x2.id
select n.end_date).Max();
var text = MyHelper.GetDateStringForReport(start) + " ถึง " + MyHelper.GetDateStringForReport(end);
if(x2.theTime == 1)
{
@@ -368,6 +442,11 @@ namespace TodoAPI2.Controllers
}
}
if (string.IsNullOrEmpty(i.round2_text))
{
i.round2_text = $"1 เมษายน {p.fiscal_year} ถึง 30 กันยายน {p.fiscal_year}";
}
var detail = (from x in context.eva_create_evaluation_detail
where x.id == detail_id
select x).FirstOrDefault();
@@ -388,9 +467,9 @@ namespace TodoAPI2.Controllers
i.w1 = p.create_evaluation_score1;
i.w2 = p.create_evaluation_score2;
if(p.start_date.HasValue && p.end_date.HasValue)
if(p.leave_start_date.HasValue && p.leave_end_date.HasValue)
{
var q = emp.GetLeaveOfEmployee(p.employee_id.Value, p.start_date, p.end_date);
var q = emp.GetLeaveOfEmployee(p.employee_id.Value, p.leave_start_date, p.leave_end_date);
i.sum_day_sick_leave = q.sum_day_sick_leave;
i.count_sick_leave = q.count_sick_leave;
i.sum_day_personal_leave = q.sum_day_personal_leave;
@@ -408,12 +487,39 @@ namespace TodoAPI2.Controllers
i.txt_status_chief_a_click_date = MyHelper.GetDateStringForReport(p.status_chief_a_click_date);
if (i.txt_status_chief_a_click_date == "") i.txt_status_chief_a_click_date = "..................................";
i.txt_status_self_click_date = MyHelper.GetDateStringForReport(p.status_self_click_date);
if (i.txt_status_self_click_date == "") i.txt_status_self_click_date = "..................................";
i.txt_status_chief_click_date = MyHelper.GetDateStringForReport(p.status_chief_click_date);
if (i.txt_status_chief_click_date == "") i.txt_status_chief_click_date = "..................................";
i.txt_status_supervisor_click_date = MyHelper.GetDateStringForReport(p.status_supervisor_click_date);
if (i.txt_status_supervisor_click_date == "") i.txt_status_supervisor_click_date = "..................................";
i.txt_status_supervisor1A_click_date = MyHelper.GetDateStringForReport(p.status_supervisor1A_click_date);
if (i.txt_status_supervisor1A_click_date == "") i.txt_status_supervisor1A_click_date = "..................................";
i.txt_status_supervisor2A_click_date = MyHelper.GetDateStringForReport(p.status_supervisor2A_click_date);
if (i.txt_status_supervisor2A_click_date == "") i.txt_status_supervisor2A_click_date = "..................................";
i.txt_status_supervisor3A_click_date = MyHelper.GetDateStringForReport(p.status_supervisor3A_click_date);
if (i.txt_status_supervisor3A_click_date == "") i.txt_status_supervisor3A_click_date = "..................................";
i.print_dt = MyHelper.GetDateStringForReport(DateTime.Now) + " " + MyHelper.GetTimeStringFromDate(DateTime.Now);
return i;
}
private void checkValue(eva_create_evaluation_detailEntity detail, ref rep_eva_xInputModel2 i)
{
if (detail.status_supervisor2A == "Y")
if (detail.status_supervisor3A == "Y")
{
i.total_summary_supervisor2a = detail.total_summary_supervisor3A;
i.final_summary_supervisor2a = detail.Final_summary_supervisor3A;
i.total_summary_competency_supervisor2a = detail.total_summary_competency_supervisor3A;
i.final_summary_competency_supervisor2a = detail.Final_summary_competency_supervisor3A;
i.achievement_supervisor2a = detail.achievement_supervisor3A;
i.competency_supervisor2a = detail.competency_supervisor3A;
i.score_supervisor2a = detail.score_supervisor3A;
i.level_score_supervisor2a = detail.level_score_supervisor3A;
}
else if (detail.status_supervisor2A == "Y")
{
i.total_summary_supervisor2a = detail.total_summary_supervisor2A;
i.final_summary_supervisor2a = detail.Final_summary_supervisor2A;
@@ -435,7 +541,7 @@ namespace TodoAPI2.Controllers
i.score_supervisor2a = detail.score_supervisor1A;
i.level_score_supervisor2a = detail.level_score_supervisor1A;
}
else if (detail.status_supervisor == "Y")
else if (detail.status_supervisor == "Y" || detail.supervisor2_result == "Y")
{
i.total_summary_supervisor2a = detail.total_summary_supervisor;
i.final_summary_supervisor2a = detail.Final_summary_supervisor;

View File

@@ -0,0 +1,127 @@
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;
using System.Net;
namespace TodoAPI2.Controllers
{
//[Authorize]
[Produces("application/json")]
[Route("api/rep_summary_a01")]
public class rep_summary_a01Controller : BaseController
{
#region Private Variables
private ILogger<rep_summary_a01Controller> _logger;
private Irep_summary_a01Service _repository;
private IConfiguration Configuration { get; set; }
#endregion
#region Properties
#endregion
/// <summary>
/// Default constructure for dependency injection
/// </summary>
/// <param name="repository"></param>
/// <param name="configuration"></param>
/// <param name="logger"></param>
public rep_summary_a01Controller(ILogger<rep_summary_a01Controller> logger, Irep_summary_a01Service repository, IConfiguration configuration)
{
_logger = logger;
_repository = repository;
Configuration = configuration;
}
/// <summary>
/// Get Blank Item
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return a blank item</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("GetBlankItem")]
[ProducesResponseType(typeof(rep_summary_a01WithSelectionViewModel), 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}");
}
}
/// <summary>
/// Download Report
/// </summary>
/// <remarks>
/// </remarks>
/// <returns>Return list of items by specifced keyword</returns>
/// <response code="200">Returns the item</response>
/// <response code="500">Error Occurred</response>
[HttpGet("rep_summary_a01_report")]
[ProducesResponseType(typeof(FileStreamResult), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult rep_summary_a01_report(rep_summary_a01ReportRequestModel model)
{
try
{
model.print_dt = MyHelper.GetDateStringForReport(DateTime.Now) + " " + MyHelper.GetTimeStringFromDate(DateTime.Now);
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var httpclient = new WebClient();
string mainurl = MyHelper.GetConfig(Configuration, "JasperReportServer:MainURL");
string reportsite = MyHelper.GetConfig(Configuration, "JasperReportServer:reportsite");
string username = MyHelper.GetConfig(Configuration, "JasperReportServer:username");
string password = MyHelper.GetConfig(Configuration, "JasperReportServer:password");
model.round_text = _repository.GetDisplayText(model.round_id);
string url = $"{mainurl}{reportsite}/rep_summary_a01.{model.filetype}?{MyHelper.GetParameterForJasperReport(model)}&j_username={username}&j_password={password}";
if (model.filetype == "xlsx")
{
url += "&ignorePagination=true";
}
var data = httpclient.DownloadData(url);
var stream = new MemoryStream(data);
return File(stream, model.contentType);
}
catch (Exception ex)
{
_logger.LogCritical($"Exception while GetReport.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
}
}

View File

@@ -94,7 +94,9 @@ namespace TodoAPI2.Controllers
{
try
{
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
model.print_dt = MyHelper.GetDateStringForReport(DateTime.Now) + " " + MyHelper.GetTimeStringFromDate(DateTime.Now);
if (!MyHelper.checkAuth(Configuration, HttpContext)) return Unauthorized();
var httpclient = new WebClient();
string mainurl = MyHelper.GetConfig(Configuration, "JasperReportServer:MainURL");

View File

@@ -14,6 +14,8 @@ namespace TTSW.EF {
public DbSet<eva_create_evaluation_detailEntity> eva_create_evaluation_detail { get; set; }
//public DbSet<eva_create_evaluation_detail_agreementEntity> eva_create_evaluation_detail_agreement { get; set; }
public DbSet<eva_evaluation_achievementEntity> eva_evaluation_achievement { get; set; }
public DbSet<eva_evaluation_achievement_detailEntity> eva_evaluation_achievement_detail { get; set; }
public DbSet<eva_evaluation_behaviorEntity> eva_evaluation_behavior { get; set; }
public DbSet<eva_evaluation_groupEntity> eva_evaluation_group { get; set; }
public DbSet<eva_evaluation_group_detailEntity> eva_evaluation_group_detail { get; set; }
@@ -43,11 +45,10 @@ namespace TTSW.EF {
public DbSet<eva_limit_frame_planEntity> eva_limit_frame_plan { get; set; }
public DbSet<eva_idp_planEntity> eva_idp_plan { get; set; }
public DbSet<eva_create_evaluation_detail_historyEntity> eva_create_evaluation_detail_history { get; set; }
public DbSet<eva_evaluation_achievement_attachEntity> eva_evaluation_achievement_attach { get; set; }
public DbSet<activity_log_evaEntity> activity_log_eva { get; set; }
public DbSet<eva_setup_permissionEntity> eva_setup_permission { get; set; }
public DbSet<eva_level_score_detailEntity> eva_level_score_detail { get; set; }
protected override void OnModelCreating (ModelBuilder modelBuilder) {
base.OnModelCreating (modelBuilder);

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,22 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class UpdateCylindar : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<decimal>(
name: "salary_max",
table: "eva_salary_cylinder",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "salary_max",
table: "eva_salary_cylinder");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,32 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class EnhancePlan : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<DateTime>(
name: "end_leave",
table: "eva_performance_plan",
nullable: true);
migrationBuilder.AddColumn<DateTime>(
name: "start_leave",
table: "eva_performance_plan",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "end_leave",
table: "eva_performance_plan");
migrationBuilder.DropColumn(
name: "start_leave",
table: "eva_performance_plan");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,23 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class AddRemark2 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "remark2",
table: "eva_limit_frame_group",
maxLength: 4000,
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "remark2",
table: "eva_limit_frame_group");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,22 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class AddHistoryField : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<int>(
name: "history_group",
table: "eva_create_evaluation_detail_history",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "history_group",
table: "eva_create_evaluation_detail_history");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,23 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class UpdateRemarkToPlan : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "remark",
table: "eva_performance_plan",
maxLength: 500,
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "remark",
table: "eva_performance_plan");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,23 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class UpdateRemarkToEvaDetail : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "remark",
table: "eva_create_evaluation_detail",
maxLength: 1000,
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "remark",
table: "eva_create_evaluation_detail");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,31 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class AddRewardSalary : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<decimal>(
name: "reward_new",
table: "eva_adjust_postponement_detail",
nullable: true);
migrationBuilder.AddColumn<decimal>(
name: "reward_old",
table: "eva_adjust_postponement_detail",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "reward_new",
table: "eva_adjust_postponement_detail");
migrationBuilder.DropColumn(
name: "reward_old",
table: "eva_adjust_postponement_detail");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,22 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class AddRewardSalary2 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<decimal>(
name: "reward_new2",
table: "eva_adjust_postponement_detail",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "reward_new2",
table: "eva_adjust_postponement_detail");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,33 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class AddEvaPermission : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "eva_setup_permission",
columns: table => new
{
id = table.Column<Guid>(nullable: false),
created = table.Column<DateTime>(nullable: false),
updated = table.Column<DateTime>(nullable: false),
isActive = table.Column<bool>(nullable: false),
employee_id = table.Column<int>(nullable: true),
remark = table.Column<string>(maxLength: 4000, nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_eva_setup_permission", x => x.id);
});
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "eva_setup_permission");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,33 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class AddFlowAgreement : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "status_supervisor_a",
table: "eva_create_evaluation_detail",
maxLength: 1,
nullable: true);
migrationBuilder.AddColumn<DateTime>(
name: "status_supervisor_a_click_date",
table: "eva_create_evaluation_detail",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "status_supervisor_a",
table: "eva_create_evaluation_detail");
migrationBuilder.DropColumn(
name: "status_supervisor_a_click_date",
table: "eva_create_evaluation_detail");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,49 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class UpdateFieldLength : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<string>(
name: "behavior",
table: "eva_evaluation_behavior",
maxLength: 16000,
nullable: true,
oldClrType: typeof(string),
oldMaxLength: 1000,
oldNullable: true);
migrationBuilder.AlterColumn<string>(
name: "achievement",
table: "eva_evaluation_achievement",
maxLength: 16000,
nullable: true,
oldClrType: typeof(string),
oldMaxLength: 8000,
oldNullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<string>(
name: "behavior",
table: "eva_evaluation_behavior",
maxLength: 1000,
nullable: true,
oldClrType: typeof(string),
oldMaxLength: 16000,
oldNullable: true);
migrationBuilder.AlterColumn<string>(
name: "achievement",
table: "eva_evaluation_achievement",
maxLength: 8000,
nullable: true,
oldClrType: typeof(string),
oldMaxLength: 16000,
oldNullable: true);
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,49 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class UpdateFieldLength2 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<string>(
name: "properties",
table: "activity_log_eva",
maxLength: 32000,
nullable: true,
oldClrType: typeof(string),
oldMaxLength: 8000,
oldNullable: true);
migrationBuilder.AlterColumn<string>(
name: "description",
table: "activity_log_eva",
maxLength: 32000,
nullable: true,
oldClrType: typeof(string),
oldMaxLength: 4000,
oldNullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<string>(
name: "properties",
table: "activity_log_eva",
maxLength: 8000,
nullable: true,
oldClrType: typeof(string),
oldMaxLength: 32000,
oldNullable: true);
migrationBuilder.AlterColumn<string>(
name: "description",
table: "activity_log_eva",
maxLength: 4000,
nullable: true,
oldClrType: typeof(string),
oldMaxLength: 32000,
oldNullable: true);
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,153 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class AddLevelScoreForGroup2 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_eva_level_score_detail_eva_level_score_level_score_id",
table: "eva_level_score_detail");
migrationBuilder.AlterColumn<Guid>(
name: "level_score_id",
table: "eva_level_score_detail",
nullable: true,
oldClrType: typeof(Guid));
migrationBuilder.AddColumn<Guid>(
name: "group_guid",
table: "eva_level_score_detail",
nullable: true);
migrationBuilder.AlterColumn<string>(
name: "behavior",
table: "eva_evaluation_behavior",
maxLength: 16000,
nullable: true,
oldClrType: typeof(string),
oldMaxLength: 1000,
oldNullable: true);
migrationBuilder.AlterColumn<string>(
name: "achievement",
table: "eva_evaluation_achievement",
maxLength: 16000,
nullable: true,
oldClrType: typeof(string),
oldMaxLength: 8000,
oldNullable: true);
migrationBuilder.AlterColumn<string>(
name: "properties",
table: "activity_log_eva",
maxLength: 32000,
nullable: true,
oldClrType: typeof(string),
oldMaxLength: 8000,
oldNullable: true);
migrationBuilder.AlterColumn<string>(
name: "description",
table: "activity_log_eva",
maxLength: 32000,
nullable: true,
oldClrType: typeof(string),
oldMaxLength: 4000,
oldNullable: true);
migrationBuilder.CreateIndex(
name: "IX_eva_level_score_detail_group_guid",
table: "eva_level_score_detail",
column: "group_guid");
migrationBuilder.AddForeignKey(
name: "FK_eva_level_score_detail_eva_evaluation_group_group_guid",
table: "eva_level_score_detail",
column: "group_guid",
principalTable: "eva_evaluation_group",
principalColumn: "id",
onDelete: ReferentialAction.Restrict);
migrationBuilder.AddForeignKey(
name: "FK_eva_level_score_detail_eva_level_score_level_score_id",
table: "eva_level_score_detail",
column: "level_score_id",
principalTable: "eva_level_score",
principalColumn: "id",
onDelete: ReferentialAction.Restrict);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_eva_level_score_detail_eva_evaluation_group_group_guid",
table: "eva_level_score_detail");
migrationBuilder.DropForeignKey(
name: "FK_eva_level_score_detail_eva_level_score_level_score_id",
table: "eva_level_score_detail");
migrationBuilder.DropIndex(
name: "IX_eva_level_score_detail_group_guid",
table: "eva_level_score_detail");
migrationBuilder.DropColumn(
name: "group_guid",
table: "eva_level_score_detail");
migrationBuilder.AlterColumn<Guid>(
name: "level_score_id",
table: "eva_level_score_detail",
nullable: false,
oldClrType: typeof(Guid),
oldNullable: true);
migrationBuilder.AlterColumn<string>(
name: "behavior",
table: "eva_evaluation_behavior",
maxLength: 1000,
nullable: true,
oldClrType: typeof(string),
oldMaxLength: 16000,
oldNullable: true);
migrationBuilder.AlterColumn<string>(
name: "achievement",
table: "eva_evaluation_achievement",
maxLength: 8000,
nullable: true,
oldClrType: typeof(string),
oldMaxLength: 16000,
oldNullable: true);
migrationBuilder.AlterColumn<string>(
name: "properties",
table: "activity_log_eva",
maxLength: 8000,
nullable: true,
oldClrType: typeof(string),
oldMaxLength: 32000,
oldNullable: true);
migrationBuilder.AlterColumn<string>(
name: "description",
table: "activity_log_eva",
maxLength: 4000,
nullable: true,
oldClrType: typeof(string),
oldMaxLength: 32000,
oldNullable: true);
migrationBuilder.AddForeignKey(
name: "FK_eva_level_score_detail_eva_level_score_level_score_id",
table: "eva_level_score_detail",
column: "level_score_id",
principalTable: "eva_level_score",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,46 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class Addachievement_detail : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "eva_evaluation_achievement_detail",
columns: table => new
{
id = table.Column<Guid>(nullable: false),
created = table.Column<DateTime>(nullable: false),
updated = table.Column<DateTime>(nullable: false),
isActive = table.Column<bool>(nullable: false),
create_evaluation_detail_id = table.Column<int>(nullable: true),
achievement_id = table.Column<int>(nullable: true),
achievement_detail = table.Column<string>(maxLength: 16000, nullable: true),
achievement_order = table.Column<int>(nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_eva_evaluation_achievement_detail", x => x.id);
table.ForeignKey(
name: "FK_eva_evaluation_achievement_detail_eva_create_evaluation_det~",
column: x => x.create_evaluation_detail_id,
principalTable: "eva_create_evaluation_detail",
principalColumn: "id",
onDelete: ReferentialAction.Restrict);
});
migrationBuilder.CreateIndex(
name: "IX_eva_evaluation_achievement_detail_create_evaluation_detail_~",
table: "eva_evaluation_achievement_detail",
column: "create_evaluation_detail_id");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "eva_evaluation_achievement_detail");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,74 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class ManageAchievement : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_eva_evaluation_achievement_detail_eva_create_evaluation_det~",
table: "eva_evaluation_achievement_detail");
migrationBuilder.DropIndex(
name: "IX_eva_evaluation_achievement_detail_create_evaluation_detail_~",
table: "eva_evaluation_achievement_detail");
migrationBuilder.DropColumn(
name: "create_evaluation_detail_id",
table: "eva_evaluation_achievement_detail");
migrationBuilder.AddColumn<string>(
name: "achievement_line1",
table: "eva_evaluation_achievement",
maxLength: 16000,
nullable: true);
migrationBuilder.CreateIndex(
name: "IX_eva_evaluation_achievement_detail_achievement_id",
table: "eva_evaluation_achievement_detail",
column: "achievement_id");
migrationBuilder.AddForeignKey(
name: "FK_eva_evaluation_achievement_detail_eva_evaluation_achievemen~",
table: "eva_evaluation_achievement_detail",
column: "achievement_id",
principalTable: "eva_evaluation_achievement",
principalColumn: "id",
onDelete: ReferentialAction.Restrict);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_eva_evaluation_achievement_detail_eva_evaluation_achievemen~",
table: "eva_evaluation_achievement_detail");
migrationBuilder.DropIndex(
name: "IX_eva_evaluation_achievement_detail_achievement_id",
table: "eva_evaluation_achievement_detail");
migrationBuilder.DropColumn(
name: "achievement_line1",
table: "eva_evaluation_achievement");
migrationBuilder.AddColumn<int>(
name: "create_evaluation_detail_id",
table: "eva_evaluation_achievement_detail",
nullable: true);
migrationBuilder.CreateIndex(
name: "IX_eva_evaluation_achievement_detail_create_evaluation_detail_~",
table: "eva_evaluation_achievement_detail",
column: "create_evaluation_detail_id");
migrationBuilder.AddForeignKey(
name: "FK_eva_evaluation_achievement_detail_eva_create_evaluation_det~",
table: "eva_evaluation_achievement_detail",
column: "create_evaluation_detail_id",
principalTable: "eva_create_evaluation_detail",
principalColumn: "id",
onDelete: ReferentialAction.Restrict);
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,22 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class AddSupervisor3 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<int>(
name: "supervisor3_id",
table: "eva_create_evaluation",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "supervisor3_id",
table: "eva_create_evaluation");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,80 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class AddX111 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "status_supervisor3A",
table: "eva_create_evaluation_detail",
maxLength: 1,
nullable: true);
migrationBuilder.AddColumn<DateTime>(
name: "status_supervisor3A_click_date",
table: "eva_create_evaluation_detail",
nullable: true);
migrationBuilder.AddColumn<int>(
name: "supervisor3A",
table: "eva_create_evaluation_detail",
nullable: true);
migrationBuilder.AddColumn<DateTime>(
name: "supervisor3A_date",
table: "eva_create_evaluation_detail",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "supervisor3A_remark",
table: "eva_create_evaluation_detail",
maxLength: 1000,
nullable: true);
migrationBuilder.AddColumn<string>(
name: "supervisor3A_result",
table: "eva_create_evaluation_detail",
maxLength: 1,
nullable: true);
migrationBuilder.AddColumn<int>(
name: "supervisor3_id",
table: "eva_create_evaluation_detail",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "status_supervisor3A",
table: "eva_create_evaluation_detail");
migrationBuilder.DropColumn(
name: "status_supervisor3A_click_date",
table: "eva_create_evaluation_detail");
migrationBuilder.DropColumn(
name: "supervisor3A",
table: "eva_create_evaluation_detail");
migrationBuilder.DropColumn(
name: "supervisor3A_date",
table: "eva_create_evaluation_detail");
migrationBuilder.DropColumn(
name: "supervisor3A_remark",
table: "eva_create_evaluation_detail");
migrationBuilder.DropColumn(
name: "supervisor3A_result",
table: "eva_create_evaluation_detail");
migrationBuilder.DropColumn(
name: "supervisor3_id",
table: "eva_create_evaluation_detail");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,86 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class AddEx01 : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<decimal>(
name: "Final_summary_competency_supervisor3A",
table: "eva_create_evaluation_detail",
nullable: true);
migrationBuilder.AddColumn<decimal>(
name: "Final_summary_supervisor3A",
table: "eva_create_evaluation_detail",
nullable: true);
migrationBuilder.AddColumn<decimal>(
name: "achievement_supervisor3A",
table: "eva_create_evaluation_detail",
nullable: true);
migrationBuilder.AddColumn<decimal>(
name: "competency_supervisor3A",
table: "eva_create_evaluation_detail",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "level_score_supervisor3A",
table: "eva_create_evaluation_detail",
maxLength: 255,
nullable: true);
migrationBuilder.AddColumn<decimal>(
name: "score_supervisor3A",
table: "eva_create_evaluation_detail",
nullable: true);
migrationBuilder.AddColumn<decimal>(
name: "total_summary_competency_supervisor3A",
table: "eva_create_evaluation_detail",
nullable: true);
migrationBuilder.AddColumn<decimal>(
name: "total_summary_supervisor3A",
table: "eva_create_evaluation_detail",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "Final_summary_competency_supervisor3A",
table: "eva_create_evaluation_detail");
migrationBuilder.DropColumn(
name: "Final_summary_supervisor3A",
table: "eva_create_evaluation_detail");
migrationBuilder.DropColumn(
name: "achievement_supervisor3A",
table: "eva_create_evaluation_detail");
migrationBuilder.DropColumn(
name: "competency_supervisor3A",
table: "eva_create_evaluation_detail");
migrationBuilder.DropColumn(
name: "level_score_supervisor3A",
table: "eva_create_evaluation_detail");
migrationBuilder.DropColumn(
name: "score_supervisor3A",
table: "eva_create_evaluation_detail");
migrationBuilder.DropColumn(
name: "total_summary_competency_supervisor3A",
table: "eva_create_evaluation_detail");
migrationBuilder.DropColumn(
name: "total_summary_supervisor3A",
table: "eva_create_evaluation_detail");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,31 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class AddSpecialCompensation : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<decimal>(
name: "new_special_compensation",
table: "eva_adjust_postponement_detail",
nullable: true);
migrationBuilder.AddColumn<decimal>(
name: "special_compensation",
table: "eva_adjust_postponement_detail",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "new_special_compensation",
table: "eva_adjust_postponement_detail");
migrationBuilder.DropColumn(
name: "special_compensation",
table: "eva_adjust_postponement_detail");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,31 @@
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class RemoveSpecialCom : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "new_special_compensation",
table: "eva_adjust_postponement_detail");
migrationBuilder.DropColumn(
name: "special_compensation",
table: "eva_adjust_postponement_detail");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<decimal>(
name: "new_special_compensation",
table: "eva_adjust_postponement_detail",
nullable: true);
migrationBuilder.AddColumn<decimal>(
name: "special_compensation",
table: "eva_adjust_postponement_detail",
nullable: true);
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,92 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class AddPostponementStatus : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "postponement_status",
table: "eva_adjust_postponement",
maxLength: 5,
nullable: true);
migrationBuilder.AddColumn<int>(
name: "postponement_status_by",
table: "eva_adjust_postponement",
maxLength: 255,
nullable: true);
migrationBuilder.AddColumn<DateTime>(
name: "postponement_status_date",
table: "eva_adjust_postponement",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "postponement_status_note",
table: "eva_adjust_postponement",
maxLength: 1000,
nullable: true);
migrationBuilder.AddColumn<string>(
name: "quota_status",
table: "eva_adjust_postponement",
maxLength: 5,
nullable: true);
migrationBuilder.AddColumn<int>(
name: "quota_status_by",
table: "eva_adjust_postponement",
maxLength: 255,
nullable: true);
migrationBuilder.AddColumn<DateTime>(
name: "quota_status_date",
table: "eva_adjust_postponement",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "quota_status_note",
table: "eva_adjust_postponement",
maxLength: 1000,
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "postponement_status",
table: "eva_adjust_postponement");
migrationBuilder.DropColumn(
name: "postponement_status_by",
table: "eva_adjust_postponement");
migrationBuilder.DropColumn(
name: "postponement_status_date",
table: "eva_adjust_postponement");
migrationBuilder.DropColumn(
name: "postponement_status_note",
table: "eva_adjust_postponement");
migrationBuilder.DropColumn(
name: "quota_status",
table: "eva_adjust_postponement");
migrationBuilder.DropColumn(
name: "quota_status_by",
table: "eva_adjust_postponement");
migrationBuilder.DropColumn(
name: "quota_status_date",
table: "eva_adjust_postponement");
migrationBuilder.DropColumn(
name: "quota_status_note",
table: "eva_adjust_postponement");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,62 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class AddFinalApprover : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<string>(
name: "quota_final_status",
table: "eva_adjust_postponement",
maxLength: 5,
nullable: true);
migrationBuilder.AddColumn<int>(
name: "quota_final_status_by",
table: "eva_adjust_postponement",
maxLength: 255,
nullable: true);
migrationBuilder.AddColumn<DateTime>(
name: "quota_final_status_date",
table: "eva_adjust_postponement",
nullable: true);
migrationBuilder.AddColumn<string>(
name: "quota_final_status_note",
table: "eva_adjust_postponement",
maxLength: 1000,
nullable: true);
migrationBuilder.AddColumn<int>(
name: "quota_status_submit_to",
table: "eva_adjust_postponement",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "quota_final_status",
table: "eva_adjust_postponement");
migrationBuilder.DropColumn(
name: "quota_final_status_by",
table: "eva_adjust_postponement");
migrationBuilder.DropColumn(
name: "quota_final_status_date",
table: "eva_adjust_postponement");
migrationBuilder.DropColumn(
name: "quota_final_status_note",
table: "eva_adjust_postponement");
migrationBuilder.DropColumn(
name: "quota_status_submit_to",
table: "eva_adjust_postponement");
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,47 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace tb320eva.Migrations
{
public partial class AddLevelScore : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "eva_level_score_detail",
columns: table => new
{
id = table.Column<Guid>(nullable: false),
created = table.Column<DateTime>(nullable: false),
updated = table.Column<DateTime>(nullable: false),
isActive = table.Column<bool>(nullable: false),
level_score_id = table.Column<Guid>(nullable: false),
min_value = table.Column<decimal>(nullable: true),
max_value = table.Column<decimal>(nullable: true),
min_percentage = table.Column<decimal>(nullable: true),
max_percentage = table.Column<decimal>(nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_eva_level_score_detail", x => x.id);
table.ForeignKey(
name: "FK_eva_level_score_detail_eva_level_score_level_score_id",
column: x => x.level_score_id,
principalTable: "eva_level_score",
principalColumn: "id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_eva_level_score_detail_level_score_id",
table: "eva_level_score_detail",
column: "level_score_id");
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "eva_level_score_detail");
}
}
}

View File

@@ -32,7 +32,7 @@ namespace tb320eva.Migrations
b.Property<DateTime?>("created_at");
b.Property<string>("description")
.HasMaxLength(4000);
.HasMaxLength(32000);
b.Property<string>("ip_address")
.HasMaxLength(191);
@@ -44,7 +44,7 @@ namespace tb320eva.Migrations
.HasMaxLength(191);
b.Property<string>("properties")
.HasMaxLength(8000);
.HasMaxLength(32000);
b.Property<int?>("subject_id");
@@ -90,6 +90,41 @@ namespace tb320eva.Migrations
b.Property<decimal?>("percentage");
b.Property<string>("postponement_status")
.HasMaxLength(5);
b.Property<int?>("postponement_status_by")
.HasMaxLength(255);
b.Property<DateTime?>("postponement_status_date");
b.Property<string>("postponement_status_note")
.HasMaxLength(1000);
b.Property<string>("quota_final_status")
.HasMaxLength(5);
b.Property<int?>("quota_final_status_by")
.HasMaxLength(255);
b.Property<DateTime?>("quota_final_status_date");
b.Property<string>("quota_final_status_note")
.HasMaxLength(1000);
b.Property<string>("quota_status")
.HasMaxLength(5);
b.Property<int?>("quota_status_by")
.HasMaxLength(255);
b.Property<DateTime?>("quota_status_date");
b.Property<string>("quota_status_note")
.HasMaxLength(1000);
b.Property<int?>("quota_status_submit_to");
b.Property<string>("report_type")
.HasMaxLength(1000);
@@ -171,6 +206,12 @@ namespace tb320eva.Migrations
b.Property<string>("remark")
.HasMaxLength(1000);
b.Property<decimal?>("reward_new");
b.Property<decimal?>("reward_new2");
b.Property<decimal?>("reward_old");
b.Property<decimal?>("sarary");
b.Property<decimal?>("score_final");
@@ -210,6 +251,8 @@ namespace tb320eva.Migrations
b.Property<int?>("supervisor2_id");
b.Property<int?>("supervisor3_id");
b.Property<DateTime>("updated");
b.HasKey("id");
@@ -235,12 +278,16 @@ namespace tb320eva.Migrations
b.Property<decimal?>("Final_summary_competency_supervisor2A");
b.Property<decimal?>("Final_summary_competency_supervisor3A");
b.Property<decimal?>("Final_summary_supervisor");
b.Property<decimal?>("Final_summary_supervisor1A");
b.Property<decimal?>("Final_summary_supervisor2A");
b.Property<decimal?>("Final_summary_supervisor3A");
b.Property<decimal?>("achievement_chief");
b.Property<decimal?>("achievement_supervisor");
@@ -249,6 +296,8 @@ namespace tb320eva.Migrations
b.Property<decimal?>("achievement_supervisor2A");
b.Property<decimal?>("achievement_supervisor3A");
b.Property<int?>("chief");
b.Property<int?>("chief_a");
@@ -272,6 +321,8 @@ namespace tb320eva.Migrations
b.Property<decimal?>("competency_supervisor2A");
b.Property<decimal?>("competency_supervisor3A");
b.Property<int?>("create_evaluation_id");
b.Property<DateTime>("created");
@@ -296,8 +347,14 @@ namespace tb320eva.Migrations
b.Property<string>("level_score_supervisor2A")
.HasMaxLength(255);
b.Property<string>("level_score_supervisor3A")
.HasMaxLength(255);
b.Property<int?>("order_of_data");
b.Property<string>("remark")
.HasMaxLength(1000);
b.Property<decimal?>("score_chief");
b.Property<decimal?>("score_supervisor");
@@ -306,6 +363,8 @@ namespace tb320eva.Migrations
b.Property<decimal?>("score_supervisor2A");
b.Property<decimal?>("score_supervisor3A");
b.Property<string>("status_chief")
.HasMaxLength(1);
@@ -339,6 +398,16 @@ namespace tb320eva.Migrations
b.Property<DateTime?>("status_supervisor2A_click_date");
b.Property<string>("status_supervisor3A")
.HasMaxLength(1);
b.Property<DateTime?>("status_supervisor3A_click_date");
b.Property<string>("status_supervisor_a")
.HasMaxLength(1);
b.Property<DateTime?>("status_supervisor_a_click_date");
b.Property<DateTime?>("status_supervisor_click_date");
b.Property<int?>("supervisor1");
@@ -385,6 +454,18 @@ namespace tb320eva.Migrations
b.Property<string>("supervisor2_result")
.HasMaxLength(1);
b.Property<int?>("supervisor3A");
b.Property<DateTime?>("supervisor3A_date");
b.Property<string>("supervisor3A_remark")
.HasMaxLength(1000);
b.Property<string>("supervisor3A_result")
.HasMaxLength(1);
b.Property<int?>("supervisor3_id");
b.Property<decimal?>("total_summary_chief");
b.Property<decimal?>("total_summary_competency_chief");
@@ -395,12 +476,16 @@ namespace tb320eva.Migrations
b.Property<decimal?>("total_summary_competency_supervisor2A");
b.Property<decimal?>("total_summary_competency_supervisor3A");
b.Property<decimal?>("total_summary_supervisor");
b.Property<decimal?>("total_summary_supervisor1A");
b.Property<decimal?>("total_summary_supervisor2A");
b.Property<decimal?>("total_summary_supervisor3A");
b.Property<DateTime>("updated");
b.Property<decimal?>("work_period");
@@ -427,6 +512,8 @@ namespace tb320eva.Migrations
b.Property<int?>("evaluation_detail_id");
b.Property<int?>("history_group");
b.Property<bool>("isActive");
b.Property<DateTime>("updated");
@@ -443,7 +530,10 @@ namespace tb320eva.Migrations
b.Property<int>("id");
b.Property<string>("achievement")
.HasMaxLength(8000);
.HasMaxLength(16000);
b.Property<string>("achievement_line1")
.HasMaxLength(16000);
b.Property<int?>("create_evaluation_detail_id");
@@ -518,12 +608,36 @@ namespace tb320eva.Migrations
b.ToTable("eva_evaluation_achievement_attach");
});
modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_achievement_detailEntity", b =>
{
b.Property<Guid>("id");
b.Property<string>("achievement_detail")
.HasMaxLength(16000);
b.Property<int?>("achievement_id");
b.Property<int?>("achievement_order");
b.Property<DateTime>("created");
b.Property<bool>("isActive");
b.Property<DateTime>("updated");
b.HasKey("id");
b.HasIndex("achievement_id");
b.ToTable("eva_evaluation_achievement_detail");
});
modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_behaviorEntity", b =>
{
b.Property<int>("id");
b.Property<string>("behavior")
.HasMaxLength(1000);
.HasMaxLength(16000);
b.Property<int?>("create_evaluation_detail_id");
@@ -707,6 +821,37 @@ namespace tb320eva.Migrations
b.ToTable("eva_level_score");
});
modelBuilder.Entity("TodoAPI2.Models.eva_level_score_detailEntity", b =>
{
b.Property<Guid>("id");
b.Property<DateTime>("created");
b.Property<Guid?>("group_guid");
b.Property<bool>("isActive");
b.Property<Guid?>("level_score_id");
b.Property<decimal?>("max_percentage");
b.Property<decimal?>("max_value");
b.Property<decimal?>("min_percentage");
b.Property<decimal?>("min_value");
b.Property<DateTime>("updated");
b.HasKey("id");
b.HasIndex("group_guid");
b.HasIndex("level_score_id");
b.ToTable("eva_level_score_detail");
});
modelBuilder.Entity("TodoAPI2.Models.eva_limit_frame_employeeEntity", b =>
{
b.Property<Guid>("id");
@@ -767,6 +912,9 @@ namespace tb320eva.Migrations
b.Property<string>("remark")
.HasMaxLength(4000);
b.Property<string>("remark2")
.HasMaxLength(4000);
b.Property<decimal?>("total_salary");
b.Property<decimal?>("total_salary_limit");
@@ -838,12 +986,19 @@ namespace tb320eva.Migrations
b.Property<DateTime>("created");
b.Property<DateTime?>("end_leave");
b.Property<int?>("fiscal_year");
b.Property<bool>("isActive");
b.Property<decimal?>("percent");
b.Property<string>("remark")
.HasMaxLength(500);
b.Property<DateTime?>("start_leave");
b.Property<int?>("theTime");
b.Property<DateTime>("updated");
@@ -937,6 +1092,8 @@ namespace tb320eva.Migrations
b.Property<int?>("position_type");
b.Property<decimal?>("salary_max");
b.Property<decimal?>("temporary_min");
b.Property<decimal?>("themax");
@@ -950,6 +1107,26 @@ namespace tb320eva.Migrations
b.ToTable("eva_salary_cylinder");
});
modelBuilder.Entity("TodoAPI2.Models.eva_setup_permissionEntity", b =>
{
b.Property<Guid>("id");
b.Property<DateTime>("created");
b.Property<int?>("employee_id");
b.Property<bool>("isActive");
b.Property<string>("remark")
.HasMaxLength(4000);
b.Property<DateTime>("updated");
b.HasKey("id");
b.ToTable("eva_setup_permission");
});
modelBuilder.Entity("TodoAPI2.Models.eva_adjust_postponementEntity", b =>
{
b.HasOne("TodoAPI2.Models.eva_create_evaluationEntity", "eva_create_evaluation")
@@ -1008,6 +1185,13 @@ namespace tb320eva.Migrations
.HasForeignKey("achievement_id");
});
modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_achievement_detailEntity", b =>
{
b.HasOne("TodoAPI2.Models.eva_evaluation_achievementEntity", "eva_evaluation_achievement")
.WithMany()
.HasForeignKey("achievement_id");
});
modelBuilder.Entity("TodoAPI2.Models.eva_evaluation_behaviorEntity", b =>
{
b.HasOne("TodoAPI2.Models.eva_create_evaluation_detailEntity", "eva_create_evaluation_detail")
@@ -1029,6 +1213,17 @@ namespace tb320eva.Migrations
.HasForeignKey("create_evaluation_detail_id");
});
modelBuilder.Entity("TodoAPI2.Models.eva_level_score_detailEntity", b =>
{
b.HasOne("TodoAPI2.Models.eva_evaluation_groupEntity", "eva_evaluation_group_group_guid")
.WithMany()
.HasForeignKey("group_guid");
b.HasOne("TodoAPI2.Models.eva_level_scoreEntity", "eva_level_score_level_score_id")
.WithMany()
.HasForeignKey("level_score_id");
});
modelBuilder.Entity("TodoAPI2.Models.eva_limit_frame_employeeEntity", b =>
{
b.HasOne("TodoAPI2.Models.eva_limit_frame_groupEntity", "eva_limit_frame_group_frame_group_guid")

View File

@@ -20,7 +20,7 @@ namespace TodoAPI2.Models
[MaxLength(191)]
public string log_name { get; set; }
[MaxLength(4000)]
[MaxLength(32000)]
public string description { get; set; }
public int? subject_id { get; set; }
@@ -33,7 +33,7 @@ namespace TodoAPI2.Models
[MaxLength(191)]
public string causer_type { get; set; }
[MaxLength(8000)]
[MaxLength(32000)]
public string properties { get; set; }
[MaxLength(191)]

View File

@@ -58,5 +58,33 @@ namespace TodoAPI2.Models
public string report_type { get; set; }
public DateTime? imported_date { get; set; }
[MaxLength(5)]
public string postponement_status { get; set; }
public DateTime? postponement_status_date { get; set; }
[MaxLength(255)]
public int? postponement_status_by { get; set; }
[MaxLength(1000)]
public string postponement_status_note { get; set; }
[MaxLength(5)]
public string quota_status { get; set; }
public DateTime? quota_status_date { get; set; }
[MaxLength(255)]
public int? quota_status_by { get; set; }
[MaxLength(1000)]
public string quota_status_note { get; set; }
public int? quota_status_submit_to { get; set; }
[MaxLength(5)]
public string quota_final_status { get; set; }
public DateTime? quota_final_status_date { get; set; }
[MaxLength(255)]
public int? quota_final_status_by { get; set; }
[MaxLength(1000)]
public string quota_final_status_note { get; set; }
}
}

View File

@@ -81,6 +81,12 @@ namespace TodoAPI2.Models
public string employee_no_at_this_time { get; set; }
public bool? is_for_postponement { get; set; }
public decimal? reward_old { get; set; }
public decimal? reward_new { get; set; }
public decimal? reward_new2 { get; set; }
}
}

View File

@@ -48,6 +48,10 @@ namespace TodoAPI2.Models
public string eva_result { get; set; }
public decimal? reward_old { get; set; }
public decimal? reward_new { get; set; }
public string active_mode { get; set; }
}
}

View File

@@ -141,9 +141,15 @@ namespace TodoAPI2.Models
adjust_postponement_id_eva_adjust_postponement_fiscal_year = fk_eva_adjust_postponementResult1.fiscal_year,
employee_id_external_linkage_external_name = fk_external_linkageResult2.fullname,
reward_old = m_eva_adjust_postponement_detail_normal.reward_old,
reward_new = m_eva_adjust_postponement_detail_normal.reward_new,
isActive = m_eva_adjust_postponement_detail_normal.isActive,
Created = m_eva_adjust_postponement_detail_normal.created,
Updated = m_eva_adjust_postponement_detail_normal.updated
Updated = m_eva_adjust_postponement_detail_normal.updated,
salary_max = fk_external_linkageResult2.salary_max,
themax = fk_external_linkageResult2.themax
}
).ToList();
@@ -203,6 +209,8 @@ namespace TodoAPI2.Models
//existingEntity.emp_level = model.emp_level;
//existingEntity.total_score = model.total_score;
//existingEntity.eva_result = model.eva_result;
existingEntity.reward_old = model.reward_old;
existingEntity.reward_new = model.reward_new;
var updated = _repository.Update(id, existingEntity);
@@ -252,11 +260,6 @@ namespace TodoAPI2.Models
if (theemp == null) continue;
if (theemp.fullname.Contains("อุบลวรรณ"))
{
string zz = "1";
}
var n = new eva_adjust_postponement_detailEntity();
n.id = newkey;
newkey++;
@@ -467,6 +470,8 @@ namespace TodoAPI2.Models
//existingEntity.emp_level = i.emp_level;
//existingEntity.total_score = i.total_score;
//existingEntity.eva_result = i.eva_result;
existingEntity.reward_old = i.reward_old;
existingEntity.reward_new = i.reward_new;
_repository.UpdateWithoutCommit(i.id.Value, existingEntity);

View File

@@ -50,8 +50,14 @@ namespace TodoAPI2.Models
public string eva_result { get; set; }
public decimal? reward_old { get; set; }
public decimal? reward_new { get; set; }
public int? adjust_postponement_id_eva_adjust_postponement_fiscal_year { get; set; }
public string employee_id_external_linkage_external_name { get; set; }
public decimal? salary_max { get; set; }
public decimal? themax { get; set; }
}
}

View File

@@ -48,6 +48,10 @@ namespace TodoAPI2.Models
public string eva_result { get; set; }
public decimal? reward_old { get; set; }
public decimal? reward_new { get; set; }
public string active_mode { get; set; }

View File

@@ -78,8 +78,59 @@ namespace TodoAPI2.Models
return i;
}
private (decimal?, string) getData(eva_create_evaluation_detailEntity detail)
{
if (detail.status_supervisor2A == "Y")
{
return (detail.score_supervisor2A, detail.level_score_supervisor2A);
}
else if (detail.status_supervisor1A == "Y")
{
return (detail.score_supervisor1A, detail.level_score_supervisor1A);
}
else if (detail.status_supervisor == "Y")
{
return (detail.score_supervisor, detail.level_score_supervisor);
}
else if (detail.status_chief == "Y")
{
return (detail.score_chief, detail.level_score_chief);
}
else
{
return (detail.score_chief, detail.level_score_chief);
}
}
private void ReloadPostponement(int? adjust_postponement_id)
{
var rawData = from i in _repository.Context.eva_adjust_postponement_detail
where i.adjust_postponement_id == adjust_postponement_id
select i;
var baseScore = from i in _repository.Context.eva_adjust_postponement_detail
join j in _repository.Context.eva_adjust_postponement on i.adjust_postponement_id equals j.id
join k in _repository.Context.eva_create_evaluation on j.create_evaluation_id equals k.id
join m in _repository.Context.eva_create_evaluation_detail on k.id equals m.create_evaluation_id
where i.adjust_postponement_id == adjust_postponement_id
&& m.employee_id == i.employee_id
select m;
foreach (var x in rawData)
{
var y = (from i in baseScore
where i.employee_id == x.employee_id
select getData(i)).FirstOrDefault();
x.level_score_final = y.Item2;
x.score_final = y.Item1;
}
_repository.Context.SaveChanges();
}
public List<eva_adjust_postponement_detail_normal_02ViewModel> GetListByadjust_postponement_id(int? adjust_postponement_id)
{
ReloadPostponement(adjust_postponement_id);
var model = new eva_adjust_postponement_detail_normal_02SearchModel();
model.adjust_postponement_id = adjust_postponement_id;
return GetListBySearch(model);
@@ -98,8 +149,29 @@ namespace TodoAPI2.Models
return "";
}
private (decimal?, decimal?) GetRangePercentage(List<eva_level_score_detailEntity> level_detail, decimal? score)
{
/*var item = (from i in level_detail
where i.min_value <= score && i.max_value >= score
select i).FirstOrDefault();
if (item != null)
{
return (item.min_percentage, item.max_percentage);
}*/
return (-100, 100);
}
public List<eva_adjust_postponement_detail_normal_02ViewModel> GetListBySearch(eva_adjust_postponement_detail_normal_02SearchModel model)
{
var theGroup = (from i in _repository.Context.eva_adjust_postponement
join j in _repository.Context.eva_create_evaluation on i.create_evaluation_id equals j.id
where i.id == model.adjust_postponement_id
select j.evaluation_group_id).FirstOrDefault();
var level_detail = (from i in _repository.Context.eva_level_score_detail
where i.group_guid == theGroup
select i).ToList();
var all_emp = emp.GetListByemployee_type(null, null);
var endDate = (from m_eva_adjust_postponement_detail_normal_02 in _repository.Context.eva_adjust_postponement_detail
@@ -108,10 +180,10 @@ namespace TodoAPI2.Models
into eva_adjust_postponementResult1
from fk_eva_adjust_postponementResult1 in eva_adjust_postponementResult1.DefaultIfEmpty()
//join create_detail in _repository.Context.eva_create_evaluation_detail
// on fk_eva_adjust_postponementResult1.create_evaluation_id equals create_detail.create_evaluation_id
// into create_detailResult
//from fk_create_detailResult in create_detailResult.DefaultIfEmpty()
//join create_detail in _repository.Context.eva_create_evaluation_detail
// on fk_eva_adjust_postponementResult1.create_evaluation_id equals create_detail.create_evaluation_id
// into create_detailResult
//from fk_create_detailResult in create_detailResult.DefaultIfEmpty()
join create_data in _repository.Context.eva_create_evaluation
on fk_eva_adjust_postponementResult1.create_evaluation_id equals create_data.id
@@ -154,7 +226,8 @@ namespace TodoAPI2.Models
&& (m_eva_adjust_postponement_detail_normal_02.adjust_postponement_id == model.adjust_postponement_id || !model.adjust_postponement_id.HasValue)
//&& fk_create_detailResult.employee_id == m_eva_adjust_postponement_detail_normal_02.employee_id
//&& (m_eva_adjust_postponement_detail_normal_02.is_for_postponement == null?true: m_eva_adjust_postponement_detail_normal_02.is_for_postponement.Value)
&& fk_external_linkageResult2.workingstatus == "สถานะปฏิบัติงาน"
&& fk_external_linkageResult2.workingstatus != "คณะกรรมการเนติบัณฑิตยสภา"
orderby
fk_sort_depResult2.external_code,
@@ -200,6 +273,12 @@ namespace TodoAPI2.Models
startDate = fk_external_linkageResult2.packing_date,
endDate = endDate,
salary_max = fk_external_linkageResult2.salary_max,
themax = fk_external_linkageResult2.themax,
min_percentage = GetRangePercentage(level_detail, m_eva_adjust_postponement_detail_normal_02.migration_total_score.HasValue ? m_eva_adjust_postponement_detail_normal_02.migration_total_score : m_eva_adjust_postponement_detail_normal_02.score_final).Item1,
max_percentage = GetRangePercentage(level_detail, m_eva_adjust_postponement_detail_normal_02.migration_total_score.HasValue ? m_eva_adjust_postponement_detail_normal_02.migration_total_score : m_eva_adjust_postponement_detail_normal_02.score_final).Item2,
isActive = m_eva_adjust_postponement_detail_normal_02.isActive,
Created = m_eva_adjust_postponement_detail_normal_02.created,
Updated = m_eva_adjust_postponement_detail_normal_02.updated
@@ -262,7 +341,8 @@ namespace TodoAPI2.Models
//existingEntity.emp_level = model.emp_level;
//existingEntity.total_score = model.total_score;
//existingEntity.eva_result = model.eva_result;
existingEntity.reward_old = model.reward_old;
existingEntity.reward_new = model.reward_new;
var updated = _repository.Update(id, existingEntity);
return Get(updated.id);
@@ -296,7 +376,8 @@ namespace TodoAPI2.Models
//existingEntity.emp_level = i.emp_level;
//existingEntity.total_score = i.total_score;
//existingEntity.eva_result = i.eva_result;
existingEntity.reward_old = i.reward_old;
existingEntity.reward_new = i.reward_new;
_repository.UpdateWithoutCommit(i.id.Value, existingEntity);
}

View File

@@ -60,5 +60,16 @@ namespace TodoAPI2.Models
public DateTime? startDate { get; set; }
public DateTime? endDate { get; set; }
public decimal? salary_max { get; set; }
public decimal? themax { get; set; }
public decimal? reward_old { get; set; }
public decimal? reward_new { get; set; }
public decimal? min_percentage { get; set; }
public decimal? max_percentage { get; set; }
}
}

View File

@@ -52,6 +52,10 @@ namespace TodoAPI2.Models
public string eva_result { get; set; }
public decimal? reward_old { get; set; }
public decimal? reward_new2 { get; set; }
public string active_mode { get; set; }
}
}

View File

@@ -20,16 +20,16 @@ namespace TodoAPI2.Models
public class eva_adjust_postponement_detail_quota_02Service : Ieva_adjust_postponement_detail_quota_02Service
{
private IBaseRepository2<eva_adjust_postponement_detailEntity, int> _repository;
private IMyDatabase db;
private Iexternal_linkageService ext;
private IMyDatabase db;
private Iexternal_linkageService ext;
private Iexternal_employeeService emp;
public eva_adjust_postponement_detail_quota_02Service(IBaseRepository2<eva_adjust_postponement_detailEntity, int> repository,
public eva_adjust_postponement_detail_quota_02Service(IBaseRepository2<eva_adjust_postponement_detailEntity, int> repository,
IMyDatabase mydb, Iexternal_linkageService inext, Iexternal_employeeService inemp)
{
_repository = repository;
db = mydb;
ext = inext;
db = mydb;
ext = inext;
emp = inemp;
}
@@ -50,7 +50,7 @@ namespace TodoAPI2.Models
{
return Mapper.Map<List<eva_adjust_postponement_detail_quota_02ViewModel>>(entities);
}
#endregion
#region Public Functions
@@ -78,15 +78,66 @@ namespace TodoAPI2.Models
return i;
}
private (decimal?, string) getData(eva_create_evaluation_detailEntity detail)
{
if (detail.status_supervisor2A == "Y")
{
return (detail.score_supervisor2A, detail.level_score_supervisor2A);
}
else if (detail.status_supervisor1A == "Y")
{
return (detail.score_supervisor1A, detail.level_score_supervisor1A);
}
else if (detail.status_supervisor == "Y")
{
return (detail.score_supervisor, detail.level_score_supervisor);
}
else if (detail.status_chief == "Y")
{
return (detail.score_chief, detail.level_score_chief);
}
else
{
return (detail.score_chief, detail.level_score_chief);
}
}
private void ReloadPostponement(int? adjust_postponement_quota_id)
{
var rawData = from i in _repository.Context.eva_adjust_postponement_detail
where i.adjust_postponement_quota_id == adjust_postponement_quota_id
select i;
var baseScore = from i in _repository.Context.eva_adjust_postponement_detail
join j in _repository.Context.eva_adjust_postponement on i.adjust_postponement_id equals j.id
join k in _repository.Context.eva_create_evaluation on j.create_evaluation_id equals k.id
join m in _repository.Context.eva_create_evaluation_detail on k.id equals m.create_evaluation_id
where i.adjust_postponement_quota_id == adjust_postponement_quota_id
&& m.employee_id == i.employee_id
select m;
foreach (var x in rawData)
{
var y = (from i in baseScore
where i.employee_id == x.employee_id
select getData(i)).FirstOrDefault();
x.level_score_final = y.Item2;
x.score_final = y.Item1;
}
_repository.Context.SaveChanges();
}
public List<eva_adjust_postponement_detail_quota_02ViewModel> GetListByadjust_postponement_quota_id(int? adjust_postponement_quota_id)
{
var model = new eva_adjust_postponement_detail_quota_02SearchModel();
ReloadPostponement(adjust_postponement_quota_id);
var model = new eva_adjust_postponement_detail_quota_02SearchModel();
model.adjust_postponement_quota_id = adjust_postponement_quota_id;
return GetListBySearch(model);
}
public string GetWorkTimeText(DateTime? startDate, DateTime? endDate)
{
{
if (!endDate.HasValue || !startDate.HasValue)
return "";
@@ -98,7 +149,7 @@ namespace TodoAPI2.Models
return "";
}
public List<eva_adjust_postponement_detail_quota_02ViewModel> GetListBySearch(eva_adjust_postponement_detail_quota_02SearchModel model)
public List<eva_adjust_postponement_detail_quota_02ViewModel> GetListBySearch(eva_adjust_postponement_detail_quota_02SearchModel model)
{
var all_emp = emp.GetListByemployee_type(null, null);
@@ -112,10 +163,10 @@ namespace TodoAPI2.Models
into eva_adjust_postponementResult1A
from fk_eva_adjust_postponementResult1A in eva_adjust_postponementResult1A.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
//from fk_create_detailResult in create_detailResult.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
//from fk_create_detailResult in create_detailResult.DefaultIfEmpty()
join create_data in _repository.Context.eva_create_evaluation
on fk_eva_adjust_postponementResult1A.create_evaluation_id equals create_data.id
@@ -142,12 +193,12 @@ namespace TodoAPI2.Models
join fk_external_linkage2 in all_emp on m_eva_adjust_postponement_detail_quota_02.employee_id equals fk_external_linkage2.id
into external_linkageResult2
from fk_external_linkageResult2 in external_linkageResult2.DefaultIfEmpty()
from fk_external_linkageResult2 in external_linkageResult2.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
//from fk_create_detailResult in create_detailResult.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
//from fk_create_detailResult in create_detailResult.DefaultIfEmpty()
join sort_dep in ext.GetSortingDep() on m_eva_adjust_postponement_detail_quota_02.org_at_this_time.HasValue ? m_eva_adjust_postponement_detail_quota_02.org_at_this_time : fk_external_linkageResult2.department_id equals sort_dep.id
into sort_depResult2
@@ -162,13 +213,14 @@ namespace TodoAPI2.Models
into external_linkageResult11
from fk_external_linkageResult11 in sort_depResult2.DefaultIfEmpty()
where 1==1
where 1 == 1
//&& (m_eva_adjust_postponement_detail_quota_02.id == model.id || !model.id.HasValue)
&& (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)
//&& (m_eva_adjust_postponement_detail_quota_02.is_for_postponement == null ? true : m_eva_adjust_postponement_detail_quota_02.is_for_postponement.Value)
&& fk_external_linkageResult2.workingstatus == "สถานะปฏิบัติงาน"
&& fk_external_linkageResult2.workingstatus != "คณะกรรมการเนติบัณฑิตยสภา"
orderby
fk_sort_depResult2.external_code,
@@ -203,7 +255,7 @@ namespace TodoAPI2.Models
emp_department_name = !string.IsNullOrEmpty(fk_external_linkageResult11.external_name) ? fk_external_linkageResult11.external_name : fk_sort_depResult2.external_name,
total_score = m_eva_adjust_postponement_detail_quota_02.migration_total_score.HasValue? m_eva_adjust_postponement_detail_quota_02.migration_total_score : m_eva_adjust_postponement_detail_quota_02.score_final,
total_score = m_eva_adjust_postponement_detail_quota_02.migration_total_score.HasValue ? m_eva_adjust_postponement_detail_quota_02.migration_total_score : m_eva_adjust_postponement_detail_quota_02.score_final,
eva_result = !string.IsNullOrEmpty(m_eva_adjust_postponement_detail_quota_02.migration_eva_result) ? m_eva_adjust_postponement_detail_quota_02.migration_eva_result : m_eva_adjust_postponement_detail_quota_02.level_score_final,
adjust_postponement_quota_id_eva_adjust_postponement_fiscal_year = fk_eva_adjust_postponementResult1.fiscal_year,
@@ -213,9 +265,16 @@ namespace TodoAPI2.Models
startDate = fk_external_linkageResult2.packing_date,
endDate = endDate,
reward_old = m_eva_adjust_postponement_detail_quota_02.reward_old,
reward_new2 = m_eva_adjust_postponement_detail_quota_02.reward_new2,
salary_max = fk_external_linkageResult2.salary_max,
themax = fk_external_linkageResult2.themax,
isActive = m_eva_adjust_postponement_detail_quota_02.isActive,
Created = m_eva_adjust_postponement_detail_quota_02.created,
Updated = m_eva_adjust_postponement_detail_quota_02.updated
}
).ToList();
@@ -231,10 +290,10 @@ namespace TodoAPI2.Models
int? newkey = 0;
var x = (from i in _repository.Context.eva_adjust_postponement_detail
orderby i.id descending
select i).Take(1).ToList();
orderby i.id descending
select i).Take(1).ToList();
if(x.Count > 0)
if (x.Count > 0)
{
newkey = x[0].id + 1;
}
@@ -250,7 +309,7 @@ namespace TodoAPI2.Models
var inserted = _repository.Insert(entity);
return Get(inserted.id);
}
@@ -277,44 +336,46 @@ namespace TodoAPI2.Models
//existingEntity.emp_level = model.emp_level;
//existingEntity.total_score = model.total_score;
//existingEntity.eva_result = model.eva_result;
existingEntity.reward_old = model.reward_old;
existingEntity.reward_new2 = model.reward_new2;
var updated = _repository.Update(id, existingEntity);
return Get(updated.id);
}
else
throw new NotificationException("No data to update");
throw new NotificationException("No data to update");
}
public string UpdateMultiple(List<eva_adjust_postponement_detail_quota_02InputModel> model)
public string UpdateMultiple(List<eva_adjust_postponement_detail_quota_02InputModel> model)
{
foreach(var i in model)
foreach (var i in model)
{
if (i.active_mode == "1" && i.id.HasValue) // update
{
{
var existingEntity = _repository.Get(i.id.Value);
if (existingEntity != null)
{
//existingEntity.adjust_postponement_quota_id = i.adjust_postponement_quota_id;
//existingEntity.employee_id = i.employee_id;
//existingEntity.sarary = i.sarary;
//existingEntity.cost_living = i.cost_living;
//existingEntity.middle = i.middle;
//existingEntity.promoted_percentage = i.promoted_percentage;
//existingEntity.total_promote = i.total_promote;
//existingEntity.new_sarary = i.new_sarary;
//existingEntity.new_cost_living = i.new_cost_living;
existingEntity.remark = i.remark;
existingEntity.receive_quota = i.receive_quota;
existingEntity.new_sarary_with_quota = i.new_sarary_with_quota;
//existingEntity.emp_code = i.emp_code;
//existingEntity.emp_fullname = i.emp_fullname;
//existingEntity.emp_position = i.emp_position;
//existingEntity.emp_level = i.emp_level;
//existingEntity.total_score = i.total_score;
//existingEntity.eva_result = i.eva_result;
//existingEntity.adjust_postponement_quota_id = i.adjust_postponement_quota_id;
//existingEntity.employee_id = i.employee_id;
//existingEntity.sarary = i.sarary;
//existingEntity.cost_living = i.cost_living;
//existingEntity.middle = i.middle;
//existingEntity.promoted_percentage = i.promoted_percentage;
//existingEntity.total_promote = i.total_promote;
//existingEntity.new_sarary = i.new_sarary;
//existingEntity.new_cost_living = i.new_cost_living;
existingEntity.remark = i.remark;
existingEntity.receive_quota = i.receive_quota;
existingEntity.new_sarary_with_quota = i.new_sarary_with_quota;
//existingEntity.emp_code = i.emp_code;
//existingEntity.emp_fullname = i.emp_fullname;
//existingEntity.emp_position = i.emp_position;
//existingEntity.emp_level = i.emp_level;
//existingEntity.total_score = i.total_score;
//existingEntity.eva_result = i.eva_result;
existingEntity.reward_old = i.reward_old;
existingEntity.reward_new2 = i.reward_new2;
_repository.UpdateWithoutCommit(i.id.Value, existingEntity);
}
@@ -326,15 +387,15 @@ namespace TodoAPI2.Models
_repository.InsertWithoutCommit(entity);
}
else if (i.active_mode == "0" && i.id.HasValue) // remove
{
{
_repository.DeleteWithoutCommit(i.id.Value);
}
else if (i.active_mode == "0" && !i.id.HasValue)
{
// nothing to do
}
}
}
//_repository.Context.SaveChanges();
//_repository.Context.SaveChanges();
return model.Count().ToString();
}

View File

@@ -60,5 +60,13 @@ namespace TodoAPI2.Models
public DateTime? startDate { get; set; }
public DateTime? endDate { get; set; }
public decimal? reward_old { get; set; }
public decimal? reward_new2 { get; set; }
public decimal? salary_max { get; set; }
public decimal? themax { get; set; }
}
}

Some files were not shown because too many files have changed in this diff Show More