public ActionResult Create(Goods_TypeModel goods_typeModel)
 {
     Goods_Type goods_type = new Goods_Type();
     if (ModelState.IsValid)
     {
         var is_exist = (from gt in db.Goods_Type where gt.goods_type_name == goods_typeModel.goods_type_name select gt).Count();
         if (is_exist >0)
         {
             TempData["errorMessage"] = "This Goods Type Already Exist";
         }
         else
         {
             goods_type.goods_subcategory_id = goods_typeModel.goods_subcategory_id;
             goods_type.goods_type_name = goods_typeModel.goods_type_name;
             goods_type.status_id = 1;
             goods_type.created_date = Convert.ToDateTime(DateTime.Now.ToString()).ToString("yyyy-MM-dd");
             goods_type.updated_date = Convert.ToDateTime(DateTime.Now.ToString()).ToString("yyyy-MM-dd");
             db.Goods_Type.Add(goods_type);
             db.SaveChanges();
             TempData["errorMessage"] = "Goods Type Added Successfully";
         }
         return RedirectToAction("Index");
     }
     return RedirectToAction("Index");
 }
        public ActionResult Create(Goods_TypeModel good_typeModel)
        {
            if (Session["login_status"] != null)
            {
                int[] z = (int[])Session["function_id"];
                if (z.Contains(2))
                {
                    Good good = new Good();
                    Goods_Tariff goods_tariff = new Goods_Tariff();
                    if (ModelState.IsValid)
                    {
                        var is_exist = (from g in db.Goods
                                        join gtf in db.Goods_Tariff on g.goods_id equals gtf.goods_id
                                        where g.goods_name == good_typeModel.goods_name
                                        select g).Count();
                        if (is_exist > 0)
                        {
                            TempData["errorMessage"] = "This Entry Already Exist";
                        }
                        else
                        {
                            good.goods_type_id = good_typeModel.goods_type_id;
                            good.goods_code = good_typeModel.goods_code;
                            good.goods_name = good_typeModel.goods_name;
                            good.status_id = 1;
                            good.created_date = Convert.ToDateTime(DateTime.Now.ToString()).ToString("yyyy-MM-dd");
                            good.updated_date = Convert.ToDateTime(DateTime.Now.ToString()).ToString("yyyy-MM-dd");
                            db.Goods.Add(good);
                            db.SaveChanges();
                            goods_tariff.goods_id = good.goods_id;
                            goods_tariff.goods_tariff = good_typeModel.goods_tariff;
                            goods_tariff.currency_id = good_typeModel.currency_id;
                            goods_tariff.ispercentage = good_typeModel.ispercentage;
                            goods_tariff.unit_of_measure_id = good_typeModel.unit_of_measure_id;
                            goods_tariff.created_date = DateTime.Now;
                            goods_tariff.end_date = Convert.ToDateTime("9999-12-31");
                            db.Goods_Tariff.Add(goods_tariff);
                            db.SaveChanges();
                            db.Update_Levi_Entry();
                            db.Update_Levi();
                            TempData["errorMessage"] = "Goods Added Successfully";
                        }
                        return RedirectToAction("Index");
                    }
                    return RedirectToAction("Index");

                }
                else
                {
                    return RedirectToAction("../Home/Dashboard");
                }
            }
            else
            {
                return RedirectToAction("../Home");
            }
        }
 public ActionResult Create(Goods_TypeModel good_typeModel)
 {
     Good good = new Good();
     Goods_Tariff goods_tariff = new Goods_Tariff();
     if (ModelState.IsValid)
     {
         var is_exist = (from g in db.Goods where g.goods_name == good_typeModel.goods_name select g).Count();
         if (is_exist > 0)
         {
             TempData["errorMessage"] = "This Goods Already Exist";
         }
         else
         {
             good.goods_type_id = good_typeModel.goods_type_id;
             good.goods_name = good_typeModel.goods_name;
             good.status_id = 1;
             good.created_date = Convert.ToDateTime(DateTime.Now.ToString()).ToString("yyyy-MM-dd");
             good.updated_date = Convert.ToDateTime(DateTime.Now.ToString()).ToString("yyyy-MM-dd");
             db.Goods.Add(good);
             db.SaveChanges();
             goods_tariff.goods_id = good.goods_id;
             goods_tariff.goods_tariff = good_typeModel.goods_tariff;
             goods_tariff.ispercentage = good_typeModel.ispercentage;
             goods_tariff.unit_of_measure_id = good_typeModel.unit_of_measure_id;
             goods_tariff.created_date = DateTime.Now;
             goods_tariff.end_date = Convert.ToDateTime("9999-12-31");
             db.Goods_Tariff.Add(goods_tariff);
             db.SaveChanges();
             db.Update_Levi_Entry();
             db.Update_Levi();
             TempData["errorMessage"] = "Goods Added Successfully";
         }
         return RedirectToAction("Index");
     }
     return RedirectToAction("Index");
 }
        public ActionResult Edit(Goods_TypeModel good_typeModel)
        {
            if (Session["login_status"] != null)
            {
                int[] z = (int[])Session["function_id"];
                if (z.Contains(2))
                {
                    var file_name = "";
                    int good_id = Convert.ToInt32(TempData["goods_id"]);
                    Good good_new = db.Goods.Find(good_id);
                    int goods_tariff_id = Convert.ToInt32(TempData["goods_tariff_id"]);
                    Goods_Tariff goods_tariff = db.Goods_Tariff.Find(goods_tariff_id);
                    Goods_Tariff goods_tariff_new = new Goods_Tariff();
                    if (ModelState.IsValid)
                    {
                        var is_exist = (from g in db.Goods
                                        join gtf in db.Goods_Tariff on g.goods_id equals gtf.goods_id
                                        where g.goods_name == good_typeModel.goods_name && g.goods_id != good_id
                                        select g).Count();
                        if (is_exist > 0)
                        {
                            TempData["errorMessage"] = "This Entry Already Exist";
                        }
                        else
                        {
                            if (good_typeModel.upload_document != null)
                            {
                                //following code is used for document adding and storing in App_Data folder
                                HttpPostedFileBase file = Request.Files.Get("upload_document");

                                if ((file != null) && (file.ContentLength > 0) && !string.IsNullOrEmpty(file.FileName))
                                {
                                    file_name = file.FileName;
                                    string fileContentType = file.ContentType;
                                    byte[] fileBytes = new byte[file.ContentLength];
                                    file.InputStream.Read(fileBytes, 0, Convert.ToInt32(file.ContentLength));
                                    var FileLocation = Path.Combine(Server.MapPath("~/App_Data"), file_name);
                                    file.SaveAs(FileLocation);
                                }
                            }
                            good_new.goods_type_id = good_typeModel.goods_type_id;
                            good_new.goods_code = good_typeModel.goods_code;
                            good_new.goods_name = good_typeModel.goods_name;
                            good_new.status_id = good_typeModel.status_id;
                            good_new.created_date = TempData["created_date"].ToString();
                            good_new.updated_date = Convert.ToDateTime(DateTime.Now.ToString()).ToString("yyyy-MM-dd");
                            db.Entry(good_new).State = EntityState.Modified;
                            db.SaveChanges();
                            goods_tariff.end_date = DateTime.Now;
                            db.Entry(goods_tariff).State = EntityState.Modified;
                            db.SaveChanges();
                            goods_tariff_new.goods_id = good_new.goods_id;
                            goods_tariff_new.goods_tariff = good_typeModel.goods_tariff;
                            goods_tariff_new.currency_id = good_typeModel.currency_id;
                            goods_tariff_new.ispercentage = good_typeModel.ispercentage;
                            goods_tariff_new.unit_of_measure_id = good_typeModel.unit_of_measure_id;
                            if (good_typeModel.upload_document != null)
                            {
                                goods_tariff_new.dcument_name = file_name;
                            }
                            else if (TempData["document_name"] != null)
                            {
                                goods_tariff_new.dcument_name = TempData["document_name"].ToString();
                            }
                            else
                            {
                                goods_tariff_new.dcument_name = null;
                            }
                            goods_tariff_new.created_date = DateTime.Now;
                            goods_tariff_new.end_date = Convert.ToDateTime("9999-12-31");
                            db.Goods_Tariff.Add(goods_tariff_new);
                            db.SaveChanges();
                            TempData["errorMessage"] = "Edited Successfully";
                        }
                        return RedirectToAction("Index");
                    }
                    return RedirectToAction("Index");

                }
                else
                {
                    return RedirectToAction("../Home/Dashboard");
                }
            }
            else
            {
                return RedirectToAction("../Home");
            }
        }
        //
        // GET: /Manage_Goods/Edit/5
        public ActionResult Edit(int id = 0)
        {
            if (Session["login_status"] != null)
            {
                int[] z = (int[])Session["function_id"];
                if (z.Contains(2))
                {
                    Good good = db.Goods.Find(id);
                    Goods_TypeModel goods_typeModel = new Goods_TypeModel();
                    if (good == null)
                    {
                        return HttpNotFound();
                    }
                    var goods = from g in db.Goods
                                join gt in db.Goods_Type on g.goods_type_id equals gt.goods_type_id
                                join gs in db.Goods_Subcategory on gt.goods_subcategory_id equals gs.goods_subcategory_id
                                join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                                where g.goods_id == good.goods_id
                                select new { gt.goods_type_id, gt.goods_type_name, gs.goods_subcategory_id, gs.goods_subcategory_name, gc.goods_category_id, gc.goods_category_name };
                    TempData["type_id"] = good.goods_type_id;
                    TempData["created_date"] = good.created_date;
                    TempData["goods_id"] = good.goods_id;
                    ViewBag.status = new HomeController().Status();
                    ViewBag.categories = new SelectList(goods, "goods_category_id", "goods_category_name");
                    ViewBag.subcategories = new SelectList(goods, "goods_subcategory_id", "goods_subcategory_name");
                    ViewBag.goods_type = new SelectList(goods, "goods_type_id", "goods_type_name");
                    ViewBag.unif_of_measures = new HomeController().Unit_Of_Measures();
                    ViewBag.currency = new HomeController().Sos_Usd_Currency();
                    goods_typeModel.goods_category_id = goods.First().goods_category_id;
                    goods_typeModel.goods_subcategory_id = goods.First().goods_subcategory_id;
                    goods_typeModel.goods_type_id = good.goods_type_id;
                    goods_typeModel.goods_code = good.goods_code;
                    goods_typeModel.goods_name = good.goods_name;
                    goods_typeModel.status_id = good.status_id;
                    var end_date = Convert.ToDateTime("9999-12-31");
                    var goods_tariff = (from gtf in db.Goods_Tariff
                                       where gtf.goods_id == good.goods_id && gtf.end_date == end_date
                                       select new { gtf.goods_tariff_id, gtf.goods_tariff, gtf.ispercentage, gtf.unit_of_measure_id, gtf.currency_id, gtf.dcument_name }).First();
                    goods_typeModel.goods_tariff = goods_tariff.goods_tariff;
                    goods_typeModel.currency_id = goods_tariff.currency_id;
                    goods_typeModel.unit_of_measure_id = goods_tariff.unit_of_measure_id;
                    goods_typeModel.ispercentage = goods_tariff.ispercentage;
                    TempData["goods_tariff_id"] = goods_tariff.goods_tariff_id;
                    TempData["document_name"] = goods_tariff.dcument_name;
                    return View(goods_typeModel);

                }
                else
                {
                    return RedirectToAction("../Home/Dashboard");
                }
            }
            else
            {
                return RedirectToAction("../Home");
            }
        }
 public ActionResult DbSearchresult(Goods_TypeModel good)
 {
     if (Session["login_status"] != null)
     {
         int[] z = (int[])Session["function_id"];
         if (z.Contains(2))
         {
             var end_date = Convert.ToDateTime("9999-12-31");
             //Queue q = new Queue();
             if (good.goods_name != null && good.goods_type_id != 0 && good.goods_subcategory_id != 0 && good.goods_category_id != 0)
             {
                 var result = from g in db.Goods
                              join gp in db.Goods_Type on g.goods_type_id equals gp.goods_type_id
                              join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                              join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                              join gtf in db.Goods_Tariff on g.goods_id equals gtf.goods_id
                              join u in db.Unit_Of_Measure on gtf.unit_of_measure_id equals u.unit_id
                              where gtf.end_date == end_date && g.goods_name.StartsWith(good.goods_name) && g.goods_type_id == good.goods_type_id && gp.goods_subcategory_id == good.goods_subcategory_id && gs.goods_category_id == good.goods_category_id
                              select new GoodsModel { goods_id = g.goods_id, goods_name = g.goods_name, goods_type = gp.goods_type_name, goods_sub_category = gs.goods_subcategory_name, goods_category = gc.goods_category_name, goods_tariff = gtf.goods_tariff, ispercentage = gtf.ispercentage, unit_of_measure = u.unit_code, goods_code = g.goods_code };
                 return View("Index", result.ToList());
             }
             else if (good.goods_name != null && good.goods_type_id != 0 && good.goods_subcategory_id != 0 && good.goods_category_id == 0)
             {
                 var result = from g in db.Goods
                              join gp in db.Goods_Type on g.goods_type_id equals gp.goods_type_id
                              join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                              join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                              join gtf in db.Goods_Tariff on g.goods_id equals gtf.goods_id
                              join u in db.Unit_Of_Measure on gtf.unit_of_measure_id equals u.unit_id
                              where gtf.end_date == end_date && g.goods_name.StartsWith(good.goods_name) && g.goods_type_id == good.goods_type_id && gp.goods_subcategory_id == good.goods_subcategory_id
                              select new GoodsModel { goods_id = g.goods_id, goods_name = g.goods_name, goods_type = gp.goods_type_name, goods_sub_category = gs.goods_subcategory_name, goods_category = gc.goods_category_name, goods_tariff = gtf.goods_tariff, ispercentage = gtf.ispercentage, unit_of_measure = u.unit_code, goods_code = g.goods_code };
                 return View("Index", result.ToList());
             }
             else if (good.goods_name != null && good.goods_type_id != 0 && good.goods_subcategory_id == 0 && good.goods_category_id != 0)
             {
                 var result = from g in db.Goods
                              join gp in db.Goods_Type on g.goods_type_id equals gp.goods_type_id
                              join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                              join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                              join gtf in db.Goods_Tariff on g.goods_id equals gtf.goods_id
                              join u in db.Unit_Of_Measure on gtf.unit_of_measure_id equals u.unit_id
                              where gtf.end_date == end_date && g.goods_name.StartsWith(good.goods_name) && g.goods_type_id == good.goods_type_id && gs.goods_category_id == good.goods_category_id
                              select new GoodsModel { goods_id = g.goods_id, goods_name = g.goods_name, goods_type = gp.goods_type_name, goods_sub_category = gs.goods_subcategory_name, goods_category = gc.goods_category_name, goods_tariff = gtf.goods_tariff, ispercentage = gtf.ispercentage, unit_of_measure = u.unit_code, goods_code = g.goods_code };
                 return View("Index", result.ToList());
             }
             if (good.goods_name != null && good.goods_type_id != 0 && good.goods_subcategory_id == 0 && good.goods_category_id == 0)
             {
                 var result = from g in db.Goods
                              join gp in db.Goods_Type on g.goods_type_id equals gp.goods_type_id
                              join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                              join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                              join gtf in db.Goods_Tariff on g.goods_id equals gtf.goods_id
                              join u in db.Unit_Of_Measure on gtf.unit_of_measure_id equals u.unit_id
                              where gtf.end_date == end_date && g.goods_name.StartsWith(good.goods_name) && g.goods_type_id == good.goods_type_id
                              select new GoodsModel { goods_id = g.goods_id, goods_name = g.goods_name, goods_type = gp.goods_type_name, goods_sub_category = gs.goods_subcategory_name, goods_category = gc.goods_category_name, goods_tariff = gtf.goods_tariff, ispercentage = gtf.ispercentage, unit_of_measure = u.unit_code, goods_code = g.goods_code };
                 return View("Index", result.ToList());
             }
             if (good.goods_name != null && good.goods_type_id == 0 && good.goods_subcategory_id != 0 && good.goods_category_id != 0)
             {
                 var result = from g in db.Goods
                              join gp in db.Goods_Type on g.goods_type_id equals gp.goods_type_id
                              join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                              join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                              join gtf in db.Goods_Tariff on g.goods_id equals gtf.goods_id
                              join u in db.Unit_Of_Measure on gtf.unit_of_measure_id equals u.unit_id
                              where gtf.end_date == end_date && g.goods_name.StartsWith(good.goods_name) && gp.goods_subcategory_id == good.goods_subcategory_id && gs.goods_category_id == good.goods_category_id
                              select new GoodsModel { goods_id = g.goods_id, goods_name = g.goods_name, goods_type = gp.goods_type_name, goods_sub_category = gs.goods_subcategory_name, goods_category = gc.goods_category_name, goods_tariff = gtf.goods_tariff, ispercentage = gtf.ispercentage, unit_of_measure = u.unit_code, goods_code = g.goods_code };
                 return View("Index", result.ToList());
             }
             if (good.goods_name != null && good.goods_type_id == 0 && good.goods_subcategory_id != 0 && good.goods_category_id == 0)
             {
                 var result = from g in db.Goods
                              join gp in db.Goods_Type on g.goods_type_id equals gp.goods_type_id
                              join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                              join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                              join gtf in db.Goods_Tariff on g.goods_id equals gtf.goods_id
                              join u in db.Unit_Of_Measure on gtf.unit_of_measure_id equals u.unit_id
                              where gtf.end_date == end_date && g.goods_name.StartsWith(good.goods_name) && gp.goods_subcategory_id == good.goods_subcategory_id
                              select new GoodsModel { goods_id = g.goods_id, goods_name = g.goods_name, goods_type = gp.goods_type_name, goods_sub_category = gs.goods_subcategory_name, goods_category = gc.goods_category_name, goods_tariff = gtf.goods_tariff, ispercentage = gtf.ispercentage, unit_of_measure = u.unit_code, goods_code = g.goods_code };
                 return View("Index", result.ToList());
             }
             if (good.goods_name != null && good.goods_type_id == 0 && good.goods_subcategory_id == 0 && good.goods_category_id != 0)
             {
                 var result = from g in db.Goods
                              join gp in db.Goods_Type on g.goods_type_id equals gp.goods_type_id
                              join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                              join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                              join gtf in db.Goods_Tariff on g.goods_id equals gtf.goods_id
                              join u in db.Unit_Of_Measure on gtf.unit_of_measure_id equals u.unit_id
                              where gtf.end_date == end_date && g.goods_name.StartsWith(good.goods_name) && gs.goods_category_id == good.goods_category_id
                              select new GoodsModel { goods_id = g.goods_id, goods_name = g.goods_name, goods_type = gp.goods_type_name, goods_sub_category = gs.goods_subcategory_name, goods_category = gc.goods_category_name, goods_tariff = gtf.goods_tariff, ispercentage = gtf.ispercentage, unit_of_measure = u.unit_code, goods_code = g.goods_code };
                 return View("Index", result.ToList());
             }
             if (good.goods_name != null && good.goods_type_id == 0 && good.goods_subcategory_id == 0 && good.goods_category_id == 0)
             {
                 var result = from g in db.Goods
                              join gp in db.Goods_Type on g.goods_type_id equals gp.goods_type_id
                              join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                              join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                              join gtf in db.Goods_Tariff on g.goods_id equals gtf.goods_id
                              join u in db.Unit_Of_Measure on gtf.unit_of_measure_id equals u.unit_id
                              where gtf.end_date == end_date && g.goods_name.StartsWith(good.goods_name)
                              select new GoodsModel { goods_id = g.goods_id, goods_name = g.goods_name, goods_type = gp.goods_type_name, goods_sub_category = gs.goods_subcategory_name, goods_category = gc.goods_category_name, goods_tariff = gtf.goods_tariff, ispercentage = gtf.ispercentage, unit_of_measure = u.unit_code, goods_code = g.goods_code };
                 return View("Index", result.ToList());
             }
             if (good.goods_name == null && good.goods_type_id != 0 && good.goods_subcategory_id != 0 && good.goods_category_id != 0)
             {
                 var result = from g in db.Goods
                              join gp in db.Goods_Type on g.goods_type_id equals gp.goods_type_id
                              join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                              join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                              join gtf in db.Goods_Tariff on g.goods_id equals gtf.goods_id
                              join u in db.Unit_Of_Measure on gtf.unit_of_measure_id equals u.unit_id
                              where gtf.end_date == end_date && g.goods_type_id == good.goods_type_id && gp.goods_subcategory_id == good.goods_subcategory_id && gs.goods_category_id == good.goods_category_id
                              select new GoodsModel { goods_id = g.goods_id, goods_name = g.goods_name, goods_type = gp.goods_type_name, goods_sub_category = gs.goods_subcategory_name, goods_category = gc.goods_category_name, goods_tariff = gtf.goods_tariff, ispercentage = gtf.ispercentage, unit_of_measure = u.unit_code, goods_code = g.goods_code };
                 return View("Index", result.ToList());
             }
             if (good.goods_name == null && good.goods_type_id != 0 && good.goods_subcategory_id != 0 && good.goods_category_id == 0)
             {
                 var result = from g in db.Goods
                              join gp in db.Goods_Type on g.goods_type_id equals gp.goods_type_id
                              join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                              join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                              join gtf in db.Goods_Tariff on g.goods_id equals gtf.goods_id
                              join u in db.Unit_Of_Measure on gtf.unit_of_measure_id equals u.unit_id
                              where gtf.end_date == end_date && g.goods_type_id == good.goods_type_id && gp.goods_subcategory_id == good.goods_subcategory_id
                              select new GoodsModel { goods_id = g.goods_id, goods_name = g.goods_name, goods_type = gp.goods_type_name, goods_sub_category = gs.goods_subcategory_name, goods_category = gc.goods_category_name, goods_tariff = gtf.goods_tariff, ispercentage = gtf.ispercentage, unit_of_measure = u.unit_code, goods_code = g.goods_code };
                 return View("Index", result.ToList());
             }
             if (good.goods_name == null && good.goods_type_id != 0 && good.goods_subcategory_id == 0 && good.goods_category_id != 0)
             {
                 var result = from g in db.Goods
                              join gp in db.Goods_Type on g.goods_type_id equals gp.goods_type_id
                              join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                              join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                              join gtf in db.Goods_Tariff on g.goods_id equals gtf.goods_id
                              join u in db.Unit_Of_Measure on gtf.unit_of_measure_id equals u.unit_id
                              where gtf.end_date == end_date && g.goods_type_id == good.goods_type_id && gs.goods_category_id == good.goods_category_id
                              select new GoodsModel { goods_id = g.goods_id, goods_name = g.goods_name, goods_type = gp.goods_type_name, goods_sub_category = gs.goods_subcategory_name, goods_category = gc.goods_category_name, goods_tariff = gtf.goods_tariff, ispercentage = gtf.ispercentage, unit_of_measure = u.unit_code, goods_code = g.goods_code };
                 return View("Index", result.ToList());
             }
             if (good.goods_name == null && good.goods_type_id != 0 && good.goods_subcategory_id == 0 && good.goods_category_id == 0)
             {
                 var result = from g in db.Goods
                              join gp in db.Goods_Type on g.goods_type_id equals gp.goods_type_id
                              join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                              join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                              join gtf in db.Goods_Tariff on g.goods_id equals gtf.goods_id
                              join u in db.Unit_Of_Measure on gtf.unit_of_measure_id equals u.unit_id
                              where gtf.end_date == end_date && g.goods_type_id == good.goods_type_id
                              select new GoodsModel { goods_id = g.goods_id, goods_name = g.goods_name, goods_type = gp.goods_type_name, goods_sub_category = gs.goods_subcategory_name, goods_category = gc.goods_category_name, goods_tariff = gtf.goods_tariff, ispercentage = gtf.ispercentage, unit_of_measure = u.unit_code, goods_code = g.goods_code };
                 return View("Index", result.ToList());
             }
             if (good.goods_name == null && good.goods_type_id == 0 && good.goods_subcategory_id != 0 && good.goods_category_id != 0)
             {
                 var result = from g in db.Goods
                              join gp in db.Goods_Type on g.goods_type_id equals gp.goods_type_id
                              join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                              join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                              join gtf in db.Goods_Tariff on g.goods_id equals gtf.goods_id
                              join u in db.Unit_Of_Measure on gtf.unit_of_measure_id equals u.unit_id
                              where gtf.end_date == end_date && gp.goods_subcategory_id == good.goods_subcategory_id && gs.goods_category_id == good.goods_category_id
                              select new GoodsModel { goods_id = g.goods_id, goods_name = g.goods_name, goods_type = gp.goods_type_name, goods_sub_category = gs.goods_subcategory_name, goods_category = gc.goods_category_name, goods_tariff = gtf.goods_tariff, ispercentage = gtf.ispercentage, unit_of_measure = u.unit_code, goods_code = g.goods_code };
                 return View("Index", result.ToList());
             }
             if (good.goods_name == null && good.goods_type_id == 0 && good.goods_subcategory_id != 0 && good.goods_category_id == 0)
             {
                 var result = from g in db.Goods
                              join gp in db.Goods_Type on g.goods_type_id equals gp.goods_type_id
                              join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                              join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                              join gtf in db.Goods_Tariff on g.goods_id equals gtf.goods_id
                              join u in db.Unit_Of_Measure on gtf.unit_of_measure_id equals u.unit_id
                              where gtf.end_date == end_date && gp.goods_subcategory_id == good.goods_subcategory_id
                              select new GoodsModel { goods_id = g.goods_id, goods_name = g.goods_name, goods_type = gp.goods_type_name, goods_sub_category = gs.goods_subcategory_name, goods_category = gc.goods_category_name, goods_tariff = gtf.goods_tariff, ispercentage = gtf.ispercentage, unit_of_measure = u.unit_code, goods_code = g.goods_code };
                 return View("Index", result.ToList());
             }
             if (good.goods_name == null && good.goods_type_id == 0 && good.goods_subcategory_id == 0 && good.goods_category_id != 0)
             {
                 var result = from g in db.Goods
                              join gp in db.Goods_Type on g.goods_type_id equals gp.goods_type_id
                              join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                              join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                              join gtf in db.Goods_Tariff on g.goods_id equals gtf.goods_id
                              join u in db.Unit_Of_Measure on gtf.unit_of_measure_id equals u.unit_id
                              where gtf.end_date == end_date && gs.goods_category_id == good.goods_category_id
                              select new GoodsModel { goods_id = g.goods_id, goods_name = g.goods_name, goods_type = gp.goods_type_name, goods_sub_category = gs.goods_subcategory_name, goods_category = gc.goods_category_name, goods_tariff = gtf.goods_tariff, ispercentage = gtf.ispercentage, unit_of_measure = u.unit_code, goods_code = g.goods_code };
                 return View("Index", result.ToList());
             }
             //if (good.goods_name != null)
             //{
             //    q.Enqueue("g.goods_name.StartsWith(" + good.goods_name + ")");
             //}
             //if (good.goods_type_id != 0)
             //{
             //    q.Enqueue("g.goods_type_id == " + good.goods_type_id);
             //}
             //var str = String.Join("&&", q);
             ////var query = "from g in db.Goods where " + str + " select g";
             //var result = db.Goods.Where(str);
             return RedirectToAction("Index");
         }
         else
         {
             return RedirectToAction("../Home/Dashboard");
         }
     }
     else
     {
         return RedirectToAction("../Home");
     }
 }
 public ActionResult Edit(Goods_TypeModel good_typeModel)
 {
     int good_id = Convert.ToInt32(TempData["goods_id"]);
     Good good_new = db.Goods.Find(good_id);
     int goods_tariff_id = Convert.ToInt32(TempData["goods_tariff_id"]);
     Goods_Tariff goods_tariff = db.Goods_Tariff.Find(goods_tariff_id);
     Goods_Tariff goods_tariff_new = new Goods_Tariff();
     if (ModelState.IsValid)
     {
         var is_exist = (from g in db.Goods where g.goods_name == good_typeModel.goods_name && g.goods_id != good_id select g).Count();
         if (is_exist > 0)
         {
             TempData["errorMessage"] = "This Goods Already Exist";
         }
         else
         {
             good_new.goods_type_id = good_typeModel.goods_type_id;
             good_new.goods_name = good_typeModel.goods_name;
             good_new.status_id = good_typeModel.status_id;
             good_new.created_date = TempData["created_date"].ToString();
             good_new.updated_date = Convert.ToDateTime(DateTime.Now.ToString()).ToString("yyyy-MM-dd");
             db.Entry(good_new).State = EntityState.Modified;
             db.SaveChanges();
             goods_tariff.end_date = DateTime.Now;
             db.Entry(goods_tariff).State = EntityState.Modified;
             db.SaveChanges();
             goods_tariff_new.goods_id = good_new.goods_id;
             goods_tariff_new.goods_tariff = good_typeModel.goods_tariff;
             goods_tariff_new.ispercentage = good_typeModel.ispercentage;
             goods_tariff_new.unit_of_measure_id = good_typeModel.unit_of_measure_id;
             goods_tariff_new.created_date = DateTime.Now;
             goods_tariff_new.end_date = Convert.ToDateTime("9999-12-31");
             db.Goods_Tariff.Add(goods_tariff_new);
             db.SaveChanges();
             TempData["errorMessage"] = "Edited Successfully";
         }
         return RedirectToAction("Index");
     }
     return RedirectToAction("Index");
 }
 //
 // GET: /Manage_Goods/Edit/5
 public ActionResult Edit(int id = 0)
 {
     Good good = db.Goods.Find(id);
     Goods_TypeModel goods_typeModel = new Goods_TypeModel();
     if (good == null)
     {
         return HttpNotFound();
     }
     var goods = from g in db.Goods
                 join gt in db.Goods_Type on g.goods_type_id equals gt.goods_type_id
                 join gs in db.Goods_Subcategory on gt.goods_subcategory_id equals gs.goods_subcategory_id
                 join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                 where g.goods_id == good.goods_id
                 select new { gt.goods_type_id, gt.goods_type_name, gs.goods_subcategory_id, gs.goods_subcategory_name, gc.goods_category_id, gc.goods_category_name };
     TempData["type_id"] = good.goods_type_id;
     TempData["created_date"] = good.created_date;
     TempData["goods_id"] = good.goods_id;
     ViewBag.status = new HomeController().Status();
     ViewBag.categories = new SelectList(goods, "goods_category_id", "goods_category_name");
     ViewBag.subcategories = new SelectList(goods, "goods_subcategory_id", "goods_subcategory_name");
     ViewBag.goods_type = new SelectList(goods, "goods_type_id", "goods_type_name");
     ViewBag.unif_of_measures = new HomeController().Unit_Of_Measures();
     goods_typeModel.goods_category_id = goods.First().goods_category_id;
     goods_typeModel.goods_subcategory_id = goods.First().goods_subcategory_id;
     goods_typeModel.goods_type_id = good.goods_type_id;
     goods_typeModel.goods_name = good.goods_name;
     goods_typeModel.status_id = good.status_id;
     var end_date = Convert.ToDateTime("9999-12-31");
     var goods_tariff = (from gtf in db.Goods_Tariff
                        where gtf.goods_id == good.goods_id && gtf.end_date == end_date
                        select new { gtf.goods_tariff_id, gtf.goods_tariff, gtf.ispercentage, gtf.unit_of_measure_id }).First();
     goods_typeModel.goods_tariff = goods_tariff.goods_tariff;
     goods_typeModel.unit_of_measure_id = goods_tariff.unit_of_measure_id;
     goods_typeModel.ispercentage = goods_tariff.ispercentage;
     TempData["goods_tariff_id"] = goods_tariff.goods_tariff_id;
     return View(goods_typeModel);
 }
 public ActionResult DbSearchresult(Goods_TypeModel goods_type)
 {
     //Queue q = new Queue();
     if (goods_type.goods_type_name != null && goods_type.goods_subcategory_id != 0 && goods_type.goods_category_id !=0)
     {
         var result = from gp in db.Goods_Type
                      join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                      join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                      where gp.goods_type_name.StartsWith(goods_type.goods_type_name) && gp.goods_subcategory_id == goods_type.goods_subcategory_id && gs.goods_category_id ==1
                      select new Goods_TypeModel { goods_type_id = gp.goods_type_id, goods_type_name = gp.goods_type_name, goods_subcategory = gs.goods_subcategory_name, goods_category = gc.goods_category_name, status_id = gp.status_id };
         return View("Index", result.ToList());
     }
     else if (goods_type.goods_type_name == null && goods_type.goods_subcategory_id != 0 && goods_type.goods_category_id == 0)
     {
         var result = from gp in db.Goods_Type
                      join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                      join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                      where gp.goods_subcategory_id == goods_type.goods_subcategory_id
                      select new Goods_TypeModel { goods_type_id = gp.goods_type_id, goods_type_name = gp.goods_type_name, goods_subcategory = gs.goods_subcategory_name, goods_category = gc.goods_category_name, status_id = gp.status_id };
         return View("Index", result.ToList());
     }
     else if (goods_type.goods_type_name != null && goods_type.goods_subcategory_id == 0 && goods_type.goods_category_id == 0)
     {
         var result = from gp in db.Goods_Type
                      join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                      join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                      where gp.goods_type_name.StartsWith(goods_type.goods_type_name)
                      select new Goods_TypeModel { goods_type_id = gp.goods_type_id, goods_type_name = gp.goods_type_name, goods_subcategory = gs.goods_subcategory_name, goods_category = gc.goods_category_name, status_id = gp.status_id };
         return View("Index", result.ToList());
     }
     else if (goods_type.goods_type_name != null && goods_type.goods_subcategory_id != 0 && goods_type.goods_category_id == 0)
     {
         var result = from gp in db.Goods_Type
                      join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                      join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                      where gp.goods_type_name.StartsWith(goods_type.goods_type_name) && gp.goods_subcategory_id == goods_type.goods_subcategory_id
                      select new Goods_TypeModel { goods_type_id = gp.goods_type_id, goods_type_name = gp.goods_type_name, goods_subcategory = gs.goods_subcategory_name, goods_category = gc.goods_category_name, status_id = gp.status_id };
         return View("Index", result.ToList());
     }
     else if (goods_type.goods_type_name != null && goods_type.goods_subcategory_id == 0 && goods_type.goods_category_id != 0)
     {
         var result = from gp in db.Goods_Type
                      join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                      join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                      where gp.goods_type_name.StartsWith(goods_type.goods_type_name) && gs.goods_category_id == goods_type.goods_category_id
                      select new Goods_TypeModel { goods_type_id = gp.goods_type_id, goods_type_name = gp.goods_type_name, goods_subcategory = gs.goods_subcategory_name, goods_category = gc.goods_category_name, status_id = gp.status_id };
         return View("Index", result.ToList());
     }
     else if (goods_type.goods_type_name == null && goods_type.goods_subcategory_id != 0 && goods_type.goods_category_id != 0)
     {
         var result = from gp in db.Goods_Type
                      join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                      join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                      where gp.goods_subcategory_id == goods_type.goods_subcategory_id && gs.goods_category_id == goods_type.goods_category_id
                      select new Goods_TypeModel { goods_type_id = gp.goods_type_id, goods_type_name = gp.goods_type_name, goods_subcategory = gs.goods_subcategory_name, goods_category = gc.goods_category_name, status_id = gp.status_id };
         return View("Index", result.ToList());
     }
     else if (goods_type.goods_type_name == null && goods_type.goods_subcategory_id == 0 && goods_type.goods_category_id != 0)
     {
         var result = from gp in db.Goods_Type
                      join gs in db.Goods_Subcategory on gp.goods_subcategory_id equals gs.goods_subcategory_id
                      join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                      where gs.goods_category_id == goods_type.goods_category_id
                      select new Goods_TypeModel { goods_type_id = gp.goods_type_id, goods_type_name = gp.goods_type_name, goods_subcategory = gs.goods_subcategory_name, goods_category = gc.goods_category_name, status_id = gp.status_id };
         return View("Index", result.ToList());
     }
     return RedirectToAction("Index");
 }
 public ActionResult Edit(Goods_TypeModel goods_typeModel)
 {
     var type_id = Convert.ToInt32(TempData["goods_type_id"]);
     Goods_Type goods_type_new = db.Goods_Type.Find(type_id);
     if (ModelState.IsValid)
     {
         var is_exist = (from gt in db.Goods_Type where gt.goods_type_name == goods_typeModel.goods_type_name && gt.goods_type_id != type_id select gt).Count();
         if (is_exist > 0)
         {
             TempData["errorMessage"] = "This Goods Type Already Exist";
         }
         else
         {
             goods_type_new.goods_subcategory_id = goods_typeModel.goods_subcategory_id;
             goods_type_new.goods_type_name = goods_typeModel.goods_type_name;
             goods_type_new.status_id = goods_typeModel.status_id;
             goods_type_new.updated_date = Convert.ToDateTime(DateTime.Now.ToString()).ToString("yyyy-MM-dd");
             db.Entry(goods_type_new).State = EntityState.Modified;
             db.SaveChanges();
             TempData["errorMessage"] = "Edited Successfully";
         }
         return RedirectToAction("Index");
     }
     return RedirectToAction("Index");
 }
 //
 // GET: /Manage_Goods_Type/Edit/5
 public ActionResult Edit(int id = 0)
 {
     Goods_Type goods_type = db.Goods_Type.Find(id);
     Goods_TypeModel goods_typeModel = new Goods_TypeModel();
     if (goods_type == null)
     {
         return HttpNotFound();
     }
     TempData["goods_type_id"] = goods_type.goods_type_id;
     var type = from gt in db.Goods_Type
                join gs in db.Goods_Subcategory on gt.goods_subcategory_id equals gs.goods_subcategory_id
                join gc in db.Goods_Category on gs.goods_category_id equals gc.goods_category_id
                where gt.goods_type_id == goods_type.goods_type_id
                select new { gs.goods_subcategory_id, gs.goods_subcategory_name, gc.goods_category_id, gc.goods_category_name };
     ViewBag.status = new HomeController().Status();
     ViewBag.categories = new SelectList(type, "goods_category_id", "goods_category_name");
     ViewBag.subcategories = new SelectList(type, "goods_subcategory_id", "goods_subcategory_name");
     goods_typeModel.goods_type_name = goods_type.goods_type_name;
     goods_typeModel.goods_type_id = goods_type.goods_type_id;
     goods_typeModel.goods_category_id = type.First().goods_category_id;
     goods_typeModel.goods_subcategory_id = goods_type.goods_subcategory_id;
     goods_typeModel.status_id = goods_type.status_id;
     return View(goods_typeModel);
 }