function build_notice($id_notice, $location = 0, $in_relation = false)
 {
     global $dbh, $parser_environnement;
     $parser_environnement['id_template'] = $this->id;
     $parser = new parse_format('notice_tpl.inc.php', $in_relation);
     $requete = "SELECT typdoc, niveau_biblio FROM notices WHERE notice_id='" . $id_notice . "' LIMIT 1 ";
     $result = @pmb_mysql_query($requete, $dbh);
     if (pmb_mysql_num_rows($result)) {
         $temp = pmb_mysql_fetch_object($result);
         $typdoc = $temp->typdoc;
         $niveau_biblio = $temp->niveau_biblio;
         //$niveau_hierar	= $temp->niveau_hierar;
     } else {
         return "";
     }
     // Recherche du code à appliquer (du particulier au général)
     if ($this->code[$location][$niveau_biblio][$typdoc]) {
         $code = $this->code[$location][$niveau_biblio][$typdoc];
     } elseif ($this->code[$location][$niveau_biblio][0]) {
         $code = $this->code[$location][$niveau_biblio][0];
     } elseif ($this->code[0][$niveau_biblio][$typdoc]) {
         $code = $this->code[0][$niveau_biblio][$typdoc];
     } elseif ($this->code[0][$niveau_biblio][0]) {
         $code = $this->code[0][$niveau_biblio][0];
     } elseif ($this->code[0][0][$typdoc]) {
         $code = $this->code[0][0][$typdoc];
     } elseif ($this->code[0][0][0]) {
         $code = $this->code[0][0][0];
     } else {
         return "";
     }
     $temp = pmb_mysql_fetch_object($result);
     $parser->cmd = $code;
     $parser_environnement['id_notice'] = $id_notice;
     return $parser->exec_cmd();
 }
