import at.clockwork.calculation.CalculationData import at.clockwork.calculation.data.* import at.clockwork.calculation.GeneralCalculationData import at.clockwork.time.service.DateTimeService import at.clockwork.calculation.RestartCalculationException class Calc99973Service { static transactional = false def run(CalculationData calculationData, GeneralCalculationData generalCalculationData, boolean saving, Map parameters) throws RestartCalculationException { if ( _cd.yValues[973] > 0 ) return _cd.yValues[973] += 1 if ( !_cd.firstBooking ) return if ( !_cd.lastBooking ) return double maxArbeitszeit = _cd.getAdditionalData( _cd.timeTimeModel, "ZUSN2" ) ?: 0 if ( maxArbeitszeit <= 0 ) return maxArbeitszeit *= 60 double dv1 = _getDV(1) if ( dv1 <= maxArbeitszeit ) return Calendar cal = _cd.getNextCalendarInsideTimeBookings( _cd.firstBooking, (int) maxArbeitszeit, (Calendar) null, true, _gcd.realTimeAbsences ) if ( !cal ) return int duration = _cd.getTime( cal, _cd.lastBooking ) if ( duration <= 0 ) return println "duration=$duration, ${cal.getTime().format("HH:mm")}" _cd.deleteTime( cal, 9999, true ) throw new RestartCalculationException(restartCalculation:new RestartCalculation(restart:true)) return } } /* ::1:: IF FUNC VAR_TM-ZUSN2 * NW_60 DO =_XVAR_99 ; ::2:: IF XVAR_99 <= ZT_0:00 FUNC RETURN_ DO ; ::3:: IF ZA_1 <= XVAR_99 FUNC RETURN_ DO ; ::4:: IF FUNC XVAR_99 DO =_ZA_99 ; ::5:: IF FUNC ZP_ErstesKommen DO =_ZP_1 ; ::6:: IF FUNC NZPA_ZP1/ZA99 DO =_ZP_1 ; ::7:: IF FUNC ZP_30:00 DO =_ZP_2 ; ::8:: IF FUNC ZEITLOESCHEN_ZP1/ZP2/0 DO -_ZA_5 ; ::9:: IF ZA_5 < ZT_0:00 FUNC ZA_(*-1)5 DO +_ZA_5 -_ZA_1 ; ::10:: IF FUNC RETURN_ DO ; */