예제 #1
0
        public JsonResult getGridStockControl(string sEcho, int iDisplayStart, int iDisplayLength)
        {
            var msgTotalTransactions = new Dominio.Mensagens.Filtro.Stock();

            msgTotalTransactions.iDisplayStart  = iDisplayStart;
            msgTotalTransactions.iDisplayLength = iDisplayLength;
            //msgTotalTransactions.Report_Type = Convert.ToInt32(Request["cmbReport_Type"]);
            //msgTotalTransactions.dtInicio = Convert.ToString(Request["txtDtInicio"]);
            //msgTotalTransactions.dtFim = Convert.ToString(Request["txtDtFim"]);
            //msgTotalTransactions.txtNome = Convert.ToString(Request["txtNome"]);

            var displayedCompanies = Fachada.Repositorio.STOCK.GetAllStockControlByFilter(msgTotalTransactions);

            var result = (from c in displayedCompanies.Instances
                          select new[] {
                UtilsLibrary.GetListEnum(typeof(TabProduct_Type)).Where(w => w.StringValue == c.Description.ToString()).Select(s => s.StringDescription).FirstOrDefault(),
                c.Amount.ToString()
            }).Take(iDisplayLength);

            return(Json(new
            {
                sEcho = sEcho,                                  // Variável Padraão do plugin
                iTotalRecords = 50,                             // Deve realizar outra pesquisa no Banco de Daods sem Filtro de pesquisa e mostar a quantidade de registros no Banco nessa variável "iTotalRecords" no exemplo esta 1000 fixo mas deve ser a qtde total de registro que existe na tabela
                iTotalDisplayRecords = displayedCompanies.Code, //Total de Registro com filtro  Aplicado
                aaData = result                                 // Lista que será exibida do grid
            }, JsonRequestBehavior.AllowGet));
        }
예제 #2
0
        public JsonResult getGridStock(string sEcho, int iDisplayStart, int iDisplayLength, string sSortDir_0, int iSortCol_0)
        {
            var msgTotalTransactions = new Dominio.Mensagens.Filtro.Stock();

            msgTotalTransactions.iDisplayStart  = iDisplayStart;
            msgTotalTransactions.iDisplayLength = iDisplayLength;
            msgTotalTransactions.sSortDir_0     = "desc";// sSortDir_0;
            msgTotalTransactions.iSortCol_0     = iSortCol_0;
            //msgTotalTransactions.Report_Type = Convert.ToInt32(Request["cmbReport_Type"]);
            //msgTotalTransactions.dtInicio = Convert.ToString(Request["txtDtInicio"]);
            //msgTotalTransactions.dtFim = Convert.ToString(Request["txtDtFim"]);
            //msgTotalTransactions.txtNome = Convert.ToString(Request["txtNome"]);

            var displayedCompanies = Fachada.Repositorio.STOCK.GetAllStockByFilter(msgTotalTransactions);

            var result = (from c in displayedCompanies.Instances
                          select new[] {
                c.ID.ToString(),
                c.DT_Reg.ToString("dd/MM/yyyy HH:MM"),
                c.LogLogin,
                c.Action_Type,
                c.Description,
                c.Amount.ToString()
            }).Take(iDisplayLength);

            return(Json(new
            {
                sEcho = sEcho,                                  // Variável Padraão do plugin
                iTotalRecords = 50,                             // Deve realizar outra pesquisa no Banco de Daods sem Filtro de pesquisa e mostar a quantidade de registros no Banco nessa variável "iTotalRecords" no exemplo esta 1000 fixo mas deve ser a qtde total de registro que existe na tabela
                iTotalDisplayRecords = displayedCompanies.Code, //Total de Registro com filtro  Aplicado
                aaData = result                                 // Lista que será exibida do grid
            }, JsonRequestBehavior.AllowGet));
        }
예제 #3
0
        MessageCollection <GridStock> ISTOCK.GetAllStockControlByFilter(Dominio.Mensagens.Filtro.Stock filtroPesquisa)
        {
            var msg = new MessageCollection <Dominio.Mensagens.GridStock>();

            try
            {
                using (var context = new HostelEntities())
                {
                    var insert = (from s in context.Stocks
                                  join at in context.Action_Type on s.ID_ACTION_TYPE equals at.ID
                                  join pt in context.Product_Type on s.ID_PRODUCT_TYPE equals pt.ID
                                  where s.ID_ACTION_TYPE == 1
                                  orderby s.ID_PRODUCT_TYPE
                                  group s by new { s.ID, s.ID_PRODUCT_TYPE, s.AMOUNT } into g
                                  select new
                    {
                        ID_STOCK = g.Key.ID,
                        ID_PRODUCT_TYPE = g.Key.ID_PRODUCT_TYPE,
                        Amount = g.Sum(s => s.AMOUNT)
                    }).ToList();

                    var sold = (from s in context.Stocks
                                join at in context.Action_Type on s.ID_ACTION_TYPE equals at.ID
                                join pt in context.Product_Type on s.ID_PRODUCT_TYPE equals pt.ID
                                where s.ID_ACTION_TYPE == 2
                                orderby s.ID_PRODUCT_TYPE
                                group s by new { s.ID, s.ID_PRODUCT_TYPE, s.AMOUNT } into g
                                select new
                    {
                        ID_STOCK = g.Key.ID,
                        ID_PRODUCT_TYPE = g.Key.ID_PRODUCT_TYPE,
                        Amount = g.Sum(s => s.AMOUNT)
                    }).ToList();


                    var query = new List <Dominio.Mensagens.GridStock>();
                    foreach (var item in insert)
                    {
                        var msgGridStock = new Dominio.Mensagens.GridStock();
                        msgGridStock.Description = item.ID_PRODUCT_TYPE.ToString();
                        msgGridStock.Amount      = item.Amount - sold.Where(w => w.ID_PRODUCT_TYPE == item.ID_PRODUCT_TYPE).Sum(s => s.Amount);
                        query.Add(msgGridStock);
                    }

                    //Filtros de Pesquisa
                    //if (!string.IsNullOrEmpty(filtroPesquisa.user))
                    //    query = query.Where(q => q.LogLogin.Trim().ToUpper().Contains(filtroPesquisa.user.Trim().ToUpper()));
                    msg.Instances = query.Skip(filtroPesquisa.iDisplayStart).Take(filtroPesquisa.iDisplayLength).ToList();
                    msg.Code      = query.Count();
                }
            }
            catch (Exception ex)
            {
                msg.Exception = ex;
            }
            return(msg);
        }
