Location: PHPKode > projects > Prolawyer > etude/ra.php
<?
session_start();
$phpsessid=session_id();
//
//created by lucien, august 2004, hide@address.com
//maintained by Olivier Subilia, hide@address.com
//
require("./title.php");
   ?>
   <style type="text/CSS">
body{background-color:ccffff}
a{text-decoration:none; color:0000ff}
button{background-color:ccffff; border-color:ccffff}
.bg{background-color:ccffff; border-color:ccffff; margin:0}
.special{background-color:dddddd}
</style>
   </head>

<?
body();
require("./entete.php");
require ("./connection_data.php");

//variables pour les modificateurs de fonctions
if(! $_POST["img_size"]) $_POST["img_size"]=8;
if($_POST["soustraitant"]) $reqsoustrait= "AND {$_SESSION["session_opdb"]}.soustraitant='{$_POST["soustraitant"]}'";

// on precise quelques (!) variables pour les dates
if(!isset($_POST["jourcherche"])) $_POST["jourcherche"]=date("Y-n-d");
$jouraffiche=implode('.',array_reverse(explode('-',"{$_POST["jourcherche"]}")));
$datadate=explode('-',"{$_POST["jourcherche"]}");
$jourseulcherche=$datadate[2];
$moischerche=$datadate[1];
$anncherche=$datadate[0];
$todayseul=date("j");
$todaymois=date("n");
$todayann=date("Y");

settype ($moischerche,"integer");
settype ($jourseulcherche,"integer");
settype ($anncherche, "integer");

//création des noms des mois, de façon universelle //modif Olivier Subilia
for($cont=1;$cont<13;$cont++){
$nomvar="mois_$cont";
$$nomvar=htmlentities(strftime("%B", mktime(0,0,0,$cont,1,1)));
}

//création des initiales des jours, de façon universelle //modif Olivier Subilia
for($cont=1;$cont<8;$cont++){
$nomvar="jour_$cont";
$$nomvar=substr(strftime("%a", mktime(0,0,0,1,$cont,1)), 0, 1);
}


$datedebutmois=date("Y-m-d",mktime(0, 0, 0, $moischerche, 1, $anncherche));
$datefinmois=date("Y-m-d",mktime(0, 0, 0, $moischerche, 31, $anncherche));
$datedebutann=date("Y-m-d",mktime(0, 0, 0, 1 , 1, $anncherche));
$datefinann=date("Y-m-d",mktime(0, 0, 0, 12 , 31, $anncherche));
$jouravant=$jourseulcherche -1;
$jourapres=$jourseulcherche +1;
$moisavant=$moischerche -1;
$moisapres=$moischerche +1;
$anneeavant=$anncherche -1;
$anneeapres=$anncherche +1;
$jourmaxavant=date("t",mktime(0,0,0,$moisavant,1,$anncherche));
$jourmaxmois=date("t",mktime(0,0,0,$moischerche,1,$anncherche));


// variables pour l'affichage du calendrier
$nomdumois=array("$ra_erreur","$mois_1","$mois_2","$mois_3","$mois_4","$mois_5","$mois_6","$mois_7","$mois_8","$mois_9","$mois_10","$mois_11","$mois_12");
$week=array("$jour_1","$jour_2","$jour_3","$jour_4","$jour_5","$jour_6","$jour_7");
$nojour = -date("w",mktime(0,0,0,$moischerche,1,$anncherche));   // determine le decalage du 1er dans la semaine
$nojour +=2 ;         						 // pour l'ajuster suivant l'affichage
if ($nojour >0) { $nojour -=7;}                 		 // on s'assure du debut de l'affichage a la 1ere ligne du tableau
$jourmax =date("t",mktime(0,0,0,$moischerche,1,$anncherche));    // nombre de jours dans le mois

$moisaffiche=$nomdumois[$moischerche];
?>

<table width="95%" align=center border=0><tr><td valign=top align=left>

<?
echo "\n<form action=\"./ra.php\" method=\"post\" name=form_soustraitant>";
echo "<i>",$ra_title,"</i>";
echo "\n<br>$ra_soustraitant";
echo "&nbsp;&nbsp;";
echo "<select name=soustraitant onchange=\"document.form_soustraitant.submit()\">";
if($soustraitants) $select=explode("\n", $soustraitants);
else $select=array();
$select[]=","; //permet d'afficher une ligne blanche
$test=0;
foreach($select as $line){
list($option) = split(",", $line);
$selected="";
if(trim($_POST["soustraitant"])==trim($option)){
	$selected="selected";
	$test=1;
}
	echo "<option value=\"", trim($option), "\" $selected>$option";
}
if($test==0) echo "<option value=\"", trim($row["soustraitant"]), "\" selected>", trim($row["soustraitant"]);
echo "</select>";
foreach($_POST as $nom => $val) if($nom != "soustraitant") echo input_hidden($nom, TRUE);
echo "</form>";

?>

<table border=0><tr><td>
<table align=left border=0>
<td width=150>&nbsp;
</td>
<td bgcolor=dddddd>

<?
if ($_POST["jourcherche"] =="$todayann-$todaymois-$todayseul")
$dispjour=$ra_aujourd;
else $dispjour=$ra_jourcher;


