public OOB.ResultadoLista <OOB.LibInventario.Analisis.Detallado.Ficha> Producto_Analisis_Detallado(OOB.LibInventario.Analisis.Detallado.Filtro filtro)
        {
            var rt = new OOB.ResultadoLista <OOB.LibInventario.Analisis.Detallado.Ficha>();

            var filtroDto = new DtoLibInventario.Analisis.Detallado.Filtro()
            {
                modulo       = (DtoLibInventario.Analisis.Enumerados.EnumModulo)filtro.modulo,
                autoDeposito = filtro.autoDeposito,
                autoConcepto = filtro.autoConcepto,
                autoProducto = filtro.autoProducto,
                ultimosXDias = filtro.ultimosXDias,
            };
            var r01 = MyData.Producto_Analisis_Detallado(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.Analisis.Detallado.Ficha>();

            if (r01.Lista != null)
            {
                if (r01.Lista.Count > 0)
                {
                    list = r01.Lista.Select(s =>
                    {
                        return(new OOB.LibInventario.Analisis.Detallado.Ficha()
                        {
                            autoPrd = s.autoPrd,
                            cntUnd = s.cntUnd,
                            cntDoc = s.cntDoc,
                            nombrePrd = s.nombrePrd,
                            codigoPrd = s.codigoPrd,
                            decimales = s.decimales,
                            fecha = s.fecha,
                        });
                    }).ToList();
                }
            }
            rt.Lista = list;

            return(rt);
        }
Exemplo n.º 2
0
 public DtoLib.ResultadoLista <DtoLibInventario.Analisis.Detallado.Ficha> Producto_Analisis_Detallado(DtoLibInventario.Analisis.Detallado.Filtro filtro)
 {
     return(ServiceProv.Producto_Analisis_Detallado(filtro));
 }
        public DtoLib.ResultadoLista <DtoLibInventario.Analisis.Detallado.Ficha> Producto_Analisis_Detallado(DtoLibInventario.Analisis.Detallado.Filtro filtro)
        {
            var rt = new DtoLib.ResultadoLista <DtoLibInventario.Analisis.Detallado.Ficha>();

            try
            {
                using (var cnn = new invEntities(_cnInv.ConnectionString))
                {
                    var      fechaServidor = cnn.Database.SqlQuery <DateTime>("select now()").FirstOrDefault();
                    DateTime?desde         = fechaServidor.Date;

                    var sql_1 = "SELECT abs(sum(pk.cantidad_und*pk.signo)) as cntUnd, p.auto as autoPrd, " +
                                "p.nombre as nombrePrd, p.codigo as codigoPrd, pm.decimales as decimales, " +
                                "count(*) as cntDoc, pk.fecha as fecha ";
                    var sql_2 = " FROM productos_kardex as pk " +
                                "join productos as p on pk.auto_producto=p.auto " +
                                "join productos_medida as pm on p.auto_empaque_compra=pm.auto ";
                    var sql_3 = " where 1=1 and pk.estatus_anulado='0' ";
                    var sql_4 = " group by pk.auto_producto, pk.fecha ";

                    var p1 = new MySql.Data.MySqlClient.MySqlParameter();
                    var p2 = new MySql.Data.MySqlClient.MySqlParameter();
                    var p3 = new MySql.Data.MySqlClient.MySqlParameter();
                    var p4 = new MySql.Data.MySqlClient.MySqlParameter();
                    var p5 = new MySql.Data.MySqlClient.MySqlParameter();

                    if (filtro.ultimosXDias != 0)
                    {
                        sql_3           += " and pk.fecha>=@p1 ";
                        p1.ParameterName = "@p1";
                        p1.Value         = desde.Value.AddDays(filtro.ultimosXDias * -1);
                    }

                    if (filtro.modulo != DtoLibInventario.Analisis.Enumerados.EnumModulo.SnDefinir)
                    {
                        var modulo = "";
                        switch (filtro.modulo)
                        {
                        case DtoLibInventario.Analisis.Enumerados.EnumModulo.Compras:
                            break;

                        case DtoLibInventario.Analisis.Enumerados.EnumModulo.Ventas:
                            modulo = "Ventas";
                            sql_3 += " and pk.modulo=@p3 ";
                            break;

                        case DtoLibInventario.Analisis.Enumerados.EnumModulo.Inventario:
                            break;
                        }
                        p3.ParameterName = "@p3";
                        p3.Value         = modulo;
                    }
                    if (filtro.autoDeposito != "")
                    {
                        sql_3           += "and pk.auto_deposito=@p4 ";
                        p4.ParameterName = "@p4";
                        p4.Value         = filtro.autoDeposito;
                    }
                    if (filtro.autoProducto != "")
                    {
                        sql_3           += "and pk.auto_producto=@p5 ";
                        p5.ParameterName = "@p5";
                        p5.Value         = filtro.autoProducto;
                    }

                    var sql  = sql_1 + sql_2 + sql_3 + sql_4;
                    var list = cnn.Database.SqlQuery <DtoLibInventario.Analisis.Detallado.Ficha>(sql, p1, p2, p3, p4, p5).ToList();
                    rt.Lista = list;
                }
            }
            catch (Exception e)
            {
                rt.Mensaje = e.Message;
                rt.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(rt);
        }