Exemple #1
0
        public byte[] PrepareReport(KupacKontoKartica redovi)
        {
            _redovi = redovi;

            _document = new Document(PageSize.A4, 0f, 0f, 0f, 0f);
            _document.SetPageSize(PageSize.A4);
            _document.SetMargins(20f, 20f, 20f, 20f);
            _pdfTable.WidthPercentage     = 100;
            _pdfTable.HorizontalAlignment = Element.ALIGN_LEFT;
            _fontStyle = FontFactory.GetFont("Tahoma", 8f, 1);
            PdfWriter.GetInstance(_document, _memoryStream);
            _document.Open();
            _pdfTable.SetWidths(new float[] { 50f, 50f, 50f, 50f, 50f });


            this.ReportHeader();
            this.ReportBody();
            _pdfTable.HeaderRows = 2;
            _document.Add(_pdfTable);
            _document.Close();
            return(_memoryStream.ToArray());
        }
Exemple #2
0
        public IActionResult PrikaziKontoKarticu(KupacNapraviKontoKarticuVM model)
        {
            List <Racun>  listaRacunaDb = new List <Racun>();
            List <Uplata> listaUplataDb = new List <Uplata>();

            //prethodno stanje !
            List <Racun>  listaRacunaDbPRE = new List <Racun>();
            List <Uplata> listaUplataDbPRE = new List <Uplata>();

            double   dugPRE    = 0;
            double   uplataPRE = 0;
            DateTime pocetnoStanjeAplikacije = new DateTime(2018, 7, 25); // na taj dan uneseni svi dugovi

            if (model.KupacID == 20 || model.KupacID == 23)               // u slucaju da se izdaje konto kartica za Bingo jer u bazi imaju 2 binga ( sjever i jug )
            {
                //PRETHODNO DUGOVANJE
                listaRacunaDbPRE = db.Racuni.Include(x => x.Kupac).Where(x => !x.IsPredracun && (x.Datum >= pocetnoStanjeAplikacije && x.Datum < model.datumOd) && (x.KupacID == 20 || x.KupacID == 23)).ToList();

                listaUplataDbPRE = db.Uplate.Include(x => x.Kupac).Where(x => (x.Datum >= pocetnoStanjeAplikacije && x.Datum < model.datumOd) && (x.KupacID == 20 || x.KupacID == 23)).ToList();

                for (int i = 0; i < listaRacunaDbPRE.Count(); i++)
                {
                    dugPRE += listaRacunaDbPRE[i].UkupnoBezPDV + (listaRacunaDbPRE[i].UkupnoBezPDV * 0.17);
                }
                for (int i = 0; i < listaUplataDbPRE.Count(); i++)
                {
                    uplataPRE += listaUplataDbPRE[i].Iznos;
                }
                //

                listaRacunaDb = db.Racuni.Include(x => x.Kupac).Where(x => !x.IsPredracun && (x.Datum >= model.datumOd && x.Datum <= model.datumDo.AddHours(8)) && (x.KupacID == 20 || x.KupacID == 23)).ToList();

                listaUplataDb = db.Uplate.Include(x => x.Kupac).Where(x => (x.Datum >= model.datumOd && x.Datum <= model.datumDo.AddHours(8)) && (x.KupacID == 20 || x.KupacID == 23)).ToList();
            }
            else
            {
                //PRETHODNO DUGOVANJE
                listaRacunaDbPRE = db.Racuni.Include(x => x.Kupac).Where(x => !x.IsPredracun && (x.Datum >= pocetnoStanjeAplikacije && x.Datum < model.datumOd) && x.KupacID == model.KupacID).ToList();

                listaUplataDbPRE = db.Uplate.Include(x => x.Kupac).Where(x => (x.Datum >= pocetnoStanjeAplikacije && x.Datum < model.datumOd) && x.KupacID == model.KupacID).ToList();

                for (int i = 0; i < listaRacunaDbPRE.Count(); i++)
                {
                    dugPRE += listaRacunaDbPRE[i].UkupnoBezPDV + (listaRacunaDbPRE[i].UkupnoBezPDV * 0.17);
                }
                for (int i = 0; i < listaUplataDbPRE.Count(); i++)
                {
                    uplataPRE += listaUplataDbPRE[i].Iznos;
                }
                //

                listaRacunaDb = db.Racuni.Include(x => x.Kupac).Where(x => !x.IsPredracun && (x.Datum >= model.datumOd && x.Datum <= model.datumDo.AddHours(8)) && x.KupacID == model.KupacID).ToList();

                listaUplataDb = db.Uplate.Include(x => x.Kupac).Where(x => (x.Datum >= model.datumOd && x.Datum <= model.datumDo.AddHours(8)) && x.KupacID == model.KupacID).ToList();
            }

            KupacKontoKartica Model = new KupacKontoKartica();

            Model.DatumOd = model.datumOd;
            Model.DatumDo = model.datumDo;
            Model.KupacId = model.KupacID;
            Model.Grad    = model.Grad;
            Model.redovi  = new List <KupacKontoKartica.Row>();
            Model.Saldo   = 0;

            Model.prethodnoDugovanje = uplataPRE - dugPRE;

            ////dodavanje prvog reda, tj prethodnog stanja prije izabranog datuma
            //Model.redovi.Add(new KupacKontoKartica.Row
            //{
            //    Datum = model.datumOd,
            //    Duguje = dugPRE,
            //    Potrazuje = uplataPRE,
            //    Saldo = uplataPRE - dugPRE,
            //    VezniDokument = "Prethodno stanje"

            //});

            for (int i = 0; i < listaRacunaDb.Count(); i++)
            {
                Model.redovi.Add(new KupacKontoKartica.Row
                {
                    Datum         = listaRacunaDb[i].Datum,
                    Duguje        = listaRacunaDb[i].UkupnoBezPDV + (listaRacunaDb[i].UkupnoBezPDV * 0.17),
                    Potrazuje     = 0,
                    Saldo         = 0,
                    VezniDokument = listaRacunaDb[i].BrojRacuna
                });
            }
            for (int i = 0; i < listaUplataDb.Count(); i++)
            {
                Model.redovi.Add(new KupacKontoKartica.Row
                {
                    Datum         = listaUplataDb[i].Datum,
                    Duguje        = 0,
                    Potrazuje     = listaUplataDb[i].Iznos,
                    Saldo         = 0,
                    VezniDokument = listaUplataDb[i].BrojIzvoda
                });
            }
            Model.redovi = Model.redovi.OrderBy(x => x.Datum).ToList();

            for (int i = 0; i < Model.redovi.Count; i++)
            {
                Model.SumaDuguje    += Model.redovi[i].Duguje;
                Model.SumaPotrazuje += Model.redovi[i].Potrazuje;
                if (i == 0)
                {
                    Model.redovi[i].Saldo = Model.redovi[i].Potrazuje - Model.redovi[i].Duguje;
                }
                else
                {
                    Model.redovi[i].Saldo = Model.redovi[i - 1].Saldo + (Model.redovi[i].Potrazuje - Model.redovi[i].Duguje);
                }
            }

            KontoKupacReport novi = new KontoKupacReport();

            Model.NazivKupca  = db.Kupci.Where(x => x.KupacID == model.KupacID).FirstOrDefault().NazivKupca;
            Model.AdresaKupca = db.Kupci.Where(x => x.KupacID == model.KupacID).FirstOrDefault().Adresa;
            Model.Saldo       = Model.SumaPotrazuje - Model.SumaDuguje;

            byte[] docArray = novi.PrepareReport(Model);
            return(File(docArray, "application/pdf"));
        }