public ActionResult edit(int id)
        {
            try
            {
                ViewBag.Debit    = dbcontext.GL_AccountSetup.Where(a => a.AccountType == 1 || a.AccountType == 3).ToList().Select(m => new { Code = m.AccountNumber + "-[" + m.AccountName + ']', ID = m.ID });
                ViewBag.Credites = dbcontext.GL_AccountSetup.Where(a => a.AccountType == 2 || a.AccountType == 3).ToList().Select(m => new { Code = m.AccountNumber + "-[" + m.AccountName + ']', ID = m.ID });
                ViewBag.PayrollTransactionJournalSetup = dbcontext.PayrollTransactionJournalSetup.ToList().Select(m => new { Code = m.JournalName_BatchCode + "-[" + m.JournalDesc + ']', ID = m.ID });
                ViewBag.Checktype             = dbcontext.Checktype.ToList().Select(m => new { Code = m.Code + "-[" + m.Name + ']', ID = m.ID });
                ViewBag.ExtendedFields_Header = dbcontext.ExtendedFields_Header.Where(a => a.Purpose == 3).ToList().Select(m => new { Code = m.ExtendedFields_Code + "-[" + m.ExtendedFields_Desc + ']', ID = m.ID });
                ViewBag.salaryitem            = dbcontext.salary_code.Where(a => a.SourceEntry == 3).ToList().Select(m => new { Code = m.SalaryCodeID + "-[" + m.SalaryCodeDesc + ']', ID = m.ID });

                var old_model = dbcontext.ManualPaymentTypes_Header.FirstOrDefault(m => m.ID == id);
                var header    = new Headers {
                    ManualPaymentTypes_Header = old_model, Transaction_Type = (Transaction_Type)old_model.Transaction_Type, Payment_Type_Source_Document = (Payment_Type_Source_Document)old_model.PaymentTypeSourceDocument, Frequency_Periodic_type = (Frequency_Periodic_type)old_model.FrequencyPeriodType
                };
                var old_details = dbcontext.ManualPaymentTypes_Detail.Where(m => m.PaymentTypeCode == old_model.ID.ToString()).ToList();
                var new_model   = new VMs {
                    ManualPaymentTypes_Detail = old_details, Header = header
                };
                return(View(new_model));
            }
            catch (Exception)
            {
                return(RedirectToAction("index"));
            }
        }
        public ActionResult edit(VMs model, FormCollection form)
        {
            try
            {
                ViewBag.Debit    = dbcontext.GL_AccountSetup.Where(a => a.AccountType == 1 || a.AccountType == 3).ToList().Select(m => new { Code = m.AccountNumber + "-[" + m.AccountName + ']', ID = m.ID });
                ViewBag.Credites = dbcontext.GL_AccountSetup.Where(a => a.AccountType == 2 || a.AccountType == 3).ToList().Select(m => new { Code = m.AccountNumber + "-[" + m.AccountName + ']', ID = m.ID });
                ViewBag.PayrollTransactionJournalSetup = dbcontext.PayrollTransactionJournalSetup.ToList().Select(m => new { Code = m.JournalName_BatchCode + "-[" + m.JournalDesc + ']', ID = m.ID });
                ViewBag.Checktype             = dbcontext.Checktype.ToList().Select(m => new { Code = m.Code + "-[" + m.Name + ']', ID = m.ID });
                ViewBag.ExtendedFields_Header = dbcontext.ExtendedFields_Header.Where(a => a.Purpose == 3).ToList().Select(m => new { Code = m.ExtendedFields_Code + "-[" + m.ExtendedFields_Desc + ']', ID = m.ID });
                ViewBag.salaryitem            = dbcontext.salary_code.Where(a => a.SourceEntry == 3).ToList().Select(m => new { Code = m.SalaryCodeID + "-[" + m.SalaryCodeDesc + ']', ID = m.ID });
                ///update////
                var updated_model = dbcontext.ManualPaymentTypes_Header.FirstOrDefault(m => m.ID == model.Header.ManualPaymentTypes_Header.ID);
                updated_model.Type_Code                 = model.Header.ManualPaymentTypes_Header.Type_Code;
                updated_model.ExtendedFields_Code       = model.Header.ManualPaymentTypes_Header.ExtendedFields_Code;
                updated_model.Modified_By               = User.Identity.Name;
                updated_model.Modified_Date             = DateTime.Now.Date;
                updated_model.Transaction_Type          = model.Header.Transaction_Type.GetHashCode();
                updated_model.PaymentTypeSourceDocument = model.Header.Payment_Type_Source_Document.GetHashCode();
                updated_model.FrequencyPeriodType       = model.Header.Frequency_Periodic_type.GetHashCode();
                dbcontext.SaveChanges();
                ///////////delete//////////
                var update_details = dbcontext.ManualPaymentTypes_Detail.Where(m => m.PaymentTypeCode == updated_model.ID.ToString()).ToList();
                dbcontext.ManualPaymentTypes_Detail.RemoveRange(update_details);
                dbcontext.SaveChanges();
                ///////////////////add///////
                var codeid       = form["codeid"].Split(',');
                var SalaryDes    = form["SalaryDes"].Split(',');
                var TypeE        = form["TypeE"].Split(',');
                var ValueType    = form["ValueType"].Split(',');
                var DefaultValue = form["DefaultValue"].Split(',');

                for (var i = 0; i < codeid.Length; i++)
                {
                    if (codeid[i] != "")
                    {
                        var nejjw_details = new ManualPaymentTypes_Detail {
                            PaymentTypeCode = updated_model.ID.ToString(), Created_By = User.Identity.Name, Created_Date = DateTime.Now.Date, SalaryCodeID = codeid[i], DefaultValue = int.Parse(DefaultValue[i]), Salarycodedescription = SalaryDes[i], Type = TypeE[i], ValueType = ValueType[i]
                        };
                        dbcontext.ManualPaymentTypes_Detail.Add(nejjw_details);
                        dbcontext.SaveChanges();
                    }
                }
                ////////////////
                return(RedirectToAction("index"));
            }
            catch (Exception e)
            {
                return(View(model));
            }
        }