|  | @@ -1,5 +1,6 @@
 | 
	
		
			
				|  |  |  package microfolie.service;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import java.util.Calendar;
 | 
	
		
			
				|  |  |  import java.util.Date;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import microfolie.persistance.entity.Espace;
 | 
	
	
		
			
				|  | @@ -25,8 +26,9 @@ public class FrequentationService {
 | 
	
		
			
				|  |  |  		Usager usager = usagerTable.getByCode(codeUsager);
 | 
	
		
			
				|  |  |  		Espace espace = espaceTable.getByCode(codeEspace);
 | 
	
		
			
				|  |  |  		Frequentation frequentation = table.getByUsagerAndEspace(usager.id, espace.id);
 | 
	
		
			
				|  |  | -		// Ajout en base si introuvable
 | 
	
		
			
				|  |  | -		if (frequentation == null) {
 | 
	
		
			
				|  |  | +		// Ajout en base si introuvable ou si il ne date pas d'ajourd'hui
 | 
	
		
			
				|  |  | +		Date aujourdhui = new Date();
 | 
	
		
			
				|  |  | +		if (frequentation == null || compareDate(frequentation.date, aujourdhui) < 0) {
 | 
	
		
			
				|  |  |  			frequentation = new Frequentation();
 | 
	
		
			
				|  |  |  			frequentation.usager = usager;
 | 
	
		
			
				|  |  |  			frequentation.espace = espace;
 | 
	
	
		
			
				|  | @@ -38,6 +40,33 @@ public class FrequentationService {
 | 
	
		
			
				|  |  |  		return false;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  	
 | 
	
		
			
				|  |  | +	/**
 | 
	
		
			
				|  |  | +	 * Compare deux dates
 | 
	
		
			
				|  |  | +	 * @param date1
 | 
	
		
			
				|  |  | +	 * @param date2
 | 
	
		
			
				|  |  | +	 * @return 0 si les dates sont égales, < 0 si date1 est avant date2, > 0 si date1 est apres date2
 | 
	
		
			
				|  |  | +	 */
 | 
	
		
			
				|  |  | +	private long compareDate(Date date1, Date date2) {
 | 
	
		
			
				|  |  | +		// Transformation date1
 | 
	
		
			
				|  |  | +		Calendar cal1 = Calendar.getInstance();
 | 
	
		
			
				|  |  | +		cal1.setTime(date1);
 | 
	
		
			
				|  |  | +		cal1.set(Calendar.HOUR_OF_DAY, 0);
 | 
	
		
			
				|  |  | +		cal1.set(Calendar.MINUTE, 0);
 | 
	
		
			
				|  |  | +		cal1.set(Calendar.SECOND, 0);
 | 
	
		
			
				|  |  | +		cal1.set(Calendar.MILLISECOND, 0);
 | 
	
		
			
				|  |  | +		long time1 = cal1.getTimeInMillis();
 | 
	
		
			
				|  |  | +		// Transformation date2
 | 
	
		
			
				|  |  | +		Calendar cal2 = Calendar.getInstance();
 | 
	
		
			
				|  |  | +		cal2.setTime(date2);
 | 
	
		
			
				|  |  | +		cal2.set(Calendar.HOUR_OF_DAY, 0);
 | 
	
		
			
				|  |  | +		cal2.set(Calendar.MINUTE, 0);
 | 
	
		
			
				|  |  | +		cal2.set(Calendar.SECOND, 0);
 | 
	
		
			
				|  |  | +		cal2.set(Calendar.MILLISECOND, 0);
 | 
	
		
			
				|  |  | +		long time2 = cal2.getTimeInMillis();
 | 
	
		
			
				|  |  | +		// Comparaison
 | 
	
		
			
				|  |  | +		return time1 - time2;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	
 | 
	
		
			
				|  |  |  	public static FrequentationService getInstance() {
 | 
	
		
			
				|  |  |  		if (instance == null) {
 | 
	
		
			
				|  |  |  			instance = new FrequentationService();
 |