//Metoda koja prima stari i ažurirani zapisnik od IspisZapisnikaUC i stari zapisnik ažurira u novi public int AzurirajZapisnik(Zapisnik zapisnik) { string sql = $"UPDATE zapisnik SET ruta_id = {zapisnik.Ruta_id}, opis = '{zapisnik.Opis}', datum_i_vrijeme = GETDATE(), obrađen = 0 WHERE zapisnik_id = {zapisnik.Zapisnik_id};"; int i = Database.Instance.IzvrsiUpit(sql); return(i); }
//Konstruktor koji se poziva kod ažuriranja, prima parametar zapisnik koje se dohvaća iz kontrole IspisZapisnikaUC pomoću metode //DohvatiSelektiraniZapisnik, i zatim podatke o tom zapisniku stavlja unutar textboxeva itd. u formi koji se mogu mijenjati public DodajZapisnikForma(Zapisnik zapisnik) { InitializeComponent(); Ucitaj(); stariZapisnik = zapisnik; cmbRuta.SelectedText = stariZapisnik.Ruta_id.ToString(); txtOpisGreške.Text = stariZapisnik.Opis; List <Greska> lista = stariZapisnik.ListaGreski; List <Greska> sveGreske = new List <Greska>(); for (int i = 0; i < clbGreske.Items.Count; i++) { sveGreske.Add(zapisnikRepozitorij.DohvatiGreskuPremaNazivu(clbGreske.Items[i].ToString())); } int j = 0; foreach (var item in sveGreske) { if (lista.Contains(item)) { clbGreske.SetItemChecked(j, true); } j++; } }
//Metoda koja prima zapisnik od IspisZapisnikaUC i dodaje ga u bazu public int DodajZapisnik(Zapisnik zapisnik) { string sql = $"INSERT INTO zapisnik (ruta_id, opis, datum_i_vrijeme, obrađen) VALUES ({zapisnik.Ruta_id}, '{zapisnik.Opis}', GETDATE(), 0);"; int i = Database.Instance.IzvrsiUpit(sql); return(i); }
//Metoda briše zapise iz tablice zapisnik_greške jer se prilikom ažuriranja zapisnika mogu promijeniti //greške za taj zapisnik, ukoliko se ne obriše i ponovo upiše ostali bi pogrešni podaci public int ObrisiZapisnikGreske(Zapisnik zapisnik) { string sql = $"DELETE zapisnik_greške WHERE zapisnik_id = {zapisnik.Zapisnik_id};"; int i = Database.Instance.IzvrsiUpit(sql); return(i); }
//Metoda koja prima zapisnik od IspisZapisnikaUC i dodaje vrijednosti u tablicu zapisnik_greške public int AzurirajZapisnikGreske(Zapisnik zapisnik) { int i = 0; foreach (var item in zapisnik.ListaGreski) { string sql = $"INSERT INTO zapisnik_greške (zapisnik_id, greška_id) VALUES ({zapisnik.Zapisnik_id}, {item.greska_id});"; i = Database.Instance.IzvrsiUpit(sql); } return(i); }
//Metoda koja dohvaća selektirani zapisnik iz datagridview-a i prosljeđuje ga formi DodajZapisnikForma za ažuriranje public Zapisnik DohvatiSelektiraniZapisnik() { Zapisnik zapisnik = null; if (dgvZapisnici.CurrentRow != null) { zapisnik = dgvZapisnici.CurrentRow.DataBoundItem as Zapisnik; zapisnik.ListaGreski = zapisnikRepozitorij.DohvatiGreskeZapisnika(zapisnik.Zapisnik_id); return(zapisnik); } return(null); }
//Klikon na gumb Obrađen/neobrađen u user controli za ispis zapisnika disponent označuje zapisnik kao obrađen ili neobrađen //i ova metoda ažurira stanje zapisnika u bazi podataka public int PromijeniStatusZapisnika(Zapisnik zapisnik) { if (zapisnik.Obrađen == "Ne") { string sql = $"UPDATE zapisnik SET obrađen = 1 WHERE zapisnik_id = {zapisnik.Zapisnik_id};"; int i = Database.Instance.IzvrsiUpit(sql); return(i); } else { string sql = $"UPDATE zapisnik SET obrađen = 0 WHERE zapisnik_id = {zapisnik.Zapisnik_id};"; int i = Database.Instance.IzvrsiUpit(sql); return(i); } }
//Metoda vraća sve zapisnike za ispis u datagridview public List <Zapisnik> DohvatiZapisnike() { List <Zapisnik> lista = new List <Zapisnik>(); string sql = null; if (PrijavaForma.uloga == 1) { sql = $"SELECT z.zapisnik_id as zapisnik_id, z.ruta_id as ruta_id, z.opis as opis, z.datum_i_vrijeme as datum_i_vrijeme, z.obrađen as obrađen FROM zapisnik z join ruta r on z.ruta_id = r.ruta_id join zaposlenik za on r.kreirao = za.oib WHERE za.tvrtka_id = {PrijavaForma.prijavljeniZaposlenik.Tvrtka.Tvrtka_id};"; } if (PrijavaForma.uloga == 2) { sql = $"SELECT z.zapisnik_id as zapisnik_id, z.ruta_id as ruta_id, z.opis as opis, z.datum_i_vrijeme as datum_i_vrijeme, z.obrađen as obrađen FROM zapisnik z join ruta r on z.ruta_id = r.ruta_id WHERE r.kreirao = {PrijavaForma.oib};"; } if (PrijavaForma.uloga == 3) { sql = $"SELECT z.zapisnik_id as zapisnik_id, z.ruta_id as ruta_id, z.opis as opis, z.datum_i_vrijeme as datum_i_vrijeme, z.obrađen as obrađen FROM zapisnik z join ruta r on z.ruta_id = r.ruta_id WHERE r.zaposlenik_oib = {PrijavaForma.oib};"; } SqlDataReader dr = Database.Instance.DohvatiDataReader(sql); while (dr.Read()) { Zapisnik zapisnik = new Zapisnik(); zapisnik.Zapisnik_id = int.Parse(dr["zapisnik_id"].ToString()); zadnjiZapisnik = int.Parse(dr["zapisnik_id"].ToString()); zapisnik.Ruta_id = int.Parse(dr["ruta_id"].ToString()); zapisnik.Opis = dr["opis"].ToString(); zapisnik.Datum_i_vrijeme = DateTime.Parse(dr["datum_i_vrijeme"].ToString()); if (dr["obrađen"].ToString() == "1") { zapisnik.Obrađen = "Da"; } if (dr["obrađen"].ToString() == "0") { zapisnik.Obrađen = "Ne"; } lista.Add(zapisnik); } dr.Close(); return(lista); }
//Klikom na određeni zapisnik u dgvGreske ispisuju se sve greške iz odabranog zapisnika private void dgvZapisnici_SelectionChanged(object sender, EventArgs e) { Zapisnik zapisnik = DohvatiSelektiraniZapisnik(); dgvGreske.DataSource = null; dgvGreske.DataSource = zapisnikRepozitorij.DohvatiGreskeZapisnika(zapisnik.Zapisnik_id); dgvGreske.Columns[0].HeaderText = "Greška ID"; dgvGreske.Columns[1].HeaderText = "Naziv greške"; dgvGreske.Columns[2].HeaderText = "Opis greške"; dgvGreske.Columns[2].DefaultCellStyle.WrapMode = DataGridViewTriState.True; if (zapisnik.Obrađen == "Da") { btnAžurirajZapisnik.Enabled = false; btnIzbrišiZapisnik.Enabled = false; } if (zapisnik.Obrađen == "Ne") { btnAžurirajZapisnik.Enabled = true; btnIzbrišiZapisnik.Enabled = true; } }
//Metoda koja vraća zapisnik u koje su pohranjeni svi podaci kontroli IspiszapisnikaUC koja na prisitak tipke Dodaj nakon zatvaranja //DodajZapisnikaForma i zatim se pomoću klase ZapisnikRepozotorij upisuje novi zapisnik u bazu public Zapisnik VratiZapisnik() { Zapisnik zapisnik = new Zapisnik(); if (stariZapisnik != null) { zapisnik.Zapisnik_id = stariZapisnik.Zapisnik_id; } zapisnik.Ruta_id = int.Parse(cmbRuta.SelectedItem.ToString()); zapisnik.Opis = txtOpisGreške.Text; List <Greska> listaGreski = new List <Greska>(); foreach (var item in clbGreske.CheckedItems) { listaGreski.Add(zapisnikRepozitorij.DohvatiGreskuPremaNazivu(item.ToString())); } zapisnik.ListaGreski = listaGreski; zapisnik.Obrađen = "Ne"; return(zapisnik); }