X-Git-Url: https://git.cyclocoop.org/?p=garradin.git;a=blobdiff_plain;f=include%2Fclass.compta_comptes.php;h=0ec751e8b189d7a1d0f4a2853df10b3752a551ab;hp=02021a21cc575f6d79b66b50da2a86b352dd4fe9;hb=f7ee0ae730f47bfef173c394fa4db71a22dece61;hpb=1ab3343a95ed3ef4958d91dfbf49372dce8a092e diff --git a/include/class.compta_comptes.php b/include/class.compta_comptes.php index 02021a2..0ec751e 100644 --- a/include/class.compta_comptes.php +++ b/include/class.compta_comptes.php @@ -11,9 +11,9 @@ class Compta_Comptes const PRODUIT = 0x04; const CHARGE = 0x08; - public function importPlan() + public function importPlan($file = NULL) { - $plan = json_decode(file_get_contents(ROOT . '/include/data/plan_comptable.json'), true); + $plan = json_decode(file_get_contents($file ? $file : ROOT.'/include/data/plan_comptable.json'), true); $db = DB::getInstance(); $db->exec('BEGIN;'); @@ -44,7 +44,7 @@ class Compta_Comptes } } - $db->exec('DELETE FROM compta_comptes WHERE id NOT IN(\''.implode('\', \'', $ids).'\') AND plan_comptable = 1;'); + //$db->exec('DELETE FROM compta_comptes WHERE id NOT IN(\''.implode('\', \'', $ids).'\') AND plan_comptable = 1;'); $db->exec('END;'); @@ -131,7 +131,7 @@ class Compta_Comptes $db = DB::getInstance(); // Ne pas supprimer un compte qui est utilisé ! - if ($db->simpleQuerySingle('SELECT 1 FROM compta_journal WHERE compte_debit = ? OR compte_debit = ? LIMIT 1;', false, $id, $id)) + if ($db->simpleQuerySingle('SELECT 1 FROM compta_flux WHERE compte = ? LIMIT 1;', false, $id)) { throw new UserException('Ce compte ne peut être supprimé car des opérations comptables y sont liées.'); } @@ -160,8 +160,8 @@ class Compta_Comptes { $db = DB::getInstance(); - if ($db->simpleQuerySingle('SELECT 1 FROM compta_journal - WHERE compte_debit = ? OR compte_debit = ? LIMIT 1;', false, $id, $id)) + if ($db->simpleQuerySingle('SELECT 1 FROM compta_flux + WHERE compte = ? LIMIT 1;', false, $id)) { return false; } @@ -184,8 +184,9 @@ class Compta_Comptes $db = DB::getInstance(); if ($db->simpleQuerySingle('SELECT 1 FROM compta_journal + LEFT JOIN compta_flux ON compta_journal.id = compta_flux.id_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)) + AND compte = ? LIMIT 1;', false, $id)) { return false; } @@ -211,8 +212,9 @@ class Compta_Comptes // Ne pas désactiver un compte utilisé dans l'exercice courant if ($db->simpleQuerySingle('SELECT 1 FROM compta_journal + LEFT JOIN compta_flux ON compta_journal.id = compta_flux.id_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)) + AND compte = ? LIMIT 1;', false, $id)) { throw new UserException('Ce compte ne peut être désactivé 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.'); @@ -322,4 +324,4 @@ class Compta_Comptes } } -?> \ No newline at end of file +?>