Changeset 118037 in spip-zone


Ignore:
Timestamp:
Oct 5, 2019, 6:08:24 PM (12 months ago)
Author:
arnaud.berard@…
Message:

0.2.8

  • utilise paniers
  • utilisation de la pipeline remplir_panier pour tester le stock disponible lors de l'ajout au panier.
Location:
_plugins_/stocks/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/stocks/trunk/README.md

    r112170 r118037  
    99## Todo
    1010
    11 - [?] mettre en place une config pour gérer ou non le changement de statut du produit
    12 - [] saisie gerer_quantite utilisable dans le panier par exemple
     11@todo -  mettre en place une config pour gérer ou non le changement de statut du produit ?
     12
     13@todo - saisie gerer_quantite utilisable dans le panier par exemple
     14
     15@todo - Quand il n'y a pas de stock créés a l'instalation la page de gestion des stock est vide, prévoir un message explicatif
     16
     17@todo - Gestion js/ajaxreload Sur la vue d'un produit
     18- le formulaire de gestion du stock affiche 'créer le stock' il faut recharger la page pour que l'id_stock affiche le bon message.
     19- lors de la suppression du stock le ajax reload ne fonctionne pas
    1320
    1421## Améliorations à prévoir
     
    1926il faudrait tester sur la table spip panier lien les produits encours de commande, pour ne pas proposer dans la saisie quantité plus que de stock disponible.
    2027
     28
     29
    2130## Changelogs
     31
     320.2.8
     33
     34- utilisation de la pipeline `remplir_panier` pour tester le stock disponible lors de l'ajout au panier.
     35
     360.2.7
     37
     38ajout des autorisations sur les stocks.seul un webmestre ou rédacteur peuvent voir ou éditer un stock
    2239
    2340v0.2.5
     
    3350- Ajout aux utilise le plugin livraison
    3451- Ajout d'une colonne dans le listing des stocks "Livraison" qui affiche si le produit est immatériel ou livrable
    35 - dans le cas d'un produit livrable, et si le plugin livraison est installé, on affiche le/s modes de livraison "forcés" si il en a d'associés au produit, sinon on signal que les rêgles de livraison classique qui s'applique.
     52- dans le cas d'un produit livrable, et si le plugin livraison est installé, on affiche le/s modes de livraison "forcés" si il en a d'associés au produit, sinon on signale que les rêgles de livraison classique s'applique.
    3653
    3754
  • _plugins_/stocks/trunk/paquet.xml

    r117884 r118037  
    2727                                décrémenter le stock  -->
    2828        <pipeline nom="post_edition" inclure="stocks_pipelines.php" />
     29    <!-- Tester le stock lors d'un ajout au panier -->
     30    <pipeline nom="remplir_panier" inclure="stocks_pipelines.php" />
     31
    2932        <utilise nom="commandes" compatibilite="[1.15.3;["/>
     33        <utilise nom="panier" compatibilite="[1.4.0;["/>
    3034        <utilise nom="livraison" compatibilite="[2.6.0;["/>
    3135
  • _plugins_/stocks/trunk/stocks_pipelines.php

    r112164 r118037  
    195195        return $flux;
    196196}
     197
     198
     199/**
     200 * stocks_remplir_panier
     201 *
     202 * utilise la pipeline remplir_panier pour tester si la quantité d'objet ajouté
     203 * est dispo en stock, et met a jour les liens du panier en cours
     204 * avec le stock max disponible si besoin
     205 *
     206 */
     207function stocks_remplir_panier($flux){
     208        $id_panier = $flux['args']['id_panier'];
     209        $objet = $flux['args']['objet'];
     210        $id_objet = $flux['args']['id_objet'];
     211        // recuperer la quantite de l'objet présent dans le panier en cours
     212        $quantite_encours = sql_getfetsel(
     213                'quantite',
     214                'spip_paniers_liens',
     215                array(
     216                        'id_panier = '.intval($id_panier),
     217                        'objet = '.sql_quote($objet),
     218                        'id_objet = '.intval($id_objet)
     219                )
     220        );
     221        // recuperer le stock dispo pour ce produit
     222        include_spip('inc/stocks');
     223        $stock_max = get_quantite($objet, $id_objet);
     224        // mettre a jour le panier en cours avec le stock max disponible
     225        // si la quantité demandé est supérieure
     226        if($quantite_encours > $stock_max){
     227                sql_updateq(
     228                        'spip_paniers_liens',
     229                        array('quantite' => $stock_max),
     230                        'id_panier = ' . intval($id_panier) . ' and objet = ' . sql_quote($objet) . ' and id_objet = ' . intval($id_objet)
     231                );
     232        }
     233
     234        return $flux;
     235}
Note: See TracChangeset for help on using the changeset viewer.