Changeset 58798 in spip-zone


Ignore:
Timestamp:
Feb 23, 2012, 3:00:04 PM (8 years ago)
Author:
gildas.cotomale@…
Message:

diverses correction et uniformisation des sources et de l'interface

Location:
_plugins_/Association/Associaspip
Files:
1 added
49 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/Association/Associaspip/action/ajouter_activites.php

    r46893 r58798  
    1111
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined('_ECRIRE_INC_VERSION'))
     14        return;
    1415
    15 function action_ajouter_activites() {
    16                
     16function action_ajouter_activites()
     17{
    1718        $securiser_action = charger_fonction('securiser_action', 'inc');
    1819        $securiser_action();
    19         activites_insert($_REQUEST['date'], $_REQUEST['id_evenement'], $_REQUEST['non_membres'], $_REQUEST['inscrits'], $_REQUEST['email'], $_REQUEST['telephone'], $_REQUEST['adresse'], $_REQUEST['montant'], $_REQUEST['commentaire']);
     20        $n = sql_insertq('spip_asso_activites', array(
     21                'date' => _request('date'),
     22                'id_evenement' => intval(_request('id_evenement')),
     23                'nom' => _request('nom'),
     24                'id_adherent' => intval(_request('id_menbre')),
     25                'membres' => _request('membres'),
     26                'non_membres' => _request('non_membres'),
     27                'inscrits' => intval(_request('inscrits')),
     28                'montant' => association_recupere_montant(_request('montant')),
     29                'commentaire' => _request('commentaire'),
     30        ));
     31        spip_log("insertion activite numero: $n",'associaspip');
    2032}
    2133
    22 function activites_insert($date, $id_evenement, $non_membres, $inscrits, $email, $telephone, $adresse, $montant, $commentaire)
    23 {
    24         $n = sql_insertq('spip_asso_activites', array(
    25                 'date' => $date,
    26                 'id_evenement' => $id_evenement,
    27                 'nom' => $nom,
    28                 'id_adherent' => $id_membre,
    29                 'membres' => $membres,
    30                 'non_membres' => $non_membres,
    31                 'inscrits' => $inscrits,
    32                 'email' => $email,
    33                 'telephone' => $telephone,
    34                 'adresse' => $adresse,
    35                 'montant' => $montant,
    36                 'commentaire' => $commentaire));
    37         spip_log("insertion activite numero: $n");
    38 }
    3934?>
  • _plugins_/Association/Associaspip/action/ajouter_participations.php

    r46893 r58798  
    1414
    1515function action_ajouter_participations() {
    16                
     16
    1717        $securiser_action = charger_fonction('securiser_action', 'inc');
    1818        $id_evenement = $securiser_action();
    1919
    2020        $nom = _request('nom');
    21         $id_membre = _request('id_membre');
     21        $id_membre = intval(_request('id_membre'));
    2222        $membres = _request('membres');
    2323        $non_membres = _request('non_membres');
    24         $inscrits = _request('inscrits');
    25         $montant = _request('montant');
     24        $inscrits = intval(_request('inscrits'));
     25        $montant = association_recupere_montant(_request('montant'));
    2626        $date_paiement = _request('date_paiement');
    2727        $journal = _request('journal');
    2828        $statut = _request('statut');
    2929        $commentaire = _request('commentaire');
    30         $action = _request('action');
    31         $id_activite = _request('id_activite');
    32 
    33         activites_paiement_insert($date_paiement, $journal, $montant, $id_activite, $nom, $commentaire, $statut, $inscrits, $non_membres, $membres, $id_membre);
    34 }
    35 
    36 function activites_paiement_insert($date_paiement, $journal, $montant, $id_activite, $nom, $commentaire, $statut, $inscrits, $non_membres, $membres, $id_membre)
    37 {
     30#       $action = _request('action');
     31        $id_activite = intval(_request('id_activite'));
    3832        sql_updateq('spip_asso_activites', array(
    39                 "nom" => $nom,
    40                 "id_adherent" => $id_membre,
    41                 "membres" => $membres,
    42                 "non_membres" => $non_membres,
    43                 "inscrits" => $inscrits,
    44                 "montant" => $montant,
    45                 "date_paiement" => $date_paiement,
    46                 "statut" => $statut,
    47                 "commentaire" => $commentaire),
    48                    "id_activite=$id_activite");
    49 
    50         $justification=_T('asso:activite_justification_compte_inscription',array('id_activite' => $id_activite, 'nom' => $nom));
    51 
     33                'nom' => $nom,
     34                'id_adherent' => $id_membre,
     35                'membres' => $membres,
     36                'non_membres' => $non_membres,
     37                'inscrits' => $inscrits,
     38                'montant' => $montant,
     39                'date_paiement' => $date_paiement,
     40                'statut' => $statut,
     41                'commentaire' => $commentaire,
     42        ), "id_activite=$id_activite");
    5243        $id = sql_insertq('spip_asso_comptes', array(
    5344                'date' => $date_paiement,
    5445                'journal' => $journal,
    5546                'recette' => $montant,
    56                 'justification' => $justification,
     47                'justification' => _T('asso:activite_justification_compte_inscription',array('id_activite' => $id_activite, 'nom' => $nom)),
    5748                'imputation' => $GLOBALS['association_metas']['pc_activites'],
    58                 'id_journal' => $id_activite));
     49                'id_journal' => $id_activite,
     50        ));
     51        spip_log("participation_insert: $id",'associaspip');
    5952
    60         spip_log("participation_insert: $id");
    6153        return $id;
    6254}
  • _plugins_/Association/Associaspip/action/editer_asso_comptes.php

    r57780 r58798  
    1414        return;
    1515
    16 function action_editer_asso_comptes() {
    17 
     16function action_editer_asso_comptes()
     17{
    1818        $securiser_action = charger_fonction('securiser_action', 'inc');
    1919        $id_compte = $securiser_action();
    2020        include_spip('inc/association_comptabilite');
    21         $date= _request('date');
    22         $imputation= _request('imputation');
     21        $date = _request('date');
     22        $imputation = _request('imputation');
    2323        $recette = association_recupere_montant(_request('recette'));
    2424        $depense = association_recupere_montant(_request('depense'));
    25         $justification= _request('justification');
    26         $journal= _request('journal');
     25        $justification = _request('justification');
     26        $journal = _request('journal');
    2727        $type_operation = _request('type_operation');
    2828        /* dans le cas ou c'est un virement on va generer 2 ecritures
     
    3939         */
    4040        if ($type_operation==$GLOBALS['association_metas']['classe_banques']) {
    41                 if(!$justification) $justification = _T('asso:virement_interne');
     41                if(!$justification)
     42                        $justification = _T('asso:virement_interne');
    4243                /* si le compte 58xx n'existe pas on le cree dans le plan comptable */
    4344                $compte_virement = association_creer_compte_virement_interne();
     
    4748                /* TODO : decommenter les lignes si edition/modification d'un virement possible ! */
    4849                //if (!$id_compte) { /* pas d'id_compte, c'est un ajout */
    49                         // 1ere ecriture
     50                        // 1ere ecriture :
     51                        //
    5052                        $old_imputation = $imputation;
    51                         $imputation = $compte_virement;
    52                         $id_compte = association_ajouter_operation_comptable($date, $recette, $depense, $justification, $imputation, $journal, 0);
     53#                       $imputation = $compte_virement;
     54                        $id_compte = association_ajouter_operation_comptable($date, $recette, $depense, $justification, $compte_virement, $journal, 0);
    5355                        // 2eme ecriture
    5456                        $recette = $depense;
    5557                        $depense = 0;
    56                         $journal = $old_imputation;
    57                         $id_compte = association_ajouter_operation_comptable($date, $recette, $depense, $justification, $imputation, $journal, 0);
    58                 //}
    59                 //else {
     58#                       $journal = $old_imputation;
     59                        $id_compte = association_ajouter_operation_comptable($date, $recette, $depense, $justification, $compte_virement, $old_imputation, 0);
     60                //} else {
    6061                        /* c'est une modif, ........ */
    6162                //      association_modifier_compte_virement_interne($id_compte);
    6263                //}
    63         }
    64         else {
     64        } else {
    6565                if (!$id_compte) { /* pas d'id_compte, c'est un ajout */
    6666                        $id_compte = association_ajouter_operation_comptable($date, $recette, $depense, $justification, $imputation, $journal, 0);
    67                 }
    68                 else { /* c'est une modif, la parametre id_journal de la fonction modifier operation comptable est mis a '' afin de ne pas le modifier dans la base */
     67                } else { /* c'est une modif, la parametre id_journal de la fonction modifier operation comptable est mis a '' afin de ne pas le modifier dans la base */
    6968                        association_modifier_operation_comptable($date, $recette, $depense, $justification, $imputation, $journal, '', $id_compte);
    7069                }
  • _plugins_/Association/Associaspip/action/editer_asso_dons.php

    r57780 r58798  
    1818        $id_don = $securiser_action();
    1919        $erreur = '';
    20         include_spip('base/association');
    2120        include_spip('inc/association_comptabilite');
    2221        $id_compte = intval(_request('id_compte'));
     
    3534        $commentaire = _request('commentaire');
    3635        if ($id_don) { /* c'est une modification */
    37                 // on modifie l'operation comptable associe au don
    38                 association_modifier_operation_comptable($date_don, $argent, 0, "[don$id_don->don$id_don] - ". ($id_adherent?"[$bienfaiteur->membre$id_adherent]":$bienfaiteur), $GLOBALS['association_metas']['pc_dons'], $journal, '', $id_compte);
     36                // on modifie les operations comptables associees au don
     37                association_modifier_operation_comptable($date_don, $argent, 0, "[don$id_don->don$id_don] - ". ($id_adherent?"[$bienfaiteur->membre$id_adherent]":$bienfaiteur), $GLOBALS['association_metas']['pc_dons'], $journal, $id_don, $id_compte);
     38                $association_imputation = charger_fonction('association_imputation', 'inc');
     39                $critere = $association_imputation('pc_colis');
     40                $critere .= ($critere?' AND ':'') ."id_journal=$id_don";
     41                association_modifier_operation_comptable($date_don, $valeur, 0, "[colis$id_don->don$id_don] - ". ($id_adherent?"[$bienfaiteur->membre$id_adherent]":$bienfaiteur), $GLOBALS['association_metas']['pc_colis'], $journal, $id_don, sql_getfetsel('id_compte', 'spip_asso_comptes', $critere) );
    3942                // on modifie les informations relatives au don
    4043                sql_updateq('spip_asso_dons', array(
     
    4649                        'valeur' => $valeur,
    4750                        'contrepartie' => $contrepartie,
    48                         'commentaire' => $commentaire
     51                        'commentaire' => $commentaire,
    4952                ), "id_don=$id_don");
    5053        } else { /* c'est un ajout */
     54                // on ajoute les informations relatives au don
    5155                $id_don = sql_insertq('spip_asso_dons', array(
    5256                        'date_don' => $date_don,
     
    5761                        'valeur' => $valeur,
    5862                        'contrepartie' => $contrepartie,
    59                         'commentaire' => $commentaire
     63                        'commentaire' => $commentaire,
    6064                ));
    61                 if (!$id_don)
     65                if (!$id_don) { // la suite serait aleatoire sans cette cle...
    6266                        $erreur = _T('Erreur_BdD_ou_SQL');
    63                 association_ajouter_operation_comptable($date_don, $argent, 0, "[don$id_don->don$id_don] - ". ($id_adherent?"[$bienfaiteur->membre$id_adherent]":$bienfaiteur), $GLOBALS['association_metas']['pc_dons'], $journal, $id_don);
     67                } else { // on ajoute les operations comptables associees au don
     68                        association_ajouter_operation_comptable($date_don, $argent, 0, "[don$id_don->don$id_don] - ". ($id_adherent?"[$bienfaiteur->membre$id_adherent]":$bienfaiteur), $GLOBALS['association_metas']['pc_dons'], $journal, $id_don);
     69                        association_ajouter_operation_comptable($date_don, $valeur, 0, "[colis$id_don->don$id_don] - ". ($id_adherent?"[$bienfaiteur->membre$id_adherent]":$bienfaiteur), $GLOBALS['association_metas']['pc_colis'], $journal, $id_don);
     70                }
    6471        }
    6572        return array($id_don, $erreur);
  • _plugins_/Association/Associaspip/action/editer_asso_ventes.php

    r57780 r58798  
    1010\***************************************************************************/
    1111
    12 if (!defined("_ECRIRE_INC_VERSION")) return;
     12if (!defined('_ECRIRE_INC_VERSION'))
     13        return;
     14
    1315include_spip('inc/presentation');
    1416include_spip ('inc/navigation_modules');
     
    1618
    1719function action_editer_asso_ventes(){
    18 
    1920        $securiser_action = charger_fonction('securiser_action', 'inc');
    20         $id_vente=$securiser_action();
    21 
    22         include_spip('base/association');
    23 
    24         $id_compte=intval(_request('id_compte'));
    25 
     21        $id_vente = $securiser_action();
     22        $erreur = '';
     23        include_spip('inc/association_comptabilite');
     24        $id_compte = intval(_request('id_compte'));
    2625        $date_vente = _request('date_vente');
    2726        $article = _request('article');
     
    3029        $id_acheteur = intval(_request('id_acheteur'));
    3130        $quantite = association_recupere_montant(_request('quantite'));
    32 
    3331        $date_envoi = _request('date_envoi');
    3432        $frais_envoi = association_recupere_montant(_request('frais_envoi'));
    35         $prix_vente =  association_recupere_montant(_request('prix_vente'));
     33        $prix_unite =  association_recupere_montant(_request('prix_vente'));
     34        $journal = _request('journal');
     35        $commentaire = _request('commentaire');
     36        if (test_plugin_actif('CATALOGUE') && intval($code)==$code) { // le plugin "Catalogue est actif" : certains champs peuvent ne pas etre saisis...
     37                if ($code>0) { // c'est une variante
     38                        $variante = sql_fetsel('*', 'spip_cat_variantes', 'id_cat_variante='.$code);
     39                        if (!$article)
     40                                $article = $variante['id_article'];
     41                        if ($prix_unite==0)
     42                                $prix_unite = $variante['prix']*(1+$variante['tva']);
     43                } else { // c'est une option
     44                        $option = sql_fetsel('*', 'spip_cat_options', 'id_cat_option='.abs($code));
     45                        if (!$article)
     46                                $article = $option['id_article'];
     47                        if ($prix_unite==0)
     48                                $prix_unite = $option['prix']*(1+$option['tva']);
     49                }
     50        }
     51        $justification = "[vente$id_vente->vente$id_vente]";
     52        $prix_total = $quantite*$prix_unite;
    3653
    37         $journal = _request('journal');
    38         $justification='[vente n° '.$id_vente.'->vente'.$id_vente.'] - '.$article;
    39         $commentaire=$_POST['commentaire'];
    40         $recette=$quantite*$prix_vente;
    41 
    42         /* modification */
    43         if ($id_vente) {
    44                 ventes_modifier($date_vente, $article, $code, $acheteur, $id_acheteur, $quantite, $date_envoi, $frais_envoi, $don, $prix_vente, $commentaire, $id_vente, $journal, $justification, $recette, $id_compte);
     54        if ($id_vente) { /* modification */
     55                sql_updateq('spip_asso_ventes', array(
     56                        'date_vente' => $date_vente,
     57                        'article' => $article,
     58                        'code' => $code,
     59                        'acheteur' => $acheteur,
     60                        'quantite' => $quantite,
     61                        'date_envoi' => $date_envoi,
     62                        'frais_envoi' => $frais_envoi,
     63                        'prix_vente' => $prix_unite,
     64                        'commentaire' => $commentaire,
     65                ), "id_vente=$id_vente" );
     66                if ($GLOBALS['association_metas']['pc_ventes']==$GLOBALS['association_metas']['pc_frais_envoi']) { /* si ventes et frais d'envoi sont associes a la meme reference, on modifie une seule operation */
     67                        association_modifier_operation_comptable($date_vente, $prix_total+$frais_envoi, 0, "$justification - $article", $GLOBALS['association_metas']['pc_ventes'], $journal, $id_vente, $id_compte);
     68                } else { /* sinon on en modifie deux */
     69                        association_modifier_operation_comptable($date_vente, $prix_total, 0, "$justification - $article", $GLOBALS['association_metas']['pc_ventes'], $journal, $id_vente, $id_compte);
     70                        $association_imputation = charger_fonction('association_imputation', 'inc');
     71                        $critere = $association_imputation('pc_frais_envoi');
     72                        $critere .= ($critere?' AND ':'') ."id_journal=$id_vente";
     73                        association_modifier_operation_comptable($date_vente, $frais_envoi, 0, "$justification - frais d'envoi", $GLOBALS['association_metas']['pc_frais_envoi'], $journal, $id_vente, sql_getfetsel('id_compte', 'spip_asso_comptes', $critere));
     74                }
    4575        } else { /* ajout */
    46                 $id_vente = ventes_insert($date_vente, $article, $code, $acheteur, $id_acheteur, $quantite, $date_envoi, $frais_envoi, $don, $prix_vente, $commentaire, $journal, $recette);
    47 
     76                $id_vente = sql_insertq('spip_asso_ventes', array(
     77                        'date_vente' => $date_vente,
     78                        'article' => $article,
     79                        'code' => $code,
     80                        'acheteur' => $acheteur,
     81                        'quantite' => $quantite,
     82                        'date_envoi' => $date_envoi,
     83                        'frais_envoi' => $frais_envoi,
     84                        'prix_vente' => $prix_unite,
     85                        'commentaire' => $commentaire,
     86                ) );
     87                if (!$id_vente) { // la suite serait aleatoire sans cette cle...
     88                        $erreur = _T('Erreur_BdD_ou_SQL');
     89                } else { // on ajoute les operations comptables associees a la vente
     90                        if ($GLOBALS['association_metas']['pc_ventes']==$GLOBALS['association_metas']['pc_frais_envoi']) { /* si ventes et frais d'envoi sont associes a la meme reference, on ajoute une seule operation */
     91                                association_ajouter_operation_comptable($date_vente, $prix_total+$frais_envoi, 0, "$justification - $article", $GLOBALS['association_metas']['pc_ventes'], $journal, $id_vente);
     92                        } else { /* sinon on en insere deux */
     93                                association_ajouter_operation_comptable($date_vente, $prix_total, 0, "$justification - $article", $GLOBALS['association_metas']['pc_ventes'], $journal, $id_vente);
     94                                association_ajouter_operation_comptable($date_vente, $frais_envoi, 0, "$justification - frais d'envoi", $GLOBALS['association_metas']['pc_frais_envoi'], $journal, $id_vente);
     95                        }
     96                }
    4897        }
    4998
    50         return array($id_vente, '');
    51 }
    52 
    53 function ventes_modifier($date_vente, $article, $code, $acheteur, $id_acheteur, $quantite, $date_envoi, $frais_envoi, $don, $prix_vente, $commentaire, $id_vente, $journal, $justification, $recette, $id_compte)
    54 {
    55         sql_updateq('spip_asso_ventes', array(
    56                 "date_vente" => $date_vente,
    57                 "article" => $article,
    58                 "code" => $code,
    59                 "acheteur" => $acheteur,
    60                 "id_acheteur" => $id_acheteur,
    61                 "quantite" => $quantite,
    62                 "date_envoi" => $date_envoi,
    63                 "frais_envoi" => $frais_envoi,
    64                 "prix_vente" => $prix_vente,
    65                 "commentaire" => $commentaire),
    66                     "id_vente=$id_vente" );
    67 
    68         if ($GLOBALS['association_metas']['pc_ventes']==$GLOBALS['association_metas']['pc_frais_envoi']) {
    69                 /* si ventes et frais d'envoi sont associes a la meme reference, on modifie une seule operation */
    70                 association_modifier_operation_comptable($date_vente, $recette+$frais_envoi, 0, $justification, $GLOBALS['association_metas']['pc_ventes'], $journal, $id_vente, $id_compte);
    71         } else { /* sinon on en modifie deux */
    72                 association_modifier_operation_comptable($date_vente, $recette, 0, $justification, $GLOBALS['association_metas']['pc_ventes'], $journal, $id_vente, $id_compte);
    73                 $association_imputation = charger_fonction('association_imputation', 'inc');
    74                 $critere = $association_imputation('pc_frais_envoi');
    75                 $critere .= ($critere ? ' AND ' : '') . "id_journal=$id_vente";
    76 
    77                 association_modifier_operation_comptable($date_vente, $frais_envoi, 0, $justification.' - frais d\'envoi', $GLOBALS['association_metas']['pc_frais_envoi'], $journal, $id_vente, sql_getfetsel('id_compte', 'spip_asso_comptes', $critere));
    78         }
    79 }
    80 
    81 function ventes_insert($date_vente, $article, $code, $acheteur, $id_acheteur, $quantite, $date_envoi, $frais_envoi, $don, $prix_vente, $commentaire, $journal, $recette)
    82 {
    83         $id_vente = sql_insertq('spip_asso_ventes', array(
    84                 'date_vente' => $date_vente,
    85                 'article' => $article,
    86                 'code' => $code,
    87                 'acheteur' => $acheteur,
    88                 'id_acheteur' => $id_acheteur,
    89                 'quantite' => $quantite,
    90                 'date_envoi' => $date_envoi,
    91                 'frais_envoi' => $frais_envoi,
    92                 'prix_vente' => $prix_vente,
    93                 'commentaire' => $commentaire));
    94 
    95         $justification='[vente n° '.$id_vente.'->vente'.$id_vente.'] - '.$article;
    96         if ($GLOBALS['association_metas']['pc_ventes']==$GLOBALS['association_metas']['pc_frais_envoi']) {
    97                 /* si ventes et frais d'envoi sont associes a la meme reference, on ajoute une seule operation */
    98                 association_ajouter_operation_comptable($date_vente, $recette+$frais_envoi, 0, $justification, $GLOBALS['association_metas']['pc_ventes'], $journal, $id_vente);
    99         } else { /* sinon on en insere deux */
    100                 association_ajouter_operation_comptable($date_vente, $recette, 0, $justification, $GLOBALS['association_metas']['pc_ventes'], $journal, $id_vente);
    101                 association_ajouter_operation_comptable($date_vente, $frais_envoi, 0, $justification.' - frais d\'envoi', $GLOBALS['association_metas']['pc_frais_envoi'], $journal, $id_vente);
    102         }
    103         return $id_vente;
     99        return array($id_vente, $erreur);
    104100}
    105101
  • _plugins_/Association/Associaspip/action/modifier_relances.php

    r53901 r58798  
    1111
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined('_ECRIRE_INC_VERSION'))
     14        return;
    1415
    1516// envoi du mail aux destinataires sélectionnés et chgt du statut de relance
    16 
    17 function action_modifier_relances() {
    18                
     17function action_modifier_relances()
     18{
    1919        $securiser_action = charger_fonction('securiser_action', 'inc');
    2020        $count = $securiser_action();
    21 
    2221        $sujet = _request('sujet');
    23         $message=html_entity_decode(_request('message'), ENT_QUOTES, 'UTF-8');
    24         $statut_tab=(isset($_POST["statut"])) ? $_POST["statut"]:array(); /* contient un tableau id_auteur => statut_interne */
    25 
    26         $adresse=$GLOBALS['association_metas']['email'];
    27         $exp=$GLOBALS['association_metas']['nom'].'<'.$adresse.'>';
     22        $message = html_entity_decode(_request('message'), ENT_QUOTES, 'UTF-8');
     23        $statut_tab = (isset($_POST['statut'])) ? $_POST['statut']:array(); /* contient un tableau id_auteur => statut_interne */
     24        $exp = $GLOBALS['association_metas']['nom'].'<'.$GLOBALS['association_metas']['email'].'>';
    2825        include_spip ('inc/envoyer_mail');
    2926        //$envoyer_mail = charger_fonction('envoyer_mail', 'inc');
    30        
     27
    3128        /* on recupere les adresses emails de tous les auteurs selectionnes */
    3229        include_spip('inc/association_coordonnees');
     
    5148                        if (!inc_envoyer_mail_dist($email, $sujet, $message, $exp)) {
    5249                                $emails_envoyes_echec++;
    53                                 spip_log("non envoi du mail a ".$email);
     50                                spip_log("non envoi du mail a $email",'associaspip');
    5451                        } else {
    5552                                $emails_envoyes_ok++;
    56                                 if ($statut_tab[$id_auteur]=="echu")
     53                                if ($statut_tab[$id_auteur]=='echu')
    5754                                        {
    58                                         sql_updateq('spip_asso_membres', 
    59                                                 array("statut_interne"=> 'relance'),
     55                                        sql_updateq('spip_asso_membres',
     56                                                array('statut_interne' => 'relance'),
    6057                                                "id_auteur=$id_auteur");
    6158                                        }
     
    6663        return array($emails_envoyes_ok, $emails_envoyes_echec, $nb_membres_avec_email, $membres_sans_email);
    6764}
     65
    6866?>
  • _plugins_/Association/Associaspip/action/supprimer_activites.php

    r48235 r58798  
    1111
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined('_ECRIRE_INC_VERSION'))
     14        return;
    1415
    15 function action_supprimer_activites() {
    16                
     16function action_supprimer_activites()
     17{
    1718        $securiser_action = charger_fonction('securiser_action', 'inc');
    1819        $securiser_action();
    19 
    2020        $association_imputation = charger_fonction('association_imputation', 'inc');
    2121        $critere = $association_imputation('pc_activites');
     
    2323        sql_delete('spip_asso_activites', $w);
    2424        $w = sql_in('id_journal', $_REQUEST['drop']);
    25         sql_delete('spip_asso_comptes', $w . ($critere ? " AND $critere" : ''));
     25        sql_delete('spip_asso_comptes', $w. ($critere ? " AND $critere" : ''));
    2626}
    2727
  • _plugins_/Association/Associaspip/action/supprimer_comptes.php

    r46893 r58798  
    1111
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined('_ECRIRE_INC_VERSION'))
     14        return;
    1415
    15 function action_supprimer_comptes() {
    16                
     16function action_supprimer_comptes()
     17{
    1718        $securiser_action = charger_fonction('securiser_action', 'inc');
    1819        $id_compte = $securiser_action();
    19         sql_delete('spip_asso_comptes', 'id_compte=' . $id_compte);
    20         /* on efface de la table destination_op toutes les entrees correspondant a cette operation */
    21         sql_delete('spip_asso_destination_op', 'id_compte=' . $id_compte);
     20        association_supprimer_operation_comptable($id_compte);
    2221}
     22
    2323?>
  • _plugins_/Association/Associaspip/action/supprimer_dons.php

    r48235 r58798  
    1111
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined('_ECRIRE_INC_VERSION'))
     14        return;
    1415
    15 function action_supprimer_dons() {
    16                
     16function action_supprimer_dons()
     17{
    1718        $securiser_action = charger_fonction('securiser_action', 'inc');
    18         $id_don= $securiser_action();
     19        $id_don = $securiser_action();
    1920
    20         // on recupere l'id_compte correspondant au don
    2121        $critere = $association_imputation('pc_dons');
    22         if ($critere) $critere .= ' AND ';
    23         $id_compte = sql_getfetsel("id_compte", "spip_asso_comptes", $critere . "id_journal=$id_don");
     22        if ($critere)
     23                $critere .= ' AND ';
     24        $id_compte = sql_getfetsel('id_compte', 'spip_asso_comptes', "$critere id_journal=$id_don");
     25        association_supprimer_operation_comptable($id_compte);
    2426
    25         sql_delete('spip_asso_destination_op', "id_compte=$id_compte");
    26         sql_delete('spip_asso_comptes', "id_compte=$id_compte"); 
     27        $critere = $association_imputation('pc_colis');
     28        if ($critere)
     29                $critere .= ' AND ';
     30        $id_compte = sql_getfetsel('id_compte', 'spip_asso_comptes', "$critere id_journal=$id_don");
     31        association_supprimer_operation_comptable($id_compte);
     32
    2733        sql_delete('spip_asso_dons', "id_don=$id_don");
    2834}
  • _plugins_/Association/Associaspip/action/supprimer_prets.php

    r46893 r58798  
    1111
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined('_ECRIRE_INC_VERSION'))
     14        return;
    1415
    15 function action_supprimer_prets() {
    16                
     16function action_supprimer_prets()
     17{
    1718        $securiser_action = charger_fonction('securiser_action', 'inc');
    1819        $arg = $securiser_action();
    1920        if (!preg_match('/^(\d+)\D(\d+)/', $arg, $r))
    20                 spip_log("action_supprimer_prets: $arg incompris");
     21                spip_log("action_supprimer_prets: $arg incompris",'associaspip');
    2122        else {
    22                 list(,$id_pret,$id_ressource) = $r;
     23                list($id_pret,$id_ressource) = $r;
     24                $critere = $association_imputation('pc_dons');
     25                if ($critere)
     26                        $critere .= ' AND ';
     27                $id_compte = sql_getfetsel('id_compte', 'spip_asso_comptes', "$critere id_journal=$id_pret");
     28                association_supprimer_operation_comptable($id_compte);
    2329                sql_delete('spip_asso_prets', "id_pret=$id_pret" );
    24                 sql_delete('spip_asso_comptes', "id_journal=$id_pret" );
    2530                sql_updateq('spip_asso_ressources',
    26                         array('statut'=>'ok'),
    27                         "id_ressource=" . $id_ressource );
     31                        array('statut'=>'ok',
     32                ), "statut='reserve' AND id_ressource=$id_ressource" );
     33                sql_updateq('spip_asso_ressources',
     34                        array('statut'=>'statut+1',
     35                ), "statut>=0 AND id_ressource=$id_ressource" );
     36                sql_updateq('spip_asso_ressources',
     37                        array('statut'=>'statut-1',
     38                ), "statut<0 AND id_ressource=$id_ressource" );
    2839        }
    2940}
  • _plugins_/Association/Associaspip/action/supprimer_ressources.php

    r46893 r58798  
    1111
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined('_ECRIRE_INC_VERSION'))
     14        return;
    1415
    15 function action_supprimer_ressources() {
    16                
     16function action_supprimer_ressources()
     17{
    1718        $securiser_action = charger_fonction('securiser_action', 'inc');
    1819        $id_ressource= $securiser_action();
    19 
    20         sql_delete('spip_asso_ressources', "id_ressource=$id_ressource" );
     20        if ( sql_countsel('spip_asso_prets', "id_ressource=$id_ressource") ) { /* s'il y a un historique, juste masquer a l'affichage. (en supprimant on ne perd pas l'historique mais les references pointent dans le neant...) */
     21                sql_update('spip_asso_ressources', array(
     22                        'statut'=>NULL,
     23                ), "id_ressource=$id_ressource" );
     24        } else {
     25                sql_delete('spip_asso_ressources', "id_ressource=$id_ressource" );
     26        }
    2127}
    2228
  • _plugins_/Association/Associaspip/action/supprimer_ventes.php

    r48235 r58798  
    1111
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined('_ECRIRE_INC_VERSION'))
     14        return;
    1415
    1516function action_supprimer_ventes() {
    16                
     17
    1718        $securiser_action = charger_fonction('securiser_action', 'inc');
    1819        $securiser_action();
    19 
    2020        $w = sql_in('id_vente', $_REQUEST['drop']);
    2121        sql_delete('spip_asso_ventes', $w);
     
    2525        $association_imputation = charger_fonction('association_imputation', 'inc');
    2626        $critere = $association_imputation('pc_ventes');
    27         if ($critere) $critere .= ' AND ';
    28         $where = sql_in_select("id_compte", "id_compte", "spip_asso_comptes", $critere . $w);
     27        if ($critere)
     28                $critere .= ' AND ';
     29        $where = sql_in_select('id_compte', 'id_compte', 'spip_asso_comptes', $critere.$w);
    2930        sql_delete('spip_asso_destination_op', $where);
    30         sql_delete('spip_asso_comptes', $critere . $w);
     31        sql_delete('spip_asso_comptes', $critere.$w);
    3132        /* si ventes et frais d'envoi ne sont pas associes a la meme reference, on repete l'operation pour les operation associes aux frais d'envoi */
    3233        if ($GLOBALS['association_metas']['pc_ventes']!=$GLOBALS['association_metas']['pc_frais_envoi']) {
    3334                $critere = $association_imputation('pc_frais_envoi');
    34                 if ($critere) $w .= " AND $critere";
    35                 $where = sql_in_select("id_compte", "id_compte", "spip_asso_comptes", $w);
     35                if ($critere)
     36                        $w .= " AND $critere";
     37                $where = sql_in_select('id_compte', 'id_compte', 'spip_asso_comptes', $w);
    3638                sql_delete('spip_asso_destination_op', $where);
    3739                sql_delete('spip_asso_comptes', $w);
    38         }       
     40        }
    3941}
     42
    4043?>
  • _plugins_/Association/Associaspip/association.css

    r58138 r58798  
    9999/* couleurs de fond specifiques */
    100100tr.pair, td.pair
    101 { /* membres : relances ; mini-bilan : entrees/recettes */
     101{ /* membres : relances (relance | >0) ; mini-bilan : sorties/depenses (solde<0) ; pret : restitue */
    102102        background-color: #dcf3f4 !important;
    103103}
    104104tr.impair, td.impair
    105 { /* membres : echus ; mini-bilan : entrees/recettes */
     105{ /* membres : echus (echu | >0) ; mini-bilan : entrees/recettes (solde>0) ; pret : du ; activite : impayee */
    106106        background-color: #f0dcf4 !important;
    107107}
    108108tr.valide, td.valide
    109 { /* membres : a jour (ok) */
     109{ /* membres : a jour (ok | >0) ; ressources : libres/disponibles (ok | >0) ; activite : payee */
    110110        background-color: #a0ffa0 !important;
    111111}
    112112tr.sortie, td.sortie
    113 { /* membres : desactives */
     113{ /* membres : desactives ; ressources : indisponibles car supprimees ? (sorti | NULL) */
    114114        background-color: #e6eac9 !important;
    115115}
    116116tr.prospect, td.prospect
    117 { /* membres : prospects */
     117{ /* membres : prospects (prospect | =0) ; ressources : indisponibles car suspendues (suspendu | <0) */
    118118        background-color: #fff8dc !important;
    119119}
    120120tr.vi, td.vi
    121 { /* comptes : virement interne */
     121{ /* comptes : virement interne (classe 5) ; ressources : indisponibles car suspendues (suspendu | <0) */
    122122        background-color: #b4ffb4;
    123123}
    124124tr.cv, td.cv
    125 { /* comptes : contribution volontaire */
     125{ /* comptes : contribution volontaire (classe 8) ; ressources : indisponibles car reservees (reserve | =0) */
    126126        background-color: #ffbc61;
    127127}
     
    152152        /* On pourrait utiliser ":" mais je ne suis pas certain du resultat si on a des HH:MM:SS... */
    153153} /* @: http://stackoverflow.com/q/1363239 */
    154 td.formulaire
     154table.asso_tablo_filtres td.formulaire,
    155155table.asso_tablo_filtres td form
    156156{
    157         text-align: right; /* HTML: TD align=right */
    158 }
    159 td.pagination
    160 {
    161         text-align: left; /* HTML: TD align=right */
    162         width: 30%;
     157        text-align: right; !important /* HTML: TD align=right */
     158}
     159table.asso_tablo_filtres td.pagination,
     160table.asso_tablo_filtres td .pagination
     161{
     162        text-align: left; !important /* HTML: TD align=right */
    163163}
    164164
  • _plugins_/Association/Associaspip/association_options.php

    r58103 r58798  
    6565}
    6666
    67 function association_ajouterBoutons($boutons_admin) {
     67function association_ajouterBoutons($boutons_admin)
     68{
    6869        // si on est admin
    6970        if ($GLOBALS['connect_statut']=='0minirezo' && $GLOBALS['connect_toutes_rubriques']) {
     
    8384
    8485// recupere dans une chaine un champ d'une table spip_asso_XX pour un enregistrement identifie par son id_XX
    85 function sql_asso1champ($table, $id, $champ) {
     86function sql_asso1champ($table, $id, $champ)
     87{
    8688        $data = sql_fetsel($champ, "spip_asso_{$table}s", "id_$table=".intval($id));
    8789        return $data[$champ];
     
    8991
    9092// recupere dans un tableau associatif un enregistrement d'une table spip_asso_XX identifie par son id_XX
    91 function sql_asso1ligne($table, $id) {
     93function sql_asso1ligne($table, $id)
     94{
    9295        $data = sql_fetsel('*', "spip_asso_{$table}s", "id_$table=".intval($id));
    9396        return $data;
     
    106109
    107110// Affichage micro-formate d'un nom complet (de membre) suivant la configuration du plugin (i.e. champs geres ou non)
    108 function association_calculer_nom_membre($civilite, $prenom, $nom, $html_tag='') {
     111function association_calculer_nom_membre($civilite, $prenom, $nom, $html_tag='')
     112{
    109113        $res = '';
    110114        if ($html_tag) {
     
    130134// peut etre un membre/auteur (son id_acteur est alors renseigne) mais pas forcement son nom (qui peut etre different)
    131135// ou peut etre une personne exterieure a l'association (on a juste le nom obligatoire alors)
    132 function association_calculer_lien_nomid($nom, $id, $type='membre', $html_tag='') {
     136function association_calculer_lien_nomid($nom, $id, $type='membre', $html_tag='')
     137{
    133138        $res = '';
    134139        if ($html_tag) {
     
    160165{
    161166        if (!preg_match('/^\d{4}\-\d{2}\-\d{2}$/', $date))
    162                 return _T('asso:erreur_format_date');
     167                return _T('asso:erreur_format_date', array('date'=>$date) );
    163168        list($annee, $mois, $jour) = explode('-',$date);
    164169        if (!checkdate($mois, $jour, $annee))
    165                 return _T('asso:erreur_date');
    166         return;
     170                return _T('asso:erreur_valeur_date', array('date'=>$date) );
     171        return FALSE;
    167172}
    168173
     
    179184                        $frmt_m .= $nombre.'Y';
    180185                        $valeur = association_nbrefr($nombre,0);
    181                         $unite = ($nombre<=1) ? _T('spip:date_une_annee') : _T('spip:date_annees');
     186                        $unite = ($nombre<=1) ? _T('local:an') : _T('local:ans');
    182187                        break;
    183188                case 'M' : // month/mois
     
    199204                        $frmt_m .= $nombre.'D';
    200205                        $valeur = association_nbrefr($nombre,0);
    201                         $unite = ($nombre<=1) ? _T('spip:date_un_jour') : _T('spip:date_jours');
     206                        $unite = ($nombre<=1) ? _T('local:jour') : _T('spip:date_jours');
    202207                        break;
    203208                case 'H' : // hour/heure
     
    228233                                        break;
    229234                                case 1:
    230                                         $frmt_h = _T('duree_temps', array('nombre'=>1,'unite'=>$_T('spip:date_un_jour')));
    231                                         break;
    232                                 default:
    233                                         $frmt_h =  _T('duree_temps', array('nombre'=>association_nbrefr($nommbre['-1'],0),'unite'=>$_T('spip:date_jours')));
     235                                        $frmt_h = _T('duree_temps', array('nombre'=>1,'unite'=>_T('local:jour')));
     236                                        break;
     237                                default:
     238                                        $frmt_h =  _T('duree_temps', array('nombre'=>association_nbrefr($nommbre['-1'],0),'unite'=>_T('spip:date_jours')));
    234239                                        break;
    235240                        }
     
    241246                                        break;
    242247                                case 1:
    243                                         $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>$_T('spip:date_une_heure')));
    244                                         break;
    245                                 default:
    246                                         $frmt_h .= _T('duree_temps', array('nombre'=>association_nbrefr($nombre[0],0),'unite'=>$_T('spip:date_heures')));
     248                                        $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>_T('spip:date_une_heure')));
     249                                        break;
     250                                default:
     251                                        $frmt_h .= _T('duree_temps', array('nombre'=>association_nbrefr($nombre[0],0),'unite'=>_T('spip:date_heures')));
    247252                                        break;
    248253                        }
     
    254259                                        break;
    255260                                case 1:
    256                                         $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>$_T('spip:date_une_minute')));
    257                                         break;
    258                                 default:
    259                                         $frmt_h .= _T('duree_temps', array('nombre'=>association_nbrefr($nombre[1],0),'unite'=>$_T('spip:date_minutes')));
     261                                        $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>_T('spip:date_une_minute')));
     262                                        break;
     263                                default:
     264                                        $frmt_h .= _T('duree_temps', array('nombre'=>association_nbrefr($nombre[1],0),'unite'=>_T('spip:date_minutes')));
    260265                                        break;
    261266                        }
     
    267272                                        break;
    268273                                case 1:
    269                                         $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>$_T('spip:date_une_seconde')));
    270                                         break;
    271                                 default:
    272                                         $frmt_h .= _T('duree_temps', array('nombre'=>association_nbrefr($nombre[2],0),'unite'=>$_T('spip:date_secondes')));
     274                                        $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>_T('spip:date_une_seconde')));
     275                                        break;
     276                                default:
     277                                        $frmt_h .= _T('duree_temps', array('nombre'=>association_nbrefr($nombre[2],0),'unite'=>_T('spip:date_secondes')));
    273278                                        break;
    274279                        }
    275280                        $frmt_h .= '. ';
    276281                        break;
    277                 default : // (full) ISO DateTime or Date : no check !!!
     282                case 'I' : // (full) ISO DateTime or Date : no check !!!
     283                default :
    278284                        $frmt_m .= $nombre;
    279285                        $nombre = explode('T',$nombre,2);
     
    285291                                        break;
    286292                                case 1:
    287                                         $frmt_h = _T('duree_temps', array('nombre'=>1,'unite'=>$_T('spip:date_une_annee')));
    288                                         break;
    289                                 default:
    290                                         $frmt_h =  _T('duree_temps', array('nombre'=>association_nbrefr($ladate[0],0),'unite'=>$_T('spip:date_annees')));
     293                                        $frmt_h = _T('duree_temps', array('nombre'=>1,'unite'=>_T('local:an')));
     294                                        break;
     295                                default:
     296                                        $frmt_h =  _T('duree_temps', array('nombre'=>association_nbrefr($ladate[0],0),'unite'=>_T('local:ans')));
    291297                                        break;
    292298                        }
     
    298304                                        break;
    299305                                case 1:
    300                                         $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>$_T('spip:date_un_mois')));
    301                                         break;
    302                                 default:
    303                                         $frmt_h .= _T('duree_temps', array('nombre'=>association_nbrefr($ladate[1],0),'unite'=>$_T('spip:date_mois')));
     306                                        $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>_T('spip:date_un_mois')));
     307                                        break;
     308                                default:
     309                                        $frmt_h .= _T('duree_temps', array('nombre'=>association_nbrefr($ladate[1],0),'unite'=>_T('spip:date_mois')));
    304310                                        break;
    305311                        }
     
    311317                                        break;
    312318                                case 1:
    313                                         $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>$_T('spip:date_un_jour')));
    314                                         break;
    315                                 default:
    316                                         $frmt_h .= _T('duree_temps', array('nombre'=>association_nbrefr($ladate[2],0),'unite'=>$_T('spip:date_jours')));
     319                                        $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>_T('local:jour')));
     320                                        break;
     321                                default:
     322                                        $frmt_h .= _T('duree_temps', array('nombre'=>association_nbrefr($ladate[2],0),'unite'=>_T('spip:date_jours')));
    317323                                        break;
    318324                        }
     
    325331                                        break;
    326332                                case 1:
    327                                         $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>$_T('spip:date_une_heure')));
    328                                         break;
    329                                 default:
    330                                         $frmt_h .=  _T('duree_temps', array('nombre'=>association_nbrefr($lheure[0],0),'unite'=>$_T('spip:date_heures')));
     333                                        $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>_T('spip:date_une_heure')));
     334                                        break;
     335                                default:
     336                                        $frmt_h .=  _T('duree_temps', array('nombre'=>association_nbrefr($lheure[0],0),'unite'=>_T('spip:date_heures')));
    331337                                        break;
    332338                        }
     
    338344                                        break;
    339345                                case 1:
    340                                         $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>$_T('spip:date_une_minute')));
    341                                         break;
    342                                 default:
    343                                         $frmt_h .=  _T('duree_temps', array('nombre'=>association_nbrefr($lheure[1],0),'unite'=>$_T('spip:date_minutes')));
     346                                        $frmt_h .= _T('duree_temps', array('nombre'=>1,'unite'=>_T('spip:date_une_minute')));
     347                                        break;
     348                                default:
     349                                        $frmt_h .=  _T('duree_temps', array('nombre'=>association_nbrefr($lheure[1],0),'unite'=>_T('spip:date_minutes')));
    344350                                        break;
    345351                        }
     
    351357                                        break;
    352358                                case 1:
    353                                         $frmt_h = _T('duree_temps', array('nombre'=>1,'unite'=>$_T('spip:date_une_seconde')));
    354                                         break;
    355                                 default:
    356                                         $frmt_h =  _T('duree_temps', array('nombre'=>association_nbrefr($lheure[2],0),'unite'=>$_T('spip:date_secondes')));
     359                                        $frmt_h = _T('duree_temps', array('nombre'=>1,'unite'=>_T('spip:date_une_seconde')));
     360                                        break;
     361                                default:
     362                                        $frmt_h =  _T('duree_temps', array('nombre'=>association_nbrefr($lheure[2],0),'unite'=>_T('spip:date_secondes')));
    357363                                        break;
    358364                        }
     
    367373// micro-Formatage des montants avec devise
    368374// on n'utilise pas la fontcion PHP money_format() --qui ne fonctionne pas sous Windows-- car on veut micro-formater avec une devise fixee par la configuration (en fait les chaines de langue) du plugin
    369 function association_prixfr($montant, $unite_code='', $unite_nom='', $htm_span='span', $htm_abbr='abbr') {
     375function association_prixfr($montant, $unite_code='', $unite_nom='', $htm_span='span', $htm_abbr='abbr')
     376{
    370377        $res = "<$htm_span class='money price'>"; // pour la reference est "price" <http://microformats.org/wiki/hproduct> (reconnu par les moteurs de recherche), mais "money" <http://microformats.org/wiki/currency-brainstorming> est d'usage courant aussi
    371378        $montant = "<$htm_abbr class='amount' title='$montant'>". association_nbrefr($montant) ."</$htm_abbr>";
     
    411418
    412419/* prend en parametre le nom de l'argument a chercher dans _request et retourne un float */
    413 function association_recupere_montant ($valeur) {
     420function association_recupere_montant($valeur)
     421{
    414422        if ($valeur!='') {
    415423                $valeur = str_replace(' ', '', $valeur); /* suppprime les espaces separateurs de milliers */
     
    421429}
    422430
    423         //Affichage du message indiquant la date
     431/* s'assurer que la valeur saisie est un float positif */
     432function association_verifier_montant($valeur)
     433{
     434        if (association_recupere_montant($valeur)<0)
     435                return _T('asso:erreur_montant');
     436        else
     437                return FALSE;
     438}
     439
     440/* s'assurer que l'entier saisie correspond bien a un id_auteur de la table spip_asso_membres (par defaut) ou spip_auteurs (si on elargi a tous les autteurs --ceci permet d'editer des membres effaces tant qu'ils sont references par SPIP) */
     441function association_verifier_membre($id_auteur, $touslesauteurs=false)
     442{
     443        if ($id_auteur) {
     444                $id_auteur = intval($id_auteur);
     445                if (sql_countsel('spip_'.($touslesauteurs?'auteurs':'asso_membres'), "id_auteur=$id_auteur")==0) {
     446                        return _T('asso:erreur_id_adherent');
     447                }
     448        } else
     449                return FALSE;
     450}
     451
     452// Affichage du message indiquant la date
    424453function association_date_du_jour($heure=false)
    425454{
     
    434463}
    435464
    436 function association_header_prive($flux){
     465function association_header_prive($flux)
     466{
    437467        $c = direction_css(find_in_path('association.css'));
    438468        return "$flux\n<link rel='stylesheet' type='text/css' href='$c' />";
    439469}
    440470
    441 function association_delete_tables($flux){
    442   spip_unlink(cache_meta('association_metas'));
    443 }
    444 
    445471// Filtre pour "afficher" ou "cacher" un bloc div
    446472// Utilise dans le formulaire cvt "editer_asso_comptes.html"
    447 function affichage_div($type_operation,$list_operation) {
     473function affichage_div($type_operation,$list_operation)
     474{
    448475        if(strpos($list_operation, '-')) {
    449476                $operations = explode('-', $list_operation);
     
    462489}
    463490
    464 function encadre($texte,$avant='[',$apres=']') {
     491function encadre($texte,$avant='[',$apres=']')
     492{
    465493    return ($texte=='')?'':$avant.$texte.$apres;
    466494}
     
    501529
    502530
     531function bloc_infos($TitreObjet,$NumObjet,$DesLignes=array(),$PrefixeLangue='asso')
     532{
     533        $res = debut_boite_info(true);
     534        $res .= '<div style="font-weight: bold; text-align: center" class="verdana1 spip_xx-small">'. _T("$PrefixeLangue:$NumObjet") .'<br /><span class="spip_xx-large">'.$NumObjet.'</span></div>';
     535        if (count($DesLignes))
     536                foreach ($DesLignes as $dt=>$dd) {
     537                        $res .= '<p>'. _T("$PrefixeLangue:$dt") .'&nbsp;: '. propre($dd) .'</p>';
     538                }
     539        $res .= fin_boite_info(true);
     540        return $res;
     541}
     542
     543// Rappels sur l'objet dans le bloc infos
     544// C'est un resume ou une petite presentation de l'objet en cours d'edition/lecture : ces informations permettent de situer le contexte de la page et n'apparaissent pas dans le bloc central !
     545function totauxinfos_intro($titre,$type='',$id=0,$DesLignes=array(),$PrefixeLangue='asso')
     546{
     547        $res = '';
     548        if ($type) {
     549                $res .= '<div style="text-align: center" class="verdana1 spip_x-small">'. _T('asso:titre_num', array('titre'=>$type, 'num'=>$id) ) .'</div>';
     550        }
     551        $res .= '<div style="text-align: center" class="verdana1 spip_medium">'.$titre.'</div>';
     552        if (count($DesLignes)) {
     553                $res .= '<div class="verdana1 spip_xx-small">';
     554                foreach ($DesLignes as $dt=>$dd) {
     555                        $res .= '<p>'. _T("$PrefixeLangue:$dt") .'&nbsp;: '. propre($dd) .'</p>';
     556                }
     557                $res .= '</div>';
     558        }
     559        return $res;
     560}
     561
     562// Tableau des decomptes statistiques dans le bloc infos
     563// On prend en entree deux tableaux de taille egale (non controlee) --respectivement pour les intitules/libelles et les effectifs/occurences-- qui sont indexes par la classe CSS associee (parce-qu'elle doit etre unique pour chaque ligne)
     564function totauxinfos_effectifs($module='',$table_textes,$table_nombres,$decimales_significatives=0)
     565{
     566        $nombre = $nombre_total = 0;
     567        $res = '<table width="100%">';
     568        $res .= '<caption>'. _T('asso:'.$module.'_nombre_titre') .'</caption><tbody>';
     569        foreach ($table_textes as $classe_css=>$libelle) {
     570                $res .= '<tr class="'.$classe_css.'">';
     571                $res .= '<td class"text">'._T('asso:'.$libelle).'</td>';
     572                $res .= '<td class="integer">'. association_nbrefr($table_nombres[$classe_css],$decimales_significatives) .'</td>';
     573                $nombre_total += $table_nombres[$classe_css];
     574                $res .= '</tr>';
     575        }
     576        $res .= '</tbody>';
     577        if (count($table_nombres)>1) {
     578                $res .= '<tfoot>';
     579                $res .= '<tr><th class="text">'._T('asso:liste_nombre_total').'</th>';
     580                $res .= '<th class="integer">'. association_nbrefr($nombre_total,$decimales_significatives) .'</th></tr>';
     581                $res .= '</tfoot>';
     582        }
     583        return $res.'</table>';
     584}
     585
     586// Tableau des totaux comptables dans le bloc infos
     587// On prend en entree : le complement de titre du tableau puis les sommes cumulees des recettes et des depenses. (tous ces parametres sont facultatifs, mais attention qu'un tableau est quand meme genere dans tous les cas)
     588function totauxinfos_sommes($legende='',$somme_recettes=0,$somme_depenses=0)
     589{
     590        $res = '<table width="100%">';
     591        $res .= '<caption>'. _T('asso:totaux_titre', array('titre'=>$legende)) .'</caption><tbody>';
     592        if ($somme_recettes) {
     593                $res .= '<tr class="impair">'
     594                . '<th class="entree">'. _T('asso:bilan_recettes') .'</th>'
     595                . '<td class="decimal">' .association_prixfr($somme_recettes). ' </td>'
     596                . '</tr>';
     597        }
     598        if ($somme_depenses) {
     599                $res .= '<tr class="pair">'
     600                . '<th class="sortie">'. _T('asso:bilan_depenses') .'</th>'
     601                . '<td class="decimal">'.association_prixfr($somme_depenses) .'</td>'
     602                . '</tr>';
     603        }
     604        if ($somme_recettes && $somme_depenses) {
     605                $solde = $somme_recettes-$somme_depenses;
     606                $res .= '<tr class="'.($solde>0?'impair':'pair').'">'
     607                . '<th class="solde">'. _T('asso:bilan_solde') .'</th>'
     608                . '<td class="decimal">'.association_prixfr($solde).'</td>'
     609                . '</tr>';
     610        }
     611        return $res.'</tbody></table>';
     612}
    503613// pour executer les squelettes comportant la balise Meta
    504614include_spip('balise/meta');
  • _plugins_/Association/Associaspip/balise/formulaire_inscription_activite.php

    r50948 r58798  
    1010\***************************************************************************/
    1111
    12 if (!defined("_ECRIRE_INC_VERSION")) return;    #securite
     12if (!defined('_ECRIRE_INC_VERSION'))
     13        return;
    1314
    1415include_spip('base/abstract_sql');
     
    1920include_spip('balise/formulaire_adherent');
    2021
    21         // Balise independante du contexte ici
     22// Balise independante du contexte ici
    2223function balise_FORMULAIRE_INSCRIPTION_ACTIVITE ($p) {
    2324                return calculer_balise_dynamique($p, 'FORMULAIRE_INSCRIPTION_ACTIVITE', array());
     
    2829                //if ($GLOBALS['meta']["activer_moteur"] != "oui")
    2930                        //return '';
    30                
     31
    3132                // filtres[0] doit etre un script (a revoir)
    3233                //else
    3334                  //return array($filtres[0], $args[0]);
    3435        //}
    35          
     36
    3637// Balise de traitement des donn�es du formulaire
    3738function balise_FORMULAIRE_INSCRIPTION_ACTIVITE_dyn() {
    38                
    39                 //On r�cup�re les champs
    40         $id_evenement= intval(_request('id_evenement'));
    41         $id_adherent=_request('id_adherent');
    42         $nom=_request('nom');
    43         $membres=_request('membres');
    44         $non_membres=_request('non_membres');
    45         $inscrits=_request('inscrits');
    46         $email=_request('email');
    47         $adresse=_request('adresse');
    48         $telephone=_request('telephone');
    49         $montant=_request('montant');
    50         $commentaire=_request('commentaire');
    5139
    52         $bouton=_request('bouton');
    53                
    54         if ($bouton=='Confirmer'){             
    55                        
     40                //On recupere les champs
     41        $id_evenement = intval(_request('id_evenement'));
     42        $id_adherent = intval(_request('id_adherent'));
     43        $nom = _request('nom');
     44        $membres = _request('membres');
     45        $non_membres = _request('non_membres');
     46        $inscrits = intval(_request('inscrits'));
     47        $montant = association_recupere_montant(_request('montant'));
     48        $commentaire = _request('commentaire');
     49        $bouton = _request('bouton');
     50        if ($bouton=='Confirmer'){
    5651                //enregistrement dans la table
    57                 $n = activites_insert($id_evenement,$id_adherent,$nom,$membres,$non_membres,$inscrits,$email,$adresse,$telephone,$montant,$commentaire);
    58                        
    59                 spip_log($n ? "enregistre activite $n" : "actvite non inseree");
     52                $n = sql_insertq('spip_asso_activites', array(
     53                        'id_evenement' => $id_evenement,
     54                        'id_adherent' => $id_adherent,
     55                        'nom' => $nom,
     56                        'membres' => $membres,
     57                        'non_membres' => $non_membres,
     58                        'inscrits' => $inscrits,
     59                        'montant' => $montant,
     60                        'commentaire' => $commentaire,
     61                        'date' => 'NOW()',
     62                ));
     63                spip_log($n ? "enregistre activite $n" : "actvite non inseree",'associaspip');
     64                // envoi des emails...
     65                $data = sql_fetsel('*', 'spip_evenements', "id_evenement=$id_evenement " );
     66                $activite = $data['titre'];
     67                $date = $data['date_debut'];
     68                $lieu = $data['lieu'];
     69                $expediteur = $GLOBALS['association_metas']['nom'].' <'.$GLOBALS['association_metas']['email'].'>';
     70                $sujet = _T('asso:activite_message_sujet',array('nomasso'=>$GLOBALS['association_metas']['nom']));
     71                $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
    6072
    61                 // envoi des emails
    62                        
    63                 $data = sql_fetsel("*", "spip_evenements", "id_evenement=$id_evenement " );
    64                 $activite=$data['titre'];
    65                 $date=$data['date_debut'];
    66                 $lieu=$data['lieu'];
    67                
    68                 $nom_asso=$GLOBALS['association_metas']['nom'];
    69                 $email_asso=$GLOBALS['association_metas']['email'];
    70                 $expediteur=$nom_asso.' <'.$email_asso.'>';             
    71                 $sujet=_T('asso:activite_message_sujet',array('nomasso'=>$nom_asso));
     73                // ...au webmaster
     74                $message = _T('asso:activite_message_webmaster',array(
     75                        'nom' => $nom,
     76                        'activite' => $activite,
     77                        'inscrits' => $inscrits,
     78                        'commentaire' => $commentaire,
     79                ));
     80                $envoyer_mail($GLOBALS['association_metas']['email'], $sujet, $message, $expediteur);
    7281
    73                 //au webmaster
    74                 $message = _T('asso:activite_message_webmaster',array(
    75                                 'nom' => $nom,
    76                                 'activite' => $activite,
    77                                 'inscrits' => $inscrits,
    78                                 'commentaire'=>$commentaire
     82                // ...au demandeur
     83                $email = $GLOBALS['visiteur_session']['email'];
     84                if ($email) {
     85                        $message = _T('asso:activite_message_confirmation_inscription', array(
     86                                'activite' => $activite,
     87                                'date' => association_datefr($date),
     88                                'lieu' => $lieu,
     89                                'nom' => $nom,
     90                                'membres' => $membres,
     91                                'non_membres' => $non_membres,
     92                                'inscrits' => $inscrits,
     93                                'montant' => $montant,
     94                                'nomasso' => $GLOBALS['association_metas']['nom'],
    7995                        ));
    80                 $envoyer_mail = charger_fonction('envoyer_mail', 'inc');
    81                 $envoyer_mail($email_asso, $sujet, $message, $expediteur);
    82                        
    83                 //au demandeur
    84                 $message= _T('asso:activite_message_confirmation_inscription',
     96                        $envoyer_mail($email, $sujet, $message, $expediteur);
     97                }
     98        } else {
     99                if ($bouton=='Soumettre'){
     100                        //On controle les donnees du formulaire
     101                        $bouton = 'Confirmer';   // si pas d'erreur
     102
     103                        //email invalide
     104                        if (!email_valide($email)){
     105                                $erreur_email = 'Adresse courriel invalide !';
     106                                $bouton = 'Soumettre';
     107                        }
     108                        //donnees manquantes
     109                        if ( empty($nom) ){
     110                                $erreur_nom = 'Nom et pr&eacute;nom manquants !';
     111                                $bouton = 'Soumettre';
     112                        }
     113                        if ( empty($inscrits) ){
     114                                $erreur_inscrits = 'Nombre d\'inscrits manquant !';
     115                                $bouton = 'Soumettre';
     116                        }
     117
     118                        //on retourne les infos a un formulaire de previsualisation
     119                        return inclure_balise_dynamique(
    85120                                array(
    86                                 'activite'=> $activite,
    87                                 'date'=> association_datefr($date),
    88                                 'lieu'=> $lieu,
    89                                 'nom'=> $nom,
    90                                 'id_adherent'=> $id_adherent,
    91                                 'membres'=> $membres,
    92                                 'non_membres'=> $non_membres,
    93                                 'inscrits'=> $inscrits,
    94                                 'montant'=> $montant,
    95                                 'nomasso'=> $nom_asso
    96                         ));
    97                         $envoyer_mail($email, $sujet, $message, $expediteur);   
    98                        
     121                                        'formulaires/formulaire_inscription_activite_previsu',0,
     122                                        array(
     123                                                'id_evenement' => $id_evenement,
     124                                                'nom' => $nom,
     125                                                'id_adherent' => $id_adherent,
     126                                                'membres' => $membres,
     127                                                'non_membres' => $non_membres,
     128                                                'inscrits' => $inscrits,
     129                                                'montant' => $montant,
     130                                                'commentaire' => $commentaire,
     131                                                'bouton' => $bouton,
     132                                                'erreur_nom' => $erreur_nom,
     133                                                'erreur_inscrits' => $erreur_inscrits,
     134                                                'erreur_montant' => $erreur_montant,
     135                                        )
     136                                ),
     137                                false
     138                        );
    99139                }
    100                 else {
    101                         if ($bouton=='Soumettre'){
    102                                
    103                                 //On contr�le les donn�es du formulaire                 
    104                                 $bouton='Confirmer';     // si pas d'erreur
    105                                
    106                                 //email invalide
    107                                 if (!email_valide($email)){
    108                                         $erreur_email='Adresse courriel invalide !';
    109                                         $bouton='Soumettre';
    110                                 }
    111                                 //donnees manquantes
    112                                 if ( empty($nom) ){
    113                                         $erreur_nom='Nom et pr&eacute;nom manquants !';
    114                                         $bouton='Soumettre';
    115                                 }
    116                                 if ( empty($inscrits) ){
    117                                         $erreur_inscrits='Nombre d\'inscrits manquant !';
    118                                         $bouton='Soumettre';
    119                                 }
    120                                
    121                                 //on retourne les infos � un formulaire de previsualisation             
    122                                 return inclure_balise_dynamique(
    123                                         array(
    124                                                 'formulaires/formulaire_inscription_activite_previsu',0,
    125                                                 array(
    126                                                         'id_evenement'=> $id_evenement,
    127                                                         'nom'           => $nom,
    128                                                         'id_adherent'=> $id_adherent,
    129                                                         'membres'=> $membres,
    130                                                         'non_membres'=> $non_membres,
    131                                                         'inscrits'      => $inscrits,
    132                                                         'email'         => $email,
    133                                                         'telephone'     => $telephone,
    134                                                         'adresse'=> $adresse,
    135                                                         'montant' => $montant,
    136                                                         'commentaire'=> $commentaire,
    137                                                         'bouton'=> $bouton,
    138                                                         'erreur_email' => $erreur_email,
    139                                                         'erreur_nom' => $erreur_nom,
    140                                                         'erreur_inscrits' => $erreur_inscrits,
    141                                                         'erreur_montant' => $erreur_montant,
    142                                                 )
    143                                         ),
    144                                         false
    145                                 );
    146                         }
    147                 }               
    148                
    149                 //On retourne au formulaire d'inscription
    150                 return array (
    151                         'formulaires/formulaire_inscription_activite',0,
    152                         array (
    153                                 'id_evenement'=> $id_evenement,
    154                                 'nom'           => $nom,
    155                                 'id_adherent'=> $id_adherent,
    156                                 'membres'=> $membres,
    157                                 'non_membres'=> $non_membres,
    158                                 'inscrits'      => $inscrits,
    159                                 'email'         => $email,
    160                                 'telephone'     => $telephone,
    161                                 'adresse'=> $adresse,
    162                                 'montant' => $montant,
    163                                 'commentaire'=> $commentaire
    164                                 )
    165                         );
    166                
    167140        }
    168141
    169 function activites_insert()
    170 {
    171         return sql_insertq('spip_asso_activites', array(
    172                 'id_evenement' => $id_evenement,
    173                 'id_adherent' => $id_adherent,
    174                 'nom' => $nom,
    175                 'membres' => $membres,
    176                 'non_membres' => $non_membres,
    177                 'inscrits' => $inscrits,
    178                 'email' => $email,
    179                 'adresse' => $adresse,
    180                 'telephone' => $telephone,
    181                 'montant' => $montant,
    182                 'commentaire' => $commentaire,
    183                 'date' => 'NOW()'));
    184 }               
     142        //On retourne au formulaire d'inscription
     143        return array (
     144                'formulaires/formulaire_inscription_activite',0,
     145                array (
     146                        'id_evenement'=> $id_evenement,
     147                        'nom'           => $nom,
     148                        'id_adherent'=> $id_adherent,
     149                        'membres'=> $membres,
     150                        'non_membres'=> $non_membres,
     151                        'inscrits'      => $inscrits,
     152                        'montant' => $montant,
     153                        'commentaire'=> $commentaire
     154                        )
     155                );
     156
     157}
    185158
    186159?>
  • _plugins_/Association/Associaspip/base/association.php

    r57835 r58798  
    157157        "intitule" => "TINYTEXT NOT NULL",
    158158        "date_acquisition" => "DATE NOT NULL DEFAULT '0000-00-00'",
    159         "pu" => "DECIMAL(19,2) NOT NULL DEFAULT '0'",
    160         "statut" => "TINYTEXT NOT NULL",
     159        "pu" => "DECIMAL(19,2) NOT NULL DEFAULT '0'", // prix unitaire (par tranche de temps) de la location
     160        "ud" => "CHAR(1) NULL DEFAULT 'D'", // unite des durees (de tranches) de location/pret : ce champ pourrait etre un ENUM('Y','M','W','D','T','H','S') mais un CHAR(1) est plus portable, d'autant que les caracteres geres le sont par la fonction association_dureefr(); ce qui est ca de moins a gerer en base.
     161        "statut" => "TINYINT NULL", // utiliser un entier permet de pouvoir gerer parallelement une quantite disponible ...assez reduite (d'ou du TinyInt et non autre : il ne s'agit pas non plus de gerer un entrepot de grossiste... mais 2-3 unites sans devoir forcement creer des codes distincts --ce qui est recommande meme si on reste flexible)
    161162        "commentaire" => "TEXT NOT NULL",
    162163        "maj" => "TIMESTAMP NOT NULL"
     
    174175        "id_pret" => "BIGINT UNSIGNED NOT NULL auto_increment",
    175176        "id_ressource" => "VARCHAR(20) NOT NULL",
    176         "date_sortie" => "DATE NOT NULL DEFAULT '0000-00-00'",
     177        "date_sortie" => "DATETIME NOT NULL DEFAULT '0000-00-00T00:00:00'",
    177178        "duree" => "INT UNSIGNED NOT NULL DEFAULT '0'",
    178         "date_retour" => "DATE NOT NULL DEFAULT '0000-00-00'",
     179        "date_retour" => "DATETIME NOT NULL DEFAULT '0000-00-00T00:00:00'",
    179180        "id_emprunteur" => "BIGINT UNSIGNED NOT NULL",
    180         "statut" => "TINYTEXT NOT NULL",
    181181        "commentaire_sortie" => "TEXT NOT NULL",
    182182        "commentaire_retour" => "TEXT NOT NULL",
     
    201201        "inscrits" => "INT NOT NULL DEFAULT '0'",
    202202        "date" => "DATE NOT NULL DEFAULT '0000-00-00'",
    203         "telephone" => "TEXT NOT NULL",
    204         "adresse" => "TEXT NOT NULL",
    205         "email" => "TEXT NOT NULL",
     203#       "telephone" => "TEXT NOT NULL",
     204#       "adresse" => "TEXT NOT NULL",
     205#       "email" => "TEXT NOT NULL",
    206206        "commentaire" => "TEXT NOT NULL",
    207207        "montant" => "DECIMAL(19,2) NOT NULL DEFAULT '0'",
  • _plugins_/Association/Associaspip/base/association_gestion.php

    r58138 r58798  
    4242        foreach($tables_a_supprimer as $table ) {
    4343                if (sql_drop_table($table))
    44                         spip_log("Associaspip : echec de la desinstallation de la table '$table' ");
     44                        spip_log("Associaspip : echec de la desinstallation de la table '$table' ",'associaspip');
    4545                else {
    46                         spip_log("Associaspip : echec de la desinstallation de la table '$table' ");
     46                        spip_log("Associaspip : echec de la desinstallation de la table '$table' ",'associaspip');
    4747                        $ok = FALSE;
    4848                }
     
    5353        effacer_meta('association');
    5454        effacer_meta($nom_meta_base_version);
    55         spip_log("Plugin Associaspip (vb:$nom_meta_base_version) dereference");
     55        spip_log("Plugin Associaspip (vb:$nom_meta_base_version) dereference",'associaspip');
    5656*/
     57
     58        // des soucis apparents de cache : on force donc pour finir
     59        //@ http://doc.spip.org/@spip_unlink
     60        spip_unlink(cache_meta('association_metas'));
     61
    5762}
    5863
     
    6974                } elseif (isset($GLOBALS['meta']['association_base_version'])) {
    7075                        $n = $GLOBALS['meta']['association_base_version'];
    71                 } else $n = 0;
     76                } else
     77                        $n = 0;
    7278                $GLOBALS['association_metas']['base_version'] = $n;
    73         } else $n = $GLOBALS['association_metas']['base_version'];
     79        } else
     80                $n = $GLOBALS['association_metas']['base_version'];
    7481        effacer_meta('association_base_version');
    75         spip_log("association upgrade: $table $meta = $n =>> $courante");
     82        spip_log("association upgrade: $table $meta = $n =>> $courante",'associaspip');
    7683        if (!$n) {
    7784                include_spip('base/create');
     
    141148        } else {
    142149                if (_ASSOCIATION_INSCRIPTION2) {
    143                         if (!$GLOBALS['association_maj_erreur']) $GLOBALS['association_maj_erreur'] = 64;
     150                        if (!$GLOBALS['association_maj_erreur'])
     151                                $GLOBALS['association_maj_erreur'] = 64;
    144152                        return;
    145153                }
     
    172180                        effacer_meta('association_base_version');
    173181                }
    174         } else spip_log("maj_38190: echec de  la creation de spip_asso_metas");
     182        } else
     183                spip_log("maj_38190: echec de  la creation de spip_asso_metas",'associaspip');
    175184}
    176185$GLOBALS['association_maj'][38192] = array(
     
    419428                sql_alter("TABLE spip_asso_membres DROP email");
    420429        } else { /* la mise a jour n'est pas effectuee : on le signale dans les maj_erreur pour y revenir au prochain chargement de la page de gestion des plugins */
    421                 if (!$GLOBALS['association_maj_erreur']) $GLOBALS['association_maj_erreur'] = 48001;
     430                if (!$GLOBALS['association_maj_erreur'])
     431                        $GLOBALS['association_maj_erreur'] = 48001;
    422432        }
    423433}
     
    539549);
    540550
     551// En liant le nom du bienfaiteur avec l'ID membre avant d'enregistrer, il faut penser a defaire cela a chaque edition pour eviter de se retrouver avec [un nom->membreXX] qui devient [[un nom->mebreXX]->membreXX] au moment de reediter. Il semble plus simple de ne pas transformer la saisie a stocker mais seulement l'affichage avec la nouvelle fonction association_calculer_lien_nomid($nom,$id)
     552// Du coup il faut quand meme retablir les champs pour ne pas reproduire a l'affichage le souci qu'on avait a l'edition...
     553$GLOBALS['association_maj'][57780] = array(
     554        array('sql_update', 'spip_asso_dons', array('donateur' => "SUBSTR(donateur,1, INSTR(donateur,'->membre')-1)"), "donateur LIKE '[%->membre%]'"), // INSTR ou POSITION ou PARTINDEX ou CHARINDEX ou LOCATE ou REPLACE ... pfff. peut-etre vaut-il mieux le faire en PHP pour etre certain d'etre independant de l'implementation SQL ?!?
     555);
     556
    541557// correction d'une etourderie, et rajout de deux champs confirmes
    542558$GLOBALS['association_maj'][57896] = array(
     
    549565        array ('sql_alter', "TABLE spip_asso_destination_op CHANGE recette recette DECIMAL(19,2) NOT NULL"),
    550566        array ('sql_alter', "TABLE spip_asso_destination_op CHANGE depense depense DECIMAL(19,2) NOT NULL"),
    551         array ('sql_alter', "TABLE spip_asso_ressources CHANGE pu pu DECIMAL(19,4) NOT NULL"),
     567        array ('sql_alter', "TABLE spip_asso_ressources CHANGE pu pu DECIMAL(19,2) NOT NULL"),
    552568        array ('sql_alter', "TABLE spip_asso_activites CHANGE montant montant DECIMAL(19,2) NOT NULL"),
    553569        array ('sql_alter', "TABLE spip_asso_prets CHANGE argent argent DECIMAL(19,2) NOT NULL"),
     
    555571);
    556572
     573// Revue de la gestion des ressources et prets
     574$GLOBALS['association_maj'][58798] = array(
     575        array ('sql_alter', "TABLE spip_asso_prets DROP statut"), // ce champ ne sert pas, donc...
     576        array ('sql_alter', "TABLE spip_asso_prets CHANGE date_sortie date_sortie DATETIME NOT NULL"), // permettre une gestion plus fine (duree inferieure a la journee)
     577        array ('sql_alter', "TABLE spip_asso_prets CHANGE date_retour date_retour DATETIME NOT NULL"), // permettre une gestion plus fine (duree inferieure a la journee)
     578        array ('sql_alter', "TABLE spip_asso_ressoures ADD ud CHAR(1) NOT NULL DEFAULT 'D' "), // unite des durees de location
     579        array('sql_update', 'spip_asso_ressources', array('statut' => 1), "statut='ok'"), // nouveau statut numerique gerant simultanement les quantites
     580        array('sql_update', 'spip_asso_ressources', array('statut' => 0), "statut='reserve'"), // nouveau statut numerique gerant simultanement les quantites
     581        array('sql_update', 'spip_asso_ressources', array('statut' => -1), "statut='suspendu'"), // nouveau statut numerique gerant simultanement les quantites
     582/* Ne pas convertir le champ si on a des statuts personnalises... le code prevoit la compatibilite ascendante (sauf ajout de fonctionnalite incompatible) */
     583        array ('sql_alter', "TABLE spip_asso_ressources CHANGE statut statut TINYTEXT NULL"), // changement temporaire pour rendre le champ nullable
     584        array('sql_update', 'spip_asso_ressources', array('statut' => NULL), "statut='sorti'"), // nouveau statut numerique gerant simultanement les quantites
     585        array ('sql_alter', "TABLE spip_asso_ressources CHANGE statut statut TINYINT NULL DEFAULT 1"), // nouvelle gestion numerique
     586);
     587
    557588?>
  • _plugins_/Association/Associaspip/exec/action_prets.php

    r57780 r58798  
    1111
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined('_ECRIRE_INC_VERSION'))
     14        return;
    1415
    1516include_spip('inc/presentation');
    1617include_spip ('inc/navigation_modules');
    1718
    18 function exec_action_prets(){
    19 
     19function exec_action_prets()
     20{
    2021        include_spip('inc/autoriser');
    2122        if (!autoriser('associer', 'activites')) {
     
    2324                        echo minipres();
    2425        } else {
    25                 $id_pret=intval($_REQUEST['id_pret']);
     26                $id_pret = intval(_request('id_pret'));
     27
    2628                $id_ressource=$_REQUEST['id_ressource']; // text !
    2729                $id_emprunteur=$_POST['id_emprunteur']; // text !
     
    3840                echo $commencer_page(_T('asso:prets_titre_suppression_prets')) ;
    3941                association_onglets();
    40 
    4142                echo debut_gauche('',true);
    4243                echo debut_boite_info(true);
    43 
    44                 $data = sql_fetsel('*', 'spip_asso_ressources', "id_ressource=" . _q($id_ressource) ) ;
    45                 $statut=$data['statut'];
    46                 echo '<div style="font-weight: bold; text-align: center" class="verdana1 spip_xx-small">'._T('asso:ressources_num').'<br />';
    47                 echo '<span class="spip_xx-large">'.$data['id_ressource'].'</span></div>';
    48                 echo '<p>'._T('asso:ressources_libelle_code').': '.$data['code'].'<br />';
    49                 echo $data['intitule'];
    50                 echo '</p>';
     44                $data = sql_fetsel('*', 'spip_asso_ressources', "id_ressource=$id_ressource" ) ;
     45                $infos['ressources_libelle_code'] = $data['code'];
     46                if (is_numeric($data['statut'])) { /* utilisation des 3 nouveaux statuts numeriques (gestion de quantites/exemplaires) */
     47                        if ($data['statut']>0) {
     48                                $puce = 'verte';
     49                                $type = 'ok';
     50                        } elseif ($data['statut']<0) {
     51                                $puce = 'orange';
     52                                $type = 'suspendu';
     53                        } else {
     54                                $puce = 'rouge';
     55                                $type = 'reserve';
     56                        }
     57                } else {
     58                        switch($data['statut']){ /* utilisation des anciens 4+ statuts textuels (etat de reservation) */
     59                                case 'ok':
     60                                        $puce = 'verte';
     61                                        break;
     62                                case 'reserve':
     63                                        $puce = 'rouge';
     64                                        break;
     65                                case 'suspendu':
     66                                        $puce = 'orange';
     67                                        break;
     68                                case 'sorti':
     69                                case '':
     70                                case NULL:
     71                                        $puce = 'poubelle';
     72                                        break;
     73                        }
     74                        $type = $data['statut'];
     75                }
     76                $infos['statut'] =  '<img src="'._DIR_PLUGIN_ASSOCIATION_ICONES.'puce-'.$puce.'.gif" title="'.$data['statut'].'" alt="" /> '. _T("asso:ressource_statut_$type");
     77                $infos['nombre_prets'] = sql_countsel('spip_asso_prets', "id_ressource=$id_ressource");
     78                echo totauxinfos_intro($data['intitule'] , 'ressource', $id_ressource, $infos );
     79                // datation
    5180                echo association_date_du_jour();
    5281                echo fin_boite_info(true);
     
    5584                echo debut_cadre_relief('', true, '', $titre = _T('asso:prets_titre_suppression_prets'));
    5685                echo '<p><strong>'._T('asso:prets_danger_suppression',array('id_pret' => $id_pret)).'</strong></p>';
    57 
    58                 $res = '<p class="boutons"><input type="submit" value="'._T('asso:bouton_confirmer').'" class="fondo" /></p>';
    59 
     86                $res = '<p class="boutons"><input type="submit" value="'._T('asso:bouton_confirmer').'" /></p>';
    6087                echo redirige_action_post('supprimer_prets', "$id_pret-$id_ressource", 'prets', '', $res);
    61 
    6288                echo fin_cadre_relief(true);
    6389                echo fin_page_association();
  • _plugins_/Association/Associaspip/exec/action_ressources.php

    r57780 r58798  
    1717include_spip ('inc/navigation_modules');
    1818
    19 function exec_action_ressources(){
    20 
     19function exec_action_ressources()
     20{
    2121        $id_ressource=intval(_request('id'));
    2222        include_spip('inc/autoriser');
     
    3030                echo debut_gauche('',true);
    3131                echo debut_boite_info(true);
    32                 $query = sql_select('*', 'spip_asso_ressources', "id_ressource=$id_ressource" ) ;
    33                 while ($data = sql_fetch($query)) {
    34                         $statut=$data['statut'];
    35                         echo '<div style="font-weight: bold; text-align: center" class="verdana1 spip_xx-small">'._T('asso:ressources_num').'<br />';
    36                         echo '<span class="spip_xx-large">'.$data['id_ressource'].'</span></div>';
    37                         echo '<p>'._T('asso:ressources_libelle_code').': '.$data['code'].'<br />';
    38                         echo $data['intitule'];
    39                         echo '</p>';
     32                $data = sql_fetsel('*', 'spip_asso_ressources', "id_ressource=$id_ressource" ) ;
     33                $infos['ressources_libelle_code'] = $data['code'];
     34                if (is_numeric($data['statut'])) { /* utilisation des 3 nouveaux statuts numeriques (gestion de quantites/exemplaires) */
     35                        if ($data['statut']>0) {
     36                                $puce = 'verte';
     37                                $type = 'ok';
     38                        } elseif ($data['statut']<0) {
     39                                $puce = 'orange';
     40                                $type = 'suspendu';
     41                        } else {
     42                                $puce = 'rouge';
     43                                $type = 'reserve';
     44                        }
     45                } else {
     46                        switch($data['statut']){ /* utilisation des anciens 4+ statuts textuels (etat de reservation) */
     47                                case 'ok':
     48                                        $puce = 'verte';
     49                                        break;
     50                                case 'reserve':
     51                                        $puce = 'rouge';
     52                                        break;
     53                                case 'suspendu':
     54                                        $puce = 'orange';
     55                                        break;
     56                                case 'sorti':
     57                                case '':
     58                                case NULL:
     59                                        $puce = 'poubelle';
     60                                        break;
     61                        }
     62                        $type = $data['statut'];
    4063                }
     64                $infos['statut'] =  '<img src="'._DIR_PLUGIN_ASSOCIATION_ICONES.'puce-'.$puce.'.gif" title="'.$data['statut'].'" alt="" /> '. _T("asso:ressource_statut_$type");
     65                $infos['nombre_prets'] = sql_countsel('spip_asso_prets', "id_ressource=$id_ressource");
     66                echo totauxinfos_intro($data['intitule'] , 'ressource', $id_ressource, $infos );
     67                // datation
     68                echo association_date_du_jour();
    4169                echo fin_boite_info(true);
    4270                echo association_retour();
     
    4472                echo debut_cadre_relief('', false, '', $titre = _T('asso:ressources_titre_suppression_ressources'));
    4573                echo '<p><strong>'._T('asso:ressources_danger_suppression', array('id_ressource' => $id_ressource)).'</strong></p>';
    46         $res = '<div style="float:right;"><input type="submit" value="'._T('asso:bouton_confirmer').'" class="fondo" /></div>';
     74                $res = '<div class="formulaire"><form><p class="boutons"><input type="submit" value="'. _T('asso:bouton_confirmer') .'" /></p></form></div>';
    4775                echo redirige_action_post('supprimer_ressources', $id_ressource, 'ressources', '', $res);
    4876                echo fin_cadre_relief(true);
  • _plugins_/Association/Associaspip/exec/activites.php

    r58103 r58798  
    2424                echo minipres();
    2525        } else {
     26                $id_mot = intval(_request('id_mot'));
     27                $annee = intval(_request('annee'));
     28                if(!$annee){
     29                        $annee = date('Y');
     30                }
    2631                $commencer_page = charger_fonction('commencer_page', 'inc');
    2732                echo $commencer_page(_T('asso:titre_gestion_pour_association')) ;
     
    2934                echo debut_gauche('',true);
    3035                echo debut_boite_info(true);
     36                // TOTAUX : nombre d'activites de l'annee en cours repartis par mots-clefs
     37                // TOTAUX : nombre d'activites de l'annee en cours repartis par iscriptions
     38                $liste_libelles = $liste_effectifs = array();
     39                $liste_libelles['pair'] = _T('asso:activites_avec_inscrits');
     40                $liste_effectifs['pair'] = sql_countsel('spip_asso_activites AS a INNER JOIN spip_evenements AS e ON a.id_evenement=e.id_evenement ', "DATE_FORMAT(e.date_debut, '%Y')=$annee AND a.inscrits<>0)");
     41                $liste_libelles['impair'] = _T('asso:activites_sans_inscrits');
     42                $liste_effectifs['impair'] = sql_countsel('spip_asso_activites AS a INNER JOIN spip_evenements AS e ON a.id_evenement=e.id_evenement ', "DATE_FORMAT(e.date_debut, '%Y')=$annee AND a.inscrits=0)");
     43                echo totauxinfos_effectifs('activites', $liste_libelles, $liste_effectifs);
     44                // TOTAUX : montants des participations durant l'annee en cours
     45                $data = sql_fetsel('SUM(recette) AS somme_recettes, SUM(depense) AS somme_depenses', 'spip_asso_comptes', "DATE_FORMAT('date', '%Y')=$annee AND imputation=".sql_quote($GLOBALS['association_metas']['pc_activites']) );
     46                echo totauxinfos_sommes(_T('asso:activites'), $data['somme_recettes'], $data['somme_depenses']);
     47                // datation
    3148                echo association_date_du_jour();
    3249                echo fin_boite_info(true);
    33                 echo association_retour();
    3450                echo debut_droite('',true);
    35                 include_spip('inc/plugin');
    36                 $liste = liste_plugin_actifs();
    37                 if (isset($liste['AGENDA']))
    38                         exec_activites_evenements(_request('mot'));
    39                 else
    40                         echo _T('asso:config_libelle_activites');
     51                echo debut_cadre_relief('', false, '', $titre = _T('asso:activite_titre_toutes_activites'));
     52                // FILTRES
     53                echo "<table class='asso_tablo_filtres'><tr>\n<td width='40%'><p class='pagination'>";
     54                $query = sql_select("DATE_FORMAT(date_debut, '%Y') AS annee", 'spip_evenements', '', 'annee', 'annee');
     55                while ($data = sql_fetch($query)) {
     56                        if ($data['annee']==$annee) {
     57                                echo ' <strong>'.$data['annee'].'</strong> ';
     58                        } else {
     59                                echo ' <a href="'. generer_url_ecrire('activites','annee='.$data['annee'].($id_mot?'&id_mot='.$id_mot:'')).'">'.$data['annee'].'</a> ';
     60                        }
     61                }
     62                if (test_plugin_actif('AGENDA')) { /* le plugin "Agenda 2" peut associer des mots-cles aux evenements */
     63                        if ($id_mot) {
     64                                $mc_sel = ', M.id_mot AS motact';
     65                                $mc_join = ' LEFT JOIN spip_mots_evenements AS A ON  A.id_evenement=E.id_evenement LEFT JOIN spip_mots AS M ON A.id_mot=M.id_mot';
     66                                //$mc_where = "AND (M.id_mot=$id_mot OR M.titre like '$mot' OR M.titre IS NULL)";
     67                                $mc_where = "AND M.id_mot=$id_mot";
     68                        } else {
     69                                $mc_sel = $mc_join = $mc_where = '';
     70                        }
     71                        echo "</p></td><td width='60%' class='formulaire'>";
     72                        echo '<form method="get"><div>';
     73                        echo '<input type="hidden" name="exec" value="activites" />';
     74                        echo '<input type="hidden" name="annee" value="'.$annee.'" />';
     75                        echo '<select name="id_mot" onchange="form.submit()">';
     76                        echo '<option value="">'._T('asso:entete_tous').'</option>';
     77                        $query_groupes = sql_select('id_groupe, titre', 'spip_groupes_mots', "tables_liees LIKE '%evenements%'");
     78                        while($data_groupes = sql_fetch($query_groupes)) {
     79                                echo '<optgroup label="'.$data_groupes['titre'].'">';
     80                                $query_mots = sql_select('id_mot, titre', 'spip_mots', 'id_groupe='.$data_groupes['id_groupe']);
     81                                while($data_mots = sql_fetch($query_mots)) {
     82                                        echo '<option value="'.$data_mots['id_mot'].'"';
     83                                        if ($id_mot==$data_mots['id_mot']) {
     84                                                echo ' selected="selected"';
     85                                        }
     86                                        echo '> '.$data_mots['titre'].'</option>';
     87                                }
     88                                echo '</optgroup>';
     89                        }
     90                        echo '</select><noscript><input type="submit" value="'._T('lister').'" /></noscript></div></form></td>';
     91                } else { /* le plugin "Agenda Simple" par contre n'associee pas directement les mots-cles aux evenements */
     92                        echo '</p></td>';
     93                }
     94                echo "</tr></table>\n";
     95                //TABLEAU
     96                echo "<table width='100%' class='asso_tablo' id='asso_tablo_activites'>\n";
     97                echo "<thead>\n<tr>";
     98                echo '<th>'. _T('asso:entete_id') .'</th>';
     99                echo '<th>'. _T('asso:entete_date') .'</th>';
     100                echo '<th>'. _T('asso:activite_entete_heure') .'</th>';
     101                echo '<th>'. _T('asso:entete_intitule') .'</th>';
     102                echo '<th>'. _T('asso:activite_entete_lieu') .'</th>';
     103                echo '<th>'. _T('asso:activite_entete_inscrits') .'</th>';
     104                echo '<th colspan="3" class="actions">'. _T('asso:entete_action') .'</th>';
     105                echo "</tr>\n</thead><tbody>";
     106                $max_par_page = 30;
     107                $debut = intval(_request('debut'));
     108                if (!$debut) {
     109                        $debut = 0;
     110                }
     111                $query = sql_select('*, E.id_evenement, E.titre AS intitule'.$mc_sel, 'spip_evenements AS E'.$mc_join, "DATE_FORMAT(date_debut, '%Y')=$annee $mc_where", '', 'date_debut DESC', "$debut,$max_par_page");
     112                while ($data = sql_fetch($query)) {
     113                        $inscrits = sql_fetsel('SUM(inscrits) AS total', 'spip_asso_activites', 'id_evenement='.$data['id_evenement']);
     114                        echo '<tr class="'.($inscrits['total']?'pair':'impair').'">';
     115                        echo '<td class="integer">'.$data['id_evenement'].'</td>';
     116                        echo '<td class="date">'. association_datefr($data['date_debut'],'dtstart') .'</td>';
     117                        echo '<td class="date">'. substr($data['date_debut'],10,6) .'</td>';
     118                        echo '<td class="text">'.$data['intitule'].'</td>';
     119                        echo '<td class="text">'.$data['lieu'].'</td>';
     120                        echo '<td class="integer">'.$inscrits['total'].'</td>';
     121                        echo '<td class="actions">'. association_bouton('activite_bouton_modifier_article', 'edit-12.gif', 'articles', 'id_article='.$data['id_article']) . '</td>';
     122                        echo '<td class="actions">'. association_bouton('activite_bouton_ajouter_inscription', 'creer-12.gif', 'edit_activite', 'id_evenement='.$data['id_evenement']) . '</td>';
     123                        echo '<td class="actions">'. association_bouton('activite_bouton_voir_liste_inscriptions', 'voir-12.png', 'voir_activites', 'id='.$data['id_evenement']) . '</td>';
     124                        echo "</tr>\n";
     125                }
     126                echo "</tbody>\n</table>\n";
     127                echo "\n<table width='100%'>\n";
     128                //SOUS-PAGINATION
     129                echo "<table class='asso_tablo_filtres'><tr>\n<td width='40%'><p class='pagination'>";
     130                $nombre_selection = sql_countsel('spip_evenements', "DATE_FORMAT(date_debut, '%Y')=$annee");
     131                $pages = ceil($nombre_selection/$max_par_page);
     132                if ($pages==1) {
     133                        echo '';
     134                } else {
     135                        for ($i=0; $i<$pages; $i++) {
     136                                $position = $i*$max_par_page;
     137                                if ($position==$debut) {
     138                                        echo ' <strong>'.$position.' </strong> ';
     139                                } else {
     140                                        echo '<a href="'.generer_url_ecrire('activites','annee='.$annee.'&debut='.$position.'&imputation='.$imputation).'">'.$position.'</a>  ';
     141                                }
     142                        }
     143                }
     144                echo '</p></td></tr></table>';
     145                echo fin_cadre_relief();
    41146                echo fin_page_association();
    42147        }
    43148}
    44149
    45 function exec_activites_evenements($mot){
    46         echo debut_cadre_relief('', false, '', $titre = _T('asso:activite_titre_toutes_activites'));
    47         // FILTRES
    48         if (!preg_match('/^[\w%]+$/', $mot))
    49                 $mot = '%';
    50         echo '<table width="100%">';
    51         echo '<tr>';
    52         echo '<td>';
    53         $annee=$_GET['annee'];
    54         if(empty($annee)){
    55                 $annee = date('Y');
    56         }
    57         $query = sql_select("DATE_FORMAT(date_debut, '%Y')  AS annee", 'spip_evenements', '', 'annee', 'annee');
    58         while ($data = sql_fetch($query)) {
    59                 if ($data['annee']==$annee) {
    60                         echo ' <strong>'.$data['annee'].'</strong> ';
    61                 } else {
    62                         echo '<a href="'. generer_url_ecrire('activites','annee='.$data['annee'].'&mot='.$mot).'">'.$data['annee'].'</a> ';
    63                 }
    64         }
    65         echo '</td>';
    66         echo '<td style="text-align:right;">';
    67         echo '<form method="post" action="activites"><div>';
    68         echo '<select name ="mot" class="fondl" onchange="form.submit()">';
    69         echo '<option value="%"';
    70         if ($mot=='%') {
    71                 echo ' selected="selected"';
    72         }
    73         echo '> Toutes</option>';
    74         $query = sql_select('titre', 'spip_mots', "type='Evènements'");
    75         while($data = sql_fetch($query)) {
    76                 echo '<option value="'.$data['titre'].'"';
    77                 if ($mot==$data['titre']) {
    78                         echo ' selected="selected"';
    79                 }
    80                 echo '> '.$data['titre']."</option>\n";
    81         }
    82         echo '</select>';
    83         echo '</div></form>';
    84         echo "</td></tr></table>\n";
    85         //TABLEAU
    86         echo "<table border='0' cellpadding='2' cellspacing='0' width='100%' class='arial2' style='border: 1px solid #aaaaaa;'>\n";
    87         echo "<tr style='background-color: #DBE1C5;'>\n";
    88         echo '<th style="text-align:right;">' . _T('asso:id') . '</th>';
    89         echo '<th>'._T('asso:entete_date').'</th>';
    90         echo '<th>'._T('asso:activite_entete_heure').'</th>';
    91         echo '<th>'._T('asso:entete_intitule').'</th>';
    92         echo '<th>'._T('asso:activite_entete_lieu').'</th>';
    93         echo '<th>'._T('asso:activite_entete_inscrits').'</th>';
    94         echo '<th colspan="3" style="text-align:center;">'._T('asso:activite_entete_action').'</th>';
    95         echo '</tr>';
    96         $max_par_page = 30;
    97         $debut = intval($_GET['debut']);
    98         if (!$debut) {
    99                 $debut=0;
    100         }
    101         $query = sql_select('*, E.id_evenement, E.titre AS intitule, M.titre AS motact', 'spip_evenements AS E LEFT JOIN spip_mots_evenements AS A ON  A.id_evenement=E.id_evenement LEFT JOIN spip_mots AS M ON A.id_mot=M.id_mot', "DATE_FORMAT(date_debut, '%Y') = $annee AND (M.titre like '$mot' OR M.titre IS NULL)", '', 'date_debut DESC', "$debut,$max_par_page");
    102         while ($data = sql_fetch($query)) {
    103                 $date = substr($data['date_debut'],0,10);
    104                 $heure = substr($data['date_debut'],10,6);
    105                 echo '<tr style="background-color: #EEEEEE;">';
    106                 echo '<td style="border-top: 1px solid #CCCCCC;text-align:right;">'.$data['id_evenement'].'</td>';
    107                 //echo '<td >'.$jour.'-'.$mois. '-'.$annee.'</td>';
    108                 echo '<td style="border-top: 1px solid #CCCCCC;text-align:right;">'.association_datefr($date).'</td>';
    109                 echo '<td style="border-top: 1px solid #CCCCCC;text-align:right;">'.$heure.'</td>';
    110                 echo '<td style="border-top: 1px solid #CCCCCC;">'.$data['intitule'].'</td>';
    111                 echo '<td style="border-top: 1px solid #CCCCCC;">'.$data['lieu'].'</td>';
    112                 $sql = sql_select('SUM(inscrits) AS total', 'spip_asso_activites', 'id_evenement='.$data['id_evenement']);
    113                 while ($inscrits = sql_fetch($sql)) {
    114                         echo '<td style="border-top: 1px solid #CCCCCC;text-align:right;">'.$inscrits['total'].'</td>';
    115                 }
    116                 echo '<td style="border-top: 1px solid #CCCCCC;text-align:center">' . association_bouton('activite_bouton_modifier_article', 'edit-12.gif', 'articles', 'id_article='.$data['id_article']) . '</td>';
    117                 echo '<td style="border-top: 1px solid #CCCCCC;text-align:center">' . association_bouton('activite_bouton_ajouter_inscription', 'creer-12.gif', 'edit_activite', 'id_evenement='.$data['id_evenement']) . '</td>';
    118                 echo '<td style="border-top: 1px solid #CCCCCC;text-align:center">' . association_bouton('activite_bouton_voir_liste_inscriptions', 'voir-12.png', 'voir_activites', 'id='.$data['id_evenement']) . '</td>';
    119                 echo '</tr>';
    120         }
    121         echo '</table>';
    122         echo "\n<table width='100%'>\n";
    123         echo '<tr>';
    124         //SOUS-PAGINATION
    125         echo '<td>';
    126         $nombre_selection=sql_countsel('spip_evenements', "DATE_FORMAT(date_debut, '%Y')=$annee");
    127                 $pages = ceil($nombre_selection/$max_par_page);
    128         if ($pages==1) {
    129                 echo '';
    130         } else {
    131                 for ($i=0; $i<$pages; $i++) {
    132                         $position = $i*$max_par_page;
    133                         if ($position==$debut) {
    134                                 echo ' <strong>'.$position.' </strong> ';
    135                         } else {
    136                                 echo '<a href="'.generer_url_ecrire('activites','annee='.$annee.'&debut='.$position.'&imputation='.$imputation).'">'.$position.'</a>  ';
    137                         }
    138                 }
    139         }
    140         echo '</td>';
    141         echo '</table>';
    142         fin_cadre_relief();
    143 }
    144 
    145150?>
  • _plugins_/Association/Associaspip/exec/adherents.php

    r58138 r58798  
    2323                echo minipres();
    2424        } else {
     25                /* recuperation des variables */
     26                $critere = request_statut_interne(); // peut appeler set_request
     27                $statut_interne = _request('statut_interne');
     28                $lettre = _request('lettre');
    2529                $commencer_page = charger_fonction('commencer_page', 'inc');
    2630                echo $commencer_page(_T('asso:titre_gestion_pour_association')) ;
    2731                association_onglets(_T('asso:titre_onglet_membres'));
    2832                echo debut_gauche('',true);
    29                 /* recuperation des variables */
    30                 $critere = request_statut_interne(); // peut appeler set_request
    31                 $statut_interne = _request('statut_interne');
    32                 $lettre = _request('lettre');
    3333                echo debut_boite_info(true);
    34                 // TOTAUX : personnes
    35                 echo '<table width="100%" class="asso_stats"><caption>'._T('asso:adherent_liste_nombres').'</caption><tbody>';
    36                 $nombre = $nombre_total = 0;
     34                // TOTAUX : effectifs par statuts
    3735                $membres = $GLOBALS['association_liste_des_statuts'];
    38                 array_shift($membres); // anciens membres
     36                array_shift($membres); // on sort les anciens membres
     37                $liste_libelles = $liste_effectifs = array();
    3938                foreach ($membres as $statut) {
    40                         $nombre = sql_countsel('spip_asso_membres', "statut_interne='$statut'");
    41                         echo '<tr class="'. $GLOBALS['association_styles_des_statuts'][$statut] .'">';
    42                         echo '<td class="text">'._T('asso:adherent_liste_nombre_'.$statut).'</td>';
    43                         echo '<td class="integer">'. association_nbrefr($nombre,0) .'</td>';
    44                         $nombre_total += $nombre;
    45                         echo '</tr>';
    46                 }
    47                 echo '</tbody><tfoot>';
    48                 echo '<tr><th class="text">'._T('asso:liste_nombre_total').'</th>';
    49                 echo '<th class="integer">'. association_nbrefr($nombre_total,0) .'</th></tr>';
    50                 echo '</tfoot></table>';
    51                 // TOTAUX : montants de l'annee courante (TODO: faire plutot l'exercice courant non?)
    52                 $data = sql_fetsel( 'SUM(recette) AS somme_recettes, SUM(depense) AS somme_depenses',
    53                 'spip_asso_comptes', "DATE_FORMAT('date', '%Y')=DATE_FORMAT(NOW(), '%Y') AND imputation=".sql_quote($GLOBALS['association_metas']['pc_cotisations']) );
    54                 $solde = $data['somme_recettes']-$data['somme_depenses'];
    55                 echo '<table width="100%" class="asso_stats">' .'<caption>'. date('Y').': ' . _T('asso:totaux_titre', array('titre'=>'cotisations') ) .'</caption><tbody>' ;
    56                 echo '<tr class="impair">';
    57                 echo '<th class="entree">'. _T('asso:bilan_recettes') .'</th>';
    58                 echo '<td class="decimal">' .association_prixfr($data['somme_recettes']). ' </td>';
    59                 echo '</tr>'.'<tr class="pair">';
    60                 echo '<th class="sortie">'. _T('asso:bilan_depenses') .'</th>';
    61                 echo '<td class="decimal">'.association_prixfr($data['somme_depenses']) .'</td>';
    62                 echo '</tr>'. '<tr class="'.($solde>0?'impair':'pair').'">';
    63                 echo '<th class="solde">'. _T('asso:bilan_solde') .'</th>';
    64                 echo '<td class="decimal">'.association_prixfr($solde).'</td>';
    65                 echo '</tr>'.'</tbody></table>';
    66                 // fin
     39                        $classe_css = $GLOBALS['association_styles_des_statuts'][$statut];
     40                        $liste_libelles[$classe_css] = _T('asso:adherent_liste_nombre_'.$statut);
     41                        $liste_effectifs[$classe_css] = sql_countsel('spip_asso_membres', "statut_interne='$statut'");
     42                }
     43                echo totauxinfos_effectifs('adherents', $liste_libelles, $liste_effectifs);
     44                // TOTAUX : montants des cotisations durant l'annee en cours
     45                $data = sql_fetsel('SUM(recette) AS somme_recettes, SUM(depense) AS somme_depenses', 'spip_asso_comptes', "DATE_FORMAT('date', '%Y')=DATE_FORMAT(NOW(), '%Y') AND imputation=".sql_quote($GLOBALS['association_metas']['pc_cotisations']) );
     46                echo totauxinfos_sommes(_T('asso:cotisations'), $data['somme_recettes'], $data['somme_depenses']);
     47                // datation
    6748                echo association_date_du_jour();
    6849                echo fin_boite_info(true);
     
    124105                        echo '</td><td width="25%" class="formulaire">';
    125106                        echo '<form method="post" action="'.generer_url_ecrire('adherents').'"><div>';
    126                         echo '<select class="fondl" name="id_groupe" onchange="form.submit()">';
     107                        echo '<input type="hidden" name="exec" value="adherents" />';
     108                        echo '<select name="id_groupe" onchange="form.submit()">';
    127109                        $qGroupes = sql_select('nom, id_groupe', 'spip_asso_groupes', '', 'nom');
    128110                        echo '<option value="">'._T('asso:tous_les_groupes').'</option>';
     
    138120                echo '</td><td width="20%" class="formulaire">';
    139121                echo '<form method="post" action="'.generer_url_ecrire('adherents').'"><div>';
    140                 echo '<input type="text" name="id"  class="fondl" onfocus=\'this.value=""\' size="5"  value="'. $id .'" onchange="form.submit()" />';
     122                echo '<input type="text" name="id" onfocus=\'this.value=""\' size="5"  value="'. $id .'" onchange="form.submit()" />';
    141123                echo '<noscript><input type="submit" value="'._T('lister').'" /></noscript></div></form>';
    142124                echo '</td><td width="25%" class="formulaire">';
     
    144126                echo '<form method="post" action="'.generer_url_ecrire('adherents').'"><div>';
    145127                echo '<input type="hidden" name="lettre" value="'.$lettre.'" />';
    146                 echo '<select name="statut_interne" class="fondl" onchange="form.submit()">';
    147                 echo '<option value="defaut">'._T('asso:adherent_entete_statut_defaut').'</option>';
     128                echo '<select name="statut_interne" onchange="form.submit()">';
     129                echo '<option value="defaut">'._T('asso:entete_tous').'</option>';
    148130                foreach ($GLOBALS['association_liste_des_statuts'] as $statut) {
    149131                        echo '<option value="'.$statut.'"';
     
    286268        . "</tbody>\n</table>\n";
    287269        //SOUS-PAGINATION
    288         $res .= "<table clall='asso_tablo_filtres'><tr>\n<td class='pagination0'>";
     270        $res .= "<table class='asso_tablo_filtres'><tr>\n<td width='40%'><p class='pagination'>";
    289271        $nombre_selection = sql_countsel('spip_asso_membres', $critere);
    290272        $pages = intval($nombre_selection/$max_par_page)+1;
     
    300282                }
    301283        }
    302         $res .= "</td><td class='formulaire'>\n"
    303         .  (!$auteurs ? '' : ('<select name="action_adherents"><option value="" selected="">'._T('asso:choisir_action').'</option><option value="desactive">'.($statut_interne=='sorti'?_T('asso:reactiver_adherent'):_T('asso:desactiver_adherent')).'</option><option value="delete">'._T('asso:supprimer_adherent').'</option><option value="grouper">'._T('asso:rejoindre_groupe').'</option><option value="degrouper">'._T('asso:quitter_un_groupe').'</option></select><input type="submit" value="'._T('asso:bouton_confirmer').'" class="fondo" />'))
     284        $res .= "</p></td><td width='60%' class='formulaire'><form>\n"
     285        .  (!$auteurs ? '' : ('<select name="action_adherents"><option value="" selected="">'._T('asso:choisir_action').'</option><option value="desactive">'.($statut_interne=='sorti'?_T('asso:reactiver_adherent'):_T('asso:desactiver_adherent')).'</option><option value="delete">'._T('asso:supprimer_adherent').'</option><option value="grouper">'._T('asso:rejoindre_groupe').'</option><option value="degrouper">'._T('asso:quitter_un_groupe').'</option></select><input type="submit" value="'._T('asso:bouton_confirmer').'" />'))
    304286        . '<input type="hidden" name="statut_courant" value="'.$statut_interne.'" />'
    305         .  '</td></tr></table>';
     287        .  '</form></td></tr></table>';
    306288        return  array($liste_id_auteurs, generer_form_ecrire('action_adherents', $res));
    307289}
  • _plugins_/Association/Associaspip/exec/compte_resultat.php

    r58138 r58798  
    102102        echo '<th width="30">&nbsp;</td>';
    103103        echo '<th>'. (($class==$GLOBALS['association_metas']['classe_charges']) ? _T('asso:cpte_resultat_titre_charges') : _T('asso:cpte_resultat_titre_produits')) .'</th>';
    104         echo '<th width="80">&nbsp;</td>';
     104        echo '<th width="80">&nbsp;</th>';
    105105        echo "</tr>\n</thead><tbody>";
    106106        $quoi = (($class==$GLOBALS['association_metas']['classe_charges']) ? 'SUM(depense) AS valeurs' : 'SUM(recette) AS valeurs');
     
    130130        }
    131131        echo "</tbody><tfoot>\n<tr>";
    132         echo '<td>&nbsp;</td><td>&nbsp;</td>';
     132        echo '<th colspan="2">&nbsp;</th>';
    133133        echo '<th class="text">'. (($class==$GLOBALS['association_metas']['classe_charges']) ? _T('asso:cpte_resultat_total_charges') : _T('asso:cpte_resultat_total_produits')) .'</th>';
    134134        echo '<th class="decimal">'. association_nbrefr($total) . '</th>';
     
    139139function compte_resultat_benefice_perte($recettes, $depenses) {
    140140        echo "<table width='100%' class='asso_tablo' id='asso_tablo_bilan_solde'>\n";
     141        echo "<thead>\n<tr>";
     142        echo '<th width="10">&nbsp;</td>';
     143        echo '<th width="30">&nbsp;</td>';
     144        echo '<th>'. _T('asso:cpte_resultat_titre_restultat') .'</th>';
     145        echo '<th width="80">&nbsp;</th>';
     146        echo "</tr>\n</thead>";
    141147        echo "<tfoot>\n<tr>";
    142         echo '<th width="30">&nbsp;</td>';
     148        echo '<th colspan="2">&nbsp;</th>';
    143149        $res = $recettes-$depenses;
    144150        echo '<th class="text">'. (($res<0) ? _T('asso:cpte_resultat_perte') : _T('asso:cpte_resultat_benefice')) .'</th>';
    145         echo '<th width="80" class="decimal">'. association_nbrefr($res) .'</th>';
     151        echo '<th class="decimal">'. association_nbrefr($res) .'</th>';
    146152        echo "</tr></tfoot></table>";
    147153}
  • _plugins_/Association/Associaspip/exec/comptes.php

    r57979 r58798  
    4343                        $id_compte = '';
    4444                $debut = intval(_request('debut'));
     45                $exercice_data = sql_asso1ligne('exercice', $exercice);
    4546// traitements
    4647                $where = 'imputation LIKE '. sql_quote($imputation);
    4748                $where .= (!is_numeric($vu) ? '' : (" AND vu=$vu"));
    48                 $where .= " AND date>='".exercice_date_debut($exercice)."' AND date<='".exercice_date_fin($exercice)."'";
     49                $where .= " AND date>='$exercice_data[debut]' AND date<='$exercice_data[fin]'";
    4950                $commencer_page = charger_fonction('commencer_page', 'inc');
    5051                echo $commencer_page(_T('asso:titre_gestion_pour_association')) ;
     
    5354                echo debut_boite_info(true);
    5455                // TOTAUX : operations de l'exercice
    55                 echo '<table width="100%" class="asso_stats"><caption>'._T('asso:compte_liste_nombres').'</caption><tbody>';
    56                 $nombre = $nombre_total = 0;
    57                 $classes = array('produits'=>'pair', 'charges'=>'impair', 'contributions_volontaires'=>'cv', 'banques'=>'vi');
    58                 foreach ($classes as $classe_cpt=>$classe_css) {
    59                         $nombre = sql_countsel('spip_asso_membres', "LEFT(imputation,1)='".$GLOBALS['association_metas']["classe_$classe_cpt"]."' AND date >='".exercice_date_debut($exercice)."' AND date <='".exercice_date_fin($exercice)."' ");
    60                         echo '<tr class="'.$classe_css.'">';
    61                         echo '<td class"text">'._T('asso:adherent_liste_nombre_'.$classe_css).'</td>';
    62                         echo '<td class="integer">'. association_nbrefr($nombre,0) .'</td>';
    63                         $nombre_total += $nombre;
    64                         echo '</tr>';
    65                 }
    66                 echo '</tbody><tfoot>';
    67                 echo '<tr><th class="text">'._T('asso:liste_nombre_total').'</th>';
    68                 echo '<th class="integer">'. association_nbrefr($nombre_total,0) .'</th></tr>';
    69                 echo '</tfoot></table>';
     56                $classes = array('pair'=>'produits', 'impair'=>'charges', 'cv'=>'contributions_volontaires', 'vi'=>'banques');
     57                $liste_libelles = $liste_effectifs = array();
     58                foreach ($classes as $classe_css=>$classe_cpt) {
     59                        $liste_effectifs[$classe_css] = sql_countsel('spip_asso_comptes', "LEFT(imputation,1)='".$GLOBALS['association_metas']["classe_$classe_cpt"]."' AND date>='$exercice_data[debut]' AND date<='$exercice_data[fin]' ");
     60                        $liste_libelles[$classe_css] = 'compte_liste_nombre_'.$classe_css;
     61                }
     62                echo totauxinfos_effectifs('comptes', $liste_libelles, $liste_effectifs);
    7063                // TOTAUX : montants de l'exercice
    71                 echo comptes_totaux($where, $imputation);
     64                $data = sql_fetsel( 'SUM(recette) AS somme_recettes, SUM(depense) AS somme_depenses, code, classe',  'spip_asso_comptes RIGHT JOIN spip_asso_plan ON imputation=code', "$where AND classe<>".sql_quote($GLOBALS['association_metas']['classe_banques']). " AND classe<>".sql_quote($GLOBALS['association_metas']['classe_contributions_volontaires']) ); // une contribution benevole ne doit pas etre comptabilisee en charge/produit
     65                echo totauxinfos_sommes(($imputation=='%' ? _T('asso:tous') : $imputation), $data['somme_recettes'], $data['somme_depenses']);
     66                // datation
    7267                echo association_date_du_jour();
    7368                echo fin_boite_info(true);
     
    7570                $url_compte_resultat = generer_url_ecrire('compte_resultat', "exercice=$exercice");
    7671                $url_annexe = generer_url_ecrire('annexe', "exercice=$exercice");
    77                 $res = '<p><strong>Exercice : '.exercice_intitule($exercice).'</strong><p>'
     72                $res = '<p><strong>Exercice : '.$exercice_data['intitule'].'</strong><p>'
    7873                . association_icone(_T('asso:cpte_resultat_titre_general'),  $url_compte_resultat, 'finances.jpg')
    7974                . association_icone(_T('asso:bilan'),  $url_bilan, 'finances.jpg')
     
    110105                        'spip_asso_comptes RIGHT JOIN spip_asso_plan ON imputation=code',
    111106                        /* ne pas afficher les codes de la classe financiere : ce n'est pas une imputation et les inactifs  */
    112                         "classe <> '".$GLOBALS['association_metas']['classe_banques']."' AND active AND date >='".exercice_date_debut($exercice)."' AND date <='".exercice_date_fin($exercice).'\'',
     107                        "classe<>'".$GLOBALS['association_metas']['classe_banques']."' AND active AND date>='$exercice_data[debut]' AND date<='$exercice_data[fin]' ",
    113108                        'code', 'code ASC');
    114109                while ($plan = sql_fetch($sql)) {
     
    137132                if ($table) {
    138133                        //SOUS-PAGINATION
    139                         $nombre_selection=sql_countsel('spip_asso_comptes', $where);
    140                         $pages=intval($nombre_selection/$max_par_page)+1;
     134                        $nombre_selection = sql_countsel('spip_asso_comptes', $where);
     135                        $pages = intval($nombre_selection/$max_par_page)+1;
    141136                        $args = 'exercice='.$exercice.'&imputation='.$imputation. (is_numeric($vu) ? "&vu=$vu" : '');
    142137                        $nav = '';
     
    160155                        . '<th>'. _T('asso:entete_montant') .'</th>'
    161156                        . '<th>'. _T('asso:compte_entete_financier') .'</th>'
    162                         . '<th colspan="3" class="actions">&nbsp;</th>'
     157                        . '<th colspan="3" class="actions">'._T('asso:entete_action').</th>'
    163158                        . "</tr>\n</thead><tbody>"
    164159                        . $table
     
    198193                        $onload_option = '';
    199194                }
    200                 $comptes .= "\n<tr id='id_compte$id'>"
     195                $comptes .= "\n<tr id='id_compte$id' class='$class'>"
    201196                . '<td class="integer">'.$id.'</td>'
    202197                . '<td class="date">'. association_datefr($data['date']) .'</td>'
     
    222217}
    223218
    224 function comptes_totaux($where, $imputation)
    225 {
    226         $where .= " AND classe <> " . sql_quote($GLOBALS['association_metas']['classe_banques']). " AND classe <> " .sql_quote($GLOBALS['association_metas']['classe_contributions_volontaires']); // une contribution benevole ne doit pas etre comptabilisee en charge/produit
    227         $data = sql_fetsel( 'SUM(recette) AS somme_recettes, SUM(depense) AS somme_depenses, code, classe',
    228                 'spip_asso_comptes RIGHT JOIN spip_asso_plan ON imputation=code', $where);
    229         $solde = $data['somme_recettes']-$data['somme_depenses'];
    230         return '<table width="100%">' .'<caption>'.
    231           _T('asso:totaux_titre', array('titre'=>($imputation=='%' ? '' : ' '.$imputation)) ).
    232          '</caption><tbody>' .
    233          '<tr class="impair">' .
    234          '<th class="entree">'. _T('asso:bilan_recettes') .'</th>' .
    235          '<td class="decimal">' .association_prixfr($data['somme_recettes']). ' </td>' .
    236          '</tr>'.'<tr class="pair">' .
    237          '<th class="sortie">'. _T('asso:bilan_depenses') .'</th>' .
    238          '<td class="decimal">'.association_prixfr($data['somme_depenses']) .'</td>' .
    239          '</tr>'. '<tr class="'.($solde>0?'impair':'pair').'">' .
    240          '<th class="solde">'. _T('asso:bilan_solde') .'</th>' .
    241          '<td class="decimal">'.association_prixfr($solde).'</td>' .
    242          '</tr>'.'</tbody></table>';
    243 }
    244 
    245219?>
  • _plugins_/Association/Associaspip/exec/prets.php

    r58138 r58798  
    2424                echo minipres();
    2525        } else {
     26                $id_ressource = intval(_request('id'));
    2627                $commencer_page = charger_fonction('commencer_page', 'inc');
    2728                echo $commencer_page(_T('asso:prets_titre_liste_reservations')) ;
     
    2930                echo debut_gauche('',true);
    3031                echo debut_boite_info(true);
    31                 $id_ressource = intval(_request('id'));
    32                 $data = sql_fetsel('*', 'spip_asso_ressources', "id_ressource=$id_ressource" ) ;
    33                 echo '<div style="font-weight: bold; text-align: center" class="verdana1 spip_xx-small">'._T('asso:ressources_num').'<br />';
    34                 echo '<span class="spip_xx-large">'.$data['id_ressource'].'</span></div>';
    35                 echo '<p>'._T('asso:ressources_libelle_code').': '.$data['code'].'</p>';
    36                 echo '<p>'._T('asso:ressources_libelle_statut').': '._T('asso:ressources_libelle_statut_'.$data['statut']).'</p>';
    37                 echo '<p>'.$data['intitule'].'</p>';
     32                $ressource = sql_fetsel('*', 'spip_asso_ressources', "id_ressource=$id_ressource" ) ;
     33                $unite = $data['ud'];
     34                $infos['ressources_libelle_code'] = $data['code'];
     35                if (is_numeric($data['statut'])) { /* utilisation des 3 nouveaux statuts numeriques (gestion de quantites/exemplaires) */
     36                        if ($data['statut']>0) {
     37                                $puce = 'verte';
     38                                $type = 'ok';
     39                        } elseif ($data['statut']<0) {
     40                                $puce = 'orange';
     41                                $type = 'suspendu';
     42                        } else {
     43                                $puce = 'rouge';
     44                                $type = 'reserve';
     45                        }
     46                } else {
     47                        switch($data['statut']){ /* utilisation des anciens 4+ statuts textuels (etat de reservation) */
     48                                case 'ok':
     49                                        $puce = 'verte';
     50                                        break;
     51                                case 'reserve':
     52                                        $puce = 'rouge';
     53                                        break;
     54                                case 'suspendu':
     55                                        $puce = 'orange';
     56                                        break;
     57                                case 'sorti':
     58                                case '':
     59                                case NULL:
     60                                        $puce = 'poubelle';
     61                                        break;
     62                        }
     63                        $type = $data['statut'];
     64                }
     65                $infos['statut'] =  '<img src="'._DIR_PLUGIN_ASSOCIATION_ICONES.'puce-'.$puce.'.gif" title="'.$data['statut'].'" alt="" /> '. _T("asso:ressources_libelle_statut_$type");
     66                $stats = sql_fetsel('AVG(duree) AS moyenne, STDDEV(duree) AS variance', 'spip_asso_prets', "id_ressource=$id_ressource");
     67                $infos['duree_emprunt_moyenne'] = association_dureefr($stats['moyenne'],$unite);
     68                $infos['duree_emprunt_ecart_type'] = association_dureefr(sqrt($stats['variance']),$data['unite']);
     69                echo totauxinfos_intro($data['intitule'] , 'ressource', $id_ressource, $infos );
     70                // TOTAUX : nombres d'emprunts de la ressource depuis le debut
     71                $liste_libelles = $liste_effectifs = array();
     72                $liste_libelles['pair'] = _T('asso:prets_restitues'); // restitues, termines, anciens, ...
     73                $liste_libelles['impair'] = _T('asso:prets_en_cours'); // dus, en attente, en cours, nouveaux, ...
     74                $liste_effectifs['pair'] = sql_countsel('spip_asso_prets', "id_ressource=$id_ressource AND date_retour>=date_sortie");
     75                $liste_effectifs['impair'] = sql_countsel('spip_asso_prets', "id_ressource=$id_ressource AND date_retour<date_sortie");
     76                // TOTAUX : montants generes par les umprunts de la ressources
     77                $quantiteFacturee = sql_fetsel('SUM(duree) AS totale', 'spip_asso_prets', "id_ressource=$id_ressource");
     78                echo totauxinfos_sommes(_T('asso:emprunts'), $data['pu']*$quantiteFacturee['totale'], NULL);
     79                // datation
    3880                echo association_date_du_jour();
    3981                echo fin_boite_info(true);
    40                 echo bloc_des_raccourcis(association_icone(_T('asso:prets_nav_ajouter'), generer_url_ecrire('edit_pret','id_ressource='.$id_ressource.'&id_pret='), 'livredor.png', 'creer.gif'));
    41                 echo association_retour();
     82                $res = ($data['statut']=='ok' || $data['statut']>0) ? association_icone(_T('asso:prets_nav_ajouter'), generer_url_ecrire('edit_pret','id_ressource='.$id_ressource.'&id_pret='), 'creer-12.gif') : '';
     83                $res .= association_icone(_T('asso:bouton_retour'), generer_url_ecrire('ressources'), 'retour-24.png');
     84                echo bloc_des_raccourcis($res);
    4285                echo debut_droite('',true);
    4386                echo debut_cadre_relief('', false, '', $titre =_T('asso:prets_titre_liste_reservations'));
     
    4588                echo "<thead>\n<tr>";
    4689                echo '<th>'._T('asso:entete_id').'</th>';
    47                 echo '<th>&nbsp;</th>';
    4890                echo '<th>'._T('asso:prets_entete_date_sortie').'</th>';
    4991                echo '<th>'._T('asso:entete_nom').'</th>';
     
    5496                $query = sql_select('*', 'spip_asso_prets', "id_ressource=$id_ressource", '', 'date_sortie DESC' );
    5597                while ($data = sql_fetch($query)) {
    56                         echo '<tr>';
     98                        echo '<tr class="'.($data['date_retour']<$data['date_sortie']?'pair':'impair').'">';
    5799                        echo '<td class="integer">'.$data['id_pret'].'</td>';
    58                         $statut_pret = $data['statut'];
    59                         switch($statut_pret) {
    60                                 case 'du':
    61                                         $puce = 'rouge';
    62                                         break;
    63                                 case 'attendu':
    64                                         $puce = 'orange';
    65                                         break;
    66                                 case 'annule':
    67                                         $puce = 'poubelle';
    68                                         break;
    69                                 case 'ok':
    70                                 default:
    71                                         $puce = 'verte';
    72                                         break;
    73                         }
    74                         echo '<td class="actions">'. http_img_pack('puce-'.$puce.'.gif', $statut_pret), '</td>';
    75100                        echo '<td class="date">'. association_datefr($data['date_sortie'], 'dtstart') .'</td>';
    76101                        $id_emprunteur = intval($data['id_emprunteur']);
    77102                        $auteur = sql_fetsel('*', 'spip_asso_membres', "id_auteur=$id_emprunteur");
    78103                        echo '<td class="n">'.association_calculer_nom_membre($auteur['sexe'], $auteur['prenom'], $auteur['nom_famille'],'span');
    79                         echo '</td><td class="date">' .association_dureefr($data['duree'],'j') .'</td>';
    80                         echo '<td class="date">'. ($data['date_retour']=='0000-00-00' ? '&nbsp' : association_datefr($data['date_retour'],'dtend') ) .'</td>';
     104                        echo '</td><td class="date">' .association_dureefr($data['duree'],$unite) .'</td>';
     105                        echo '<td class="date">'. ($data['date_retour']<$data['date_sortie'] ? '&nbsp' : association_datefr($data['date_retour'],'dtend') ) .'</td>';
    81106                        echo '<td class="actions">'. association_bouton('prets_nav_annuler', 'poubelle-12.gif', 'action_prets', 'id_pret='.$data['id_pret'].'&id_ressource='.$id_ressource) .'</td>';
    82107                        echo '<td class="actions">' . association_bouton('prets_nav_editer', 'edit-12.gif', 'edit_pret', 'id_pret='.$data['id_pret']) . '</td>';
  • _plugins_/Association/Associaspip/exec/ressources.php

    r57982 r58798  
    2929                echo debut_gauche('',true);
    3030                echo debut_boite_info(true);
     31                // EXPLICATION
    3132                echo '<p>'._T('asso:ressources_info').'</p>';
    32                 echo '<img src="'._DIR_PLUGIN_ASSOCIATION_ICONES.'puce-verte.gif" alt="', _T('asso:Libre'), '" /> ', _T('asso:Libre'), '<br />';
    33                 echo '<img src="'._DIR_PLUGIN_ASSOCIATION_ICONES.'puce-orange.gif" alt="', _T('asso:En_suspend'), '" /> ', _T('asso:En_suspend'), '<br />';
    34                 echo '<img src="'._DIR_PLUGIN_ASSOCIATION_ICONES.'puce-rouge.gif" alt="', _T('asso:reserve'), '" /> ', _T('asso:reserve'), '<br />';
    35                 echo '<img src="'._DIR_PLUGIN_ASSOCIATION_ICONES.'puce-poubelle.gif" alt="', _T('asso:supprime'), '" /> ', _T('asso:supprime');
     33                // TOTAUX : nombre de ressources par statut
     34                $liste_libelles['valide'] = '<img src="'._DIR_PLUGIN_ASSOCIATION_ICONES.'puce-verte.gif" alt="" /> '. _T('asso:ressources_libelle_statut_ok') ;
     35                $liste_effectifs['valide'] = sql_countsel('spip_asso_ressources', "(statut='ok') OR (ISNUMERIC(statut) AND statut>0)");
     36                $liste_libelles['prospect'] = '<img src="'._DIR_PLUGIN_ASSOCIATION_ICONES.'puce-orange.gif" alt="" /> '. _T('asso:ressources_libelle_statut_suspendu') ;
     37                $liste_effectifs['prospect'] = sql_countsel('spip_asso_ressources', "(statut='suspendu') OR (ISNUMERIC(statut) AND statut<0)");
     38                $liste_libelles['cv'] = '<img src="'._DIR_PLUGIN_ASSOCIATION_ICONES.'puce-rouge.gif" alt="" /> '. _T('asso:ressources_libelle_statut_reserve') ;
     39                $liste_effectifs['cv'] = sql_countsel('spip_asso_ressources', "(statut='reserve') OR (ISNUMERIC(statut) AND statut=0)");
     40                $liste_libelles['sorti'] = '<img src="'._DIR_PLUGIN_ASSOCIATION_ICONES.'puce-poubelle.gif" alt="" /> '. _T('asso:ressources_libelle_statut_sorti') ;
     41                $liste_effectifs['sorti'] = sql_countsel('spip_asso_ressources', "statut IN ('sorti','',NULL)");
     42                echo totauxinfos_effectifs('ressources', $liste_libelles, $liste_effectifs);
     43                // TOTAUX : montants des locations sur l'annee en cours
     44                $data = sql_fetsel('SUM(recette) AS somme_recettes, SUM(depense) AS somme_depenses', 'spip_asso_comptes', "DATE_FORMAT('date', '%Y')=DATE_FORMAT(NOW(), '%Y') AND imputation=".sql_quote($GLOBALS['association_metas']['pc_prets']) );
     45                echo totauxinfos_sommes(_T('asso:ressources'), $data['somme_recettes'], $data['somme_depenses']);
    3646                echo fin_boite_info(true);
    3747                echo bloc_des_raccourcis(association_icone(_T('asso:ressources_nav_ajouter'),  generer_url_ecrire('edit_ressource'), 'ajout_don.png'));
     
    4353                echo '<th>&nbsp;</th>';
    4454                echo '<th>'._T('asso:entete_intitule').'</th>';
    45                 echo '<th>'._T('asso:ressources_entete_code').'</th>';
     55                echo '<th>'._T('asso:entete_code').'</th>';
    4656                echo '<th>'._T('asso:entete_montant').'</th>';
    4757                echo '<th colspan="3" class="actions">'._T('asso:entete_action').'</th>';
     
    4959                $query = sql_select('*', 'spip_asso_ressources', '','',  'id_ressource') ;
    5060                while ($data = sql_fetch($query)) {
    51                         echo '<tr>';
     61                        if (is_numeric($data['statut'])) { /* utilisation des 3 nouveaux statuts numeriques (gestion de quantites/exemplaires) */
     62                                if ($data['statut']>0) { // ex: 'ok' (disponible ou libre)
     63                                        $puce = 'verte';
     64                                        $css = 'valide';
     65                                } elseif ($data['statut']<0) { // ex: 'suspendu' (plus en pret)
     66                                        $puce = 'orange';
     67                                        $css = 'prospect';
     68                                } else { // ex: 'reserve' (temporairement indisponible)
     69                                        $puce = 'rouge';
     70                                        $css = 'cv';
     71                                }
     72                        } else switch($data['statut']){ /* utilisation des anciens 4+ statuts textuels (etat de reservation) */
     73                                case 'ok':
     74                                        $puce = 'verte';
     75                                        $css = 'valide';
     76                                        break;
     77                                case 'reserve':
     78                                        $puce = 'rouge';
     79                                        $css = 'cv';
     80                                        break;
     81                                case 'suspendu':
     82                                        $puce = 'orange';
     83                                        $css = 'prospect';
     84                                        break;
     85                                case 'sorti':
     86                                case '':
     87                                case NULL:
     88                                        $puce = 'poubelle';
     89                                        $css = 'sorti';
     90                                        break;
     91                        }
     92                        echo "<tr class='$css'>";
    5293                        echo '<td class="integer">'.$data['id_ressource'].'</td>';
    53                         switch($data['statut']){
    54                                 case 'ok':
    55                                         $puce = 'verte'; break;
    56                                 case 'reserve':
    57                                         $puce = 'rouge'; break;
    58                                 case 'suspendu':
    59                                         $puce = 'orange'; break;
    60                                 case 'sorti':
    61                                         $puce = 'poubelle'; break;
    62                         }
    63                         echo '<td class="actions">'.association_bouton('','puce-'.$puce.'.gif','').'</td>';
     94                        echo '<td class="actions">'. association_bouton('','puce-'.$puce.'.gif', '', '', 'title="'.$data['statut'].'"') .'</td>';
    6495                        echo '<td class="text">'.$data['intitule'].'</td>';
    6596                        echo '<td class="text">'.$data['code'].'</td>';
  • _plugins_/Association/Associaspip/exec/ventes.php

    r58103 r58798  
    2525        } else {
    2626                $annee = intval(_request('annee'));
    27                 if(!$annee) $annee = date('Y');
     27                if(!$annee)
     28                        $annee = date('Y');
    2829                $commencer_page = charger_fonction('commencer_page', 'inc');
    2930                echo $commencer_page(_T('asso:titre_gestion_pour_association')) ;
     
    3132                echo debut_gauche('',true);
    3233                echo debut_boite_info(true);
    33                 echo '<p>', _T('asso:en_rose_vente_enregistree_en_bleu_vente_expediee') .'</p>';
    34                 // TOTAUX
    35                 $association_imputation = charger_fonction('association_imputation', 'inc');
    36                 $critere = $association_imputation('pc_ventes');
    37                 if ($critere) $critere .= ' AND ';
    38                 $query = sql_select('imputation, sum(recette) AS somme_recettes, sum(depense) AS somme_depenses', 'spip_asso_comptes', $critere . "DATE_FORMAT(date, '%Y')=$annee", "imputation");
    39                 while ($data = sql_fetch($query)) {
    40                         $solde = $data['somme_depenses']+$data['somme_recettes'];
    41                         $imputation = $data['imputation'];
    42                         echo '<table width="100%">' .'<caption>'.
    43           _T('asso:totaux_titre', array('titre'=>$annee)) .'</caption><tbody>';
    44                         echo '<tr class="'.($solde>0?'impair':'pair').'">';
    45                         echo '<th class="solde">'.  _T('asso:entete_solde') . '</th>';
    46                         echo '<td class="decimal">'.association_prixfr($solde).'</td>';
    47                         echo '</tr>';
    48                         echo '</tbody></table>';
    49                 }
     34                // TOTAUX : nombre de ventes selon etat de livraison
     35                $liste_libelles = array('pair'=>'ventes_enregistrees', 'impair'=>'ventes_expediees', );
     36                $liste_effectifs['pair'] = sql_countsel('spip_asso_ventes', "date_envoi<date_vente AND  DATE_FORMAT(date_vente, '%Y')=$annee ");
     37                $liste_effectifs['impair'] = sql_countsel('spip_asso_ventes', "date_envoi>=date_vente AND  DATE_FORMAT(date_vente, '%Y')=$annee ");
     38                echo totauxinfos_effectifs('ventes', $liste_libelles, $liste_effectifs);
     39                // TOTAUX : montants des ventes et des frais de port
     40                $data1 = sql_fetsel('SUM(recette) AS somme_recettes, SUM(depense) AS somme_depenses', 'spip_asso_comptes', "DATE_FORMAT(date, '%Y')=$annee AND imputation=".sql_quote($GLOBALS['association_metas']['pc_ventes']) );
     41                $data2 = sql_fetsel('SUM(recette) AS somme_recettes, SUM(depense) AS somme_depenses', 'spip_asso_comptes', "DATE_FORMAT(date, '%Y')=$annee AND imputation=".sql_quote($GLOBALS['association_metas']['pc_frais_envoi']) );
     42                echo totauxinfos_sommes($annee, $data1['somme_recettes']-$data1['somme_depenses'], $data2['somme_depenses']-$data2['somme_recettes']);
     43                // datation
    5044                echo association_date_du_jour();
    5145                echo fin_boite_info(true);
    52                 $res=association_icone(_T('asso:ajouter_une_vente'),  generer_url_ecrire('edit_vente'), 'ajout_don.png');
     46                $res = association_icone(_T('asso:ajouter_une_vente'),  generer_url_ecrire('edit_vente'), 'ajout_don.png');
    5347                echo bloc_des_raccourcis($res);
    5448                echo debut_droite('',true);
     
    6862                echo '<th>'. _T('asso:entete_id') .'</th>';
    6963                echo '<th>'. _T('asso:entete_date') .'</th>';
    70                 echo '<th>'. _T('asso:vente_entete_article') .'</th>';
     64                echo '<th>'. _T('asso:entete_intitule') .'</th>';
    7165                echo '<th>'. _T('asso:entete_code') .'</th>';
    72                 echo '<th>'. _T('asso:vente_entete_acheteur') .'</th>';
     66                echo '<th>'. _T('asso:entete_nom') .'</th>';
    7367                echo '<th>'. _T('asso:vente_entete_quantite') . '</th>';
    7468                echo '<th>'. _T('asso:entete_montant') .'</th>';
    75                 echo '<th colspan="2" class="actions">&nbsp;</th>';
     69                echo '<th colspan="2" class="actions">'._T('asso:entete_action').'</th>';
    7670                echo "</tr>\n</thead><tbody>";
    7771                $query = sql_select('*', 'spip_asso_ventes', "DATE_FORMAT(date_vente, '%Y')=$annee", '',  'id_vente DESC') ;
    7872                while ($data = sql_fetch($query)) {
    79                         $class = ' class="'. ($data['date_envoi']=='0000-00-00' ?'pair':'impair') . '"';
     73                        $class = ' class="'. ($data['date_envoi']<$data['date_vente'] ?'pair':'impair') . '"';
    8074                        $id = $data['id_vente'];
    81                         echo "<tr$class'>";
     75                        echo "<tr$class>";
    8276                        echo '<td class="integer">'.$id.'</td>';
    8377                        echo '<td class="date">'. association_datefr($data['date_vente'],'dtstart') .'</td>';
    84                         echo '<td class="text">'.propre($data['article']).'</td>';
     78                        echo '<td class="text">'. (test_plugin_actif('CATALOGUE') && (intval($data['article'])==$data['article']) ? association_calculer_lien_nomid('',$data['article'],'article') : propre($data['article']) ) .'</td>';
    8579                        echo '<td class="texte">'.$data['code'].'</td>';
    8680                        echo '<td class="text">'. association_calculer_lien_nomid($data['acheteur'],$data['id_acheteur']) .'</td>';
  • _plugins_/Association/Associaspip/exec/voir_activites.php

    r57979 r58798  
    2626                $liste = liste_plugin_actifs();
    2727                $agenda = isset($liste['agenda']);
    28                 $id_evenement= intval(_request('id'));
     28                $id_evenement = intval(_request('id'));
    2929                if ( isset ($_POST['statut'] )) {
    3030                        $statut =  $_POST['statut'];
    3131                } else {
    32                         $statut= "%";
     32                        $statut = "%";
    3333                }
    3434                $commencer_page = charger_fonction('commencer_page', 'inc');
     
    3737                echo debut_gauche('',true);
    3838                echo debut_boite_info(true);
     39                $evenement = sql_fetsel('*', 'spip_evenements', "id_evenement=$id_evenement") ;
     40                // Rappel Infos Evenement
     41                $infos['date_debut'] = association_datefr($evenement['date_debut'],'dtstart').' '.substr($data['date_debut'],10,6);
     42                $infos['date_fin'] = association_datefr($evenement['date_fin'],'dtend').' '.substr($data['date_debut'],10,6);
     43                $infos['lieu'] = $evenement['lieu'];
     44                $stats = sql_fetsel('AVG(inscrits) AS moy_i, STDDEV(inscrits) AS var_i, AVG(montant) AS moy_m, STDDEV(montant) AS var_m ', 'spip_asso_activites', "id_evenement=$id_evenement");
     45                $infos['inscrits_par_personne_moyenne'] = _T('asso:duree_temps', array('nombre'=>association_nbrefr($stats['moy_i'],1), 'unite'=>_T('personnes')) );
     46                $infos['inscrits_par_personne_ecart_type'] = _T('asso:duree_temps', array('nombre'=>association_nbrefr(sqrt($stats['var_i']),1), 'unite'=>_T('personnes')) );
     47                $infos['montant_par_personne_moyenne'] = association_prixfr($stats['moy_m']);
     48                $infos['montant_par_personne_ecart_type'] = association_prixfr(sqrt($stats['var_i']));
     49                echo totauxinfos_intro($evenement['titre'] , 'evenement', $id_evenement, $infos );
     50                // TOTAUX : nombres d'inscrits par etat de paiement
     51                $liste_libelles = $liste_effectifs = array();
     52                $liste_libelles['valide'] = _T('asso:activite_entete_validees');
     53                $liste_libelles['pair'] = _T('asso:activite_entete_impayees');
     54                $liste_effectifs['valide'] = sql_countsel('spip_asso_activites', "id_evenement=$id_evenement AND statut='ok'");
     55                $liste_effectifs['impair'] = sql_countsel('spip_asso_activites', "id_evenement=$id_evenement AND statut<>'ok'");
     56                echo totauxinfos_effectifs('activites', $liste_libelles, $liste_effectifs);
     57                // TOTAUX : montants des participations validees
     58                $montant = sql_fetsel('SUM(montant) AS encaisse', 'spip_asso_activites', "id_evenement=$id_evenement AND statut='ok' " );
     59                echo totauxinfos_sommes(_T('asso:participations'), $montant['encaisse'], NULL);
     60                // datation
    3961                echo association_date_du_jour();
    40                 if ($agenda) {
    41                         $query = sql_select('*', 'spip_evenements', "id_evenement=$id_evenement") ;
    42                         while ($data = sql_fetch($query)) {
    43                                 echo '<p><strong>'.$data['date_debut'].'<br />'.$data['titre'].'</strong></p>';
    44                                 echo '<p>'._T('asso:activite_liste_legende').'</p>';
    45                         }
     62                echo fin_boite_info(true);
     63                $res = association_icone(_T('asso:activite_bouton_ajouter_inscription'),  generer_url_ecrire('edit_activite', 'id_evenement='.$id_evenement), 'panier_in.gif');
     64                if (test_plugin_actif('FPDF')) {
     65                        $res .= association_icone(_T('asso:activite_bouton_voir_liste_inscriptions'),  generer_url_ecrire('pdf_activite','id='.$id_evenement), 'print-24.png');
    4666                }
    47                 // TOTAUX
    48                 $query = sql_select('SUM(inscrits) AS inscrits, SUM(montant) AS encaisse', 'spip_asso_activites', "id_evenement='$id_evenement' AND statut ='ok' " );
    49                 while ($data = sql_fetch($query)) {
    50                         echo '<p><strong style="color:blue;">';
    51                         echo _T('asso:activite_liste_nombre_inscrits',array('total' => $data['inscrits'])).'</strong><br />';
    52                         echo '<strong style="color: #9F1C30;">';
    53                         echo _T('asso:activite_liste_total_participations',array('total' => association_prixfr($data['encaisse'])));
    54                         echo '</strong><br/></p>';
    55                 }
    56                 echo fin_boite_info(true);
    57                 $res=association_icone(_T('asso:activite_bouton_ajouter_inscription'),  generer_url_ecrire('edit_activite', 'id_evenement='.$id_evenement), 'panier_in.gif');
    58                 $res.=association_icone(_T('asso:activite_bouton_voir_liste_inscriptions'),  generer_url_ecrire('pdf_activite','id='.$id_evenement), 'print-24.png');
    59 
     67                $res .= association_icone(_T('asso:bouton_retour'), generer_url_ecrire('activites','annee='.substr($evenement['date_debut'],0,4)), 'retour-24.png');
    6068                echo bloc_des_raccourcis($res);
    6169                echo debut_droite('',true);
    6270                echo debut_cadre_relief('', false, '', $titre = _T('asso:activite_titre_inscriptions_activites'));
    6371        // PAGINATION ET FILTRES
    64                 echo '<table width="100%">';
    65                 echo '<tr>';
    66                 if ($agenda) {
    67                         $data = sql_fetsel('*', 'spip_evenements', "id_evenement=$id_evenement") ;
    68                         $date = substr($data['date_debut'],0,10);
    69                         $date = association_datefr($date); // ne sert pas ????
    70                         $titre = $data['titre']; // non plus
    71                 }
    72                 echo "<td style='text-align:right;'>\n";
     72                echo "<table class='asso_tablo_filtres'><tr>\n<td width='70%'></td><td width='30%' class='formulaire'>";
    7373                echo '<form method="post" action="'.$url_voir_activites.'"><div>';
    7474                echo '<input type="hidden" name="id" value="'.$id_evenement.'" />';
    75                 echo "<select name='statut' class='fondl' onchange='form.submit()'>\n";
    76                 echo '<option value="%"';
    77                 if ($statut=="%") {echo ' selected="selected"';}
    78                 echo '>'._T('asso:activite_entete_toutes').'</option>';
    79                 echo '<option value="ok"';
    80                 if ($statut=="ok") { echo ' selected="selected"'; }
    81                 echo '>'._T('asso:activite_entete_validees').'</option>';
     75                echo '<select name="statut" onchange="form.submit()">';
     76                echo '<option value="%"'. (($statut=='%')?' selected="selected"':'') .'>'._T('asso:activite_entete_toutes').'</option>';
     77                echo '<option value="ok"'. (($statut=='ok')?' selected="selected"':'') .'>'._T('asso:activite_entete_validees').'</option>';
     78                echo '<option value="ok"'. (($statut=='')?' selected="selected"':'') .'>'._T('asso:activite_entete_impayees').'</option>';
    8279                echo "</select></div></form></td></tr></table>\n";
    8380        //TABLEAU
    8481                echo '<form action="'.generer_url_ecrire('action_activites').'" method="post">';
    85                 echo "\n<table border='0' cellpadding='2' cellspacing='0' width='100%' class='arial2' style='border: 1px solid #aaaaaa;'>\n";
    86                 echo "<tr style='background-color: #DBE1C5;'>\n";
    87                 echo '<th style="text-align: center;">'._T('asso:activite_entete_id').'</th>';
    88                 echo '<th style="text-align: center;">'._T('asso:activite_entete_date').'</th>';
    89                 echo '<th style="text-align: center;">'._T('asso:activite_entete_nom').'</th>';
    90                 echo '<th style="text-align: center;">'._T('asso:activite_entete_adherent').'</th>';
    91                 echo '<th style="text-align: center;">'._T('asso:activite_entete_inscrits').'</th>';
    92                 echo '<th style="text-align: center;">'._T('asso:activite_entete_montant').'</th>';
    93                 echo '<th colspan="3" style="text-align: center;">'._T('asso:activite_entete_action').'</th>';
    94                 echo '</tr>';
     82                echo "<table width='100%' class='asso_tablo' id='asso_tablo_activite'>\n";
     83                echo "<thead>\n<tr>";
     84                echo '<th>'. _T('asso:entete_id') .'</th>';
     85                echo '<th>'. _T('asso:entete_date') .'</th>';
     86                echo '<th>'. _T('asso:entete_nom') .'</th>';
     87                echo '<th>'. _T('asso:activite_entete_inscrits') .'</th>';
     88                echo '<th>'. _T('asso:entete_montant') .'</th>';
     89                echo '<th colspan="3">'. _T('asso:entete_action') .'</th>';
     90                echo "</tr>\n</thead><tbody>";
    9591                $query = sql_select('*', 'spip_asso_activites', "id_evenement=$id_evenement AND statut LIKE '$statut' ", '', 'id_activite') ;
    9692                while ($data = sql_fetch($query)) {
    97                         $id = $data['id_adherent'];
    98                         $adh = !$id ? 'X' :
    99                           ("<a href='" .generer_url_ecrire('voir_adherent', "id=$id") . "'>$id</a>");
    100                         if($data['statut']=='ok') {
    101                                 $class= "valide";
    102                         } else {
    103                                 $class="pair";
     93                        echo '<tr class="'.(($data['statut']=='ok')?'valide':'pair').'">';
     94                        echo '<td class="integer">'.$data['id_activite'].'</td>';
     95                        echo '<td class="date">'.association_datefr($data['date']).'</td>';
     96                        echo '<td class="text">'.  association_calculer_lien_nomid($data['nom'],$data['id_adherent']) .'</td>';
     97                        echo '<td class="integer">'.$data['inscrits'].'</td>';
     98                        echo '<td class="decimal">'. association_prixfr($data['montant']) .'</td>';
     99                        echo '<td class="action">', association_bouton('activite_bouton_maj_inscription', 'edit-12.gif', 'edit_activite','id='.$data['id_activite']), '</td>';
     100                        echo '<td class="action">'. association_bouton('activite_bouton_ajouter_inscription', 'cotis-12.gif', 'ajout_participation', 'id='.$data['id_activite']) .'</td>';
     101                        echo '<td class="action"><input name="delete[]" type="checkbox" value="'.$data['id_activite'].'" /></td>';
     102                        if ($data['commentaire']) {
     103                                echo '</tr><tr class="'.(($data['statut']=='ok')?'valide':'pair').'"><td colspan="8" class="text">'.$data['commentaire'].'</td>';
    104104                        }
    105                         echo "\n<tr>";
    106                         echo '<td style="text-align:right;" class="'.$class. ' border1">'.$data['id_activite'].'</td>';
    107                         echo '<td style="text-align: center;;" class="'.$class. ' border1">'.association_datefr($data['date']).'</td>';
    108                         echo '<td class="'.$class. ' border1">';
    109                         if(empty($data['email'])) { echo $data['nom']; }
    110                         else { echo '<a href="mailto:'.$data['email'].'">'.$data['nom'].'</a>'; }
    111                         echo '</td>';
    112                         echo '<td style="text-align: right;" class="'.$class. ' border1">'.$adh.'</td>';
    113                         echo '<td style="text-align: right;" class="'.$class. ' border1">'.$data['inscrits'].'</td>';
    114                         echo '<td style="text-align: right;" class="'.$class. ' border1">'.association_prixfr($data['montant']).'</td>';
    115                         echo '<td style="text-align: center;" class="'.$class. ' border1">', association_bouton('activite_bouton_maj_inscription', 'edit-12.gif', 'edit_activite','id='.$data['id_activite']), '</td>';
    116                         echo '<td style="text-align: center;" class="'.$class. ' border1">', association_bouton('activite_bouton_ajouter_inscription', 'cotis-12.gif', 'ajout_participation', 'id='.$data['id_activite']), '</td>';
    117                         echo '<td style="text-align: center;" class="'.$class. ' border1"><input name="delete[]" type="checkbox" value="'.$data['id_activite'].'" /></td>';
    118                         echo '</tr>';
    119                         if ($data['commentaire']) {
    120                                 echo '<tr><td colspan="10" style="text-align: justify;" class ='.$class.'>'.$data['commentaire']."</td></tr>\n";
    121                         }
     105                        echo "</tr>\n";
    122106                }
    123                 echo '</table>';
    124                 echo "\n<table width='100%'><tr><td style='text-align: right;'>";
    125                 echo '<input type="submit" value="'._T('asso:bouton_supprimer').'" class="fondo" />';
     107                echo "</tbody>\n</table>\n";
     108                echo "<table class='asso_tablo_filtres'><tr>\n<td width='90%'></td><td width='10%' class='formulaire'>";
     109                echo '<input type="submit" value="'._T('asso:bouton_supprimer').'" />';
    126110                echo "</td></tr></table>\n";
    127111                echo '</form>';
  • _plugins_/Association/Associaspip/formulaires/configurer_metas.php

    r48461 r58798  
    1111\***************************************************************************/
    1212
    13 if (!defined("_ECRIRE_INC_VERSION")) return;
     13if (!defined('_ECRIRE_INC_VERSION'))
     14        return;
    1415
    1516function formulaires_configurer_metas_charger_dist($form)
     
    2021        else {
    2122                $infos = formulaires_configurer_metas_infos($form);
    22                 if (!is_array($infos)) return $infos;
    23                 if (isset($infos['meta']) AND isset($GLOBALS[$infos['meta']]))
     23                if (!is_array($infos))
     24                        return $infos;
     25                if (isset($infos['meta']) AND isset($GLOBALS[$infos['meta']]))
    2426                    return $GLOBALS[$infos['meta']];
    25                 spip_log("configurer_meta, charger: table des meta pour $form inconnue" . $infos['meta']);
     27                spip_log("configurer_meta, charger: table des meta pour $form inconnue ".$infos['meta'],'associaspip');
    2628                return array();
    2729        }
     
    4143        else {
    4244                $infos = formulaires_configurer_metas_infos($form);
    43                 if (!is_array($infos)) return $infos; // fait ci-dessus en fait
     45                if (!is_array($infos))
     46                        return $infos; // fait ci-dessus en fait
    4447                $vars = formulaires_configurer_metas_recense($infos['path'], PREG_PATTERN_ORDER);
    4548                $meta = $infos['meta'];
     
    5457
    5558// version amelioree de la RegExp de cfg_formulaire.
    56 define('_EXTRAIRE_SAISIES', 
     59define('_EXTRAIRE_SAISIES',
    5760        '#<(select|textarea|input)[^>]*\sname=["\'](\w+)(\[\w*\])?["\'](?: class=["\']([^\'"]*)["\'])?( multiple=)?[^>]*?>#ims');
    5861
     
    6568        if ($f AND preg_match_all(_EXTRAIRE_SAISIES, $f, $r, $opt))
    6669                return $r;
    67         else return array();
     70        else
     71                return array();
    6872}
    6973
     
    8084
    8185        $path = find_in_path($form.'.' . _EXTENSION_SQUELETTES, 'formulaires/');
    82         if (!$path) return ''; // cas traite en amont normalement.
     86        if (!$path)
     87                return ''; // cas traite en amont normalement.
    8388        if (!preg_match(_EXTRAIRE_PLUGIN, $path, $m))
    8489                return array('path' => $path, 'meta' => 'meta');
     
    9196        $prefix = $infos['prefix'];
    9297        $infos['path'] = $path;
    93         if (!isset($infos['meta'])) $infos['meta'] = ($prefix . '_metas');
     98        if (!isset($infos['meta']))
     99                $infos['meta'] = ($prefix . '_metas');
    94100        return $infos;
    95101}
     102
    96103?>
  • _plugins_/Association/Associaspip/formulaires/editer_asso_categories.html

    r57835 r58798  
    1919                        <li class="editer_duree">
    2020                                [<span class="erreur_message">(#ENV**{erreurs}|table_valeur{duree})</span>]
    21                                 <label for="duree"><:asso:duree:></label>
     21                                <label for="duree"><:asso:libelle_duree:></label>
    2222                                <input name="duree" type="[(#HTML5|?{number,text})]" [value="(#ENV{duree})"] id="duree" class="number integer" />
    2323                        </li>
    2424                        <li class="editer_cotisation">
    2525                                [<span class="erreur_message">(#ENV**{erreurs}|table_valeur{cotisation})</span>]
    26                                 <label for="cotisation"><:asso:montant_en_euros:></label>
     26                                <label for="cotisation"><:asso:libelle_montant:></label>
    2727                                <input name="cotisation" type="[(#HTML5|?{number,text})]" [value="(#ENV{cotisation})"] id="cotisation" class="number float price" />
    2828                        </li>
  • _plugins_/Association/Associaspip/formulaires/editer_asso_categories.php

    r57655 r58798  
    3535
    3636        /* on verifie que cotisation et duree ne sont pas negatifs */
    37         if (association_recupere_montant(_request('cotisation'))<0)
    38                 $erreurs['cotisation'] = _T('asso:erreur_montant');
    39         if (association_recupere_montant(_request('duree'))<0)
    40                 $erreurs['duree'] = _T('asso:erreur_montant');
     37        if ($erreur = association_verifier_montant(_request('cotisation')) )
     38                $erreurs['cotisation'] = $erreur;
     39        if ($erreur = association_verifier_montant(_request('duree')) )
     40                $erreurs['duree'] = $erreur;
    4141
    4242        if (count($erreurs)) {
    4343                $erreurs['message_erreur'] = _T('asso:erreur_titre');
    4444        }
    45 
    4645        return $erreurs;
    4746}
  • _plugins_/Association/Associaspip/formulaires/editer_asso_comptes.html

    r57835 r58798  
    109109                                <input type="[(#HTML5|?{number,text})]" name="recette" value="[(#ENV{recette})]" id="recette" class="number float price" />
    110110                        </li>
    111                         <INCLURE{fond=inc/mode_de_paiement, journal, type_operation}>
     111                        <INCLURE{fond=inc/mode_de_paiement, journal, type_operation, id_dest, montant_dest, unique_dest, defaut_dest, env}>
    112112                        <li id="saisie_justification" class="editer_justification [(#ENV{type_operation}|affichage_div{charges-produits-banques-contributions_volontaires})]">
    113113                                <label for="justification"><:asso:justification:></label>
  • _plugins_/Association/Associaspip/formulaires/editer_asso_comptes.php

    r57780 r58798  
    6565    }
    6666    /* on verifie que le type d'operation est bien permise sur ce compte */
    67     $code=_request('imputation');
     67    $code = _request('imputation');
    6868    if (!array_key_exists('montant',$erreurs)) {
    6969        $type_op = sql_getfetsel('type_op', 'spip_asso_plan', 'code='.sql_quote($code));
     
    8080    }
    8181    /* verifier la validite de la date */
    82     if ($erreur_date = association_verifier_date(_request('date'))) {
    83         $erreurs['date'] = _request('date').'&nbsp;:&nbsp;'.$erreur_date;
    84     }
     82    if ($erreur = association_verifier_date(_request('date')) )
     83        $erreurs['date'] = $erreur;
    8584    if (count($erreurs)) {
    8685        $erreurs['message_erreur'] = _T('asso:erreur_titre');
  • _plugins_/Association/Associaspip/formulaires/editer_asso_dons.html

    r57835 r58798  
    1212                                <input type="[(#HTML5|?{number,text})]" name="date_don" [value="(#ENV{date_don}|affdate{Y-m-d})"] id="date_don"  class="date" />
    1313                        </li>
    14                         <li class="editer_bienfaiteur">
    15                                 <label for="bienfaiteur"><:asso:nom_du_bienfaiteur:></label>
    16                                 <input type="text" name="bienfaiteur" [value="(#ENV{bienfaiteur})"] id="bienfaiteur"  class="text" />
    17                         </li>
    18                         <li class="editer_id_adherent">
    19                                 [<span class="erreur_message">(#ENV**{erreurs}|table_valeur{id_adherent})</span>]
    20                                 <label for="id_adherent"><:asso:nd_de_membre:></label>
    21                                 <input type="[(#HTML5|?{number,text})]" name="id_adherent" [value="(#ENV{id_adherent})"] id="id_adherent"  class="number integer" />
    22                         </li>
     14                        <INCLURE{fond=inc/choisir_mbr_nom, champ_nom=bienfaiteur, valeur_nom=#ENV{bienfaiteur}, champ_id=id_adherent, valeur_id=#ENV{id_adherent} }>
    2315                        <li class="editer_argent">
    2416                                [<span class="erreur_message">(#ENV**{erreurs}|table_valeur{argent})</span>]
     
    2618                                <input type="[(#HTML5|?{number,text})]" name="argent" [value="(#ENV{argent})"] id="argent"  class="number float price" />
    2719                        </li>
    28                         <INCLURE{fond=inc/mode_de_paiement, journal, type_operation=#META{/association/classe_produits}}>
     20                        <INCLURE{fond=inc/mode_de_paiement, journal, type_operation=#META{/association/classe_produits}, id_dest, montant_dest, unique_dest, defaut_dest, env}>
    2921                        <li class="editer_colis">
    3022                                <label for="colis"><:asso:colis:></label>
     
    3931                                <label for="contrepartie"><:asso:geste_association:></label>
    4032                                <input type="text" name="contrepartie" [value="(#ENV{contrepartie})"] id="contrepartie"  class="text" />
     33                                [(#META{/association/recufiscal}|et{#PLUGIN{fpdf}}|oui)<em class="explication"><:asso:dons_aide_contrepartie:></em>]
    4134                        </li>
    4235                        <li class="editer_commentaire">
  • _plugins_/Association/Associaspip/formulaires/editer_asso_dons.php

    r57780 r58798  
    2626                $journal = '';
    2727        } else { /* sinon on recupere l'id_compte correspondant et le journal dans la table des comptes */
    28                 $comptes = sql_fetsel('id_compte,journal', 'spip_asso_comptes', "imputation='".$GLOBALS['association_metas']['pc_dons']."' AND id_journal=$id_don");
    29                 $id_compte = $comptes['id_compte'];
    30                 $journal = $comptes['journal'];
     28                $compte = sql_fetsel('id_compte,journal', 'spip_asso_comptes', "imputation='".$GLOBALS['association_metas']['pc_dons']."' AND id_journal=$id_don");
     29                $journal = $compte['journal'];
     30                $id_compte = $compte['id_compte'];
    3131        }
    3232        /* ajout du journal qui ne se trouve pas dans la table asso_dons mais asso_comptes et n'est donc pas charge par editer_objet_charger */
    3333        $contexte['journal'] = $journal;
    34         /* on concatene au _hidden inserer dans $contexte par l'appel a formulaire_editer_objet l'id_compte qui sera utilise dans l'action editer_asso_dons */
    35         $contexte['_hidden'] .= "<input type='hidden' name='id_compte' value='$id_compte' />";
     34        /* on concatene au _hidden inserer dans $contexte par l'appel a formulaire_editer_objet les id_compte qui seront utilises dans l'action editer_asso_dons */
     35        $contexte['_hidden'] .= "<input type='hidden' name='id_compte1' value='$id_compte1' />";
     36        $contexte['_hidden'] .= "<input type='hidden' name='id_compte2' value='$id_compte2' />";
    3637        /* si id_adherent est egal a 0, c'est que le champ est vide, on ne prerempli rien */
    3738        if (!$contexte['id_adherent']) $contexte['id_adherent']='';
     
    6061        $erreurs = array();
    6162        /* on verifie que argent et valeur ne soient pas negatifs */
    62         $argent = association_recupere_montant(_request('argent'));
    63         $valeur = association_recupere_montant(_request('valeur'));
    64         if ($argent<0)
    65                 $erreurs['argent'] = _T('asso:erreur_montant');
    66         if ($valeur<0)
    67                 $erreurs['valeur'] = _T('asso:erreur_montant');
     63        if ($erreur = association_verifier_montant(_request('argent')) )
     64                $erreurs['argent'] = $erreur;
     65        if ($erreur = association_verifier_montant(_request('valeur')) )
     66                $erreurs['valeur'] = $erreur;
    6867        /* verifier si on a un numero d'adherent qu'il existe dans la base */
    69         $id_adherent = intval(_request('id_adherent'));
    70         if ($id_adherent!='') {
    71                 $id_adherent = intval($id_adherent);
    72                 if (sql_countsel('spip_asso_membres', "id_auteur=$id_adherent")==0) {
    73                         $erreurs['id_adherent'] = _T('asso:erreur_id_adherent');
    74                 }
    75         }
     68        if ($erreur = association_verifier_membre(_request('id_adherent')) )
     69                $erreurs['id_adherent'] = $erreur;
    7670        /* verifier si besoin que le montant des destinations correspond bien au montant de l'opération */
    7771        if (($GLOBALS['association_metas']['destinations']) && !array_key_exists('argent', $erreurs)) {
     
    8276        }
    8377        /* verifier la date */
    84         if ($erreur_date = association_verifier_date(_request('date_don'))) {
    85                 $erreurs['date_don'] = _request('date_don').'&nbsp;:&nbsp;'.$erreur_date; /* on ajoute la date eronee entree au debut du message d'erreur car le filtre affdate corrige de lui meme et ne reaffiche plus les valeurs eronees */
    86         }
     78        if ($erreur = association_verifier_date(_request('date_don')) )
     79                $erreurs['date_don'] = $erreur;
    8780        if (count($erreurs)) {
    8881                $erreurs['message_erreur'] = _T('asso:erreur_titre');
  • _plugins_/Association/Associaspip/formulaires/editer_asso_membres.php

    r57780 r58798  
    3535
    3636        /* verifier la validite de la date de validite */
    37         if ($erreur_validite = association_verifier_date(_request('validite'))) {
    38                 $erreurs['validite'] = _request('validite').'&nbsp;:&nbsp;'.$erreur_validite;
     37        if ($erreur = association_verifier_date(_request('validite'))) {
     38                $erreurs['validite'] = $erreur;
    3939        }
    4040        if (count($erreurs)) {
  • _plugins_/Association/Associaspip/formulaires/editer_asso_meta_utilisateur.php

    r57780 r58798  
    11<?php
    2 
    3 if (!defined("_ECRIRE_INC_VERSION")) return;
    4 include_spip('inc/actions');
    5 include_spip('inc/editer');
    6 include_spip('inc/autoriser');
    72/***************************************************************************\
    83 *  Associaspip, extension de SPIP pour gestion d'associations             *
     
    149 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
    1510\***************************************************************************/
    16 function formulaires_editer_asso_meta_utilisateur_charger_dist($nom_meta='') {
     11
     12if (!defined('_ECRIRE_INC_VERSION'))
     13        return;
     14
     15include_spip('inc/actions');
     16include_spip('inc/editer');
     17include_spip('inc/autoriser');
     18
     19function formulaires_editer_asso_meta_utilisateur_charger_dist($nom_meta='')
     20{
    1721        return array('nom_meta' => str_replace('_', ' ', str_replace('meta_utilisateur_', '', $nom_meta)));
    1822}
    19 function formulaires_editer_asso_meta_utilisateur_verifier_dist($nom_meta='') {
     23
     24function formulaires_editer_asso_meta_utilisateur_verifier_dist($nom_meta='')
     25{
    2026        $erreurs = array();
    2127        $nom_meta_form = _request('nom_meta');
    22         spip_log("nom meta $nom_meta form $nom_meta_form");
     28        spip_log("nom meta $nom_meta form $nom_meta_form",'associaspip');
    2329        /* verifier que le nom de la meta ne contient rien d'autre que des caracteres A-za-z0-9 */
    2430        if (preg_match('/[^A-Za-z0-9 ]+/', $nom_meta_form)) {
    2531                $erreurs['nom_meta'] = _T('asso:erreur_nom_meta_utilisateur_incorrect');
    2632        } else {
    27 
    2833                /* on verifie que le nom de la meta ne depasse pas 237 catacteres(il faut laisser de la place pour le prefixe et ne pas depasser 255) */
    2934                if (strlen($nom_meta_form)>237) {
     
    3439                                $erreurs['nom_meta'] = _T('asso:erreur_pas_de_nom_meta_utilisateur');
    3540                        } else {
    36                                 $nom_meta_form = "meta_utilisateur_".str_replace(' ', '_', strtolower($nom_meta_form));
     41                                $nom_meta_form = 'meta_utilisateur_'.str_replace(' ', '_', strtolower($nom_meta_form));
    3742                                $meta_lower_cased = array_change_key_case($GLOBALS['association_metas']);
    3843                                if ((strtolower($nom_meta)!=$nom_meta_form) && isset($meta_lower_cased[$nom_meta_form])) { /* on verifie qu'on n'ecrase pas une autre meta_utilisateur */
     
    4449
    4550        if (count($erreurs)) {
    46         $erreurs['message_erreur'] = _T('asso:erreur_titre');
     51                $erreurs['message_erreur'] = _T('asso:erreur_titre');
    4752        }
    4853
     
    5055}
    5156
    52 function formulaires_editer_asso_meta_utilisateur_traiter($nom_meta='') {
    53         $nouveau_nom_meta = "meta_utilisateur_".str_replace(' ', '_', _request('nom_meta'));
     57function formulaires_editer_asso_meta_utilisateur_traiter($nom_meta='')
     58{
     59        $nouveau_nom_meta = 'meta_utilisateur_'.str_replace(' ', '_', _request('nom_meta'));
    5460        if ($nom_meta!=$nouveau_nom_meta) { /* si on a change vraiment quelque chose */
    5561                if ($nom_meta!='') { /* un changement de nom de meta, on recupere la valeur de la meta, cree la nouvelle puis on la supprime */
     
    6773        return $res;
    6874}
     75
    6976?>
  • _plugins_/Association/Associaspip/formulaires/editer_asso_plan.php

    r57780 r58798  
    6262
    6363        /* verifier la date */
    64         if ($erreur_date = association_verifier_date(_request('date_anterieure'))) {
    65                 $erreurs['date_anterieure'] = _request('date_anterieure') . "&nbsp;:&nbsp;" . $erreur_date; /* on ajoute la date eronee entree au debut du message d'erreur car le filtre affdate corrige de lui meme et ne reaffiche plus les valeurs eronees */
    66         }
    67 
    68 
     64        if ($erreur = association_verifier_date(_request('date_anterieure')) )
     65                $erreurs['date_anterieure'] = $erreur;
    6966        if (!array_key_exists("code", $erreurs)) { /* si le code est valide */
    7067                $code_initial = _request('code_initial'); /* on recupere le code initial pour verifier si on l'a modifie ou pas  */
  • _plugins_/Association/Associaspip/formulaires/editer_asso_prets.html

    r57835 r58798  
    1818                                        <input name="duree" type="[(#HTML5|?{number,text})]" [value="(#ENV{duree})"] id="duree" class="number integer" />
    1919                                </li>
    20                                 <li class="editer_id_emprunteur">
    21                                         [<span class="erreur_message">(#ENV**{erreurs}|table_valeur{id_emprunteur})</span>]
    22                                         <label for="id_emprunteur"><:asso:prets_libelle_num_emprunteur:></label>
    23                                         <input name="id_emprunteur" type="[(#HTML5|?{number,text})]" [value="(#ENV{id_emprunteur})"] id="date_sortie" class="number intege" />
    24                                 </li>
     20                                <INCLURE{fond=inc/choisir_mbr_nom, champ_id=id_emprunteur, valeur_id=#ENV{id_emprunteur} }>
    2521                                <li class="editer_commentaire_sortie">
    2622                                        <label for="commentaire_sortie"><:asso:prets_libelle_commentaires:></label>
     
    3733                                        <input name="date_retour" type="[(#HTML5|?{date,text})]" [value="(#ENV{date_retour})"] id="date_retour" class="date" />
    3834                                </li>
    39                         [(#ENV{id_pret}|oui)
    40                                 <li class="editer_statut">
    41                                         <label><:asso:ressources_libelle_statut:></label>
    42                                         <div class="choix">
    43                                                 <input type="radio" class="radio" name="statut" value="ok" id="statut_ok"[ (#ENV{statut}|=={ok}|oui)checked="checked"] />
    44                                                 <label for="statut_ok"><:asso:ressources_libelle_statut_ok:></label>
    45                                         </div>
    46                                         <div class="choix">
    47                                                 <input type="radio" class="radio" name="statut" value="reserve" id="statut_reserve"[ (#ENV{statut}|=={attendu}|oui)checked="checked"] />
    48                                                 <label for="statut_reserve"><:asso:ressources_libelle_statut_reserve:></label>
    49                                         </div>
    50                                         <div class="choix">
    51                                                 <input type="radio" class="radio" name="statut" value="suspendu" id="statut_suspendu"[ (#ENV{statut}|=={annule}|oui)checked="checked"] />
    52                                                 <label for="statut_suspendu"><:asso:ressources_libelle_statut_suspendu:></label>
    53                                         </div>
    54                                         <div class="choix">
    55                                                 <input type="radio" class="radio" name="statut" value="sorti" id="statut_sorti"[ (#ENV{statut}|=={du}|oui)checked="checked"] />
    56                                                 <label for="statut_sorti"><:asso:ressources_libelle_statut_sorti:></label>
    57                                         </div>
    58                                 </li>
    59                         ]
    6035                                <li class="editer_montant">
    6136                                        [<span class="erreur_message">(#ENV**{erreurs}|table_valeur{montant})</span>]
     
    6338                                        <input name="montant" type="[(#HTML5|?{number,text})]" [value="(#ENV{montant})"] id="montant" class="number float price" />
    6439                                </li>
    65                                 <INCLURE{fond=inc/mode_de_paiement, journal, type_operation=#META{/association/classe_produits}}>
     40                                <INCLURE{fond=inc/mode_de_paiement, journal, type_operation=#META{/association/classe_produits}, id_dest, montant_dest, unique_dest, defaut_dest, env}>
    6641                        [(#ENV{id_pret}|oui)
    6742                                <li class="editer_commentaire_retour">
  • _plugins_/Association/Associaspip/formulaires/editer_asso_prets.php

    r57780 r58798  
    7272        $erreurs = array();
    7373        /* on verifie que montant et duree ne soient pas negatifs */
    74         if (association_recupere_montant(_request('montant'))<0)
    75                 $erreurs['montant'] = _T('asso:erreur_montant');
    76         if (association_recupere_montant(_request('duree'))<0)
    77                 $erreurs['duree'] = _T('asso:erreur_montant');
     74        if ($erreur = association_verifier_montant(_request('montant')) )
     75                $erreurs['montant'] = $erreur;
     76        if ($erreur = association_verifier_montant(_request('duree')) )
     77                $erreurs['duree'] = $erreur;
    7878        /* verifier si on a un numero d'adherent qu'il existe dans la base */
    79         $id_emprunteur = intval(_request('id_emprunteur'));
    80         if ($id_emprunteur!=0) {
    81                 if (sql_countsel('spip_asso_membres', "id_auteur=$id_emprunteur")==0) {
    82                         $erreurs['id_emprunteur'] = _T('asso:erreur_id_adherent');
    83                 }
    84         }
     79        if ($erreur = association_verifier_membre(_request('id_emprunteur')) )
     80                $erreurs['id_emprunteur'] = $erreur;
    8581        /* verifier si besoin que le montant des destinations correspond bien au montant de l'opération */
    8682        if (($GLOBALS['association_metas']['destinations']) && !array_key_exists('montant', $erreurs)) {
     
    9187        }
    9288        /* verifier les dates */
    93         if ($erreur_date = association_verifier_date(_request('date_sortie'))) {
    94                 $erreurs['date_sortie'] = _request('date_sortie').'&nbsp;:&nbsp;'.$erreur_date; /* on ajoute la date eronee entree au debut du message d'erreur car le filtre affdate corrige de lui meme et ne reaffiche plus les valeurs eronees */
    95         }
    96         if ($erreur_date = association_verifier_date(_request('date_retour'))) {
    97                 $erreurs['date_retour'] = _request('date_retour').'&nbsp;:&nbsp;'.$erreur_date; /* on ajoute la date eronee entree au debut du message d'erreur car le filtre affdate corrige de lui meme et ne reaffiche plus les valeurs eronees */
    98         }
     89        if ($erreur = association_verifier_date(_request('date_sortie')) )
     90                $erreurs['date_sortie'] = $erreur;
     91        if ($erreur = association_verifier_date(_request('date_retour')) )
     92                $erreurs['date_retour'] = $erreur;
    9993        if (count($erreurs)) {
    10094                $erreurs['message_erreur'] = _T('asso:erreur_titre');
  • _plugins_/Association/Associaspip/formulaires/editer_asso_ressources.html

    r57835 r58798  
    2222                                <input type="[(#HTML5|?{date,text})]" name="date_acquisition" [value="(#ENV{date_acquisition}|affdate{Y-m-d})"] id="date_acquisition"  class="date" />
    2323                        </li>
    24                         <li class="editer_pu">
     24                        <li class="editer_prix">
    2525                                [<span class="erreur_message">(#ENV**{erreurs}|table_valeur{pu})</span>]
    26                                 <label for="pu"><:asso:ressources_libelle_prix_location:></label>
    27                                 <input type="[(#HTML5|?{number,text})]" name="pu" [value="(#ENV{pu})"] id="pu"  class="number float price" />
     26                                <label for="prix"><:asso:ressources_libelle_prix_location:></label>
     27                                <input type="[(#HTML5|?{number,text})]" name="pu" [value="(#ENV{pu})"] id="prix"  class="number float price" />
     28                        </li>
     29                        <li class="editer_unite">
     30                                [<span class="erreur_message">(#ENV**{erreurs}|table_valeur{unite})</span>]
     31                                <label for="unite"><:asso:ressources_libelle_unite_location:></label>
     32                                <select name="ud" id="unite">
     33                                        <option value="#ENV{ut}"> </option>
     34                                        <option value="Y"[ (#ENV{ut}|strtoupper|=={Y})selected="selected"]><:spip:annee:></option>
     35                                        <option value="M"[ (#ENV{ut}|strtoupper|=={M})selected="selected"]><:spip:date_un_mois:></option>
     36                                        <option value="W"[ (#ENV{ut}|strtoupper|=={W})selected="selected"]><:spip:date_une_semaine:></option>
     37                                        <option value="D"[ (#ENV{ut}|strtoupper|=={D})selected="selected"]><:spip:jour:></option>
     38                                        <option value="I"[ (#ENV{ut}|strtoupper|=={I})selected="selected"]><:spip:ans:>-<:spip:date_mois:>-<:spip:date_jours:></option>
     39                                        <option value="H"[ (#ENV{ut}|strtoupper|=={H})selected="selected"]><:spip:date_une_heure:></option>
     40                                        <option value="T"[ (#ENV{ut}|strtoupper|=={T})selected="selected"]><:spip:date_heures:>:<:spip:date_minutes:>:<:spip:date_secondes:></option>
     41                                </select>
    2842                        </li>
    2943                        <li class="editer_statut">
  • _plugins_/Association/Associaspip/formulaires/editer_asso_ressources.php

    r47731 r58798  
    2222                $contexte['date_acquisition'] = date('Y-m-d');
    2323        }
    24        
     24
    2525        /* paufiner la presentation des valeurs  */
    26         if ($contexte['pu']) $contexte['pu'] = association_nbrefr($contexte['pu']);
     26        if ($contexte['pu'])
     27                $contexte['pu'] = association_nbrefr($contexte['pu']);
    2728
    2829        return $contexte;
     
    3233        $erreurs = array();
    3334        /* on verifie que prix de location ne soit pas negatifs */
    34         $pu = association_recupere_montant(_request('pu'));
    35 
    36         if ($pu<0) $erreurs['pu'] = _T('asso:erreur_montant');
    37 
     35        if ($erreur = association_verifier_montant(_request('pu')) )
     36                $erreurs['pu'] = $erreur;
    3837        /* verifier la date */
    39         if ($erreur_date = association_verifier_date(_request('date_acquisition'))) {
    40                 $erreurs['date_acquisition'] = _request('date_acquisition')."&nbsp;:&nbsp;".$erreur_date; /* on ajoute la date eronee entree au debut du message d'erreur car le filtre affdate corrige de lui meme et ne reaffiche plus les valeurs eronees */
    41         }
     38        if ($erreur = association_verifier_date(_request('date_acquisition')) )
     39                $erreurs['date_acquisition'] = $erreur;
    4240
    4341        if (count($erreurs)) {
    44         $erreurs['message_erreur'] = _T('asso:erreur_titre');
     42                $erreurs['message_erreur'] = _T('asso:erreur_titre');
    4543        }
    46        
    4744        return $erreurs;
    4845}
  • _plugins_/Association/Associaspip/formulaires/editer_asso_ventes.html

    r58138 r58798  
    1111                                <li class="editer_code">
    1212                                        [<span class="erreur_message">(#ENV**{erreurs}|table_valeur{code})</span>]
    13                                         <label for="catalogue"></label>
     13                                        <label for="catalogue"><:asso:article:></label>
    1414                                        <select name="code" id="catalogue">
    1515                                                <option value="#ENV{code}"></option>
     
    2020                                                <optgroup label="<BOUCLE_produit_intitule(ARTICLES){id_article}{statut IN prop,prepa,publie}>#TITRE</BOUCLE_produit_intitule>">
    2121                                <BOUCLE_produit_variantes(CAT_VARIANTES?){id_article}{par num titre}>
    22                                                         <option value="#ID_VARIANTE"[ (#ENV{code}|=={#ID_VARIANTE}|oui)selected="selected"]>#TITRE</option>
     22                                                        <option value="#ID_CAT_VARIANTE"[ (#ENV{code}|=={#ID_CAT_VARIANTE}|oui)selected="selected"]>#TITRE</option>
    2323                                </BOUCLE_produit_variantes>
    2424                                                </optgroup>
     
    4747                        </ul>
    4848                </fieldset>
    49                 <fieldset>
    50                         <legend>Acheteur</legend>
    51                         <ul>
    52                                 <li class="editer_acheteur">
    53                                         [<span class="erreur_message">(#ENV**{erreurs}|table_valeur{acheteur})</span>]
    54                                         <label for="acheteur"><:asso:nom_de_l_acheteur:></label>
    55                                         <input type="text" name="acheteur" [value="(#ENV{acheteur})"] id="acheteur"  class="text" />
    56                                 </li>
    57                                 <li class="editer_id_acheteur">
    58                                         [<span class="erreur_message">(#ENV**{erreurs}|table_valeur{id_acheteur})</span>]
    59                                         <label for="id_acheteur"><:asso:nd_de_membre:></label>
    60                                         <input type="[(#HTML5|?{number,text})]" name="id_acheteur" [value="(#ENV{id_acheteur})"] id="id_acheteur" class="number integer" />
    61                                 </li>
    62                         </ul>
    63                 </fieldset>
     49                <INCLURE{fond=inc/choisir_mbr_nom, champ_nom=acheteur, valeur_nom=#ENV{acheteur}, champ_id=id_acheteur, valeur_id=#ENV{id_acheteur}, champs_legende=Acheteur }>
    6450                <fieldset>
    6551                        <legend>Transaction</legend>
     
    7561                                        <input type="[(#HTML5|?{number,text})]" name="quantite" [value="(#ENV{quantite})"] id="text number float" class="number float" />
    7662                                </li>
    77                                 <INCLURE{fond=inc/mode_de_paiement, journal, type_operation=#META{/association/classe_produits}}>
     63                                <INCLURE{fond=inc/mode_de_paiement, journal, type_operation=#META{/association/classe_produits}, id_dest, montant_dest, unique_dest, defaut_dest, env}>
    7864                                <li class="editer_date_envoi">
    7965                                        [<span class="erreur_message">(#ENV**{erreurs}|table_valeur{date_envoi})</span>]
  • _plugins_/Association/Associaspip/formulaires/editer_asso_ventes.php

    r57780 r58798  
    2020        /* cet appel va charger dans $contexte tous les champs de la table spip_asso_ventes associes a l'id_vente passe en param */
    2121        $contexte = formulaires_editer_objet_charger('asso_ventes', $id_vente, '', '',  generer_url_ecrire('ventes'), '');
    22         /* si c'est une nouvelle operation, on charge la date d'aujourd'hui et charge un id_compte et journal null */
    23         if (!$id_vente) {
     22        if (!$id_vente) { /* si c'est une nouvelle operation, on charge la date d'aujourd'hui et charge un id_compte et journal null */
    2423                $contexte['date_vente'] = $contexte['date_envoi'] = date('Y-m-d');
    2524                $id_compte = '';
     
    6564        $erreurs = array();
    6665        /* on verifie que quantite, prix_vente et frais_envoi ne soient pas negatifs */
    67         $prix_vente = association_recupere_montant(_request('prix_vente'));
    68         $frais_envoi = association_recupere_montant(_request('frais_envoi'));
    69         $quantite = association_recupere_montant(_request('quantite'));
    70         if ($prix_vente<0)
    71                 $erreurs['prix_vente'] = _T('asso:erreur_montant');
    72         if ($frais_envoi<0)
    73                 $erreurs['frais_envoi'] = _T('asso:erreur_montant');
    74         if ($quantite<0) $erreurs['quantite'] = _T('asso:erreur_montant');
     66        if ($erreur = association_verifier_montant(_request('prix_vente')) )
     67                $erreurs['prix_vente'] = $erreur;
     68        if ($erreur = association_verifier_montant(_request('frais_envoi')) )
     69                $erreurs['frais_envoi'] = $erreur;
     70        if ($erreur = association_verifier_montant(_request('quantite')) )
     71                $erreurs['quantite'] = $erreur;
    7572        /* verifier si on a un numero d'adherent qu'il existe dans la base */
    76         $id_acheteur = _request('id_acheteur');
    77         if ($id_acheteur!='') {
    78                 $id_acheteur = intval($id_acheteur);
    79                 if (sql_countsel('spip_asso_membres', "id_auteur=$id_acheteur")==0) {
    80                         $erreurs['id_acheteur'] = _T('asso:erreur_id_adherent');
    81                 }
    82         }
     73        if ($erreur = association_verifier_membre(_request('id_acheteur')) )
     74                $erreurs['id_acheteur'] = $erreur;
    8375        /* verifier si besoin que le montant des destinations correspond bien au montant de l'opération */
    8476        if ($GLOBALS['association_metas']['destinations']) {
     
    8981        }
    9082        /* verifier les dates */
    91         if ($erreur_date = association_verifier_date(_request('date_vente'))) {
    92                 $erreurs['date_vente'] = _request('date_vente').'&nbsp;:&nbsp;'.$erreur_date; /* on ajoute la date eronee entree au debut du message d'erreur car le filtre affdate corrige de lui meme et ne reaffiche plus les valeurs eronees */
    93         }
    94         if ($erreur_date = association_verifier_date(_request('date_envoi'))) {
    95                 $erreurs['date_envoi'] = _request('date_envoi').'&nbsp;:&nbsp;'.$erreur_date; /* on ajoute la date eronee entree au debut du message d'erreur car le filtre affdate corrige de lui meme et ne reaffiche plus les valeurs eronees */
    96         }
     83        if ($erreur = association_verifier_date(_request('date_vente')) )
     84                $erreurs['date_vente'] = $erreur;
     85        if ($erreur = association_verifier_date(_request('date_envoi')) )
     86                $erreurs['date_envoi'] = $erreur;
    9787        if (count($erreurs)) {
    98         $erreurs['message_erreur'] = _T('asso:erreur_titre');
     88                $erreurs['message_erreur'] = _T('asso:erreur_titre');
    9989        }
    10090        return $erreurs;
  • _plugins_/Association/Associaspip/formulaires/editer_cotisations.html

    r57835 r58798  
    1717                                <input type="[(#HTML5|?{number,text})]" name="montant" value="[(#ENV{montant})]" id="montant"  class="number float price" />
    1818                        </li>
    19                         <INCLURE{fond=inc/mode_de_paiement, journal, type_operation=#META{/association/classe_produits}}>
     19                        <INCLURE{fond=inc/mode_de_paiement, journal, type_operation=#META{/association/classe_produits}, id_dest, montant_dest, unique_dest, defaut_dest, env}>
    2020                        <li class="editer_justification">
    2121                                [<span class="erreur_message">(#ENV**{erreurs}|table_valeur{justification})</span>]
  • _plugins_/Association/Associaspip/formulaires/editer_cotisations.php

    r57780 r58798  
    5050        if ($GLOBALS['association_metas']['comptes']) {
    5151                /* verifier que le montant est bien positif ou nul */
    52                 $montant = association_recupere_montant(_request('montant'));
    53                 if($montant<0) {
    54                         $erreurs['montant'] = _T('asso:erreur_montant');
    55                 }
     52                if ($erreur = association_verifier_montant(_request('montant')) )
     53                        $erreurs['montant'] = $erreur;
    5654                /* verifier validite et date */
    57                 if ($erreur_date = association_verifier_date(_request('date'))) {
    58                         $erreurs['date'] = _request('date').'&nbsp;:&nbsp;'.$erreur_date;
    59                 }
     55                if ($erreur = association_verifier_date(_request('date')) )
     56                        $erreurs['date'] = $erreur;
    6057                /* verifier si besoin que le montant des destinations correspond bien au montant de l'opération, sauf si on a deja une erreur de montant */
    6158                if (($GLOBALS['association_metas']['destinations']) && !array_key_exists('montant', $erreurs)) {
     
    6663                }
    6764        }
    68         if ($erreur_validite = association_verifier_date(_request('validite'))) {
    69                 $erreurs['validite'] = _request('validite').'&nbsp;:&nbsp;'.$erreur_validite;
     65        if ($erreur = association_verifier_date(_request('validite'))) {
     66                $erreurs['validite'] = $erreur;
    7067        }
    7168        if (count($erreurs)) {
  • _plugins_/Association/Associaspip/inc/association_comptabilite.php

    r57780 r58798  
    1717function association_liste_destinations_associees($id_compte)
    1818{
    19     if (!$id_compte) return '';
     19    if (!$id_compte)
     20        return '';
    2021    if ($destination_query = sql_select('spip_asso_destination_op.id_destination, spip_asso_destination_op.recette, spip_asso_destination_op.depense, spip_asso_destination.intitule', 'spip_asso_destination_op RIGHT JOIN spip_asso_destination ON spip_asso_destination.id_destination=spip_asso_destination_op.id_destination', "id_compte=$id_compte", '', 'spip_asso_destination.intitule')) {
    2122        $destination = array();
     
    2425            $destination[$destination_op[id_destination]] = $destination_op[recette]+$destination_op[depense];
    2526        }
    26         if (count($destination)==0) $destination = '';
     27        if (count($destination)==0)
     28            $destination = '';
    2729    } else {
    2830        $destination = '';
     
    3739    $sql = sql_select('id_destination,intitule', 'spip_asso_destination', '', '', 'intitule');
    3840    while ($destination_info = sql_fetch($sql)) {
    39         $id_destination = $destination_info['id_destination'];
    40         $liste_destination .= "<option value='$id_destination'>".$destination_info['intitule'].'</option>';
     41        $liste_destination .= '<option value="'. $destination_info['id_destination'] .'">'.$destination_info['intitule'].'</option>';
    4142    }
    4243    return $liste_destination;
     
    5455    $res = '';
    5556    if ($liste_destination) {
    56         $res = "<script type='text/javascript' src='".find_in_path("javascript/jquery.destinations_form.js")."'></script>";
    57         $res .= '<label for="destination"><strong>'
    58             . _T('asso:destination') .'</strong></label>'
     57        $res = '<script type="text/javascript" src="'.find_in_path('javascript/jquery.destinations_form.js').'"></script>';
     58        $res .= '<label for="destination">'
     59            . _T('asso:destination') .'</label>'
    5960            . '<div id="divTxtDestination" class="formulaire_edition_destinations">';
    6061        $idIndex = 1;
     62//      spip_log("liste de destinations : \n".print_r($destination,true)."\n---------",'associaspip');
    6163        if ($destination!='') { /* si on a une liste de destinations (on edite une operation) */
    6264            foreach ($destination as $destId => $destMontant) {
    63                 $liste_destination_selected = preg_replace('/(value=\''.$destId.'\')/', '$1 selected="selected"', $liste_destination);
     65                $liste_destination_selected = preg_replace('/(value="'.$destId.'")/', '$1 selected="selected"', $liste_destination);
    6466                $res .= '<div class="formo" id="row'.$idIndex.'"><ul>';
    6567                $res .= '<li class="editer_id_dest['.$idIndex.']">'
     
    7173                        . association_nbrefr(association_recupere_montant($destMontant))
    7274                        . '" type="text" id="montant_dest['.$idIndex.']" /></li>'
    73                         . "<button class='destButton' type='button' onClick='addFormField(); return false;'>+</button>";
     75                        . '<button class="destButton" type="button" onClick="addFormField(); return false;">+</button>';
    7476                    if ($idIndex>1) {
    75                         $res .= "<button class='destButton' type='button' onClick='removeFormField(\"#row".$idIndex."\"); return false;'>-</button>";
     77                        $res .= '<button class="destButton" type="button" onClick="removeFormField(\'#row'.$idIndex.'\'); return false;">-</button>';
    7678                    }
    7779                }
     
    8183        } else {/* pas de destination deja definies pour cette operation */
    8284            if ($defaut!='') {
    83                 $liste_destination = preg_replace('/(value=\''.$defaut.'\')/', '$1 selected="selected"', $liste_destination);
     85                $liste_destination = preg_replace('/(value="'.$defaut.'")/', '$1 selected="selected"', $liste_destination);
    8486            }
    8587            $res .= '<div id="row1" class="formo"><ul><li class="editer_id_dest[1]"><select name="id_dest[1]" id="id_dest[1]" >'
     
    8789            if (!$unique) {
    8890                $res .= '<li class="editer_montant_dest[1]"><input name="montant_dest[1]" value="'
    89                     . '' . '" type="text" id="montant_dest[1]"/></li>'
    90                     . "</ul><button class='destButton' type='button' onClick='addFormField(); return false;'>+</button>";
     91                    .'" type="text" id="montant_dest[1]"/></li>'
     92                    . '</ul><button class="destButton" type="button" onClick="addFormField(); return false;">+</button>';
    9193            }
    9294            $res .= '</div>';
     
    120122    // plutot que de le signaler seulement dans les log
    121123    if (!$imputation) {
    122         spip_log("imputation manquante dans $id_compte, $date, $recette, $depense, $justification, $journal, $id_journal");
     124        spip_log("imputation manquante : id_compte=$id_compte, date=$date, recette=$recette, depense=$depense, journal=$journal, id_journal=$id_journal, justification=$justification",'associaspip');
    123125    }
    124126    /* Si on doit gerer les destinations */
     
    168170}
    169171
     172/* Supprimer une operation dans spip_asso_comptes ainsi que si necessaire dans spip_asso_destination_op */
     173function association_supprimer_operation_comptable($id_compte)
     174{
     175    include_spip('base/association');
     176    /* on efface de la table destination_op toutes les entrees correspondant a cette operation  si on en trouve */
     177    sql_delete('spip_asso_destination_op', "id_compte=$id_compte");
     178    /* on logue quand meme */
     179    list($date, $recette, $depense, $imputation, $journal, $id_journal) = sql_fetsel('date, recette, depense, imputation, journal, id_journal', 'spip_asso_comptes', "id_compte=$id_compte");
     180    spip_log("suppression d'operation comptable : id_compte=$id_compte, date=$date, recette=$recette, depense=$depense, imputation=$imputation, journal=$journal, id_journal=$id_journal, justification=...",'associaspip');
     181    /* on efface enfin de la table comptes l'entree correspondant a cette operation */
     182    sql_delete('spip_asso_comptes', "id_compte=$id_compte");
     183}
     184
     185/* Supprimer en masse des operations dans spip_asso_comptes ainsi que si necessaire dans spip_asso_destination_op */
     186function association_supprimer_operations_comptables($critere)
     187{
     188    include_spip('base/association');
     189    /* on recupere les id_comptes a supprimer */
     190    $where = sql_in_select('id_compte', 'id_compte', 'spip_asso_comptes', $critere);
     191    /* on efface de la table destination_op toutes les entrees correspondant a ces operations  si on en trouve */
     192    sql_delete('spip_asso_destination_op', $where);
     193    /* on logue quand meme */
     194    $query_log = sql_select('id_compte, date, recette, depense, imputation, journal, id_journal', 'spip_asso_comptes', $where);
     195    while ( list($id_compte, $date, $recette, $depense, $imputation, $journal, $id_journal) = fetch($query_log) ) {
     196        spip_log("suppression d'operation comptable : id_compte=$id_compte, date=$date, recette=$recette, depense=$depense, imputation=$imputation, journal=$journal, id_journal=$id_journal ",'associaspip');
     197    }
     198    /* on efface enfin de la table comptes les entrees correspondant a ces operations */
     199    sql_delete('spip_asso_comptes', $where); // $where ou $critere
     200}
     201
    170202/* fonction de verification des montants de destinations entres */
    171203/* le parametre d'entree est le montant total attendu, les montants des destinations sont recuperes */
     
    212244    /* on efface de la table destination_op toutes les entrees correspondant a cette operation  si on en trouve*/
    213245    sql_delete('spip_asso_destination_op', "id_compte=$id_compte");
     246//    spip_log("DEL spip_asso_destination_op.id_compte=$id_compte",'associaspip');
    214247    if ($recette>0) {
    215248        $attribution_montant = 'recette';
     
    219252    $toutesDestinations = _request('id_dest');
    220253    $toutesDestinationsMontants = _request('montant_dest');
     254//    spip_log("id_dest : \n".print_r($toutesDestinations, true), 'associaspip');
     255//    spip_log("id_dest : \n".print_r($toutesDestinationsMontants, true), 'associaspip');
    221256    if (count($toutesDestinations)>1) {
    222257        foreach ($toutesDestinations as $id => $id_destination) {
    223258            $montant = association_recupere_montant($toutesDestinationsMontants[$id]);  /* le tableau des montants a des cles indentique a celui des id */
    224             sql_insertq('spip_asso_destination_op', array(
     259            $id_dest_op = sql_insertq('spip_asso_destination_op', array(
    225260                'id_compte' => $id_compte,
    226261                'id_destination' => $id_destination,
    227262                $attribution_montant => $montant
    228263            ));
     264//          spip_log("spip_asso_destination_op(id_dest_op,id_compte,id_destination,montant,attribution)=($id_dest_op,$id_compte,$id_destination,$montant,$attribution_montant)",'associaspip');
    229265        }
    230266    } else { /* une seule destination, le montant peut ne pas avoir ete precise, on entre directement le total recette+depense */
    231         sql_insertq('spip_asso_destination_op', array(
     267        $id_dest_op = sql_insertq('spip_asso_destination_op', array(
    232268            'id_compte' => $id_compte,
    233269            'id_destination' => $toutesDestinations[1],
    234270            $attribution_montant => $depense+$recette
    235271        ));
     272//      spip_log("spip_asso_destination_op(id_dest_op,id_compte,id_destination,recette,depense,attribution)=($id_dest_op,$id_compte,1,$recette,$depense,$attribution_montant)",'associaspip');
    236273    }
    237274}
  • _plugins_/Association/Associaspip/inc/association_spipal.php

    r57780 r58798  
    99\***************************************************************************/
    1010
    11 if (!defined('_ECRIRE_INC_VERSION')) return;
     11if (!defined('_ECRIRE_INC_VERSION'))
     12        return;
    1213
    1314// Fonction prenant en charge la validation d'une notification de paiement Paypal
     
    2021{
    2122        $custom = @unserialize($env['custom']);
    22         $id = ($custom['id_auteur']<0) ? (0-$custom['id_auteur']) : intval($custom['id_auteur']);
     23        $id = abs(intval($custom['id_auteur']));
    2324        $montant = intval($env['payment_fee']?$env['payment_fee']:$env['mc_fee']);
    24         $where = "id_adherent=$id AND argent=$montant AND vu=0";
     25        $where = "id_adherent=$id AND argent=$montant";
    2526
    2627        // Prendre le premier don a valider de cette personne et de ce montant
    2728        // (il peut y en ait plusieurs en cas de multiples clics)
    28 
    29         $id_don = sql_getfetsel('id_don', 'spip_asso_dons AS D LEFT JOIN spip_asso_comptes AS C ON D.id_don=C.id_journal', $where, '', 'date_don ASC', "1");
     29        $id_don = sql_getfetsel('id_don', 'spip_asso_dons AS D LEFT JOIN spip_asso_comptes AS C ON D.id_don=C.id_journal', "$where AND vu=0", '', 'date_don ASC', '1');
    3030
    3131        if (!$id_don)
    32                 spip_log("pas de don pour $where");
     32                spip_log("pas de don pour : $where",'associaspip');
    3333        else {
    3434                sql_updateq('spip_asso_comptes', array('vu' => 1), "id_journal=$id_don");
    35                 spip_log("validation Paypal de $where");
     35                spip_log("validation Paypal de don$id_don : $where",'associaspip');
    3636        }
    3737}
     38
     39?>
  • _plugins_/Association/Associaspip/inc/mode_de_paiement.html

    r57835 r58798  
     1[(#REM)<!-- CHOISIR le ComPTe financier (associe au mode de paiement) a impacter et ventiler par DESTinationns si active.
     2le choix du compte financier se fait dans la liste des comptes actifs de la classe financiere (exepte virements internes bien sur)
     3
     4plugin = associaspip ; tables = spip_asso_plan, spip_asso_destinations.
     5plugins necessaires = aucun
     6
     7parametres =
     8- type_operation (caractere) : indique la "classe comptable" de l'operation (l'affichage est alors ajuste pour indiquer que le compte financier va etre credite ou debite)
     9- journal (texte) : code/numero du compte financier precedemment selectionne
     10- id_dest (tableau d'entiers) : numeros des destinations choisies
     11- montant_dest (tableau de nombres) : montants des destinations choisies
     12- unique_dest (entier) : numero de la destination unique ?
     13- defaut_dest (entier) : numero de la destination par defaut (premiere ou seule proposee)
     14- champs_legende (texte) : titre a utiliser si on veut grouper tous les champs
     15
     16remarques:
     17- les parametres relatifs aux destinations sont dans l'environnemnet du formulaire, il faut donc juste penser a passer le parametre "env" lors de l'inclusion de ce fichier
     18- perfectible
     19
     20maj:2012-02-15; version:0.2.0; licence:GPL; copyleft:Jeannot Lapin, Marcel Bolla; -->]
     21
    122#CACHE{0}
    2 <li id="saisie_mode_paiement" class="editer_journal [(#ENV{type_operation}|affichage_div{charges-produits-banques})]">
    3         <label for="journal">
    4                 <div id="saisie_label_journal_depense" name="saisie_label_journal_depense" class="[(#ENV{type_operation}|affichage_div{charges-banques})]">
    5                         <:asso:compte_debite:>
    6                 </div>
    7                 <div id="saisie_label_journal_recette" name="saisie_label_journal_recette" class="[(#ENV{type_operation}|affichage_div{produits})]">
    8                         <:asso:compte_credite:>
    9                 </div>
    10         </label>
     23[(#ENV{champs_legende}|oui)
     24<fieldset>
     25    <legend>#ENV{champs_legende}</legend>
     26    <ul>
     27]
     28                <li id="saisie_mode_paiement" class="editer_journal [(#ENV{type_operation}|affichage_div{charges-produits-banques})]">
     29                        <label for="journal">
     30                                <div id="saisie_label_journal_depense" name="saisie_label_journal_depense" class="[(#ENV{type_operation}|affichage_div{charges-banques})]">
     31                                        <:asso:compte_debite:>
     32                                </div>
     33                                <div id="saisie_label_journal_recette" name="saisie_label_journal_recette" class="[(#ENV{type_operation}|affichage_div{produits})]">
     34                                        <:asso:compte_credite:>
     35                                </div>
     36                        </label>
    1137<B_mode_paiement>
    12         <select name="journal" id="journal" class="formo">
     38                        <select name="journal" id="journal" class="formo">
    1339<BOUCLE_mode_paiement(ASSO_PLAN){par code}{active=1}{classe=#META{/association/classe_banques}}{code!=#META{/association/pc_intravirements}}>
    14                 <option value="#CODE" [(#ENV{journal}|=={#CODE}|?{selected="selected"})]>#CODE - #INTITULE</option>
     40                                <option value="#CODE" [(#ENV{journal}|=={#CODE}|?{selected="selected"})]>#CODE - #INTITULE</option>
    1541</BOUCLE_mode_paiement>
    16         </select>
     42                        </select>
    1743[
    18 </li>
    19 <li id="saisie_destination" class="editer_destinations[ (#ENV{type_operation}|affichage_div{charges-produits-contributions_volontaires})]">
    20         [<span class="erreur_message">(#ENV**{erreurs}|table_valeur{destinations})</span>]
     44                </li>
     45                <li id="saisie_destination" class="editer_destinations[ (#ENV{type_operation}|affichage_div{charges-produits-contributions_volontaires})]">
     46                        [<span class="erreur_message">(#ENV**{erreurs}|table_valeur{destinations})</span>]
    2147        (#EDITEUR_DESTINATIONS)
    2248]
    2349</B_mode_paiement>
    24         <span class="erreur_message"><:asso:erreur_pas_de_classe_financiere:></span>
     50                        <span class="erreur_message"><:asso:erreur_pas_de_classe_financiere:></span>
    2551<//B_mode_paiement>
    26 </li>
     52                </li>
     53[(#ENV{champs_legende}|oui)
     54    </ul>
     55</fieldset>
     56]
  • _plugins_/Association/Associaspip/lang/asso_fr.php

    r58138 r58798  
    4444        'entete_action' => 'Action',
    4545        'entete_actions' => 'Actions',
     46        'entete_code' => 'R&eacute;f./Code',
    4647        'entete_commentaire' => 'Commentaire',
    4748        'entete_date' => 'Date',
     
    5253        'entete_nom' => 'Nom',
    5354        'entete_num' => 'N<sup>o</sup>',
     55        'entete_quantite' => 'Q<sup>t&eacute;</sup>',
    5456        'entete_statut' => 'Statut',
    5557        'entete_solde' => 'Solde',
     
    5759        # Libelles communes
    5860        'libelle_commentaire' => 'Commentaire',
     61        'libelle_duree' => 'Dur&eacute;e',
    5962        'libelle_date' => 'Date (AAAA-MM-JJ)',
    6063        'libelle_intitule' => 'Intitul&eacute; complet',
     
    6366        'libelle_nom' => 'Nom',
    6467        'libelle_num' => 'N<sup>o</sup>',
     68        'libelle_quantite' => 'Quantit&eacute;',
    6569        'libelle_statut' => 'Statut',
    6670        # Listes communs
     
    9599        'devise_nom' => 'Euro', // les noms des monnaies ne dependent pas de la langue mais du pays et sont communs a beaucoup : cf <http://www.baudelet.net/monnaies/> ; utiliser le symbole pour indiquer le nom generique (cf. ) ou le code ISO pour preciser la devise exacte d'un pays : cf <http://fr.wikipedia.org/wiki/Liste_des_monnaies_en_circulation>
    96100        'devise_montant' => '@montant@&nbsp;@devise@', // pays francophones/luxophone/etc. : '@nombre@&nbsp;@devise@' ; pays anglophones/germanophones/etc. : '@devise@&nbsp;@nombre@' ; pour l'usage, cf. <http://programmer.spip.org/Syntaxe-complete-des-codes-de> & <http://programmer.spip.org/Codes-de-langue-en-PHP>
    97         'duree_temps' => '@nombre@ @unite@',
     101        'duree_temps' => '@nombre@&nbsp;@unite@',
    98102        'nombre_fois' => '@nombre@ fois',
     103        'objet_num' => '@objet@ n<sup>o</sup>&nbsp;:&nbsp;@num@',
     104        'titre_num' => '@titre@&nbsp;@num@',
    99105        'totaux_titre' => 'Totaux @titre@',
    100106        'date_du_jour' => 'Nous sommes le @date@',
     
    469475
    470476De: @nom@
    471 N&deg; d\'adh&eacute;rent: @id_adherent@
    472477Accompagn&eacute; de
    473478        Membres: @membres@
     
    640645        'cpte_resultat_titre_produits' => 'PRODUITS',
    641646        'cpte_resultat_titre_benevolat' => 'CONTRIBUTIONS VOLONTAIRES',
     647        'cpte_resultat_titre_resultat' => 'R&Eacute;SULTAT',
    642648        'cpte_resultat_total_charges' => 'Total des Charges',
    643649        'cpte_resultat_total_produits' => 'Total des Produits',
     
    674680        'erreur_plan_code_modifie_utilise_classe_financiere' => 'Cette r&eacute;f&eacute;rence comptable est utilis&eacute;e par un module de gestion (ventes/dons/prets/activit&eacute;s) activ&eacute; ou pour la gestion des cotisations. Vous ne pouvez donc pas modifier le code/la classe pour lui attribuer la classe des comptes financiers.',
    675681        'erreur_plan_changement_classe_impossible' => 'Vous ne pouvez pas modifier la classe de ce compte pour la changer vers ou depuis la classe d&eacute;finie comme &eacute;tant celle des comptes financiers car des op&eacute;rations sur ce compte existent dans le livre de comptes.',
    676         'erreur_format_date' => 'La date doit &ecirc;tre au format AAAA-MM-JJ',
    677         'erreur_date' =>  'Cette date n\'existe pas',
     682        'erreur_format_date' => 'La date doit &ecirc;tre au format AAAA-MM-JJ ; ce qui n\'est pas le cas de&nbsp;: @date@',
     683        'erreur_valeur_date' =>  'Cette date n\'existe pas&nbsp;: @date@',
    678684        'erreur_operation_non_permise_sur_ce_compte' => 'Ce compte n\'accepte qu\'un seul type d\'op&eacute;rations (recette ou d&eacute;pense) et ne correspond pas a celle que vous avez rentr&eacute;',
    679685        'erreur_montant' => 'Les valeurs n&eacute;gatives ne sont pas autoris&eacute;es',
Note: See TracChangeset for help on using the changeset viewer.