Changeset 1419

Show
Ignore:
Timestamp:
17/12/09 14:57:01 (3 months ago)
Author:
bruno
Message:

Wegwerken van de 1 jaar = 52 weken veronderstelling.
Geen weken-calculatie-oefeningen doen in de client: laat die gewoon weken bijtellen en aftrekken zonder om te kijken of dat tussen 0 en 52 ligt, en laat in de plaats de server een lenient interpretatie van die waarden doen.
Toevoegen nieuwe required forms upload dependency.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • tupper/trunk/conf/kauri/wiring.xml

    r1225 r1419  
    2121    </artifact> 
    2222 
     23    <artifact id="tmprsrc" groupId="org.kauriproject" artifactId="kauri-tmprsrc"> 
     24      <mount name="upload" path="/kauri/upload" /> 
     25 
     26      <inject-restservice name="store" ref="url(file:///tmp/kauri-temp-upload)" /> 
     27    </artifact> 
     28 
    2329    <artifact id="forms" groupId="org.kauriproject" artifactId="kauri-forms-framework" > 
    2430      <mount name="main" path="/kauri/forms"/> 
    2531       
    2632      <inject-restservice name="jquery" ref="jquery:main"/> 
     33      <inject-restservice name="upload" ref="tmprsrc:upload"/> 
    2734    </artifact> 
    2835  
  • tupper/trunk/tupper-site/src/main/java/org/kauriproject/tupper/resource/InvoiceResource.java

    r1328 r1419  
    77import java.util.ArrayList; 
    88import java.util.Calendar; 
    9 import java.util.GregorianCalendar; 
    109import java.util.HashMap; 
    1110import java.util.List; 
     
    6463            DateTime to = iso8601.parseDateTime((String) getRequest().getAttributes().get("to")); 
    6564 
    66             Calendar cal = GregorianCalendar.getInstance(); 
     65            Calendar cal = CalendarUtil.getCalendar(); 
    6766            cal.setTime(from.toDate()); 
    6867            templateData.put("beginWeek", cal.get(Calendar.WEEK_OF_YEAR)); 
  • tupper/trunk/tupper-site/src/main/java/org/kauriproject/tupper/resource/PerformancesEmployeeResource.java

    r1288 r1419  
    44import java.util.ArrayList; 
    55import java.util.List; 
     6 
    67import net.sf.json.JSONArray; 
    78import net.sf.json.JSONObject; 
     
    4647            String emplInitials = (String) getRequest().getAttributes().get("initials"); 
    4748            String week = (String) getRequest().getAttributes().get("week"); 
     49            week = CalendarUtil.canonicizeWeekString(week); 
     50 
    4851            PerformanceManager pm = tupper.getPerformanceManager(); 
    49             List<Performance> performances = new ArrayList<Performance>()
     52            List<Performance> performances
    5053            Employee empl; 
    5154            try { 
  • tupper/trunk/tupper-site/src/main/java/org/kauriproject/tupper/resource/RawDataResource.java

    r1355 r1419  
    5858            DateTime to = iso8601.parseDateTime((String) getRequest().getAttributes().get("to")); 
    5959 
    60             Calendar calendar = GregorianCalendar.getInstance(); 
     60            Calendar calendar = CalendarUtil.getCalendar(); 
    6161            calendar.setTime(from.toDate()); 
    6262            long beginweek = Long.parseLong("" + calendar.get(GregorianCalendar.YEAR) + calendar.get(GregorianCalendar.WEEK_OF_YEAR)); 
     
    112112                float total = per.getMon() + per.getTue() + per.getWed() + per.getThu() + per.getFri() + per.getSat() + per.getSat(); 
    113113                //set calendar to monday of the week 
    114                 Calendar cal = Calendar.getInstance(); 
     114                Calendar cal = CalendarUtil.getCalendar(); 
    115115                cal.set(Calendar.WEEK_OF_YEAR, Integer.parseInt(per.getWeek().split("y")[0].substring(1))); 
    116116                cal.set(Calendar.YEAR, Integer.parseInt(per.getWeek().split("y")[1])); 
    117                 cal.set(Calendar.DAY_OF_WEEK, 2); //Sunday is the First Day 
     117                cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); //Sunday is the First Day 
    118118                //get Project 
    119119                Project p; 
  • tupper/trunk/tupper-site/src/main/java/org/kauriproject/tupper/resource/TimeResource.java

    r1269 r1419  
    77 
    88import java.util.Calendar; 
    9 import java.util.GregorianCalendar; 
    109import java.util.HashMap; 
    1110import java.util.Map; 
     
    4443    public Representation represent(Variant variant) throws ResourceException { 
    4544 
    46         GregorianCalendar cal = new GregorianCalendar(); 
     45        Calendar cal = CalendarUtil.getCalendar(); 
    4746 
    4847        Map<String, Object> templateData = new HashMap<String, Object>(); 
  • tupper/trunk/tupper-site/src/main/java/org/kauriproject/tupper/resource/WeekSummaryResource.java

    r1309 r1419  
    44import java.util.Calendar; 
    55import java.util.List; 
     6 
    67import net.sf.json.JSONArray; 
    78import net.sf.json.JSONObject; 
     
    2122import org.restlet.resource.ResourceException; 
    2223import org.springframework.beans.factory.annotation.Autowired; 
     24import static java.util.Calendar.*; 
    2325 
    2426public class WeekSummaryResource extends Resource { 
     
    6062            // 
    6163 
    62             String[] startEnd = week.split("-"); 
    63             int startWeek = Integer.parseInt(startEnd[0].split("y")[0].substring(1)); 
    64             int startYear = Integer.parseInt(startEnd[0].split("y")[1]); 
    65  
    66             int endWeek = Integer.parseInt(startEnd[1].split("y")[0].substring(1)); 
    67             int endYear = Integer.parseInt(startEnd[1].split("y")[1]); 
    68  
    69             if (startWeek > endWeek) { 
    70                 endWeek += 52; 
     64            int[] weekRange = CalendarUtil.parseWeekRange(week); 
     65            int startWeek = weekRange[0]; 
     66            int startYear = weekRange[1]; 
     67            int endWeek = weekRange[2]; 
     68            int endYear = weekRange[3]; 
     69 
     70            int totalWeeks; 
     71            if (startYear == endYear) { 
     72                totalWeeks = endWeek - startWeek + 1; 
     73            } else { 
     74                // note: this can only cope with a difference of 1 year 
     75                int startYearWeeks = CalendarUtil.getNumberOfWeeksInYear(startYear); 
     76                totalWeeks = startYearWeeks - startWeek + 1 + endWeek; 
    7177            } 
     78 
    7279            PerformanceManager pm = tupper.getPerformanceManager(); 
    73             for (int i = startWeek; i <= endWeek; i++) { 
     80            for (int i = 0; i < totalWeeks; i++) { 
    7481                List<Performance> performances; 
    7582                JSONObject dataJsonObj = new JSONObject(); 
    7683                JSONArray jsonTimeArr = new JSONArray(); 
    77                 Calendar cal = Calendar.getInstance(); 
    78                 cal.set(Calendar.WEEK_OF_YEAR, i); 
    79                 cal.set(Calendar.DAY_OF_WEEK, 2); //Sunday is the First Day 
     84                 
     85                Calendar cal = CalendarUtil.getCalendar(); 
     86                cal.set(YEAR, startYear); 
     87                cal.set(WEEK_OF_YEAR, startWeek + i); 
     88                cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); //Sunday is the First Day 
     89 
    8090                tupper.begin(); 
    81                 if (i <= 52) { 
    82                     performances = pm.findByWeekAndEmployee("w" + i + "y" + startYear, empl); 
    83                     dataJsonObj.element("nr", i); 
    84                     cal.set(Calendar.WEEK_OF_YEAR, i); 
    85                     cal.set(Calendar.YEAR, startYear); 
    86                 } else { 
    87                     performances = pm.findByWeekAndEmployee("w" + (i - 52) + "y" + endYear, empl); 
    88                     dataJsonObj.element("nr", i - 52); 
    89                     cal.set(Calendar.WEEK_OF_YEAR, i-52); 
    90                     cal.set(Calendar.YEAR, endYear); 
    91                 } 
     91 
     92                performances = pm.findByWeekAndEmployee(CalendarUtil.getWeekString(cal.get(WEEK_OF_YEAR), cal.get(YEAR)), empl); 
     93 
    9294                tupper.commit(); 
     95 
     96                dataJsonObj.element("nr", cal.get(WEEK_OF_YEAR)); 
    9397 
    9498                SimpleDateFormat formatter = new java.text.SimpleDateFormat("dd-MM-yyyy"); 
  • tupper/trunk/tupper-site/src/main/kauri/static/js/time.js

    r1338 r1419  
    1818        $.getJSON(urlPerf, fillPerformances); 
    1919 
    20         var url = baseUri + "week/" + selectedEmpl +"/"; //-----------------------------------------// 
    2120        var current_week = week.split("y")[0].substring(1, week.split("y")[0].length); 
    2221        //alert(current_week); 
    2322        var year = new Date().getFullYear(); 
    2423        var firstweek = selected_week - 6; 
    25         if( firstweek < 1 ){ 
    26             year = year - 1; 
    27             firstweek = firstweek + 52; 
    28         } 
    29         url  = url + "w" + firstweek + "y" + year + "-" + "w"; 
    30         lastweek = firstweek + 11; 
    31         if( lastweek > 52 ){ 
    32             year = year + 1; 
    33             lastweek =  lastweek - 52; 
    34         } 
    35         url = url + lastweek + "y" + year; 
     24        var lastweek = firstweek + 11; 
     25 
     26        var url = baseUri + "week/" + selectedEmpl +"/"; 
     27        url  = url + "w" + firstweek + "y" + year + "-w" + lastweek + "y" + year; 
    3628 
    3729        $.getJSON(url, fillWeeks); 
     
    5143      
    5244    $("#next_weeks").click(function(){ 
    53         var url = baseUri + "week/" + selectedEmpl + "/"; //---------------------------// 
    54         
    55         var firstweek = $("#weeks table tbody td:first").text()*1 + 11 + 1; //*1 to convert to number 
     45 
     46        var week = $("#weeks table tbody td:first").text()*1; //*1 to convert to number 
    5647        var year = $("#weeks table tbody td:first + td").text().substring(6,10)*1; 
    57         if( firstweek > 52 ){ 
    58             year = year + 1; 
    59             firstweek = firstweek - 52; 
    60         } 
    61         url  = url + "w" + firstweek + "y" + year + "-" + "w"; 
    62         lastweek = firstweek + 11; 
    63         if( lastweek > 52 ){ 
    64             year = year + 1; 
    65             lastweek =  lastweek - 52; 
    66         } 
    67         url = url + lastweek + "y" + year; 
     48 
     49        // The server does a lenient interpretation of the week number, thus knows how to handle things 
     50        // like week 60 of current year. 
     51        var url = baseUri + "week/" + selectedEmpl + "/"; 
     52        url  = url + "w" + (week + 11) + "y" + year + "-w" + (week + 22) + "y" + year; 
    6853        $.getJSON(url, fillWeeks); 
    6954    }); 
    7055      
    7156    $("#previous_weeks").click(function(){ 
    72         var url = baseUri + "week/" + selectedEmpl + "/"; //----------------------------------// 
    73         
    74         var firstweek = $("#weeks table tbody td:first").text()*1 - 11 - 1; //*1 to convert to number 
     57 
     58        var week = $("#weeks table tbody td:first").text()*1; //*1 to convert to number 
    7559        var year = $("#weeks table tbody td:first + td").text().substring(6,10)*1; 
    76         if( firstweek < 1 ){ 
    77             year = year - 1; 
    78             firstweek = firstweek + 52; 
    79         } 
    80         url  = url + "w" + firstweek + "y" + year + "-" + "w"; 
    81         lastweek = firstweek + 11; 
    82         if( lastweek > 52 ){ 
    83             year = year + 1; 
    84             lastweek =  lastweek - 52; 
    85         } 
    86         url = url + lastweek + "y" + year; 
    87         
     60 
     61        var url = baseUri + "week/" + selectedEmpl + "/"; 
     62        url  = url + "w" + (week - 11) + "y" + year + "-w" + (week) + "y" + year; 
    8863        $.getJSON(url, fillWeeks); 
    8964    }); 
     
    134109 
    135110    $("#copy_previous_data").click(function(){ 
    136         url = baseUri + "performance/" + selectedEmpl + "/"; 
    137         if(selected_week*1 === 1){ 
    138             url += "w52y" + (selected_year -1); 
    139         }else{ 
    140             url += "w" + (selected_week*1 - 1) + "y" + selected_year 
    141         } 
     111        var week = "w" + (selected_week*1 - 1) + "y" + selected_year; 
     112        url = baseUri + "performance/" + selectedEmpl + "/" + week; 
    142113        copiedFromPrevious = true; 
    143         $.getJSON(url,fillPerformances); 
     114        $.getJSON(url, fillPerformances); 
    144115    }); 
    145116}); 
     
    303274function getInitWeeks(){ 
    304275    selected_week = currentWeek; 
    305     var url = baseUri + "week/" + selectedEmpl +"/"; //-----------------------------------------// 
    306     var current_week = currentWeek; 
    307276    var year = new Date().getFullYear(); 
    308277    var firstweek = selected_week - 6; 
    309     if( firstweek < 1 ){ 
    310         year = year - 1; 
    311         firstweek = firstweek + 52; 
    312     } 
    313     url  = url + "w" + firstweek + "y" + year + "-" + "w"; 
    314     lastweek = firstweek + 11; 
    315     if( lastweek > 52 ){ 
    316         year = year + 1; 
    317         lastweek =  lastweek - 52; 
    318     } 
    319     url = url + lastweek + "y" + year; 
    320        
     278    var lastweek = firstweek + 11; 
     279 
     280    // server does lenient interpretation of the week range 
     281    var weekRange = "w" + firstweek + "y" + year + "-w" + lastweek + "y" + year; 
     282    var url = baseUri + "week/" + selectedEmpl +"/" + weekRange; 
     283 
    321284    $.getJSON(url, fillWeeks); 
    322285}