Ignore:
Timestamp:
12/19/12 13:30:46 (11 years ago)
Author:
acoutinho
Message:

Ticket #3249 - Problema com horarios na edicao de tarefas e atividades

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/prototype/modules/calendar/interceptors/DBMapping.php

    r7660 r7680  
    8282         
    8383 
    84         if (isset($params['due']) && $params['due'] != '' && !is_numeric($params['due'])) 
     84        if (isset($params['due']) && $params['due'] != '' && !is_numeric($params['due'])){ 
    8585            $params['due'] = self::parseTimeDate($params['due'], $params['timezone']); 
     86 
     87            if ($params['allDay']) 
     88                $params['due'] = $params['due'] + 86400000; 
     89        } 
     90 
    8691 
    8792        /////////////////////////////////////////////////////////////////// 
     
    535540            } 
    536541            $params['rangeEnd'] = $params['endTime']; 
     542 
     543            if($event['type'] == '2'){ 
     544 
     545                if(!isset($params['due']) && $params['endTime'] != $event['endTime']) 
     546                    $params['due'] = $params['endTime']; 
     547 
     548            } 
    537549        } 
    538550 
    539  
    540         if (isset($params['due']) && $params['due'] != '' && !is_numeric($params['due'])) 
     551        if (isset($params['due']) && $params['due'] != '' && !is_numeric($params['due'])){ 
    541552            $params['due'] = self::parseTimeDate($params['due'], $event['timezone']); 
     553 
     554            if ((isset($params['allDay']) && $params['allDay']) || ( !isset($params['allDay']) && $event['allDay'])) 
     555                $params['due'] = $params['due'] + 86400000; 
     556        } 
    542557 
    543558        if($event['type'] == '2'){ 
     
    550565                unset($criteria['historic']['due']); 
    551566 
    552                 //necessário para atulizar a atividade de composta pela tarefa aqui sendo atualizada 
    553                 if(isset($criteria['historic']['startTime']) || isset($criteria['historic']['endTime'])){ 
    554                         $taskToActivity = Controller::find(array('concept' => 'taskToActivity'), false, array('filter' => array('AND', array('=', 'task', $uri['id']), array('=', 'owner', Config::me('uidNumber'))), 'deepness' => 2)); 
    555                         if(!empty($taskToActivity)){ 
    556                                 $activity = Controller::read(array('concept' => 'schedulable', 'id' => $taskToActivity[0]['activity']), array('startTime', 'endTime', 'rangeStart', 'rangeEnd', 'allDay')); 
    557                                 $isAllDay = 1; 
    558  
    559                                 if(!empty($activity)){ 
    560                                         $start = $params['startTime']; 
    561                                         $end = $params['endTime']; 
    562                                         foreach($taskToActivity as $t){ 
    563                                         if($t['task']['id'] != $params['id']){ 
    564                                                 $start = $t['task']['startTime'] < $start ? $t['task']['startTime'] : $start; 
    565                                                 $end = $t['task']['endTime'] > $end ? $t['task']['endTime'] : $end; 
    566                                                 $isAllDay = (($isAllDay == 1) && ($t['task']['allDay'] == '1')) ? 1 : 0;  
    567                                         } 
    568                                         } 
    569  
    570                                         if($event['allDay'] == '0' || (isset($params['allDay']) && $params['allDay'] == '0')) 
    571                                                 $isAllDay = 0; 
    572  
    573                                         $toUpdate = array(); 
    574  
    575                                         if($start != $activity['startTime']) 
    576                                                 $toUpdate['startTime'] = $start; 
    577  
    578                                         if($end != $activity['endTime']){ 
    579                                                 $toUpdate['endTime'] = $end; 
    580                                                 $toUpdate['due'] = $end; 
    581                                         } 
    582  
    583                                         if($isAllDay != $activity['allDay']) 
    584                                                 $toUpdate['allDay'] = $isAllDay; 
    585  
    586                                         if(!empty($toUpdate)) 
    587                                                 Controller::update(array('concept' => 'schedulable', 'id' => $taskToActivity[0]['activity']), $toUpdate); 
    588                                 } 
    589                         } 
    590                 } 
    591  
    592                 unset($criteria['historic']['endTime']); 
    593                 unset($criteria['historic']['rangeEnd']); 
    594                 unset($criteria['historic']['rangeStart']); 
    595                 unset($criteria['historic']['class']); 
    596                 unset($criteria['historic']['type']); 
    597                 unset($criteria['historic']['allDay']); 
    598                 unset($criteria['historic']['id']);             
     567            //necessário para atulizar a atividade de composta pela tarefa aqui sendo atualizada 
     568            if(isset($criteria['historic']['startTime']) || isset($criteria['historic']['endTime'])){ 
     569                $taskToActivity = Controller::find(array('concept' => 'taskToActivity'), false, array('filter' => array('AND', array('=', 'task', $uri['id']), array('=', 'owner', Config::me('uidNumber'))), 'deepness' => 2)); 
     570                if(!empty($taskToActivity)){ 
     571                    $activity = Controller::read(array('concept' => 'schedulable', 'id' => $taskToActivity[0]['activity']), array('startTime', 'endTime', 'rangeStart', 'rangeEnd', 'allDay')); 
     572                    $isAllDay = 1; 
     573 
     574                    if(!empty($activity)){ 
     575                        $start = $params['startTime']; 
     576                        $end = $params['endTime']; 
     577                        foreach($taskToActivity as $t){ 
     578                        if($t['task']['id'] != $params['id']){ 
     579                            $start = $t['task']['startTime'] < $start ? $t['task']['startTime'] : $start; 
     580                            $end = $t['task']['endTime'] > $end ? $t['task']['endTime'] : $end; 
     581                            $isAllDay = (($isAllDay == 1) && ($t['task']['allDay'] == '1')) ? 1 : 0; 
     582                        } 
     583                        } 
     584 
     585                        if($event['allDay'] == '0' || (isset($params['allDay']) && $params['allDay'] == '0')) 
     586                            $isAllDay = 0; 
     587 
     588                        $toUpdate = array(); 
     589 
     590                        if($start != $activity['startTime']) 
     591                            $toUpdate['startTime'] = $start; 
     592 
     593                        if($end != $activity['endTime']){ 
     594                            $toUpdate['endTime'] = $end; 
     595                            $toUpdate['due'] = $end; 
     596                        } 
     597 
     598                        if($isAllDay != $activity['allDay']) 
     599                            $toUpdate['allDay'] = $isAllDay; 
     600 
     601                        if(!empty($toUpdate)) 
     602                            Controller::update(array('concept' => 'schedulable', 'id' => $taskToActivity[0]['activity']), $toUpdate); 
     603                    } 
     604                } 
     605            } 
     606 
     607            unset($criteria['historic']['endTime']); 
     608            unset($criteria['historic']['rangeEnd']); 
     609            unset($criteria['historic']['rangeStart']); 
     610            unset($criteria['historic']['class']); 
     611            unset($criteria['historic']['type']); 
     612            unset($criteria['historic']['allDay']); 
     613            unset($criteria['historic']['id']); 
    599614        } 
    600615    } 
     
    847862                $date->setTimezone( new DateTimeZone($currentTimezone)); 
    848863                $DayLigth['event']['endTime'] = ($date->getTimestamp() + $date->getOffset()).'000'; 
     864 
     865                if(isset($v['due']) && $v['due'] != '0'){ 
     866                    $date->setTimestamp((int) ($v['due'] / 1000)); 
     867                    $DayLigth['event']['due'] = ($date->getTimestamp() + $date->getOffset()).'000'; 
     868                }else{ 
     869                    $DayLigth['event']['due'] = $v['due']; 
     870                } 
     871 
    849872 
    850873                $date->setTimezone( new DateTimeZone($currentTimezone)); 
Note: See TracChangeset for help on using the changeset viewer.