if ($jourseulcherche =="1" && $moischerche == "1"){
$valjourcherchemoins="$anneeavant-12-31";
//echo "<A HREF=\"./ra.php?jourcherche=$anneeavant-12-31\"><b> [ - ] </b></A>";
}elseif ($jourseulcherche =="1") {
$valjourcherchemoins="$anncherche-$moisavant-$jourmaxavant";
//echo "<A HREF=\"./ra.php?jourcherche=$anncherche-$moisavant-$jourmaxavant\"><b> [ - ] </b></A>";
}else{
$valjourcherchemoins="$anncherche-$moischerche-$jouravant";
//echo "<A HREF=\"./ra.php?jourcherche=$anncherche-$moischerche-$jouravant\"><b> [ - ] </b></A>";
}

if ($jourapres > $jourmaxmois && $moischerche == "12"){
$valjourchercheplus="$anneeapres-1-1";
//echo "<A HREF=\"./ra.php?jourcherche=$anneeapres-1-1\"> <b> [ + ] </b> </A>";
}elseif ($jourapres > $jourmaxmois) {
$valjourchercheplus="$anncherche-$moisapres-1";
//echo "<A HREF=\"./ra.php?jourcherche=$anncherche-$moisapres-1\"> <b> [ + ] </b> </A>";
}else{
$valjourchercheplus="$anncherche-$moischerche-$jourapres";
//echo "<A HREF=\"./ra.php?jourcherche=$anncherche-$moischerche-$jourapres\"> <b> [ + ] </b> </A>";
}
echo "<table><tr><td colspan=3 align=center>";
echo "$dispjour</td></tr><tr><td>";
echo form("ra.php", "[-]", "", "special", "", "jourcherche", "$valjourcherchemoins");
echo "</td><td><b> $jourseulcherche $moisaffiche $anncherche</b></td><td>";
echo form("ra.php", "[+]", "", "special", "", "jourcherche", "$valjourchercheplus");
echo "</td></tr></table>";
?>


</td><td width=70>&nbsp;
</td><td valign=top bgcolor=ffffff>

<?
// pour le calcul journalier
$query_res_jour="select time_to_sec({$_SESSION["session_opdb"]}.tempsop) as 'temps', {$_SESSION["session_avdb"]}.prixhoraire as 'prix'
 from {$_SESSION["session_opdb"]}, {$_SESSION["session_avdb"]} where {$_SESSION["session_opdb"]}.dateop <> 0 AND {$_SESSION["session_opdb"]}.dateop ='{$_POST["jourcherche"]}'
AND {$_SESSION["session_avdb"]}.nodossier = {$_SESSION["session_opdb"]}.nodossier $reqsoustrait";
//echo $query_res_jour;
$resultat_mensuel=mysql_query("$query_res_jour");
$fric=0;
$tempstotalsec=1;
while($row=mysql_fetch_array($resultat_mensuel)){
$prixseconde=$row["prix"]/3600;
$fric+=($prixseconde*$row["temps"]);
$gain=round($fric*20)/20;
$tempstotalsec+=$row["temps"];
$tempstotal=date("G\hi",mktime(0,0,$tempstotalsec,1,1,1));
}
if ($tempstotal <> NULL){
$gain_tva=round($fric*(100 + $tx_tva)/100*20)/20;
$gain_affiche=number_format($gain, 2, '.', '\'');
$gain_tva_affiche=number_format($gain_tva, 2, '.', '\'');
echo "$ra_tempsjour <b>$tempstotal";
echo "</b><br>$ra_fricjour <b>$gain_affiche</b> $currency<br>(<b>$gain_tva_affiche</b> $ra_avec_tva)<br>";
}else {
echo $ra_rien;
}
?>

</td></tr></table></td></tr><tr><td><table><tr><td>

<?
// pour le calcul mensuel
$query_res_mens="select time_to_sec({$_SESSION["session_opdb"]}.tempsop) as 'temps', {$_SESSION["session_avdb"]}.prixhoraire as 'prix'
 from {$_SESSION["session_opdb"]}, {$_SESSION["session_avdb"]} where {$_SESSION["session_opdb"]}.dateop <> 0 AND {$_SESSION["session_opdb"]}.dateop
 BETWEEN '$datedebutmois' and '$datefinmois' AND {$_SESSION["session_avdb"]}.nodossier = {$_SESSION["session_opdb"]}.nodossier $reqsoustrait";
$resultat_mensuel=mysql_query("$query_res_mens");
$fric=0;
$tempstotalsec=0;
while($row=mysql_fetch_array($resultat_mensuel)){
$prixseconde=$row["prix"]/3600;
$fric+=($prixseconde*$row["temps"]);
$gain=round($fric*20)/20;
$tempstotalsec+=$row["temps"];
$tempstotal=round($tempstotalsec/3600,2);
}
$gain_tva=round($fric*(100 + $tx_tva)/100*20)/20;
$gain_affiche=number_format($gain, 2, '.', '\'');
$gain_tva_affiche=number_format($gain_tva, 2, '.', '\'');
echo "<br>$ra_tempsmois <b>$tempstotal";
echo "</b><br>$ra_fricmois <b>$gain_affiche</b> $currency <br>(<b>$gain_tva_affiche</b> $ra_avec_tva)<br>";
?>

</td><td width=100>&nbsp;
</td><td>

