예제 #1
0
        public async Task <IActionResult> Print2(int Id)
        {
            var servicios = new MaestroContableServices(DbIpsa).ObtenerServicios();

            var recibo = db.IngresosEgresosCaja
                         .Include(c => c.Estado)
                         .Include(c => c.IngresosEgresosCajaDetalle)
                         .Include(c => c.TipoMoneda)
                         .Where(c => c.Id == Id)
                         .Select(r => new ReciboViewModel
            {
                FechaProceso  = r.FechaProceso,
                NumRecibo     = r.NumRecibo,
                Beneficiario  = r.Beneficiario,
                EstadoId      = r.EstadoId,
                MotivoAnulado = r.MotivoAnulado,
                Total         = r.Total,
                TipoMoneda    = r.TipoMoneda.Descripcion,
                Id            = r.Id,
                detalles      = r.IngresosEgresosCajaDetalle.Select(c => new ReciboDetalle
                {
                    Cantidad    = c.Cantidad,
                    CtaContable = c.CtaContable,
                    Montodolar  = c.Montodolar,
                    Precio      = c.Precio,
                    servicio    = servicios.Where(s => s.CtaContable == c.CtaContable).FirstOrDefault().Nombre
                })
            }).FirstOrDefault();

            return(View(recibo));
        }
예제 #2
0
        public IActionResult RecibosCaja_Detelle2_GetList(CajaParameterModel p)
        {
            var usr = this.GetServiceUser();

            var servicios = new MaestroContableServices(DbIpsa).ObtenerServicios();

            //var servicios = DbIpsa.MaestroContable
            //    .Where(mc => mc.TipoCta == 4 || mc.Cuenta.StartsWith("1101") || mc.Cuenta.StartsWith("1108") || mc.Cuenta.StartsWith("1105"))
            //    .ToArray();


            var reporteMinutas = from iec in db.IngresosEgresosCaja
                                 join iecr in db.IngresosEgresosCajaReferencias on iec.Id equals iecr.ReciboId
                                 join c in db.Caja on iec.CajaId equals c.Id
                                 join m in db.TipoMoneda on iec.TipoMonedaId.Value equals m.Id
                                 where iec.FechaProceso >= p.Desde && iec.FechaProceso <= p.Hasta &&
                                 iec.EstadoId == (int)IngresosEgresosBancoEstados.Registrado
                                 select new ReporteMinutaVsServicio {
                NumRecibo        = iec.NumRecibo,
                FechaProceso     = iec.FechaProceso,
                Caja             = c.Description,
                CajaId           = c.Id,
                Beneficiario     = iec.Beneficiario,
                Moneda           = m.Descripcion,
                MinutaReferencia = iecr.Referencia,
                MinutaFecha      = iecr.Fecha,
                MontoDolar       = Math.Round((iec.TipoMonedaId == (short)TipoMonedaParamFilter.Dolar?iecr.Total:iecr.Total / iecr.TipoCambio), 2),
                MontoCordoba     = Math.Round((iec.TipoMonedaId == (short)TipoMonedaParamFilter.Cordoba?iecr.Total:iecr.Total * iecr.TipoCambio), 2),
            };
            var reporteServicios = from iec in db.IngresosEgresosCaja
                                   join iecd in db.IngresosEgresosCajaDetalle on iec.Id equals iecd.ReciboId
                                   join c in db.Caja on iec.CajaId equals c.Id
                                   join m in db.TipoMoneda on iec.TipoMonedaId.Value equals m.Id
                                   where iec.FechaProceso >= p.Desde && iec.FechaProceso <= p.Hasta &&
                                   iec.EstadoId == (int)IngresosEgresosBancoEstados.Registrado
                                   select new ReporteMinutaVsServicio {
                NumRecibo        = iec.NumRecibo,
                FechaProceso     = iec.FechaProceso,
                Caja             = c.Description,
                CajaId           = c.Id,
                Beneficiario     = iec.Beneficiario,
                Moneda           = m.Descripcion,
                ServicioNombre   = servicios.Where(s => s.CtaContable == iecd.CtaContable).FirstOrDefault().Nombre,
                ServicioPrecio   = iecd.Precio,
                ServicioCantidad = iecd.Cantidad,
                ServicioTotal    = iecd.Montodolar,
                MinutaFecha      = iec.FechaProceso
            };

            if (p.caja.Value > 0)
            {
                reporteMinutas = from rm in reporteMinutas
                                 where rm.CajaId == p.caja.Value
                                 select rm;

                reporteServicios = from rs in reporteServicios
                                   where rs.CajaId == p.caja.Value
                                   select rs;
            }


            var allReporteMinutas   = reporteMinutas.ToArray();
            var allReporteServicios = reporteServicios.ToArray();

            var MinutasYServicios = allReporteMinutas.Concat(allReporteServicios);

            //var reporteAgrupado = from t in MinutasYServicios
            //            group t by t.NumRecibo into g
            //            select new ReporteMinutaVsServicio
            //            {
            //                    NumRecibo = g.Key,
            //                    MontoCordoba = g.Sum(x => x.MontoCordoba),
            //                    MontoDolar = g.Sum(x => x.MontoDolar),
            //                    ServicioTotal = g.Sum(x => x.ServicioTotal)
            //            };

            //var all = reporteAgrupado.ToArray().Concat(MinutasYServicios);

            //return Json(all);

            //Quitar la primera columna el resumen
            return(Json(MinutasYServicios));
        }
