/// <summary>
 /// Verifica que el costo sea de flete
 /// </summary>
 /// <param name="clave"></param>
 private void ObtenerDatosCostos(string clave)
 {
     try
     {
         if (string.IsNullOrEmpty(clave))
         {
             return;
         }
         if (skAyudaCostos.Info == null)
         {
             return;
         }
         if (skAyudaCostos.Info.TipoCosto.TipoCostoID !=
             TipoCostoEnum.Flete.GetHashCode())
         {
             skAyudaCostos.Info = new CostoInfo
             {
                 ListaTipoCostos = new List <TipoCostoInfo>
                 {
                     new TipoCostoInfo
                     {
                         TipoCostoID = TipoCostoEnum.Flete.GetHashCode()
                     }
                 },
                 Activo = EstatusEnum.Activo
             };
             skAyudaCostos.LimpiarCampos();
             SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                               Properties.Resources.OtrosCostos_MensajeCostoInvalido,
                               MessageBoxButton.OK,
                               MessageImage.Stop);
         }
         else
         {
             skAyudaCostos.Info = new CostoInfo
             {
                 ListaTipoCostos = new List <TipoCostoInfo>
                 {
                     new TipoCostoInfo
                     {
                         TipoCostoID = TipoCostoEnum.Flete.GetHashCode()
                     }
                 },
                 Activo = EstatusEnum.Activo
             };
             TxtTarifa.Focus();
         }
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
     }
 }
        /// <summary>
        /// Valida si se puede agregar el costo
        /// </summary>
        private ResultadoValidacion ValidarAgregar(bool actualizar)
        {
            var resultado = new ResultadoValidacion();

            if (String.IsNullOrEmpty(skAyudaCostos.Clave.Trim()) && String.IsNullOrEmpty(skAyudaCostos.Descripcion.Trim()))
            {
                skAyudaCostos.AsignarFoco();
                resultado.Mensaje   = Properties.Resources.RegistrarProgramacionFletesInterna_MensajeValidacionOtrosCostosIngresarCosto;
                resultado.Resultado = false;
                return(resultado);
            }

            if (TxtTarifa.Text == string.Empty || Convert.ToDecimal(TxtTarifa.Value) == 0)
            {
                TxtTarifa.Focus();
                resultado.Mensaje   = Properties.Resources.RegistrarProgramacionFletesInterna_MensajeValidacionOtrosCostosIngresarTarifa;
                resultado.Resultado = false;
                return(resultado);
            }

            if (!actualizar)
            {
                if (ListadoFleteInternoCostoFiltrado != null)
                {
                    if ((from fleteInternoDetalle in ListadoFleteInternoCostoFiltrado
                         where fleteInternoDetalle.Costo.CostoID == Convert.ToInt32(skAyudaCostos.Clave)
                         select fleteInternoDetalle).Any())
                    {
                        skAyudaCostos.AsignarFoco();
                        resultado.Resultado = false;
                        resultado.Mensaje   = Properties.Resources.RegistrarProgramacionFletesInterna_MensajeValidacionOtrosCostosCostoAgregado;
                        return(resultado);
                    }
                }
            }

            resultado.Resultado = true;
            return(resultado);
        }
        /// <summary>
        /// Editar un costo
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnEditar_OnClick(object sender, RoutedEventArgs e)
        {
            var botonEditar = (Button)e.Source;

            try
            {
                var costoInfo = (FleteInternoCostoInfo)Extensor.ClonarInfo(botonEditar.CommandParameter);
                BtnAgregar.Content = Properties.Resources.OtrosCostos_MensajeCosto;

                if (costoInfo == null)
                {
                    return;
                }
                skAyudaCostos.Clave       = costoInfo.Costo.CostoID.ToString(CultureInfo.InvariantCulture);
                skAyudaCostos.Descripcion = costoInfo.Costo.Descripcion;
                skAyudaCostos.IsEnabled   = false;
                TxtTarifa.Value           = costoInfo.Tarifa;
                TxtTarifa.Focus();
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
        }