18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
$data['parent'] = self::NUMERO_PARENT_COMPTES;
$data['id'] = null;
$this->_checkBankFields($data);
$new_id = parent::add($data);
$db->simpleInsert('compta_comptes_bancaires', [
'id' => $new_id,
'banque' => $data['banque'],
'iban' => $data['iban'],
'bic' => $data['bic'],
]);
return $new_id;
}
public function edit($id, $data)
{
$db = DB::getInstance();
if (!$db->simpleQuerySingle('SELECT 1 FROM compta_comptes_bancaires WHERE id = ?;', false, $id))
{
throw new UserException('Ce compte n\'est pas un compte bancaire.');
}
$this->_checkBankFields($data);
$result = parent::edit($id, $data);
if (!$result)
{
return $result;
}
$db->simpleUpdate('compta_comptes_bancaires', [
'banque' => $data['banque'],
'iban' => $data['iban'],
'bic' => $data['bic'],
], 'id = \''.$db->escapeString(trim($id)).'\'');
return true;
}
/**
* Supprime un compte bancaire
* La suppression sera refusée si le compte est utilisé dans l'exercice en cours
* ou dans une catégorie.
* Le compte bancaire sera supprimé et le compte au plan comptable seulement désactivé
* si le compte est utilisé dans un exercice précédent.
*
* La désactivation d'un compte fait qu'il n'est plus utilisable dans l'exercice courant
* ou les exercices suivants, mais il est possible de le réactiver.
* @param string $id Numéro du compte
* @return boolean TRUE si la suppression ou désactivation a été effectuée, une exception ou FALSE sinon
*/
public function delete($id)
{
$db = DB::getInstance();
if (!$db->simpleQuerySingle('SELECT 1 FROM compta_comptes_bancaires WHERE id = ?;', false, trim($id)))
{
throw new UserException('Ce compte n\'est pas un compte bancaire.');
}
// Ne pas supprimer/désactiver un compte qui est utilisé dans l'exercice courant
if ($db->simpleQuerySingle('SELECT 1 FROM compta_journal
WHERE id_exercice = (SELECT id FROM compta_exercices WHERE cloture = 0 LIMIT 1)
AND (compte_debit = ? OR compte_debit = ?) LIMIT 1;', false, $id, $id))
{
throw new UserException('Ce compte ne peut être supprimé car des écritures y sont liées sur l\'exercice courant. '
. 'Il faut supprimer ou ré-attribuer ces écritures avant de pouvoir supprimer le compte.');
}
// Il n'est pas possible de supprimer ou désactiver un compte qui est lié à des catégories
if ($db->simpleQuerySingle('SELECT 1 FROM compta_categories WHERE compte = ? LIMIT 1;', false, $id))
{
throw new UserException('Ce compte ne peut être supprimé car des catégories y sont liées. '
. 'Merci de supprimer ou modifier les catégories liées avant de le supprimer.');
}
$db->simpleExec('DELETE FROM compta_comptes_bancaires WHERE id = ?;', trim($id));
try {
$return = parent::delete($id);
}
catch (UserException $e) {
// Impossible de supprimer car des opérations y sont encore liées
// sur les exercices précédents, alors on le désactive
|
|
|
|
|
|
>
|
|
|
|
|
|
>
|
>
|
|
|
|
|
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
$data['parent'] = self::NUMERO_PARENT_COMPTES;
$data['id'] = null;
$this->_checkBankFields($data);
$new_id = parent::add($data);
$db->insert('compta_comptes_bancaires', [
'id' => $new_id,
'banque' => $data['banque'],
'iban' => $data['iban'],
'bic' => $data['bic'],
]);
return $new_id;
}
public function edit($id, $data)
{
$db = DB::getInstance();
$id = trim($id);
if (!$db->test('compta_comptes_bancaires', $db->where('id', $id)))
{
throw new UserException('Ce compte n\'est pas un compte bancaire.');
}
$this->_checkBankFields($data);
$result = parent::edit($id, $data);
if (!$result)
{
return $result;
}
$db->update('compta_comptes_bancaires', [
'banque' => $data['banque'],
'iban' => $data['iban'],
'bic' => $data['bic'],
], $db->where('id', $id));
return true;
}
/**
* Supprime un compte bancaire
* La suppression sera refusée si le compte est utilisé dans l'exercice en cours
* ou dans une catégorie.
* Le compte bancaire sera supprimé et le compte au plan comptable seulement désactivé
* si le compte est utilisé dans un exercice précédent.
*
* La désactivation d'un compte fait qu'il n'est plus utilisable dans l'exercice courant
* ou les exercices suivants, mais il est possible de le réactiver.
* @param string $id Numéro du compte
* @return boolean TRUE si la suppression ou désactivation a été effectuée, une exception ou FALSE sinon
*/
public function delete($id)
{
$db = DB::getInstance();
$id = trim($id);
if (!$db->test('compta_comptes_bancaires', $db->where('id', $id)))
{
throw new UserException('Ce compte n\'est pas un compte bancaire.');
}
// Ne pas supprimer/désactiver un compte qui est utilisé dans l'exercice courant
if ($db->firstColumn('SELECT 1 FROM compta_journal
WHERE id_exercice = (SELECT id FROM compta_exercices WHERE cloture = 0 LIMIT 1)
AND (compte_debit = ? OR compte_debit = ?) LIMIT 1;', $id, $id))
{
throw new UserException('Ce compte ne peut être supprimé car des écritures y sont liées sur l\'exercice courant. '
. 'Il faut supprimer ou ré-attribuer ces écritures avant de pouvoir supprimer le compte.');
}
// Il n'est pas possible de supprimer ou désactiver un compte qui est lié à des catégories
if ($db->test('compta_categories', $db->where('compte', $id)))
{
throw new UserException('Ce compte ne peut être supprimé car des catégories y sont liées. '
. 'Merci de supprimer ou modifier les catégories liées avant de le supprimer.');
}
$db->delete('compta_comptes_bancaires', $db->where('id', $id));
try {
$return = parent::delete($id);
}
catch (UserException $e) {
// Impossible de supprimer car des opérations y sont encore liées
// sur les exercices précédents, alors on le désactive
|