Subversion Repositories bacoAlunos

Rev

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

package pt.estgp.estgweb.domain.dao.impl;

import jomm.dao.impl.AbstractDao;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Expression;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projections;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.dao.DaoUtils;
import pt.estgp.estgweb.services.common.SearchTypeEnum;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.List;

import static org.hibernate.criterion.Restrictions.*;

/**
 * @author Jorge Machado
 * @date 28/Fev/2008
 * @time 2:51:06
 * @see pt.estgp.estgweb.domain.dao.impl
 */

public class CourseDaoImpl extends CourseDao
{
    public static CourseDaoImpl getInstance()
    {
        if (myInstance == null)
            myInstance = new CourseDaoImpl();
        return (CourseDaoImpl) myInstance;
    }

    public CourseImpl findCourseByCode(1.5.0/docs/api/java/lang/String.html">String code)
    {
        return (CourseImpl) createCriteria().add(eq("code", code)).uniqueResult();
    }

    public List<Course> findValidateRole(1.5.0/docs/api/java/lang/String.html">String role)
    {
        return createCriteria().add(eq("validationRole", role)).list();
    }

    public CourseImpl findCourseByCodeAndYear(1.5.0/docs/api/java/lang/String.html">String code, 1.5.0/docs/api/java/lang/String.html">String year)
    {
        return (CourseImpl) createCriteria().add(eq("code", code)).add(eq("importYear", year)).uniqueResult();
    }


    public int countCoursesActualYear(1.5.0/docs/api/java/lang/String.html">String query, SearchTypeEnum searchType)
    {
        Criterion c = DaoUtils.createSearchQuery(query, searchType, "name", "description");
        return createCriteria()
                .add(c)
                .add(eq("importYear", DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear()))
                .list().size();
    }

    public int countCoursesUnits(1.5.0/docs/api/java/lang/String.html">String importYear,long courseId)
    {
  /*      return createCriteria()
                .createAlias("courseUnits", "c")
                .setProjection(Projections.property("c.id"))
                .add(eq("c.importYear", importYear))
                .add(eq("id", courseId))
                .list().size();
*/

        return (1.5.0/docs/api/java/lang/Integer.html">Integer) createCriteria(CourseUnit.class)
                .setProjection(Projections.rowCount())
                .add(eq("importYear",importYear))
                .add(eq("course.id",courseId))
                .uniqueResult();
    }

    public int countCoursesUnits(1.5.0/docs/api/java/lang/String.html">String importYear,long courseId,1.5.0/docs/api/java/lang/String.html">String semestre)
    {
  /*      return createCriteria()
                .createAlias("courseUnits", "c")
                .setProjection(Projections.property("c.id"))
                .add(eq("c.importYear", importYear))
                .add(eq("id", courseId))
                .list().size();
*/

        return (1.5.0/docs/api/java/lang/Integer.html">Integer) createCriteria(CourseUnit.class)
                .setProjection(Projections.rowCount())
                .add(eq("importYear",importYear))
                .add(eq("semestre",semestre))
                .add(eq("course.id",courseId))
                .uniqueResult();
    }


    public int countCoursesUnitsTurmas(1.5.0/docs/api/java/lang/String.html">String importYear,long courseId)
    {
        return (1.5.0/docs/api/java/lang/Integer.html">Integer) createCriteria(CourseUnitTurma.class)
                .setProjection(Projections.countDistinct("turma"))
                .createAlias("courseUnit", "courseUnit")
                .createAlias("students", "student")
                .add(eq("courseUnit.importYear",importYear))
                .add(eq("courseUnit.course.id",courseId))
                .uniqueResult();
    }

    public int countCoursesUnitsNot(1.5.0/docs/api/java/lang/String.html">String importYear,long courseId)
    {
        return createCriteria()
                .createAlias("courseUnits", "c")
                .setProjection(Projections.property("c.id"))
                .add(not(eq("c.importYear", importYear)))
                .add(eq("id", courseId))
                .list().size();
    }

    public List<Long> findCoursesUnitsIds(1.5.0/docs/api/java/lang/String.html">String importYear,long courseId)
    {
        return createCriteria()
                .createAlias("courseUnits", "c")
                .setProjection(Projections.property("c.id"))
                .add(eq("id", courseId))
                .add(eq("c.importYear", importYear))
                .addOrder(Order.asc("c.name"))
                .list();
    }

    public List<Long> findCoursesUnitsIds(long courseId)
    {
        return createCriteria()
                .createAlias("courseUnits","c")
                .setProjection(Projections.property("c.id"))
                .add(eq("id", courseId))
                .addOrder(Order.asc("c.importYear"))
                .addOrder(Order.asc("c.name"))
                .list();
    }

    public List<Course> searchActualYear(1.5.0/docs/api/java/lang/String.html">String query, SearchTypeEnum searchTypeEnum, int max, int page)
    {
        Criterion c = DaoUtils.createSearchQuery(query, searchTypeEnum, "name", "description");
        Criteria criteria = createCriteria();
        criteria.add(c)
                .add(eq("importYear", DaoFactory.getConfigurationDaoImpl().getInterfaceImportYear()))
                .addOrder(Order.asc("name"))
                .setMaxResults(max)
                .setFirstResult(page * max);
        return criteria.list();
    }


    public List<Course> findAllOrderByName()
    {
        return createCriteria()
                .addOrder(Order.asc("name"))
                .list();
    }

    public List<Course> findAllImportYearOrderByName(1.5.0/docs/api/java/lang/String.html">String importYear, 1.5.0/docs/api/java/lang/String.html">String area)
    {
        Criteria c = createCriteria();
        if (importYear != null && importYear.length() > 0)
        {
            c.add(eq("importYear", importYear));
        }
        if (area != null && area.length() > 0)
        {
            c.add(eq("area", area));
        }
        return c.addOrder(Order.asc("name"))
                .list();
    }

    public List<Course> findAllOrderByName(1.5.0/docs/api/java/lang/String.html">String importYear)
    {
        return createCriteria()
                .add(eq("cu.importYear", importYear))
                .addOrder(Order.asc("name"))
                .list();
    }

    public List<Course> findAllOrderByNameEvenWithoutCourseUnit(1.5.0/docs/api/java/lang/String.html">String importYear, 1.5.0/docs/api/java/lang/String.html">String area, 1.5.0/docs/api/java/lang/String.html">String type)
    {
        Criteria c = createCriteria();

       /* c.setProjection(Projections.projectionList()
                            .add(Projections.distinct(Projections.id())));*/

        if (importYear != null && importYear.length() > 0)
            c.add(eq("importYear", importYear));
        if (area != null && area.length() > 0)
            c.add(eq("area", area));
        if (type != null && type.length() > 0)
            c.add(eq("degree", type));
        return c.addOrder(Order.asc("name"))
                .list();
    }

    public List<Course> findAllActiveOrderByNameEvenWithoutCourseUnit()
    {
        Criteria c = createCriteria();

         /* c.setProjection(Projections.projectionList()
                              .add(Projections.distinct(Projections.id())));*/

        c.add(eq("status", true));
        return c.addOrder(Order.asc("name"))
                .list();
    }


    public List<Course> findAllShowStudiesPlanCoursesOrderByNameEvenWithoutCourseUnit(1.5.0/docs/api/java/lang/String.html">String institutionalCode, 1.5.0/docs/api/java/lang/String.html">String degree)
    {
        return findAllCoursesOrderByNameEvenWithoutCourseUnit(institutionalCode,degree,true);
    }

    public List<String> findDegrees(1.5.0/docs/api/java/lang/String.html">String institutionalCode,boolean showWithStudiesPlanActive)
    {
        1.5.0/docs/api/javax/management/Query.html">Query q = getCurrentSession().createQuery("select distinct (degree) from " + Course.class.getName() +
        " where department.courseSchool.institutionalCode = :institutionalCode " +
                (showWithStudiesPlanActive ? " and showStudiesPlan = true " : " " ) +
        " order by degree ");
        q.setString("institutionalCode",institutionalCode);

        return q.list();
    }

    public List<Course> findAllCoursesOrderByNameEvenWithoutCourseUnit(1.5.0/docs/api/java/lang/String.html">String institutionalCode, 1.5.0/docs/api/java/lang/String.html">String degree,boolean showWithStudiesPlanActive)
    {
        Criteria c = createCriteria();
        c.createAlias("department", "d");
        c.createAlias("d.courseSchool","sc");

        if(showWithStudiesPlanActive)
            c.add(eq("showStudiesPlan", true));

        if (degree != null && degree.length() > 0)
            c.add(eq("degree", degree));

        if (institutionalCode != null && institutionalCode.length() > 0)
            c.add(eq("sc.institutionalCode", institutionalCode));

        return c.addOrder(Order.asc("name"))
                .list();
    }

    public List<Course> findAllActiveOrderByNameEvenWithoutCourseUnit(1.5.0/docs/api/java/lang/String.html">String importYear, 1.5.0/docs/api/java/lang/String.html">String area, 1.5.0/docs/api/java/lang/String.html">String type)
      {
          Criteria c = createCriteria();

         /* c.setProjection(Projections.projectionList()
                              .add(Projections.distinct(Projections.id())));*/

          if (importYear != null && importYear.length() > 0)
              c.add(eq("status", true));
          if (area != null && area.length() > 0)
              c.add(eq("area", area));
          if (type != null && type.length() > 0)
              c.add(eq("degree", type));
          return c.addOrder(Order.asc("name"))
                  .list();
      }

    public List<Course> findCoursesWithUnitsIn(1.5.0/docs/api/java/lang/String.html">String importYear)
    {
        return findAllOrderByName(importYear,null,null,null);
    }

    public List<String> loadInstitutionCodes(1.5.0/docs/api/java/lang/String.html">String importYear)
    {
        return
                createCriteria()
                        .createAlias("department", "d")
                        .createAlias("d.courseSchool","sc")
                        .setProjection(Projections
                                .distinct(Projections.projectionList()
                                        .add(Projections.property("sc.institutionalCode"))))
                        .add(1.5.0/docs/api/java/beans/Expression.html">Expression.isNotNull("sc.institutionalCode"))
                        .list();
    }
    public List<Course> findCoursesWithUnitsIn(1.5.0/docs/api/java/lang/String.html">String importYear,1.5.0/docs/api/java/lang/String.html">String institutionCode, 1.5.0/docs/api/java/lang/String.html">String semestre)
    {
        return findAllOrderByName(importYear,null,null,institutionCode,semestre);
    }
    public List<Course> findCoursesWithUnitsIn(1.5.0/docs/api/java/lang/String.html">String importYear,1.5.0/docs/api/java/lang/String.html">String institutionCode)
    {
        return findAllOrderByName(importYear,null,null,institutionCode);
    }

    public List<Course> findAllOrderByName(1.5.0/docs/api/java/lang/String.html">String importYear, 1.5.0/docs/api/java/lang/String.html">String area, 1.5.0/docs/api/java/lang/String.html">String type)
    {
        return findAllOrderByName(importYear,area,type,null);
    }

    public List<Course> findAllOrderByName(1.5.0/docs/api/java/lang/String.html">String importYear, 1.5.0/docs/api/java/lang/String.html">String area, 1.5.0/docs/api/java/lang/String.html">String type,1.5.0/docs/api/java/lang/String.html">String institutionCode)
    {
        return findAllOrderByName(importYear,area,type,institutionCode,null);
    }
    public List<Course> findAllOrderByName(1.5.0/docs/api/java/lang/String.html">String importYear, 1.5.0/docs/api/java/lang/String.html">String area, 1.5.0/docs/api/java/lang/String.html">String type,1.5.0/docs/api/java/lang/String.html">String institutionCode, 1.5.0/docs/api/java/lang/String.html">String semestre)
    {

        1.5.0/docs/api/java/lang/String.html">String query = "select distinct c from c in class Course join c.courseUnits cu where ";
        1.5.0/docs/api/java/lang/String.html">String logic = " ";
        if (importYear != null && importYear.length() > 0)
        {
            query += logic + "cu.importYear = :importYear ";
            logic = " and ";
        }
        if (institutionCode != null && institutionCode.trim().length() > 0)
        {
            query += logic + "c.department.courseSchool.institutionalCode = :institutionCode ";
            logic = " and ";
        }
        if (area != null && area.length() > 0)
        {
            query += logic + "c.area = :area ";
            logic = " and ";
        }
        if (type != null && type.length() > 0)
        {
            query += logic + "c.degree = :degree ";
            logic = " and ";
        }
        if (semestre != null && semestre.length() > 0)
        {
            query += logic + "cu.semestre = :semestre ";
            logic = " and ";
        }
        query += " order by c.name asc";

        1.5.0/docs/api/javax/management/Query.html">Query q = getCurrentSession().createQuery(query);
        if (importYear != null && importYear.length() > 0)
        {
            q.setString("importYear",importYear);
        }
        if (institutionCode != null && institutionCode.trim().length() > 0)
        {
            q.setString("institutionCode",institutionCode);
        }
        if (area != null && area.length() > 0)
        {
            q.setString("area",area);
        }
        if (type != null && type.length() > 0)
        {
            q.setString("degree",type);
        }
        if (semestre != null && semestre.length() > 0)
        {
            q.setString("semestre",semestre);
        }
       /* c.setProjection(Projections.projectionList()
                            .add(Projections.distinct(Projections.id())));*/

        return q.list();
    }



    public List<String> loadImportYears()
    {
        1.5.0/docs/api/javax/management/Query.html">Query q = createQuery("select distinct c.importYear from c in class " + CourseUnit.class.getName() + " order by c.importYear desc");
        return q.list();
    }

    public List<Course> loadAllCourses(long teacherId, 1.5.0/docs/api/java/lang/String.html">String importYear)
    {
        return
                createCriteria()
                        .add(eq("importYear", importYear))
                        .list();
    }

    public List<Course> loadCoordinatedCourses(long teacherId, 1.5.0/docs/api/java/lang/String.html">String importYear)
    {
        return
                createCriteria()
                        .add(eq("coordinator.id", teacherId))
                        .add(eq("importYear", importYear))
                        .list();
    }

    public List<Course> loadDirectorCourses(long teacherId, 1.5.0/docs/api/java/lang/String.html">String importYear)
    {
        return
                createCriteria()
                        .add(eq("director.id", teacherId))
                        .add(eq("importYear", importYear))
                        .list();
    }

    public List<Course> findAll(1.5.0/docs/api/java/lang/String.html">String importYear)
    {
        return createCriteria().add(eq("importYear", importYear)).addOrder(Order.asc("name"))
                .list();
    }

    public List<Course> findAllStatus(1.5.0/docs/api/java/lang/String.html">String importYear,boolean status)
    {
        return createCriteria()
                .add(eq("importYear", importYear))
                .add(eq("status", status))
                .addOrder(Order.asc("name"))
                .list();
    }

    public List<Course> findActiveCourses(1.5.0/docs/api/java/lang/String.html">String importYear)
    {
        return findAllStatus(importYear,true);
    }

    /**
     * Return only courses if user is from CourseCommission or Coordinator or have role Globals.SERVICES_PROGRAMS_ROLE
     * otherwise return null;
     * @param importYear
     * @param u
     * @return
     */

    public List<Course> findActiveCoursesCoordinationsOrCommissions(1.5.0/docs/api/java/lang/String.html">String importYear,User u)
    {
        Criteria cri = getCriteriaForComissionsAndCoordinationsOr(u);
        if(cri == null)
            return new ArrayList<Course>();
        return cri
                //.add(eq("importYear", importYear)) Nao podemos ter isto senao caso tenhamos o sistema num ano de interface diferente nao vem cursos nenhuns a nao ser os que desapareceram
                // no passado e mantiveram o ano anterior
                .add(eq("status", true))
                .addOrder(Order.asc("name"))
                .list();

    }



    public Criteria getCriteriaForComissionsAndCoordinationsOr(User u)
    {
        return getCriteriaForComissionsAndCoordinationsOr(u,null,null);
    }
    /**
     * Restricts only courses if user is from CourseCommission or Coordinator or have role Globals.SERVICES_PROGRAMS_ROLE
     * @param u
     * @return
     */

    public Criteria getCriteriaForComissionsAndCoordinationsOr(User u,1.5.0/docs/api/java/lang/String.html">String courseAlias,Criteria init)
    {
        if(courseAlias == null)
            courseAlias = "";
        else
            courseAlias = courseAlias + ".";
        if(u.hasRole(Globals.SERVICES_PROGRAMS_ROLE))
        {
            if(init != null)
                return init;
            else
                return createCriteria();
        }
        else if(u instanceof TeacherImpl)
        {
            TeacherImpl tImpl = (TeacherImpl) DaoFactory.getTeacherDaoImpl().get(u.getId());
            List<String> coordinatedRolesCourses = tImpl.obtainCourseComissionsAndCoordinationsRoles();
            Criteria cri = init != null ? init : createCriteria();


            if(coordinatedRolesCourses.size() > 0)
            {
                cri.createAlias(courseAlias + "coordinator", "coord");
                Criterion criterion = eq("coord.id", u.getId());
                for(1.5.0/docs/api/java/lang/String.html">String role: coordinatedRolesCourses)
                {
                    criterion = or(criterion,eq(courseAlias+"validationRole",role));
                }
                cri.add(criterion);
                return cri;
            }
            else
                return cri;
        }
        else
        {
            return null;
        }
    }

    public List<Course> findAllNotIn(1.5.0/docs/api/java/lang/String.html">String importYear)
    {
        return createCriteria().add(not(eq("importYear", importYear)))
                .list();
    }

   

     // Duarte Santos
    public List<String> loadAreas()
    {
        return
                createCriteria()
                    .setProjection(Projections
                            .distinct(Projections.projectionList()
                                    .add(Projections.property("area"))))
                    .add(1.5.0/docs/api/java/beans/Expression.html">Expression.isNotNull("area"))
                    .list();
    }


    public static void main(1.5.0/docs/api/java/lang/String.html">String[] args) throws 1.5.0/docs/api/java/sql/SQLException.html">SQLException {
        AbstractDao.getCurrentSession().beginTransaction();
        5+0%2Fdocs%2Fapi+List">List t2 = new CourseDaoImpl().findDegrees("1",true);
        5+0%2Fdocs%2Fapi+List">List t = new CourseDaoImpl().findAllCoursesOrderByNameEvenWithoutCourseUnit("1", "L", true);
        t2 = new CourseDaoImpl().findAllOrderByName("201516","td","L","1");

        1.5.0/docs/api/java/lang/System.html">System.out.println(t.size());
        1.5.0/docs/api/java/lang/System.html">System.out.println(t2.size());

        5+0%2Fdocs%2Fapi+List">List l = new CourseDepartmentDaoImpl().findActives();
        1.5.0/docs/api/java/lang/System.html">System.out.println(l.size());
        l = new CourseDepartmentDaoImpl().findActives("1");
        1.5.0/docs/api/java/lang/System.html">System.out.println(l.size());


        1.5.0/docs/api/java/lang/System.html">System.out.println("---");
        5+0%2Fdocs%2Fapi+List">List s1 = new CourseDaoImpl().loadInstitutionCodes("201516");
        1.5.0/docs/api/java/lang/System.html">System.out.println(s1.size());

        1.5.0/docs/api/java/lang/System.html">System.out.println(l.size());

        s1 = new CourseUnitDaoImpl().loadByYearInstitutionCode("201516",1);
        1.5.0/docs/api/java/lang/System.html">System.out.println(s1.size());
        s1 = new CourseUnitDaoImpl().loadCourseUnits(10, "S1", "201516", true, true,"1");
        1.5.0/docs/api/java/lang/System.html">System.out.println(s1.size());

        s1 = new StudentDaoImpl().findAllSigesCodesYear("201516",1);
        1.5.0/docs/api/java/lang/System.html">System.out.println(s1.size());

        s1 = new TeacherDaoImpl().findAllSigesCodesYear("201516",1);
        1.5.0/docs/api/java/lang/System.html">System.out.println(s1.size());

        1.5.0/docs/api/java/lang/System.html">System.out.println("---");
        1.5.0/docs/api/javax/management/Query.html">Query q = AbstractDao.getCurrentSession()
                .createQuery(
                        "select count(c.id) from c in class " + CourseUnit.class.getName() + " " +
                                "where c.course.department.courseSchool.institutionalCode = 1 and c.importYear = '201516'");
        1.5.0/docs/api/java/lang/Long.html">Long count = (1.5.0/docs/api/java/lang/Long.html">Long) q.list().get(0);
        1.5.0/docs/api/java/lang/System.html">System.out.println(count);

        q = AbstractDao.getCurrentSession().createQuery(
                "select c.id from c in class " + CourseUnit.class.getName() + " " +
                        "where c.course.department.courseSchool.institutionalCode = 1 and c.importYear = '201516'");

        1.5.0/docs/api/java/lang/System.html">System.out.println(q.list().size());



        1.5.0/docs/api/java/sql/PreparedStatement.html">PreparedStatement ps= AbstractDao.getCurrentSession().connection().prepareStatement(
                "select distinct (user.sigesCode)\n" +
                        "from subscribedunits \n" +
                        "join courseunit on subscribedunits.courseUnitId = courseunit.id\n" +
                        "join course on courseunit.course = course.id\n" +
                        "join course_department on course.area = course_department.sigla\n" +
                        "join course_school on course_department.school_id = course_school.id\n" +
                        "join user on user.id = subscribedunits.studentid\n" +
                        "left join (\n" +
                        "select subscribedturmaunits.studentId,courseunitturma.courseUnit,courseunitturma.turma from subscribedturmaunits \n" +
                        "join courseunitturma on courseunitturma.id = subscribedturmaunits.courseunitturmaid\n" +
                        "join courseunit on courseunit.id = courseunitturma.courseUnit\n" +
                        "where courseunit.importYear=\"201516\") as turmas\n" +
                        "on turmas.studentId = subscribedunits.studentId and turmas.courseUnit = subscribedunits.courseunitid\n" +
                        "where courseunit.importYear=\"201516\" and course_school.institutionalCode = \"1\" and turmas.studentId is null ");
        1.5.0/docs/api/java/sql/ResultSet.html">ResultSet rs = ps.executeQuery();
        List<Integer> longs = new ArrayList<Integer>();
        while(rs.next())
        {
            longs.add(rs.getInt("sigesCode"));
        }
        1.5.0/docs/api/java/lang/System.html">System.out.println(longs.size());






        1.5.0/docs/api/java/lang/String.html">String query = "select {0} " +
                "from subscribedturmaunits " +
                "join courseunitturma on courseunitturma.id = subscribedturmaunits.courseUnitTurmaId " +
                "join courseunit on courseunitturma.courseUnit = courseunit.id " +
                "join course on courseunit.course = course.id\n" +
                "join course_department on course.area = course_department.sigla\n" +
                "join course_school on course_department.school_id = course_school.id\n" +
                "join user on user.id = subscribedturmaunits.studentId " +
                "left join subscribedunits on " +
                "subscribedturmaunits.studentId = subscribedunits.studentId " +
                "and subscribedunits.courseUnitId = courseunit.id " +
                    "where courseunit.importYear = \"201516\" and course_school.institutionalCode = 1 and subscribedunits.studentId is null";

        1.5.0/docs/api/java/lang/String.html">String fields = "courseunit.code as unidSigesCode," +
                "user.name as name, " +
                "user.sigesCode as sigesCode, " +
                "subscribedturmaunits.studentId as studentId, " +
                "courseunit.id as unitId ," +
                "courseunit.name as unitname ," +
                "courseunitturma.id as turmaId ," +
                "courseunitturma.turma as turma";


        ps = AbstractDao.getCurrentSession().connection().prepareStatement(
                1.5.0/docs/api/java/text/MessageFormat.html">MessageFormat.format(query, "count(*) as total"));
        rs = ps.executeQuery();
        rs.next();
        int size = rs.getInt("total");
        rs.close();
        ps.close();

        if(size > 0)
        {
            /**********logging*********/
            1.5.0/docs/api/java/lang/String.html">String msg = "Found " + size + " subscritions in turmas wich are not in subscribedUnits will remove them";
            1.5.0/docs/api/java/lang/System.html">System.out.println(msg);
            /**********logging*********/

            ps = AbstractDao.getCurrentSession().connection().prepareStatement(
                    1.5.0/docs/api/java/text/MessageFormat.html">MessageFormat.format(query,fields));
            rs = ps.executeQuery();
            int i = 0;
            while(rs.next())
            {
                1.5.0/docs/api/java/lang/String.html">String unidSigesCode = rs.getString("unidSigesCode");
                1.5.0/docs/api/java/lang/String.html">String studentName = rs.getString("name");
                long sigesCode = rs.getInt("sigesCode");
                long studentId = rs.getLong("studentId");
                long unitId = rs.getLong("unitId");
                1.5.0/docs/api/java/lang/String.html">String unitname = rs.getString("unitname");
                long turmaId = rs.getLong("turmaId");
                1.5.0/docs/api/java/lang/String.html">String turma = rs.getString("turma");
                CourseUnitTurma cut = DaoFactory.getCourseUnitTurmaDaoImpl().load(turmaId);
                Student s = DaoFactory.getStudentDaoImpl().load(studentId);
                //cut.getStudents().remove(s);
                //s.getTurmas().remove(cut);
                /**********logging*********/
                msg = "Inconsistencia encontrada na turma " + turma + " para o aluno " + studentName + " siges: " + sigesCode + " id:" + studentId + " na unidade siges:" + unidSigesCode + " unitid:" + unitId + " " + unitname + " O aluno nao tinha esta unidade e tinha uma turma para ela ";
                1.5.0/docs/api/java/lang/System.html">System.out.println(msg);
                /**********logging*********/
            }
            rs.close();
            ps.close();
        }
        else
        {
            1.5.0/docs/api/java/lang/String.html">String msgS = "OK check - Todos os alunos com cadeiras em turmas tem a cadeira subscrita ano: 201516 institution:1 possiveis adicionados manualmente, confirmar";
            1.5.0/docs/api/java/lang/System.html">System.out.println(msgS);
        }

        AbstractDao.getCurrentSession().getTransaction().commit();

    }
}