Changeset 112512 in spip-zone


Ignore:
Timestamp:
Nov 23, 2018, 7:53:43 AM (3 weeks ago)
Author:
abelass@…
Message:

distinguer si déclinaisons sont activés

File:
1 edited

Legend:

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

    r112511 r112512  
    8080
    8181        // Si les déclinaisons sont actives on récupère les évenements via le prix
    82         if (test_plugin_actif('declinaisons')) {
     82        if ($plugin_declinaison = test_plugin_actif('declinaisons')) {
    8383                $evenements = array();
    8484                $quantite = $_REQUEST['quantite'];
     
    121121        //Si on est dans le cas d'une création
    122122        if (is_array($evenements)) {
    123 
     123                // Si le plugin déclinaison est activé.
     124                if ($plugin_declinaison) {
     125                        // Pour chaque événement on crée un détail de la réservation
     126                        foreach ($evenements AS $id_evenement => $evenement_details) {
     127                                foreach ($evenement_details as $evenement_detail) {
     128                                        $where = 'id_reservation=' . $id_reservation . ' AND id_evenement=' . $id_evenement;
     129                                        if (isset($evenement_detail['id_prix_objet'])) {
     130                                                $where .= ' AND id_prix_objet = '.$evenement_detail['id_prix_objet'];
     131                                        }
     132                                        // Si aucun détail n'est attaché à l'événement, on le crée
     133                                        if (!$reservations_detail = sql_fetsel('*', 'spip_reservations_details', $where)) {
     134                                                $id_reservations_detail = 'new';
     135                                                $set['id_prix_objet'] = $evenement_detail['id_prix_objet'];
     136                                                $set['quantite'] = $evenement_detail['quantite'];
     137                                        }
     138                                        else {
     139                                                $id_reservations_detail = $reservations_detail['id_reservations_detail'];
     140                                                $set['quantite'] = $reservations_detail['quantite'];
     141                                        }
     142                                        // Pour l'enregistrement
     143                                        $set['id_evenement'] = $id_evenement;
     144
     145                                        // Eviter l'envoi d'une notification pour chaque détail
     146                                        set_request('envoi_separe_actif', 'non');
     147
     148                                        // Actualiser le détail de réservation
     149                                        $action($id_reservations_detail, 'reservations_detail', $set);
     150                                }
     151                        }
     152                }
     153        }
     154        else {
    124155                // Pour chaque événement on crée un détail de la réservation
    125                 foreach ($evenements AS $id_evenement => $evenement_details) {
    126                         foreach ($evenement_details as $evenement_detail) {
    127                                 $where = 'id_reservation=' . $id_reservation . ' AND id_evenement=' . $id_evenement;
    128                                 if (isset($evenement_detail['id_prix_objet'])) {
    129                                         $where .= ' AND id_prix_objet = '.$evenement_detail['id_prix_objet'];
    130                                 }
    131                                 // Si aucun détail n'est attaché à l'événement, on le crée
    132                                 if (!$reservations_detail = sql_fetsel('*', 'spip_reservations_details', $where)) {
     156                foreach ($evenements AS $id_evenement) {
     157                        // Si aucun détail n'est attaché à l'événement, on le crée
     158                        if (!$reservations_detail = sql_fetsel('*', 'spip_reservations_details',
     159                                        'id_reservation=' . $id_reservation . ' AND id_evenement=' . $id_evenement)) {
    133160                                        $id_reservations_detail = 'new';
    134                                         $set['id_prix_objet'] = $evenement_detail['id_prix_objet'];
    135                                         $set['quantite'] = $evenement_detail['quantite'];
    136                                 }
    137                                 else {
    138                                         $id_reservations_detail = $reservations_detail['id_reservations_detail'];
    139                                         $set['quantite'] = $reservations_detail['quantite'];
    140                                 }
    141                                 // Pour l'enregistrement
    142                                 $set['id_evenement'] = $id_evenement;
    143 
    144                                 // Eviter l'envoi d'une notification pour chaque détail
    145                                 set_request('envoi_separe_actif', 'non');
    146 
    147                                 // Actualiser le détail de réservation
    148                                 $action($id_reservations_detail, 'reservations_detail', $set);
    149                         }
     161                                        $set['id_prix_objet'] = $id_prix_objet[$id_evenement];
     162                        }
     163                        else {
     164                                $id_reservations_detail = $reservations_detail['id_reservations_detail'];
     165                                $set['quantite'] = $reservations_detail['quantite'];
     166                        }
     167
     168                        // Pour l'enregistrement
     169                        $set['id_evenement'] = $id_evenement;
     170
     171                        // Eviter l'envoi d'une notification pour chaque détail
     172                        set_request('envoi_separe_actif', 'non');
     173
     174                        // Actualiser le détail de réservation
     175                        $action($id_reservations_detail, 'reservations_detail', $set);
    150176                }
    151177        }
     
    157183                $statut_modifie = array();
    158184
    159                 foreach ($statuts_details_reservation AS $id_detail_reservation => $data) {
     185                foreach ($statuts_details_reservation AS $data) {
    160186                        $statut_modifie[] = $data['statut_modifie'];
    161187                }
Note: See TracChangeset for help on using the changeset viewer.