Script: Set invoice to posted / cancelled

This script sets an invoice to posted or cancelled again, without transferring data to the accounting system.

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: 10.10.2024 | New script for selectedobjects from Vertec 6.7.0.12.

This script sets an invoice to posted or cancelled again, without transferring data to the accounting system.

During the posting process, certain values are fixed in the Vertec. This script simulates this process. If the invoice 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. Invoiceupbookedcancelledset.py
6.7.0.12 Used selectedobjects . Postcancelinvoicewithoutfar.py

Execute

On an invoice or a list of invoices that you want to set to posted/cancelled.

Only invoices that have been settled are taken into account.

Script Text

 # coding: windows-1252
#
#---Bezeichnung: Rechnung auf gebucht/storniert setzen (ohne Buchhaltung)
#   Klassen: Rechnung
#   Selectedobjectsscript: Yes
#   Condexpression:
#   EventType: Kein
#   EventClass:
#   EventMembers:
#   ExtendedRights: N
#---Wenn das Member gebucht auf der Rechnung geändert wird, anstelle der Standardfunktion buchen,
#   dann fehlen auf den Buchungen einige Informationen (konto, pknr). Mit diesem Skript werden die Informationen
#   der Reihe nach gespeichert und nach dem Umstellen wieder eingesetzt.
#---29.10.2010, IB: erstellt.
#   05.10.2012, RS: erweitert, damit stornieren und buchen mit einem Skript möglich ist.
#   19.06.2015, BR: erweitert: Ausführen auf Listen und Einzelojekten. UpdateDatabase eingefügt.
#   05.11.2019, STH: Setze beim Buchen die Belegnr auf "0".
#   10.10.2024, sth: Angepasst an selectedobjects ab Vertec 6.7.0.12

def main(invoicelist):
    for rechnung in invoicelist:
        if rechnung.verrechnet:
            if rechnung.gebucht:
                rechnung.bhEKontoLeistungen = ""
                rechnung.bhEKontoSpesen = ""
                rechnung.bhEKontoAuslagen = ""
                rechnung.bhPersonenkonto = ""
                rechnung.bhVorschussKonto = ""
                rechnung.bhDebiKonto = ""
                rechnung.bhBeschrieb = ""
                rechnung.bhRabattKonto = ""
                rechnung.gebucht = False
            else:
                rechnung.bhEKontoLeistungen = rechnung.ErtragsKontoLeistungen
                rechnung.bhEKontoSpesen = rechnung.ErtragsKontoSpesen
                rechnung.bhEKontoAuslagen = rechnung.ErtragsKontoAuslagen
                rechnung.bhPersonenkonto = rechnung.Personenkonto
                rechnung.bhVorschussKonto = rechnung.projekt.vorschussKonto
                rechnung.bhDebiKonto = rechnung.buchungsbeleg.sammelkonto
                rechnung.bhBeschrieb = rechnung.buchungsbeleg.buchungstext
                rechnung.bhRabattKonto = vtcapp.getpropertyvalue("RabattKonto")
                rechnung.belegnr = "0"
                rechnung.gebucht = True
      
    vtcapp.updatedatabase()

main(selectedobjects)