source: spip-zone/_plugins_/reservation_evenement/trunk/inc/donnees_reservations_details.php @ 88264

Last change on this file since 88264 was 88264, checked in by abelass@…, 4 years ago

debuguer pour prix_objets

File size: 4.0 KB
Line 
1<?php
2if (!defined('_ECRIRE_INC_VERSION')) return; 
3
4function inc_donnees_reservations_details_dist($id_reservations_detail,$set) {
5
6        if(count($set)>0){
7                include_spip('inc/filtres');
8                $reservations_details=sql_fetsel('*','spip_reservations_details','id_reservations_detail='.$id_reservations_detail);
9
10                $id_evenement=isset($set['id_evenement'])?$set['id_evenement']:$reservations_details['id_evenement'];   
11                // Les données de l'évènenement
12
13                $evenement=sql_fetsel('*','spip_evenements','id_evenement='.$id_evenement);
14               
15                $date_debut=$evenement['date_debut'];
16                if(!$date_fin=sql_getfetsel('date_fin','spip_evenements','id_evenement_source='.$id_evenement,'','date_debut DESC'))$date_fin=$evenement['date_fin'];
17
18                // On établit les dates         
19                if($date_debut!=$date_fin){
20                        if(affdate($date_debut,'d-m-Y')==affdate($date_fin,'d-m-Y')){
21                                $date=affdate($date_debut,'d/m/Y').','.affdate($date_debut,'G:i').'-'.affdate($date_fin,'G:i');
22                        }
23                        else {
24                                $date=affdate($date_debut,'d/m/Y').'-'.affdate($date_fin,'d/m/Y').', '.affdate($date_debut,'nom_jour').' '.affdate($date_debut,'G:i').'-'.affdate($date_fin,'G:i'); 
25                               
26                        }
27                }
28                else{
29                        if(affdate($date_debut,'G:i')=='0:00')$date=affdate($date_debut,'d/m/Y');
30                        else $date=affdate($date_debut,'d/m/Y G:i');
31                }
32                // Les descriptif
33                $set['descriptif']=supprimer_numero($evenement['titre']).'  ('.$date.')';
34                if(intval($evenement['places']))$set['places']=$evenement['places'];
35                if(intval($quantite[$id_evenement]))$set['quantite']=$quantite[$id_evenement];
36                else $set['quantite']=1; 
37               
38                // Si le prix n'est pas fournit, on essaye de le trouver
39
40                if(!isset($set['prix']) AND !isset($set['prix_ht'])){
41                       
42                        /*Existence d'un prix via le plugin Prix  Objets http://plugins.spip.net/prix_objets.html */
43                        if($prix_objets=test_plugin_actif('prix_objets')){
44                                $fonction_prix = charger_fonction('prix', 'inc/');
45                                $fonction_prix_ht = charger_fonction('ht', 'inc/prix');
46                                 /*si le plugin déclinaison produit (http://plugins.spip.net/declinaisons.html) est active il peut y avoir plusieurs prix par évenement*/
47                                if(test_plugin_actif('declinaisons')){ 
48                                        $id_prix=isset($set['id_prix_objet'])?$set['id_prix_objet']:$reservations_details['id_prix_objet'];     
49                                        $p=sql_fetsel('prix_ht,id_prix_objet,id_declinaison','spip_prix_objets','id_prix_objet='.$id_prix); 
50                                       
51                                        if($p['id_declinaison']>0)$set['descriptif'].=' - '.supprimer_numero(sql_getfetsel('titre','spip_declinaisons','id_declinaison='.$p['id_declinaison']));
52                                }
53                                //Sinon on cherche d'abord le prix attaché à l'évenement, puis à l'article de l'évenement
54                                elseif (!$p=sql_fetsel('prix_ht,id_prix_objet','spip_prix_objets','objet="evenement" AND id_objet='.$id_evenement)) $p=sql_fetsel('prix_ht,id_prix_objet','spip_prix_objets','objet="article" AND id_objet='.$evenement['id_article']); 
55                                if(isset($p)){
56                                        $prix_ht = $fonction_prix_ht('prix_objet', $p['id_prix_objet']);
57                                        $prix = $fonction_prix('prix_objet',$p['id_prix_objet']);
58                                        if($prix_ht)$taxe = round(($prix - $prix_ht) / $prix_ht, 3);
59                                        $set['prix_ht']=$prix_ht; 
60                                        $set['taxe']=$taxe; 
61                                        $set['id_prix_objet']=$p['id_prix_objet'];     
62                                }                       
63                        }
64                        /*Sinon si il y un prix attaché à l'évenement*/
65                        elseif(intval($evenement['prix']) OR intval($evenement['prix_ht']))
66                                $set=etablir_prix($id_evenement,'evenement',$evenement,$set);   
67                        elseif($article=sql_fetsel('*','spip_articles','id_article='.$evenement['id_article']))
68                                $set=etablir_prix($evenement['id_article'],'article',$article,$set);
69                }
70        }
71        return $set;
72}
73
74function etablir_prix($id,$objet,$datas,$set){
75        spip_log($datas,'teste');
76        if($fonction_prix = charger_fonction('prix', 'inc/',true)){
77                $prix = $fonction_prix($objet,$id);
78        }
79        else $prix=$datas['prix']; 
80       
81        if($fonction_prix_ht = charger_fonction('ht', 'inc/prix',true)){
82                $prix_ht = $fonction_prix_ht($objet, $id); 
83        }
84        elseif(intval($datas['prix_ht'])) $prix_ht =$datas['prix_ht'];
85       
86        if($prix_ht){
87                $taxe = round(($prix - $prix_ht) / $prix_ht, 3);
88                $set['prix_ht']=$prix_ht; 
89                $set['taxe']=$taxe;     
90        }
91        else $set['prix']=$prix; 
92       
93        return  $set;
94}
Note: See TracBrowser for help on using the repository browser.