public ActionResult Create() { ViewBag.FirstCreate = true; var v = new UkolOddeleni() { Action = 1, Zadavatel = new UzivatelDao().GetByWindowsId(User.Identity.Name) }; return(View(v)); }
public UkolOddeleniHistoryVsUkolOddeleni(UkolOddeleniHistory uh, UkolOddeleni u) { this.UH = uh; this.U = u; }
public ActionResult Create(UkolOddeleni collection, bool poslatMail, string produktyInput) { ViewBag.FirstCreate = false; try { if (ModelState.IsValid) { var uvDao = new UkolOddeleniDao(); collection.DateStart = DateTime.Now; collection.DateLastChanged = DateTime.Now; collection.DateFinish = null; //teď fakt úkol oddělení není vytvořen collection.DateDeadline = null; //nezadáváme collection.Status = StatusUkolu.Open; //když vytváříme - úkol oddělení 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 oddělení přidaný"; if (produktyInput != "") { try { var ukolMaterialDao = new UkolOddeleniMaterialDao(); foreach ( var ukolProdukt in produktyInput.Split(';') .Where(item => item != "") .Select(item => new UkolOddeleniMaterial() { 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 oddělení"; } } //posíláme vždy //if (!poslatMail) return RedirectToAction("Detail", new { id = collection.Id }); var s = "Byl Vám přidělen nový úkol oddělení " + "<a href='/UkolOddeleni/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)); }
public ActionResult Edit(int id, UkolOddeleni collection, bool poslatMailResiteli, bool poslatMailZadavateli, string produktyInput) { var history = TempData["UkolOddeleniHistory"] as UkolOddeleni; if (history == null) { return(RedirectToAction("Index")); } try { //POKUD VŠE SEDÍ if (ModelState.IsValid) { if (produktyInput != history.MaterialyInput) { var ukolMaterialDao = new UkolOddeleniMaterialDao(); 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 UkolOddeleniMaterial() { Ukol = new UkolOddeleni() { 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 oddělení"; } } //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 UkolOddeleniHistoryDao(); var copy = new UkolOddeleniHistory(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 UkolOddeleniDao(); uvd.Update(collection); //NOTIFIKACE string s = "Byl upraven úkol <a href='/UkolOddeleni/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["UkolOddeleniHistory"] = 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)); }