예제 #4
0
        MessageCollection <GridStock> ISTOCK.GetAllStockByFilter(Dominio.Mensagens.Filtro.Stock filtroPesquisa)
        {
            var msg = new MessageCollection <Dominio.Mensagens.GridStock>();

            try
            {
                using (var context = new HostelEntities())
                {
                    ////Não pode ser feito o .ToList nesse momento, a query SQL esta esta sendo montada de acordo com os filtros
                    var query = (from s in context.Stocks
                                 join at in context.Action_Type on s.ID_ACTION_TYPE equals at.ID
                                 join pt in context.Product_Type on s.ID_PRODUCT_TYPE equals pt.ID
                                 select new Dominio.Mensagens.GridStock()
                    {
                        ID = s.ID,
                        DT_Reg = s.DT_Entrada,
                        Action_Type = at.DESCRIPTION,
                        Description = pt.Description,
                        LogLogin = s.LOGLOGIN,
                        Amount = s.AMOUNT
                    });

                    //Filtros de Pesquisa
                    //if (!string.IsNullOrEmpty(filtroPesquisa.user))
                    //    query = query.Where(q => q.LogLogin.Trim().ToUpper().Contains(filtroPesquisa.user.Trim().ToUpper()));

                    //if (filtroPesquisa.ID_Calc_Type > 0)
                    //    query = query.Where(q => q.ID_Calc_Type == filtroPesquisa.ID_Calc_Type);

                    if (!string.IsNullOrEmpty(filtroPesquisa.dtInicio))
                    {
                        DateTime dtFim = DateTime.UtcNow;
                        if (!string.IsNullOrEmpty(filtroPesquisa.dtFim))
                        {
                            dtFim = Convert.ToDateTime(filtroPesquisa.dtFim);
                        }

                        DateTime dtInicio = Convert.ToDateTime(filtroPesquisa.dtInicio);

                        query = query.Where(q => q.DT_Reg >= dtInicio && q.DT_Reg <= dtFim);
                    }

                    //ordenação
                    if (filtroPesquisa.sSortDir_0 == "asc")
                    {
                        if (filtroPesquisa.iSortCol_0 == 1)
                        {
                            query = query.OrderBy(q => q.DT_Reg);
                        }
                        else if (filtroPesquisa.iSortCol_0 == 2)
                        {
                            query = query.OrderBy(q => q.LogLogin);
                        }
                        else if (filtroPesquisa.iSortCol_0 == 3)
                        {
                            query = query.OrderBy(q => q.Action_Type);
                        }
                        else if (filtroPesquisa.iSortCol_0 == 4)
                        {
                            query = query.OrderBy(q => q.Description);
                        }
                        else if (filtroPesquisa.iSortCol_0 == 5)
                        {
                            query = query.OrderBy(q => q.Amount);
                        }
                        else
                        {
                            query = query.OrderBy(q => q.DT_Reg);
                        }
                    }
                    else if (filtroPesquisa.sSortDir_0 == "desc")
                    {
                        if (filtroPesquisa.iSortCol_0 == 1)
                        {
                            query = query.OrderByDescending(q => q.DT_Reg);
                        }
                        else if (filtroPesquisa.iSortCol_0 == 2)
                        {
                            query = query.OrderByDescending(q => q.LogLogin);
                        }
                        else if (filtroPesquisa.iSortCol_0 == 3)
                        {
                            query = query.OrderByDescending(q => q.Action_Type);
                        }
                        else if (filtroPesquisa.iSortCol_0 == 4)
                        {
                            query = query.OrderByDescending(q => q.Description);
                        }
                        else if (filtroPesquisa.iSortCol_0 == 5)
                        {
                            query = query.OrderByDescending(q => q.Amount);
                        }
                        else
                        {
                            query = query.OrderByDescending(q => q.DT_Reg);
                        }
                    }
                    else
                    {
                        query = query.OrderByDescending(q => q.DT_Reg);
                    }

                    query = query.Take(100);

                    ////Extract only current page
                    msg.Instances = query.Skip(filtroPesquisa.iDisplayStart).Take(filtroPesquisa.iDisplayLength).ToList();

                    ////Campo improvisado para gerar o total de paginacao

                    msg.Code = query.Count();//Total de registro com filtros aplicados
                    //Total de registro no banco sem filtro aplicado Deve ser feito uma pesquisa direto na Tabela outra Query Deverrá ser informado em outro campo no grid CONtroller eu coloquei fixo 110 pra teste
                }
            }
            catch (Exception ex)
            {
                msg.Exception = ex;
            }
            return(msg);
        }