public static IQueryable <EstadoCuentasCorrientesViewModel> FiltrosCtaCorriente(IQueryable <EstadoCuentasCorrientesViewModel> LstCtaCorriente, FiltrosEstadoCtasCorrientes Filtros) { if (Filtros != null) { if (Filtros.Anio > 0) { LstCtaCorriente = LstCtaCorriente.Where(anio => anio.Fecha.Year == Filtros.Anio); } if (Filtros.Mes > 0) { LstCtaCorriente = LstCtaCorriente.Where(mes => mes.Fecha.Month == Filtros.Mes); } if (Filtros.CuentaAuxiliar > 0) { LstCtaCorriente = LstCtaCorriente.Where(cta => cta.CuentaContable.CuentaContableModelID == Filtros.CuentaAuxiliar); } if (!string.IsNullOrWhiteSpace(Filtros.RazonSocial)) { LstCtaCorriente = LstCtaCorriente.Where(razonsocial => razonsocial.NombrePrestador.Contains(Filtros.RazonSocial)); } if (!string.IsNullOrWhiteSpace(Filtros.Rut)) { LstCtaCorriente = LstCtaCorriente.Where(rut => rut.RutPrestador.Contains(Filtros.Rut)); } if (!string.IsNullOrWhiteSpace(Filtros.FechaInicio) && !string.IsNullOrWhiteSpace(Filtros.FechaFin)) { DateTime dtFechaInicio = ParseExtensions.ToDD_MM_AAAA_Multi(Filtros.FechaInicio); DateTime dtFechaFin = ParseExtensions.ToDD_MM_AAAA_Multi(Filtros.FechaFin); LstCtaCorriente = LstCtaCorriente.Where(fecha => fecha.Fecha >= dtFechaInicio && fecha.Fecha <= dtFechaFin); } } return(LstCtaCorriente); }
public static decimal CalcularAcumuladosGenerales(List <ObjetoCtasCtesPorConciliar> ListaOrdenada, IQueryable <EstCtasCtesConciliadasViewModel> ListaCtaCteCompleta, FiltrosEstadoCtasCorrientes Filtros) { decimal TotalDebe = 0; decimal TotalHaber = 0; decimal TotalGeneralTodosLosAnios = 0; decimal TotalGeneralAnioConsultado = 0; decimal TotalAcumulado = 0; if (Filtros.TodosLosAnios == null) { var QueryASumar = ListaCtaCteCompleta.Where(x => x.Fecha.Year < Filtros.Anio).ToList(); if (QueryASumar != null) { TotalDebe = QueryASumar.Sum(y => y.DebeAnalisis); TotalHaber = QueryASumar.Sum(x => x.HaberAnalisis); } TotalGeneralTodosLosAnios = Math.Abs(TotalHaber) - Math.Abs(TotalDebe); TotalGeneralAnioConsultado = ListaOrdenada.Sum(x => x.TotalSaldo); TotalAcumulado = TotalGeneralTodosLosAnios - TotalGeneralAnioConsultado; } else if (!string.IsNullOrWhiteSpace(Filtros.FechaInicio) && !string.IsNullOrWhiteSpace(Filtros.FechaFin)) { //Query de esta busqueda DateTime dtFechaInicio = ParseExtensions.ToDD_MM_AAAA_Multi(Filtros.FechaInicio); var QueryASumar = ListaCtaCteCompleta.Where(x => x.Fecha < dtFechaInicio).ToList(); if (QueryASumar != null) { TotalDebe = QueryASumar.Sum(y => y.DebeAnalisis); TotalHaber = QueryASumar.Sum(x => x.HaberAnalisis); } } else if (Filtros.TodosLosAnios == "on") { TotalAcumulado = 0; } return(TotalAcumulado); }
public static bool GuardarCartolaBancariaManual(List <CartolaBancariaModel> LstCartolaAGuardar, string FechaCartola, int NumeroCartola, ClientesContablesModel ObjCliente, FacturaPoliContext db) { bool Result = false; decimal TotalCartola = Math.Abs(LstCartolaAGuardar.Sum(x => x.Haber) - LstCartolaAGuardar.Sum(x => x.Debe)); CartolaBancariaMacroModel CartolaBancariaMacro = new CartolaBancariaMacroModel(); CartolaBancariaMacro.FechaCartola = ParseExtensions.ToDD_MM_AAAA_Multi(FechaCartola); CartolaBancariaMacro.ClientesContablesModelID = ObjCliente; CartolaBancariaMacro.NumeroCartola = NumeroCartola; CartolaBancariaMacro.TotalCartola = TotalCartola; CartolaBancariaMacro.CartolaDetalle = LstCartolaAGuardar; db.DBCartolaBMacro.Add(CartolaBancariaMacro); db.SaveChanges(); Result = true; return(Result); }
public static IQueryable <FatherObjEstadoResultado> GetEstadoResultadoFiltrado(IQueryable <FatherObjEstadoResultado> EstadoResultado, FiltrosEstadoResultado Filtros) { if (Filtros != null) { if (Filtros.Anio > 0) { EstadoResultado = EstadoResultado.Where(x => x.Fecha.Year == Filtros.Anio); } if (Filtros.Mes > 0) { EstadoResultado = EstadoResultado.Where(x => x.Fecha.Month == Filtros.Mes); } if (!string.IsNullOrWhiteSpace(Filtros.FechaDesde) && !string.IsNullOrWhiteSpace(Filtros.FechaHasta)) { DateTime dtFechaDesde = ParseExtensions.ToDD_MM_AAAA_Multi(Filtros.FechaDesde); DateTime dtFechaHasta = ParseExtensions.ToDD_MM_AAAA_Multi(Filtros.FechaHasta); EstadoResultado = EstadoResultado.Where(x => x.Fecha >= dtFechaDesde && x.Fecha <= dtFechaHasta); } } return(EstadoResultado); }
public ActionResult ImportarCartolaBancariaManual(ObjCartolaMacro DataCartola) { string UserID = User.Identity.GetUserId(); FacturaPoliContext db = ParseExtensions.GetDatabaseContext(UserID); ClientesContablesModel objCliente = PerfilamientoModule.GetClienteContableSeleccionado(Session, UserID, db); CartolaBancariaMacroModel CartolaMacro = new CartolaBancariaMacroModel(); List <CartolaBancariaModel> LstDetalleCartola = new List <CartolaBancariaModel>(); bool Result = false; bool SiExiste = CartolaBancariaMacroModel.ExistenRepetidos(ParseExtensions.ToDD_MM_AAAA_Multi(DataCartola.FechaCartola), DataCartola.NumeroCartola, db, objCliente); if (SiExiste) { TempData["Error"] = "La cartola que se intenta importar ya existe."; RedirectToAction("ConciliacionBancaria", "ContabilidadConciliacionBancaria"); } if (DataCartola.files != null && DataCartola.files.ContentLength > 0) { var CartolaPura = CartolaBancariaMacroModel.DeExcelAObjetoCartolaYVoucher(DataCartola.files); //var CartolaPura = CartolaBancariaModel.DeExcelACartolaBancaria(DataCartola.files, db); LstDetalleCartola = CartolaBancariaModel.ObtenerCartolaBancariaManual(CartolaPura, objCliente); Result = CartolaBancariaMacroModel.GuardarCartolaBancariaManual(LstDetalleCartola, DataCartola.FechaCartola, DataCartola.NumeroCartola, objCliente, db); if (Result == true) { TempData["Correcto"] = "Cartola Importada con éxito."; } else { TempData["Error"] = "Hubo un error al importar la cartola."; } } else { TempData["Error"] = "No hay datos para importar"; } return(RedirectToAction("ConciliacionBancaria", "ContabilidadConciliacionBancaria")); }
public static bool GuardarCartolaBancaria(List <CartolaBancariaModel> LstCartolaConInfo /*, List<CartolaBancariaModel> LstCartolaSinInfo*/, string FechaCartola, int NumeroCartola, CuentaContableModel CuentaConsultada, ClientesContablesModel ObjCliente, FacturaPoliContext db) { bool Result = false; List <CartolaBancariaModel> CartolaBancariaCompleta = new List <CartolaBancariaModel>(); CartolaBancariaCompleta.AddRange(LstCartolaConInfo); CartolaBancariaMacroModel CartolaBancariaMacro = new CartolaBancariaMacroModel(); CartolaBancariaMacro.FechaCartola = ParseExtensions.ToDD_MM_AAAA_Multi(FechaCartola); CartolaBancariaMacro.ClientesContablesModelID = ObjCliente; CartolaBancariaMacro.CuentaContableModelID = CuentaConsultada; CartolaBancariaMacro.NumeroCartola = NumeroCartola; CartolaBancariaMacro.CartolaDetalle = CartolaBancariaCompleta; db.DBCartolaBMacro.Add(CartolaBancariaMacro); db.SaveChanges(); Result = true; return(Result); }
public static List <LibroMayorConciliacion> getListaLibroMayor(List <string[]> MayorDeLaCuenta) { List <LibroMayorConciliacion> LstLibroMayor = new List <LibroMayorConciliacion>(); if (MayorDeLaCuenta.Count() > 0) { foreach (string[] itemMayor in MayorDeLaCuenta) { LibroMayorConciliacion objMayor = new LibroMayorConciliacion(); objMayor.FechaContabilizacion = ParseExtensions.ToDD_MM_AAAA_Multi(itemMayor[1]); objMayor.Comprobante = itemMayor[2]; objMayor.Glosa = itemMayor[3]; objMayor.RazonSocial = itemMayor[4]; objMayor.Rut = itemMayor[5]; if (itemMayor[6].Contains(".")) { itemMayor[6] = itemMayor[6].Replace(".", ""); } itemMayor[7] = itemMayor[7].Replace(".", ""); itemMayor[8] = itemMayor[8].Replace(".", ""); objMayor.Debe = Convert.ToDecimal(itemMayor[6]); objMayor.Haber = Convert.ToDecimal(itemMayor[7]); objMayor.Saldo = Convert.ToDecimal(itemMayor[8]); objMayor.NombreCuentaContable = itemMayor[9]; if (itemMayor[5] != "Total Final:") { objMayor.VoucherId = Convert.ToInt32(itemMayor[11]); objMayor.DetalleVoucherID = Convert.ToInt32(itemMayor[12]); } LstLibroMayor.Add(objMayor); } } return(LstLibroMayor); }
public static List <LibroHonorariosDeTerceros> ProcesarLibroHonorariosTerceros(FacturaPoliContext db, ClientesContablesModel ObjCliente, QuickEmisorModel EstaEmpresa, List <string[]> BoletasNoProcesadas, string FechaContabilizacion) { BoletasNoProcesadas.RemoveRange(0, 8); int NumeroFinal = BoletasNoProcesadas.Count(); //Arreglo para simular los elementos de un array partiendo del 0 int IndexElementosNoDeseados = BoletasNoProcesadas.Count() - 3; //Arreglo para simular los elementos de un array partiendo del 0 int CantidadDeElementosAeliminar = NumeroFinal - IndexElementosNoDeseados; BoletasNoProcesadas.RemoveRange(IndexElementosNoDeseados, CantidadDeElementosAeliminar); List <LibroHonorariosDeTerceros> ListaARetornar = new List <LibroHonorariosDeTerceros>(); string TipoReceptor = "H"; List <LibroHonorariosDeTerceros> SinRepetidos = new List <LibroHonorariosDeTerceros>(); foreach (string[] ColumnaBoleta in BoletasNoProcesadas) { LibroHonorariosDeTerceros VerificadorLibroHonorTercero = new LibroHonorariosDeTerceros(); DateTime FechaConta = ParseExtensions.ToDD_MM_AAAA_Multi(FechaContabilizacion); DateTime FechaInicial = ParseExtensions.ToDD_MM_AAAA_Multi(ColumnaBoleta[2]); DateTime FechaFinal = ParseExtensions.ToDD_MM_AAAA_Multi(ColumnaBoleta[5]); int Folio = Convert.ToInt32(ColumnaBoleta[0]); string Estado = ColumnaBoleta[1].Trim(); string RutPrestador = ColumnaBoleta[6].Trim(); string NombrePrestador = ColumnaBoleta[7].Trim(); decimal Bruto = Convert.ToDecimal(ColumnaBoleta[8].Replace(".", "")); decimal Retenido = Convert.ToDecimal(ColumnaBoleta[9].Replace(".", "")); decimal Pagado = Convert.ToDecimal(ColumnaBoleta[10].Replace(".", "")); SinRepetidos = db.DBLibroHonorariosTerceros.Where(x => x.ClienteContable.ClientesContablesModelID == ObjCliente.ClientesContablesModelID && x.NumOFolio == Folio && x.Receptor.RUT == RutPrestador && x.HaSidoConvertidoAVoucher == true && x.TipoLibro == TipoCentralizacion.Honorarios).ToList(); List <VoucherModel> EstaVigenteEncontrado = new List <VoucherModel>(); VoucherModel VoucherEncontrado = new VoucherModel(); if (SinRepetidos != null || SinRepetidos.Count() > 0) { foreach (var ItemRepetido in SinRepetidos) { VoucherEncontrado = db.DBVoucher.SingleOrDefault(x => x.VoucherModelID == ItemRepetido.VoucherModel.VoucherModelID); if (VoucherEncontrado.DadoDeBaja == false) { EstaVigenteEncontrado.Add(VoucherEncontrado); } } } if (SinRepetidos.Count() > 0 && SinRepetidos != null && EstaVigenteEncontrado.Count() > 0) { continue; } if (Estado == "VIGENTE") { VerificadorLibroHonorTercero.FechaContabilizacion = FechaConta; VerificadorLibroHonorTercero.Estado = Estado; VerificadorLibroHonorTercero.ClienteContable = ObjCliente; VerificadorLibroHonorTercero.NumOFolio = Folio; VerificadorLibroHonorTercero.FechaInicial = FechaInicial; VerificadorLibroHonorTercero.RutEmpresa = EstaEmpresa.RUTEmpresa; VerificadorLibroHonorTercero.NombreEmpresa = EstaEmpresa.RazonSocial; VerificadorLibroHonorTercero.FechaFinal = FechaFinal; VerificadorLibroHonorTercero.RutReceptor = RutPrestador; VerificadorLibroHonorTercero.NombreReceptor = NombrePrestador; VerificadorLibroHonorTercero.Brutos = Bruto; VerificadorLibroHonorTercero.Retenidos = Retenido; VerificadorLibroHonorTercero.Pagado = Pagado; QuickReceptorModel objPrestador = QuickReceptorModel.CrearOActualizarPrestadorPorRut(VerificadorLibroHonorTercero.RutReceptor, VerificadorLibroHonorTercero.NombreReceptor, ObjCliente, db, TipoReceptor); VerificadorLibroHonorTercero.Receptor = objPrestador; ListaARetornar.Add(VerificadorLibroHonorTercero); } } if (ListaARetornar.Count() > 0 && SinRepetidos.Count() == 0) { db.DBLibroHonorariosTerceros.AddRange(ListaARetornar); db.SaveChanges(); } return(ListaARetornar); }
//Queda pendiente crear este mismo metodo pero generico para reutilizar. //public static List<ObjCartolaYVouchers> ConvertirAObjetoCartola(HttpPostedFileBase file) //{ // List<ObjCartolaYVouchers> ReturnValues = new List<ObjCartolaYVouchers>(); // if (file == null || file.ContentLength == 0) // { // string Error = "Error Excel Vacio"; // } // else // { // if (file.FileName.EndsWith("xls") || file.FileName.EndsWith("xlsx")) // { // string path = ParseExtensions.Get_Temp_path(file.FileName); // Le indicamos la ruta donde guardará el excel. // if (File.Exists(path)) // { // File.Delete(path); //Si ya existe lo elimina. // } // file.SaveAs(path); //Guardamos momentaneamente el fichero. -> La idea es extraer su información y luego eliminarlo. // Application application = new Application(); // Workbook workBook = application.Workbooks.Open(path); // Worksheet worksheet = workBook.ActiveSheet; // Range range = worksheet.UsedRange; // for (int row = 2; row <= range.Rows.Count; row++) // { // ObjCartolaYVouchers FilaAGuardar = new ObjCartolaYVouchers(); // FilaAGuardar.Fecha = ParseExtensions.ToDD_MM_AAAA_Multi(((Range)range.Cells[row, 1]).Text); // FilaAGuardar.Docum = Convert.ToInt32(((Range)range.Cells[row, 2]).Text); // FilaAGuardar.Detalle = ((Range)range.Cells[row, 3]).Text; // FilaAGuardar.Debe = decimal.Parse(((Range)range.Cells[row, 4]).Text); // FilaAGuardar.Haber = decimal.Parse(((Range)range.Cells[row, 5]).Text); // FilaAGuardar.Saldo = decimal.Parse(((Range)range.Cells[row, 6]).Text); // //Parte del voucher // FilaAGuardar.CodigoInterno = ((Range)range.Cells[row, 7]).Text; // FilaAGuardar.Rut = ((Range)range.Cells[row, 8]).Text; // FilaAGuardar.Glosa = ((Range)range.Cells[row, 9]).Text; // ReturnValues.Add(FilaAGuardar); // } // workBook.Close(); // File.Delete(path); // } // } // return ReturnValues; //} public static Tuple <bool, List <ObjCartolaYVouchers> > ConvertirAVoucher(List <ObjCartolaYVouchers> LstCartolaYVouchers, ClientesContablesModel ObjCliente, FacturaPoliContext db, CuentaContableModel CuentaConsultada, string FechaCartola, int NumeroCartola) { bool Result = false; List <ObjCartolaYVouchers> LosQueNoPudieronInsertarse = new List <ObjCartolaYVouchers>(); List <ObjCartolaYVouchers> LosQueTienenInformacion = LstCartolaYVouchers.Where(x => !string.IsNullOrWhiteSpace(x.CodigoInterno)).ToList(); if (!LosQueTienenInformacion.Any()) { throw new Exception("No hay registros validos para insertar."); } //Los que están en la cartola pero no en el mayor... List <ObjCartolaYVouchers> Pendientes = LstCartolaYVouchers.Where(x => string.IsNullOrWhiteSpace(x.CodigoInterno)).ToList(); LosQueNoPudieronInsertarse.AddRange(Pendientes); List <CartolaBancariaModel> CartolaCompleta = new List <CartolaBancariaModel>(); if (LstCartolaYVouchers.Any()) { db.Configuration.AutoDetectChangesEnabled = false; //revisar como mejora la performance DateTime FechaConvertida = ParseExtensions.ToDD_MM_AAAA_Multi(FechaCartola); DeleteCartolaBancariaExistente(FechaConvertida, NumeroCartola, db, ObjCliente); List <CartolaBancariaModel> CartolaDetalle = new List <CartolaBancariaModel>(); DateTime Fecha = LosQueTienenInformacion.FirstOrDefault().Fecha; int? nullableProxVoucherNumber = ParseExtensions.GetNumVoucher(ObjCliente, db, Fecha.Month, Fecha.Year); int baseNumberFolio = nullableProxVoucherNumber.Value; List <VoucherModel> LstVoucher = new List <VoucherModel>(); foreach (ObjCartolaYVouchers itemCartola in LosQueTienenInformacion) { CuentaContableModel CuentaAUsar = UtilesContabilidad.CuentaContableDesdeCodInterno(itemCartola.CodigoInterno, ObjCliente); QuickReceptorModel Prestador = UtilesContabilidad.ObtenerPrestadorSiExiste(itemCartola.Rut, db, ObjCliente); TipoOrigen TipoPrestador = UtilesContabilidad.RetornaTipoReceptor(Prestador); if (CuentaAUsar == null) { throw new Exception($"La cuenta contable que intentas ingresar no está en el plan de cuentas O no está digitada en el excel CUENTA CONTABLE CON ERROR : {itemCartola.CodigoInterno}"); } if (CuentaAUsar.TieneAuxiliar == 1 && Prestador != null || CuentaAUsar.TieneAuxiliar == 0 && Prestador == null) { VoucherModel CapaVoucher = new VoucherModel(); CapaVoucher.TipoOrigenVoucher = TipoPrestador; CapaVoucher.FechaEmision = itemCartola.Fecha; CapaVoucher.NumeroVoucher = baseNumberFolio; CapaVoucher.NumVoucherWithDate = ParseExtensions.BuildNewFormatNumVoucher(baseNumberFolio, Fecha); CapaVoucher.ClientesContablesModelID = ObjCliente.ClientesContablesModelID; CapaVoucher.Glosa = itemCartola.Glosa; if (itemCartola.Debe > 0 && itemCartola.Haber == 0) { CapaVoucher.Tipo = TipoVoucher.Ingreso; } else if (itemCartola.Haber > 0 && itemCartola.Debe == 0) { CapaVoucher.Tipo = TipoVoucher.Egreso; } //Armamos tabla Detalle Voucher //1 List <DetalleVoucherModel> LstToEvaluate = new List <DetalleVoucherModel>(); DetalleVoucherModel DetalleCartola = new DetalleVoucherModel(); //cada linea es solo 1 monto DetalleCartola.VoucherModelID = CapaVoucher.VoucherModelID; DetalleCartola.ObjCuentaContable = CuentaConsultada; DetalleCartola.FechaDoc = itemCartola.Fecha; DetalleCartola.GlosaDetalle = itemCartola.Glosa; if (itemCartola.Debe > 0 && itemCartola.Haber == 0) { DetalleCartola.MontoDebe = itemCartola.Debe; } else if (itemCartola.Haber > 0 && itemCartola.Debe == 0) { DetalleCartola.MontoHaber = itemCartola.Haber; } //2 DetalleVoucherModel DetalleConciliacion = new DetalleVoucherModel(); DetalleConciliacion.VoucherModelID = CapaVoucher.VoucherModelID; DetalleConciliacion.FechaDoc = itemCartola.Fecha; DetalleConciliacion.ObjCuentaContable = CuentaAUsar; DetalleConciliacion.GlosaDetalle = itemCartola.Glosa; if (DetalleCartola.MontoDebe > 0 && DetalleCartola.MontoHaber == 0) { DetalleConciliacion.MontoHaber = DetalleCartola.MontoDebe; } else if (DetalleCartola.MontoHaber > 0 && DetalleCartola.MontoDebe == 0) { DetalleConciliacion.MontoDebe = DetalleCartola.MontoHaber; } LstToEvaluate.Add(DetalleCartola); LstToEvaluate.Add(DetalleConciliacion); //Guardamos los detalles en una lista de detalles if (LstToEvaluate.Sum(r => r.MontoDebe) == LstToEvaluate.Sum(r => r.MontoHaber)) { foreach (DetalleVoucherModel itemDetalle in LstToEvaluate) { itemDetalle.Conciliado = true; } CapaVoucher.ListaDetalleVoucher = LstToEvaluate; LstVoucher.Add(CapaVoucher); if (CuentaAUsar.TieneAuxiliar == 1 && Prestador != null) { foreach (DetalleVoucherModel NuevoDetalleVoucher in LstToEvaluate) { if (NuevoDetalleVoucher.ObjCuentaContable == CuentaAUsar) { CuentaContableModel CtaAux = NuevoDetalleVoucher.ObjCuentaContable; AuxiliaresModel Auxiliar = new AuxiliaresModel(); Auxiliar.LineaNumeroDetalle = CapaVoucher.ListaDetalleVoucher.Count; Auxiliar.MontoTotal = NuevoDetalleVoucher.MontoDebe + NuevoDetalleVoucher.MontoHaber; Auxiliar.objCtaContable = CtaAux; NuevoDetalleVoucher.Auxiliar = Auxiliar; List <AuxiliaresDetalleModel> lstAuxDetalle = new List <AuxiliaresDetalleModel>(); AuxiliaresDetalleModel nuevoAuxDetalle = new AuxiliaresDetalleModel(); decimal MontoTotal = NuevoDetalleVoucher.MontoDebe + NuevoDetalleVoucher.MontoHaber; nuevoAuxDetalle.TipoDocumento = itemCartola.TipoDteNumVoucher; nuevoAuxDetalle.Fecha = itemCartola.Fecha; nuevoAuxDetalle.FechaContabilizacion = itemCartola.Fecha; nuevoAuxDetalle.Folio = itemCartola.Docum; nuevoAuxDetalle.Individuo2 = Prestador; nuevoAuxDetalle.MontoNetoLinea = 0; nuevoAuxDetalle.MontoExentoLinea = 0; nuevoAuxDetalle.MontoIVALinea = 0; nuevoAuxDetalle.MontoTotalLinea = MontoTotal; nuevoAuxDetalle.AuxiliaresModelID = Auxiliar.AuxiliaresModelID; nuevoAuxDetalle.MontoIVANoRecuperable = 0; nuevoAuxDetalle.MontoIVAUsoComun = 0; nuevoAuxDetalle.MontoIVAActivoFijo = 0; if (CtaAux.TipoAuxiliarQueUtiliza == TipoAuxiliar.Honorarios) { nuevoAuxDetalle.ValorLiquido = MontoTotal; } lstAuxDetalle.Add(nuevoAuxDetalle); Auxiliar.ListaDetalleAuxiliares = lstAuxDetalle; } } } baseNumberFolio++; } } else { LosQueNoPudieronInsertarse.Add(itemCartola); } } List <DetalleVoucherModel> detalle = LstVoucher.SelectMany(x => x.ListaDetalleVoucher.Where(y => y.Auxiliar != null)).ToList(); db.DBVoucher.AddRange(LstVoucher); db.SaveChanges(); if (detalle.Any()) { detalle.ForEach(x => { x.Auxiliar.DetalleVoucherModelID = x.DetalleVoucherModelID; }); foreach (AuxiliaresModel itemAuxiliar in detalle.Select(x => x.Auxiliar).ToArray()) { db.Entry(itemAuxiliar).State = System.Data.Entity.EntityState.Modified; } db.SaveChanges(); } CartolaDetalle = LstVoucher.SelectMany(x => x.ListaDetalleVoucher.Where(y => y.ObjCuentaContable.CuentaContableModelID == CuentaConsultada.CuentaContableModelID)) .Select(x => new CartolaBancariaModel { VoucherModelID = x.VoucherModelID, Fecha = x.FechaDoc, Folio = x.Auxiliar != null ? x.Auxiliar.ListaDetalleAuxiliares.FirstOrDefault().Folio : 0, EstaConciliado = true, Detalle = x.GlosaDetalle, CuentaContableModelID = x.ObjCuentaContable, Debe = x.MontoDebe, Haber = x.MontoHaber }).ToList(); bool ResultadoInsercionCartolaBancaria = GuardarCartolaBancaria(CartolaDetalle, FechaCartola, NumeroCartola, CuentaConsultada, ObjCliente, db); Result = true; } else { throw new Exception("No hay registros para insertar."); } return(Tuple.Create(Result, LosQueNoPudieronInsertarse)); }
public static List <CartolaBancariaPuraModel> DeExcelACartolaBancaria(HttpPostedFileBase file, FacturaPoliContext db) { List <CartolaBancariaPuraModel> ReturnValues = new List <CartolaBancariaPuraModel>(); try { if (file == null || file.ContentLength == 0) { string Error = "Error Excel Vacio"; } else { if (file.FileName.EndsWith("xls") || file.FileName.EndsWith("xlsx")) { string path = ParseExtensions.Get_Temp_path(file.FileName); // Le indicamos la ruta donde guardará el excel. if (File.Exists(path)) { File.Delete(path); //Si ya existe lo elimina. } file.SaveAs(path); //Guardamos momentaneamente el fichero. -> La idea es extraer su información y luego eliminarlo. Application application = new Application(); Workbook workBook = application.Workbooks.Open(path); Worksheet worksheet = workBook.ActiveSheet; Range range = worksheet.UsedRange; for (int row = 2; row <= range.Rows.Count; row++) { CartolaBancariaPuraModel FilaAGuardar = new CartolaBancariaPuraModel(); FilaAGuardar.Fecha = ParseExtensions.ToDD_MM_AAAA_Multi(((Range)range.Cells[row, 1]).Text); FilaAGuardar.Docum = Convert.ToInt32(((Range)range.Cells[row, 2]).Text); FilaAGuardar.Detalle = ((Range)range.Cells[row, 3]).Text; FilaAGuardar.Debe = decimal.Parse(((Range)range.Cells[row, 4]).Text); FilaAGuardar.Haber = decimal.Parse(((Range)range.Cells[row, 5]).Text); FilaAGuardar.Saldo = decimal.Parse(((Range)range.Cells[row, 6]).Text); //Parte del voucher ReturnValues.Add(FilaAGuardar); } workBook.Close(); File.Delete(path); } return(ReturnValues); } } catch (Exception ex) { ErrorMensajeMonitoreo Error = new ErrorMensajeMonitoreo() { Mensaje = ex.Message }; db.DBErrores.Add(Error); db.SaveChanges(); return(null); } return(ReturnValues); }