Example #1
0
        private static void DodajPonudu(Klijent klijent, DateTime dateTime, ApplicationDbContext context)
        {
            var ponuda = new Ponuda
            {
                Datum   = dateTime,
                Klijent = klijent
            };

            context.Ponuda.Add(ponuda);

            var c      = proizvodi.Count();
            var random = new Random();

            for (int i = 0; i < new Random().Next(2, 10); i++)
            {
                var pRandom = random.Next(0, c - 1);
                var stavka  = new PonudaStavka()
                {
                    Ponuda   = ponuda,
                    Kolicina = random.Next(1, 5),
                    Proizvod = proizvodi[pRandom]
                };
                context.PonudaStavka.Add(stavka);
            }
        }
Example #2
0
        public Ponuda Get(int id)
        {
            Ponuda        ponuda;
            PonudaPredmet ponudaPredmet = null;
            PonudaStavka  ponudaStavka  = null;
            PonudaStatus  ponudaStatus  = null;

            if (id == 0)
            {
                ponuda = new Ponuda()
                {
                    Id = 0, Status = 0, Valuta = "EUR", Vazenje = "Mesec", Vazi = 3
                }
            }
            ;


            else
            {
                ponuda = _session.QueryOver <Ponuda>()
                         .Left.JoinAlias(x => x.PredmetPonude, () => ponudaPredmet)
                         .Left.JoinAlias(x => x.Stavke, () => ponudaStavka)
                         .Where(x => !x.Obrisan)
                         .And(x => x.Id == id)
                         .And(x => !ponudaPredmet.Obrisan || ponudaPredmet.Id == null)
                         .And(x => !ponudaStavka.Obrisan || ponudaStavka.Id == null)
                         .List <Ponuda>()
                         .FirstOrDefault();
            }
            return(ponuda);
        }
        public IActionResult Uredi(int StavkaId)
        {
            PUrediVM pUrediVM = new PUrediVM();

            pUrediVM.StavkaId = StavkaId;
            PonudaStavka ps = _myContext.PonudaStavka.Include(x => x.Proizvod).Where(x => x.Id == StavkaId).FirstOrDefault();

            pUrediVM.Proizvod = ps.Proizvod.Naziv;
            return(PartialView("Uredi", pUrediVM));
        }
Example #4
0
        public PonudaStavka PonudaStavka(int id)
        {
            PonudaStavka ponudaStavka;

            if (id == 0)
            {
                ponudaStavka = new PonudaStavka()
                {
                    Id = 0
                }
            }
            ;
            else
            {
                ponudaStavka = _session.Get <PonudaStavka>(id);
            }
            return(ponudaStavka);
        }
