Subversion Repositories bacoAlunos

Rev

Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.services.courseunits;

import jomm.utils.PdfUtils;
import org.apache.fop.apps.FOPException;
import org.apache.log4j.Logger;
import org.dom4j.*;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.views.CourseUnitEvaluationView;
import pt.estgp.estgweb.domain.views.CourseUnitProgramView;
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum;
import pt.estgp.estgweb.services.data.RepositoryService;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.utils.DatesUtils;
import pt.estgp.estgweb.utils.Dom4jUtil;
import pt.estgp.estgweb.utils.StringsUtils;
import pt.utl.ist.berserk.logic.serviceManager.IService;

import javax.xml.transform.TransformerException;
import javax.xml.transform.dom.DOMSource;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/*
 * @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt
 *
 *
 * Created at 17/Out/2003 , 23:45:24
 *
 */


/**
 * @author Jorge Machado
 *
 *
 * So pode editar o programa da unidade o coordenador do curso ou o responsavel da unidade
 * ou o docente da unidade ou tem o role de validacao do curso a comissao de curso
 *
 * Created at 17/Out/2003 , 23:45:24
 *
 */

public class SaveCourseUnitEvaluation implements IService
{



    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(SaveCourseUnitEvaluation.class);

    public CourseUnitEvaluationView run(CourseUnitEvaluationView cupv, 1.5.0/docs/api/java/lang/Long.html">Long coursUnitId, UserSession usession) throws ServiceException, 1.5.0/docs/api/javax/xml/transform/TransformerException.html">TransformerException, 1.5.0/docs/api/java/io/IOException.html">IOException, FOPException {

        CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(coursUnitId);

        CourseUnitEvaluation evaluation = c.getCourseUnitEvaluation();
        if(evaluation == null)
        {
            evaluation = new CourseUnitEvaluationImpl();
            DaoFactory.getCourseUnitEvaluationDaoImpl().save(evaluation);
            c.setCourseUnitEvaluation(evaluation);
        }
//

        if(usession.getUser() instanceof Teacher &&
                ((((Teacher)(usession.getUser())).isTeacherOfCourseUnit(c.getId(),true))
                        ||
                        (c.getResponsableTeacher()!=null && usession.getUser().getId() == c.getResponsableTeacher().getId())
        ))
        {
            cupv.persistViewInObjectTeacher(evaluation);
        }
        if(usession.getUser() instanceof Teacher
                && (((usession.getUser())).hasRole(c.getCourse().getValidationRole())
                ||
                ((usession.getUser()) == c.getCourse().getCoordinator()))
                )
        {
            cupv.persistViewInObjectTeacher(evaluation);
        }
        List<String> errors = new ArrayList<String>();

        if(usession.getUser() instanceof Teacher)
            DirectedCoordinatedUnitsService.sendNotificationsEditedInterestedPeople(c,usession);
        else
        {
            logger.info("Nao vai informar docentes");
        }
       
        return cupv;
    }


}