fmsystem-commits
[Top][All Lists]
Advanced

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

[Fmsystem-commits] [10107] property: more on budgets


From: Sigurd Nes
Subject: [Fmsystem-commits] [10107] property: more on budgets
Date: Wed, 03 Oct 2012 16:22:56 +0000

Revision: 10107
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=10107
Author:   sigurdne
Date:     2012-10-03 16:22:56 +0000 (Wed, 03 Oct 2012)
Log Message:
-----------
property: more on budgets

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

Modified: trunk/property/inc/class.soproject.inc.php
===================================================================
--- trunk/property/inc/class.soproject.inc.php  2012-10-03 16:22:41 UTC (rev 
10106)
+++ trunk/property/inc/class.soproject.inc.php  2012-10-03 16:22:56 UTC (rev 
10107)
@@ -1226,9 +1226,18 @@
 
                        $this->db->query("UPDATE fm_project SET $value_set 
WHERE id= {$project['id']}",__LINE__,__FILE__);
 
-                       if($project['delete_b_year'])
+                       $_closed_period = array
+                       (
+                               'closed_b_period' => 
isset($project['closed_b_period']) && $project['closed_b_period'] ? 
$project['closed_b_period'] : array(),
+                               'closed_orig_b_period' => 
isset($project['closed_orig_b_period']) && $project['closed_orig_b_period'] ? 
$project['closed_orig_b_period'] : array()
+                       );
+
+                       $this->close_period_from_budget($project['id'], 
$_closed_period);
+                       unset($_close_period);
+
+                       if($project['delete_b_period'])
                        {
-                               $this->delete_year_from_budget($project['id'], 
$project['delete_b_year']);
+                               
$this->delete_period_from_budget($project['id'], $project['delete_b_year']);
                        }
 
                        if($project['budget'])
@@ -1598,6 +1607,7 @@
                function get_budget($project_id)
                {
                        $project_id = (int) $project_id;
+                       $closed_period = array();
 
 
                        $sql = "SELECT * FROM fm_project_budget WHERE 
project_id = {$project_id}";
@@ -1612,6 +1622,7 @@
                                $period = $year . sprintf("%02s", $month);
                                
                                $project_budget[$period] = 
(int)$this->db->f('budget');
+                               $closed_period[$period] = 
!!$this->db->f('closed');
                        }
                        unset($year);                   
 
@@ -1878,13 +1889,14 @@
                                $month = substr( $entry['period'], 4, 2 );
                                $entry['month'] = $month == '00' ? '' : $month;
                                $entry['diff'] = $entry['budget'] - 
$entry['sum_orders'] - $entry['actual_cost'];
+                               $entry['closed'] = 
$closed_period[$entry['period']];
                        }
 
 //_debug_array( $values);die();
                        return $values;
                }
 
-               function delete_year_from_budget($project_id, $data)
+               function delete_period_from_budget($project_id, $data)
                {
                        $project_id = (int) $project_id;
                        foreach($data as $entry)
@@ -1895,6 +1907,47 @@
                        }
                }
 
+               function close_period_from_budget($project_id, $data)
+               {
+                       $project_id = (int) $project_id;
+                       $close_period = array();
+                       $open_period = array();
+
+                       foreach($data['closed_orig_b_period'] as $period)
+                       {
+                               if(!in_array($period, $data['closed_b_period']))
+                               {
+                                       $open_period[] = $period;
+                               }
+                       }
+
+                       foreach($data['closed_b_period'] as $period)
+                       {
+                               if(!in_array($period, 
$data['closed_orig_b_period']))
+                               {
+                                       $close_period[] = $period;
+                               }
+                       }
+
+                       foreach ($close_period as $period)
+                       {
+                               $when = explode('_', $period);
+                               $sql = "UPDATE fm_project_budget SET closed = 1 
WHERE project_id = {$project_id} AND year =" . (int) $when[0] . ' AND month = ' 
. (int) $when[1];
+                               $this->db->query($sql,__LINE__,__FILE__);
+                       }
+
+                       foreach ($open_period as $period)
+                       {
+                               $when = explode('_', $period);
+                               $sql = "UPDATE fm_project_budget SET closed = 0 
WHERE project_id = {$project_id} AND year =" . (int) $when[0] . ' AND month = ' 
. (int) $when[1];
+                               $this->db->query($sql,__LINE__,__FILE__);
+                       }
+//_debug_array($close_period);
+//_debug_array($open_period);die();
+
+
+               }
+
                function 
