function gen_date()
 {
     global $dbh;
     global $msg;
     global $include_path;
     if ($this->modele_id) {
         $dummy = "delete FROM abts_grille_modele WHERE num_modele='{$this->modele_id}' ";
         pmb_mysql_query($dummy, $dbh);
         $date = construitdateheuremysql($this->date_debut);
         $date_fin = construitdateheuremysql($this->date_fin);
         //Lire la périodicté
         $duree = 1;
         $requete = "select duree,unite from abts_periodicites where periodicite_id='{$this->num_periodicite}'";
         $resultat = pmb_mysql_query($requete);
         if ($r = pmb_mysql_fetch_object($resultat)) {
             $duree = $r->duree;
             $unite = $r->unite;
             do {
                 $dayofweek = pmb_sql_value("SELECT DAYOFWEEK('{$date}')");
                 //1 = Dimanche, 2 = Lundi, ... 7 = Samedi
                 if ($dayofweek == 1) {
                     $dayofweek = 8;
                 }
                 $dayofweek--;
                 $day = pmb_sql_value("SELECT DAYOFMONTH('{$date}')");
                 // 1 à 31
                 $month = pmb_sql_value("SELECT MONTH('{$date}')");
                 //1 à 12
                 $week = pmb_sql_value("SELECT WEEK('{$date}',5)") + 1;
                 //0 ... 53
                 //calcul numero de semaine dans le mois
                 $weekofmonth = ($day + 7 - $dayofweek) / 7 + 1;
                 //Mois dans l'année exclu
                 if ($this->month_year[$month - 1]) {
                     if ($this->week_year[$week - 1]) {
                         if ($this->week_month[$weekofmonth - 1]) {
                             if ($this->day_month[$day - 1]) {
                                 if ($this->days[$dayofweek - 1]) {
                                     //c'est un jour prévu de réception
                                     $requete = "INSERT INTO abts_grille_modele SET num_modele='{$this->modele_id}', date_parution ='{$date}', type_serie = '1'";
                                     pmb_mysql_query($requete, $dbh);
                                 }
                             }
                         }
                     }
                 }
                 // Calcul de la date suivante à analyser et la sortie du while
                 if ($unite == 0) {
                     $sql_add = "INTERVAL {$duree} DAY";
                 }
                 if ($unite == 1) {
                     $sql_add = "INTERVAL {$duree} MONTH";
                 }
                 if ($unite == 2) {
                     $sql_add = "INTERVAL {$duree} YEAR";
                 }
                 $date = pmb_sql_value("SELECT DATE_ADD('{$date}', {$sql_add})");
                 $diff = pmb_sql_value("SELECT DATEDIFF('{$date_fin}','{$date}')");
             } while ($diff >= 0 && $duree != 0);
         }
     }
 }
