public OOB.ResultadoEntidad <OOB.LibInventario.Kardex.Movimiento.Resumen.Ficha> Producto_Kardex_Movimiento_Lista_Resumen(OOB.LibInventario.Kardex.Movimiento.Resumen.Filtro filtro)
        {
            var rt = new OOB.ResultadoEntidad <OOB.LibInventario.Kardex.Movimiento.Resumen.Ficha>();

            var filtroDTO = new DtoLibInventario.Kardex.Movimiento.Resumen.Filtro()
            {
                autoProducto = filtro.autoProducto,
                ultDias      = (DtoLibInventario.Kardex.Enumerados.EnumMovUltDias)filtro.ultDias,
            };
            var r01 = MyData.Producto_Kardex_Movimiento_Lista_Resumen(filtroDTO);

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

            var s  = r01.Entidad;
            var nr = new OOB.LibInventario.Kardex.Movimiento.Resumen.Ficha()
            {
                codigoProducto     = s.codigoProducto,
                contenidoEmp       = s.contenidoEmp,
                empaqueCompra      = s.empaqueCompra,
                decimales          = s.decimales,
                existenciaActual   = s.existenciaActual,
                existenciaFecha    = s.existencaFecha,
                fecha              = s.fecha,
                nombreProducto     = s.nombreProducto,
                referenciaProducto = s.referenciaProducto,
            };
            var lst = s.Data.Select(ss =>
            {
                var reg = new OOB.LibInventario.Kardex.Movimiento.Resumen.Data()
                {
                    autoConcepto   = ss.autoConcepto,
                    autoDeposito   = ss.autoDeposito,
                    cntInventario  = ss.cntInventario,
                    cntMovimiento  = ss.cntMovimiento,
                    codigoConcepto = ss.codigoConcepto,
                    codigoDeposito = ss.codigoDeposito,
                    modulo         = ss.modulo,
                    nombreConcepto = ss.nombreConcepto,
                    nombreDeposito = ss.nombreDeposito,
                    siglas         = ss.siglas,
                };
                return(reg);
            }).ToList();

            nr.Data    = lst;
            rt.Entidad = nr;
            return(rt);
        }
 public DtoLib.ResultadoEntidad <DtoLibInventario.Kardex.Movimiento.Resumen.Ficha> Producto_Kardex_Movimiento_Lista_Resumen(DtoLibInventario.Kardex.Movimiento.Resumen.Filtro filtro)
 {
     return(ServiceProv.Producto_Kardex_Movimiento_Lista_Resumen(filtro));
 }