update_request_status($project_id='',$status='',$category=0,$coordinator=0)
                {
                        $historylog_r   = 
CreateObject('property.historylog','request');

Modified: trunk/property/inc/class.uiproject.inc.php
===================================================================
--- trunk/property/inc/class.uiproject.inc.php  2012-10-03 16:22:41 UTC (rev 
10106)
+++ trunk/property/inc/class.uiproject.inc.php  2012-10-03 16:22:56 UTC (rev 
10107)
@@ -1680,10 +1680,15 @@
                        if($id)
                        {
                                $content_budget = $this->bo->get_budget($id);
-                               $lang_delete = lang('Check to delete year');
+                               $lang_delete = lang('Check to delete period');
+                               $lang_delete = lang('Check to close period');
                                foreach($content_budget as & $b_entry)
                                {
-                                       $b_entry['delete_year'] = "<input 
type='checkbox' name='values[delete_b_year][]' 
value='{$b_entry['year']}_{$b_entry['month']}' title='{$lang_delete}'>";
+                                       $checked = $b_entry['closed'] ? 
'checked="checked"' : '';
+                                       
+                                       $b_entry['delete_year'] = "<input 
type='checkbox' name='values[delete_b_period][]' 
value='{$b_entry['year']}_{$b_entry['month']}' title='{$lang_delete}'>";
+                                       $b_entry['closed'] = "<input 
type='checkbox' name='values[closed_b_period][]' 
value='{$b_entry['year']}_{$b_entry['month']}' title='{$lang_close}' $checked>";
+                                       $b_entry['closed_orig'] = "<input 
type='checkbox' name='values[closed_orig_b_period][]' 
value='{$b_entry['year']}_{$b_entry['month']}' $checked>";
                                        $value_remainder -= 
$b_entry['sum_orders'];
                                        $value_remainder -= 
$b_entry['actual_cost'];
                                }
@@ -1715,6 +1720,8 @@
                                                                                
                                array('key' => 'sum_orders','label'=>lang('sum 
orders'),'sortable'=>false,'resizeable'=>true,'formatter'=>'FormatterAmount0'),
                                                                                
                                array('key' => 
'actual_cost','label'=>lang('actual 
cost'),'sortable'=>false,'resizeable'=>true,'formatter'=>'FormatterAmount2'),
                                                                                
                                array('key' => 
'diff','label'=>lang('difference'),'sortable'=>false,'resizeable'=>true,'formatter'=>'FormatterAmount2'),
+                                                                               
                                array('key' => 
'closed','label'=>lang('closed'),'sortable'=>false,'resizeable'=>true,'formatter'=>'FormatterCenter'),
+                                                                               
                                array('key' => 'closed_orig','hidden' => true),
                                                                                
                                array('key' => 
'delete_year','label'=>lang('Delete'),'sortable'=>false,'resizeable'=>true,'formatter'=>'FormatterCenter')))
                                );
 

Modified: trunk/property/js/yahoo/project.edit.js
===================================================================
--- trunk/property/js/yahoo/project.edit.js     2012-10-03 16:22:41 UTC (rev 
10106)
+++ trunk/property/js/yahoo/project.edit.js     2012-10-03 16:22:56 UTC (rev 
10107)
@@ -117,7 +117,7 @@
                td_sum(tmp_sum2);
                td_sum(tmp_sum3);
                td_sum(tmp_sum4);
-               td_empty(1);
+               td_empty(3);
 
                myfoot = tableYUI0.createTFoot();
                myfoot.setAttribute("id","myfoot");

Modified: trunk/property/setup/setup.inc.php
===================================================================
--- trunk/property/setup/setup.inc.php  2012-10-03 16:22:41 UTC (rev 10106)
+++ trunk/property/setup/setup.inc.php  2012-10-03 16:22:56 UTC (rev 10107)
@@ -12,7 +12,7 @@
        */
 
        $setup_info['property']['name']                 = 'property';
-       $setup_info['property']['version']              = '0.9.17.650';
+       $setup_info['property']['version']              = '0.9.17.651';
        $setup_info['property']['app_order']    = 8;
        $setup_info['property']['enable']               = 1;
        $setup_info['property']['app_group']    = 'office';

Modified: trunk/property/setup/tables_current.inc.php
===================================================================
--- trunk/property/setup/tables_current.inc.php 2012-10-03 16:22:41 UTC (rev 
10106)
+++ trunk/property/setup/tables_current.inc.php 2012-10-03 16:22:56 UTC (rev 
10107)
@@ -1463,6 +1463,7 @@
                                'year' => array('type' => 'int','precision' => 
4,'nullable' => False),
                                'month' => array('type' => 'int','precision' => 
2,'nullable' => False,'default' => 0),
                                'budget' => array('type' => 
'decimal','precision' => '20','scale' => '2','nullable' => True,'default' => 
'0.00'),
+                               'closed' => array('type' => 'int','precision' 
=> 2,'nullable' => True),
                                'user_id' => array('type' => 'int','precision' 
=> 4,'nullable' => True),
                                'entry_date' => array('type' => 
'int','precision' => 4,'nullable' => True),
                                'modified_date' => array('type' => 
'int','precision' => 4,'nullable' => True)

Modified: trunk/property/setup/tables_update.inc.php
===================================================================
--- trunk/property/setup/tables_update.inc.php  2012-10-03 16:22:41 UTC (rev 
10106)
+++ trunk/property/setup/tables_update.inc.php  2012-10-03 16:22:56 UTC (rev 
10107)
@@ -6656,4 +6656,27 @@
                        $GLOBALS['setup_info']['property']['currentver'] = 
'0.9.17.650';
                        return $GLOBALS['setup_info']['property']['currentver'];
                }
-       }       
+       }
+
+       /**
+       * Update property version from 0.9.17.650 to 0.9.17.651
+       * Enable to close periode on budget
+       */
+       $test[] = '0.9.17.650';
+       function property_upgrade0_9_17_650()
+       {
+               $GLOBALS['phpgw_setup']->oProc->m_odb->transaction_begin();
+
+               
$GLOBALS['phpgw_setup']->oProc->AddColumn('fm_project_budget','closed',array(
+                       'type'          => 'int',
+                       'precision'     => 2,
+                       'nullable'      => true
+                       )
+               );
+
+               if($GLOBALS['phpgw_setup']->oProc->m_odb->transaction_commit())
+               {
+                       $GLOBALS['setup_info']['property']['currentver'] = 
'0.9.17.651';
+                       return $GLOBALS['setup_info']['property']['currentver'];
+               }
+       }




reply via email to

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