Jump to content
  • 0

Text via IF in Rechnung einfügen. Z.B.: "Zahlung auf Rechnung" Zahlungsziel


BoKr

Question

Hallo

 

ich möchte einen beliebigen Text in unsere Rechnungen einfügen, wenn eine bestimmte Zahlart gewählt wurde.

 

Beim Kauf auf Rechnung z.B. soll ein Text unten auf der Rechnung aber über der Fußzeile eingefügt werden. Vor der neuen PS Version PS1.6.1.x war dieses mit folgendem Codeschnippsel möglich:

			<!--  STAMMKUNDEN ITO -->

			{if $payment->payment_method == 'Zahlung auf Rechnung'}
			<p></p>
			<h4> {l s='Überweisen Sie bitte den Rechnungsbetrag' pdf='true'}  {displayPrice currency=$order->id_currency price=$order_invoice->total_paid_tax_incl}{l s=' nach Erhalt der Ware bis zum ' pdf='true'}</h4>
			<h4>{"+14 days"|strtotime|date_format:"d.m.Y"}{l s=' auf folgendes Konto:' pdf='true'}</h4>
			<div style="font-size: 8pt">
				 <p> {l s='Kontoname: B.K | Kontonummer 211230900 | Bankleitzahl 1231133  | Kreditinstitut: Comdirect' pdf='true'}  </p>
				 <p> {l s='IBAN 7 SWIFT: DE12131200 |  BIC: 12314' pdf='true'}   </p>
				 <p style="width: 95%;font-weight:bold; text-align: right"> {l s=' Vielen Dank!' pdf='true'}  </p>
			</div>
			{else}
			<!--   {l s=' Vielen Dank!' pdf='true'} -->
			{/if}
			
	<!--  /STAMMKUNDEN ITO --> 	

Füge ich diesen Text in die invoice.tpl am Ende unter die Tabelle oder mit in die Tabelle ein, so passiert nichts.

Ich habe in der DB unter ps_orders den Namen der Zeile "payment" wie auch "module" abgelichen.

{if $payment->payment_method == 'Zahlung auf Rechnung'} sollte in meinem
Fall richtig sein.

 

Vermutlich ist die Variable nicht mehr gefüllt bei der neuen Rechnungsvorlage?

Wie macht man es?

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Da liegt bei dir ein Denkfehler vor, Boris. Du beziehst dich in der Abfrage auf die Datenbanktabelle, in der die verfügbaren Zahlungsarten erfasst sind. Die ist an dieser Stelle aber uninteressant (ganz davon abgesehen, dass du in der Rechnung so nicht darauf zugreifen kannst), denn es geht ja um die in der Bestellung gewählte Zahlungsart!

Ein entsprechender Rechnungs-Zusatz muss also mit folgender Abfrage starten:

{if $order->payment == "Kauf auf Rechnung" ....}
Vorausgesetzt natürlich, die Zahlungsart ist genauso im Feld payment der Tabelle ps_order erfasst.

Wie eine funktionierende Abfrage bei Kauf auf Rechnung aussehen kann, findest du in der Rechnung für 1.6, die ich in meinem Topic zum Ändern des Rechnungsformulars zum Download bereit gestellt habe:

https://www.prestashop.com/forums/topic/244719-tutorial-rechnungsformular-ändern-für-version-15x-und-16x/?p=2198983

So z.B. geht es:

<!-- / Additional informations for payment by invoice -->
<table style="width: 100%; font-size: 10pt;">
{if $order->payment == 'Kauf auf Rechnung'}	
{l s='Thank you for your order! Please transfer the total amount until' pdf='true'} {"+14 days"|strtotime|date_format:"d.m.Y"} {l s='to the following account 000000, bank (BLZ: 000 000 00). IBAN: DE00 0000 0000 0000 0000 00 und BIC: XXXXXXXXXXX.' pdf='true'}
		{if isset($free_text)}
			{$free_text|escape:'htmlall':'UTF-8'}<br />
	{/if}
{else}
	{l s='Thank you for your order!' pdf='true'}
{/if}
</table>
Ich habe die entsprechenden Informationen der Einfachheit halber zu Übersetzungs-Variablen gemacht. :)
Link to comment
Share on other sites

  • 0

Super!

 

Vielen Dank für die gezuckerte Erklärung. Ich werde es gleich umsetzen.

 

PS:

Bin zwar ein wenig erstaunt, warum die Abfrage bei uns 2 Jahre so funktionierte bis zur PS 1.6.0.14,

aber spielt nun keine Rolle mehr. Vielleicht magst Du mir erklären, wie diese Abfragen funktionieren und welche Variablen abrufbar sind.

In der DB habe ich folgende Tabellen:

  • ps_orders
  • ps_order_payment

 

Unter ps_orders finde ich die Spalte payment und unter ps_order_payment payment_method.

Woher weiß ich, dass $order auf die Tabelle ps_orders zugreift?

 

Du schreibst, "(ganz davon abgesehen, dass du in der Rechnung so nicht darauf zugreifen kannst)".... Wo finde ich denn so etwas heraus?

Muss ich dazu in /classes/order/Order.php unter

public static $definition = array(
        'table' => 'orders',
        'primary' => 'id_order',
        'fields' => array(
....
 'payment' => array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'required' => true),
...
       ),
    );

nachsehen? 

Edited by Boris_Shoppist (see edit history)
Link to comment
Share on other sites

  • 0

Bin zwar ein wenig erstaunt, warum die Abfrage bei uns 2 Jahre so funktionierte bis zur PS 1.6.0.14

 

Das müssen aber Zufallstreffer gewesen sein, denn das hatten wir 2013 doch schon mal geklärt:

https://www.prestashop.com/forums/topic/293237-solved-payment-method-via-if-bedingung-einfügen-payment/#entry1478926

Das funktionierte so wie von dir beschrieben auch schon mit 1.5 nicht. Aber da hast du es auch schon nicht glauben wollen. ;)

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...