Revision 092998fe

b/src/gr/ebs/gss/server/ejb/GSSDAOBean.java
543 543
		}
544 544

  
545 545
		if (ai==null) {
546
			// The right entry does not exist; must be created.
547
			// This is where we set the initial time period.
548
			// We now start from the user's creation, we can change this to something else.
549
			Calendar creationDate = new GregorianCalendar();
550
			creationDate.setTime(user.getAuditInfo().getCreationDate());
551
			int offset = 0;
552
			Calendar dateFrom;
553
			Calendar dateTo;
554
			long timeInMillis = date.getTime();
555
			do {
556
				dateFrom = (Calendar) creationDate.clone();
557
				dateFrom.add(BANDWIDTH_TIME_PERIOD_FIELD, offset);
558
				dateTo = (Calendar) dateFrom.clone();
559
				dateTo.add(BANDWIDTH_TIME_PERIOD_FIELD, 1);
560
				offset += BANDWIDTH_TIME_PERIOD_AMOUNT;
561
			}
562
			while (!(dateFrom.getTimeInMillis()<=timeInMillis && dateTo.getTimeInMillis()>timeInMillis));
546
            Calendar dateFrom;
547
            Calendar dateTo;
548
            Calendar thisDate = new GregorianCalendar();
549
            thisDate.setTime(date);
550
            dateFrom = (Calendar) thisDate.clone();
551
            dateFrom.set(Calendar.DAY_OF_MONTH, thisDate.getActualMinimum(Calendar.DAY_OF_MONTH));
552
            dateFrom.set(Calendar.HOUR_OF_DAY, thisDate.getActualMinimum(Calendar.HOUR_OF_DAY));
553
            dateFrom.set(Calendar.MINUTE, thisDate.getActualMinimum(Calendar.MINUTE));
554
            dateFrom.set(Calendar.SECOND, thisDate.getActualMinimum(Calendar.SECOND));
555
            dateFrom.set(Calendar.MILLISECOND, thisDate.getActualMinimum(Calendar.MILLISECOND));
556

  
557
            dateTo = (Calendar) thisDate.clone();
558
            dateTo.set(Calendar.DAY_OF_MONTH, thisDate.getActualMaximum(Calendar.DAY_OF_MONTH));
559
            dateTo.set(Calendar.HOUR_OF_DAY, thisDate.getActualMaximum(Calendar.HOUR_OF_DAY));
560
            dateTo.set(Calendar.MINUTE, thisDate.getActualMaximum(Calendar.MINUTE));
561
            dateTo.set(Calendar.SECOND, thisDate.getActualMaximum(Calendar.SECOND));
562
            dateTo.set(Calendar.MILLISECOND, thisDate.getActualMaximum(Calendar.MILLISECOND));
563 563

  
564 564
			ai = new AccountingInfo(user, dateFrom.getTime(), dateTo.getTime());
565 565
			manager.persist(ai);

Also available in: Unified diff