Example #2
0
function group($param)
{
    global $parser_environnement;
    $sav_parser_environnement = array();
    $sav_parser_environnement = $parser_environnement;
    $tpl = '';
    $array_id = $param[0];
    $display_number = $param[1];
    $separator = $param[2];
    $code = $param[3];
    $texte_complement = $param[4];
    if (!$display_number || $display_number == 0) {
        $display_number = sizeof($array_id);
    }
    if ($display_number > sizeof($array_id)) {
        $display_number = sizeof($array_id);
    }
    if (!$separator) {
        $separator = ' - ';
    }
    for ($i = 0; $i < $display_number; $i++) {
        global $parser_environnement;
        $parser_environnement = array();
        $parser_environnement['id_notice'] = $array_id[$i];
        $parser_environnement['id_template'] = '';
        $notice = gere_global();
        $parser = new parse_format('notice_tpl.inc.php');
        $parser->cmd = $code;
        if ($tpl) {
            $tpl .= $separator;
        }
        $tpl .= $parser->exec_cmd();
    }
    if ($display_number < sizeof($array_id)) {
        $tpl .= $separator . $texte_complement;
    }
    $parser_environnement = $sav_parser_environnement;
    return $tpl;
}
    $exemp_auto = $abts->exemp_auto;
    $type_antivol = $abts->type_antivol;
    $date_debut = $abts->date_debut;
    $date_fin = $abts->date_fin;
}
$requete = "SELECT num_notice,format_periode FROM abts_modeles WHERE modele_id='{$modele_id}'";
$abtsQuery = pmb_mysql_query($requete, $dbh);
if (pmb_mysql_num_rows($abtsQuery)) {
    $abts = pmb_mysql_fetch_object($abtsQuery);
    $format_periode = $abts->format_periode;
    $serial_id = $abts->num_notice;
}
//Préparation nouveau bulletin
$myBulletinage = new bulletinage(0, $serial_id);
//Genération du libellé de période
$print_format = new parse_format();
$print_format->var_format['DATE'] = $value['date_date'];
$print_format->var_format['NUM'] = $nume;
$print_format->var_format['VOL'] = $vol;
$print_format->var_format['TOM'] = $tom;
$print_format->var_format['START_DATE'] = $date_debut;
$print_format->var_format['END_DATE'] = $date_fin;
$requete = "SELECT * FROM abts_abts_modeles WHERE modele_id='{$modele_id}' and abt_id='{$abt_id}' ";
$abtsabtsQuery = pmb_mysql_query($requete, $dbh);
if (pmb_mysql_num_rows($abtsabtsQuery)) {
    $abtsabts = pmb_mysql_fetch_object($abtsabtsQuery);
    $print_format->var_format['START_NUM'] = $abtsabts->num;
    $print_format->var_format['START_VOL'] = $abtsabts->vol;
    $print_format->var_format['START_TOM'] = $abtsabts->tome;
    $num_statut = $abtsabts->num_statut_general;
}
 /**
  * Fonction qui permet de créer un filtre de résultat par rapport à une valeur 
  */
 function creer_filtre($filtre, $valeur_filtre, $id_vue, $ligne_repere, $table)
 {
     global $dbh, $tab_val, $liste_tabfiltre;
     $table_filtre = "";
     foreach ($tab_val as $key => $val) {
         if ($filtre == $val['filtre']) {
             if ($valeur_filtre == $val['valeur_filtre']) {
                 $table_filtre = $val['table_filtre'];
                 pmb_mysql_query("DROP TABLE " . $table);
                 break;
             } else {
                 pmb_mysql_query("DROP TABLE " . $val['table_filtre']);
                 $ind = array_search($val['table_filtre'], $liste_tabfiltre);
                 if ($ind != false) {
                     unset($liste_tabfiltre[$ind]);
                 }
                 unset($tab_val[$key]);
             }
         }
     }
     if (!$table_filtre) {
         $liste_tabfiltre[] = $table;
         $rqt = "SELECT * from logs_filtre_{$id_vue}";
         $res = pmb_mysql_query($rqt, $dbh);
         while ($ligne_log = pmb_mysql_fetch_object($res)) {
             $format = new parse_format('consolidation.inc.php');
             $format->environnement['tempo'] = "logs_filtre_{$id_vue}";
             $format->environnement['num_ligne'] = $ligne_log->id_log;
             $format->cmd = $filtre;
             $val_filtre_courant = $format->exec_cmd_conso();
             if ($val_filtre_courant == $valeur_filtre) {
                 $rqt = "insert ignore into " . $table . "  select * from logs_filtre_{$id_vue} where id_log='" . addslashes($ligne_log->id_log) . "'";
                 pmb_mysql_query($rqt, $dbh);
             }
         }
     }
     if (!$valeur_filtre) {
         $valeur_filtre = "no_value";
     }
     if (!$table_filtre) {
         $tab_val[] = array('valeur_filtre' => $valeur_filtre, 'filtre' => $filtre, 'table_filtre' => $table);
     }
     return $table_filtre ? $table_filtre : $table;
 }
