diff --git a/htdocs/compta/bank/bankid_fr.php b/htdocs/compta/bank/bankid_fr.php index 1b3d5b89d0dd4c3462577b1c2106930315d95e3a..f20d70ef14fcc28c4cd8dc8336c4e04f41d00350 100644 --- a/htdocs/compta/bank/bankid_fr.php +++ b/htdocs/compta/bank/bankid_fr.php @@ -256,7 +256,15 @@ if (($_GET["id"] || $_GET["ref"]) && $action != 'edit') print '</td></tr>'; print '<tr><td valign="top">'.$langs->trans($bickey).'</td>'; - print '<td colspan="3">'.$account->bic.'</td></tr>'; + print '<td colspan="3">'.$account->bic.' '; + if (! empty($account->bic)) { + if (! checkSwiftForAccount($account)) { + print img_picto($langs->trans("SwiftNotValid"),'warning'); + } else { + print img_picto($langs->trans("SwiftValid"),'info'); + } + } + print '</td></tr>'; print '<tr><td valign="top">'.$langs->trans("BankAccountDomiciliation").'</td><td colspan="3">'; print nl2br($account->domiciliation); diff --git a/htdocs/core/lib/bank.lib.php b/htdocs/core/lib/bank.lib.php index 36626ffcc943ef4c47c62c23f77a53d02bac978a..db6b9d5b8aaad03a0ecda5f41b3a159b093092e2 100644 --- a/htdocs/core/lib/bank.lib.php +++ b/htdocs/core/lib/bank.lib.php @@ -121,7 +121,24 @@ function bank_admin_prepare_head($object) complete_head_from_modules($conf, $langs, $object, $head, $h, 'bank_admin', 'remove'); return $head; - } +} + +/** + * Check SWIFT informations for a bank account + * + * @param Account $account A bank account + * @return int True if informations are valid, false otherwise + */ +function checkSwiftForAccount($account) +{ + $swift = $account->bic; + if (eregi("^([a-zA-Z]){4}([a-zA-Z]){2}([0-9a-zA-Z]){2}([0-9a-zA-Z]{3})?$", $swift)) { + return true; + } else { + return false; + } + +} /** * Check IBAN number informations for a bank account @@ -134,13 +151,9 @@ function checkIbanForAccount($account) require_once DOL_DOCUMENT_ROOT.'/includes/php-iban/oophp-iban.php'; $iban = new Iban($account->iban); $check = $iban->Verify(); - //print '<pre>'.print_r($iban, true).'</pre>'; if ($check) { - //print '<pre>OK</pre>'; return true; } else { - //$suggest = $iban->MistranscriptionSuggestions($account->iban); - //print '<pre>'.print_r($suggest, true).'</pre>'; return false; } diff --git a/htdocs/langs/en_US/banks.lang b/htdocs/langs/en_US/banks.lang index 7358f25e6f45f6535438af74ee1912a919ee1150..dfa0934ce7022847b0455fda9df377c692087022 100644 --- a/htdocs/langs/en_US/banks.lang +++ b/htdocs/langs/en_US/banks.lang @@ -33,9 +33,11 @@ AllTime=From start Reconciliation=Reconciliation RIB=Bank Account Number IBAN=IBAN number -IbanValid=Valid IBAN -IbanNotValid=Not Valid IBAN +IbanValid=IBAN is Valid +IbanNotValid=IBAN is Not Valid BIC=BIC/SWIFT number +SwiftValid=BIC/SWIFT is Valid +SwiftNotValid=BIC/SWIFT is Not Valid StandingOrders=Standing orders StandingOrder=Standing order Withdrawals=Withdrawals diff --git a/htdocs/societe/rib.php b/htdocs/societe/rib.php index ad3eea735fb2728640587cd08e163bc861687056..2a21f6cdc87336e5cb6ae703820fb5b9cf962b63 100644 --- a/htdocs/societe/rib.php +++ b/htdocs/societe/rib.php @@ -304,7 +304,15 @@ if ($socid && $action != 'edit' && $action != "create") print '</td></tr>'; print '<tr><td valign="top">'.$langs->trans("BIC").'</td>'; - print '<td colspan="4">'.$account->bic.'</td></tr>'; + print '<td colspan="4">'.$account->bic.' '; + if (! empty($account->bic)) { + if (! checkSwiftForAccount($account)) { + print img_picto($langs->trans("SwiftNotValid"),'warning'); + } else { + print img_picto($langs->trans("SwiftValid"),'info'); + } + } + print '</td></tr>'; print '<tr><td valign="top">'.$langs->trans("BankAccountDomiciliation").'</td><td colspan="4">'; print $account->domiciliation;