Seite 1 von 1

Laufzeit von Verträgen auf Rechnungen anzeigen

BeitragVerfasst: Di 1. Mär 2016, 16:29
von Rafael Camino
(z.B. als „Zeitraum vom 01.04.2013 – 01.05.2013“)

Spätestens seit den SQL Versionen muss man in einer Datumsberechnung nicht länger mit Näherungswerten und die damit verbundene Kompromisse des Februars und der Schaltjahre arbeiten.

Mittels der Funktion DATEADD() kann zu DateTime-Werten von Jahren bis zu Nanosekunden addiert, oder mit entsprechendes Vorzeichen (-) subtrahiert werden.
Ein Beispiel für +2 Monate würde so aussehen:
select DATEADD(month, 2, '07.04.2013') --Ergebnis: '07.06.2013'

=====================================================
Fertige Platzhalter für den Positionsteil, einfach in die DVL einfügen:
=====================================================

[D:0:{>WR~Zyklus .Vertrag}<>Monatlich] [T:80:TR:Zeitraum vom:] [V:85:Dat:BIS_Datum:2:0::select(" DATEADD(month, - "+{>WR~Zykluszahl .Vertrag}+" , "+{>WR~Termin .Vertrag}+" ) ")]
[D:0:{>WR~Zyklus .Vertrag}<>Wöchentlich] [T:80:TR:Zeitraum vom:] [V:85:Dat:BIS_Datum:2:0::select(" DATEADD(week, - "+{>WR~Zykluszahl .Vertrag}+" , "+{>WR~Termin .Vertrag}+" ) ")]
[D:0:{>WR~Zyklus .Vertrag}<>Jährlich] [T:80:TR:Zeitraum vom:] [V:85:Dat:BIS_Datum:2:0::select(" DATEADD(year, - "+{>WR~Zykluszahl .Vertrag}+" , "+{>WR~Termin .Vertrag}+" ) ")]
[T:80:TR:bis:] [P:85:Dat:>WR~Termin .Vertrag]

=====================================================

:idea: Hierbei wurde mit Verträgen gearbeitet, die als „Wartungsverträge“ hinterlegt sind. Für andere Verträge müsste man die Verweise der Zykluszahl sowie des Termins anpassen.