public bool CompararObj(Captura obj1, Captura obj2)
        {
            bool bBandera = false;

            if (obj1.FechaReg == obj2.FechaReg)
            {
                if (obj1.cvincidencia == obj2.cvincidencia)
                {
                    if (obj1.cvtipo == obj2.cvtipo)
                    {
                        bBandera = true;
                    }
                }
            }


            return(bBandera);
        }
        public void ValidarExistencia(List <Captura> ltTrab, Captura objtrab)
        {
            bool bBandera = false;
            int  iCont    = 0;

            if (ltTrab.Count != 0)
            {
                while (iCont <= (ltTrab.Count - 1))
                {
                    Captura objComp = ltTrab[iCont];

                    if (CompararObj(objComp, objtrab))
                    {
                        bBandera = true;
                        break;
                    }
                    else
                    {
                        iCont += 1;
                    }
                }

                if (bBandera == true)
                {
                    ltTrab.Remove(ltTrab[iCont]);
                }
                else
                {
                    ltTrab.Add(objtrab);
                }
            }
            else
            {
                ltTrab.Add(objtrab);
            }
        }
        //-----------------------------------------------------------------------------------------------
        //                           C A J A S      D E      T E X T O
        //-----------------------------------------------------------------------------------------------


        //-----------------------------------------------------------------------------------------------
        //                                     E V E N T O S
        //-----------------------------------------------------------------------------------------------

        private void dgvTipoHr_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            //for (int iContador = 0; iContador < dgvInc.Rows.Count; iContador++)
            //{
            //    dgvInc.Rows[iContador].Cells[0].Value = Resources.ic_lens_blue_grey_600_18dp;
            //}

            if (Permisos.dcPermisos["Crear"] == 1 && Permisos.dcPermisos["Actualizar"] == 1)
            {
                if (dgvInc.SelectedRows.Count != 0)
                {
                    lbAsignacion.Text = "       Asignar Extrañamiento o Retroactivo";
                    DataGridViewRow row = this.dgvInc.SelectedRows[0];

                    //CVPerfil = Convert.ToInt32(row.Cells["CVPERFIL"].Value.ToString());
                    int      icvIncidencia = Convert.ToInt32(row.Cells["cvincidencia"].Value.ToString());
                    int      icvTipo       = Convert.ToInt32(row.Cells["cvtipo"].Value.ToString());
                    DateTime fFechaReg     = DateTime.Parse(row.Cells["Fecha Registro"].Value.ToString());


                    Captura objAsig = new Captura();
                    objAsig.cvincidencia = icvIncidencia;
                    objAsig.cvtipo       = icvTipo;
                    objAsig.FechaReg     = fFechaReg;

                    ValidarExistencia(ltTrab, objAsig);

                    if (row.Cells[0].Tag.ToString() == "check")
                    {
                        row.Cells[0].Value = Resources.ic_lens_blue_grey_600_18dp;
                        row.Cells[0].Tag   = "uncheck";
                    }
                    else
                    {
                        row.Cells[0].Value = Resources.ic_check_circle_green_400_18dp;
                        row.Cells[0].Tag   = "check";
                    }



                    llenarComboIncidencia();
                    if (ltTrab.Count() == 0)
                    {
                        if (Permisos.dcPermisos["Crear"] == 1)
                        {
                            cbIncidencia.SelectedValue = 20;
                            cbIncidencia.Enabled       = false;
                            lbAsignacion.Text          = "       Asignar Suspensión";
                        }
                        else
                        {
                            pnlAsig.Visible = false;
                        }
                    }
                    //    row.Cells[0].Value = Resources.ic_check_circle_green_400_18dp;
                    //cbIncidencia.Enabled = true;

                    //  DatosTrabajadorPerfil form = new DatosTrabajadorPerfil();
                    // form.Show();
                }
            }
        }
        private void btnGuardar_Click(object sender, EventArgs e)
        {
            switch (ValidarFecha(DateTime.Parse(dtimeFechaInicioAsig.Text), DateTime.Parse(dtimeFechaFinAsig.Text)))
            {
            case 0:

                if (cbIncidencia.SelectedValue.ToString() != "20")
                {
                    if (ltTrab.Count != 0)
                    {
                        IncCaptura objinc = new IncCaptura();

                        bool bBandera = false;
                        bool bExists  = false;
                        for (int iCont = 0; iCont < ltTrab.Count(); iCont++)
                        {
                            Captura obj = ltTrab.ElementAt(iCont);

                            int idTrabActual       = Convert.ToInt32(TrabajadorInfo.IdTrab);
                            int cvincidenciaActual = obj.cvincidencia;
                            int cvtipoActual       = obj.cvtipo;

                            objinc.fFecharegistro = obj.FechaReg;
                            objinc.iIdtrab        = idTrabActual;
                            objinc.iCvIncidencia  = cvincidenciaActual;
                            objinc.iCvTipo        = cvtipoActual;
                            objinc.iCvIncidencia2 = Convert.ToInt32(cbIncidencia.SelectedValue.ToString());
                            objinc.iCvTipo2       = Convert.ToInt32(cbTipo.SelectedValue.ToString());

                            objinc.fFechaFin    = DateTime.Parse(dtimeFechaFinAsig.Text);
                            objinc.fFechaInicio = DateTime.Parse(dtimeFechaInicioAsig.Text);
                            objinc.sUsuumod     = LoginInfo.IdTrab;
                            objinc.sPrgumod     = this.Name;

                            DataTable dt = objinc.ExtrañamientoRetroactivo(objinc, 1);

                            if (dt.Columns.Contains("INSERT") || dt.Columns.Contains("EXISTS"))
                            {
                                bBandera = true;
                                IncCalificacion objInc = new IncCalificacion();
                                objInc.fFechaInicio  = dpFechaInicio.Value;
                                objInc.fFechaTermino = dpFechaFin.Value;

                                LlenarGrid(objInc);
                            }
                        }

                        ltCvIncidencia.Clear();
                        ltcvTipo.Clear();
                        ltFechasRegistro.Clear();
                        ltTrab.Clear();

                        if (bBandera == true)
                        {
                            Utilerias.ControlNotificaciones(panelTag, lbMensaje, 1, "Asignaciones Guardadas Correctamente");
                            txtReferencia.Text         = String.Empty;
                            cbTipo.SelectedIndex       = 0;
                            dtimeFechaInicioAsig.Value = DateTime.Now;
                            dtimeFechaFinAsig.Value    = DateTime.Now;
                            cbTipo.SelectedIndex       = 0;
                            cbTipo.Enabled             = false;
                            cbIncidencia.SelectedIndex = 0;
                            timer1.Start();
                        }
                        else
                        {
                            Utilerias.ControlNotificaciones(panelTag, lbMensaje, 3, "Una o más asignaciones no se lograron guardar.");
                            timer1.Start();
                        }
                    }
                }
                else
                {
                    DiasEspeciales objDias = new DiasEspeciales();

                    objDias.sIdTrab       = TrabajadorInfo.IdTrab;
                    objDias.iCvIncidencia = Convert.ToInt32(cbIncidencia.SelectedValue.ToString());
                    objDias.iCvTipo       = Convert.ToInt32(cbTipo.SelectedValue.ToString());
                    objDias.fFechaInicio  = DateTime.Parse(dtimeFechaInicioAsig.Text);
                    objDias.fFechaFin     = DateTime.Parse(dtimeFechaFinAsig.Text);
                    objDias.sReferencia   = txtReferencia.Text;
                    objDias.iOrden        = 6;
                    objDias.sUsuumod      = LoginInfo.IdTrab;
                    objDias.sPrgumod      = this.Name;
                    DataTable dt = objDias.ObtenerDiasEspecialesxTrabajador(objDias, 1);

                    if (dt.Columns.Contains("INSERT"))
                    {
                        Utilerias.ControlNotificaciones(panelTag, lbMensaje, 1, "Suspensión Guardada Correctamente");
                        txtReferencia.Text         = String.Empty;
                        cbTipo.SelectedIndex       = 0;
                        dtimeFechaInicioAsig.Value = DateTime.Now;
                        dtimeFechaFinAsig.Value    = DateTime.Now;
                        cbTipo.SelectedIndex       = 0;
                        cbTipo.Enabled             = false;
                        cbIncidencia.SelectedIndex = 0;
                        timer1.Start();
                    }
                    else if (dt.Columns.Contains("EXISTS"))
                    {
                        Utilerias.ControlNotificaciones(panelTag, lbMensaje, 2, "Este Tipo de Suspensión ya fue Asignado a este trabajador en esa fecha");

                        timer1.Start();
                    }
                    else
                    {
                        Utilerias.ControlNotificaciones(panelTag, lbMensaje, 3, "Error de Comunicación. Favor de Repetir el proceso");
                        timer1.Start();
                    }
                }

                break;


            case 1:
                Utilerias.ControlNotificaciones(panelTag, lbMensaje, 3, "La Fecha de Inicio no puede ser Superior a la de Término");
                timer1.Start();
                break;
            }
        }