Add list to select journal in bank

This commit is contained in:
Alexandre SPANGARO 2017-05-06 08:06:01 +02:00
parent a4defb8102
commit 68aaef2f66
7 changed files with 103 additions and 76 deletions

View File

@ -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');
}
}
}

View File

@ -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 '<tr><td>'.$langs->trans("AccountancyJournal").'</td>';
print '<td colspan="3"><input type="text" name="accountancy_journal" value="'.(GETPOST("accountancy_journal")?GETPOST('accountancy_journal', 'alpha'):$object->accountancy_journal).'"></td></tr>';
print '<td>';
print $formaccountancy2->select_journal($object->accountancy_journal, 'accountancy_journal', 4, 1, '', 1, 1);
print '</td></tr>';
}
print '</table>';
@ -980,8 +984,10 @@ else
// Accountancy journal
if (! empty($conf->accounting->enabled))
{
print '<tr><td>'.$langs->trans("AccountancyJournal").'</td>';
print '<td><input type="text" name="accountancy_journal" value="'.(isset($_POST["accountancy_journal"])?GETPOST("accountancy_journal"):$object->accountancy_journal).'"></td></tr>';
print '<tr><td>'.$langs->trans("AccountancyJournal").'</td>';
print '<td>';
print $formaccountancy2->select_journal($object->accountancy_journal, 'accountancy_journal', 4, 1, '', 1, 1);
print '</td></tr>';
}
print '</table>';

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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);

View File

@ -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;