public IActionResult GetList()
        {
            var procesos     = db.ProcesoBanco.Where(x => x.SaldoFinal != 0).ToList();
            var bancosCuenta = DbIpsa.BancosCuentas.Include(x => x.Banco);

            var procesoBancoServices = new ProcesoBancoServices(db);
            var listaCuentas         = procesoBancoServices.GetLastCuentas();



            var documentos = db.ReporteFirma; //new List<String> { "Caratula", "Cheques flotantes", "Notas de credito no registradas en libro", "Notas de debito no registradas en el Banco", "Notas de debito no registradas en Libro" };

            return(Json(procesos.Select(x => new {
                Banco = bancosCuenta.Where(c => c.BancoCuenta == x.BancoCuenta).FirstOrDefault().Banco.Descripcion,
                Cuenta = bancosCuenta.Where(c => c.BancoCuenta == x.BancoCuenta).FirstOrDefault().Descripcion,
                bancosCuenta.Where(c => c.BancoCuenta == x.BancoCuenta).FirstOrDefault().Moneda,
                x.SaldoInicial,
                x.SaldoFinal,
                x.Fecha,
                x.Username,
                x.BancoCuenta,
                x.Id,
                xIsLastAccount = listaCuentas.Contains(x.Id)?true:false,
                Documentos = documentos.Select(d => new
                {
                    x.Fecha,
                    Nombre = string.IsNullOrEmpty(d.Nombre) ? d.Reporte : d.Nombre,
                    d.Reporte,
                    BancoCuenta = HelperExtensions.HashSHA1(x.BancoCuenta.ToString())
                })
            })));
        }
Example #2
0
        internal ParametrosAnexoViewModel conciliacionAnexoViewModel(string bancoCuenta, int mes, int anio, string NombreReporte)
        {
            var reporteFirma  = db.ReporteFirma.Find(NombreReporte);
            var bancosCuentas = DbIpsa.BancosCuentas.Include(bc => bc.Banco).ToArray();

            var bancosCuentasOnlyCode = bancosCuentas.Select(b => b.BancoCuenta).ToArray();

            var _bancoCuenta = bancosCuentasOnlyCode.Where(b => HelperExtensions.HashSHA1(b.ToString()) == bancoCuenta).FirstOrDefault();

            var conciliacionAnexoViewModel = new ParametrosAnexoViewModel();

            if (_bancoCuenta == 0)
            {
                conciliacionAnexoViewModel.HashError = true;
                conciliacionAnexoViewModel.Mensaje   = $"No se encontró la cuenta bancaria";
                return(conciliacionAnexoViewModel);
            }

            if (reporteFirma == null)
            {
                conciliacionAnexoViewModel.HashError = true;
                conciliacionAnexoViewModel.Mensaje   = $"No se encontró la configuración de las firmas del reporte {NombreReporte}";
                return(conciliacionAnexoViewModel);
            }

            var infoProcesoBanco = db.ProcesoBanco.Where(b => b.BancoCuenta == _bancoCuenta && b.Fecha.Month == mes && b.Fecha.Year == anio).FirstOrDefault();

            if (infoProcesoBanco == null)
            {
                conciliacionAnexoViewModel.HashError = true;
                conciliacionAnexoViewModel.Mensaje   = $"No se encontró la cuenta bancaria con la fecha de proceso indicada";
                return(conciliacionAnexoViewModel);
            }

            var bancoCuentaInfo = bancosCuentas.Where(c => c.BancoCuenta == _bancoCuenta).FirstOrDefault();

            if (!bancoCuentaInfo.Moneda.HasValue)
            {
                conciliacionAnexoViewModel.HashError = true;
                conciliacionAnexoViewModel.Mensaje   = $"No esta definida la moneda para la cuenta {bancoCuentaInfo.Descripcion}";
                return(conciliacionAnexoViewModel);
            }

            conciliacionAnexoViewModel.ProcesoBancoId = infoProcesoBanco.Id;
            conciliacionAnexoViewModel.CuentaBancaria = bancoCuentaInfo.Descripcion.ToUpper();
            conciliacionAnexoViewModel.Moneda         = (bancoCuentaInfo.Moneda ?? 1) == 1 ? "C$" : "$";

            return(conciliacionAnexoViewModel);
        }
