PC_KalendjPC Ermittlung Kalenderjahr aus Bezeichnung
EinzelprozessKommando
M2002203 · 0 - Global · 0 - alle Objekte
Ermittelt aus der Bezeichnung der Katalogleistung das Kalenderjahr: enthält die Bezeichnung „Jahr“ und endet auf vier Ziffern (plausibles Jahr 1900–2100), wird der 1. Januar dieses Jahres als Datum ins Feld GBKalenderjahr geschrieben.
gbbrinfozeInfo über Zeitkontingente ab 1.1.2025
EinzelprozessKommando
M2900010 · 0 - Global · 0 - alle Objekte
Sammelt am Mitarbeiter die ab dem 01.01.2025 gültigen Zeitkontingente des aktuellen Arbeitsvertrags, sortiert sie nach Gültigkeitsbeginn und schreibt sie als zusammengefassten Text (Zeitraum = Wert; …) in das Feld gbbrinfozeitkontingente.
test123SendTestmail
EinzelprozessKommando
Businessprocess · 0 - Global · 0 - alle Objekte
Test-Prozess: verschickt eine feste Testmail über TriggerWorkflowTools.sendMail (Absender egecko@gruen-berlin.de, Empfänger eric.karl@css.de). Dient nur zur Prüfung des Mailversands.
INITWFWAWIINIT für wfentscheidung PYB Altdaten
EinzelprozessKommando
WawiFaktura · 0 - Global · 0 - alle Objekte
Initialisierungsprozess für Altdaten: setzt an der Ausgangsrechnung (WawiFaktura) das Workflow-Kennzeichen wfentscheidung fest auf „PYB“ (ParkYourBike).
ARCH001Archiv Dokumenten Export REB abg
EinzelprozessKommando
Rechnungseingangsbuch · 0 - Global · 0 - alle Objekte
Setzt am zugehörigen FiBu-Beleg des Rechnungseingangsbuchs den Prüfstatus (gbpruefstatus) auf „2023“ – Massenkennzeichnung abgeschlossener REB-Belege für den Archiv-/Dokumentenexport.
ILVISTARCHILV nach Istwerte Archivdokumente an Faktura
EinzelprozessKommando
M3000048 · 0 - Global · 0 - alle Objekte
Ordnet der Ausgangsrechnung (Faktura) die Archivdokumente der zugrunde liegenden FiBu-Belege zu: liest die in ILVarchivdaten gespeicherten Belegnummern, holt die passenden FiBu-Belege, sammelt deren Dokumentenarchiv-Einträge und verknüpft sie mit dem Faktura-Beleg.
ILVISTWERTILV Ist-Wertermittlung
EinzelprozessKommando
M3000048 · 0 - Global · 0 - alle Objekte
Zentrale ILV-Ist-Wertermittlung an der Zahlungsdefinition: ermittelt über den Vertragsverbund den Zielvertrag, summiert die Netto-IST-Zahlungen (datenart „i“) im Zeitraum ILVvon–ILVbis in ILVbetrag und merkt sich die Belegnummern in ILVarchivdaten. Belegt Fixwerte vor (Zahlungsart 1, Leistungsbeginn heute, Rabatt-Typ „p“, 20,6 %). Berechnet die bereits gezahlten Beträge (ILVbishgezahlt aus Zahlungsdefinition.betrag, ILVbishgezahlt2 aus Zahlung.betrag) und setzt den Restbetrag (betrag = ILVbetrag − ILVbishgezahlt).
FIMP03_NACNacharbeit Import Übernahmepaket-Nachbrenner
EinzelprozessKommando
FibuBelegUebernahme · 0 - Global · 0 - alle Objekte
Nachbearbeitung importierter FiBu-Übernahmepakete: leitet anhand des Dateinamens (bei OU 10000) die Auftragsnummer ab – Grün Berlin→GB, Natur-Park→SG, Britzer Garten→B, Gärten der Welt→M, Campus→CSN – und schreibt sie in Übernahme und FiBu-Beleg.
Pro_003Workflow zurücksetzen
EinzelprozessKommando
M2002203 · 0 - Global · 0 - alle Objekte
Setzt den Freigabe-Workflow eines Arbeitspakets zurück – aber nur für berechtigte Nutzer: die Berechtigung wird über die Kostenstellen-/Bereichshierarchie (OE-Leiter und Stellvertreter bis zur VM-Ebene) geprüft. Bei Berechtigung werden offene Todos beendet, der Workprozess auf Status 6 gesetzt und der Workflow „PC_RESET“ gestartet; sonst erscheint der Hinweis „nicht berechtigt“.
PCAdmin02User PW auf Standard setzen
EinzelprozessKommando
User · 0 - Global · 0 - alle Objekte
Admin-Prozess am Benutzer: startet den hinterlegten Workflow (Referenz per GID) zum Zurücksetzen des Passworts auf den Standardwert.
PCAdmin01User Auth. auf intern
EinzelprozessKommando
User · 0 - Global · 0 - alle Objekte
Admin-Prozess am Benutzer: startet den hinterlegten Workflow (Referenz per GID), der die Authentifizierung des Users auf „intern“ umstellt.
Pro_001Workflow starten
EinzelprozessKommando
M2002203 · 0 - Global · 0 - alle Objekte
Startet den passenden Bestell-/Freigabe-Workflow für ein Arbeitspaket. Erkennt aus den aktiven Projektleistungen die Leistungsart (Budget, Kostenvoranschlag, Auftrag, Nachtrag), wählt abhängig vom bisherigen Workflow-Stand den richtigen Workflow (Bestell_WF_erst/folg/verg/auf/frNa), führt eine Budgetprüfung durch (Jahrestranchen vs. verbindliche Kosten + Beantragung über die Auswertung Pro002) und startet nach Bestätigung im Dialog den gewählten Workflow.
#!gscript;
import de.integris.kit.adm.Workflow;
import de.integris.kit.adm.Workprocess;
import de.integris.kit.analysis.AnalysisTemplate;
import de.integris.kit.bas.MutableArray;
import de.integris.kit.bas.MutableDictionary;
import de.integris.kit.bas.ValueDictionary;
import de.integris.kit.grt.IO;
import de.integris.kit.ctl.EditingContext;
import de.integris.kit.ctl.PropertyEdit;
import de.integris.kit.adm.User;
import de.css.projekt.projektdefinition.Projektleistung;
import de.integris.kit.ctl.Qualifier;
import de.integris.kit.ctl.AndQualifier;
import de.integris.kit.ctl.OrQualifier;
import de.css.util.ArrayTools;
import de.integris.kit.bas.IArray;
import de.integris.kit.ctl.KeyValueQualifier;
import de.integris.kit.ctl.KeyObjectQualifier;
import de.css.projekt.projektdefinition.Arbeitspaket;
import de.integris.kit.analysis.AnalysisFetchTools;
Arbeitspaket arbeitspaket = obj;
PropertyEdit edit = arbeitspaket.getEditingContext().getCurrentEdit();
EditingContext wrkContext = arbeitspaket.getEditingContext().newNestedContext();
Boolean budget = arbeitspaket.getBezeichnung().contains("Budget");
Boolean kostenvoranschlag = false;
Boolean auftrag = false;
Boolean nachtrag = false;
for( Projektleistung projektLeistung:arbeitspaket.getProjektLeistungen()) {
if (projektLeistung.aktiv && projektLeistung.statusFreigabe != 2){
if(projektLeistung.getKatalogleistung().getBezeichnung().contains("Kostenvoranschlag") || projektLeistung.getKatalogleistung().getBezeichnung().contains("Kostenberechnung nach VE")){
kostenvoranschlag = true;
}
if(projektLeistung.getKatalogleistung().getBezeichnung().contains("Auftrag")) {
auftrag = true;
}
if(projektLeistung.getKatalogleistung().getBezeichnung().contains("Nachtrag")){
nachtrag = true;
}
}
}
Integer lastWorkflow = arbeitspaket.lastWorkflow;
MutableArray<Workflow> workflowArray = new MutableArray();
Integer intWorkflow;
IO ergebnisIO = new IO(null, wrkContext);
ergebnisIO.title=("Info");
String message = "Workflow Start nicht möglich";
Integer leistungsArt;
if(budget||kostenvoranschlag|| auftrag || nachtrag){
if((arbeitspaket.workflowActive == null || arbeitspaket.workflowActive == false) && arbeitspaket.getKostentraeger() != null && (arbeitspaket.statusWorkflow == null || arbeitspaket.statusWorkflow == 0 || arbeitspaket.statusWorkflow > 7)){
//Workflows für Budgetprüfung
if(budget){
if((lastWorkflow == null || lastWorkflow == 0) && (arbeitspaket.statusWorkflow == null || arbeitspaket.statusWorkflow == 0 || arbeitspaket.statusWorkflow > 7)){
workflowArray.addObjectsWithoutDoubles(fetchObject("de.integris.kit.adm.Workflow","no","Bestell_WF_erst"));
}
if(lastWorkflow >= 1 && (arbeitspaket.statusWorkflow == null || arbeitspaket.statusWorkflow == 0 || arbeitspaket.statusWorkflow > 7)){
workflowArray.addObjectsWithoutDoubles(fetchObject("de.integris.kit.adm.Workflow","no","Bestell_WF_folg"));
}
}else{
if( (lastWorkflow == null || arbeitspaket.statusWorkflow == 0|| arbeitspaket.statusWorkflow > 7)){
if(lastWorkflow == null || lastWorkflow == 0){
workflowArray.addObjectsWithoutDoubles(fetchObject("de.integris.kit.adm.Workflow","no","Bestell_WF_verg"));
leistungsArt = 4;
}else{
if(lastWorkflow == 3 && auftrag ){
workflowArray.addObjectsWithoutDoubles(fetchObject("de.integris.kit.adm.Workflow","no","Bestell_WF_auf"));
leistungsArt = 5;
}else if(lastWorkflow >= 4 ){
if(auftrag){
workflowArray.addObjectsWithoutDoubles(fetchObject("de.integris.kit.adm.Workflow","no","Bestell_WF_auf"));
}
if(nachtrag){
workflowArray.addObjectsWithoutDoubles(fetchObject("de.integris.kit.adm.Workflow","no","Bestell_WF_frNa"));
}
leistungsArt = 5;
}
}
}
}
}else{
if(arbeitspaket.getKostentraeger() == null){
message = "Kein Kostenträger angegeben.";
}else{
message = "Workflow schon gestartet.";
}
}
if(workflowArray.count() > 0){
//Prüfen ob zu prüfenden Projektleistungen auf aktiv gesetzt sind
Boolean aktiv = false
for(Projektleistung pl : arbeitspaket.getProjektLeistungen()) {
if(pl.aktiv && pl.getKatalogleistung().getLeistungArt() == leistungsArt && (pl.statusFreigabe== null || pl.statusFreigabe== 0) ){
//&& (pl.getKatalogleistung().getBezeichnung().contains("Kostenvoranschlag") || pl.getKatalogleistung().getBezeichnung().contains("Nachtrag") || pl.getKatalogleistung().getBezeichnung().contains("Auftrag, Abruf"))){
aktiv = true
}
}
if(aktiv == false){
message = "Es ist keine zu prüfende Projektleistung auf aktiv gesetzt." + "\n\n" + "Daher ist kein Workflowstart möglich.";
ergebnisIO.setMessage(message);
ergebnisIO.showModalMessage(wrkContext);
}else{
Boolean budgetPruefung = true;
//Budgetprüfung bei nicht Budget Arbeitspaket durchführen
MutableDictionary parameter = new MutableDictionary();
parameter.setObject("arbeitspaket",arbeitspaket);
parameter.setObject("leistungsArt",leistungsArt);
AnalysisTemplate analysisTemplateTmp = fetchObject("de.integris.kit.analysis.AnalysisTemplate", "nr","Pro002");
analysisTemplateTmp.setParameterValues(parameter);
MutableArray results = AnalysisFetchTools.execute((AnalysisTemplate) analysisTemplateTmp, (boolean) true);
BigDecimal budgetBd;
BigDecimal kostenBd;
BigDecimal kostenAp;
for(int i = 0;i<results.count();i++){
ValueDictionary vd = results[i];
budgetBd = new BigDecimal(vd.getValue("budget"));
kostenBd = new BigDecimal(vd.getValue("kosten"));
kostenAp = new BigDecimal(vd.getValue("kostenAp"));
}
println(budgetBd);
println(kostenBd);
println(kostenAp);
if(budgetBd < (kostenBd + kostenAp)){
budgetPruefung = false;
message = "Budgetprüfung fehlgeschlagen:";
message += "\n";
message += "\n";
message += "Jahrestranchen: " + budgetBd.toString() + " || Verbindlich: "+ kostenBd.toString() + " || Beantragung: " + kostenAp.toString() ;
message += "\n";
}
//if(budgetPruefung || leistungsArt == 4){
if(leistungsArt == 4){
IO.Label textbudget;
IO.Label textfreigabe;
IO.Label texttranche;
IO.Label textkostenap;
if(budgetPruefung){
textbudget = new IO.Label("Budget ist ", "zu beachten!", String.class);
texttranche = new IO.Label("Jahrestranchen:", budgetBd.toString() , String.class);
textfreigabe = new IO.Label("Verbindlich:", kostenBd.toString() , String.class);
textkostenap= new IO.Label("Beantragung:", kostenAp.toString() , String.class);
}else{
textbudget = new IO.Label("Budgetprüfung ", "fehlgeschlagen:", String.class);
textmessage = new IO.Label("Jahrestranchen: ", budgetBd.toString() + " || Verbindlich: "+ kostenBd.toString() + " || Beantragung: " + kostenAp.toString(), String.class);
}
IO.Label leerzeile = new IO.Label(" ", "", String.class);
IO.Label textfield = new IO.Label("Workflow ", "zum Starten auswählen", String.class);
IO.ComboBox workflowBox = new IO.ComboBox("Workflow:", null, Workflow.class, workflowArray);
Object[] fields = [];
println(budgetPruefung);
if(budgetPruefung){
fields=[textbudget,leerzeile,textfield,workflowBox] as Object[];
}else{
fields = [textbudget,textmessage,leerzeile,textfreigabe,textkostenap,textfield,workflowBox]as Object[];
}
IO io = new IO(fields, wrkContext);
io.title=("Workflow starten");
Boolean result = io.showYesNoDialog(wrkContext);
if(result==true){
Workflow nestedWorkflow = io.get("Workflow:");
Workprocess localWorkprocess = nestedWorkflow.createWorkprocess(edit,arbeitspaket);
//localWorkprocess.startedby = fetchObject("de.integris.kit.adm.User","name","css");
localWorkprocess.start(edit, null, null);
message = "Der Workflow wird gestartet.";
message += "\n" + "\n" + "Hinweis:";
message += "\n" + "Bitte Start- und Endtermin eintragen!"
ergebnisIO.setMessage(message);
ergebnisIO.showModalMessage(wrkContext);
arbeitspaket.workflowActive = true;
}
}else{
ergebnisIO.setMessage(message);
ergebnisIO.showModalMessage(wrkContext);
}
}
}else{
ergebnisIO.setMessage(message);
ergebnisIO.showModalMessage(wrkContext);
}
}else{
if(kostenvoranschlag == false){
message = "Es ist keine entsprechende Projektleistung auf aktiv gesetzt."+ "\n\n" + "Daher ist kein Workflowstart möglich."
}else{
message="Arbeitspaket ist nicht zu prüfen.";
}
ergebnisIO.setMessage(message);
ergebnisIO.showModalMessage(wrkContext);
}FAKTFREIPrüf- und Freigabeprozess starten
EinzelprozessKommando
WawiFaktura · 0 - Global · 0 - alle Objekte
Startet den Prüf- und Freigabeprozess einer Ausgangsrechnung, indem die Statusart auf „PRUEFLAUF“ gesetzt wird – das löst die zugehörigen Faktura-Trigger für den Freigabe-Workflow aus.
DimZOsetze Zuordnung Dim an KTR
EinzelprozessKommando
M2000509 · 0 - Global · 0 - alle Objekte
Legt am Kostenträger eine universelle Zuordnung für die Dimension 02 an (Schlüssel „Dim02“) mit Gültigkeit ab 01.01.2022, sofern eine Dimension 02 gesetzt ist.
IstVertragIstVertrag
EinzelprozessKommando
M3000048 · 0 - Global · 0 - alle Objekte
Spaltenformel (IntegrisParser): summiert über alle Planzahlungen – liegt eine Ist-Zahlung vor, zählt deren Betrag, sonst der Planbetrag. Ergebnis (objectValue) ist der Ist-/Vertragswert.