예제 #1
0
 public static function new_demande($new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $new_type)
 {
     //conversion des dates
     $new_debut = convert_date($new_debut);
     $new_fin = convert_date($new_fin);
     $return = '';
     $PHP_SELF = $_SERVER['PHP_SELF'];
     $session = session_id();
     // verif validité des valeurs saisies
     $valid = verif_saisie_new_demande($new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment);
     // verifie que le solde de conges sera encore positif après validation
     if ($_SESSION['config']['solde_toujours_positif']) {
         $valid = $valid && \utilisateur\Fonctions::verif_solde_user($_SESSION['userlogin'], $new_type, $new_nb_jours);
     }
     if ($valid) {
         if (in_array(\utilisateur\Fonctions::get_type_abs($new_type), array('conges', 'conges_exceptionnels'))) {
             $resp_du_user = get_tab_resp_du_user($_SESSION['userlogin']);
             if (array_key_exists('conges', $resp_du_user) || empty($resp_du_user)) {
                 $new_etat = 'ok';
                 soustrait_solde_et_reliquat_user($_SESSION['userlogin'], "", $new_nb_jours, $new_type, $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin);
             } else {
                 $new_etat = 'demande';
             }
         } else {
             $new_etat = 'ok';
         }
         $new_comment = addslashes($new_comment);
         $periode_num = insert_dans_periode($_SESSION['userlogin'], $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $new_type, $new_etat, 0);
         if ($periode_num != 0) {
             $return .= schars(_('form_modif_ok')) . ' !<br><br>.';
             //envoi d'un mail d'alerte au responsable (si demandé dans config de php_conges)
             if ($_SESSION['config']['mail_new_demande_alerte_resp']) {
                 if (in_array(\utilisateur\Fonctions::get_type_abs($new_type), array('absences'))) {
                     alerte_mail($_SESSION['userlogin'], ":responsable:", $periode_num, "new_absence");
                 } else {
                     alerte_mail($_SESSION['userlogin'], ":responsable:", $periode_num, "new_demande");
                 }
             }
         } else {
             $return .= schars(_('form_modif_not_ok')) . ' !<br><br>.';
         }
     } else {
         $return .= schars(_('resp_traite_user_valeurs_not_ok')) . ' !<br><br>.';
     }
     $return .= '<a class="btn" href="' . $PHP_SELF . '?session=' . $session . '">' . _('form_retour') . '</a>';
     return $return;
 }
