fmsystem-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Fmsystem-commits] [10625] Property: tweak bulk update


From: Sigurd Nes
Subject: [Fmsystem-commits] [10625] Property: tweak bulk update
Date: Mon, 31 Dec 2012 13:21:07 +0000

Revision: 10625
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=10625
Author:   sigurdne
Date:     2012-12-31 13:21:03 +0000 (Mon, 31 Dec 2012)
Log Message:
-----------
Property: tweak bulk update

Modified Paths:
--------------
    trunk/property/inc/class.boworkorder.inc.php
    trunk/property/inc/class.soproject.inc.php
    trunk/property/inc/class.uiproject.inc.php
    trunk/property/js/yahoo/project.edit.js

Modified: trunk/property/inc/class.boworkorder.inc.php
===================================================================
--- trunk/property/inc/class.boworkorder.inc.php        2012-12-30 22:55:55 UTC 
(rev 10624)
+++ trunk/property/inc/class.boworkorder.inc.php        2012-12-31 13:21:03 UTC 
(rev 10625)
@@ -605,6 +605,13 @@
                        $historylog     = 
CreateObject('property.historylog','workorder');
                        $history_array = 
$historylog->return_array(array('O'),array(),'','',$id);
 
+                       $_status_list = $this->so->select_status_list();
+                       $status_text = array();
+                       foreach ($_status_list as $_status_entry)
+                       {
+                               $status_text[$_status_entry['id']] = 
$_status_entry['name'];
+                       }
+
                        $i=0;
                        foreach ($history_array as $value) 
                        {
@@ -633,7 +640,7 @@
                                        case 'CO': $type = lang('Initial 
Coordinator'); break;
                                        case 'C': $type = lang('Coordinator 
changed'); break;
                                        case 'TO': $type = lang('Initial 
Category'); break;
-                                               case 'T': $type = 
lang('Category changed'); break;
+                                       case 'T': $type = lang('Category 
changed'); break;
                                        case 'SO': $type = lang('Initial 
Status'); break;
                                        case 'S': $type = lang('Status 
changed'); break;
                                        case 'SC': $type = lang('Status 
confirmed'); break;
@@ -647,10 +654,9 @@
                                }
 
                                
if($value['new_value']=='O'){$value['new_value']=lang('Opened');}
-                                       
if($value['new_value']=='X'){$value['new_value']=lang('Closed');}
+                               
if($value['new_value']=='X'){$value['new_value']=lang('Closed');}
 
-
-                                               
$record_history[$i]['value_action']     = $type?$type:'';
+                               $record_history[$i]['value_action']     = $type 
? $type:'';
                                unset($type);
 
                                if ($value['status'] == 'A')
@@ -694,6 +700,11 @@
                                                
$record_history[$i]['value_old_value']  = $category[0]['name'];
                                        }
                                }
+                               else if ($value['status'] == 'S' || 
$value['status'] == 'SO')
+                               {
+                                       $record_history[$i]['value_new_value']  
= $status_text[$value['new_value']];
+                                       $record_history[$i]['value_old_value']  
= $status_text[$value['old_value']];
+                               }
                                else if ($value['status'] != 'O' && 
$value['new_value'])
                                {
                                        $record_history[$i]['value_new_value']  
= $value['new_value'];

Modified: trunk/property/inc/class.soproject.inc.php
===================================================================
--- trunk/property/inc/class.soproject.inc.php  2012-12-30 22:55:55 UTC (rev 
10624)
+++ trunk/property/inc/class.soproject.inc.php  2012-12-31 13:21:03 UTC (rev 
10625)
@@ -37,6 +37,7 @@
        class property_soproject
        {
                var $total_records = 0;
+               private $global_lock = false;
 
                function __construct()
                {
@@ -53,6 +54,8 @@
                        $this->acl                      = & 
$GLOBALS['phpgw']->acl;
                        $this->acl->set_account_id($this->account);
                        $this->grants           = 
$this->acl->get_grants('property','.project');
+                       $this->config = 
CreateObject('phpgwapi.config','property');
+                       $this->config->read();
                }
 
                function select_status_list()
@@ -645,7 +648,7 @@
                                }
 
                                $this->db->set_fetch_single(false);
-
+//$test=array();
                                foreach($project_list as &$project)
                                {
                                        $this->db->query("{$sql} WHERE 
fm_project.id = '{$project['project_id']}' {$group_method}");
@@ -696,6 +699,7 @@
                                                $_actual_cost =  
$this->db->f('actual_cost');
                                                if(!$this->db->f('closed'))
                                                {
+//$test[] = $this->db->f('id');
                                                        $_obligation = 
$_combined_cost - $_actual_cost;
                                                        
if((int)$this->db->f('budget') >= 0)
                                                        {
@@ -748,7 +752,7 @@
                                }
 
                                $values = 
$this->custom->translate_value($dataset, $location_id);
-
+//_debug_array($test);
                                return $values;
                        }
 
@@ -1486,6 +1490,7 @@
                                        unset($action_params);
                                }
 
+                               $workorder_closed_status = 
isset($this->config->config_data['workorder_closed_status']) && 
$this->config->config_data['workorder_closed_status'] ? 
$this->config->config_data['workorder_closed_status'] : 'closed'; 
 
                                if($old_status != $project['status'])
                                {
@@ -1496,11 +1501,11 @@
                                {
                                        
$historylog->add('S',$project['id'],$project['status'], $old_status);
 
-                                       $this->db->query("UPDATE fm_workorder 
SET status='closed' WHERE project_id = {$project['id']}",__LINE__,__FILE__);
-
+               //                      $this->db->query("UPDATE fm_workorder 
SET status='{$workorder_closed_status}' WHERE project_id = 
{$project['id']}",__LINE__,__FILE__);
+                                       $this->_update_status_workorder(true, 
$workorder_closed_status, $workorders);
                                        foreach($workorders as $workorder_id)
                                        {
-                                               
$historylog_workorder->add('S',$workorder_id,'closed');
+               //                              
$historylog_workorder->add('S',$workorder_id,'closed');
                                        }
 
                                        $receipt['notice_owner'][]=lang('Status 
changed') . ': ' . $project['status'];
@@ -1511,14 +1516,19 @@
 
                                        if ($close_workorders)
                                        {
+               //                              $this->db->query("UPDATE 
fm_workorder SET status='{$workorder_closed_status}' WHERE project_id = 
{$project['id']}",__LINE__,__FILE__);
+
+                                               
$this->_update_status_workorder(true, $workorder_closed_status, $workorders);
                                                foreach($workorders as 
$workorder_id)
                                                {
-                                                       
$historylog_workorder->add('SC',$workorder_id,'closed');
+               //                                      
$historylog_workorder->add('SC',$workorder_id,'closed');
                                                }
                                        }
                                        $receipt['notice_owner'][]=lang('Status 
confirmed') . ': ' . $project['status'];
                                }
 
+/*
+                               // Handled in _update_status_workorder();
                                if($close_pending_action)
                                {
                                        $action_params = array
@@ -1541,6 +1551,7 @@
                                        }
                                        unset($action_params);
                                }
+*/
                        }
 
                        if(isset($project['project_group']) && 
$project['project_group'])
@@ -2227,6 +2238,7 @@
                function bulk_update_status($start_date, $end_date, 
$status_filter, $status_new, $execute, $type, $user_id = 0,$ids,$paid = false, 
$closed_orders = false, $ecodimb = 0)
                {
                        $start_date = $start_date ? 
phpgwapi_datetime::date_to_timestamp($start_date) : time();
+                       $start_date -= 3600*24;
                        $end_date = $end_date ? 
phpgwapi_datetime::date_to_timestamp($end_date) : time();
 
                        $filter = '';
@@ -2330,6 +2342,7 @@
                        }
                        $historylog     = 
CreateObject('property.historylog','project');
 
+                       $workorder_closed_status = 
isset($this->config->config_data['workorder_closed_status']) && 
$this->config->config_data['workorder_closed_status'] ? 
$this->config->config_data['workorder_closed_status'] : false; 
 
                        $this->db->transaction_begin();
                        foreach ($ids as $id)
@@ -2364,10 +2377,28 @@
 
                                $this->db->query("SELECT * FROM 
fm_project_status WHERE id = '{$status_new}'");
                                $this->db->next_record();
-                               if ($this->db->f('approved') || 
$this->db->f('closed'))
+                               $approved = $this->db->f('approved');
+                               $closed = $this->db->f('closed');
+
+                               if ($approved || $closed)
                                {
                                        
execMethod('property.sopending_action.close_pending_action', 
$action_params_approved);
                                }
+
+                               if($closed && $workorder_closed_status)
+                               {
+                                       $sql = "SELECT fm_workorder.id FROM 
fm_workorder"
+                                       . " {$this->join} fm_workorder_status 
ON fm_workorder.status  = fm_workorder_status.id"
+                                       . " WHERE project_id = '{$id}' AND 
closed IS NULL";
+
+                                       $this->db->query($sql);
+                                       $orders[] = array();
+                                       while($this->db->next_record())
+                                       {
+                                               $orders[] = $this->db->f('id');
+                                       }
+                                       
$this->_update_status_workorder($execute, $workorder_closed_status, $orders);
+                               }
                        }
 
                        $this->db->transaction_commit();
@@ -2382,7 +2413,15 @@
                        }
                        $historylog     = 
CreateObject('property.historylog','workorder');
 
-                       $this->db->transaction_begin();
+                       if ( $this->db->get_transaction() )
+                       {
+                               $this->global_lock = true;
+                       }
+                       else
+                       {
+                               $this->db->transaction_begin();
+                       }
+
                        foreach ($ids as $id)
                        {
                                if(!$id)
@@ -2399,7 +2438,7 @@
                                {
                                        $this->db->query("UPDATE fm_workorder 
SET status = '{$status_new}' WHERE id = '{$id}'",__LINE__,__FILE__);
                                        $historylog->add('S', $id, $status_new, 
$old_status);
-                                       $historylog->add('RM', $id,'Status 
endret via masseoppdatering');
+                                       $historylog->add('RM', $id,'Status 
endret via masseoppdatering eller prosjekt');
                                }
 
                                $action_params_approved = array
@@ -2443,7 +2482,10 @@
                                }
                        }
 
-                       $this->db->transaction_commit();
+                       if ( !$this->global_lock )
+                       {
+                               $this->db->transaction_commit();
+                       }
                }
 
                public function get_user_list()

Modified: trunk/property/inc/class.uiproject.inc.php
===================================================================
--- trunk/property/inc/class.uiproject.inc.php  2012-12-30 22:55:55 UTC (rev 
10624)
+++ trunk/property/inc/class.uiproject.inc.php  2012-12-31 13:21:03 UTC (rev 
10625)
@@ -1773,7 +1773,7 @@
                                        'values'        =>      
json_encode(array(      array('key' => 
'year','label'=>lang('year'),'sortable'=>false,'resizeable'=>true),
                                                                                
                                array('key' => 
'month','label'=>lang('month'),'sortable'=>false,'resizeable'=>true),
                                                                                
                                array('key' => 
'budget','label'=>lang('budget'),'sortable'=>false,'resizeable'=>true,'formatter'=>'FormatterAmount0'),
-                                                                               
                                array('key' => 'sum_orders','label'=> 
lang('order'),'sortable'=>false,'resizeable'=>true,'formatter'=>'FormatterAmount0'),
+                                                                               
        //                      array('key' => 'sum_orders','label'=> 
lang('order'),'sortable'=>false,'resizeable'=>true,'formatter'=>'FormatterAmount0'),
                                                                                
                                array('key' => 
'sum_oblications','label'=>lang('sum 
orders'),'sortable'=>false,'resizeable'=>true,'formatter'=>'FormatterAmount0'),
                                                                                
                                array('key' => 
'actual_cost','label'=>lang('actual 
cost'),'sortable'=>false,'resizeable'=>true,'formatter'=>'FormatterAmount0'),
                                                                                
                                array('key' => 
'diff','label'=>lang('difference'),'sortable'=>false,'resizeable'=>true,'formatter'=>'FormatterAmount0'),
@@ -2509,6 +2509,7 @@
                        }
 
                        $datavalues[2] = array
+
                                (
                                        'name'                                  
=> "2",
                                        'values'                                
=> json_encode($content_invoice),

Modified: trunk/property/js/yahoo/project.edit.js
===================================================================
--- trunk/property/js/yahoo/project.edit.js     2012-12-30 22:55:55 UTC (rev 
10624)
+++ trunk/property/js/yahoo/project.edit.js     2012-12-31 13:21:03 UTC (rev 
10625)
@@ -159,7 +159,7 @@
        {
                //call getTotalSum(name of column) in property.js
                tmp_sum1 = getTotalSum_active('budget',0,paginator,datatable);
-               tmp_sum2 = 
getTotalSum_active('sum_orders',0,paginator,datatable);
+ //            tmp_sum2 = 
getTotalSum_active('sum_orders',0,paginator,datatable);
                tmp_sum3 = 
getTotalSum_active('sum_oblications',0,paginator,datatable);
                tmp_sum4 = 
getTotalSum_active('actual_cost',0,paginator,datatable);
                tmp_sum5 = getTotalSum_active('diff',0,paginator,datatable);
@@ -181,7 +181,7 @@
                td_sum('Sum');
                td_empty(1);
                td_sum(tmp_sum1);
-               td_sum(tmp_sum2);
+//             td_sum(tmp_sum2);
                td_sum(tmp_sum3);
                td_sum(tmp_sum4);
                td_sum(tmp_sum5);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]