Changeset 20492

Show
Ignore:
Timestamp:
03/01/10 09:13:23 (5 months ago)
Author:
nilesh
Message:

changes for making any day as working from warning message dialog, if no calendar is defined in schedule.
changes for handling time zone.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/core/src/net/project/hibernate/service/impl/DateChangeHandlerImpl.java

    r20471 r20492  
    1212import net.project.calendar.TimeBean; 
    1313import net.project.calendar.workingtime.IWorkingTimeCalendarProvider; 
     14import net.project.calendar.workingtime.WorkingTimeCalendarCreateHelper; 
    1415import net.project.calendar.workingtime.WorkingTimeCalendarDateEntryHelper; 
    1516import net.project.calendar.workingtime.WorkingTimeCalendarDefinition; 
    1617import net.project.calendar.workingtime.WorkingTimeCalendarHelper; 
     18import net.project.calendar.workingtime.WorkingTimeCalendarListHelper; 
    1719import net.project.hibernate.service.IDateChangeHandler; 
    1820import net.project.hibernate.service.IUtilService; 
     
    7274                } 
    7375                 
    74                 if(!utilService.clearTimePart(scheduleEntry.getEndTime()).equals(utilService.clearTimePart(date))){ 
    75                         return "{\"dateType\":\"end\",\"editedDate\":\""+newDateTochange+"\",\"currentDate\":\""+ ((SessionManager.getUser()).getDateFormatter()).formatDateMedium(date) +"\",\"nextDate\":\""+ scheduleEntry.getEndTimeStringFormatted()+"\",\"name\":\""+scheduleEntry.getName()+"\"}"; 
     76                String currentDateString = ((SessionManager.getUser()).getDateFormatter()).formatDateMedium(date); 
     77                if(!scheduleEntry.getEndTimeStringFormatted().equalsIgnoreCase(currentDateString)){ 
     78                        return "{\"dateType\":\"end\",\"editedDate\":\""+newDateTochange+"\",\"currentDate\":\""+ currentDateString +"\",\"nextDate\":\""+ scheduleEntry.getEndTimeStringFormatted()+"\",\"name\":\""+scheduleEntry.getName()+"\"}"; 
    7679                } 
    7780                //EndDate change handled successfully. 
     
    139142                        } 
    140143                }else{ 
    141                         storeAsWorkingDate(request, provider, provider.getDefault().getID(), schedule.getTimeZone().getID(), date); 
     144                        String calendarID = provider.getDefault().getID(); 
     145                        //If Calendar Id is null that means no calendar is defind here creat a clendar and set it as default. 
     146                        if (calendarID == null) { 
     147                                WorkingTimeCalendarCreateHelper helper = new WorkingTimeCalendarCreateHelper(request, provider); 
     148                                helper.setCalendarType(WorkingTimeCalendarCreateHelper.CalendarType.BASE.getID()); 
     149                                helper.setName("Base Calendar"); 
     150                                try { 
     151                                        calendarID = helper.store(); 
     152                                        WorkingTimeCalendarListHelper listHelper = new WorkingTimeCalendarListHelper(request, provider); 
     153                            listHelper.changeDefaultCalendar(calendarID); 
     154                                } catch (PersistenceException pnetEx) { 
     155                                        Logger.getLogger(ScheduleEntryAssignment.class).error("Error occured while creating default schedule " + 
     156                            "working time calender: "+ pnetEx.getMessage()); 
     157                                } 
     158                        } 
     159                         
     160                        storeAsWorkingDate(request, provider, calendarID, schedule.getTimeZone().getID(), date); 
    142161                } 
    143162        }