Inhalt der PDF-Rechnung anpassen

  • Hallo,


    ich habe mich schon einige Tage mit der Umgestaltung der PDF-Rechnung beschäftigt und mit dem Ergebnis schon fast zufrieden. :-)
    Bei der Suche nach den Quellcodestellen in den VM-Dateien sind mir jetzt noch einige Kleinigkeiten aufgefallen. Bzw. habe ich einige Quellen für meine individuelle Anpassung nicht gefunden.


    Zum besseren Verständnis habe ich mal einen Auszug aus der PDF-Rechnung als Bild angehängt und die entsprechenden Stellen markiert.


    Oben, wo ich ein Adressfeld einrichte finde ich keine Stelle, wo ich die E-Mailadresse ausblenden oder formatieren könnte.
    Die E-Mail ist auch nicht linksbündig. Alle anderen Felder habe ich bündig bekommen, nur die E-Mail nicht.
    Ich habe in dem Zusammenhang auch 2 Varianten getestet.
    Und zwar steht ja in der invoice_order.php normalerweise diese Zeile
    foreach ($this->shipmentfields['fields'] as $field) aber eigentlich habe ich in der Datenbank dazu eine Spaltenbezeichnung gefunden. Wahrscheinlich noch ein Überbleibsel aus früheren Versionen von VM? Trotzdem wurden aber die entsprechenden Adressdaten angezeigt. Ich hätte das auch so gelassen, allerdings habe ich es einfach nicht geschafft das damit verbundene Problem zu lösen. Und zwar wurde, anstatt des Titels (Frau/Herr) nur eine ID, in dem Fall eine "1" angezeigt. Habe ich einfach nicht ändern können.


    Deshalb habe ich es auch damit versucht: "userfields". Denn diese Bezeichnung findet man auch in der Datenbank.
    Soweit auch zufriedenstellende Adressenansicht, allerdings mit dem oben genannten E-Mail-Problem.


    Vielleicht weiß jemand wo ich die verantwortliche Stelle finde? Und wenn ich die E-Mail nicht ausgeblendet bekommen, dann würde ich sie wenigsten linksbündig ausrichten wollen.
    Momentan sieht der entsprechende Quellcode so aus:



    Die andere Sache ist einfach die, dass ich unterhalb der Rechnungstabelle diese Felder im roten Rahmen woanders platzieren (Datum) und den Rest ausblenden oder verlegen würde. Ich habe aber bisher nicht finden können, wo und in welcher Datei ich diese Daten ändern könnte.
    Vielleicht hat jemand von euch einen Tipp für mich?


    Vielen Dank schon mal.


    MfG
    Fredolin

  • Servus,


    statt durch die Schleife zu laufen und alle Werte zu holen, kannst Du die Werte auch einzeln holen.


    Ich hab sie jeweils in Variablen gepackt, die ich dann nachher mit echo aufrufen kann.


    So ist das einigermaßen übesichtlich.


    $title = $this->userfields['fields']['title']['value'];
    $first_name = $this->userfields['fields']['first_name']['value'];
    $last_name = $this->userfields['fields']['last_name']['value'];
    $address_1 = $this->userfields['fields']['address_1']['value'];
    $zip = $this->userfields['fields']['zip']['value'];
    $city = $this->userfields['fields']['city']['value'];
    $country = $this->userfields['fields']['virtuemart_country_id']['value'];


    So long
    Stefan

  • Sorry, das ganze Rechnungstemplate beruht auf einer Designvorlage eines Kunden, das kann ich so nicht einfach rausgeben.


    Du kannst diese Werte einfach in der invoice_order.php einsetzen.


    Mach eine Tabelle oder ein DIV-Konstrukt anstelle der foreach-Schleife.


    <?php echo $title ?> usw. in die Tabellenzellen oder DIVs


    und schon hast Du, was Du brauchst.


    So short
    Stefan

  • super danke nochmals, habe es mir eben nochmals angesehen, die untere rote Box die du markierst hast. Status und Kommentar, wie entferne ich das, habe dazu schon in einigen Daten gesucht, finde es aber nicht :(

  • Hm,


    ich der invoice.php steht dieses:


    PHP
    1. <?php
    2. if ($this->print) {
    3. echo $this->loadTemplate('items');
    4. } else {
    5. $tabarray = array('items'=>'COM_VIRTUEMART_ORDER_ITEM', 'history'=>'COM_VIRTUEMART_ORDER_HISTORY');
    6. shopFunctionsF::buildTabs( $this, $tabarray);
    7. }
    8. ?>


    Könntest Du mal so versuchen:



    PHP
    1. <?php
    2. if ($this->print) {
    3. echo $this->loadTemplate('items');
    4. } else {
    5. echo $this->loadTemplate('items');
    6. }
    7. ?>


    Musst aber mal schauen, ob das nicht irgendwo die History rausnimmt, wo Du sie evtl. brauchst.


    So long
    Stefan


    PS. Als Override anlegen