Changeset 95549 in spip-zone


Ignore:
Timestamp:
Feb 27, 2016, 5:49:55 PM (3 years ago)
Author:
abelass@…
Message:

tabs au lieu d'espaces

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/reservation_evenement/trunk/action/editer_reservation.php

    r95027 r95549  
    11<?php
    22if (!defined('_ECRIRE_INC_VERSION'))
    3   return;
     3        return;
    44
    55function reservation_inserer($id_parent = null, $set = null) {
    6   $table_sql = table_objet_sql('reservation');
    7   $champs = array();
    8   $champs['statut'] = 'encours';
    9   $champs['date'] = date('Y-m-d H:i:s');
    10 
    11   if ($set)
    12     $champs = array_merge($champs, $set);
    13 
    14   // Envoyer aux plugins
    15   $champs = pipeline('pre_insertion', array(
    16     'args' => array('table' => $table_sql, ),
    17     'data' => $champs
    18   ));
    19 
    20   $id = sql_insertq($table_sql, $champs);
    21 
    22   if ($id) {
    23     pipeline('post_insertion', array(
    24       'args' => array(
    25         'table' => $table_sql,
    26         'id_objet' => $id,
    27       ),
    28       'data' => $champs
    29     ));
    30   }
    31   return $id;
     6        $table_sql = table_objet_sql('reservation');
     7        $champs = array();
     8        $champs['statut'] = 'encours';
     9        $champs['date'] = date('Y-m-d H:i:s');
     10
     11        if ($set)
     12                $champs = array_merge($champs, $set);
     13
     14        // Envoyer aux plugins
     15        $champs = pipeline('pre_insertion', array(
     16                'args' => array('table' => $table_sql, ),
     17                'data' => $champs
     18        ));
     19
     20        $id = sql_insertq($table_sql, $champs);
     21
     22        if ($id) {
     23                pipeline('post_insertion', array(
     24                        'args' => array(
     25                                'table' => $table_sql,
     26                                'id_objet' => $id,
     27                        ),
     28                        'data' => $champs
     29                ));
     30        }
     31        return $id;
    3232}
    3333
    3434function reservation_instituer($id_reservation, $c, $calcul_rub = true) {
    35   $table_sql = table_objet_sql('reservation');
    36   $trouver_table = charger_fonction('trouver_table', 'base');
    37 
    38   include_spip('inc/autoriser');
    39   include_spip('inc/rubriques');
    40   include_spip('inc/modifier');
    41   include_spip('inc/config');
    42   $config = lire_config('reservation_evenement');
    43  
    44   $statut_calculer_auto = isset($config['statut_calculer_auto']) ? $config['statut_calculer_auto'] : '';
    45  
    46   if ($statut_calculer_auto == 'on') set_request('statuts_details_reservation',array());
    47 
    48   $row = sql_fetsel('statut,date,id_auteur,email,lang,donnees_auteur', 'spip_reservations', 'id_reservation=' . intval($id_reservation));
    49   $statut_ancien = $statut = $row['statut'];
    50   $date_ancienne = $date = $row['date'];
    51   $donnees_auteur = isset($row['donnees_auteur']) ? $row['donnees_auteur'] :'';
    52   if ($donnees_auteur) {
    53         $donnees_auteur = unserialize($donnees_auteur);
    54   }
    55 
    56   $d = isset($c['date']) ? $c['date'] : null;
    57   $s = isset($c['statut']) ? $c['statut'] : $statut;
    58 
    59   $champs = array();
    60   // cf autorisations dans inc/instituer_objet
    61   if ($s != $statut OR ($d AND $d != $date)) {
    62     if (autoriser('modifier', 'reservation', $id_reservation))
    63       $statut = $champs['statut'] = $s;
    64     else
    65       spip_log("editer_reservation $id_reservation refus " . join(' ', $c));
    66 
    67     // En cas de paiement, fixer la date_paiement a "maintenant"
    68 
    69     if ($statut == 'accepte' AND $statut_ancien == 'attente_paiement')
    70       $champs['date_paiement'] = date('Y-m-d H:i:s');
    71   }
    72  
    73   // Gérer les détails des réservations
    74   $set = array(
    75     'id_reservation' => $id_reservation,
    76     'statut' => $statut,
    77     'statut_calculer_auto' => $statut_calculer_auto
    78   );
    79  
    80   $evenements = _request('id_evenement');
    81 
    82   // Si les déclinaisons sont actives on récupère les évenements via le prix
    83   if (test_plugin_actif('declinaisons')) {
    84     $evenements = array();
    85     if ($id_prix_objet = _request('id_objet_prix')) {
    86       foreach (array_keys($id_prix_objet ) AS $id_evenement) {
    87         $evenements[] = $id_evenement;
    88       }
    89     }
    90   }
    91   // Si on n'est pas dans le cas d'une création, on récupère les détails attachées à la réservation
    92   if (!is_array($evenements) OR (is_array($evenements) AND count($evenements) == 0)) {
    93     include_spip('action/editer_reservations_detail');
    94     $c = array('statut' => $statut,'statut_calculer_auto' => $statut_calculer_auto);
    95     $sql = sql_select('id_reservations_detail', 'spip_reservations_details', 'id_reservation=' . $id_reservation);
    96     // Eviter l'envoi d'une notification pour chaque détail
    97     set_request('envoi_separe_actif', 'non');
    98     while ($data = sql_fetch($sql)) {
    99       reservations_detail_instituer($data['id_reservations_detail'], $c);
    100     }
    101   }
    102   else {
    103     $action = charger_fonction('editer_objet', 'action');
    104     $set['evenements'] = $evenements;
    105     set_request('evenements', $evenements);
    106   }
    107   //Si on est dans le cas d'une création
    108   if (is_array($evenements)) {
    109     // Pour chaque évènement on crée un détail de la réservation
    110     foreach ($evenements AS $id_evenement) {
    111       // Si aucun détail n'est attaché à l'évènement, on le crée
    112       if (!$reservations_detail = sql_fetsel('*', 'spip_reservations_details', 'id_reservation=' . $id_reservation . ' AND id_evenement=' . $id_evenement)) {
    113         $id_reservations_detail = 'new';
    114         $set['id_prix_objet'] = $id_prix_objet[$id_evenement];
    115       }
    116       else {
    117         $id_reservations_detail = $reservations_detail['id_reservations_detail'];
    118         $set['quantite'] = $reservations_detail['quantite'];
    119       }
    120 
    121       // Pour l'enregistrement
    122       $set['id_evenement'] = $id_evenement;
    123 
    124       // Eviter l'envoi d'une notification pour chaque détail
    125       set_request('envoi_separe_actif', 'non');
    126       $detail = $action($id_reservations_detail, 'reservations_detail', $set);
    127     }
    128   }
    129  
    130   //Etablir si tous les détails d'événement ont le statut de la réservation
    131   if ($statut_calculer_auto  == 'on' AND $champs['statut'] == 'accepte') {
    132 
    133     $statuts_details_reservation = _request('statuts_details_reservation');
    134     $statut_modifie=array();
    135    
    136     foreach ($statuts_details_reservation AS $id_detail_reservation => $data) {
    137        $statut_modifie[] = $data['statut_modifie'];
    138     }
    139     //Sinon lui attibuer lms statut accepté partiellement.
    140     if (array_sum( $statut_modifie) > 0) $champs['statut'] = 'accepte_part';
    141   }
    142 
    143   //les champs extras auteur
    144   include_spip('cextras_pipelines');
    145   $valeurs_extras = array();
    146 
    147   if (function_exists('champs_extras_objet')) {
    148     //Charger les définitions pour la création des formulaires
    149     $champs_extras_auteurs = champs_extras_objet(table_objet_sql('auteur'));
    150 
    151     if (is_array($champs_extras_auteurs)) {
    152       foreach ($champs_extras_auteurs as $value) {
    153 
    154         $valeurs_extras[$value['options']['nom']] = _request($value['options']['nom']) ? _request($value['options']['nom']) : (isset($donnees_auteur[$value['options']['nom']]) ? $donnees_auteur[$value['options']['nom']] : '');
    155       }
    156     }
    157     $champs['donnees_auteur'] = serialize($valeurs_extras);
    158   }
    159 
    160   // Envoyer aux plugins
    161   $champs = pipeline('pre_edition', array(
    162     'args' => array(
    163       'table' => 'spip_reservations',
    164       'id_reservation' => $id_reservation,
    165       'action' => 'instituer',
    166       'statut_ancien' => $statut_ancien,
    167       'date_ancienne' => $date_ancienne,
    168     ),
    169     'data' => $champs
    170   ));
    171 
    172   if (!count($champs))
    173     return '';
    174 
    175   // Envoyer les modifs.
    176   objet_editer_heritage('reservation', $id_reservation, '', $statut_ancien, $champs);
    177 
    178   // Invalider les caches
    179   include_spip('inc/invalideur');
    180   suivre_invalideur("id='reservation/$id_reservation'");
    181 
    182   // Pipeline
    183   pipeline('post_edition', array(
    184     'args' => array(
    185       'table' => 'spip_reservations',
    186       'id_reservation' => $id_reservation,
    187       'action' => 'instituer',
    188       'statut_ancien' => $statut_ancien,
    189       'date_ancienne' => $date_ancienne,
    190       'id_parent_ancien' => $id_rubrique,
    191     ),
    192     'data' => $champs
    193   ));
    194 
    195   // Les traitements spécifiques
    196   // Notifications
    197   if ((!$statut_ancien OR $statut != $statut_ancien) && (isset($config['activer'])) && (isset($config['quand']) && is_array($config['quand']) && in_array($statut, $config['quand'])) && ($notifications = charger_fonction('notifications', 'inc', true))) {
    198     //Déterminer la langue pour les notifications
    199     $lang = isset($row['lang']) ? $row['lang'] : lire_config('langue_site');
    200     lang_select($lang);
    201     // Determiner l'expediteur
    202     $options = array(
    203       'statut' => $champs['statut'],
    204       'lang' => $lang
    205     );
    206     if ($config['expediteur'] != "facteur")
    207       $options['expediteur'] = $config['expediteur_' . $config['expediteur']];
    208 
    209     // Envoyer au vendeur et au client
    210     $notifications('reservation_vendeur', $id_reservation, $options);
    211     if ($config['client']) {
    212       //$row['email']=trim($row['email']);
    213       if (intval($row['id_auteur']) AND $row['id_auteur'] > 0)
    214         $options['email'] = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . $row['id_auteur']);
    215       else
    216         $options['email'] = $row['email'];
    217 
    218       $notifications('reservation_client', $id_reservation, $options);
    219     }
    220 
    221   }
    222 
    223   return '';
    224   // pas d'erreur
     35        $table_sql = table_objet_sql('reservation');
     36        $trouver_table = charger_fonction('trouver_table', 'base');
     37
     38        include_spip('inc/autoriser');
     39        include_spip('inc/rubriques');
     40        include_spip('inc/modifier');
     41        include_spip('inc/config');
     42        $config = lire_config('reservation_evenement');
     43
     44        $statut_calculer_auto = isset($config['statut_calculer_auto']) ? $config['statut_calculer_auto'] : '';
     45
     46        if ($statut_calculer_auto == 'on')
     47                set_request('statuts_details_reservation', array());
     48
     49        $row = sql_fetsel('statut,date,id_auteur,email,lang,donnees_auteur', 'spip_reservations', 'id_reservation=' . intval($id_reservation));
     50        $statut_ancien = $statut = $row['statut'];
     51        $date_ancienne = $date = $row['date'];
     52        $donnees_auteur = isset($row['donnees_auteur']) ? $row['donnees_auteur'] : '';
     53        if ($donnees_auteur) {
     54                $donnees_auteur = unserialize($donnees_auteur);
     55        }
     56
     57        $d = isset($c['date']) ? $c['date'] : null;
     58        $s = isset($c['statut']) ? $c['statut'] : $statut;
     59
     60        $champs = array();
     61        // cf autorisations dans inc/instituer_objet
     62        if ($s != $statut OR ($d AND $d != $date)) {
     63                if (autoriser('modifier', 'reservation', $id_reservation))
     64                        $statut = $champs['statut'] = $s;
     65                else
     66                        spip_log("editer_reservation $id_reservation refus " . join(' ', $c));
     67
     68                // En cas de paiement, fixer la date_paiement a "maintenant"
     69
     70                if ($statut == 'accepte' AND $statut_ancien == 'attente_paiement')
     71                        $champs['date_paiement'] = date('Y-m-d H:i:s');
     72        }
     73
     74        // Gérer les détails des réservations
     75        $set = array(
     76                'id_reservation' => $id_reservation,
     77                'statut' => $statut,
     78                'statut_calculer_auto' => $statut_calculer_auto
     79        );
     80
     81        $evenements = _request('id_evenement');
     82
     83        // Si les déclinaisons sont actives on récupère les évenements via le prix
     84        if (test_plugin_actif('declinaisons')) {
     85                $evenements = array();
     86                if ($id_prix_objet = _request('id_objet_prix')) {
     87                        foreach (array_keys($id_prix_objet ) AS $id_evenement) {
     88                                $evenements[] = $id_evenement;
     89                        }
     90                }
     91        }
     92        // Si on n'est pas dans le cas d'une création, on récupère les détails attachées à la réservation
     93        if (!is_array($evenements) OR (is_array($evenements) AND count($evenements) == 0)) {
     94                include_spip('action/editer_reservations_detail');
     95                $c = array(
     96                        'statut' => $statut,
     97                        'statut_calculer_auto' => $statut_calculer_auto
     98                );
     99                $sql = sql_select('id_reservations_detail', 'spip_reservations_details', 'id_reservation=' . $id_reservation);
     100                // Eviter l'envoi d'une notification pour chaque détail
     101                set_request('envoi_separe_actif', 'non');
     102                while ($data = sql_fetch($sql)) {
     103                        reservations_detail_instituer($data['id_reservations_detail'], $c);
     104                }
     105        }
     106        else {
     107                $action = charger_fonction('editer_objet', 'action');
     108                $set['evenements'] = $evenements;
     109                set_request('evenements', $evenements);
     110        }
     111        //Si on est dans le cas d'une création
     112        if (is_array($evenements)) {
     113                // Pour chaque évènement on crée un détail de la réservation
     114                foreach ($evenements AS $id_evenement) {
     115                        // Si aucun détail n'est attaché à l'évènement, on le crée
     116                        if (!$reservations_detail = sql_fetsel('*', 'spip_reservations_details', 'id_reservation=' . $id_reservation . ' AND id_evenement=' . $id_evenement)) {
     117                                $id_reservations_detail = 'new';
     118                                $set['id_prix_objet'] = $id_prix_objet[$id_evenement];
     119                        }
     120                        else {
     121                                $id_reservations_detail = $reservations_detail['id_reservations_detail'];
     122                                $set['quantite'] = $reservations_detail['quantite'];
     123                        }
     124
     125                        // Pour l'enregistrement
     126                        $set['id_evenement'] = $id_evenement;
     127
     128                        // Eviter l'envoi d'une notification pour chaque détail
     129                        set_request('envoi_separe_actif', 'non');
     130                        $detail = $action($id_reservations_detail, 'reservations_detail', $set);
     131                }
     132        }
     133
     134        //Etablir si tous les détails d'événement ont le statut de la réservation
     135        if ($statut_calculer_auto == 'on' AND $champs['statut'] == 'accepte') {
     136
     137                $statuts_details_reservation = _request('statuts_details_reservation');
     138
     139                $statut_modifie = array();
     140
     141                foreach ($statuts_details_reservation AS $id_detail_reservation => $data) {
     142                        $statut_modifie[] = $data['statut_modifie'];
     143                }
     144                //Sinon lui attibuer lms statut accepté partiellement.
     145                if (array_sum($statut_modifie) > 0)
     146                        $champs['statut'] = 'accepte_part';
     147        }
     148
     149        //les champs extras auteur
     150        include_spip('cextras_pipelines');
     151        $valeurs_extras = array();
     152
     153        if (function_exists('champs_extras_objet')) {
     154                //Charger les définitions pour la création des formulaires
     155                $champs_extras_auteurs = champs_extras_objet(table_objet_sql('auteur'));
     156
     157                if (is_array($champs_extras_auteurs)) {
     158                        foreach ($champs_extras_auteurs as $value) {
     159
     160                                $valeurs_extras[$value['options']['nom']] = _request($value['options']['nom']) ? _request($value['options']['nom']) : (isset($donnees_auteur[$value['options']['nom']]) ? $donnees_auteur[$value['options']['nom']] : '');
     161                        }
     162                }
     163                $champs['donnees_auteur'] = serialize($valeurs_extras);
     164        }
     165
     166        // Envoyer aux plugins
     167        $champs = pipeline('pre_edition', array(
     168                'args' => array(
     169                        'table' => 'spip_reservations',
     170                        'id_reservation' => $id_reservation,
     171                        'action' => 'instituer',
     172                        'statut_ancien' => $statut_ancien,
     173                        'date_ancienne' => $date_ancienne,
     174                ),
     175                'data' => $champs
     176        ));
     177
     178        if (!count($champs))
     179                return '';
     180
     181        // Envoyer les modifs.
     182        objet_editer_heritage('reservation', $id_reservation, '', $statut_ancien, $champs);
     183
     184        // Invalider les caches
     185        include_spip('inc/invalideur');
     186        suivre_invalideur("id='reservation/$id_reservation'");
     187
     188        // Pipeline
     189        pipeline('post_edition', array(
     190                'args' => array(
     191                        'table' => 'spip_reservations',
     192                        'id_reservation' => $id_reservation,
     193                        'action' => 'instituer',
     194                        'statut_ancien' => $statut_ancien,
     195                        'date_ancienne' => $date_ancienne,
     196                        'id_parent_ancien' => $id_rubrique,
     197                ),
     198                'data' => $champs
     199        ));
     200
     201        // Les traitements spécifiques
     202        // Notifications
     203        if ((!$statut_ancien OR $statut != $statut_ancien) && (isset($config['activer'])) && (isset($config['quand']) && is_array($config['quand']) && in_array($statut, $config['quand'])) && ($notifications = charger_fonction('notifications', 'inc', true))) {
     204                //Déterminer la langue pour les notifications
     205                $lang = isset($row['lang']) ? $row['lang'] : lire_config('langue_site');
     206                lang_select($lang);
     207                // Determiner l'expediteur
     208                $options = array(
     209                        'statut' => $champs['statut'],
     210                        'lang' => $lang
     211                );
     212                if ($config['expediteur'] != "facteur")
     213                        $options['expediteur'] = $config['expediteur_' . $config['expediteur']];
     214
     215                // Envoyer au vendeur et au client
     216                $notifications('reservation_vendeur', $id_reservation, $options);
     217                if ($config['client']) {
     218                        //$row['email']=trim($row['email']);
     219                        if (intval($row['id_auteur']) AND $row['id_auteur'] > 0)
     220                                $options['email'] = sql_getfetsel('email', 'spip_auteurs', 'id_auteur=' . $row['id_auteur']);
     221                        else
     222                                $options['email'] = $row['email'];
     223
     224                        $notifications('reservation_client', $id_reservation, $options);
     225                }
     226
     227        }
     228
     229        return '';
     230        // pas d'erreur
    225231}
Note: See TracChangeset for help on using the changeset viewer.