示例#1
0
        public FileStreamResult IspisDetalji(int id)
        {
            PlanOs2View plan = new PlanOs2View();

            plan.OsPlan2           = planovi_os2.ReadOS_Plan_2(id);
            plan.OsPlan2Podrucja   = new List <OS_Plan_2_podrucje>();
            plan.OsPlan2Podrucja   = baza.OsPlan2Podrucje.Where(w => w.Id_glavni_plan == id).ToList();
            plan.OsPlan2Podrucja   = plan.OsPlan2Podrucja.OrderBy(o => o.Red_br_podrucje).ToList();
            plan.OsPlan2Aktivnosti = new List <OS_Plan_2_aktivnost>();
            foreach (var item in plan.OsPlan2Podrucja)
            {
                int i = item.Id_plan;
                plan.OsPlan2Aktivnosti.AddRange(baza.OsPlan2Aktivnost.Where(w => w.Id_podrucje == i));
            }
            plan.OsPlan2Akcije = new List <OS_Plan_2_akcija>();
            foreach (var item in plan.OsPlan2Aktivnosti)
            {
                int i = item.Id_plan;
                plan.OsPlan2Akcije.AddRange(baza.OsPlan2Akcija.Where(w => w.Id_aktivnost == i));
            }
            plan.Ciljevi  = new List <Ciljevi>();
            plan.Ciljevi  = ciljevi_db.ReadCiljevi();
            plan.Zadaci   = new List <Zadaci>();
            plan.Zadaci   = zadaci_db.ReadZadaci();
            plan.Subjekti = new List <Subjekti>();
            plan.Subjekti = subjekti_db.ReadSubjekti();
            plan.Oblici   = new List <Oblici>();
            plan.Oblici   = oblici_db.ReadOblici();

            Pedagog ped   = new Pedagog();
            int     idPed = PlaniranjeSession.Trenutni.PedagogId;

            ped = baza.Pedagog.SingleOrDefault(s => s.Id_Pedagog == idPed);

            PlanOs2DetailsReport report = new PlanOs2DetailsReport(plan, ped);

            return(new FileStreamResult(new MemoryStream(report.Podaci), "application/pdf"));
        }
        public PlanOs1DetailsReport(PlanOs1View plan, Pedagog ped)
        {
            Document pdfDokument = new Document(
                PageSize.A4.Rotate(), 50, 50, 20, 50);

            MemoryStream memStream = new MemoryStream();

            PdfWriter.GetInstance(pdfDokument, memStream).
            CloseStream = false;

            pdfDokument.Open();

            BaseFont font = BaseFont.CreateFont(BaseFont.HELVETICA,
                                                BaseFont.CP1250, false);
            Font header = new Font(font, 12, Font.NORMAL, BaseColor.DARK_GRAY);
            Font naslov = new Font(font, 14, Font.BOLDITALIC, BaseColor.BLACK);
            Font tekst  = new Font(font, 9, Font.NORMAL, BaseColor.BLACK);
            Font bold   = new Font(font, 9, Font.BOLD, BaseColor.BLACK);

            Paragraph p = new Paragraph(ped.Ime + " " + ped.Prezime + ", " + ped.Titula, header);

            pdfDokument.Add(p);

            p = new Paragraph("Naziv plana: " + plan.OsPlan1.Naziv, header);
            pdfDokument.Add(p);

            p               = new Paragraph("Okvirni plan i program rada stručnog suradnika za osnovnu školu u šk. god. " + plan.OsPlan1.Ak_godina, naslov);
            p.Alignment     = Element.ALIGN_CENTER;
            p.SpacingBefore = 30;
            p.SpacingAfter  = 30;
            pdfDokument.Add(p);

            PdfPTable t = new PdfPTable(17);

            t.WidthPercentage = 100;
            t.SetWidths(new float[] { 1, 5, 2, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 });

            t.AddCell(VratiCeliju2("R. BR.", bold, false, BaseColor.CYAN));
            t.AddCell(VratiCeliju2("PODRUČJE RADA/AKTIVNOSTI", bold, false, BaseColor.CYAN));
            PdfPCell c = new PdfPCell();

            c         = VratiCeliju2("POTREBNO SATI", bold, false, BaseColor.CYAN);
            c.Padding = 1;
            t.AddCell(c);
            t.AddCell(VratiCeliju2("CILJ (po područjima)", bold, false, BaseColor.CYAN));
            c         = new PdfPCell();
            c         = VratiCeliju2("BR. SATI", bold, false, BaseColor.CYAN);
            c.Padding = 0.5F;
            t.AddCell(c);
            t.AddCell(VratiCeliju2("IX", bold, false, BaseColor.CYAN));
            t.AddCell(VratiCeliju2("X", bold, false, BaseColor.CYAN));
            t.AddCell(VratiCeliju2("XI", bold, false, BaseColor.CYAN));
            t.AddCell(VratiCeliju2("XII", bold, false, BaseColor.CYAN));
            t.AddCell(VratiCeliju2("I", bold, false, BaseColor.CYAN));
            t.AddCell(VratiCeliju2("II", bold, false, BaseColor.CYAN));
            t.AddCell(VratiCeliju2("III", bold, false, BaseColor.CYAN));
            t.AddCell(VratiCeliju2("IV", bold, false, BaseColor.CYAN));
            t.AddCell(VratiCeliju2("V", bold, false, BaseColor.CYAN));
            t.AddCell(VratiCeliju2("VI", bold, false, BaseColor.CYAN));
            t.AddCell(VratiCeliju2("VII", bold, false, BaseColor.CYAN));
            t.AddCell(VratiCeliju2("VIII", bold, false, BaseColor.CYAN));


            int i = 0;

            plan.OsPlan1Podrucje = plan.OsPlan1Podrucje.OrderBy(o => o.Red_br_podrucje).ToList();

            foreach (var item in plan.OsPlan1Podrucje)
            {
                i++;

                t.AddCell(VratiCeliju(i.ToString() + ".", bold, true, BaseColor.WHITE));
                t.AddCell(VratiCeliju(plan.PodrucjeRada.Single(s => s.Id_podrucje == item.Opis_Podrucje).Naziv, bold, false, BaseColor.WHITE));
                t.AddCell(VratiCeliju(item.Potrebno_sati, bold, false, BaseColor.WHITE));

                List <OS_Plan_1_aktivnost> aktivnosti = new List <OS_Plan_1_aktivnost>();
                aktivnosti = plan.OsPlan1Aktivnost.Where(w => w.Id_podrucje == item.Id_plan).ToList();
                aktivnosti = aktivnosti.OrderBy(o => o.Red_broj_aktivnost).ToList();

                PdfPCell cell = new PdfPCell(new Phrase(plan.Ciljevi.Single(s => s.ID_cilj == item.Cilj).Naziv, tekst));
                cell.Rowspan             = aktivnosti.Count + 1;
                cell.VerticalAlignment   = PdfPCell.ALIGN_TOP;
                cell.HorizontalAlignment = PdfPCell.ALIGN_LEFT;
                cell.NoWrap = false;
                t.AddCell(cell);

                t.AddCell(VratiCeliju(item.Br_sati.ToString(), bold, false, BaseColor.WHITE));
                t.AddCell(VratiCeliju(item.Mj_9.ToString(), bold, false, BaseColor.WHITE));
                t.AddCell(VratiCeliju(item.Mj_10.ToString(), bold, false, BaseColor.WHITE));
                t.AddCell(VratiCeliju(item.Mj_11.ToString(), bold, false, BaseColor.WHITE));
                t.AddCell(VratiCeliju(item.Mj_12.ToString(), bold, false, BaseColor.WHITE));
                t.AddCell(VratiCeliju(item.Mj_1.ToString(), bold, false, BaseColor.WHITE));
                t.AddCell(VratiCeliju(item.Mj_2.ToString(), bold, false, BaseColor.WHITE));
                t.AddCell(VratiCeliju(item.Mj_3.ToString(), bold, false, BaseColor.WHITE));
                t.AddCell(VratiCeliju(item.Mj_4.ToString(), bold, false, BaseColor.WHITE));
                t.AddCell(VratiCeliju(item.Mj_5.ToString(), bold, false, BaseColor.WHITE));
                t.AddCell(VratiCeliju(item.Mj_6.ToString(), bold, false, BaseColor.WHITE));
                t.AddCell(VratiCeliju(item.Mj_7.ToString(), bold, false, BaseColor.WHITE));
                t.AddCell(VratiCeliju(item.Mj_8.ToString(), bold, false, BaseColor.WHITE));

                int x = 1;
                foreach (var ak in aktivnosti)
                {
                    t.AddCell(VratiCeliju(i.ToString() + "." + (x++).ToString(), tekst, true, BaseColor.WHITE));
                    t.AddCell(VratiCeliju(plan.Aktivnosti.Single(s => s.Id_aktivnost == ak.Opis_aktivnost).Naziv, tekst, false, BaseColor.WHITE));
                    t.AddCell(VratiCeliju(ak.Potrebno_sati, tekst, false, BaseColor.WHITE));
                    t.AddCell(VratiCeliju(ak.Br_sati.ToString(), tekst, false, BaseColor.WHITE));
                    t.AddCell(VratiCeliju(ak.Mj_9.ToString(), tekst, false, BaseColor.WHITE));
                    t.AddCell(VratiCeliju(ak.Mj_10.ToString(), tekst, false, BaseColor.WHITE));
                    t.AddCell(VratiCeliju(ak.Mj_11.ToString(), tekst, false, BaseColor.WHITE));
                    t.AddCell(VratiCeliju(ak.Mj_12.ToString(), tekst, false, BaseColor.WHITE));
                    t.AddCell(VratiCeliju(ak.Mj_1.ToString(), tekst, false, BaseColor.WHITE));
                    t.AddCell(VratiCeliju(ak.Mj_2.ToString(), tekst, false, BaseColor.WHITE));
                    t.AddCell(VratiCeliju(ak.Mj_3.ToString(), tekst, false, BaseColor.WHITE));
                    t.AddCell(VratiCeliju(ak.Mj_4.ToString(), tekst, false, BaseColor.WHITE));
                    t.AddCell(VratiCeliju(ak.Mj_5.ToString(), tekst, false, BaseColor.WHITE));
                    t.AddCell(VratiCeliju(ak.Mj_6.ToString(), tekst, false, BaseColor.WHITE));
                    t.AddCell(VratiCeliju(ak.Mj_7.ToString(), tekst, false, BaseColor.WHITE));
                    t.AddCell(VratiCeliju(ak.Mj_8.ToString(), tekst, false, BaseColor.WHITE));
                }
            }

            pdfDokument.Add(t);

            pdfDokument.Close();
            Podaci = memStream.ToArray();
        }
        public PlanOs2DetailsReport(PlanOs2View plan, Pedagog pedagog)
        {
            Document pdfDokument = new Document(
                PageSize.A4.Rotate(), 50, 50, 20, 50);

            MemoryStream memStream = new MemoryStream();

            PdfWriter.GetInstance(pdfDokument, memStream).
            CloseStream = false;
            pdfDokument.Open();
            BaseFont font = BaseFont.CreateFont(BaseFont.HELVETICA,
                                                BaseFont.CP1250, false);
            Font header   = new Font(font, 12, Font.NORMAL, BaseColor.DARK_GRAY);
            Font naslov   = new Font(font, 14, Font.BOLDITALIC, BaseColor.BLACK);
            Font tekst    = new Font(font, 10, Font.NORMAL, BaseColor.BLACK);
            Font bold     = new Font(font, 9, Font.BOLD, BaseColor.BLACK);
            Font blueBold = new Font(font, 9, Font.BOLD, BaseColor.BLUE);

            Paragraph p = new Paragraph(pedagog.Ime + " " + pedagog.Prezime + ", " + pedagog.Titula, header);

            pdfDokument.Add(p);
            p = new Paragraph("Naziv plana: " + plan.OsPlan2.Naziv, header);
            pdfDokument.Add(p);

            p               = new Paragraph("Godišnji plan i program rada stručnog suradnika pedagoga za osnovnu školu u šk.god. " + plan.OsPlan2.Ak_godina, naslov);
            p.Alignment     = Element.ALIGN_CENTER;
            p.SpacingBefore = 30;
            p.SpacingAfter  = 30;
            pdfDokument.Add(p);

            PdfPTable t = new PdfPTable(8);

            t.WidthPercentage = 100;
            t.SetWidths(new float[] { 1, 5, 3, 3, 3, 3, 2, 1 });

            t.AddCell(VratiCeliju2("R.br.", bold, true, BaseColor.CYAN));
            t.AddCell(VratiCeliju2("POSLOVI I ZADACI", bold, false, BaseColor.CYAN));
            t.AddCell(VratiCeliju2("CILJEVI", bold, false, BaseColor.CYAN));
            t.AddCell(VratiCeliju2("ZADACI", bold, false, BaseColor.CYAN));
            t.AddCell(VratiCeliju2("SUBJEKTI", bold, false, BaseColor.CYAN));
            t.AddCell(VratiCeliju2("OBLICI I METODE RADA", bold, false, BaseColor.CYAN));
            t.AddCell(VratiCeliju2("VRIJEME REALIZACIJE", bold, false, BaseColor.CYAN));
            t.AddCell(VratiCeliju2("SATI", bold, false, BaseColor.CYAN));

            int a = 0;

            foreach (var podrucje in plan.OsPlan2Podrucja)
            {
                a++;
                List <OS_Plan_2_aktivnost> aktivnost = new List <OS_Plan_2_aktivnost>();
                aktivnost = plan.OsPlan2Aktivnosti.Where(w => w.Id_podrucje == podrucje.Id_plan).ToList();
                aktivnost = aktivnost.OrderBy(o => o.Red_br_aktivnost).ToList();

                t.AddCell(VratiCeliju(a.ToString(), blueBold, false, BaseColor.WHITE));
                t.AddCell(VratiCeliju(podrucje.Opis_podrucje, blueBold, false, BaseColor.WHITE));

                List <OS_Plan_2_akcija> listaAkcija = new List <OS_Plan_2_akcija>();

                foreach (var item in aktivnost)
                {
                    listaAkcija.AddRange(plan.OsPlan2Akcije.Where(w => w.Id_aktivnost == item.Id_plan));
                }
                int      spoji = aktivnost.Count + listaAkcija.Count + 1;
                PdfPCell cell  = new PdfPCell(new Phrase(plan.Ciljevi.Single(s => s.ID_cilj == podrucje.Cilj).Naziv, tekst));
                cell.BackgroundColor     = BaseColor.WHITE;
                cell.HorizontalAlignment = PdfPCell.ALIGN_LEFT;
                cell.Padding             = 5;
                cell.NoWrap  = false;
                cell.Rowspan = spoji;
                t.AddCell(cell);

                cell = new PdfPCell(new Phrase(plan.Zadaci.Single(s => s.ID_zadatak == podrucje.Zadaci).Naziv, tekst));
                cell.BackgroundColor     = BaseColor.WHITE;
                cell.HorizontalAlignment = PdfPCell.ALIGN_LEFT;
                cell.Padding             = 5;
                cell.NoWrap  = false;
                cell.Rowspan = spoji;
                t.AddCell(cell);

                cell = new PdfPCell(new Phrase(plan.Subjekti.Single(s => s.ID_subjekt == podrucje.Subjekti).Naziv, tekst));
                cell.BackgroundColor     = BaseColor.WHITE;
                cell.HorizontalAlignment = PdfPCell.ALIGN_LEFT;
                cell.Padding             = 5;
                cell.NoWrap  = false;
                cell.Rowspan = spoji;
                t.AddCell(cell);

                cell = new PdfPCell(new Phrase(plan.Oblici.Single(s => s.Id_oblici == podrucje.Oblici).Naziv, tekst));
                cell.BackgroundColor     = BaseColor.WHITE;
                cell.HorizontalAlignment = PdfPCell.ALIGN_LEFT;
                cell.Padding             = 5;
                cell.NoWrap  = false;
                cell.Rowspan = spoji;
                t.AddCell(cell);

                cell = new PdfPCell(new Phrase(podrucje.Vrijeme, tekst));
                cell.BackgroundColor     = BaseColor.WHITE;
                cell.HorizontalAlignment = PdfPCell.ALIGN_LEFT;
                cell.Padding             = 5;
                cell.NoWrap  = false;
                cell.Rowspan = spoji;
                t.AddCell(cell);

                t.AddCell(VratiCeliju(podrucje.Sati.ToString(), blueBold, false, BaseColor.WHITE));

                int b = 0;
                foreach (var akt in aktivnost)
                {
                    b++;
                    t.AddCell(VratiCeliju(a + "." + b, bold, false, BaseColor.WHITE));
                    t.AddCell(VratiCeliju(akt.Opis_aktivnost, bold, false, BaseColor.WHITE));
                    t.AddCell(VratiCeliju(akt.Sati.ToString(), bold, false, BaseColor.WHITE));

                    List <OS_Plan_2_akcija> akcije = new List <OS_Plan_2_akcija>();
                    akcije = plan.OsPlan2Akcije.Where(w => w.Id_aktivnost == akt.Id_plan).ToList();
                    akcije = akcije.OrderBy(o => o.Red_br_akcija).ToList();

                    int c = 0;
                    foreach (var ac in akcije)
                    {
                        c++;
                        t.AddCell(VratiCeliju(a + "." + b + "." + c, tekst, false, BaseColor.WHITE));
                        t.AddCell(VratiCeliju(ac.Opis_akcija, tekst, false, BaseColor.WHITE));
                        t.AddCell(VratiCeliju(ac.Sati.ToString(), tekst, false, BaseColor.WHITE));
                    }
                }
            }

            pdfDokument.Add(t);

            pdfDokument.Close();
            Podaci = memStream.ToArray();
        }