source: spip-zone/_plugins_/reservations_bank/trunk/reservation_bank_pipelines.php @ 111834

Last change on this file since 111834 was 111834, checked in by abelass@…, 5 months ago
  • possibilité de modifier le montant payé depuis l'espace privé
  • afficher les montants payés sur le recapitulatif
File size: 21.0 KB
Line 
1<?php
2/**
3 * Utilisations de pipelines par Réservations Bank
4 *
5 * @plugin     Réservations Bank
6 * @copyright  2015-2018
7 * @author     Rainer Müller
8 * @licence    GNU/GPL
9 * @package    SPIP\Reservation_bank\Pipelines
10 */
11if (!defined('_ECRIRE_INC_VERSION'))
12        return;
13
14/**
15 * permet de modifier le tableau de valeurs envoyé par la fonction charger d’un formulaire CVT
16 *
17 * @pipeline formulaire_charger
18 *
19 * @param array $flux
20 *              Données du pipeline
21 * @return array Données du pipeline
22 */
23function reservation_bank_formulaire_charger($flux) {
24        $form = $flux['args']['form'];
25
26        if ($form == 'encaisser_reglement') {
27                $id_transaction = $flux['data']['_id_transaction'];
28
29                // Les infos supplémentaires de la transaction
30                $transaction = sql_fetsel('id_reservation,montant,auteur', 'spip_transactions', 'id_transaction=' . $id_transaction);
31                $id_reservation = $flux['id_reservation'] = $transaction['id_reservation'];
32                $montant_transaction = $flux['montant'] = $transaction['montant'];
33
34                // Cas spécial pour les crédits
35                if ($flux['data']['_mode'] == 'credit' and $credit = credit_client('', $transaction['auteur'])) {
36                        $flux['data']['credit'] = '';
37                        $flux['data']['email_client'] = $email_client = $transaction['auteur'];
38                        $flux['_hidden'] .= '<input name="email_client" value="' . $email_client . '" type="hidden"/>';
39                }
40
41                // Définir les champs pour les détails de réservation.
42                $sql = sql_select('id_reservations_detail,prix,prix_ht,quantite,devise,taxe,descriptif,montant_paye', 'spip_reservations_details', 'id_reservation=' . $id_reservation);
43
44                $montant_detail = array();
45                $montant_reservations_detail_defaut = array();
46                $montant_reservations_detail_total = array();
47                $count = sql_count($sql);
48                $montant_transaction_detail = '';
49                if ($count > 0) {
50                        $montant_transaction_detail = $montant_transaction / $count;
51                }
52
53                $montant_ouvert = '';
54                $montant_defaut = '';
55                $fonction_prix = '';
56                if (charger_fonction('prix', 'inc/', TRUE)) {
57                        $fonction_prix = charger_fonction('prix', 'inc/');
58                }
59
60                while ($data = sql_fetch($sql)) {
61                        $id_reservations_detail = $data['id_reservations_detail'];
62                        $devise = $data['devise'];
63                        $montant_paye[$id_reservations_detail] = $data['montant_paye'];
64
65                        if ($fonction_prix) {
66                                $montant = $fonction_prix('reservations_detail', $id_reservations_detail);
67                        }
68                        else {
69                                $montant = $data['prix'];
70                                if ($montant <= 0) {
71                                        $montant = $data['prix_ht'] + $data['taxe'];
72                                }
73                        }
74
75                        $montant_reservations_detail_total[$id_reservations_detail] = $montant;
76
77                        $montant_ouvert = $montant_defaut = $montant - $data['montant_paye'];
78
79                        if ($montant_ouvert < $montant_transaction_detail and $montant_ouvert >= 0) {
80                                if (!$montant_defaut = _request('montant_reservations_detail_' . $id_reservations_detail)) {
81                                        $montant_defaut = $montant_ouvert;
82                                }
83                        }
84
85                        if ($credit[$devise] > 0 and ($credit[$devise] / $count) <= $montant_defaut) {
86                                $montant_defaut = $credit[$devise] / $count;
87                        }
88
89                        if ($montant_defaut > 0) {
90
91                                $montant_detail[] = array(
92                                        'saisie' => 'input',
93                                        'options' => array(
94                                                'nom' => 'montant_reservations_detail_' . $id_reservations_detail,
95                                                'label' => $data['descriptif'],
96                                                'defaut' => $montant_defaut,
97                                                'size' => 20
98                                        )
99                                );
100                        }
101
102                        $flux['data']['montant_reservations_detail_' . $id_reservations_detail] = '';
103                        $montant_reservations_detail_defaut[$id_reservations_detail] = $montant_ouvert;
104                }
105
106                if ($credit) {
107                        $flux['credit'] = '';
108                        $flux['_hidden'] .= '<input name="credit" value="' . $credit[$devise] . '" type="hidden"/>';
109                }
110
111                $flux['_mes_saisies'] = array(
112                        array(
113                                'saisie' => 'fieldset',
114                                'options' => array(
115                                        'nom' => 'specifier',
116                                        'label' => _T('reservation_bank:label_fieldset_specifier')
117                                ),
118                                'saisies' => array(
119                                        array(
120                                                'saisie' => 'oui_non',
121                                                'options' => array(
122                                                        'nom' => 'specifier_montant',
123                                                        'label' => _T('reservation_bank:label_specifier_montant'),
124                                                        'defaut' => _request('specifier_montant')
125                                                )
126                                        )
127                                )
128                        ),
129                        array(
130                                'saisie' => 'fieldset',
131                                'options' => array(
132                                        'nom' => 'montant',
133                                        'label' => _T('reservation_bank:label_fieldset_montant_detail', array(
134                                                'devise' => $devise
135                                        )),
136                                        'afficher_si' => '@specifier_montant@ == "on"'
137                                ),
138                                'saisies' => $montant_detail
139                        )
140                );
141                $flux['data']['specifier_montant'] = _request('specifier_montant');
142                $flux['data']['montant_reservations_detail_defaut'] = '';
143                $flux['data']['montant_paye'] = $montant_paye;
144                $flux['_hidden'] .= '<input name="id_reservation" value="' . $id_reservation . '" type="hidden"/>';
145                $flux['_hidden'] .= '<input name="id_transaction" value="' . $id_transaction . '" type="hidden"/>';
146
147                $montant_reservations_detail_defaut = serialize($montant_reservations_detail_defaut);
148                $montant_reservations_detail_total = serialize($montant_reservations_detail_total);
149                $flux['_hidden'] .= "<input name='montant_reservations_detail_defaut' value='$montant_reservations_detail_defaut' type='hidden'/>";
150                $flux['_hidden'] .= "<input name='montant_reservations_detail_total' value='$montant_reservations_detail_total' type='hidden'/>";
151        }
152        return $flux;
153}
154
155/**
156 * Intervientpendant la vérification d'un formulaire CVT
157 *
158 * @pipeline formulaire_verifier
159 *
160 * @param array $flux
161 *              Données du pipeline
162 * @return array Données du pipeline
163 */
164function reservation_bank_formulaire_verifier($flux) {
165        $form = $flux['args']['form'];
166        if ($form == 'encaisser_reglement') {
167                $id_reservation = _request('id_reservation');
168
169                $montant_reservations_detail_defaut = _request('montant_reservations_detail_defaut') ? unserialize(_request('montant_reservations_detail_defaut')) : array();
170                $montant_reservations_detail_total = _request('montant_reservations_detail_total') ? unserialize(_request('montant_reservations_detail_total')) : array();
171
172                if ($montant_reservations_detail_defaut) {
173                        set_request('montant_reservations_detail_defaut', $montant_reservations_detail_defaut);
174                }
175                if ($montant_reservations_detail_total) {
176                        set_request('montant_reservations_detail_total', $montant_reservations_detail_total);
177                }
178
179                $sql = sql_select('id_reservations_detail,montant_paye', 'spip_reservations_details', 'id_reservation=' . $id_reservation);
180                $montant_ouvert = array();
181                $montant_paye = array();
182                $montants = array();
183                while ($data = sql_fetch($sql)) {
184                        $id_reservations_detail = $data['id_reservations_detail'];
185                        $montant = _request('montant_reservations_detail_' . $id_reservations_detail);
186                        $montant_defaut = $montant_reservations_detail_defaut[$id_reservations_detail];
187
188                        $montant_paye[$id_reservations_detail] = $paye = $data['montant_paye'];
189                        $montants[] = $montant;
190
191                        if (_request('specifier_montant') and $montant > $montant_defaut) {
192                                $flux['data']['montant_reservations_detail_' . $id_reservations_detail] = _T('reservation_bank:message_erreur_montant_reservations_detail', array(
193                                        'montant_ouvert' => $montant_defaut
194                                ));
195                        }
196                }
197                set_request('montant_paye', $montant_paye);
198                if ($credit = _request('credit') and $credit < array_sum($montants)) {
199                        $flux['data']['specifier_montant'] = _T('reservation_bank:message_erreur_montant_credit', array(
200                                'credit' => $credit
201                        ));
202                }
203                session_set('encaisser_montant_regle', array_sum($montants));
204        }
205        return $flux;
206}
207
208/**
209 * Intervient au traitement d'un formulaire CVT
210 *
211 * @pipeline formulaire_traiter
212 *
213 * @param array $flux
214 *              Données du pipeline
215 * @return array Données du pipeline
216 */
217function reservation_bank_formulaire_traiter($flux) {
218        $form = $flux['args']['form'];
219
220        // Affiche le formulaire de paiement au retour du formulaire réservation
221        if ($form == 'reservation') {
222                if (!_request('gratuit')) {
223                        include_spip('inc/config');
224                        $config = lire_config('reservation_bank', array());
225                        $cacher_paiement_public = isset($config['cacher_paiement_public']) ? $config['cacher_paiement_public'] : '';
226                        $id_reservation = session_get('id_reservation');
227                        rb_inserer_transaction($id_reservation);
228                        if (!$cacher_paiement_public) {
229                                $flux['data']['redirect'] = generer_url_public(
230                                        'paiement_reservation',
231                                        "id_reservation=$id_reservation");
232
233                        }
234                }
235        }
236
237        // Adapte la transaction aorès la modification du montan payé.
238        if ($form == 'editer_reservations_detail') {
239                if ($id_reservation = sql_getfetsel('id_reservation',
240                                'spip_reservations_details',
241                                'id_reservations_detail=' . _request('id_reservations_detail'))) {
242                        $inserer_transaction = charger_fonction ("inserer_transaction", "bank" );
243                        $donnees = unserialize (recuperer_fond('inclure/paiement_reservation', array(
244                                'id_reservation' => $id_reservation,
245                                'cacher_paiement_public' => TRUE
246                        )));
247                        $donnees['options']['force'] = FALSE;
248                        spip_log($donnees,'teste');
249                        $inserer_transaction($donnees['montant'], $donnees['options']);
250                }
251
252        }
253
254        return $flux;
255}
256
257/**
258 * Intervient lors de l’édition d’un élément éditorial.
259 *
260 * @pipeline pre_edition
261 *
262 * @param array $flux
263 *              Données du pipeline
264 * @return array Données du pipeline.
265 */
266function reservation_bank_pre_edition($flux) {
267        $table = $flux['args']['table'];
268
269        if (!_request('gratuit') &&
270                        $table == 'spip_reservations' &&
271                        $flux['args']['statut_ancien'] == 'encours' &&
272                        _request('statut') == 'encours' &&
273                        $montants = _request('montants')
274                        ) {
275                        $id_reservation = $flux['args']['id_reservation'];
276                        $prix_ht = array_sum(array_column($montants, 'prix_ht'));
277                        $prix = array_sum(array_column($montants, 'prix'));
278                        if ($prix_ht <= 0 && $prix <= 0) {
279                                $id_transaction = rb_inserer_transaction($id_reservation);
280                                $row = sql_fetsel('*','spip_transactions','id_transaction='.intval($id_transaction));
281
282                                $set = array(
283                                        "mode"=>'gratuit',
284                                        "montant_regle" => 0,
285                                        "date_paiement" => date('Y-m-d H:i:s'),
286                                        "statut"=>'ok',
287                                        "reglee"=>'oui'
288                                );
289                                sql_updateq("spip_transactions", $set,  "id_transaction=".intval($id_transaction));
290                                spip_log("call_resonse : id_transaction $id_transaction, reglee",$mode);
291                                set_request('gratuit', TRUE);
292
293                                $regler_transaction = charger_fonction('regler_transaction', 'bank');
294                                $regler_transaction($id_transaction, array('row_prec'=>$row));
295                        }
296
297        }
298
299
300        if ($table == 'spip_reservations_details' and $montant_reservations_detail_total = _request('montant_reservations_detail_total') and $montant_paye = _request('montant_paye')) {
301
302                $id_reservations_detail = $flux['args']['id_reservations_detail'];
303
304                $montant_total = $montant_reservations_detail_total[$id_reservations_detail];
305                $montant_reservations_detail = _request('montant_reservations_detail_' . $id_reservations_detail);
306
307                $montant_paye = $montant_paye[$id_reservations_detail] + $montant_reservations_detail;
308
309                // Si le montant payé est inférieur au montant dû on change les statuts.
310
311                $statut = $flux['data']['statut'];
312
313                if ($montant_paye < $montant_total and (!empty($montant_total) and $montant_total != 0)) {
314                        if ($statut == 'accepte') {
315                                $flux['data']['statut'] = 'accepte_part';
316                        }
317                        elseif ($statut == 'attente') {
318                                $flux['data']['statut'] = 'attente_part';
319                        }
320                }
321                // Si montant égal, mais statut en attente, on met en attente_paye.
322                elseif ($statut == 'attente') {
323                        $flux['data']['statut'] = 'attente_paye';
324                }
325
326                // Enregistre le montant payé
327                $flux['data']['montant_paye'] = $montant_paye;
328        }
329        return $flux;
330}
331
332/**
333 * Permet de compléter ou modifier le résultat de la compilation d’un squelette donné.
334 *
335 * @pipeline recuperer_fond
336 *
337 * @param array $flux
338 *              Données du pipeline
339 * @return array Données du pipeline
340 */
341function reservation_bank_recuperer_fond($flux) {
342        $fond = $flux['args']['fond'];
343        $contexte = $flux['data']['contexte'];
344
345        // Ajoute des champs supplémentaires pour le paiment des réservations dans l'espace privé.
346        if ($fond == 'formulaires/encaisser_reglement' and _request('exec') == 'payer_reservation') {
347                $reservation_bank = recuperer_fond('formulaires/inc-encaisser_reglement_reservation', $contexte);
348                $flux['data']['texte'] = str_replace('<ul class="editer-groupe">', $reservation_bank . '<ul class="editer-groupe">', $flux['data']['texte']);
349        }
350
351        // Ajoute un colonne en plus à la liste des réservations
352        if ($fond == 'prive/objets/liste/inc-reservations_reservations') {
353                $row = recuperer_fond('prive/objets/liste/inc-reservations_thead', $contexte);
354                $flux['data']['texte'] = str_replace("<th class='client' scope='col'>", $row . "<th class='client' scope='col'>", $flux['data']['texte']);
355        }
356
357        // Ajoute un colonne en plus à la liste des réservations
358        if ($fond == 'prive/objets/liste/inc-reservations_row') {
359                $row = recuperer_fond('prive/objets/liste/inc-reservations_row_paiement', $contexte);
360                $flux['data']['texte'] = str_replace("<td class='client'>", $row . "<td class='client'>", $flux['data']['texte']);
361        }
362
363        // Ajoute le lien de paiement à la page réservation
364        if ($fond == 'prive/objets/contenu/inc-reservation_montant') {
365                $id_reservation = $contexte['id_reservation'];
366                $sql = sql_select('montant_paye', 'spip_reservations_details', 'id_reservation=' . $id_reservation);
367
368                $montant_paye = array();
369                while ($data = sql_fetch($sql)) {
370                        $montant_paye[] = $data['montant_paye'];
371                }
372                $contexte['montant_paye'] = array_sum($montant_paye);
373                $row = recuperer_fond('prive/objets/contenu/inc-reservation_montant_paiement', $contexte);
374                $flux['data']['texte'] = str_replace('</div>', '</div>' . $row, $flux['data']['texte']);
375        }
376
377        // Le recapitulatif de la réservation.
378        if ($fond == 'inclure/reservation' and
379                        $id_reservation = $flux['data']['contexte']['id_reservation']) {
380
381                // Ajouite le montant payé
382                $texte_montant_paye = recuperer_fond('inclure/texte_montant_paye', array('id_reservation' => $id_reservation));
383
384                $flux['data']['texte'] = str_replace(
385                                '</tr>
386                        </tfoot>',
387                                "</tr>\n
388                                $texte_montant_paye \n
389                        </tfoot>\n"     ,
390                        $flux['data']['texte']);
391
392
393                // Ajoute le message de paiement à la notification de réservation.
394                if ($statut = sql_getfetsel('statut', 'spip_reservations', 'id_reservation=' . $id_reservation) and
395                                $statut == 'attente_paiement' or $statut == 'accepte') {
396                        $qui = $flux['data']['contexte']['qui'];
397                        $transaction = sql_fetsel('mode, id_transaction, transaction_hash, message, tracking_id', 'spip_transactions', 'id_reservation=' . $id_reservation, '', 'date_transaction DESC');
398                        $mode = $transaction['mode'];
399                        $id_transaction = $transaction['id_transaction'];
400                        if ($qui == 'client') {
401                                if ($statut == 'attente_paiement') {
402                                        $pattern = array(
403                                                '|<p class="titre h4">|',
404                                                '|</p>|'
405                                        );
406                                        $replace = array(
407                                                '<h3>',
408                                                '</h3>'
409                                        );
410                                        $texte = preg_replace(
411                                                        $pattern,
412                                                        $replace, bank_afficher_attente_reglement($mode, $id_transaction, $transaction['transaction_hash'], ''));
413                                }
414                                else {
415                                        $texte = '<p>' . $transaction['message'] . '</p>';
416                                }
417                        }
418                        elseif ($qui == 'vendeur') {
419                                $url = generer_url_ecrire('transaction', 'id_transaction=' . $id_transaction);
420                                $texte = '<h2>' . _T('reservation_bank:titre_paiement_vendeur') . '</h2>';
421                                $texte .= '<p>' . _T('reservation_bank:message_paiement_vendeur', array(
422                                        'mode' => $mode,
423                                        'url' => $url
424                                )) . '</p>';
425                        }
426                        $flux['data']['texte'] .= $texte;
427                }
428        }
429
430        // Ajouter le message pour la référence su paiement par virement.
431        if ($fond == 'presta/virement/payer/attente' and $tracking_id = sql_getfetsel('tracking_id', 'spip_transactions', 'id_transaction=' . $contexte['id_transaction']) and $id_reservation = sql_getfetsel('id_reservation', 'spip_reservations', 'reference LIKE ' . sql_quote($tracking_id))) {
432
433                $texte = '<strong>' . _T('reservation_bank:reservation_paiement_reference', array(
434                        'reference' => $tracking_id
435                )) . '</strong>';
436                $flux['data']['texte'] = str_replace('</div>', $texte . '</div>', $flux['data']['texte']);
437        }
438
439        // Ajoute un bouton de paimeent pour le réservations en cours.
440        if ($fond == 'prive/squelettes/navigation/reservation') {
441                if ($statut = sql_getfetsel('statut', 'spip_reservations', 'id_reservation= ' . $contexte['id_reservation']) and $statut == 'encours') {
442                        $button = recuperer_fond('inclure/bouton_inserer_prestataire', $contexte);
443                        $flux['data']['texte'] = str_replace('<!-- Infos extras -->', $button . ' <!-- Infos extras -->', $flux['data']['texte']);
444                }
445        }
446
447        // Ajoute le champ montant payé au formulaire d'édition.
448        if ($fond == 'formulaires/inc-editer_reservations_details_champs') {
449                        $flux['data']['texte'] .= recuperer_fond('formulaires/champ_montant_paye', $contexte);
450        }
451
452        // Ajoute le champ montant `la page du détail de réservation.
453        if ($fond == 'prive/objets/contenu/reservations_detail') {
454                        $flux['data']['texte'] .= recuperer_fond('prive/objets/contenu/inc-reservation_detail_montant_paye', $contexte);
455        }
456
457        return $flux;
458}
459
460/**
461 * Enregistrer le bon reglement d'une commande liee a une transaction du plugin bank
462 *
463 * @pipeline bank_traiter_reglement
464 *
465 * @param array $flux
466 * @return array mixed
467 */
468function reservation_bank_bank_traiter_reglement($flux) {
469        // Si on est dans le bon cas d'un paiement de reservation et qu'il y a un id_reservation et que la reservation existe toujours
470
471        if ($id_transaction = $flux['args']['id_transaction'] and
472                        $transaction = sql_fetsel("*", "spip_transactions", "id_transaction=" . intval($id_transaction)) and
473                        $id_reservation = $transaction['id_reservation'] and
474                        $reservation = sql_fetsel('statut, reference', 'spip_reservations', 'id_reservation=' . intval($id_reservation))) {
475
476                $paiement_detail = array();
477                if (!_request('gratuit')) {
478                        if (!$montant_reservations_detail_total = _request('montant_reservations_detail_total')) {
479                                include_spip('inc/reservation_bank');
480                                $montant_reservations_detail_total = montant_reservations_detail_total($id_reservation);
481                        }
482
483                        foreach (array_keys($montant_reservations_detail_total) as $id_reservation_detail) {
484                                $paiement_detail[$id_reservation_detail] = _request('montant_reservations_detail_' . $id_reservation_detail);
485                        }
486
487                        if (!$montant_regle = array_sum($paiement_detail)) {
488                                $montant_regle = $transaction['montant_regle'];
489                        }
490                        elseif (is_array($montant_regle)) {
491                                $montant_regle = array_sum($montant_regle);
492                        }
493
494
495
496                set_request('montant_regle', $montant_regle);
497
498                $set = array(
499                        'montant_regle' => $montant_regle,
500                        'paiement_detail' => serialize($paiement_detail)
501                );
502
503                sql_updateq('spip_transactions', $set, 'id_transaction=' . $id_transaction);
504                }
505
506                include_spip('action/editer_objet');
507                objet_instituer('reservation', $id_reservation, array(
508                        'statut' => 'accepte',
509                        'date_paiement' => $transaction['date_transaction']
510                ));
511
512                // un message gentil pour l'utilisateur qui vient de payer, on lui rappelle son numero de commande
513                $flux['data'] .= "<br />" . _T('reservation_bank:merci_de_votre_reservation_paiement', array(
514                        'reference' => $reservation['reference']
515                ));
516
517        }
518
519        return $flux;
520}
521
522/**
523 * Changer de statut si transaction en attente
524 *
525 * @pipeline trig_bank_reglement_en_attente
526 *
527 * @param array $flux
528 * @return array
529 */
530function reservation_bank_trig_bank_reglement_en_attente($flux) {
531        if ($id_reservation = sql_getfetsel('id_reservation', 'spip_transactions', 'id_transaction=' . $flux['args']['id_transaction'])) {
532                include_spip('action/editer_objet');
533                objet_instituer('reservation', $id_reservation, array(
534                        'statut' => 'attente_paiement'
535                ));
536        }
537
538        return $flux;
539}
540
541/**
542 * Insertion de css.
543 *
544 * @pipeline insert_head_css
545 *
546 * @param array $flux
547 *              Données du pipeline
548 * @return array Données du pipeline
549 */
550function reservation_bank_insert_head_css($flux) {
551        $css = find_in_path('css/reservations_bank.css');
552        $flux .= "<link rel='stylesheet' type='text/css' media='all' href='$css' />\n";
553        return $flux;
554}
555
556/**
557 * Ajouter les configurations dans celle de réservation événements.
558 *
559 * @pipeline reservation_evenement_objets_configuration
560 *
561 * @param array $flux
562 *              Données du pipeline
563 * @return array Données du pipeline
564 */
565function reservation_bank_reservation_evenement_objets_configuration($flux) {
566        $objets = array(
567                'bank' => array(
568                        'label' => _T('bank:titre_menu_configurer')
569                ),
570                'reservation_bank' => array(
571                        'label' => _T('reservation_bank:reservation_bank_titre')
572                )
573        );
574
575        $flux['data'] = array_merge($flux['data'], $objets);
576
577        return $flux;
578}
579
580/**
581 * Ajouter une entré au menu de navigation de résrvation événement.
582 *
583 * @pipeline reservation_evenement_objets_navigation
584 *
585 * @param array $flux
586 *              Données du pipeline
587 * @return array Données du pipeline
588 */
589function reservation_bank_reservation_evenement_objets_navigation($flux) {
590        $flux['data']['transactions'] = array(
591                'label' => _T('bank:titre_menu_transactions'),
592                'icone' => 'credit-card-16.png'
593        );
594
595        return $flux;
596}
597
598/**
599 * Intervention sur les détails de réservation.
600 *
601 * @pipeline reservation_evenement_donnees_details.
602 *
603 * @param array $flux
604 *              Données du pipeline
605 * @return array
606 *          Données du pipeline
607 */
608function reservation_bank_reservation_evenement_donnees_details($flux) {
609        $data = $flux['data'];
610        if ($flux['args']['statut'] == 'encours') {
611                if (isset($data['prix_ht']) && isset($data['prix'])) {
612                        $prix_ht = $data['prix_ht'];
613                        $prix = $data['prix'];
614                        if ($prix <= 0 && $prix_ht <= 0) {
615                                $flux['data']['statut'] = 'accepte';
616                        }
617                }
618        }
619
620
621        return $flux;
622}
623
Note: See TracBrowser for help on using the repository browser.