Changeset 96445 in spip-zone
- Timestamp:
- Apr 4, 2016, 10:51:50 AM (5 years ago)
- Location:
- _plugins_/commandes_paniers/trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
_plugins_/commandes_paniers/trunk/action/commandes_paniers.php
r90631 r96445 56 56 return; 57 57 58 $id_auteur = sql_getfetsel("id_auteur","spip_paniers","id_panier=".intval($id_panier)); 59 60 58 61 include_spip('inc/commandes'); 62 include_spip('inc/config'); 63 // si une commande recente est encours (statut et dans la session de l'utilisateur), on la reutilise 64 // plutot que de recreer N commandes pour un meme panier 65 // (cas de l'utilisateur qui revient en arriere puis retourne a la commande) 66 include_spip('inc/session'); 67 $id_commande = sql_getfetsel("id_commande","spip_commandes",$w="statut=".sql_quote('encours')." AND date>".sql_quote(date('Y-m-d H:i:s',strtotime('-'.lire_config('paniers/limite_ephemere', 24).' hour')))." AND source=".sql_quote("panier#$id_panier")." AND id_commande=".session_get('id_commande')); 59 68 60 // création d'une commande "en cours" 61 // et remplir les details de la commande d'après le panier en session 62 if ($id_commande = creer_commande_encours()){ 63 panier2commande_remplir_commande($id_commande,$id_panier); 69 // sinon on cree une commande "en cours" 70 if (!$id_commande){ 71 $id_commande = creer_commande_encours(); 64 72 } 65 73 74 // et la remplir les details de la commande d'après le panier en session 75 if ($id_commande){ 76 panier2commande_remplir_commande($id_commande,$id_panier,false); 77 } 66 78 67 79 // Supprimer le panier ? … … 84 96 * @param int $id_commande 85 97 * @param int $id_panier 98 * @param bool $append 99 * true pour ajouter brutalement le panier a la commande, false pour verifier que commande==panier en ajoutant/supprimant uniquement les details necessaires 86 100 */ 87 function panier2commande_remplir_commande($id_commande,$id_panier ){101 function panier2commande_remplir_commande($id_commande,$id_panier,$append=true){ 88 102 89 103 include_spip('action/editer_objet'); … … 103 117 104 118 // Pour chaque élément du panier, on va remplir la commande 119 // (ou verifier que la ligne est deja dans la commande) 105 120 if ($panier and is_array($panier)){ 121 $details = array(); 106 122 include_spip('spip_bonux_fonctions'); 107 123 $fonction_prix = charger_fonction('prix', 'inc/'); … … 114 130 else 115 131 $taxe = 0; 116 // création du détail de la commande 117 if ($id_commandes_detail = objet_inserer('commandes_detail')) { 118 $set = array( 119 'id_commande' => $id_commande, 120 'objet' => $emplette['objet'], 121 'id_objet' => $emplette['id_objet'], 122 'descriptif' => generer_info_entite($emplette['id_objet'], $emplette['objet'], 'titre', '*'), 123 'quantite' => $emplette['quantite'], 124 'prix_unitaire_ht' => $prix_ht, 125 'taxe' => $taxe, 126 'statut' => 'attente' 127 ); 132 133 $set = array( 134 'id_commande' => $id_commande, 135 'objet' => $emplette['objet'], 136 'id_objet' => $emplette['id_objet'], 137 'descriptif' => generer_info_entite($emplette['id_objet'], $emplette['objet'], 'titre', '*'), 138 'quantite' => $emplette['quantite'], 139 'prix_unitaire_ht' => $prix_ht, 140 'taxe' => $taxe, 141 'statut' => 'attente' 142 ); 143 $where = array(); 144 foreach($set as $k=>$w){ 145 if (in_array($k,array('id_commande','objet','id_objet'))){ 146 $where[] = "$k=".sql_quote($w); 147 } 148 } 149 // est-ce que cette ligne est deja la ? 150 if ($append OR !$id_commandes_detail = sql_getfetsel("id_commandes_detail","spip_commandes_details",$where)){ 151 // sinon création et renseignement du détail de la commande 152 $id_commandes_detail = objet_inserer('commandes_detail'); 153 } 154 if ($id_commandes_detail) { 128 155 objet_modifier('commandes_detail', $id_commandes_detail, $set); 156 $details[] = $id_commandes_detail; 129 157 } 158 } 159 if (!$append){ 160 // supprimer les details qui n'ont rien a voir avec ce panier 161 sql_delete("spip_commandes_details","id_commande=".intval($id_commande)." AND ".sql_in('id_commandes_detail',$details,"NOT")); 130 162 } 131 163 } -
_plugins_/commandes_paniers/trunk/panier2commande_options.php
r96346 r96445 5 5 * @plugin Commandes de Paniers 6 6 * @copyright 2014 7 * @author Les D éveloppements Durables7 * @author Les D�veloppements Durables 8 8 * @licence GNU/GPL 9 9 * @package SPIP\Panier2commande\options 10 10 */ 11 11 12 // S écurité12 // Securite 13 13 if (!defined("_ECRIRE_INC_VERSION")) return; 14 14 … … 24 24 $commandes_paniers($arg); 25 25 include_spip('inc/cookie'); 26 spip_setcookie("spip_pwl", '',0);26 spip_setcookie("spip_pwl",$_COOKIE['spip_pwl'] = '',0); 27 27 } 28 28 … … 32 32 */ 33 33 function action_commandes_paniers_if_loged_dist($arg=null){ 34 // Si $arg n'est pas donné directement, le récupérer via _POST ou _GET 34 35 // Si $arg n'est pas donne directement, le recuperer via _POST ou _GET 35 36 if (is_null($arg)) { 36 37 $securiser_action = charger_fonction('securiser_action', 'inc'); -
_plugins_/commandes_paniers/trunk/paquet.xml
r96346 r96445 2 2 prefix="panier2commande" 3 3 categorie="divers" 4 version="2.0. 1"4 version="2.0.2" 5 5 etat="test" 6 6 compatibilite="[3.0.0;3.1.*]"
Note: See TracChangeset
for help on using the changeset viewer.