private void dgvLijekovi_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) { odabraniLijek = (lijek)dgvLijekovi.SelectedRows[0].Tag; bool dodanLijek = false; foreach (DataGridViewRow r in dgvRacun.Rows) { stavkaracuna sr = (stavkaracuna)r.Tag; if (odabraniLijek.idLijeka == sr.idLijeka && kreiranRacun.idRacuna == sr.idRacuna) { dodanLijek = true; break; } } if (odabraniLijek.kolicinaNaStanju == 0) { MessageBox.Show("Nema više na stanju lijeka '" + odabraniLijek.naziv + "'", "Informacija", MessageBoxButtons.OK, MessageBoxIcon.Information); } else if (dodanLijek) { MessageBox.Show("Odabran lijek se nalazi na stavci računa.", "Informacija", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { gbPretragaLijeka.Enabled = false; gbPodaciStavkeRacuna.Enabled = true; dodavanjeStavkeRacuna = true; if (odabraniLijek.izdavanjeNaRecept) { gbPodaciSaRecepta.Enabled = true; } } }
private void DodajStavkuUTabeluRacun(stavkaracuna sRacuna) { DataGridViewRow r = new DataGridViewRow() { Tag = sRacuna }; r.CreateCells(dgvRacun); r.SetValues(odabraniLijek.naziv, odabraniLijek.prodajnaCijena, sRacuna.kolicina, sRacuna.iznos); dgvRacun.Rows.Add(r); r.Selected = true; PostaviRedneBrojeveUTabeli(dgvRacun); }
private void tsmiIzmjenitiStavkuRacuna_Click(object sender, EventArgs e) { if (dgvRacun.SelectedRows.Count == 1) { stavkaracuna sracuna = (stavkaracuna)dgvRacun.SelectedRows[0].Tag; btnDodatiStavkuNaRacun.Text = "Sačuvati"; dgvRacun.Enabled = false; izmjenaStavkeRacuna = true; gbPretragaLijeka.Enabled = false; gbPodaciStavkeRacuna.Enabled = true; recept rcpt = null; nudKolicinaNaStavciRacuna.Value = sracuna.kolicina; if (sracuna.idRecepta != null) { gbPodaciSaRecepta.Enabled = true; try { using (ApotekaDb context = new ApotekaDb()) { rcpt = (from rec in context.recepts where rec.idRecepta == sracuna.idRecepta select rec).FirstOrDefault(); mtbJmbg.Text = rcpt.jmbg; tbPacijent.Text = rcpt.pacijent; tbAdresa.Text = rcpt.adresa; tbIzdatOdUstanove.Text = rcpt.izdatOdUstanove; tbIzdatOdDoktora.Text = rcpt.izdatOdDoktora; dtpDatumIzdavanja.Text = rcpt.datumIzdavanja.ToString(); tbNapomena.Text = rcpt.napomena; } } catch (Exception) { string prk = "Došlo je do greške."; MessageBox.Show(prk, "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
private void tsmiObrisatiStavkuRacuna_Click(object sender, EventArgs e) { if (dgvRacun.SelectedRows.Count == 1) { stavkaracuna sracuna = (stavkaracuna)dgvRacun.SelectedRows[0].Tag; if (DialogResult.Yes == MessageBox.Show("Da li želite obrisati stavku računa?", "Pitanje", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)) { try { using (ApotekaDb context = new ApotekaDb()) { kreiranRacun = (from kRac in context.racuns where kRac.idRacuna == kreiranRacun.idRacuna select kRac).FirstOrDefault(); kreiranRacun.ukupanIznos = kreiranRacun.ukupanIznos - sracuna.iznos; context.SaveChanges(); tbUkupanIznos.Text = kreiranRacun.ukupanIznos.ToString(); lijek ljk = (from lij in context.lijeks where lij.idLijeka == sracuna.idLijeka select lij).FirstOrDefault(); ljk.kolicinaNaStanju = ljk.kolicinaNaStanju + sracuna.kolicina; context.SaveChanges(); PopuniTabeluLijekova(""); stavkaracuna stavkaRacuna = (from sr in context.stavkaracunas where sr.idLijeka == sracuna.idLijeka && sr.idRacuna == sracuna.idRacuna select sr).FirstOrDefault(); bool imaRecept = stavkaRacuna.idRecepta != null; int? idReceptaZaBrisanje = 0; if (imaRecept) { idReceptaZaBrisanje = stavkaRacuna.idRecepta; } context.stavkaracunas.Remove(stavkaRacuna); context.SaveChanges(); if (imaRecept) { recept rcpt = (from rec in context.recepts where rec.idRecepta == idReceptaZaBrisanje select rec).FirstOrDefault(); if (rcpt != null) { context.recepts.Remove(rcpt); context.SaveChanges(); } } dgvRacun.Rows.Remove(dgvRacun.SelectedRows[0]); if (dgvRacun.Rows.Count > 0) { PostaviRedneBrojeveUTabeli(dgvRacun); } else { tsmiIzmjenitiStavkuRacuna.Enabled = false; tsmiObrisatiStavkuRacuna.Enabled = false; } tsslStatusnaLabela.Text = "Stavka računa je obrisana."; } } catch (Exception) { string prk = "Došlo je do greške."; MessageBox.Show(prk, "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
private void btnDodatiStavkuNaRacun_Click(object sender, EventArgs e) { string poruka = ""; int kolicinaNaStavci = 1; bool korektnaKolicina = false; if (gbPodaciSaRecepta.Enabled) { if (string.IsNullOrEmpty(mtbJmbg.Text.Trim())) { poruka += "JMBG nije unijet.\n"; } if (mtbJmbg.Text.Length < 13 || mtbJmbg.Text.Contains(" ")) { poruka += "JMBG mora sadržavati 13 cifara.\n"; } if (string.IsNullOrEmpty(tbPacijent.Text.Trim())) { poruka += "Ime i prezime pacijenta nije unijeto.\n"; } if (string.IsNullOrEmpty(tbAdresa.Text.Trim())) { poruka += "Adresa pacijenta nije unijeto.\n"; } if (string.IsNullOrEmpty(tbIzdatOdUstanove.Text.Trim())) { poruka += "Ime ustanove koja je izdala recept nije unijeto.\n"; } if (string.IsNullOrEmpty(tbIzdatOdDoktora.Text.Trim())) { poruka += "Ime doktor koji je izdao recept nije unijeto.\n"; } } if ((nudKolicinaNaStavciRacuna.Value.ToString()).Contains(".") || (nudKolicinaNaStavciRacuna.Value.ToString()).Contains(",")) { poruka += "Količina na stavci mora biti cjelobrojni podatak veći od 1."; nudKolicinaNaStavciRacuna.Value = 1; } if (string.IsNullOrEmpty(poruka)) { korektnaKolicina = int.TryParse(nudKolicinaNaStavciRacuna.Value.ToString(), out kolicinaNaStavci); if (!korektnaKolicina) { poruka += "Količina na stavci mora biti cjelobrojni podatak veći od 1."; } if (kolicinaNaStavci < 1) { poruka += "Količina na stavci mora biti cjelobrojni podatak veći od 1."; } } if (kolicinaNaStavci > odabraniLijek.kolicinaNaStanju) { poruka += "Unesena količina lijeka nije na stanju."; } try { using (ApotekaDb context = new ApotekaDb()) { if (string.IsNullOrEmpty(poruka)) { if (!izmjenaStavkeRacuna) { recept rec = new recept(); stavkaracuna sRacuna = new stavkaracuna(); sRacuna.kolicina = kolicinaNaStavci; sRacuna.iznos = odabraniLijek.prodajnaCijena * kolicinaNaStavci; sRacuna.idLijeka = odabraniLijek.idLijeka; sRacuna.idRacuna = kreiranRacun.idRacuna; if (gbPodaciSaRecepta.Enabled) { rec.jmbg = mtbJmbg.Text; rec.pacijent = tbPacijent.Text; rec.adresa = tbAdresa.Text; rec.izdatOdUstanove = tbIzdatOdUstanove.Text; rec.izdatOdDoktora = tbIzdatOdDoktora.Text; rec.datumIzdavanja = dtpDatumIzdavanja.Value; rec.nazivLijeka = odabraniLijek.naziv; rec.kolicina = kolicinaNaStavci; rec.napomena = tbNapomena.Text.Trim(); context.recepts.Add(rec); context.SaveChanges(); sRacuna.idRecepta = rec.idRecepta; } context.stavkaracunas.Add(sRacuna); context.SaveChanges(); odabraniLijek = (from lij in context.lijeks where lij.idLijeka == odabraniLijek.idLijeka select lij).FirstOrDefault(); odabraniLijek.kolicinaNaStanju = odabraniLijek.kolicinaNaStanju - kolicinaNaStavci; context.SaveChanges(); kreiranRacun = (from kRac in context.racuns where kRac.idRacuna == kreiranRacun.idRacuna select kRac).FirstOrDefault(); kreiranRacun.ukupanIznos = kreiranRacun.ukupanIznos + sRacuna.iznos; tbUkupanIznos.Text = kreiranRacun.ukupanIznos.ToString(); context.SaveChanges(); DodajStavkuUTabeluRacun(sRacuna); PopuniTabeluLijekova(""); OmoguciPolja(false, true); OcistiPoljaStavkeRacuna(); tsmiIzmjenitiStavkuRacuna.Enabled = true; dodavanjeStavkeRacuna = false; tsslStatusnaLabela.Text = "Stavka računa je dodata."; } else { stavkaracuna sracuna = (stavkaracuna)dgvRacun.SelectedRows[0].Tag; if (sracuna.idRecepta != null) { gbPodaciSaRecepta.Enabled = true; recept rcpt = (from rec in context.recepts where rec.idRecepta == sracuna.idRecepta select rec).FirstOrDefault(); rcpt.jmbg = mtbJmbg.Text; rcpt.pacijent = tbPacijent.Text; rcpt.adresa = tbAdresa.Text; rcpt.izdatOdUstanove = tbIzdatOdUstanove.Text; rcpt.izdatOdDoktora = tbIzdatOdDoktora.Text; rcpt.datumIzdavanja = dtpDatumIzdavanja.Value; rcpt.kolicina = kolicinaNaStavci; rcpt.napomena = tbNapomena.Text; context.SaveChanges(); } lijek ljk = (from lij in context.lijeks where lij.idLijeka == sracuna.idLijeka select lij).FirstOrDefault(); kreiranRacun = (from kRac in context.racuns where kRac.idRacuna == kreiranRacun.idRacuna select kRac).FirstOrDefault(); kreiranRacun.ukupanIznos = kreiranRacun.ukupanIznos - (ljk.prodajnaCijena * sracuna.kolicina); kreiranRacun.ukupanIznos = kreiranRacun.ukupanIznos + (ljk.prodajnaCijena * kolicinaNaStavci); tbUkupanIznos.Text = kreiranRacun.ukupanIznos.ToString(); context.SaveChanges(); ljk.kolicinaNaStanju = ljk.kolicinaNaStanju + (sracuna.kolicina - kolicinaNaStavci); context.SaveChanges(); stavkaracuna stavkaRacuna = (from sr in context.stavkaracunas where sr.idLijeka == sracuna.idLijeka && sr.idRacuna == sracuna.idRacuna select sr).FirstOrDefault(); stavkaRacuna.kolicina = kolicinaNaStavci; stavkaRacuna.iznos = ljk.prodajnaCijena * kolicinaNaStavci; context.SaveChanges(); DataGridViewRow row = dgvRacun.SelectedRows[0]; row.Tag = stavkaRacuna; row.SetValues(ljk.naziv, ljk.prodajnaCijena, stavkaRacuna.kolicina, stavkaRacuna.iznos); OmoguciPolja(false, true); PopuniTabeluLijekova(""); OcistiPoljaStavkeRacuna(); tsmiIzmjenitiStavkuRacuna.Enabled = true; izmjenaStavkeRacuna = false; btnDodatiStavkuNaRacun.Text = "Dodati"; tsslStatusnaLabela.Text = "Stavka računa je izmjenjena."; } } else { MessageBox.Show(poruka, "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } catch (Exception) { string prk = "Došlo je do greške."; MessageBox.Show(prk, "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error); } }