Example #5
0
        public KendoResult <Ponuda> PregledGrid([FromBody] KendoRequest kr) //Get([FromUri] FilterContainer filter, int take, int skip, int page, int pageSize)
        {
            //if (kr.Filter != null && kr.Filter.Filters.FirstOrDefault(x => x.Field == "all") != null)
            //{
            //    var sp = _session.CreateSQLQuery("exec KupacLookup")
            //}

            Klijent        Klijent       = null;
            Ponuda         Ponuda        = null;
            PonudaPredmet  PonudaPredmet = null;
            ObimPoslovanja Obim          = null;
            PonudaStatus   PonudaStatus  = null;
            PonudaStavka   ponudaStavka  = null;
            var            upit          = _session.QueryOver <Ponuda>(() => Ponuda)
                                           .Where(x => !x.Obrisan);

            //var subSvedenoEur = QueryOver.Of<Ponuda>()
            //        .Where(p => !p.Obrisan)
            //        .And(p => p.Id == Ponuda.Id)
            //        .And(p => p.Valuta == "RSD")
            //        .JoinQueryOver(p => p.Stavke, () => ponudaStavka)
            //        .And(() => !ponudaStavka.Obrisan)
            //        .SelectList(ls => ls
            //          .Select(
            //            Projections.SqlFunction("Coalesce", NHibernateUtil.Decimal,
            //            Projections.Sum(
            //              Projections.SqlFunction(
            //                new VarArgsSQLFunction("(", " / ", ")"),
            //                  NHibernateUtil.Decimal,
            //                    Projections.SqlFunction(
            //                    new VarArgsSQLFunction("(", " * ", ")"),
            //                    NHibernateUtil.Decimal,
            //                    Projections.Property(() => ponudaStavka.Kolicina),
            //                    Projections.Property(() => ponudaStavka.Cena))
            //                  ,
            //                  Projections.Property(() => ponudaStavka.Kurs)
            //            )), Projections.Constant(0))
            //          ));

            //var subPredmet = QueryOver.Of<PonudaPredmet>()
            //  .Where(x => x.Ponuda.Id == Ponuda.Id);


            upit.JoinAlias(x => x.Klijent, () => Klijent)
            .JoinAlias(x => x.PonudaStatus, () => PonudaStatus)
            .JoinAlias(x => x.PredmetPonude, () => PonudaPredmet)
            .JoinAlias(() => PonudaPredmet.ObimPoslovanja, () => Obim);

            //upit.Select(Projections.Distinct(
            //  Projections.ProjectionList()
            //  .Add(Projections.Property(() => Ponuda.Id), "Id")
            //  .Add(Projections.Property(() => Ponuda.Rbr), "Rbr")
            //  .Add(Projections.Property(() => Ponuda.Broj), "Broj")
            //  .Add(Projections.Property(() => Ponuda.DatumPonude), "DatumPonude")
            //  .Add(Projections.Property(() => Ponuda.DatumVazenja), "DatumVazenja")
            //  .Add(Projections.Property(() => Ponuda.Vrednost), "Vrednost")
            //  .Add(Projections.Property(() => Ponuda.Klijent), "Klijent")
            //  .Add(Projections.Property(() => Klijent.Naziv), "KlijentNaziv")
            //  .Add(Projections.Property(() => Ponuda.Prihvacena), "Prihvacena")
            //  .Add(Projections.Property(() => Ponuda.Status), "Status")
            //  .Add(Projections.Property(() => Ponuda.Valuta), "Valuta")
            //  .Add(Projections.Property(() => Ponuda.PonudaStatus), "PonudaStatus")
            //  .Add(Projections.SubQuery(subPredmet), "PredmetPonude")
            //  .Add(Projections.SubQuery(subSvedenoEur), "VrednostSvedenoEur")
            //  ));


            TextInfo textInfo = CultureInfo.InvariantCulture.TextInfo;

            if (kr.Filter != null && kr.Filter.Filters.Any())
            {
                foreach (FilterDescription filter in kr.Filter.Filters)
                {
                    //string prop = textInfo.ToTitleCase(filter.Field);
                    string prop = filter.Field.FirstCharToUpper();

                    if (prop.ToLower().Contains("klijent.id"))
                    {
                        upit.And(() => Klijent.Id == int.Parse(filter.Value));
                    }
                    else if (prop.ToLower().Contains("predmetponude"))
                    {
                        upit.And(Restrictions.Disjunction()
                                 .Add(Restrictions.On(() => Obim.Sifra)
                                      .IsInsensitiveLike(filter.Value, MatchMode.Anywhere))
                                 .Add(Restrictions.On(() => Obim.Naziv)
                                      .IsInsensitiveLike(filter.Value, MatchMode.Anywhere)));
                    }
                    else if (prop.ToLower().Contains("vrednost") && filter.Operator == "eq")
                    {
                        upit.And(p => p.Vrednost == decimal.Parse(filter.Value));
                    }
                    else if (prop.ToLower().Contains("ponudastatus"))
                    {
                        upit.And(() => PonudaStatus.Id == int.Parse(filter.Value));
                    }
                    else if (prop.ToLower().Contains("vrednost") && filter.Operator == "gt")
                    {
                        upit.And(p => p.Vrednost >= decimal.Parse(filter.Value));
                    }
                    else if (prop.ToLower().Contains("vrednost") && filter.Operator == "lt")
                    {
                        upit.And(p => p.Vrednost <= decimal.Parse(filter.Value));
                    }
                    else if (prop.ToLower().Contains("rbr"))
                    {
                        upit.And(() => Ponuda.Rbr == int.Parse(filter.Value));
                    }
                    else if (prop.ToLower().Contains("klijent.naziv"))
                    {
                        upit.AndRestrictionOn(() => Klijent.Naziv).IsInsensitiveLike(filter.Value, MatchMode.Anywhere);
                    }
                    else if (filter.Value == "Da" || filter.Value == "Ne")
                    {
                        var f = filter.Value != "Ne";
                        upit.And(Restrictions.Eq(prop, f));
                    }
                    else if (prop.Contains("DatumPonude"))
                    {
                        var d = Convert.ToDateTime(filter.Value);
                        filter.Value = d.ToLocalTime().ToString("yyyyMMdd");
                        if (filter.Operator == "gte")
                        {
                            upit.And(x => x.DatumPonude >= d);
                        }
                        if (filter.Operator == "lte")
                        {
                            upit.And(x => x.DatumPonude <= d);
                        }
                    }
                    else if (prop.Contains("DatumVazenja"))
                    {
                        var d = Convert.ToDateTime(filter.Value);
                        filter.Value = d.ToLocalTime().ToString("yyyyMMdd");
                        if (filter.Operator == "gte")
                        {
                            upit.And(x => x.DatumVazenja >= d);
                        }
                        if (filter.Operator == "lte")
                        {
                            upit.And(x => x.DatumVazenja <= d);
                        }
                    }
                    else if (prop.Contains("DatumPrihvatanja"))
                    {
                        var d = Convert.ToDateTime(filter.Value);
                        filter.Value = d.ToLocalTime().ToString("yyyyMMdd");
                        if (filter.Operator == "gte")
                        {
                            upit.And(x => x.DatumPrihvatanja.Value >= d);
                        }
                        if (filter.Operator == "lte")
                        {
                            upit.And(x => x.DatumPrihvatanja.Value <= d);
                        }
                    }
                    else if (prop.Contains("DatumOdobrenjaR"))
                    {
                        var d = Convert.ToDateTime(filter.Value);
                        filter.Value = d.ToLocalTime().ToString("yyyyMMdd");
                        if (filter.Operator == "gte")
                        {
                            upit.And(x => x.DatumOdobrenjaR.Value >= d);
                        }
                        if (filter.Operator == "lte")
                        {
                            upit.And(x => x.DatumOdobrenjaR.Value <= d);
                        }
                    }
                    else if (prop.Contains("DatumOdobrenjaD"))
                    {
                        var d = Convert.ToDateTime(filter.Value);
                        filter.Value = d.ToLocalTime().ToString("yyyyMMdd");
                        if (filter.Operator == "gte")
                        {
                            upit.And(x => x.DatumOdobrenjaD.Value >= d);
                        }
                        if (filter.Operator == "lte")
                        {
                            upit.And(x => x.DatumOdobrenjaD.Value <= d);
                        }
                    }
                    else
                    {
                        upit.Where(Restrictions.InsensitiveLike(prop, filter.Value, MatchMode.Anywhere));
                    }
                }
            }
            if (kr.PageSize != 0)
            {
                upit.Skip(kr.Skip);
                upit.Take(kr.Take);
            }
            var rowcount = upit.ToRowCountQuery();

            if (kr.Sort.Any())
            {
                foreach (Sort sort in kr.Sort)
                {
                    string prop = sort.Field.FirstCharToUpper(); //textInfo.ToTitleCase(sort.Field);
                    upit.UnderlyingCriteria.AddOrder(new Order(prop, sort.Dir.ToLower() == "asc"));
                }
            }
            else
            {
                upit.UnderlyingCriteria.AddOrder(new Order("Id", false));
            }

            upit.Future <Ponuda>();
            upit.TransformUsing(Transformers.DistinctRootEntity);
            //upit.TransformUsing(new AliasToBeanResultTransformer(typeof(PonudaPregled)));
            //var rowcount = upit.ToRowCountQuery();

            rowcount.Select(Projections.CountDistinct(() => Ponuda.Id));
            //rowcount.UnderlyingCriteria.AddOrder(new Order("redova", true));
            var redova = rowcount.FutureValue <int>().Value;

            var lista = upit.List <Ponuda>();
            var res   = new KendoResult <Ponuda>
            {
                Data  = lista,
                Total = redova
            };

            return(res);
        }
