source: spip-zone/_plugins_/commandes/trunk/action/distribuer_commande.php @ 103959

Last change on this file since 103959 was 103959, checked in by cedric@…, 3 years ago

il est possible d'annuler la distribution en retournant false via le pipeline commandes_pre_distribuer_commande

File size: 1.4 KB
Line 
1<?php
2/**
3 * API d'édition du plugin Commandes
4 *
5 * @plugin     Commandes
6 * @copyright  2014
7 * @author     Ateliers CYM, Matthieu Marcillaud, Les Développements Durables
8 * @licence    GPL 3
9 * @package    SPIP\Commandes\Editer
10 */
11
12// Sécurité
13if (!defined("_ECRIRE_INC_VERSION")) return;
14
15/**
16 * Distribuer une commande : pour chaque ligne de la commande on appelle l'api distribuer
17 * si elle est implementee pour l'objet concerne
18 *
19 * @param int $id_commande
20 */
21function action_distribuer_commande_dist($id_commande){
22
23        if ($id_commande = intval($id_commande)
24          and $commande = sql_fetsel("*","spip_commandes","id_commande=".intval($id_commande))) {
25
26                // appeler un pipeline qui permet aux plugins peripheriques de gerer
27                // exemple creer a la volee un compte client si on est arrive jusqu'ici avec id_auteur=0 (nouveau client, workflow simplifie)
28                // un plugin peut aussi annuler la distribution pour la remettre a plus tard en retournant false
29                $commande = pipeline('commandes_pre_distribuer_commande',$commande);
30
31                if ($commande and $id_commande = $commande['id_commande']) {
32                        if ($details = sql_allfetsel("*","spip_commandes_details","id_commande=".intval($id_commande)) ){
33                                foreach ($details as $detail){
34                                        $objet = $detail['objet'];
35                                        if ($distribuer = charger_fonction($objet, "distribuer", true)){
36                                                $distribuer($detail['id_objet'], $detail, $commande);
37                                        }
38                                }
39                        }
40                }
41
42        }
43
44}
Note: See TracBrowser for help on using the repository browser.