Subversion Repositories bacoAlunos

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.services.courses.coursereport;

import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.CourseUnitEvaluationImpl;
import pt.estgp.estgweb.domain.CourseUnitImpl;
import pt.estgp.estgweb.domain.Teacher;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.courseunitreport.CourseUnitSection;
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.courseunitreport.components.ReportTeacher;
import pt.estgp.estgweb.services.courses.coursereport.documentmodel.reportucsummary.CourseUnitDtpStat;

import java.util.ArrayList;

/**
 * Created by jorgemachado on 03/11/17.
 */

public class CourseReportUtils
{

    public static CourseUnitDtpStat createCourseUnitDtpStat(CourseUnit cu)
    {
        CourseUnitDtpStat stat = new CourseUnitDtpStat() ;
        stat.setSigesCode(cu.getCode());
        stat.setName(cu.getName());
        stat.setPeriod(((CourseUnitImpl)cu).getSemestreAbsolutoS1S2());
        stat.setPlaneamentoConteudos(cu.getStatdtpPlaneamentoFiles() > 0);
        stat.setPlaneamentoCalendarizacao(cu.getStatdtpPlaneamentoFiles() > 0);
        stat.setAvaliacaoPautas(cu.getStatdtpAvaliacaoPautasFiles() > 0);
        stat.setAvaliacaoEnunciados(cu.getStatdtpAvaliacaoEnunciadosFiles() > 0);
        stat.setRelatorio(cu.getCourseUnitEvaluation() != null && cu.getCourseUnitEvaluation().isClosed());
        stat.setFicha(cu.isStatdtpFichaCurricularValid());
        stat.setSumarios(cu.getStatdtpSumaries() > 0);
        stat.setInquerito(cu.getStatdtpInqueritoPedagogicoFiles() > 0);
        return stat;
    }

    public static CourseUnitSection createCourseUnitEvaluationSection(CourseUnitImpl cu) {

        CourseUnitSection courseUnitSection = new CourseUnitSection();

        courseUnitSection.setTitle("Relatório de Avaliação de " + cu.getName() + " (" + cu.getCode() + ")");
        courseUnitSection.setName(cu.getName());
        courseUnitSection.setCourseUnitId(cu.getId());
        courseUnitSection.setSigesCode(cu.getCode());
        courseUnitSection.setPeriod(cu.getSemestreAbsolutoS1S2());
        if(cu.getResponsableTeacher() != null)
        {
            ReportTeacher reportTeacher = new ReportTeacher();
            reportTeacher.setSigesCode("" + cu.getResponsableTeacher().getSigesCode());
            reportTeacher.setName(cu.getResponsableTeacher().getName());
            courseUnitSection.setResponsableTeacher(reportTeacher);
        }


        courseUnitSection.setTeachers(new ArrayList<ReportTeacher>());
        for(Teacher t : cu.getTeachers())
        {
            ReportTeacher reportTeacher = new ReportTeacher();
            reportTeacher.setSigesCode("" + t.getSigesCode());
            reportTeacher.setName(t.getName());
            courseUnitSection.getTeachers().add(reportTeacher);
        }

        if(cu.getCourseUnitEvaluation() != null)
        {
            courseUnitSection.setCourseUnitEvaluation((CourseUnitEvaluationImpl) DaoFactory.getCourseUnitEvaluationDaoImpl().narrow(cu.getCourseUnitEvaluation()));
        }

        CourseUnitImpl cuImpl = (CourseUnitImpl) cu;

        int ano = cuImpl.getAnoPlanoFromStudiesPlan();
        //o ano podera ser -1 caso nao encontre plano para ele
        courseUnitSection.setAnoPlano(ano);

        return courseUnitSection;
    }

    public static CourseUnitDtpStat findCourseUnitDtpStat(CourseUnitDtpStat[] statsLoaded, CourseUnitImpl courseUnit)
    {
        for(CourseUnitDtpStat stat: statsLoaded)
        {
            if(stat.getSigesCode().equals(courseUnit.getCode()) &&
                    stat.getPeriod().equals(courseUnit.getSemestreAbsolutoS1S2()))
            {
                return stat;
            }
        }
        return null;
    }

    public static CourseUnitSection findCourseUnitSection(CourseUnitSection[] sectionLoaded, CourseUnitImpl courseUnit)
    {
        for(CourseUnitSection section: sectionLoaded)
        {
            if(section.getSigesCode().equals(courseUnit.getCode()) &&
                    section.getPeriod().equals(courseUnit.getSemestreAbsolutoS1S2()))
            {
                return section;
            }
        }
        return null;
    }
}