示例#1
0
        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;
            }
        }
示例#2
0
        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;
                }
            }
        }
示例#3
0
 public LijekForma(bool menadzerPregled, lijek l, ToolStripStatusLabel statusnaLabela, DataGridView tabelaLijekova)
 {
     InitializeComponent();
     this.menadzerPregled = menadzerPregled;
     this.odabraniLijek   = l;
     this.statusnaLabela  = statusnaLabela;
     this.tabelaLijekova  = tabelaLijekova;
 }
示例#4
0
 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();
     }
 }
示例#5
0
        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);
            }
        }
示例#6
0
 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);
             }
         }
     }
 }
示例#7
0
        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);
            }
        }
示例#8
0
        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;
            }
        }
示例#9
0
        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;
            }
        }
示例#10
0
 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);
             }
         }
     }
 }
示例#11
0
        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);
            }
        }