dolibarr-czqrpay/lib/czqrpay.lib.php

39 lines
1.1 KiB
PHP

<?php
function czqrpay_get_bank_account($db)
{
$sql = "SELECT rowid, iban, account_number FROM ".MAIN_DB_PREFIX."bank_account";
$resql = $db->query($sql);
if ($resql) {
while ($obj = $db->fetch_object($resql)) {
if (!empty($obj->account_number)) return $obj->account_number;
if (!empty($obj->iban)) return czqrpay_iban_to_cz($obj->iban);
}
}
return null;
}
function czqrpay_iban_to_cz($iban)
{
$iban = str_replace(' ', '', $iban);
if (substr($iban, 0, 2) !== 'CZ') return null;
$bank = substr($iban, 4, 4);
$prefix = ltrim(substr($iban, 8, 6), '0');
$account = ltrim(substr($iban, 14, 10), '0');
if ($prefix) return "$prefix-$account/$bank";
return "$account/$bank";
}
function czqrpay_build_spd($account, $amount, $vs, $msg)
{
$amount = number_format($amount, 2, '.', '');
// odstranit diakritiku
$msg = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $msg);
$msg = preg_replace('/[^A-Za-z0-9 .,-]/', '', $msg);
return "SPD*1.0*ACC:$account*AM:$amount*CC:CZK*X-VS:$vs*MSG:$msg*";
}