Script: Vorschuss stornieren

Inhalt

Dieses Skript löscht einen Vorschuss aus allen Rechnungen.

Es geht davon aus, dass die Rechnungen bereits in der FiBu verbucht sind. Dort werden sie storniert, der Vorschuss wird aus den Rechnungen entfernt und die Rechnungen werden wieder gebucht.

Der Vorschuss wird nicht gelöscht.

Ausführen

Auf dem betreffenden Vorschuss.

Version

VersionBeschreibungScript
ab Version 5.0
Verwendet die Variablen Vertec und argobject. Vorschussstorno.txt
ab Version 5.8
Verwendet anstelle der VB Standardfunktion die Vertec-Funktion msgbox (siehe dazu msgbox/inputbox: Beschreibung der Parameter) Vorschussstorno58.txt

Scripttext

'---Bezeichnung: Vorschuss stornieren
'   Klassen: Vorschuss
'   ObjectScript: Yes
'   ContainerScript: No
'---Dieses Skript loescht einen Vorschuss aus allen Rechnungen raus.
'   Es geht davon aus, dass die Rechnungen bereits in der FiBu sind.
'   Dort werden sie storniert, der Vorschuss wird aus den Rechnungen entfernt
'   und die Rechnungen werden wieder gebucht. Der Vorschuss wird nicht geloescht.
'   Auszufuehren auf dem betreffenden Vorschuss.
'---12.12.2007, mw: erstellt
'---01.11.2013, sr: msgbox durch vertec.msgbox ersetzt.

option explicit

sub main()

Dim vorschuss
Dim Projekt
Dim rechnungenPersistent()
Dim rechnungen
Dim rechnung
Dim links
Dim link
Dim vorschussrechnung
Dim i

' Klassentest
if not vertec.argobject.classname = "Vorschuss" then
vertec.msgbox "Bitte auf einem Vorschuss ausfuehren. Vorgang abgebrochen.",,"Vertec"

else
' Initialisierung
Set vorschuss = vertec.argobject
Set Projekt = vorschuss.member("projekt")
Set rechnungen = vorschuss.member("rechnungen")
Set vorschussrechnung = vorschuss.member("vorschussrechnung")
Redim rechnungenPersistent(rechnungen.count)

' Stornieren und verrechnen rueckgaengig machen
if rechnungen.count <> 0 then
for i = 0 to rechnungen.count-1
Set rechnung = rechnungen.objects(i)
rechnungenPersistent(i) = rechnung.eval("boldID")
rechnung.stornieren(false)
rechnung.makeoffen()
next
end if
if not vorschussrechnung is nothing then
vorschussrechnung.stornieren(false)
vorschussrechnung.makeoffen()
end if

' Vorschuss von Rechnungen entfernen
Set links = vorschuss.eval("rechnungvorschusslink")
if links.count <> 0 then
for i = 0 to links.count-1
Set link = links.objects(i)
link.delete()
next
end if
if not vorschussrechnung is nothing then
vorschuss.member("vorschussrechnung") = nothing
end if

' Rechnungen wieder verrechnen und buchen
if Ubound(rechnungenPersistent) <> 0 then
for i = 0 to Ubound(rechnungenPersistent)-1
Set rechnung = Projekt.eval("rechnungen->select(boldID=" + CStr(rechnungenPersistent(i)) + ")->first")
rechnung.makeverrechnet()
rechnung.buchen(false)
next
end if
if not vorschussrechnung is nothing then
vorschussrechnung.makeverrechnet()
vorschussrechnung.buchen(false)
end if
erase rechnungenPersistent
end if
end sub

main()




25.07.2008 | 25.07.2008