function affichage($user, $date_debut, $date_fin, $opt_debut, $opt_fin, $p_num = "")
{
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $session = session_id();
    $comment = " ";
    // calcul :
    $nb_jours = compter($user, $p_num, $date_debut, $date_fin, $opt_debut, $opt_fin, $comment);
    $tab['nb'] = $nb_jours;
    $tab['comm'] = $comment;
    if (!$_SESSION['config']['rempli_auto_champ_nb_jours_pris']) {
        $tab['nb'] = "";
    }
    echo json_encode($tab);
}
function affichage($user, $date_debut, $date_fin, $opt_debut, $opt_fin, $DEBUG = FALSE, $p_num = "")
{
    if ($DEBUG) {
        echo "user = {$user}, date_debut = {$date_debut}, date_fin = {$date_fin}, opt_debut = {$opt_debut}, opt_fin = {$opt_fin}<br>\n";
    }
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $session = session_id();
    $comment = "&nbsp;";
    // calcul :
    $nb_jours = compter($user, $p_num, $date_debut, $date_fin, $opt_debut, $opt_fin, $comment, $DEBUG);
    $tab['nb'] = $nb_jours;
    $tab['comm'] = $comment;
    if (!$_SESSION['config']['rempli_auto_champ_nb_jours_pris']) {
        $tab['nb'] = "";
    }
    echo json_encode($tab);
}
Example #3
0
function soustrait_solde_et_reliquat_user($user_login, $num_current_periode, $user_nb_jours_pris, $type_abs, $date_deb, $demi_jour_deb, $date_fin, $demi_jour_fin)
{
    $VerifDec = verif_saisie_decimal($user_nb_jours_pris);
    //si on autorise les reliquats
    if ($_SESSION['config']['autorise_reliquats_exercice']) {
        //recup du reliquat du user pour ce type d'absence
        $reliquat = get_reliquat_user_conges($user_login, $type_abs);
        //echo "reliquat = $reliquat<br>\n";
        // s'il y a une date limite d'utilisationdes reliquats (au format jj-mm)
        if ($_SESSION['config']['jour_mois_limite_reliquats'] != 0) {
            //si date_fin_conges < date_limite_reliquat => alors on décompte dans reliquats
            if ($date_fin < $_SESSION['config']['date_limite_reliquats']) {
                if ($reliquat > $user_nb_jours_pris) {
                    $new_reliquat = $reliquat - $user_nb_jours_pris;
                } else {
                    $new_reliquat = 0;
                }
            } elseif ($date_deb >= $_SESSION['config']['date_limite_reliquats']) {
                $new_reliquat = $reliquat;
            } else {
                include_once 'fonctions_calcul.php';
                $comment = "calcul reliquat -> date limite";
                $nb_reliquats_a_deduire = compter($user_login, $num_current_periode, $date_deb, $_SESSION['config']['date_limite_reliquats'], $demi_jour_deb, "pm", $comment);
                if ($reliquat > $nb_reliquats_a_deduire) {
                    $new_reliquat = $reliquat - $nb_reliquats_a_deduire;
                } else {
                    $new_reliquat = 0;
                }
            }
        } else {
            if ($reliquat > $user_nb_jours_pris) {
                $new_reliquat = $reliquat - $user_nb_jours_pris;
            } else {
                $new_reliquat = 0;
            }
        }
        $VerifDec = verif_saisie_decimal($user_nb_jours_pris);
        $VerifDec = verif_saisie_decimal($new_reliquat);
        $sql2 = 'UPDATE conges_solde_user SET su_solde=su_solde-' . \includes\SQL::quote($user_nb_jours_pris) . ', su_reliquat=' . \includes\SQL::quote($new_reliquat) . ' WHERE su_login="******"  AND su_abs_id=' . \includes\SQL::quote($type_abs) . ' ';
    } else {
        $VerifDec = verif_saisie_decimal($user_nb_jours_pris);
        $VerifDec = verif_saisie_decimal($new_reliquat);
        $sql2 = 'UPDATE conges_solde_user SET su_solde=su_solde-' . \includes\SQL::quote($user_nb_jours_pris) . ' WHERE su_login=\'' . \includes\SQL::quote($user_login) . '\'  AND su_abs_id=\'' . $type_abs . '\' ';
    }
    $ReqLog2 = \includes\SQL::query($sql2);
}
Example #4
0
defined('_PHP_CONGES') or die('Restricted access');
$user_login = $_SESSION['userlogin'];
$p_num = getpost_variable('p_num');
$onglet = getpost_variable('onglet');
$p_num_to_update = getpost_variable('p_num_to_update');
$p_etat = getpost_variable('p_etat');
$new_debut = getpost_variable('new_debut');
$new_demi_jour_deb = getpost_variable('new_demi_jour_deb');
$new_fin = getpost_variable('new_fin');
$new_demi_jour_fin = getpost_variable('new_demi_jour_fin');
$new_comment = getpost_variable('new_comment');
//conversion des dates
$new_debut = convert_date($new_debut);
$new_fin = convert_date($new_fin);
if ($_SESSION['config']['disable_saise_champ_nb_jours_pris']) {
    $new_nb_jours = compter($user_login, $p_num_to_update, $new_debut, $new_fin, $new_demi_jour_deb, $new_demi_jour_fin, $new_comment, $DEBUG);
} else {
    $new_nb_jours = getpost_variable('new_nb_jours');
}
/*************************************/
// TITRE
echo '<h1>' . _('user_modif_demande_titre') . '</h1>';
if ($p_num != "") {
    confirmer($p_num, $onglet, $DEBUG);
} else {
    if ($p_num_to_update != "") {
        modifier($p_num_to_update, $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $p_etat, $onglet, $DEBUG);
    } else {
        // renvoit sur la page principale .
        redirect(ROOT_PATH . 'utilisateur/user_index.php', false);
    }
    $mois_calendrier_saisie_debut = getpost_variable('mois_calendrier_saisie_debut', 0) ;
    $year_calendrier_saisie_fin = getpost_variable('year_calendrier_saisie_fin', 0) ;
    $mois_calendrier_saisie_fin = getpost_variable('mois_calendrier_saisie_fin', 0) ;
    $tri_date = getpost_variable('tri_date', "ascendant") ;
    $tab_checkbox_annule = getpost_variable('tab_checkbox_annule') ;
    $tab_radio_traite_demande = getpost_variable('tab_radio_traite_demande') ;
    $tab_text_refus = getpost_variable('tab_text_refus') ;
    $tab_text_annul = getpost_variable('tab_text_annul') ;
    $new_demande_conges = getpost_variable('new_demande_conges', 0) ;
    $new_debut = getpost_variable('new_debut') ;
    $new_demi_jour_deb = getpost_variable('new_demi_jour_deb') ;
    $new_fin = getpost_variable('new_fin') ;
    $new_demi_jour_fin = getpost_variable('new_demi_jour_fin') ;
    if($_SESSION['config']['disable_saise_champ_nb_jours_pris'])  // zone de texte en readonly et grisée
    {
        $new_nb_jours = compter($user_login, '', $new_debut,  $new_fin, $new_demi_jour_deb, $new_demi_jour_fin, $comment,  $DEBUG);
    }
    else
    {
        $new_nb_jours = getpost_variable('new_nb_jours') ;
    }
    $new_comment = getpost_variable('new_comment') ;
    $new_type = getpost_variable('new_type') ;
    $year_affichage = getpost_variable('year_affichage' , date("Y") );

    /*************************************/

    if ( !is_resp_of_user($_SESSION['userlogin'] , $user_login)) {
        redirect(ROOT_PATH . 'deconnexion.php');
        exit;
    }
function soustrait_solde_et_reliquat_user($user_login, $num_current_periode, $user_nb_jours_pris, $type_abs, $date_deb, $demi_jour_deb, $date_fin, $demi_jour_fin, $DEBUG = FALSE)
{
    $user_nb_jours_pris = strtr($user_nb_jours_pris, ",", ".");
    //si on autorise les reliquats
    if ($_SESSION['config']['autorise_reliquats_exercice']) {
        //recup du reliquat du user pour ce type d'absence
        $reliquat = get_reliquat_user_conges($user_login, $type_abs, $DEBUG);
        //echo "reliquat = $reliquat<br>\n";
        // s'il y a une date limite d'utilisationdes reliquats (au format jj-mm)
        if ($_SESSION['config']['jour_mois_limite_reliquats'] != 0) {
            //si date_fin_conges < date_limite_reliquat => alors on décompte dans reliquats
            if ($date_fin < $_SESSION['config']['date_limite_reliquats']) {
                if ($reliquat > $user_nb_jours_pris) {
                    $new_reliquat = $reliquat - $user_nb_jours_pris;
                } else {
                    $new_reliquat = 0;
                }
            } elseif ($date_deb >= $_SESSION['config']['date_limite_reliquats']) {
                $new_reliquat = $reliquat;
            } else {
                include 'fonctions_calcul.php';
                $nb_reliquats_a_deduire = compter($user_login, $num_current_periode, $date_deb, $_SESSION['config']['date_limite_reliquats'], $demi_jour_deb, "pm", null, $DEBUG);
                if ($reliquat > $nb_reliquats_a_deduire) {
                    $new_reliquat = $reliquat - $nb_reliquats_a_deduire;
                } else {
                    $new_reliquat = 0;
                }
            }
        } else {
            if ($reliquat > $user_nb_jours_pris) {
                $new_reliquat = $reliquat - $user_nb_jours_pris;
            } else {
                $new_reliquat = 0;
            }
        }
        $sql2 = 'UPDATE conges_solde_user SET su_solde=su_solde-' . SQL::quote($user_nb_jours_pris) . ', su_reliquat=' . SQL::quote(str_replace(",", ".", $new_reliquat)) . ' WHERE su_login=\'' . SQL::quote($user_login) . '\'  AND su_abs_id=' . $type_abs;
    } else {
        $sql2 = 'UPDATE conges_solde_user SET su_solde=su_solde-' . SQL::quote($user_nb_jours_pris) . ' WHERE su_login=\'' . SQL::quote($user_login) . '\'  AND su_abs_id=\'' . $type_abs;
    }
    $ReqLog2 = SQL::query($sql2);
}
Example #7
0
 /**
  * Encapsule le comportement du module de gestion des congés des utilisateurs
  *
  * @return void
  * @access public
  * @static
  */
 public static function traiteUserModule()
 {
     //var pour resp_traite_user.php
     $user_login = getpost_variable('user_login');
     $year_calendrier_saisie_debut = getpost_variable('year_calendrier_saisie_debut', 0);
     $mois_calendrier_saisie_debut = getpost_variable('mois_calendrier_saisie_debut', 0);
     $year_calendrier_saisie_fin = getpost_variable('year_calendrier_saisie_fin', 0);
     $mois_calendrier_saisie_fin = getpost_variable('mois_calendrier_saisie_fin', 0);
     $tri_date = getpost_variable('tri_date', "ascendant");
     $tab_checkbox_annule = getpost_variable('tab_checkbox_annule');
     $tab_radio_traite_demande = getpost_variable('tab_radio_traite_demande');
     $tab_text_refus = getpost_variable('tab_text_refus');
     $tab_text_annul = getpost_variable('tab_text_annul');
     $new_demande_conges = getpost_variable('new_demande_conges', 0);
     $new_debut = getpost_variable('new_debut');
     $new_demi_jour_deb = getpost_variable('new_demi_jour_deb');
     $new_fin = getpost_variable('new_fin');
     $new_demi_jour_fin = getpost_variable('new_demi_jour_fin');
     $return = '';
     if ($_SESSION['config']['disable_saise_champ_nb_jours_pris']) {
         // zone de texte en readonly et grisée
         $new_nb_jours = compter($user_login, '', $new_debut, $new_fin, $new_demi_jour_deb, $new_demi_jour_fin, $comment);
     } else {
         $new_nb_jours = getpost_variable('new_nb_jours');
     }
     $new_comment = getpost_variable('new_comment');
     $new_type = getpost_variable('new_type');
     $year_affichage = getpost_variable('year_affichage', date("Y"));
     /*************************************/
     if (!is_resp_of_user($_SESSION['userlogin'], $user_login)) {
         redirect(ROOT_PATH . 'deconnexion.php');
         exit;
     }
     /************************************/
     // si une annulation de conges a été selectionée :
     if ($tab_checkbox_annule != "") {
         $return .= \responsable\Fonctions::annule_conges($user_login, $tab_checkbox_annule, $tab_text_annul);
     } elseif ($tab_radio_traite_demande != "") {
         $return .= \responsable\Fonctions::traite_demandes($user_login, $tab_radio_traite_demande, $tab_text_refus);
     } elseif ($new_demande_conges == 1) {
         $return .= \responsable\Fonctions::new_conges($user_login, $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $new_type);
     } else {
         $return .= \responsable\Fonctions::affichage($user_login, $year_affichage, $year_calendrier_saisie_debut, $mois_calendrier_saisie_debut, $year_calendrier_saisie_fin, $mois_calendrier_saisie_fin, $tri_date);
     }
     return $return;
 }
Example #8
0
 /**
  * Encapsule le comportement du module de modification d'absence
  *
  *
  * @return void
  * @access public
  * @static
  */
 public static function modificationAbsenceModule()
 {
     $user_login = $_SESSION['userlogin'];
     $p_num = getpost_variable('p_num');
     $onglet = getpost_variable('onglet');
     $p_num_to_update = getpost_variable('p_num_to_update');
     $p_etat = getpost_variable('p_etat');
     $new_debut = getpost_variable('new_debut');
     $new_demi_jour_deb = getpost_variable('new_demi_jour_deb');
     $new_fin = getpost_variable('new_fin');
     $new_demi_jour_fin = getpost_variable('new_demi_jour_fin');
     $new_comment = getpost_variable('new_comment');
     $return = '';
     //conversion des dates
     $new_debut = convert_date($new_debut);
     $new_fin = convert_date($new_fin);
     if ($_SESSION['config']['disable_saise_champ_nb_jours_pris']) {
         $new_nb_jours = compter($user_login, $p_num_to_update, $new_debut, $new_fin, $new_demi_jour_deb, $new_demi_jour_fin, $new_comment);
     } else {
         $new_nb_jours = getpost_variable('new_nb_jours');
     }
     /*************************************/
     // TITRE
     $return .= '<h1>' . _('user_modif_demande_titre') . '</h1>';
     if ($p_num != "") {
         $return .= \utilisateur\Fonctions::confirmer($p_num, $onglet);
     } else {
         if ($p_num_to_update != "") {
             $return .= \utilisateur\Fonctions::modifier($p_num_to_update, $new_debut, $new_demi_jour_deb, $new_fin, $new_demi_jour_fin, $new_nb_jours, $new_comment, $p_etat, $onglet);
         } else {
             // renvoit sur la page principale .
             redirect(ROOT_PATH . 'utilisateur/user_index.php', false);
         }
     }
     return $return;
 }
function commit_new_fermeture($new_date_debut, $new_date_fin, $groupe_id, $id_type_conges, $DEBUG = FALSE)
{
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $session = session_id();
    // on transforme les formats des dates
    $tab_date_debut = explode("/", $new_date_debut);
    // date au format d/m/Y
    $date_debut = $tab_date_debut[2] . "-" . $tab_date_debut[1] . "-" . $tab_date_debut[0];
    $tab_date_fin = explode("/", $new_date_fin);
    // date au format d/m/Y
    $date_fin = $tab_date_fin[2] . "-" . $tab_date_fin[1] . "-" . $tab_date_fin[0];
    if ($DEBUG) {
        echo "date_debut = {$date_debut}  // date_fin = {$date_fin}<br>\n";
    }
    /*****************************/
    // on construit le tableau des users affectés par les fermetures saisies :
    if ($groupe_id == 0) {
        // fermeture pour tous !
        $list_users = get_list_all_users($DEBUG);
    } else {
        $list_users = get_list_users_du_groupe($groupe_id, $DEBUG);
    }
    $tab_users = explode(",", $list_users);
    if ($DEBUG) {
        echo "tab_users =<br>\n";
        print_r($tab_users);
        echo "<br>\n";
    }
    //******************************
    // !!!!
    // type d'absence à modifier ....
    //	$id_type_conges = 1 ; //"cp" : conges payes
    //calcul de l'ID de de la fermeture (en fait l'ID de la saisie de fermeture)
    $new_fermeture_id = get_last_fermeture_id($DEBUG) + 1;
    /***********************************************/
    /** enregistrement des jours de fermetures   **/
    $tab_fermeture = array();
    for ($current_date = $date_debut; $current_date <= $date_fin; $current_date = jour_suivant($current_date)) {
        $tab_fermeture[] = $current_date;
    }
    if ($DEBUG) {
        echo "tab_fermeture =<br>\n";
        print_r($tab_fermeture);
        echo "<br>\n";
    }
    // on insere les nouvelles dates saisies dans conges_jours_fermeture
    $result = insert_year_fermeture($new_fermeture_id, $tab_fermeture, $groupe_id, $DEBUG);
    $opt_debut = 'am';
    $opt_fin = 'pm';
    /*********************************************************/
    /** insersion des jours de fermetures pour chaque user  **/
    foreach ($tab_users as $current_login) {
        $current_login = trim($current_login);
        // on enleve les quotes qui ont été ajoutées lors de la creation de la liste
        $current_login = trim($current_login, "\\'");
        // on compte le nb de jour à enlever au user (par periode et au total)
        // on ne met à jour la table conges_periode
        $nb_jours = 0;
        $comment = "";
        // $nb_jours = compter($current_login, $date_debut, $date_fin, $opt_debut, $opt_fin, $comment,  $DEBUG);
        $nb_jours = compter($current_login, "", $date_debut, $date_fin, $opt_debut, $opt_fin, $comment, $DEBUG);
        if ($DEBUG) {
            echo "<br>user_login : "******" nbjours : " . $nb_jours . "<br>\n";
        }
        // on ne met à jour la table conges_periode .
        $commentaire = _('divers_fermeture');
        $etat = "ok";
        $num_periode = insert_dans_periode($current_login, $date_debut, $opt_debut, $date_fin, $opt_fin, $nb_jours, $commentaire, $id_type_conges, $etat, $new_fermeture_id, $DEBUG);
        // mise à jour du solde de jours de conges pour l'utilisateur $current_login
        if ($nb_jours != 0) {
            soustrait_solde_et_reliquat_user($current_login, "", $nb_jours, $id_type_conges, $date_debut, $opt_debut, $date_fin, $opt_fin, $DEBUG);
        }
    }
    // on recharge les jours fermés dans les variables de session
    init_tab_jours_fermeture($_SESSION['userlogin'], $DEBUG);
    echo '<div class="wrapper">';
    if ($result) {
        echo "<br>" . _('form_modif_ok') . "<br><br>\n";
    } else {
        echo "<br>" . _('form_modif_not_ok') . " !<br><br>\n";
    }
    $comment_log = "saisie des jours de fermeture de {$date_debut} a {$date_fin}";
    log_action(0, "", "", $comment_log, $DEBUG);
    echo "<form action=\"{$PHP_SELF}?session={$session}\" method=\"POST\">\n";
    echo "<input class=\"btn btn-success\" type=\"submit\" value=\"" . _('form_ok') . "\">\n";
    echo "</form>\n";
    echo '</div>';
}
	$new_debut         = getpost_variable('new_debut');
	$new_demi_jour_deb = getpost_variable('new_demi_jour_deb');
	$new_fin           = getpost_variable('new_fin');
	$new_demi_jour_fin = getpost_variable('new_demi_jour_fin');
	$new_comment       = getpost_variable('new_comment');
	if ($_SESSION['config']['disable_saise_champ_nb_jours_pris'])
	{
		$new_debut2 = explode('-', $new_debut);
		$new_debut2 = array_reverse($new_debut2);
		$new_debut2 = implode('-', $new_debut2);
		
		$new_fin2 = explode('-', $new_fin);
		$new_fin2 = array_reverse($new_fin2);
		$new_fin2 = implode('-', $new_fin2);
		
		$new_nb_jours = compter($_SESSION['userlogin'], '', $new_debut2,  $new_fin2, $new_demi_jour_deb, $new_demi_jour_fin, $comm,  $DEBUG, $p_num_to_update);

	}
	else
		$new_nb_jours      = getpost_variable('new_nb_jours');
		
	/*************************************/

	// TITRE
	echo '<h1>'. _('user_modif_demande_titre') .'</h1>';
	echo "<br><br>\n";

	if($p_num!="")
	{
		confirmer($p_num, $onglet, $DEBUG);
	}
function affichage($user, $date_debut, $date_fin, $opt_debut, $opt_fin, $DEBUG = FALSE)
{
    if ($DEBUG) {
        echo "user = {$user}, date_debut = {$date_debut}, date_fin = {$date_fin}, opt_debut = {$opt_debut}, opt_fin = {$opt_fin}<br>\n";
    }
    $PHP_SELF = $_SERVER['PHP_SELF'];
    $session = session_id();
    $comment = "&nbsp;";
    header_popup();
    echo "<h1>{$user}</h1>\n";
    echo "<form action=\"{$PHP_SELF}?session={$session}\" method=\"POST\">\n";
    echo "<table>\n";
    echo "<tr>\n";
    // calcul :
    // $nb_jours=compter($user, $date_debut, $date_fin, $opt_debut, $opt_fin, $comment, $DEBUG);
    $nb_jours = compter($user, "", $date_debut, $date_fin, $opt_debut, $opt_fin, $comment, $DEBUG);
    echo "<td align=\"center\"><h2>" . _('calcul_nb_jours_nb_jours') . " <b>{$nb_jours}</b></h2></td>\n";
    echo "</tr>\n";
    echo "<tr>\n";
    echo "<td align=\"center\"><i><font color=\"red\">{$comment}<font/></i></td>\n";
    echo "</tr>\n";
    echo "<tr>\n";
    echo "<td align=\"center\"><i>" . _('calcul_nb_jours_reportez') . " \"" . _('saisie_conges_nb_jours') . "\" " . _('calcul_nb_jours_form') . ".</i></td>\n";
    echo "</tr>\n";
    echo "<tr>\n";
    echo "<td align=\"center\">&nbsp;</td>\n";
    echo "</tr>\n";
    echo "<tr>\n";
    echo "<td align=\"center\">\n";
    echo "  <input type=\"button\" value=\"" . _('form_close_window') . "\" onClick=\"javascript:window.close();\">\n";
    echo "</td>\n";
    echo "</tr>\n";
    echo "</table>\n";
    echo "</form>\n";
    if ($_SESSION['config']['rempli_auto_champ_nb_jours_pris']) {
        if ($comment == "&nbsp;" && $DEBUG == FALSE) {
            echo "<script>envoi('{$nb_jours}'); window.close()</script>";
        } else {
            echo "<script>envoi('{$nb_jours}')</script>";
        }
    }
    bottom();
}