Ejemplo n.º 1
0
        public static AktivniPredmetiViewModel VratiAktivnePredmete(UlogovaniKorisnik korisnik, DateTime datum)
        {
            using (var context = DmsData.GetContext())
            {
                var vm = new AktivniPredmetiViewModel();

                var aktivni = context.izvestaj_AktivniPredmeti(datum, korisnik.IdKorisnika).Select(x => new AktivniPredmetOsnovno
                {
                    Inspekcija   = x.Inspekcija,
                    BrojPredmeta = x.BrojPredmeta.GetValueOrDefault(),
                    Godina       = x.Godina.GetValueOrDefault(),
                }).ToList();

                var novaLista = new List <AktivniPredmet>();

                var inspekcije = aktivni.GroupBy(x => x.Inspekcija).ToList();

                foreach (var ins in inspekcije)
                {
                    var noviPredmet = new AktivniPredmet
                    {
                        Inspekcija = ins.Key,
                    };

                    var ukupno = 0;

                    foreach (var predmet in ins.ToList())
                    {
                        var razlika = 11 - (datum.Year - predmet.Godina);
                        ukupno += predmet.BrojPredmeta;
                        typeof(AktivniPredmet).GetProperty(string.Format("Godina{0}", razlika)).SetValue(noviPredmet, predmet.BrojPredmeta, null);
                    }

                    noviPredmet.Ukupno = ukupno;

                    novaLista.Add(noviPredmet);
                }

                vm.AktivniPredmeti = novaLista;

                var brojac = 1;
                for (var i = datum.Year - 10; i <= datum.Year; i++)
                {
                    typeof(AktivniPredmetiViewModel).GetProperty(string.Format("NazivKolone{0}", brojac)).SetValue(vm, string.Format(@"{0}", i), null);
                    brojac++;
                }

                return(vm);
            }
        }
Ejemplo n.º 2
0
        public static List <DefinisanaStampa> VratiStampeAktivnihPredmeta(UlogovaniKorisnik korisnik, DateTime datum, AktivniPredmetiViewModel vm)
        {
            var dir = Directory.CreateDirectory(PutanjaAplikacije.PutanjaReportPregledAktivnihPredmeta);

            var stampe = new List <DefinisanaStampa>();
            var guid   = Guid.NewGuid().ToString();

            var zaglavlje = new PregledAktivnihPredmetaZaglavlje
            {
                Datum         = datum,
                NazivUstanove = DmsData.Naziv,
            };

            //var vm = VratiAktivnePredmete(korisnik, datum);
            if (vm != null)
            {
                zaglavlje.NazivKolone1  = vm.NazivKolone1;
                zaglavlje.NazivKolone2  = vm.NazivKolone2;
                zaglavlje.NazivKolone3  = vm.NazivKolone3;
                zaglavlje.NazivKolone4  = vm.NazivKolone4;
                zaglavlje.NazivKolone5  = vm.NazivKolone5;
                zaglavlje.NazivKolone6  = vm.NazivKolone6;
                zaglavlje.NazivKolone7  = vm.NazivKolone7;
                zaglavlje.NazivKolone8  = vm.NazivKolone8;
                zaglavlje.NazivKolone9  = vm.NazivKolone9;
                zaglavlje.NazivKolone10 = vm.NazivKolone10;
                zaglavlje.NazivKolone11 = vm.NazivKolone11;
                if (vm.AktivniPredmeti != null && vm.AktivniPredmeti.Count > 0)
                {
                    zaglavlje.Predmeti.AddRange(vm.AktivniPredmeti);
                }
            }

            foreach (var file in dir.GetFiles())
            {
                var stampa = new DefinisanaStampa();
                stampa.Naziv = file.Name.TrimEnd(".repx".ToArray());
                stampa.Link  = string.Format("{0}/{1}/{2}.pdf", PutanjaAplikacije.PutanjaStampeWeb, guid, stampa.Naziv);
                var report = new PregledAktivnihPredmetaReport();
                report.LoadLayout(file.FullName);
                report.PostaviPodatke(zaglavlje);
                report.CreateDocument();
                if (!Directory.Exists(string.Format("{0}{1}", PutanjaAplikacije.PutanjaStampe, guid)))
                {
                    Directory.CreateDirectory(string.Format("{0}{1}", PutanjaAplikacije.PutanjaStampe, guid));
                }
                report.ExportToPdf(string.Format("{0}{1}\\{2}.pdf", PutanjaAplikacije.PutanjaStampe, guid, stampa.Naziv));
                var opt = new XlsExportOptions();
                opt.ShowGridLines = true;
                report.ExportToXls(string.Format("{0}{1}\\{2}.xls", PutanjaAplikacije.PutanjaStampe, guid, stampa.Naziv), opt);
                stampe.Add(stampa);
            }

            return(stampe);
        }