diff --git a/lib/czqrpay.lib.php b/lib/czqrpay.lib.php index f66d8b3..ca7efb9 100644 --- a/lib/czqrpay.lib.php +++ b/lib/czqrpay.lib.php @@ -30,5 +30,10 @@ function czqrpay_iban_to_cz($iban) function czqrpay_build_spd($account, $amount, $vs, $msg) { $amount = number_format($amount, 2, '.', ''); - return "SPD*1.0*ACC:$account*AM:$amount*CC:CZK*X-VS:$vs*MSG:$msg"; + + // 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*"; } diff --git a/pdf_sponge_czqr.modules.php b/pdf_sponge_czqr.modules.php index 3c26d0e..54778e5 100644 --- a/pdf_sponge_czqr.modules.php +++ b/pdf_sponge_czqr.modules.php @@ -474,7 +474,25 @@ class pdf_sponge_czqr extends ModelePDFFactures } } elseif (getDolGlobalString('INVOICE_ADD_EPC_QR_CODE') == '1' && (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'VIR')) { if ($object->fk_account > 0 || $object->fk_bank > 0 || getDolGlobalInt('FACTURE_RIB_NUMBER')) { - $qrcodestring = $object->buildEPCQrCodeString(); + require_once DOL_DOCUMENT_ROOT.'/custom/czqrpay/lib/czqrpay.lib.php'; + + $accountNumber = ''; + if (!empty($account->account_number)) { + $accountNumber = $account->account_number; + } elseif (!empty($account->iban)) { + $accountNumber = czqrpay_iban_to_cz($account->iban); + } + + $vs = preg_replace('/\D/', '', $object->ref); + $msg = "Faktura ".$object->ref; + + $qrcodestring = czqrpay_build_spd( + $accountNumber, + $object->total_ttc, + $vs, + $msg + ); + } } @@ -1579,60 +1597,60 @@ class pdf_sponge_czqr extends ModelePDFFactures $posy += 2; - // ============================================ - // CZ QR PLATBA (náhrada EPC QR) - // ============================================ - - require_once DOL_DOCUMENT_ROOT.'/custom/czqrpay/lib/czqrpay.lib.php'; - - // vezmeme účet z aktuální faktury - $accountNumber = ''; - if (!empty($account->account_number)) { - $accountNumber = $account->account_number; - } elseif (!empty($account->iban)) { - $accountNumber = czqrpay_iban_to_cz($account->iban); - } - - if (!empty($accountNumber) && !empty($object->total_ttc)) { - - // VS jen čísla - $vs = preg_replace('/\D/', '', $object->ref); - - // zpráva pro příjemce - $msg = "Faktura ".$object->ref; - - // SPD string - $spd = czqrpay_build_spd( - $accountNumber, - $object->total_ttc, - $vs, - $msg - ); - - $qrPosX = 120; - $qrPosY = $posy; - - $qrCodeColor = array('25', '25', '25'); - - $styleQr = array( - 'border' => false, - 'padding' => 0, - 'fgcolor' => $qrCodeColor, - 'bgcolor' => false, - 'module_width' => 1, - 'module_height' => 1 - ); - - // vykreslení QR - $pdf->write2DBarcode($spd, 'QRCODE,M', $qrPosX, $qrPosY, 30, 30, $styleQr, 'N'); - - // popisek vedle QR - $pdf->SetXY($qrPosX + 35, $posy + 6); - $pdf->SetFont('', '', $default_font_size - 5); - $pdf->MultiCell(40, 3, "QR platba", 0, 'L', false); - - $posy = $pdf->GetY() + 2; - } + //// ============================================ + //// CZ QR PLATBA (náhrada EPC QR) + //// ============================================ +// + //require_once DOL_DOCUMENT_ROOT.'/custom/czqrpay/lib/czqrpay.lib.php'; +// + //// vezmeme účet z aktuální faktury + //$accountNumber = ''; + //if (!empty($account->account_number)) { + // $accountNumber = $account->account_number; + //} elseif (!empty($account->iban)) { + // $accountNumber = czqrpay_iban_to_cz($account->iban); + //} +// + //if (!empty($accountNumber) && !empty($object->total_ttc)) { + // + // // VS jen čísla + // $vs = preg_replace('/\D/', '', $object->ref); + // + // // zpráva pro příjemce + // $msg = "Faktura ".$object->ref; + // + // // SPD string + // $spd = czqrpay_build_spd( + // $accountNumber, + // $object->total_ttc, + // $vs, + // $msg + // ); + // + // $qrPosX = 120; + // $qrPosY = $posy; + // + // $qrCodeColor = array('25', '25', '25'); + // + // $styleQr = array( + // 'border' => false, + // 'padding' => 0, + // 'fgcolor' => $qrCodeColor, + // 'bgcolor' => false, + // 'module_width' => 1, + // 'module_height' => 1 + // ); + // + // // vykreslení QR + // $pdf->write2DBarcode($spd, 'QRCODE,M', $qrPosX, $qrPosY, 30, 30, $styleQr, 'N'); + // + // // popisek vedle QR + // $pdf->SetXY($qrPosX + 35, $posy + 6); + // $pdf->SetFont('', '', $default_font_size - 5); + // $pdf->MultiCell(40, 3, "QR platba", 0, 'L', false); + // + // $posy = $pdf->GetY() + 2; + //} // SHOW EPC QR CODE