Eléphant du PHP |
88 Messages
10 juil. 2006, 10:47
J'ai fait du copier coller, afin de créer une fonction que j'ai mise dans le fichier day_off_action.php
Et j'appelle la fonction dans ma boucle.
$query="SELECT * FROM $TASK_ASSIGNMENTS_TABLE , $TASK_TABLE WHERE $TASK_ASSIGNMENTS_TABLE.task_id = $TASK_TABLE.task_id AND username='$user_id' AND prev_task='-1' ";
list ($qh,$num) = dbQuery($query);
if ($num>0)
{
while ($data=dbResult($qh))
{
$task_id = $data["task_id"];
task_day_off($task_id);
}
}
voici le code de la fonction:
// Fonction pour mettre à jour les dates de début et de fin des tâches suivantes lors de la modification des congés
function task_day_off($task_id)
{
include("table_names.inc");
$task_id_end = $task_id;
$bool_fin='0';
while ($bool_fin!='1'){
$query4 = "SELECT end_date , next_task FROM $TASK_TABLE WHERE task_id='$task_id_end'";
list($qh4,$num4) = dbQuery($query4);
if ( $num4 > '0' )
{
$data4=dbResult($qh4);
$task_id_end=$data4["next_task"];
if ($task_id_end != '-1')
{
$date_end = date('Y-n-j',strtotime($data4["end_date"]));
dbQuery("UPDATE $TASK_TABLE set start_date='$date_end' WHERE task_id='$task_id_end'; ");
$assigned = array();
list ($qh6,$num6) = dbQuery("SELECT username FROM $TASK_ASSIGNMENTS_TABLE WHERE task_id='$task_id_end' ");
if ($num6>0){
while ($data6 = dbResult($qh6))
{
array_push($assigned, $data6["username"]);
}
}
list ($qh5,$num5) = dbQuery("SELECT start_date , charge FROM $TASK_TABLE WHERE task_id='$task_id_end' ");
if ($num5>0){
$data5=dbResult($qh5);
$charge = $data5["charge"];
$date = $data5["start_date"];
$nb_day_lib = "+ 1 day";
$end_date = strtotime($nb_day_lib,strtotime($date));
$end_date_day = date('j',$end_date);
$end_date_month = date('n',$end_date);
$end_date_year = date('Y',$end_date);
foreach ($assigned as $username)
{
list ($qh6,$num6) = dbQuery("SELECT percentage from $TASK_ASSIGNMENTS_TABLE WHERE username='$username' AND task_id='$task_id_end' ");
$data6 = dbResult($qh6);
if (day_ouvre(-1,$end_date_day,$end_date_month,$end_date_year,$username))
{
$var = $data6["percentage"];
$charge=$charge - $var/100;
}
}
while ($charge>0)
{
$date = "".$end_date_year."-".$end_date_month."-".$end_date_day;
$nb_day_lib = "+ 1 day";
$end_date = strtotime($nb_day_lib,strtotime($date));
$end_date_day = date('j',$end_date);
$end_date_month = date('n',$end_date);
$end_date_year = date('Y',$end_date);
foreach ($assigned as $username)
{
list ($qh6,$num6) = dbQuery("SELECT percentage from $TASK_ASSIGNMENTS_TABLE WHERE username='$username' AND task_id='$task_id_end' ");
$data6 = dbResult($qh6);
if (day_ouvre(-1,$end_date_day,$end_date_month,$end_date_year,$username))
{
$charge=$charge - ($data6["percentage"] / 100);
}
}
}
$date = "".$end_date_year."-".$end_date_month."-".$end_date_day;
$end_date = strtotime($date);
$end_date = date('Y-n-j',$end_date);
dbQuery("UPDATE $TASK_TABLE set end_date='$end_date' WHERE task_id='$task_id_end'");
}
}
}
if ($task_id_end == -1)
{
$bool_fin='1';
}
}
}
Merci