Merge pull request #7910 from checkitsedo/#7909-SwissQR-InvoiceNr-ReferenceNr

Swiss QR Bill is not rendering, if invoice nr. have letters #7909
This commit is contained in:
David Bomba 2022-11-15 13:53:00 +11:00 committed by GitHub
commit a9f5ad62dd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -19,7 +19,7 @@ use Sprain\SwissQrBill as QrBill;
/** /**
* SwissQrGenerator. * SwissQrGenerator.
*/ */
class SwissQrGenerator class SwissQrGenerator
{ {
protected Company $company; protected Company $company;
@ -33,7 +33,7 @@ class SwissQrGenerator
$this->company = $company; $this->company = $company;
$this->invoice = $invoice; $this->invoice = $invoice;
$this->client = $invoice->client; $this->client = $invoice->client;
} }
@ -104,15 +104,43 @@ class SwissQrGenerator
// Add payment reference // Add payment reference
// This is what you will need to identify incoming payments. // This is what you will need to identify incoming payments.
if(stripos($this->invoice->number, "Live") === 0)
{
// we're currently in preview status. Let's give a dummy reference for now
$invoice_number = "123456789";
}
else
{
$tempInvoiceNumber = $this->invoice->number;
$tempInvoiceNumber = preg_replace('/[^A-Za-z0-9]/', '', $tempInvoiceNumber);
$tempInvoiceNumber = substr($tempInvoiceNumber, 1);
$calcInvoiceNumber = "";
$array = str_split($tempInvoiceNumber);
foreach($array as $char)
{
if (is_numeric($char))
{
//
}
else
{
if ($char)
{
$char = strtolower($char);
$char = ord($char) - 96;
}
else
{
return 0;
}
}
$calcInvoiceNumber .= $char;
}
$invoice_number = $calcInvoiceNumber;
if(stripos($this->invoice->number, "Live") === 0)
{
// we're currently in preview status. Let's give a dummy reference for now
$invoice_number = "123456789";
}
else
{
$invoice_number = iconv("UTF-8", "ASCII", $this->invoice->number);
} }
if(strlen($this->company->present()->besr_id()) > 1) if(strlen($this->company->present()->besr_id()) > 1)