private void dgvLijekovi_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) { odabraniLijek = (lijek)dgvLijekovi.SelectedRows[0].Tag; bool dodanLijek = false; foreach (DataGridViewRow r in dgvNarudzba.Rows) { stavkanarudzbe sn = (stavkanarudzbe)r.Tag; if (odabraniLijek.idLijeka == sn.idLijeka && kreiranaNarudzba.idNarudzbe == sn.idNarudzbe) { dodanLijek = true; break; } } if (dodanLijek) { MessageBox.Show("Odabran lijek se nalazi na stavci računa.", "Poruka", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { gbPretragaLijeka.Enabled = false; gbPodaciStavkeNarudzbe.Enabled = true; dodavanjeStavkeNarudzbe = true; } }
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; } } }
public LijekForma(bool menadzerPregled, lijek l, ToolStripStatusLabel statusnaLabela, DataGridView tabelaLijekova) { InitializeComponent(); this.menadzerPregled = menadzerPregled; this.odabraniLijek = l; this.statusnaLabela = statusnaLabela; this.tabelaLijekova = tabelaLijekova; }
private void tsmiLijekDetaljno_Click(object sender, EventArgs e) { if (dgvLijekovi.SelectedRows.Count == 1) { lijek l = (lijek)dgvLijekovi.SelectedRows[0].Tag; LijekForma lijekForma = new LijekForma(false, l, null, null); lijekForma.ShowDialog(); } }
private void PonistiKreiranRacun() { try { using (ApotekaDb context = new ApotekaDb()) { var listaStavkiRacuna = (from sr in context.stavkaracunas where sr.idRacuna == kreiranRacun.idRacuna select sr).ToList(); foreach (stavkaracuna s in listaStavkiRacuna) { lijek ljk = (from lij in context.lijeks where lij.idLijeka == s.idLijeka select lij).FirstOrDefault(); ljk.kolicinaNaStanju = ljk.kolicinaNaStanju + s.kolicina; context.SaveChanges(); int?idReceptaSaStavke = s.idRecepta; context.stavkaracunas.Remove(s); context.SaveChanges(); if (idReceptaSaStavke != null) { recept rcpt = (from rec in context.recepts where rec.idRecepta == idReceptaSaStavke select rec).FirstOrDefault(); context.recepts.Remove(rcpt); context.SaveChanges(); } } racun rac = (from r in context.racuns where r.idRacuna == kreiranRacun.idRacuna select r).FirstOrDefault(); context.racuns.Remove(rac); context.SaveChanges(); OmoguciPolja(true, false); OcistiPoljaStavkeRacuna(); dgvRacun.Rows.Clear(); dgvLijekovi.Rows.Clear(); tsslStatusnaLabela.Text = "Račun je poništen."; tbUkupanIznos.Text = "0.00"; } } catch (Exception) { string prk = "Došlo je do greške."; MessageBox.Show(prk, "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void tsmiObrisatiStavkuNarudzbe_Click(object sender, EventArgs e) { if (dgvNarudzba.SelectedRows.Count == 1) { stavkanarudzbe sNarudzbe = (stavkanarudzbe)dgvNarudzba.SelectedRows[0].Tag; if (DialogResult.Yes == MessageBox.Show("Da li želite obrisati stavku narudžbe?", "Pitanje", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2)) { try { using (ApotekaDb context = new ApotekaDb()) { kreiranaNarudzba = (from kNar in context.narudzbas where kNar.idNarudzbe == kreiranaNarudzba.idNarudzbe select kNar).FirstOrDefault(); kreiranaNarudzba.ukupanIznos = kreiranaNarudzba.ukupanIznos - sNarudzbe.iznos; context.SaveChanges(); tbUkupanIznos.Text = kreiranaNarudzba.ukupanIznos.ToString(); lijek ljk = (from lij in context.lijeks where lij.idLijeka == sNarudzbe.idLijeka select lij).FirstOrDefault(); stavkanarudzbe stavkaNarudzbe = (from sn in context.stavkanarudzbes where sn.idLijeka == sNarudzbe.idLijeka && sn.idNarudzbe == sNarudzbe.idNarudzbe select sn).FirstOrDefault(); context.stavkanarudzbes.Remove(stavkaNarudzbe); context.SaveChanges(); dgvNarudzba.Rows.Remove(dgvNarudzba.SelectedRows[0]); if (dgvNarudzba.Rows.Count > 0) { PostaviRedneBrojeveUTabeli(dgvNarudzba); } else { tsmiIzmjenitiStavkuNarudzbe.Enabled = false; tsmiObrisatiStavkuNarudzbe.Enabled = false; } } } catch (Exception) { string prk = "Došlo je do greške."; MessageBox.Show(prk, "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }
private void btnDodatiStavkuNarudzbe_Click(object sender, EventArgs e) { string poruka = ""; int kolicinaNaStavci = 1; bool korektnaKolicina = false; if ((nudKolicinaNaStavciNarudzbe.Value.ToString()).Contains(".") || (nudKolicinaNaStavciNarudzbe.Value.ToString()).Contains(",")) { poruka += "Količina na stavci mora biti cjelobrojni podatak veći od 1."; nudKolicinaNaStavciNarudzbe.Value = 1; } if (string.IsNullOrEmpty(poruka)) { korektnaKolicina = int.TryParse(nudKolicinaNaStavciNarudzbe.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."; } } try { using (ApotekaDb context = new ApotekaDb()) { if (string.IsNullOrEmpty(poruka)) { if (!izmjenaStavkeNarudzbe) { stavkanarudzbe sNarudzbe = new stavkanarudzbe(); sNarudzbe.kolicina = kolicinaNaStavci; sNarudzbe.iznos = odabraniLijek.nabavnaCijena * kolicinaNaStavci; sNarudzbe.idLijeka = odabraniLijek.idLijeka; sNarudzbe.idNarudzbe = kreiranaNarudzba.idNarudzbe; context.stavkanarudzbes.Add(sNarudzbe); context.SaveChanges(); kreiranaNarudzba = (from kNar in context.narudzbas where kNar.idNarudzbe == kreiranaNarudzba.idNarudzbe select kNar).FirstOrDefault(); kreiranaNarudzba.ukupanIznos = kreiranaNarudzba.ukupanIznos + sNarudzbe.iznos; tbUkupanIznos.Text = kreiranaNarudzba.ukupanIznos.ToString(); context.SaveChanges(); DodajStavkuUTabeluNarudzba(sNarudzbe); OmoguciPolja(false); nudKolicinaNaStavciNarudzbe.Value = 1; tsmiIzmjenitiStavkuNarudzbe.Enabled = true; dodavanjeStavkeNarudzbe = false; } else { stavkanarudzbe sNarudzbe = (stavkanarudzbe)dgvNarudzba.SelectedRows[0].Tag; lijek ljk = (from lij in context.lijeks where lij.idLijeka == sNarudzbe.idLijeka select lij).FirstOrDefault(); kreiranaNarudzba = (from kNar in context.narudzbas where kNar.idNarudzbe == kreiranaNarudzba.idNarudzbe select kNar).FirstOrDefault(); kreiranaNarudzba.ukupanIznos = kreiranaNarudzba.ukupanIznos - (ljk.nabavnaCijena * sNarudzbe.kolicina); kreiranaNarudzba.ukupanIznos = kreiranaNarudzba.ukupanIznos + (ljk.nabavnaCijena * kolicinaNaStavci); tbUkupanIznos.Text = kreiranaNarudzba.ukupanIznos.ToString(); context.SaveChanges(); stavkanarudzbe stavkaNarudzbe = (from sNar in context.stavkanarudzbes where sNar.idLijeka == sNarudzbe.idLijeka && sNar.idNarudzbe == sNarudzbe.idNarudzbe select sNar).FirstOrDefault(); stavkaNarudzbe.kolicina = kolicinaNaStavci; stavkaNarudzbe.iznos = ljk.nabavnaCijena * kolicinaNaStavci; context.SaveChanges(); DataGridViewRow row = dgvNarudzba.SelectedRows[0]; row.Tag = stavkaNarudzbe; row.SetValues(ljk.naziv, ljk.nabavnaCijena, stavkaNarudzbe.kolicina, stavkaNarudzbe.iznos); OmoguciPolja(false); nudKolicinaNaStavciNarudzbe.Value = 1; tsmiIzmjenitiStavkuNarudzbe.Enabled = true; izmjenaStavkeNarudzbe = false; btnDodatiStavkuNarudzbe.Text = "Dodati"; } } 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); } }
private void LijekForma_FormClosing(object sender, FormClosingEventArgs e) { if (unosSacuvan) { decimal nabavnaCijenaUnos = 0; decimal prodajnaCijenaUnos = 0; bool neuspjesnaNabavna = false; bool neuspjesnaProdajna = false; string poruka = ""; if (string.IsNullOrEmpty(tbNaziv.Text.Trim())) { poruka += "Naziv nije unijet.\n"; } if (string.IsNullOrEmpty(tbProizvodjac.Text.Trim())) { poruka += "Proizvođač nije unijet.\n"; } if (string.IsNullOrEmpty(tbPakovanje.Text.Trim())) { poruka += "Pakovanje nije unijeto.\n"; } if (string.IsNullOrEmpty(tbNetoKolicina.Text.Trim())) { poruka += "Neto količina nije unijeta.\n"; } if (dtpDozvolaVaziOd.Value > dtpDozvolaVaziDo.Value) { poruka += "Datum od kad važi dozvola ne može biti poslije datuma isteka iste.\n"; } if (!decimal.TryParse(tbNabavnaCijena.Text.Trim(), out nabavnaCijenaUnos)) { neuspjesnaNabavna = true; poruka += "Nabavna cijena mora biti pozitivan broj.\n"; } if (!neuspjesnaNabavna && nabavnaCijenaUnos < 0) { poruka += "Nabavna cijena mora biti pozitivan broj.\n"; } if (!decimal.TryParse(tbProdajnaCijena.Text.Trim(), out prodajnaCijenaUnos)) { neuspjesnaProdajna = true; poruka += "Prodajna cijena mora biti pozitivan broj.\n"; } if (!neuspjesnaProdajna && prodajnaCijenaUnos < 0) { poruka += "Prodajna cijena mora biti pozitivan broj.\n"; } if (string.IsNullOrEmpty(poruka)) { try { using (ApotekaDb context = new ApotekaDb()) { var l = new lijek() { naziv = tbNaziv.Text.Trim(), proizvodjac = tbProizvodjac.Text.Trim(), pakovanje = tbPakovanje.Text.Trim(), izdavanjeNaRecept = cbIzdavanjeNaRecept.Checked, netoKolicina = tbNetoKolicina.Text.Trim(), dozvolaVaziOd = dtpDozvolaVaziOd.Value, dozvolaVaziDo = dtpDozvolaVaziDo.Value, nabavnaCijena = nabavnaCijenaUnos, prodajnaCijena = prodajnaCijenaUnos, kolicinaNaStanju = 0, namjena = tbNamjena.Text.Trim(), idApoteke = 1 }; context.lijeks.Add(l); context.SaveChanges(); statusnaLabela.Text = "Uspješno unijet novi lijek."; var lijekovi = (from ljk in context.lijeks where ljk.obrisano == false select ljk).ToList(); PopuniTabeluLijekova(lijekovi); } } catch (Exception) { string prk = "Došlo je do greške."; MessageBox.Show(prk, "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else { e.Cancel = true; MessageBox.Show(poruka, "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error); } unosSacuvan = false; } }
public static void kreirajIzvjestajRacun(string putanja, List <racun> racuni, DateTime?datumOd, DateTime?datumDo, zaposleni kreirao, BackgroundWorker bgw) { BaseFont bfArialUniCode = null; try { Byte[] fb = Properties.Resources.calibril; bfArialUniCode = BaseFont.CreateFont("calibri.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED, BaseFont.CACHED, fb, null); } catch (Exception) { bgw.ReportProgress(100, "greska"); return; } font = new Font(bfArialUniCode, 12, Font.NORMAL); font2 = new Font(bfArialUniCode, 11, Font.NORMAL); font3 = new Font(bfArialUniCode, 9, Font.NORMAL); font4 = new Font(bfArialUniCode, 12, Font.BOLD); font5 = new Font(bfArialUniCode, 14, Font.BOLD); font6 = new Font(bfArialUniCode, 9, Font.BOLD); FileStream fajl = File.Create(putanja); Document dokument = null; try { dokument = new Document(PageSize.A4); PdfWriter.GetInstance(dokument, fajl); dokument.Open(); dokument.AddAuthor("Apoteka"); dokument.AddCreator("Apoteka"); dokument.AddCreationDate(); dokument.AddTitle("Izvjestaj - racuni za odredjeni period"); dokument.AddSubject("Izvjestaj - racuni za odredjeni period"); Paragraph pdf = new Paragraph(); PdfPTable tabelaZaglavlje = new PdfPTable(2); tabelaZaglavlje.WidthPercentage = 100f; tabelaZaglavlje.SetWidths(new int[] { 1, 2 }); PdfPCell cell = new PdfPCell(); Image slika = Image.GetInstance(Properties.Resources.apoteka_png, System.Drawing.Imaging.ImageFormat.Png); cell.PaddingTop = 25; slika.ScaleAbsolute(100f, 100f); cell.Border = Rectangle.NO_BORDER; cell.HorizontalAlignment = Element.ALIGN_MIDDLE; cell.VerticalAlignment = Element.ALIGN_CENTER; cell.AddElement(slika); cell.Rowspan = 2; tabelaZaglavlje.AddCell(cell); cell = new PdfPCell(); cell.PaddingLeft = 25; cell.Border = Rectangle.NO_BORDER; cell.HorizontalAlignment = Element.ALIGN_CENTER; cell.VerticalAlignment = Element.ALIGN_TOP; Paragraph par = new Paragraph("APOTEKA\n", font5); Chunk chunk = null; chunk = new Chunk("Izvještaj: računi izdati u određenom periodu\n", font3); par.Add(chunk); cell.AddElement(par); par = new Paragraph("________________________________________\n", font3); DateTime datOd = DateTime.Today; if (datumOd != null) { datOd = (DateTime)datumOd; } DateTime datDo = DateTime.Today; if (datumDo != null) { datDo = (DateTime)datumDo; } if (datumOd == null && datumDo == null) { chunk = new Chunk("Izvještaj sadrži sve izdate račune\n", font6); par.Add(chunk); } else { if (datumOd != null) { chunk = new Chunk("Izdati od: ", font6); par.Add(chunk); chunk = new Chunk(datOd.ToString("dd.MM.yyyy") + "\n", font3); par.Add(chunk); } if (datumDo != null) { chunk = new Chunk("Izdati do: ", font6); par.Add(chunk); chunk = new Chunk(datDo.ToString("dd.MM.yyyy") + "\n", font3); par.Add(chunk); } } chunk = new Chunk("Datum kreiranja izvještaja: ", font6); par.Add(chunk); chunk = new Chunk(DateTime.Today.ToString("dd.MM.yyyy") + "\n", font3); par.Add(chunk); chunk = new Chunk("Izvještaj kreirao: ", font6); par.Add(chunk); chunk = new Chunk(kreirao.ime + " " + kreirao.prezime + "\n", font3); par.Add(chunk); chunk = new Chunk("Broj računa: ", font6); par.Add(chunk); chunk = new Chunk(racuni.Count + "\n", font3); par.Add(chunk); decimal ukupno = 0; foreach (racun rcn in racuni) { ukupno += rcn.ukupanIznos; } chunk = new Chunk("Ukupan promet: ", font6); par.Add(chunk); chunk = new Chunk(ukupno.ToString() + "\n", font3); par.Add(chunk); cell.AddElement(par); par = new Paragraph("________________________________________\n", font3); cell.AddElement(par); tabelaZaglavlje.AddCell(cell); PdfPTable table = new PdfPTable(4); table.WidthPercentage = 100; table.SpacingBefore = 10f; table.SpacingAfter = 10f; float[] columnWidths = { 0.3f, 0.8f, 1f, 0.6f }; table.SetWidths(columnWidths); cell = new PdfPCell(new Paragraph("R.br.", font4)); cell.PaddingLeft = 10; cell.BackgroundColor = new BaseColor(134, 216, 144); cell.HorizontalAlignment = Element.ALIGN_CENTER; cell.VerticalAlignment = Element.ALIGN_MIDDLE; PdfPCell cell1 = new PdfPCell(new Paragraph("Datum izdavanja", font4)); cell1.PaddingLeft = 10; cell1.BackgroundColor = new BaseColor(134, 216, 144); cell1.HorizontalAlignment = Element.ALIGN_CENTER; cell1.VerticalAlignment = Element.ALIGN_MIDDLE; PdfPCell cell2 = new PdfPCell(new Paragraph("Izdao", font4)); cell2.PaddingLeft = 10; cell2.BackgroundColor = new BaseColor(134, 216, 144); cell2.HorizontalAlignment = Element.ALIGN_CENTER; cell2.VerticalAlignment = Element.ALIGN_MIDDLE; PdfPCell cell3 = new PdfPCell(new Paragraph("Iznos računa", font4)); cell3.PaddingLeft = 10; cell3.BackgroundColor = new BaseColor(134, 216, 144); cell3.HorizontalAlignment = Element.ALIGN_CENTER; cell3.VerticalAlignment = Element.ALIGN_MIDDLE; table.AddCell(cell); table.AddCell(cell1); table.AddCell(cell2); table.AddCell(cell3); int brojacUnosa = 1; int total = racuni.Count + 1; int indeks = 1; int percents = 0; using (ApotekaDb context = new ApotekaDb()) { for (int redniBrojUTabeli = 0; redniBrojUTabeli < racuni.Count;) { racun rac = racuni.ElementAt(redniBrojUTabeli); if (brojacUnosa % 2 == 0) { List <stavkaracuna> stavke = new List <stavkaracuna>(); stavke = (from sr in context.stavkaracunas where sr.idRacuna == rac.idRacuna select sr).ToList(); cell = new PdfPCell(new Paragraph("", font6)); cell.PaddingLeft = 10; cell.HorizontalAlignment = Element.ALIGN_CENTER; cell.VerticalAlignment = Element.ALIGN_MIDDLE; cell.Rowspan = stavke.Count + 1; cell1 = new PdfPCell(new Paragraph("Lijek", font6)); cell1.PaddingLeft = 10; cell1.BackgroundColor = new BaseColor(212, 252, 249); cell1.HorizontalAlignment = Element.ALIGN_CENTER; cell1.VerticalAlignment = Element.ALIGN_MIDDLE; cell2 = new PdfPCell(new Paragraph("Količina", font6)); cell2.PaddingLeft = 10; cell2.BackgroundColor = new BaseColor(212, 252, 249); cell2.HorizontalAlignment = Element.ALIGN_CENTER; cell2.VerticalAlignment = Element.ALIGN_MIDDLE; cell3 = new PdfPCell(new Paragraph("Iznos stavke", font6)); cell3.PaddingLeft = 10; cell3.BackgroundColor = new BaseColor(212, 252, 249); cell3.HorizontalAlignment = Element.ALIGN_CENTER; cell3.VerticalAlignment = Element.ALIGN_MIDDLE; table.AddCell(cell); table.AddCell(cell1); table.AddCell(cell2); table.AddCell(cell3); foreach (stavkaracuna sr in stavke) { lijek ljk = null; ljk = (from l in context.lijeks where l.idLijeka == sr.idLijeka select l).FirstOrDefault(); if (ljk != null) { cell1 = new PdfPCell(new Paragraph(ljk.naziv, font3)); } else { cell1 = new PdfPCell(new Paragraph("", font3)); } cell1.PaddingLeft = 10; cell1.HorizontalAlignment = Element.ALIGN_CENTER; cell1.VerticalAlignment = Element.ALIGN_MIDDLE; cell2 = new PdfPCell(new Paragraph(sr.kolicina.ToString(), font3)); cell2.PaddingLeft = 10; cell2.HorizontalAlignment = Element.ALIGN_CENTER; cell2.VerticalAlignment = Element.ALIGN_MIDDLE; cell3 = new PdfPCell(new Paragraph(sr.iznos.ToString(), font3)); cell3.PaddingLeft = 10; cell3.HorizontalAlignment = Element.ALIGN_RIGHT; cell3.VerticalAlignment = Element.ALIGN_MIDDLE; table.AddCell(cell1); table.AddCell(cell2); table.AddCell(cell3); } percents = (indeks * 100) / total; bgw.ReportProgress(percents, "ok"); indeks++; redniBrojUTabeli++; } else { cell = new PdfPCell(new Paragraph((redniBrojUTabeli + 1) + ".", font)); cell.PaddingLeft = 10; cell.BackgroundColor = new BaseColor(189, 252, 196); cell.HorizontalAlignment = Element.ALIGN_CENTER; cell.VerticalAlignment = Element.ALIGN_MIDDLE; cell1 = new PdfPCell(new Paragraph(rac.datumKreiranja.ToString("dd.MM.yyyy"), font2)); cell1.PaddingLeft = 10; cell1.BackgroundColor = new BaseColor(189, 252, 196); cell1.HorizontalAlignment = Element.ALIGN_CENTER; cell1.VerticalAlignment = Element.ALIGN_MIDDLE; zaposleni zps = null; zps = (from z in context.zaposlenis where z.idZaposlenog == rac.idZaposlenog select z).FirstOrDefault(); if (zps != null) { cell2 = new PdfPCell(new Paragraph(zps.ime + " " + zps.prezime, font2)); } else { cell2 = new PdfPCell(new Paragraph("", font2)); } cell2.PaddingLeft = 10; cell2.BackgroundColor = new BaseColor(189, 252, 196); cell2.HorizontalAlignment = Element.ALIGN_CENTER; cell2.VerticalAlignment = Element.ALIGN_MIDDLE; cell3 = new PdfPCell(new Paragraph(rac.ukupanIznos.ToString(), font2)); cell3.PaddingLeft = 10; cell3.BackgroundColor = new BaseColor(189, 252, 196); cell3.HorizontalAlignment = Element.ALIGN_RIGHT; cell3.VerticalAlignment = Element.ALIGN_MIDDLE; table.AddCell(cell); table.AddCell(cell1); table.AddCell(cell2); table.AddCell(cell3); } brojacUnosa++; } } pdf.Add(tabelaZaglavlje); dokument.Add(pdf); pdf = new Paragraph("\n"); dokument.Add(pdf); pdf = new Paragraph(); pdf.Add(table); dokument.Add(pdf); if (dokument != null) { dokument.Close(); } percents = (indeks * 100) / total; System.Diagnostics.Process.Start(putanja); bgw.ReportProgress(percents, "ok"); } catch (Exception) { bgw.ReportProgress(100, "greska"); return; } }
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); } }