source: spip-zone/_plugins_/montants/montants_pipelines.php

Last change on this file was 52706, checked in by toutati@…, 7 years ago

Quelques améliorations et simplifications:

Les prix par defaut peuvent etre maintenant geres par les champs extras avec saisies/extra-vues et saisies/extra-saisies

on choisira prixdefaut lors de la demande de prise en charge

on peut également configurer le(s) secteur(s) pour afficher le prix

File size: 2.9 KB
Line 
1<?php
2/**
3 * Insertion dans le pipeline prix_ht
4 * si l'objet n'a pas de prix propre
5 * on cherche son prix dans la table montants
6 *
7 * @return
8 * @param object $flux
9 */
10
11               
12function montants_prix_ht($flux){
13       
14        $prixdefaut=$flux['data'];
15        $type_objet=$flux['args']['type_objet'];
16        $id_objet=$flux['args']['id_objet'];
17        $ids_objet=array();
18       
19        //si l'objet n'a pas de prix propre
20        if ($prixdefaut==0 && $id_objet>0){
21                                //Trouver au moins (sinon false) un montant relatif a l'objet
22                                $ids_objet=sql_allfetsel('id_montant,ids_objet,prix_ht', 'spip_montants',"objet='$type_objet'");
23                                if(count($ids_objet)<1) {
24                                        spip_log("return pour $type_objet",'montants'); 
25                                        return;
26                                }
27               
28                        switch ($type_objet){
29                                case 'article': 
30                                        $id_rubrique=sql_getfetsel("id_rubrique","spip_articles","id_article=".$id_objet);
31                                        //array des rubriques parentes de l'article                                     
32                                        $parents[] = $id_rubrique;
33                                        while ($id_rubrique = sql_getfetsel("id_parent","spip_rubriques","id_rubrique=" . $id_rubrique)) { 
34                                        $parents[] = $id_rubrique;
35                                        }
36                                        break;
37                                case 'rubrique': 
38                                        $id_rubrique=sql_getfetsel("id_rubrique","spip_rubriques","id_rubrique=".$id_objet);
39                                        //array des rubriques parentes de la rubrique                                   
40                                        $parents[] = $id_rubrique;
41                                        while ($id_rubrique = sql_getfetsel("id_parent","spip_rubriques","id_rubrique=" . $id_rubrique)) { 
42                                        $parents[] = $id_rubrique;
43                                        }
44                                        break;
45                                case 'mot':
46                                        //groupe du mot attention il est obligatoire
47                                        $parents[] =sql_getfetsel("id_groupe","spip_mots","id_mot=".$id_objet);
48                                        break;
49                                default: 
50                                        $parents[] ='';
51                                        break;
52                        }
53               
54       
55       
56                if(!$prix_ht){
57                // l'objet doit appartenir a un parent spécifique
58                $prix_ht=sql_getfetsel('prix_ht', 'spip_montants',"objet='".$type_objet."' AND le_parent IN (".join(',',$parents).")");
59                //spip_log("log 0 $type_objet $id_objet prix $prix_ht parents=".join(',',$parents),'montants');
60                }
61       
62       
63        //sinon le prix est-il pour id_objet dans la liste specifique
64        foreach($ids_objet as $ids){
65                                        $array_ids = explode(",", $ids['ids_objet']);
66                                        if(count($array_ids)<1) $id_montant=$ids['id_montant'];
67                                                if(in_array($id_objet,$array_ids)){
68                                                //spip_log("log 1 $type_objet $id_objet coute ".$ids['prix_ht'],'montants');
69                                                $prix_ht=$ids['prix_ht'];
70                                                }
71                                               
72                                }
73       
74        if(!$prix_ht){
75        // sinon son prix est declare par defaut dans spip_montants
76        $prix_ht = sql_getfetsel('prix_ht', 'spip_montants','objet='."'$type_objet' AND 'id_montant' = '$id_montant'"); 
77        //spip_log("log 2 pour montant($id_montant) = $type_objet ($id_objet) est $prixdefaut",'montants');
78        }
79       
80        if ($prix_ht) $flux['data']=$prix_ht;
81        //si aucun prix retourner 0
82        else $flux['data']=0;
83       
84        }
85       
86        return $flux;
87}
88
89
90/**
91 *
92 * Insertion dans le pipeline prix
93 * si l'objet n'a pas de prix,
94 * on cherche son prix et si il existe on lui applique
95 *
96 * @return
97 * @param object $flux
98 */
99function montants_prix($flux){
100
101        /**/
102       
103        return $flux;
104}
105
106?>
Note: See TracBrowser for help on using the repository browser.