예제 #1
0
        public ActionResult Edit(int id)
        {
            var uvd  = new UkolVedeniDao();
            var item = uvd.GetById(id);

            if (item == null)
            {
                return(RedirectToAction("Index"));
            }
            var matDao       = new MaterialDao();
            var materialList = matDao.GetAll();

            ViewBag.materialList          = materialList;
            TempData["UkolVedeniHistory"] = item;
            return(View(item));
        }
예제 #2
0
        public ActionResult Detail(int id, bool?smazane)
        {
            var uvd = new UkolVedeniDao();
            var uv  = uvd.GetById(id);


            if (smazane == true)
            {
                ViewBag.ZeSmazanych = true;
            }

            if (uv != null && !uv.Deleted)
            {
                return(View(uv));
            }

            TempData[MessagesHelper.Danger] = "úkol vedení neexistuje, nebo byl smazán";
            return(RedirectToAction("Index"));
        }
예제 #3
0
        public ActionResult DenyUkolVedeni(int id, string deniedMessage)
        {
            try
            {
                if (String.IsNullOrEmpty(deniedMessage.Trim()))
                {
                    deniedMessage = "Odmítnuto (bez udání důvodu)"; //natvrdo popisek
                }

                var ukolDao = new UkolVedeniDao();
                var ukol    = ukolDao.GetById(id);

                /*
                 * //uložení historie
                 * var histDao = new LopHistoryDao();
                 * var copy = new LopHistory(lop);
                 * histDao.Create(copy);
                 */

                ukol.DateLastChanged = DateTime.Now; //něco se děje
                ukol.DeniedMessage   = deniedMessage;

                //update objektu
                ukolDao.Update(ukol);

                var s = ukol.Resitel + " " + Resources.LopTexts.OdmitlResitUkol + " " +
                        "<a href='/Lop/Detail/" + ukol.Id + "'>" + ukol.Nazev +
                        "</a><br />" + ukol.DeniedMessage;
                Notifikace.Create(ukol.Zadavatel.Id, s);

                TempData[MessagesHelper.Success] = Resources.LopTexts.UkolBylOdmitnut;

                return(RedirectToAction("Index"));
            }
            catch
            {
                TempData[MessagesHelper.Warning] = Resources.LopTexts.NepodariloSeOdmitnoutUkol;
            }

            return(RedirectToAction("Detail/" + id));
        }
예제 #4
0
        // GET: UkolVedeni
        public ActionResult Index(bool?smazane)
        {
            if (!Uzivatel.UserExists(User.Identity.Name))
            {
                TempData[MessagesHelper.Info] = Resources.HomeTexts.NotAuthorized;
                return(RedirectToAction("About", "Home"));
            }
            var dao = new UkolVedeniDao();
            IList <UkolVedeni> list;

            if (smazane == true)
            {
                ViewBag.ZeSmazanych = true; //TODO otestovat!
                list = dao.GetOnlyDeleted(new UzivatelDao().GetByWindowsId(User.Identity.Name));
            }
            else
            {
                list = dao.GetAll(new UzivatelDao().GetByWindowsId(User.Identity.Name));
            }

            return(View(list));
        }
예제 #5
0
        public ActionResult Delete(int id)
        {
            try
            {
                var uvd = new UkolVedeniDao();
                var uv  = uvd.GetById(id);

                /*
                 * var uvhd = new UkolVedeniHistoryDao();
                 * var uvh = new UkolVedeniHistory(uv);
                 * uvhd.Create(uvh);
                 */
                uv.Deleted = true;
                uvd.Update(uv);

                TempData[MessagesHelper.Success] = "úkol vedení byl úspěšně smazán";
            }
            catch
            {
                TempData[MessagesHelper.Danger] = "Nepodařilo se smazat úkol vedení";
            }

            return(RedirectToAction("Index"));
        }
