Und zwar generiert das Modul “Invoice PDF” beim Versuch einen Lieferschein ohne Logo als PDF zu speichern eine RECHNUNG ohne Logo.
Ich schätze mal das ist ein Bug. Da ich aber keine Lust hatte, zu warten, bis das mit einer späteren Version gefixt wird, hier die Lösung, für alle, die das selbst beheben wollen:
In der Datei /source/modules/oe/invoicepdf/models/invoicepdfoxorder.php
die Zeile: case 'dnote':
gegen: case ('dnote' || 'dnote_without_logo'):
danke für die Lösung. Wenn dazu kein Bug reportet wird, kann man lange auf eine Lösung warten. Deshalb sollte ein Bug auch immer im Bugtracker eingetragen werden. Willst Du das vielleicht selbst machen?
Ausserdem gibt es die Möglichkeit - zumal Du die Lösung bereits gepostet hast - diese Änderung direkt als Pull Request auf GitHub einzureichen. Ich würde dabei auf den Bugtracker-Eintrag verweisen.
Sorry - hab es gestern nicht mehr geschafft. War schon auf dem Sprung als ich das in den Bugtracker eingetragen hab. Hätte es heute schon nachgeholt, was sich ja nun erübrigt hat.
Der Code muss leider doch noch etwas mehr angepasst werden, wie ich gerade beim Rechnungserstellen gemerkt habe.
Der ganze Block muss korrekt so heissen:
// adding info data
switch (\OxidEsales\Eshop\Core\Registry::getConfig()->getRequestParameter('pdftype')) {
case ('dnote'):
$this->exportDeliveryNote($oPdf);
case ('dnote_without_logo'):
$this->exportDeliveryNote($oPdf);
break;
default:
$this->exportStandart($oPdf);
}
Die “OR-Abfrage” innerhalb der Switch-Funktion funktioniert offenbar nicht und es werden dann keine Rechnungen mehr korrekt erstellt.
// adding info data
switch (\OxidEsales\Eshop\Core\Registry::getConfig()->getRequestParameter('pdftype')) {
case ('dnote'):
case ('dnote_without_logo'):
$this->exportDeliveryNote($oPdf);
break;
default:
$this->exportStandart($oPdf);
}
denn die 2.Anweisung wird (ohne BREAK) immer ausgeführt - entspricht quasi dem OR
(bei deinem Code wird u.U. 2mal eine deliver note erstellt)
Zumindest funktioniert mit dem weniger richtigen Code alle 4 Varianten. Aber Du hast natürlich Recht. Im Falle eines Lieferscheins MIT Logo macht er keinen break mehr.