# coding: windows-1252
#
#---Bezeichnung: Kreditor auf gebucht setzen (ohne Buchhaltung)
#   Klassen: Kreditor
#   ObjectScript: Y
#   ContainerScript: N
#   EventType: Kein
#   EventClass:
#   EventMembers:
#   ExtendedRights: N
#---Wenn das Member gebucht auf dem Kreditor geändert wird, anstelle der Standardfunktion buchen,
#   dann fehlen auf den Buchungen einige Informationen. Mit diesem Skript werden die Informationen
#   der Reihen nach gespeichert und nach dem Umstellen wieder eingesetzt.
#---12.04.2012, RS: erstellt.
#---23.10.2013, MW: Auslagen und Spesen behandeln, statt nur Auslagen.

from vtcapp import getpropertyvalue, evalocl

def main():
    kreditor = argobject
    if kreditor.gebucht:
        kreditor.gebucht = False
    else:
        # Informationen auslesen und setzen
        kreditor.bhAufwandkontoAuslagen = kreditor.aufwandkontoAuslagen
        kreditor.bhAufwandkontoSpesen = kreditor.aufwandkontoSpesen
        kreditor.bhKrediCode = kreditor.krediCode
        kreditor.bhSammelKonto = kreditor.sammelKonto

        auslagenbase=kreditor.eval('auslagen->union(spesen).oclastype(AuslageBase)')
        for auslagebase in auslagenbase:
            auslagebase.verrMWSTCodeEK = auslagebase.MWSTCodeEK
            auslagebase.verrMWSTSatzEK = auslagebase.MWSTSatzEK
            auslagebase.krediAufwandKonto = auslagebase.AufwandKonto

        kreditor.gebucht = True

main()