Example #6
0
        public KendoResult <KlijentPregled> PregledGrid([FromBody] KendoRequest kr) //Get([FromUri] FilterContainer filter, int take, int skip, int page, int pageSize)
        {
            //if (kr.Filter != null && kr.Filter.Filters.FirstOrDefault(x => x.Field == "all") != null)
            //{
            //    var sp = _session.CreateSQLQuery("exec KupacLookup")
            //}
            Ponuda         ponuda         = null;
            Klijent        klijent        = null;
            PonudaStavka   ponudaStavka   = null;
            KlijentPregled klijentPregled = null;

            //var subEur = QueryOver.Of<Ponuda>()
            //              .Where(p => !p.Obrisan)
            //              .And(p => p.Klijent.Id == klijent.Id)
            //              .And(p => p.Valuta == "EUR")
            //              .JoinQueryOver(p => p.Stavke, () => ponudaStavka)
            //              .SelectList(ls => ls
            //                .SelectSum(() => ponudaStavka.Vrednost)
            //              );

            //var subRsd = QueryOver.Of<Ponuda>()
            //        .Where(p => !p.Obrisan)
            //        .And(p => p.Klijent.Id == klijent.Id)
            //        .And(p => p.Valuta == "RSD")
            //        .JoinQueryOver(p => p.Stavke, () => ponudaStavka)
            //        .SelectList(ls => ls
            //          .SelectSum(() => ponudaStavka.Vrednost)
            //        );

            var upit = _session.QueryOver <Klijent>(() => klijent)
                       .Where(x => !x.Obrisan);

            //.SelectList(list => list
            //  .Select(k => k.Id).WithAlias(() => klijentPregled.Id)
            //  .Select(k => k.Naziv).WithAlias(() => klijentPregled.Naziv)
            //  .Select(k => k.Drzava).WithAlias(() => klijentPregled.Drzava)
            //  .Select(k => k.Mesto).WithAlias(() => klijentPregled.Mesto)
            //  .Select(k => k.Adresa).WithAlias(() => klijentPregled.Adresa)
            //  .Select(k => k.Pib).WithAlias(() => klijentPregled.Pib)
            //  .Select(k => k.Komentar).WithAlias(() => klijentPregled.Komentar)
            //  .SelectSubQuery(
            //    QueryOver.Of<Ponuda>()
            //      .Where(p => !p.Obrisan)
            //      .And(p => p.Klijent.Id == klijent.Id)
            //      .And(p => p.Valuta == "RSD")
            //      .JoinQueryOver(p => p.Stavke, () => ponudaStavka)
            //      .SelectList(ls => ls
            //        .SelectSum(() => ponudaStavka.Vrednost)
            //      )
            //  ).WithAlias(() => klijentPregled.VrednostRsd)
            //  .SelectSubQuery(
            //    QueryOver.Of<Ponuda>()
            //      .Where(p => !p.Obrisan)
            //      .And(p => p.Klijent.Id == klijent.Id)
            //      .And(p => p.Valuta == "EUR")
            //      .JoinQueryOver(p => p.Stavke, () => ponudaStavka)
            //      .SelectList(ls => ls
            //        .SelectSum(() => ponudaStavka.Vrednost)
            //      )
            //  ).WithAlias(() => klijentPregled.VrednostEur)
            //);



            upit.Select(Projections.ProjectionList()
                        .Add(Projections.Property(() => klijent.Id), "Id")
                        .Add(Projections.Property(() => klijent.Naziv), "Naziv")
                        .Add(Projections.Property(() => klijent.Drzava), "Drzava")
                        .Add(Projections.Property(() => klijent.Adresa), "Adresa")
                        .Add(Projections.Property(() => klijent.Mesto), "Mesto")
                        .Add(Projections.Property(() => klijent.Pib), "Pib")
                        .Add(Projections.Property(() => klijent.Komentar), "Komentar")
                        .Add(Projections.Property(() => klijent.Ugovoreno), "Ugovoreno")
                        .Add(Projections.Property(() => klijent.Fakturisano), "Fakturisano")
                        .Add(Projections.Property(() => klijent.Uplaceno), "Uplaceno"));
            //.Add(Projections.SubQuery(subRsd), "vrednostRsd")
            //.Add(Projections.SubQuery(subEur), "vrednostEur"));

            var rowcount = upit.ToRowCountQuery();



            TextInfo textInfo = CultureInfo.InvariantCulture.TextInfo;

            if (kr.Filter != null && kr.Filter.Filters.Any())
            {
                foreach (FilterDescription filter in kr.Filter.Filters)
                {
                    string prop = filter.Field.FirstCharToUpper(); //textInfo.ToTitleCase(filter.Field);
                    upit.Where(Restrictions.InsensitiveLike(prop, filter.Value, MatchMode.Anywhere));
                    rowcount.Where(Restrictions.InsensitiveLike(prop, filter.Value, MatchMode.Anywhere));
                }
            }

            if (kr.PageSize != 0)
            {
                upit.Skip(kr.Skip);
                upit.Take(kr.Take);
            }



            if (kr.Sort.Any())
            {
                foreach (Sort sort in kr.Sort)
                {
                    string prop = sort.Field.FirstCharToUpper(); //textInfo.ToTitleCase(sort.Field);
                    {
                        upit.UnderlyingCriteria.AddOrder(new Order(prop, sort.Dir.ToLower() == "asc"));
                        //if (sort.Field.Contains("vrednostEur"))
                        //  upit.UnderlyingCriteria.AddOrder(new Order(Projections.SubQuery(subEur), sort.Dir.ToLower() == "asc"));
                        //else if (sort.Field.Contains("vrednostRsd"))
                        //  upit.UnderlyingCriteria.AddOrder(new Order(Projections.SubQuery(subEur), sort.Dir.ToLower() == "asc"));
                        //else
                        //  upit.UnderlyingCriteria.AddOrder(new Order(prop, sort.Dir.ToLower() == "asc"));
                    }
                }
            }


            upit.TransformUsing(Transformers.AliasToBean <KlijentPregled>());
            upit.Future <KlijentPregled>();


            //rowcount.Select(Projections.Count(Projections.Id()));

            var redova = rowcount.FutureValue <int>().Value;

            var lista = upit.List <KlijentPregled>();
            var res   = new KendoResult <KlijentPregled>
            {
                Data  = lista,
                Total = redova
            };

            return(res);
        }