Subversion Repositories bacoAlunos

Rev

Rev 1572 | Rev 1623 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1572 Rev 1585
Line 314... Line 314...
314
            logger.warn(logMessages.getLastMessage());
314
            logger.warn(logMessages.getLastMessage());
315
            serviceLogError(logMessages.getLastMessage());
315
            serviceLogError(logMessages.getLastMessage());
316
            throw new NotAuthorizedException("Nao tem autorização para agendar atribuições de cursos num questioário com respostas");
316
            throw new NotAuthorizedException("Nao tem autorização para agendar atribuições de cursos num questioário com respostas");
317
        }
317
        }
318
 
318
 
-
 
319
        //aqui sacamos os cursos seleccionados que sao serializados em JSON no Questionario e sao necessários como parametro ao serviço
319
        1.5.0/docs/api/java/lang/String.html">String[] coursesList = deserializeCoursesList(q);
320
        1.5.0/docs/api/java/lang/String.html">String[] coursesList = deserializeCoursesList(q);
320
        //Colocamos já aqui o estado para nao se poder mudar o Ano e o Semestre
321
        //Colocamos já aqui o estado para nao se poder mudar o Ano e o Semestre
321
 
322
 
322
        /**logging**/
323
        /**logging**/
323
        1.5.0/docs/api/java/lang/String.html">String msg = "Starting running service for questionario: " + q.getId() + " - " + q.getiAnswersProcessorClass().getTitle();
324
        1.5.0/docs/api/java/lang/String.html">String msg = "Starting running service for questionario: " + q.getId() + " - " + q.getiAnswersProcessorClass().getTitle();
Line 455... Line 456...
455
     */
456
     */
456
    private void createCursoAfeto(QuestionarioImpl q, Course c, DefaultLogMessages logMessages) throws 1.5.0/docs/api/java/io/IOException.html">IOException, TransformationException
457
    private void createCursoAfeto(QuestionarioImpl q, Course c, DefaultLogMessages logMessages) throws 1.5.0/docs/api/java/io/IOException.html">IOException, TransformationException
457
    {
458
    {
458
        1.5.0/docs/api/java/lang/String.html">String msg;
459
        1.5.0/docs/api/java/lang/String.html">String msg;
459
        QuestionarioPedagogicoCursoAfetoImpl cursoAfeto = null;
460
        QuestionarioPedagogicoCursoAfetoImpl cursoAfeto = null;
-
 
461
        //esta aqui um to_do mas foi revisto e nao aparenta haver problemas
-
 
462
        // As unidades do curso sao carregadas mais abaixo e são adicionadas,
-
 
463
        // Todas as não adicionadas são removidas seguidamente usando a lista de adicionadas.
460
        //todo fazer aqui um teste a ver se na lista de unidades found vem as unidades do curso afeto
464
        //  to_do antigo: fazer aqui um teste a ver se na lista de unidades found vem as unidades do curso afeto
461
        //reativar o set e testar isso
465
        //reativar o set e testar isso
-
 
466
 
-
 
467
        //isto serve para o caso do curso ter sido afeto mais que uma vez, tem de se remover as afetacoes e deixar apenas uma
462
        List<QuestionarioPedagogicoCursoAfeto> cursosFound = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().find(q.getId(),c.getCode());
468
        List<QuestionarioPedagogicoCursoAfeto> cursosFound = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().find(q.getId(),c.getCode());
463
        if(cursosFound != null && cursosFound.size() > 1)
469
        if(cursosFound != null && cursosFound.size() > 1)
464
        {
470
        {
465
            msg = "Encontrados mais que um curso nos mesmos códigos:" + c.getCode() + " apagando um";
471
            msg = "Encontrados mais que um curso nos mesmos códigos:" + c.getCode() + " apagando um";
466
            serviceLogWarn(msg);
472
            serviceLogWarn(msg);
Line 502... Line 508...
502
 
508
 
503
 
509
 
504
 
510
 
505
        List<Long> newUnitCodesList = new ArrayList<Long>();
511
        List<Long> newUnitCodesList = new ArrayList<Long>();
506
        int countUnits = 0;
512
        int countUnits = 0;
-
 
513
        //vai buscar todas as unidades da base de dados que fazem match as necessidades
507
        List<CourseUnitDaoImpl.CourseUnitResult> results = DaoFactory.getCourseUnitDaoImpl().loadCourseUnits(c.getId(), q.getSemestre(), q.getYear());
514
        List<CourseUnitDaoImpl.CourseUnitResult> results = DaoFactory.getCourseUnitDaoImpl().loadCourseUnits(c.getId(), q.getSemestre(), q.getYear());
508
        int totalUnits =  results.size();
515
        int totalUnits =  results.size();
509
        for(CourseUnitDaoImpl.CourseUnitResult cur : results)
516
        for(CourseUnitDaoImpl.CourseUnitResult cur : results)
510
        {
517
        {
511
            countUnits++;
518
            countUnits++;
Line 514... Line 521...
514
            /** logging **/
521
            /** logging **/
515
            msg = "---->(" + countUnits + " of " + totalUnits  +") CourseUnit loaded: " + cu.getName() + "(" + cu.getCode() + ")";
522
            msg = "---->(" + countUnits + " of " + totalUnits  +") CourseUnit loaded: " + cu.getName() + "(" + cu.getCode() + ")";
516
            serviceLogInfo(msg);
523
            serviceLogInfo(msg);
517
            logger.info(msg);
524
            logger.info(msg);
518
            /** logging **/
525
            /** logging **/
-
 
526
            //este metodo procura a unidade primeiro e apenas a cria se ela ainda nao existir como afeta
519
            createUnidadeAfeta(cursoAfeto, cur,cu, logMessages);
527
            createUnidadeAfeta(cursoAfeto, cur,cu, logMessages);
520
            DaoFactory.getCourseUnitDaoImpl().evict(cu);
528
            DaoFactory.getCourseUnitDaoImpl().evict(cu);
521
        }
529
        }
522
 
530
 
-
 
531
        //o problema poderia dar-se se uma unidade desaparece da base de dados, nesse caso ela já era afeta e o sistema nao a iria remover
-
 
532
        //porque apesar de nao estar na nova lista de codigos, tb nao esta no curso afeto, mas o sistema
-
 
533
        //o que faz é carregar todas as afetas e remover todas as que nao estejam na lista de novas
523
        removeUnselectedUnits(cursoAfeto,newUnitCodesList);
534
        removeUnselectedUnits(cursoAfeto,newUnitCodesList);
524
    }
535
    }
525
 
536
 
526
    /**
537
    /**
527
     *
538
     *