private void Cmd_Anular_Click(object sender, EventArgs e)
 {
     if (Convert.ToInt32(TUsuario[6]) < 3)
     {
         VAC = FunVAC.Buscar(Convert.ToInt32(Lb_CodVac.Text));
         if (VAC.stavac == 1)
         {
             DialogResult result;
             result = MessageBox.Show("¿Esta seguro que desea anular las vacaciones.?", "Seleccione una opción", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
             if (result == DialogResult.Yes)
             {
                 int vStaMov = 0;
                 VAC = new _VACACION(Convert.ToInt32(Lb_CodVac.Text), vStaMov);
                 if (FunVAC.Anular(VAC))
                 {
                     MessageBox.Show("El documento se anuló correctamente.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     Actualizar();
                 }
             }
         }
         else
         {
             MessageBox.Show("El documento se encuentra anulado.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Information);
             Actualizar();
         }
     }
 }
        public _VACACION BuscarAnterior(_VACACION clas)
        {
            dbSQLConn.ConecDb_Abrir();
            _VACACION        usr = new _VACACION();
            NpgsqlDataReader Dr  = null;
            string           Sql = "SELECT " + Elementos + " FROM vacacion WHERE codvac < @codvac ORDER BY codvac DESC LIMIT 1";
            NpgsqlCommand    cmd = new NpgsqlCommand(Sql, dbSQLConn.Cnn);

            cmd.Parameters.AddWithValue("@codvac", clas.codvac);
            Dr = cmd.ExecuteReader();
            if (Dr.HasRows)
            {
                Dr.Read();
                usr = LLenar(Dr);
                Dr.Close();
                dbSQLConn.ConecDb_Close();
                return(usr);
            }
            else
            {
                Dr.Close();
                dbSQLConn.ConecDb_Close();
                return(BuscarPrimero());
            }
        }
        public _VACACION BuscarPrimero()
        {
            dbSQLConn.ConecDb_Abrir();
            _VACACION        usr = new _VACACION();
            NpgsqlDataReader Dr  = null;
            string           Sql = "SELECT " + Elementos + " FROM vacacion ORDER BY codvac ASC LIMIT 1 ";
            NpgsqlCommand    cmd = new NpgsqlCommand(Sql, dbSQLConn.Cnn);

            Dr = cmd.ExecuteReader();

            if (Dr.HasRows)
            {
                Dr.Read();
                usr = LLenar(Dr);
                Dr.Close();
                dbSQLConn.ConecDb_Close();
                return(usr);
            }
            else
            {
                Dr.Close();
                dbSQLConn.ConecDb_Close();
                return(usr);
            }
        }
        public _VACACION IsVacationAct(int vcodigo, DateTime From, DateTime To)
        {
            dbSQLConn.ConecDb_Abrir();
            _VACACION        usr = new _VACACION();
            NpgsqlDataReader Dr  = null;
            string           Sql = $"SELECT { Elementos } FROM vacacion " +
                                   $"WHERE cedper = @cedper AND feavac::DATE <= @From::DATE AND fefvac::DATE >= @To::DATE AND stavac = 1";
            NpgsqlCommand cmd = new NpgsqlCommand(Sql, dbSQLConn.Cnn);

            cmd.Parameters.AddWithValue("@cedper", vcodigo);
            cmd.Parameters.AddWithValue("@From", From);
            cmd.Parameters.AddWithValue("@To", To);
            Dr = cmd.ExecuteReader();
            if (Dr.HasRows)
            {
                Dr.Read();
                usr = LLenar(Dr);
                Dr.Close();
                dbSQLConn.ConecDb_Close();
                return(usr);
            }
            Dr.Close();
            dbSQLConn.ConecDb_Close();
            return(usr);
        }
 public Boolean Anular(_VACACION clas)
 {
     if (Existe(clas.codvac))
     {
         dbSQLConn.ConecDb_Abrir();
         string        Sql = "UPDATE vacacion SET codvac = @codvac, stavac = @stavac  WHERE codvac = @codvac ";
         NpgsqlCommand cmd = new NpgsqlCommand(Sql, dbSQLConn.Cnn);
         cmd.Parameters.AddWithValue("@codvac", clas.codvac);
         cmd.Parameters.AddWithValue("@stavac", clas.stavac);
         int retVal = cmd.ExecuteNonQuery();
         dbSQLConn.ConecDb_Close();
         if (retVal == 1)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
     else
     {
         return(false);
     }
 }
 public Boolean Modificar(_VACACION clas)
 {
     if (Existe(clas.codvac))
     {
         dbSQLConn.ConecDb_Abrir();
         string Sql = "UPDATE vacacion SET codvac = @codvac, cedper = @cedper, feavac = @feavac, feivac = @feivac, fefvac = @fefvac, obsvac = @obsvac, catmov = @catmov "
                      + "WHERE codvac = @codvac";
         NpgsqlCommand cmd = new NpgsqlCommand(Sql, dbSQLConn.Cnn);
         cmd.Parameters.AddWithValue("@codvac", clas.codvac);
         cmd.Parameters.AddWithValue("@cedper", clas.cedper);
         cmd.Parameters.AddWithValue("@feavac", clas.feavac);
         cmd.Parameters.AddWithValue("@feivac", clas.feivac);
         cmd.Parameters.AddWithValue("@fefvac", clas.fefvac);
         cmd.Parameters.AddWithValue("@obsvac", clas.obsvac);
         cmd.Parameters.AddWithValue("@catmov", clas.catmov);
         int retVal = cmd.ExecuteNonQuery();
         dbSQLConn.ConecDb_Close();
         if (retVal == 1)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
     else
     {
         return(false);
     }
 }
 public Boolean Nuevo(_VACACION clas)
 {
     if (!Existe(clas.codvac))
     {
         dbSQLConn.ConecDb_Abrir();
         string Sql = "INSERT INTO vacacion (codvac, cedper, feavac, feivac, fefvac, obsvac, catmov, stavac) "
                      + "VALUES (@codvac, @cedper, @feavac, @feivac, @fefvac, @obsvac, @catmov, @stavac)";
         NpgsqlCommand cmd = new NpgsqlCommand(Sql, dbSQLConn.Cnn);
         cmd.Parameters.AddWithValue("@codvac", clas.codvac);
         cmd.Parameters.AddWithValue("@cedper", clas.cedper);
         cmd.Parameters.AddWithValue("@feavac", clas.feavac);
         cmd.Parameters.AddWithValue("@feivac", clas.feivac);
         cmd.Parameters.AddWithValue("@fefvac", clas.fefvac);
         cmd.Parameters.AddWithValue("@obsvac", clas.obsvac);
         cmd.Parameters.AddWithValue("@catmov", clas.catmov);
         cmd.Parameters.AddWithValue("@stavac", clas.stavac);
         cmd.ExecuteNonQuery();
         dbSQLConn.ConecDb_Close();
         return(true);
     }
     else
     {
         return(false);
     }
 }
 public FormVACACION(string[] _TUsuario)
 {
     InitializeComponent();
     TUsuario = _TUsuario;
     BotonesNormal(true);
     VAC = FunVAC.BuscarUltimo();
     Asignar();
 }
 private void Cmd_Guardar_Click(object sender, EventArgs e)
 {
     if (ValidarDatos())
     {
         if (Evento.CompareTo("Nuevo") == 0)
         {
             DialogResult result1;
             result1 = MessageBox.Show("¿Desea guardar la vacacion?", "Seleccione una opción", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
             if (result1 == DialogResult.Yes)
             {
                 DateTime FeaVac  = Dat_FeiVac.Value.AddDays(-7);
                 int      vStaVac = 1;
                 VAC = new _VACACION(Convert.ToInt32(FunVAC.Correlativo()), Convert.ToInt32(Txt_CedPer.Text), FeaVac, Dat_FeiVac.Value, Dat_FefVac.Value, Txt_ObsVac.Text, Convert.ToInt32(Txt_CatMov.Text), vStaVac);
                 if (FunVAC.Nuevo(VAC))
                 {
                     MessageBox.Show("Se agregó correctamente.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     Bloqueos();
                     Actualizar();
                 }
                 else
                 {
                     MessageBox.Show("Las vacaciones ya existe.", "Atención", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                 }
             }
         }
         else
         {
             DialogResult result1;
             result1 = MessageBox.Show("¿Desea modificar la vacacion?", "Seleccione una opción", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
             if (result1 == DialogResult.Yes)
             {
                 DateTime FeaVac = Dat_FeiVac.Value.AddDays(-7);
                 VAC = new _VACACION(Convert.ToInt32(Lb_CodVac.Text), Convert.ToInt32(Txt_CedPer.Text), FeaVac, Dat_FeiVac.Value, Dat_FefVac.Value, Txt_ObsVac.Text, Convert.ToInt32(Txt_CatMov.Text));
                 if (FunVAC.Modificar(VAC))
                 {
                     MessageBox.Show("Se modificó correctamente.", "Atención ", MessageBoxButtons.OK, MessageBoxIcon.Information);
                     Bloqueos();
                     Actualizar();
                 }
                 else
                 {
                     MessageBox.Show("la vacaciones no existe en el sistema.", "Atención ", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                 }
             }
         }
     }
 }
 private void Cmd_Ultimo_Click(object sender, EventArgs e)
 {
     VAC = FunVAC.BuscarUltimo();
     Asignar();
 }
 private void Cmd_Siguiente_Click(object sender, EventArgs e)
 {
     VAC = FunVAC.BuscarSiguiente(VAC);
     Asignar();
 }
 private void Cmd_Anterior_Click(object sender, EventArgs e)
 {
     VAC = FunVAC.BuscarAnterior(VAC);
     Asignar();
 }
 private void Cmd_Primero_Click(object sender, EventArgs e)
 {
     VAC = FunVAC.BuscarPrimero();
     Asignar();
 }
 private void Actualizar()
 {
     VAC = FunVAC.Buscar(VAC.codvac);
     Asignar();
 }