private void ucGe_Menu_event_btnAnular_Click(object sender, EventArgs e)
        {
            // frmRo_WaitForm_Espera FrmEspera = new frmRo_WaitForm_Espera();

            try
            {
                //  FrmEspera.Show();
                bool Bandera_si_Anulo = false;
                if (InfoNovedadBac.IdCalendario != "" && InfoNovedadBac.IdCalendario != null && ListaNovedades.Count() > 0)
                {
                    FrmGe_MotivoAnulacion oFrm = new FrmGe_MotivoAnulacion();
                    if (MessageBox.Show("¿Está seguro que desea anular el reg #: " + InfoNovedadBac.IdCalendario + " ?", "Anulación", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        oFrm.ShowDialog();
                        string MotivoAnulacion = oFrm.motivoAnulacion;

                        foreach (var item in ListaNovedades)
                        {
                            item.MotiAnula       = MotivoAnulacion;
                            item.IdUsuarioUltAnu = param.IdUsuario;
                            item.Fecha_UltAnu    = DateTime.Now;
                            if (BusNovedad.AnularDB(item))
                            {
                                Bandera_si_Anulo = true;
                            }
                            else
                            {
                                Bandera_si_Anulo = false;
                            }

                            // anulo detaallle


                            if (BusNovedad_Detalle.AnularDB(Convert.ToDecimal(param.IdEmpresa), InfoNovedadBac.IdCalendario, InfoNovedadBac.IdRubro, item.IdEmpleado, item.IdNovedad, item.Secuencia))
                            {
                                Bandera_si_Anulo = true;
                            }
                            else
                            {
                                Bandera_si_Anulo = false;
                            }
                        }


                        if (BusNovedadBach.AnularDB(InfoNovedadBac))
                        {
                            Bandera_si_Anulo = true;
                        }
                        else
                        {
                            Bandera_si_Anulo = false;
                        }

                        if (Bandera_si_Anulo == true)
                        {
                            MessageBox.Show("Anulado con éxito el reg #: " + InfoNovedadBac.IdCalendario);
                            CargarData();
                        }
                        else
                        {
                            MessageBox.Show("No se pudo anular el reg #: " + InfoNovedadBac.IdCalendario + " Debido a: "
                                            , "Anulación", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
                else
                {
                    MessageBox.Show("¡No a Seleccionado ningun Registro!");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                Log_Error_bus.Log_Error(ex.ToString());
            }
        }
        public void Grbar()
        {
            try
            {
                switch (Accion)
                {
                case Cl_Enumeradores.eTipo_action.grabar:

                    if (!Validar())
                    {
                        return;
                    }

                    Get();



                    if (InfoCatalogo.IdCatalogo == 218)
                    {
                        if (BusNovedaCab.GrabarDB(InfoNovedadCab, ref IDNovedad, ref MensError))        // grabo cab novedad
                        {
                            InfoNovedadDet.IdNovedad = IDNovedad;
                            if (BusNovedadDet.GrabarDB(InfoNovedadDet, ref MensError))        // grabo detale novedad
                            {
                                InfoGrabar.IdNovedad = (int)IDNovedad;
                                if (BusDiasFaltados.GuardarDB(InfoGrabar))        // grabo reg dias faltados
                                {
                                    MessageBox.Show("Se Guardo Correctamente la Informacion", "Sistemas", MessageBoxButtons.OK, MessageBoxIcon.None);
                                    Limpiar();
                                }
                                else
                                {
                                    MessageBox.Show("Error al Guardar la Informacion ", "Sistemas", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                }
                            }
                        }
                    }
                    else
                    {
                        if (BusDiasFaltados.GuardarDB(InfoGrabar))    // grabo reg dias faltados
                        {
                            MessageBox.Show("Se Guardo Correctamente la Informacion", "Sistemas", MessageBoxButtons.OK, MessageBoxIcon.None);
                            Limpiar();
                        }
                        else
                        {
                            MessageBox.Show("Error al Guardar la Informacion ", "Sistemas", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    break;


                case Cl_Enumeradores.eTipo_action.actualizar:

                    break;

                case Cl_Enumeradores.eTipo_action.Anular:
                    Get();

                    FrmGe_MotivoAnulacion Frm = new FrmGe_MotivoAnulacion();

                    Frm.ShowDialog();
                    InfoGrabar.MotiAnula     = Frm.motivoAnulacion;
                    InfoNovedadCab.MotiAnula = Frm.motivoAnulacion;


                    // seteo datos de anulacion
                    InfoGrabar.IdUsuarioUltAnu = param.IdUsuario;
                    InfoGrabar.Fecha_UltAnu    = DateTime.Now;

                    InfoNovedadCab.IdUsuarioUltAnu = param.IdUsuario;
                    InfoNovedadCab.Fecha_UltAnu    = DateTime.Now;
                    InfoNovedadCab.Estado          = "I";

                    InfoNovedadDet.Estado = "I";

                    InfoGrabar.IdFalta = InfoGeneral.IdFalta;
                    if (InfoGeneral.IdNovedad > 0)
                    {
                        InfoNovedadCab.IdNovedad = (int)InfoGeneral.IdNovedad;
                    }
                    if (InfoCatalogo.IdCatalogo == 218)
                    {
                        if (BusNovedaCab.AnularDB(InfoNovedadCab))    // anulo cab novedad
                        {
                            InfoNovedadDet.IdNovedad = (int)InfoGeneral.IdNovedad;
                            if (BusNovedadDet.AnularDB(InfoNovedadDet))    // anulo detale novedad
                            {
                                if (BusDiasFaltados.Anular(InfoGrabar))    // anulo reg dias faltados
                                {
                                    MessageBox.Show("Se Guardo Correctamente la Informacion", "Sistemas", MessageBoxButtons.OK, MessageBoxIcon.None);
                                    this.Close();
                                }
                                else
                                {
                                    MessageBox.Show("Error al Guardar la Informacion ", "Sistemas", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                }
                            }
                        }
                    }
                    else
                    {
                        if (BusDiasFaltados.Anular(InfoGrabar))
                        {
                            MessageBox.Show("Se Anulo Correctamente el Registro", "Sistemas", MessageBoxButtons.OK, MessageBoxIcon.None);
                            this.Close();
                        }
                        else
                        {
                            MessageBox.Show("No se Pudo Anular el Registro", "Sistemas", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }


                    break;

                case Cl_Enumeradores.eTipo_action.consultar:
                    break;

                case Cl_Enumeradores.eTipo_action.duplicar:
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                Log_Error_bus.Log_Error(ex.ToString());
                MessageBox.Show(ex.ToString());
            }
        }