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()) }) }))); }
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); }
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)); }