Merge pull request #1298 from Pfontaine/features/multi_rib

Features/multi rib
This commit is contained in:
Laurent Destailleur 2013-11-15 06:27:58 -08:00
commit 1e008ede3c
10 changed files with 405 additions and 77 deletions

2
.gitignore vendored
View File

@ -15,3 +15,5 @@ doxygen_warnings.log
.DS_Store .DS_Store
.idea .idea
*.iml *.iml
Thumbs.db

View File

@ -6511,6 +6511,7 @@ CREATE TABLE `llx_societe_rib` (
`domiciliation` varchar(255) DEFAULT NULL, `domiciliation` varchar(255) DEFAULT NULL,
`proprio` varchar(60) DEFAULT NULL, `proprio` varchar(60) DEFAULT NULL,
`owner_address` text, `owner_address` text,
`default_rib` tinyint NOT NULL DEFAULT 0,
`import_key` varchar(14) DEFAULT NULL, `import_key` varchar(14) DEFAULT NULL,
PRIMARY KEY (`rowid`) PRIMARY KEY (`rowid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

View File

@ -357,3 +357,7 @@ ALTER TABLE llx_user ADD skype VARCHAR(255) AFTER job;
ALTER TABLE llx_socpeople ADD skype VARCHAR(255) AFTER jabberid; ALTER TABLE llx_socpeople ADD skype VARCHAR(255) AFTER jabberid;
ALTER TABLE llx_societe ADD skype VARCHAR(255) AFTER email; ALTER TABLE llx_societe ADD skype VARCHAR(255) AFTER email;
ALTER TABLE llx_adherent ADD skype VARCHAR(255) AFTER email; ALTER TABLE llx_adherent ADD skype VARCHAR(255) AFTER email;
-- multi-rib
ALTER TABLE llx_societe_rib ADD default_rib TINYINT NOT NULL DEFAULT 0 AFTER owner_address;
UPDATE llx_societe_rib SET default_rib = 1;

View File

@ -2,6 +2,7 @@
-- Copyright (C) 2000-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> -- Copyright (C) 2000-2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
-- Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com> -- Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com>
-- Copyright (C) 2012 Juanjo Menent <jmenent@2byte.es> -- Copyright (C) 2012 Juanjo Menent <jmenent@2byte.es>
-- Copyright (C) 2013 Peter Fontaine <contact@peterfontaine.fr>
-- --
-- This program is free software; you can redistribute it and/or modify -- 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 -- it under the terms of the GNU General Public License as published by
@ -35,6 +36,7 @@ create table llx_societe_rib
domiciliation varchar(255), domiciliation varchar(255),
proprio varchar(60), proprio varchar(60),
owner_address varchar(255), owner_address varchar(255),
default_rib tinyint NOT NULL DEFAULT 0,
import_key varchar(14) -- import key import_key varchar(14) -- import key

View File

@ -149,4 +149,8 @@ InputReceiptNumber=Choose the bank statement related with the conciliation. Use
EventualyAddCategory=Eventually, specify a category in which to classify the records EventualyAddCategory=Eventually, specify a category in which to classify the records
ToConciliate=To conciliate? ToConciliate=To conciliate?
ThenCheckLinesAndConciliate=Then, check the lines present in the bank statement and click ThenCheckLinesAndConciliate=Then, check the lines present in the bank statement and click
BankDashboard=Bank accounts summary BankDashboard=Bank accounts summary
DefaultRIB=Default BAN
AllRIB=All BAN
LabelRIB=BAN Label
NoBANRecord=No BAN record

View File

@ -150,3 +150,7 @@ EventualyAddCategory=Eventuellement, saisissez une catégorie dans laquelle clas
ToConciliate=A rapprocher ? ToConciliate=A rapprocher ?
ThenCheckLinesAndConciliate=Ensuite, cochez les lignes présentes sur le relevé et cliquez sur ThenCheckLinesAndConciliate=Ensuite, cochez les lignes présentes sur le relevé et cliquez sur
BankDashboard=Synthèse comptes bancaires BankDashboard=Synthèse comptes bancaires
DefaultRIB=RIB par défaut
AllRIB=Tous les RIB
LabelRIB=Nom du RIB
NoBANRecord=Aucun RIB enregistré

View File

@ -2,6 +2,7 @@
/* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> /* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
* Copyright (C) 2010 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2010 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2013 Peter Fontaine <contact@peterfontaine.fr>
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -34,6 +35,7 @@ class CompanyBankAccount extends Account
var $rowid; var $rowid;
var $socid; var $socid;
var $label;
var $bank; var $bank;
var $courant; var $courant;
var $clos; var $clos;
@ -46,6 +48,7 @@ class CompanyBankAccount extends Account
var $iban_prefix; // deprecated var $iban_prefix; // deprecated
var $proprio; var $proprio;
var $owner_address; var $owner_address;
var $default_rib;
/** /**
* Constructor * Constructor
@ -60,6 +63,7 @@ class CompanyBankAccount extends Account
$this->clos = 0; $this->clos = 0;
$this->solde = 0; $this->solde = 0;
$this->error_number = 0; $this->error_number = 0;
$this->default_rib = 0;
return 1; return 1;
} }
@ -79,6 +83,8 @@ class CompanyBankAccount extends Account
{ {
if ($this->db->affected_rows($resql)) if ($this->db->affected_rows($resql))
{ {
$this->default_rib = 1;
$this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."societe_rib");
return 1; return 1;
} }
} }
@ -97,21 +103,25 @@ class CompanyBankAccount extends Account
*/ */
function update($user='') function update($user='')
{ {
$sql = "SELECT fk_soc FROM ".MAIN_DB_PREFIX."societe_rib"; // $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe_rib";
$sql .= " WHERE fk_soc = ".$this->socid; // $sql .= " WHERE rowid = ".$this->id;
//
// $result = $this->db->query($sql);
// if ($result)
// {
// if ($this->db->num_rows($result) == 0)
// {
// $this->create();
// }
// }
// else
// {
// dol_print_error($this->db);
// return 0;
// }
$result = $this->db->query($sql); if (!$this->id) {
if ($result) $this->create();
{
if ($this->db->num_rows($result) == 0)
{
$this->create();
}
}
else
{
dol_print_error($this->db);
return 0;
} }
$sql = "UPDATE ".MAIN_DB_PREFIX."societe_rib SET "; $sql = "UPDATE ".MAIN_DB_PREFIX."societe_rib SET ";
@ -125,7 +135,12 @@ class CompanyBankAccount extends Account
$sql .= ",domiciliation='".$this->db->escape($this->domiciliation)."'"; $sql .= ",domiciliation='".$this->db->escape($this->domiciliation)."'";
$sql .= ",proprio = '".$this->db->escape($this->proprio)."'"; $sql .= ",proprio = '".$this->db->escape($this->proprio)."'";
$sql .= ",owner_address = '".$this->db->escape($this->owner_address)."'"; $sql .= ",owner_address = '".$this->db->escape($this->owner_address)."'";
$sql .= " WHERE fk_soc = ".$this->socid; $sql .= ",default_rib = ".$this->default_rib;
if (trim($this->label) != '')
$sql .= ",label = '".$this->db->escape($this->label)."'";
else
$sql .= ",label = NULL";
$sql .= " WHERE rowid = ".$this->id;
$result = $this->db->query($sql); $result = $this->db->query($sql);
if ($result) if ($result)
@ -150,10 +165,10 @@ class CompanyBankAccount extends Account
{ {
if (empty($id) && empty($socid)) return -1; if (empty($id) && empty($socid)) return -1;
$sql = "SELECT rowid, fk_soc, bank, number, code_banque, code_guichet, cle_rib, bic, iban_prefix as iban, domiciliation, proprio, owner_address"; $sql = "SELECT rowid, fk_soc, bank, number, code_banque, code_guichet, cle_rib, bic, iban_prefix as iban, domiciliation, proprio, owner_address, default_rib, label";
$sql.= " FROM ".MAIN_DB_PREFIX."societe_rib"; $sql.= " FROM ".MAIN_DB_PREFIX."societe_rib";
if ($id) $sql.= " WHERE rowid = ".$id; if ($id) $sql.= " WHERE rowid = ".$id;
if ($socid) $sql.= " WHERE fk_soc = ".$socid; if ($socid) $sql.= " WHERE fk_soc = ".$socid." AND default_rib = 1";
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if ($resql) if ($resql)
@ -175,6 +190,8 @@ class CompanyBankAccount extends Account
$this->domiciliation = $obj->domiciliation; $this->domiciliation = $obj->domiciliation;
$this->proprio = $obj->proprio; $this->proprio = $obj->proprio;
$this->owner_address = $obj->owner_address; $this->owner_address = $obj->owner_address;
$this->label = $obj->label;
$this->default_rib = $obj->default_rib;
} }
$this->db->free($resql); $this->db->free($resql);
@ -190,15 +207,18 @@ class CompanyBankAccount extends Account
/** /**
* Return RIB * Return RIB
* *
* @param boolean $displayriblabel Show or Hide Label
* @return string RIB * @return string RIB
*/ */
function getRibLabel() function getRibLabel($displayriblabel = true)
{ {
global $langs; global $langs;
if ($this->code_banque || $this->code_guichet || $this->number || $this->cle_rib) if ($this->code_banque || $this->code_guichet || $this->number || $this->cle_rib)
{ {
$rib = $this->code_banque." ".$this->code_guichet." ".$this->number; if ($this->label && $displayriblabel)
$rib = $this->label." : ";
$rib.= $this->code_banque." ".$this->code_guichet." ".$this->number;
$rib.=($this->cle_rib?" (".$this->cle_rib.")":""); $rib.=($this->cle_rib?" (".$this->cle_rib.")":"");
} }
else else
@ -208,6 +228,53 @@ class CompanyBankAccount extends Account
return $rib; return $rib;
} }
/**
* Set RIB as Default
*
* @param int $id RIB id
* @return int 0 if KO, 1 if OK
*/
function setAsDefault($id)
{
if ($id) {
$sql1 = "SELECT fk_soc FROM ".MAIN_DB_PREFIX."societe_rib";
$sql1.= " WHERE rowid = ".$id;
$result1 = $this->db->query($sql1);
if ($result1) {
if ($this->db->num_rows($result1) == 0) {
return 0;
} else {
$obj = $this->db->fetch_object($result1);
$sql2 = "UPDATE ".MAIN_DB_PREFIX."societe_rib SET default_rib = 0 ";
$sql2.= "WHERE fk_soc = ".$obj->fk_soc;
$sql3 = "UPDATE ".MAIN_DB_PREFIX."societe_rib SET default_rib = 1 ";
$sql3.= "WHERE rowid = ".$id;
$this->db->begin();
$result2 = $this->db->query($sql2);
$result3 = $this->db->query($sql3);
if (!$result2 || !$result3) {
dol_print_error($this->db);
$this->db->rollback();
return 0;
} else {
$this->db->commit();
return 1;
}
}
} else {
dol_print_error($this->db);
return 0;
}
} else {
return 0;
}
}
} }
?> ?>

View File

@ -8,7 +8,8 @@
* Copyright (C) 2008 Patrick Raguin <patrick.raguin@auguria.net> * Copyright (C) 2008 Patrick Raguin <patrick.raguin@auguria.net>
* Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es> * Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro> * Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
* Copyright (C) 2013 Alexandre Spangaro <alexandre.spangaro@gmail.com> * Copyright (C) 2013 Alexandre Spangaro <alexandre.spangaro@gmail.com>
* Copyright (C) 2013 Peter Fontaine <contact@peterfontaine.fr>
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -1753,6 +1754,34 @@ class Societe extends CommonObject
return $bac->getRibLabel(); return $bac->getRibLabel();
} }
/**
* Return Array of RIB
*
* @return array|int 0 if KO, Array of CompanyBanckAccount if OK
*/
function get_all_rib()
{
require_once DOL_DOCUMENT_ROOT . '/societe/class/companybankaccount.class.php';
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe_rib WHERE fk_soc = ".$this->id;
$result = $this->db->query($sql);
if (!$result) {
$this->error++;
$this->errors[] = $this->db->lasterror;
return 0;
} else {
$num_rows = $this->db->num_rows($result);
$rib_array = array();
if ($num_rows) {
while ($obj = $this->db->fetch_object($result)) {
$rib = new CompanyBankAccount($this->db);
$rib->fetch($obj->rowid);
$rib_array[] = $rib;
}
}
return $rib_array;
}
}
/** /**
* Attribut un code client a partir du module de controle des codes. * Attribut un code client a partir du module de controle des codes.
* Return value is stored into this->code_client * Return value is stored into this->code_client

View File

@ -3,6 +3,7 @@
* Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org> * Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
* Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net> * Copyright (C) 2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com> * Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2013 Peter Fontaine <contact@peterfontaine.fr>
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -52,6 +53,8 @@ if ($_POST["action"] == 'update' && ! $_POST["cancel"])
// Modification // Modification
$account = new CompanyBankAccount($db); $account = new CompanyBankAccount($db);
$account->fetch($_POST["id"]);
$account->socid = $soc->id; $account->socid = $soc->id;
$account->bank = $_POST["bank"]; $account->bank = $_POST["bank"];
@ -76,11 +79,59 @@ if ($_POST["action"] == 'update' && ! $_POST["cancel"])
} }
else else
{ {
$_GET["id"]=$_POST["id"]; // Force chargement page en mode visu $url=DOL_URL_ROOT.'/societe/rib.php?socid='.$soc->id;
header('Location: '.$url);
exit;
} }
} }
if ($_POST["action"] == 'add' && ! $_POST["cancel"])
{
// Ajout
$account = new CompanyBankAccount($db);
$account->socid = $soc->id;
$account->bank = $_POST["bank"];
$account->label = $_POST["label"];
$account->courant = $_POST["courant"];
$account->clos = $_POST["clos"];
$account->code_banque = $_POST["code_banque"];
$account->code_guichet = $_POST["code_guichet"];
$account->number = $_POST["number"];
$account->cle_rib = $_POST["cle_rib"];
$account->bic = $_POST["bic"];
$account->iban_prefix = $_POST["iban_prefix"];
$account->domiciliation = $_POST["domiciliation"];
$account->proprio = $_POST["proprio"];
$account->owner_address = $_POST["owner_address"];
$result = $account->update($user);
if (! $result)
{
$message=$account->error;
$_GET["action"]='create'; // Force chargement page création
}
else
{
$url=DOL_URL_ROOT.'/societe/rib.php?socid='.$soc->id;
header('Location: '.$url);
exit;
}
}
if ($_GET['action'] == 'setasdefault')
{
$account = new CompanyBankAccount($db);
$res = $account->setAsDefault($_GET['ribid']);
if ($res) {
$url=DOL_URL_ROOT.'/societe/rib.php?socid='.$soc->id;
header('Location: '.$url);
exit;
} else {
$message=$db->lasterror;
}
}
/* /*
* View * View
@ -93,7 +144,10 @@ $head=societe_prepare_head2($soc);
dol_fiche_head($head, 'rib', $langs->trans("ThirdParty"),0,'company'); dol_fiche_head($head, 'rib', $langs->trans("ThirdParty"),0,'company');
$account = new CompanyBankAccount($db); $account = new CompanyBankAccount($db);
$account->fetch(0,$soc->id); if (!$_GET['id'])
$account->fetch(0,$soc->id);
else
$account->fetch($_GET['id']);
if (empty($account->socid)) $account->socid=$soc->id; if (empty($account->socid)) $account->socid=$soc->id;
@ -104,10 +158,14 @@ if (empty($account->socid)) $account->socid=$soc->id;
/* */ /* */
/* ************************************************************************** */ /* ************************************************************************** */
if ($_GET["socid"] && $_GET["action"] != 'edit') if ($_GET["socid"] && $_GET["action"] != 'edit' && $_GET["action"] != "create")
{ {
print_titre($langs->trans("DefaultRIB"));
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
print '<tr><td>'.$langs->trans("LabelRIB").'</td>';
print '<td colspan="4">'.$account->label.'</td></tr>';
print '<tr><td valign="top" width="35%">'.$langs->trans("Bank").'</td>'; print '<tr><td valign="top" width="35%">'.$langs->trans("Bank").'</td>';
print '<td colspan="4">'.$account->bank.'</td></tr>'; print '<td colspan="4">'.$account->bank.'</td></tr>';
@ -165,6 +223,54 @@ if ($_GET["socid"] && $_GET["action"] != 'edit')
print '<div class="warning">'.$langs->trans("RIBControlError").'</div>'; print '<div class="warning">'.$langs->trans("RIBControlError").'</div>';
} }
print "<br />";
print_titre($langs->trans("AllRIB"));
$rib_list = $soc->get_all_rib();
$var = false;
if (is_array($rib_list)) {
print '<table class="liste" width="100%">';
print '<tr class="liste_titre">';
print_liste_field_titre($langs->trans("LabelRIB"));
print_liste_field_titre($langs->trans("Bank"));
print_liste_field_titre($langs->trans("RIB"));
print_liste_field_titre($langs->trans("DefaultRIB"));
print '<td width="40"></td>';
print '</tr>';
foreach ($rib_list as $rib) {
print "<tr $bc[$var]>";
print '<td>'.$rib->label.'</td>';
print '<td>'.$rib->bank.'</td>';
print '<td>'.$rib->getRibLabel(false).'</td>';
print '<td align="center" width="70">';
if (!$rib->default_rib) {
print '<a href="'.DOL_URL_ROOT.'/societe/rib.php?socid='.$soc->id.'&ribid='.$rib->id.'&action=setasdefault">';
print img_picto($langs->trans("Disabled"),'switch_off');
print '</a>';
} else {
print img_picto($langs->trans("Enabled"),'switch_on');
}
print '</td>';
print '<td align="right">';
print '<a href="'.DOL_URL_ROOT.'/societe/rib.php?socid='.$soc->id.'&id='.$rib->id.'&action=edit">';
print img_picto($langs->trans("Modify"),'edit');
print '</a>';
print '</td>';
print '</tr>';
$var = !$var;
}
if (count($rib_list) == 0) {
print '<tr><td colspan="5" align="center">'.$langs->trans("NoBANRecord").'</td></tr>';
}
print '</table>';
} else {
dol_print_error($db);
}
} }
/* ************************************************************************** */ /* ************************************************************************** */
@ -176,31 +282,34 @@ if ($_GET["socid"] && $_GET["action"] != 'edit')
if ($_GET["socid"] && $_GET["action"] == 'edit' && $user->rights->societe->creer) if ($_GET["socid"] && $_GET["action"] == 'edit' && $user->rights->societe->creer)
{ {
$form = new Form($db); $form = new Form($db);
dol_htmloutput_mesg($message); dol_htmloutput_mesg($message);
print '<form action="rib.php?socid='.$soc->id.'" method="post">'; print '<form action="rib.php?socid='.$soc->id.'" method="post">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">'; print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="update">'; print '<input type="hidden" name="action" value="update">';
print '<input type="hidden" name="id" value="'.$_GET["id"].'">'; print '<input type="hidden" name="id" value="'.$_GET["id"].'">';
print '<table class="border" width="100%">'; print '<table class="border" width="100%">';
print '<tr><td valign="top" width="35%">'.$langs->trans("Bank").'</td>'; print '<tr><td valign="top" width="35%">'.$langs->trans("LabelRIB").'</td>';
print '<td colspan="4"><input size="30" type="text" name="bank" value="'.$account->bank.'"></td></tr>'; print '<td colspan="4"><input size="30" type="text" name="label" value="'.$account->label.'"></td></tr>';
// BBAN print '<tr><td>'.$langs->trans("Bank").'</td>';
if ($account->useDetailedBBAN() == 1) print '<td><input size="30" type="text" name="bank" value="'.$account->bank.'"></td></tr>';
{
print '<tr><td>'.$langs->trans("BankCode").'</td>';
print '<td><input size="8" type="text" class="flat" name="code_banque" value="'.$account->code_banque.'"></td>';
print '</tr>';
print '<tr><td>'.$langs->trans("DeskCode").'</td>'; // BBAN
print '<td><input size="8" type="text" class="flat" name="code_guichet" value="'.$account->code_guichet.'"></td>'; if ($account->useDetailedBBAN() == 1)
print '</tr>'; {
} print '<tr><td>'.$langs->trans("BankCode").'</td>';
print '<td><input size="8" type="text" class="flat" name="code_banque" value="'.$account->code_banque.'"></td>';
print '</tr>';
print '<tr><td>'.$langs->trans("DeskCode").'</td>';
print '<td><input size="8" type="text" class="flat" name="code_guichet" value="'.$account->code_guichet.'"></td>';
print '</tr>';
}
if ($account->useDetailedBBAN() == 2) if ($account->useDetailedBBAN() == 2)
{ {
print '<tr><td>'.$langs->trans("BankCode").'</td>'; print '<tr><td>'.$langs->trans("BankCode").'</td>';
@ -208,52 +317,135 @@ if ($_GET["socid"] && $_GET["action"] == 'edit' && $user->rights->societe->creer
print '</tr>'; print '</tr>';
} }
print '<td>'.$langs->trans("BankAccountNumber").'</td>'; print '<td>'.$langs->trans("BankAccountNumber").'</td>';
print '<td><input size="15" type="text" class="flat" name="number" value="'.$account->number.'"></td>'; print '<td><input size="15" type="text" class="flat" name="number" value="'.$account->number.'"></td>';
print '</tr>'; print '</tr>';
if ($account->useDetailedBBAN() == 1) if ($account->useDetailedBBAN() == 1)
{ {
print '<td>'.$langs->trans("BankAccountNumberKey").'</td>'; print '<td>'.$langs->trans("BankAccountNumberKey").'</td>';
print '<td><input size="3" type="text" class="flat" name="cle_rib" value="'.$account->cle_rib.'"></td>'; print '<td><input size="3" type="text" class="flat" name="cle_rib" value="'.$account->cle_rib.'"></td>';
print '</tr>'; print '</tr>';
} }
// IBAN // IBAN
print '<tr><td valign="top">'.$langs->trans("IBAN").'</td>'; print '<tr><td valign="top">'.$langs->trans("IBAN").'</td>';
print '<td colspan="4"><input size="30" type="text" name="iban_prefix" value="'.$account->iban_prefix.'"></td></tr>'; print '<td colspan="4"><input size="30" type="text" name="iban_prefix" value="'.$account->iban_prefix.'"></td></tr>';
print '<tr><td valign="top">'.$langs->trans("BIC").'</td>'; print '<tr><td valign="top">'.$langs->trans("BIC").'</td>';
print '<td colspan="4"><input size="12" type="text" name="bic" value="'.$account->bic.'"></td></tr>'; print '<td colspan="4"><input size="12" type="text" name="bic" value="'.$account->bic.'"></td></tr>';
print '<tr><td valign="top">'.$langs->trans("BankAccountDomiciliation").'</td><td colspan="4">'; print '<tr><td valign="top">'.$langs->trans("BankAccountDomiciliation").'</td><td colspan="4">';
print "<textarea name=\"domiciliation\" rows=\"4\" cols=\"40\">"; print "<textarea name=\"domiciliation\" rows=\"4\" cols=\"40\">";
print $account->domiciliation; print $account->domiciliation;
print "</textarea></td></tr>"; print "</textarea></td></tr>";
print '<tr><td valign="top">'.$langs->trans("BankAccountOwner").'</td>'; print '<tr><td valign="top">'.$langs->trans("BankAccountOwner").'</td>';
print '<td colspan="4"><input size="30" type="text" name="proprio" value="'.$account->proprio.'"></td></tr>'; print '<td colspan="4"><input size="30" type="text" name="proprio" value="'.$account->proprio.'"></td></tr>';
print "</td></tr>\n"; print "</td></tr>\n";
print '<tr><td valign="top">'.$langs->trans("BankAccountOwnerAddress").'</td><td colspan="4">'; print '<tr><td valign="top">'.$langs->trans("BankAccountOwnerAddress").'</td><td colspan="4">';
print "<textarea name=\"owner_address\" rows=\"4\" cols=\"40\">"; print "<textarea name=\"owner_address\" rows=\"4\" cols=\"40\">";
print $account->owner_address; print $account->owner_address;
print "</textarea></td></tr>"; print "</textarea></td></tr>";
print '</table><br>'; print '</table><br>';
print '<center><input class="button" value="'.$langs->trans("Modify").'" type="submit">'; print '<center><input class="button" value="'.$langs->trans("Modify").'" type="submit">';
print ' &nbsp; <input name="cancel" class="button" value="'.$langs->trans("Cancel").'" type="submit">'; print ' &nbsp; <input name="cancel" class="button" value="'.$langs->trans("Cancel").'" type="submit">';
print '</center>'; print '</center>';
print '</form>'; print '</form>';
}
/* ************************************************************************** */
/* */
/* Création */
/* */
/* ************************************************************************** */
if ($_GET["socid"] && $_GET["action"] == 'create' && $user->rights->societe->creer)
{
$form = new Form($db);
dol_htmloutput_mesg($message);
print '<form action="rib.php?socid='.$soc->id.'" method="post">';
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="add">';
print '<table class="border" width="100%">';
print '<tr><td valign="top" width="35%">'.$langs->trans("LabelRIB").'</td>';
print '<td colspan="4"><input size="30" type="text" name="label"></td></tr>';
print '<tr><td>'.$langs->trans("Bank").'</td>';
print '<td><input size="30" type="text" name="bank"></td></tr>';
// BBAN
if ($account->useDetailedBBAN() == 1)
{
print '<tr><td>'.$langs->trans("BankCode").'</td>';
print '<td><input size="8" type="text" class="flat" name="code_banque"></td>';
print '</tr>';
print '<tr><td>'.$langs->trans("DeskCode").'</td>';
print '<td><input size="8" type="text" class="flat" name="code_guichet"></td>';
print '</tr>';
}
if ($account->useDetailedBBAN() == 2)
{
print '<tr><td>'.$langs->trans("BankCode").'</td>';
print '<td><input size="8" type="text" class="flat" name="code_banque"></td>';
print '</tr>';
}
print '<td>'.$langs->trans("BankAccountNumber").'</td>';
print '<td><input size="15" type="text" class="flat" name="number"></td>';
print '</tr>';
if ($account->useDetailedBBAN() == 1)
{
print '<td>'.$langs->trans("BankAccountNumberKey").'</td>';
print '<td><input size="3" type="text" class="flat" name="cle_rib"></td>';
print '</tr>';
}
// IBAN
print '<tr><td valign="top">'.$langs->trans("IBAN").'</td>';
print '<td colspan="4"><input size="30" type="text" name="iban_prefix"></td></tr>';
print '<tr><td valign="top">'.$langs->trans("BIC").'</td>';
print '<td colspan="4"><input size="12" type="text" name="bic"></td></tr>';
print '<tr><td valign="top">'.$langs->trans("BankAccountDomiciliation").'</td><td colspan="4">';
print "<textarea name=\"domiciliation\" rows=\"4\" cols=\"40\">";
print "</textarea></td></tr>";
print '<tr><td valign="top">'.$langs->trans("BankAccountOwner").'</td>';
print '<td colspan="4"><input size="30" type="text" name="proprio"></td></tr>';
print "</td></tr>\n";
print '<tr><td valign="top">'.$langs->trans("BankAccountOwnerAddress").'</td><td colspan="4">';
print "<textarea name=\"owner_address\" rows=\"4\" cols=\"40\">";
print "</textarea></td></tr>";
print '</table><br>';
print '<center><input class="button" value="'.$langs->trans("Add").'" type="submit">';
print ' &nbsp; <input name="cancel" class="button" value="'.$langs->trans("Cancel").'" type="submit">';
print '</center>';
print '</form>';
} }
dol_fiche_end(); dol_fiche_end();
if ($_GET["socid"] && $_GET["action"] != 'edit') if ($_GET["socid"] && $_GET["action"] != 'edit' && $_GET["action"] != 'create')
{ {
/* /*
* Barre d'actions * Barre d'actions
@ -262,7 +454,7 @@ if ($_GET["socid"] && $_GET["action"] != 'edit')
if ($user->rights->societe->creer) if ($user->rights->societe->creer)
{ {
print '<a class="butAction" href="rib.php?socid='.$soc->id.'&amp;action=edit">'.$langs->trans("Modify").'</a>'; print '<a class="butAction" href="rib.php?socid='.$soc->id.'&amp;action=create">'.$langs->trans("Add").'</a>';
} }
print '</div>'; print '</div>';

View File

@ -140,7 +140,7 @@ class CompanyBankAccountTest extends PHPUnit_Framework_TestCase
* testCompanyBankAccountFetch * testCompanyBankAccountFetch
* *
* @param int $id Id of bank account * @param int $id Id of bank account
* @return void * @return Object Bank account object
* *
* @depends testCompanyBankAccountCreate * @depends testCompanyBankAccountCreate
* The depends says test is run only if previous is ok * The depends says test is run only if previous is ok
@ -161,6 +161,29 @@ class CompanyBankAccountTest extends PHPUnit_Framework_TestCase
return $localobject; return $localobject;
} }
/**
* testCompanyBankAccountSetAsDefault
*
* @param Object $localobject Bank account
* @return int
*
* @depends testCompanyBankAccountFetch
*/
public function testCompanyBankAccountSetAsDefault($localobject)
{
global $conf,$user,$langs,$db;
$conf=$this->savconf;
$user=$this->savuser;
$langs=$this->savlangs;
$db=$this->savdb;
$result=$localobject->setAsDefault($localobject->id);
print __METHOD__." id=".$localobject->id." result=".$result."\n";
$this->assertLessThan($result, 0);
return $localobject;
}
/** /**
* testCompanyBankAccountUpdate * testCompanyBankAccountUpdate
* *