示例#1
0
 private void tsmiObrisatiZaposlenog_Click(object sender, EventArgs e)
 {
     if (DialogResult.Yes == MessageBox.Show("Da li želite obrisati zaposlenog " + odabraniZaposleni.ime + " " + odabraniZaposleni.prezime + "?", "Upozorenje", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2))
     {
         try
         {
             using (ApotekaDb context = new ApotekaDb())
             {
                 odabraniZaposleni = (from z in context.zaposlenis
                                      where z.idZaposlenog == odabraniZaposleni.idZaposlenog
                                      select z).FirstOrDefault();
                 odabraniZaposleni.obrisano = true;
                 context.SaveChanges();
                 odabraniZaposleni       = null;
                 tsslStatusnaLabela.Text = "Nalog zaposlenog je uspješno obrisan.";
                 btnOcistiPoljaPretrage.PerformClick();
             }
         }
         catch (Exception)
         {
             string prk = "Došlo je do greške.";
             MessageBox.Show(prk, "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
 }
示例#2
0
        private void tsmiPromjenitiLozinku_Click(object sender, EventArgs e)
        {
            PromjenaLozinkeForma plForma = new PromjenaLozinkeForma(prijavljenZaposleni);

            if (DialogResult.OK == plForma.ShowDialog())
            {
                try
                {
                    using (ApotekaDb context = new ApotekaDb())
                    {
                        prijavljenZaposleni = (from z in context.zaposlenis
                                               where z.idZaposlenog == prijavljenZaposleni.idZaposlenog
                                               select z).FirstOrDefault();
                        prijavljenZaposleni.lozinka = Enkripcija.enkriptujLozinku(plForma.Lozinka);
                        context.SaveChanges();
                        tsslStatusnaLabela.Text = "Lozinka uspješno promjenjena.";
                    }
                }
                catch (Exception)
                {
                    string prk = "Došlo je do greške.";
                    MessageBox.Show(prk, "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
示例#3
0
 public AdminForma(LoginForma lf, zaposleni zap)
 {
     InitializeComponent();
     loginForma          = lf;
     prijavljenZaposleni = zap;
     PodesiDugmad();
 }
示例#4
0
 private void dgvZaposleni_SelectionChanged(object sender, EventArgs e)
 {
     if (dgvZaposleni.SelectedRows.Count == 1)
     {
         try
         {
             using (ApotekaDb context = new ApotekaDb())
             {
                 odabraniZaposleni = (zaposleni)dgvZaposleni.SelectedRows[0].Tag;
                 zaposleni zap = (from zp in context.zaposlenis
                                  where zp.idZaposlenog == odabraniZaposleni.idZaposlenog &&
                                  zp.obrisano == false
                                  select zp).FirstOrDefault();
                 if (zap.uloga == 10)
                 {
                     cbUloga.SelectedIndex = 2;
                 }
                 else if (zap.uloga == 2)
                 {
                     cbUloga.SelectedIndex = 1;
                 }
                 else
                 {
                     cbUloga.SelectedIndex = 0;
                 }
                 mtbJmbg.Text              = zap.jmbg;
                 tbIme.Text                = zap.ime;
                 tbPrezime.Text            = zap.prezime;
                 tbAdresa.Text             = zap.adresa;
                 cbMjesto.SelectedItem     = zap.mjesto;
                 tbTelefon.Text            = zap.telefon;
                 tbEmail.Text              = zap.email;
                 tbStrucnaSprema.Text      = zap.strucnaSprema;
                 tbFarmaceutskoZvanje.Text = zap.farmaceutskoZvanje;
                 tbOpisPosla.Text          = zap.opisPosla;
                 cbSefApoteke.Checked      = zap.sefApoteke;
             }
             if (odabraniZaposleni != null)
             {
                 if (odabraniZaposleni.uloga == 10)
                 {
                     tsmiIzmjenitiZaposlenog.Enabled = true;
                     tsmiAktiviratiDeaktiviratiZaposlenog.Enabled = tsmiObrisatiZaposlenog.Enabled = false;
                 }
                 else
                 {
                     tsmiIzmjenitiZaposlenog.Enabled = tsmiAktiviratiDeaktiviratiZaposlenog.Enabled = tsmiObrisatiZaposlenog.Enabled = true;
                 }
             }
         }
         catch (Exception)
         {
             string prk = "Došlo je do greške.";
             MessageBox.Show(prk, "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error);
         }
     }
 }
示例#5
0
 public FarmaceutForma(LoginForma lForma, zaposleni zap)
 {
     InitializeComponent();
     this.prijavljenZaposleni = zap;
     this.loginForma          = lForma;
     PodesiDugmad();
     izmjenaStavkeRacuna   = false;
     dodavanjeStavkeRacuna = false;
 }
示例#6
0
 public NarudzbaForma(MenadzerForma menadzerForma, ToolStripStatusLabel sLabela, ListView listaNarudzbi, zaposleni prijavljenZaposleni)
 {
     InitializeComponent();
     this.statusnaLabela      = sLabela;
     this.listaNarudzbi       = listaNarudzbi;
     this.menadzerForma       = menadzerForma;
     this.prijavljenZaposleni = prijavljenZaposleni;
     izmjenaStavkeNarudzbe    = false;
     dodavanjeStavkeNarudzbe  = false;
     this.brojacNarudzbi      = 0;
     PodesiDugmad();
 }
示例#7
0
        private void tsmiAktiviratiDeaktiviratiZaposlenog_Click(object sender, EventArgs e)
        {
            string poruka = "";

            if (odabraniZaposleni.aktivan)
            {
                poruka = "Da li želite deaktivirati zaposlenog " + odabraniZaposleni.ime + " " + odabraniZaposleni.prezime + "?";
            }
            else
            {
                poruka = "Da li želite aktivirati zaposlenog " + odabraniZaposleni.ime + " " + odabraniZaposleni.prezime + "?";
            }

            if (DialogResult.Yes == MessageBox.Show(poruka, "Pitanje", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
            {
                try
                {
                    using (ApotekaDb context = new ApotekaDb())
                    {
                        odabraniZaposleni = (from z in context.zaposlenis
                                             where z.idZaposlenog == odabraniZaposleni.idZaposlenog
                                             select z).FirstOrDefault();
                        if (odabraniZaposleni.aktivan)
                        {
                            odabraniZaposleni.aktivan = false;
                        }
                        else
                        {
                            odabraniZaposleni.aktivan = true;
                        }
                        context.SaveChanges();
                        idOdabranogZaposlenog = odabraniZaposleni.idZaposlenog;
                        PopuniTabeluPretrazivanjem(false, false);
                        if (!odabraniZaposleni.aktivan)
                        {
                            tsslStatusnaLabela.Text = "Nalog zaposlenog " + odabraniZaposleni.ime + " " + odabraniZaposleni.prezime + " je deaktiviran.";
                        }
                        else
                        {
                            tsslStatusnaLabela.Text = "Nalog zaposlenog " + odabraniZaposleni.ime + " " + odabraniZaposleni.prezime + " je ponovo aktivan.";
                        }
                    }
                }
                catch (Exception)
                {
                    string prk = "Došlo je do greške.";
                    MessageBox.Show(prk, "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
示例#8
0
 public void PodesiDugmad(zaposleni z)
 {
     pbLogin.Image            = Properties.Resources.loginLock;
     MessageBoxManager.OK     = "OK";
     MessageBoxManager.Cancel = "Otkazati";
     MessageBoxManager.Yes    = "Da";
     MessageBoxManager.No     = "Ne";
     MessageBoxManager.Abort  = "Prekinuti";
     MessageBoxManager.Ignore = "Ignorisati";
     MessageBoxManager.Retry  = "Ponoviti";
     MessageBoxManager.Register();
     if (z != null)
     {
         tbKorisnickoIme.Text = z.korisnickoIme;
     }
     tbKorisnickoIme.Select();
 }
示例#9
0
 private void btnOdustati_Click(object sender, EventArgs e)
 {
     try
     {
         using (ApotekaDb context = new ApotekaDb())
         {
             odabraniZaposleni = (zaposleni)dgvZaposleni.SelectedRows[0].Tag;
             zaposleni zap = (from zp in context.zaposlenis
                              where zp.jmbg == odabraniZaposleni.jmbg &&
                              zp.obrisano == false
                              select zp).FirstOrDefault();
             tbIme.Text                = zap.ime;
             tbPrezime.Text            = zap.prezime;
             tbAdresa.Text             = zap.adresa;
             cbMjesto.SelectedItem     = zap.mjesto;
             tbTelefon.Text            = zap.telefon;
             tbEmail.Text              = zap.email;
             tbStrucnaSprema.Text      = zap.strucnaSprema;
             tbFarmaceutskoZvanje.Text = zap.farmaceutskoZvanje;
             tbOpisPosla.Text          = zap.opisPosla;
             cbSefApoteke.Checked      = zap.sefApoteke;
             idOdabranogZaposlenog     = odabraniZaposleni.idZaposlenog;
             PopuniTabeluPretrazivanjem(false, false);
             OmoguciPoljaZaUnosZaposlenog(false);
             dgvZaposleni.Focus();
             if (odabraniZaposleni.uloga != 10)
             {
                 DodajAdminStavkuUComboBox(true);
             }
             tsmiDodatiZaposlenog.Enabled = true;
         }
     }
     catch (Exception)
     {
         string prk = "Došlo je do greške.";
         MessageBox.Show(prk, "Greška", MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
示例#10
0
        private void btnSacuvati_Click(object sender, EventArgs e)
        {
            string poruka = "";

            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(tbIme.Text.Trim()))
            {
                poruka += "Ime nije unijeto.\n";
            }
            if (string.IsNullOrEmpty(tbPrezime.Text.Trim()))
            {
                poruka += "Prezime nije unijeto.\n";
            }
            if (string.IsNullOrEmpty(tbAdresa.Text.Trim()))
            {
                poruka += "Adresa nije unijeta.\n";
            }
            if (string.IsNullOrEmpty(tbStrucnaSprema.Text.Trim()))
            {
                poruka += "Stručna sprema nije unijeta.\n";
            }

            try
            {
                using (ApotekaDb context = new ApotekaDb())
                {
                    var zap = (from z in context.zaposlenis
                               select z).ToList();
                    foreach (zaposleni zp in zap)
                    {
                        if (zp.jmbg.Equals(mtbJmbg.Text) && zp.idZaposlenog != odabraniZaposleni.idZaposlenog)
                        {
                            poruka += "Postoji zaposleni sa unesenim JMBG.\n";
                            break;
                        }
                    }

                    if (string.IsNullOrEmpty(poruka))
                    {
                        odabraniZaposleni = (from z in context.zaposlenis
                                             where z.idZaposlenog == odabraniZaposleni.idZaposlenog
                                             select z).FirstOrDefault();
                        if (cbUloga.Enabled)
                        {
                            if (cbUloga.SelectedItem.Equals("menadzer"))
                            {
                                odabraniZaposleni.uloga = 2;
                            }
                            else
                            {
                                odabraniZaposleni.uloga = 1;
                            }
                        }
                        odabraniZaposleni.jmbg               = mtbJmbg.Text;
                        odabraniZaposleni.ime                = tbIme.Text.Trim();
                        odabraniZaposleni.prezime            = tbPrezime.Text.Trim();
                        odabraniZaposleni.adresa             = tbAdresa.Text.Trim();
                        odabraniZaposleni.idMjesta           = ((mjesto)cbMjesto.SelectedItem).idMjesta;
                        odabraniZaposleni.telefon            = tbTelefon.Text.Trim();
                        odabraniZaposleni.email              = tbEmail.Text.Trim();
                        odabraniZaposleni.strucnaSprema      = tbStrucnaSprema.Text.Trim();
                        odabraniZaposleni.farmaceutskoZvanje = tbFarmaceutskoZvanje.Text.Trim();
                        odabraniZaposleni.opisPosla          = tbOpisPosla.Text.Trim();
                        odabraniZaposleni.sefApoteke         = cbSefApoteke.Checked;
                        context.SaveChanges();
                        idOdabranogZaposlenog = odabraniZaposleni.idZaposlenog;
                        PopuniTabeluPretrazivanjem(false, false);
                        OmoguciPoljaZaUnosZaposlenog(false);
                        dgvZaposleni.Focus();
                        tsmiDodatiZaposlenog.Enabled = true;
                        if (odabraniZaposleni.uloga != 10)
                        {
                            DodajAdminStavkuUComboBox(true);
                        }
                        tsslStatusnaLabela.Text = "Podaci o zaposlenom su izmjenjeni.";
                    }
                    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);
            }
        }
示例#11
0
        private void UnosZaposlenogForma_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (unosSacuvan)
            {
                string poruka = "";
                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(tbIme.Text.Trim()))
                {
                    poruka += "Ime nije unijeto.\n";
                }
                if (string.IsNullOrEmpty(tbPrezime.Text.Trim()))
                {
                    poruka += "Prezime nije unijeto.\n";
                }
                if (string.IsNullOrEmpty(tbAdresa.Text.Trim()))
                {
                    poruka += "Adresa nije unijeta.\n";
                }
                if (cbMjesto.SelectedItem == null)
                {
                    poruka += "Mjesto nije izabrato.\n";
                }
                if (cbUloga.SelectedItem == null)
                {
                    poruka += "Uloga zaposlenog nije izabrata.\n";
                }
                if (string.IsNullOrEmpty(tbStrucnaSprema.Text.Trim()))
                {
                    poruka += "Stručna sprema nije unijeta.\n";
                }
                if (string.IsNullOrEmpty(tbKorisnickoIme.Text.Trim()))
                {
                    poruka += "Korisničko ime nije unijeto.\n";
                }
                if (string.IsNullOrEmpty(tbLozinka.Text.Trim()))
                {
                    poruka += "Lozinka nije unijeta.\n";
                }
                if (string.IsNullOrEmpty(tbPonovljenaLozinka.Text.Trim()))
                {
                    poruka += "Ponovljena lozinka nije unijeta.\n";
                }
                if (!string.IsNullOrEmpty(tbLozinka.Text.Trim()) && !string.IsNullOrEmpty(tbPonovljenaLozinka.Text.Trim()))
                {
                    if (!(tbLozinka.Text.Trim()).Equals(tbPonovljenaLozinka.Text.Trim()))
                    {
                        poruka += "Lozinke se ne poklapaju.\n";
                    }
                }
                foreach (zaposleni zp in listaZaposlenih)
                {
                    if (zp.jmbg.Equals(mtbJmbg.Text))
                    {
                        poruka += "Postoji zaposleni sa unesenim JMBG.\n";
                        break;
                    }
                }

                foreach (zaposleni zp in listaZaposlenih)
                {
                    if (zp.korisnickoIme.Equals(tbKorisnickoIme.Text.Trim()))
                    {
                        poruka += "Postoji zaposleni sa unesenim korisničkim imenom.\n";
                        break;
                    }
                }
                if (string.IsNullOrEmpty(poruka))
                {
                    try
                    {
                        using (ApotekaDb context = new ApotekaDb())
                        {
                            int ulogaZap = 1;
                            if (cbUloga.SelectedItem.Equals("menadzer"))
                            {
                                ulogaZap = 2;
                            }
                            var z = new zaposleni()
                            {
                                jmbg               = mtbJmbg.Text.Trim(),
                                ime                = tbIme.Text.Trim(),
                                prezime            = tbPrezime.Text.Trim(),
                                adresa             = tbAdresa.Text.Trim(),
                                idMjesta           = ((mjesto)cbMjesto.SelectedItem).idMjesta,
                                telefon            = tbTelefon.Text.Trim(),
                                email              = tbEmail.Text.Trim(),
                                strucnaSprema      = tbStrucnaSprema.Text.Trim(),
                                farmaceutskoZvanje = tbFarmaceutskoZvanje.Text.Trim(),
                                sefApoteke         = cbSefApoteke.Checked,
                                opisPosla          = tbOpisPosla.Text.Trim(),
                                korisnickoIme      = tbKorisnickoIme.Text.Trim(),
                                lozinka            = Enkripcija.enkriptujLozinku(tbLozinka.Text.Trim()),
                                uloga              = ulogaZap,
                                aktivan            = true
                            };
                            context.zaposlenis.Add(z);
                            context.SaveChanges();
                            statusnaLabela.Text = "Uspješno unijet novi zaposleni.";
                            listaZaposlenih     = (from zap in context.zaposlenis
                                                   where zap.obrisano == false
                                                   orderby zap.prezime
                                                   select zap).ToList();
                            PopuniTabeluZaposlenih(listaZaposlenih);
                        }
                    }
                    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;
            }
        }
示例#12
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;
            }
        }