Beispiel #1
0
        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));
        }
Beispiel #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"));
        }