Changeset 63500 in spip-zone


Ignore:
Timestamp:
Jul 16, 2012, 9:26:02 PM (8 years ago)
Author:
gildas.cotomale@…
Message:

comme on ne peut plus modifier les opérations comptables validées il faut quand même le signaler dans les formulaires qui en dépendent

Location:
_plugins_/Association/Associaspip
Files:
7 edited

Legend:

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

    r63491 r63500  
    4444    include_spip('inc/association_comptabilite');
    4545    include_spip('inc/modifier'); // on passe par modifier_contenu pour que la modification soit envoyee aux plugins et que Champs Extras 2 la recupere
    46     if ($id_activite) { /* c'est une modification */
     46    if ($id_activite) { // c'est une modification
    4747        // on modifie les operations comptables associees a la participation
    48         association_modifier_operation_comptable($date_paiement, $montant, 0, '['. _T('asso:titre_num', array('titre'=>_T('evenement'),'num'=>$evenement) ) ."->activite$evenement] — ". ($id_adherent?"[$participant"."->membre$id_adherent]":$participant)." +$inscrits", $GLOBALS['association_metas']['pc_activites'], $journal, $id_activite, $id_compte);
     48        $erreur = association_modifier_operation_comptable($date_paiement, $montant, 0, '['. _T('asso:titre_num', array('titre'=>_T('evenement'),'num'=>$evenement) ) ."->activite$evenement] — ". ($id_adherent?"[$participant"."->membre$id_adherent]":$participant)." +$inscrits", $GLOBALS['association_metas']['pc_activites'], $journal, $id_activite, $id_compte);
    4949        // on modifie les informations relatives a la participation
    5050        modifier_contenu(
     
    5454            $modifs // champs a modifier
    5555        );
    56     } else { /* c'est un ajout */
     56    } else { // c'est un ajout
    5757        // on enregistre l'inscription/participation a l'activite
    5858        $id_activite = sql_insertq('spip_asso_activites', $modifs);
  • _plugins_/Association/Associaspip/action/editer_asso_comptes.php

    r60418 r63500  
    2828        $type_operation = _request('type_operation');
    2929        /* dans le cas ou c'est un virement on va generer 2 ecritures
    30          * Supposons un virement de 400 du compte 5171 (Caisse d'epargne) vers le compte 531 (caisse)
     30         * Supposons un virement de 400 du compte 5171 (Caisse d'epargne) vers le compte 531 (caisse)
    3131         * depense = 400   imputation = 531  journal = 5171
    32          *
    33          * 1ere ecriture : depense 400€ de 5171 vers 581 (virement interne)
     32         * 1ere ecriture :
    3433         * depense = 400   imputation = 581  journal = 5171
    35          *
    36          * 2eme ecriture : recette 400€ de 581 vers 531
     34         * 2eme ecriture :
    3735         * recette = 400   imputation = 581  journal = 531
    38          *
    3936         * Dans Bilan et Compte de résultat, le compte 581 doit avoir un solde = 0 !!!!
    4037         */
     
    4239                if(!$justification)
    4340                        $justification = _T('asso:virement_interne');
    44                 /* si le compte 58xx n'existe pas on le cree dans le plan comptable */
     41                // si le compte 58xx n'existe pas on le cree dans le plan comptable
    4542                $compte_virement = association_creer_compte_virement_interne();
    46                 /* c'est forcément un ajout car pour l'instant l'edition d'un virement est "desactive" */
    47                 /* la modification d'un virement interne n'est pas encore implementee et donc pour modifier */
    48                 /* un virement on le supprime et on le recree .... C'est pas beau mais ça fonctionne !!!*/
    49                 /* TODO : decommenter les lignes si edition/modification d'un virement possible ! */
    50                 //if (!$id_compte) { /* pas d'id_compte, c'est un ajout */
     43                // c'est forcément un ajout car pour l'instant l'edition d'un virement est "desactive"
     44                // la modification d'un virement interne n'est pas encore implementee et donc pour modifier un virement on le supprime et on le recree .... C'est pas beau mais ça fonctionne !!!
     45                // TODO : decommenter les lignes si edition/modification d'un virement possible !
     46#               if (!$id_compte) { // pas d'id_compte, c'est un ajout
    5147                        // 1ere ecriture :
    5248                        $old_imputation = $imputation;
     
    5854                        if (!$id_compte)
    5955                                $erreur = _T('asso:erreur_sgbdr');
    60                 //} else {
    61                         /* c'est une modif, ........ */
    62                 //      association_modifier_compte_virement_interne($id_compte);
    63                 //}
     56#               } else { // c'est une modif
     57#                       $erreur = association_modifier_compte_virement_interne($id_compte);
     58#               }
    6459        } else {
    65                 if (!$id_compte) { /* pas d'id_compte, c'est un ajout */
     60                if (!$id_compte) { // pas d'id_compte, c'est un ajout
    6661                        $id_compte = association_ajouter_operation_comptable($date, $recette, $depense, $justification, $imputation, $journal, 0);
    6762                        if (!$id_compte)
    6863                                $erreur = _T('asso:erreur_sgbdr');
    69                 } 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 */
    70                         association_modifier_operation_comptable($date, $recette, $depense, $justification, $imputation, $journal, '', $id_compte);
     64                } 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
     65                        $erreur = association_modifier_operation_comptable($date, $recette, $depense, $justification, $imputation, $journal, '', $id_compte);
    7166                }
    7267        }
  • _plugins_/Association/Associaspip/action/editer_asso_dons.php

    r62713 r63500  
    4242        $journal = _request('journal');
    4343        include_spip('inc/association_comptabilite');
    44         if ($id_don) { /* c'est une modification */
     44        if ($id_don) { // c'est une modification
    4545                // on modifie les operations comptables associees au don
    46                 if ($GLOBALS['association_metas']['pc_dons']==$GLOBALS['association_metas']['pc_colis']) { /* si dons et colis sont associes a la meme reference, on modifie une seule operation */
    47                         association_modifier_operation_comptable($date_don, $argent+$valeur, 0, '['. _T('asso:titre_num', array('titre'=>_T('local:don'),'num'=>$id_don) ) ."->don$id_don] — ". ($id_adherent?"[$bienfaiteur"."->membre$id_adherent]":$bienfaiteur), $GLOBALS['association_metas']['pc_dons'], $journal, $id_don, $id_compte);
     46                if ($GLOBALS['association_metas']['pc_dons']==$GLOBALS['association_metas']['pc_colis']) { // si dons et colis sont associes a la meme reference, on modifie une seule operation
     47                        $erreur = association_modifier_operation_comptable($date_don, $argent+$valeur, 0, '['. _T('asso:titre_num', array('titre'=>_T('local:don'),'num'=>$id_don) ) ."->don$id_don] — ". ($id_adherent?"[$bienfaiteur"."->membre$id_adherent]":$bienfaiteur), $GLOBALS['association_metas']['pc_dons'], $journal, $id_don, $id_compte);
    4848                } else { // sinon on en modifie deux
    4949                        // modification du don en argent
    50                         association_modifier_operation_comptable($date_don, $argent, 0, '['. _T('asso:titre_num', array('titre'=>_T('local:don'),'num'=>$id_don) ) ."->don$id_don] — ". ($id_adherent?"[$bienfaiteur"."->membre$id_adherent]":$bienfaiteur), $GLOBALS['association_metas']['pc_dons'], $journal, $id_don, $id_compte);
     50                        $erreur = association_modifier_operation_comptable($date_don, $argent, 0, '['. _T('asso:titre_num', array('titre'=>_T('local:don'),'num'=>$id_don) ) ."->don$id_don] — ". ($id_adherent?"[$bienfaiteur"."->membre$id_adherent]":$bienfaiteur), $GLOBALS['association_metas']['pc_dons'], $journal, $id_don, $id_compte);
    5151                        // modification du don en nature
    5252                        $association_imputation = charger_fonction('association_imputation', 'inc');
    5353                        $critere = $association_imputation('pc_colis');
    5454                        $critere .= ($critere?' AND ':'') ."id_journal=$id_don";
    55                         association_modifier_operation_comptable($date_don, $valeur, 0, '['. _T('asso:titre_num', array('titre'=>_T('local:colis'),'num'=>$id_don) ) ."->don$id_don] — ". ($id_adherent?"[$bienfaiteur"."->membre$id_adherent]":$bienfaiteur), $GLOBALS['association_metas']['pc_colis'], '', $id_don, sql_getfetsel('id_compte', 'spip_asso_comptes', $critere) );
     55                        $erreur = association_modifier_operation_comptable($date_don, $valeur, 0, '['. _T('asso:titre_num', array('titre'=>_T('local:colis'),'num'=>$id_don) ) ."->don$id_don] — ". ($id_adherent?"[$bienfaiteur"."->membre$id_adherent]":$bienfaiteur), $GLOBALS['association_metas']['pc_colis'], '', $id_don, sql_getfetsel('id_compte', 'spip_asso_comptes', $critere) );
    5656                }
    5757                // on modifie les informations relatives au don
  • _plugins_/Association/Associaspip/action/editer_asso_prets.php

    r62726 r63500  
    5656        sql_updateq('spip_asso_prets', $modifs, "id_pret=$id_pret" );
    5757        // on modifie l'operation comptable associee a la location meme
    58         association_modifier_operation_comptable(($fiso_retour>$fiso_sortie)?$date_retour:$date_sortie, $montant*($duree?$duree:1), 0, '['. _T('asso:titre_num', array('titre'=>_T('local:pret'),'num'=>$id_pret) ) ."->pret$id_pret] - ". ($id_emprunteur?"[$emprunteur"."->membre$id_emprunteur]":$emprunteur), $GLOBALS['association_metas']['pc_prets'], $journal, $id_pret, $id_compte);
     58        $erreur = association_modifier_operation_comptable(($fiso_retour>$fiso_sortie)?$date_retour:$date_sortie, $montant*($duree?$duree:1), 0, '['. _T('asso:titre_num', array('titre'=>_T('local:pret'),'num'=>$id_pret) ) ."->pret$id_pret] - ". ($id_emprunteur?"[$emprunteur"."->membre$id_emprunteur]":$emprunteur), $GLOBALS['association_metas']['pc_prets'], $journal, $id_pret, $id_compte);
    5959        // on modifie l'opertation comptable associee a la caution
    6060        if ( $GLOBALS['association_metas']['pc_cautions'] ) { // les cautions sont encaissees
     
    6262            $critere = $association_imputation('pc_cautions');
    6363            $critere .= ($critere?' AND ':'') ."id_journal=$id_pret";
    64             association_modifier_operation_comptable(($date_caution1, $caution, 0, '['. _T('asso:titre_num', array('titre'=>_T('local:caution'),'num'=>$id_pret) ) ."->pret$id_pret] - ". ($id_emprunteur?"[$emprunteur"."->membre$id_emprunteur]":$emprunteur), $GLOBALS['association_metas']['pc_cautions'], _request('mode_caution1'), $id_pret, sql_getfetsel('id_compte', 'spip_asso_comptes', "$critere AND recette>0") ); // depot
    65             association_modifier_operation_comptable(($date_caution0, 0, $caution, '['. _T('asso:titre_num', array('titre'=>_T('local:caution'),'num'=>$id_pret) ) ."->pret$id_pret] - ". ($id_emprunteur?"[$emprunteur"."->membre$id_emprunteur]":$emprunteur), $GLOBALS['association_metas']['pc_cautions'], _request('mode_caution0'), $id_pret, sql_getfetsel('id_compte', 'spip_asso_comptes', "$critere AND depense>0") ); // restitution
     64            $erreur = association_modifier_operation_comptable(($date_caution1, $caution, 0, '['. _T('asso:titre_num', array('titre'=>_T('local:caution'),'num'=>$id_pret) ) ."->pret$id_pret] - ". ($id_emprunteur?"[$emprunteur"."->membre$id_emprunteur]":$emprunteur), $GLOBALS['association_metas']['pc_cautions'], _request('mode_caution1'), $id_pret, sql_getfetsel('id_compte', 'spip_asso_comptes', "$critere AND recette>0") ); // depot
     65            $erreur = association_modifier_operation_comptable(($date_caution0, 0, $caution, '['. _T('asso:titre_num', array('titre'=>_T('local:caution'),'num'=>$id_pret) ) ."->pret$id_pret] - ". ($id_emprunteur?"[$emprunteur"."->membre$id_emprunteur]":$emprunteur), $GLOBALS['association_metas']['pc_cautions'], _request('mode_caution0'), $id_pret, sql_getfetsel('id_compte', 'spip_asso_comptes', "$critere AND depense>0") ); // restitution
    6666        }
    6767        // on met a jour le statut de la ressource
  • _plugins_/Association/Associaspip/action/editer_asso_ressources.php

    r63491 r63500  
    3939    include_spip('inc/association_comptabilite');
    4040    include_spip('inc/modifier'); // on passe par modifier_contenu pour que la modification soit envoyee aux plugins et que Champs Extras 2 la recupere
    41     if ($id_ressource) {/* c'est une modification */
     41    if ($id_ressource) {// c'est une modification
    4242        // on modifie les operations comptables associees a l'acquisition
    43         association_modifier_operation_comptable($date_achat, 0, $prix_achat, '['. _T('asso:titre_num', array('titre'=>_T('local:ressource'),'num'=>"'$code' × $statut") ) ."->ressource$id_ressource] ", $GLOBALS['association_metas']['pc_ressources'], $journal, $id_ressource, $id_compte);
     43        $erreur = association_modifier_operation_comptable($date_achat, 0, $prix_achat, '['. _T('asso:titre_num', array('titre'=>_T('local:ressource'),'num'=>"'$code' × $statut") ) ."->ressource$id_ressource] ", $GLOBALS['association_metas']['pc_ressources'], $journal, $id_ressource, $id_compte);
    4444        // on modifie les informations relatives a la ressource
    4545        modifier_contenu(
     
    4949            $champs // champs a modifier
    5050        );
    51 #       sql_updateq('spip_asso_ressources', $champs, "id_ressource=$id_ressource");
    52     } else { /* c'est un ajout */
     51    } else { // c'est un ajout
    5352        $id_ressource = sql_insertq('spip_asso_ressources', $champs );
    5453        if (!$id_ressource) { // la suite serait aleatoire sans cette cle...
     
    6059    }
    6160
    62     return array($id_ressource, '');
     61    return array($id_ressource, $erreur);
    6362}
    6463
  • _plugins_/Association/Associaspip/action/editer_asso_ventes.php

    r62553 r63500  
    6262        $journal = _request('journal');
    6363        include_spip('inc/association_comptabilite');
    64         if ($id_vente) { /* modification */
     64        if ($id_vente) { // modification
    6565                // on modifie les operations comptables associees a la 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 */
     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
    6767                        association_modifier_operation_comptable($date_vente, $quantite*$prix_unite+$frais_envoi, 0, '['. _T('asso:titre_num', array('titre'=>_T('local:vente'),'num'=>"$id_vente : '$code' × $quantite") ) ."->vente$id_vente] — ". ($id_acheteur?"[$acheteur"."->membre$id_acheteur]":$acheteur), $GLOBALS['association_metas']['pc_ventes'], $journal, $id_vente, $id_compte);
    68                 } else { /* sinon on en modifie deux */
     68                } else { // sinon on en modifie deux
    6969                        association_modifier_operation_comptable($date_vente, $quantite*$prix_unite, 0, '['. _T('asso:titre_num', array('titre'=>_T('local:vente'),'num'=>"$id_vente : '$code' × $quantite") ) ."->vente$id_vente] — ". ($id_acheteur?"[$acheteur"."->membre$id_acheteur]":$acheteur), $GLOBALS['association_metas']['pc_ventes'], $journal, $id_vente, $id_compte);
    7070                        $association_imputation = charger_fonction('association_imputation', 'inc');
    7171                        $critere = $association_imputation('pc_frais_envoi');
    7272                        $critere .= ($critere?' AND ':'') ."id_journal=$id_vente";
    73                         association_modifier_operation_comptable($date_envoi, $frais_envoi, 0, '['. _T('asso:titre_num', array('titre'=>_T('asso:config_libelle_frais_envoi'),'num'=>$id_vente) ) ."->vente$id_vente] — ". ($id_acheteur?"[$acheteur"."->membre$id_acheteur]":$acheteur), $GLOBALS['association_metas']['pc_frais_envoi'], $journal, $id_vente, sql_getfetsel('id_compte', 'spip_asso_comptes', $critere));
     73                        $erreur = association_modifier_operation_comptable($date_envoi, $frais_envoi, 0, '['. _T('asso:titre_num', array('titre'=>_T('asso:config_libelle_frais_envoi'),'num'=>$id_vente) ) ."->vente$id_vente] — ". ($id_acheteur?"[$acheteur"."->membre$id_acheteur]":$acheteur), $GLOBALS['association_metas']['pc_frais_envoi'], $journal, $id_vente, sql_getfetsel('id_compte', 'spip_asso_comptes', $critere));
    7474                }
    7575                // on modifie les informations relatives a la vente
    7676                sql_updateq('spip_asso_ventes', $modifs, "id_vente=$id_vente" );
    77         } else { /* ajout */
     77        } else { // ajout
    7878                // on ajoute les informations relatives a la vente
    7979                $id_vente = sql_insertq('spip_asso_ventes', $modifs);
     
    8181                        $erreur = _T('asso:erreur_sgbdr');
    8282                } else { // on ajoute les operations comptables associees a la vente
    83                         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 */
     83                        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
    8484                                association_ajouter_operation_comptable($date_vente, $quantite*$prix_unite+$frais_envoi, 0, '['. _T('asso:titre_num', array('titre'=>_T('local:vente'),'num'=>"$id_vente : '$code' × $quantite") ) ."->vente$id_vente] — ". ($id_acheteur?"[$acheteur"."->membre$id_acheteur]":$acheteur), $GLOBALS['association_metas']['pc_ventes'], $journal, $id_vente);
    85                         } else { /* sinon on en insere deux */
     85                        } else { // sinon on en insere deux
    8686                                association_ajouter_operation_comptable($date_vente, $quantite*$prix_unite, 0, "[ref '$code' × $quantite"."->vente$id_vente] — ". ($id_acheteur?"[$acheteur"."->membre$id_acheteur]":$acheteur), $GLOBALS['association_metas']['pc_ventes'], $journal, $id_vente);
    8787                                association_ajouter_operation_comptable($date_en, $frais_envoi, 0, '['. _T('asso:titre_num', array('titre'=>_T('asso:config_libelle_frais_envoi'),'num'=>$id_vente) ) ."->vente$id_vente] — ". ($id_acheteur?"[$acheteur"."->membre$id_acheteur]":$acheteur), $GLOBALS['association_metas']['pc_frais_envoi'], $journal, $id_vente);
  • _plugins_/Association/Associaspip/inc/association_comptabilite.php

    r63051 r63500  
    117117    ));
    118118    modifier_contenu('asso_compte', $id_compte, '', array());
    119     // on laisse passer ce qui est peut-etre une erreur,
    120     // pour ceux qui ne definisse pas de plan comptable.
    121     // Mais ce serait bien d'envoyer un message d'erreur au navigateur
    122     // plutot que de le signaler seulement dans les log
    123     if (!$imputation) {
     119    if (!$imputation) { // On laisse passer ce qui est peut-etre une erreur, pour ceux qui ne definisse pas de plan comptable. Mais ce serait bien d'envoyer un message d'erreur au navigateur plutot que de le signaler seulement dans les log
    124120        spip_log("imputation manquante : id_compte=$id_compte, date=$date, recette=$recette, depense=$depense, journal=$journal, id_journal=$id_journal, justification=$justification",'associaspip');
    125121    }
    126     /* Si on doit gerer les destinations */
    127     if ($GLOBALS['association_metas']['destinations']=='on') {
     122    if ($GLOBALS['association_metas']['destinations']=='on') { // Si on doit gerer les destinations
    128123        association_ajouter_destinations_comptables($id_compte, $recette, $depense);
    129124    }
     
    135130function association_modifier_operation_comptable($date, $recette, $depense, $justification, $imputation, $journal, $id_journal, $id_compte)
    136131{
     132    $err = '';
    137133    include_spip('base/association');
    138134    if ( sql_countsel('spip_asso_comptes', "id_compte=$id_compte AND vu ") ) { // il ne faut pas modifier une operation verouillee !!!
     
    140136        return $err = _T('asso:operation_non_modifiable');
    141137    }
    142     /* Si on doit gerer les destinations */
    143     if ($GLOBALS['association_metas']['destinations']=='on') {
     138    if ($GLOBALS['association_metas']['destinations']=='on') { // Si on doit gerer les destinations
    144139        $err = association_ajouter_destinations_comptables($id_compte, $recette, $depense);
    145140    }
    146     /* on passe par modifier_contenu (et non sql_updateq) pour que la modification soit envoyee aux plugins et que Champs Extras 2 la recupere */
     141    $modifs = array(
     142        'date' => $date,
     143        'imputation' => $imputation,
     144        'recette' => $recette,
     145        'depense' => $depense,
     146        'journal' => $journal,
     147        'justification' => $justification)//,
     148    );
     149    if ($id_journal) { // si id_journal est null, ne pas le modifier afin de ne pas endommager l'entree dans la base en editant directement depuis le livre de comptes
     150        $modifs['id_journal'] = $id_journal;
     151    }
     152    // on passe par modifier_contenu (et non sql_updateq) pour que la modification soit envoyee aux plugins et que Champs Extras 2 la recupere
    147153    include_spip('inc/modifier');
    148     // tester $id_journal, si il est null, ne pas le modifier afin de ne pas endommager l'entree dans la base en editant directement depuis le libre de comptes
    149     if ($id_journal) {
    150         modifier_contenu('asso_compte', $id_compte, '', array(
    151             'date' => $date,
    152             'imputation' => $imputation,
    153             'recette' => $recette,
    154             'depense' => $depense,
    155             'journal' => $journal,
    156             'id_journal' => $id_journal,
    157             'justification' => $justification)//,
    158         );
    159     } else {
    160         modifier_contenu('asso_compte', $id_compte, '', array(
    161             'date' => $date,
    162             'imputation' => $imputation,
    163             'recette' => $recette,
    164             'depense' => $depense,
    165             'journal' => $journal,
    166             'justification' => $justification)//,
    167         );
    168     }
     154    modifier_contenu(
     155        'asso_compte',
     156        $id_compte,
     157        '',
     158        $modifs
     159    );
    169160    return $err;
    170161}
Note: See TracChangeset for help on using the changeset viewer.