public List<TeacherCreditsReportDTO> run(Unit unit, ExecutionPeriod fromExecutionPeriod,
public List<TeacherCreditsReportDTO> run(Unit department, ExecutionPeriod fromExecutionPeriod,
    public List<TeacherCreditsReportDTO> run(Unit unit, ExecutionPeriod fromExecutionPeriod,            ExecutionPeriod untilExecutionPeriod) throws ExcepcaoPersistencia {        List<ExecutionPeriod> executionPeriodsBetween = getExecutionPeriodsBetween(fromExecutionPeriod,                untilExecutionPeriod);        List<Teacher> teachers = unit.getTeachers(fromExecutionPeriod.getBeginDateYearMonthDay(),                untilExecutionPeriod.getEndDateYearMonthDay());        List<TeacherCreditsReportDTO> creditLines = new ArrayList<TeacherCreditsReportDTO>();        for (Teacher teacher : teachers) {            if (!verifyIfTeacherIsMonitor(teacher, executionPeriodsBetween)                    && !verifyIfTeacherIsInactive(teacher, executionPeriodsBetween)                    && !verifyIfTeacherIsDeath(teacher)) {                TeacherCreditsReportDTO creditsReportDTO = new TeacherCreditsReportDTO();                creditsReportDTO.setTeacher(teacher);                for (ExecutionPeriod executionPeriod : executionPeriodsBetween) {                    updateCreditLine(teacher, executionPeriod, creditsReportDTO, true);                }                List<Contract> contracts = teacher.getPerson().getEmployee().getContractsByPeriod(                        fromExecutionPeriod.getBeginDateYearMonthDay(), untilExecutionPeriod.getEndDateYearMonthDay());                Unit workingUnit = getTeacherWorkingUnit(unit, contracts);                creditsReportDTO.setUnit(workingUnit);                creditsReportDTO.setPastCredits(teacher.getBalanceOfCreditsUntil(fromExecutionPeriod                        .getPreviousExecutionPeriod()));                creditLines.add(creditsReportDTO);            }        }        return creditLines;    }