diff --git a/htdocs/admin/bank.php b/htdocs/admin/bank.php
index de1f7662373..9b5cb77e072 100644
--- a/htdocs/admin/bank.php
+++ b/htdocs/admin/bank.php
@@ -26,6 +26,7 @@
require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php';
require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/facture.class.php';
$langs->load("admin");
@@ -89,6 +90,9 @@ print_fiche_titre($langs->trans("BankSetupModule"),$linkback,'setup');
print '
';
+$head = bank_admin_prepare_head(null);
+dol_fiche_head($head, 'general', $langs->trans("BankSetupModule"), 0, 'account');
+
print '
';
print '';
print '| '.$langs->trans("Parameters").' | ';
diff --git a/htdocs/admin/bank_extrafields.php b/htdocs/admin/bank_extrafields.php
new file mode 100644
index 00000000000..b28c8b417c3
--- /dev/null
+++ b/htdocs/admin/bank_extrafields.php
@@ -0,0 +1,154 @@
+
+ * Copyright (C) 2003 Jean-Louis Bergamo
+ * Copyright (C) 2004-2011 Laurent Destailleur
+ * Copyright (C) 2012 Regis Houssin
+ * Copyright (C) 2014 Florian Henry
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+/**
+ * \file htdocs/admin/bank_extrafields.php
+ * \ingroup bank
+ * \brief Page to setup extra fields of bank
+ */
+
+require '../main.inc.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php';
+require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
+
+$langs->load("banks");
+$langs->load("admin");
+
+$extrafields = new ExtraFields($db);
+$form = new Form($db);
+
+// List of supported format
+$tmptype2label=ExtraFields::$type2label;
+$type2label=array('');
+foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->trans($val);
+
+$action=GETPOST('action', 'alpha');
+$attrname=GETPOST('attrname', 'alpha');
+$elementtype='bank_account'; //Must be the $element of the class that manage extrafield
+
+if (!$user->admin) accessforbidden();
+
+
+/*
+ * Actions
+ */
+
+require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php';
+
+
+
+/*
+ * View
+ */
+
+llxHeader('',$langs->trans("BankSetupModule"),$help_url);
+
+
+$linkback=''.$langs->trans("BackToModuleList").'';
+print_fiche_titre($langs->trans("BankSetupModule"),$linkback,'setup');
+
+
+$head = bank_admin_prepare_head(null);
+
+dol_fiche_head($head, 'attributes', $langs->trans("Bank"), 0, 'account');
+
+
+print $langs->trans("DefineHereComplementaryAttributes",$textobject).'
'."\n";
+print '
';
+
+// Load attribute_label
+$extrafields->fetch_name_optionals_label($elementtype);
+
+print "";
+
+print '';
+print '| '.$langs->trans("Position").' | ';
+print ''.$langs->trans("Label").' | ';
+print ''.$langs->trans("AttributeCode").' | ';
+print ''.$langs->trans("Type").' | ';
+print ''.$langs->trans("Size").' | ';
+print ''.$langs->trans("Unique").' | ';
+print ''.$langs->trans("Required").' | ';
+print ' | ';
+print "
\n";
+
+$var=True;
+foreach($extrafields->attribute_type as $key => $value)
+{
+ $var=!$var;
+ print "";
+ print "| ".$extrafields->attribute_pos[$key]." | \n";
+ print "".$extrafields->attribute_label[$key]." | \n";
+ print "".$key." | \n";
+ print "".$type2label[$extrafields->attribute_type[$key]]." | \n";
+ print ''.$extrafields->attribute_size[$key]." | \n";
+ print ''.yn($extrafields->attribute_unique[$key])." | \n";
+ print ''.yn($extrafields->attribute_required[$key])." | \n";
+ print ''.img_edit().'';
+ print " ".img_delete()." | \n";
+ print "
";
+ // $i++;
+}
+
+print "
";
+
+dol_fiche_end();
+
+
+// Buttons
+if ($action != 'create' && $action != 'edit')
+{
+ print '";
+}
+
+
+/* ************************************************************************** */
+/* */
+/* Creation d'un champ optionnel
+ /* */
+/* ************************************************************************** */
+
+if ($action == 'create')
+{
+ print "
";
+ print_titre($langs->trans('NewAttribute'));
+
+ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
+}
+
+/* ************************************************************************** */
+/* */
+/* Edition d'un champ optionnel */
+/* */
+/* ************************************************************************** */
+if ($action == 'edit' && ! empty($attrname))
+{
+ print "
";
+ print_titre($langs->trans("FieldEdition", $attrname));
+
+ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
+}
+
+llxFooter();
+
+$db->close();
diff --git a/htdocs/compta/bank/card.php b/htdocs/compta/bank/card.php
index 81596540489..9b4efe79eb1 100644
--- a/htdocs/compta/bank/card.php
+++ b/htdocs/compta/bank/card.php
@@ -31,6 +31,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formcompany.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formbank.class.php';
require_once DOL_DOCUMENT_ROOT.'/compta/bank/class/account.class.php';
+require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php';
$langs->load("banks");
$langs->load("categories");
@@ -48,6 +49,10 @@ $fieldid = isset($_GET["ref"])?'ref':'rowid';
if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'banque',$id,'bank_account&bank_account','','',$fieldid);
+$account = new Account($db);
+$extrafields = new ExtraFields($db);
+// fetch optionals attributes and labels
+$extralabels=$extrafields->fetch_name_optionals_label($account->table_element);
/*
* Actions
@@ -100,6 +105,9 @@ if ($_POST["action"] == 'add')
$error++;
}
+ // Fill array 'array_options' with data from add form
+ $ret = $extrafields->setOptionalsFromPost($extralabels,$account);
+
if (! $error)
{
$id = $account->create($user);
@@ -172,6 +180,9 @@ if ($_POST["action"] == 'update' && ! $_POST["cancel"])
$error++;
}
+ // Fill array 'array_options' with data from add form
+ $ret = $extrafields->setOptionalsFromPost($extralabels,$account);
+
if (! $error)
{
$result = $account->update($user);
@@ -306,6 +317,15 @@ if ($action == 'create')
$doleditor=new DolEditor('account_comment',$account->comment,'',200,'dolibarr_notes','',false,true,$conf->global->FCKEDITOR_ENABLE_SOCIETE,10,70);
$doleditor->Create();
print '
';
+
+ // Other attributes
+ $parameters=array('colspan' => 3);
+ $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$account,$action); // Note that $action and $object may have been modified by hook
+ if (empty($reshook) && ! empty($extrafields->attribute_label))
+ {
+ print $account->showOptionals($extrafields,'edit',$parameters);
+ }
+
print '
';
@@ -461,6 +481,14 @@ else
print '| '.$langs->trans("Comment").' | ';
print ''.$account->comment.' |
';
+ // Other attributes
+ $parameters=array('colspan' => 3);
+ $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$account,$action); // Note that $action and $object may have been modified by hook
+ if (empty($reshook) && ! empty($extrafields->attribute_label))
+ {
+ print $account->showOptionals($extrafields);
+ }
+
print '';
print '
';
@@ -615,6 +643,15 @@ else
$doleditor->Create();
print '';
+ // Other attributes
+ $parameters=array('colspan' => 3);
+ $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$account,$action); // Note that $action and $object may have been modified by hook
+ if (empty($reshook) && ! empty($extrafields->attribute_label))
+ {
+ print $account->showOptionals($extrafields,'edit');
+ }
+
+
print '';
print '
';