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 ActionResult ImportarExcelConciliacionBancaria(ObjCartolaMacro DataCartola)
        {
            string                 UserID     = User.Identity.GetUserId();
            FacturaPoliContext     db         = ParseExtensions.GetDatabaseContext(UserID);
            ClientesContablesModel objCliente = PerfilamientoModule.GetClienteContableSeleccionado(Session, UserID, db);

            Session["CartolaImportada"] = null;

            using (var dbContextTransaction = db.Database.BeginTransaction())
            {
                try
                {
                    if (DataCartola.files != null && DataCartola.files.ContentLength > 0)
                    {
                        string fileExtension = Path.GetExtension(DataCartola.files.FileName);

                        if (fileExtension == ".xlsx" || fileExtension == ".xls")
                        {
                            List <string[]> MayorConsultado = Session["LibroMayorTwo"] as List <string[]>;
                            List <LibroMayorConciliacion> MayorConsultadoLista = CartolaBancariaModel.getListaLibroMayor(MayorConsultado);

                            string NombreCtaCont = MayorConsultado[0][9];
                            ViewBag.NombreCuentaContable = NombreCtaCont;

                            int CuentaConsultadaID = (int)Session["ObjetoCuentaContableConsultada"];
                            CuentaContableModel CuentaConsultada = UtilesContabilidad.CuentaContableDesdeID(CuentaConsultadaID, objCliente);
                            //DeExcelAObjetoCartolaYVoucher

                            var ObjCartolaCompleto = CartolaBancariaMacroModel.ConvertirAObjetoCartola(DataCartola.files /*NombreCtaCont*/);
                            var ResultadoInsercion = CartolaBancariaMacroModel.ConvertirAVoucher(ObjCartolaCompleto, objCliente, db, CuentaConsultada, DataCartola.FechaCartola, DataCartola.NumeroCartola);

                            //Usar para el reporte de conciliacion bancaria
                            var NoInsertados = ResultadoInsercion.Item2;

                            Session["ReporteNoInsertados"] = NoInsertados;

                            if (ResultadoInsercion.Item1 == false)
                            {
                                TempData["Error"] = "Esta cartola ya existe.";
                                return(RedirectToAction("ConciliacionBAutomatica", "ContabilidadConciliacionBancaria"));
                            }
                        }
                    }
                    else
                    {
                        TempData["Error"] = "No existen registros en el fichero.";
                        return(RedirectToAction("ConciliacionBAutomatica", "ContabilidadConciliacionBancaria"));
                    }

                    dbContextTransaction.Commit();

                    TempData["Correcto"] = "Cartola y Vouchers creados con éxito.";
                    return(RedirectToAction("ResultadoConciliacion", "ContabilidadConciliacionBancaria"));
                }
                catch (Exception ex)
                {
                    dbContextTransaction.Rollback();
                    TempData["Error"] = $"Error al realizar esta acción. Mensaje de error: {ex.Message}. En caso de necesitarlo informar este error.";
                    db.DBErrores.Add(new ErrorMensajeMonitoreo {
                        Mensaje = ex.Message
                    });
                    db.SaveChanges();
                    return(RedirectToAction("ConciliacionBAutomatica", "ContabilidadConciliacionBancaria"));
                }
            }
        }