Example #3
0
        public IActionResult CaratulaConciliacion(string bancoCuenta, int mes, int anio)
        {
            var usr           = this.GetServiceUser();
            var reporteFirma  = db.ReporteFirma.Find("CaratulaConciliacion");
            var bancosCuentas = DbIpsa.BancosCuentas.Include(bc => bc.Banco).ToArray();

            var bancosCuentasOnlyCode = bancosCuentas.Select(b => b.BancoCuenta).ToArray();

            var _bancoCuenta = bancosCuentasOnlyCode.Where(b => HelperExtensions.HashSHA1(b.ToString()) == bancoCuenta).FirstOrDefault();

            if (_bancoCuenta == 0)
            {
                return(View("Error", "No se encontr� la cuenta bancaria"));
            }

            if (reporteFirma == null)
            {
                return(View("Error", $"No se encontr� la configuraci�n de las firmas del reporte CaratulaConciliacion"));
            }

            var infoProcesoBanco = db.ProcesoBanco.Where(b => b.BancoCuenta == _bancoCuenta && b.Fecha.Month == mes && b.Fecha.Year == anio).FirstOrDefault();

            if (infoProcesoBanco == null)
            {
                return(View("Error", "No se encontr� la cuenta bancaria con la fecha de proceso indicada"));
            }

            var bancoCuentaInfo = bancosCuentas.Where(c => c.BancoCuenta == _bancoCuenta).FirstOrDefault();

            if (!bancoCuentaInfo.Moneda.HasValue)
            {
                return(View("Error", $"No esta definida la moneda para la cuenta {bancoCuentaInfo.Descripcion}"));
            }

            var conciliacionBancaria    = db.ConciliacionBancaria.Include(cb => cb.TipoMovimiento).Where(cb => cb.ProcesoBancoId == infoProcesoBanco.Id).ToArray();
            var conciliacionBancariaAux = db.ConciliacionBancariaAux.Include(cb => cb.TipoMovimiento).Where(cb => cb.ProcesoBancoId == infoProcesoBanco.Id).ToArray();

            var AuxCheques = conciliacionBancaria.Where(cba => cba.TipoMovimientoId == (int)TipoMovimientos.Cheques)
                             .Join(conciliacionBancaria
                                   .Where(cba => cba.TipoMovimientoId == (int)TipoMovimientos.Cheques), cb => cb.Uuid,
                                   cbaux => cbaux.Uuid,
                                   (cb, cbaux) => new { cb, cbaux })
                             .Select(x => new { total = x.cb.Debito - x.cbaux.Credito });

            var profile = db.Profile.Find(infoProcesoBanco.Username);

            reporteFirma.UsernameElaborado = profile.Nombre + " " + profile.Apellido;

            var caratula = new CaratulaViewModel();

            caratula.ReporteFirmas          = reporteFirma;
            caratula.MonedaSimbol           = bancoCuentaInfo.Moneda.Value == 1?"C$":"$";
            caratula.Titulo                 = $"Movimientos Bancarios ({bancoCuentaInfo.Banco.Descripcion}) Del Mes De {HelperExtensions.NombreDelMes(mes)} De {anio}";
            caratula.Cuenta                 = $"{bancoCuentaInfo.Descripcion.ToUpper()}";
            caratula.SaldoSegunBanco        = infoProcesoBanco.SaldoInicial; // + (conciliacionBancaria.Sum(x=>x.Credito) - conciliacionBancaria.Sum(x => x.Debito));
            caratula.ChequeFlotantes        = conciliacionBancariaAux.Where(cba => cba.TipoMovimientoId == (int)TipoMovimientos.Cheques && cba.Conciliado).Sum(x => x.Credito);
            caratula.DifChequesDeMenosBanco = AuxCheques.Where(ac => ac.total > 0).Sum(s => s.total);
            caratula.DifChequesDeMasBanco   = AuxCheques.Where(ac => ac.total < 0).Sum(s => s.total);

            caratula.NCNoRegistradasEnLibro = conciliacionBancaria.ObtenerNCNoRegistradasEnLibro().Sum(x => x.Debito);
            caratula.NDNoRegistradasEnLibro = conciliacionBancaria.ObtenerNDNoRegistradasEnLibro().Sum(x => x.Credito);
            caratula.DPNoRegistradasEnLibro = conciliacionBancaria.ObtenerDPNoRegistradasEnLibro().Sum(x => x.Credito);

            caratula.DPNoRegistradasEnBanco = conciliacionBancariaAux.ObtenerDPNoRegistradasEnBanco().Sum(x => x.Debito);
            caratula.NCNoRegistradasEnBanco = conciliacionBancariaAux.ObtenerNCNoRegistradaEnBanco().Sum(x => x.Credito);
            caratula.NDNoRegistradasEnBanco = conciliacionBancariaAux.ObtenerNDNoRegistradaEnBanco().Sum(x => x.Debito);

            caratula.CreditosPorCorreccionesIntMas  = conciliacionBancariaAux.ObtenerCreditosPorCorreccionesIntMas().Sum(x => x.Credito);
            caratula.DeditosPorCorreccionesIntMenos = conciliacionBancariaAux.ObtenerCreditosPorCorreccionesIntMenos().Sum(x => x.Debito);

            caratula.SaldoSegunLibro -= caratula.ChequeFlotantes;
            caratula.SaldoSegunLibro += caratula.DifChequesDeMenosBanco;
            caratula.SaldoSegunLibro += caratula.DifChequesDeMasBanco;
            caratula.SaldoSegunLibro -= caratula.NCNoRegistradasEnLibro;
            caratula.SaldoSegunLibro += caratula.NDNoRegistradasEnLibro;
            caratula.SaldoSegunLibro += caratula.DPNoRegistradasEnLibro;
            caratula.SaldoSegunLibro -= caratula.DPNoRegistradasEnBanco;
            caratula.SaldoSegunLibro += caratula.NCNoRegistradasEnBanco;
            caratula.SaldoSegunLibro += caratula.NDNoRegistradasEnBanco;
            caratula.SaldoSegunLibro += caratula.CreditosPorCorreccionesIntMas;
            caratula.SaldoSegunLibro -= caratula.DeditosPorCorreccionesIntMenos;


            //caratula.SaldoSegunLibro = new decimal[]
            //{
            //    -caratula.ChequeFlotantes==0?0:-caratula.ChequeFlotantes,
            //    caratula.DifChequesDeMenosBanco,
            //    caratula.DifChequesDeMasBanco,
            //    -caratula.NCNoRegistradasEnLibro==0?0:-caratula.NCNoRegistradasEnLibro,
            //    caratula.NDNoRegistradasEnLibro,
            //    -caratula.DPNoRegistradasEnLibro==0?0:-caratula.DPNoRegistradasEnLibro,
            //    -caratula.DPNoRegistradasEnBanco==0?0:-caratula.DPNoRegistradasEnBanco,
            //    caratula.NCNoRegistradasEnBanco,
            //    caratula.NDNoRegistradasEnBanco,
            //    caratula.CreditosPorCorreccionesIntMas,
            //    -caratula.DeditosPorCorreccionesIntMenos==0?0:-caratula.DeditosPorCorreccionesIntMenos,
            //}.Sum();

            return(View(caratula));
        }