Hallo
@Elsterhund,
der Code macht schon, was er soll und was hier im Thread gefragt war: Er gibt das Datum der letzten Mahnung zurück. - Du erzeugst aber eine neue Mahnung für Deinen Inkasso-Lauf und damit hast Du ein neues Datum für eine letzte Mahnung erzeugt, nämlich das Heutige. Was Du also willst, ist überhaupt nicht das Datum der *letzten* Mahnung, sondern das der *vorherigen* Mahnung. Die deutsche Sprache ist da semantisch nicht so klar wie die englische, aber den Unterschied gibt es halt doch.
Da ja auch nicht klar ist, ob in Deinem Fall das Datum der letzten, also der aktuellen Mahnung immer das heutige Datum ist, wäre eine SQL Abfrage, die die vorherige Mahnung über das Datum abfragt, deutlich aufwändiger. Mein Vorschlag wäre, die Abfrage von oben zu vereinfachen, sie aber um die Abfrage der Mahnstufe zu erweitern, denn die ist eindeutig. Leider muß man die in der Vorlage von Hand setzen, da JTL unbegreiflicherweise die zugehörige Variable gekilled hat und nur noch eine Langform mit Text an die Vorlage übergibt.
Das Ganze sähe dann für Deinen Inkasso-Lauf, der ja *nach* Mahnstufe 3 kommt, wie folgt aus ...
Code:
LocDate$(Date(
JTL_DirectQuery("SELECT dMahndatum FROM tZahlungsErinnerung
WHERE kRechnung="+ToString$(Vorgang.Rechnung.InterneRechnungsnummer)+" AND kMahnStufe=3")
))
Was man hiermit übrigens nicht verhindern kann ist, dass immer dann, wenn KEIN Datumswert zur angeforderten Mahnstufe existiert, also die angeforderte Mahnstufe noch nicht erreicht ist, der SQL Code den Wert
NULL zurückgibt und "irgendwer", also entweder die
Date() oder die
LocDate$() Funktion in der Vorlage daraus das aktuelle Datum (!) macht. Das hast Du aber natürlich selbst in der Hand, denn der Mahnlauf sollte ja auch nur bei einer Rechnung getriggert werden, die auch tatsächlich schon Mahnstufe 3 hat.
Gruß,
Ingmar