8847861c872ea751c1ffeb42b76d2729dffe1cec
4 require_once __DIR__
. '/../_inc.php';
6 if ($user['droits']['compta'] < Membres
::DROIT_ECRITURE
)
8 throw new UserException("Vous n'avez pas le droit d'accéder à cette page.");
11 $journal = new Compta_Journal
;
13 $journal->checkExercice();
15 $cats = new Compta_Categories
;
16 $banques = new Compta_Comptes_Bancaires
;
18 if (isset($_GET['depense']))
19 $type = Compta_Categories
::DEPENSES
;
20 elseif (isset($_GET['virement']))
22 elseif (isset($_GET['dette']))
24 elseif (isset($_GET['avance']))
27 $type = Compta_Categories
::RECETTES
;
31 if (!empty($_POST['save']))
33 if (!utils
::CSRF_check('compta_saisie'))
35 $error = 'Une erreur est survenue, merci de renvoyer le formulaire.';
44 'libelle' => utils
::post('libelle'),
45 'montant' => utils
::post('montant'),
46 'date' => utils
::post('date'),
47 'compte_credit' => utils
::post('compte_credit'),
48 'compte_debit' => utils
::post('compte_debit'),
49 'numero_piece' => utils
::post('numero_piece'),
50 'remarques' => utils
::post('remarques'),
51 'id_auteur' => $user['id'],
54 elseif ($type === 'virement')
57 'libelle' => utils
::post('libelle'),
58 'montant' => utils
::post('montant'),
59 'date' => utils
::post('date'),
60 'compte_credit' => utils
::post('compte1'),
61 'compte_debit' => utils
::post('compte2'),
62 'numero_piece' => utils
::post('numero_piece'),
63 'remarques' => utils
::post('remarques'),
64 'id_auteur' => $user['id'],
69 $cat = $cats->get(utils
::post('categorie'));
73 throw new UserException('Il faut choisir une catégorie.');
78 if (!trim(utils
::post('compte')) ||
79 (utils
::post('compte') != 4010 && utils
::post('compte') != 4110))
81 throw new UserException('Type de dette invalide.');
86 if (utils
::post('moyen_paiement') == 'ES')
88 $a = Compta_Comptes
::CAISSE
;
93 if (!trim(utils
::post('banque')))
95 throw new UserException('Le compte bancaire choisi est invalide.');
98 if (!array_key_exists(utils
::post('banque'), $banques->getList()))
100 throw new UserException('Le compte bancaire choisi n\'existe pas.');
103 $a = utils
::post('banque');
108 if ($type === Compta_Categories
::DEPENSES
)
113 elseif ($type === Compta_Categories
::RECETTES
)
118 elseif ($type === 'dette')
120 $debit = $cat['compte'];
121 $credit = utils
::post('compte');
124 $id = $journal->add([
125 'libelle' => utils
::post('libelle'),
126 'montant' => utils
::post('montant'),
127 'date' => utils
::post('date'),
128 'moyen_paiement'=> ($type === 'dette') ?
null : utils
::post('moyen_paiement'),
129 'numero_cheque' => ($type === 'dette') ?
null : utils
::post('numero_cheque'),
130 'compte_credit' => $credit,
131 'compte_debit' => $debit,
132 'numero_piece' => utils
::post('numero_piece'),
133 'remarques' => utils
::post('remarques'),
134 'id_categorie' => ($type === 'dette') ?
null : (int)$cat['id'],
135 'id_auteur' => $user['id'],
139 $membres->sessionStore('compta_date', utils
::post('date'));
141 if ($type == Compta_Categories
::DEPENSES
)
143 elseif (is_null($type))
145 elseif ($type == Compta_Categories
::RECETTES
)
148 utils
::redirect('/admin/compta/operations/saisir.php?'.$type.'&ok='.(int)$id);
150 catch (UserException
$e)
152 $error = $e->getMessage();
157 $tpl->assign('error', $error);
159 $tpl->assign('type', $type);
163 $tpl->assign('comptes', $comptes->listTree());
167 $tpl->assign('moyens_paiement', $cats->listMoyensPaiement());
168 $tpl->assign('moyen_paiement', utils
::post('moyen_paiement') ?
: 'ES');
169 $tpl->assign('categories', $cats->getList($type === 'dette' ? Compta_Categories
::DEPENSES
: $type));
170 $tpl->assign('comptes_bancaires', $banques->getList());
171 $tpl->assign('banque', utils
::post('banque'));
174 if (!$membres->sessionGet('compta_date'))
176 $exercices = new Compta_Exercices
;
177 $exercice = $exercices->getCurrent();
179 if ($exercice['debut'] > time() ||
$exercice['fin'] < time())
181 $membres->sessionStore('compta_date', date('Y-m-d', $exercice['debut']));
185 $membres->sessionStore('compta_date', date('Y-m-d'));
189 $tpl->assign('date', $membres->sessionGet('compta_date') ?
: false);
190 $tpl->assign('ok', (int) utils
::get('ok'));
192 $tpl->display('admin/compta/operations/saisir.tpl');