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

Last change on this file since 53976 was 53976, checked in by marcel@…, 9 years ago

barre de saisie rapide : Dépense, Recette, Virement et Contibution Solidaire avec positionnement des comptes correspondants.

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")) return;
14
15
16function action_editer_asso_comptes() {
17
18        $securiser_action = charger_fonction('securiser_action', 'inc');
19        $id_compte = $securiser_action();
20
21        include_spip('inc/association_comptabilite');
22
23        $date= _request('date');
24        $imputation= _request('imputation');
25
26        $recette = association_recupere_montant(_request('recette'));
27        $depense = association_recupere_montant(_request('depense'));
28        $justification= _request('justification');
29        $journal= _request('journal');
30
31        $type_operation = _request('type_operation');
32        /* dans le cas ou c'est un virement on va generer 2 ecritures
33         * Supposons un virement de 400€ du compte 5171 (Caisse d'epargne) vers le compte 531 (caisse)
34         * depense = 400   imputation = 531  journal = 5171
35         *
36         * 1ere ecriture : depense 400€ de 5171 vers 581 (virement interne)
37         * depense = 400   imputation = 581  journal = 5171
38         *
39         * 2eme ecriture : recette 400€ de 581 vers 531
40         * recette = 400   imputation = 581  journal = 531
41         *
42         * Dans Bilan et Compte de résultat, le compte 581 doit avoir un solde = 0 !!!!
43         */
44
45        if ($type_operation == $GLOBALS['association_metas']['classe_banques']) {
46                if(!$justification) $justification=_T('asso:virement_interne');
47                /* si le compte 58xx n'existe pas on le cree dans le plan comptable */
48                $compte_virement = association_creer_compte_virement_interne();
49                /* c'est forcément un ajout car pour l'instant l'edition d'un virement est "desactive" */
50                /* la modification d'un virement interne n'est pas encore implementee et donc pour modifier */
51                /* un virement on le supprime et on le recree .... C'est pas beau mais ça fonctionne !!!*/
52                /* TODO : decommenter les lignes si edition/modification d'un virement possible ! */
53                //if (!$id_compte) { /* pas d'id_compte, c'est un ajout */
54                        // 1ere ecriture
55                        $old_imputation = $imputation;
56                        $imputation = $compte_virement;
57                        $id_compte = association_ajouter_operation_comptable($date, $recette, $depense, $justification, $imputation, $journal, 0);
58                        // 2eme ecriture
59                        $recette = $depense;
60                        $depense = 0;
61                        $journal = $old_imputation;
62                        $id_compte = association_ajouter_operation_comptable($date, $recette, $depense, $justification, $imputation, $journal, 0);
63                //}
64                //else {
65                        /* c'est une modif, ........ */
66                //      association_modifier_compte_virement_interne($id_compte);
67                //}
68        }
69        else {
70                if (!$id_compte) { /* pas d'id_compte, c'est un ajout */
71                        $id_compte = association_ajouter_operation_comptable($date, $recette, $depense, $justification, $imputation, $journal, 0);
72        }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 */
73                        association_modifier_operation_comptable($date, $recette, $depense, $justification, $imputation, $journal, '', $id_compte);
74                }
75
76        }
77        return array($id_compte, '');
78}
79?>
Note: See TracBrowser for help on using the repository browser.