/// <summary>
        /// Método para guardar los valores del contexto
        /// </summary>
        private void Guardar()
        {
            bool guardar = ValidaGuardar();

            if (guardar)
            {
                try
                {
                    var cuentaAlmacenSubFamiliaPL = new CuentaAlmacenSubFamiliaBL();
                    cuentaAlmacenSubFamiliaPL.Guardar(Contexto);
                    SkMessageBox.Show(this, Properties.Resources.GuardadoConExito, MessageBoxButton.OK, MessageImage.Correct);
                    if (Contexto.CuentaAlmacenSubFamiliaID != 0)
                    {
                        confirmaSalir = false;
                        Close();
                    }
                    else
                    {
                        InicializaContexto();
                    }
                }
                catch (ExcepcionGenerica)
                {
                    SkMessageBox.Show(this, Properties.Resources.CuentaAlmacenSubFamilia_ErrorGuardar, MessageBoxButton.OK, MessageImage.Error);
                }
                catch (Exception ex)
                {
                    Logger.Error(ex);
                    SkMessageBox.Show(this, Properties.Resources.CuentaAlmacenSubFamilia_ErrorGuardar, MessageBoxButton.OK, MessageImage.Error);
                }
            }
        }
 /// <summary>
 /// Obtiene la lista para mostrar en el grid
 /// </summary>
 private void ObtenerListaCuentaAlmacenSubFamilia(int inicio, int limite)
 {
     try
     {
         if (ucPaginacion.ContextoAnterior != null)
         {
             bool contextosIguales = ucPaginacion.CompararObjetos(Contexto, ucPaginacion.ContextoAnterior);
             if (!contextosIguales)
             {
                 ucPaginacion.Inicio = 1;
                 inicio = 1;
             }
         }
         var cuentaAlmacenSubFamiliaBL       = new CuentaAlmacenSubFamiliaBL();
         CuentaAlmacenSubFamiliaInfo filtros = ObtenerFiltros();
         var pagina = new PaginacionInfo {
             Inicio = inicio, Limite = limite
         };
         ResultadoInfo <CuentaAlmacenSubFamiliaInfo> resultadoInfo = cuentaAlmacenSubFamiliaBL.ObtenerPorPagina(pagina, filtros);
         if (resultadoInfo != null && resultadoInfo.Lista != null &&
             resultadoInfo.Lista.Count > 0)
         {
             gridDatos.ItemsSource       = resultadoInfo.Lista;
             ucPaginacion.TotalRegistros = resultadoInfo.TotalRegistros;
         }
         else
         {
             ucPaginacion.TotalRegistros = 0;
             ucPaginacion.AsignarValoresIniciales();
             gridDatos.ItemsSource = new List <CuentaAlmacenSubFamilia>();
         }
     }
     catch (ExcepcionGenerica)
     {
         SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.CuentaAlmacenSubFamilia_ErrorBuscar, MessageBoxButton.OK, MessageImage.Error);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.CuentaAlmacenSubFamilia_ErrorBuscar, MessageBoxButton.OK, MessageImage.Error);
     }
 }
        /// <summary>
        /// Metodo que valida los datos para guardar
        /// </summary>
        /// <returns></returns>
        private bool ValidaGuardar()
        {
            bool   resultado = true;
            string mensaje   = string.Empty;

            try
            {
                if (string.IsNullOrWhiteSpace(txtCuentaAlmacenSubFamiliaID.Text))
                {
                    resultado = false;
                    mensaje   = Properties.Resources.CuentaAlmacenSubFamiliaEdicion_MsgCuentaAlmacenSubFamiliaIDRequerida;
                    txtCuentaAlmacenSubFamiliaID.Focus();
                }
                else if (Contexto.Almacen == null || Contexto.Almacen.AlmacenID == 0)
                {
                    resultado = false;
                    mensaje   = Properties.Resources.CuentaAlmacenSubFamiliaEdicion_MsgAlmacenIDRequerida;
                    skAyudaAlmacen.AsignarFoco();
                }
                else if (Contexto.SubFamilia == null || Contexto.SubFamilia.SubFamiliaID == 0)
                {
                    resultado = false;
                    mensaje   = Properties.Resources.CuentaAlmacenSubFamiliaEdicion_MsgSubFamiliaIDRequerida;
                    skAyudaSubFamilia.AsignarFoco();
                }
                else if (Contexto.CuentaSAP == null || Contexto.CuentaSAP.CuentaSAPID == 0)
                {
                    resultado = false;
                    mensaje   = Properties.Resources.CuentaAlmacenSubFamiliaEdicion_MsgCuentaSAPIDRequerida;
                    skAyudaCuentaSAP.AsignarFoco();
                }
                else if (cmbActivo.SelectedItem == null)
                {
                    resultado = false;
                    mensaje   = Properties.Resources.CuentaAlmacenSubFamiliaEdicion_MsgActivoRequerida;
                    cmbActivo.Focus();
                }
                else
                {
                    int cuentaAlmacenSubFamiliaId = Extensor.ValorEntero(txtCuentaAlmacenSubFamiliaID.Text);

                    var cuentaAlmacenSubFamiliaBL = new CuentaAlmacenSubFamiliaBL();
                    IList <CuentaAlmacenSubFamiliaInfo> cuentasAlmacen = cuentaAlmacenSubFamiliaBL.ObtenerCostosSubFamilia(Contexto.Almacen.AlmacenID);

                    CuentaAlmacenSubFamiliaInfo cuentaAlmacenSubFamilia =
                        cuentasAlmacen.FirstOrDefault(
                            cuenta => cuenta.SubFamilia.SubFamiliaID == Contexto.SubFamilia.SubFamiliaID);

                    if (cuentaAlmacenSubFamilia != null && (cuentaAlmacenSubFamiliaId == 0 || cuentaAlmacenSubFamiliaId != cuentaAlmacenSubFamilia.CuentaAlmacenSubFamiliaID))
                    {
                        resultado = false;
                        mensaje   = string.Format(Properties.Resources.CuentaAlmacenSubFamiliaEdicion_MsgDescripcionExistente, cuentaAlmacenSubFamilia.CuentaAlmacenSubFamiliaID);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }

            if (!string.IsNullOrWhiteSpace(mensaje))
            {
                SkMessageBox.Show(this, mensaje, MessageBoxButton.OK, MessageImage.Warning);
            }
            return(resultado);
        }