source: spip-zone/_plugins_/coupons/trunk/coupons_pipelines.php @ 107991

Last change on this file since 107991 was 107991, checked in by nicolas.dorigny@…, 3 years ago

Supprimer tags (pas d'html)

File size: 2.8 KB
Line 
1<?php
2/**
3 * Utilisations de pipelines par Coupons de réduction
4 *
5 * @plugin     Coupons de réduction
6 * @copyright  2017
7 * @author     Nicolas Dorigny
8 * @licence    GNU/GPL
9 * @package    SPIP\Coupons\Pipelines
10 */
11
12if (!defined('_ECRIRE_INC_VERSION')) {
13        return;
14}
15
16function coupons_post_edition($flux) {
17       
18        if (
19                $flux['args']['table'] == 'spip_commandes'
20                && $flux['args']['action'] == 'instituer'
21                && $flux['data']['statut'] == 'paye'
22        ) {
23                $id_commande = intval($flux['args']['id_objet']);
24               
25                // 1 - au paiement de la commande, marquer les coupons comme utilisés
26               
27                $infos_coupons = sql_allfetsel(
28                        'id_objet',
29                        'spip_commandes_details',
30                        'id_commande = ' . $id_commande . ' AND objet = "coupon"');
31
32                foreach ($infos_coupons as $coupon) {
33                        sql_updateq('spip_coupons', array('id_commande' => $id_commande), 'id_coupon = ' . $coupon['id_objet']);
34                        spip_log('coupon '.$coupon['id_objet'].' utilisé par commande '.$id_commande, 'coupons');
35                }
36
37                // 2 - générer un coupon pour chaque bon d'achat dans la commande
38
39                $infos_bon_cadeau = sql_allfetsel(
40                        'cd.*, p.titre, p.taxe',
41                        'spip_commandes_details cd JOIN spip_produits p ON (cd.id_objet = p.id_produit AND cd.objet="produit")',
42                        'cd.id_commande = ' . $id_commande . ' AND p.bon_cadeau = "on"');
43
44                foreach ($infos_bon_cadeau as $bon) {
45
46                        // ne pas recréer le coupon s'il existe déjà
47                        if (!sql_getfetsel(
48                                'id_coupon',
49                                'spip_coupons',
50                                'id_commandes_detail_origine = ' . $bon['id_commandes_detail'])) {
51
52                                // montant TTC du bon de réduction
53                                $montant_coupon = $bon['quantite'] * $bon['prix_unitaire_ht'] * (1 + $bon['taxe']);
54                                if ($montant_coupon) {
55                                        include_spip('action/editer_objet');
56                                        $id_coupon = objet_inserer('coupon');
57                                        $valeurs_coupon   = array(
58                                                'montant'                    => $montant_coupon,
59                                                'restriction_taxe'           => $bon['taxe'],
60                                                'id_commandes_detail_origine' => $bon['id_commandes_detail'],
61                                                'titre'                      => $bon['titre'] . ' ' . supprimer_tags(prix_formater($montant_coupon)),
62                                                'code'                       => coupon_generer_code(),
63                                        );
64                                        objet_modifier('coupon', $id_coupon, $valeurs_coupon);
65
66                                        // envoi d'une notification
67                                        if($destinataires = lire_config('coupons/emails_notifications')) {
68                                                $expediteur   = lire_config('email_webmaster');
69                                                $texte        = recuperer_fond('notifications/notification_coupon', $valeurs_coupon);
70                                                $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
71                                                $envoyer_mail($destinataires, _T('coupons:creation_coupon'), $texte, $expediteur);
72                                        }
73
74
75                                        spip_log('création du coupon ' . $id_coupon, 'coupons');
76                                        spip_log($valeurs_coupon, 'coupons');
77
78                                } else {
79                                        // comment est ce possible ?
80                                        spip_log('montant coupon null ', 'coupons');
81                                        spip_log($bon, 'coupons');
82                                }
83
84                        }
85
86                }
87        }
88       
89        return $flux;
90}
Note: See TracBrowser for help on using the repository browser.