using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Linq; using System.Reflection; using System.Threading.Tasks; using HRM.BO; using HRM.BO.Report; using HRM.DA; using Microsoft.AspNetCore.Authorization; using System.IO; using HRM.BO.Configuration; using iTextSharp.text; using Microsoft.Extensions.Options; using NPOI.POIFS.Storage; using Ease.Core; using static iTextSharp.text.pdf.AcroFields; using HRM.Service; namespace HRM.UI.Controllers.Leave { [Route("api/Leave")] [ApiController] public class LeaveController : ControllerBase { private readonly IEmployeeShortLeaveService _employeeShortLeaveService; private readonly ILeaveService _leaveService; private readonly ILeaveEntryService _leaveEntryService; private readonly ILeaveExceptionService _leaveExceptionService; private readonly ILeaveParameterService _leaveParameterService; private readonly ILeavePlanService _leavePlanService; private readonly ILeaveProcessService _leaveProcessService; private readonly ILeaveYearService _leaveYearService; private readonly IUploadEncashAmountService _uploadEncashAmountService; private readonly IDepartmentService _departmentService; private readonly IDesignationService _designationService; private readonly IWeeklyHolidayService _weeklyHoliday; private readonly IOptions<EmailSettings> _emailSettings; private readonly ILeaveEncashmentService _leaveEncashmentService; private readonly IEmployeeService _employeeService; private readonly IShortLeaveService _shortLeaveService; private readonly IMaternityLeaveService _maternityLeaveService; public LeaveController(IEmployeeShortLeaveService employeeShortLeaveService, ILeaveService leaveService, ILeaveEntryService leaveEntryService, ILeaveExceptionService leaveExceptionService, ILeaveParameterService leaveParameterService, ILeavePlanService leavePlanService, ILeaveProcessService leaveProcessService, ILeaveYearService leaveYearService, IUploadEncashAmountService uploadEncashAmountService, IDepartmentService departmentService, IDesignationService designationService, IWeeklyHolidayService weeklyHoliday, IOptions<EmailSettings> emailSettings, ILeaveEncashmentService leaveEncashmentService, IEmployeeService employeeService, IShortLeaveService shortLeaveService, IMaternityLeaveService maternityLeaveService) { this._employeeShortLeaveService = employeeShortLeaveService; this._leaveService = leaveService; this._leaveEntryService = leaveEntryService; this._leaveExceptionService = leaveExceptionService; this._leaveParameterService = leaveParameterService; this._leavePlanService = leavePlanService; this._leaveProcessService = leaveProcessService; this._leaveYearService = leaveYearService; this._uploadEncashAmountService = uploadEncashAmountService; this._departmentService = departmentService; this._designationService = designationService; this._weeklyHoliday = weeklyHoliday; this._emailSettings = emailSettings; _leaveEncashmentService = leaveEncashmentService; _employeeService = employeeService; this._shortLeaveService = shortLeaveService; this._maternityLeaveService = maternityLeaveService; } // EmployeeShortLeave [HttpGet("getWeeklyHoliday")] public ActionResult getWeeklyHoliday() { List<WeeklyHoliday> item = new List<WeeklyHoliday>(); try { item = _weeklyHoliday.Get(EnumStatus.Regardless); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpGet("getWeeklyHolidayByID/{ID}")] public ActionResult getWeeklyHolidayByID(int id) { WeeklyHoliday item = new WeeklyHoliday(); try { item = _weeklyHoliday.Get(id); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpGet("getWeeklyHolidayByLocation/{ID}")] public ActionResult getWeeklyHolidayByLocation(int locationID) { List<WeeklyHoliday> item = new List<WeeklyHoliday>(); try { item = _weeklyHoliday.GetByLocation(locationID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpPost("SaveWeeklyHoliday")] public ActionResult SaveWeeklyHoliday(List<WeeklyHoliday> holidays) { try { _weeklyHoliday.Save(holidays); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(true); } [HttpPost("DeleteWeeklyHoliday")] public ActionResult DeleteWeeklyHoliday(WeeklyHoliday item) { try { _weeklyHoliday.Delete(item.ID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(true); } [HttpGet("getEmployeeShortLeave")] public ActionResult GetEmployeeShortLeave() { EmployeeShortLeave item = new EmployeeShortLeave(); try { item = _employeeShortLeaveService.Get(); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpGet("getEmployeeShortLeaveById/{id}")] public ActionResult GetEmployeeShortLeaveById(int id) { EmployeeShortLeave item = new EmployeeShortLeave(); try { item = _employeeShortLeaveService.Get(id); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpGet("getEmployeeShortLeaveByType/{type}")] public ActionResult GetEmployeeShortLeaveByType(int type) { EmployeeShortLeave item = new EmployeeShortLeave(); try { item = _employeeShortLeaveService.GetByType(type); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpGet("getEmployeeShortLeaveByEmpId/{employeeId}")] public ActionResult GetEmployeeShortLeaveByEmpId(int employeeId) { EmployeeShortLeave item = new EmployeeShortLeave(); try { item = _employeeShortLeaveService.GetByEmpID(employeeId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpGet("getEmployeeShortLeaveByEmp/{employeeId}")] public ActionResult GetEmployeeShortLeaveByEmp(int employeeId) { List<EmployeeShortLeave> items = new List<EmployeeShortLeave>(); try { items = _employeeShortLeaveService.GetByEmp(employeeId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } [HttpPost] [Route("saveEmployeeShortLeave")] public ActionResult SaveEmployeeShortLeave(EmployeeShortLeave item) { try { _employeeShortLeaveService.Save(item); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost] [Route("deleteEmployeeShortLeave")] public ActionResult DeleteEmployeeShortLeave(int id) { try { _employeeShortLeaveService.Delete(id); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } // Leave [HttpGet("getLeaveById/{id}")] public ActionResult GetLeaveById(int id) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); BO.Leave item = new BO.Leave(); try { item = _leaveService.Get(id); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } //[HttpGet("getLeaveIdByName/{leave}")] //public ActionResult GetLeaveIdByName(string leave) //{ // CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); // int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault(); // BO.Leave item = new BO.Leave(); // try // { // item = _leaveService.GetIDByName(leave, payrollTypeId); // } // catch (Exception e) // { // return StatusCode(StatusCodes.Status500InternalServerError, e.Message); // } // return Ok(item); //} //[HttpGet("getLeaveIdByCode/{leave}")] //public ActionResult GetLeaveIdByCode(string leave) //{ // CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); // int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault(); // BO.Leave item = new BO.Leave(); // try // { // item = _leaveService.GetIDByCode(leave, payrollTypeId); // } // catch (Exception e) // { // return StatusCode(StatusCodes.Status500InternalServerError, e.Message); // } // return Ok(item); //} //[HttpGet("getLeaveListByInParamId/{inParamId}")] //public ActionResult GetLeaveListByInParamId(string inParamId) //{ // CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); // int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault(); // List<BO.Leave> item = new List<BO.Leave>(); // try // { // item = _leaveService.Get(inParamId, payrollTypeId); // } // catch (Exception e) // { // return StatusCode(StatusCodes.Status500InternalServerError, e.Message); // } // return Ok(item); //} [HttpGet("getAllLeave/{status}/{code}/{name}")] public ActionResult getAllLeave(EnumStatus status, string code, string name) { code = GlobalFunctions.GetApiDefaultData(code); name = GlobalFunctions.GetApiDefaultData(name); CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault(); List<BO.Leave> item = new List<BO.Leave>(); try { item = _leaveService.Get(status, code, name, payrollTypeId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpGet("getEmpApplicableLeave/{employeeid}")] public ActionResult getEmpApplicableLeave(int employeeid) { List<BO.Leave> item = new List<BO.Leave>(); try { item = _leaveService.getEmpApplicableLeave(employeeid); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } //[HttpGet("getLeaves")] //public ActionResult GetLeaves() //{ // CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); // int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault(); // List<BO.Leave> item = new List<BO.Leave>(); // try // { // item = _leaveService.Get(EnumStatus.Regardless, payrollTypeId); // } // catch (Exception e) // { // return StatusCode(StatusCodes.Status500InternalServerError, e.Message); // } // return Ok(item); //} //[HttpGet("getStringValue")] //public ActionResult GetStringValue(DateTime fromDate, DateTime toDate) //{ // string ans; // try // { // ans = _leaveService.Get(fromDate, toDate); // } // catch (Exception e) // { // return StatusCode(StatusCodes.Status500InternalServerError, e.Message); // } // return Ok(ans); //} [HttpPost] [Route("saveLeave")] public ActionResult SaveLeave(BO.Leave item) { try { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault(); if (item.IsNew) { item.CreatedBy = currentUser.UserID; item.CreatedDate = DateTime.Today; item.PayrollTypeID = payrollTypeId; } else { item.ModifiedBy = currentUser.UserID; item.ModifiedDate = DateTime.Today; } _leaveService.Save(item); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost] [Route("deleteLeave")] public ActionResult DeleteLeave(BO.Leave item) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault(); try { _leaveService.Delete(item.ID, payrollTypeId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } // LeaveEntry [HttpGet("getAllLeaveEntry")] public ActionResult GetAllLeaveEntry() { List<LeaveEntry> items = new List<LeaveEntry>(); try { items = _leaveEntryService.GetAll(); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } [HttpGet("getLeaveEntry/{id}")] public ActionResult getLeaveEntry(int id) { LeaveEntry item = new LeaveEntry(); try { item = _leaveEntryService.Get(id); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpGet("isLeaveEntryEntered/{year}")] public ActionResult IsLeaveEntryEntered(DateTime year) { bool ans; try { ans = _leaveEntryService.IsEntered(year); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(ans); } //[HttpGet("getEmployeeWiseLeaveDetailReport/{empId}/{fromDate}/{toDate}/{leaveType}")] //public ActionResult GetEmployeeWiseLeaveDetailReport(int empId, DateTime fromDate, DateTime toDate, int leaveType) //{ // List<LeaveEntry> items = new List<LeaveEntry>(); // try // { // items = _leaveEntryService.GetEmployeeWiseLeaveDetailReport(empId, fromDate, toDate, leaveType); // } // catch (Exception e) // { // return StatusCode(StatusCodes.Status500InternalServerError, e.Message); // } // return Ok(items); //} //[HttpGet("getByLeaveYear/{leaveType}")] //public ActionResult GetByLeaveYear(int leaveType) //{ // List<LeaveEntry> items = new List<LeaveEntry>(); // try // { // items = _leaveEntryService.GetByLeaveYear(leaveType); // } // catch (Exception e) // { // return StatusCode(StatusCodes.Status500InternalServerError, e.Message); // } // return Ok(items); //} // getLeaveEntries(empId?: number, empids?: string, leaveID?: number, fromDate?: Date, //toDate?: Date, leavestatus?: EnumLeaveStatus, isLFA?: boolean) [HttpGet("getLeaveEntries/{empids}/{empId}/{leaveYearid}/{leaveID}/{fromDate}/{toDate}/{leavestatus}/{isLFA}")] public ActionResult GetLeaveEntryByEmpId(string EmpIds, string empId, string leaveYearid, string leaveid, string fromDate, string toDate, string leaveStatus, string isLfa) { string cEmpIds = GlobalFunctions.GetApiDefaultData(EmpIds); var cempId = GlobalFunctions.GetApiDefaultIntData(empId); var cleaveYearid = GlobalFunctions.GetApiDefaultIntData(leaveYearid); var cleaveid = GlobalFunctions.GetApiDefaultIntData(leaveid); var cfromDate = GlobalFunctions.GetApiDefaultDateData(fromDate); var ctoDate = GlobalFunctions.GetApiDefaultDateData(toDate); EnumLeaveStatus? cleaveStatus = null; if (leaveStatus.ToLower() != "undefined" && leaveStatus.ToLower() != "null" && leaveStatus.ToLower() != string.Empty) { cleaveStatus = (EnumLeaveStatus)GlobalFunctions.GetApiDefaultIntData(leaveStatus); } List<LeaveEntry> items = new List<LeaveEntry>(); try { items = _leaveEntryService.Get(cEmpIds, cempId, cleaveYearid, cleaveid, cfromDate, ctoDate, cleaveStatus, false); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } //[HttpGet("getLeaveEntryByDateRange/{fromDate}/{toDate}/{leaveStatus}")] //public ActionResult GetLeaveEntryByDateRange(DateTime fromDate, DateTime toDate, EnumLeaveStatus leaveStatus) //{ // List<LeaveEntry> items = new List<LeaveEntry>(); // try // { // items = _leaveEntryService.Get(fromDate, toDate, leaveStatus); // } // catch (Exception e) // { // return StatusCode(StatusCodes.Status500InternalServerError, e.Message); // } // return Ok(items); //} //[HttpGet("getLeaveEntryByAttnDate/{attnDate}")] //public ActionResult GetLeaveEntryByAttnDate(DateTime attnDate) //{ // List<LeaveEntry> items = new List<LeaveEntry>(); // try // { // items = _leaveEntryService.Get(attnDate); // } // catch (Exception e) // { // return StatusCode(StatusCodes.Status500InternalServerError, e.Message); // } // return Ok(items); //} //[HttpGet("getLeaveEntryByEmpIdAndDateRange/{empId}/{fromDate}/{toDate}/{leaveStatus}")] //public ActionResult GetLeaveEntryByEmpIdAndDateRange(string empId, DateTime fromDate, DateTime toDate, EnumLeaveStatus leaveStatus) //{ // List<LeaveEntry> items = new List<LeaveEntry>(); // try // { // items = _leaveEntryService.Get(empId, fromDate, toDate, leaveStatus); // } // catch (Exception e) // { // return StatusCode(StatusCodes.Status500InternalServerError, e.Message); // } // return Ok(items); //} //[HttpGet("getLeaveEntryPending/{empId}/{leaveId}/{status}")] //public ActionResult GetLeaveEntryPending(int empId, int leaveId, EnumLeaveStatus leaveStatus) //{ // List<LeaveEntry> items = new List<LeaveEntry>(); // try // { // items = _leaveEntryService.GetPending(empId, leaveId, leaveStatus); // } // catch (Exception e) // { // return StatusCode(StatusCodes.Status500InternalServerError, e.Message); // } // return Ok(items); //} //[HttpGet("getLeaveEntryByEmpIdAndLeaveYearId/{empId}/{leaveYearId}")] //public ActionResult GetLeaveEntryByEmpIdAndLeaveYearId(int empId, int leaveYearId) //{ // List<LeaveEntry> items = new List<LeaveEntry>(); // try // { // items = _leaveEntryService.Get(empId, leaveYearId); // } // catch (Exception e) // { // return StatusCode(StatusCodes.Status500InternalServerError, e.Message); // } // return Ok(items); //} //[HttpGet("getByLeaveID/{leaveId}/{empId}/{fromDate}/{toDate}")] //public ActionResult GetByLeaveID(int leaveId, int empId, DateTime fromDate, DateTime toDate) //{ // List<LeaveEntry> items = new List<LeaveEntry>(); // try // { // items = _leaveEntryService.GetByLeaveID(leaveId, empId, fromDate, toDate); // } // catch (Exception e) // { // return StatusCode(StatusCodes.Status500InternalServerError, e.Message); // } // return Ok(items); //} [HttpGet("getEmployeeLeaveBalance/{empId}/{leaveYear}/{leaveType}")] public ActionResult GetEmployeeLeaveBalance(int empId, int leaveYear, int leaveType) { int ans; try { ans = _leaveEntryService.GetEmployeeLeaveBalance(empId, leaveYear, leaveType); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(ans); } //[HttpGet("getLeaveEntryByLeaveStatus/{empId}/{fromDate}/{toDate}/{leaveStatus}")] //public ActionResult GetLeaveEntryByLeaveStatus(string empId, DateTime fromDate, DateTime toDate, string leaveStatus) //{ // List<LeaveEntry> items = new List<LeaveEntry>(); // try // { // items = _leaveEntryService.Get(empId, fromDate, toDate, leaveStatus); // } // catch (Exception e) // { // return StatusCode(StatusCodes.Status500InternalServerError, e.Message); // } // return Ok(items); //} //[HttpGet("getLeaveEntryByLeaveStatusAndSortExpresion/{empId}/{fromDate}/{toDate}/{leaveStatus}/{sortExpresion}")] //public ActionResult GetLeaveEntryByLeaveStatusAndSortExpresion(string empId, DateTime fromDate, DateTime toDate, EnumLeaveStatus leaveStatus, string sortExpresion) //{ // List<LeaveEntry> items = new List<LeaveEntry>(); // try // { // items = _leaveEntryService.Get(empId, fromDate, toDate, leaveStatus, sortExpresion); // } // catch (Exception e) // { // return StatusCode(StatusCodes.Status500InternalServerError, e.Message); // } // return Ok(items); //} //[HttpGet("getForAdminPanel/{empId}")] //public ActionResult GetForAdminPanel(int empId) //{ // List<LeaveEntry> items = new List<LeaveEntry>(); // try // { // items = _leaveEntryService.GetForAdminPanel(empId); // } // catch (Exception e) // { // return StatusCode(StatusCodes.Status500InternalServerError, e.Message); // } // return Ok(items); //} [HttpGet("getLeaveAmtByType/{empId}/{leaveId}/{leaveYear}/{leaveStatus}")] public ActionResult GetLeaveAmtByType(int empId, int leaveId, int leaveYear, EnumLeaveStatus leaveStatus) { double ans; try { ans = _leaveEntryService.GetLeaveAmtByType(empId, leaveId, leaveYear, leaveStatus); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(ans); } [HttpGet("getAvailedLeave/{empId}/{leaveId}/{leaveYear}/{leaveStatus}")] public ActionResult GetAvailedLeave(int empId, int leaveId, int leaveYear, EnumLeaveStatus leaveStatus) { double ans; try { ans = _leaveEntryService.GetAvailedLeave(empId, leaveId, leaveYear, leaveStatus); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(ans); } [HttpGet("getSumOfAvailedLeaveByEmpId/{empId}/{leaveYear}")] public ActionResult GetSumOfAvailedLeaveByEmpId(int empId, int leaveYear) { List<LeaveEntry> items = new List<LeaveEntry>(); try { items = _leaveEntryService.GetSumOfAvailedLeave(empId, leaveYear); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } [HttpGet("getLeaveEntriesByEmpId/{empId}/{leaveYearId}")] public ActionResult GetLeaveEntriesByEmpId(int empId, int leaveYearId) { List<LeaveEntry> items = new List<LeaveEntry>(); try { items = _leaveEntryService.GetLeaveEntries(empId, leaveYearId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } // string empIds, int leaveYearId, EnumLeaveStatus leaveStatus [HttpPost("getLeaveEntriesByEmpIds")] public ActionResult GetLeaveEntriesByEmpIds(dynamic data) { var item = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); string empIds = (string)item["empIds"].ToObject<string>(); int leaveYearId = item["leaveYearId"].ToObject<int>(); var leaveStatus = (EnumLeaveStatus)item["leaveStatus"].ToObject<int>(); List<LeaveEntry> items = new List<LeaveEntry>(); try { items = _leaveEntryService.Get(empIds, leaveYearId, leaveStatus); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } [HttpGet("getSumOfAvailedLeave/{leaveYear}")] public ActionResult GetSumOfAvailedLeave(int leaveYear) { List<LeaveEntry> items = new List<LeaveEntry>(); try { items = _leaveEntryService.GetSumOfAvailedLeave(leaveYear); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } [HttpGet("getAmountOnFromDate/{empId}/{leaveYearId}/{leaveId}/{leaveStatus}/{startDate}/{endDate}")] public ActionResult GetAmountOnFromDate(int empId, int leaveYearId, int leaveID, EnumLeaveStatus leaveStatus, DateTime startDate, DateTime endDate) { double ans; try { ans = _leaveEntryService.GetAmountOnFromDate(empId, leaveYearId, leaveID, leaveStatus, startDate, endDate); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(ans); } [HttpGet("getTotalLeaveAmountInYear/{empId}/{leaveYearId}/{leaveId}/{leaveStatus}")] public ActionResult GetTotalLeaveAmountInYear(int empId, int leaveYearId, int leaveID, EnumLeaveStatus leaveStatus) { double ans; try { ans = _leaveEntryService.GetTotalLeaveAmountInYear(empId, leaveYearId, leaveID, leaveStatus); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(ans); } [HttpGet("getLFAOnMonth/{month}")] public ActionResult GetLFAOnMonth(DateTime month) { List<LeaveEntry> items = new List<LeaveEntry>(); try { items = _leaveEntryService.GetLFAOnMonth(month); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } [HttpPost] [Route("saveLeaveEntry")] public ActionResult SaveLeaveEntry(LeaveEntry item) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); if (item.IsNew == false) { item.ModifiedBy = currentUser.UserID; item.ModifiedDate = DateTime.Today; } else { item.CreatedBy = currentUser.UserID; item.CreatedDate = DateTime.Today; item.EntryDate = DateTime.Today; item.IsDrafted = 1; item.IsAvailed = 1; } int leaveentryid = 0; try { leaveentryid = _leaveEntryService.Save(item); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(leaveentryid); } [HttpPost] [Route("leaveApprove")] public ActionResult leaveApprove(WFMovementTran item) { try { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); item.FromEmployeeID = (int)currentUser.EmployeeID; _leaveEntryService.LeaveApplicationApprove(item); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost] [Route("leaveReject")] public ActionResult LeaveReject(WFMovementTran item) { try { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); item.FromEmployeeID = (int)currentUser.EmployeeID; _leaveEntryService.LeaveApplicationReject(item); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost] [Route("LeaveRevert")] public ActionResult LeaveRevert(WFMovementTran item) { try { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); item.FromEmployeeID = (int)currentUser.EmployeeID; _leaveEntryService.LeaveApplicationRevert(item); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost] [Route("saveLeaveEntryList")] public ActionResult SaveLeaveEntry(List<LeaveEntry> items) { try { _leaveEntryService.SaveLeaveEntry(items); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost] [Route("deleteLeaveEntryById")] public ActionResult DeleteLeaveEntryById(LeaveEntry entry) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); try { _leaveEntryService.Delete(entry.ID, (int) currentUser.UserID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost] [Route("deleteLeaveEntry")] public ActionResult DeleteLeaveEntry(LeaveEntry item) { try { _leaveEntryService.Delete(item); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost] [Route("deleteByLeaveYear")] public ActionResult DeleteByLeaveYear(int leaveYear) { int leaveId = 1; try { _leaveEntryService.DeleteByLeaveYear(leaveYear, leaveId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpGet("isLeaveEntryExist/{employee}/{fromDate}/{toDate}")] public ActionResult IsLeaveEntryExist(Employee employee, DateTime fromDate, DateTime toDate) { bool ans; try { ans = _leaveEntryService.IsExist(employee, fromDate, toDate); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(ans); } [HttpPost("uploadLeaveAttachment")] [AllowAnonymous] public ActionResult UploadLeaveAttachment() { LeaveAttachment item = new LeaveAttachment(); string base64String = ""; try { var fdata = Request.Form.Files["filedata"]; item.OriginalFileName = Request.Form["originalfilename"].ToString(); item.LeaveEntryID = Convert.ToInt32(Request.Form["leaveentryid"]); item.FileType = (EnumFileType)Convert.ToInt32(Request.Form["filetype"]); using (var ms = new MemoryStream()) { fdata.CopyTo(ms); item.FileAsByteArray = ms.ToArray(); byte[] textAsBytes = ms.ToArray(); new LeaveEntryService().UplaodFileInProfileUpdate(item); base64String = Convert.ToBase64String(textAsBytes); } } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(base64String); } [HttpGet("getLeaveAttachments/{leaveEntryId}")] public ActionResult GetEmployeeAttachments(int leaveEntryId) { List<LeaveAttachment> items = new List<LeaveAttachment>(); try { items = new LeaveEntryService().GetAllAttachmentsById(leaveEntryId); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(items); } [HttpGet("getAttachments/{leaveEntryId}")] public ActionResult GetAttachments(int leaveEntryId) { List<LeaveAttachment> items = new List<LeaveAttachment>(); try { items = _leaveEntryService.GetAttachments(leaveEntryId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } // LeaveException [HttpGet("getLeaveException")] public ActionResult GetLeaveException() { List<LeaveException> items = new List<LeaveException>(); try { items = _leaveExceptionService.Get(); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } [HttpGet("getLeaveExceptionByDateRange/{from}/{to}")] public ActionResult GetLeaveExceptionByDateRange(DateTime from, DateTime to) { List<LeaveException> items = new List<LeaveException>(); try { items = _leaveExceptionService.Get(from, to); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } [HttpGet("getLeaveExceptionByLeaveId/{leaveId}/{empId}")] public ActionResult GetLeaveExceptionByLeaveId(int leaveId, int empId) { List<LeaveException> items = new List<LeaveException>(); try { items = _leaveExceptionService.GetByEmpID(leaveId, empId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } [HttpPost] [Route("saveLeaveException")] public ActionResult SaveLeaveException(LeaveException item) { try { _leaveExceptionService.Save(item); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost] [Route("deleteLeaveExceptionByEmpId")] public ActionResult DeleteLeaveExceptionByEmpId(LeaveException item) { try { _leaveExceptionService.DeleteByEmpID(item.EmployeeID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost] [Route("deleteLeaveExceptionById")] public ActionResult DeleteLeaveExceptionById(int id) { try { _leaveExceptionService.DeleteItem(id); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } // LeaveParameter [HttpGet("getLeaveParameterById/{leaveParameterId}")] public ActionResult GetLeaveParameterById(int leaveParameterId) { LeaveParameter item = new LeaveParameter(); try { item = _leaveParameterService.Get(leaveParameterId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpGet("GetUsedParamItem/{leaveParameterId}")] public ActionResult GetUsedParamItem(int leaveParameterId) { List<LeaveParameter.paramItem> item = new List<LeaveParameter.paramItem>(); CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); try { item = _leaveParameterService.GetUsedParam(leaveParameterId, (int)currentUser.PayrollTypeID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } // double CalculatedLeaveDays(int leaveid, int itemid, EnumLeaveparamOn paramType, int payrollTypeid, //DateTime FromDate, DateTime ToDate, int ddlFromValue, int ddlToValue); [HttpGet( "CalculatedLeaveDays/{leaveid}/{itemID}/{locationID}/{paramType}/{fromDate}/{Todate}/{firstHalf}/{secondHalf}/{isHalfday}/{empId}")] public ActionResult CalculatedLeaveDays(int leaveid, int itemID, int locationID, EnumLeaveparamOn paramType, DateTime fromDate, DateTime Todate, bool firstHalf, bool secondHalf, bool isHalfday, int empId) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); double days = 0; try { days = _leaveEntryService.CalculatedLeaveDays(leaveid, itemID, locationID, paramType, (int)currentUser.PayrollTypeID, fromDate, Todate, firstHalf, secondHalf, isHalfday, empId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(days); } [HttpGet("getLeaveParameter/{status}/{leaveID}")] public ActionResult GetLeaveParameter(EnumStatus status, string leaveid) { int? lvid = GlobalFunctions.GetApiDefaultIntData(leaveid); CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault(); List<LeaveParameter> item = new List<LeaveParameter>(); try { item = _leaveParameterService.Get(status, (int)payrollTypeId, lvid); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } //[HttpGet("getLeaveParameterListByLeaveID/{leaveId}")] //public ActionResult getLeaveParameterListByLeaveID(int leaveId) //{ // List<LeaveParameter> item = new List<LeaveParameter>(); // try // { // item = _leaveParameterService.GetbyLeaveID(leaveId); // } // catch (Exception e) // { // return StatusCode(StatusCodes.Status500InternalServerError, e.Message); // } // return Ok(item); //} [HttpGet("getLeaveParameterDetails/{leaveParamId}")] public ActionResult GetLeaveParameterDetails(int leaveParamId) { List<LeaveParameterDetail> items = new List<LeaveParameterDetail>(); try { items = _leaveParameterService.GetDetails(leaveParamId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } [HttpGet("getLeaveParameterDetailsByParamId/{paramId}")] public ActionResult GetLeaveParameterDetailsByParamId(int paramId) { LeaveParameterDetail item = new LeaveParameterDetail(); try { item = _leaveParameterService.GetDetail(paramId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } //[HttpGet("getLeaveParameterByLeaveID/{paramId}")] //public ActionResult GetLeaveParameterByLeaveID(int paramId) //{ // LeaveParameter item = new LeaveParameter(); // try // { // item = _leaveParameterService.GetByLeaveID(paramId); // } // catch (Exception e) // { // return StatusCode(StatusCodes.Status500InternalServerError, e.Message); // } // return Ok(item); //} //[HttpGet("getAllLeaveParameterDetails")] //public ActionResult GetAllLeaveParameterDetails() //{ // List<LeaveParameterDetail> items = new List<LeaveParameterDetail>(); // try // { // items = _leaveParameterService.GetDetails(); // } // catch (Exception e) // { // return StatusCode(StatusCodes.Status500InternalServerError, e.Message); // } // return Ok(items); //} [HttpPost] [Route("deleteLeaveParameter")] public ActionResult DeleteLeaveParameter(int leaveParamId) { try { _leaveParameterService.Delete(leaveParamId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost] [Route("saveLeaveParameter")] public ActionResult SaveLeaveParameter(LeaveParameter item) { try { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); if (item.IsNew == false) { item.ModifiedBy = currentUser.UserID; item.ModifiedDate = DateTime.Today; } else { item.CreatedBy = currentUser.UserID; item.CreatedDate = DateTime.Today; item.PayrollTypeID = (int)currentUser.PayrollTypeID; } _leaveParameterService.Save(item); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } // LeavePlan [HttpGet("getLeavePlanByEmpId/{empId}")] public ActionResult GetLeavePlanByEmpId(int empId) { List<LeavePlan> items = new List<LeavePlan>(); try { items = _leavePlanService.Get(empId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } [HttpGet("getPlanData/{empId}/{leaveYear}")] public ActionResult GetPlanData(int empId, int leaveYear) { List<LeavePlan> items = new List<LeavePlan>(); try { items = _leavePlanService.GetPlanData(empId, leaveYear); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } [HttpGet("getAllPlanData")] public ActionResult GetAllPlanData() { List<LeavePlan> items = new List<LeavePlan>(); try { items = _leavePlanService.GetAllData(); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } [HttpGet("getPlanId/{id}")] public ActionResult GetPlanId(int id) { LeavePlan item = new LeavePlan(); try { item = _leavePlanService.GetID(id); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpGet("getPlanByMonthRange/{empId}/{fromDate}/{toDate}")] public ActionResult GetPlanByMonthRange(int empId, DateTime fromDate, DateTime toDate) { List<LeavePlan> items = new List<LeavePlan>(); try { items = _leavePlanService.GetByMonthRange(empId, fromDate, toDate); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } [HttpGet("isEmpIDExist")] public ActionResult IsEmpIDExist(int empId, int leaveYear) { bool ans; try { ans = _leavePlanService.IsEmpIDExist(empId, leaveYear); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(ans); } [HttpGet("isEmpApproved")] public ActionResult IsEmpApproved(int empId, int leaveYear, DateTime fromDate, DateTime toDate, bool isApproved) { bool ans; try { ans = _leavePlanService.IsEmpApproved(empId, leaveYear, fromDate, toDate, isApproved); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(ans); } [HttpPost] [Route("saveLeavePlan")] public ActionResult SaveLeavePlan(List<LeavePlan> items) { try { _leavePlanService.Save(items); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost] [Route("deleteLeavePlan")] public ActionResult DeleteLeavePlan(int id) { try { _leavePlanService.Delete(id); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost] [Route("updateApproveLeavePlan")] public ActionResult UpdateApproveLeavePlan(int empId) { int leaveYear = 1; DateTime formDate = new DateTime(); DateTime toDate = new DateTime(); bool isApproved = true; try { _leavePlanService.UpdateApprove(empId, leaveYear, formDate, toDate, isApproved); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost] [Route("upDateLeavePlan")] public ActionResult UpDateLeavePlan(LeavePlan item) { int planID = 1; try { _leavePlanService.UpDateLeavePlan(item, planID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost] [Route("updateLeavePlanSubmit")] public ActionResult UpdateLeavePlanSubmit(List<LeavePlan> items) { int planID = 1; try { _leavePlanService.UpdateLeavePlanSubmit(items); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } // LeaveProcess [HttpGet("getLeaveProcessById/{leaveProcessId}")] public ActionResult GetLeaveProcessById(int leaveProcessId) { LeaveProcess item = new LeaveProcess(); try { item = _leaveProcessService.Get(leaveProcessId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } // List<EmpLeaveStatus> GetLeaveBalance(int leaveYearID, int payrollTypeID, string EmpIDsIn, int? empID = null); [HttpGet("GetEmpLeaveStatus/{leaveYearID}/{empids}")] public ActionResult GetEmpLeaveStatus(int leaveYearID, string empids) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); empids = GlobalFunctions.GetApiDefaultData(empids); List<EmpLeaveStatus> item = new List<EmpLeaveStatus>(); try { item = _leaveProcessService.GetByEmpIDs(empids, leaveYearID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpPost("saveEmpLeaveStatus")] public ActionResult saveEmpLeaveStatus(List<EmpLeaveStatus> leaveStatus) { try { _leaveProcessService.SaveStatus(leaveStatus); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(true); } [HttpGet("GetLeaveBalance/{leaveYearID}/{EmpIDsIn}/{EmpId}")] public ActionResult GetLeaveBalance(int leaveYearID, string EmpIDsIn, string empID) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); int? nempid = GlobalFunctions.GetApiDefaultIntData(empID); EmpIDsIn = GlobalFunctions.GetApiDefaultData(EmpIDsIn); List<EmpLeaveStatus> item = new List<EmpLeaveStatus>(); try { item = _leaveProcessService.GetLeaveBalance(leaveYearID, (int)currentUser.PayrollTypeID, EmpIDsIn, nempid); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpGet("getLeaveBalanceInDataSet/{leaveYearID}/{EmpIDsIn}/{EmpId}")] public ActionResult GetLeaveBalanceInDataSet(int leaveYearID, string EmpIDsIn, string empID) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); int? nempid = GlobalFunctions.GetApiDefaultIntData(empID); EmpIDsIn = GlobalFunctions.GetApiDefaultData(EmpIDsIn); List<EmpLeaveStatus> item = new List<EmpLeaveStatus>(); DataTable dataTable = new DataTable(); try { item = _leaveProcessService.GetLeaveBalance(leaveYearID, (int)currentUser.PayrollTypeID, EmpIDsIn, nempid); dataTable.Columns.Add("AnnualLeave"); dataTable.Columns.Add("alOpening"); item.ForEach(x => { dataTable.Columns.Add(x.LeaveNameView); dataTable.Columns.Add(x.LeaveNameView + "Opening"); dataTable.Columns.Add(x.LeaveNameView + "Balance"); dataTable.Columns.Add(x.LeaveNameView + "Closing"); }); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpGet("getLeaveProcessByLeaveProcessYear/{leaveProcessYear}")] public ActionResult GetLeaveProcessByLeaveProcessYear(int leaveProcessYear) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault(); LeaveProcess item = new LeaveProcess(); try { item = _leaveProcessService.Get(leaveProcessYear, payrollTypeId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpGet("getAllLeaveProcess")] public ActionResult GetAllLeaveProcess() { List<LeaveProcess> items = new List<LeaveProcess>(); try { items = _leaveProcessService.Get(); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } [HttpGet("getLastProcess")] public ActionResult GetLastProcess() { LeaveProcess item = new LeaveProcess(); try { item = _leaveProcessService.GetLastProcess(); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpGet("isProcessed/{processYear}")] public ActionResult IsProcessed(int processYear) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); bool ans; try { ans = _leaveProcessService.IsProcessed(processYear, (int)currentUser.PayrollTypeID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(ans); } [HttpPost] [Route("DoYearEnd")] public ActionResult DoYearEnd(LeaveProcess item) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); if (item.LeaveYear == null) item.LeaveYear = new LeaveYearService().Get(item.LeaveYearID); item.CreatedDate = DateTime.Today; item.CreatedBy = (int)currentUser.UserID; item.PayrollTypeID = (int)currentUser.PayrollTypeID; item.ProcessDate = DateTime.Today; item.ProcessYearDescription = ""; try { _leaveProcessService.DoYearEnd(item); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(true); } [HttpPost] [Route("UnDoYearEnd")] public ActionResult UnDoYearEnd(LeaveProcess item) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); if (item.LeaveYear == null) item.LeaveYear = new LeaveYearService().Get(item.LeaveYearID); item.CreatedDate = DateTime.Today; item.CreatedBy = (int)currentUser.UserID; item.PayrollTypeID = (int)currentUser.PayrollTypeID; try { _leaveProcessService.UnDoYearEnd(item.LeaveYearID, item.PayrollTypeID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(true); } [HttpPost] [Route("updateLeaveYearStatus")] public ActionResult UpdateLeaveYearStatus(LeaveProcess item) { try { _leaveProcessService.UpadteLeaveYearStatus(item); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpGet("getLeaveDetails/{empId}")] public ActionResult GetLeaveDetails(int empId) { LeaveDetails item = new LeaveDetails(); try { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); item = new LeaveDetails(); item.LeaveYear = _leaveYearService.GetCurrentYear((int)currentUser.PayrollTypeID); item.Empleavestatus = _leaveProcessService.GetLeaveBalance(item.LeaveYear.ID, (int)currentUser.PayrollTypeID, string.Empty, empId); item.LeaveHistory = _leaveProcessService.GetRecord(empId.ToString(), item.LeaveYear.StartDate, item.LeaveYear.EndDate, EnumLeaveStatus.Drafted); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } // LeaveYear [HttpGet("getLeaveYear/{id}")] public ActionResult GetLeaveYear(int id) { LeaveYear item = new LeaveYear(); try { item = _leaveYearService.Get(id); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpGet("getCurrentYearByYear/{year}")] public ActionResult GetCurrentYearByYear(string year) { LeaveYear item = new LeaveYear(); try { item = _leaveYearService.GetCurrentYear(year); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpGet("getAllLeaveYear")] public ActionResult GetAllLeaveYear() { List<LeaveYear> items = new List<LeaveYear>(); CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); try { items = _leaveYearService.GetByPayrollTypeId((int)currentUser.PayrollTypeID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } [HttpGet("getLeaveYearListByStatus")] public ActionResult GetLeaveYearListByStatus(EnumStatus status) { List<LeaveYear> items = new List<LeaveYear>(); try { items = _leaveYearService.Get(status); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } [HttpGet("getCurrentYear")] public ActionResult GetCurrentYear() { LeaveYear item = new LeaveYear(); CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); try { item = _leaveYearService.GetCurrentYear((int)currentUser.PayrollTypeID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpGet("getLastLeaveYear")] public ActionResult getLastLeaveYear() { LeaveYear item = new LeaveYear(); CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); try { item = _leaveYearService.GetLastYear((int)currentUser.PayrollTypeID); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpGet("countCurrentYear")] public ActionResult CountCurrentYear() { int ans; try { ans = _leaveYearService.CountCurrentYear(); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(ans); } [HttpGet("getIDByName/{leaveYear}")] public ActionResult GetIDByName(string leaveYear) { LeaveYear item = new LeaveYear(); try { item = _leaveYearService.GetIDByName(leaveYear); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpPost] [Route("saveLeaveYear")] public ActionResult SaveLeaveYear(LeaveYear item) { try { _leaveYearService.Save(item); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost] [Route("deleteLeaveYearById")] public ActionResult DeleteLeaveYearById(int id) { try { _leaveYearService.Delete(id); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } // UploadEncashAmount [HttpGet("getAllUploadEncashAmount")] public ActionResult GetAllUploadEncashAmount() { List<UploadEncashAmount> items = new List<UploadEncashAmount>(); try { items = _uploadEncashAmountService.Get(); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } [HttpGet("getUploadEncashAmountByEmpId/{empId}")] public ActionResult GetUploadEncashAmountByEmpId(int empId) { List<UploadEncashAmount> items = new List<UploadEncashAmount>(); try { items = _uploadEncashAmountService.Get(empId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } [HttpPost] [Route("saveUploadEncashAmount")] public ActionResult SaveUploadEncashAmount(List<UploadEncashAmount> items) { try { _uploadEncashAmountService.Save(items); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost] [Route("deleteUploadEncashAmount")] public ActionResult DeleteUploadEncashAmount(int id) { try { _uploadEncashAmountService.Delete(id); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpGet("getEmpLeaveStatusByEmpIds/{empIds}/{leaveYearId}")] public ActionResult GetEmpLeaveStatusByEmpIds(string empIds, int leaveYearId) { List<EmpLeaveStatus> items = new List<EmpLeaveStatus>(); try { items = _leaveProcessService.GetByEmpIDs(empIds, leaveYearId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } [HttpPost("getMonthWiseLeaveRegister")] public ActionResult GetMonthWiseLeaveRegister(dynamic data) { var datas = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); string empIds = (string)datas["empIds"].ToObject<string>(); int leaveYearId = datas["leaveYearId"].ToObject<int>(); int leaveId = datas["leaveId"].ToObject<int>(); EnumLeaveStatus leaveStatus = (EnumLeaveStatus)Enum.Parse(typeof(EnumLeaveStatus), datas["status"].ToObject<string>(), true); string leaveFromMonth = (string)datas["leaveFromMonth"].ToObject<string>(); string leaveToMonth = (string)datas["leaveToMonth"].ToObject<string>(); List<LeaveDetailsMonthWiseDTO> items = new List<LeaveDetailsMonthWiseDTO>(); try { DateTime dateFromTime = Convert.ToDateTime(leaveFromMonth); DateTime dateToTime = Convert.ToDateTime(leaveToMonth); items = _leaveProcessService.GetMonthWiseLeaveRegister(empIds, leaveYearId, leaveId, leaveStatus, dateFromTime, dateToTime); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(items); } //[HttpPost("getMultipleEmployeeLeaveBalance")] //public ActionResult GetMultipleEmployeeLeaveBalance(List<SearchEmployee> emps) //{ // List<EmpLeaveStatus> items = new List<EmpLeaveStatus>(); // List<MultipleEmployeeLeaveBalance> employeeLeaveBalances = new List<MultipleEmployeeLeaveBalance>(); // DataTable mulLeaveBalance = new DataTable(); // DataSet dSet = new DataSet(); // try // { // EmployeeService empService = new EmployeeService(); // LeaveYearService leaveYearService = new LeaveYearService(); // CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); // int payrollTypeID = currentUser.PayrollTypeID.GetValueOrDefault(); // DataRow dr = null; // string sDatecheck = string.Empty; // LeaveYear lyy = new LeaveYear(); // lyy = _leaveYearService.Get(emps[0].DepartmentID); // List<BO.Leave> oleaves = _leaveService.Get(EnumStatus.Regardless, payrollTypeID); // LeaveYear cly = leaveYearService.GetCurrentYear((int)currentUser.PayrollTypeID); // List<EmpLeaveStatus> obalance = new List<EmpLeaveStatus>(); // if (cly == lyy) // { // obalance = _leaveProcessService.GetLeaveBalance(cly.ID, payrollTypeID, // SearchEmployee.getEmpID(emps)); // } // else // { // obalance = _leaveProcessService.GetByEmpIDs(SearchEmployee.getEmpID(emps), lyy.ID); // } // string empID = string.Empty; // mulLeaveBalance.Columns.Add("EmpNo"); // mulLeaveBalance.Columns.Add("Name"); // List<BO.Leave> newLeaves = new List<BO.Leave>(); // foreach (HRM.BO.Leave ol in oleaves) // { // if (obalance.Any(x => x.LeaveId == ol.ID) == true) // { // if (newLeaves.Any(x => x.ID == ol.ID) == false) // newLeaves.Add(ol); // } // } // oleaves = newLeaves; // foreach (HRM.BO.Leave ol in oleaves) // { // //mulLeaveBalance.Columns.Add(ol.Code + "_Op"); // //mulLeaveBalance.Columns.Add(ol.Code + "_Av"); // //mulLeaveBalance.Columns.Add(ol.Code + "_Cls"); // mulLeaveBalance.Columns.Add(ol.Code + "_Opening"); // mulLeaveBalance.Columns.Add(ol.Code + "_Availed"); // mulLeaveBalance.Columns.Add(ol.Code + "_Closing"); // } // var results = from p in obalance // group p by p.EmpId // into g // select g; // foreach (var eItem in results) // { // List<EmpLeaveStatus> leaveStatus = obalance.FindAll(x => x.EmpId == eItem.Key); // dr = mulLeaveBalance.NewRow(); // SearchEmployee oemp = // emps.Find(delegate (SearchEmployee oem) { return oem.EmployeeID == eItem.Key; }); // if (oemp == null) continue; // dr["EmpNo"] = oemp.EmployeeNo; // dr["Name"] = oemp.Name; // foreach (EmpLeaveStatus olevestatus in leaveStatus) // { // HRM.BO.Leave oleave = oleaves.FirstOrDefault(x => x.ID == olevestatus.LeaveId); // dr[oleave.Code + "_Opening"] = olevestatus.OpeningBalance; // dr[oleave.Code + "_Availed"] = olevestatus.LeaveAvailed; // dr[oleave.Code + "_Closing"] = olevestatus.ClosingBalance; // } // mulLeaveBalance.Rows.Add(dr); // } // } // catch (Exception e) // { // return StatusCode(StatusCodes.Status500InternalServerError, e.Message); // } // return Ok(mulLeaveBalance); //} [HttpPost("getMultipleEmployeeLeaveBalance/{leaveyearid}")] public ActionResult GetMultipleEmployeeLeaveBalance(int leaveyearid, List<SearchEmployee> emps) { List<EmpLeaveStatus> items = new List<EmpLeaveStatus>(); List<MultipleEmployeeLeaveBalance> employeeLeaveBalances = new List<MultipleEmployeeLeaveBalance>(); DataTable mulLeaveBalance = new DataTable(); DataSet dSet = new DataSet(); try { EmployeeService empService = new EmployeeService(); LeaveYearService leaveYearService = new LeaveYearService(); CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); int payrollTypeID = currentUser.PayrollTypeID.GetValueOrDefault(); DataRow dr = null; string sDatecheck = string.Empty; LeaveYear lyy = new LeaveYear(); lyy = _leaveYearService.Get(leaveyearid); List<BO.Leave> oleaves = _leaveService.Get(EnumStatus.Regardless, payrollTypeID); LeaveYear cly = leaveYearService.GetCurrentYear((int)currentUser.PayrollTypeID); List<EmpLeaveStatus> obalance = new List<EmpLeaveStatus>(); if (cly == lyy) { obalance = _leaveProcessService.GetLeaveBalance(cly.ID, payrollTypeID, SearchEmployee.getEmpID(emps)); } else { obalance = _leaveProcessService.GetByEmpIDs(SearchEmployee.getEmpID(emps), lyy.ID); } string empID = string.Empty; mulLeaveBalance.Columns.Add("EmpNo"); mulLeaveBalance.Columns.Add("Name"); List<BO.Leave> newLeaves = new List<BO.Leave>(); foreach (HRM.BO.Leave ol in oleaves) { if (obalance.Any(x => x.LeaveId == ol.ID) == true) { if (newLeaves.Any(x => x.ID == ol.ID) == false) newLeaves.Add(ol); } } oleaves = newLeaves; foreach (HRM.BO.Leave ol in oleaves) { //mulLeaveBalance.Columns.Add(ol.Code + "_Op"); //mulLeaveBalance.Columns.Add(ol.Code + "_Av"); //mulLeaveBalance.Columns.Add(ol.Code + "_Cls"); mulLeaveBalance.Columns.Add(ol.Code + "_Opening"); mulLeaveBalance.Columns.Add(ol.Code + "_Availed"); mulLeaveBalance.Columns.Add(ol.Code + "_Closing"); } var results = from p in obalance group p by p.EmpId into g select g; foreach (var eItem in results) { List<EmpLeaveStatus> leaveStatus = obalance.FindAll(x => x.EmpId == eItem.Key); dr = mulLeaveBalance.NewRow(); SearchEmployee oemp = emps.Find(delegate (SearchEmployee oem) { return oem.EmployeeID == eItem.Key; }); if (oemp == null) continue; dr["EmpNo"] = oemp.EmployeeNo; dr["Name"] = oemp.Name; foreach (EmpLeaveStatus olevestatus in leaveStatus) { HRM.BO.Leave oleave = oleaves.FirstOrDefault(x => x.ID == olevestatus.LeaveId); dr[oleave.Code + "_Opening"] = olevestatus.OpeningBalance; dr[oleave.Code + "_Availed"] = olevestatus.LeaveAvailed; dr[oleave.Code + "_Closing"] = olevestatus.ClosingBalance; } mulLeaveBalance.Rows.Add(dr); } } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(mulLeaveBalance); } [HttpGet("GetMyTeamLeave/{frommonth}/{tomonth}")] public ActionResult GetMyTeamLeave(string frommonth, string tomonth) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); DataTable olist = null; DateTime ddate = Convert.ToDateTime(frommonth); DateTime dtomonth = Convert.ToDateTime(tomonth); int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault(); try { olist = _leaveEntryService.GetMyTeamLeave((int)currentUser.EmployeeID , GlobalFunctions.FirstDateOfMonth(ddate), GlobalFunctions.LastDateOfMonth(dtomonth)); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(olist); } [HttpPost] [Route("initiateCancelRequest")] [AllowAnonymous] public ActionResult InitiateCancelRequest(LeaveEntry item) { try { _leaveEntryService.InitiateCancelRequest(item); return Ok(); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } } [HttpPost("currentYearStatus")] public ActionResult CurrentYearStatus(dynamic data) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); int payrollTypeId = (int)currentUser.PayrollTypeID; var item = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); string empIds = (string)item["empIds"].ToObject<string>(); int leaveYearId = item["leaveYearId"].ToObject<int>(); var employeeIdList = empIds.Split(','); List<Employee> employees = new List<Employee>(); try { foreach (var employeeId in employeeIdList) { var employee = _employeeService.Get(int.Parse(employeeId)); employees.Add(employee); } var leaveYear = _leaveYearService.Get(leaveYearId); var employeeStatus = _leaveProcessService.CurrentYearStatus(employees, leaveYear, payrollTypeId); return Ok(employeeStatus); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } } [HttpGet("OnapprovalCancelRequest/{tranId}")] public ActionResult OnapprovalCancelRequest(int tranId) { try { EmailSettings emailSettings = _emailSettings.Value; _leaveEntryService.OnapprovalCancelRequest(tranId); List<string> temperr = _leaveEntryService.SendMailToTheApproversForCancellation(tranId, emailSettings); if (temperr.Count > 0) { return StatusCode(StatusCodes.Status500InternalServerError, "Mail Sending Failed"); } return Ok(); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } } [HttpPost] [Route("cancelLeaveApprove")] [AllowAnonymous] public ActionResult CancelLeaveApprove(WFMovementTran item) { try { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); item.FromEmployeeID = (int)currentUser.EmployeeID; _leaveEntryService.CancelRequestApprove(item); return Ok(); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } } [HttpPost] [Route("cancelLeaveReject")] [AllowAnonymous] public ActionResult CancelLeaveReject(WFMovementTran item) { try { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); item.FromEmployeeID = (int)currentUser.EmployeeID; _leaveEntryService.CancelRequestReject(item); return Ok(); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } } [HttpGet] [Route("getLeaveEncashment/{leaveYearId}/{employeeId}")] public ActionResult GetLeaveEncashment(int leaveYearId, int employeeId) { LeaveEncashment item = new LeaveEncashment(); try { item = _leaveEncashmentService.Get(leaveYearId, employeeId); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(item); } [HttpGet] [Route("getLeaveEncashmentByLeaveYearId/{leaveYearId}")] public ActionResult GetLeaveEncashmentByLeaveYearId(int leaveYearId) { List<LeaveEncashment> items = new List<LeaveEncashment>(); try { items = _leaveEncashmentService.Get(leaveYearId); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(items); } // Leave Encashment [HttpPost("saveLeaveEncashment")] public ActionResult SaveLeaveEncashment(LeaveEncashment item) { try { _leaveEncashmentService.Save(item); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost("saveLeaveEncashmentList")] public ActionResult SaveLeaveEncashmentList(List<LeaveEncashment> items) { try { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); foreach (var leaveEncashment in items) { if (leaveEncashment.IsNew == true) { leaveEncashment.CreatedBy = currentUser.UserID; leaveEncashment.CreatedDate = DateTime.Today; } else { leaveEncashment.ModifiedBy = currentUser.UserID; leaveEncashment.ModifiedDate = DateTime.Today; } } _leaveEncashmentService.Save(items); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost("calculateTax")] public ActionResult CalculateTax(List<LeaveEncashment> items) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); var nextPayProcess = currentUser.NextPayProcessDate.GetValueOrDefault(); var payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault(); var taxParamId = currentUser.TaxParamID.GetValueOrDefault(); try { _leaveEncashmentService.CalculateTax(items, nextPayProcess, taxParamId, payrollTypeId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost("calculateTaxForLeaveEncashment")] public ActionResult calculateTaxForLeaveEncashment(List<LeaveEncashment> items) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); var nextPayProcess = currentUser.NextPayProcessDate.GetValueOrDefault(); var payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault(); var taxParamId = currentUser.TaxParamID.GetValueOrDefault(); try { //new LeaveEncashmentService().calculateTaxForLeaveEncashment(items, currentUser, taxParamId, payrollTypeId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost] [Route("getMultipleLeaveLedgerData")] public ActionResult GetMultipleLeaveLedgerData(dynamic data) { var item = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); string empIds = (string)item["empIds"].ToObject<string>(); int leaveYearId = item["leaveYearId"].ToObject<int>(); int leaveId = item["leaveId"].ToObject<int>(); DateTime fromDate = item["fromDate"].ToObject<DateTime>(); DateTime toDate = item["toDate"].ToObject<DateTime>(); DataTable dt = null; try { if (leaveId > 0) { dt = _leaveEntryService.GetMultipleLeaveLedgerData(leaveYearId, leaveId, empIds, fromDate, toDate); } else { dt = _leaveEntryService.GetMultipleLeaveLedgerData(leaveYearId, empIds, fromDate, toDate); } } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(dt); } #region Short Leave [HttpPost] [Route("saveShortLeave")] public ActionResult SaveShortLeave(ShortLeave item) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); Employee oEmp = _employeeService.Get(currentUser.EmployeeID.GetValueOrDefault()); item.EmployeeID = oEmp.ID; item.PayrollTypeID = oEmp.PayrollTypeID; item.LineManagerID = (int)oEmp.LineManagerID; if(item.ExpectedReturnTime != null) { TimeSpan timeDiff = (TimeSpan)(item.ExpectedReturnTime - item.DepartureTime); if (timeDiff.TotalHours >= 1) { item.TotalHour = timeDiff.TotalHours; } else { item.TotalHour = 0; } } //else //{ //} if (item.IsNew == false) { item.ModifiedBy = currentUser.UserID; item.ModifiedDate = DateTime.Today; } else { item.CreatedBy = currentUser.UserID; item.CreatedDate = DateTime.Today; } try { _shortLeaveService.Save(item); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpGet] [Route("getShortLeaveByID/{ID}")] public ActionResult getShortLeaveByID(int id) { ShortLeave item = new ShortLeave(); try { item = _shortLeaveService.Get(id); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } //[HttpGet] //[Route("getShortLeaveByDate/{empID}/{payrollTypeID}/{status}/{fromDate}/{toDate}")] //public ActionResult getShortLeaveByDate(int empid, int pID, int status, DateTime fromDate, DateTime toDate) //{ // //code = GlobalFunctions.GetApiDefaultData(code); // //name = GlobalFunctions.GetApiDefaultData(name); // List<ShortLeave> items = new List<ShortLeave>(); // CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); // int employeeId = currentUser.EmployeeID.GetValueOrDefault(); // int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault(); // try // { // //DateTime fromDate = Convert.ToDateTime(sFromDate); // //DateTime toDate = Convert.ToDateTime(sToDate); // items = _shortLeaveService.Get(employeeId, payrollTypeId, status, fromDate, toDate); // } // catch (Exception e) // { // return StatusCode(StatusCodes.Status500InternalServerError, e.Message); // } // return Ok(items); //} [HttpPost] [Route("getShortLeaveByDateRange")] public ActionResult getShortLeaveByDateRange(dynamic data) { var item = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); EnumGatePassStatus status = item["status"].ToObject<EnumGatePassStatus>(); DateTime fromDate = item["fromDate"].ToObject<DateTime>(); DateTime toDate = item["toDate"].ToObject<DateTime>(); DataTable dt = null; CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); int employeeId = currentUser.EmployeeID.GetValueOrDefault(); int payrollTypeId = currentUser.PayrollTypeID.GetValueOrDefault(); try { dt = _shortLeaveService.Get(employeeId, payrollTypeId, status, fromDate, toDate); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(dt); } [HttpPost] [Route("getAppliedShortLeave")] public ActionResult getAppliedShortLeave(dynamic data) { var item = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); EnumGatePassStatus status = item["status"].ToObject<EnumGatePassStatus>(); DataTable dt = null; CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); int lmId = currentUser.EmployeeID.GetValueOrDefault(); try { dt = _shortLeaveService.GetAppliedSortLeave(lmId, status); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(dt); } [HttpPost] [Route("getApprovedShortLeave")] public ActionResult getApprovedShortLeave(dynamic data) { var item = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); EnumGatePassStatus status = item["status"].ToObject<EnumGatePassStatus>(); DateTime fromDate = item["fromDate"].ToObject<DateTime>(); DateTime toDate = item["toDate"].ToObject<DateTime>(); DataTable dt = null; CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); int lmId = currentUser.EmployeeID.GetValueOrDefault(); try { dt = _shortLeaveService.GetApprovedShortLeave(lmId, status, fromDate, toDate); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(dt); } [HttpPost] [Route("ApproveOrRejectShortLeave")] public ActionResult ApproveShortLeave(dynamic data) { var item = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); EnumGatePassStatus status = item["status"].ToObject<EnumGatePassStatus>(); int shortLeaveid = item["item"]["shortLeaveId"].ToObject<int>(); CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); int approver = currentUser.EmployeeID.GetValueOrDefault(); try { _shortLeaveService.ApproveOrRejectShortLeave(shortLeaveid, status, approver); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost] [Route("ApproveMultipleShortLeave")] public ActionResult ApproveMultipleShortLeave(dynamic data) { var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); EnumGatePassStatus status = items["status"].ToObject<EnumGatePassStatus>(); string sID = (string)items["item"].ToObject<string>(); //int shortLeaveid = item["item"]["shortLeaveId"].ToObject<int>(); CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); int approver = currentUser.EmployeeID.GetValueOrDefault(); try { _shortLeaveService.ApproveMultipleShortLeave(sID, status, approver); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(); } [HttpPost] [Route("getGatemanShortLeave")] public ActionResult getGatemanShortLeave(dynamic data) { var item = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); EnumGatePassStatus status = item["status"].ToObject<EnumGatePassStatus>(); DateTime fromDate = item["fromDate"].ToObject<DateTime>(); DateTime toDate = item["toDate"].ToObject<DateTime>(); DataTable dt = null; CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); try { dt = _shortLeaveService.getGatemanShortLeave(status, fromDate, toDate); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(dt); } [HttpPost] [Route("saveGatemanEntry")] public ActionResult saveGatemanEntry(dynamic data) { var item = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); int empid = item["employeeid"].ToObject<int>(); int shortleaveid = item["shortLeaveid"].ToObject<int>(); string type = item["type"].ToObject<string>(); ShortLeave oShortleave = _shortLeaveService.Get(shortleaveid); DateTime now = DateTime.Now; TimeSpan timeSpan = now.TimeOfDay; CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); int id = currentUser.EmployeeID.GetValueOrDefault(); Employee oEmp = _employeeService.Get(id); if (type == "IN") { oShortleave.ActualInTime = timeSpan; } if (type == "OUT") { oShortleave.ActualOutTime = timeSpan; } if (oShortleave.ActualInTime != TimeSpan.FromMinutes(0) && oShortleave.ActualOutTime != TimeSpan.FromMinutes(0)) { TimeSpan timeDiff = (TimeSpan)(oShortleave.ActualInTime - oShortleave.ActualOutTime); if (timeDiff.TotalHours >= 1) { oShortleave.TotalHour = timeDiff.TotalHours; } else { oShortleave.TotalHour = 0; } } try { //_shortLeaveService.saveGatemanEntry(shortleaveid, type); _shortLeaveService.UpdateInAndOutTime(oShortleave, oEmp); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(); } #endregion #region My Team Leave [HttpGet] [Route("GetLeaveTodayAndNextWeek")] public ActionResult GetLeaveTodayAndNextWeek() { DataTable dt = null; CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); int id = currentUser.EmployeeID.GetValueOrDefault(); Employee oEmp = _employeeService.Get(id); try { dt = _leaveEntryService.GetLeaveTodayAndNextWeek(oEmp, EnumLeaveStatus.Approved); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(dt); } [HttpGet] [Route("getTopLeaveChartData")] public ActionResult getTopLeaveChartData() { DataTable dt = null; CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); int id = currentUser.EmployeeID.GetValueOrDefault(); LeaveYear LeaveYear = new LeaveYearService().GetCurrentYear((int)currentUser.PayrollTypeID); Employee oEmp = _employeeService.Get(id); try { dt = _leaveEntryService.getTopLeaveChartData(oEmp, LeaveYear.ID, EnumLeaveStatus.Approved); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(dt); } [HttpGet] [Route("getcorehrLeaveChartData")] public ActionResult getcorehrLeaveChartData() { DataTable dt = null; CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); int id = currentUser.EmployeeID.GetValueOrDefault(); LeaveYear LeaveYear = new LeaveYearService().GetCurrentYear((int)currentUser.PayrollTypeID); Employee oEmp = _employeeService.Get(id); try { dt = _leaveEntryService.getcorehrLeaveChartData(oEmp, LeaveYear.ID, EnumLeaveStatus.Approved); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(dt); } [HttpPost] [Route("rmgLeaveEncashmentCalculation")] public ActionResult rmgLeaveEncashmentCalculation(dynamic data) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); var item = items[0]; int month = (int)item["month"].ToObject<int>(); string years = (string)item["year"].ToObject<string>(); string empIds = (string)item["empid"].ToObject<string>(); //int leaveYearId = item["leaveyearid"].ToObject<int>(); List<LeaveEncashment> dt = null; try { dt = new LeaveEncashmentService().rmgLeaveEncashmentCalculation( month, years,empIds, (int) currentUser.PayrollTypeID,5); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(dt); } #endregion My Team Leave #region Maternity Leave [HttpGet] [Route("getMaternityLeave")] public ActionResult getMaternityLeave() { int rowIndex = 0; List<MaternityLeave> oMaternityLeaves = new List<MaternityLeave>(); CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); try { //List<Employee> employees = _employeeService.GetAllEmps(); List<Employee> employees = _employeeService.GetAllLive(); List<MaternityLeave> maternityLeaves = _maternityLeaveService.Get(); foreach (MaternityLeave item in maternityLeaves) { Employee oEmployee = employees.Find(delegate (Employee oem) { return oem.ID == item.EmployeeID; }); if(oEmployee!= null) { item.EmployeeNo = employees.Find(delegate (Employee oem) { return oem.ID == item.EmployeeID; }).EmployeeNo; item.EmployeeName = employees.Find(delegate (Employee oem) { return oem.ID == item.EmployeeID; }).Name; rowIndex++; oMaternityLeaves.Add(item); } } } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(oMaternityLeaves); } [HttpPost] [Route("deleteMaternityLeave")] public ActionResult deleteMaternityLeave(MaternityLeave oMaternityLeave) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); try { List<TaxRawItem> _taxRawItems = new List<TaxRawItem>(); oMaternityLeave.MaternityItemDetailColl = _maternityLeaveService.GetMItemDetail(oMaternityLeave.ID); oMaternityLeave.MaternityStatusDetailColl = _maternityLeaveService.GetMStatusDetail(oMaternityLeave.ID); if (oMaternityLeave.MaternityStatusDetailColl.Count == 0) { //MakeTaxRawItems(oMaternityLeave.MaternityItemDetailColl); foreach (MaternityLeave.MaternityItemDetail maternityItemDetail in oMaternityLeave.MaternityItemDetailColl) { TaxRawItem taxRawItem = new TaxRawItem(); if (maternityItemDetail.ItemType == EnumMaternityItemDetailType.GrossSalary) { taxRawItem = TaxRawItem.Create("Gross Component", maternityItemDetail.Amount, maternityItemDetail.IncomeTaxItemType, maternityItemDetail.SalaryComponentID); _taxRawItems.Add(taxRawItem); } else if (maternityItemDetail.ItemType != EnumMaternityItemDetailType.Total && maternityItemDetail.ItemType != EnumMaternityItemDetailType.Days) { taxRawItem = TaxRawItem.Create(maternityItemDetail.Description, maternityItemDetail.Amount, maternityItemDetail.IncomeTaxItemType, maternityItemDetail.SalaryComponentID); _taxRawItems.Add(taxRawItem); } } TaxCalculator otaxCal = new TaxCalculator(); otaxCal.TaxParameter = new TaxParameterService().Get((int)currentUser.TaxParamID); otaxCal.Employee = _employeeService.Get(oMaternityLeave.EmployeeID); //oMaternityLeave.IncomeTaxColl = otaxCal.UndoCalculate(_taxRawItems, oMaternityLeave.TaxAmount); oMaternityLeave.IncomeTaxColl = new List<IncomeTax>(); _maternityLeaveService.Delete(oMaternityLeave); } else { throw new Exception("Payment is already done. so, Data delete is not allowed." + " This Data is not Deleteable"); } } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(); } //[HttpPost] //[Route("deleteMaternityStatusDetail")] //public ActionResult deleteMaternityStatusDetail(MaternityLeave.MaternityStatusDetail oMaternityStatusDetail) //{ // CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); // try // { // MaternityLeave.MaternityStatusDetail maternityStatusDetailRemove = oMaternityStatusDetail; // MaternityLeave _maternityLeave = _maternityLeaveService.Get(oMaternityStatusDetail.MaternityLeaveID); // MaternityLeave.MaternityStatusDetail maternityStatusDetail = _maternityLeave.MaternityStatusDetailColl.Find(delegate (MaternityLeave.MaternityStatusDetail mStatusDetail) { return mStatusDetail.PaymentDate.Value == maternityStatusDetailRemove.PaymentDate.Value; }); // if (maternityStatusDetail != null) // { // _maternityLeave.PaidAmount -= maternityStatusDetail.Amount; // //AmountAndDaysCalculation(_maternityLeave.PaidAmount, _maternityLeave.NetAmount - _maternityLeave.PaidAmount, (int)numPaymentDays.Value + maternityStatusDetail.PaymentDays); // _maternityLeave.MaternityStatusDetailColl.Remove(maternityStatusDetail); // //RefreshGridPayment(); // //if (_maternityLeave.MaternityStatusDetailColl.Count == 0) // //{ // // btnAddAllowance.Enabled = true; // // btnRemoveAllowance.Enabled = true; // //} // } // } // catch (Exception ex) // { // return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); // } // return Ok(); //} [HttpGet("getMaternityStatusDetail/{parentId}")] public ActionResult GetMStatusDetail(int parentId) { List<MaternityLeave.MaternityStatusDetail> item = new List<MaternityLeave.MaternityStatusDetail>(); try { item = _maternityLeaveService.GetMStatusDetail(parentId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpGet("getMaternityItemDetail/{parentId}")] public ActionResult GetMaternityItemDetail(int parentId) { List<MaternityLeave.MaternityItemDetail> item = new List<MaternityLeave.MaternityItemDetail>(); try { item = _maternityLeaveService.GetMItemDetail(parentId); } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } return Ok(item); } [HttpPost] [Route("prepareMaternityItemDetails")] public ActionResult prepareMaternityItemDetails(dynamic data) { //List<DataTable> listItems = new List<DataTable>(); //DataSet ds = new DataSet(); CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); //var items = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); //var item = items[0]; var item = Newtonsoft.Json.JsonConvert.DeserializeObject(Convert.ToString(data)); int maternityLeaveid = (int)item["id"].ToObject<int>(); int employeeid = (int)item["employeeid"].ToObject<int>(); DateTime applyDate = (DateTime)item["applyDate"].ToObject<DateTime>(); DateTime dateOfApproval = (DateTime)item["dateOfApproval"].ToObject<DateTime>(); DateTime leaveFromDate = item["leaveFromDate"].ToObject<DateTime>(); DateTime leaveToDate = item["leaveToDate"].ToObject<DateTime>(); int totalDays = (int)item["totalDays"].ToObject<int>(); DataTable dt = null; double totalEarning = 0; int totalWorkingDays = 0; double dailyAvgEarning = 0; int numPaymentDays = 0; MaternityLeave maternityLeave = new MaternityLeave(); if (maternityLeaveid == 0) { maternityLeave.ID = maternityLeaveid; maternityLeave.EmployeeID = employeeid; maternityLeave.ApplicationDate = applyDate; maternityLeave.DateOfApproval = dateOfApproval; maternityLeave.LeaveFromDate = leaveFromDate; maternityLeave.LeaveToDate = leaveToDate; maternityLeave.ApproveDays = totalDays; maternityLeave.MaternityItemDetailColl = _maternityLeaveService.GetMItemDetail(maternityLeave.ID); } else { maternityLeave = _maternityLeaveService.Get(maternityLeaveid); maternityLeave.MaternityItemDetailColl = _maternityLeaveService.GetMItemDetail(maternityLeave.ID); maternityLeave.MaternityStatusDetailColl = _maternityLeaveService.GetMStatusDetail(maternityLeave.ID); } Employee employee = new EmployeeService().Get(employeeid); DateTime monthLastDate = GlobalFunctions.LastDateOfMonth(leaveFromDate); List<MaternityLeave.MaternityItemDetail> MaternityItemDetailOut = new List<MaternityLeave.MaternityItemDetail>(); MaternityLeaveService maternityLeaveService = new MaternityLeaveService(); try { maternityLeave.MaternityItemDetailColl = maternityLeaveService.PrepareMaternityItemDetails(maternityLeave, employee, monthLastDate, (int)currentUser.PayrollTypeID, out totalEarning, out totalWorkingDays); dt = maternityLeaveService.RefreshGridAllowanceMaternityLeave(maternityLeave, monthLastDate, out MaternityItemDetailOut); if (maternityLeave.ID == 0) { maternityLeave = maternityLeaveService.RefreshGridPaymentMaternityLeave(maternityLeave, out numPaymentDays); double nTaxAmount = 0; TaxCalculator otaxCal = new TaxCalculator(); if (leaveFromDate <= leaveToDate) { int days = totalDays; if (totalWorkingDays > 0) { dailyAvgEarning = totalEarning / totalWorkingDays; } else { //_maternityLeave = new MaternityLeave(); //dgvMaternityItemDetails.Rows.Clear(); //dgvPaymentStatus.Rows.Clear(); //MessageBox.Show("Zero or invalid value of total working days.", "Zero or Invalid value", MessageBoxButtons.OK, MessageBoxIcon.Information); //return; } List<TaxRawItem> taxRawItems = new List<TaxRawItem>(); double ntaxableIncome = days * dailyAvgEarning; TaxRawItem taxRawItemBS = TaxRawItem.Create("Maternity Benefit", ntaxableIncome, enumIncomeTaxItemType.AdjustItem, 5); taxRawItems.Add(taxRawItemBS); otaxCal.TaxParameter = new TaxParameterService().Get((int)currentUser.TaxParamID); otaxCal.Employee = _employeeService.Get(employeeid); try { //List<IncomeTax> incomeTaxes = otaxCal.MaternityLeaveCalculate(taxRawItems, currentUser, ref nTaxAmount); } catch (Exception ex) { nTaxAmount = 0; throw new Exception("Failed to calculate tax"); } double netAmount = 0; netAmount = days * dailyAvgEarning - nTaxAmount; if (maternityLeave == null) { maternityLeave = new MaternityLeave(); } maternityLeave.EmployeeID = employeeid; maternityLeave.ApplicationDate = applyDate; maternityLeave.LeaveFromDate = leaveFromDate; maternityLeave.LeaveToDate = leaveToDate; maternityLeave.DateOfApproval = dateOfApproval; maternityLeave.ApproveDays = Convert.ToInt32(totalDays); maternityLeave.CurrentStatus = (int)EnumLeaveStatus.Approved; maternityLeave.DailyAvgEarning = dailyAvgEarning; maternityLeave.MaternityBenifit = days * dailyAvgEarning; maternityLeave.TaxAmount = nTaxAmount; maternityLeave.NetAmount = maternityLeave.MaternityBenifit - maternityLeave.TaxAmount; maternityLeave.PaidAmount = 0; maternityLeave.MaternityItemDetailColl = MaternityItemDetailOut; numPaymentDays = days / 2; } } else { MaternityItemDetailOut = maternityLeave.MaternityItemDetailColl; //foreach(MaternityLeave.MaternityItemDetail miDtailitem in maternityLeave.MaternityItemDetailColl) //{ // if(miDtailitem.Description == "Actual Working Days") // totalWorkingDays += (int)miDtailitem.Amount; //} maternityLeave = maternityLeaveService.RefreshGridPaymentMaternityLeave(maternityLeave, out numPaymentDays); //if (leaveFromDate <= leaveToDate) //{ // int days = totalDays; // if (totalWorkingDays > 0) // { // dailyAvgEarning = totalEarning / totalWorkingDays; // } //} } } catch (Exception e) { return StatusCode(StatusCodes.Status500InternalServerError, e.Message); } DataSet ds = new DataSet(); //List<MaternityLeave> maternityLeaves = new List<MaternityLeave>(); //maternityLeaves.Add(maternityLeave); DataTable maternityLeavedt = new DataTable(); maternityLeavedt.Columns.Add("id", typeof(int)); maternityLeavedt.Columns.Add("employeeID", typeof(int)); maternityLeavedt.Columns.Add("applicationDate", typeof(DateTime)); maternityLeavedt.Columns.Add("leaveFromDate", typeof(DateTime)); maternityLeavedt.Columns.Add("leaveToDate", typeof(DateTime)); maternityLeavedt.Columns.Add("dateOfApproval", typeof(DateTime)); maternityLeavedt.Columns.Add("approveDays", typeof(int)); maternityLeavedt.Columns.Add("currentStatus", typeof(int)); maternityLeavedt.Columns.Add("dailyAvgEarning", typeof(double)); maternityLeavedt.Columns.Add("maternityBenifit", typeof(double)); maternityLeavedt.Columns.Add("taxAmount", typeof(double)); maternityLeavedt.Columns.Add("netAmount", typeof(double)); maternityLeavedt.Columns.Add("paidAmount", typeof(double)); maternityLeavedt.Columns.Add("maternityItemDetailColl", typeof(List<MaternityLeave.MaternityItemDetail>)); maternityLeavedt.Columns.Add("maternityStatusDetailColl", typeof(List<MaternityLeave.MaternityStatusDetail>)); maternityLeavedt.Columns.Add("incomeTaxColl", typeof(List<IncomeTax>)); DataRow oDr = maternityLeavedt.NewRow(); oDr["id"] = maternityLeave.ID; oDr["employeeID"] = maternityLeave.EmployeeID; oDr["applicationDate"] = maternityLeave.ApplicationDate; oDr["leaveFromDate"] = maternityLeave.LeaveFromDate; oDr["leaveToDate"] = maternityLeave.LeaveToDate; oDr["dateOfApproval"] = maternityLeave.DateOfApproval; oDr["approveDays"] = maternityLeave.ApproveDays; oDr["currentStatus"] = maternityLeave.CurrentStatus; oDr["dailyAvgEarning"] = maternityLeave.DailyAvgEarning; oDr["maternityBenifit"] = maternityLeave.MaternityBenifit; oDr["taxAmount"] = maternityLeave.TaxAmount; oDr["netAmount"] = maternityLeave.NetAmount; oDr["paidAmount"] = maternityLeave.PaidAmount; oDr["maternityItemDetailColl"] = maternityLeave.MaternityItemDetailColl; oDr["maternityStatusDetailColl"] = maternityLeave.MaternityStatusDetailColl; oDr["incomeTaxColl"] = maternityLeave.IncomeTaxColl; maternityLeavedt.Rows.Add(oDr); maternityLeavedt.TableName = "MaternityLeave"; ds.Tables.Add(maternityLeavedt); dt.TableName = "MaternityLeaveItemDetailsGridData"; ds.Tables.Add(dt); DataTable paymentDays = new DataTable(); paymentDays.Columns.Add("numPaymentDays", typeof(int)); //paymentDays.Columns.Add("dailyAvgEarning", typeof(double)); DataRow dRow = paymentDays.NewRow(); dRow["numPaymentDays"] = numPaymentDays; //dRow["dailyAvgEarning"] = dailyAvgEarning; paymentDays.Rows.Add(dRow); paymentDays.TableName = "Payment"; ds.Tables.Add(paymentDays); //DataTable mIDetails = new DataTable(); //mIDetails.Columns.Add("id", typeof(int)); //mIDetails.Columns.Add("MaternityLeaveID", typeof(int)); //mIDetails.Columns.Add("ItemType", typeof(EnumMaternityItemDetailType)); //mIDetails.Columns.Add("Amount", typeof(double)); //mIDetails.Columns.Add("Description", typeof(string)); //mIDetails.Columns.Add("MonthDate", typeof(DateTime)); //mIDetails.Columns.Add("SalaryComponentID", typeof(int)); //mIDetails.Columns.Add("IncomeTaxItemType", typeof(int)); //mIDetails.Columns.Add("TaxRawItemObject", typeof(TaxRawItem)); //foreach (MaternityLeave.MaternityItemDetail itemDetail in MaternityItemDetailOut) //{ // DataRow midRow = mIDetails.NewRow(); // midRow["id"] = itemDetail.ID; // midRow["MaternityLeaveID"] = itemDetail.MaternityLeaveID; // midRow["ItemType"] = itemDetail.ItemType; // midRow["Amount"] = itemDetail.Amount; // midRow["Description"] = itemDetail.Description; // midRow["MonthDate"] = itemDetail.MonthDate; // midRow["SalaryComponentID"] = itemDetail.SalaryComponentID; // midRow["IncomeTaxItemType"] = itemDetail.IncomeTaxItemType; // midRow["TaxRawItemObject"] = itemDetail.TaxRawItemObject; // mIDetails.Rows.Add(midRow); //} //mIDetails.TableName = "MaternityItemDetails"; //ds.Tables.Add(mIDetails); return Ok(ds); } [HttpPost] [Route("saveMaternityLeave")] public ActionResult saveMaternityLeave(MaternityLeave oMaternityLeave) { CurrentUser currentUser = CurrentUser.GetCurrentUser(HttpContext.User); User user = new UserService().Get(currentUser.UserID); try { _maternityLeaveService.Save(oMaternityLeave, user); } catch (Exception ex) { return StatusCode(StatusCodes.Status500InternalServerError, ex.Message); } return Ok(); } #endregion Maternity Leave } }