public OOB.ResultadoLista <OOB.LibInventario.Visor.Existencia.Ficha> Visor_Existencia(OOB.LibInventario.Visor.Existencia.Filtro filtro)
        {
            var rt = new OOB.ResultadoLista <OOB.LibInventario.Visor.Existencia.Ficha>();

            var filtroDto = new DtoLibInventario.Visor.Existencia.Filtro();

            filtroDto.autoDepartamento = filtro.autoDepartamento;
            filtroDto.autoDeposito     = filtro.autoDeposito;
            filtroDto.filtrarPor       = (DtoLibInventario.Visor.Existencia.Enumerados.enumFiltrarPor)filtro.filtrarPor;

            var r01 = MyData.Visor_Existencia(filtroDto);

            if (r01.Result == DtoLib.Enumerados.EnumResult.isError)
            {
                rt.Mensaje = r01.Mensaje;
                rt.Result  = OOB.Enumerados.EnumResult.isError;
                return(rt);
            }

            var list = new List <OOB.LibInventario.Visor.Existencia.Ficha>();

            if (r01.Lista != null)
            {
                if (r01.Lista.Count > 0)
                {
                    list = r01.Lista.Select(s =>
                    {
                        var estatus = "Activo";
                        if (s.estatusActivo == "1")
                        {
                            estatus = "Inactivo";
                        }
                        else
                        if (s.estatusSuspendido == "1")
                        {
                            estatus = "Suspendido";
                        }

                        return(new OOB.LibInventario.Visor.Existencia.Ficha()
                        {
                            autoDepart = s.autoDepart,
                            autoDeposito = s.autoDeposito,
                            autoPrd = s.autoPrd,
                            cntFisica = s.cntFisica,
                            codigoDepart = s.codigoDepart,
                            codigoDeposito = s.codigoDeposito,
                            codigoPrd = s.codigoPrd,
                            decimales = s.decimales,
                            nivelMinimo = s.nivelMinimo,
                            nivelOptimo = s.nivelOptimo,
                            nombreDepart = s.nombreDepart,
                            nombreDeposito = s.nombreDeposito,
                            nombrePrd = s.nombrePrd,
                            esPesado = s.esPesado,
                            estatus = estatus,
                        });
                    }).ToList();
                }
            }
            rt.Lista = list;

            return(rt);
        }
 public DtoLib.ResultadoLista <DtoLibInventario.Visor.Existencia.Ficha> Visor_Existencia(DtoLibInventario.Visor.Existencia.Filtro filtro)
 {
     return(ServiceProv.Visor_Existencia(filtro));
 }
        public DtoLib.ResultadoLista <DtoLibInventario.Visor.Existencia.Ficha> Visor_Existencia(DtoLibInventario.Visor.Existencia.Filtro filtro)
        {
            var rt = new DtoLib.ResultadoLista <DtoLibInventario.Visor.Existencia.Ficha>();

            try
            {
                using (var cnn = new invEntities(_cnInv.ConnectionString))
                {
                    var sql = "SELECT p.nombre as nombrePrd, p.codigo as codigoPrd, p.auto as autoPrd, " +
                              "case when p.estatus='Activo' then '0' else '1' end as estatusActivo, " +
                              "p.estatus_cambio as estatusSuspendido, " +
                              "pdep.fisica as cntFisica, pdep.nivel_minimo as nivelMinimo, pdep.nivel_optimo as nivelOptimo, " +
                              "case when p.estatus_pesado='0' then 'N' when p.estatus_pesado='1' then 'S' end as esPesado, " +
                              "edep.auto as autoDeposito, edep.nombre as nombreDeposito, edep.codigo as codigoDeposito, " +
                              "edepart.auto as autoDepart, edepart.codigo as codigoDepart, edepart.nombre as nombreDepart, " +
                              "pmed.decimales " +
                              "FROM `productos_deposito` as pdep " +
                              "join empresa_depositos as edep on pdep.auto_deposito=edep.auto " +
                              "join productos as p on pdep.auto_producto=p.auto " +
                              "join empresa_departamentos as edepart on p.auto_departamento=edepart.auto " +
                              "join productos_medida as pmed on p.auto_empaque_compra=pmed.auto " +
                              "WHERE 1 = 1 ";

                    var p1 = new MySql.Data.MySqlClient.MySqlParameter();
                    var p2 = new MySql.Data.MySqlClient.MySqlParameter();
                    if (filtro.autoDeposito != "")
                    {
                        sql += " and pdep.auto_deposito=@autoDeposito ";
                        p1.ParameterName = "@autoDeposito";
                        p1.Value         = filtro.autoDeposito;
                    }
                    if (filtro.autoDepartamento != "")
                    {
                        sql += " and p.auto_departamento=@autoDepartamento ";
                        p2.ParameterName = "@autoDepartamento";
                        p2.Value         = filtro.autoDepartamento;
                    }
                    if (filtro.filtrarPor != DtoLibInventario.Visor.Existencia.Enumerados.enumFiltrarPor.SinDefinir)
                    {
                        switch (filtro.filtrarPor)
                        {
                        case DtoLibInventario.Visor.Existencia.Enumerados.enumFiltrarPor.ExistenciaMayorCero:
                            sql += " and (pdep.fisica>0) ";
                            break;

                        case DtoLibInventario.Visor.Existencia.Enumerados.enumFiltrarPor.ExistenciaIgualCero:
                            sql += " and (pdep.fisica=0) ";
                            break;

                        case DtoLibInventario.Visor.Existencia.Enumerados.enumFiltrarPor.ExistenciaMenorCero:
                            sql += " and (pdep.fisica<0) ";
                            break;

                        case DtoLibInventario.Visor.Existencia.Enumerados.enumFiltrarPor.ExistenciaPorDebajoNivelMinimo:
                            sql += " and (nivel_minimo>fisica AND nivel_minimo>0) ";
                            break;
                        }
                    }

                    var lst = cnn.Database.SqlQuery <DtoLibInventario.Visor.Existencia.Ficha>(sql, p1, p2).ToList();
                    rt.Lista = lst;
                }
            }
            catch (Exception e)
            {
                rt.Mensaje = e.Message;
                rt.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(rt);
        }