diff --git a/htdocs/accountancy/class/accountingjournal.class.php b/htdocs/accountancy/class/accountingjournal.class.php index 064f56bddd6..9bff37560d7 100644 --- a/htdocs/accountancy/class/accountingjournal.class.php +++ b/htdocs/accountancy/class/accountingjournal.class.php @@ -136,19 +136,19 @@ class AccountingJournal extends CommonObject if ($mode == 0) { $prefix=''; - if ($nature == 9) return $langs->trans('AccountingJournalTypeHasNew'); - if ($nature == 3) return $langs->trans('AccountingJournalTypeBank'); - if ($nature == 2) return $langs->trans('AccountingJournalTypePurchase'); - if ($nature == 1) return $langs->trans('AccountingJournalTypeSale'); - if ($nature == 0) return $langs->trans('AccountingJournalTypeVariousOperation'); + if ($nature == 9) return $langs->trans('AccountingJournalType9'); + if ($nature == 4) return $langs->trans('AccountingJournalType4'); + if ($nature == 3) return $langs->trans('AccountingJournalType3'); + if ($nature == 2) return $langs->trans('AccountingJournalType2'); + if ($nature == 1) return $langs->trans('AccountingJournalType1'); } if ($mode == 1) { - if ($nature == 9) return $langs->trans('AccountingJournalTypeHasNew'); - if ($nature == 3) return $langs->trans('AccountingJournalTypeBank'); - if ($nature == 2) return $langs->trans('AccountingJournalTypePurchase'); - if ($nature == 1) return $langs->trans('AccountingJournalTypeSale'); - if ($nature == 0) return $langs->trans('AccountingJournalTypeVariousOperation'); + if ($nature == 9) return $langs->trans('AccountingJournalType9'); + if ($nature == 4) return $langs->trans('AccountingJournalType4'); + if ($nature == 3) return $langs->trans('AccountingJournalType3'); + if ($nature == 2) return $langs->trans('AccountingJournalType2'); + if ($nature == 1) return $langs->trans('AccountingJournalType1'); } } } diff --git a/htdocs/compta/bank/card.php b/htdocs/compta/bank/card.php index 5b3bb3a58fe..75ba80052bc 100644 --- a/htdocs/compta/bank/card.php +++ b/htdocs/compta/bank/card.php @@ -36,6 +36,7 @@ require_once DOL_DOCUMENT_ROOT . '/compta/bank/class/account.class.php'; require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php'; if (! empty($conf->categorie->enabled)) require_once DOL_DOCUMENT_ROOT . '/categories/class/categorie.class.php'; if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT . '/accountancy/class/html.formventilation.class.php'; +if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT . '/core/class/html.formaccounting.class.php'; if (! empty($conf->accounting->enabled)) require_once DOL_DOCUMENT_ROOT . '/accountancy/class/accountingaccount.class.php'; $langs->load("banks"); @@ -278,6 +279,7 @@ $form = new Form($db); $formbank = new FormBank($db); $formcompany = new FormCompany($db); if (! empty($conf->accounting->enabled)) $formaccountancy = New FormVentilation($db); +if (! empty($conf->accounting->enabled)) $formaccountancy2 = New FormAccounting($db); $countrynotdefined=$langs->trans("ErrorSetACountryFirst").' ('.$langs->trans("SeeAbove").')'; @@ -534,7 +536,9 @@ if ($action == 'create') if (! empty($conf->accounting->enabled)) { print ''.$langs->trans("AccountancyJournal").''; - print 'accountancy_journal).'">'; + print ''; + print $formaccountancy2->select_journal($object->accountancy_journal, 'accountancy_journal', 4, 1, '', 1, 1); + print ''; } print ''; @@ -980,8 +984,10 @@ else // Accountancy journal if (! empty($conf->accounting->enabled)) { - print ''.$langs->trans("AccountancyJournal").''; - print 'accountancy_journal).'">'; + print ''.$langs->trans("AccountancyJournal").''; + print ''; + print $formaccountancy2->select_journal($object->accountancy_journal, 'accountancy_journal', 4, 1, '', 1, 1); + print ''; } print ''; diff --git a/htdocs/core/class/html.formaccounting.class.php b/htdocs/core/class/html.formaccounting.class.php index cb988a511cd..1a33f0fce60 100644 --- a/htdocs/core/class/html.formaccounting.class.php +++ b/htdocs/core/class/html.formaccounting.class.php @@ -60,37 +60,49 @@ class FormAccounting extends Form { global $conf; - $sql = "SELECT rowid, code, label, nature, entity, active"; - $sql.= " FROM " . MAIN_DB_PREFIX . "accounting_journal"; - $sql.= " WHERE entity = ".$conf->entity; - $sql.= " AND active = 1"; - if (empty($nature)) $sql.= " AND nature = ".$nature; - $sql.= " ORDER BY code"; + $out = ''; - dol_syslog(get_class($this) . "::select_journal", LOG_DEBUG); - $resql = $this->db->query($sql); + $options = array(); + if ($usecache && ! empty($this->options_cache[$usecache])) + { + $options = $this->options_cache[$usecache]; + $selected=$selectid; + } + else + { + $sql = "SELECT rowid, code, label, nature, entity, active"; + $sql.= " FROM " . MAIN_DB_PREFIX . "accounting_journal"; + $sql.= " WHERE active = 1"; + $sql.= " AND entity = ".$conf->entity; + //if ($nature && is_numeric($nature)) $sql .= " AND nature = ".$nature; + $sql.= " ORDER BY code"; - if (!$resql) { - $this->error = "Error ".$this->db->lasterror(); - dol_syslog(get_class($this)."::select_journal ".$this->error, LOG_ERR); - return -1; + dol_syslog(get_class($this) . "::select_journal", LOG_DEBUG); + $resql = $this->db->query($sql); + + if (!$resql) { + $this->error = "Error ".$this->db->lasterror(); + dol_syslog(get_class($this)."::select_journal ".$this->error, LOG_ERR); + return -1; + } + + $out = ajax_combobox($htmlname, $event); + + while ($obj = $this->db->fetch_object($resql)) + { + $label = $obj->code . ' - ' . $obj->label; + $select_value_out = $obj->rowid; + + $options[$select_value_out] = $label; + } + $this->db->free($resql); + + if ($usecache) + { + $this->options_cache[$usecache] = $options; + } } - $options = array(); - $out = ajax_combobox($htmlname, $event); - - $selected = 0; - while ($obj = $this->db->fetch_object($resql)) - { - $label = $obj->code . ' - ' . $obj->label; - } - $this->db->free($resql); - - if ($usecache) - { - $this->options_cache[$usecache] = $options; - } - $out .= Form::selectarray($htmlname, $options, $selectid, $showempty, 0, 0, '', 0, 0, 0, '', $morecss, 1); return $out; diff --git a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql index d96210dcbfe..9e4699b2e4b 100644 --- a/htdocs/install/mysql/migration/5.0.0-6.0.0.sql +++ b/htdocs/install/mysql/migration/5.0.0-6.0.0.sql @@ -259,4 +259,11 @@ UPDATE llx_accounting_journal SET nature = 3 where code = 'AC' and nature = 2; UPDATE llx_accounting_journal SET nature = 4 where (code = 'BK' or code = 'BQ') and nature = 3; +ALTER TABLE llx_bank_account CHANGE COLUMN accountancy_journal fk_accountancy_journal integer; +ALTER TABLE llx_bank_account ADD CONSTRAINT bank_fk_accountancy_journal FOREIGN KEY (fk_accountancy_journal) REFERENCES llx_accounting_journal (rowid); + + + + + diff --git a/htdocs/install/mysql/tables/llx_accounting_journal.sql b/htdocs/install/mysql/tables/llx_accounting_journal.sql index a435de3cd80..348654b56dc 100644 --- a/htdocs/install/mysql/tables/llx_accounting_journal.sql +++ b/htdocs/install/mysql/tables/llx_accounting_journal.sql @@ -23,6 +23,6 @@ create table llx_accounting_journal entity integer DEFAULT 1, code varchar(32) NOT NULL, label varchar(128) NOT NULL, - nature smallint DEFAULT 0 NOT NULL, -- type of journals (1:various operations / 2:sale / 3:purchase / 4:bank / 9: has-new) + nature smallint DEFAULT 1 NOT NULL, -- type of journals (1:various operations / 2:sale / 3:purchase / 4:bank / 9: has-new) active smallint DEFAULT 0 )ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_bank_account.key.sql b/htdocs/install/mysql/tables/llx_bank_account.key.sql index c91762a322e..0a168d63990 100644 --- a/htdocs/install/mysql/tables/llx_bank_account.key.sql +++ b/htdocs/install/mysql/tables/llx_bank_account.key.sql @@ -19,3 +19,5 @@ ALTER TABLE llx_bank_account ADD UNIQUE uk_bank_account_label (label,entity); + +ALTER TABLE llx_bank_account ADD CONSTRAINT bank_fk_accountancy_journal FOREIGN KEY (fk_accountancy_journal) REFERENCES llx_accounting_journal (rowid); diff --git a/htdocs/install/mysql/tables/llx_bank_account.sql b/htdocs/install/mysql/tables/llx_bank_account.sql index 7730ab79ef6..6db2857ddae 100644 --- a/htdocs/install/mysql/tables/llx_bank_account.sql +++ b/htdocs/install/mysql/tables/llx_bank_account.sql @@ -24,39 +24,39 @@ create table llx_bank_account ( - rowid integer AUTO_INCREMENT PRIMARY KEY, - datec datetime, - tms timestamp, - ref varchar(12) NOT NULL, - label varchar(30) NOT NULL, - entity integer DEFAULT 1 NOT NULL, -- multi company id - fk_user_author integer, - fk_user_modif integer, - bank varchar(60), - code_banque varchar(128), - code_guichet varchar(6), - number varchar(255), - cle_rib varchar(5), - bic varchar(11), - iban_prefix varchar(34), -- full iban. 34 according to ISO 13616 - country_iban varchar(2), -- deprecated - cle_iban varchar(2), - domiciliation varchar(255), - state_id integer DEFAULT NULL, - fk_pays integer NOT NULL, - proprio varchar(60), - owner_address varchar(255), - courant smallint DEFAULT 0 NOT NULL, - clos smallint DEFAULT 0 NOT NULL, - rappro smallint DEFAULT 1, - url varchar(128), - account_number varchar(32), -- bank accountancy number - accountancy_journal varchar(16) DEFAULT NULL, -- bank accountancy journal - currency_code varchar(3) NOT NULL, - min_allowed integer DEFAULT 0, - min_desired integer DEFAULT 0, - comment text, -- TODO rename in note_private - note_public text, - model_pdf varchar(255), - import_key varchar(14) + rowid integer AUTO_INCREMENT PRIMARY KEY, + datec datetime, + tms timestamp, + ref varchar(12) NOT NULL, + label varchar(30) NOT NULL, + entity integer DEFAULT 1 NOT NULL, -- multi company id + fk_user_author integer, + fk_user_modif integer, + bank varchar(60), + code_banque varchar(128), + code_guichet varchar(6), + number varchar(255), + cle_rib varchar(5), + bic varchar(11), + iban_prefix varchar(34), -- full iban. 34 according to ISO 13616 + country_iban varchar(2), -- deprecated + cle_iban varchar(2), + domiciliation varchar(255), + state_id integer DEFAULT NULL, + fk_pays integer NOT NULL, + proprio varchar(60), + owner_address varchar(255), + courant smallint DEFAULT 0 NOT NULL, + clos smallint DEFAULT 0 NOT NULL, + rappro smallint DEFAULT 1, + url varchar(128), + account_number varchar(32), -- bank accountancy number + fk_accountancy_journal integer, -- bank accountancy journal + currency_code varchar(3) NOT NULL, + min_allowed integer DEFAULT 0, + min_desired integer DEFAULT 0, + comment text, -- TODO rename in note_private + note_public text, + model_pdf varchar(255), + import_key varchar(14) )ENGINE=innodb;