public ActionResult PendientesAuxiliares() { string UserID = User.Identity.GetUserId(); FacturaPoliContext db = ParseExtensions.GetDatabaseContext(UserID); ClientesContablesModel objCliente = PerfilamientoModule.GetClienteContableSeleccionado(Session, UserID, db); //Queda pendiente programar los filtros y la forma de pagar. var LstAuxConMovimiento = UsoComunAux.LstAuxConMovimientoTwo(db, objCliente); ViewBag.LstCtasAux = LstAuxConMovimiento; //Replantearse el uso del detalle o si hay que hacer un objeto para mostrar solo rut y saldo //Rut y saldo... Ocupa.. ¿AuxiliarModel? //Esta es la posible query de los pendientes a nivel Macro var PendientesAux = (from Detalle in db.DBDetalleVoucher join Voucher in db.DBVoucher on Detalle.VoucherModelID equals Voucher.VoucherModelID join Auxiliar in db.DBAuxiliares on Detalle.DetalleVoucherModelID equals Auxiliar.DetalleVoucherModelID join AuxiliarDetalle in db.DBAuxiliaresDetalle on Auxiliar.AuxiliaresModelID equals AuxiliarDetalle.AuxiliaresModelID where Voucher.DadoDeBaja == false && Voucher.ClientesContablesModelID == objCliente.ClientesContablesModelID && Detalle.ObjCuentaContable.TieneAuxiliar == 1 && Detalle.ConciliadoCtasCtes == false && Detalle.FechaDoc.Year == 2020 select new { Id = Auxiliar.AuxiliaresModelID, Rut = AuxiliarDetalle.Individuo2.RUT, RazonSocial = AuxiliarDetalle.Individuo2.RazonSocial, Debe = Detalle.MontoDebe, Haber = Detalle.MontoHaber }); var PendientesAuxOrder = PendientesAux.GroupBy(x => new { x.Rut, x.RazonSocial }) .Select(y => new AuxPendientesViewModel { Rut = y.Key.Rut, RazonSocial = y.Key.RazonSocial, Saldo = y.Sum(z => Math.Abs(z.Haber)) - y.Sum(z => Math.Abs(z.Debe)) }).ToList(); //Nota Revisar nubox //Aqui van los filtros de la cuenta contable que se está buscando conciliar //¿Aquí también hay conciliación bancaria? -> No entiendo realmente como hacerlo. //Por hacer: //Todos aquellos movimientos que se hicieron en la conciliacion bancaria que no tenian información o la cuenta tenia auxiliar y no lo puso //Deben mapearse guardarse o encontrarse y dejarlos en este listado de pendientes //Por lo que pude notar esto se puede conseguir con la logica hecha en el estado de cuentas corriente //¿Como se van a generar los pagos? // Escriba aquí la planificación // Respuesta rápida -> Con la misma lógica que se usa al importar el excel con sus respectivos movimientos return(View(PendientesAuxOrder)); }
public ActionResult PendientesAuxConfiguracion() { string UserID = User.Identity.GetUserId(); FacturaPoliContext db = ParseExtensions.GetDatabaseContext(UserID); ClientesContablesModel objCliente = PerfilamientoModule.GetClienteContableSeleccionado(Session, UserID, db); var LstAuxConMovimiento = UsoComunAux.LstAuxConMovimientoTwo(db, objCliente); ViewBag.LstCtasAux = LstAuxConMovimiento; return(View()); }
public ActionResult EstCtasCtesConciliado(FiltrosEstadoCtasCorrientes Filtros) { //Condiciones Si elige un tipo de listado. //Si se quiere mostrar no conciliada "Eliminar las que esten conciliadas". //Si se quiere mostrar las conciliadas "Retornar solo las conciliadas". //Si se quiere mostrar todas entonces no pasar por este proceso. //Cambiar el estado en la base de datos a conciliado si el movimiento lo está al momento de calcularlo //En el futuro utilizar este modulo para refrescar y calcular los conciliados ¿Con qué sentido? -> //R: al hacer esto por detrás y no renderizar una vista se habrán establecido los conciliados -> no conciliados y la lista completa que incluye a los 2 //Entonces al crear la query simplemente irá a buscar los que estén conciliados y no tendrá que hacer todo el calculo nuevamente lo que permite una mejora //Tremenda en el tiempo de carga de estas listas. //Entonces paso 1 -> Según el id del movimiento si está conciliado etiquetarlo como tal. //Paso 2 Crear las querys correspondientes para obtener esta lista conciliada //Paso 3 Crear el modulo de los pendientes que solo tendrá aquellos que no estén conciliados. //Paso 4 Crear la manera de pagar estos documentos basandose en como se hace la conciliación bancaria. string UserID = User.Identity.GetUserId(); FacturaPoliContext db = ParseExtensions.GetDatabaseContext(UserID); ClientesContablesModel objCliente = PerfilamientoModule.GetClienteContableSeleccionado(Session, UserID, db); var lstCtasAux = UsoComunAux.LstAuxConMovimiento(db, objCliente); ViewBag.lstCtasCtes = lstCtasAux; ViewBag.ObjCliente = objCliente; List <ObjetoCtasCtesPorConciliar> ListaOrdenadaConAcumulados = new List <ObjetoCtasCtesPorConciliar>(); List <EstCtasCtesConciliadasViewModel> ListaProcesada = new List <EstCtasCtesConciliadasViewModel>(); List <ObjetoCtasCtesPorConciliar> ListaOrdenada = new List <ObjetoCtasCtesPorConciliar>(); IQueryable <EstCtasCtesConciliadasViewModel> QueryCtaCorrienteTodosLosAnios = EstCtasCtesConciliadasViewModel.GetlstCtasCtesConciliadas(db, objCliente); IQueryable <EstCtasCtesConciliadasViewModel> ListaFiltrada = EstCtasCtesConciliadasViewModel.FiltrosCtaCorriente(QueryCtaCorrienteTodosLosAnios, Filtros); ListaProcesada = EstCtasCtesConciliadasViewModel.CalcularYConciliarLista(db, objCliente, ListaFiltrada, Filtros); ListaOrdenada = EstCtasCtesConciliadasViewModel.OrdenarListaCtasCtes(ListaProcesada); ListaOrdenadaConAcumulados = EstCtasCtesConciliadasViewModel.CalcularAcumulados(ListaOrdenada, QueryCtaCorrienteTodosLosAnios, db, objCliente, Filtros); decimal TotalAcumuladosGenerales = EstCtasCtesConciliadasViewModel.CalcularAcumuladosGenerales(ListaOrdenadaConAcumulados, QueryCtaCorrienteTodosLosAnios, Filtros); ViewBag.TotalSaldoAcumulado = TotalAcumuladosGenerales; Session["EstadoDeCuentasCorrientes"] = ListaOrdenadaConAcumulados; Session["TotalAcumEstadoCuentasCorrientes"] = TotalAcumuladosGenerales; Session["Filtros"] = Filtros; // Para manejar los filtros consultados para el reporte de excel. return(View(ListaOrdenadaConAcumulados)); }
public ActionResult EstadoCtasCorrientes(FiltrosEstadoCtasCorrientes Filtros) { string UserID = User.Identity.GetUserId(); FacturaPoliContext db = ParseExtensions.GetDatabaseContext(UserID); ClientesContablesModel objCliente = PerfilamientoModule.GetClienteContableSeleccionado(Session, UserID, db); var lstCtasAux = UsoComunAux.LstAuxConMovimiento(db, objCliente); ViewBag.lstCtasCtes = lstCtasAux; IQueryable <EstadoCuentasCorrientesViewModel> QueryCtaCorriente = EstadoCuentasCorrientesViewModel.GetLstCtaCorriente(db, objCliente); IQueryable <EstadoCuentasCorrientesViewModel> LstCtaCorrienteBusqueda = EstadoCuentasCorrientesViewModel.FiltrosCtaCorriente(QueryCtaCorriente, Filtros); PaginadorModel LstCtasConPaginacion = EstadoCuentasCorrientesViewModel.PaginacionCtasCorrientes(LstCtaCorrienteBusqueda, Filtros); Session["EstadoCtaCorriente"] = LstCtasConPaginacion.LstCtasCorrientes; return(View(LstCtasConPaginacion)); }