Beispiel #1
0
        public ActionResult CreateZestaw(DodajProduktView dodaj)
        {
            DateTime localdate = DateTime.Now;
            Product  product   = new Product();
            Product  product1  = new Product();
            Product  product2  = new Product();
            Product  product3  = new Product();
            Product  product4  = new Product();
            Product  product5  = new Product();

            PW  przychodwewmetrzny = new PW();
            RW  rozchodwewnetrzny  = new RW();
            Set zestaw             = new Set();

            Login uzytkwonik = repository2.Logins
                               .FirstOrDefault(p => p.LoginID == (int)Session["userID"]);

            if (dodaj.zestaw.Name == null || dodaj.zestaw.ProduktName1 == null)
            {
                TempData["message"] = string.Format("Błąd danych. Spróbuj ponownie {0} ", dodaj.zestaw.Name);
                return(RedirectToAction("Zestaw"));
            }

            product.Category    = "Zestaw";
            product.Description = "Zestaw produktów:";
            product.Name        = dodaj.zestaw.Name;
            product.Price       = 0;
            product.Total       = dodaj.product.Total;
            product.Warehouse1  = dodaj.product.Total;
            product.Warehouse2  = 0;

            rozchodwewnetrzny.DataWystawienia = localdate;
            rozchodwewnetrzny.Miesiac         = localdate.Month;
            rozchodwewnetrzny.Rok             = localdate.Year;
            rozchodwewnetrzny.Wystawiajacy    = uzytkwonik.Name;
            rozchodwewnetrzny.CenaCalkowita   = 0;


            przychodwewmetrzny.DataWystawienia = localdate;
            przychodwewmetrzny.Magazyn         = "Magazyn 1";
            przychodwewmetrzny.Miesiac         = localdate.Month;
            przychodwewmetrzny.Rok             = localdate.Year;
            przychodwewmetrzny.Wystawiajacy    = uzytkwonik.Name;
            przychodwewmetrzny.Produkt         = dodaj.zestaw.Name;
            przychodwewmetrzny.Ilosc           = dodaj.product.Total;
            przychodwewmetrzny.CenaCalkowita   = 0;

            zestaw.Name         = dodaj.zestaw.Name;
            zestaw.ProduktName1 = dodaj.zestaw.ProduktName1;
            zestaw.ProduktName2 = dodaj.zestaw.ProduktName2;
            zestaw.ProduktName3 = dodaj.zestaw.ProduktName3;
            zestaw.ProduktName4 = dodaj.zestaw.ProduktName4;
            zestaw.ProduktName5 = dodaj.zestaw.ProduktName5;



            product1 = repository.Products
                       .FirstOrDefault(p => p.Name == dodaj.zestaw.ProduktName1);
            product2 = repository.Products
                       .FirstOrDefault(p => p.Name == dodaj.zestaw.ProduktName2);
            product3 = repository.Products
                       .FirstOrDefault(p => p.Name == dodaj.zestaw.ProduktName3);
            product4 = repository.Products
                       .FirstOrDefault(p => p.Name == dodaj.zestaw.ProduktName4);
            product5 = repository.Products
                       .FirstOrDefault(p => p.Name == dodaj.zestaw.ProduktName5);

            if (product1.Total < dodaj.product.Total)
            {
                TempData["message"] = string.Format("Nie wystarczająco produktów na magazynie {0} ", dodaj.zestaw.ProduktName1);
                return(RedirectToAction("Zestaw"));
            }
            else
            {
                var z = dodaj.product.Total;
                product1.Total -= dodaj.product.Total;
                if (product1.Warehouse1 < z)
                {
                    z -= product1.Warehouse1;
                    product1.Warehouse1  = 0;
                    product1.Warehouse2 -= z;
                }
                else
                {
                    product1.Warehouse1 -= z;
                }
                rozchodwewnetrzny.CenaCalkowita += product1.Price * dodaj.product.Total;
                rozchodwewnetrzny.Produkty      += product1.Name + "\t" + product1.Price + "\n";
                product.Description             += product1.Name + ",";
            }

            if (product2 != null)
            {
                if (product2.Total < dodaj.product.Total)
                {
                    TempData["message"] = string.Format("Nie wystarczająco produktów na magazynie {0} ", dodaj.zestaw.ProduktName2);
                    return(RedirectToAction("Zestaw"));
                }
                else
                {
                    var z = dodaj.product.Total;
                    product2.Total -= dodaj.product.Total;
                    if (product2.Warehouse1 < z)
                    {
                        z -= product1.Warehouse1;
                        product2.Warehouse1  = 0;
                        product2.Warehouse2 -= z;
                    }
                    else
                    {
                        product2.Warehouse1 -= z;
                    }
                    rozchodwewnetrzny.CenaCalkowita += product2.Price * dodaj.product.Total;
                    rozchodwewnetrzny.Produkty      += product2.Name + "\t" + product2.Price + "\n";
                    product.Description             += product2.Name + ",";
                }
            }

            if (product3 != null)
            {
                if (product3.Total < dodaj.product.Total)
                {
                    TempData["message"] = string.Format("Nie wystarczająco produktów na magazynie {0} ", dodaj.zestaw.ProduktName3);
                    return(RedirectToAction("Zestaw"));
                }
                else
                {
                    var z = dodaj.product.Total;
                    product3.Total -= dodaj.product.Total;
                    if (product3.Warehouse1 < z)
                    {
                        z -= product1.Warehouse1;
                        product3.Warehouse1  = 0;
                        product3.Warehouse2 -= z;
                    }
                    else
                    {
                        product3.Warehouse1 -= z;
                    }
                    rozchodwewnetrzny.CenaCalkowita += product3.Price * dodaj.product.Total;
                    rozchodwewnetrzny.Produkty      += product3.Name + "\t" + product3.Price + "\n";
                    product.Description             += product3.Name + ",";
                }
            }

            if (product4 != null)
            {
                if (product4.Total < dodaj.product.Total)
                {
                    TempData["message"] = string.Format("Nie wystarczająco produktów na magazynie {0} ", dodaj.zestaw.ProduktName4);
                    return(RedirectToAction("Zestaw"));
                }
                else
                {
                    var z = dodaj.product.Total;
                    product4.Total -= dodaj.product.Total;
                    if (product4.Warehouse1 < z)
                    {
                        z -= product1.Warehouse1;
                        product4.Warehouse1  = 0;
                        product4.Warehouse2 -= z;
                    }
                    else
                    {
                        product4.Warehouse1 -= z;
                    }
                    rozchodwewnetrzny.CenaCalkowita += product4.Price * dodaj.product.Total;
                    rozchodwewnetrzny.Produkty      += product4.Name + "\t" + product4.Price + "\n";
                    product.Description             += product4.Name + ",";
                }
            }

            if (product5 != null)
            {
                if (product5.Total < dodaj.product.Total)
                {
                    TempData["message"] = string.Format("Nie wystarczająco produktów na magazynie {0} ", dodaj.zestaw.ProduktName5);
                    return(RedirectToAction("Zestaw"));
                }
                else
                {
                    var z = dodaj.product.Total;
                    product5.Total -= dodaj.product.Total;
                    if (product5.Warehouse1 < z)
                    {
                        z -= product1.Warehouse1;
                        product5.Warehouse1  = 0;
                        product5.Warehouse2 -= z;
                    }
                    else
                    {
                        product5.Warehouse1 -= z;
                    }
                    rozchodwewnetrzny.CenaCalkowita += product5.Price * dodaj.product.Total;
                    rozchodwewnetrzny.Produkty      += product5.Name + "\t" + product5.Price + "\n";
                    product.Description             += product5.Name + ",";
                }
            }

            przychodwewmetrzny.CenaCalkowita = rozchodwewnetrzny.CenaCalkowita;
            product.Price = rozchodwewnetrzny.CenaCalkowita / dodaj.product.Total;
            zestaw.Cena   = product.Price;

            repository.SaveProduct(product);
            repository.SaveProduct(product1);
            repository.SaveProduct(product2);
            repository.SaveProduct(product3);
            repository.SaveProduct(product4);
            repository.SaveProduct(product5);

            zestaw.ProductID = product.ProductID;
            repository8.SavePW(przychodwewmetrzny);
            repository10.SaveRW(rozchodwewnetrzny);
            repository6.SaveSet(zestaw);


            TempData["message"] = string.Format("Zapisano {0} ", dodaj.product.Name);
            return(RedirectToAction("Zestaw"));
        }