public ObservableCollection <Trebovanje> GetAllFromTrebovanje() { ObservableCollection <Trebovanje> trebovanjeList = new ObservableCollection <Trebovanje>(); using (NpgsqlConnection sqlConnection = ConnectionCreator.createConnection()) { sqlConnection.Open(); NpgsqlCommand cmd = new NpgsqlCommand(GET_ALL_RECORDS_FROM_TREBOVANJE, sqlConnection); NpgsqlDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { Trebovanje trebovanje = new Trebovanje(); trebovanje.IDTrebovanje = rdr.GetInt32(0); trebovanje.TipTrebovanja = rdr.GetString(1); trebovanje.JedMere = rdr.GetString(2); trebovanje.KolicinaRobe = rdr.GetInt32(3); trebovanje.RadniNalog = new RadniNalog(); trebovanje.RadniNalog.IDRadniNalog = rdr.GetInt32(4); trebovanjeList.Add(trebovanje); } } return(trebovanjeList); }
private void CreateButtonCommandExecute(object param) { Trebovanje trebovanje = new Trebovanje { JedMere = _jedMere, KolicinaRobe = Int32.Parse(_kolicinaRobe), TipTrebovanja = _tipTrebovanja, RadniNalog = new RadniNalog { IDRadniNalog = SelectedRadniNalog } }; bool isCreated = _trebovanjeSqlProvider.CreateTrebovanjeById(trebovanje); if (isCreated) { Window curWindow = (Window)param; curWindow.Close(); mainContentViewModel.RefreshData(); } else { ErrorDialog errorDialog = new ErrorDialog(); ErrorDialogViewModel errorDialogViewModel = (ErrorDialogViewModel)errorDialog.DataContext; errorDialog.Title = "Greška"; errorDialogViewModel.ErrorMessage = "Došlo je do greške. Pokušajte ponovo"; errorDialog.ShowDialog(); } }
private void PopuniVrednosti(Trebovanje trebovanje) { txtDatum.Text = trebovanje.Datum.ToString(); txtKolicina.Text = ""; txtCena.Text = ""; txtUkupno.Text = trebovanje.Ukupno.ToString(); cmbKomitent.SelectedItem = trebovanje.Komitent; cmbKomitent.Enabled = false; dgvStavke.DataSource = trebovanje.ListaStavki; }
private void btnDodaj_Click(object sender, EventArgs e) { Trebovanje t = new Trebovanje(); t.ListaStavki = new List <StavkaTrebovanja>(); t.TrebovanjeId = trebovanja.Max(m => m.TrebovanjeId) + 1; FrmTrebovanjeDodaj form = new FrmTrebovanjeDodaj(Operacija.Add, t); form.ShowDialog(); }
public bool Delete(Trebovanje trebovanje) { try { var rezultat = _broker.DeleteSlozen(trebovanje); return(rezultat); } catch (Exception) { return(false); } }
private void btnIzmeni_Click(object sender, EventArgs e) { Trebovanje t = SelectTrebovanje(); if (t is null) { return; } FrmTrebovanjeDodaj form = new FrmTrebovanjeDodaj(Operacija.Update, t); form.ShowDialog(); }
public bool Insert(Trebovanje trebovanje) { try { var rezultat = _broker.InsertSlozen(trebovanje); return(rezultat); } catch (Exception) { return(false); } }
public bool Update(Trebovanje trebovanje, List <StavkaTrebovanja> stare) { try { var rezultat = _broker.UpdateSlozen(trebovanje, stare); return(rezultat); } catch (Exception) { return(false); } }
public bool UpdateSlozen(Trebovanje objekat, List <StavkaTrebovanja> stare) { try { connection.Open(); transaction = connection.BeginTransaction(); SqlCommand command = new SqlCommand(); command.Connection = connection; command.Transaction = transaction; foreach (var stavka in objekat.ListaStavki) { if (stare.SingleOrDefault((st) => st.RbrStavke == stavka.RbrStavke) is null) { stavka.Trebovanje.TrebovanjeId = objekat.TrebovanjeId; command.CommandText = $"insert into {stavka.Table()} values ({stavka.Insert()})"; if (command.ExecuteNonQuery() == 0) { throw new Exception(); } } } foreach (var staraStavka in stare) { if (objekat.ListaStavki.SingleOrDefault((st) => st.RbrStavke == staraStavka.RbrStavke) is null) { command.CommandText = $"delete from {staraStavka.Table()} {staraStavka.Where()}"; if (command.ExecuteNonQuery() == 0) { throw new Exception(); } } } command.CommandText = $"update {objekat.Table()} set {objekat.Update()} {objekat.Where()}"; if (command.ExecuteNonQuery() == 0) { throw new Exception(); } transaction.Commit(); return(true); } catch (Exception e) { transaction.Rollback(); Console.WriteLine(e.Message); return(false); } finally { connection.Close(); } }
private Trebovanje SelectTrebovanje() { Trebovanje trebovanje = null; try { trebovanje = (Trebovanje)dgvPrikaz.SelectedRows[0].DataBoundItem; return(trebovanje); } catch (Exception) { MessageBox.Show("Niste selektovali"); return(null); } }
public FrmTrebovanjeDodaj(Operacija operacija, Trebovanje trebovanje) { InitializeComponent(); PripremiFormu(); this.trebovanje = trebovanje; KreirajListu(trebovanje.ListaStavki); if (operacija == Operacija.Update) { ButtonUpdate(); PopuniVrednosti(trebovanje); } if (operacija == Operacija.Add) { ButtonAdd(); } txtUkupno.Enabled = false; }
public bool CreateTrebovanjeById(Trebovanje trebovanjeNew) { using (NpgsqlConnection sqlConnection = ConnectionCreator.createConnection()) { sqlConnection.Open(); NpgsqlCommand cmd = new NpgsqlCommand(CREATE_TEHNOLOSKI_POSTUPAK, sqlConnection); cmd.Parameters.AddWithValue("@TipTrebovanja", NpgsqlDbType.Varchar, trebovanjeNew.TipTrebovanja); cmd.Parameters.AddWithValue("@JedMere", NpgsqlDbType.Varchar, trebovanjeNew.JedMere); cmd.Parameters.AddWithValue("@KolicinaRobe", NpgsqlDbType.Integer, trebovanjeNew.KolicinaRobe); cmd.Parameters.AddWithValue("@IDRadniNalog", NpgsqlDbType.Integer, trebovanjeNew.RadniNalog.IDRadniNalog); int rowsAffected = cmd.ExecuteNonQuery(); return(rowsAffected == 1); } }
private void btnDodaj_Click(object sender, EventArgs e) { Trebovanje t = Kreiraj(); if (t is null) { return; } t.ListaStavki = stavke.ToList(); if (KontrolerTrebovanje.Instance.Insert(t)) { MessageBox.Show("Uspesno!"); } else { MessageBox.Show("Neuspesno!"); } }
public List <Trebovanje> Select(Trebovanje trebovanje) { try { var rezultat = _broker.Select(trebovanje).OfType <Trebovanje>().ToList(); var stavke = _broker.Select(new StavkaTrebovanja()).OfType <StavkaTrebovanja>().ToList(); foreach (var jedno in rezultat) { jedno.ListaStavki = stavke.Where((s) => s.Trebovanje.TrebovanjeId == jedno.TrebovanjeId).ToList(); } return(rezultat); } catch (Exception) { return(null); } }
private void btnObrisi_Click(object sender, EventArgs e) { Trebovanje t = SelectTrebovanje(); if (t is null) { return; } if (KontrolerTrebovanje.Instance.Delete(t)) { MessageBox.Show("Uspesno!"); trebovanja.Remove(t); dgvPrikaz.DataSource = trebovanja; } else { MessageBox.Show("Neuspesno!"); } }
private Trebovanje Kreiraj() { try { Trebovanje t = new Trebovanje() { TrebovanjeId = trebovanje.TrebovanjeId, Datum = Convert.ToDateTime(txtDatum.Text), Komitent = (Komitent)cmbKomitent.SelectedItem, Ukupno = 0, }; return(t); } catch (Exception) { MessageBox.Show("Pogresan unos!"); return(null); } }
private void btnIzmeni_Click(object sender, EventArgs e) { Trebovanje t = Kreiraj(); if (t is null) { return; } List <StavkaTrebovanja> stare = trebovanje.ListaStavki; t.ListaStavki = stavke.ToList(); if (KontrolerTrebovanje.Instance.Update(t, stare)) { MessageBox.Show("Uspesno!"); } else { MessageBox.Show("Neuspesno!"); } }
public ActionResult Narucivanje(int trebovanje) { try { Trebovanje DbTrebovanje = trebovanjeNabavkeContext.Trebovanjes.First(x => x.TrebovanjeId == trebovanje); // &&(x.StatusTrebovanjaId==3 || x.vRadniks.NazivSektora=="M"));// slucaj ako neko ukuca tacan id trebovanja u URL a trebovanje je vec naruceno ili nije ni trebalo biti naruceno DbTrebovanje.StatusTrebovanjaId = (int)Enum.Status.Naruceno; //status trebovanja "naruceno" EmailController email = new EmailController(); email.PosaljiMejlSkladistaruZaTrebvanje(DbTrebovanje.SifraRadnika, trebovanje); foreach (var artikl in DbTrebovanje.TrebovanjeVeznas) { artikl.RezervisaniArtikli.TrenutnaKolicina += artikl.KolicinaKojaNedostaje; artikl.KolicinaKojaNedostaje = 0; } trebovanjeNabavkeContext.SaveChanges(); return(RedirectToAction("PrikazSvihAktivnihTrebovanja")); } catch { return(View("Error")); } }
public bool DeleteSlozen(Trebovanje trebovanje) { try { connection.Open(); transaction = connection.BeginTransaction(); SqlCommand command = new SqlCommand(); command.Connection = connection; command.Transaction = transaction; foreach (var st in trebovanje.ListaStavki) { st.Trebovanje.TrebovanjeId = trebovanje.TrebovanjeId; command.CommandText = $"delete from {st.Table()} {st.Where()}"; if (command.ExecuteNonQuery() == 0) { throw new Exception(); } } command.CommandText = $"delete from {trebovanje.Table()} {trebovanje.Where()}"; if (command.ExecuteNonQuery() == 0) { throw new Exception(); } transaction.Commit(); return(true); } catch (Exception e) { transaction.Rollback(); Console.WriteLine(e.Message); return(false); } finally { connection.Close(); } }
private void DeleteButtonCommandExecute(object param) { { bool succeded = false; switch (_selectedTabIndex) { case 0: RadnoMestoViewModel radnoMestoViewModel = (RadnoMestoViewModel)ContentMainScreen; RadnoMesto selected = radnoMestoViewModel.ItemSelected; if (selected != null) { if (!DoesRadnikProizvodnjaContainsRadnoMestoId(selected.IDRadnoMesto)) { succeded = _radnoMestoSqlProvider.DeleteFromRadnoMestoById(selected.IDRadnoMesto); if (succeded) { radnoMestoViewModel.RadnoMestoList.Remove(selected); } } else { ShowCantDeleteErrorDialog(); } } else { ShowNotSelectedErrorDialog(true); } break; case 1: OperacijaViewModel operacijaViewModel = (OperacijaViewModel)ContentMainScreen; Operacija selectedOperacija = operacijaViewModel.ItemSelected; if (selectedOperacija != null) { succeded = _operacijaSqlProvider.DeleteFromOperacijaById(selectedOperacija.IDOperacija); if (succeded) { operacijaViewModel.OperacijaList.Remove(selectedOperacija); } } else { ShowNotSelectedErrorDialog(true); } break; case 2: PredmetRadaViewModel predmetRadaViewModel = (PredmetRadaViewModel)ContentMainScreen; PredmetRada predmetRadaSelected = predmetRadaViewModel.ItemSelected; if (predmetRadaSelected != null) { succeded = _predmetRadaSqlProvider.DeleteFromPredmetRadaById(predmetRadaSelected.IDPredmetRada); if (succeded) { predmetRadaViewModel.PredmetRadaList.Remove(predmetRadaSelected); } } else { ShowNotSelectedErrorDialog(true); } break; case 3: RadnaListaViewModel radnaListaViewModel = (RadnaListaViewModel)ContentMainScreen; RadnaLista radnaListaSelected = radnaListaViewModel.ItemSelected; if (radnaListaSelected != null) { succeded = _radnaListaSqlProvider.DeleteFromRadnaListaById(radnaListaSelected.IDRadnaLista); if (succeded) { radnaListaViewModel.RadnaListaList.Remove(radnaListaSelected); } } else { ShowNotSelectedErrorDialog(true); } break; case 4: RadnikProizvodnjaViewModel radnikProizvodnjaViewModel = (RadnikProizvodnjaViewModel)ContentMainScreen; RadnikProizvodnja radnikProizvodnjaSelected = radnikProizvodnjaViewModel.ItemSelected; if (radnikProizvodnjaSelected != null) { succeded = _radnikProizvodnjaSqlProvider.DeleteFromRadnikProizvodnjaById(radnikProizvodnjaSelected.IDRadnik); if (succeded) { radnikProizvodnjaViewModel.RadnikProizvodnjaList.Remove(radnikProizvodnjaSelected); } } else { ShowNotSelectedErrorDialog(true); } break; case 5: RadniNalogViewModel radniNalogViewModel = (RadniNalogViewModel)ContentMainScreen; RadniNalog radniNalogSelected = radniNalogViewModel.ItemSelected; if (radniNalogSelected != null) { succeded = _radniNalogSqlProvider.DeleteFromRadniNalogById(radniNalogSelected.IDRadniNalog); if (succeded) { radniNalogViewModel.RadniNalogList.Remove(radniNalogSelected); } } else { ShowNotSelectedErrorDialog(true); } break; case 6: TehnoloskiPostupakViewModel tehnoloskiPostupakViewModel = (TehnoloskiPostupakViewModel)ContentMainScreen; TehnoloskiPostupak tehnoloskiPostupakSelected = tehnoloskiPostupakViewModel.ItemSelected; if (tehnoloskiPostupakSelected != null) { succeded = _tehnoloskiPostupakSqlProvider.DeleteFromTehnoloskiPostupakById(tehnoloskiPostupakSelected.IDTehPostupak); if (succeded) { tehnoloskiPostupakViewModel.TehnoloskiPostupakList.Remove(tehnoloskiPostupakSelected); } } else { ShowNotSelectedErrorDialog(true); } break; case 7: TrebovanjeViewModel trebovanjeViewModel = (TrebovanjeViewModel)ContentMainScreen; Trebovanje trebovanjeSelected = trebovanjeViewModel.ItemSelected; if (trebovanjeSelected != null) { succeded = _trebovanjeSqlProvider.DeleteFromTrebovanjeById(trebovanjeSelected.IDTrebovanje); if (succeded) { trebovanjeViewModel.TrebovanjeList.Remove(trebovanjeSelected); } } else { ShowNotSelectedErrorDialog(true); } break; case 8: TehnPostupakOperacijaViewModel tpoViewModel = (TehnPostupakOperacijaViewModel)ContentMainScreen; tpoViewModel.DeleteSelected(); break; } } }
public CreateTrebovanjeDialogViewModel(ITrebovanjeSqlProvider trebovanjeSqlProvider, List <int> radniNalogIds, Trebovanje trebovanje, MainContentViewModel mainContentViewModel) { _trebovanjeSqlProvider = trebovanjeSqlProvider; IdTrebovanja = trebovanje.IDTrebovanje; TipTrebovanja = trebovanje.TipTrebovanja; JedinicaMere = trebovanje.JedMere; KolicinaRobe = trebovanje.KolicinaRobe.ToString(); _radniNalogIds = radniNalogIds; SelectedRadniNalog = trebovanje.RadniNalog.IDRadniNalog; this.mainContentViewModel = mainContentViewModel; }
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 })); } }