public IHttpActionResult SavePeopleTrain(PeopleTrainFormViewModel model) { List <Model.ViewModel.Error> errors = new List <Model.ViewModel.Error>(); if (!ModelState.IsValid) { return(Json(Utils.ParseFormError(ModelState))); } string message = "Ok"; if (model.EmpId == 0) { model.EmpId = User.Identity.GetEmpId(); } model.EmpId = 1042; var record = _hrUnitOfWork.Repository <PeopleTraining>().FirstOrDefault(a => a.Id == model.Id); //insert if (record == null) { record = new PeopleTraining(); AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = record }; AutoMapper(parms); record.CreatedUser = User.Identity.Name; record.CreatedTime = DateTime.Now; record.CompanyId = User.Identity.GetDefaultCompany(); record.ApprovalStatus = 6; record.RequestDate = DateTime.Now; _hrUnitOfWork.TrainingRepository.Add(record); } //update else { AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = record }; AutoMapper(parms); record.ModifiedTime = DateTime.Now; record.ModifiedUser = User.Identity.Name; record.CompanyId = User.Identity.GetDefaultCompany(); record.RequestDate = DateTime.Now; record.ApprovalStatus = 6; _hrUnitOfWork.TrainingRepository.Attach(record); _hrUnitOfWork.TrainingRepository.Entry(record).State = EntityState.Modified; } var Errors = SaveChanges(User.Identity.GetLanguage()); if (Errors.Count > 0) { message = Errors.First().errors.First().message; } return(Ok(message)); }
public IHttpActionResult FollowupDetails(LeaveReqViewModel model) { List <Model.ViewModel.Error> errors = new List <Model.ViewModel.Error>(); string message = "Ok"; if (!ModelState.IsValid) { return(Json(Utils.ParseFormError(ModelState))); } LeaveRequest request = _hrUnitOfWork.LeaveRepository.Get(model.Id); model.PeriodId = request.PeriodId; AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = request }; AutoMapper(parms); if (request.ApprovalStatus != 9) { request.RejectDesc = null; request.RejectReason = null; } if (request.ApprovalStatus != 5) { request.ActualStartDate = null; request.ActualNofDays = null; request.ActualEndDate = null; } request.ModifiedTime = DateTime.Now; request.ModifiedUser = User.Identity.Name; if (request.ApprovalStatus == 5 || request.ApprovalStatus == 9) //Accepted or Rejected { string msg = AddWFTrans(request, null, null); // change here to 6 if (request.ApprovalStatus == 6) { //if msg == Success => msg = null || Error if (msg == "Success") { msg = ChangeAssignmentStatus(request); } if (!string.IsNullOrEmpty(msg)) { return(Json(msg)); //ApprovalStatus = 5 because not SaveChanges yet } _hrUnitOfWork.LeaveRepository.AddAcceptLeaveTrans(request, User.Identity.Name); } } _hrUnitOfWork.LeaveRepository.Attach(request); _hrUnitOfWork.LeaveRepository.Entry(request).State = EntityState.Modified; var Errors = SaveChanges(User.Identity.GetLanguage()); if (Errors.Count > 0) { message = Errors.First().errors.First().message; } return(Ok(message)); }
public IHttpActionResult SaveLeave(LeaveReqViewModel model) { List <Model.ViewModel.Error> errors = new List <Model.ViewModel.Error>(); if (!ModelState.IsValid) { return(Json(Utils.ParseFormError(ModelState))); } model.EmpId = User.Identity.GetEmpId(); LeaveRequest request = _hrUnitOfWork.LeaveRepository.Get(model.Id); var type = _hrUnitOfWork.LeaveRepository.GetLeaveType(model.TypeId); if (model.ReqReason == null && type.MustAddCause == true) { ModelState.AddModelError("ReqReason", MsgUtils.Instance.Trls("Required")); return(Ok(ModelState)); } string message = "Ok"; ///Save if (model.Id == 0) { /// New request = new LeaveRequest(); AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = request }; AutoMapper(parms); request.PeriodId = _hrUnitOfWork.LeaveRepository.GetLeaveRequestPeriod(type.CalendarId, request.StartDate, User.Identity.GetLanguage(), out message); request.ApprovalStatus = (byte)(model.submit == true ? 2 : 1); //1- New, 2- Submit request.CreatedUser = User.Identity.Name; request.CreatedTime = DateTime.Now; _hrUnitOfWork.LeaveRepository.Add(request); } else { /// Edit AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = request }; //, ObjectName = "LeaveRequest" AutoMapper(parms); if (model.submit) { _hrUnitOfWork.TrainingRepository.AddTrail(new AddTrailViewModel() { ColumnName = "ApprovalStatus", CompanyId = User.Identity.GetDefaultCompany(), ObjectName = "LeaveRequest", SourceId = request.Id.ToString(), UserName = User.Identity.Name, ValueAfter = MsgUtils.Instance.Trls("Submit"), ValueBefore = MsgUtils.Instance.Trls("Darft") }); } request.ApprovalStatus = (byte)(model.submit == true ? 2 : model.ApprovalStatus); //1- New, 2- Submit request.ModifiedUser = User.Identity.Name; request.ModifiedTime = DateTime.Now; _hrUnitOfWork.LeaveRepository.Attach(request); _hrUnitOfWork.LeaveRepository.Entry(request).State = EntityState.Modified; } var Errors = SaveChanges(User.Identity.GetLanguage()); if (Errors.Count > 0) { message = Errors.First().errors.First().message; return(Ok(message)); } if (model.submit) { WfViewModel wf = new WfViewModel() { Source = "Leave", SourceId = request.TypeId, DocumentId = request.Id, RequesterEmpId = request.EmpId, ApprovalStatus = 2, CreatedUser = User.Identity.Name, }; var wfTrans = _hrUnitOfWork.LeaveRepository.AddWorkFlow(wf, User.Identity.GetLanguage()); if (wfTrans == null && wf.WorkFlowStatus != "Success") { request.ApprovalStatus = 1; message += "," + (new JavaScriptSerializer()).Serialize(new { model = request, error = wf.WorkFlowStatus }); _hrUnitOfWork.LeaveRepository.Attach(request); _hrUnitOfWork.LeaveRepository.Entry(request).State = EntityState.Modified; } else if (wfTrans != null) { _hrUnitOfWork.LeaveRepository.Add(wfTrans); } } Errors = SaveChanges(User.Identity.GetLanguage()); if (Errors.Count > 0) { message = Errors.First().errors.First().message; } return(Ok(message)); }
public IHttpActionResult SaveComplaint(ComplaintRequestViewModel model) { List <Model.ViewModel.Error> errors = new List <Model.ViewModel.Error>(); if (!ModelState.IsValid) { return(Json(Utils.ParseFormError(ModelState))); } // return Ok(ModelState); model.EmpId = User.Identity.GetEmpId(); model.EmpId = 1027; ComplainRequest request = _hrUnitOfWork.ComplaintRepository.Get(model.Id); string message = "Ok"; ///Save if (model.Id == 0) { /// New request = new ComplainRequest(); AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = request }; AutoMapper(parms); request.ApprovalStatus = (byte)(model.submit == true ? 2 : 1); //1- New, 2- Submit request.CreatedUser = User.Identity.Name; request.CreatedTime = DateTime.Now; request.RequestDate = DateTime.Now; request.CompanyId = User.Identity.GetDefaultCompany(); _hrUnitOfWork.ComplaintRepository.Add(request); } else if (model.ApprovalStatus == 3 || model.ApprovalStatus == 1) { /// Edit AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = request }; AutoMapper(parms); if (model.submit) { _hrUnitOfWork.TrainingRepository.AddTrail(new AddTrailViewModel() { ColumnName = "ApprovalStatus", CompanyId = User.Identity.GetDefaultCompany(), ObjectName = "ComplainRequests", SourceId = request.Id.ToString(), UserName = User.Identity.Name, Version = 0, ValueAfter = MsgUtils.Instance.Trls("Submit"), ValueBefore = MsgUtils.Instance.Trls("Darft") }); } request.ApprovalStatus = (byte)(model.submit == true ? 2 : model.ApprovalStatus); //1- New, 2- Submit request.ModifiedUser = User.Identity.Name; request.ModifiedTime = DateTime.Now; request.RequestDate = DateTime.Now; _hrUnitOfWork.ComplaintRepository.Attach(request); _hrUnitOfWork.ComplaintRepository.Entry(request).State = EntityState.Modified; } var Errors = SaveChanges(User.Identity.GetLanguage()); if (Errors.Count > 0) { message = Errors.First().errors.First().message; return(Ok(message)); } if (model.submit) { WfViewModel wf = new WfViewModel() { Source = "Complaint" + model.Against, SourceId = User.Identity.GetDefaultCompany(), DocumentId = request.Id, RequesterEmpId = request.EmpId, ApprovalStatus = 2, CreatedUser = User.Identity.Name, }; var wfTrans = _hrUnitOfWork.ComplaintRepository.AddWorkFlow(wf, User.Identity.GetLanguage()); if (wfTrans == null && wf.WorkFlowStatus != "Success") { request.ApprovalStatus = 1; message = wf.WorkFlowStatus; } else if (wfTrans != null) { _hrUnitOfWork.LeaveRepository.Add(wfTrans); } } Errors = SaveChanges(User.Identity.GetLanguage()); if (Errors.Count > 0) { message = Errors.First().errors.First().message; } return(Ok(message)); }
public IHttpActionResult EditLeave(EditVM model) { if (!ModelState.IsValid) { return(BadRequest()); } if (model == null) { return(NotFound()); } List <Error> errors = new List <Error>(); var request = hrUnitOfWork.LeaveRepository.Get(model.RequestId); var type = hrUnitOfWork.LeaveRepository.GetLeaveType(request.TypeId); var UserName = HttpContext.Current.User.Identity.Name; AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = request, Version = 0, ObjectName = "LeaveRequest", Options = null, Transtype = TransType.Update }; AutoMapper(parms); hrUnitOfWork.LeaveRepository.AddTrail(new AddTrailViewModel { ObjectName = "LeaveRequest", CompanyId = model.CompanyId, UserName = UserName, Version = 0, ColumnName = "ActualStartDate", SourceId = request.Id.ToString(), ValueAfter = model.EditedStartDate.ToString(), ValueBefore = request.ActualEndDate.ToString() }); hrUnitOfWork.LeaveRepository.AddTrail(new AddTrailViewModel { ObjectName = "LeaveRequest", CompanyId = model.CompanyId, UserName = UserName, Version = 0, ColumnName = "ActualEndDate", SourceId = request.Id.ToString(), ValueAfter = model.EditedEndDate.ToString(), ValueBefore = request.ActualNofDays.ToString() }); request.ActualStartDate = model.EditedStartDate; request.ActualEndDate = model.EditedEndDate; request.EndDate = (DateTime)request.ActualEndDate; request.ReturnDate = model.EditedReturnDate; request.ModifiedUser = UserName; request.ModifiedTime = DateTime.Now; DateTime oldStartDate = request.ActualStartDate.GetValueOrDefault(); // remmber to check startdate hrUnitOfWork.LeaveRepository.AddEditLeaveTrans(request, oldStartDate); hrUnitOfWork.LeaveRepository.Attach(request); hrUnitOfWork.LeaveRepository.Entry(request).State = EntityState.Modified; var Errors = SaveChanges(model.Language); if (Errors.Count > 0) { return(StatusCode(HttpStatusCode.Forbidden)); } return(Ok(Errors)); }
public IHttpActionResult BreakLeave(BreakVM model) { if (!ModelState.IsValid) { return(BadRequest()); } if (model == null) { return(NotFound()); } List <Error> errors = new List <Error>(); var request = hrUnitOfWork.LeaveRepository.Get(model.RequestId); var type = hrUnitOfWork.LeaveRepository.GetLeaveType(request.TypeId); var UserName = HttpContext.Current.User.Identity.Name; AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = request, Version = 0, ObjectName = "LeaveRequest", Options = null, Transtype = TransType.Update }; AutoMapper(parms); hrUnitOfWork.LeaveRepository.AddTrail(new AddTrailViewModel { ObjectName = "LeaveRequest", CompanyId = model.CompanyId, UserName = UserName, Version = 0, ColumnName = "ActualEndDate", SourceId = request.Id.ToString(), ValueAfter = model.BreakEndDate.ToString(), ValueBefore = request.ActualEndDate.ToString() }); hrUnitOfWork.LeaveRepository.AddTrail(new AddTrailViewModel { ObjectName = "LeaveRequest", CompanyId = model.CompanyId, UserName = UserName, Version = 0, ColumnName = "ActualNofDays", SourceId = request.Id.ToString(), ValueAfter = model.BreakNofDays.ToString(), ValueBefore = request.ActualNofDays.ToString() }); float DiffDays = request.ActualNofDays.Value - model.BreakNofDays.Value; request.ActualEndDate = model.BreakEndDate; request.ActualNofDays = model.BreakNofDays; request.ReturnDate = request.StartDate.AddDays((double)model.BreakNofDays); request.NofDays = (float)model.BreakNofDays; // if (type.AbsenceType == 8) // { //request.EndDate = (DateTime)request.ActualEndDate; // } ///Brake Leave LeaveTrans hrUnitOfWork.LeaveRepository.AddBreakLeaveTrans(request, DiffDays, UserName); request.ModifiedUser = UserName; request.ModifiedTime = DateTime.Now; hrUnitOfWork.LeaveRepository.Attach(request); hrUnitOfWork.LeaveRepository.Entry(request).State = EntityState.Modified; var Errors = SaveChanges(model.Language); if (Errors.Count > 0) { return(StatusCode(HttpStatusCode.Forbidden)); } return(Ok(Errors)); }
public IHttpActionResult CancelLeave(CancelVM model) { if (!ModelState.IsValid) { return(BadRequest()); } if (model == null) { return(NotFound()); } List <Error> errors = new List <Error>(); var leaveReq = hrUnitOfWork.LeaveRepository.Get(model.RequestId); AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = leaveReq, Version = 0, ObjectName = "LeaveRequest", Options = null, Transtype = TransType.Update }; AutoMapper(parms); var UserName = HttpContext.Current.User.Identity.Name; //AddTrail(leaveReq.Id, "ApprovalStatus", MsgUtils.Instance.Trls("Cancel after accepted"), MsgUtils.Instance.Trls("Approved")); hrUnitOfWork.LeaveRepository.AddTrail(new AddTrailViewModel { ObjectName = "LeaveRequest", CompanyId = model.CompanyId, UserName = UserName, Version = 0, ColumnName = "ApprovalStatus", SourceId = leaveReq.Id.ToString(), ValueAfter = MsgUtils.Instance.Trls("Cancel after accepted"), ValueBefore = MsgUtils.Instance.Trls("Approved") }); leaveReq.ApprovalStatus = 8; ///Cancel change assign state hrUnitOfWork.EmployeeRepository.CancelLeaveAssignState(leaveReq, UserName, 0, model.Language); ///Cancel LeaveTrans var msg = hrUnitOfWork.LeaveRepository.AddCancelLeaveTrans(leaveReq, UserName, model.Language); if (msg.Length > 0) { return(Ok(msg)); } leaveReq.ModifiedUser = UserName; leaveReq.ModifiedTime = DateTime.Now; hrUnitOfWork.LeaveRepository.Attach(leaveReq); hrUnitOfWork.LeaveRepository.Entry(leaveReq).State = EntityState.Modified; var Errors = SaveChanges(model.Language); if (Errors.Count > 0) { return(StatusCode(HttpStatusCode.Forbidden)); } return(Ok(Errors)); }
public IHttpActionResult PutLeave(LeaveReqVM model) { if (!ModelState.IsValid) { return(BadRequest()); } if (model == null) { return(NotFound()); } var UserName = HttpContext.Current.User.Identity.Name; var type = hrUnitOfWork.LeaveRepository.GetLeaveType(model.TypeId); LeaveRequest request = hrUnitOfWork.LeaveRepository.Get(model.Id); //if (type.AllowFraction && (model.FractionDays != 0 && model.FractionDays != null)) //{ // model.NofDays = Math.Abs(model.FractionDays.GetValueOrDefault()); //} if (type.AllowFraction && (model.DayFraction != 0)) { switch (model.DayFraction) { case 1: case 3: model.NofDays = 0.25f; break; case 2: case 4: model.NofDays = 0.5f; break; } } AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = request, Version = 0, ObjectName = "LeaveRequest", Options = null, Transtype = TransType.Update }; AutoMapper(parms); if (model.submit) { hrUnitOfWork.TrainingRepository.AddTrail(new AddTrailViewModel() { ColumnName = "ApprovalStatus", CompanyId = model.CompanyId, ObjectName = "LeaveRequest", SourceId = request.Id.ToString(), UserName = UserName, Version = 0, ValueAfter = MsgUtils.Instance.Trls("Submit"), ValueBefore = MsgUtils.Instance.Trls("Darft") }); } request.ApprovalStatus = (byte)(model.submit ? (type.ExWorkflow ? 6 : 2) : model.ApprovalStatus); //1- New, 2- Submit 6- Approved //AbsenceType 8- Casual model.ApprovalStatus = request.ApprovalStatus; request.ModifiedUser = UserName; request.ModifiedTime = DateTime.Now; request.ReasonDesc = model.ReasonDesc; request.NofDays = (float)model.NofDays; request.DayFraction = (byte)model.DayFraction; if (type.ExWorkflow && model.submit) { request.ActualStartDate = request.StartDate; request.ActualEndDate = request.EndDate; request.ActualNofDays = request.NofDays; } hrUnitOfWork.LeaveRepository.Attach(request); hrUnitOfWork.LeaveRepository.Entry(request).State = EntityState.Modified; if (model.submit && type.AbsenceType == 8) { hrUnitOfWork.LeaveRepository.AddAcceptLeaveTrans(request, UserName); } var trans = hrUnitOfWork.BeginTransaction(); var Errors = SaveChanges(model.Culture); if (Errors.Count > 0) { trans.Rollback(); trans.Dispose(); return(StatusCode(HttpStatusCode.Forbidden)); } if (model.submit && !type.ExWorkflow) //Casual { WfViewModel wf = new WfViewModel() { Source = "Leave", SourceId = request.TypeId, DocumentId = request.Id, RequesterEmpId = request.EmpId, ApprovalStatus = 2, CreatedUser = UserName, }; var wfTrans = hrUnitOfWork.LeaveRepository.AddWorkFlow(wf, model.Culture); if (wfTrans == null && wf.WorkFlowStatus != "Success") { request.ApprovalStatus = 1; hrUnitOfWork.LeaveRepository.Attach(request); hrUnitOfWork.LeaveRepository.Entry(request).State = EntityState.Modified; } else if (wfTrans != null) { hrUnitOfWork.LeaveRepository.Add(wfTrans); } Errors = Save(model.Culture); if (Errors.Count > 0) { trans.Rollback(); trans.Dispose(); return(StatusCode(HttpStatusCode.NotModified)); } } trans.Commit(); trans.Dispose(); return(Ok(model)); }
public ActionResult Details(AssignOrderViewModel model, OptionsViewModel moreInfo) { List <Error> errors = new List <Error>(); if (ModelState.IsValid) { if (ServerValidationEnabled) { errors = _hrUnitOfWork.CompanyRepository.CheckForm(new CheckParm { CompanyId = CompanyId, ObjectName = "AssignOrders", TableName = "AssignOrders", Columns = Models.Utils.GetColumnViews(ModelState.Where(a => !a.Key.Contains('.'))), ParentColumn = "CompanyId", Culture = Language }); if (errors.Count() > 0) { foreach (var e in errors) { foreach (var errorMsg in e.errors) { ModelState.AddModelError(errorMsg.field, errorMsg.message); } } return(Json(Models.Utils.ParseFormErrors(ModelState))); } } } else { return(Json(Models.Utils.ParseFormErrors(ModelState))); } AssignOrder request = _hrUnitOfWork.LeaveRepository.GetAssignOrderByiD(model.Id); byte version; byte.TryParse(Request.Form["version"], out version); var isRequired = _hrUnitOfWork.Repository <Workflow>().Where(w => w.Source == "AssignOrder" + model.CalcMethod && w.CompanyId == CompanyId).Select(a => a.IsRequired).FirstOrDefault(); if (model.Id == 0) { //new request = new AssignOrder(); AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = request, Version = version, ObjectName = "AssignOrders", Options = moreInfo, Transtype = TransType.Insert }; AutoMapper(parms); request.CompanyId = CompanyId; request.CreatedUser = UserName; request.CreatedTime = DateTime.Now; request.ApprovalStatus = (byte)(isRequired ? 1 : 6); _hrUnitOfWork.LeaveRepository.AddAssignOrder(request); } else { //Edit AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = request, Version = version, ObjectName = "AssignOrders", Options = moreInfo, Transtype = TransType.Update }; AutoMapper(parms); // _hrUnitOfWork.TrainingRepository.AddTrail(new AddTrailViewModel() { ColumnName = "ApprovalStatus", CompanyId = CompanyId, ObjectName = "AssignOrders", SourceId = request.Id.ToString(), UserName = UserName, ValueAfter = MsgUtils.Instance.Trls("Submit"), ValueBefore = MsgUtils.Instance.Trls("Darft"), Transtype = (byte)TransType.Update }); request.CompanyId = CompanyId; request.CreatedUser = UserName; request.CreatedTime = DateTime.Now; request.ApprovalStatus = (byte)(isRequired ? 1 : 6); _hrUnitOfWork.LeaveRepository.AttachAssignOrder(request); _hrUnitOfWork.LeaveRepository.EntryAssignOrder(request).State = EntityState.Modified; } if (!isRequired && model.CalcMethod == 2 && model.Id == 0) { var error = _hrUnitOfWork.LeaveRepository.AddAssignOrdersLeaveTrans(request, UserName, Language); if (error.Length > 0) { return(Json(error)); } } errors = SaveChanges(Language); string message = "OK," + ((new JavaScriptSerializer()).Serialize(model)); if (errors.Count > 0) { message = errors.First().errors.First().message; return(Json(message)); } //workflow if (isRequired) { if (request.CalcMethod == 1) //monetary { WfViewModel wf = new WfViewModel() { Source = "AssignOrder1", SourceId = request.CompanyId, DocumentId = request.Id, RequesterEmpId = request.EmpId, ApprovalStatus = 6, CreatedUser = UserName, }; var wfTrans = _hrUnitOfWork.LeaveRepository.AddWorkFlow(wf, Language); if (wfTrans == null && wf.WorkFlowStatus != "Success") { request.ApprovalStatus = 1; message += "," + (new JavaScriptSerializer()).Serialize(new { model = request, error = wf.WorkFlowStatus }); _hrUnitOfWork.LeaveRepository.AttachAssignOrder(request); _hrUnitOfWork.LeaveRepository.EntryAssignOrder(request).State = EntityState.Modified; } else if (wfTrans != null) { _hrUnitOfWork.LeaveRepository.Add(wfTrans); } } else if (request.CalcMethod == 2) //time compensation { WfViewModel wf = new WfViewModel() { Source = "AssignOrder2", SourceId = request.CompanyId, DocumentId = request.Id, RequesterEmpId = request.EmpId, ApprovalStatus = 6, CreatedUser = UserName, }; var wfTrans = _hrUnitOfWork.LeaveRepository.AddWorkFlow(wf, Language); if (wfTrans == null && wf.WorkFlowStatus != "Success") { request.ApprovalStatus = 1; message += "," + (new JavaScriptSerializer()).Serialize(new { model = request, error = wf.WorkFlowStatus }); _hrUnitOfWork.LeaveRepository.AttachAssignOrder(request); _hrUnitOfWork.LeaveRepository.EntryAssignOrder(request).State = EntityState.Modified; } else if (wfTrans != null) { _hrUnitOfWork.LeaveRepository.Add(wfTrans); } } errors = Save(Language); if (errors.Count > 0) { message = errors.First().errors.First().message; } } //end workflow if (message == "OK") { message += "," + ((new JavaScriptSerializer()).Serialize(request)); } return(Json(message)); }
public ActionResult Details(RenewRequestViewModel model, OptionsViewModel moreInfo) { List <Error> errors = new List <Error>(); if (ModelState.IsValid) { if (ServerValidationEnabled) { errors = _hrUnitOfWork.CompanyRepository.CheckForm(new CheckParm { CompanyId = CompanyId, ObjectName = "RenewRequest", TableName = "RenewRequests", Columns = Models.Utils.GetColumnViews(ModelState.Where(a => !a.Key.Contains('.'))), ParentColumn = "CompanyId", Culture = Language }); if (errors.Count() > 0) { foreach (var e in errors) { foreach (var errorMsg in e.errors) { ModelState.AddModelError(errorMsg.field, errorMsg.message); } } return(Json(Models.Utils.ParseFormErrors(ModelState))); } } } else { return(Json(Models.Utils.ParseFormErrors(ModelState))); } RenewRequest request = _hrUnitOfWork.PeopleRepository.Getrequest(model.Id); byte version; byte.TryParse(Request.Form["version"], out version); string message = "OK"; if (model.Id == 0) { request = new RenewRequest(); //if (model.ColumnName== "QualificationId") //{ // model.OldValueId = int.Parse(model.OldValue); // model.NewValueId = int.Parse(model.NewValue); // model.NewValue= _hrUnitOfWork.QualificationRepository.GetAll().Where(qq => qq.Id == int.Parse(model.NewValue)).FirstOrDefault().Name; // model.OldValue = _hrUnitOfWork.QualificationRepository.GetAll().Where(qq => qq.Id == int.Parse(model.OldValue)).FirstOrDefault().Name; //} //if (model.ColumnName == "MaritalStat") //{ // model.OldValueId = int.Parse(model.OldValue); // model.NewValueId = int.Parse(model.NewValue); // model.NewValue = _hrUnitOfWork.LookUpRepository.GetLookUpUserCodes("MaritalStat", Language).Where(qq => qq.CodeId == int.Parse(model.NewValue)).FirstOrDefault().Name; // model.OldValue = _hrUnitOfWork.LookUpRepository.GetLookUpUserCodes("MaritalStat", Language).Where(qq => qq.CodeId == int.Parse(model.OldValue)).FirstOrDefault().Name; //} request.EmpId = EmpId; AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = request, Version = version, ObjectName = "RenewRequest", Options = moreInfo, Transtype = TransType.Insert }; AutoMapper(parms); request.ApprovalStatus = 2; request.CreatedUser = UserName; request.CreatedTime = DateTime.Now; _hrUnitOfWork.PeopleRepository.Add(request); } else { AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = request, Version = version, ObjectName = "RenewRequest", Options = moreInfo, Transtype = TransType.Update }; AutoMapper(parms); _hrUnitOfWork.PeopleRepository.Attach(request); _hrUnitOfWork.PeopleRepository.Entry(request).State = EntityState.Modified; } var Errors = SaveChanges(Language); if (Errors.Count > 0) { message = Errors.First().errors.First().message; return(Json(message)); } if (message == "OK") { message += "," + ((new JavaScriptSerializer()).Serialize(request)); } var js = Json(message); return(Json(message)); }
public ActionResult SaveBenefitSettlement(BenefitRequestFollowUp model, OptionsViewModel moreInfo) { List <Error> errors = new List <Error>(); if (ModelState.IsValid) { if (ServerValidationEnabled) { errors = _hrUnitOfWork.CompanyRepository.CheckForm(new CheckParm { CompanyId = CompanyId, ObjectName = "acceptedMedical", TableName = "BenefitRequests", Columns = Models.Utils.GetColumnViews(ModelState.Where(a => !a.Key.Contains('.'))), ParentColumn = "CompanyId", Culture = Language }); if (errors.Count() > 0) { foreach (var e in errors) { foreach (var errorMsg in e.errors) { ModelState.AddModelError(errorMsg.field, errorMsg.message); } } return(Json(Models.Utils.ParseFormErrors(ModelState))); } } } else { return(Json(Models.Utils.ParseFormErrors(ModelState))); } BenefitRequest request = _hrUnitOfWork.MedicalRepository.Get(model.Id); byte version; byte.TryParse(Request.Form["version"], out version); string message = "OK"; var benefitplanId = _hrUnitOfWork.MedicalRepository.GetBenefitPlanId(model.ParentId, model.EmpId, model.BeneficiaryId); if (request == null) { /// New request = new BenefitRequest(); AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = request, Version = version, ObjectName = "acceptedMedical", Options = moreInfo, Transtype = TransType.Insert }; AutoMapper(parms); request.ApprovalStatus = 6; request.CreatedUser = UserName; request.CreatedTime = DateTime.Now; request.RequestDate = DateTime.Now; request.BenefitPlanId = benefitplanId; request.CompanyId = CompanyId; if (model.IssueDate != null) { var Subperiod = _hrUnitOfWork.MedicalRepository.GetMedicalPeriodId(benefitplanId, (DateTime)model.IssueDate); request.SubPeriodId = Subperiod; } _hrUnitOfWork.MedicalRepository.Add(request); } else if (request != null) { /// Edit AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = request, Version = version, ObjectName = "MedicalRequestsForm", Options = moreInfo, Transtype = TransType.Update }; AutoMapper(parms); request.ApprovalStatus = model.ApprovalStatus; request.ModifiedUser = UserName; request.ModifiedTime = DateTime.Now; request.RequestDate = model.RequestDate; if (request.SubPeriodId == null) { var coverageAmount = _hrUnitOfWork.Repository <BenefitPlan>().Where(a => a.Id == request.BenefitPlanId).Select(a => a.CoverAmount).FirstOrDefault(); var coverAmount = coverageAmount == null ? 0 : coverageAmount; } else { } _hrUnitOfWork.MedicalRepository.Attach(request); _hrUnitOfWork.MedicalRepository.Entry(request).State = System.Data.Entity.EntityState.Modified; } var Errors = SaveChanges(Language); if (Errors.Count > 0) { message = Errors.First().errors.First().message; return(Json(message)); } return(Json(message)); }
public ActionResult SaveMedical(MedicalRequestViewModel model, OptionsViewModel moreInfo) { List <Error> errors = new List <Error>(); if (ModelState.IsValid) { if (ServerValidationEnabled) { errors = _hrUnitOfWork.CompanyRepository.CheckForm(new CheckParm { CompanyId = CompanyId, ObjectName = "MedicalRequestsForm", TableName = "MedicalRequests", Columns = Models.Utils.GetColumnViews(ModelState.Where(a => !a.Key.Contains('.'))), ParentColumn = "CompanyId", Culture = Language }); if (errors.Count() > 0) { foreach (var e in errors) { foreach (var errorMsg in e.errors) { ModelState.AddModelError(errorMsg.field, errorMsg.message); } } return(Json(Models.Utils.ParseFormErrors(ModelState))); } } } else { return(Json(Models.Utils.ParseFormErrors(ModelState))); } BenefitRequest request = _hrUnitOfWork.MedicalRepository.Get(model.Id); byte version; byte.TryParse(Request.Form["version"], out version); string message = "OK"; var benefitplanId = _hrUnitOfWork.MedicalRepository.GetBenefitPlanId(model.ParentId, model.EmpId, model.BeneficiaryId); ///Save if (model.Id == 0) { /// New request = new BenefitRequest(); AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = request, Version = version, ObjectName = "MedicalRequestsForm", Options = moreInfo, Transtype = TransType.Insert }; AutoMapper(parms); request.BenefitPlanId = benefitplanId; request.ApprovalStatus = (byte)(model.submit == true ? 2 : 1); //1- New, 2- Submit request.CreatedUser = UserName; request.CreatedTime = DateTime.Now; request.RequestDate = DateTime.Now; request.CompanyId = CompanyId; _hrUnitOfWork.MedicalRepository.Add(request); } else if (model.ApprovalStatus == 3 || model.ApprovalStatus == 1) { /// Edit AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = request, Version = version, ObjectName = "MedicalRequestsForm", Options = moreInfo, Transtype = TransType.Update }; AutoMapper(parms); if (model.submit) { _hrUnitOfWork.TrainingRepository.AddTrail(new AddTrailViewModel() { ColumnName = "ApprovalStatus", CompanyId = CompanyId, ObjectName = "ComplainRequests", SourceId = request.Id.ToString(), UserName = UserName, Version = 0, ValueAfter = MsgUtils.Instance.Trls("Submit"), ValueBefore = MsgUtils.Instance.Trls("Darft") }); } request.BenefitPlanId = benefitplanId == 0 ? model.BenefitPlanId : benefitplanId; request.ApprovalStatus = (byte)(model.submit == true ? 2 : model.ApprovalStatus); //1- New, 2- Submit request.ModifiedUser = UserName; request.ModifiedTime = DateTime.Now; request.RequestDate = DateTime.Now; _hrUnitOfWork.MedicalRepository.Attach(request); _hrUnitOfWork.MedicalRepository.Entry(request).State = System.Data.Entity.EntityState.Modified; } var Errors = SaveChanges(Language); if (Errors.Count > 0) { message = Errors.First().errors.First().message; return(Json(message)); } if (model.submit) { var chkWorkFlow = _hrUnitOfWork.Repository <Workflow>().Where(w => w.Source == "Medical").Select(a => a.IsRequired).FirstOrDefault(); if (chkWorkFlow == true) { WfViewModel wf = new WfViewModel() { Source = "Medical", SourceId = CompanyId, DocumentId = request.Id, RequesterEmpId = request.EmpId, ApprovalStatus = 2, CreatedUser = UserName, }; var wfTrans = _hrUnitOfWork.ComplaintRepository.AddWorkFlow(wf, Language); if (wfTrans == null && wf.WorkFlowStatus != "Success") { request.ApprovalStatus = 1; _hrUnitOfWork.MedicalRepository.Attach(request); _hrUnitOfWork.MedicalRepository.Entry(request).State = System.Data.Entity.EntityState.Modified; message = wf.WorkFlowStatus; } else if (wfTrans != null) { _hrUnitOfWork.LeaveRepository.Add(wfTrans); } } } else { request.ApprovalStatus = 1; _hrUnitOfWork.MedicalRepository.Attach(request); _hrUnitOfWork.MedicalRepository.Entry(request).State = System.Data.Entity.EntityState.Modified; } Errors = SaveChanges(Language); if (Errors.Count > 0) { message = Errors.First().errors.First().message; } return(Json(message)); }
public IHttpActionResult SaveTermination(TerminationFormViewModel model) { List <Model.ViewModel.Error> errors = new List <Model.ViewModel.Error>(); if (!ModelState.IsValid) { return(Json(Utils.ParseFormError(ModelState))); } string message = "Ok"; model.EmpId = User.Identity.GetEmpId(); model.EmpId = 1042; var Term = _hrUnitOfWork.TerminationRepository.Get(model.Id); if (Term == null) // New { Term = new Termination(); AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = Term }; AutoMapper(parms); Term.CreatedTime = DateTime.Now; Term.CreatedUser = User.Identity.Name; Term.RequestDate = DateTime.Now; if (model.Excute) { Term.ApprovalStatus = 2; } _hrUnitOfWork.TerminationRepository.Add(Term); } else // Edit { AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = Term }; AutoMapper(parms); Term.ModifiedTime = DateTime.Now; Term.ModifiedUser = User.Identity.Name; if (model.Excute) { Term.ApprovalStatus = 2; } _hrUnitOfWork.TerminationRepository.Attach(Term); _hrUnitOfWork.TerminationRepository.Entry(Term).State = EntityState.Modified; } if (model.Excute) { string error = AddWFTrans(Term, null, null); if (error.Length > 0) { return(Json(error)); } var checklist = _hrUnitOfWork.CheckListRepository.GetTermCheckLists(User.Identity.GetDefaultCompany()); if (checklist != null) { EmpChkList EmpList = _hrUnitOfWork.CheckListRepository.AddEmpChlst(checklist, User.Identity.Name, Term.EmpId, User.Identity.GetDefaultCompany()); _hrUnitOfWork.CheckListRepository.Add(EmpList); var checkTask = _hrUnitOfWork.CheckListRepository.ReadCheckListTask(checklist.Id).ToList(); if (checkTask.Count > 0) { _hrUnitOfWork.CheckListRepository.AddEmpTask(checkTask, User.Identity.Name, EmpList); } } } try { _hrUnitOfWork.Save(); } catch (Exception ex) { message = _hrUnitOfWork.HandleDbExceptions(ex, User.Identity.GetLanguage()); if (message.Length > 0) { return(Ok(message)); } } return(Ok(message)); }
public ActionResult Details(LeaveOpViewModel model, OptionsViewModel moreInfo) { List <Error> errors = new List <Error>(); if (ModelState.IsValid) { if (ServerValidationEnabled) { errors = _hrUnitOfWork.CompanyRepository.CheckForm(new CheckParm { CompanyId = CompanyId, ObjectName = "LeaveRequestForm", TableName = "LeaveRequests", Columns = Models.Utils.GetColumnViews(ModelState.Where(a => !a.Key.Contains('.'))), ParentColumn = "CompanyId", Culture = Language }); if (errors.Count() > 0) { foreach (var e in errors) { foreach (var errorMsg in e.errors) { ModelState.AddModelError(errorMsg.field, errorMsg.message); } } return(Json(Models.Utils.ParseFormErrors(ModelState))); } } } else { return(Json(Models.Utils.ParseFormErrors(ModelState))); } //Btn: 1.Edit, 2.Cancel, 3.Break string field = null; if (model.btn == 1 && model.EditedStartDate == null) { field = "EditedStartDate"; } else if (model.btn == 2 && model.CancelReason == null) { field = "CancelReason"; } else if (model.btn == 3 && model.BreakReturnDate == null) { field = "BreakReturnDate"; } if (field != null) { ModelState.AddModelError(field, MsgUtils.Instance.Trls("Required")); return(Json(Models.Utils.ParseFormErrors(ModelState))); } LeaveRequest request = _hrUnitOfWork.LeaveRepository.Get(model.Id); byte version; byte.TryParse(Request.Form["version"], out version); string message = "OK"; AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = request, Version = version, ObjectName = "LeaveRequest", Options = moreInfo, Transtype = TransType.Update }; AutoMapper(parms); ///Btn: 1.Edit, 2.Cancel, 3.Break if (model.btn == 1) //Edit { AddTrail(request.Id, "ActualStartDate", model.EditedStartDate.ToString(), request.ActualStartDate.ToString()); AddTrail(request.Id, "ActualEndDate", model.EditedEndDate.ToString(), request.ActualEndDate.ToString()); DateTime oldStartDate = request.ActualStartDate.GetValueOrDefault(); request.ActualStartDate = model.EditedStartDate; request.ActualEndDate = model.EditedEndDate; _hrUnitOfWork.LeaveRepository.AddEditLeaveTrans(request, oldStartDate); } else if (model.btn == 2) //Cancel { AddTrail(request.Id, "ApprovalStatus", MsgUtils.Instance.Trls("Cancel after accepted"), MsgUtils.Instance.Trls("Approved")); request.ApprovalStatus = 8; ///Cancel change assign state _hrUnitOfWork.EmployeeRepository.CancelLeaveAssignState(request, UserName, version, Language); ///Cancel LeaveTrans var msg = _hrUnitOfWork.LeaveRepository.AddCancelLeaveTrans(request, UserName, Language); if (msg.Length > 0) { return(Json(msg)); } } else if (model.btn == 3) //Break { AddTrail(request.Id, "ActualEndDate", model.BreakEndDate.ToString(), request.ActualEndDate.ToString()); AddTrail(request.Id, "ActualNofDays", model.BreakNofDays.ToString(), request.ActualNofDays.ToString()); float DiffDays = request.ActualNofDays.Value - model.BreakNofDays.Value; request.ActualEndDate = model.BreakEndDate; request.ActualNofDays = model.BreakNofDays; request.ReturnDate = model.BreakReturnDate; ///Brake Leave LeaveTrans _hrUnitOfWork.LeaveRepository.AddBreakLeaveTrans(request, DiffDays, UserName); } request.ModifiedUser = UserName; request.ModifiedTime = DateTime.Now; _hrUnitOfWork.LeaveRepository.Attach(request); _hrUnitOfWork.LeaveRepository.Entry(request).State = EntityState.Modified; var Errors = SaveChanges(Language); if (Errors.Count > 0) { message = Errors.First().errors.First().message; } return(Json(message)); }
public ActionResult Details(LeaveReqViewModel model, OptionsViewModel moreInfo, bool clear) { List <Error> errors = new List <Error>(); if (ModelState.IsValid) { if (ServerValidationEnabled) { errors = _hrUnitOfWork.CompanyRepository.CheckForm(new CheckParm { CompanyId = CompanyId, ObjectName = "LeaveRequest", TableName = "LeaveRequests", Columns = Models.Utils.GetColumnViews(ModelState.Where(a => !a.Key.Contains('.'))), ParentColumn = "CompanyId", Culture = Language }); if (errors.Count() > 0) { foreach (var e in errors) { foreach (var errorMsg in e.errors) { ModelState.AddModelError(errorMsg.field, errorMsg.message); } } return(Json(Models.Utils.ParseFormErrors(ModelState))); } } } else { return(Json(Models.Utils.ParseFormErrors(ModelState))); } LeaveRequest request = _hrUnitOfWork.LeaveRepository.Get(model.Id); var type = _hrUnitOfWork.LeaveRepository.GetLeaveType(model.TypeId); byte version; byte.TryParse(Request.Form["version"], out version); string message = "OK"; if (type.AllowFraction && model.DayFraction != 0) { switch (model.DayFraction) { case 1: case 3: model.NofDays = 0.25f; break; case 2: case 4: model.NofDays = 0.5f; break; } } ///Save if (model.Id == 0) { /// New request = new LeaveRequest(); model.BalanceBefore = model.BalBefore; AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = request, Version = version, ObjectName = "LeaveRequest", Options = moreInfo, Transtype = TransType.Insert }; AutoMapper(parms); request.CompanyId = CompanyId; request.PeriodId = _hrUnitOfWork.LeaveRepository.GetLeaveRequestPeriod(type.CalendarId, request.StartDate, Language, out message); request.ApprovalStatus = (byte)(model.submit ? (type.ExWorkflow ? 6 : 2) : 1); //ApprovalStatus 1- New, 2- Submit 6- Approved //AbsenceType 8- Casual model.CompanyId = request.CompanyId; model.PeriodId = request.PeriodId; model.ApprovalStatus = request.ApprovalStatus; if (type.ExWorkflow && model.submit) { request.ActualStartDate = request.StartDate; request.ActualEndDate = request.EndDate; request.ActualNofDays = request.NofDays; model.ActualStartDate = request.StartDate; model.ActualEndDate = request.EndDate; model.ActualNofDays = request.NofDays; } request.CreatedUser = UserName; request.CreatedTime = DateTime.Now; _hrUnitOfWork.LeaveRepository.Add(request); if (!type.ExWorkflow && !clear && request.ApprovalStatus == 1) { model.ForceUpload = _hrUnitOfWork.Repository <RequestWf>().Where(a => a.Source == "Leave" && a.SourceId == type.Id).Select(a => a.ForceUpload).FirstOrDefault() ? 1 : 0; } } else { /// Edit AutoMapperParm parms = new AutoMapperParm() { Source = model, Destination = request, Version = version, ObjectName = "LeaveRequest", Options = moreInfo, Transtype = TransType.Update }; AutoMapper(parms); if (model.submit) { _hrUnitOfWork.TrainingRepository.AddTrail(new AddTrailViewModel() { ColumnName = "ApprovalStatus", CompanyId = CompanyId, ObjectName = "LeaveRequest", SourceId = request.Id.ToString(), UserName = UserName, Version = Convert.ToByte(Request.Form["Version"]), ValueAfter = MsgUtils.Instance.Trls("Submit"), ValueBefore = MsgUtils.Instance.Trls("Darft"), Transtype = (byte)TransType.Update }); } request.ApprovalStatus = (byte)(model.submit ? (type.ExWorkflow ? 6 : 2) : model.ApprovalStatus); //1- New, 2- Submit 6- Approved //AbsenceType 8- Casual model.ApprovalStatus = request.ApprovalStatus; request.ModifiedUser = UserName; request.ModifiedTime = DateTime.Now; if (type.ExWorkflow && model.submit) { request.ActualStartDate = request.StartDate; request.ActualEndDate = request.EndDate; request.ActualNofDays = request.NofDays; model.ActualStartDate = request.StartDate; model.ActualEndDate = request.EndDate; model.ActualNofDays = request.NofDays; } _hrUnitOfWork.LeaveRepository.Attach(request); _hrUnitOfWork.LeaveRepository.Entry(request).State = EntityState.Modified; } if (model.submit && type.ExWorkflow && request.ApprovalStatus == 1) { _hrUnitOfWork.LeaveRepository.AddAcceptLeaveTrans(request, UserName); } // update using transactions var trans = _hrUnitOfWork.BeginTransaction(); // #First save changes var Errors = SaveChanges(Language); if (Errors.Count > 0) { message = Errors.First().errors.First().message; trans.Rollback(); trans.Dispose(); // return string error message return(Json(message)); } model.Id = request.Id; if (model.submit) //Casual && type.AbsenceType != 8 { WfViewModel wf = new WfViewModel() { Source = "Leave", SourceId = request.TypeId, DocumentId = request.Id, RequesterEmpId = request.EmpId, ApprovalStatus = 2, CreatedUser = UserName, }; var wfTrans = _hrUnitOfWork.LeaveRepository.AddWorkFlow(wf, Language); if (wfTrans == null && wf.WorkFlowStatus != "Success") { request.ApprovalStatus = 1; message += "," + (new JavaScriptSerializer()).Serialize(new { model = request, error = wf.WorkFlowStatus }); _hrUnitOfWork.LeaveRepository.Attach(request); _hrUnitOfWork.LeaveRepository.Entry(request).State = EntityState.Modified; } else if (wfTrans != null) { _hrUnitOfWork.LeaveRepository.Add(wfTrans); } // #Second Save changes Errors = Save(Language); if (Errors.Count > 0) { message = Errors.First().errors.First().message; trans.Rollback(); trans.Dispose(); // return string error message return(Json(message)); } } if (clear) { model = new LeaveReqViewModel(); } if (message == "OK") { // send OK,model message += "," + ((new JavaScriptSerializer()).Serialize(new { model = model })); trans.Commit(); } return(Json(message)); }