public IActionResult NapraviKontoKarticu(int KupacID) { KupacNapraviKontoKarticuVM Model = new KupacNapraviKontoKarticuVM(); Model.datumOdString = DateTime.Now.AddDays(-31).ToShortDateString(); Model.datumDoString = DateTime.Now.ToShortDateString(); Model.KupacID = KupacID; Model.Grad = db.Kupci.Where(x => x.KupacID == KupacID).Include(p => p.Grad).FirstOrDefault().Grad.Naziv; return(View(Model)); }
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")); }