Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Panel
nameblue

Useful methods frequently used in the system concerning date, SQL and metadata handling.

What does this section cover?

Table of Contents

 

Date Handling Methods

...

Panel
nameblue

Useful methods frequently used in the system concerning date, SQL and metadata handling.

What does this section cover?

Table of Contents

 

Date Handling Methods

Date handling methods can be found in com.crm.framework.util.DateUtil class.

...

Expand
titleTruncate Date

truncate(Date date) method returns the date rounded to the day with a time of 00:00:00:00. setEndOfDay(Date date) method returns the date rounded to the day with a time of 23:59:59:999.

Code Block
titleExample
public DateRange getDateRange(Date fromDate, Date toDate){
	if (fromDate!=null && toDate!=null )
	{
		fromDate = DateUtil.truncate(fromDate);
		toDate = DateUtil.setEndOfDay(toDate);
		range = new DateRange(fromDate, toDate);
	}
		
	return range;
}

...

Expand
titleAdd period of time to date

 add(Date date, int timeValue, UnitOfTime uot) method adds the given number(time value) of units to the given date.

Code Block
titleExample
public Boolean getCompletionDate(Date startDate, Integer timeValue, UnitOfTime uot){
	
	Date completionDate = DateUtil.add(startDate, timeValue, uot);
		
	return completionDate ;
}

Alternatively, any of the following methods can be used if the unit of time is known and not given. 

  • addYears(Date date, int numberOfYears) method adds the given number of years to the given date.
  • addMonths(Date date, int numberOfMonths) method adds the given number of months to the given date.
  • addWeeks(Date date, int numberOfWeeks) method adds the given number of weeks to the given date.
  • addDays(Date date, int numberOfDays) method adds the given number of days to the given date.
  • addHours(Date date, int numberOfHours) method adds the given number of hours to the given date.
  • addMinutes(Date date, int numberOfMinutes) method adds the given number of minutes to the given date.
  • addSeconds(Date date, int numberOfSeconds) method adds the given number of seconds to the given date

    ) method adds the given number(time value) of units to the given date.

    Code Block
    titleExample
    public Boolean getCompletionDate(Date startDate, Integer timeValue, UnitOfTime uot){
    	
    	Date completionDate = DateUtil.add(startDate, timeValue, uot);
    		
    	return completionDate ;
    }

    Alternatively, any of the following methods can be used if the unit of time is known and not given. 

    1. addYears(Date date, int numberOfYears) method adds the given number of years to the given date.
    2. addMonths(Date date, int numberOfMonths) method adds the given number of months to the given date.
    3. addWeeks(Date date, int numberOfWeeks) method adds the given number of weeks to the given date.
    4. addDays(Date date, int numberOfDays) method adds the given number of days to the given date.
    5. addHours(Date date, int numberOfHours) method adds the given number of hours to the given date.
    6. addMinutes(Date date, int numberOfMinutes) method adds the given number of minutes to the given date.
    7. addSeconds(Date date, int numberOfSeconds) method adds the given number of seconds to the given date.
    Expand
    titleRetrieve current date

    1. getCurrentDate(String timeZoneID) method calculates and returns the current date based on the given time zone ID (the ID for a TimeZone, either an abbreviation such as "PST", a full name such as "America/Los_Angeles", or a custom ID such as "GMT-8:00". Note that the support of abbreviations is for JDK 1.1.x compatibility only and full names should be used).

    Code Block
    titleExample
    ...	
    	Date currentDate = DateUtil.getCurrentDate(getCRMSession().getTimezone());
    		
    ...

    OR

    2. getCurrentDate(TimeZone timeZone) method calculates and returns the current date based on the given time zone object (java.util.TimeZone).

    Code Block
    titleExample
    ...	
    	String timeZoneID = getCRMSession().getTimezone();
    	TimeZone timeZone= TimeZone.getTimeZone(timeZoneID);
    	Date currentDate = DateUtil.getCurrentDate(timeZone);	
    ...

    Handling SQL Dates

    Expand
    titleGet SQL Date

    getSelectSQLDate(String dbType, String datefield) method returns a script which is the given date or date field in the correct form for the given the database type. It works for both SQL and Hibernate queries.

    Code Block
    titleHibernate Query Example
    public ArrayList<CRMDO> loadEffective(Date asOfDate){
    	ArrayList<Object> values = new ArrayList<Object>();
    	String dbType = getCRMSession().getDbtype();
    	if(expirationDate!=null)
    	{
    		values.add(asOfDate);
    		criteria+= " and " + DateUtil.getSelectSQLDate(dbType, getDOName().toLowerCase() + ".effectiveDate")+"<=:p"+values.size();
    		criteria+= " and " + DateUtil.getSelectSQLDate(dbType, getDOName().toLowerCase() + ".expirationDate")+">:p"+values.size();
    	}
    	
    	return load(getDOName().toLowerCase() + ".isDeleted=0" +criteria,
    				values,
    				getDefaultAssociations(),
    				null,
    				null);	
    	
    }
    Code Block
    titleSQL Query Example
    public Boolean isEffective(CUSTOMCRMDORentalType rentalType, CRMDODate asOfDate){
    		String dbtype = getCRMSession().getDbtype();
    
    		String sql = 
    						"\n 	SELECT RENTTYPEID FROM TRN_RENTALTYPES RT " +
    						"\n 	WHERE RT.RENTTYPEID = ?" +
    						"\n     AND PV.PRODVALIDITYDELETED = 0 " +
    						"\n 	AND " + DateUtil.getSelectSQLDate(dbtype, "RT.RENTTYPEEFFECTIVEDATE") + " <= " + DateUtil.getSQLDate(dbtype, asOfDate) + 
    						"\n 	AND " + DateUtil.getSelectSQLDate(dbtype, "RT.RENTTYPEEXPIRATIONDATE") + " > " + DateUtil.getSQLDate(dbtype, asOfDate) ;
    					
     
    		ArrayList<Object> parameters = new ArrayList<Object>();
    		parameters.add(rentalType.getId());
    
    		if (SQLUtil.queryReturnedRows(sql, getOrganisationID(), parameters, dbType))
    		{
    			return new Boolean(true);
    		}
     
    	return new Boolean(false);
    }

    ...