Ejemplo n.º 1
0
        public IHttpActionResult GetListaEstoqueHistorico(
            [FromUri] MaterialCentroDropDownDTO dto,
            [FromUri] TipoDaInfo tipoC,
            [FromUri] bool ctLogis,
            [FromUri] bool adm)

        {
            LimpaResultado(dto, tipoC, adm);


            var    _EstHIstFiltrado = Filtro.EstHist(_listaEstoqueHistorico.ToList());
            string TipoDaInforamcao = null;
            var    tipoConsulta     = (int)tipoC;

            try
            {
                switch (tipoConsulta)
                {
                case 1:
                {
                    TipoDaInforamcao = "Consumo por Valor";
                    break;
                }

                case 2:
                {
                    TipoDaInforamcao = "Estoque por Quantidade";
                    break;
                }

                case 3:
                {
                    TipoDaInforamcao = "Estoque por Valor";
                    break;
                }

                case 4:
                {
                    TipoDaInforamcao = "Entrada por Quantidade";
                    break;
                }

                case 5:
                {
                    TipoDaInforamcao = "Entrada por Valor";
                    break;
                }

                case 6:

                {
                    var Resumo = (from x in _EstHIstFiltrado

                                  group x by x.DataLanc into g
                                  select new
                        {
                            data = g.Key,
                            tipoDaInforamcao = "Estoque",

                            m1 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 3).Sum(c => c.M1),
                            m2 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 3).Sum(c => c.M2),
                            m3 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 3).Sum(c => c.M3),
                            m4 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 3).Sum(c => c.M4),
                            m5 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 3).Sum(c => c.M5),
                            m6 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 3).Sum(c => c.M6),
                            m7 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 3).Sum(c => c.M7),
                            m8 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 3).Sum(c => c.M8),
                            m9 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 3).Sum(c => c.M9),
                            m10 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 3).Sum(c => c.M10),
                            m11 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 3).Sum(c => c.M11),
                            m12 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 3).Sum(c => c.M12),
                            acumulado = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 3).Sum(c => c.Media),
                        }).ToList().Union(
                        (from x in _EstHIstFiltrado

                         group x by x.DataLanc into g
                         select new
                        {
                            data = g.Key,
                            tipoDaInforamcao = "Entrada",

                            m1 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 5).Sum(c => c.M1),
                            m2 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 5).Sum(c => c.M2),
                            m3 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 5).Sum(c => c.M3),
                            m4 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 5).Sum(c => c.M4),
                            m5 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 5).Sum(c => c.M5),
                            m6 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 5).Sum(c => c.M6),
                            m7 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 5).Sum(c => c.M7),
                            m8 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 5).Sum(c => c.M8),
                            m9 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 5).Sum(c => c.M9),
                            m10 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 5).Sum(c => c.M10),
                            m11 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 5).Sum(c => c.M11),
                            m12 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 5).Sum(c => c.M12),
                            acumulado = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 5).Sum(c => c.Acumulado),
                        }).ToList()
                        ).Union(
                        (from x in _EstHIstFiltrado

                         group x by x.DataLanc into g
                         select new
                        {
                            data = g.Key,
                            tipoDaInforamcao = "Consumo",

                            m1 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 1).Sum(c => c.M1),
                            m2 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 1).Sum(c => c.M2),
                            m3 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 1).Sum(c => c.M3),
                            m4 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 1).Sum(c => c.M4),
                            m5 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 1).Sum(c => c.M5),
                            m6 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 1).Sum(c => c.M6),
                            m7 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 1).Sum(c => c.M7),
                            m8 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 1).Sum(c => c.M8),
                            m9 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 1).Sum(c => c.M9),
                            m10 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 1).Sum(c => c.M10),
                            m11 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 1).Sum(c => c.M11),
                            m12 = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 1).Sum(c => c.M12),
                            acumulado = g.Where(d => Convert.ToInt16(d.TipoDaInfo) == 1).Sum(c => c.Acumulado),
                        }).ToList()
                        );



                    return(Ok(Resumo));
                }

                default:
                {
                    TipoDaInforamcao = "Consumo por Quantidade";
                    break;
                }
                }
                if (ctLogis)
                {
                    if (tipoConsulta == 2 || tipoConsulta == 3)
                    {
                        var eHistConsumo = (from x in _EstHIstFiltrado
                                            group x by new
                        {
                            x.EmpresaNome,
                            x.CentroLogisticoCodSap,
                            x.MaterialCodSap,
                            x.MaterialDescricao,
                            x.MaterialUM,
                            x.MaterialClasse,
                            x.ClassificacaoNome,
                            x.FamiliaNome,
                            x.MGCodeCodigoSap,
                            x.MGCodeDescricao,
                            x.UserName,
                        }
                                            into g

                                            select new
                        {
                            empresaNome = g.Key.EmpresaNome,
                            centroLogisticoCodSap = g.Key.CentroLogisticoCodSap,
                            materialCodSap = g.Key.MaterialCodSap,
                            materialDescricao = g.Key.MaterialDescricao,
                            materialUM = g.Key.MaterialUM,
                            materialClasse = g.Key.MaterialClasse,
                            classificacaoNome = g.Key.ClassificacaoNome,
                            familiaNome = g.Key.FamiliaNome,
                            mGCodeCodigoSap = g.Key.MGCodeCodigoSap,
                            mGCodeDescricao = g.Key.MGCodeDescricao,
                            userName = g.Key.UserName,
                            tipoDaInforamcao = TipoDaInforamcao,
                            m1 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M1),
                            m2 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M2),
                            m3 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M3),
                            m4 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M4),
                            m5 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M5),
                            m6 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M6),
                            m7 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M7),
                            m8 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M8),
                            m9 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M9),
                            m10 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M10),
                            m11 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M11),
                            m12 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M12),
                            acumulado = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.Media),
                        }).ToList();

                        return(Ok(eHistConsumo));
                    }

                    var zHistConsumo = (from x in _EstHIstFiltrado
                                        group x by new
                    {
                        x.EmpresaNome,
                        x.CentroLogisticoCodSap,
                        x.MaterialCodSap,
                        x.MaterialDescricao,
                        x.MaterialUM,
                        x.MaterialClasse,
                        x.ClassificacaoNome,
                        x.FamiliaNome,
                        x.MGCodeCodigoSap,
                        x.MGCodeDescricao,
                        x.UserName,
                    }
                                        into g

                                        select new
                    {
                        empresaNome = g.Key.EmpresaNome,
                        centroLogisticoCodSap = g.Key.CentroLogisticoCodSap,
                        materialCodSap = g.Key.MaterialCodSap,
                        materialDescricao = g.Key.MaterialDescricao,
                        materialUM = g.Key.MaterialUM,
                        materialClasse = g.Key.MaterialClasse,
                        classificacaoNome = g.Key.ClassificacaoNome,
                        familiaNome = g.Key.FamiliaNome,
                        mGCodeCodigoSap = g.Key.MGCodeCodigoSap,
                        mGCodeDescricao = g.Key.MGCodeDescricao,
                        userName = g.Key.UserName,
                        tipoDaInforamcao = TipoDaInforamcao,
                        m1 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M1),
                        m2 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M2),
                        m3 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M3),
                        m4 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M4),
                        m5 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M5),
                        m6 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M6),
                        m7 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M7),
                        m8 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M8),
                        m9 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M9),
                        m10 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M10),
                        m11 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M11),
                        m12 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M12),
                        acumulado = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.Acumulado),
                    }).ToList();

                    return(Ok(zHistConsumo));
                }

                if (tipoConsulta == 2 || tipoConsulta == 3)
                {
                    var eHistConsumo = (from x in _EstHIstFiltrado
                                        group x by new
                    {
                        x.EmpresaNome,
                        x.MaterialCodSap,
                        x.MaterialDescricao,
                        x.MaterialUM,
                        x.MaterialClasse,
                        x.ClassificacaoNome,
                        x.FamiliaNome,
                        x.MGCodeCodigoSap,
                        x.MGCodeDescricao,
                        x.UserName,
                    }
                                        into g

                                        select new
                    {
                        empresaNome = g.Key.EmpresaNome,
                        materialCodSap = g.Key.MaterialCodSap,
                        materialDescricao = g.Key.MaterialDescricao,
                        materialUM = g.Key.MaterialUM,
                        materialClasse = g.Key.MaterialClasse,
                        classificacaoNome = g.Key.ClassificacaoNome,
                        familiaNome = g.Key.FamiliaNome,
                        mGCodeCodigoSap = g.Key.MGCodeCodigoSap,
                        mGCodeDescricao = g.Key.MGCodeDescricao,
                        userName = g.Key.UserName,
                        tipoDaInforamcao = TipoDaInforamcao,
                        m1 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M1),
                        m2 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M2),
                        m3 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M3),
                        m4 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M4),
                        m5 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M5),
                        m6 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M6),
                        m7 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M7),
                        m8 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M8),
                        m9 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M9),
                        m10 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M10),
                        m11 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M11),
                        m12 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M12),
                        acumulado = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.Media),
                    }).ToList();

                    return(Ok(eHistConsumo));
                }


                var HistConsumo = (from x in _EstHIstFiltrado
                                   group x by new
                {
                    x.EmpresaNome,
                    x.MaterialCodSap,
                    x.MaterialDescricao,
                    x.MaterialUM,
                    x.MaterialClasse,
                    x.ClassificacaoNome,
                    x.FamiliaNome,
                    x.MGCodeCodigoSap,
                    x.MGCodeDescricao,
                    x.UserName,
                }
                                   into g

                                   select new
                {
                    empresaNome = g.Key.EmpresaNome,
                    materialCodSap = g.Key.MaterialCodSap,
                    materialDescricao = g.Key.MaterialDescricao,
                    materialUM = g.Key.MaterialUM,
                    materialClasse = g.Key.MaterialClasse,
                    classificacaoNome = g.Key.ClassificacaoNome,
                    familiaNome = g.Key.FamiliaNome,
                    mGCodeCodigoSap = g.Key.MGCodeCodigoSap,
                    mGCodeDescricao = g.Key.MGCodeDescricao,
                    userName = g.Key.UserName,
                    tipoDaInforamcao = TipoDaInforamcao,
                    m1 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M1),
                    m2 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M2),
                    m3 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M3),
                    m4 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M4),
                    m5 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M5),
                    m6 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M6),
                    m7 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M7),
                    m8 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M8),
                    m9 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M9),
                    m10 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M10),
                    m11 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M11),
                    m12 = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.M12),
                    acumulado = g.Where(d => d.TipoDaInfo == tipoC).Sum(c => c.Acumulado),
                }).ToList();

                return(Ok(HistConsumo));
            }
            catch (Exception msg)
            {
                return(BadRequest(msg.Message));
            }
        }