Changeset 51511 in spip-zone for _plugins_/abonnement


Ignore:
Timestamp:
Sep 15, 2011, 7:47:57 PM (9 years ago)
Author:
toutati@…
Message:

la table spip_contacts_abonnements est mise à jour avec le statut de la commande au retour de Paypal et suivant les détails de la commande : article, rubrique ou abonnement

todo: nettoyage des logs

Location:
_plugins_/abonnement/zabonnement/trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/abonnement/zabonnement/trunk/abonnement_autorisations.php

    r49813 r51511  
    1111
    1212function autoriser_abonnement_configurer_dist($faire, $type, $id, $qui, $opt) {
    13         return autoriser('configurer', '', $id, $qui, $opt);
     13        return in_array($qui['statut'], array('0minirezo'));
    1414}
    1515
  • _plugins_/abonnement/zabonnement/trunk/abonnement_fonctions.php

    r50241 r51511  
    1313/**
    1414
    15 filtre unique pour determiner l'accs (en cascade) d'un auteur ˆ un objet, ce filtre teste si l'auteur
    16 - est liŽ ˆ la zone restreinte ˆ laquelle appartient la rubrique
     15filtre unique pour determiner l'acces (en cascade) d'un auteur e un objet, ce filtre teste si l'auteur
     16- est lie e la zone restreinte e laquelle appartient la rubrique
    1717- a un abonnement direct si article
    1818- a un abonnement direct si rubrique
    19 - a un abonnement ˆ la rubrique parente si article
     19- a un abonnement e la rubrique parente si article
    2020- a un abonnement si la date de validite correspond a la date_utile de la rubrique si exact est demande
    2121
     
    4848        $rubrique = sql_fetsel('date_utile,id_parent','spip_rubriques',"id_rubrique=".intval($id_rubrique));
    4949
    50         //si l'auteur a accs a la rubrique via une zone
     50        //si l'auteur a acces a la rubrique via une zone
    5151        $zones=accesrestreint_zones_rubrique($id_rubrique);
    5252        //ou si id_parent est dans la zone -> deprotege la rubrique enfant
     
    6060       
    6161        foreach($objets as $objet => $id_objet){
    62         //si l'auteur a accs a l'article - ou sa rubrique - ou a la rubrique elle meme
     62        //si l'auteur a acc√©s a l'article - ou sa rubrique - ou a la rubrique elle meme
    6363                $where = array();
    6464                $where[] = "id_objet=".intval($id_objet);
  • _plugins_/abonnement/zabonnement/trunk/abonnement_pipelines.php

    r50354 r51511  
    5656}
    5757
    58 
    5958// espace public
    60 // si sql commande inserer l'abonnement aux objets avec statut_commande repris
     59// si sql spip_commandes_details => gerer l'abonnement aux objets avec statut_commande repris
    6160function abonnement_post_insertion($flux){
    62                
     61        //pour les details (a la modif de la commande)
    6362        if (
    6463                $flux['args']['table'] == 'spip_commandes'
    6564                and ($id_commande = intval($flux['args']['id_objet'])) > 0
    66                 and ($id_auteur = intval($flux['args']['id_auteur'])) > 0
     65                and ($id_auteur = intval($flux['data']['id_auteur'])) > 0
    6766        ){
    6867                       
     
    7069                $statut=$flux['data']['statut'];
    7170               
    72                 if (_DEBUG_ABONNEMENT) spip_log("a_p_i id_commande=$id_commande $statut_commande pour auteur $id_auteur",'abonnement');
     71                if (_DEBUG_ABONNEMENT) spip_log("a_p_i id_commande=$id_commande statut=$statut pour auteur=$id_auteur",'abonnement');
    7372               
    7473                // si dans les details de la commande il y a abonnement, article ou rubrique en objet
     
    104103
    105104        }
    106        
     105        //pour les details (au passage de panier2commande)
     106        if (
     107                $flux['args']['table'] == 'spip_commandes_details'
     108                and ($id_commande_detail = intval($flux['args']['id_objet'])) > 0
     109                and ($id_commande = intval($flux['data']['id_commande'])) > 0
     110        ){
     111                       
     112                //on recupere le statut de la commande
     113                $commande=sql_fetsel(
     114                        'statut,id_auteur',
     115                        'spip_commandes',
     116                        'id_commande = '.$id_commande
     117                );
     118               
     119                // si dans le detail de la commande il y a abonnement, article ou rubrique en objet
     120                $objet=$flux['data']['objet'];
     121                $objets=array('article','rubrique','abonnement');
     122               
     123                if(in_array($objet, $objets)){
     124                        $id_objet=$flux['data']['id_objet'];
     125                        $prix=$flux['data']['prix_unitaire_ht'];
     126                       
     127                if (_DEBUG_ABONNEMENT) spip_log("a_p_i id_auteur=".$commande['id_auteur']." $statut pour objet = $objet id_commande_detail= $id_commande_detail",'abonnement');
     128
     129                                        $arg=array(
     130                                                'id_auteur'=>$commande['id_auteur'],
     131                                                'objet'=>$objet,
     132                                                'table'=>"spip_".$objet."s",
     133                                                'ids' => array($id_objet), //tjs envoyer un array
     134                                                'prix'=>$prix,
     135                                                'duree'=>3,
     136                                                'periode'=>'jour',
     137                                                'id_commandes_detail'=>$id_commande_detail,
     138                                                'statut'=>$commande['statut'],
     139                                                );
     140
     141                                        include_spip('action/editer_contactabonnement');
     142                                        editer_contactabonnement($arg);
     143                }
     144        }
     145
    107146return $flux;
    108147       
     
    223262        }
    224263
     264               
     265//reprendre la meme fonction que post_insertion pour traiter les details de la commande
     266                if (
     267                        $flux['args']['table'] == 'spip_commandes'
     268                ){
     269                spip_log("abonnement_post_edition args ".join(",\n", $flux['args'])."data= ".join(",\n", $flux['data']),'commande');
     270                $flux = abonnement_post_insertion($flux);
     271                }
     272
    225273        return $flux;
    226274}
  • _plugins_/abonnement/zabonnement/trunk/action/editer_contactabonnement.php

    r50215 r51511  
    55function editer_contactabonnement($arg=null)
    66{
    7 
    87        if (is_null($arg)){
    98                $securiser_action = charger_fonction('securiser_action', 'inc');
     
    2322        $stade_relance=$arg['stade_relance'];
    2423       
    25         if (_DEBUG_ABONNEMENT) spip_log("editer_contactabonnement1 $objet et ".$ids[0],'abonnement');
     24        if (_DEBUG_ABONNEMENT) spip_log("editer_contactabonnement $objet ".$ids[0]." pour $id_auteur",'abonnement');
    2625
    2726        if(is_array($ids) && $id_auteur>0)
     
    3231                        //objet = rubrique, article ou abonnement
    3332                        $verif = sql_fetsel('*', $table, 'id_'."$objet = " . $id_objet);
     33                        //le statut change-t-il?
     34                        $contact_abo = sql_fetsel('statut_abonnement', 'spip_contacts_abonnements', 'id_commandes_detail='.$id_commandes_detail);
    3435                        if (!$verif)
    3536                        {
     
    4445                        $duree=($arg['duree'])?$arg['duree']:'3';
    4546                        $periode=($arg['periode'])?$arg['periode']:'jours';
     47                        include_spip('abonnement_fonctions');
    4648                        $validite = modifier_date($date,$duree);
    4749                       
     
    8284                                        'statut_abonnement'=>$statut
    8385                                        ));
    84                         }else{
     86                        }else{                                 
    8587                                if (_DEBUG_ABONNEMENT) spip_log("editer_contactabonnement pour auteur=$id_auteur $objet $id_objet existe deja",'abonnement');
     88
     89                                //si le statut est different on le modifie
     90                                //attention dans la page auteur modification chaque fois todo a revoir
     91                                if($contact_abo['statut_abonnement']!=$statut){
     92                                sql_updateq("spip_contacts_abonnements",array('statut_abonnement'=>$statut),
     93                                        'id_auteur='.$id_auteur.' and id_objet='.sql_quote($id_objet)." and objet='$objet'");
     94                                if (_DEBUG_ABONNEMENT) spip_log("editer_contactabonnement modification du statut car ".$contact_abo['statut_abonnement']."!=$statut",'abonnement');
     95                                }
    8696                                //modif des dates d'echeances
    8797                                $echeances = _request('validites');
  • _plugins_/abonnement/zabonnement/trunk/action/valider_paiement_fictif.php

    r49928 r51511  
    7373
    7474        // maintenant on decide que la commande est paye (statut peut etre > attente,partiel,erreur)
    75         //cf plugin commandes_paypal
    76         //ça bloque là
     75        $statut_nouveau = 'paye';
     76        //cf plugin commandes_paypal _pipelines
     77                        // Si c'est bon, on appelle une notification
     78                if($reponse_banque=='ok'){
     79                        $id_auteur = $commande['id_auteur'];
     80                        $fonction_notif = charger_fonction('notifications', 'inc/');
     81                        $fonction_notif('commande_instituer', $id_commande, array('ancien_statut' => $statut_commande, 'nouveau_statut' => $statut_nouveau));
     82                }
    7783       
    78                 include_spip('action/instituer_commande');
    79                 $statut_commande='paye';
    80                 action_instituer_commande($id_commande,$id_auteur,$statut_commande);
     84                //include_spip('action/instituer_commande');
     85                //$statut_commande='paye';
     86                //action_instituer_commande($id_commande,$id_auteur,$statut_commande);
    8187       
    8288        //ici quelque soit le produit, l'abonnnement, l'article etc
  • _plugins_/abonnement/zabonnement/trunk/base/abonnement_upgrade.php

    r49946 r51511  
    66* Anne-lise Martenot elastick.net / BoOz booz@rezo.net
    77* Ce programme est un logiciel libre distribue sous licence GNU/GPL.
    8 * Pour plus de details voir le fichier COPYING.txt.
     8* Pour plus de details voir le fichier COPYING.txt
    99
    1010**/
  • _plugins_/abonnement/zabonnement/trunk/prive/liste/abonnements_stats.html

    r50215 r51511  
    3737                        #SET{id_commande,''}
    3838                                <BOUCLE_quellecommand(COMMANDES_DETAILS){id_commandes_detail}>
    39                                 <a href="#URL_ECRIRE{commandes}">#ID_COMMANDE</a>#SET{id_commande,#ID_COMMANDE}
     39                                [<a href="#URL_ECRIRE{commande_voir,id_commande=#ID_COMMANDE}">(#ID_COMMANDE)</a>]#SET{id_commande,#ID_COMMANDE}
    4040                                </BOUCLE_quellecommand><:abo:aucune_commande:><//B_quellecommand>
    4141                        </td>
Note: See TracChangeset for help on using the changeset viewer.