addworksheet(); $worksheet->write(0,0,$titre_page); break; case "TABLEAUHTML": //le titre de la page print "

".$msg["transferts_edition_titre"]." : ".$msg["transferts_edition_".$sub]."

"; break; default: //le titre de la page print "

".$msg["transferts_edition_titre"]." > ".$msg["transferts_edition_".$sub]."

"; break; } // en fonction de l'etat du transfert switch($sub) { case "validation": //initialisation du site d'origine if ($site_origine=="") $site_origine = $deflt_docs_location; //initialisation du site de destination if ($site_destination=="") $site_destination = 0; //la requete d'affichage $rqt = "SELECT ". "num_notice as val_id_notice, num_bulletin as val_id_bulletin, ". "expl_cb as val_expl, expl_cote as val_cote, ". "section_libelle as val_section , locd.location_libelle as val_dest, " . "loco.location_libelle as val_source, lender_libelle as val_expl_owner, motif as val_motif, " . "empr_cb as val_empr_cb, concat(empr_nom,' ',empr_prenom) as val_empr_nom_prenom " . "FROM transferts " . "INNER JOIN transferts_demande ON id_transfert=num_transfert " . "INNER JOIN exemplaires ON num_expl=expl_id " . "INNER JOIN docs_section ON expl_section=idsection " . "INNER JOIN docs_location AS locd ON num_location_dest=locd.idlocation " . "INNER JOIN docs_location AS loco ON num_location_source=loco.idlocation " . "INNER JOIN lenders ON expl_owner=idlender " . "LEFT JOIN resa ON resa_trans=id_resa " . "LEFT JOIN empr ON resa_idempr=id_empr " . "WHERE etat_transfert=0 ". "AND etat_demande=0 "; //filtre source si nécéssaire if ($site_origine!=0) $rqt .= " AND num_location_source=" .$site_origine; //filtre destination si nécéssaire if ($site_destination!=0) $rqt .= " AND num_location_dest=" . $site_destination; break; case "envoi": //initialisation du site d'origine if ($site_origine=="") $site_origine = $deflt_docs_location; //initialisation du site de destination if ($site_destination=="") $site_destination = 0; //la requete d'affichage $rqt = "SELECT ". "num_notice as val_id_notice, num_bulletin as val_id_bulletin, ". "expl_cb as val_expl, expl_cote as val_cote, ". "section_libelle as val_section , locd.location_libelle as val_dest, " . "loco.location_libelle as val_source, lender_libelle as val_expl_owner, motif as val_motif, " . "empr_cb as val_empr_cb, concat(empr_nom,' ',empr_prenom) as val_empr_nom_prenom " . "FROM transferts " . "INNER JOIN transferts_demande ON id_transfert=num_transfert " . "INNER JOIN exemplaires ON num_expl=expl_id " . "INNER JOIN docs_section ON expl_section=idsection " . "INNER JOIN docs_location AS locd ON num_location_dest=locd.idlocation " . "INNER JOIN docs_location AS loco ON num_location_source=loco.idlocation " . "INNER JOIN lenders ON expl_owner=idlender " . "LEFT JOIN resa ON resa_trans=id_resa " . "LEFT JOIN empr ON resa_idempr=id_empr " . "WHERE etat_transfert=0 ". "AND etat_demande=1 "; //filtre source si nécéssaire if ($site_origine!=0) $rqt .= " AND num_location_source=" .$site_origine; //filtre destination si nécéssaire if ($site_destination!=0) $rqt .= " AND num_location_dest=" .$site_destination; break; case "retours": //initialisation du site d'origine if ($site_origine=="") $site_origine = $deflt_docs_location; //initialisation du site de destination if ($site_destination=="") $site_destination = 0; //la requete d'affichage $rqt = "SELECT ". "num_notice as val_id_notice, num_bulletin as val_id_bulletin, ". "expl_cb as val_expl, expl_cote as val_cote, ". "section_libelle as val_section , locd.location_libelle as val_dest, " . "loco.location_libelle as val_source, lender_libelle as val_expl_owner, motif as val_motif, " . "empr_cb as val_empr_cb, concat(empr_nom,' ',empr_prenom) as val_empr_nom_prenom " . "FROM transferts " . "INNER JOIN transferts_demande ON id_transfert=num_transfert " . "INNER JOIN exemplaires ON num_expl=expl_id " . "INNER JOIN docs_section ON expl_section=idsection " . "INNER JOIN docs_location locd ON num_location_source=locd.idlocation " . "INNER JOIN docs_location loco ON num_location_dest=loco.idlocation " . "INNER JOIN lenders ON expl_owner=idlender " . "LEFT JOIN resa ON resa_trans=id_resa " . "LEFT JOIN empr ON resa_idempr=id_empr " . "WHERE etat_transfert=0 ". "AND type_transfert=1 ". "AND etat_demande=3 "; //filtre origine si nécéssaire if ($site_origine!=0) $rqt .= " AND num_location_dest=".$site_origine; //filtre destination si nécéssaire if ($site_destination!=0) $rqt .= " AND num_location_source=".$site_destination; //application du filtre sur la date de retour switch ($f_etat_date) { case "1": $rqt .= " AND (DATEDIFF(DATE_ADD(date_retour,INTERVAL -" . $transferts_nb_jours_alerte . " DAY),CURDATE())<=0"; $rqt .= " AND DATEDIFF(date_retour,CURDATE())>=0)"; break; case "2": $rqt .= " AND DATEDIFF(date_retour,CURDATE())<0"; break; } break; } $rqt .= " ORDER BY val_section, val_expl"; //echo $rqt; $cols_supp = ""; // si la destination n'est pas précisé if ($site_origine==0) { $cols_supp .= $transferts_edition_titre_source; $cols_supp_ligne .= $transferts_edition_ligne_source; } if ($site_destination==0) { $cols_supp .= $transferts_edition_titre_destination; $cols_supp_ligne .= $transferts_edition_ligne_destination; } $tabLigne = str_replace("!!colonnes_variables!!", $cols_supp_ligne, $transferts_edition_ligne); //echo $rqt; //execution de la requete $req = mysql_query($rqt); switch($dest) { case "TABLEAU": $nbr_champs = @mysql_num_fields($req); $nbr_lignes = @mysql_num_rows($req); for($n=0; $n < $nbr_champs; $n++) { $worksheet->write(2,$n,mysql_field_name($req,$n)); } for($i=0; $i < $nbr_lignes; $i++) { $row = mysql_fetch_row($req); $j=0; foreach($row as $dummykey=>$col) { if(!$col) $col=" "; $worksheet->write(($i+3),$j,$col); $j++; } } $workbook->close(); $fh=fopen($fname, "rb"); fpassthru($fh); unlink($fname); break; case "TABLEAUHTML": //le nombre de colonnes dans la requete pour remplacer les champs dans le template $nbCols = mysql_num_fields($req); $transferts_list .= "" ; $transferts_list .= " !!colonnes_variables!! !!lignes_tableau!!
".$msg["transferts_edition_tableau_titre"]." ".$msg["transferts_edition_tableau_section"]." ".$msg["transferts_edition_tableau_cote"]." ".$msg["transferts_edition_tableau_expl"]." ".$msg["transferts_edition_tableau_empr"]." ".$msg["transferts_edition_tableau_expl_owner"]."".$msg["transferts_edition_tableau_motif"]."
"; $tmpAff = ""; //on boucle sur la liste while ($value = mysql_fetch_array($req)) { //pour la coloration if ($nb % 2) $tmpLigne = str_replace("!!class_ligne!!", "odd", $tabLigne); else $tmpLigne = str_replace("!!class_ligne!!", "even", $tabLigne); //on parcours toutes les colonnes de la requete for($i=0;$i<$nbCols;$i++) { $tmpLigne = str_replace("!!".mysql_field_name($req,$i)."!!",$value[$i],$tmpLigne); } //affichage du titre $tmpLigne = str_replace("!!val_titre!!", aff_titre($value[0], $value[1]), $tmpLigne); //on ajoute la ligne a la liste $tmpAff .= $tmpLigne; $nb++; } //fin while //on met les lignes du tableau dans le tableau $transferts_list = str_replace("!!lignes_tableau!!",$tmpAff,$transferts_list); //si on a des colonnes en plus $transferts_list = str_replace("!!colonnes_variables!!", $cols_supp, $transferts_list); //on affiche la page ! echo $transferts_list; break; default: //le nombre de colonnes dans la requete pour remplacer les champs dans le template $nbCols = mysql_num_fields($req); $tmpAff = ""; //on boucle sur la liste while ($value = mysql_fetch_array($req)) { //pour la coloration if ($nb % 2) $tmpLigne = str_replace("!!class_ligne!!", "odd", $tabLigne); else $tmpLigne = str_replace("!!class_ligne!!", "even", $tabLigne); //on parcours toutes les colonnes de la requete for($i=0;$i<$nbCols;$i++) { $tmpLigne = str_replace("!!".mysql_field_name($req,$i)."!!",$value[$i],$tmpLigne); } //affichage du titre $tmpLigne = str_replace("!!val_titre!!", aff_titre($value[0], $value[1]), $tmpLigne); //on ajoute la ligne a la liste $tmpAff .= $tmpLigne; $nb++; } //fin while //on met les lignes du tableau dans le tableau $tmpAff = str_replace("!!lignes_tableau!!",$tmpAff,$transferts_edition_tableau); //si on a des colonnes en plus $tmpAff = str_replace("!!colonnes_variables!!", $cols_supp, $tmpAff); //la sub pour retomber sur ses pattes $tmpAff = str_replace("!!sub!!",$sub,$tmpAff); //les filtres //pour la liste des origines $filtres = str_replace("!!liste_sites_origine!!",creer_liste_localisations($site_origine),$transferts_edition_filtre_source); //pour la liste de destination $filtres .= str_replace("!!liste_sites_destination!!",creer_liste_localisations($site_destination),$transferts_edition_filtre_destination); if ($sub=="retours") { //le filtre de l'etat de la date $filtres .= str_replace("!!sel_" . $f_etat_date . "!!", "selected", $transferts_retour_filtre_etat); } //la sub pour retomber sur ses pattes $tmpAff = str_replace("!!filtres_edition!!",$filtres,$tmpAff); //on affiche la page ! echo $tmpAff; break; } //*********************************************************************************************************** //renvoi le titre de l'exemplaire pour le tableau function aff_titre($id_notice,$id_bulletin) { if ($id_notice!=0) { //c'est une notice $disp = new mono_display($id_notice); } else { //c'est un bulletin $disp = new bulletinage_display($id_bulletin); } return $disp->header; } //*********************************************************************************************************** //crée la liste des localisations en précisant une de sélectionner et si on rajoute une ligne tous function creer_liste_localisations($loc_select,$tous = true) { global $msg; //la requete $rqt="SELECT idlocation, location_libelle FROM docs_location ORDER BY location_libelle "; $req = mysql_query($rqt); //initialisation de la liste if ($tous) $tmpListe = ""; else $tmpListe = ""; //on parcours while ($value = mysql_fetch_array($req)) { $tmpListe .= "