Fehler mit Planungscode markieren: Unterschied zwischen den Versionen

Keine Bearbeitungszusammenfassung
Markierung: 2017-Quelltext-Bearbeitung
Keine Bearbeitungszusammenfassung
Markierung: 2017-Quelltext-Bearbeitung
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 23: Zeile 23:


* Es ist der zu markierende Planungscode noch nicht hinterlegt
* Es ist der zu markierende Planungscode noch nicht hinterlegt
* Wenn [[Fehlermarkierung:_Nur_bei_Schema]] in den Systemeinstellungen gesetzt ist, muss auf der Zeitstrecke wird eine Abrechnungsgruppe gefunden werden. (Frage: gibt es einen Artikel, wie auf einer Zeitstrecke eine Abrechnungsgruppe gefunden wird?)
* Wenn [[Fehlermarkierung:_Nur_bei_Schema]] in den Systemeinstellungen gesetzt ist, muss auf der Zeitstrecke ein [[Abrechnungsschema]] gefunden werden.
* Es ist kein Planungscode hinterlegt,  
* Es ist kein Planungscode hinterlegt,  
** außer der [[Planungscode]] hat [[Planungscode#Fehlermarkierung:_Planungscode_ersetzen]] auf "Ja"
** außer der [[Planungscode]] hat [[Planungscode#Fehlermarkierung:_Planungscode_ersetzen]] auf "Ja"

Aktuelle Version vom 20. Februar 2024, 12:13 Uhr

Dies Programmfunktion Fehler mit Planungscode markieren dient zur Lösung von ungeklärten Zuständen auf Tages-(Dienstbeginn mit Planungscode markieren, Dienstende mit Planungscode markieren) oder Wochenebene (Wochenfehler mit Planungscode markieren).

Funktionsbeschreibung

Ausgangssituation

Ein Plan im Status Ist. Mitarbeiter am Plan haben ungeklärte Zustände durch Tages oder Wochenfehler. Dieser beschreibt üblicherweise Zeit über Soll die als Überstunden bewertet werden sollen. Dabei ist oft zwischen Anrechnung in Zeit oder Geld durch unterschiedliche Planungscodes zu unterschieden. wird

Steuerdaten

Fehlermarkierung:_Nur_bei_Schema
Planungscode#Fehlermarkierung:_Tagesgenau
Planungscode#Mehrzeitmarkierung
Planungscode#Fehlermarkierung

Ablauf

Beschreibung am Beispiel Dienstbeginn mit Planungscode markieren:

Die Programfunktion sucht vom Dienstbeginn weg die erste Zeitstrecke die diese Bedingungen erfüllt:


bool BitFactory::Alex::IsReplacableByMark( const PlanSymbol_x& s, const Ref< CompCode >& c )
{
	return PlanSymbolCompCodeValueExact( s, c, ::PlanSymbolIsReplacableByMark, ::PlanSymbolIsReplacableByMarkForCompCode );
}

bool BitFactory::Alex::IgnoreForMark
	( const CompCode_x& compCode, const Schema_x& schema, bool ignoreEmptySchemaForMark, const PlanSymbolCollection_x& prefered
	, const PlanSymbol_x& old_, const PlanSymbol_x& mark
	)
{
	auto old = IsPlanSymbolX( old_ ) ? PlanSymbol_x{} : old_;
	if( old == mark )
		return true;
	if( old&& !IsReplacableByMark( old, compCode ) )
		return true;
	if( schema && schema->DayIntervalBlockErrorMark() )
		return true;
	if( !schema && ignoreEmptySchemaForMark )
		return true;
	if( prefered && ( !old || !prefered->PlanSymbols.Exists( old ) ) )
		return true;
	return false;
}