Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: MODUL: PDFBill Next - PDF Rechnung/Lieferschein - Inklusive Mailversand

    Gulliver72

    • Mitglied
    • Beiträge: 191
    • Geschlecht:
    In der /includes/classes/FPDF/PdfRechnung.php

    suche ca Zeile 361

    Code: PHP  [Auswählen]
            function PaymentInfo($info_array)
            {
                    if(!is_array($info_array) || count($info_array) !== 1) {
                      return;
              }
        if (isset($info_array[0]['fields'])) {
          $this->Ln(10);
          $this->SetFont($this->fontfamily, '', 8);

    füge danach ein (Werte für Farbe anpassen)

    Code: PHP  [Auswählen]
    $pdf->SetDrawColor(204,0,0); // Farbe Rot

    ändere von

    Code: PHP  [Auswählen]
          $this->Cell($this->preis_len, 4, xtc_utf8_decode(decode_htmlentities($info_array[0]['title'])), 0, 1);

    zu

    Code: PHP  [Auswählen]
          $this->Cell($this->preis_len, 4, xtc_utf8_decode(decode_htmlentities($info_array[0]['title'])), 1, 1); // Border eingeschaltet

    Wenn die Zelle noch farblich hinterlegt werden soll, kannst du zusätzlich einfügen

    Code: PHP  [Auswählen]
    $pdf->SetFillColor(255,182,193);

    und dann

    Code: PHP  [Auswählen]
          $this->Cell($this->preis_len, 4, xtc_utf8_decode(decode_htmlentities($info_array[0]['title'])), 1, 1,'L',true); // Border eingeschaltet, Text linksbündig und Hintergrund farbig
     

    In der foreach-Schleife mußt du das dann auch anpassen

    Code: PHP  [Auswählen]
            $this->Cell($this->preis_len, 4, xtc_utf8_decode($info['title'].' '.$info['field']), 1, 1);

    oder mit Hintergrundfarbe

    Code: PHP  [Auswählen]
            $this->Cell($this->preis_len, 4, xtc_utf8_decode($info['title'].' '.$info['field']), 1, 1,'L',true);

    Habs jetzt aber nicht getestet

    VG Bert

    Gulliver72

    • Mitglied
    • Beiträge: 191
    • Geschlecht:
    Hab jetzt meine Brille auf und nochmal drüber geschaut.
    Da sind kleine Fehler drin.

    Ich bin mir nicht sicher, welchen Wert $info_array[0]['class'] hat. Vielleicht kann hier einer vom modified-Team aushelfen.
    Hier dann die Funktion, wie ich es machen würde

    Code: PHP  [Auswählen]
            function PaymentInfo($info_array)
            {
                    if(!is_array($info_array) || count($info_array) !== 1) {
                      return;
                    }
                    if (isset($info_array[0]['fields']) && $info_array[0]['class'] == 'pay_upon_invoice') {
                            $this->Ln(10);
                            $this->SetFont($this->fontfamily, '', 8);
                            $this->SetDrawColor(204,0,0); // Farbe Rot
                            $this->SetFillColor(255,182,193);
                   
                            $this->Cell($this->preis_len, 4, xtc_utf8_decode(decode_htmlentities($info_array[0]['title'])), 1, 1,'L',true); // Border eingeschaltet, Text linksbündig und Hintergrund farbig
         
                            foreach ($info_array[0]['fields'] as $info) {
                                    $this->Cell($this->preis_len, 4, xtc_utf8_decode($info['title'].' '.$info['field']), 1, 1,'L',true);
                            }
                    }
                    elseif (isset($info_array[0]['fields'])) {
                            $this->Ln(10);
                            $this->SetFont($this->fontfamily, '', 8);
                   
                            $this->Cell($this->preis_len, 4, xtc_utf8_decode(decode_htmlentities($info_array[0]['title'])), 0, 1);
         
                            foreach ($info_array[0]['fields'] as $info) {
                                    $this->Cell($this->preis_len, 4, xtc_utf8_decode($info['title'].' '.$info['field']), 0, 1);
                            }
                    }
            }
     

    swolfram [templatix]

    • Fördermitglied
    • Beiträge: 1.175
    • Geschlecht:
    Hallo.

    Danke für Deine Mühe.

    Der Weg scheint zu passen, wenn auch nur teilweise.  2 Probleme stelle ich fest:

    1 ) Es wird kein Kasten um den ganzen Block gezogen, sondern nur ein kleiner in jeder Zeile einzeln. Wenn man "Border" weglässt, wäre das flächig und passend. Nur die Breite passt noch nicht.

    2) Der Zusatz
    Code: PHP  [Auswählen]
     && $info_array[0]['class'] == 'pay_upon_invoice
    verhindert die Darstellung, ich musste den entfernen um ein Ergebnis zu bekommen. Prinzipiell könnten meiner Ansicht nacht ALLE Payment-Infos hervorgehoben werden, egal aus welchem Modul diese stammen. Immerhin sind es wichtige Kundeninfos.

    swolfram [templatix]

    • Fördermitglied
    • Beiträge: 1.175
    • Geschlecht:
    Dank der Hilfe von Bert a.k.a. Gulliver72 habe ich jetzt folgenden Block bei mir eingesetzt.
    Damit werden die "Payment Infos" unabhängig der Zahlart, in einem leichten Rot hervorgehoben.

    Code: PHP  [Auswählen]
           
                function PaymentInfo($info_array)
            {
                    if(!is_array($info_array) || count($info_array) !== 1) {
                      return;
                    }
                    if (isset($info_array[0]['fields'])) {
                            $this->Ln(5);
                            $this->SetFont($this->fontfamily, '', 8);
                            $this->SetDrawColor(255,222,222); // Farbe Rot
                            $this->SetFillColor(255,222,222); // identisch Border
                   
                            $this->Cell($this->SetFillColor(255,222,222), 4, xtc_utf8_decode(decode_htmlentities($info_array[0]['title'])), 1, 1,'L',true); // Border eingeschaltet, Text linksbündig und Hintergrund farbig
         
                            foreach ($info_array[0]['fields'] as $info) {
                                    $this->Cell($this->SetFillColor(255,222,222), 4, xtc_utf8_decode($info['title'].' '.$info['field']), 1, 1,'L',true);
                            }
                    }
                    // reset fill-color for following content
                   $this->SetDrawColor(0,0,0);  
            }
     

    karsta.de

    • Experte
    • Beiträge: 3.082
    Wenn du auf den Border rechts und Links verzichten kannst, hätte ich noch diesen Vorschlag (ohne Background-color):

    Code: PHP  [Auswählen]
        if (isset($info_array[0]['fields'])) {
          $this->Ln(3);
          $this->SetFont($this->fontfamily, '', 8);
             
              $this->SetDrawColor(204,0,0);
              $this->SetTextColor(204,0,0);
              $this->SetLineWidth(0.8);
                    $this->Line(20, $this->GetY(), 196, $this->GetY());
                    $this->Ln(2);
                   
          $this->Cell($this->preis_len, 4, xtc_utf8_decode(decode_htmlentities($info_array[0]['title'])), 0, 1);
         
          foreach ($info_array[0]['fields'] as $info) {
            $this->Cell($this->preis_len, 4, xtc_utf8_decode(decode_htmlentities($info['title'].' '.$info['field'])), 0, 1);
          }
             
              $this->Line(20, $this->GetY() + 2, 196, $this->GetY() + 2);
              $this->Ln();
              $this->Ln();
        }

    swolfram [templatix]

    • Fördermitglied
    • Beiträge: 1.175
    • Geschlecht:
    Eine rote Linie oben und unten und roter Text, wenn ich das richtig interpretiere...
    Auch nicht schlecht :thumbs:

    Kann sich also jetzt jeder was passendes raussuchen :-)

    karsta.de

    • Experte
    • Beiträge: 3.082
    Genau. Hier noch der Screenshot dazu.

    achda

    • Fördermitglied
    • Beiträge: 37
    Hallo,
    ich erhalte folgende Fehlermeldung und kann mir dieses nicht erklären:

    Zitat
    1062 - Duplicate entry 'MODULE_INVOICE_NUMBER_IBN_BILLNR_FORMAT' for key 'idx_configuration_key'

    insert into configuration (configuration_key, configuration_value, configuration_group_id, sort_order, date_added) values ('MODULE_INVOICE_NUMBER_IBN_BILLNR_FORMAT', '100{n}-{d}-{m}-{y}', '99', '1', now())

    Request URL: domain.de/admin_xxxxx/module_export.php?set=system&module=pdfbill&action=install

    [XT SQL Error]

    Mad

    • Neu im Forum
    • Beiträge: 47
    Hallo,

    nach dem Update auf 2.0.5.1 mussten wir pdfbill erneut einrichten und anpassen.

    Hinweis zur Installationsanleitung per Hand:
    In der checkout_process.php gibt es den Passus:

    Code: PHP  [Auswählen]
        // NEW EMAIL configuration !
     $order_totals = $order_total_modules->apply_credit();
     include ('send_order.php');
     

    nicht mehr.
    Vielleicht kann man die Anleitung kürzen und nur: Suche nach " include ('send_order.php');" reinsetzen.

    Aber zu unserem Problem:

    1) er versendet nicht merh automatisch die Rechnungen - wir wissen nicht warum, Fehler kommen keine. Magere Aussage, a ich weiß, aber ich weiß ja nicht woran es liegen könnte um dann an der Stelle zu gucken ;-)

    2) Nach der Einrichtung hat läuft die Funktion "Rechnung pdf" auf einen Fehler:
    [ Für Gäste sind keine Dateianhänge sichtbar ]
    [ Für Gäste sind keine Dateianhänge sichtbar ]

    chmod ist 777 des Ordners Admin/invoice

    Hat jemand eine Idee ?

    karsta.de

    • Experte
    • Beiträge: 3.082
    Frage: Update von 2.05.0 auf 2.0.5.1?

    BG Karsta

    Mad

    • Neu im Forum
    • Beiträge: 47
    Ja, Update von 2.0.5.0 auf 2.0.5.1

    karsta.de

    • Experte
    • Beiträge: 3.082
    Ok, Danke. Muss ich gleich nachher mal testen.

    BG Karsta

    Tutti73

    • Fördermitglied
    • Beiträge: 54
    • Geschlecht:
    Ich habe in einer neuen Shop-Installation 2.0.5.1 mit migriertem Datenstand aus einem Shop der Version 1.06 das Modul PDF BillNext 1.1.8d installiert und kleinere Anpassungen bei Texten und Layout vorgenommen. Das Modul funktioniert fast wie gewünscht, doch in den Dokumenteneingeschaften des PDF stehen für mich nicht deutbare Strings:
    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Und die Strings kommen meines Erachtens direkt aus dem Code über die PdfBrief.php und nicht aus der Datenbank.
    Zum Beispiel:
    Code: PHP  [Auswählen]
    $this->SetCreator("PdfBrief, PDF-RechnungNEXT (c) 2011 Robert Hoppe www.katado.com");

    Hatte eventuell jemand eventuell ein ähnliches Phänomen oder einen Ansatz für mich? Bisher konnte ich hier im Forum derartiges nicht finden.

    VG Thorsten

    AllyG

    • Schreiberling
    • Beiträge: 423
    • Geschlecht:
    Hallo,

    es gibt im Modul ja die Option den Rechnungsversand automatisch, ab erreichen eines bestimmten Bestellstatus, auszulösen.

    Wir haben bei uns Amazon inkl. FBA angekoppelt über eine Drittanbieter-Modul. Dort kann ich für normale Bestellungen und FBA-Bestellungen verschiedene Stati auswählen für den Import. Was wir brauchen wäre die Möglichkeit, dass bei Bestellungen die über FBA kommen automatisch eine Rechnung erstellt wird. Wir haben das mal versucht und den Status beim Import von FBA dafür auf den Status gesetzt, der bei uns für den Rechnungsversand verantwortlich ist aber da passiert nichts. Ich denke es liegt daran, dass die Statusänderungen direkt aus der jeweiligen Bestellung ausgelöst werden muss, da dort auch die Abfrage vom Modul läuft.

    Gibt es die Möglichkeit jetzt schon und wir sind einfach zu unfähig die korrekte Einstellung zu setzen oder müsste das direkt ins Modul einprogrammiert werden?

    Wir brauchen also 2 Abfragen. Einmal die klassische in welcher wir Bestellungen aus dem Shop manuell in den Status für Rechnungsversand setzen (so wie es jetzt im Modul vorhanden ist) und eine zusätzliche, die quasi automatisch erkennt sobald eine Bestellung importiert wird mit einen bestimmten Status und dann den Rechnungsversand auslöst, ohne unser Zutun.

    Freue mich auf Eure Antworten :-)

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.750
    • Geschlecht:
    Für das Senden der Rechnung bei Status-Änderung einer Bestellung im Backend des Shops gibt es ja eine (nicht update-sichere) Code-Anpassung in /admin/orders.php für case update_order':, wo mittels der Funktion xtc_pdf_bill() mit zweitem Parameter true die Rechnung versendet wird.
    Nun mußt du ja eine Art Connector haben der die von Ama. komemnden Daten verarbeitet. In dem Script mußt du die nötigen Files includen und die Funktion xtc_pdf_bill(ORDER_NO, true) mit der Bestellnummer, die dem Script ja bekannt sein müsste, als erstem Parameter und true als zweitem Parameter aufrufen.

    Gruß,
    noRiddle
    Trade Republic - Provisionsfrei Aktien handeln
    24 Antworten
    8823 Aufrufe
    22. Dezember 2020, 09:36:22 von karsta.de
    24 Antworten
    5327 Aufrufe
    18. November 2020, 21:02:35 von little-key
    3 Antworten
    4665 Aufrufe
    09. Oktober 2013, 15:33:09 von kaisa