public OOB.ResultadoEntidad <OOB.LibInventario.Visor.Ajuste.Ficha> Visor_Ajuste(OOB.LibInventario.Visor.Ajuste.Filtro filtro)
        {
            var rt = new OOB.ResultadoEntidad <OOB.LibInventario.Visor.Ajuste.Ficha>();

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

            filtroDto.ano = filtro.ano;
            filtroDto.mes = filtro.mes;

            var r01 = MyData.Visor_Ajuste(filtroDto);

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

            rt.Entidad = new OOB.LibInventario.Visor.Ajuste.Ficha();
            var list = new List <OOB.LibInventario.Visor.Ajuste.FichaDetalle>();

            rt.Entidad.montoVentaNeto = 0.0m;
            if (r01.Entidad != null)
            {
                var se = r01.Entidad;
                if (se.detalles != null)
                {
                    if (se.detalles.Count > 0)
                    {
                        list = se.detalles.Select(s =>
                        {
                            return(new OOB.LibInventario.Visor.Ajuste.FichaDetalle()
                            {
                                autoDepositoOrigen = s.autoDepositoOrigen,
                                autoPrd = s.autoPrd,
                                autoUsuario = s.autoUsuario,
                                cantidadUnd = s.cantidadUnd,
                                codigoDepositoOrigen = s.codigoDepositoOrigen,
                                codigoPrd = s.codigoPrd,
                                codigoUsuario = s.codigoUsuario,
                                costoUnd = s.costoUnd,
                                decimales = s.decimales,
                                documentoNro = s.documentoNro,
                                fecha = s.fecha,
                                hora = s.hora,
                                importe = s.importe,
                                nombreDepositoOrigen = s.nombreDepositoOrigen,
                                nombrePrd = s.nombrePrd,
                                nombreUsuario = s.nombreUsuario,
                                nota = s.nota,
                                signo = s.signo,
                            });
                        }).ToList();
                    }
                }
                rt.Entidad.montoVentaNeto = se.montoVentaNeto;
            }
            rt.Entidad.detalles = list;

            return(rt);
        }
 public DtoLib.ResultadoEntidad <DtoLibInventario.Visor.Ajuste.Ficha> Visor_Ajuste(DtoLibInventario.Visor.Ajuste.Filtro filtro)
 {
     return(ServiceProv.Visor_Ajuste(filtro));
 }
        public DtoLib.ResultadoEntidad <DtoLibInventario.Visor.Ajuste.Ficha> Visor_Ajuste(DtoLibInventario.Visor.Ajuste.Filtro filtro)
        {
            var rt = new DtoLib.ResultadoEntidad <DtoLibInventario.Visor.Ajuste.Ficha>();

            try
            {
                var list            = new List <DtoLibInventario.Visor.Ajuste.FichaDetalle>();
                var totalVentasNeta = 0.0m;
                using (var cnn = new invEntities(_cnInv.ConnectionString))
                {
                    var p1  = new MySql.Data.MySqlClient.MySqlParameter("@p1", filtro.mes.ToString().Trim().PadLeft(2, '0'));
                    var p2  = new MySql.Data.MySqlClient.MySqlParameter("@p2", filtro.ano.ToString().Trim().PadLeft(4, '0'));
                    var sql = "select sum(neto*signo) as total from ventas " +
                              "where mes_relacion=@p1 and ano_relacion=@p2 " +
                              "and (tipo='01' or tipo='02' or tipo='03') " +
                              "and estatus_anulado='0' ";
                    var total = cnn.Database.SqlQuery <decimal?>(sql, p1, p2).FirstOrDefault();
                    if (total.HasValue)
                    {
                        totalVentasNeta = total.Value;
                    }

                    var q = cnn.productos_movimientos_detalle.
                            Join(cnn.productos_movimientos, pmd => pmd.auto_documento, pm => pm.auto, (pmd, pm) => new { pmd, pm }).
                            Where(w => w.pm.fecha.Year == filtro.ano && w.pm.estatus_anulado == "0" &&
                                  (w.pm.tipo == "04" || ((w.pm.tipo == "01" || w.pm.tipo == "02") && w.pm.auto_concepto == "0000000007"))
                                  ).ToList();

                    if (filtro.mes != 0)
                    {
                        q = q.Where(w => w.pm.fecha.Month == filtro.mes).ToList();
                    }

                    if (q != null)
                    {
                        if (q.Count > 0)
                        {
                            list = q.Select(s =>
                            {
                                var rg = new DtoLibInventario.Visor.Ajuste.FichaDetalle()
                                {
                                    autoDepositoOrigen   = s.pm.auto_deposito,
                                    autoPrd              = s.pmd.auto_producto,
                                    autoUsuario          = s.pm.auto_usuario,
                                    cantidadUnd          = s.pmd.cantidad_und,
                                    codigoDepositoOrigen = s.pm.codigo_deposito,
                                    codigoPrd            = s.pmd.codigo,
                                    codigoUsuario        = s.pm.codigo_usuario,
                                    decimales            = s.pmd.decimales,
                                    documentoNro         = s.pm.documento,
                                    fecha = s.pm.fecha,
                                    hora  = s.pm.hora,
                                    nombreDepositoOrigen = s.pm.deposito,
                                    nombrePrd            = s.pmd.nombre,
                                    nombreUsuario        = s.pm.usuario,
                                    nota     = s.pm.nota,
                                    costoUnd = s.pmd.costo_und,
                                    importe  = s.pmd.total,
                                    signo    = s.pmd.signo,
                                };
                                return(rg);
                            }).ToList();
                        }
                    }
                }
                rt.Entidad                = new DtoLibInventario.Visor.Ajuste.Ficha();
                rt.Entidad.detalles       = list;
                rt.Entidad.montoVentaNeto = totalVentasNeta;
            }
            catch (Exception e)
            {
                rt.Mensaje = e.Message;
                rt.Result  = DtoLib.Enumerados.EnumResult.isError;
            }

            return(rt);
        }