InvoicePDF Rechnungs- und Lieferadresse überschreiben geht nicht

Weil ich es zuvor in einem falschen Forum gepostet habe, hier nochmal der Beitrag, das Original (http://forum.oxid-esales.com/showthread.php?t=25474) bitte löschen, danke!

Ich habe ein Modul geschrieben, dass die Funktion “_setOrderArticlesToPdf” der InvoicePDF Generierung überschreibt. Funktioniert wunderbar, es werden Rechnungen mit meinen Änderungen generiert und das originale Modul bleibt unangetastet.

Leider missfällt mir die Darstellung von Rechnungs- und Lieferadresse in der originalen Rechnungsgenerierung. Da ist beispielsweise immer eine Leerzeile, wenn der Kunde keinen Firmennamen angegeben hat und das sieht nicht sauber aus.
Daher wollte ich die beiden Funktionen “_setDeliveryAddressToPdf” sowie “_setBillingAddressToPdf” durch meinen eigenen Aufbau ersetzen. Doch das funktioniert nicht. Sowie ich in meinem Modul eine oder beide Funktionen einfüge und die Generierung einer Rechnung auslöse, passiert gar nichts. Es gibt aber auch keinen Eintrag im Exception.log und auch mein eigenes Log wird nicht angesprochen, einfach, weil gar nichts passiert.

Woran kann das liegen? Können die beiden Funktionen nicht überschrieben werden und wenn ja, warum nicht?

Wäre euch sehr verbunden, wenn mir jemand einen Tipp geben könnte.

Hat denn keiner eine Idee, warum die beiden Methoden nicht überschrieben werden können und stört sich nicht daran, dass beispielsweise diese Leerzeile entsteht, wenn kein Firmenname vorhanden ist? :frowning:

Wenn nichts passiert ist der Code “tot”: Tippfehler, vergessene Klammer etc. Ansonsten gilt wie immer bei der Fehlersuche: Code so lange reduzieren bis der Fehler Verschwidnet - das letzte, was gestrichen wurde, war schuld.

Was passiert denn bei
proected function _setDeliveryAddressToPdf(){
return parent::_setDeliveryAddressToPdf();
}

?

Du siehst, ich rate: Du hättest deinen Code posten können. :slight_smile:

[QUOTE=AlexWeedy;153158]… und stört sich nicht daran, dass beispielsweise diese Leerzeile entsteht, wenn kein Firmenname vorhanden ist? :-([/QUOTE]

in der Original myorder.php sind die Positionen fest eingegeben:


$oPdf->text( 15, 63, $this->oxorder__oxbillfname->getRawValue().' '.$this->oxorder__oxbilllname->getRawValue() );

stattdessen Variablen verwenden und ggf. weiterzählen:


...
$leftmargin = 20;
$ActAdressLine = 60;
...
if ($this->oxorder__oxbillcompany->getRawValue() != '') {
  $oPdf->text( $leftmargin, $ActAdressLine, $this->oxorder__oxbillcompany->getRawValue() );
  $ActAdressLine += 5;
  }
$oPdf->text( $leftmargin, $ActAdressLine, $this->oxorder__oxbillfname->getRawValue().' '.$this->oxorder__oxbilllname->getRawValue() );
$ActAdressLine += 5;
...


Ich habe den Fehler gefunden.
Das Problem war ja nicht, dass ich nicht wusste, wie ich die Positionierungen verändern kann, sondern dass nicht mal der unveränderte Inhalt der originalen Methoden in meinem Modul nicht ausgeführt wurde.
Die Ursache lag darin, dass die Klasse “InvoicepdfBlock” aus dem Invoice Modul in “modules/oe/invoicepdf/models/invoicepdfblock.php” nicht vorhanden war und somit keine Instanz davon erzeugt werden konnte. Die Klasse habe ich nun in mein Modul eingebunden und schon funktioniert meine Modifikation der Rechnungs- und Lieferadressausgabe.

Dennoch danke für Eure Hilfe!