예제 #3
0
        public IActionResult RecibosCaja_Detelle1_GetList(DateTime desde, DateTime hasta, int?cajaId)
        {
            var usr = this.GetServiceUser();

            var reporte = db.IngresosEgresosCaja
                          .Include(i => i.Caja)
                          //.Include(i=>i.IngresosEgresosCajaDetalle)
                          //.Include(i=>i.IngresosEgresosCajaReferencias).ThenInclude(c => c.TipoPago)
                          .Include(i => i.TipoMoneda)
                          .Include(i => i.Estado)
                          .Where(i => i.FechaProceso >= desde && i.FechaProceso <= hasta);

            if (cajaId.HasValue)
            {
                if (usr.roles.Contains((int)Roles.Administrador))
                {
                    reporte = reporte.Where(iec => iec.CajaId == cajaId);
                }
                else
                {
                    reporte = reporte.Where(iec => iec.CajaId == usr.cajaid);
                }
            }
            else
            {
                if (!usr.roles.Contains((int)Roles.Administrador))
                {
                    reporte = reporte.Where(iec => iec.CajaId == usr.cajaid);
                }
            }

            var data      = reporte.ToArray();
            var servicios = new MaestroContableServices(DbIpsa).ObtenerServicios();

            var ingresosEgresosCajaReferencias = db.IngresosEgresosCajaReferencias.Include(x => x.TipoPago).Where(r => data.Select(x => x.Id).Contains(r.ReciboId)).ToArray();
            var ingresosEgresosCajaDetalle     = db.IngresosEgresosCajaDetalle.Where(r => data.Select(x => x.Id).Contains(r.ReciboId)).ToArray();

            var result = data.Select(rep => new
            {
                rep.Id,
                Estado = rep.Estado.Descripcion,
                Caja   = rep.Caja.Description,
                rep.Beneficiario,
                rep.FechaProceso,
                rep.Username,
                rep.Total,
                TipoMoneda = rep.TipoMoneda.Descripcion,
                rep.NumRecibo,
                Dolar   = rep.EstadoId == (int)IngresosEgresosCajaEstado.Anulado ? 0 : Math.Round((rep.TipoMonedaId == (short)TipoMonedaParamFilter.Dolar ? rep.Total : 0), 2),
                Cordoba = rep.EstadoId == (int)IngresosEgresosCajaEstado.Anulado ? 0 : Math.Round((rep.TipoMonedaId == (short)TipoMonedaParamFilter.Cordoba ? rep.Total : 0), 2),
                rep.Referencias,
                IngresosEgresosCajaReferencias = ingresosEgresosCajaReferencias.Where(x => x.ReciboId == rep.Id).Select(c => new
                {
                    c.Fecha,
                    TipoPago = c.TipoPago.Descripcion,
                    c.TipoCambio,
                    Dolar   = Math.Round((rep.TipoMonedaId == (short)TipoMonedaParamFilter.Dolar ? c.Total : c.Total / c.TipoCambio), 2),
                    Cordoba = Math.Round((rep.TipoMonedaId == (short)TipoMonedaParamFilter.Cordoba ? c.Total : c.Total * c.TipoCambio), 2),
                    c.Referencia
                }),
                IngresosEgresosCajaDetalle = ingresosEgresosCajaDetalle.Where(x => x.ReciboId == rep.Id).Select(c => new
                {
                    c.Cantidad,
                    c.CtaContable,
                    c.Montodolar,
                    c.Precio,
                    servicio = servicios.Where(s => s.CtaContable == c.CtaContable).FirstOrDefault().Nombre
                })
            }).ToArray();

            return(Json(result, new Newtonsoft.Json.JsonSerializerSettings {
                MaxDepth = 1, ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore
            }));
        }
