Changeset 110096 in spip-zone for _plugins_/coupons


Ignore:
Timestamp:
May 3, 2018, 11:57:50 PM (18 months ago)
Author:
nicod@…
Message:

Ajout d'un champ "actif"

Location:
_plugins_/coupons/trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/coupons/trunk/base/coupons.php

    r107994 r110096  
    4646
    4747        $tables['spip_coupons'] = array(
    48                 'type'              => 'coupon',
    49                 'principale'        => 'oui',
    50                 'field'             => array(
     48                'type'                 => 'coupon',
     49                'principale'           => 'oui',
     50                'field'                => array(
    5151                        'id_coupon'                   => 'bigint(21) NOT NULL',
    5252                        'titre'                       => 'text',
     
    5555                        'id_commandes_detail_origine' => 'bigint(21) NOT NULL DEFAULT 0',
    5656                        'id_commande'                 => 'bigint(21) NOT NULL DEFAULT 0',
     57                        'actif'                       => 'varchar(3)  DEFAULT "" NOT NULL',
    5758                        'restriction_taxe'            => 'decimal(20,6)',
    5859                        'date'                        => 'datetime NOT NULL DEFAULT "0000-00-00 00:00:00"',
    5960                        'maj'                         => 'TIMESTAMP',
    6061                ),
    61                 'key'               => array(
     62                'key'                  => array(
    6263                        'PRIMARY KEY' => 'id_coupon',
    6364                ),
    64                 'titre'             => 'titre AS titre, "" AS lang',
    65                 'date'              => 'date',
    66                 'page'              => false,
    67                 'champs_editables'  => array(
     65                'titre'                => 'titre AS titre, "" AS lang',
     66                'date'                 => 'date',
     67                'page'                 => false,
     68                'champs_editables'     => array(
    6869                        'titre',
    6970                        'code',
     
    7374                        'restriction_taxe',
    7475                ),
    75                 'champs_versionnes' => array(
     76                'champs_versionnes'    => array(
    7677                        'titre',
    7778                        'code',
     
    8182                        'restriction_taxe',
    8283                ),
    83                 'rechercher_champs' => array("titre" => 10),
    84                 'tables_jointures'  => array(),
     84                'rechercher_champs'    => array("titre" => 10),
     85                'tables_jointures'     => array(),
     86                'texte_changer_statut' => 'coupon:texte_changer_statut_coupon',
    8587
    8688        );
  • _plugins_/coupons/trunk/coupons_administrations.php

    r107058 r110096  
    3333
    3434        $maj['create'] = array(array('maj_tables', array('spip_coupons')));
     35        $maj['1.3.0'] = array(
     36                array('maj_tables', array('spip_coupons')),
     37                array('coupons_update_statut')
     38        );
    3539
    3640        // Créer les champs extras
     
    5660        effacer_meta($nom_meta_base_version);
    5761}
     62
     63function coupons_update_statut(){
     64        sql_updateq(
     65                'spip_coupons',
     66                array(
     67                        'actif' => 'on'
     68                ),
     69                'id_commande = 0'
     70        );
     71        sql_updateq(
     72                'spip_coupons',
     73                array(
     74                        'actif' => ''
     75                ),
     76                'id_commande <> 0'
     77        );
     78}
  • _plugins_/coupons/trunk/coupons_fonctions.php

    r107058 r110096  
    1616/**
    1717 * Une fonction qui indique si un coupon est utilisable ou pas (i.e. pas encore utilisé)
    18  * Pour l'instant basé sur le fait que le coupon est lié à une commande.
    19  * Pourrait évoluer à terme (coupon utilisable plusieurs fois par exemple)
    2018 *
     19 * @deprecated utiliser le champ "actif" pour déterminer si un coupon est valide
     20 *           
    2121 * @param $id_coupon
    2222 *
     
    2424 */
    2525function coupon_utilisable($id_coupon) {
    26         $id_commande = sql_getfetsel('id_commande', 'spip_coupons', 'id_coupon = ' . $id_coupon);
    27 
    28         return ($id_commande ? false : true);
     26        $id_coupon = sql_getfetsel('id_coupon', 'spip_coupons', 'id_coupon = '.$id_coupon.' and actif = '.sql_quote('on'));
     27        return ($id_coupon ? false : true);
    2928}
    3029
     30/**
     31 * Génère un code coupon aléatoire
     32 * On évite les I et O et 1 et 0 qui se ressemblent trop
     33 *
     34 * @return string
     35 */
    3136function coupon_generer_code() {
    32         // un code aléatoire
     37
    3338        $chars = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789";
    3439        return substr(str_shuffle($chars),0,10);
  • _plugins_/coupons/trunk/coupons_pipelines.php

    r109918 r110096  
    1515
    1616function coupons_post_edition($flux) {
    17        
     17
    1818        if (
    1919                $flux['args']['table'] == 'spip_commandes'
     
    2222        ) {
    2323                $id_commande = intval($flux['args']['id_objet']);
    24                
     24
    2525                // 1 - au paiement de la commande, marquer les coupons comme utilisés
    26                
     26
    2727                $infos_coupons = sql_allfetsel(
    2828                        'id_objet',
     
    3131
    3232                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');
     33                        sql_updateq(
     34                                'spip_coupons',
     35                                array(
     36                                        'id_commande' => $id_commande,
     37                                        'actif'       => '',
     38                                ),
     39                                'id_coupon = ' . $coupon['id_objet']
     40                        );
     41                        spip_log('coupon ' . $coupon['id_objet'] . ' utilisé par commande ' . $id_commande, 'coupons');
    3542                }
    3643
     
    4451                foreach ($infos_bon_cadeau as $bon) {
    4552
    46                         for($i=0; $i<$bon['quantite']; $i++) {
     53                        for ($i = 0; $i < $bon['quantite']; $i++) {
    4754                                // montant TTC du bon de réduction
    4855                                $montant_coupon = $bon['prix_unitaire_ht'] * (1 + $bon['taxe']);
     
    5663                                                'titre'                       => $bon['titre'],
    5764                                                'code'                        => coupon_generer_code(),
     65                                                'actif'                       => 'on',
    5866                                        );
    5967                                        objet_modifier('coupon', $id_coupon, $valeurs_coupon);
     
    6977                                        spip_log('création du coupon ' . $id_coupon, 'coupons');
    7078                                        spip_log($valeurs_coupon, 'coupons');
    71                                 } 
     79                                }
    7280                        }
    7381
    7482                }
    7583        }
    76        
     84
    7785        return $flux;
    7886}
  • _plugins_/coupons/trunk/formulaires/editer_coupon.html

    r107058 r110096  
    1111                        [(#SAISIE{input, titre, obligatoire=oui,
    1212                                label=<:coupon:champ_titre_label:>})]
     13
     14                        [(#SAISIE{case, actif,
     15                                label_case=<:coupon:champ_actif_label:>})]
    1316
    1417                        [(#SAISIE{input, code, obligatoire=oui,
  • _plugins_/coupons/trunk/formulaires/utiliser_coupon.php

    r107058 r110096  
    2020        }
    2121
    22         $coupon = sql_fetsel('*', 'spip_coupons', 'code = ' . sql_quote($code_coupon));
     22        $coupon = sql_fetsel(
     23                'id_coupon',
     24                'spip_coupons',
     25                'actif=' . sql_quote('on') . ' and code = ' . sql_quote($code_coupon)
     26        );
    2327
    2428        // coupon inconnu ou déjà utilisé ?
    25         if (!$coupon['id_coupon'] || !coupon_utilisable($coupon['id_coupon'])) {
     29        if (!$coupon['id_coupon']) {
    2630                return array('code_coupon' => _T('coupons:code_invalide'));
    2731        }
     
    6569                        }
    6670                }
    67                
     71
    6872                // vérifier si le montant de la réduction est supérieur au total des produits
    6973                if ($montant_reduction > $total_commande) {
  • _plugins_/coupons/trunk/lang/coupon_fr.php

    r107058 r110096  
    1212
    1313        // C
     14        'champ_actif_label'                       => 'Coupon activé ?',
    1415        'champ_code_label'                        => 'Code',
    1516        'champ_id_commande_label'                 => 'Utilisé dans la commande',
  • _plugins_/coupons/trunk/paquet.xml

    r109918 r110096  
    22        prefix="coupons"
    33        categorie="divers"
    4         version="1.2.0"
     4        version="1.3.0"
    55        etat="test"
    66        compatibilite="[3.1.0;3.2.*]"
    77        logo="prive/themes/spip/images/coupons-64.png"
    88        documentation=""
    9         schema="1.0.0"
     9        schema="1.3.0"
    1010>
    1111        <nom>Coupons de réduction</nom>
  • _plugins_/coupons/trunk/prive/objets/contenu/coupon.html

    r107058 r110096  
    11<BOUCLE_coupon(COUPONS){id_coupon}>
     2
     3<div class="champ">
     4        <label><:coupon:champ_actif_label:> : </label>
     5        [(#ACTIF|?{<:item_non:>,<:item_oui:>})]
     6</div>
    27
    38[<div class="champ">
  • _plugins_/coupons/trunk/prive/objets/liste/coupons.html

    r107999 r110096  
    1515                        <th class="" scope="col">[(#TRI{code,<:coupon:champ_code_label:>,ajax})]</th>
    1616                        <th class="" scope="col">[(#TRI{id_commandes_detail_origine,<:commandes:commande_titre:>,ajax})]</th>
    17                         <th class="" scope="col"><:coupon:coupon_utilise:></th>
     17                        <th class="" scope="col"><:coupon:coupon_utilisable:></th>
    1818                        <th class="date" scope="col">[(#TRI{date,<:date:>,ajax})]</th>
    1919                        <th class="id" scope="col">[(#TRI{id_coupon,<:info_numero_abbreviation:>,ajax})]</th>
     
    2929                        <td class="">#CODE</td>
    3030                        <td class=""><BOUCLE_commande(COMMANDES_DETAILS){id_commandes_detail=#ID_COMMANDES_DETAIL_ORIGINE}><a href="#URL_ECRIRE{commande,id_commande=#ID_COMMANDE}">#ID_COMMANDE</a></BOUCLE_commande></td>
    31                         <td class="">[(#ID_COUPON|coupon_utilisable|?{'',<:item_oui:>})]</td>
     31                        <td class="">[(#ACTIF|?{<:item_non:>,<:item_oui:>})]</td>
    3232                        <td class="date secondaire">[(#DATE|affdate_jourcourt)]</td>
    3333                        <td class="id">[(#AUTORISER{modifier,coupon,#ID_COUPON}|?{
Note: See TracChangeset for help on using the changeset viewer.