public byte[] PrepareReport(DobavljacKontoKartica 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(DobavljacNapraviKontoKarticuVM model) { List <RacunDobavljaca> listaRacunaDb = new List <RacunDobavljaca>(); List <UplataDobavljacu> listaUplataDb = new List <UplataDobavljacu>(); //prethodno stanje ! List <RacunDobavljaca> listaRacunaDbPRE = new List <RacunDobavljaca>(); List <UplataDobavljacu> listaUplataDbPRE = new List <UplataDobavljacu>(); double dugPRE = 0; double uplataPRE = 0; DateTime pocetnoStanjeAplikacije = new DateTime(2018, 7, 25); // na taj dan uneseni svi dugovi //PRETHODNO DUGOVANJE listaRacunaDbPRE = db.RacuniDobavljaca.Include(x => x.Dobavljac).Where(x => (x.Datum >= pocetnoStanjeAplikacije && x.Datum < model.datumOd) && x.DobavljacID == model.DobavljacID).ToList(); listaUplataDbPRE = db.UplateDobavljacu.Include(x => x.Dobavljac).Where(x => (x.Datum >= pocetnoStanjeAplikacije && x.Datum < model.datumOd) && x.DobavljacID == model.DobavljacID).ToList(); for (int i = 0; i < listaRacunaDbPRE.Count(); i++) { uplataPRE += listaRacunaDbPRE[i].UkupnoSaPDV; } for (int i = 0; i < listaUplataDbPRE.Count(); i++) { dugPRE += listaUplataDbPRE[i].Iznos; } // listaRacunaDb = db.RacuniDobavljaca.Include(x => x.Dobavljac).Where(x => (x.Datum >= model.datumOd && x.Datum <= model.datumDo.AddHours(8)) && x.DobavljacID == model.DobavljacID).ToList(); listaUplataDb = db.UplateDobavljacu.Include(x => x.Dobavljac).Where(x => (x.Datum >= model.datumOd && x.Datum <= model.datumDo.AddHours(8)) && x.DobavljacID == model.DobavljacID).ToList(); DobavljacKontoKartica Model = new DobavljacKontoKartica(); Model.DatumOd = model.datumOd; Model.DatumDo = model.datumDo; Model.DobavljacId = model.DobavljacID; Model.Grad = model.Grad; Model.redovi = new List <DobavljacKontoKartica.Row>(); Model.Saldo = 0; Model.prethodnoDugovanje = uplataPRE - dugPRE; ////dodavanje prvog reda, tj prethodnog stanja prije izabranog datuma //Model.redovi.Add(new DobavljacKontoKartica.Row //{ // Datum = model.datumOd, // Duguje = dugPRE, // Potrazuje = uplataPRE, // Saldo = dugPRE - uplataPRE, // VezniDokument = "Prethodno stanje" //}); for (int i = 0; i < listaRacunaDb.Count(); i++) { Model.redovi.Add(new DobavljacKontoKartica.Row { Datum = listaRacunaDb[i].Datum, Potrazuje = listaRacunaDb[i].UkupnoSaPDV, Duguje = 0, Saldo = 0, VezniDokument = listaRacunaDb[i].BrojRacuna }); } for (int i = 0; i < listaUplataDb.Count(); i++) { Model.redovi.Add(new DobavljacKontoKartica.Row { Datum = listaUplataDb[i].Datum, Potrazuje = 0, Duguje = 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); } } KontoDobavljacReport novi = new KontoDobavljacReport(); Model.NazivDobavljaca = db.Dobavljaci.Where(x => x.DobavljacID == model.DobavljacID).FirstOrDefault().Naziv; Model.AdresaDobavljaca = db.Dobavljaci.Where(x => x.DobavljacID == model.DobavljacID).FirstOrDefault().Adresa; Model.Saldo = Model.SumaPotrazuje - Model.SumaDuguje; byte[] docArray = novi.PrepareReport(Model); return(File(docArray, "application/pdf")); }