From f251113f69ed5eb73594de78401132b4288a0492 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Tue, 6 Feb 2018 01:00:35 +0100 Subject: [PATCH] Fix accounting module with multicompany --- .../accountancy/class/accountingjournal.class.php | 7 ++++++- htdocs/accountancy/class/lettering.class.php | 14 ++++++++++---- htdocs/install/mysql/data/llx_accounting_abc.sql | 13 +++++++------ 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/htdocs/accountancy/class/accountingjournal.class.php b/htdocs/accountancy/class/accountingjournal.class.php index 41152130f19af..3e2c0840f8ab5 100644 --- a/htdocs/accountancy/class/accountingjournal.class.php +++ b/htdocs/accountancy/class/accountingjournal.class.php @@ -59,6 +59,8 @@ function __construct($db) { */ function fetch($rowid = null, $journal_code = null) { + global $conf; + if ($rowid || $journal_code) { $sql = "SELECT rowid, code, label, nature, active"; @@ -66,8 +68,11 @@ function fetch($rowid = null, $journal_code = null) $sql .= " WHERE"; if ($rowid) { $sql .= " rowid = " . (int) $rowid; - } elseif ($journal_code) { + } + elseif ($journal_code) + { $sql .= " code = '" . $this->db->escape($journal_code) . "'"; + $sql .= " AND entity = " . $conf->entity; } dol_syslog(get_class($this)."::fetch sql=" . $sql, LOG_DEBUG); diff --git a/htdocs/accountancy/class/lettering.class.php b/htdocs/accountancy/class/lettering.class.php index 499f9e4f46c4e..a67fd457e119c 100644 --- a/htdocs/accountancy/class/lettering.class.php +++ b/htdocs/accountancy/class/lettering.class.php @@ -39,6 +39,8 @@ class lettering extends BookKeeping */ public function lettrageTiers($socid) { + global $conf; + $error = 0; $object = new Societe($this->db); @@ -91,7 +93,8 @@ public function lettrageTiers($socid) $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "paiementfourn as payf ON payfacf.fk_paiementfourn=payf.rowid"; $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk ON (bk.fk_doc = payf.fk_bank AND bk.code_journal='" . $obj->code_journal . "')"; $sql .= " WHERE payfacf.fk_paiementfourn = '" . $obj->url_id . "' "; - $sql .= " AND code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=4) "; + $sql .= " AND facf.entity = ".$conf->entity; + $sql .= " AND code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=4 AND entity=".$conf->entity.") "; $sql .= " AND ( "; if (! empty($object->code_compta)) { $sql .= " bk.subledger_account = '" . $object->code_compta . "' "; @@ -118,7 +121,8 @@ public function lettrageTiers($socid) $sql = 'SELECT bk.rowid, facf.ref, facf.ref_supplier '; $sql .= " FROM " . MAIN_DB_PREFIX . "facture_fourn facf "; $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk ON( bk.fk_doc = facf.rowid AND facf.rowid IN (" . implode(',', $ids_fact) . "))"; - $sql .= " WHERE bk.code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=3) "; + $sql .= " WHERE bk.code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=3 AND entity=".$conf->entity.") "; + $sql .= " AND facf.entity = ".$conf->entity; $sql .= " AND ( "; if (! empty($object->code_compta)) { $sql .= " bk.subledger_account = '" . $object->code_compta . "' "; @@ -149,7 +153,8 @@ public function lettrageTiers($socid) $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "paiement as pay ON payfac.fk_paiement=pay.rowid"; $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk ON (bk.fk_doc = pay.fk_bank AND bk.code_journal='" . $obj->code_journal . "')"; $sql .= " WHERE payfac.fk_paiement = '" . $obj->url_id . "' "; - $sql .= " AND bk.code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=4) "; + $sql .= " AND bk.code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=4 AND entity=".$conf->entity.") "; + $sql .= " AND fac.entity = ".$conf->entity; $sql .= " AND ( "; if (! empty($object->code_compta)) { $sql .= " bk.subledger_account = '" . $object->code_compta . "' "; @@ -176,7 +181,8 @@ public function lettrageTiers($socid) $sql = 'SELECT bk.rowid, fac.ref, fac.ref_supplier '; $sql .= " FROM " . MAIN_DB_PREFIX . "facture fac "; $sql .= " INNER JOIN " . MAIN_DB_PREFIX . "accounting_bookkeeping as bk ON( bk.fk_doc = fac.rowid AND fac.rowid IN (" . implode(',', $ids_fact) . "))"; - $sql .= " WHERE code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=2) "; + $sql .= " WHERE code_journal IN (SELECT code FROM " . MAIN_DB_PREFIX . "accounting_journal WHERE nature=2 AND entity=".$conf->entity.") "; + $sql .= " AND fac.entity = ".$conf->entity; $sql .= " AND ( "; if (! empty($object->code_compta)) { $sql .= " bk.subledger_account = '" . $object->code_compta . "' "; diff --git a/htdocs/install/mysql/data/llx_accounting_abc.sql b/htdocs/install/mysql/data/llx_accounting_abc.sql index 98f0ac2ea0dbb..f6fd8ff5539a3 100644 --- a/htdocs/install/mysql/data/llx_accounting_abc.sql +++ b/htdocs/install/mysql/data/llx_accounting_abc.sql @@ -28,12 +28,13 @@ -- de l'install et tous les sigles '--' sont supprimés. -- -INSERT INTO llx_accounting_journal (code, label, nature, active) VALUES ('VT', 'Sale Journal', 2, 1); -INSERT INTO llx_accounting_journal (code, label, nature, active) VALUES ('AC', 'Purchase Journal', 3, 1); -INSERT INTO llx_accounting_journal (code, label, nature, active) VALUES ('BQ', 'Bank Journal', 4, 1); -INSERT INTO llx_accounting_journal (code, label, nature, active) VALUES ('OD', 'Other Journal', 1, 1); -INSERT INTO llx_accounting_journal (code, label, nature, active) VALUES ('AN', 'Has new Journal', 9, 1); -INSERT INTO llx_accounting_journal (code, label, nature, active) VALUES ('ER', 'Expense Report Journal', 5, 1); + +INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES ('VT', 'Sale Journal', 2, 1, 1); +INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES ('AC', 'Purchase Journal', 3, 1, 1); +INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES ('BQ', 'Bank Journal', 4, 1, 1); +INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES ('OD', 'Other Journal', 1, 1, 1); +INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES ('AN', 'Has new Journal', 9, 1, 1); +INSERT INTO llx_accounting_journal (code, label, nature, active, entity) VALUES ('ER', 'Expense Report Journal', 5, 1, 1); -- Description of chart of account FR PCG99-ABREGE