[HttpPost]//promjeniti naziv metode public JsonResult SlanjeMejlaZaOdobravanjeNabavke(bool odobreno, int nabavka, string napomena) { var narucilacSifra = trebovanjeNabavkeContext.Nabavkes.FirstOrDefault(t => t.NabavkaId == nabavka).SifraRadnika; var narucilac = trebovanjeNabavkeContext.vRadniks.FirstOrDefault(k => k.RadnikSifra == narucilacSifra); var provjerivac = trebovanjeNabavkeContext.vRadniks.FirstOrDefault(k => k.KorisnickoIme == User.Identity.Name); var nabavkaDB = trebovanjeNabavkeContext.Nabavkes.FirstOrDefault(tr => tr.NabavkaId == nabavka); nabavkaDB.NapomenaSefa = napomena; if (nabavkaDB == null)//dodati jos i ako je nabavka odobrena da je ne moze vise otvoriti pod "odobravanjem" { return(Json(new { succses = false, message = "Nabavka je nepostojeca!" })); } if (provjerivac.RadnikSifra == narucilac.Nivo1OdobravanjaSifra)//provjera ako je tim lider { // ako nema nadredjenog viseg nivoa a odobreno je, salji u skladiste ili marketing if (narucilac.Nivo2OdobravanjaSifra == null && narucilac.Nivo3OdobravanjaSifra == null && odobreno) { nabavkaDB.DatumiOdobravanjaNabavke.DatumOdobravanjaNivoa1 = DateTime.Now; nabavkaDB.StatusNabavkeId = (int)Enum.Status.Odobreno;//status odobreno poslano = PosaljiMejlMarketinguZaNovuNabavku(nabavkaDB.SerijskiBroj); nabavkaDB.StatusNabavkeId = (int)Enum.Status.U_procesu_nabavke; // status "u procesu nabavke" //salje mejl i naruciocu da je narudzba odobrena i da je otisla u marketing radi narudžbe artikala if (poslano) { poslano = false; naslov_Mejla = "Odgovor na zahtjev za nabavku"; sadrzaj_Mejla = "<p>Poštovani, <br/><br/> Vaše <a href=" + adresaHosta + "Nabavke/DetaljiNabavke?nabavka=" + nabavka + ">nabavka </a> je odobrena, zahtjev je proslijeđen Timu prodaje i nabavki.<br/>" + "Naknadno ćete biti obavješteni kada artikl/i budu spremni za preuzimanje.</p><br/><br/> "; sadrzaj_Mejla += "<span>Srdačan pozdrav,<br/><br/> Lanaco trebovanje i nabavke</span>"; na_Mejl = narucilac.Email; poslano = email.PosaljiMejl(naslov_Mejla, na_Mejl, sadrzaj_Mejla); if (poslano) //AKO JE USPJESNO POSLALO REDIREKTUJ NA POCETNU STRANICU { trebovanjeNabavkeContext.SaveChanges(); return(Json(new { succses = true })); } else // AKO JE DOSLO DO GRESKE I NIJE POSLALO VRATI VIEW { return(Json(new { succses = false, message = "Neuspješno slanje mejla" })); } } else // AKO JE DOSLO DO GRESKE I NIJE POSLALO VRATI VIEW { return(Json(new { succses = false, message = "Neuspješno slanje mejla" })); } } else { if (odobreno) { vRadnik nadredjeni = new vRadnik(); //salje menadzeru (sefu) dalje if (narucilac.Nivo2OdobravanjaSifra != null) { var timLider = trebovanjeNabavkeContext.vRadniks.ToList().FirstOrDefault(ko => ko.RadnikSifra == narucilac.Nivo1OdobravanjaSifra); nadredjeni = trebovanjeNabavkeContext.vRadniks.ToList().FirstOrDefault(ko => ko.RadnikSifra == narucilac.Nivo2OdobravanjaSifra); naslov_Mejla = "Zahtjev za odobravanje nabavke"; sadrzaj_Mejla = "<p>Poštovani, <br/><br/> Na sistemu LANACO trebovanje i nabavke je novi zahtjev za <a href=" + adresaHosta + "OdobravanjeNabavke/OdobravanjeNabavke?nabavka=" + nabavkaDB.NabavkaId + ">odobravanje nabavke</a>. <br/>" + "Podnosilac zahtjeva: " + narucilac.Ime + " " + narucilac.Prezime + "<br/>" + "Broj zahtjeva: " + nabavkaDB.SerijskiBroj; sadrzaj_Mejla += "<br/><br/><span>Srdačan pozdrav,<br/><br/> Lanaco trebovanje i nabavke</span>"; na_Mejl = nadredjeni.Email; nabavkaDB.StatusNabavkeId = 2; // status U procesu odobravanja nabavkaDB.DatumiOdobravanjaNabavke.DatumOdobravanjaNivoa1 = DateTime.Now; } else if (narucilac.Nivo3OdobravanjaSifra != null) { nadredjeni = trebovanjeNabavkeContext.vRadniks.ToList().FirstOrDefault(ko => ko.RadnikSifra == narucilac.Nivo3OdobravanjaSifra); naslov_Mejla = "Zahtjev za odobravanje nabavke"; sadrzaj_Mejla = "<p>Poštovani, <br/><br/> Na sistemu LANACO trebovanje i nabavke je novi zahtjev za <a href=" + adresaHosta + "OdobravanjeNabavke/OdobravanjeNabavke?nabavka=" + nabavkaDB.NabavkaId + " >odobravanje nabavke </a>. <br/>" + "Podnosilac zahtjeva: " + narucilac.Ime + " " + narucilac.Prezime + "<br/>" + "Broj zahtjeva: " + nabavkaDB.SerijskiBroj; sadrzaj_Mejla += "<br/><br/><span>Srdačan pozdrav,<br/><br/> Lanaco trebovanje i nabavke</span>"; na_Mejl = nadredjeni.Email; nabavkaDB.StatusNabavkeId = (int)Enum.Status.U_procesu_odobravanja; // status U procesu odobravanja nabavkaDB.DatumiOdobravanjaNabavke.DatumOdobravanjaNivoa1 = DateTime.Now; }// else je nepotreban jer je slucaj kad nema ni nivoa 2 ni 3 obradjen u if-u iznad } else// nabavka odbijena od strane tim lidela { sadrzaj_Mejla = "<p>Poštovani, <br/><br/> Vaša <a href=" + adresaHosta + "Nabavke/DetaljiNabavke?nabavka=" + nabavka + ">nabavka </a> je odbijena</p><br/> <br/>"; sadrzaj_Mejla += "<span>Srdačan pozdrav,<br/><br/> Lanaco trebovanje i nabavke</span>"; naslov_Mejla = "Odgovor na zahtjev za nabavku"; na_Mejl = narucilac.Email; nabavkaDB.StatusNabavkeId = (int)Enum.Status.Odbijeno; nabavkaDB.DatumiOdobravanjaNabavke.DatumOdobravanjaNivoa1 = DateTime.Now; } poslano = email.PosaljiMejl(naslov_Mejla, na_Mejl, sadrzaj_Mejla); if (poslano) //AKO JE USPJESNO POSLALO REDIREKTUJ NA POCETNU STRANICU { trebovanjeNabavkeContext.SaveChanges(); return(Json(new { succses = true })); } else // AKO JE DOSLO DO GRESKE I NIJE POSLALO VRATI VIEW { return(Json(new { succses = false, message = "Neuspješno slanje mejla" })); } } } else if (provjerivac.RadnikSifra == narucilac.Nivo2OdobravanjaSifra) { if (odobreno) { nabavkaDB.DatumiOdobravanjaNabavke.DatumOdobravanjaNivoa2 = DateTime.Now; if (narucilac.Nivo3OdobravanjaSifra != null) // ako postoji nivo 3 odobravanja salji njemu mejl i redirektuj { nabavkaDB.StatusNabavkeId = (int)Enum.Status.U_procesu_odobravanja_viseg_nivoa; //status u procesu odobravanja viseg nivoa var nadredjeni = trebovanjeNabavkeContext.vRadniks.ToList().FirstOrDefault(ko => ko.RadnikSifra == narucilac.Nivo3OdobravanjaSifra); naslov_Mejla = "Zahtjev za odobravanje nabavke"; sadrzaj_Mejla = "<p>Poštovani, <br/><br/> Na sistemu LANACO trebovanje i nabavke je novi zahtjev za <a href=" + adresaHosta + "OdobravanjeNabavke/OdobravanjeNabavke?nabavka=" + nabavkaDB.NabavkaId + ">odobravanje nabavke</a>. <br/>" + "Podnosilac zahtjeva: " + narucilac.Ime + " " + narucilac.Prezime + "<br/>" + "Broj zahtjeva: " + nabavkaDB.SerijskiBroj; sadrzaj_Mejla += "<br/><br/><span>Srdačan pozdrav,<br/><br/> Lanaco trebovanje i nabavke</span>"; na_Mejl = nadredjeni.Email; poslano = email.PosaljiMejl(naslov_Mejla, na_Mejl, sadrzaj_Mejla); if (poslano) //AKO JE USPJESNO POSLALO REDIREKTUJ NA POCETNU STRANICU { trebovanjeNabavkeContext.SaveChanges(); return(Json(new { succses = true })); } else // AKO JE DOSLO DO GRESKE I NIJE POSLALO VRATI VIEW { return(Json(new { succses = false, message = "Neuspjesno slanje mejla" })); } } else if (narucilac.Nivo3OdobravanjaSifra == null) { poslano = PosaljiMejlMarketinguZaNovuNabavku(nabavkaDB.SerijskiBroj); nabavkaDB.StatusNabavkeId = (int)Enum.Status.U_procesu_nabavke; // status "u procesu nabavke" if (poslano) { //salje mejl i naruciocu da je narudzba odobrena poslano = false; naslov_Mejla = "Odgovor na zahtjev za nabavku"; sadrzaj_Mejla = "<p>Poštovani, <br/><br/> Vaša <a href=" + adresaHosta + "Nabavka/DetaljiNabavke?nabavka=" + nabavka + ">nabavka </a> je odobrena, zahtjev je proslijeđena Timu prodaje i nabavke.<br/>" + "Naknadno ćete biti obavješteni kada nabavka budu spremna za preuzimanje.</p><br/><br/> "; sadrzaj_Mejla += "<span>Srdačan pozdrav,<br/><br/> Lanaco trebovanje i nabavke</span>"; na_Mejl = narucilac.Email; poslano = email.PosaljiMejl(naslov_Mejla, na_Mejl, sadrzaj_Mejla); if (poslano) //AKO JE USPJESNO POSLALO REDIREKTUJ NA POCETNU STRANICU { trebovanjeNabavkeContext.SaveChanges(); return(Json(new { succses = true })); } else // AKO JE DOSLO DO GRESKE I NIJE POSLALO VRATI VIEW { return(Json(new { succses = false, message = "Neuspješno slanje mejla" })); } } else // AKO JE DOSLO DO GRESKE I NIJE POSLALO VRATI VIEW { return(Json(new { succses = false, message = "Neuspješno slanje mejla" })); } } } else // nabavka odbijena od strane sefa ili gen. menadzera { sadrzaj_Mejla = "<p>Poštovani, <br/><br/> Vaša <a href=" + adresaHosta + "Nabavke/DetaljiNabavke?nabavka=" + nabavka + ">nabavka </a> je odbijena</p><br/> <br/>"; sadrzaj_Mejla += "<span>Srdačan pozdrav,<br/><br/> Lanaco trebovanje i nabavke</span>"; naslov_Mejla = "Odgovor na zahtjev za nabavku"; na_Mejl = narucilac.Email; nabavkaDB.StatusNabavkeId = (int)Enum.Status.Odbijeno; nabavkaDB.DatumiOdobravanjaNabavke.DatumOdobravanjaNivoa2 = DateTime.Now; } poslano = email.PosaljiMejl(naslov_Mejla, na_Mejl, sadrzaj_Mejla); if (poslano) //AKO JE USPJESNO POSLALO REDIREKTUJ NA POCETNU STRANICU { trebovanjeNabavkeContext.SaveChanges(); return(Json(new { succses = true })); } else // AKO JE DOSLO DO GRESKE I NIJE POSLALO VRATI VIEW { return(Json(new { succses = false, message = "Neuspješno slanje mejla" })); } } else if (provjerivac.RadnikSifra == narucilac.Nivo3OdobravanjaSifra) { if (odobreno) { nabavkaDB.DatumiOdobravanjaNabavke.DatumOdobravanjaNivoa3 = DateTime.Now; nabavkaDB.StatusNabavkeId = (int)Enum.Status.U_procesu_nabavke; poslano = PosaljiMejlMarketinguZaNovuNabavku(nabavkaDB.SerijskiBroj); if (poslano) {// salje mejl naruciocu da je nabavka odobrena poslano = false; naslov_Mejla = "Odgovor na zahtjev za nabavku"; sadrzaj_Mejla = "<p>Poštovani, <br/><br/> Vaša <a href=" + adresaHosta + "Nabavka/DetaljiNabavke?nabavka=" + nabavka + ">nabavka </a> je odobrena, zahtjev je proslijeđena Timu prodaje i nabavke.<br/>" + "Naknadno ćete biti obavješteni kada nabavka budu spremna za preuzimanje.</p><br/><br/> "; sadrzaj_Mejla += "<span>Srdačan pozdrav,<br/><br/> Lanaco trebovanje i nabavke</span>"; na_Mejl = narucilac.Email; poslano = email.PosaljiMejl(naslov_Mejla, na_Mejl, sadrzaj_Mejla); if (poslano) //AKO JE USPJESNO POSLALO REDIREKTUJ NA POCETNU STRANICU { trebovanjeNabavkeContext.SaveChanges(); return(Json(new { succses = true })); } else // AKO JE DOSLO DO GRESKE I NIJE POSLALO VRATI VIEW { return(Json(new { succses = false, message = "Neuspješno slanje mejla" })); } } else { Json(new { succses = false, message = "Neuspješno slanje mejla" }); } } } else // nabavka odbijena od strane sefa ili gazde { sadrzaj_Mejla = "<p>Poštovani, <br/><br/> Vaša <a href=" + adresaHosta + "Nabavke/DetaljiNabavke?nabavka=" + nabavka + ">nabavka </a> je odbijena</p><br/> <br/>"; sadrzaj_Mejla += "<span>Srdačan pozdrav,<br/><br/> Lanaco trebovanje i nabavke</span>"; naslov_Mejla = "Odgovor na zahtjev za nabavku"; na_Mejl = narucilac.Email; nabavkaDB.StatusNabavkeId = (int)Enum.Status.Odbijeno; //zamjeniti sa datumom razmatranja nabavkaDB.DatumiOdobravanjaNabavke.DatumOdobravanjaNivoa3 = DateTime.Now; } poslano = email.PosaljiMejl(naslov_Mejla, na_Mejl, sadrzaj_Mejla); if (poslano) //AKO JE USPJESNO POSLALO REDIREKTUJ NA POCETNU STRANICU { trebovanjeNabavkeContext.SaveChanges(); return(Json(new { succses = true })); } else // AKO JE DOSLO DO GRESKE I NIJE POSLALO VRATI VIEW { return(Json(new { succses = false, message = "Neuspješno slanje mejla" })); } }
public JsonResult IzmjenaAktivneNabavke(NabavkaViewModel viewModel) { viewModel.Stavke = viewModel.Stavke.OrderBy(a => a.NabavkaVeznaId).ToList(); List <string> izmjenjeniArtikli = new List <string>(); var nabavkaVezna = trebovanjeNabavkeContext.NabavkaVeznas.Where(t => t.NabavkaId == viewModel.NabavkaId).OrderBy(a => a.NabavkaVeznaId).ToList(); for (int i = 0; i < viewModel.Stavke.Count; i++) { bool spremno = false; bool preuzeto = false; //stanje iz baze konvertujem u bool if (nabavkaVezna[i].StatusId == (int)Enum.Status.Spremno_za_preuzimanje) { spremno = true; preuzeto = false; } else if (nabavkaVezna[i].StatusId == (int)Enum.Status.Preuzeto) { spremno = true; preuzeto = true; } if (viewModel.Stavke[i].Spremno != spremno && viewModel.Stavke[i].Spremno) { int artikalId = viewModel.Stavke[i].NabavkaVeznaId; nabavkaVezna.Where(t => t.NabavkaId == viewModel.NabavkaId).ToList()[i].StatusId = (int)Enum.Status.Spremno_za_preuzimanje; izmjenjeniArtikli.Add(trebovanjeNabavkeContext.NabavkaVeznas.FirstOrDefault(t => t.NabavkaVeznaId == artikalId).Opis); } else if (viewModel.Stavke[i].Spremno != spremno && !viewModel.Stavke[i].Spremno) { nabavkaVezna.Where(t => t.NabavkaId == viewModel.NabavkaId).ToList()[i].StatusId = (int)Enum.Status.Artikl_u_pripremi; } if (viewModel.Stavke[i].Preuzeto != preuzeto && viewModel.Stavke[i].Preuzeto) { nabavkaVezna.Where(t => t.NabavkaId == viewModel.NabavkaId).ToList()[i].StatusId = (int)Enum.Status.Preuzeto; } else if (viewModel.Stavke[i].Preuzeto != preuzeto && !viewModel.Stavke[i].Preuzeto && viewModel.Stavke[i].Spremno) { nabavkaVezna.Where(t => t.NabavkaId == viewModel.NabavkaId).ToList()[i].StatusId = (int)Enum.Status.Spremno_za_preuzimanje; } else if (viewModel.Stavke[i].Preuzeto != preuzeto && !viewModel.Stavke[i].Preuzeto && !viewModel.Stavke[i].Spremno) { nabavkaVezna.Where(t => t.NabavkaId == viewModel.NabavkaId).ToList()[i].StatusId = (int)Enum.Status.Artikl_u_pripremi; } } trebovanjeNabavkeContext.SaveChanges(); if (izmjenjeniArtikli.Count > 0) { EmailController email = new EmailController(); string naslovEmaila = "Artikli iz nabavke su spremni za preuzimanje"; string naMejl = trebovanjeNabavkeContext.Nabavkes.FirstOrDefault(t => t.NabavkaId == viewModel.NabavkaId).vRadnik.Email; string sadrzajEmaila = "<p>Poštovani, <br/><br/>" + " <p>Sljedeći artikli koje ste <a href=" + email.adresaHosta + "Nabavke/DetaljiNabavke?nabavka=" + viewModel.NabavkaId + ">naručili </a>" + " su spremni za preuzimanje: </p> <ul>"; foreach (var artikal in izmjenjeniArtikli) { sadrzajEmaila += "<li>" + artikal + "</li>"; } sadrzajEmaila += "</ul><br/><span> Srdačan pozdrav,<br/><br/> Lanaco trebovanje i nabavke </span> "; email.PosaljiMejl(naslovEmaila, naMejl, sadrzajEmaila); //toster za uspjesno poslan mejl kad je artikl spreman } if (NabavkaPreuzeta(viewModel)) { var nabavka = trebovanjeNabavkeContext.Nabavkes.FirstOrDefault(t => viewModel.NabavkaId == t.NabavkaId); nabavka.StatusNabavkeId = (int)Enum.Status.Preuzeto; //nabavka.DatumZaduzenjaTrebovanja = DateTime.Now; // trenutno ne postoji u bazi trebovanjeNabavkeContext.SaveChanges(); EmailController email = new EmailController(); string naslovEmaila = "Potvrda o preuzimanju trebovanja"; string naMejl = nabavka.vRadnik.Email; string sadrzajEmaila = "<p>Poštovani, <br/><br/> Vaša <a href=" + email.adresaHosta + "Nabavke/DetaljiNabavke?nabavka=" + viewModel.NabavkaId + ">nabavka </a> je preuzeta. </p><br/><br/> "; sadrzajEmaila += "<span>Srdačan pozdrav, <br/><br/>Lanaco trebovanje i nabavke</span>"; email.PosaljiMejl(naslovEmaila, naMejl, sadrzajEmaila); return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); } //ako je izmjenjeniArtikli.Count > 0 posalji mail return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); }
public JsonResult KreiranjeNovogTrebovanja(List <ArtiklViewModel> artikliZaTrebovanje, string napomenaRadnika) { //Dio koda za provjeravanje da li se svi primljeni artikli u listi view modela nalaze unutar baze podataka za artikle bool provjeraPostojanjaSvihArtikala = trebovanjeNabavkeContext.vInformacijeOArtiklus.ToList().Any(x => artikliZaTrebovanje.Any(z => z.ArtiklId == x.ArtikalId)); if (provjeraPostojanjaSvihArtikala) { //Dodavanje novog trebovanja u bazu string noviSerijskiBroj = NoviSerijskiBroj(); var narucilac = trebovanjeNabavkeContext.vRadniks.FirstOrDefault(x => x.KorisnickoIme == User.Identity.Name); var novoTrebovanje = new Trebovanje { SifraRadnika = narucilac.RadnikSifra, SerijskiBroj = noviSerijskiBroj, DatumPodnosenjaZahtjeva = DateTime.Now, StatusTrebovanjaId = (int)Enum.Status.Na_čekanju, NapomenaRadnika = napomenaRadnika.Replace("\n", "/n"), TrebovanjeVeznas = artikliZaTrebovanje.Select(x => new TrebovanjeVezna { ArtikalId = x.ArtiklId, TrebovanaKolicina = x.TrebovanaKolicina, KolicinaKojaNedostaje = 0, StatusArtiklaId = (int)Enum.Status.Na_čekanju, RezervisaniArtikli = trebovanjeNabavkeContext.RezervisaniArtiklis.FirstOrDefault(a => a.ArtikalId == x.ArtiklId) }).ToList(), DatumiOdobravanjaTrebovanje = new DatumiOdobravanjaTrebovanje() }; trebovanjeNabavkeContext.Trebovanjes.Add(novoTrebovanje); trebovanjeNabavkeContext.SaveChanges(); foreach (var artikl in novoTrebovanje.TrebovanjeVeznas) { artikl.KolicinaKojaNedostaje = ((artikl.RezervisaniArtikli.TrenutnaKolicina - artikl.RezervisaniArtikli.RezervisanaKolicina) >= artikl.TrebovanaKolicina) ?//ako na stanju ima dovoljno za moju rezervaciju vrati 0 za narucit 0 : ((artikl.RezervisaniArtikli.TrenutnaKolicina <= artikl.RezervisaniArtikli.RezervisanaKolicina) ? artikl.TrebovanaKolicina : (artikl.TrebovanaKolicina - (artikl.RezervisaniArtikli.TrenutnaKolicina - artikl.RezervisaniArtikli.RezervisanaKolicina))); //ako je rezervisana vec cijela kolicina na stanju ili vise od nje vrati mi cijelu moju kolicinu za trebovanje da se naruci //ako trebujem vise nego sto je ostalo na stanju vrati mi da treba naruciti razliku izmedju dostupne kolicine i moje trebovane kolicine } trebovanjeNabavkeContext.SaveChanges(); //Slanje mejla nadređenom sa linkom kreiranog trebovanja string sadrzajMejla = "<p>Poštovani, <br/><br/> Na sistemu LANACO trebovanje i nabavke je novi zahtjev za <a href=" + adresaHosta + "Email/OdobravanjeTrebovanja?trebovanje=" + novoTrebovanje.TrebovanjeId + ">odobravanje trebovanja</a>. <br/>" + "Podnosilac zahtjeva: " + narucilac.Ime + " " + narucilac.Prezime + "<br/>" + "Broj zahtjeva: " + novoTrebovanje.SerijskiBroj; sadrzajMejla += "<br/><br/><span>Srdačan pozdrav,<br/><br/> Lanaco trebovanje i nabavke</span>"; EmailController email = new EmailController(); if (email.SlanjeMejlaZaNovoTrebovanje("Zahtjev za odobravanje trebovanja", sadrzajMejla, narucilac.KorisnickoIme, novoTrebovanje.SerijskiBroj)) { trebovanjeNabavkeContext.SaveChanges(); return(Json(new { succses = true })); } else {// slanje mejla za novo trebovanje vraca false ako narucioc nema ni jednog nivoa odobravnja i u tom slucaju zahtjev se salje u skladiste bool poslano = false; string naslovMejla = "Odgovor na zahtjev za trebovanje"; string naMejl = ""; if (email.SlatiUSkladiste(novoTrebovanje.TrebovanjeId)) { sadrzajMejla = "<p>Poštovani, <br/><br/> Vaš <a href=" + adresaHosta + "Trebovanje/DetaljiTrebovanja?trebovanje=" + novoTrebovanje.TrebovanjeId + "> zahtjev za trebovanje </a> je proslijeđen u skladište. Naknadno ćete biti obavješteni kada artikl/i budu spremni za preuzimanje </p> <br/><br/>"; sadrzajMejla += "<span>Srdačan pozdrav,<br/><br/> Lanaco trebovanje i nabavke</span>"; naMejl = narucilac.Email; poslano = email.PosaljiMejl(naslovMejla, naMejl, sadrzajMejla); email.PosaljiMejlSkladistaruZaTrebvanje(narucilac.RadnikSifra, novoTrebovanje.TrebovanjeId); novoTrebovanje.StatusTrebovanjaId = (int)Enum.Status.Odobreno; foreach (var artikl in novoTrebovanje.TrebovanjeVeznas) { artikl.StatusArtiklaId = (int)Enum.Status.Artikl_u_pripremi; } trebovanjeNabavkeContext.SaveChanges(); return(Json(new { succses = true, message = "Mejl poslan u skladište, jer naručilac nema nadredjenog." })); } else { sadrzajMejla = "<p>Poštovani, <br/><br/> Vaš <a href=" + adresaHosta + "Trebovanje/DetaljiTrebovanja?trebovanje=" + novoTrebovanje.TrebovanjeId + ">zahtjev za trebovanje </a> je proslijeđen u Timu prodaje i nabavki zbog nabavke nekih od stavki kojih nema na stanju.<br/>" + "Naknadno ćete biti obavješteni kada artikl/i budu spremni za preuzimanje.</p> <br/><br/>"; sadrzajMejla += "<span>Srdačan pozdrav,<br/><br/> Lanaco trebovanje i nabavke</span>"; naMejl = narucilac.Email; poslano = email.PosaljiMejl(naslovMejla, naMejl, sadrzajMejla); if (poslano) { email.PosaljiMejlReferentuSkladistaUMarketingu(novoTrebovanje.TrebovanjeId); novoTrebovanje.StatusTrebovanjaId = (int)Enum.Status.U_procesu_nabavke; return(Json(new { succses = true, message = "Mejl poslan u skladište, jer naručilac nema nadredjenog." })); } else { return(Json(new { succses = false, message = "Neuspjesno slanje mejla" })); } } } } else { //Vratiti Json da jedan od artikala se nalazi u bazi artikala return(Json(new { succses = false })); } }
public JsonResult IzmjenaAktivnogTrebovanja(TrebovanjeViewModel viewModel) { viewModel.ListaArtikalaTrebovanja = viewModel.ListaArtikalaTrebovanja.OrderBy(a => a.ArtiklId).ToList(); List <string> izmjenjeniArtikli = new List <string>(); var trebovanjeVeze = trebovanjeNabavkeContext.TrebovanjeVeznas.Where(t => t.TrebovanjeId == viewModel.TrebovanjeId).OrderBy(a => a.ArtikalId).ToList(); List <TrebovanjeVezna> artikliZaskidanjeSaStanja = new List <TrebovanjeVezna>(); for (int i = 0; i < viewModel.ListaArtikalaTrebovanja.Count; i++) { bool spremno = false; bool preuzeto = false; //stanje iz baze konvertujem u bool if (trebovanjeVeze[i].StatusArtiklaId == (int)Enum.Status.Spremno_za_preuzimanje) { spremno = true; preuzeto = false; } else if (trebovanjeVeze[i].StatusArtiklaId == (int)Enum.Status.Preuzeto) { spremno = true; preuzeto = true; } if (viewModel.ListaArtikalaTrebovanja[i].Spremno != spremno && viewModel.ListaArtikalaTrebovanja[i].Spremno) { int artikalId = viewModel.ListaArtikalaTrebovanja[i].ArtiklId; trebovanjeVeze.Where(t => t.TrebovanjeId == viewModel.TrebovanjeId).ToList()[i].StatusArtiklaId = (int)Enum.Status.Spremno_za_preuzimanje; izmjenjeniArtikli.Add(trebovanjeNabavkeContext.vInformacijeOArtiklus.FirstOrDefault(a => a.ArtikalId == artikalId).Naziv); } else if (viewModel.ListaArtikalaTrebovanja[i].Spremno != spremno && !viewModel.ListaArtikalaTrebovanja[i].Spremno) { trebovanjeVeze.Where(t => t.TrebovanjeId == viewModel.TrebovanjeId).ToList()[i].StatusArtiklaId = (int)Enum.Status.Artikl_u_pripremi; } if (viewModel.ListaArtikalaTrebovanja[i].Preuzeto != preuzeto && viewModel.ListaArtikalaTrebovanja[i].Preuzeto) { trebovanjeVeze.Where(t => t.TrebovanjeId == viewModel.TrebovanjeId).ToList()[i].StatusArtiklaId = (int)Enum.Status.Preuzeto; artikliZaskidanjeSaStanja.Add(new TrebovanjeVezna { ArtikalId = trebovanjeVeze.Where(t => t.TrebovanjeId == viewModel.TrebovanjeId).ToList()[i].ArtikalId, TrebovanaKolicina = trebovanjeVeze.Where(t => t.TrebovanjeId == viewModel.TrebovanjeId).ToList()[i].TrebovanaKolicina }); } else if (viewModel.ListaArtikalaTrebovanja[i].Preuzeto != preuzeto && !viewModel.ListaArtikalaTrebovanja[i].Preuzeto && viewModel.ListaArtikalaTrebovanja[i].Spremno) { trebovanjeVeze.Where(t => t.TrebovanjeId == viewModel.TrebovanjeId).ToList()[i].StatusArtiklaId = (int)Enum.Status.Spremno_za_preuzimanje; } else if (viewModel.ListaArtikalaTrebovanja[i].Preuzeto != preuzeto && !viewModel.ListaArtikalaTrebovanja[i].Preuzeto && !viewModel.ListaArtikalaTrebovanja[i].Spremno) { trebovanjeVeze.Where(t => t.TrebovanjeId == viewModel.TrebovanjeId).ToList()[i].StatusArtiklaId = (int)Enum.Status.Artikl_u_pripremi; } } foreach (var artikal in artikliZaskidanjeSaStanja) { trebovanjeNabavkeContext.RezervisaniArtiklis.FirstOrDefault(a => a.ArtikalId == artikal.ArtikalId).RezervisanaKolicina -= artikal.TrebovanaKolicina; trebovanjeNabavkeContext.RezervisaniArtiklis.FirstOrDefault(a => a.ArtikalId == artikal.ArtikalId).TrenutnaKolicina -= artikal.TrebovanaKolicina; } trebovanjeNabavkeContext.SaveChanges(); if (izmjenjeniArtikli.Count > 0) { EmailController email = new EmailController(); string naslovEmaila = "Artikli spremni za preuzimanje:"; string naMejl = trebovanjeNabavkeContext.Trebovanjes.FirstOrDefault(t => t.TrebovanjeId == viewModel.TrebovanjeId).vRadniks.Email; string sadrzajEmaila = "<p>Poštovani, <br/><br/>" + " <p>Sljedeći artikli koje ste <a href=" + email.adresaHosta + "Trebovanje/DetaljiTrebovanja?trebovanje=" + viewModel.TrebovanjeId + ">trebovali </a>" + " su spremni za preuzimanje: </p> <ul>"; foreach (var artikal in izmjenjeniArtikli) { sadrzajEmaila += "<li>" + artikal + "</li>"; } sadrzajEmaila += "</ul><br> <span> Srdačan pozdrav,<br/><br/> Lanaco trebovanje i nabavke </span> "; email.PosaljiMejl(naslovEmaila, naMejl, sadrzajEmaila); //toster za uspjesno poslan mejl kad je artikl spreman } if (TrebovanjePreuzeto(viewModel)) { var trebovanje = trebovanjeNabavkeContext.Trebovanjes.FirstOrDefault(t => viewModel.TrebovanjeId == t.TrebovanjeId); trebovanje.StatusTrebovanjaId = (int)Enum.Status.Preuzeto; trebovanje.DatumZaduzenjaTrebovanja = DateTime.Now; trebovanjeNabavkeContext.SaveChanges(); EmailController email = new EmailController(); string naslovEmaila = "Potvrda o preuzimanju trebovanja"; string naMejl = trebovanje.vRadniks.Email; string sadrzajEmaila = "<p>Poštovani, <br/><br/> Vaše <a href=" + email.adresaHosta + "Trebovanje/DetaljiTrebovanja?trebovanje=" + viewModel.TrebovanjeId + ">trebovanje </a> je preuzeto. </p><br/><br/> "; sadrzajEmaila += "<span>Srdačan pozdrav, <br/><br/>Lanaco trebovanje i nabavke</span>"; email.PosaljiMejl(naslovEmaila, naMejl, sadrzajEmaila); return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); } //ako je izmjenjeniArtikli.Count > 0 posalji mail return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); }