Esempio n. 1
0
        public IHttpActionResult PostTerminationRequest(TerminationFormVM model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            if (model == null)
            {
                return(NotFound());
            }

            var UserName = HttpContext.Current.User.Identity.Name;
            var request  = hrUnitOfWork.TerminationRepository.Get(model.Id);

            AutoMapper(new Models.AutoMapperParm
            {
                Destination = request,
                Source      = model,
                ObjectName  = "TermRequestForm",
                Version     = 0,
                Options     = null,
                Transtype   = TransType.Update
            });
            request.ModifiedTime = DateTime.Now;
            request.ModifiedUser = UserName;
            request.CompanyId    = model.CompanyId;
            //request.ApprovalStatus = 2;
            request.PlanedDate = model.PlanedDate;


            hrUnitOfWork.TerminationRepository.Attach(request);
            hrUnitOfWork.TerminationRepository.Entry(request).State = EntityState.Modified;

            var Errors = SaveChanges(model.Culture);

            if (Errors.Count > 0)
            {
                return(StatusCode(HttpStatusCode.Forbidden));
            }

            if (request.ApprovalStatus == 2)
            {
                string error = AddWFTrans(request, null, null, model);
                if (error.Length > 0)
                {
                    return(Json(error));
                }

                var checklist = hrUnitOfWork.CheckListRepository.GetTermCheckLists(model.CompanyId);
                if (checklist != null)
                {
                    EmpChkList EmpList = hrUnitOfWork.CheckListRepository.AddEmpChlst(checklist, UserName, request.EmpId, model.CompanyId);
                    hrUnitOfWork.CheckListRepository.Add(EmpList);
                    var checkTask = hrUnitOfWork.CheckListRepository.ReadCheckListTask(checklist.Id).ToList();
                    if (checkTask.Count > 0)
                    {
                        hrUnitOfWork.CheckListRepository.AddEmpTask(checkTask, UserName, EmpList);
                    }
                }
            }
            Errors = SaveChanges(model.Culture);
            if (Errors.Count > 0)
            {
                return(StatusCode(HttpStatusCode.NotModified));
            }
            return(Ok(model));
        }
Esempio n. 2
0
        private string AddWFTrans(Termination request, int?ManagerId, bool?backToEmp, TerminationFormVM model)
        {
            var         UserName = HttpContext.Current.User.Identity.Name;
            WfViewModel wf       = new WfViewModel()
            {
                Source         = "Termination",
                SourceId       = model.CompanyId,
                DocumentId     = request.Id,
                RequesterEmpId = request.EmpId,
                ApprovalStatus = request.ApprovalStatus,
                CreatedUser    = UserName
            };

            if (ManagerId != null)
            {
                wf.ManagerId = ManagerId;
            }
            else if (backToEmp != null)
            {
                wf.BackToEmployee = backToEmp.Value;
            }

            var wfTrans = hrUnitOfWork.LeaveRepository.AddWorkFlow(wf, model.Culture);

            request.WFlowId = wf.WFlowId;
            if (wfTrans == null && wf.WorkFlowStatus != "Success")
            {
                return(wf.WorkFlowStatus);
            }
            else if (wfTrans == null && wf.WorkFlowStatus == "Success")
            {
                request.ApprovalStatus = 6;
            }
            else if (wfTrans != null)
            {
                hrUnitOfWork.LeaveRepository.Add(wfTrans);
            }

            return("");
        }