Esempio n. 1
0
        public JsonResult RemesasTotales(string fecha)
        {
            var xFecha  = DateTime.Parse(fecha);
            var remesas = remesax.GetByFecha(xFecha);
            var filter  = remesas.Where(x => x.estatus1.id < 3).Select(x => new
            {
                estatus       = x.estatus1.id,
                bancoEmpreId  = x.bancosempre != null ? x.bancosempre.id : 7,
                montoDeposito = x.montoDeposito,
                moneda        = x.monedaDeposito,
                fecha         = x.fecha,
                banco         = x.remesaType == 1 ? "EFECTIVO " + x.moneda.sing  : x.bancosempre != null ? x.bancosempre.nombre : "NO PROCESADO",
                cuenta        = x.bancosempre != null ? x.bancosempre.cuentaNumero : "",
                sing          = x.moneda.sing,
                cambio        = x.cambio.cambio1,
                enviado       = x.montoDestino
            });
            var TotalEnviado = filter.Where(x => x.estatus == 2).Sum(x => x.enviado);
            var Group        = filter.
                               GroupBy(x => new { x.banco, x.moneda }).
                               Select(cl => new {
                cl.FirstOrDefault().bancoEmpreId,
                total = cl.Sum(x => x.montoDeposito),
                cl.Key.moneda,
                cl.FirstOrDefault().cuenta,
                cl.FirstOrDefault().fecha,
                cl.Key.banco,
                cl.FirstOrDefault().sing,
                cl.FirstOrDefault().cambio
            }).OrderBy(x => x.bancoEmpreId).ToList();
            var Totales = Group.Select(x => new
            {
                moneda = x.moneda,
                total  = x.total,
                sing   = x.sing,
                cambio = x.cambio
            });
            var cambioActual = cambio.GetActualChange(xFecha);
            var totalGen     = Totales.Sum(x => x.total) / (decimal)cambioActual.cambio1;

            var totalx = Totales.GroupBy(x => x.moneda).
                         Select(gr => new {
                moneda = gr.FirstOrDefault().moneda,
                total  = gr.Sum(x => x.total),
                sing   = gr.FirstOrDefault().sing,
                cambio = gr.FirstOrDefault().cambio
            });


            return(Json(new { subTotal = Group,
                              total = totalx,
                              totalGen = totalGen,
                              totalEnv = TotalEnviado,
                              fecha = xFecha.ToShortDateString(),
                              cambio = cambioActual.cambio1,
                              precioCompra = cambioActual.bolivares }));
        }