예제 #2
0
function new_demande($new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $new_type, $DEBUG = FALSE)
{
    //conversion des dates
    $new_debut = convert_date($new_debut);
    $new_fin = convert_date($new_fin);
    // print_r($new_fin);
    //$new_nb_jours = get_nb_jour($new_debut, $new_fin, $new_demi_jour_deb, $new_demi_jour_fin);
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $session = session_id();
    // echo " $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $new_type<br><br>\n";
    // exit;
    // verif validité des valeurs saisies
    $valid = verif_saisie_new_demande($new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment);
    // verifie que le solde de conges sera encore positif après validation
    if ($_SESSION['config']['solde_toujours_positif']) {
        $valid = $valid && verif_solde_user($_SESSION['userlogin'], $new_type, $new_nb_jours, $DEBUG);
    }
    if ($valid) {
        if (in_array(get_type_abs($new_type, $DEBUG), array('conges', 'conges_exceptionnels'))) {
            $new_etat = 'demande';
        } else {
            $new_etat = 'ok';
        }
        $new_comment = addslashes($new_comment);
        $periode_num = insert_dans_periode($_SESSION['userlogin'], $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $new_type, $new_etat, 0, $DEBUG);
        if ($periode_num != 0) {
            echo schars(_('form_modif_ok')) . ' !<br><br>' . "\n";
            //envoi d'un mail d'alerte au responsable (si demandé dans config de php_conges)
            if ($_SESSION['config']['mail_new_demande_alerte_resp']) {
                alerte_mail($_SESSION['userlogin'], ":responsable:", $periode_num, "new_demande", $DEBUG);
            }
        } else {
            echo schars(_('form_modif_not_ok')) . ' !<br><br>' . "\n";
        }
    } else {
        echo schars(_('resp_traite_user_valeurs_not_ok')) . ' !<br><br>' . "\n";
    }
    /* RETOUR PAGE PRINCIPALE */
    // echo '<form action="'.$PHP_SELF.'?session='.$session.'" method="POST">';
    // echo '<input type="submit" value="'. _('form_retour') .'">';
    // echo '</form>';
    echo "<a class=\"btn\" href=\"{$PHP_SELF}?session={$session}\">" . _('form_retour') . "</a>\n";
}
예제 #3
0
function new_conges($user_login, $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $new_type_id,  $DEBUG=FALSE)
{
    $PHP_SELF=$_SERVER['PHP_SELF'];
    $session=session_id();

    // verif validité des valeurs saisies
    $valid=verif_saisie_new_demande($new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment);

    if($valid)
    {
        echo "$user_login---$new_debut _ $new_demi_jour_deb---$new_fin _ $new_demi_jour_fin---$new_nb_jours---$new_comment---$new_type_id<br>\n";

        // recup dans un tableau de tableau les infos des types de conges et absences
        $tab_tout_type_abs = recup_tableau_tout_types_abs( $DEBUG);

        /**********************************/
        /* insert dans conges_periode     */
        /**********************************/
        $new_etat="ok";
        $result=insert_dans_periode($user_login, $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $new_type_id, $new_etat, 0, $DEBUG);

        /************************************************/
        /* UPDATE table "conges_solde_user" (jours restants) */
        // on retranche les jours seulement pour des conges pris (pas pour les absences)
        // donc seulement si le type de l'absence qu'on annule est un "conges"
        if(isset($tab_tout_type_abs[$new_type_id]['type']) && $tab_tout_type_abs[$new_type_id]['type']=="conges")
        {
            $user_nb_jours_pris_float=(float) $new_nb_jours ;
            soustrait_solde_et_reliquat_user($user_login, "", $user_nb_jours_pris_float, $new_type_id, $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin , $DEBUG);

        }

        $comment_log = "saisie conges par le responsable pour $user_login ($new_nb_jours jour(s)) type_conges = $new_type_id ( de $new_debut $new_demi_jour_deb a $new_fin $new_demi_jour_fin) ($new_comment)";
        log_action(0, "", $user_login, $comment_log,  $DEBUG);

        if($result)
            echo  _('form_modif_ok') ."<br><br> \n";
        else
            echo  _('form_modif_not_ok') ."<br><br> \n";
    }
    else
    {
            echo  _('resp_traite_user_valeurs_not_ok') ."<br><br> \n";
    }

    /* APPEL D'UNE AUTRE PAGE */
    echo "<form action=\"$PHP_SELF?session=$session&onglet=traite_user&user_login=$user_login\" method=\"POST\"> \n";
    echo "<input type=\"submit\" value=\"". _('form_retour') ."\">\n";
    echo "</form> \n";

}
예제 #4
0
 public static function new_conges($user_login, $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $new_type_id)
 {
     $PHP_SELF = $_SERVER['PHP_SELF'];
     $session = session_id();
     $return = '';
     //conversion des dates
     $new_debut = convert_date($new_debut);
     $new_fin = convert_date($new_fin);
     // verif validité des valeurs saisies
     $valid = verif_saisie_new_demande($new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment);
     if ($valid) {
         $return .= $user_login . '---' . $new_debut . '_' . $new_demi_jour_deb . '---' . $new_fin . '_' . $new_demi_jour_fin . '---' . $new_nb_jours . '---' . $new_comment . '---' . $new_type_id . '<br>';
         // recup dans un tableau de tableau les infos des types de conges et absences
         $tab_tout_type_abs = recup_tableau_tout_types_abs();
         /**********************************/
         /* insert dans conges_periode     */
         /**********************************/
         $new_etat = "ok";
         $result = insert_dans_periode($user_login, $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $new_type_id, $new_etat, 0);
         /************************************************/
         /* UPDATE table "conges_solde_user" (jours restants) */
         // on retranche les jours seulement pour des conges pris (pas pour les absences)
         // donc seulement si le type de l'absence qu'on annule est un "conges"
         if (isset($tab_tout_type_abs[$new_type_id]['type']) && $tab_tout_type_abs[$new_type_id]['type'] == "conges") {
             $user_nb_jours_pris_float = (double) $new_nb_jours;
             soustrait_solde_et_reliquat_user($user_login, "", $user_nb_jours_pris_float, $new_type_id, $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin);
         }
         $comment_log = "saisie conges par le responsable pour {$user_login} ({$new_nb_jours} jour(s)) type_conges = {$new_type_id} ( de {$new_debut} {$new_demi_jour_deb} a {$new_fin} {$new_demi_jour_fin}) ({$new_comment})";
         log_action(0, "", $user_login, $comment_log);
         if ($result) {
             $return .= _('form_modif_ok') . '<br><br>';
         } else {
             $return .= _('form_modif_not_ok') . '<br><br>';
         }
     } else {
         $return .= _('resp_traite_user_valeurs_not_ok') . '<br><br>';
     }
     /* APPEL D'UNE AUTRE PAGE */
     $return .= '<form action="' . $PHP_SELF . '?session=' . $session . '&onglet=traite_user&user_login='******'" method="POST">';
     $return .= '<input class="btn" type="submit" value="' . _('form_retour') . '">';
     $return .= '</form>';
     return $return;
 }