예제 #4
0
        public IActionResult obtenerPrevio(ParameterCaja parameter)
        {
            if (parameter.SearchType == SearchType.None)
            {
                return(BadRequest("Seleccione un tipo de busqueda, mensual o diario"));
            }

            var bancoService = new BancoCuentasServices(DbIpsa);
            var bancoInfo    = bancoService.GetList().ToArray();

            var servicios = new MaestroContableServices(DbIpsa).ObtenerServicios();

            var resultCaja = from iec in db.IngresosEgresosCaja
                             join iecd in db.IngresosEgresosCajaDetalle on iec.Id equals iecd.ReciboId
                             join c in db.Caja on iec.CajaId equals c.Id
                             where parameter.CajaIds.Contains(c.Id) && iec.FechaProceso >= parameter.desde && iec.FechaProceso <= parameter.hasta
                             select new
            {
                Fecha = iec.FechaProceso,
                _Caja = c.Description,
                iec.Total,
                iecd.CtaContable,
                iecd.Montodolar,
                iec.Id,
                iec.TipoMonedaId
            };

            var result = resultCaja.ToArray();

            var bancosReferencias = from iec in db.IngresosEgresosCaja
                                    join iecd in db.IngresosEgresosCajaReferencias on iec.Id equals iecd.ReciboId
                                    join c in db.Caja on iec.CajaId equals c.Id
                                    where parameter.CajaIds.Contains(c.Id) && iec.FechaProceso >= parameter.desde && iec.FechaProceso <= parameter.hasta
                                    select new
            {
                Id      = iec.Id,
                BancoId = iecd.IdBanco
            };


            var bancosReferenciasArr = bancosReferencias.ToArray();

            var resultFinal = result.Select(x => new
            {
                x.Fecha,
                x._Caja,
                x.Total,
                Servicio = servicios.Where(c => c.CtaContable == x.CtaContable).FirstOrDefault().Nombre,
                x.CtaContable,
                x.Montodolar,
                x.TipoMonedaId,
                x.Id,
                BancoId = bancosReferenciasArr.Where(h => h.Id == x.Id).First().BancoId
            });

            var resultados = new List <Resultados>();

            foreach (var x in resultFinal)
            {
                try
                {
                    resultados.Add(new Resultados
                    {
                        Fecha          = x.Fecha,
                        _Caja          = x._Caja,
                        Total          = x.Total,
                        Servicio       = x.Servicio,
                        CtaContable    = x.CtaContable,
                        Montodolar     = x.Montodolar,
                        Banco          = bancoInfo.Where(b => b.Bancoid == x.BancoId && (b.Moneda ?? 0) == x.TipoMonedaId).FirstOrDefault().Banco.Descripcion,
                        CuentaBancaria = bancoInfo.Where(b => b.Bancoid == x.BancoId && (b.Moneda ?? 0) == x.TipoMonedaId).FirstOrDefault().Descripcion
                    });
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            //var resultFinal2 = resultFinal.Select(x => new
            //{
            //    x.Fecha,
            //    x._Caja,
            //    x.Total,
            //    x.Servicio,
            //    x.CtaContable,
            //    x.Montodolar,
            //    x.BancoId,
            //    Banco = bancoInfo.Where(b => b.Bancoid == x.BancoId && (b.Moneda??0) == x.TipoMonedaId).FirstOrDefault().Banco.Descripcion,
            //    CuentaBancaria = bancoInfo.Where(b => b.Bancoid == x.BancoId && (b.Moneda??0) == x.TipoMonedaId).FirstOrDefault().Descripcion
            //});

            return(Json(resultados));
        }