source: spip-zone/_plugins_/Association/Associaspip/action/editer_asso_comptes.php @ 63500

Last change on this file since 63500 was 63500, checked in by gildas.cotomale@…, 8 years ago

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

File size: 3.5 KB
Line 
1<?php
2/***************************************************************************\
3 *  Associaspip, extension de SPIP pour gestion d'associations             *
4 *                                                                         *
5 *  Copyright (c) 2007 Bernard Blazin & Fran�ois de Montlivault (V1)       *
6 *  Copyright (c) 2010-2011 Emmanuel Saint-James & Jeannot Lapin (V2)       *
7 *                                                                         *
8 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
9 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
10\***************************************************************************/
11
12
13if (!defined('_ECRIRE_INC_VERSION'))
14        return;
15
16function action_editer_asso_comptes()
17{
18        $securiser_action = charger_fonction('securiser_action', 'inc');
19        $id_compte = $securiser_action();
20        $erreur = '';
21        include_spip('inc/association_comptabilite');
22        $date = association_recupere_date(_request('date'));
23        $imputation = _request('imputation');
24        $recette = association_recupere_montant(_request('recette'));
25        $depense = association_recupere_montant(_request('depense'));
26        $justification = _request('justification');
27        $journal = _request('journal');
28        $type_operation = _request('type_operation');
29        /* 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)
31         * depense = 400   imputation = 531  journal = 5171
32         * 1ere ecriture :
33         * depense = 400   imputation = 581  journal = 5171
34         * 2eme ecriture :
35         * recette = 400   imputation = 581  journal = 531
36         * Dans Bilan et Compte de résultat, le compte 581 doit avoir un solde = 0 !!!!
37         */
38        if ($type_operation==$GLOBALS['association_metas']['classe_banques']) {
39                if(!$justification)
40                        $justification = _T('asso:virement_interne');
41                // si le compte 58xx n'existe pas on le cree dans le plan comptable
42                $compte_virement = association_creer_compte_virement_interne();
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
47                        // 1ere ecriture :
48                        $old_imputation = $imputation;
49                        $id_compte = association_ajouter_operation_comptable($date, $recette, $depense, $justification, $compte_virement, $journal, 0);
50                        if (!$id_compte)
51                                $erreur = _T('asso:erreur_sgbdr');
52                        // 2eme ecriture
53                        $id_compte = association_ajouter_operation_comptable($date, $depense, $recette, $justification, $compte_virement, $old_imputation, 0);
54                        if (!$id_compte)
55                                $erreur = _T('asso:erreur_sgbdr');
56#               } else { // c'est une modif
57#                       $erreur = association_modifier_compte_virement_interne($id_compte);
58#               }
59        } else {
60                if (!$id_compte) { // pas d'id_compte, c'est un ajout
61                        $id_compte = association_ajouter_operation_comptable($date, $recette, $depense, $justification, $imputation, $journal, 0);
62                        if (!$id_compte)
63                                $erreur = _T('asso:erreur_sgbdr');
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);
66                }
67        }
68        return array($id_compte, $erreur);
69}
70
71?>
Note: See TracBrowser for help on using the repository browser.