Anleitung Rechnung automatisch ausdrucken

Thema wurde von Petra, 13. Januar 2013 erstellt.

  1. DrNuke

    DrNuke Erfahrener Benutzer

    Registriert seit:
    7. Mai 2012
    Beiträge:
    208
    Danke erhalten:
    19
    Danke vergeben:
    22
    Hab gerade das gleiche Problem. Hoffentlich bekommt Avenger das wieder hin. Wenn ich immer an die 100 Bestellungen einzeln drucken muss werd ich ja zum Hirsch :)
     
  2. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    OK, das ist klar, da hat sich ja nichts geändert....

    Folgende Änderungen in "admin/pt_gm_pdf_order.php":

    1. Lösungsversuch (vorzugsweise):

    An das Ende anfügen:

    PHP:
    if (class_exists('TCPDF'))
    {
      class 
    FPDF extends TCPDF {}
    }
    falls das nicht funktioniert

    2. Lösungsversuch:

    vor

    PHP:
    $gmFormat = new GMOrderFormat();
    einfügen

    PHP:
    require_once(DIR_FS_CATALOG 'PdfCreator/fpdf.php');
    Falls auch das nicht geht, Fehlermeldung im Log posten...
     
  3. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    13. Juni 2011
    Beiträge:
    695
    Danke erhalten:
    139
    Danke vergeben:
    138
    Pkt. 1 brachte die gleiche Fehlermeldung wie ursprünglich

    Pkt. 2 brachte: Fatal error: Cannot redeclare class FPDF in /admin/PDFMerger/fpdi/fpdi2tcpdf_bridge.php on line 29
     
  4. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Noch ein Versuch...

    Erst mal alle Änderungen entfernen.

    In "admin\PDFMerger\PDFMerger.php"

    PHP:
    class PDF_JavaScript extends FPDF
    ersetzen mit:

    PHP:
    //class PDF_JavaScript extends FPDF
    class PDF_JavaScript extends TCPDF
    In "admin\PDFMerger\PDF_JavaScript.php"

    PHP:
    class PDF_JavaScript extends FPDF
    ersetzen mit

    PHP:
    //class PDF_JavaScript extends FPDF
    class PDF_JavaScript extends TCPDF
     
  5. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    13. Juni 2011
    Beiträge:
    695
    Danke erhalten:
    139
    Danke vergeben:
    138
    #165 Anonymous, 11. September 2014
    Zuletzt bearbeitet: 11. September 2014
    (Link nur für registrierte Nutzer sichtbar.)

    ..aber wir kommen dabei schon soweit, dass er den Status der Bestellung auf "Rechnung erstellt" ändert
    ****
    11.09.2014, 08:51:43, Bestellung 2014106242, Rechnung R_2014105898 verarbeitet<br>11.09.2014, 08:51:43, Bestellung 2014106242, Lieferschein L_2014105884 verarbeitet<br><br>11.09.2014, 08:51:43, Druckaufbereitung gestartet<br />
    ****

    ...das Rechnungs-pdf findet sich im _invoice-Ordner
     
  6. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Gibt es einen Log-Eintrag dazu mit mehr Infos?
     
  7. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    13. Juni 2011
    Beiträge:
    695
    Danke erhalten:
    139
    Danke vergeben:
    138
    ================================================================================

    2014-09-11 09:06:07 (287b3e7d290a98231e925f8dd4b7e861) FATAL ERROR(1): "Cannot access protected property FPDI::$PDFVersion"

    Request: GET /admin/pt_gm_pdf_order.php?type=invoice&oIDs=2014106242&print_copies=2&href=http://www.natuerlich-heilen.at/admin/orders.php
    - duration: ~110ms
    - server: Apache/2.2.22 (Debian)
    - server address: 144.76.180.225
    - user agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
    - remote address: 287b3e7d290a98231e925f8dd4b7e861

    Session:
    - tpl: EyeCandy
    - MOBILE_ACTIVE: false
    - language: german
    - languages_id: 2
    - language_charset: utf-8
    - language_code: de
    - currency: EUR
    - customers_status: Array
    (
    [customers_status_id] => 0
    [customers_status_name] => Admin
    [customers_status_image] => admin.gif
    [customers_status_public] => 1
    [customers_status_min_order] => 0
    [customers_status_max_order] => 0
    [customers_status_discount] => 0.00
    [customers_status_ot_discount_flag] => 1
    [customers_status_ot_discount] => 0.00
    [customers_status_graduated_prices] => 0
    [customers_status_show_price] => 1
    [customers_status_show_price_tax] => 1
    [customers_status_add_tax_ot] => 0
    [customers_status_payment_unallowed] =>
    [customers_status_shipping_unallowed] =>
    [customers_status_discount_attributes] => 0
    [customers_fsk18] => 0
    [customers_fsk18_display] => 1
    [customers_status_write_reviews] => 1
    [customers_status_read_reviews] => 1
    )

    - cart: shoppingCart Object
    (
    [contents] => Array
    (
    )

    [total] => 0
    [weight] => 0
    [cartID] =>
    [content_type] =>
    )

    - wishList: wishList Object
    (
    [contents] => Array
    (
    )

    [total] => 0
    [weight] => 0
    [cartID] =>
    [content_type] =>
    )

    - customer_id: 2
    - payment: ### Session entry not present ###
    - shipping: ### Session entry not present ###
    - cartID: ### Session entry not present ###
    - sendto: ### Session entry not present ###
    - billto: ### Session entry not present ###

    Get:
    - type: invoice
    - oIDs: 2014106242
    - print_copies: 2
    - href: (Link nur für registrierte Nutzer sichtbar.)

    Information:

    <link rel="stylesheet" type="text/css" href="includes/stylesheet.css">
    <style type="text/css">
    body {
    background-color: white;
    padding:10px;
    }

    a.button,
    a.button:link,
    a.button:visited,
    a.button:active,
    a.button:hover,
    span.button {
    white-space: nowrap;
    padding:4px 10px;
    }
    </style>
    11.09.2014, 09:06:07, Bestellung 2014106242, Rechnung R_2014105898 verarbeitet<br>11.09.2014, 09:06:07, Bestellung 2014106242, Lieferschein L_2014105884 verarbeitet<br><br>11.09.2014, 09:06:07, Druckaufbereitung gestartet<br />
    <b>Fatal error</b>: Cannot access protected property FPDI::$PDFVersion in <b>/home/www/web5/html/shop/admin/PDFMerger/fpdi/fpdi_pdf_parser.php</b> on line <b>381</b><br />
     
  8. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Auf ein nächstes:

    in "admin\PDFMerger\fpdi\fpdi_pdf_parser.php"

    PHP:
    $this->fpdi->PDFVersion max($this->fpdi->PDFVersion$this->pdfVersion);
    ersetzen mit

    PHP:
    //$this->fpdi->PDFVersion = max($this->fpdi->PDFVersion, $this->pdfVersion);
    Das generierte PDF war OK????
     
  9. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    13. Juni 2011
    Beiträge:
    695
    Danke erhalten:
    139
    Danke vergeben:
    138
    Sowohl Rechnung als auch Lieferschein wurden korrekt generiert.

    Jetziger Versuch liefert:
    <b>Fatal error</b>: Cannot access protected property FPDI::$k in <b>/home/www/web5/html/shop/admin/PDFMerger/fpdi/fpdi_pdf_parser.php</b> on line <b>280</b><br />
     
  10. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Da gibt es ein grundlegendes Problem.....

    Die neue TCPDF-Klasse, die Gambio jetzt für die PDF-Erstellung verwendet, definiert einige Variablen jetzt als "protected", die in FPDF "public" waren, so dass man da jetzt nicht mehr dran kommt......

    Das ist das Problem....
     
  11. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    13. Juni 2011
    Beiträge:
    695
    Danke erhalten:
    139
    Danke vergeben:
    138
    ....und was heisst das jetzt? - nehme an großere Probleme :(

    Eigentlich Wahnsinn, dass das der Gambio nicht von alleine kann - bei 1-2 Bestellungen am Tag gehen ja, aber wenns mehr wird ist deine Mehrfachdruckfunktion ein absolutes MUSSSSS (für mich unverständlich, dass das beim Voting für 2.2 nur an 43ter Stelle kommt)
     
  12. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Ja.....

    Letzter Versuch, der aber nicht mehr updatesicher ist.....

    In "PdfCreator/tcpdf.php"

    PHP:
    protected $k;
    ersetzen mit

    PHP:
    public $k;
     
  13. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    13. Juni 2011
    Beiträge:
    695
    Danke erhalten:
    139
    Danke vergeben:
    138
    Leider - leider:
    <b>Fatal error</b>: Cannot access protected property FPDI::$PDFVersion in <b>/home/www/web5/html/shop/admin/PDFMerger/fpdi/fpdi_pdf_parser.php</b> on line <b>381</b><br />
     
  14. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Gut, dann die gleiche Prozedur wie für "$k" noch für "$PDFVersion"...

    Die Zeile 381 hatten wir doch herauskopiert?!
     
  15. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    13. Juni 2011
    Beiträge:
    695
    Danke erhalten:
    139
    Danke vergeben:
    138
    bzgl. Zeile 381: kam deshalb, weil ich die fpdi_pdf_parser.php wieder mit der ORG-Datei überschrieben habe.

    Jetz hab ich obiges nochmal probiert: <b>Fatal error</b>: Call to undefined method FPDF_TPL::pdf_write_value() in <b>/home/www/web5/html/shop/admin/PDFMerger/fpdi/fpdi.php</b> on line <b>361</b><br />
     
  16. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    13. Juni 2011
    Beiträge:
    695
    Danke erhalten:
    139
    Danke vergeben:
    138
    $k und $PDFVersion jetzt auf public:

    Call to undefined method FPDF_TPL::pdf_write_value() in <b>/home/www/web5/html/shop/admin/PDFMerger/fpdi/fpdi.php</b> on line <b>361</b><br />
     
  17. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    13. Juni 2011
    Beiträge:
    695
    Danke erhalten:
    139
    Danke vergeben:
    138
    Noch eine Kleinigkeit, bei näherer Betrachtung der erzeugten Rechnungen und Lieferscheine, ist mir aufgefallen:
    Die Adresse wird abgeschnitten und bei der Versandart steht kein Wert
     

    Anhänge:

  18. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Nutzt alles nix, ich habe das jetzt mal ordentlich in meiner Entwicklungsumgebung debugged, und jetzt funktioniert das wieder.....

    Ich binde für den Druck jetzt die alte "FPDF"-Klasse ein.

    Das Problem war, dass das PDFMerge-Modul bei Vorhandensein von "TCPDF" (was Gambio jetzt verwendet) eine Bridgeklasse "FPDF" daraus erstellt, was dann zu diversen Problemen führte.

    Das habe ich ihm jetzt abgewöhnt...

    Im anhängenden Archiv befindet sich die aktualisierte Version für Gambio 2.1.x.

    Bevor man das kopiert sollte man die Datei "admin\includes\multi_invoice_configure.php" sichern, und nach dem Kopieren des Packages wieder herstellen.

    Wie immer gilt:

    • Anwendung auf das ausschließliche Risiko des Shopbetreibers.
    • Es gibt keinerlei Gewährleistung.
    • Erst in einem Testshop testen.
    • Cache leeren.
     

    Anhänge:

  19. andreasgehnen

    andreasgehnen Erfahrener Benutzer

    Registriert seit:
    17. Dezember 2013
    Beiträge:
    239
    Danke erhalten:
    22
    Danke vergeben:
    65
    @Avenger,

    funktioniert die Version 2.1.x.zip auch mit der 2.0.15.4?


    Gruß Andreas
     
  20. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    13. Juni 2011
    Beiträge:
    695
    Danke erhalten:
    139
    Danke vergeben:
    138
    JEAHH, und es druckt wieder - Super - großes DANKE an Avenger


    ...wenn da nicht noch ein "aber" wäre:


    Die Versandadresse wird, wie oben beschrieben, leider immer noch abgeschnitten, und die Versandart scheint nicht auf.


    Beim Ausführen werden die Rechnung und Lieferschein gedruckt. Leider kommt unmittelbar nach den Klick auf den roten "Ausführungs-Button" die Meldung: Sie müssen eine Bestellung markieren
    und zwei kleine Kosmetiksachen sind mir auch noch aufgefallen - siehe Anhang
     

    Anhänge: