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)); }
public static PaginadorModel PaginacionCtasCorrientes(IQueryable <EstadoCuentasCorrientesViewModel> LstCtaCorriente, FiltrosEstadoCtasCorrientes Filtros) { int TotalRegistros = LstCtaCorriente.ToList().Count(); if (Filtros.cantidadRegistrosPorPagina > 0) { LstCtaCorriente = LstCtaCorriente.OrderBy(cta => cta.CuentaContable.Clasificacion) .ThenBy(cta => cta.RutPrestador) .Skip((Filtros.pagina - 1) * Filtros.cantidadRegistrosPorPagina) .Take(Filtros.cantidadRegistrosPorPagina); } else if (Filtros.cantidadRegistrosPorPagina == 0) { LstCtaCorriente = LstCtaCorriente.OrderBy(cta => cta.CuentaContable.Clasificacion); } var Paginacion = new PaginadorModel(); Paginacion.LstCtasCorrientes = LstCtaCorriente.ToList(); Paginacion.PaginaActual = Filtros.pagina; Paginacion.TotalDeRegistros = TotalRegistros; Paginacion.RegistrosPorPagina = Filtros.cantidadRegistrosPorPagina; Paginacion.ValoresQueryString = new RouteValueDictionary(); if (Filtros.cantidadRegistrosPorPagina != 25) { Paginacion.ValoresQueryString["cantidadRegistrosPorPagina"] = Filtros.cantidadRegistrosPorPagina; } if (Filtros.Anio > 0) { Paginacion.ValoresQueryString["Anio"] = Filtros.Anio; } if (Filtros.Mes > 0) { Paginacion.ValoresQueryString["Mes"] = Filtros.Mes; } if (Filtros.CuentaAuxiliar > 0) { Paginacion.ValoresQueryString["CuentaAuxiliar"] = Filtros.CuentaAuxiliar; } if (!string.IsNullOrWhiteSpace(Filtros.Rut)) { Paginacion.ValoresQueryString["Rut"] = Filtros.Rut; } if (Filtros.FechaInicio != null && Filtros.FechaFin != null) { Paginacion.ValoresQueryString["FechaInicio"] = Filtros.FechaInicio; Paginacion.ValoresQueryString["FechaFin"] = Filtros.FechaFin; } if (!string.IsNullOrWhiteSpace(Filtros.RazonSocial)) { Paginacion.ValoresQueryString["RazonSocial"] = Filtros.RazonSocial; } return(Paginacion); }
public static PaginadorModel RescatarLibroCentralizacion(ClientesContablesModel objCliente, TipoCentralizacion tipoLibroCentralizacion, FacturaPoliContext db, string FechaInicio = "", string FechaFin = "", int Anio = 0, int Mes = 0, int pagina = 0, int cantidadRegistrosPorPagina = 0, string Rut = "", string RazonSocial = "", int Folio = 0) { bool ConversionFechaInicioExitosa = false; DateTime dtFechaInicio = new DateTime(); bool ConversionFechaFinExitosa = false; DateTime dtFechaFin = new DateTime(); List <LibrosContablesModel> lstlibroData = new List <LibrosContablesModel>(); if (string.IsNullOrWhiteSpace(FechaInicio) == false && string.IsNullOrWhiteSpace(FechaFin) == false) { ConversionFechaInicioExitosa = DateTime.TryParseExact(FechaInicio, "dd-MM-yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dtFechaInicio); ConversionFechaFinExitosa = DateTime.TryParseExact(FechaFin, "dd-MM-yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dtFechaFin); } // Solo si es convertido a voucher se listará en el libro de compras. IQueryable <LibrosContablesModel> lstlibro = (from LibrosContables in db.DBLibrosContables join Vouchers in db.DBVoucher on LibrosContables.VoucherModelID equals Vouchers.VoucherModelID where Vouchers.DadoDeBaja == false && LibrosContables.HaSidoConvertidoAVoucher == true && Vouchers.ClientesContablesModelID == objCliente.ClientesContablesModelID && Vouchers.Tipo == TipoVoucher.Traspaso && LibrosContables.TipoLibro == tipoLibroCentralizacion select LibrosContables); //IQueryable<LibrosContablesModel> lstlibro = db.DBLibrosContables.Where(r => r.ClientesContablesModelID == objCliente.ClientesContablesModelID && r.TipoLibro == tipoLibroCentralizacion && r.HaSidoConvertidoAVoucher == true); //(r => r.Fecha >= dtFechaInicio && r.Fecha <= dtFechaFin); if (Anio != 0 && Anio > 0) { lstlibro = lstlibro.Where(r => r.FechaContabilizacion.Year == Anio); } if (Mes != 0 && Mes > 0) { lstlibro = lstlibro.Where(r => r.FechaContabilizacion.Month == Mes); } if (ConversionFechaInicioExitosa && ConversionFechaInicioExitosa) { lstlibro = lstlibro.Where(r => r.FechaContabilizacion >= dtFechaInicio && r.FechaContabilizacion <= dtFechaFin); } if (!string.IsNullOrWhiteSpace(Rut)) { lstlibro = lstlibro.Where(r => r.individuo.RUT.Contains(Rut)); } if (!string.IsNullOrWhiteSpace(RazonSocial)) { lstlibro = lstlibro.Where(r => r.individuo.RazonSocial.Contains(RazonSocial)); } if (Folio != 0 && Folio > 0) { lstlibro = lstlibro.Where(r => r.Folio == Folio); } int totalDeRegistros = lstlibro.Count(); if (cantidadRegistrosPorPagina != 0) { lstlibroData = lstlibro.OrderBy(r => r.FechaContabilizacion) .Skip((pagina - 1) * cantidadRegistrosPorPagina) .Take(cantidadRegistrosPorPagina).ToList(); } else if (cantidadRegistrosPorPagina == 0) { lstlibroData = lstlibro.OrderBy(r => r.FechaContabilizacion).ToList(); } List <string[]> ReturnValues = new List <string[]>(); decimal TotalExento = 0; decimal TotalNeto = 0; decimal TotalIva = 0; decimal TotalIvaNoRecuperable = 0; decimal TotalIvaUsocomun = 0; decimal TotalMontoTotal = 0; var TotalesNotasDeCredito = (from lstLibro in lstlibroData.Where(x => x.TipoDocumento.EsUnaNotaCredito()) group lstLibro by 1 into g select new { TotalMontoExento = g.Sum(x => x.MontoExento), TotalMontoIva = g.Sum(x => x.MontoIva), TotalMontoNeto = g.Sum(x => x.MontoNeto), TotalMontoIvaNoRecuperable = g.Sum(x => x.MontoIvaNoRecuperable), TotalMontoIvaUsocomun = g.Sum(x => x.MontoIvaUsocomun), TotalMontoTotal = g.Sum(x => x.MontoTotal) }).FirstOrDefault(); int NumeroRow = 1; foreach (LibrosContablesModel Item in lstlibroData) { string[] BalanceRow = new string[] { "-", "-", "-", "-", "-", "-", "-", "0", "0", "0", "0", "0", "0", "False" }; BalanceRow[0] = NumeroRow.ToString(); BalanceRow[1] = ParseExtensions.ToDD_MM_AAAA(Item.FechaDoc); BalanceRow[2] = ParseExtensions.ToDD_MM_AAAA(Item.FechaContabilizacion); BalanceRow[3] = ParseExtensions.EnumGetDisplayAttrib(Item.TipoDocumento); if (Item.FolioHasta > 0 && Item.Folio > 0) { BalanceRow[4] = Item.Folio.ToString() + " - " + Item.FolioHasta.ToString(); } else { BalanceRow[4] = Item.Folio.ToString(); } if (Item.individuo != null) { //Nombre prestador BalanceRow[5] = Item.individuo.RazonSocial; //Rut prestador BalanceRow[6] = Item.individuo.RUT; } else { //Nombre prestador BalanceRow[5] = ""; //Rut prestador BalanceRow[6] = ""; } BalanceRow[7] = ParseExtensions.NumeroConPuntosDeMiles(Item.MontoExento); BalanceRow[8] = ParseExtensions.NumeroConPuntosDeMiles(Item.MontoNeto); BalanceRow[9] = ParseExtensions.NumeroConPuntosDeMiles(Item.MontoIva); BalanceRow[10] = ParseExtensions.NumeroConPuntosDeMiles(Item.MontoIvaNoRecuperable); BalanceRow[11] = ParseExtensions.NumeroConPuntosDeMiles(Item.MontoIvaUsocomun); BalanceRow[12] = ParseExtensions.NumeroConPuntosDeMiles(Item.MontoTotal); if (!Item.TipoDocumento.EsUnaNotaCredito()) { TotalExento += Item.MontoExento; TotalNeto += Item.MontoNeto; TotalIva += Item.MontoIva; TotalIvaNoRecuperable += Item.MontoIvaNoRecuperable; TotalIvaUsocomun += Item.MontoIvaUsocomun; TotalMontoTotal += Item.MontoTotal; } BalanceRow[13] = "True"; if (Item.TipoDocumento.EsUnaNotaCredito() == false) { BalanceRow[13] = "False"; } ReturnValues.Add(BalanceRow); NumeroRow++; } if (TotalesNotasDeCredito != null) { string[] Totales = new string[] { "-", "-", "-", "-", "-", "-", "-", "0", "0", "0", "0", "0", "0", "False" }; Totales[6] = "TOTAL: "; Totales[7] = ParseExtensions.NumeroConPuntosDeMiles(Math.Abs(TotalExento) - Math.Abs(TotalesNotasDeCredito.TotalMontoExento)); Totales[8] = ParseExtensions.NumeroConPuntosDeMiles(Math.Abs(TotalNeto) - Math.Abs(TotalesNotasDeCredito.TotalMontoNeto)); Totales[9] = ParseExtensions.NumeroConPuntosDeMiles(Math.Abs(TotalIva) - Math.Abs(TotalesNotasDeCredito.TotalMontoIva)); Totales[10] = ParseExtensions.NumeroConPuntosDeMiles(Math.Abs(TotalIvaNoRecuperable) - Math.Abs(TotalesNotasDeCredito.TotalMontoIvaNoRecuperable)); Totales[11] = ParseExtensions.NumeroConPuntosDeMiles(Math.Abs(TotalIvaUsocomun) - Math.Abs(TotalesNotasDeCredito.TotalMontoIvaUsocomun)); Totales[12] = ParseExtensions.NumeroConPuntosDeMiles(Math.Abs(TotalMontoTotal) - Math.Abs(TotalesNotasDeCredito.TotalMontoTotal)); ReturnValues.Add(Totales); } else { string[] Totales = new string[] { "-", "-", "-", "-", "-", "-", "-", "0", "0", "0", "0", "0", "0", "False" }; Totales[6] = "TOTAL: "; Totales[7] = ParseExtensions.NumeroConPuntosDeMiles(Math.Abs(TotalExento)); Totales[8] = ParseExtensions.NumeroConPuntosDeMiles(Math.Abs(TotalNeto)); Totales[9] = ParseExtensions.NumeroConPuntosDeMiles(Math.Abs(TotalIva)); Totales[10] = ParseExtensions.NumeroConPuntosDeMiles(Math.Abs(TotalIvaNoRecuperable)); Totales[11] = ParseExtensions.NumeroConPuntosDeMiles(Math.Abs(TotalIvaUsocomun)); Totales[12] = ParseExtensions.NumeroConPuntosDeMiles(Math.Abs(TotalMontoTotal)); ReturnValues.Add(Totales); } var Paginador = new PaginadorModel(); Paginador.ResultStringArray = ReturnValues; Paginador.PaginaActual = pagina; Paginador.TotalDeRegistros = totalDeRegistros; Paginador.RegistrosPorPagina = cantidadRegistrosPorPagina; Paginador.ValoresQueryString = new RouteValueDictionary(); if (cantidadRegistrosPorPagina != 25) { Paginador.ValoresQueryString["cantidadRegistrosPorPagina"] = cantidadRegistrosPorPagina; } if (Anio != 0) { Paginador.ValoresQueryString["Anio"] = Anio; } if (Mes != 0) { Paginador.ValoresQueryString["Mes"] = Mes; } if (!string.IsNullOrWhiteSpace(Rut)) { Paginador.ValoresQueryString["Rut"] = Rut; } if (!string.IsNullOrWhiteSpace(RazonSocial)) { Paginador.ValoresQueryString["RazonSocial"] = RazonSocial; } if (ConversionFechaInicioExitosa && ConversionFechaInicioExitosa) { Paginador.ValoresQueryString["FechaInicio"] = FechaInicio; Paginador.ValoresQueryString["FechaFin"] = FechaFin; } return(Paginador); }
public static PaginadorModel GetCatorceTer(FacturaPoliContext db, ClientesContablesModel ObjCliente, string FechaInicio = "", string FechaFin = "", int Anio = 0, int Mes = 0, int pagina = 0, int cantidadRegistrosPorPagina = 0, string Rut = "", string RazonSocial = "", int Folio = 0) { bool ConversionFechaInicioExitosa = false; DateTime dtFechaInicio = new DateTime(); bool ConversionFechaFinExitosa = false; DateTime dtFechaFin = new DateTime(); if (string.IsNullOrWhiteSpace(FechaInicio) == false && string.IsNullOrWhiteSpace(FechaFin) == false) { ConversionFechaInicioExitosa = DateTime.TryParseExact(FechaInicio, "dd-MM-yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dtFechaInicio); ConversionFechaFinExitosa = DateTime.TryParseExact(FechaFin, "dd-MM-yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dtFechaFin); } List <CatorceTerViewModel> lstCatorceTer = new List <CatorceTerViewModel>(); string TipoReceptorCompra = "PR"; string TipoReceptorVenta = "CL"; string TipoReceptorHonorario = "H"; string TipoReceptorRemu = "P"; //Aquí se consultarán los tipos de voucher y se irán según la logica contable entregada //No se discrimina por tipo de voucher aquí están, tanto, ingresos, egresos, traspasos var TablaPrestador = (from Voucher in db.DBVoucher join DetalleVoucher in db.DBDetalleVoucher on Voucher.VoucherModelID equals DetalleVoucher.VoucherModelID join Auxiliares in db.DBAuxiliares on DetalleVoucher.DetalleVoucherModelID equals Auxiliares.DetalleVoucherModelID join AuxiliaresDetalle in db.DBAuxiliaresDetalle on Auxiliares.AuxiliaresModelID equals AuxiliaresDetalle.AuxiliaresModelID where Voucher.DadoDeBaja == false && //Ingreso Voucher.ClientesContablesModelID == ObjCliente.ClientesContablesModelID && AuxiliaresDetalle.Individuo2.tipoReceptor == TipoReceptorVenta || Voucher.DadoDeBaja == false && //Egreso Voucher.ClientesContablesModelID == ObjCliente.ClientesContablesModelID && AuxiliaresDetalle.Individuo2.tipoReceptor == TipoReceptorCompra || Voucher.DadoDeBaja == false && //Egreso Voucher.ClientesContablesModelID == ObjCliente.ClientesContablesModelID && AuxiliaresDetalle.Individuo2.tipoReceptor == TipoReceptorHonorario || Voucher.DadoDeBaja == false && //Egreso Voucher.ClientesContablesModelID == ObjCliente.ClientesContablesModelID && AuxiliaresDetalle.Individuo2.tipoReceptor == TipoReceptorRemu select new { Haber = DetalleVoucher.MontoHaber, Debe = DetalleVoucher.MontoDebe, FechaContabilizacion = DetalleVoucher.FechaDoc, PrestadorNombre = AuxiliaresDetalle.Individuo2.RazonSocial, PrestadorRut = AuxiliaresDetalle.Individuo2.RUT, TipoPrestador = AuxiliaresDetalle.Individuo2.tipoReceptor, TipoDoc = AuxiliaresDetalle.TipoDocumento, Folio = AuxiliaresDetalle.Folio, CuentaCont = DetalleVoucher.ObjCuentaContable.CodInterno + " " + DetalleVoucher.ObjCuentaContable.nombre }); if (Anio != 0 && Anio > 0) { TablaPrestador = TablaPrestador.Where(r => r.FechaContabilizacion.Year == Anio); } if (Mes != 0 && Mes > 0) { TablaPrestador = TablaPrestador.Where(r => r.FechaContabilizacion.Month == Mes); } if (ConversionFechaInicioExitosa && ConversionFechaInicioExitosa) { TablaPrestador = TablaPrestador.Where(r => r.FechaContabilizacion >= dtFechaInicio && r.FechaContabilizacion <= dtFechaFin); } if (!string.IsNullOrWhiteSpace(Rut)) { TablaPrestador = TablaPrestador.Where(r => r.PrestadorRut.Contains(Rut)); } if (!string.IsNullOrWhiteSpace(RazonSocial)) { TablaPrestador = TablaPrestador.Where(r => r.PrestadorNombre.Contains(RazonSocial)); } if (Folio != 0 && Folio > 0) { TablaPrestador = TablaPrestador.Where(r => r.Folio == Folio); } int totalDeRegistros = TablaPrestador.Count(); if (cantidadRegistrosPorPagina != 0) { TablaPrestador = TablaPrestador.OrderBy(r => r.FechaContabilizacion) .Skip((pagina - 1) * cantidadRegistrosPorPagina) .Take(cantidadRegistrosPorPagina); } else if (cantidadRegistrosPorPagina == 0) { TablaPrestador = TablaPrestador.OrderBy(r => r.FechaContabilizacion); } decimal TotalIngreso = 0; decimal TotalEgreso = 0; foreach (var itemCatorceTer in TablaPrestador) { decimal Haber = itemCatorceTer.Haber; decimal Debe = itemCatorceTer.Debe; decimal TotalDebeHaber = Math.Abs(Haber) - Math.Abs(Debe); CatorceTerViewModel objTer = new CatorceTerViewModel(); objTer.Fecha = itemCatorceTer.FechaContabilizacion; objTer.NombreReceptor = itemCatorceTer.PrestadorNombre; objTer.RutReceptor = itemCatorceTer.PrestadorRut; objTer.Folio = itemCatorceTer.Folio; objTer.TipoDocumento = itemCatorceTer.TipoDoc; if (itemCatorceTer.TipoPrestador == TipoReceptorCompra) { objTer.Egreso = Math.Abs(TotalDebeHaber); objTer.TipoLibro = "Compra"; TotalEgreso += Math.Abs(TotalDebeHaber); } else if (itemCatorceTer.TipoPrestador == TipoReceptorVenta) { objTer.Ingreso = Math.Abs(TotalDebeHaber); objTer.TipoLibro = "Venta"; TotalIngreso += Math.Abs(TotalDebeHaber); } else if (itemCatorceTer.TipoPrestador == TipoReceptorHonorario) { objTer.Egreso = Math.Abs(TotalDebeHaber); objTer.TipoLibro = "Honorario"; TotalEgreso += Math.Abs(TotalDebeHaber); } else if (itemCatorceTer.TipoPrestador == TipoReceptorRemu) { objTer.Egreso = Math.Abs(TotalDebeHaber); objTer.TipoLibro = "Remuneracion"; TotalEgreso += Math.Abs(TotalDebeHaber); } objTer.CuentaContable = itemCatorceTer.CuentaCont; lstCatorceTer.Add(objTer); } CatorceTerViewModel Totales = new CatorceTerViewModel(); Totales.TotalIngreso = Math.Abs(TotalIngreso); Totales.TotalEgreso = Math.Abs(TotalEgreso); lstCatorceTer.Add(Totales); var Paginador = new PaginadorModel(); Paginador.LstCatorceTer = lstCatorceTer; Paginador.PaginaActual = pagina; Paginador.TotalDeRegistros = totalDeRegistros; Paginador.RegistrosPorPagina = cantidadRegistrosPorPagina; Paginador.ValoresQueryString = new RouteValueDictionary(); if (cantidadRegistrosPorPagina != 25) { Paginador.ValoresQueryString["cantidadRegistrosPorPagina"] = cantidadRegistrosPorPagina; } if (Anio != 0) { Paginador.ValoresQueryString["Anio"] = Anio; } if (Mes != 0) { Paginador.ValoresQueryString["Mes"] = Mes; } if (!string.IsNullOrWhiteSpace(Rut)) { Paginador.ValoresQueryString["Rut"] = Rut; } if (!string.IsNullOrWhiteSpace(RazonSocial)) { Paginador.ValoresQueryString["RazonSocial"] = RazonSocial; } if (ConversionFechaInicioExitosa && ConversionFechaInicioExitosa) { Paginador.ValoresQueryString["FechaInicio"] = FechaInicio; Paginador.ValoresQueryString["FechaFin"] = FechaFin; } return(Paginador); }