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 //import at.clockwork.transfer.gwtTransfer.client.enumeration.TimeModelTooSoonTooLateRoundEnum //import at.clockwork.time.timeModel.detail.domain.* class Calc999Service { static transactional = false def run(CalculationData calculationData, GeneralCalculationData generalCalculationData, boolean saving, Map parameters) throws RestartCalculationException { List personCategories = _cd.getPersonCategories( "department" ) // maximale Arbeitszeit _cd.run("99973", calculationData, generalCalculationData, saving, parameters) // Pausenzeit als normale Arbeitszeit rechnen if ( _getDV( "46" ) > 0 ) _cd.run("99946", calculationData, generalCalculationData, saving, parameters) // 2h-Pausenregelung if ( ( _cd.getAdditionalData( _cd.timeTimeModel, "ZUSN1" ) ?: 0 ) != 0 ) _cd.run("99902", calculationData, generalCalculationData, saving, parameters) // Zusatzmintuen if ( ( _cd.getAdditionalData( "ZUSN7" ) ?: 0 ) != 0 ) _cd.run("99903", calculationData, generalCalculationData, saving, parameters) // in Windows-Version: 2x Aufruf dieser Prozedur ??? // Erschwerniszulage if ( (_getDV( "1" )-_getDV(22)) > 12*60 && ( _cd.getAdditionalData( personCategories, "ZUSN6" ) ?: 0 ) > 0 ) _cd.run("99972", calculationData, generalCalculationData, saving, parameters) // Tagesabschluss _addDV( "5", _getDV( "46" ) ) _cd.run("99960", calculationData, generalCalculationData, saving, parameters) // Feiertag if ( _cd.isPublicHoliday() ) _cd.run("99969", calculationData, generalCalculationData, saving, parameters) // begünstigte Überstunden vor 7:00 _cd.run("99965", calculationData, generalCalculationData, saving, parameters) // keine Anwesenheit: keine Berechnung if ( _getDV( "1" ) == 0 ) { _setDVE( [ "2", "5", "6", "9" ], 0 ) } // weniger als 7:00 if ( _getDV( "1" ) < 7*60 && !_cd.isPublicHoliday() ) _cd.run("99962", calculationData, generalCalculationData, saving, parameters) // Std. auf Zuschlag sofern 7:00 nicht erreicht sind if ( _getDV( "6" ) < _getDV( "2" ) ) _cd.run("99963", calculationData, generalCalculationData, saving, parameters) // Urlaubsberechnung für die Anzeige _cd.run("99995", calculationData, generalCalculationData, saving, parameters) // Taggeld _cd.run("99966", calculationData, generalCalculationData, saving, parameters) // Anwesenheit ohne Pause _setDVE( "4", _getDV( "5" ) - _getDV( "46" ) ) // Ende-Wocheberechnung if (DateTimeService.isLastDayOfWeek(_cd.cal)) _cd.run("99980", calculationData, generalCalculationData, saving, parameters) // Gastro if ( ( _cd.getAdditionalData( personCategories, "ZUSN1" ) ?: 0 ) == 1 ) _cd.run("99961", calculationData, generalCalculationData, saving, parameters) // Krank bei Lift // if ( ( _cd.getAdditionalData( personCategories, "ZUSN1" ) ?: 0 ) == 0 && _getDV( "32" ) == 7*60 ) // _setDVE( "32, 8*60 ) // bei Krank, Urlaub und Ft in diversen Abteilungen // if ( ( _cd.getAdditionalData( personCategories, "ZUSN3" ) ?: 0 ) == 1 ) _cd.run("99967", calculationData, generalCalculationData, saving, parameters) // Grundlohn auch bei Abwesenheitszeiten _cd.run("99964", calculationData, generalCalculationData, saving, parameters) // 00 sollen auf 50% ausgewiesen werden if ( _cd.isPublicHoliday() ) _cd.run("99970", calculationData, generalCalculationData, saving, parameters) // Fahrpauschale if ( _getDV( "47" ) > 0 ) _cd.run("99971", calculationData, generalCalculationData, saving, parameters) // Feiertag frei if (_cd.isAbsencePlanningNumber( "57" ) ) _setDV( [ "22", "2" ], 0 ) // Durchschnittsberechnung ALT löschen _cd.run("99952", calculationData, generalCalculationData, saving, parameters) // Durchschnittsberechnung ALT _cd.run("99951", calculationData, generalCalculationData, saving, parameters) // Durchschnittsberechnung NEU löschen _cd.run("99954", calculationData, generalCalculationData, saving, parameters) // Durchschnittsberechnung NEU _cd.run("99953", calculationData, generalCalculationData, saving, parameters) // Vorschuss _addDV( "26", _cd.getDaySettingAdditionalData( "ZUSN1" ) ?: 0 ) // Ende-Monatsberechnung if (DateTimeService.isLastDayOfMonth(_cd.cal)) _cd.run("99990", calculationData, generalCalculationData, saving, parameters) if (DateTimeService.isLastDayOfMonth(_cd.cal)) _cd.run("99991", calculationData, generalCalculationData, saving, parameters) if (DateTimeService.isLastDayOfMonth(_cd.cal)) _cd.run("99992", calculationData, generalCalculationData, saving, parameters) if (DateTimeService.isLastDayOfMonth(_cd.cal)) _cd.run("99997", calculationData, generalCalculationData, saving, parameters) if (DateTimeService.isLastDayOfMonth(_cd.cal)) _cd.run("99993", calculationData, generalCalculationData, saving, parameters) if (DateTimeService.isLastDayOfMonth(_cd.cal)) _cd.run("99994", calculationData, generalCalculationData, saving, parameters) if (false) _logValues() // _cd.xValues[0] += 1 // _cd.yValues[0] += 1 // // _cd.run("99996", calculationData, generalCalculationData, saving, parameters) // // // oder: // // if (_cd.yValues[0] < 10) // throw new RestartCalculationException(restartCalculation:new RestartCalculation(restartTimeTimeModelString:"107")) // throw new RestartCalculationException(restartCalculation:new RestartCalculation(restartTimeTimeModelString:"107", newBaseData:true)) // // // oder: // // if (_cd.yValues[0] < 10) // throw new RestartCalculationException(restartCalculation:new RestartCalculation(restart:true)) // // // oder: // // if (!_cd.isIndividualTimeModel2TooSoonTimeList) { // _cd.isIndividualTimeModel2TooSoonTimeList = true // _cd.individualTimeModel2TooSoonTimeList += new TimeModel2TooSoonTime( // tooSoonRoundEnum : TimeModelTooSoonTooLateRoundEnum.COMING, // startTime : 0, // endTime : 10*60 // ) // throw new RestartCalculationException(restartCalculation:new RestartCalculation(restart:true)) // } // // if ( ( _cd.getAdditionalData( "ZUSN1" ) ?: 0 ) != 0 ) // _cd.run("99902", calculationData, generalCalculationData, saving, parameters) // // if ( ( _cd.getAdditionalData( _cd.timeTimePlan, "ZUSN1" ) ?: 0 ) != 0 ) // _cd.run("99902", calculationData, generalCalculationData, saving, parameters) // // if ( ( _cd.getAdditionalData( _cd.timeTimeModel, "ZUSN1" ) ?: 0 ) != 0 ) // _cd.run("99902", calculationData, generalCalculationData, saving, parameters) // // if ( _cd.isPublicHoliday ) // _cd.run("99969", calculationData, generalCalculationData, saving, parameters) // // if (_cd.isAbsencePlanningNumber( "40" ) && _cd.getDV("40") == 0) // _cd.run("99969", calculationData, generalCalculationData, saving, parameters) // // _comment( "beliebiger Text" ) // _commentDV() // _commentDV("1") // _commentDV( [ "1", "2" ]) // _commentPV() // _commentPV("1") // _commentPV( [ "1", "2" ]) // _commentTV() // _commentTV("1") // _commentTV( [ "1", "2" ]) // _commentCPV() // _commentCPV("1") // _commentCPV( [ "1", "2" ]) // _commentCTV() // _commentCTV("1") // _commentCTV( [ "1", "2" ]) // _commentCV() // _commentCV("1") // _commentCV( [ "1", "2" ]) // _commentAllValues() // // return } } /* ::1:: // Pflegeurlaubskorrektur IF VAR_TAG = NW_2 UND VAR_MONAT = NW_1 FUNC TM-TF_897 DO ; ::2:: // maximale Arbeitszeit IF FUNC TM-TF_973 DO ; ::3:: // Urlaubskorrektur IF VAR_TAG = NW_1 UND VAR_MONAT = NW_10 FUNC TM-TF_898 DO ; ::4:: // Pausenzeit als normale Arbeitszeit rechnen IF ZA_46 > ZT_0:00 FUNC TM-TF_946 DO ; ::5:: // 2h-Pausenregelung IF VAR_TM-ZUSN1 != NW_0 FUNC TM-TF_902 DO ; ::6:: // Zusatzmintuen IF VAR_MA-ZUSN7 != NW_0 FUNC TM-TF_903 DO ; ::7:: // Erschwerniszulage IF ZA_1 > ZT_12:00 UND VAR_ABTL-ZUSN6 > NW_0 FUNC TM-TF_972 DO ; ::8:: // Erschwerniszulage IF ZA_1 > ZT_12:00 UND VAR_ABTL-ZUSN6 > NW_0 FUNC TM-TF_972 DO ; ::9:: IF FUNC TM-TF_960 DO ; ::10:: IF VAR_FEIERTAG > NW_0 FUNC FKT_FEIERTAG DO ; ::11:: IF VAR_FEIERTAG > NW_0 FUNC TM-TF_969 DO ; ::12:: // begünstigte Überstunden vor 7:00 IF FUNC TM-TF_965 DO ; ::13:: // keine Anwesenheit: keine Berechnung IF ZA_1 = ZT_0:00 FUNC ZT_0:00 DO =_ZA_2 =_ZA_5 =_ZA_6 =_ZA_9 ; ::14:: // weniger als 7:00 IF ZA_1 < ZT_7:00 UND VAR_FEIERTAG = NW_0 FUNC TM-TF_962 DO ; ::15:: // Std. auf Zuschlag sofern 7:00 nicht erreicht sind IF ZA_6 < ZA_2 FUNC TM-TF_963 DO ; ::16:: // Urlaubsberechnung für die Anzeige IF FUNC TM-TF_995 DO ; ::17:: // Taggeld IF FUNC TM-TF_966 DO ; ::18:: // Anwesenheit ohne Pause // IF FUNC ZA_5 - ZA_46 DO =_ZA_4 ; ::19:: IF VAR_WOCHENTAG = NW_7 FUNC TM-TF_980 DO ; ::20:: // Gastro IF VAR_ABTL-ZUSN1 = NW_1 FUNC TM-TF_961 DO ; ::21:: IF FUNC GOTO_GRUNDL DO ; ::22:: // Krank bei Lift IF VAR_ABTL-ZUSN1 = NW_0 UND ZA_32 = ZT_7:00 FUNC ZT_8:00 DO =_ZA_32 ; ::GRUNDL:: // 7:00 bei Krank, Urlaub und Ft in diversen Abteilungen IF VAR_ABTL-ZUSN3 = NW_1 ODER NW_0 != NW_1 FUNC TM-TF_967 DO ; ::23:: // Grundlohn auch bei Abwesenheitszeiten IF FUNC TM-TF_964 DO ; ::24:: // 7:00 sollen auf 50% ausgewiesen werden IF VAR_FEIERTAG > NW_0 FUNC TM-TF_970 DO ; ::25:: // Fahrpauschale IF ZA_47 > ZT_0:00 FUNC TM-TF_971 DO ; ::26:: // Feiertag frei IF VAR_EXPLIZITEFEHLZEITPLANUNG = NW_57 FUNC ZT_0:00 DO =_ZA_22 =_ZA_2 ; ::27:: IF FUNC ZA_6 + ZA_1 DO ; ::28:: // Durchschnittsberechnung ALT löschen IF FUNC TM-TF_952 DO ; ::29:: IF FUNC ZA_6 + ZA_1 DO ; ::30:: // Durchschnittsberechnung ALT IF FUNC TM-TF_951 DO ; ::31:: IF FUNC ZA_6 + ZA_1 DO ; ::32:: // Durchschnittsberechnung NEU löschen IF FUNC TM-TF_954 DO ; ::33:: IF FUNC ZA_6 + ZA_1 DO ; ::34:: // Durchschnittsberechnung NEU IF FUNC TM-TF_953 DO ; ::35:: IF VAR_TAG = NW_99 FUNC TM-TF_990 DO ; ::36:: IF VAR_TAG = NW_99 FUNC TM-TF_991 DO ; ::37:: IF VAR_TAG = NW_99 FUNC TM-TF_992 DO ; ::38:: IF VAR_TAG = NW_99 FUNC TM-TF_997 DO ; ::39:: IF VAR_TAG = NW_99 FUNC TM-TF_993 DO ; ::40:: IF VAR_TAG = NW_99 FUNC TM-TF_994 DO ; ::41:: IF NW_0 > NW_1 UND VAR_TAG = NW_99 FUNC TM-TF_996 DO ; */