/// <summary>
        /// Eliminar proveedor seleccionado
        /// </summary>
        /// <param name="costoSeleccionado"></param>
        private void EliminarProveedorSeleccionado(FleteDetalleInfo costoSeleccionado)
        {
            try
            {
                var programaciondeFletePl = new ProgramaciondeFletesPL();
                int indice = gridDatosCostos.SelectedIndex;
                listaCostosFletesDetalleInfo.RemoveAt(indice);
                if (costoSeleccionado.FleteDetalleID > 0)
                {
                    eliminadosFleteDetalle.Add(costoSeleccionado);
                    if (eliminadosFleteDetalle.Count > 0)
                    {
                        if (programaciondeFletePl.EliminarFleteDetalle(eliminadosFleteDetalle, AuxConfiguracion.ObtenerUsuarioLogueado()))
                        {
                            eliminadosFleteDetalle.Clear();
                        }
                    }
                }

                gridDatosCostos.ItemsSource = null;
                gridDatosCostos.ItemsSource = listaCostosFletesDetalleInfo;
            }
            catch (ExcepcionGenerica ex)
            {
                Logger.Error(ex);
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }
 /// <summary>
 /// Elinima costo seleccionado
 /// </summary>
 /// <param name="costoSeleccionado"></param>
 /// <param name="listaCostosFletesDetalleInfo"></param>
 /// <returns></returns>
 public List <FleteDetalleInfo> ElimnarCostoSeleccionado(FleteDetalleInfo costoSeleccionado, List <FleteDetalleInfo> listaCostosFletesDetalleInfo)
 {
     try
     {
         Logger.Info();
         var programacionFletInfo = listaCostosFletesDetalleInfo.Where(dato => dato.CostoID != costoSeleccionado.CostoID).ToList();
         return(programacionFletInfo);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
 /// <summary>
 /// Elimina costo seleccionado
 /// </summary>
 /// <param name="costoSeleccionado"></param>
 /// <param name="listaCostosFletesDetalleInfo"></param>
 /// <returns></returns>
 public List <FleteDetalleInfo> ElimnarCostoSeleccionado(FleteDetalleInfo costoSeleccionado, List <FleteDetalleInfo> listaCostosFletesDetalleInfo)
 {
     try
     {
         Logger.Info();
         var programacionFletesBl = new ProgramaciondeFletesBL();
         List <FleteDetalleInfo> fleteDetalleInfo = programacionFletesBl.ElimnarCostoSeleccionado(costoSeleccionado, listaCostosFletesDetalleInfo);
         return(fleteDetalleInfo);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
        /// <summary>
        /// Click boton agregar
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnAgregar_OnClick(object sender, RoutedEventArgs e)
        {
            try
            {
                var resultadoValidacion = ValidarCamposBlanco();
                if (resultadoValidacion.Resultado)
                {
                    if (txtTarifa.Value != null)
                    {
                        var fleteDetalleInfo = new FleteDetalleInfo
                        {
                            CostoID         = Convert.ToInt32(skAyudaCosto.Clave.Trim()),
                            Tarifa          = (decimal)txtTarifa.Value,
                            Costo           = skAyudaCosto.Descripcion.Trim(),
                            UsuarioCreacion = AuxConfiguracion.ObtenerUsuarioLogueado(),
                        };
                        gridDatosCostos.ItemsSource = null;
                        if ((string)btnAgregar.Content == Properties.Resources.RegistrarProgramacionFlete_btnActualizar)
                        {
                            if (listaCostosFletesDetalleInfo != null)
                            {
                                if (listaCostosFletesDetalleInfo.Count >= indiceActual)
                                {
                                    FleteDetalleInfo detalleInfo = listaCostosFletesDetalleInfo[indiceActual];
                                    detalleInfo.CostoID = int.Parse(skAyudaCosto.Clave);
                                    detalleInfo.Costo   = skAyudaCosto.Descripcion;
                                    detalleInfo.Tarifa  = (decimal)txtTarifa.Value;
                                    if (detalleInfo.Opcion != 1)
                                    {
                                        detalleInfo.Opcion = 2;
                                        detalleInfo.UsuarioModificacion = AuxConfiguracion.ObtenerOrganizacionUsuario();
                                    }
                                }
                            }
                            RegresoFleteDetalleInfos    = listaCostosFletesDetalleInfo;
                            gridDatosCostos.ItemsSource = listaCostosFletesDetalleInfo;
                        }
                        else
                        {
                            fleteDetalleInfo.Opcion  = 1;
                            RegresoFleteDetalleInfos = listaCostosFletesDetalleInfo;
                            listaCostosFletesDetalleInfo.Add(fleteDetalleInfo);
                            gridDatosCostos.ItemsSource = listaCostosFletesDetalleInfo;
                        }
                    }

                    btnAgregar.Content = Properties.Resources.RegistrarProgramacionFlete_btnAgregar;
                    LimpiarCampos();
                }
                else
                {
                    string mensaje = string.IsNullOrEmpty(resultadoValidacion.Mensaje)
                        ? Properties.Resources.DatosBlancos_CorteGanado
                        : resultadoValidacion.Mensaje;
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      mensaje, MessageBoxButton.OK, MessageImage.Stop);
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                txtTarifa.Focus();
            }
        }