Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 773 → Rev 774

/impl/src/java/pt/estgp/estgweb/services/sigesimports/SincronizeLastYearCourseUnitProgramsService.java
4,7 → 4,11
import org.apache.log4j.Logger;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.CourseUnit;
import pt.estgp.estgweb.domain.CourseUnitProgram;
import pt.estgp.estgweb.domain.CourseUnitProgramImpl;
import pt.estgp.estgweb.domain.CourseUnitProgramPart2Impl;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.services.courseunits.SaveCourseUnitProgram;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.services.logresults.ILogMessages;
import pt.estgp.estgweb.services.logresults.LogMessageTypeEnum;
23,8 → 27,28
{
private static final Logger logger = Logger.getLogger(SincronizeLastYearCourseUnitProgramsService.class);
 
public ILogMessages run(String year) throws ServiceException
 
/**
* DESCRICAO DE SERVICO
*
* Unidades sem ficha é-lhes atribuida a ficha do ano anterior,
* 1º é atribuido o mesmo professor como responsável
* 2º a Ficha é clonada
* 3º a Ficha fica com estado de não validada
*
* Restrições por ordem de prioridade
* - Fichas com estado validadas não são clonadas
* - Fichas invalidas poderão ser clonadas se:
* - Não existir ficha
* - ou para fichas já clonadas apenas são clonadas novamente se a condição
* de entrada cloneOnlyNews for false
*
* @param year
* @param cloneOnlyNews
* @return
* @throws ServiceException
*/
public ILogMessages run(String year,boolean cloneOnlyNews) throws ServiceException
{
 
int found = 0;
44,6 → 68,7
if(cu.getCourseUnitProgram() == null)
{
 
SaveCourseUnitProgram service = new SaveCourseUnitProgram();
List<CourseUnit> lista = DaoFactory.getCourseUnitDaoImpl().loadBySigesCodeUnique(cu.getCode(),cu.getCourseCode(),importYearBefore);
if(lista != null && lista.size() > 0)
{
56,7 → 81,27
if(cuOld.getResponsableTeacher() != null && cu.getResponsableTeacher() == null)
cu.setResponsableTeacher(cuOld.getResponsableTeacher());
 
//todo clonagem aqui
boolean novaFicha = false;
 
if(cu.getCourseUnitProgram() == null)
{
novaFicha = true;
CourseUnitProgram program = new CourseUnitProgramImpl();
DaoFactory.getCourseUnitProgramDaoImpl().save(program);
program.setCourseUnitProgramPart2(new CourseUnitProgramPart2Impl());
DaoFactory.getCourseUnitProgramPart2DaoImpl().save(program.getCourseUnitProgramPart2());
cu.setCourseUnitProgram(program);
cu.setValidProgram(false);
}
 
//So clona a ficha no caso de não estar validada pelo CC
if(novaFicha || (!cu.isValidProgram() && !cloneOnlyNews))
{
cu.getCourseUnitProgram().cloneFrom(cuOld.getCourseUnitProgram());
List<String> errors = new ArrayList<String>();
service.createPdf(cu,errors);
}
 
}
else
{
102,8 → 147,11
String year = DatesUtils.getImportYear();
if(args != null && args.length > 0)
year = args[0];
boolean cloneOnlyNews = true;
if(args != null && args.length > 1)
cloneOnlyNews = Boolean.parseBoolean(args[1]);
AbstractDao.getCurrentSession().beginTransaction();
new SincronizeLastYearCourseUnitProgramsService().run(year);
new SincronizeLastYearCourseUnitProgramsService().run(year,cloneOnlyNews);
AbstractDao.getCurrentSession().getTransaction().commit();
}
 
/impl/src/java/pt/estgp/estgweb/domain/CourseUnitProgramImpl.java
17,10 → 17,7
import java.io.Serializable;
import java.net.MalformedURLException;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
 
import static pt.estgp.estgweb.utils.Dom4jUtil.parse;
 
900,4 → 897,53
// cu.setValidProgram(valiPrograms);
// }
 
 
 
/**
*
* Este metodo de clonagem apenas copia valores ddo proprio programa para o programa a clonar
*
* @param toClone
*/
 
public void cloneFrom(CourseUnitProgram toClone)
{
setAdaptacaoObjectivosMetodologia(toClone.getAdaptacaoObjectivosMetodologia());
setBibliografia(toClone.getBibliografia());
setBibliografiaComplementar(toClone.getBibliografiaComplementar());
setCargaHorariaO(toClone.getCargaHorariaO());
setCargaHorariaOT(toClone.getCargaHorariaOT());
setCargaHorariaPL(toClone.getCargaHorariaPL());
setCargaHorariaS(toClone.getCargaHorariaS());
setCargaHorariaT(toClone.getCargaHorariaT());
setCargaHorariaTC(toClone.getCargaHorariaTC());
setCargaHorariaTotal(toClone.getCargaHorariaTotal());
setCargaHorariaTP(toClone.getCargaHorariaTP());
setDemonstracaoCargaEcts(toClone.getDemonstracaoCargaEcts());
setEcts(toClone.getEcts());
setGarantiaAvaliacaoFuncaObjectivos(toClone.getGarantiaAvaliacaoFuncaObjectivos());
setLingua1(toClone.getLingua1());
setLingua2(toClone.getLingua2());
setMetodologiasActividadeCientifica(toClone.getMetodologiasActividadeCientifica());
setObrigatoria(toClone.getObrigatoria());
setPrerequisitos(toClone.getPrerequisitos());
if(getSaveDate() == null)
setSaveDate(new Date());
setUpdateDate(new Date());
 
 
getCourseUnitProgramPart2().setAvaliacaoEspeciaisFrequencia(toClone.getCourseUnitProgramPart2().getAvaliacaoEspeciaisFrequencia());
getCourseUnitProgramPart2().setAvaliacaoEspeciaissExame(toClone.getCourseUnitProgramPart2().getAvaliacaoEspeciaissExame());
getCourseUnitProgramPart2().setAvaliacaoOrdinariosExame(toClone.getCourseUnitProgramPart2().getAvaliacaoOrdinariosExame());
getCourseUnitProgramPart2().setAvaliacaoOrdinariosFrequencia(toClone.getCourseUnitProgramPart2().getAvaliacaoOrdinariosFrequencia());
getCourseUnitProgramPart2().setConteudos(toClone.getCourseUnitProgramPart2().getConteudos());
getCourseUnitProgramPart2().setDemonstracaoCoerenciaConteudos(toClone.getCourseUnitProgramPart2().getDemonstracaoCoerenciaConteudos());
getCourseUnitProgramPart2().setDemonstracaoObjectivosMetodologia(toClone.getCourseUnitProgramPart2().getDemonstracaoObjectivosMetodologia());
getCourseUnitProgramPart2().setMetodologiasEnsino(toClone.getCourseUnitProgramPart2().getMetodologiasEnsino());
getCourseUnitProgramPart2().setObjectivos(toClone.getCourseUnitProgramPart2().getObjectivos());
if(getCourseUnitProgramPart2().getSaveDate() == null)
getCourseUnitProgramPart2().setSaveDate(new Date());
getCourseUnitProgramPart2().setUpdateDate(new Date());
 
}
}