//
        // GET: /TransportPrices/Delete/5

        public ActionResult Delete(int id = 0)
        {
            T_TransportPrices t_transportprices = db.T_TransportPrices.Find(id);

            if (t_transportprices == null)
            {
                return(HttpNotFound());
            }
            return(View(t_transportprices));
        }
        //
        // GET: /TransportPrices/Edit/5

        public ActionResult Edit(int id = 0)
        {
            T_TransportPrices t_transportprices = db.T_TransportPrices.Find(id);

            if (t_transportprices == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ConsumerID = new SelectList(db.T_Consumers, "ConsumerID", "CompanyName", t_transportprices.ConsumerID);
            ViewBag.ProducerID = new SelectList(db.T_Producers, "ProducerID", "CompanyName", t_transportprices.ProducerID);
            ViewBag.ProduceID  = new SelectList(db.T_Produces, "ProduceID", "ProduceName", t_transportprices.ProduceID);
            ViewBag.StateID    = new SelectList(db.T_State, "StateID", "StateName", t_transportprices.StateID);
            return(View(t_transportprices));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            T_TransportPrices t_transportprices = db.T_TransportPrices.Find(id);

            if (t_transportprices.StateID == false)
            {
                db.T_TransportPrices.Remove(t_transportprices);
                db.SaveChanges();

                //return View();
            }
            else
            {
                ViewBag.err = "این ایتم فعال است و شما امکان حذف آن را ندارید";
                return(View(t_transportprices));
            }
            return(RedirectToAction("Index"));
        }
        public ActionResult Create(T_TransportPrices t_transportprices)
        {
            if (ModelState.IsValid)
            {
                db.T_TransportPrices.Add(t_transportprices);
                db.SaveChanges();

                if (t_transportprices.StateID == true)
                {
                    List <T_TransportPrices> trlist = db.T_TransportPrices.Where(m => m.ConsumerID == t_transportprices.ConsumerID && m.ProduceID == t_transportprices.ProduceID && m.ProducerID == t_transportprices.ProducerID).ToList();

                    if (trlist.Count > 0)
                    {
                        foreach (var item in trlist)
                        {
                            if (item.TransportPriceID == t_transportprices.TransportPriceID)
                            {
                                item.StateID = true;
                            }
                            else
                            {
                                item.StateID = false;
                            }

                            db.Entry(item).State = System.Data.EntityState.Modified;
                            db.SaveChanges();
                        }
                    }
                }



                return(RedirectToAction("Index"));
            }

            ViewBag.ConsumerID = new SelectList(db.T_Consumers, "ConsumerID", "CompanyName", t_transportprices.ConsumerID);
            ViewBag.ProducerID = new SelectList(db.T_Producers, "ProducerID", "CompanyName", t_transportprices.ProducerID);
            ViewBag.ProduceID  = new SelectList(db.T_Produces, "ProduceID", "ProduceName", t_transportprices.ProduceID);
            ViewBag.StateID    = new SelectList(db.T_State, "StateID", "StateName", t_transportprices.StateID);

            return(View(t_transportprices));
        }
        public ActionResult Active(int id = 0)
        {
            T_TransportPrices t_transportprices = db.T_TransportPrices.Find(id);

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

            Nullable <int> ProduceID, ProducerID, ConsumerID;

            ProducerID = t_transportprices.ProducerID;
            ProduceID  = t_transportprices.ProduceID;
            ConsumerID = t_transportprices.ConsumerID;

            List <T_TransportPrices> trlist = db.T_TransportPrices.Where(m => m.ConsumerID == ConsumerID && m.ProduceID == ProduceID && m.ProducerID == ProducerID).ToList();

            if (trlist.Count > 0)
            {
                foreach (var item in trlist)
                {
                    if (item.TransportPriceID == id)
                    {
                        item.StateID = true;
                    }
                    else
                    {
                        item.StateID = false;
                    }

                    db.Entry(item).State = System.Data.EntityState.Modified;
                    db.SaveChanges();
                }
            }



            return(RedirectToAction("Index", "TransportPrice"));
        }
        public ActionResult Edit(T_TransportPrices t_transportprices)
        {
            if (ModelState.IsValid)
            {
                bool CanEdit = true;

                List <T_BurdenInformations> tburdens = db.T_BurdenInformations.Where(m => m.TransportPriceID == t_transportprices.TransportPriceID).ToList();

                foreach (var item in tburdens)
                {
                    if (!item.CFSID.Equals(null))
                    {
                        if (item.T_ConsumerFinancialStatements.StateID != 3)
                        {
                            CanEdit = false;
                        }
                    }
                    if (!item.PFSID.Equals(null))
                    {
                        if (item.T_ProducerFinancialStatements.StateID != 3)
                        {
                            CanEdit = false;
                        }
                    }
                    if (!item.TFSID.Equals(null))
                    {
                        if (item.T_TruckFinancialStatements.StateID != 3)
                        {
                            CanEdit = false;
                        }
                    }
                }



                if (CanEdit)
                {
                    db.Entry(t_transportprices).State = System.Data.EntityState.Modified;
                    db.SaveChanges();

                    if (t_transportprices.StateID == true)
                    {
                        List <T_TransportPrices> trlist = db.T_TransportPrices.Where(m => m.ConsumerID == t_transportprices.ConsumerID && m.ProduceID == t_transportprices.ProduceID && m.ProducerID == t_transportprices.ProducerID).ToList();

                        if (trlist.Count > 0)
                        {
                            foreach (var item in trlist)
                            {
                                if (item.TransportPriceID == t_transportprices.TransportPriceID)
                                {
                                    item.StateID = true;
                                }
                                else
                                {
                                    item.StateID = false;
                                }

                                db.Entry(item).State = System.Data.EntityState.Modified;
                                db.SaveChanges();

                                return(RedirectToAction("Index"));
                            }
                        }
                    }
                }
                else
                {
                    ViewBag.msg = "این قیمت در حواله های دائم استفاده شده و قابل ویرایش نیست";
                }
            }

            ViewBag.ConsumerID = new SelectList(db.T_Consumers, "ConsumerID", "CompanyName", t_transportprices.ConsumerID);
            ViewBag.ProducerID = new SelectList(db.T_Producers, "ProducerID", "CompanyName", t_transportprices.ProducerID);
            ViewBag.ProduceID  = new SelectList(db.T_Produces, "ProduceID", "ProduceName", t_transportprices.ProduceID);
            ViewBag.StateID    = new SelectList(db.T_State, "StateID", "StateName", t_transportprices.StateID);
            return(View(t_transportprices));
        }