List of usage examples for org.hibernate.criterion Restrictions between
public static Criterion between(String propertyName, Object low, Object high)
From source file:es.sm2.openppm.core.dao.ExpensesheetDAO.java
License:Open Source License
/** * Is in status/* w w w . j a va2 s. c om*/ * @param idEmployee * @param id * @param since * @param until * @param status * @param user * @return */ public boolean isStatusResource(Integer idEmployee, Integer id, Date since, Date until, String status, Employee user) { Criteria crit = getSession().createCriteria(getPersistentClass()).setProjection(Projections.rowCount()) .add(Restrictions.eq(Expensesheet.STATUS, status)) .add(Restrictions.between(Expensesheet.EXPENSEDATE, since, until)); Criteria employeeCrit = crit.createCriteria(Expensesheet.EMPLOYEE).add(Restrictions.idEq(idEmployee)); if (Constants.EXPENSE_STATUS_APP1.equals(status)) { crit.add(Restrictions.eq(Expensesheet.PROJECT, new Project(id))); } else if (Constants.EXPENSE_STATUS_APP2.equals(status)) { employeeCrit.add(Restrictions.eq(Employee.PERFORMINGORG, user.getPerformingorg())); } Integer count = (Integer) crit.uniqueResult(); return (count != null && count > 0); }
From source file:es.sm2.openppm.core.dao.MilestoneDAO.java
License:Open Source License
/** * Find milestones filter by projects and milestone type and dates * //ww w . java 2s .c o m * @param projects * @param milestonetype * @param milestonecategory * @param until * @param since * @param milestonePending * @param property * @param order * @param joins * @return */ @SuppressWarnings("unchecked") public List<Milestones> filter(List<Project> projects, Milestonetype milestonetype, Milestonecategory milestonecategory, Date since, Date until, String milestonePending, String property, String order, List<String> joins) { List<Milestones> list = new ArrayList<Milestones>(); if (ValidateUtil.isNotNull(projects)) { Criteria crit = getSession().createCriteria(getPersistentClass()); // Filter dates // if (since != null & until != null) { crit.add(Restrictions.disjunction() .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ACHIEVED)) .add(Restrictions.between(Milestones.ACHIEVED, since, until))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ESTIMATEDDATE)) .add(Restrictions.between(Milestones.ESTIMATEDDATE, since, until))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.PLANNED)) .add(Restrictions.between(Milestones.PLANNED, since, until)))); } else if (since != null) { crit.add(Restrictions.disjunction() .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ACHIEVED)) .add(Restrictions.ge(Milestones.ACHIEVED, since))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ESTIMATEDDATE)) .add(Restrictions.ge(Milestones.ESTIMATEDDATE, since))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.PLANNED)) .add(Restrictions.ge(Milestones.PLANNED, since)))); } else if (until != null) { crit.add(Restrictions.disjunction() .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ACHIEVED)) .add(Restrictions.le(Milestones.ACHIEVED, until))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ESTIMATEDDATE)) .add(Restrictions.le(Milestones.ESTIMATEDDATE, until))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.PLANNED)) .add(Restrictions.le(Milestones.PLANNED, until)))); } // Filter by projects // crit.add(Restrictions.in(Milestones.PROJECT, projects)); // Filter by milestone type // if (milestonetype != null) { crit.add(Restrictions.eq(Milestones.MILESTONETYPE, milestonetype)); } // Filter by milestone category // if (milestonecategory != null) { crit.add(Restrictions.eq(Milestones.MILESTONECATEGORY, milestonecategory)); } // Filter by pendings // if (MilestonePending.YES.name().equals(milestonePending)) { crit.add(Restrictions.isNull(Milestones.ACHIEVED)); } else if (MilestonePending.NO.name().equals(milestonePending)) { crit.add(Restrictions.isNotNull(Milestones.ACHIEVED)); } // Left join milestone type for null relation crit.createCriteria(Milestones.MILESTONETYPE, CriteriaSpecification.LEFT_JOIN); // Joins addJoins(crit, joins); // Orders addOrder(crit, property, order); list = crit.list(); } return list; }
From source file:es.sm2.openppm.core.dao.MilestoneDAO.java
License:Open Source License
/** * Find milestones filter by project and activity and dates * /*from w w w .j a v a 2 s . c o m*/ * @param project * @param projectactivity * @param since * @param until * @param hasCategory * @param property * @param order * @param joins * @return */ @SuppressWarnings("unchecked") public List<Milestones> filter(Project project, Projectactivity projectactivity, Date since, Date until, boolean hasCategory, String property, String order, List<String> joins) { List<Milestones> list = new ArrayList<Milestones>(); if (project != null) { Criteria crit = getSession().createCriteria(getPersistentClass()); // Filter dates // if (since != null & until != null) { crit.add(Restrictions.disjunction() .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ACHIEVED)) .add(Restrictions.between(Milestones.ACHIEVED, since, until))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ESTIMATEDDATE)) .add(Restrictions.between(Milestones.ESTIMATEDDATE, since, until))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.PLANNED)) .add(Restrictions.between(Milestones.PLANNED, since, until)))); } else if (since != null) { crit.add(Restrictions.disjunction() .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ACHIEVED)) .add(Restrictions.ge(Milestones.ACHIEVED, since))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ESTIMATEDDATE)) .add(Restrictions.ge(Milestones.ESTIMATEDDATE, since))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.PLANNED)) .add(Restrictions.ge(Milestones.PLANNED, since)))); } else if (until != null) { crit.add(Restrictions.disjunction() .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ACHIEVED)) .add(Restrictions.le(Milestones.ACHIEVED, until))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.ESTIMATEDDATE)) .add(Restrictions.le(Milestones.ESTIMATEDDATE, until))) .add(Restrictions.conjunction().add(Restrictions.isNotNull(Milestones.PLANNED)) .add(Restrictions.le(Milestones.PLANNED, until)))); } // Filter by project // if (project != null) { crit.add(Restrictions.eq(Milestones.PROJECT, project)); } // Filter by activity // if (projectactivity != null) { crit.add(Restrictions.eq(Milestones.PROJECTACTIVITY, projectactivity)); } // Filter by has category // if (hasCategory) { crit.add(Restrictions.isNotNull(Milestones.MILESTONECATEGORY)); } // Joins addJoins(crit, joins); // Orders addOrder(crit, property, order); list = crit.list(); } return list; }
From source file:es.sm2.openppm.core.dao.OperationDAO.java
License:Open Source License
/** * Find operations by employees and dates and status app3 * // w w w. j av a2s. c o m * @param employees * @param since * @param until * @return */ @SuppressWarnings("unchecked") public List<Operation> findByEmployeesAndDatesAndApproved(List<Employee> employees, Date since, Date until, Company company) { List<Operation> operations = null; if (ValidateUtil.isNotNull(employees)) { Criteria crit = getSession().createCriteria(getPersistentClass()) .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); // Operation // crit.addOrder(Order.asc(Operation.OPERATIONNAME)).createCriteria(Operation.OPERATIONACCOUNT) .add(Restrictions.eq(Operationaccount.COMPANY, company)); // Timesheet // Criteria sheets = crit.createCriteria(Employee.TIMESHEETS) .add(Restrictions.eq(Timesheet.STATUS, Constants.TIMESTATUS_APP3)) .add(Restrictions.isNotNull(Timesheet.OPERATION)); if (!employees.isEmpty()) { sheets.add(Restrictions.in(Timesheet.EMPLOYEE, employees)); } if (since != null && until != null) { sheets.add(Restrictions.disjunction().add(Restrictions.between(Timesheet.INITDATE, since, until)) .add(Restrictions.between(Timesheet.ENDDATE, since, until)) .add(Restrictions.and(Restrictions.le(Timesheet.INITDATE, since), Restrictions.ge(Timesheet.ENDDATE, until)))); } operations = crit.list(); } return operations; }
From source file:es.sm2.openppm.core.dao.ProjectActivityDAO.java
License:Open Source License
/** * Filter by project and since until over planned dates * //from www .java 2 s . co m * @param project * @param since * @param until * @param typeOrder * @param propertyOrder * @return */ @SuppressWarnings("unchecked") public List<Projectactivity> findByProject(Project project, Date since, Date until, String propertyOrder, String typeOrder) { Criteria crit = getSession().createCriteria(getPersistentClass()) .add(Restrictions.disjunction() .add(Restrictions.between(Projectactivity.PLANINITDATE, since, until)) .add(Restrictions.between(Projectactivity.PLANENDDATE, since, until)) .add(Restrictions.and(Restrictions.le(Projectactivity.PLANINITDATE, since), Restrictions.ge(Projectactivity.PLANENDDATE, until)))) .add(Restrictions.eq(Projectactivity.PROJECT, project)); addOrder(crit, propertyOrder, typeOrder); return crit.list(); }
From source file:es.sm2.openppm.core.dao.ProjectActivityDAO.java
License:Open Source License
/** * Find activities inputed// w w w .jav a2 s . c om * * @param ids * @param since * @param until * @param idResourcePool * @return */ @SuppressWarnings("unchecked") public List<Projectactivity> findActivitiesInputedByProjectsAndEmployees(Integer[] ids, Date since, Date until, Integer idResourcePool) { List<Projectactivity> activities = null; if (ValidateUtil.isNotNull(ids)) { Criteria crit = getSession().createCriteria(getPersistentClass()) .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); // All activities by projects // crit.createCriteria(Projectactivity.PROJECT).add(Restrictions.in(Project.IDPROJECT, ids)) .addOrder(Order.asc(Project.ACCOUNTINGCODE)); crit.createCriteria(Projectactivity.WBSNODE).add(Restrictions.eq(Wbsnode.ISCONTROLACCOUNT, true)); crit.addOrder(Order.asc(Projectactivity.IDACTIVITY)); // Teammmembers // Criteria members = crit.createCriteria(Projectactivity.TEAMMEMBERS); if (since != null && until != null) { members.add(Restrictions.disjunction().add(Restrictions.between(Teammember.DATEIN, since, until)) .add(Restrictions.between(Teammember.DATEOUT, since, until)) .add(Restrictions.and(Restrictions.le(Teammember.DATEIN, since), Restrictions.ge(Teammember.DATEOUT, until)))); } // Employees // Criteria employees = members.createCriteria(Teammember.EMPLOYEE); if (idResourcePool != null) { employees.add(Restrictions.eq(Employee.RESOURCEPOOL, new Resourcepool(idResourcePool))); } Criteria sheets = employees.createCriteria(Employee.TIMESHEETS) .add(Restrictions.eq(Timesheet.STATUS, Constants.TIMESTATUS_APP3)); if (since != null && until != null) { sheets.add(Restrictions.disjunction().add(Restrictions.between(Timesheet.INITDATE, since, until)) .add(Restrictions.between(Timesheet.ENDDATE, since, until)) .add(Restrictions.and(Restrictions.le(Timesheet.INITDATE, since), Restrictions.ge(Timesheet.ENDDATE, until)))); } activities = crit.list(); } else { activities = new ArrayList<Projectactivity>(); } return activities; }
From source file:es.sm2.openppm.core.dao.ProjectDAO.java
License:Open Source License
/** * Find projects where an Employee is team member in range of days * @param employee//from w w w .j a v a 2s. c om * @param sinceDate * @param untilDate * @return */ @SuppressWarnings("unchecked") public List<Project> findByResourceInProject(Employee employee, Date sinceDate, Date untilDate) { Criteria crit = getSession().createCriteria(getPersistentClass()) .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY).createCriteria(Project.PROJECTACTIVITIES) .createCriteria(Projectactivity.TEAMMEMBERS).add(Restrictions.eq(Teammember.EMPLOYEE, employee)) .add(Restrictions.eq(Teammember.STATUS, Constants.RESOURCE_ASSIGNED)) .add(Restrictions.disjunction().add(Restrictions.between(Teammember.DATEIN, sinceDate, untilDate)) .add(Restrictions.between(Teammember.DATEOUT, sinceDate, untilDate)) .add(Restrictions.and(Restrictions.le(Teammember.DATEIN, sinceDate), Restrictions.ge(Teammember.DATEOUT, untilDate)))); return crit.list(); }
From source file:es.sm2.openppm.core.dao.ProjectFollowupDAO.java
License:Open Source License
/** * Find last followup of month//from w ww.ja v a 2 s .com * @param project * @param firstMonthDay * @param lastMonthDay * @return */ public Projectfollowup findLasInMonth(Project project, Date firstMonthDay, Date lastMonthDay) { Criteria crit = getSession().createCriteria(getPersistentClass()) .add(Restrictions.eq(Projectfollowup.PROJECT, project)) .add(Restrictions.between(Projectfollowup.FOLLOWUPDATE, firstMonthDay, lastMonthDay)) .add(Restrictions.isNotNull(Projectfollowup.PV)).setMaxResults(1) .addOrder(Order.desc(Projectfollowup.FOLLOWUPDATE)); return (Projectfollowup) crit.uniqueResult(); }
From source file:es.sm2.openppm.core.dao.ProjectFollowupDAO.java
License:Open Source License
/** * Find followups in range dates//from w w w .j a v a 2s . com * @param project * @param since * @param until * @return */ @SuppressWarnings("unchecked") public List<Projectfollowup> findByDates(Project project, Date since, Date until) { Criteria crit = getSession().createCriteria(getPersistentClass()) .add(Restrictions.eq(Projectfollowup.PROJECT, project)) .add(Restrictions.between(Projectfollowup.FOLLOWUPDATE, since, until)) .addOrder(Order.desc(Projectfollowup.FOLLOWUPDATE)); return crit.list(); }
From source file:es.sm2.openppm.core.dao.TeamMemberDAO.java
License:Open Source License
/** * Search Team Members by Project...//from w w w. j a v a 2 s . c o m * * @param project * @param since * @param until * @param showDisabled * @return */ public List<Teammember> consStaffinFtes(Project project, Date since, Date until, boolean showDisabled) { // Create query and restrictions Criteria crit = getSession().createCriteria(getPersistentClass()) .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY) .add(Restrictions.or(Restrictions.eq(Teammember.STATUS, Constants.RESOURCE_ASSIGNED), Restrictions.eq(Teammember.STATUS, Constants.RESOURCE_RELEASED))) .add(Restrictions.disjunction().add(Restrictions.between(Teammember.DATEIN, since, until)) .add(Restrictions.between(Teammember.DATEOUT, since, until)) .add(Restrictions.and(Restrictions.le(Teammember.DATEIN, since), Restrictions.ge(Teammember.DATEOUT, until)))); // Restriction project crit.createCriteria(Teammember.PROJECTACTIVITY).add(Restrictions.eq(Projectactivity.PROJECT, project)); if (!showDisabled) { // Exclude employees and contacts disabled crit.createCriteria(Teammember.EMPLOYEE, "em").add(Restrictions.ne(Employee.DISABLE, true)) .setFetchMode(Teammember.EMPLOYEE + "." + Employee.RESOURCEPROFILES, FetchMode.JOIN); crit.createCriteria("em." + Employee.CONTACT, "contact").add(Restrictions.ne(Contact.DISABLE, true)); } else { crit.setFetchMode(Teammember.EMPLOYEE, FetchMode.JOIN); crit.setFetchMode(Teammember.EMPLOYEE + "." + Employee.RESOURCEPROFILES, FetchMode.JOIN); crit.setFetchMode(Teammember.EMPLOYEE + "." + Employee.CONTACT, FetchMode.JOIN); // Create aliases for order crit.createAlias(Teammember.EMPLOYEE, "em").createAlias("em." + Employee.CONTACT, "contact"); } // Data needed crit.setFetchMode(Teammember.JOBCATEGORY, FetchMode.JOIN); // Order by name crit.addOrder(Order.asc("contact.fullName")); return crit.list(); }