Eléphant du PHP |
440 Messages
23 août 2013, 15:27
J'ai mise en place ma fonction pour le calcul du DIF et voici ce que cela donne
$query2 = mysql_query("SELECT date_entree as date_entree,YEAR(date_entree) as annee_entree, date_sortie,MAKEDATE(YEAR(NOW())-1,365) as test,YEAR(NOW())-1 as test
FROM rh_personnel rhp
WHERE rhp.id_rhp='$test'");
$result = mysql_fetch_array($query2);
$a=$result["annee_entree"];
$annee_fin=$result["test"];
$r=0;
$rn1=0;
//echo ">>>>>>>>>>>>>>>>>>>>".$a.">>>>>>>>>>>>>>>>>".$annee_fin."<<<<<<<<<<<<<<<<";
echo '<br/><p>
<table id="tab1">
<tr><td>Heure dif acquis</td><td>Année heure dif acquis 31/12/XX</td><td>Heure dif utilisée</td><td>Année N-1 Dif</td><td>Remarque</td><td>Rwwww</td><td>Final</td></tr>';
while( $a<=$annee_fin)
{
$SQL = "Select (SELECT IF((DATEDIFF(CONCAT('".$a."','-12-31'),date_entree)/365) >1,20,ROUND(((DATEDIFF(CONCAT('".$a."','-12-31'),date_entree)/365) *20),2) ) as tttt
FROM rh_personnel rhp
WHERE rhp.id_rhp='$test') as r1, (SELECT IFNULL(SUM(nbre_heure_stage),0) FROM rh_personnel_stage WHERE dif='1' AND rh_personnel_stage.id_rhp='$test' AND YEAR(date_fin_stage) =(".$a."-1) AND YEAR(date_debut_stage) =(".$a."-1) ) as r2,$a as r3, (".$a."-1) as r4 ";
// echo "<p>$SQL</p>";
//exécuter et afficher
$req = mysql_query($SQL);
if ($req&& $row=mysql_fetch_assoc($req)){
$t1=$row['r1'];
$t2=$row['r2'];
echo "<tr><td>".$row['r1']." </td><td> ".$row['r3']."</td><td> ".$row['r2']." </td><td>".$row['r4']."</td>";
}
if($r+$row['r1']>120)
{
//echo "<td>$r</td>";
$r=120;
echo "<td>Plafond atteind</td>";
$t=$rn1+$t1;
echo "<td>".$t."-".$t2."</td>";
}
else
{
$r=$r+$row['r1']-$row['r2'];
echo "<td>RAS</td>";
$t=$rn1+$t1;
echo "<td>".$t."-".$t2."</td>";
}
// echo "<td>".$t2+$r."</td>";
$rn1=$r;
echo "<td>$r</td></tr>";
$a++;
}
echo '</table>';
//echo "<p>$r</p>";
Explication:
- Récupéré date entrée/année entrée du salarié dans ma base.
- réalisation une boucle de l'année d'arrivée jusqu’à année( aujourd'hui)-1 .
- Une requête qui retourne deux résultat:
1- Le nombre d'heure de dif acquis cette "n" année
2- le nombre d'heure utilisée l'année "n"-1.
- On affiche le résultat dans un tableau HTML avec une condition c'est que si au cumul on atteins 120 heures le compteur dif reste bloqué à 120h.
guigui69