Bug: CE 6.0.0 Modul "Invoice PDF" erstellt keinen Lieferschein ohne Logo


#1

So, das nächste Problem mit der CE 6.0.0.

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'):

austauschen.

Viele Grüße,

Thorsten


#2

Hallo Thorsten,

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.


#3

Hab es in den Bugtracker eingetragen. Hoffe, ich hab alles richtig gemacht.


#4

Ich hab mal schnell noch die ein oder andere Änderung gemacht, ansonsten toll :wink:
https://bugs.oxid-esales.com/view.php?id=6780

Die Änderung direkt bei GitHub einreichen ist noch nicht so deins? ^^


#5

ich war mal so frei :wink:


#6

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. :+1:


#7

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.


#8

noch ‘richtiger’ :slight_smile: wäre:

// 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)


#9

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.


#10

Man kann auf nen PR ja nochmal nen PR machen :wink:

Habe es angepasst: https://github.com/OXIDprojects/pdf-invoice-module/pull/4/files#diff-31e093c50f1fa6f2ab515f850144ddcc