/// <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(Contexto.CodigoSAP))
                {
                    resultado = false;
                    mensaje   = Properties.Resources.ClienteEdicion_MsgCodigoSAPRequerida;
                    txtCodigoSAP.Focus();
                }
                else if (string.IsNullOrWhiteSpace(Contexto.Descripcion))
                {
                    resultado = false;
                    mensaje   = Properties.Resources.ClienteEdicion_MsgDescripcionRequerida;
                    txtDescripcion.Focus();
                }
                else if (cmbActivo.SelectedItem == null)
                {
                    resultado = false;
                    mensaje   = Properties.Resources.ClienteEdicion_MsgActivoRequerida;
                    cmbActivo.Focus();
                }
                else
                {
                    int clienteId = Contexto.ClienteID;

                    var         clientePL = new ClientePL();
                    ClienteInfo cliente   = clientePL.ObtenerPorDescripcion(Contexto.Descripcion);

                    if (cliente != null && (clienteId == 0 || clienteId != cliente.ClienteID))
                    {
                        resultado = false;
                        mensaje   = string.Format(Properties.Resources.ClienteEdicion_MsgDescripcionExistente, cliente.ClienteID);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }

            if (!string.IsNullOrWhiteSpace(mensaje))
            {
                SkMessageBox.Show(this, mensaje, MessageBoxButton.OK, MessageImage.Warning);
            }
            return(resultado);
        }
        /// <summary>
        /// Obtiene los datos del elemento seleccionado en la ayuda Folio de Entrada.
        /// </summary>
        /// <param name="filtro"></param>
        private void ObtenerDatosAyudaFolioEntrada(string filtro)
        {
            List <string> aretes = new List <string>();

            muertesEnTransitoInfoSeleccionado = skAyudaFolioEntrada.Info;
            InicializarAyudaFolioEntrada();
            skAyudaCliente.LimpiarCampos();
            MuertesEnTransitoPL          muertePl     = new MuertesEnTransitoPL();
            ValidacionesFolioVentaMuerte validaciones = new ValidacionesFolioVentaMuerte();

            if (muertesEnTransitoInfoSeleccionado != null && muertesEnTransitoInfoSeleccionado.EntradaGanadoID != 0)
            {
                foreach (AnimalInfo arete in dgAretes.Items)
                {
                    aretes.Add(arete.Arete);
                }
                validaciones = muertePl.ValidarFolio(muertesEnTransitoInfoSeleccionado.FolioEntrada, organizacionID, aretes);
                if (!validaciones.RegistroCondicionMuerte)
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.MuertesEnTransito_FolioSinCondicionMuerte,
                                      MessageBoxButton.OK, MessageImage.Warning);
                    InicializarFormulario();
                    skAyudaFolioEntrada.AsignarFoco();
                }
                else if (validaciones.FolioConMuertesRegistradas)
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.MuertesEnTransito_FolioConRegistroMuertes,
                                      MessageBoxButton.OK, MessageImage.Warning);
                    InicializarFormulario();
                    skAyudaFolioEntrada.AsignarFoco();
                }
                else if (muertesEnTransitoInfoSeleccionado.MuertesTransito == 0)
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.MuertesEnTransito_msgNoTieneMuertes,
                                      MessageBoxButton.OK, MessageImage.Warning);
                    InicializarFormulario();
                    skAyudaFolioEntrada.AsignarFoco();
                }
                else if (muertesEnTransitoInfoSeleccionado.MuertesRegistradas != 0)
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.MuertesEnTransito_msgMuertesRegistradas,
                                      MessageBoxButton.OK, MessageImage.Warning);
                    InicializarFormulario();
                    skAyudaFolioEntrada.AsignarFoco();
                }
                else if (!validaciones.EstatusLote)
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.MuertesEnTransito_LoteInactivo,
                                      MessageBoxButton.OK,
                                      MessageImage.Stop);
                    InicializarFormulario();
                    skAyudaFolioEntrada.AsignarFoco();
                }
                else if (validaciones.Cabezas == 0)
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.MuertesEnTransito_LoteSinCabezas,
                                      MessageBoxButton.OK,
                                      MessageImage.Stop);
                    InicializarFormulario();
                    skAyudaFolioEntrada.AsignarFoco();
                }
                else
                {
                    muertesEnTransitoInfoSeleccionado.OrganizacionID = organizacionID;
                    txtArete.IsEnabled    = true;
                    chkSinArete.IsChecked = false;
                    if (muertesEnTransitoInfoSeleccionado.TipoOrigenID == (int)TipoOrganizacion.CompraDirecta)
                    {
                        txtArete.IsEnabled    = false;
                        chkSinArete.IsChecked = true;
                    }
                    else
                    {
                        AnimalesDelCorral = new List <AnimalInfo>();
                        var muertesEnTransitoPl = new MuertesEnTransitoPL();
                        AnimalesDelCorral = muertesEnTransitoPl.ObtenerAretesPorFolioEntrada(muertesEnTransitoInfoSeleccionado);
                    }

                    if (ProveedoresAsignadosAlEmbarque(muertesEnTransitoInfoSeleccionado.EmbarqueID) <= 1)
                    {
                        var pl          = new ProveedorPL();
                        var cl          = new ClientePL();
                        var clienteInfo = new ClienteInfo();
                        var info        = new ProveedorInfo()
                        {
                            CodigoSAP = muertesEnTransitoInfoSeleccionado.CodigoProveedor
                        };

                        clienteInfo        = cl.ObtenerPorDescripcion(muertesEnTransitoInfoSeleccionado.Proveedor);
                        Contexto.Proveedor = pl.ObtenerPorCodigoSAP(info);
                        if (clienteInfo != null)
                        {
                            skAyudaCliente.IsEnabled = false;
                            muertesEnTransitoInfoSeleccionado.Cliente = clienteInfo;
                            skAyudaCliente.Clave       = muertesEnTransitoInfoSeleccionado.Cliente.CodigoSAP;
                            skAyudaCliente.Descripcion = muertesEnTransitoInfoSeleccionado.Cliente.Descripcion;
                            Contexto.Cliente           = clienteInfo;
                        }
                        else
                        {
                            skAyudaCliente.IsEnabled   = true;
                            skAyudaCliente.Clave       = string.Empty;
                            skAyudaCliente.Descripcion = string.Empty;
                            SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                              Properties.Resources.MuertesEnTransito_ProveedorNoEsCliente,
                                              MessageBoxButton.OK, MessageImage.Warning);
                            skAyudaCliente.Focus();
                        }
                    }
                    else
                    {
                        skAyudaCliente.IsEnabled = true;
                    }

                    Contexto.Proveedor.EmbarqueID = muertesEnTransitoInfoSeleccionado.EmbarqueID;
                    countAreteGenerico            = muertesEnTransitoInfoSeleccionado.MuertesRegistradas + 1;
                    txtOrigen.Text            = muertesEnTransitoInfoSeleccionado.Origen;
                    txtTipoOrigen.Text        = muertesEnTransitoInfoSeleccionado.TipoOrigen;
                    txtCorral.Text            = muertesEnTransitoInfoSeleccionado.Corral;
                    txtLote.Text              = muertesEnTransitoInfoSeleccionado.Lote;
                    txtCabezas.Text           = muertesEnTransitoInfoSeleccionado.Cabezas.ToString();
                    txtMuertesEnTransito.Text = muertesEnTransitoInfoSeleccionado.MuertesTransito.ToString();
                    Animales.Clear();
                    dgAretes.Items.Refresh();
                    txtArete.Clear();
                    txtArete.Focus();
                }
            }
        }