Script: Set creditor to posted / cancelled

This script sets a creditor to posted or cancelled again, without transferring data to the accounting.

Product line

Standard

|

Expert

Operating mode

CLOUD ABO

|

ON-PREMISES

Modules

Services & CRM

Budget & Phases

Purchases

Resource Planning

Business Intelligence

Created: 25.05.2012
Machine translated
Updated: 11.10.2024 | New script for selectedobjects from Vertec 6.7.0.12.

This script cancels or posts a creditor without transferring data to the accounting system.

During the posting process, certain values are fixed in Vertec. This script simulates this process. If the creditor has already been posted, it is cancelled, otherwise it is posted.

version description Scripting
6.0 Script for Vertec versions before 6.7.0.12 and for running in Script Editor  for all versions. Setcreditortobooked.py
6.7.0.12 Used selectedobjects . The new parent folder is queried in a selection dialog. Postcancelcreditorwithoutfar.py

Execute

On the creditor you want to post / cancel.

Script Text

 # coding: windows-1252
#
#---Bezeichnung: Kreditor auf gebucht/storniert setzen (ohne Buchhaltung)
#   Klassen: Kreditor
#   Selectedobjectsscript: Yes
#   Condexpression:
#   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.
#   11.10.2024, sth: Angepasst auf selectedobjects mit Vertec 6.7.0.12

def main(creditorlist):
    for kreditor in creditorlist:
        if kreditor.gebucht:
            # Informationen zurücksetzen
            kreditor.gebucht = False
            
            kreditor.bhAufwandkontoAuslagen = ""
            kreditor.bhAufwandkontoSpesen = ""
            kreditor.bhKrediCode = ""
            kreditor.bhSammelKonto = ""

            auslagenbase=kreditor.eval('auslagen->union(spesen).oclastype(AuslageBase)')
            for auslagebase in auslagenbase:
                auslagebase.verrMWSTCodeEK = None
                auslagebase.verrMWSTSatzEK = None
                auslagebase.krediAufwandKonto = ""
                
        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
            
    vtcapp.updatedatabase()

main(selectedobjects)