<?
// pour le calcul annuel
$query_res_ann="select time_to_sec({$_SESSION["session_opdb"]}.tempsop) as 'temps', {$_SESSION["session_avdb"]}.prixhoraire as 'prix'
 from {$_SESSION["session_opdb"]}, {$_SESSION["session_avdb"]} where {$_SESSION["session_opdb"]}.dateop <> 0 AND {$_SESSION["session_opdb"]}.dateop
 BETWEEN '$datedebutann' and '$datefinann' AND {$_SESSION["session_avdb"]}.nodossier = {$_SESSION["session_opdb"]}.nodossier $reqsoustrait";
$resultat_mensuel=mysql_query("$query_res_ann");
$fric=0;
$tempstotalsec=1;
while($row=mysql_fetch_array($resultat_mensuel)){
$prixseconde=$row["prix"]/3600;
$fric+=($prixseconde*$row["temps"]);
$gain=round($fric*20)/20;
$tempstotalsec+=$row["temps"];
$tempstotal=round($tempstotalsec/3600,2);
}
$gain_tva=round($fric*(100 + $tx_tva)/100*20)/20;
$gain_affiche=number_format($gain, 2, '.', '\'');
$gain_tva_affiche=number_format($gain_tva, 2, '.', '\'');
echo "<br>$ra_tempsann <b>$tempstotal";
echo "</b><br>$ra_fricann <b>$gain_affiche</b> $currency <br>(<b>$gain_tva_affiche</b> $ra_avec_tva)<br>";
?>

</td></tr></table>
</td></tr></table>
</td><td>

<?
// affichage du calendrier
if ($moischerche == "1"){
$affichemoisavant="$anneeavant-12-1";
$affichemoisapres="$anncherche-$moisapres-1";
/*print "
<A HREF=\"./ra.php?jourcherche=$anneeavant-12-1\"><b>[ - ]<font size=2></b></A>
&nbsp;$nomdumois[$moischerche] $anncherche&nbsp;
<A HREF=\"./ra.php?jourcherche=$anncherche-$moisapres-1\"><b>[ + ]</b></A>
<TABLE><TR>\n";*/
}elseif ($moischerche == "12"){
$affichemoisavant="$anncherche-$moisavant-1";
$affichemoisapres="$anneeapres-1-1";
/*print "
<A HREF=\"./ra.php?jourcherche=$anncherche-$moisavant-1\"><b>[ - ]<font size=2></b></A>
&nbsp;$nomdumois[$moischerche] $anncherche&nbsp;
<A HREF=\"./ra.php?jourcherche=$anneeapres-1-1\"><b>[ + ]</b></A>
<TABLE><TR>\n";*/
}else{
$affichemoisavant="$anncherche-$moisavant-1";
$affichemoisapres="$anncherche-$moisapres-1";
/*print "
<A HREF=\"./ra.php?jourcherche=$anncherche-$moisavant-1\"><b>[ - ]<font size=2></b></A>
&nbsp;$nomdumois[$moischerche] $anncherche&nbsp;
<A HREF=\"./ra.php?jourcherche=$anncherche-$moisapres-1\"><b>[ + ]</b></A>
<TABLE><TR>\n";*/
}

//écriture du formulaire de changement de mois
//attention aux changements d'année
foreach(array($moischerche-6, $moischerche-5, $moischerche-4, $moischerche-3, $moischerche-2, $moischerche-1, $moischerche, $moischerche+1, $moischerche+2, $moischerche+3, $moischerche+4, $moischerche+5, $moischerche+6) as $moischange) {
$modif_annee=NULL;
if($moischange<1){
$moischange=$moischange + 12;
$modif_annee="moins";
}
if($moischange>12){
$moischange=$moischange - 12;
$modif_annee="plus";
}
$selected="";
$affiche_mois_change=ucfirst(htmlentities(strftime("%B", mktime(0,0,0,$moischange,1,1))));
if($moischerche==$moischange) $selected="selected";
if($modif_annee=="moins") $annee_final=$anncherche -1;
elseif($modif_annee=="plus") $annee_final=$anncherche +1;
else $annee_final=$anncherche;

$listmoisselect=$listmoisselect."\n<option value=\"$annee_final-$moischange-1\" $selected>$affiche_mois_change</option>";
}
//écriture du formulaire de changement d'année
foreach(array($anncherche-2, $anncherche-1, $anncherche, $anncherche+1, $anncherche+2) as $annchange) {
$selected="";
$init_annchange=substr("$annchange", 2, 2);
if($anncherche==$annchange) $selected="selected";
$listselect=$listselect."\n<option value=\"$annchange-$moischerche-1\" $selected>$init_annchange</option>";
}
echo "<table align=center><tr><td>";
echo form("ra.php", "[-]", "", "", "", "jourcherche", "$affichemoisavant", "soustraitant", $_POST["soustraitant"]);
echo "</td><td>";
echo "<form action=\"ra.php\" method=\"post\" name=\"chmois\">";
echo input_hidden("soustraitant", "", $_POST["soustraitant"]);
echo "</td><td><select class=bg name=\"jourcherche\" onchange=\"document.chmois.submit()\"";
echo "$listmoisselect";
echo "</form>";
echo "</td><td>";
echo "<form action=\"ra.php\" method=\"post\" name=\"channee\">";
echo input_hidden("soustraitant", "", $_POST["soustraitant"]);
echo "</td><td><select class=bg name=\"jourcherche\" onchange=\"document.channee.submit()\"";
echo "$listselect";
echo "</form>";
echo "</td><td>";
echo form("ra.php", "[+]", "", "", "", "jourcherche", "$affichemoisapres", "soustraitant", $_POST["soustraitant"]);
echo "</td></tr></table>";
echo "<TABLE align=center><TR>\n";
for ( $w=0;$w<7;$w++){
  print "    <TD><font size=2>".strtoupper($week[$w])."</TD> \n";
}
print "  </TR>\n";
// creation du calendrier
for ($semaine=0;$semaine <=5;$semaine++) {   // 6 semaines par mois
  print "  <TR align=right>\n";
  for ($journee=0;$journee <=6;$journee++) { // 7 jours par semaine
    print " <TD><font size=2>";
           // test si le jour a afficher est valide, et test pour afficher aujourd'hui en gras:
    if ($nojour >0 && $nojour <= $jourmax && $nojour == $todayseul && $moischerche == $todaymois && $anncherche == $todayann) {
   echo form("ra.php", "<b>$nojour</b>", "", "", "", "jourcherche", "$anncherche-$moischerche-$nojour", "soustraitant", $_POST["soustraitant"]);
   //     print "<A HREF=\"./ra.php?jourcherche=$anncherche-$moischerche-$nojour\"><b>$nojour</b></A>";
    }elseif ($nojour >0 && $nojour <= $jourmax ){
   echo form("ra.php", "$nojour", "", "", "", "jourcherche", "$anncherche-$moischerche-$nojour", "soustraitant", $_POST["soustraitant"]);
   //     print "<A HREF=\"./ra.php?jourcherche=$anncherche-$moischerche-$nojour\">$nojour</A>";
    }else{
       print"&nbsp;";                        // afficher un espace si jour non valide
    }
    $nojour ++;
  print "</TD>\n";
  }
  print "  </TR>\n";
}
print "<tr align=center><td colspan=7>".form("ra.php", "$ra_go_today", "", "", "", "jourcherche", "$todayann-$todaymois-$todayseul", "soustraitant", $_POST["soustraitant"])."</td></tr></TABLE>\n";

