So, jetzt müsste das passen:
Da ist aber noch ein ganz anderes Problem in der myorder.php, was damit auch zusammenhängt.
Jedesmal, wenn du im Backend eine Rechnung ausdruckst (also eine PDF generierst) wird das aktuelle Tagesdatum ausgegeben. (In Deutschland so nicht richtig!!!)
Um das zu vermeiden ist in der Version 4.7.3 (oder früher?) das hinzugekommen:
// setting invoice number
if ( !$this->oxorder__oxbillnr->value ) {
$this->oxorder__oxbillnr->setValue($this->getNextBillNum());
$this->oxorder__oxbilldate->setValue( date( 'd.m.Y', mktime( 0, 0, 0, date ( 'm' ), date ( 'd' ) + 7, date( 'Y' ) ) ) );
$this->save();
}
Das bedeutet, beim ersten Aufruf der Rechnung, wird das Rechnunsdatum in der Datenbank gespeichert. (oxorder__oxbilldate)
Der Fehler dabei ist, es wird beim Abspeichern in die Datenbank bereits 7 Tage hinzuaddiert. Damit ist dieser Datenbankeintrag nicht mehr als Rechnungsdatum zu gebrauchen, sondern nur noch als Zahlungsziel und das Rechnungsdatum wird wieder als Tagesdatum ausgegeben.
Mein Vorschlag:
In der Zeile 853: + 7 löschen. (Das ist das Datum des ersten Aufrufes in der Datenbank.)
Damit können wir das PDF Rechnungsdatum aus der Datenbank übernehmen:
Zeile 1062:
$sText = $oShop->oxshops__oxcity->getRawValue().', '.date( 'd.m.Y' );
ersetzen mit:
$sText = $oShop->oxshops__oxcity->getRawValue().', ' .date( 'd.m.Y', strtotime($this->oxorder__oxbilldate->value));
Um dann aber auch das Zahlungsziel wieder in die Zukunft legen zu können, müssen wir noch die Zeile 619:
$text = $this->_oData->translate( 'ORDER_OVERVIEW_PDF_PAYUPTO' ) . $this->_oData->oxorder__oxbilldate->value; //date( 'd.m.Y', mktime( 0, 0, 0, date ( 'm' ), date ( 'd' ) + 7, date( 'Y' ) ) );
mit dem ersetzen:
$text = $this->_oData->translate( 'ORDER_OVERVIEW_PDF_PAYUPTO' ) .date('d.m.Y' ,strtotime('+10 day', strtotime($this->_oData->oxorder__oxbilldate->value)));
(In dem Fall Zahlungsziel = 10 Tage)
Es gibt nur ein Problem: bei denen, die produktiv mit dem shop gearbeitet haben, stimmt nach der Änderung das Rechnungsdatum nicht mehr. (Ist bei den alten Rechnungen immer 7 Tage in der Zukunft)
Gruß Achim