Fehler mit Planungscode markieren

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

Aufruf

Steuerdaten

Fehlermarkierung:_Nur_bei_Schema
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;
}