Esempio n. 3
0
        public DtoLib.ResultadoEntidad <DtoLibInventario.Kardex.Movimiento.Resumen.Ficha> Producto_Kardex_Movimiento_Lista_Resumen(DtoLibInventario.Kardex.Movimiento.Resumen.Filtro filtro)
        {
            var result = new DtoLib.ResultadoEntidad <DtoLibInventario.Kardex.Movimiento.Resumen.Ficha>();

            try
            {
                using (var cnn = new invEntities(_cnInv.ConnectionString))
                {
                    var cmd = "SELECT count(*) as cntMovimiento, modulo, auto_deposito as autoDeposito, auto_concepto as autoConcepto, " +
                              "SUM(cantidad_und*signo) as cntInventario, nombre_deposito as nombreDeposito, codigo_deposito as codigoDeposito, " +
                              "codigo_concepto as codigoConcepto, nombre_concepto as nombreConcepto, siglas " +
                              "FROM `productos_kardex` as kardex " +
                              "WHERE auto_producto=@autoPrd and estatus_anulado='0' and fecha>@desde " +
                              "group by modulo,auto_deposito,auto_concepto,codigo_deposito,nombre_deposito,codigo_concepto,nombre_concepto,siglas";

                    var      fechaServidor = cnn.Database.SqlQuery <DateTime>("select now()").FirstOrDefault();
                    DateTime?desde         = fechaServidor.Date;
                    if (filtro.ultDias != DtoLibInventario.Kardex.Enumerados.EnumMovUltDias.SinDefinir)
                    {
                        switch (filtro.ultDias)
                        {
                        case DtoLibInventario.Kardex.Enumerados.EnumMovUltDias.Hoy:
                            desde = desde.Value.AddDays(-1);
                            break;

                        case DtoLibInventario.Kardex.Enumerados.EnumMovUltDias.Ayer:
                            desde = desde.Value.AddDays(-2);
                            break;

                        case DtoLibInventario.Kardex.Enumerados.EnumMovUltDias._7Dias:
                            desde = desde.Value.AddDays(-7);
                            break;

                        case DtoLibInventario.Kardex.Enumerados.EnumMovUltDias._15Dias:
                            desde = desde.Value.AddDays(-15);
                            break;

                        case DtoLibInventario.Kardex.Enumerados.EnumMovUltDias._30Dias:
                            desde = desde.Value.AddDays(-30);
                            break;

                        case DtoLibInventario.Kardex.Enumerados.EnumMovUltDias._45Dias:
                            desde = desde.Value.AddDays(-45);
                            break;

                        case DtoLibInventario.Kardex.Enumerados.EnumMovUltDias._60Dias:
                            desde = desde.Value.AddDays(-60);
                            break;

                        case DtoLibInventario.Kardex.Enumerados.EnumMovUltDias._90Dias:
                            desde = desde.Value.AddDays(-90);
                            break;

                        case DtoLibInventario.Kardex.Enumerados.EnumMovUltDias._120Dias:
                            desde = desde.Value.AddDays(-120);
                            break;

                        case DtoLibInventario.Kardex.Enumerados.EnumMovUltDias.Todo:
                            desde = desde.Value.AddDays(-365);
                            break;
                        }
                    }

                    var entPrd = cnn.productos.Find(filtro.autoProducto);
                    if (entPrd == null)
                    {
                        result.Mensaje = "[ ID ] PRODUCTO NO ENCOTRADO";
                        result.Result  = DtoLib.Enumerados.EnumResult.isError;
                        return(result);
                    }

                    var _empaqueCompra = "";
                    var _existencia    = 0.0m;
                    var entPrdEx       = cnn.productos_deposito.Where(w => w.auto_producto == filtro.autoProducto).ToList();
                    var entPrdEmp      = cnn.productos_medida.Find(entPrd.auto_empaque_compra);
                    if (entPrdEx.Count > 0)
                    {
                        _existencia = entPrdEx.Sum(s => s.fisica);
                    }
                    if (entPrdEmp != null)
                    {
                        _empaqueCompra = entPrdEmp.nombre;
                    }

                    var p1  = new MySql.Data.MySqlClient.MySqlParameter("@autoPrd", filtro.autoProducto);
                    var p2  = new MySql.Data.MySqlClient.MySqlParameter("@desde", desde);
                    var lst = cnn.Database.SqlQuery <DtoLibInventario.Kardex.Movimiento.Resumen.Data>(cmd, p1, p2).ToList();

                    var ex = 0.0m;
                    cmd = "select sum(cantidad_und*signo) as cnt from productos_kardex where auto_producto=@autoPrd " +
                          "and estatus_anulado='0' and fecha<=@desde";
                    var objEx = cnn.Database.SqlQuery <decimal?>(cmd, p1, p2).FirstOrDefault();
                    if (objEx != null)
                    {
                        ex = objEx.Value;
                    }

                    var rt = new DtoLibInventario.Kardex.Movimiento.Resumen.Ficha()
                    {
                        codigoProducto     = entPrd.codigo,
                        contenidoEmp       = entPrd.contenido_compras,
                        empaqueCompra      = _empaqueCompra,
                        decimales          = entPrdEmp.decimales,
                        existenciaActual   = _existencia,
                        existencaFecha     = ex,
                        fecha              = desde.Value.ToShortDateString(),
                        nombreProducto     = entPrd.nombre,
                        referenciaProducto = entPrd.referencia,

                        Data = lst,
                    };
                    result.Entidad = rt;
                }
            }
            catch (Exception e)
            {
                result.Mensaje = e.Message;
                result.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(result);
        }