public ActionResult GuardarAperturaCierre(AperturaCierreCaja aperturaCierrecaja)
        {
            CajaAperturaCierreViewModel model = new CajaAperturaCierreViewModel();

            model.MensajeError = "";
            model.Resultado    = true;

            if (!ModelState.IsValid)
            {
                var viewModel = new CajaAperturaCierreViewModel(aperturaCierrecaja)
                {
                    Cajas    = _context.Cajas.ToList(),
                    Usuarios = _context.Users.ToList()
                };

                return(View("CajaAperturaCierreFormulario", viewModel));
            }

            string usuarioCajaOK  = _conexionBD.ValidarUsuarioCaja(aperturaCierrecaja.UsuarioId);
            string cajaDisponible = _conexionBD.CajaDisponible(aperturaCierrecaja.CajaId);

            if (usuarioCajaOK == "1" || cajaDisponible == "1")
            {
                var viewModel = new CajaAperturaCierreViewModel(aperturaCierrecaja)
                {
                    Cajas    = _context.Cajas.ToList(),
                    Usuarios = _context.Users.ToList()
                };

                if (usuarioCajaOK == "1")
                {
                    viewModel.MensajeError = "El usuario seleccionado posee una caja abierta. Debe cerrar primero dicha caja.";
                }
                else if (cajaDisponible == "1")
                {
                    viewModel.MensajeError = "Caja no disponible. Ya se encuentra utilizada por otro usuario.";
                }

                viewModel.Resultado = false;
                return(View("CajaAperturaCierreFormulario", viewModel));
            }

            if (aperturaCierrecaja.Id == 0)
            {
                aperturaCierrecaja.EstaAbierta = true;
                _context.CajaAperturaCierres.Add(aperturaCierrecaja);
            }
            else
            {
                var aperturaCierrecajaBD = _context.CajaAperturaCierres.Single(c => c.Id == aperturaCierrecaja.Id);
                Mapper.Map <AperturaCierreCaja, AperturaCierreCaja>(aperturaCierrecaja, aperturaCierrecajaBD);
            }

            _context.SaveChanges();

            return(RedirectToAction("Index"));
        }
 public CajaAperturaCierreViewModel(AperturaCierreCaja aperturaCierre)
 {
     Id           = aperturaCierre.Id;
     CajaId       = aperturaCierre.CajaId;
     Fecha        = aperturaCierre.Fecha;
     SaldoInicial = aperturaCierre.SaldoInicial;
     EstaAbierta  = aperturaCierre.EstaAbierta;
     UsuarioId    = aperturaCierre.UsuarioId;
 }