private void But_Editar_Click(object sender, RoutedEventArgs e)
        {
            if (datagrid1.SelectedItem != null)
            {
                Empresa.Docente.tdocente __docenteselecitem = (Empresa.Docente.tdocente)datagrid1.SelectedItem;
                this._indiquelesueldo = new Dialogos.Dial_IndiqueSueldoDecreto(__docenteselecitem);

                this._indiquelesueldo.ShowDialog();

                if (this._indiquelesueldo.EsValido)
                {
                    if (_indiquelesueldo.EsEdicion)
                    {
                        _decretodocente.Update(_indiquelesueldo.Docente);
                        datagrid1.SelectedItem = _indiquelesueldo.Docente;
                        datagrid1.Items.Refresh();
                    }
                }
                _indiquelesueldo.Close();
            }
            else {
                MessageBox.Show("Debe seleccionar un docente.", "Debe seleccionar un Docente.", MessageBoxButton.OK, MessageBoxImage.Stop);
            }
        }
        private void But_Agregar_Click(object sender, RoutedEventArgs e){
            docenteseleccionado = GlobalItems.DocenteGlobal;
            
            //docenteseleccionado.Decretos.Add();

            if(docenteseleccionado != null){

                if(_decretodocente.EsValidaIncluir(this.Decreto, docenteseleccionado))
                {
                    this._indiquelesueldo = new Dialogos.Dial_IndiqueSueldoDecreto(docenteseleccionado, this.Decreto);
                    this._indiquelesueldo.ShowDialog();

                    
                    if (this._indiquelesueldo.EsValido)
                    {
                        if (_indiquelesueldo.Docente.EstadoLaboral.Id == 2 || _indiquelesueldo.Docente.EstadoLaboral.Id == 3){
                            if (MessageBox.Show("El DOCENTE EXISTE EN OTRO DECRETO COMO;" + docenteseleccionado.EstadoLaboral.Nombre + ". Desea incluirlo en el presente Decreto, Si/No?", "Docente presente en otro decreto, Desea incluirlo, Si/No?", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes){
                                //Existe en otro Decreto.
                                _decretodocente.Agregar(_indiquelesueldo.Docente);
                            }
                        }
                        else{
                            _decretodocente.Agregar(_indiquelesueldo.Docente);
                        }
                    }//el resultado del dialogo del sueldo es valido.

                    this._indiquelesueldo.Close();
                }
                else {
                    MessageBox.Show("El docente seleccionado no se puede incluir en el siguiente decreto, Porque existe o es fallecido.", "No se puede incluir en el presente decreto", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
            else {
                MessageBox.Show("Debe primero seleccionar un docente, en la parte izquierda introdusca la cédula del docente.","Debe seleccionar un docente.",MessageBoxButton.OK,MessageBoxImage.Stop);
            }

        }
 void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
     switch (connectionId)
     {
     case 1:
     this.usercontrol = ((SIC.Objs.Controles.Dialogos.Dial_IndiqueSueldoDecreto)(target));
     return;
     case 2:
     this.But_Aceptar = ((System.Windows.Controls.Button)(target));
     
     #line 13 "..\..\..\..\..\Objs\Controles\Dialogos\Dial_IndiqueSueldoDecreto.xaml"
     this.But_Aceptar.Click += new System.Windows.RoutedEventHandler(this.But_Aceptar_Click);
     
     #line default
     #line hidden
     return;
     case 3:
     this.But_SueldoActualMismo = ((System.Windows.Controls.Button)(target));
     
     #line 14 "..\..\..\..\..\Objs\Controles\Dialogos\Dial_IndiqueSueldoDecreto.xaml"
     this.But_SueldoActualMismo.Click += new System.Windows.RoutedEventHandler(this.But_SueldoActualMismo_Click);
     
     #line default
     #line hidden
     return;
     case 4:
     this.But_Salir = ((System.Windows.Controls.Button)(target));
     
     #line 15 "..\..\..\..\..\Objs\Controles\Dialogos\Dial_IndiqueSueldoDecreto.xaml"
     this.But_Salir.Click += new System.Windows.RoutedEventHandler(this.But_Salir_Click);
     
     #line default
     #line hidden
     return;
     case 5:
     this.lbl_SueldoActual = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 6:
     this.Txt_SueldoDecreto = ((System.Windows.Controls.TextBox)(target));
     
     #line 20 "..\..\..\..\..\Objs\Controles\Dialogos\Dial_IndiqueSueldoDecreto.xaml"
     this.Txt_SueldoDecreto.KeyDown += new System.Windows.Input.KeyEventHandler(this.Txt_SueldoDecreto_KeyDown);
     
     #line default
     #line hidden
     return;
     case 7:
     
     #line 21 "..\..\..\..\..\Objs\Controles\Dialogos\Dial_IndiqueSueldoDecreto.xaml"
     ((System.Windows.Controls.Button)(target)).Click += new System.Windows.RoutedEventHandler(this.Button_Click);
     
     #line default
     #line hidden
     return;
     case 8:
     this.lbl_fechapromedio = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 9:
     this.Txt_Porciento = ((System.Windows.Controls.TextBox)(target));
     
     #line 25 "..\..\..\..\..\Objs\Controles\Dialogos\Dial_IndiqueSueldoDecreto.xaml"
     this.Txt_Porciento.PreviewKeyUp += new System.Windows.Input.KeyEventHandler(this.TextBox_PreviewKeyUp);
     
     #line default
     #line hidden
     return;
     case 10:
     this.Com_PJ = ((System.Windows.Controls.ComboBox)(target));
     
     #line 31 "..\..\..\..\..\Objs\Controles\Dialogos\Dial_IndiqueSueldoDecreto.xaml"
     this.Com_PJ.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.Com_PJ_SelectionChanged);
     
     #line default
     #line hidden
     return;
     }
     this._contentLoaded = true;
 }
 void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target) {
     switch (connectionId)
     {
     case 1:
     this.us_Dial_IndiqueSueldoDecreto = ((SIC.Objs.Controles.Dialogos.Dial_IndiqueSueldoDecreto)(target));
     return;
     case 2:
     this.ch_NoSueldo = ((System.Windows.Controls.CheckBox)(target));
     return;
     case 3:
     this.lbl_SueldoActual = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 4:
     this.Txt_SueldoDecreto = ((System.Windows.Controls.TextBox)(target));
     return;
     case 5:
     this.lbl_fechapromedio = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 6:
     this.Txt_Porciento = ((System.Windows.Controls.TextBox)(target));
     
     #line 24 "..\..\..\..\..\Objs\Controles\Dialogos\Dial_IndiqueSueldoDecreto.xaml"
     this.Txt_Porciento.KeyDown += new System.Windows.Input.KeyEventHandler(this.Txt_Porciento_KeyDown);
     
     #line default
     #line hidden
     return;
     case 7:
     this.lbl_montopromedio = ((System.Windows.Controls.TextBlock)(target));
     return;
     case 8:
     this.But_CalcularSueldoPromedio = ((System.Windows.Controls.Button)(target));
     
     #line 28 "..\..\..\..\..\Objs\Controles\Dialogos\Dial_IndiqueSueldoDecreto.xaml"
     this.But_CalcularSueldoPromedio.Click += new System.Windows.RoutedEventHandler(this.But_CalcularSueldoPromedio_Click);
     
     #line default
     #line hidden
     return;
     case 9:
     this.but_promediotabla = ((System.Windows.Controls.Button)(target));
     
     #line 30 "..\..\..\..\..\Objs\Controles\Dialogos\Dial_IndiqueSueldoDecreto.xaml"
     this.but_promediotabla.Click += new System.Windows.RoutedEventHandler(this.but_promediotabla_Click);
     
     #line default
     #line hidden
     return;
     case 10:
     this.Com_PJ = ((System.Windows.Controls.ComboBox)(target));
     
     #line 44 "..\..\..\..\..\Objs\Controles\Dialogos\Dial_IndiqueSueldoDecreto.xaml"
     this.Com_PJ.SelectionChanged += new System.Windows.Controls.SelectionChangedEventHandler(this.Com_PJ_SelectionChanged);
     
     #line default
     #line hidden
     return;
     case 11:
     this.But_Aceptar = ((System.Windows.Controls.Button)(target));
     
     #line 48 "..\..\..\..\..\Objs\Controles\Dialogos\Dial_IndiqueSueldoDecreto.xaml"
     this.But_Aceptar.Click += new System.Windows.RoutedEventHandler(this.But_Aceptar_Click);
     
     #line default
     #line hidden
     return;
     case 12:
     this.But_SueldoActualMismo = ((System.Windows.Controls.Button)(target));
     
     #line 49 "..\..\..\..\..\Objs\Controles\Dialogos\Dial_IndiqueSueldoDecreto.xaml"
     this.But_SueldoActualMismo.Click += new System.Windows.RoutedEventHandler(this.But_SueldoActualMismo_Click);
     
     #line default
     #line hidden
     return;
     case 13:
     this.But_Salir = ((System.Windows.Controls.Button)(target));
     
     #line 50 "..\..\..\..\..\Objs\Controles\Dialogos\Dial_IndiqueSueldoDecreto.xaml"
     this.But_Salir.Click += new System.Windows.RoutedEventHandler(this.But_Salir_Click);
     
     #line default
     #line hidden
     return;
     }
     this._contentLoaded = true;
 }
        private void But_Agregar_Click(object sender, RoutedEventArgs e){
            Empresa.Docente.tdocente docenteseleccionado = GlobalItems.DocenteGlobal;

            if(docenteseleccionado != null){
               // docenteseleccionado.Decretos = new Empresa.Docente.DecretoDocente(docenteseleccionado).Docentes[0].Decretos;

                    this._indiquelesueldo = new Dialogos.Dial_IndiqueSueldoDecreto(docenteseleccionado, this.Decreto);
                    this._indiquelesueldo.ShowDialog();

                    if(Decreto.InclusionExlucion.Regla(docenteseleccionado,_indiquelesueldo.Tipo) == true)
                    {
                        if(!this.Decreto.InclusionExlucion.Existe(docenteseleccionado)){
                            //No Existe Docente
                            if(docenteseleccionado.EstadoLaboral.Id == 1){
                                //Docente Activo 
                                docenteseleccionado.Decretos.Add(new Empresa.Docente.TDecretoDocente(this.Decreto, _indiquelesueldo.SueldoDecreto, _indiquelesueldo.Tipo));
                                this.Decreto.InclusionExlucion.Agregar(docenteseleccionado);
                                //Actulizacion de datos
                                bw.RunWorkerAsync(this.Decreto);
                                Espera.ShowDialog();
                            }
                            else{
                                if(MessageBox.Show("El Docente Seleccionado existe en el Decreto; " + docenteseleccionado.DecretoActual.Decreto.Nombre + " en Estado de; " + docenteseleccionado.EstadoLaboral.Nombre + ". Desea incluirlo en el presente Decreto, Si/No?", "Docente Presente el otro Decreto, Desea Incluirlo, Si/No?", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes){
                                        docenteseleccionado.Decretos.Add(new Empresa.Docente.TDecretoDocente(this.Decreto, _indiquelesueldo.SueldoDecreto, _indiquelesueldo.Tipo));
                                        this.Decreto.InclusionExlucion.Agregar(docenteseleccionado);
                                        //Actulizacion de datos.
                                        bw.RunWorkerAsync(this.Decreto);
                                        Espera.ShowDialog();
                                }
                            } 
                        }else{
                            //Existe Docente
                            Dialogos.Dial_ExisteDocente mesnsajeExisteDocente = new Dialogos.Dial_ExisteDocente();
                            mesnsajeExisteDocente.ShowDialog();

                            if(mesnsajeExisteDocente.Resultado == MessageBoxResult.Yes) {
                                //Asignando al docente.    
                                if (docenteseleccionado.EstadoLaboral.Id == 1){
                                       //Activo Docente
                                    docenteseleccionado.Decretos.Add(new Empresa.Docente.TDecretoDocente(this.Decreto, _indiquelesueldo.SueldoDecreto, _indiquelesueldo.Tipo));
                                    this.Decreto.InclusionExlucion.Agregar(docenteseleccionado);
                                    bw.RunWorkerAsync(this.Decreto);
                                }else {
                                    
                                    if(MessageBox.Show("El Docente Seleccionado existe en el Decreto; " + docenteseleccionado.DecretoActual.Decreto.Numero + " en Estado de; " + docenteseleccionado.EstadoLaboral.Nombre + ". Desea incluirlo en el presente Decreto, Si/No?", "Docente Presente el otro Decreto, Desea Incluirlo, Si/No?", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) {
                                        docenteseleccionado.Decretos.Add(new Empresa.Docente.TDecretoDocente(this.Decreto, _indiquelesueldo.SueldoDecreto, _indiquelesueldo.Tipo));
                                        this.Decreto.InclusionExlucion.Agregar(docenteseleccionado);
                                        bw.RunWorkerAsync(this.Decreto);
                                    }

                                }
                                Espera.ShowDialog();
                            }
                            mesnsajeExisteDocente.Close();
                        }

                    }
                    else{
                        MessageBox.Show("El Docente Seleccionado no se puede incluir en el siguiente decreto, Existe con el mismo estado(" + docenteseleccionado.EstadoLaboral.Nombre + " o es Fallecido", "", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                this._indiquelesueldo.Close();
             }
            else {
                MessageBox.Show("Debe primero seleccionar un Docente, en la parte izquierda introduzca la cedula del docente.","Debe Seleccionar un Decreto",MessageBoxButton.OK,MessageBoxImage.Stop);
            }

        }