brush51 Posted July 2, 2013 Share Posted July 2, 2013 Hallo Leute, ich möchte BillSafe in mein Shop integrieren. Billsafe wünscht einen Hinweis auf der Rechnung, wenn mit BillSafe gezahlt wurde. Meine Frage ist: - Kann ich abfragen welche Zahlart verwendet wurde und dementsprechend einen Hinweis auf der Rechnung platzieren(Hinweis soll enthalten, dass Kunde den Betrag X selber zu überweisen hat) ? - Wenn ja, wie? Und wo? Danke, brush51 Link to comment Share on other sites More sharing options...
eleazar Posted July 2, 2013 Share Posted July 2, 2013 Installier einfach das kostenlose Modul pdfinvoiceplus. Damit kannst du einen beliebigen Text unter die Rechung platzieren. http://www.prestascope.com/en/free-prestashop-modules/24-pdf-invoice-plus.html Link to comment Share on other sites More sharing options...
guest* Posted July 2, 2013 Share Posted July 2, 2013 @ brush51 - Welche PRestashopversion ? Unter Prestashop 1.5. benötigst du kein extra Modul dazu. Ergänze deinen Text enfach unter: Bestellungen -> Rechnungen -> Freitext Link to comment Share on other sites More sharing options...
guest* Posted July 2, 2013 Share Posted July 2, 2013 Den Freitext gibt es auch für PS 1.4. an der gleichen Stelle. Einen Text pro Zahloption kann man leider nicht einfügen, außer das entsprechende Zahlmodul sieht so etwas vor und man kann es dort einpflegen. Link to comment Share on other sites More sharing options...
eleazar Posted July 2, 2013 Share Posted July 2, 2013 Ja, aber da musst du ihn pro Rechnung immer wieder neu erfassen. Das Modul ist dagegen für dauerhafte Texte. Link to comment Share on other sites More sharing options...
Luca01 Posted July 2, 2013 Share Posted July 2, 2013 (edited) Hallo brush51, je nachdem wie gut Du Dich in Smarty auskennst, kannst Du auch eine if-Bedinung in das invoice.tpl an die entsprechende Stelle einbauen. Hier mal beispielhaft für die Zahlart "Kauf auf Rechnung" {if $payment->payment_method == 'Kauf auf Rechnung'} <tr style="width: 100%"> <td style="width: 100%; text-align: justify;">{l s='Bitte überweisen Sie den Rechnungsbetrag spätestens bis zum' pdf='true'} {date("d.m.Y",((strtotime($order_invoice->date_add))+(86400*14)))} {l s='auf unser unten angegebenes Konto.' pdf='true'}</td> </tr> <tr style="width: 100%"> <td style="width: 100%; text-align: justify;"><br />{l s='Die Rechnung wird zum Rechnungsdatum' pdf='true'} ({$date|escape:'htmlall':'UTF-8'}) {l s='fällig. Der Verzug tritt automatisch 30 Tage nach Fälligkeit ein. Die Ware bleibt bis zur vollständigen Bezahlung sämtlicher Forderungen aus dieser Geschäftsverbindung unser Eigentum.' pdf='true'}</td> </tr> {/if} Viele Grüße Edited July 2, 2013 by Luca01 (see edit history) Link to comment Share on other sites More sharing options...
guest* Posted July 2, 2013 Share Posted July 2, 2013 Ja, aber da musst du ihn pro Rechnung immer wieder neu erfassen. Das Modul ist dagegen für dauerhafte Texte. Nö, der Text wird einmal erfasst und ist dann in jeder Rechnung fix eingebaut. Eigentlich nicht das was brush51 umsetzen möchte. Luca01 kommt der Lösung näher. Einzubauen, aber nur wenn man ein eigenes Theme verwendet, denn bei einm Upgrade wäre der Code wieder überschrieben. Link to comment Share on other sites More sharing options...
eleazar Posted July 2, 2013 Share Posted July 2, 2013 Hallo Luca01, dein Vorschlag ist bestimmt gut gemeint, aber das Problem, dass der Freitext immer wieder neu erfasst werden muss, sollte wirklich nicht mit einer Templateänderung bewirkt werden,wenn man das mit einem simplen Modul erreichen kann. Direkte Eingaben in den Template-Textfeldern würden zudem bewirken, dass du auf diese Weise neue Pseudo-Übersetzungsitems kreierst, die bei den Übersetzungen auftauchen. Das unterläuft nicht nur die Mehrsprachigkeit, sondern führt zu Verwirrung, weil diese zusätzlichen Items als Übersetzungsvariablen angeboten werden, aber gar nicht mehr übersetzt werden müssen. Davon kann ich nur dringend abraten. Gruß eleazar Link to comment Share on other sites More sharing options...
brush51 Posted July 3, 2013 Author Share Posted July 3, 2013 Danke für eure Zahlreichen Antworten. Ich bin am Überlegen, welches wohl die langfristigste und auch für den Kunden überzeugendste Methode wäre. In der invoice.tpl die Abfrage zu machen und entsprechend einen Text zu platzieren hört sich verlockend and aber langfristig ist dies keine effektive Lösung, da durch "Theme wechsel" solche Sachen dann mitgezogen werden müssen. Ebenfalls sollte das dann noch sorgfältig dokumentiert werden, damit ich nach einer Zeit weiss, was ich da überhaupt angestellt hatte. Ich nutze derzeit Prestashop in Version 1.4.9.0 Danke nochmals, ich werde jeden angesprochenen Lösungsweg durchdenken und testen. Ich berichte. brush51 Link to comment Share on other sites More sharing options...
brush51 Posted July 3, 2013 Author Share Posted July 3, 2013 Hallo brush51, je nachdem wie gut Du Dich in Smarty auskennst, kannst Du auch eine if-Bedinung in das invoice.tpl an die entsprechende Stelle einbauen. Hier mal beispielhaft für die Zahlart "Kauf auf Rechnung" {if $payment->payment_method == 'Kauf auf Rechnung'} <tr style="width: 100%"> <td style="width: 100%; text-align: justify;">{l s='Bitte überweisen Sie den Rechnungsbetrag spätestens bis zum' pdf='true'} {date("d.m.Y",((strtotime($order_invoice->date_add))+(86400*14)))} {l s='auf unser unten angegebenes Konto.' pdf='true'}</td> </tr> <tr style="width: 100%"> <td style="width: 100%; text-align: justify;"><br />{l s='Die Rechnung wird zum Rechnungsdatum' pdf='true'} ({$date|escape:'htmlall':'UTF-8'}) {l s='fällig. Der Verzug tritt automatisch 30 Tage nach Fälligkeit ein. Die Ware bleibt bis zur vollständigen Bezahlung sämtlicher Forderungen aus dieser Geschäftsverbindung unser Eigentum.' pdf='true'}</td> </tr> {/if} Viele Grüße invoice.tpl existiert wahrscheinlich erst ab 1.5+ oder? Ich habe noch 1.4.9 und finde diese Datei nicht. Der freie Text stört, da er bei jeder Zahlart erscheint. Leider. Wie gehe ich bei der Version 1.4.9 an die Sache heran? muss ich die classes/PDF.php bearbeiten? Link to comment Share on other sites More sharing options...
eleazar Posted July 3, 2013 Share Posted July 3, 2013 Im Prinzip ja. Da wirst du allerdings nicht weit kommen. Denn du hast hier nur den Freetext in de Funktion footer() (ab Zeile 291) zur Verfügung. Aber vielleicht hat ja Luca01 eine Idee, das folgende entsprechen umzuschreiben: global $cookie; if ($freeText = Configuration::get('PS_INVOICE_FREE_TEXT', (int)$cookie->id_lang)) $totalLineDetailFooter += count(explode("\n", $freeText)); // A point equals 1/72 of inch, that is to say about 0.35 mm (an inch being 2.54 cm). // This is a very common unit in typography; font sizes are expressed in that unit. // 8 point = 2.8mm and the cell height = 4mm $this->SetY(-(21.0 + (4 * $totalLineDetailFooter)) - ($y_delta * 7.0)); $this->SetFont(self::fontname(), '', 7); $this->Cell(190, 5, Tools::iconv('utf-8', self::encoding(), self::l('P. ')).$this->GroupPageNo().' / '.$this->PageGroupAlias(), 'T', 1, 'R'); if ($freeText) { $this->Cell(0, 5, utf8_decode($freeText), 0, 0, 'C', 0); $this->Ln(4); } Ich würde es lieber lassen ... Link to comment Share on other sites More sharing options...
Lockesoft Posted July 3, 2013 Share Posted July 3, 2013 invoice.tpl existiert wahrscheinlich erst ab 1.5+ oder? Ich habe noch 1.4.9 und finde diese Datei nicht. In aller Kürze: Ja In 1.4 wird die Rechnung in /classes/PDF.php zusammengesetzt. Link to comment Share on other sites More sharing options...
eleazar Posted July 3, 2013 Share Posted July 3, 2013 Ja, deswegen hab ich auch aus dem Code von 1.4.9 zitiert, Klaus. Link to comment Share on other sites More sharing options...
Luca01 Posted July 5, 2013 Share Posted July 5, 2013 Hallo brush51, ups, habe mich aus dem Thread geklinkt. Klar lief das auch bei uns in der 1.4 Version der Code ist nur etwas komplexer und sah so aus: $pdf->Cell(20, 5, ' ', 1, 0, 'L'); $pdf->Ln(8); $methode='Kauf gegen Rechnung'; if ($order->payment == $methode) {$pdf->SetFont(self::fontname(), '', 12); $pdf->SetX(20); /*Tools::displayDate(self::$order->invoice_date, self::$order->id_lang);*/ $mahndate=strtotime($order->invoice_date)+(86400*14); $mahndate=date("d.m.Y", $mahndate); $pdf->MultiCell(170, 5,'Bitte überweisen Sie den Rechnungsbetrag spätestens bis zum '.($mahndate).' auf unser unten angegebenes Konto.', 0, 'J'); $pdf->Ln(8); $pdf->SetX(20); $mahndate=strtotime($order->invoice_date); $mahndate=date("d.m.Y", $mahndate); $pdf->MultiCell(170, 5,'Die Rechnung wird zum Rechnungsdatum ('.($mahndate).') fällig. Der Verzug tritt automatisch 30 Tage nach Fälligkeit ein. Die Ware bleibt bis zur vollständigen Bezahlung sämtlicher Forderungen aus dieser Geschäftsverbindung unser Eigentum.', 0, 'J'); } Ich hoffe es hilft Dir weiter. Man braucht Grundwissen in verschiedenen Codestrukturen um das wirrwarr zu verstehen. Viele Grüße Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now