private void btnAceptar_Click(object sender, EventArgs e)
        {
            errorProvider1.Dispose();

            var valido = Validacion.Validar(errorProvider1, new List<object>
                                                  {
                                                      txtCajaInicial
                                                  });
            if (valido)
            {
                var caja = new CierreCaja
                               {
                                   CajaInicial = Convert.ToDecimal(txtCajaInicial.Valor),
                                   FechaInicio = DateTime.Now,
                                   Identifier = Guid.NewGuid(),
                                   MaxiKioskoId = AppSettings.MaxiKioscoId,
                                   UsuarioId = UsuarioActual.UsuarioId
                               };

                Repository.Agregar(caja);
                Repository.Commit();
                UsuarioActual.CierreCajaIdActual = caja.CierreCajaId;
                EventosFlags.CierreCajaEstado = CierreCajaEstadoEnum.Abierto;
                MessageBox.Show("La caja se ha abierto correctamente");
            }
            else
            {
                DialogResult = DialogResult.None;
            }
        }
        private void Refrescar()
        {
            _cierre = CierreCajaRepository.Listado(c => c.Usuario).Where(
                   c => c.MaxiKioskoId == AppSettings.MaxiKioscoId)
                   .OrderByDescending(c => c.FechaFin).FirstOrDefault(c => c.FechaFin != null);

            Actualizar(null, null);
        }
        private void tsmiAbrirCaja_Click(object sender, EventArgs e)
        {
            //Verifico que no hayan cierres de caja abiertos y que haya una caja inicial
            var cajaFinalAnterior = CierreCajaRepository.MaxiKioscosEntities.CierreCajaUltimaCajaFinal(AppSettings.MaxiKioscoId).FirstOrDefault();
            if (cajaFinalAnterior == null)
            {
                //No hay cierre de caja: ingreso una caja inicial por ser la primera vez
                var frm = new CajaInicial();
                if (frm.ShowDialog() == DialogResult.OK && AppSettings.MaxiKioscoEstaOnline)
                {
                    _sincronizacionManager.SincronizarEnSegundoPlano(this, bgWorker, tssProgreso);
                }
            }
            else
            {
                var cierre = new CierreCaja
                                 {
                                     CajaInicial = cajaFinalAnterior.GetValueOrDefault(),
                                     FechaInicio = DateTime.Now,
                                     Identifier = Guid.NewGuid(),
                                     MaxiKioskoId = AppSettings.MaxiKioscoId,
                                     UsuarioId = UsuarioActual.UsuarioId
                                 };
                CierreCajaRepository.Agregar(cierre);
                CierreCajaRepository.Commit();
                EventosFlags.CierreCajaEstado = CierreCajaEstadoEnum.Abierto;
                UsuarioActual.CierreCajaIdActual = cierre.CierreCajaId;
                MessageBox.Show("La caja se ha abierto correctamente");
                ToggleExcepcionesHabilitado();
                if (AppSettings.MaxiKioscoEstaOnline)
                {
                    _sincronizacionManager.SincronizarEnSegundoPlano(this, bgWorker, tssProgreso);
                }

            }
            ToggleAccionesRelacionadasACierreDeCaja();
            ControlarCierreCaja();
        }