Closed jairofsouza closed 9 years ago
Primeiro eu tenho que mudar os tipos de prazo em Prazo, adicionando um novo: (linha 29) public static final int ENTREGA_TCC_BANCA = 1, ENTREGA_FORM_BANCA = 2, DEFESA = 3, ENTREGA_FINAL = 4, PRAZO_PROJETO = 0;
em PrazoBussiness mudar o getDescription() para: public String getDescription(int type) { switch (type) { case Prazo.ENTREGA_TCC_BANCA: return "Data limite para entrega da versão do trabalho para a banca"; case Prazo.ENTREGA_FORM_BANCA: return "Data limite para entrega do formulário da banca"; case Prazo.DEFESA: return "Data limite para defesa"; case Prazo.ENTREGA_FINAL: return "Data limite para entrega da ata de defesa e versão final do trabalho"; case Prazo.PRAZO_PROJETO: return "Data limite para entrega da versão do projeto para a coordenação do curso"; }
return "";
}
e no init() do CadastroPrazosController precisamos mudar o for depois do else
(linha 65) for (int i = 0; i < 5; i++) {
Prazo aux = new Prazo();
aux.setCalendarioSemestre(this.calendar);
aux.setTipo(i);
switch (i) {
case Prazo.ENTREGA_TCC_BANCA:
aux.setDataFinal(finalDate.minusDays(14).toDate());
break;
case Prazo.ENTREGA_FORM_BANCA:
aux.setDataFinal(finalDate.minusDays(14).toDate());
break;
case Prazo.DEFESA:
aux.setDataFinal(finalDate.minusDays(7).toDate());
break;
case Prazo.ENTREGA_FINAL:
aux.setDataFinal(finalDate.toDate());
break;
case Prazo.PRAZO_PROJETO:
DateTime agora = new DateTime();
agora = agora.now();
agora = agora.minusDays(-21);
if(agora.isBefore(finalDate.minusDays(14)))
aux.setDataFinal(agora.toDate());
else
aux.setDataFinal(finalDate.minusDays(14).toDate());
break;
}
prazos.add(aux);
}
Agora todas as datas estão aparecendo, precisamos filtrar:
No HomeAlunoController, na função init(), logo apos verificar se ha um calendario, adicionar o seguinte trecho:
(linha 46) prazos = getCurrentCalendar().getPrazos();
TCC tccUsuario = (new TCCBusiness()).getCurrentTCCByAuthor(getUsuario(), getCurrentCalendar(getUsuario().getCurso()));
if(tccUsuario!=null)
if(tccUsuario.isProjeto())
{
for(int i=0;i<prazos.size();i++)
if(prazos.get(i).getTipo()!=Prazo.PRAZO_PROJETO)
{
prazos.remove(i);
i--;
}
}
else
{
for(int i=0;i<prazos.size();i++)
if(prazos.get(i).getTipo()==Prazo.PRAZO_PROJETO)
{
prazos.remove(i);
i--;
}
}
e em TCCBussines modificar as seguintes funções para ficar da seguinte maneira:
public boolean getMissing(TCC tcc, boolean checkFile){ errors.clear();
validateOrientador(tcc.getOrientador());
validateName(tcc.getNomeTCC());
validateResumo(tcc.getResumoTCC());
validateData(tcc.getDataApresentacao(),tcc);
validateSala(tcc.getSalaDefesa(),tcc);
validateBanca(tcc.getParticipacoes(),tcc);
if(checkFile)
validateArquivoBanca(tcc.getArquivoTCCBanca());
return errors.size() == 0 ? false : true;
}
public void validateData(Timestamp timestamp, TCC tcc) {
if(tcc!=null)
if (timestamp == null && !tcc.isProjeto())
errors.add("É necessário informar a Data de Apresentação\n");
}
public void validateSala(String sala, TCC tcc) {
if(tcc!=null)
if ((sala == null || sala.trim().length() == 0) && !tcc.isProjeto())
errors.add("É necessário informar a sala de Apresentação\n");
}
public void validateBanca(List<Participacao> list, TCC tcc) {
if(tcc!=null)
if ((list == null || list.size() == 0) && !tcc.isProjeto())
errors.add("É necessário informar a Banca\n");
}
Se o aluno está na fase de projeto de tcc ainda,não tem que aparecer na tela principal dele que falta enviar a data de defesa, etc. Isso só quando ele tiver o projeto de tcc aprovado.