Example #5
0
function parseHTML($buffer)
{
    $htmlparser = new parse_format("inhtml.inc.php");
    $htmlparser->cmd = $buffer;
    return $htmlparser->exec_cmd(true);
}
 function get_bulletinage($clause_filter = "", $order = " date_parution,tit1,ordre,abt_name ")
 {
     global $msg;
     global $dbh;
     global $pointage_form, $pointage_list;
     global $location_view, $deflt_bulletinage_location;
     $this->fiche_bulletin = array();
     $print_format = new parse_format();
     if ($location_view == "") {
         $location_view = $deflt_bulletinage_location;
     }
     if ($this->num_notice) {
         $and_rqt_notice = " and notice_id =" . $this->num_notice;
     }
     $cpt_a_recevoir = $cpt_en_retard = $cpt_en_alerte = 0;
     $numero_modele = '';
     $requete = "\t\t\t\r\n\t\tSELECT id_bull,num_abt,abts_grille_abt.date_parution,modele_id,type,numero,nombre,ordre,state,fournisseur,abt_name,num_notice,location_id,tit1,index_sew,date_debut, date_fin,cote\r\n\t\tFROM abts_grille_abt ,abts_abts, notices\r\n\t\tWHERE abt_id=num_abt and notice_id= num_notice ";
     if ($location_view) {
         $requete .= " and location_id='{$location_view}' ";
     }
     $requete .= " {$and_rqt_notice} {$clause_filter}\r\n\t\torder by {$order};\r\n\t\t";
     $memo_prochain = array();
     $memo_abt_modele = array();
     $resultat = pmb_mysql_query($requete, $dbh);
     if ($resultat) {
         while ($r = pmb_mysql_fetch_object($resultat)) {
             $numero = $r->numero;
             $libelle_numero = $numero;
             $volume = "";
             $tome = "";
             if (!$numero_modele[$r->modele_id]) {
                 $requete = "SELECT modele_name,num_cycle,num_combien,num_increment,num_date_unite,num_increment_date,num_depart,vol_actif,vol_increment,vol_date_unite,vol_increment_numero,vol_increment_date,vol_cycle,vol_combien,vol_depart,tom_actif,tom_increment,tom_date_unite,tom_increment_numero,tom_increment_date,tom_cycle,tom_combien,tom_depart, format_aff \n\t\t\t\t\t\t\t\tFROM abts_modeles WHERE modele_id={$r->modele_id}";
                 $resultat_n = pmb_mysql_query($requete, $dbh);
                 if ($r_n = pmb_mysql_fetch_object($resultat_n)) {
                     $numero_modele[$r->modele_id]['modele_name'] = $r_n->modele_name;
                     $numero_modele[$r->modele_id]['num_cycle'] = $r_n->num_cycle;
                     $numero_modele[$r->modele_id]['num_combien'] = $r_n->num_combien;
                     $numero_modele[$r->modele_id]['num_increment'] = $r_n->num_increment;
                     $numero_modele[$r->modele_id]['num_date_unite'] = $r_n->num_date_unite;
                     $numero_modele[$r->modele_id]['num_increment_date'] = $r_n->num_increment_date;
                     $numero_modele[$r->modele_id]['num_depart'] = $r_n->num_depart;
                     $numero_modele[$r->modele_id]['vol_actif'] = $r_n->vol_actif;
                     $numero_modele[$r->modele_id]['vol_increment'] = $r_n->vol_increment;
                     $numero_modele[$r->modele_id]['vol_date_unite'] = $r_n->vol_date_unite;
                     $numero_modele[$r->modele_id]['vol_increment_numero'] = $r_n->vol_increment_numero;
                     $numero_modele[$r->modele_id]['vol_increment_date'] = $r_n->vol_increment_date;
                     $numero_modele[$r->modele_id]['vol_cycle'] = $r_n->vol_cycle;
                     $numero_modele[$r->modele_id]['vol_combien'] = $r_n->vol_combien;
                     $numero_modele[$r->modele_id]['vol_depart'] = $r_n->vol_depart;
                     $numero_modele[$r->modele_id]['tom_actif'] = $r_n->tom_actif;
                     $numero_modele[$r->modele_id]['tom_increment'] = $r_n->tom_increment;
                     $numero_modele[$r->modele_id]['tom_date_unite'] = $r_n->tom_date_unite;
                     $numero_modele[$r->modele_id]['tom_increment_numero'] = $r_n->tom_increment_numero;
                     $numero_modele[$r->modele_id]['tom_increment_date'] = $r_n->tom_increment_date;
                     $numero_modele[$r->modele_id]['tom_cycle'] = $r_n->tom_cycle;
                     $numero_modele[$r->modele_id]['tom_combien'] = $r_n->tom_combien;
                     $numero_modele[$r->modele_id]['tom_depart'] = $r_n->tom_depart;
                     $numero_modele[$r->modele_id]['format_aff'] = $r_n->format_aff;
                 }
                 $numero_modele[$r->modele_id]['date_debut'] = $r->date_debut;
                 //confection de la requette sql pour les num cyclique date
                 $requette = $numero_modele[$r->modele_id]['num_increment_date'];
                 if ($numero_modele[$r->modele_id]['num_date_unite'] == 1) {
                     $requette .= " month ";
                 } elseif ($numero_modele[$r->modele_id]['num_date_unite'] == 2) {
                     $requette .= " year ";
                 } else {
                     $requette .= " day ";
                 }
                 $numero_modele[$r->modele_id]['num_date_sql'] = $requette;
                 $numero_modele[$r->modele_id]['num_date_fin_cycle'] = pmb_sql_value("SELECT DATE_ADD('" . $numero_modele[$r->modele_id]['date_debut'] . "', INTERVAL " . $numero_modele[$r->modele_id]['num_date_sql'] . ")");
                 //confection de la requette sql pour les vol cyclique date
                 $requette = $numero_modele[$r->modele_id]['vol_increment_date'];
                 if ($numero_modele[$r->modele_id]['vol_date_unite'] == 1) {
                     $requette .= " month ";
                 } elseif ($numero_modele[$r->modele_id]['vol_date_unite'] == 2) {
                     $requette .= " year ";
                 } else {
                     $requette .= " day ";
                 }
                 $numero_modele[$r->modele_id]['vol_date_sql'] = $requette;
                 $numero_modele[$r->modele_id]['vol_date_fin_cycle'] = pmb_sql_value("SELECT DATE_ADD('" . $numero_modele[$r->modele_id]['date_debut'] . "', INTERVAL " . $numero_modele[$r->modele_id]['vol_date_sql'] . ")");
                 //confection de la requette sql pour les tom cyclique date
                 $requette = $numero_modele[$r->modele_id]['tom_increment_date'];
                 if ($numero_modele[$r->modele_id]['tom_date_unite'] == 1) {
                     $requette .= " month ";
                 } elseif ($numero_modele[$r->modele_id]['tom_date_unite'] == 2) {
                     $requette .= " year ";
                 } else {
                     $requette .= " day ";
                 }
                 $numero_modele[$r->modele_id]['tom_date_sql'] = $requette;
                 $numero_modele[$r->modele_id]['tom_date_fin_cycle'] = pmb_sql_value("SELECT DATE_ADD('" . $numero_modele[$r->modele_id]['date_debut'] . "', INTERVAL " . $numero_modele[$r->modele_id]['tom_date_sql'] . ")");
             }
             $obj = $r->id_bull;
             //ce n'est pas un id de bulletin, mais l'id dans abts_grille_abt
             $diff = pmb_sql_value("SELECT DATEDIFF(CURDATE(),'{$r->date_parution}')");
             $libelle_numero = $libelle_abonnement = "";
             if ($diff < 0) {
                 $retard = 3;
             } else {
                 if ($r->type != 2) {
                     if (!$numero_modele[$r->modele_id][$r->num_abt]) {
                         $requete = "SELECT num,vol, tome, delais,\tcritique FROM abts_abts_modeles WHERE modele_id={$r->modele_id} and abt_id={$r->num_abt}";
                         $resultat_n = pmb_mysql_query($requete, $dbh);
                         if ($r_abt = pmb_mysql_fetch_object($resultat_n)) {
                             $numero_modele[$r->modele_id][$r->num_abt]['num'] = $r_abt->num;
                             $numero_modele[$r->modele_id][$r->num_abt]['vol'] = $r_abt->vol;
                             $numero_modele[$r->modele_id][$r->num_abt]['tom'] = $r_abt->tome;
                             $numero_modele[$r->modele_id][$r->num_abt]['delais'] = $r_abt->delais;
                             $numero_modele[$r->modele_id][$r->num_abt]['critique'] = $r_abt->critique;
                             $numero_modele[$r->modele_id][$r->num_abt]['start_num'] = $r_abt->num;
                             $numero_modele[$r->modele_id][$r->num_abt]['start_vol'] = $r_abt->vol;
                             $numero_modele[$r->modele_id][$r->num_abt]['start_tom'] = $r_abt->tome;
                             $numero_modele[$r->modele_id][$r->num_abt]['num_date_fin_cycle'] = $numero_modele[$r->modele_id]['num_date_fin_cycle'];
                             $numero_modele[$r->modele_id][$r->num_abt]['vol_date_fin_cycle'] = $numero_modele[$r->modele_id]['vol_date_fin_cycle'];
                             $numero_modele[$r->modele_id][$r->num_abt]['tom_date_fin_cycle'] = $numero_modele[$r->modele_id]['tom_date_fin_cycle'];
                         }
                         $numero_modele[$r->modele_id][$r->num_abt]['date_parution'] = $r->date_parution;
                         $numero_modele[$r->modele_id][$r->num_abt]['num']--;
                         increment_bulletin($r->modele_id, $numero_modele[$r->modele_id], $r->num_abt);
                         $numero_modele[$r->modele_id][$r->num_abt]['ordre'] = $r->ordre;
                     } elseif ($numero_modele[$r->modele_id][$r->num_abt]['date_parution'] != $r->date_parution || $numero_modele[$r->modele_id][$r->num_abt]['ordre'] != $r->ordre) {
                         $numero_modele[$r->modele_id][$r->num_abt]['date_parution'] = $r->date_parution;
                         $numero_modele[$r->modele_id][$r->num_abt]['ordre'] = $r->ordre;
                         increment_bulletin($r->modele_id, $numero_modele[$r->modele_id], $r->num_abt);
                     }
                 }
                 if ($r->type == 1) {
                     $numero_modele[$r->modele_id][abt_name] = $r->abt_name;
                     $libelle_abonnement = $numero_modele[$r->modele_id]['modele_name'] . " / " . $numero_modele[$r->modele_id]['abt_name'];
                     $numero = $numero_modele[$r->modele_id][$r->num_abt]['num'];
                     $volume = $numero_modele[$r->modele_id][$r->num_abt]['vol'];
                     $tome = $numero_modele[$r->modele_id][$r->num_abt]['tom'];
                     $format_aff = $numero_modele[$r->modele_id]['format_aff'];
                     if ($format_aff) {
                         $print_format->var_format['DATE'] = $r->date_parution;
                         $print_format->var_format['TOM'] = $tome;
                         $print_format->var_format['VOL'] = $volume;
                         $print_format->var_format['NUM'] = $numero;
                         $print_format->var_format['START_NUM'] = $numero_modele[$r->modele_id][$r->num_abt]['start_num'];
                         $print_format->var_format['START_VOL'] = $numero_modele[$r->modele_id][$r->num_abt]['start_vol'];
                         $print_format->var_format['START_TOM'] = $numero_modele[$r->modele_id][$r->num_abt]['start_tom'];
                         $print_format->var_format['START_DATE'] = $r->date_debut;
                         $print_format->var_format['END_DATE'] = $r->date_fin;
                         $print_format->cmd = $format_aff;
                         $libelle_numero = $print_format->exec_cmd();
                     } else {
                         $libelle_numero = "";
                         if ($tome) {
                             $libelle_numero .= sprintf($msg['abts_tome'], $tome) . ' ';
                         }
                         if ($volume) {
                             $libelle_numero .= sprintf($msg['abts_vol'], $volume) . ' ';
                         }
                         if ($numero) {
                             $libelle_numero .= sprintf($msg['abts_no'], $numero);
                         }
                     }
                 } else {
                     if ($r->type == 2) {
                         $numero_modele[$r->modele_id][abt_name] = $r->abt_name;
                         $libelle_abonnement = $numero_modele[$r->modele_id]['modele_name'] . " / " . $numero_modele[$r->modele_id]['abt_name'];
                         $volume = $numero_modele[$r->modele_id][$r->num_abt]['vol'];
                         $tome = $numero_modele[$r->modele_id][$r->num_abt]['tom'];
                         $format_aff = $numero_modele[$r->modele_id]['format_aff'];
                         if ($format_aff) {
                             $print_format->var_format['DATE'] = $r->date_parution;
                             $print_format->var_format['TOM'] = $tome;
                             $print_format->var_format['VOL'] = $volume;
                             $print_format->var_format['NUM'] = "HS" . $numero;
                             $print_format->var_format['START_NUM'] = $numero_modele[$r->modele_id][$r->num_abt]['start_num'];
                             $print_format->var_format['START_VOL'] = $numero_modele[$r->modele_id][$r->num_abt]['start_vol'];
                             $print_format->var_format['START_TOM'] = $numero_modele[$r->modele_id][$r->num_abt]['start_tom'];
                             $print_format->var_format['START_DATE'] = $r->date_debut;
                             $print_format->var_format['END_DATE'] = $r->date_fin;
                             $print_format->cmd = $format_aff;
                             $libelle_numero = $print_format->exec_cmd();
                         } else {
                             $libelle_numero = "";
                             if ($tome) {
                                 $libelle_numero .= sprintf($msg['abts_tome'], $tome) . ' ';
                             }
                             if ($volume) {
                                 $libelle_numero .= sprintf($msg['abts_vol'], $volume) . ' ';
                             }
                             if ($numero) {
                                 $libelle_numero .= sprintf($msg['abts_hsno'], $numero);
                             }
                         }
                     }
                 }
                 if ($r->state == 0) {
                     $obj = $r->id_bull;
                     $fiche['date_parution'] = $r->date_parution;
                     $fiche['periodique'] = "<a href=\"./catalog.php?categ=serials&sub=view&serial_id=" . $r->num_notice . "\">{$r->tit1}</a>";
                     $fiche['libelle_notice'] = $r->tit1;
                     $fiche['libelle_numero'] = $libelle_numero;
                     $fiche['libelle_abonnement'] = $libelle_abonnement;
                     $fiche['link_recu'] = "onClick='bulletine(\"{$obj}\",event);'";
                     $fiche['link_non_recevable'] = "onClick='nonrecevable(\"{$obj}\",event);'";
                     $fiche['fournisseur_id'] = $r->fournisseur;
                     $fiche['location_id'] = $r->location_id;
                     $fiche['TOM'] = $tome;
                     $fiche['VOL'] = $volume;
                     $fiche['NUM'] = $numero;
                     $fiche['cote'] = $r->cote;
                     $fiche['perio_id'] = $r->num_notice;
                     $fiche['abt_id'] = $r->num_abt;
                     //Test des retards
                     $diff = pmb_sql_value("SELECT DATEDIFF(CURDATE(),'{$r->date_parution}')");
                     if ($diff < 0) {
                         $retard = 3;
                     } else {
                         if ($diff <= $numero_modele[$r->modele_id][$r->num_abt]["delais"]) {
                             $retard = 0;
                         } elseif ($diff <= $numero_modele[$r->modele_id][$r->num_abt]["critique"]) {
                             $retard = 1;
                         } else {
                             $retard = 2;
                         }
                         $this->fiche_bulletin[$retard][$obj] = $fiche;
                     }
                 }
             }
             $abtModele = $r->num_abt . $r->modele_id;
             if (!in_array($abtModele, $memo_abt_modele)) {
                 // pour chaque modèle d'abonnement on va chercher le prochain
                 // le libellé de numéro sera calculé à la fin de toute la boucle
                 $req_prochain = "SELECT *\tFROM abts_grille_abt\n\t\t\t\t\t\tWHERE date_parution > CURDATE() and num_abt = " . $r->num_abt . " AND modele_id=" . $r->modele_id . "\n\t\t\t\t\t\tORDER BY date_parution ";
                 $res_prochain = pmb_mysql_query($req_prochain, $dbh);
                 $deja_bulletine = 0;
                 while ($r_prochain = pmb_mysql_fetch_object($res_prochain)) {
                     $prochain_id_bull = $r_prochain->id_bull;
                     $fiche_prochain['date_parution'] = $r_prochain->date_parution;
                     $fiche_prochain['periodique'] = "<a href=\"./catalog.php?categ=serials&sub=view&serial_id=" . $r->num_notice . "\">{$r->tit1}</a>";
                     $fiche_prochain['libelle_notice'] = $r->tit1;
                     $fiche_prochain['libelle_numero'] = $libelle_numero;
                     $fiche_prochain['libelle_abonnement'] = $libelle_abonnement;
                     $fiche_prochain['link_recu'] = "onClick='bulletine(\"{$prochain_id_bull}\",event);'";
                     $fiche_prochain['link_non_recevable'] = "onClick='nonrecevable(\"{$prochain_id_bull}\",event);'";
                     $fiche_prochain['fournisseur_id'] = $r->fournisseur;
                     $fiche_prochain['location_id'] = $r->location_id;
                     $fiche_prochain['TOM'] = $tome;
                     $fiche_prochain['VOL'] = $volume;
                     $fiche_prochain['NUM'] = $numero;
                     $fiche_prochain['cote'] = $r->cote;
                     $fiche_prochain['perio_id'] = $r->num_notice;
                     $fiche_prochain['abt_id'] = $r->num_abt;
                     $fiche_prochain['modele_id'] = $r->modele_id;
                     $fiche_prochain['ordre'] = $r->ordre;
                     $fiche_prochain['type'] = $r->type;
                     $fiche_prochain['abt_name'] = $r->abt_name;
                     $memo_abt_modele[$abtModele] = $abtModele;
                     if ($r_prochain->state == 0) {
                         $fiche_prochain['deja_bulletine'] = $deja_bulletine;
                         $memo_prochain[$r_prochain->date_parution . "_" . $r->tit1 . "_" . $prochain_id_bull] = array($prochain_id_bull, $fiche_prochain);
                         break;
                     } else {
                         $deja_bulletine++;
                     }
                 }
             }
         }
         // Traitement de prochains numéros
         ksort($memo_prochain);
         //Pour trier les prochain numéros par date puis titre
         foreach ($memo_prochain as $table) {
             $obj = $table[0];
             $this->fiche_bulletin[3][$obj] = $table[1];
             $modele_id = $this->fiche_bulletin[3][$obj]['modele_id'];
             $num_abt = $this->fiche_bulletin[3][$obj]['abt_id'];
             $date_parution = $this->fiche_bulletin[3][$obj]['date_parution'];
             $ordre = $this->fiche_bulletin[3][$obj]['ordre'];
             $type = $this->fiche_bulletin[3][$obj]['type'];
             $abt_name = $this->fiche_bulletin[3][$obj]['abt_name'];
             for ($i = 0; $i < $this->fiche_bulletin[3][$obj]['deja_bulletine']; $i++) {
                 increment_bulletin($modele_id, $numero_modele[$modele_id], $num_abt);
             }
             if (!$numero_modele[$modele_id][$num_abt]['ordre']) {
                 $requete = "SELECT num,vol, tome, delais,\tcritique FROM abts_abts_modeles WHERE modele_id=" . $modele_id . " and abt_id=" . $num_abt;
                 $resultat_n = pmb_mysql_query($requete, $dbh);
                 if ($r_abt = pmb_mysql_fetch_object($resultat_n)) {
                     $numero_modele[$modele_id][$num_abt]['num'] = $r_abt->num;
                     $numero_modele[$modele_id][$num_abt]['vol'] = $r_abt->vol;
                     $numero_modele[$modele_id][$num_abt]['tom'] = $r_abt->tome;
                     $numero_modele[$modele_id][$num_abt]['delais'] = $r_abt->delais;
                     $numero_modele[$modele_id][$num_abt]['critique'] = $r_abt->critique;
                     $numero_modele[$modele_id][$num_abt]['start_num'] = $r_abt->num;
                     $numero_modele[$modele_id][$num_abt]['start_vol'] = $r_abt->vol;
                     $numero_modele[$modele_id][$num_abt]['start_tom'] = $r_abt->tome;
                 }
                 $numero_modele[$modele_id][$num_abt]['num']--;
                 increment_bulletin($modele_id, $numero_modele[$modele_id], $num_abt);
             } elseif ($numero_modele[$modele_id][$num_abt]['date_parution'] != $date_parution || $numero_modele[$modele_id][$num_abt]['ordre'] != $ordre) {
                 increment_bulletin($modele_id, $numero_modele[$modele_id], $num_abt);
             }
             if ($type == 1) {
                 $numero_modele[$modele_id][abt_name] = $abt_name;
                 $libelle_abonnement = $numero_modele[$modele_id]['modele_name'] . " / " . $numero_modele[$modele_id]['abt_name'];
                 $numero = $numero_modele[$modele_id][$num_abt]['num'];
                 $volume = $numero_modele[$modele_id][$num_abt]['vol'];
                 $tome = $numero_modele[$modele_id][$num_abt]['tom'];
                 $format_aff = $numero_modele[$modele_id]['format_aff'];
                 if ($format_aff) {
                     $print_format->var_format['DATE'] = $date_parution;
                     $print_format->var_format['TOM'] = $tome;
                     $print_format->var_format['VOL'] = $volume;
                     $print_format->var_format['NUM'] = $numero;
                     $print_format->var_format['START_NUM'] = $numero_modele[$modele_id][$num_abt]['start_num'];
                     $print_format->var_format['START_VOL'] = $numero_modele[$modele_id][$num_abt]['start_vol'];
                     $print_format->var_format['START_TOM'] = $numero_modele[$modele_id][$num_abt]['start_tom'];
                     $print_format->var_format['START_DATE'] = $date_debut;
                     $print_format->var_format['END_DATE'] = $date_fin;
                     $print_format->cmd = $format_aff;
                     $libelle_numero = $print_format->exec_cmd();
                 } else {
                     $libelle_numero = "";
                     if ($tome) {
                         $libelle_numero .= sprintf($msg['abts_tome'], $tome) . ' ';
                     }
                     if ($volume) {
                         $libelle_numero .= sprintf($msg['abts_vol'], $volume) . ' ';
                     }
                     if ($numero) {
                         $libelle_numero .= sprintf($msg['abts_no'], $numero);
                     }
                 }
             } else {
                 if ($type == 2) {
                     $numero_modele[$modele_id][abt_name] = $abt_name;
                     $libelle_abonnement = $numero_modele[$modele_id]['modele_name'] . " / " . $numero_modele[$modele_id]['abt_name'];
                     $volume = $numero_modele[$modele_id][$num_abt]['vol'];
                     $tome = $numero_modele[$modele_id][$num_abt]['tom'];
                     $format_aff = $numero_modele[$modele_id]['format_aff'];
                     if ($format_aff) {
                         $print_format->var_format['DATE'] = $date_parution;
                         $print_format->var_format['TOM'] = $tome;
                         $print_format->var_format['VOL'] = $volume;
                         $print_format->var_format['NUM'] = "HS" . $numero;
                         $print_format->var_format['START_NUM'] = $numero_modele[$modele_id][$num_abt]['start_num'];
                         $print_format->var_format['START_VOL'] = $numero_modele[$modele_id][$num_abt]['start_vol'];
                         $print_format->var_format['START_TOM'] = $numero_modele[$modele_id][$num_abt]['start_tom'];
                         $print_format->var_format['START_DATE'] = $date_debut;
                         $print_format->var_format['END_DATE'] = $date_fin;
                         $print_format->cmd = $format_aff;
                         $libelle_numero = $print_format->exec_cmd();
                     } else {
                         $libelle_numero = "";
                         if ($tome) {
                             $libelle_numero .= sprintf($msg['abts_tome'], $tome) . ' ';
                         }
                         if ($volume) {
                             $libelle_numero .= sprintf($msg['abts_vol'], $volume) . ' ';
                         }
                         if ($numero) {
                             $libelle_numero .= sprintf($msg['abts_hsno'], $numero);
                         }
                     }
                 }
             }
             $this->fiche_bulletin[3][$obj]['libelle_numero'] = $libelle_numero;
             $this->fiche_bulletin[3][$obj]['libelle_abonnement'] = $libelle_abonnement;
         }
     }
     return $this->fiche_bulletin;
 }