Example #2
0
 function update($temp)
 {
     global $dbh;
     global $msg;
     global $max_categ;
     global $group_type;
     if ($this->id_bannette) {
         // update
         $req = "UPDATE bannettes set ";
         $clause = " WHERE id_bannette='" . $this->id_bannette . "'";
     } else {
         $req = "insert into bannettes set date_last_remplissage=sysdate(), ";
         $clause = "";
     }
     $req .= "num_classement='{$temp->num_classement}',";
     $req .= "nom_bannette='{$temp->nom_bannette}',";
     $req .= "comment_gestion='{$temp->comment_gestion}',";
     $req .= "comment_public='{$temp->comment_public}',";
     $req .= "bannette_tpl_num='{$temp->bannette_tpl_num}',";
     $req .= "entete_mail='{$temp->entete_mail}',";
     $req .= "piedpage_mail='{$temp->piedpage_mail}',";
     $req .= "notice_tpl='{$temp->notice_tpl}',";
     $req .= "proprio_bannette='{$temp->proprio_bannette}',";
     $req .= "bannette_auto='{$temp->bannette_auto}',";
     $req .= "periodicite='{$temp->periodicite}',";
     $req .= "diffusion_email='{$temp->diffusion_email}',";
     $req .= "statut_not_account='{$temp->statut_not_account}',";
     $req .= "nb_notices_diff='{$temp->nb_notices_diff}',";
     $req .= "categorie_lecteurs='{$temp->categorie_lecteurs}',";
     $req .= "groupe_lecteurs='{$temp->groupe_lecteurs}',";
     $req .= "update_type='{$temp->update_type}',";
     $req .= "num_panier='{$temp->num_panier}',";
     $req .= "limite_type='{$temp->limite_type}',";
     $req .= "limite_nombre='{$temp->limite_nombre}',";
     $req .= "typeexport='{$temp->typeexport}',";
     $req .= "prefixe_fichier='{$temp->prefixe_fichier}',";
     $req .= "group_type='{$group_type}',";
     $req .= "group_pperso='{$temp->group_pperso}',";
     $req .= "display_notice_in_every_group='{$temp->display_notice_in_every_group}',";
     $req .= "archive_number='{$temp->archive_number}',";
     $req .= "param_export='" . addslashes(serialize($temp->param_export)) . "',";
     $req .= "document_generate='{$temp->document_generate}',";
     $req .= "document_notice_tpl='{$temp->document_notice_tpl}',";
     $req .= "document_insert_docnum='{$temp->document_insert_docnum}',";
     $req .= "document_group='{$temp->document_group}',";
     $req .= "document_add_summary='{$temp->document_add_summary}',";
     $req .= "bannette_opac_accueil='{$temp->bannette_opac_accueil}',";
     if (!$temp->date_last_envoi) {
         $req .= "date_last_envoi=sysdate() ";
     } else {
         $req .= "date_last_envoi='" . construitdateheuremysql($temp->date_last_envoi) . "' ";
     }
     $req .= $clause;
     $res = pmb_mysql_query($req, $dbh);
     if (!$this->id_bannette) {
         $this->id_bannette = pmb_mysql_insert_id();
     }
     $this->descriptors = array();
     for ($i = 0; $i < $max_categ; $i++) {
         $categ_id = 'f_categ_id' . $i;
         global ${$categ_id};
         if (${$categ_id} > 0) {
             $this->descriptors[] = ${$categ_id};
         }
     }
     $del = "delete from bannettes_descriptors where num_bannette = '" . $this->id_bannette . "'";
     pmb_mysql_query($del);
     for ($i = 0; $i < count($this->descriptors); $i++) {
         $rqt = "insert into bannettes_descriptors set num_bannette = '" . $this->id_bannette . "', num_noeud = '" . $this->descriptors[$i] . "', bannette_descriptor_order='" . $i . "'";
         pmb_mysql_query($rqt);
     }
     $facette = new bannette_facettes($this->id_bannette);
     $facette->save();
 }
 function gen_date($garder = 0)
 {
     global $dbh;
     global $msg;
     global $include_path;
     if ($this->abt_id) {
         if (!$garder) {
             $dummy = "delete FROM abts_grille_abt WHERE num_abt='{$this->abt_id}' and state='0'";
             mysql_query($dummy, $dbh);
         }
         $date = $date_debut = construitdateheuremysql($this->date_debut);
         $date_fin = construitdateheuremysql($this->date_fin);
         //Pour tous les modèles utilisé dans l'abonnement, on recopie les grilles modèles dans la grille abonnement
         $requete = "select modele_id from abts_abts_modeles where abt_id='{$this->abt_id}'";
         $resultat_a = mysql_query($requete, $dbh);
         while ($r_a = mysql_fetch_object($resultat_a)) {
             $modele_id = $r_a->modele_id;
             $requete = "select * from abts_grille_modele where num_modele='{$modele_id}'";
             $resultat = mysql_query($requete);
             while ($r_g = mysql_fetch_object($resultat)) {
                 //Ne garder les bulletins compris entre les dates de début et fin d'abonnement
                 if (pmb_sql_value("SELECT DATEDIFF('{$date_fin}','{$r_g->date_parution}')") >= 0 && pmb_sql_value("SELECT DATEDIFF('{$date_debut}','{$r_g->date_parution}')") <= 0) {
                     for ($i = 1; $i <= $r_g->nombre_recu; $i++) {
                         $requete = "INSERT INTO abts_grille_abt SET num_abt='{$this->abt_id}', \n\t\t\t\t\t\t\t\tdate_parution ='{$r_g->date_parution}', \n\t\t\t\t\t\t\t\tmodele_id='{$modele_id}', \n\t\t\t\t\t\t\t\ttype = '{$r_g->type_serie}',\n\t\t\t\t\t\t\t\tnumero='{$r_g->numero}', \n\t\t\t\t\t\t\t\tnombre='1', \n\t\t\t\t\t\t\t\tordre='{$i}' ";
                         mysql_query($requete, $dbh);
                     }
                 }
             }
         }
     }
 }