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

    MaBo

    • Frisch an Board
    • Beiträge: 70
    • Geschlecht:
    Hallo liebe Gemeinde,

    ich habe das Thema "Hinweis auf innergemeinschaftliche Lieferung auf Rechnungen" für PDFBill als Amateur wie folgt gelöst:

    [EDIT h-h-h 22.11.2015]
    Revidierte Version: Klick mich!

    ACHUNTG: Der nachfolgende Code aus diesem Beitrag sollte laut Aussage des Autors nicht mehr verwendet werden!
    [/EDIT h-h-h 22.11.2015]

    1.) Suche in der xtc_pdf_bill.inc.php:

    Code: PHP  [Auswählen]
    // fetch order data
            while ($oder_total_values = xtc_db_fetch_array($resOrderTotal)) {
                $order_data[] = array (
                    'title' => xtc_utf8_decode($oder_total_values['title']),
                    'class'=> $oder_total_values['class'],
                    'value'=> $oder_total_values['value'],
                    'text' => $oder_total_values['text']
                );
            }
        }

    Füge danach ein:

    Code: PHP  [Auswählen]
    if ($order->customer['order_vat_id']) {
          require_once DIR_FS_INC . 'xtc_get_iso_code_2_is_eu.inc.php';
          $query_store_iso_code_2 = xtc_db_query("
                SELECT countries_iso_code_2
                FROM "
    . TABLE_COUNTRIES . "
                WHERE countries_id = "
    .STORE_COUNTRY. "
         "
    );
          $store_iso_code_2 = xtc_db_fetch_array($query_store_iso_code_2);
          $smarty->assign('order_vat_id',$order->customer['order_vat_id']);
          if (xtc_get_iso_code_2_is_eu($order->delivery['country_iso_2']) &&
              xtc_get_iso_code_2_is_eu($store_iso_code_2['countries_iso_code_2']) &&
              strpos($order->customer['order_vat_id'], $store_iso_code_2['countries_iso_code_2']) === false) {
            $smarty->assign('vat_free', true);
          }
        }

    (Basiert auf dem Eintrag von web0null MODUL: Hinweis auf innergemeinschaftliche Lieferung auf Rechnungen - nur "vat_id" wurde in "order_vat_id" geändert)

    2.) Suche:

    Code: PHP  [Auswählen]
    // Generate PDF
        $pdf->Betrag($order_data);

    Füge danach ein:

    Code: PHP  [Auswählen]
    $pdf->Vatfree($order_vat_id);

    3.) Suche in der PdfRechnung.php:

    Code: PHP  [Auswählen]
    function Kommentar($text)
            {
                    if($text == '') {
                return;
            }
                   
                    $this->Ln(10);
                   
                    $this->SetFont($this->fontfamily, 'B', 8);
                    $this->Cell($this->preis_len, 10, TEXT_PDF_KOMMENTAR, 0, 1);
                   
                    $this->SetFont($this->fontfamily, '', 8);
                    $this->MultiCell(0, 4, $text);
            }

    Füge danach ein:

    Code: PHP  [Auswählen]
    function Vatfree($order_vat_id="")
            {
                if ($order_vat_id !="") {
                   
                    $this->Ln(10);
            $this->SetFont($this->fontfamily, '', 8);
            $endeText = xtc_utf8_decode(vat_free);
            $this->MultiCell(0, 6, $endeText);
                    }
        }

    4.) Füge ein in der pdfbill.php

    Code: PHP  [Auswählen]
    define('vat_free', 'HINWEIS: Die Waren sind nach § 4 Nr. 1 b UStG steuerfrei, da es sich um eine innergemeinschaftliche Lieferung/Intra-Community delivery handelt.');

    5.) Die xtc_get_iso_code_2_is_eu.inc.php von web0null nach \root\inc kopieren.

    Fertig.
    Der Satz wird sowohl auf der Rechnung, als auch auf dem Lieferschein (leider) angezeigt. Das ist mein erster "Lösungsvorschlag", daher bitte ich um Nachsicht wenn er nicht perfekt ist.
    Viel Spass beim Testen.

    [EDIT Tomcraft 08.06.2015: Bemerkung in Beitrag 1 verlinkt.]
    [EDIT h-h-h 22.11.2015: Hinweis und Link zu neuer Version hinzugefügt.]

    LadyCat

    • Neu im Forum
    • Beiträge: 20
    • Geschlecht:
    Hallo

    Wollte mich Bedanken für das tolle Modul. :thumbs: Klapt super und bin zufrieden da mit.  :thx:

    Vielen Dank.
    Grüße aus dem Schwarzwald

    seb2k

    • Neu im Forum
    • Beiträge: 11
    • Geschlecht:
    Hi,

    ist es möglich auf der Rechnung die MwSt.-Spalte zwischen Artikel-Nr. und Einzelpreis zu quetschen? Ich nehme mal an, dies muss in der PdfRechnung.php definiert werden richtig?

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Leider fehlt mir der richtige Suchbegriff für die Suche, deswegen kann ich leider nicht sagen ob das Thema bereits behandelt wurde.

    Grüße
    Sebastian

    oneQ

    • Viel Schreiber
    • Beiträge: 712
    Ich vermute mal, dass dieses Modul das ist, welches auch im Demo der 2.0 unter System-Module zu finden ist.

    Dort stehe bei den Einstellungen u.a.
    Zitat
    z.B. "100{n}-{d}-{m}-{y}" ergibt "10099-28-02-2007"

    Die naechste ReNr. in diesem Fall ist dann z.B. 100100-28-02-2007

    Dort habe ich aber keine fortlaufende Nummer mehr, weil diese ReNr. jetzt um 90001 statt um 1 hoeher ist, als die letzte.

    Ich finde daher das Beispiel etwas ungluecklich gewaehlt und vielleicht sollte man dann auch darauf hinweisen, dass {n} vorher entsprechend "hoch" als Start-ReNr. definiert werden sollte. Als default z.B. 10001 statt 1.

    Nur so als Vorschlag.

    rob001

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

    der Rechnungsversand klappt wunderbar. Die PDF-Datein, die versendet wird, hat den Namen  SomeBill2.pdf. Kann man irgendwie einstellen, dass diese Datei rechnung.pdf heißen soll?

    Vielen Dank!

    rob001

    • Neu im Forum
    • Beiträge: 11
    Oops sorry, habe jetzt erst gesehen, dass man das im Admin einstellen kann. Thanx!!

    xetic

    • Neu im Forum
    • Beiträge: 15
    Hi,

    erstmal super Modul. Sowas hab ich schon länger gesucht :) Funktioniert super!

    Nur meine Frage ist, kriegen wir das Lieferdatum irgendwie auf die Rechnung?
    Das wäre super

    2slow4u

    • Frisch an Board
    • Beiträge: 88
    hallo

    danke für das super tool!

    allerdings war ich mit der rechnung bei meiner steuerberaterin und es gibt einige punkte die zubearbeiten sind und ich nicht so recht wie ich das angehen soll.

    • der steuersatz muss hinter jedem artikel eingefügt werden
    • einzel und gesamtpreis sind netto anzugeben
    • versandkosten müssen besteuert werden und zwar im verhältnis zu 7% und 19%

    syncode

    • Neu im Forum
    • Beiträge: 23
    • Geschlecht:
    Hallo allerseits,

    ist es eigentlich möglich die generierten Rechnungsnummern die bei mir nicht die gleichen sind wie die Bestellnnummern auch im Backend zu durchsuchen ??
    Es gibt ja ein MOdul von noRidddle das es möglich macht: http://www.modified-shop.org/forum/index.php?topic=19244.msg180228#msg180228
    Allerdings hat es doch einen anderen Ansatz und funktioniert nicht mit dem PDFBill-Next Modul!?
    Habe es nach der Anleitung probiert und folgendes in die admin/in die order.php hinzugefügt :
    Code: PHP  [Auswählen]
    if ($action == 'searchi' && $_GET['iID']) {
      $iID = xtc_db_prepare_input($_GET['iID']);
      $order_inv_query = "SELECT bill_nr FROM " . TABLE_ORDERS . " WHERE orders_id = '" . $_GET['iID'] . "';";
      $order_inv = xtc_db_query($order_inv_query);
      $invoice_exists = false;
      if (xtc_db_num_rows($order_inv) == 1) {
        $invoice_exists = true;
      $orderinv = xtc_db_fetch_array($order_inv);
         $oID = $orderinv['orders_id'];
         $_GET['oID'] = $oID;
    xtc_redirect(xtc_href_link(FILENAME_ORDERS, 'oID='.$_GET['oID'].'&action=edit'));
      }
    }

    Dann in die admin/includes/admin_search_bar.php folgendes ergänzt:
    Code: PHP  [Auswählen]
    $page_filename = basename($_SERVER['SCRIPT_FILENAME']);
      $search_cus = '';
      $search_email = '';
      $search_ord = '';
      $search_bill_nr = ''; //added invoice_id
      $search_cat = '';
      // BOC for billing-no., noRiddle
      $order_inv_query = "SELECT bill_nr FROM " . TABLE_ORDERS . " WHERE orders_id = '" . $_GET['oID'] . "'";
      $order_inv = xtc_db_query($order_inv_query);
      $orderinv = xtc_db_fetch_array($order_inv);
      // EOC for billing-no., noRiddle
      if (strpos($page_filename, 'customers.php') !== false) {
        $search_cus = htmlentities(isset($_GET['search']) ? $_GET['search'] : ''); //DokuMan - 2010-09-08 - set undefined index
        $search_email = htmlentities(isset($_GET['search_email']) ? $_GET['search_email'] : ''); //DokuMan - 2010-09-08 - set undefined index
      }
      if (strpos($page, 'orders.php') !== false) {
        $search_ord = htmlentities(isset($_GET['oID']) ? $_GET['oID'] : ''); //DokuMan - 2010-09-08 - set undefined index
    // BOC for billing-no., noRiddle
        $search_bill_nr = htmlentities(isset($_GET['oID']) ? $orderinv['bill_nr'] : ''); //added invoice_id, noRiddle
    // EOC for billing-no., noRiddle
      }  
     
    Und noch den Part für das Suchfeld:
    Code: PHP  [Auswählen]
    <li>
          <form action="<?php echo xtc_href_link('orders.php'); ?>" method="get">
            <?php echo ASB_QUICK_SEARCH_INVOICE_ID; ?>
            <input name="iID" type="text" value="<?php echo $search_bill_nr;?>" size="8" />
            <input type="hidden" name="action" value="searchi" />

          </form>
        </li>
    Wäre super wenn ihr mir da weiter helfen könntet!!

    MfG

    2slow4u

    • Frisch an Board
    • Beiträge: 88
    eine frage noch!

    ich sehe bei vielen hier das sie im admin bereich bei den rechnungen die MWST stehen haben. wie habt ihr das gemacht? erscheint diese dann auch auf der rechnung?

    lg

    syncode

    • Neu im Forum
    • Beiträge: 23
    • Geschlecht:
    Hi,
    klar erscheint die auf der Rechnung - wäre nicht gut wenn die fehlen würde!!

    VG

    2slow4u

    • Frisch an Board
    • Beiträge: 88
    ich meinte pro artikel sry.

    ich bin im moment echt ein wenig überfordert .. das modul ist genau das, was ich suche doch leider erfüllt es nicht die gesetzlichen bestimmungen und das macht es für mich wenig interessant =( muss ich wohl doch eine wawi benutzen

    Martin109

    • Fördermitglied
    • Beiträge: 244
    • Geschlecht:
    Hallo,

    habe das Modul in Version 1.06 eingebaut.
    Funktioniert so weit auch bestens. Danke

    Aber ist es irgendwo möglich das Rechnungsnummern Format zu ändern?
    in zbsp. RE-201405/0815  -> RE-JAHR,MONAT/RECHNUNGSNr.

    das währe echt ne super Sache.

    Gruß Martin

    MaBo

    • Frisch an Board
    • Beiträge: 70
    • Geschlecht:
    Hallo allerseits,

    ich hab mal ein bisschen wegen der Anzeige der MwSt auf der Rechnung gebastelt.
    Folgenden Vorschlag kann ich anbieten:

    includes/classes/FPDF/PdfRechnung.php
    suche:

    Code: PHP  [Auswählen]
    var $einzelpreis_len = 28;

    füge darunter ein:

    Code: PHP  [Auswählen]
    var $tax_len = 15;   ###(die Zahlen sind Beispiele, an eigenes Design anpassen)###

    suche:

    Code: PHP  [Auswählen]
    $this->Cell($this->einzelpreis_len, 6, ($deliverSlip)? '' : TEXT_PDF_EINZELPREIS, 'B', 0, 'R', 1);

    füge darunter ein:

    Code: PHP  [Auswählen]
    $this->Cell($this->tax_len, 6, ($deliverSlip)? '' : TEXT_PDF_TAX, 'B', 0, 'R', 1);

    suche:

    Code: PHP  [Auswählen]
    function ListeProduktHinzu($menge, $artikel, $zusinfos, $artnr, $zusinfoartnr, $einzelpreis, $preis)

    tausche damit aus:

    Code: PHP  [Auswählen]
    function ListeProduktHinzu($menge, $artikel, $zusinfos, $artnr, $zusinfoartnr, $einzelpreis, $tax, $preis)

    suche:

    Code: PHP  [Auswählen]
    // remove euro entity
            $einzelpreis = str_replace('&euro;', EURO, $einzelpreis);
            $preis =  str_replace('&euro;', EURO, $preis);

    füge darunter ein:

    Code: PHP  [Auswählen]
     
             $tax =  str_replace(TAX_DECIMAL_PLACES, '', $tax);
             $tax =  str_replace('.', '', $tax);

    suche 2x:

    Code: PHP  [Auswählen]
    $this->Cell($this->einzelpreis_len, 4, $einzelpreis, 0, 0, 'R');

    für darunter ein:

    Code: PHP  [Auswählen]
    $this->Cell($this->tax_len, 4, $tax.' % ', 0, 0, 'R');

    suche 2x:

    Code: PHP  [Auswählen]
    $this->Cell($this->einzelpreis_len, 4, '', 0);

    für darunter ein:

    Code: PHP  [Auswählen]
    $this->Cell($this->tax_len, 4, '', 0);

    suche:

    Code: PHP  [Auswählen]
    $this->Cell($this->menge_len + $this->artikel_len + $this->einzelpreis_len+ $this->artikelnr_len + $this->preis_len, 6, '', 'T');

    tausche damit aus:

    Code: PHP  [Auswählen]
    $this->Cell($this->menge_len + $this->artikel_len + $this->einzelpreis_len + $this->tax_len + $this->artikelnr_len + $this->preis_len, 6, '', 'T');

    suche:

    Code: PHP  [Auswählen]
    $this->Cell($this->menge_len + $this->artikel_len + $this->einzelpreis_len + $this->artikelnr_len - $sum_len, 1, "", '', 0);
    $this->Cell($this->preis_len + $sum_len - 1, 1, "", 'T', 1);
    $this->Cell($this->menge_len + $this->artikel_len + $this->einzelpreis_len + $this->artikelnr_len - $sum_len, 1, "", '', 0);
    $this->Cell($this->preis_len + $sum_len - 1, 1, "", 'T', 1);

    tausche damit aus:

    Code: PHP  [Auswählen]
    $this->Cell($this->menge_len + $this->artikel_len + $this->einzelpreis_len + $this->tax_len + $this->artikelnr_len - $sum_len, 1, "", '', 0);
    $this->Cell($this->preis_len + $sum_len - 1, 1, "", 'T', 1);
    $this->Cell($this->menge_len + $this->artikel_len + $this->einzelpreis_len + $this->tax_len + $this->artikelnr_len - $sum_len, 1, "", '', 0);
    $this->Cell($this->preis_len + $sum_len - 1, 1, "", 'T', 1);

    suche:

    Code: PHP  [Auswählen]
    $this->Cell($this->menge_len + $this->artikel_len + $this->einzelpreis_len + $this->artikelnr_len, 6, $info['title'], 0, 0, 'R');

    tausche damit aus:

    Code: PHP  [Auswählen]
    $this->Cell($this->menge_len + $this->artikel_len + $this->einzelpreis_len + $this->tax_len  + $this->artikelnr_len, 6, $info['title'], 0, 0, 'R');

    inc/xtc_pdf_bill.inc.php
    suche:

    Code: PHP  [Auswählen]
    // Product Informations
        $sqlProdInfos = "
        SELECT
            products_id,
            orders_products_id,
            products_model,
            products_name,
            products_price,

    füge darunter ein:

    Code: PHP  [Auswählen]
    products_tax,

    suche:

    Code: PHP  [Auswählen]
    xtc_format_price_order($order_data_values['products_price'], 1, $order->info['currency']),

    füge darunter ein:

    Code: PHP  [Auswählen]
    xtc_display_tax_value($order_data_values['products_tax'], 1, $order->info['tax']),

    lang/german/modules/contribution/pdfbill.php
    suche:

    Code: PHP  [Auswählen]
    define('TEXT_PDF_EINZELPREIS', "Einzelpreis");

    füge danach ein:

    Code: PHP  [Auswählen]
    define('TEXT_PDF_TAX', "MwSt.");

    lang/english/modules/contribution/pdfbill.php
    suche:

    Code: PHP  [Auswählen]
    define('TEXT_PDF_EINZELPREIS', "Singleprice");

    füge danach ein:

    Code: PHP  [Auswählen]
    define('TEXT_PDF_TAX', "VAT");

    fertig.
    Die Lösung ist bestimmt nicht perfekt, aber gern geschehen. :mrgreen:
    Viel Spass beim Testen.

    [EDIT Tomcraft 08.06.2015: Hinweis in Beitrag 1 verlinkt.]

    2slow4u

    • Frisch an Board
    • Beiträge: 88
    MABO

    dickes fettes danke!!!!!! die MWST wird top angezeigt =)

    allerdings bleibt der checkout nun eine weiße seite =(
    15 Antworten
    1135 Aufrufe
    14. April 2020, 09:34:16 von karsta.de
    3 Antworten
    3364 Aufrufe
    09. Oktober 2013, 15:33:09 von kaisa
    4 Antworten
    3670 Aufrufe
    22. Oktober 2012, 15:00:37 von peterpan19
    anything