?>

</td></tr>

</table>
</p><p>
<?
//Details des operations par jour
echo "<center><p><b>$ra_detjour:</b><br></center>";
$query="SELECT adresses.nom as 'nom', {$_SESSION["session_opdb"]}.nodossier, {$_SESSION["session_opdb"]}.op, {$_SESSION["session_opdb"]}.opavec, {$_SESSION["session_opdb"]}.dateop,
 time_format({$_SESSION["session_opdb"]}.tempsop, \"%k:%i\") as 'tempsfact', {$_SESSION["session_avdb"]}.prixhoraire
 FROM `{$_SESSION["session_opdb"]}`,`{$_SESSION["session_avdb"]}`, `adresses`
 WHERE {$_SESSION["session_opdb"]}.nodossier = {$_SESSION["session_avdb"]}.nodossier AND {$_SESSION["session_opdb"]}.dateop <> 0
 AND adresses.id = {$_SESSION["session_avdb"]}.noadresse
 AND {$_SESSION["session_opdb"]}.dateop ='{$_POST["jourcherche"]}' $reqsoustrait ORDER BY {$_SESSION["session_opdb"]}.dateop";
$resultat_recherche=mysql_query("$query");
echo "<table border=1 align=center bgcolor=ffffff><tr bgcolor=eeffff><td><b>$ra_date</b></td><td><b>$ra_activ</b></td><td><b>$ra_activdet</b></td><td><b>$ra_temps</b></td><td><b>$ra_prix</b></td><td><b>$ra_voirdossier</b></td></tr>";
while($row = mysql_fetch_array($resultat_recherche)) {
$jourmysql=$row["dateop"];
$jour=implode('.',array_reverse(explode('-',"$jourmysql")));
echo "<tr><td>$jour";
echo "</td><td>";
echo $row["op"]; 
echo "</td><td>";
	if ($row["opavec"] <> NULL){
	echo $row["opavec"]; 
	echo "</td><td><center>";
		}else {
		echo"&nbsp;";
		echo "</td><td><center>";
		}
echo $row["tempsfact"]; 
echo "</center></td><td><center>";
echo $row["prixhoraire"]; 
echo ".-</center></td><td>";
echo form("operations.php", "{$row["nom"]} # {$row["nodossier"]}", "", "", "", "nodossier", "{$row["nodossier"]}");
/*<a ";
echo "href=\"./operations.php?no_dossier=", $row["nodossier"],"\">";
echo "&nbsp;", $row["nom"];
echo "&nbsp; #";
echo $row["nodossier"];
echo "</a>";*/
echo "</td></tr>";
}
echo "</td></tr></table>";
echo "</p>";

//Details des operations par mois
echo "<center><p><b>$ra_detmois</b><br></center>";
$query="SELECT adresses.nom as 'nom', {$_SESSION["session_opdb"]}.nodossier, {$_SESSION["session_opdb"]}.op, {$_SESSION["session_opdb"]}.opavec, {$_SESSION["session_opdb"]}.dateop,
 time_format({$_SESSION["session_opdb"]}.tempsop, \"%k:%i\") as 'tempsfact', {$_SESSION["session_avdb"]}.prixhoraire
 FROM `{$_SESSION["session_opdb"]}`,`{$_SESSION["session_avdb"]}`, `adresses`
 WHERE {$_SESSION["session_opdb"]}.nodossier = {$_SESSION["session_avdb"]}.nodossier AND {$_SESSION["session_opdb"]}.dateop <> 0
 AND adresses.id = {$_SESSION["session_avdb"]}.noadresse
 AND {$_SESSION["session_opdb"]}.dateop BETWEEN '$datedebutmois' and '$datefinmois' $reqsoustrait ORDER BY {$_SESSION["session_opdb"]}.dateop";
$resultat_recherche=mysql_query("$query");
echo "<table border=1 align=center bgcolor=ffffff><tr bgcolor=eeffff><td><b>$ra_date</b></td><td><b>$ra_activ</b></td><td><b>$ra_activdet</b></td><td><b>$ra_temps</b></td><td><b>$ra_prix</b></td><td><b>$ra_voirdossier</b></td></tr>";
while($row = mysql_fetch_array($resultat_recherche)) {
$jourmysql=$row["dateop"];
$jour=implode('.',array_reverse(explode('-',"$jourmysql")));
echo "<tr><td>$jour";
echo "</td><td>";
echo $row["op"]; 
echo "</td><td>";
	if ($row["opavec"] <> NULL){
	echo $row["opavec"]; 
	echo "</td><td><center>";
		}else {
		echo"&nbsp;</td><td><center>";
		}
echo $row["tempsfact"]; 
echo "</center></td><td><center>";
echo $row["prixhoraire"]; 
echo ".-</center></td><td>";
echo form("operations.php", "{$row["nom"]} # {$row["nodossier"]}", "", "", "", "nodossier", "{$row["nodossier"]}");
/*<a ";
echo "href=\"./operations.php?no_dossier=", $row["nodossier"],"\">";
echo "&nbsp;", $row["nom"];
echo "&nbsp; #";
echo $row["nodossier"];
echo "</a>";*/
echo "</td></tr>";
}
echo "</td></tr></table>";

//exploitation des résultats dans un graphique
//par Olivier Subilia (hide@address.com)

//vérification de la bibliothèque gd
//foreach(gd_info() as $nom => $val) echo "<br>$nom: $val";

//variables de recherche
$moiscours=$moischerche - 11;
$anncours=$anncherche - 1;
$anncours_init=$anncours;
if($moiscours==1) $anncours = $anncours + 1;
if($moiscours<1) $moiscours = $moiscours + 12;
$annfin=$anncours + 1;
$datedebutann="$anncours-$moiscours-1"; //on redéfinit la date de début d'année en décalé dans le temps
$datefinann="$annfin-$moiscours-1"; //idem




//Premier graphique: résultats globaux
//gain théorique: création du tableau avec tous les mois, pour éviter les trous
new_display(1);
$tab1query="select month({$_SESSION["session_opdb"]}.dateop) as mois, year({$_SESSION["session_opdb"]}.dateop) as annee, sum(time_to_sec({$_SESSION["session_opdb"]}.tempsop) * {$_SESSION["session_avdb"]}.prixhoraire /3600) as 'gain'
 from {$_SESSION["session_opdb"]}, {$_SESSION["session_avdb"]} where {$_SESSION["session_opdb"]}.dateop <> 0 AND {$_SESSION["session_opdb"]}.dateop
 BETWEEN '$datedebutann' and date_sub('$datefinann', interval 1 day) AND {$_SESSION["session_avdb"]}.nodossier = {$_SESSION["session_opdb"]}.nodossier $reqsoustrait group by 'mois'";
$exec_tab_query=mysql_query("$tab1query");
while($row=mysql_fetch_array($exec_tab_query)){
$tval=$row['annee'].".".$row['mois'];
$display[1]["$tval"]= (100 + $tx_tva) * $row["gain"] / 100;
$legende[1]=$ra_hono_ts;
}

//encaissements effectifs: création du tableau avec tous les mois, pour éviter les trous. Attention au taux de TVA
new_display(2);
$tab1query="select month({$_SESSION["session_opdb"]}.dateac) as mois, year({$_SESSION["session_opdb"]}.dateac) as annee, sum(encaissement) as encaissements
 from {$_SESSION["session_opdb"]}, {$_SESSION["session_avdb"]} where {$_SESSION["session_opdb"]}.dateac <> 0 AND {$_SESSION["session_opdb"]}.dateac
 BETWEEN '$datedebutann' and date_sub('$datefinann', interval 1 day) AND {$_SESSION["session_avdb"]}.nodossier = {$_SESSION["session_opdb"]}.nodossier $reqsoustrait group by 'mois'";
$exec_tab_query=mysql_query("$tab1query");
while($row=mysql_fetch_array($exec_tab_query)){
$tval=$row['annee'].".".$row['mois'];
$display[2]["$tval"]= $row["encaissements"];
$legende[2]=$ra_hono_enc;
}

//Taux horaire moyen: création du tableau avec tous les mois, pour éviter les trous
new_display(3);
$tab1query="select month({$_SESSION["session_opdb"]}.dateop) as mois, year({$_SESSION["session_opdb"]}.dateop) as annee, sum(time_to_sec({$_SESSION["session_opdb"]}.tempsop) * {$_SESSION["session_avdb"]}.prixhoraire /3600) as 'gain', sum(time_to_sec({$_SESSION["session_opdb"]}.tempsop)) as tempstotal
 from {$_SESSION["session_opdb"]}, {$_SESSION["session_avdb"]} where {$_SESSION["session_opdb"]}.dateop <> 0 AND {$_SESSION["session_opdb"]}.dateop
 BETWEEN '$datedebutann' and date_sub('$datefinann', interval 1 day) AND {$_SESSION["session_avdb"]}.nodossier = {$_SESSION["session_opdb"]}.nodossier $reqsoustrait group by 'mois'";
$exec_tab_query=mysql_query("$tab1query");
while($row=mysql_fetch_array($exec_tab_query)){
$tval=$row['annee'].".".$row['mois'];
if($row["tempstotal"]){ //pas de division par zéro !
$txmoyen=$row["gain"] / $row["tempstotal"] * 360000; // et non 3600, car le tx est multiplié par 100 pour des raisons de lisibilité
}
else $txmoyen=1;
$display[3]["$tval"]= $txmoyen;
$legende[3]=$ra_tx_moyen;
}

//Taux horaire moyen: création du tableau avec tous les mois, pour éviter les trous
new_display(4);
$tab1query="select month(dateouverture) as mois, year(dateouverture) as annee, sum(1) as dossiersouverts
 from {$_SESSION["session_avdb"]} where dateouverture
 BETWEEN '$datedebutann' and date_sub('$datefinann', interval 1 day) group by 'mois'";
$exec_tab_query=mysql_query("$tab1query");
//echo $tab1query;
while($row=mysql_fetch_array($exec_tab_query)){
$tval=$row['annee'].".".$row['mois'];
$ouverts=$row["dossiersouverts"] * 1000; // le tx est multiplié par 1000 pour des raisons de lisibilité
$display[4]["$tval"]= $ouverts;
$legende[4]=$ra_dossiers;
}

//Nombre de dossiers ouverts au 15 de chaque mois: création du tableau avec tous les mois, pour éviter les trous
new_display(5);
for($i=1;$i<13;$i++){
$tab1query="select sum(1) as dossiersouverts from {$_SESSION["session_avdb"]} where dateouverture < '$anncours-$moiscours-15' and (datearchivage > '$anncours-$moiscours-15' OR datearchivage = '0000-00-00')";
//echo "<br><font color=red>$tab1query</font>";
$exec_tab_query=mysql_query("$tab1query");
while($row=mysql_fetch_array($exec_tab_query)){
$tval=$anncours.".".$moiscours;
$ouverts=$row["dossiersouverts"] * 100; // le tx est multiplié par 100 pour des raisons de lisibilité
$display[5]["$tval"]= $ouverts;
$legende[5]=$ra_dossiers_ouverts;
}
$moiscours++;
if($moiscours==13){
$moiscours=1;
$anncours++;
}

}

$num=count($display[1]); //la légende n'est que celle du premier tableau, on part donc de l'idée que le nombre d'élément est constant.
$max=calcule_max();
$vertic=600;
$hor=800;
$vertic_margin=round($vertic/10);
$vertic_disp=$vertic-3*$vertic_margin;
if($max) $ratio=$vertic_disp/$max;
else $ratio=1;
$img=imagecreate($hor, $vertic);

$list_colors=couleurs_image($img);


write_graphique($legende, $img);

//création des bords du tableau
//axes
$xorig=$hor/($num + 1);
$xend=$num * $hor/($num + 1);
$yorig=$vertic - 2*$vertic_margin;
$xmax=$num*$hor/($num + 1);
$ymax=$vertic_margin;

imageline($img, $xorig, $yorig, $xmax, $yorig, $list_colors["vert"]);
imageline($img, $xorig, $yorig, $xorig, $ymax, $list_colors["vert"]);

//légende verticale
//test du nombre de chiffres de max
$vartotest=$max;
$puissance=0.01;
for($n=0;;$n++){
if ($vartotest<1) break;
$vartotest=$vartotest/10;
$puissance=$puissance*10;
}

$ecart_num=round((round($max/(8*$puissance))*$puissance)/2.5/$puissance)*2.5*$puissance;
$ecart=round($ecart_num*$ratio);
//écriture des écarts
$ydep=$yorig;
$ytest=0;
$xarr=$xorig - 2;

if($ecart_num AND $max){// pas de boucle perpétuelle...
for($m=1;;$m++){
imageline($img, $xorig, $ydep, $xarr, $ydep, $list_colors["noir"]);
if($m>1) imageline($img, $xorig, $ydep, $xend, $ydep, $list_colors["gris"]);
imagestring($img, 1, $xorig -30, $ydep, $ytest, $list_colors["noir"]);
$ytest=$ytest+$ecart_num;
$ydep=$ydep-$ecart;
if($ytest > $max) break;
}
}

//écriture de l'image
//création d'un nom unique
$img_name=time();
$img_name=$session_utilisateur.$img_name.".png";
//création du répertoire temp au besoin
if(!is_dir("./temp")) mkdir("./temp", 0775);
//liquidation des vieilles images au besoin
$dir=opendir("./temp");
while ($arr=readdir($dir)) {
if(time() - filectime("./temp/$arr") >100 AND $arr!="." AND $arr!=".." AND is_file("./temp/$arr")) unlink("./temp/$arr");
}

//création de l'image
$imgoutput=imagepng($img, "./temp/$img_name");
imagedestroy($img);


//2ème graphiques Détails par type de mandat
//Nombre de dossiers ouverts au 15 de chaque mois: création du tableau avec tous les mois, pour éviter les trous
$display=array(); //réinitialisation des "displays"
$legende=array(); //idem
$deja_vide=FALSE; //gestion de la ligne vide du tableau
$file_type=explode("\n", $option_gen["dossiers_type"]);
array_push($file_type, ""); //pour s'assurer qu'il y aura bien une ligne "autres" (soit ceux qui ne sont pas notés)
$disp_number=0;

foreach ($file_type as $line){
if($deja_vide==FALSE){
$anncours=$anncours_init;
//echo "<br><br>-----------------<br><br>";

$disp_number++;
list($init, $val) = split (",", $line);
$val=trim($val);
if($val == ""){
$val=$ra_autres;
$deja_vide=TRUE;
}
$legende[$disp_number]=trim($val);
new_display($disp_number);
for($i=1;$i<13;$i++){
$tab1query="select sum(1) as dossiersouverts from {$_SESSION["session_avdb"]} where (dateouverture < '$anncours-$moiscours-15' and (datearchivage > '$anncours-$moiscours-15' OR datearchivage = '0000-00-00')) AND typedossier like '$init'";
//echo "<br>$tab1query";
$exec_tab_query=mysql_query("$tab1query");
while($row=mysql_fetch_array($exec_tab_query)){
$tval=$anncours.".".$moiscours;
$ouverts=$row["dossiersouverts"];
$display[$disp_number]["$tval"]= $ouverts;
//echo " soit $ouverts";
}
$moiscours++;
if($moiscours==13){
$moiscours=1;
$anncours++;
}

}
}
}

$num=count($display[1]); //la légende n'est que celle du premier tableau, on part donc de l'idée que le nombre d'élément est constant.
$max=calcule_max();
$img=nouvelle_image();
$list_colors=couleurs_image($img);

//création des bords du tableau
//axes
$xorig=$hor/($num + 1);
$xend=$num * $hor/($num + 1);
$yorig=$vertic - 2*$vertic_margin;
$xmax=$num*$hor/($num + 1);
$ymax=$vertic_margin;

imageline($img, $xorig, $yorig, $xmax, $yorig, $list_colors["vert"]);
imageline($img, $xorig, $yorig, $xorig, $ymax, $list_colors["vert"]);

//légende verticale
//test du nombre de chiffres de max
$vartotest=$max;
$puissance=0.01;
for($n=0;;$n++){
if ($vartotest<1) break;
$vartotest=$vartotest/10;
$puissance=$puissance*10;
}

$ecart_num=round((round($max/(8*$puissance))*$puissance)/2.5/$puissance)*2.5*$puissance;
$ecart=round($ecart_num*$ratio);
//écriture des écarts
$ydep=$yorig;
$ytest=0;
$xarr=$xorig - 2;

if($ecart_num AND $max){// pas de boucle perpétuelle...
for($m=1;;$m++){
imageline($img, $xorig, $ydep, $xarr, $ydep, $list_colors["noir"]);
if($m>1) imageline($img, $xorig, $ydep, $xend, $ydep, $list_colors["gris"]);
imagestring($img, 1, $xorig -30, $ydep, $ytest, $list_colors["noir"]);
$ytest=$ytest+$ecart_num;
$ydep=$ydep-$ecart;
if($ytest > $max) break;
}
}

write_graphique($legende, $img); //écriture des "courbes"


//écriture de l'image
//création d'un nom unique
$img_name2=time();
$img_name2=$session_utilisateur.$img_name."_bis.png";
//création du répertoire temp au besoin
if(!is_dir("./temp")) mkdir("./temp", 0775);
//liquidation des vieilles images au besoin
$dir=opendir("./temp");
while ($arr=readdir($dir)) {
if(time() - filectime("./temp/$arr") >100 AND $arr!="." AND $arr!=".." AND is_file("./temp/$arr")) unlink("./temp/$arr");
}

//création de l'image
$imgoutput=imagepng($img, "./temp/$img_name2");
imagedestroy($img);



//3ème graphique: détails par matière
//Nombre de dossiers ouverts au 15 de chaque mois: création du tableau avec tous les mois, pour éviter les trous
$display=array(); //réinitialisation des "displays"
$legende=array(); //idem
$file_type=explode("\n", $option_gen["matiere_type"]);
$disp_number=1;
$exclusion="";

//commençons par déterminer quels sont les matières les plus représentées
$matieres=array();
$excl_requete="";
//tab_affiche($file_type);
foreach ($file_type as $line){
$anncours=$anncours_init + 1;
list($init, $val) = split (",", $line);
if(trim($init) != ""){
$init = trim($init);
$tablquery="select sum(1) as dossiersouverts from {$_SESSION["session_avdb"]} where (dateouverture < '$anncours-$moiscours-15' and (datearchivage > '$anncours-$moiscours-15' OR datearchivage = '0000-00-00')) AND matiere like '$init'";
//echo "<br>$tablquery";
//echo "<br>En train de tester $init ... ";
$exec_tab_query=mysql_query($tablquery);
while($row=mysql_fetch_array($exec_tab_query)){
if($row["dossiersouverts"] != 0){
//echo "il y a {$row["dossiersouverts"]} $init.";
$matieres_type=$init;
$matieres_nombre=$row["dossiersouverts"];
//echo "<br>*$matieres_nombre de $init";
$matieres[$matieres_nombre]=$matieres_type;
}
}
}
}

krsort ($matieres);
//tab_affiche($matieres);

$count_matieres=0;
foreach ($matieres as $nombre => $init){
$count_matieres++;
if($count_matieres==7) break;
$anncours=$anncours_init;
if(trim($init) != ""){
$val="";
foreach($file_type as $line){
list($inittemp, $valtemp) = split(",", $line);
if($init == trim($inittemp)) {
$val = trim($valtemp);
break;
}
}

$disp_number++;
//echo "<br>actuellement, disp_number vaut $disp_number";
$legende[$disp_number]=trim($val);
new_display($disp_number);
for($i=1;$i<13;$i++){
$tab1query="select sum(1) as dossiersouverts from {$_SESSION["session_avdb"]} where (dateouverture < '$anncours-$moiscours-15' and (datearchivage > '$anncours-$moiscours-15' OR datearchivage = '0000-00-00')) AND matiere like '$init'";
$exec_tab_query=mysql_query("$tab1query");
while($row=mysql_fetch_array($exec_tab_query)){
$tval=$anncours.".".$moiscours;
$ouverts=$row["dossiersouverts"];
$display[$disp_number]["$tval"]= $ouverts;
}
$moiscours++;
if($moiscours==13){
$moiscours=1;
$anncours++;
}
}
if($exclusion != "") $exclusion .= " AND ";
$exclusion .= "matiere not like '$init'";
}
}



//Dernier type: les non-classés

$anncours=$anncours_init;
new_display(1);
$legende[1]="$ra_autres";
for($i=1;$i<13;$i++){
if(trim($exclusion) == "") $exclude= "";
else $exclude = "AND ($exclusion)";
$tab1query="select sum(1) as dossiersouverts from {$_SESSION["session_avdb"]} where (dateouverture < '$anncours-$moiscours-15' and (datearchivage > '$anncours-$moiscours-15' OR datearchivage = '0000-00-00')) $exclude";
//echo $tab1query;
$exec_tab_query=mysql_query("$tab1query");
while($row=mysql_fetch_array($exec_tab_query)){
$tval=$anncours.".".$moiscours;
$ouverts=$row["dossiersouverts"];
$display[1]["$tval"]= $ouverts;
}
$moiscours++;
if($moiscours==13){
$moiscours=1;
$anncours++;
}
}

//ksort($graphique);



$num=count($display[1]); //la légende n'est que celle du premier tableau, on part donc de l'idée que le nombre d'élément est constant.
$max=calcule_max();
$img=nouvelle_image();
$list_colors=couleurs_image($img);

write_graphique($legende, $img); //écriture des "courbes" une par une
//write_cadre($list_colors); //pas encore définie == ce qui suit dessous

//création des bords du tableau
//axes
$xorig=$hor/($num + 1);
$xend=$num * $hor/($num + 1);
$yorig=$vertic - 2*$vertic_margin;
$xmax=$num*$hor/($num + 1);
$ymax=$vertic_margin;

imageline($img, $xorig, $yorig, $xmax, $yorig, $list_colors["vert"]);
imageline($img, $xorig, $yorig, $xorig, $ymax, $list_colors["vert"]);

//légende verticale
//test du nombre de chiffres de max
$vartotest=$max;
$puissance=0.01;
for($n=0;;$n++){
if ($vartotest<1) break;
$vartotest=$vartotest/10;
$puissance=$puissance*10;
}

$ecart_num=round((round($max/(8*$puissance))*$puissance)/2.5/$puissance)*2.5*$puissance;
$ecart=round($ecart_num*$ratio);
//écriture des écarts
$ydep=$yorig;
$ytest=0;
$xarr=$xorig - 2;

if($ecart_num AND $max){// pas de boucle perpétuelle...
for($m=1;;$m++){
imageline($img, $xorig, $ydep, $xarr, $ydep, $list_colors["noir"]);
if($m>1) imageline($img, $xorig, $ydep, $xend, $ydep, $list_colors["gris"]);
imagestring($img, 1, $xorig -30, $ydep, $ytest, $list_colors["noir"]);
$ytest=$ytest+$ecart_num;
$ydep=$ydep-$ecart;
if($ytest > $max) break;
}
}

//écriture de l'image
//création d'un nom unique
$img_name3=time();
$img_name3=$session_utilisateur.$img_name."_ter.png";
//création du répertoire temp au besoin
if(!is_dir("./temp")) mkdir("./temp", 0775);
//liquidation des vieilles images au besoin
$dir=opendir("./temp");
while ($arr=readdir($dir)) {
if(time() - filectime("./temp/$arr") >100 AND $arr!="." AND $arr!=".." AND is_file("./temp/$arr")) unlink("./temp/$arr");
}

//création de l'image
$imgoutput=imagepng($img, "./temp/$img_name3");
imagedestroy($img);

?>
<p>&nbsp;</p>
<p align=center><b><? echo $ra_details ?></b></p>
<p align=center><img src="./temp/<? echo $img_name ?>"></p>
<p>&nbsp;</p>
<p align=center><b><? echo $ra_details_type ?></b></p>
<p align=center><img src="./temp/<? echo $img_name2 ?>"></p>
<p>&nbsp;</p>
<p align=center><b><? echo $ra_details_matiere ?></b></p>
<p align=center><img src="./temp/<? echo $img_name3 ?>"></p>

</p>
</body></html>
Return current item: Prolawyer