public ActionResult Create()
        {
            ViewBag.employee = dbcontext.Employee_Profile.ToList().Select(m => new { Code = "" + m.Code + "-----[" + m.Full_Name + ']', ID = m.ID }).ToList();

            ViewBag.Type = dbcontext.Checktype.ToList().Select(m => new { Code = m.Code + "-----" + m.Name, ID = m.ID });
            ViewBag.check_request_status = dbcontext.check_request_status.ToList().Select(m => new { Code = m.Code + "-----" + m.Name, ID = m.ID });
            var    req  = dbcontext.check_Request.ToList();
            var    stru = dbcontext.StructureModels.FirstOrDefault(m => m.All_Models == ChModels.Basic).Structure_Code;
            string number;

            if (req.Count > 0)
            {
                number = stru + (req.LastOrDefault().ID + 1).ToString();
            }
            else
            {
                number = stru + 1;
            }
            var check_Request_model = new check_Request {
                Request_number = number, check_number = 0.ToString(), Request_date = DateTime.Now.Date, Check_Due_date = DateTime.Now.Date, month = 1, year = 2020, amount = 0.00
            };
            var check_request_change_status = new check_request_change_status {
                Date = DateTime.Now.Date, selected_directedto = 0, selected_signby = 0
            };
            var model = new Check_Request_VM {
                check_Request = check_Request_model, check_request_change_status = check_request_change_status
            };

            return(View(model));
        }
        public ActionResult Create(Check_Request_VM model)
        {
            try
            {
                ViewBag.employee = dbcontext.Employee_Profile.ToList().Select(m => new { Code = "" + m.Code + "-----[" + m.Full_Name + ']', ID = m.ID }).ToList();

                ViewBag.Type = dbcontext.Checktype.ToList().Select(m => new { Code = m.Code + "-----" + m.Name, ID = m.ID });
                ViewBag.check_request_status = dbcontext.check_request_status.ToList().Select(m => new { Code = m.Code + "-----" + m.Name, ID = m.ID });
                if (model.check_Request.check_number == 0.ToString() || model.check_Request.check_number == null)
                {
                    TempData["Message"] = HR.Resource.Basic.YouMustenterchecknumber;
                    return(View(model));
                }
                var check_request_change_status_record = new check_request_change_status();
                if (model.check_request_change_status.selected_signby > 0)
                {
                    check_request_change_status_record.selected_signby = model.check_request_change_status.selected_signby;
                    check_request_change_status_record.Sign_by         = dbcontext.Employee_Profile.FirstOrDefault(m => m.ID == model.check_request_change_status.selected_signby);
                }
                else
                {
                    check_request_change_status_record.Sign_by = null;
                }
                if (model.check_request_change_status.selected_directedto > 0)
                {
                    check_request_change_status_record.selected_directedto = model.check_request_change_status.selected_directedto;
                    check_request_change_status_record.Directed_to         = dbcontext.Employee_Profile.FirstOrDefault(m => m.ID == model.check_request_change_status.selected_directedto);
                }
                else
                {
                    check_request_change_status_record.Directed_to = null;
                }
                check_request_change_status_record.Date    = model.check_request_change_status.Date;
                check_request_change_status_record.Comment = model.check_request_change_status.Comment;
                check_request_change_status_record.check_request_statusID = model.check_request_change_status.check_request_statusID;
                var ID = int.Parse(model.check_request_change_status.check_request_statusID);
                check_request_change_status_record.check_Request = dbcontext.check_request_status.FirstOrDefault(m => m.ID == ID);
                var check_request_change_status = dbcontext.check_request_change_status.Add(check_request_change_status_record);
                dbcontext.SaveChanges();
                if (check_request_change_status != null)
                {
                    var check_request_record = new check_Request();
                    check_request_record.Request_date   = model.check_Request.Request_date;
                    check_request_record.month          = model.check_Request.month;
                    check_request_record.year           = model.check_Request.year;
                    check_request_record.amount         = model.check_Request.amount;
                    check_request_record.check_number   = model.check_Request.check_number;
                    check_request_record.Check_Due_date = model.check_Request.Check_Due_date;
                    check_request_record.Description    = model.check_Request.Description;
                    check_request_record.Comment        = model.check_Request.Comment;
                    check_request_record.Request_number = model.check_Request.Request_number;
                    var ID_ = int.Parse(model.check_Request.ChecktypeID);
                    check_request_record.ChecktypeID = model.check_Request.ChecktypeID;
                    check_request_record.Checktype   = dbcontext.Checktype.FirstOrDefault(m => m.ID == ID_);
                    check_request_record.check_request_change_statusID = check_request_change_status.ID.ToString();
                    check_request_record.check_request_change_status   = check_request_change_status;
                    check_request_record.Sourcedocumentdescription     = model.check_Request.Sourcedocumentdescription;
                    check_request_record.Sourcedocumentnotes           = model.check_Request.Sourcedocumentnotes;
                    check_request_record.Sourcedocumentreference       = model.check_Request.Sourcedocumentreference;

                    dbcontext.check_Request.Add(check_request_record);
                    dbcontext.SaveChanges();
                    //=================================check for alert==================================

                    var get_result_check = HR.Controllers.check.check_alert("check request transaction", HR.Models.user.Action.Create, HR.Models.user.type_field.form);
                    if (get_result_check != null)
                    {
                        var inbox = new Models.user.Alert_inbox {
                            send_from_user_id = User.Identity.Name, send_to_user_id = get_result_check.send_to_ID_user, title = get_result_check.Subject, Subject = get_result_check.Message
                        };
                        if (get_result_check.until != null)
                        {
                            if (get_result_check.until.Value.Year != 0001)
                            {
                                inbox.until = get_result_check.until;
                            }
                        }
                        ApplicationDbContext dbcontext = new ApplicationDbContext();
                        dbcontext.Alert_inbox.Add(inbox);
                        dbcontext.SaveChanges();
                    }
                    //===================================================================================
                    return(RedirectToAction("index"));
                }
                else
                {
                    TempData["Message"] = HR.Resource.Basic.YouMustentercheckrequeststatu;
                    return(View(model));
                }
            }
            catch (Exception e)
            {
                return(View(model));
            }
        }