예제 #6
0
        public ActionResult FinishUkol(int id, bool finished, string komentar)
        {
            try
            {
                var ukolDao = new UkolVedeniDao();
                var ukol    = ukolDao.GetById(id);

                ukol.DateLastChanged = DateTime.Now; //něco se děje

                if (finished)
                {
                    /*
                     * //uložení historie
                     * var histDao = new UkolVedeniHistoryDao();
                     * var copy = new UkolVedeniHistory(ukol);
                     * histDao.Create(copy);
                     */
                    Uzivatel u           = new UzivatelDao().GetByWindowsId(User.Identity.Name.ToUpper());
                    bool     isZadavatel = u.Id == ukol.Zadavatel.Id;

                    if (isZadavatel && ukol.Status == StatusUkolu.Closed)
                    {
                        ukol.DateCheck  = DateTime.Now; //proběhla kontrola (ať už jakákoliv)
                        ukol.DateFinish = DateTime.Now; //v pořádku
                    }
                    else
                    {
                        ukol.DateDeadline = DateTime.Now;
                    }

                    ukol.Status = StatusUkolu.Closed; //řešitel pouze uzavírá na close
                    if (!string.IsNullOrEmpty(komentar))
                    {
                        var koment = komentar + "<br />";
                        koment       += $"<span class=\"glyphicon glyphicon-time\"></span><i>{DateTime.Now} - by {new Uzivatel(User.Identity.Name)}</i>";
                        ukol.Komentar = (!string.IsNullOrEmpty(ukol.Komentar) ? ukol.Komentar + "<hr />" + koment : koment);
                    }


                    //update objektu
                    ukolDao.Update(ukol);

                    if (isZadavatel)
                    {
                        string s = "Bylo přijaté řešení úkolu vedení " +
                                   "<a href='/UkolVedeni/Detail/" + ukol.Id + "?showHistory=true#historyBtn'>" + ukol.Nazev +
                                   "</a>";
                        Notifikace.Create(ukol.Resitel.Id, s);
                    }
                    else
                    {
                        string s = "Úkol vedení byl označen jako vyřešený " +
                                   "<a href='/UkolVedeni/Detail/" + ukol.Id + "'>" + ukol.Nazev + "</a>";
                        Notifikace.Create(ukol.Zadavatel.Id, s);
                    }


                    TempData[MessagesHelper.Success] = "Úkol byl vyřešen";

                    //return RedirectToAction("Detail/" + id);
                }
                else
                {
                    // uložení historie
                    var histDao = new UkolVedeniHistoryDao();
                    var copy    = new UkolVedeniHistory(ukol);
                    histDao.Create(copy);

                    //pokud chceme označit jako nevyřešený
                    ukol.DateCheck    = DateTime.Now;     //proběhla kontrola (ať už jakákoliv)
                    ukol.DateDeadline = null;
                    ukol.DateFinish   = null;             //nepřijato
                    ukol.Status       = StatusUkolu.Open; //úkol musí být dále zpracováván
                    if (!string.IsNullOrEmpty(komentar))
                    {
                        var koment = komentar + "<br />";
                        koment       += $"<span class=\"glyphicon glyphicon-time\"></span><i>{DateTime.Now} - by {new Uzivatel(User.Identity.Name)}</i>";
                        ukol.Komentar = (!string.IsNullOrEmpty(ukol.Komentar) ? ukol.Komentar + "<hr />" + koment : koment);
                    }


                    ukolDao.Update(ukol);

                    //update objektu
                    string s = "Bylo odmítnuto řešení úkolu vedení " +
                               "<a href='/UkolVedeni/Detail/" + ukol.Id + "?showHistory=true#historyBtn'>" + ukol.Nazev + "</a>";
                    Notifikace.Create(ukol.Resitel.Id, s);


                    TempData[MessagesHelper.Warning] = "Úkol je znovu v řešení";

                    //return RedirectToAction("Detail/" + id);
                }
            }
            catch
            {
                TempData[MessagesHelper.Warning] = "Nepodařilo se upravit záznam";
            }

            return(RedirectToAction("Detail/" + id));
        }
