public ActionResult Add2(int ServisniZasahId, bool SIL, int?SCProvozuID)
        {
            SCProvozu scprovozu = new SCProvozu();

            try
            {
                scprovozu = SCProvozu.GetSCProvozuById(SCProvozuID.Value);
            }
            catch (Exception ex) { log.Debug("ServisniZasahPrvek/Create Error number: ProvozId" + ex.HResult + " - " + ex.Message + " - " + ex.Data + " - " + ex.InnerException); }


            ServisniZasahPrvek szp = new ServisniZasahPrvek
            {
                ServisniZasahId = ServisniZasahId,
                SCProvozuID     = SCProvozuID,
                ServisniZasah   = ServisniZasah.GetZasah(ServisniZasahId),
            };


            int?skupina = 0;

            try
            {
                skupina = scprovozu.Artikl.SkupinaArtiklu;
            }
            catch (Exception ex) { log.Debug("ServisniZasahPrvek/Create Error number: ProvozId" + ex.HResult + " - " + ex.Message + " - " + ex.Data + " - " + ex.InnerException); }

            int?artikl = 0;

            try
            {
                artikl = scprovozu.Artikl.Id;
            }
            catch (Exception ex) { log.Debug("ServisniZasahPrvek/Create Error number: ProvozId" + ex.HResult + " - " + ex.Message + " - " + ex.Data + " - " + ex.InnerException); }

            if (artikl != 0)
            {
                ViewBag.ArtiklID = new SelectList(db.Artikl.Where(t => (t.ServisArtikl == artikl || t.ServisSkupina == skupina) && t.KodSAP != "SP02" && t.KodSAP != "SP01"), "Id", "Nazev");
            }
            else
            {
                ViewBag.ArtiklID = new SelectList(db.Artikl.Where(t => t.SkupinaArtiklu == 129 && t.KodSAP != "SP02" && t.KodSAP != "SP01"), "Id", "Nazev");
            }

            if (skupina != null && skupina != 0)
            {
                ViewBag.PoruchaID = new SelectList(Porucha.GetPoruchyProSkupinu(scprovozu.Artikl.SkupinaArtiklu.Value), "Id", "NazevPoruchy");
            }
            else
            {
                ViewBag.PoruchaID = new SelectList(Porucha.GetPoruchyProSkupinu(0), "Id", "NazevPoruchy");
            }

            szp.ServisniZasah.Poruchy.SeznamPoruch = Porucha.GetPoruchyProSkupinu(skupina.Value);
            szp.SIL = SIL;
            return(View("Create", szp));
        }
        public ActionResult Edit([Bind(Include = "Id,ServisniZasahId,SCProvozuID,PoruchaID,ArtiklID,Pocet,CenaZaKus,CenaCelkem")] ServisniZasahPrvek servisniZasahPrvek)
        {
            if (ModelState.IsValid)
            {
                decimal cena;
                cena = ServisniZasah.GetCenaForprvek(servisniZasahPrvek);
                servisniZasahPrvek.CenaZaKus  = cena;
                servisniZasahPrvek.CenaCelkem = cena * servisniZasahPrvek.Pocet;

                ServisniZasah sz = new ServisniZasah();
                sz = ServisniZasah.GetZasah(servisniZasahPrvek.ServisniZasahId);

                //datum ukonceni platnosti zaruky umisteni
                var umisteni = Umisteni.GetDatumZaruky(sz.UmisteniId);
                //datum ukonceni platnosti zaruky SCProvozu
                DateTime?scprovozu = DateTime.MinValue;
                if (servisniZasahPrvek.SCProvozuID != null)
                {
                    scprovozu = SCProvozu.GetDatumZaruky(servisniZasahPrvek.SCProvozuID.Value);
                }
                DateTime?datum = DateTime.Now;
                //v zaruce?
                if (scprovozu != null)
                {
                    datum = scprovozu;
                }
                else
                {
                    if (umisteni != null)
                    {
                        if (scprovozu != null)
                        {
                            if (scprovozu >= umisteni)
                            {
                                datum = scprovozu;
                            }
                            if (scprovozu < umisteni)
                            {
                                datum = umisteni;
                            }
                        }
                        else
                        {
                            datum = umisteni;
                        }
                    }
                }
                if (datum >= sz.DatumVyzvy)
                {
                    var porucha = Porucha.ReklamaceById(servisniZasahPrvek.PoruchaID);
                    if (porucha == true)
                    {
                        servisniZasahPrvek.Reklamace = true;
                    }
                }
                db.Entry(servisniZasahPrvek).State = EntityState.Modified;
                db.SaveChanges();
                ServisniZasah.UpdateHeader(servisniZasahPrvek.ServisniZasahId);
                return(RedirectToAction("Details", "ServisniZasah", new { Id = servisniZasahPrvek.ServisniZasahId }));
            }
            ViewBag.ArtiklID        = new SelectList(db.Artikl, "Id", "Nazev", servisniZasahPrvek.ArtiklID);
            ViewBag.PoruchaID       = new SelectList(db.Porucha, "Id", "NazevPoruchy", servisniZasahPrvek.PoruchaID);
            ViewBag.SCProvozuID     = new SelectList(db.SCProvozu, "Id", "Lokace", servisniZasahPrvek.SCProvozuID);
            ViewBag.ServisniZasahId = new SelectList(db.ServisniZasah, "Id", "Odkud", servisniZasahPrvek.ServisniZasahId);
            return(View(servisniZasahPrvek));
        }
        public ActionResult Create([Bind(Include = "Id,ServisniZasahId,SCProvozuID,PoruchaID,ArtiklID,Pocet,CenaZaKus,CenaCelkem,SIL")] ServisniZasahPrvek servisniZasahPrvek)
        {
            if (ModelState.IsValid)
            {
                decimal cena;
                if (servisniZasahPrvek.ArtiklID != null)
                {
                    cena = ServisniZasah.GetCenaForprvek(servisniZasahPrvek);
                    servisniZasahPrvek.CenaZaKus  = cena;
                    servisniZasahPrvek.CenaCelkem = cena * servisniZasahPrvek.Pocet;
                }
                ServisniZasah sz = new ServisniZasah();
                sz = ServisniZasah.GetZasah(servisniZasahPrvek.ServisniZasahId);

                //datum ukonceni platnosti zaruky umisteni
                var umisteni = Umisteni.GetDatumZaruky(sz.UmisteniId);
                //datum ukonceni platnosti zaruky SCProvozu
                DateTime?scprovozu = null;
                try
                {
                    scprovozu = SCProvozu.GetDatumZaruky(servisniZasahPrvek.SCProvozuID.Value);
                }
                catch (Exception ex)
                {
                    scprovozu = null;
                    log.Debug("Error number:" + ex.HResult + " - " + ex.Message + " - " + ex.Data + " - " + ex.InnerException);
                }

                DateTime?datum = DateTime.Now;
                //v zaruce?
                if (scprovozu != null)
                {
                    datum = scprovozu;
                }
                else
                {
                    if (umisteni != null)
                    {
                        if (scprovozu != null)
                        {
                            if (scprovozu >= umisteni)
                            {
                                datum = scprovozu;
                            }
                            if (scprovozu < umisteni)
                            {
                                datum = umisteni;
                            }
                        }
                        else
                        {
                            datum = umisteni;
                        }
                    }
                }
                if (datum >= sz.DatumVyzvy)
                {
                    //var porucha = Porucha.ReklamaceById(servisniZasahPrvek.PoruchaID);
                    var porucha = false;
                    if (porucha == true)
                    {
                        servisniZasahPrvek.Reklamace = true;
                    }
                }

                db.ServisniZasahPrvek.Add(servisniZasahPrvek);



                db.SaveChanges();
                ServisniZasah.UpdateHeader(servisniZasahPrvek.ServisniZasahId);



                return(RedirectToAction("Details", "ServisniZasah", new { Id = servisniZasahPrvek.ServisniZasahId }));
            }

            ViewBag.ArtiklID        = new SelectList(db.Artikl, "Id", "Nazev", servisniZasahPrvek.ArtiklID);
            ViewBag.PoruchaID       = new SelectList(db.Porucha, "Id", "NazevPoruchy", servisniZasahPrvek.PoruchaID);
            ViewBag.SCProvozuID     = new SelectList(db.SCProvozu, "Id", "Lokace", servisniZasahPrvek.SCProvozuID);
            ViewBag.ServisniZasahId = new SelectList(db.ServisniZasah, "Id", "Odkud", servisniZasahPrvek.ServisniZasahId);
            return(View(servisniZasahPrvek));
        }