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()); }
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")); }