$coch_groupe[0] = $id_groupe; } while ($coch_groupe[$j]) { $id_groupe = $coch_groupe[$j]; $ourPDF->addPage(); //$ourPDF->SetMargins(10,10,10); $ourPDF->SetLeftMargin(10); $ourPDF->SetTopMargin(10); // paramétrage spécifique à ce document : $offsety = 0; if (!$pmb_hide_biblioinfo_letter) { biblio_info(10, 10, 1); } $offsety = (ceil($ourPDF->GetStringWidth($biblio_name) / 90) - 1) * 10; //90=largeur de la cell, 10=hauteur d'une ligne groupe_adresse($id_groupe, 130, 10 + $offsety, $dbh, true); date_edition(10, 15 + $offsety); $ourPDF->SetXY(10, 15 + $offsety); $ourPDF->setFont($pmb_pdf_font, 'BI', 14); $ourPDF->multiCell(190, 20, $msg["prets_en_cours"], 0, 'L', 0); $i = 0; $nb_page = 0; $indice_page = 0; $nb_par_page = 21; $nb_1ere_page = 19; $taille_bloc_expl = 12; $debut_expl_1er_page = 35 + $offsety; $debut_expl_page = 10; $limite_after_list = 250; //requete par rapport à un groupe d'emprunteurs $rqt1 = "select empr_id from empr_groupe, empr, pret where groupe_id='" . $id_groupe . "' and empr_groupe.empr_id=empr.id_empr and pret.pret_idempr=empr_groupe.empr_id group by empr_id order by empr_nom, empr_prenom";
function buildPdfLoansRunningGroup($id_groupe = '') { global $dbh, $fpdf, $msg, $ourPDF; global $class_path, $include_path; global $pdflettreretard_1largeur_page, $pdflettreretard_1hauteur_page, $pdflettreretard_1format_page; global $pmb_pdf_font, $pmb_pdf_fontfixed, $pmb_hide_biblioinfo_letter; if (!$id_groupe) { throw new Exception("Missing parameter : id_groupe"); } $this->get_texts(1); $largeur_page = $pdflettreretard_1largeur_page; $hauteur_page = $pdflettreretard_1hauteur_page; $taille_doc = array($largeur_page, $hauteur_page); $format_page = $pdflettreretard_1format_page; // inclusion de la classe de gestion des impressions PDF // Definition de la police si pas définie dans les paramètres if (!$pmb_pdf_font) { $pmb_pdf_font = 'pmb'; } if (!$pmb_pdf_fontfixed) { $pmb_pdf_fontfixed = 'pmbmono'; } define('FPDF_FONTPATH', "{$class_path}/font/"); // Démarrage et configuration du pdf $ourPDF = new $fpdf($format_page, 'mm', $taille_doc); $ourPDF->Open(); $ourPDF->addPage(); //$ourPDF->SetMargins(10,10,10); $ourPDF->SetLeftMargin(10); $ourPDF->SetTopMargin(10); // paramétrage spécifique à ce document : $offsety = 0; if (!$pmb_hide_biblioinfo_letter) { biblio_info(10, 10, 1); } groupe_adresse($id_groupe, 150, 10 + $offsety, $dbh, true); date_edition(10, 15 + $offsety); $ourPDF->SetXY(10, 15 + $offsety); // $ourPDF->setFont($pmb_pdf_font, 'BI', 14); $ourPDF->multiCell(190, 20, $msg["prets_en_cours"], 0, 'L', 0); $i = 0; $nb_page = 0; $indice_page = 0; $nb_par_page = 21; $nb_1ere_page = 19; $taille_bloc_expl = 12; $debut_expl_1er_page = 35 + $offsety; $debut_expl_page = 10; //requete par rapport à un groupe d'emprunteurs $rqt1 = "select empr_id from empr_groupe, empr, pret where groupe_id='" . $id_groupe . "' and empr_groupe.empr_id=empr.id_empr and pret.pret_idempr=empr_groupe.empr_id group by empr_id order by empr_nom, empr_prenom"; $req1 = pmb_mysql_query($rqt1); while ($data1 = pmb_mysql_fetch_array($req1)) { $id_empr = $data1['empr_id']; if ($nb_page == 0 && $indice_page == $nb_1ere_page) { $ourPDF->addPage(); $nb_page++; $indice_page = 0; } elseif ($nb_page >= 1 && ($indice_page - $nb_1ere_page) % $nb_par_page == 0) { $ourPDF->addPage(); $nb_page++; $indice_page = 0; } if ($nb_page == 0) { $pos_page = $debut_expl_1er_page + $taille_bloc_expl * $indice_page; } else { $pos_page = $debut_expl_page + $taille_bloc_expl * $indice_page; } lecteur_info($id_empr, 10, $pos_page, $dbh, 1, 0); $indice_page++; //requete par rapport à un emprunteur $rqt = "select expl_cb from pret, exemplaires where pret_idempr='" . $id_empr . "' and pret_idexpl=expl_id order by pret_date "; $req = pmb_mysql_query($rqt); while ($data = pmb_mysql_fetch_array($req)) { if ($nb_page == 0 && $indice_page == $nb_1ere_page) { $ourPDF->addPage(); $nb_page++; $indice_page = 0; } elseif ($nb_page >= 1 && ($indice_page - $nb_1ere_page) % $nb_par_page == 0) { $ourPDF->addPage(); $nb_page++; $indice_page = 0; } if ($nb_page == 0) { $pos_page = $debut_expl_1er_page + $taille_bloc_expl * $indice_page; } else { $pos_page = $debut_expl_page + $taille_bloc_expl * $indice_page; } expl_info($data['expl_cb'], 10, $pos_page - 5, $dbh, 1, 80); $indice_page++; } } return $ourPDF; }
function lettre_retard_par_groupe($id_groupe, $lecteurs_ids = array()) { global $ourPDF, $dbh, $msg; global $pmb_pdf_font; // les variables sont lues en dehors global $marge_page_gauche, $marge_page_droite, $largeur_page, $fdp_group, $after_list_group, $limite_after_list, $before_list_group, $madame_monsieur_group, $nb_1ere_page, $nb_par_page, $taille_bloc_expl, $debut_expl_1er_page, $debut_expl_page; global $pmb_hide_biblioinfo_letter; $ourPDF->addPage(); date_jour(($largeur_page - $marge_page_droite - $marge_page_gauche) / 2, 98); if (!$pmb_hide_biblioinfo_letter) { biblio_info($marge_page_gauche, 15); } groupe_adresse($id_groupe, $marge_page_gauche + 90, 45, $dbh); $rqt = "select empr_nom, empr_prenom from empr join groupe on id_empr=resp_groupe where id_groupe='" . $id_groupe . "'"; $req = mysql_query($rqt) or die('Erreur SQL !<br />' . $rqt . '<br />' . mysql_error()); if (mysql_num_rows($req) == 1) { $r = mysql_fetch_object($req); $texte_madame_monsieur_group = str_replace("!!empr_name!!", $r->empr_nom, $madame_monsieur_group); $texte_madame_monsieur_group = str_replace("!!empr_first_name!!", $r->empr_prenom, $texte_madame_monsieur_group); } else { $texte_madame_monsieur_group = str_replace("!!empr_name!!", "", $madame_monsieur_group); $texte_madame_monsieur_group = str_replace("!!empr_first_name!!", "", $texte_madame_monsieur_group); } $ourPDF->SetXY($marge_page_gauche, 125); $ourPDF->setFont($pmb_pdf_font, '', 12); $ourPDF->multiCell($largeur_page - $marge_page_droite - $marge_page_gauche, 8, $texte_madame_monsieur_group, 0, 'L', 0); $ourPDF->multiCell($largeur_page - $marge_page_droite - $marge_page_gauche, 8, $before_list_group, 0, 'J', 0); // compter les totaux pour ce groupe et les retards $sqlcount = "SELECT count(pret_idexpl) as combien , IF(pret_retour>=curdate(),0,1) as retard "; $sqlcount .= "FROM exemplaires, empr, pret, empr_groupe, groupe "; $sqlcount .= "WHERE pret.pret_idempr = empr.id_empr AND pret.pret_idexpl = exemplaires.expl_id AND empr_groupe.empr_id = empr.id_empr AND groupe.id_groupe = empr_groupe.groupe_id and id_groupe={$id_groupe} group by retard order by retard "; $reqcount = mysql_query($sqlcount) or die(mysql_error() . "<br />" . $sqlcount); $nbok = 0; $nbretard = 0; while ($datacount = mysql_fetch_object($reqcount)) { if ($datacount->retard == 0) { $nbok = $datacount->combien; } if ($datacount->retard == 1) { $nbretard = $datacount->combien; } } $retard_sur_total = str_replace("!!nb_retards!!", $nbretard * 1, $msg[n_retards_sur_total_de]); $retard_sur_total = str_replace("!!nb_total!!", ($nbretard + $nbok) * 1, $retard_sur_total); $ourPDF->multiCell($largeur_page - $marge_page_droite - $marge_page_gauche, 8, $retard_sur_total, 0, 'L', 0); if ($lecteurs_ids) { $lecteur_ids_text = " AND id_empr in (" . implode(",", $lecteurs_ids) . ")"; } else { $lecteur_ids_text = ""; } $rqt = "select empr_id, expl_cb from pret, exemplaires, empr_groupe, empr where groupe_id='" . $id_groupe . "' and pret_retour < curdate() and pret_idexpl=expl_id and empr_id=pret_idempr and empr_id=id_empr {$lecteur_ids_text} order by empr_nom, empr_prenom, pret_date "; $req = mysql_query($rqt, $dbh) or die($msg['err_sql'] . '<br />' . $rqt . '<br />' . mysql_error()); $i = 0; $nb_page = 0; $indice_page = 0; while ($data = mysql_fetch_array($req)) { if ($nb_page == 0 && $i == $nb_1ere_page) { $ourPDF->addPage(); $nb_page++; $indice_page = 0; } elseif ($nb_page >= 1 && ($i - $nb_1ere_page) % $nb_par_page == 0 || $ourPDF->GetY() > $limite_after_list) { $ourPDF->addPage(); $nb_page++; $indice_page = 0; } if ($nb_page == 0) { $pos_page = $debut_expl_1er_page + $taille_bloc_expl * $indice_page; } else { $pos_page = $debut_expl_page + $taille_bloc_expl * $indice_page; } expl_retard_empr($data['empr_id'], $data['expl_cb'], $marge_page_gauche, $pos_page, $largeur_page - $marge_page_droite - $marge_page_gauche, 10, $dbh); $i++; $indice_page++; } $ourPDF->setFont($pmb_pdf_font, '', 12); if ($pos_page + $taille_bloc_expl > $limite_after_list) { $ourPDF->addPage(); $pos_after_list = $debut_expl_page; } else { $pos_after_list = $pos_page + $taille_bloc_expl; } $ourPDF->SetXY($marge_page_gauche, $pos_after_list); $ourPDF->multiCell($largeur_page - $marge_page_droite - $marge_page_gauche, 8, $after_list_group . "\n\n", 0, 'J', 0); $ourPDF->setFont($pmb_pdf_font, 'I', 12); $ourPDF->multiCell($largeur_page - $marge_page_droite - $marge_page_gauche, 8, $fdp_group, 0, 'R', 0); }