Geburtsdatum auf Rechnung drucken

Thema wurde von daniella, 4. April 2015 erstellt.

  1. daniella

    daniella Aktives Mitglied

    Registriert seit:
    3. September 2014
    Beiträge:
    33
    Danke erhalten:
    1
    Danke vergeben:
    3
    Hi Leute,
    ich möchte Euch bitten mir zu helfen. Bin gerade dabei die pdf-Rechnung so umzubauen, dass das Geburtsdatum des Kunden (welches er zwingend eingeben muss) auf der Rechnung erscheint.
    Habe mich hier ersteinmal an dem vorhandenen Code der VAT-Nr. orientiert (/admin/gm_pdf_order.php)
    Doch leider erscheint kein Datum auf der Rechnung. Nutze ich den selben Code mit "email_address" oder "telephone" statt "dob" erscheint dieser. Ich habe auch schon "date_of-birth" probiert. Klappt leider auch nicht. Kann mir hier jemand weiterhelfen? Muss ich das Geburtsdatum vielleicht erst in die Datei importieren?
    Gruß

     

    Anhänge:

  2. Developer

    Developer Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    2.885
    Danke erhalten:
    617
    Danke vergeben:
    113
    #2 Developer, 6. April 2015
    Zuletzt bearbeitet: 6. April 2015
    So wird das nix. :)

    Hier einmal Dein Code:

    PHP:
     #### vorhanderer Code ####
     // add vat if exists
     
    if(!empty($order->customer['vat_id']))
     {
         
    $customer_adress .= "\n" $order->customer['vat_id'];
     }
     

     

     
    #### mein eingefügter Code ####
     

     // add birthdate if exists
     
    if(!empty($order->customer['dob']))  
     {
      
    $customer_adress .= "\n Geb.: " $order->customer['dob'];
         }
     
    Also, Du versuchst auf eine Variable zuzugreifen, die es gar nicht gibt in der orders, sondern nur in der customers!
    Da viele Wege nach Rom führen, gibt es auch unterschiedliche Möglichkeiten.

    Hier ist eine mögliche Lösung:

    Ca. Zeile 32 fügst Du customers_id dem SQL-Query hinzu.

    Dann von mir aus vor dem order_query:

    PHP:
    $get_cdob_query xtc_db_query("SELECT NULLIF(DATE_FORMAT(customers_dob,'%d.%m.%Y'),'0000-00-00') customers_dob FROM " .TABLE_CUSTOMERS" WHERE customers_id = '" $order->info['customers_id'] . "'");

    $get_cdob_result xtc_db_fetch_array($get_cdob_query);
    Statt $order->customer['dob'] nimmst Du jetzt einfach: $get_cdob_result[customers_dob]
     
  3. daniella

    daniella Aktives Mitglied

    Registriert seit:
    3. September 2014
    Beiträge:
    33
    Danke erhalten:
    1
    Danke vergeben:
    3
    Hi Developer,
    danke für die Antwort. Das es die Variable nicht gibt, dachte ich mir schon. Werde den Code direkt ausprobieren.
    Gruß
     
  4. Developer

    Developer Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    2.885
    Danke erhalten:
    617
    Danke vergeben:
    113
    Sag einfach bescheid, wenn es gefruchtet hat. :)
     
  5. daniella

    daniella Aktives Mitglied

    Registriert seit:
    3. September 2014
    Beiträge:
    33
    Danke erhalten:
    1
    Danke vergeben:
    3
    Guten Abend Developer,
    ich habe den Code jetzt eingefügt und probiere schon den ganzen Nachmittag rum, aber leider funktioniert es nicht so wie gedacht. Es kommt zwar keine Fehlermeldung, aber es erscheint leider auch kein Geb.Datum.:(
    Vielleicht könntest Du mal bitte drüberschauen und mir sagen, wo mein(e) Fehler liegen.
    Gruß
     

    Anhänge:

  6. Developer

    Developer Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    2.885
    Danke erhalten:
    617
    Danke vergeben:
    113
    OK, dann nochmal: :)

    1. ca. Zeile 32 bei

    PHP:
    $order_query_check xtc_db_query("
                                            SELECT
                                                gm_packings_id,
                                                gm_orders_id,
                                                gm_packings_code,
                                                gm_orders_code,
                                                gm_packings_code,
                                                customers_email_address,
                                                customers_firstname,
                                                customers_lastname,
                                                gm_cancel_date,
                                                orders_status
                                            FROM " 
    .
            
    TABLE_ORDERS "
                                            WHERE 
                                                orders_id='" 
    . (int)$_GET['oID'] . "' 
                                        "
    );
    fügst Du zwischen

    PHP:
    gm_packings_code,
    customers_email_address,
    folgende Spalte mit ein:

    PHP:
    customers_id,
    2. nach ca. Zeile 50

    PHP:
    $order_check xtc_db_fetch_array($order_query_check);
    fügst Du danach folgendes ein

    PHP:
    $get_cdob_query xtc_db_query("SELECT NULLIF(DATE_FORMAT(customers_dob,'%d.%m.%Y'),'0000-00-00') customers_dob FROM " .TABLE_CUSTOMERS" WHERE customers_id = '" $order->info['customers_id'] . "'");

    $get_cdob_result xtc_db_fetch_array($get_cdob_query);
    3. jetzt an Deiner gewünschten Stelle:

    PHP:
    // #### BOF: Geburtsdatum - wenn vorhanden #####
        
    if(!empty($get_cdob_result['customers_dob'] )) {
            
    $customer_adress .= "\n Geb.: " $get_cdob_result['customers_dob'] ;
        }    
        
    // ############ EOF: Geburtsdatum ##############
    Nun sollte es aber fruchten! :D
     
  7. daniella

    daniella Aktives Mitglied

    Registriert seit:
    3. September 2014
    Beiträge:
    33
    Danke erhalten:
    1
    Danke vergeben:
    3
    Hallo Developer,
    sorry, dass es bei mir heute länger gedauert hat bis zur Antwort:rolleyes:. Ich habe Deine Anleitung befolgt, leider aber mit dem selben Ergebnis wie gestern. Keine Fehlermeldung, aber auch kein Geb.Datum. Liegt es evtl. an meiner Shopversion. Ich habe die v2.1.0.2. Ich werde mal die ganze php Datei hochladen. Evtl. kannst Du dann den Fehler lokalisieren. Da ich mich nicht sehr gut mit php auskenne, bin ich hier wirklich auf Hilfe angewiesen(wie man sieht). Leider weiß ich nicht wie man die Datei hier im Forum sofort sichtbar macht, daher ist es bei mir immer als Anhang zu sehen.
    Ich bedanke mich schon mal für Deine Mühen,
    Gruß
     

    Anhänge:

  8. Developer

    Developer Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    2.885
    Danke erhalten:
    617
    Danke vergeben:
    113
    #8 Developer, 9. April 2015
    Zuletzt bearbeitet: 9. April 2015
    Moin daniella,

    Zeile 53 in Deiner Datei bitte wie folgt ändern:

    PHP:
    $get_cdob_query xtc_db_query("SELECT NULLIF(DATE_FORMAT(customers_dob,'%d.%m.%Y'),'0000-00-00') customers_dob FROM " .TABLE_CUSTOMERS" WHERE customers_id = '" $order_check['customers_id'] . "'");
    Sag kurz bescheid, ob es läuft. :)

    Ach, noch etwas. Bitte sicherheitshalber den Cache leeren! ;)
     
  9. daniella

    daniella Aktives Mitglied

    Registriert seit:
    3. September 2014
    Beiträge:
    33
    Danke erhalten:
    1
    Danke vergeben:
    3
    Hallo Developer,
    habe den Code ersetzt und auch den Cache gelehrt. Doch leider ist es unverändert geblieben.
    Gruß
     
  10. barbara

    barbara G-WARD 2014-2020

    Registriert seit:
    14. August 2011
    Beiträge:
    35.352
    Danke erhalten:
    11.198
    Danke vergeben:
    1.601
    Nimmst Du zum Testen eine bestehende Rechnung, oder eine Bestellung zu der noch keine Rechnung erstellt wurde?
    Bei einer Bestehenden Rechnung wird es vermutlich nicht mehr eingefügt.
     
  11. daniella

    daniella Aktives Mitglied

    Registriert seit:
    3. September 2014
    Beiträge:
    33
    Danke erhalten:
    1
    Danke vergeben:
    3
    Hallo Barbara,
    danke, dass Du Dich auch mit meinem Problem beschäftigst. Ich teste mit beiden Versionen. Die eMail-Adresse oder Telefonnummer wird auch nachträglich eingefügt. Das Geb.Datum weder bei den neuen Rechnung noch bei den schon mal erstellten.
    Grüße
     
  12. Developer

    Developer Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    2.885
    Danke erhalten:
    617
    Danke vergeben:
    113
    Ich bau das mal morgen im Testshop ein. Du hörst wieder von mir. :)
     
  13. Developer

    Developer Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    2.885
    Danke erhalten:
    617
    Danke vergeben:
    113
    Hallo daniella,

    also, bei mir funktioniert es auf anhieb, was ich Dir an Code geschrieben habe.

    Nur hab ich momentan keine Idee, was bei Dir falsch läuft. Ich frage mal ganz vorsichtig an: Die Datei überträgst Du doch, oder? Also liegt auch wirklich auf FTP!?

    Kannst Du mir Deine finale Datei, die Du per FTP hochspielst nochmal schicken oder posten?

    Gruß
    Sedat
     
  14. daniella

    daniella Aktives Mitglied

    Registriert seit:
    3. September 2014
    Beiträge:
    33
    Danke erhalten:
    1
    Danke vergeben:
    3
    Hi Developer,
    entschuldige bitte, dass ich gestern nicht antworten konnte - musste einen Krankenbesuch machen.
    Ich lade die Datei über den FTP Zugang in den Ordner Admin. Hier wird die vorhandene Datei dann immer überschrieben.
    Also es funktioniert bei mir weder mit einer bestehenden Rechnung noch mit einer, die ich erstmals mit diesem Code erstelle.
    Gruß
     

    Anhänge:

  15. Developer

    Developer Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    2.885
    Danke erhalten:
    617
    Danke vergeben:
    113
    Kein Problem! :)

    Steht bei dem Kunden wirklich auch ein Geburtsdatum drin?

    Bin jetzt noch im Büro. Kannst Dich gerne bei mir melden. :)
     
  16. daniella

    daniella Aktives Mitglied

    Registriert seit:
    3. September 2014
    Beiträge:
    33
    Danke erhalten:
    1
    Danke vergeben:
    3
    Hi Developer,
    Da der Code bei Dir problemlos läuft, werde ich mir auch einen Testshop einrichten und es hier mal testen. Vielleicht habe ich bei meinem Shop (unwissend) irgendwas anders eingestellt. Ich schreibe dann ob es geklappt hat.
    Grüße
     
  17. Developer

    Developer Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    2.885
    Danke erhalten:
    617
    Danke vergeben:
    113
    In Ordnung. Das Angebot steht aber! :)
     
  18. daniella

    daniella Aktives Mitglied

    Registriert seit:
    3. September 2014
    Beiträge:
    33
    Danke erhalten:
    1
    Danke vergeben:
    3
    :eek:Hallo Developer,
    ich habe es nun auch, nach langem Testen, geschafft den Code zu integrieren. An Deinem Code habe ich nichts verändert - der funktionierte von Anfang an. Das Problem saß vor dem Rechner:confused: bin eben erst Anfänger. Hier habe ich noch eine Frage - sind die Einrückungen des Codes zwingend erforderlich oder kann ich den Code auch in der Zeile fortlaufend schreiben?
    ich bedanke mich nochmals für Deine Hilfe, Gruß
     
  19. Torben Wark

    Torben Wark Gambio GmbH

    Registriert seit:
    15. Juli 2014
    Beiträge:
    2.581
    Danke erhalten:
    1.178
    Danke vergeben:
    399
    Wenn der Quellcode valide ist, dann sollte es eigentlich keinen großen Probleme geben, wenn der Code nicht eingerückt ist. Der Übersicht halber würde ich diese trotzdem machen, sonst sucht man sich bei einem Fehler nämlich dumm und dusselig ;)

    LG Torben
     
  20. Developer

    Developer Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    2.885
    Danke erhalten:
    617
    Danke vergeben:
    113
    Gerne, jederzeit wieder! :)

    Ich schließe mich der Empfehlung von Torben an.