Toutes les detes ont été remboursées

'; } function pa($a){ echo '
'.print_r($a,1).'
'; } $repSQL = mysql_query2("select count(*) as nb from ".TABLE_PREFIX."combien where payed=0"); $donSQL = mysql_fetch_array($repSQL); if ($donSQL['nb'] >0 ) { /** On calcule les sommes dues /*user et user_name = tableaux des données utilisateur*/ $repSQL = mysql_query2("SELECT id, nom, prenom FROM ".TABLE_PREFIX."user WHERE inactif=0"); $users = array(); $users_name = array(); while($user = mysql_fetch_assoc($repSQL)){ $users[]=$user['id']; $users_name[$user['id']]=substr($user['nom'],0,1 ).'. '.$user['prenom']; } $nb_user = sizeof($users); /*On met dans un tableau somme toutes les sommes du personne par personne*/ $repSQL = mysql_query2("SELECT * FROM ".TABLE_PREFIX."combien WHERE payed=0"); $doit = array(); while($combien = mysql_fetch_assoc($repSQL)){ $doit[$combien['id_user1']][$combien['id_user2']] += $combien['combien']; } /*On divise la matrice en 2 (diagonal supérieur)*/ for ($i=0;$i<$nb_user;$i++){//Ligne du tableau for ($j=$i+1;$j<$nb_user;$j++){//Colonne du tableau $id_1 = $users[$i]; $id_2 = $users[$j]; $doit[$id_1][$id_2]-=$doit[$id_2][$id_1]; unset($doit[$id_2][$id_1]); } } /*On simplifie le tableau en ne gardant plus que la diagonal supérieur*/ foreach ( $users as $i => $user_id1){ for ($j=$i+1;$j<=$nb_user-1;$j++){//Colonne : J for ($k=$i;$k>=0;$k--){//Ligne : K if ($k != $i || $j != $i+1 ){ $doit[$users[$i]][$users[$i+1]]+=$doit[$users[$k]][$users[$j]]; } } } } /*Enfin on affiche le "tableau" */ echo '

Récapitulatif des dettes :

' . "\n"; foreach($doit as $id1 => $datas){ if (sizeof($datas) != 0) { list($id2, $prix) = each($datas); if ($prix > 0) { echo $users_name[$id2] . ' doit ' . $prix . ' € à '.$users_name[$id1].'
'; }else if ($prix < 0) { echo $users_name[$id1] . ' doit ' . -$prix . ' € à '.$users_name[$id2].'
'; } } } echo '

'; /* On calcul la balance de chaque personne : */ $balance=array(); foreach ( $users as $i => $user_id1){ $balance[$user_id1]=$doit[$users[$i]][$users[$i+1]]-$doit[$users[$i-1]][$users[$i]]; } /*On affiche la balance : */ echo '

Balance :

' . "\n"; foreach($balance as $user_id => $valeur){ echo $users_name[$user_id]. ' : '.$valeur.' €
'; } echo '

'; if (!isset($_GET['remb']) ){ echo '

Decréter que toutes les dettes sont rémboursées

'; echo ''; }else if (isset($_GET['remb']) && $_GET['remb']==1 ){ echo '

Attention cette opération est irréversible, est-vous sure : ouinon

'; } echo '
'; /*Details */ echo '

Detail des sommes dues :

' . "\n"; $repSQL = mysql_query2("SELECT f.desc_courte as FDesc, f.date_achat as FDate, u1.nom as U1nom, u1.prenom as U1prenom, u2.nom as U2nom, u2.prenom as U2prenom, c.combien FROM ".TABLE_PREFIX."combien as c LEFT JOIN ".TABLE_PREFIX."user as u1 ON (c.id_user1=u1.id) LEFT JOIN ".TABLE_PREFIX."user as u2 ON (c.id_user2=u2.id) LEFT JOIN ".TABLE_PREFIX."facture as f ON (c.id_facture=f.id) WHERE c.payed=0 ORDER BY f.date_achat DESC"); echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; while($combien = mysql_fetch_assoc($repSQL)){ echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; echo '' . "\n"; } echo '
FactureQuiACombien
'.$combien['FDesc'].' le '.date('d/m/Y', $combien['FDate']).''.substr($combien['U2prenom'],0,1 ).'. '.$combien['U2nom'].''.substr($combien['U1prenom'],0,1 ).'. '.$combien['U1nom'].''.$combien['combien'].' €
' . "\n"; }else{ echo 'Il n\'y a pas encore de dettes.'; } ?>