public IHttpActionResult GetMedicalRequest(int id = 0)
        {
            var         Medical       = _hrUnitOfWork.MedicalRepository.ReadMedical(id);
            IEnumerable BeneficiaryId = null;
            IEnumerable Services      = null;
            //if (User.Identity.IsSelfServiceUser())
            //{
            int EmpId = User.Identity.GetEmpId();

            BeneficiaryId = _hrUnitOfWork.Repository <EmpRelative>().Where(a => a.EmpId == 1034).Select(p => new { id = p.Id, name = p.Name }).ToList();

            //}
            if (Medical != null)
            {
                BeneficiaryId = _hrUnitOfWork.Repository <EmpRelative>().Where(a => a.EmpId == Medical.EmpId).Select(p => new { id = p.Id, name = p.Name }).ToList();
                Services      = _hrUnitOfWork.MedicalRepository.GetAllservice(Medical.EmpId, Medical.BenefitId, Medical.BeneficiaryId);
            }
            var Providers    = _hrUnitOfWork.MedicalRepository.GetAllProvider();
            var Currency     = _hrUnitOfWork.LookUpRepository.GetCurrencyCode();
            var BenefitClass = _hrUnitOfWork.LookUpRepository.GetLookUpCodes("BenefitClass", User.Identity.GetLanguage()).Select(a => new { id = a.CodeId, name = a.Title });

            // string culture = User.Identity.GetLanguage();
            //List<string> columns = _hrUnitOfWork.LeaveRepository.GetAutoCompleteColumns("MedicalRequestsForm", User.Identity.GetDefaultCompany(), Version);
            //if (columns.FirstOrDefault(fc => fc == "EmpId") == null)
            //    var Employees = _hrUnitOfWork.EmployeeRepository.GetActiveEmployees(User.Identity.GetLanguage(), Medical != null ? Medical.EmpId : 0, User.Identity.GetDefaultCompany()).Select(a => new { id = a.Id, name = a.Employee, PicUrl = a.PicUrl, Icon = a.EmpStatus }).ToList();
            if (id == 0)
            {
                Medical = new MedicalRequestViewModel();
            }
            return(Ok(new { request = Medical, Currency = Currency, Providers = Providers, BeneficiaryId = BeneficiaryId, Services = Services, BenefitClass = BenefitClass }));
        }
Пример #2
0
        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 SaveMedRequests(MedicalRequestViewModel 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 = 1034;

            BenefitRequest request       = _hrUnitOfWork.MedicalRepository.Get(model.Id);
            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
                };
                AutoMapper(parms);
                request.BenefitPlanId  = benefitplanId;
                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.MedicalRepository.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.BenefitPlanId  = benefitplanId == 0 ? model.BenefitPlanId : benefitplanId;
                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.MedicalRepository.Attach(request);
                _hrUnitOfWork.MedicalRepository.Entry(request).State = System.Data.Entity.EntityState.Modified;
            }

            var Errors = SaveChanges(User.Identity.GetLanguage());

            if (Errors.Count > 0)
            {
                message = Errors.First().errors.First().message;
                return(Json(message));
            }

            if (model.submit)
            {
                WfViewModel wf = new WfViewModel()
                {
                    Source         = "Medical",
                    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;
                    _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);
                }
            }

            Errors = SaveChanges(User.Identity.GetLanguage());
            if (Errors.Count > 0)
            {
                message = Errors.First().errors.First().message;
            }

            return(Json(message));
        }