예제 #7
0
        public ActionResult Edit(int id, UkolVedeni collection, bool poslatMailResiteli, bool poslatMailZadavateli, string produktyInput)
        {
            var history = TempData["UkolVedeniHistory"] as UkolVedeni;

            if (history == null)
            {
                return(RedirectToAction("Index"));
            }

            try
            {
                //POKUD VŠE SEDÍ
                if (ModelState.IsValid)
                {
                    if (produktyInput != history.MaterialyInput)
                    {
                        var ukolMaterialDao = new UkolVedeniMaterialDao();
                        foreach (var item in history.MaterialyInput.Split(';').Where(item => !produktyInput.Contains(";" + item + ";")).Where(item => item != ""))
                        { // Odebrání přebytečných
                            ukolMaterialDao.Delete(history.Materialy.First(x => x.Produkt.Id == Convert.ToInt32(item)));
                        }
                        try
                        {//Přidání nových
                            foreach (var ukolProdukt in produktyInput.Split(';').Where(item => item != "").Select(item => new UkolVedeniMaterial()
                            {
                                Ukol = new UkolVedeni()
                                {
                                    Id = collection.Id
                                },
                                Produkt = new MaterialDao().GetById(Convert.ToInt32(item)),
                                DateAdded = DateTime.Now
                            }).Where(lopProdukt => !history.MaterialyInput.Contains(lopProdukt.Produkt.Id.ToString())))
                            {
                                ukolMaterialDao.Create(ukolProdukt);
                            }
                        }
                        catch
                        {
                            TempData[MessagesHelper.Danger] = "Nepodařilo se připojení produktů k úkolu vedení";
                        }
                    }
                    //TEST SHODNOTI

                    /*
                     * if (collection.IsSame(history)) //vrací FALSE, pokud nastala změna
                     * {
                     *  if (produktyInput != history.MaterialyInput)
                     *  {
                     *      TempData[MessagesHelper.Success] = "Provázané materiály byly aktualizovány";
                     *      return RedirectToAction("Detail/" + collection.Id);
                     *  }
                     *  TempData[MessagesHelper.Info] = "Nebyly provedeny žádné změny";
                     *  return RedirectToAction("Detail/" + collection.Id);
                     * }
                     *
                     * //SAVE HISTORY
                     * var uvhd = new UkolVedeniHistoryDao();
                     * var copy = new UkolVedeniHistory(history);
                     * uvhd.Create(copy);
                     */

                    if (collection.DateFinish != null)
                    {
                        collection.Status = StatusUkolu.Closed; //byl zadán datum ukončení? nebo tohle přepíná zadavatel??
                    }

                    //SAVE OBJECT
                    collection.DateLastChanged = DateTime.Now;
                    var uvd = new UkolVedeniDao();
                    uvd.Update(collection);

                    //NOTIFIKACE
                    string s = "Byl upraven úkol <a href='/UkolVedeni/Detail/" + collection.Id + "?showHistory=true#historyBtn'>" + collection.Nazev + "</a>";
                    if (poslatMailResiteli)
                    {
                        Notifikace.Create(collection.Resitel.Id, s);
                    }
                    if (poslatMailZadavateli)
                    {
                        Notifikace.Create(collection.Zadavatel.Id, s);
                    }


                    //DONE
                    TempData[MessagesHelper.Success] = "Změny byly úspěšně uloženy";
                    return(RedirectToAction("Detail/" + collection.Id));
                }
            }
            catch
            {
                TempData[MessagesHelper.Danger] = "Došlo k neočekávané chybě";
            }

            //NON VALID - RE EDIT IT
            TempData["UkolVedeniHistory"]    = history;
            TempData[MessagesHelper.Warning] = "Zkontrolujte zadané údaje";

            var matDao       = new MaterialDao();
            var materialList = matDao.GetAll();

            ViewBag.materialList = materialList;
            collection.Materialy = history.Materialy;
            return(View(collection));
        }
예제 #8
0
        public ActionResult Create(UkolVedeni collection, bool poslatMail, string produktyInput)
        {
            ViewBag.FirstCreate = false;

            try
            {
                if (ModelState.IsValid)
                {
                    var uvDao = new UkolVedeniDao();
                    collection.DateStart       = DateTime.Now;
                    collection.DateLastChanged = DateTime.Now;
                    collection.DateFinish      = null;             //teď fakt úkol vedení není vytvořen
                    collection.DateDeadline    = null;             //nezadáváme
                    collection.Status          = StatusUkolu.Open; //když vytváříme - úkol vedení je standartně otevřený
                    collection.LessonLearned   = false;            //zatim jsme se z toho asi fakt neponaučili
                    var latest = uvDao.GetLatestLopThisYear();
                    collection.Action  = latest?.Action + 1 ?? 1;
                    collection.Deleted = false;
                    collection.Id      = (int)uvDao.Create(collection);
                    TempData[MessagesHelper.Success] = "úkol vedení přidaný";

                    if (produktyInput != "")
                    {
                        try
                        {
                            var ukolMaterialDao = new UkolVedeniMaterialDao();
                            foreach (
                                var ukolProdukt in
                                produktyInput.Split(';')
                                .Where(item => item != "")
                                .Select(item => new UkolVedeniMaterial()
                            {
                                Ukol = collection,
                                Produkt = new MaterialDao().GetById(Convert.ToInt32(item)),
                                DateAdded = DateTime.Now
                            }))
                            {
                                ukolMaterialDao.Create(ukolProdukt);
                            }
                        }
                        catch
                        {
                            TempData[MessagesHelper.Danger] = "Nepodařilo se připojení produktů k úkolu vedení";
                        }
                    }

                    new UkolVedeniMaterialDao().ClearWrongHistoryAfterCreate(); //po vytvoření je třeba vymazat řádky v historii matroše

                    //posíláme vždy
                    //if (!poslatMail) return RedirectToAction("Detail", new {id = collection.Id});
                    var s = "Byl Vám přidělen nový úkol vedení " +
                            "<a href='/UkolVedeni/Detail/" + collection.Id + "'>" + collection.Nazev + "</a>";
                    Notifikace.Create(collection.Resitel.Id, s);
                    return(RedirectToAction("Detail", new { id = collection.Id }));
                }
                else
                {
                    TempData[MessagesHelper.Warning] = "Zkontrolujte zadané údaje";

                    return(View(collection));
                }
            }
            catch
            {
                TempData[MessagesHelper.Danger] = "Došlo k neočekávané chybě";
            }

            return(View(collection));
        }