public JsonResult Create(acc_transactions acc_transactions)
        {
            var CompanyId = Convert.ToInt32(Session["CompanyID"]);

            using (var transaction = db.Database.BeginTransaction())
            {
                try
                {
                    var year_id = Convert.ToInt32(Session["FinancialYearID"]);

                    var      creaded_by = User.Identity.GetUserId <int>();
                    DateTime dtDate     = DateTime.Now;
                    acc_transactions.FinancialYear_Id = year_id;
                    acc_transactions.Company_Id       = CompanyId;

                    db.acc_transactions.Add(acc_transactions);
                    db.SaveChanges();
                    int scope_id = acc_transactions.id;
                    transaction.Commit();
                    return(Json(Convert.ToString(scope_id)));
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    ViewBag.FinancialYear_Id = new SelectList(db.FinancialYears, "Id", "Name");
                    ViewBag.voucher_type     = new SelectList(db.VoucherTypes, "Id", "VoucherName");
                    ViewBag.acc_ledger_id    = new SelectList(db.acc_ledger.Where(x => x.Company_Id == CompanyId), "Id", "name");
                }
            }
            return(Json("0"));
        }
        // POST: /Journal/Delete/5


        public ActionResult DeleteConfirmed(int id)
        {
            acc_transactions acc_transactions = db.acc_transactions.Find(id);

            if (acc_transactions == null)
            {
                return(HttpNotFound());
            }

            db.acc_transactions.Remove(acc_transactions);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        // GET: /Journal/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            acc_transactions acc_transactions = db.acc_transactions.Find(id);

            if (acc_transactions == null)
            {
                return(HttpNotFound());
            }
            return(View(acc_transactions));
        }
        public JsonResult Edit(acc_transactions acc_transactions)
        {
            var CompanyId = Convert.ToInt32(Session["CompanyID"]);

            using (var transaction = db.Database.BeginTransaction())
            {
                try
                {
                    var      year_id    = Convert.ToInt32(Session["FinancialYearID"]);
                    var      creaded_by = User.Identity.GetUserId <int>();
                    DateTime dtDate     = DateTime.Now;
                    acc_transactions.FinancialYear_Id = year_id;
                    acc_transactions.Company_Id       = CompanyId;

                    foreach (var objdtl in acc_transactions.acc_transactions_details)
                    {
                        if (objdtl.id == 0)
                        {
                            db.Entry(objdtl).State = EntityState.Added;
                            db.SaveChanges();
                        }
                        else
                        {
                            db.Entry(objdtl).State = EntityState.Modified;
                        }
                    }



                    while (acc_transactions.acc_transactions_details.Where(x => x.id == 0).Count() > 0)
                    {
                        acc_transactions.acc_transactions_details.Remove(acc_transactions.acc_transactions_details.Where(x => x.id == 0).ToList()[0]);
                    }

                    db.Entry(acc_transactions).State = EntityState.Modified;
                    db.SaveChanges();

                    transaction.Commit();
                    return(Json(Convert.ToString(acc_transactions.id)));
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    ViewBag.FinancialYear_Id = new SelectList(db.FinancialYears, "Id", "Name");
                    ViewBag.voucher_type     = new SelectList(db.VoucherTypes, "Id", "VoucherName");
                    ViewBag.acc_ledger_id    = new SelectList(db.acc_ledger.Where(x => x.Company_Id == CompanyId), "Id", "name");
                }
            }
            return(Json("0"));
        }
        // GET: /Journal/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var CompanyId = Convert.ToInt32(Session["CompanyID"]);
            acc_transactions acc_transactions = db.acc_transactions.Where(x => x.Company_Id == CompanyId && x.id == id).FirstOrDefault();

            if (acc_transactions == null)
            {
                return(HttpNotFound());
            }
            return(View(acc_transactions));
        }
        // GET: /Journal/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var CompanyId = Convert.ToInt32(Session["CompanyID"]);
            acc_transactions acc_transactions = db.acc_transactions.Where(x => x.Company_Id == CompanyId && x.id == id).FirstOrDefault();

            if (acc_transactions == null)
            {
                return(HttpNotFound());
            }
            ViewBag.Company_Id       = new SelectList(db.Companies, "Id", "Name");
            ViewBag.FinancialYear_Id = new SelectList(db.FinancialYears, "Id", "Name");
            ViewBag.voucher_type     = new SelectList(db.VoucherTypes, "Id", "VoucherName");
            ViewBag.voucherDate      = acc_transactions.voucher_date;
            ViewBag.acc_ledger_id    = new SelectList(db.acc_ledger.Where(x => x.Company_Id == CompanyId), "Id", "name");
            return(View(acc_transactions));
        }