fmsystem-commits
[Top][All Lists]
Advanced

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

[Fmsystem-commits] [6572] Rental: Added year to adjustment


From: Terje Tjervaag
Subject: [Fmsystem-commits] [6572] Rental: Added year to adjustment
Date: Wed, 10 Nov 2010 11:31:48 +0000

Revision: 6572
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=6572
Author:   terje_t
Date:     2010-11-10 11:31:47 +0000 (Wed, 10 Nov 2010)
Log Message:
-----------
Rental: Added year to adjustment

Added year to adjustment so it can be selected independent of the
adjustment date.

Added year to "add"-form of adjustment

Use adjustment year instead of current year to test if contracts should be 
adjusted.

Use adjustment year instead of current year when selecting contracts

Modified Paths:
--------------
    trunk/rental/inc/class.soadjustment.inc.php
    trunk/rental/inc/class.uiadjustment.inc.php
    trunk/rental/inc/class.uicontract.inc.php
    trunk/rental/inc/model/class.adjustment.inc.php
    trunk/rental/setup/setup.inc.php
    trunk/rental/setup/tables_update.inc.php
    trunk/rental/templates/base/adjustment.php
    trunk/rental/templates/base/adjustment_list_partial.php

Modified: trunk/rental/inc/class.soadjustment.inc.php
===================================================================
--- trunk/rental/inc/class.soadjustment.inc.php 2010-11-10 11:19:05 UTC (rev 
6571)
+++ trunk/rental/inc/class.soadjustment.inc.php 2010-11-10 11:31:47 UTC (rev 
6572)
@@ -65,7 +65,7 @@
                }
                else
                {
-                       $cols = 'id, price_item_id, responsibility_id, 
new_price, percent, adjustment_interval, adjustment_date, adjustment_type, 
is_executed';
+                       $cols = 'id, price_item_id, responsibility_id, 
new_price, percent, adjustment_interval, adjustment_date, adjustment_type, 
is_executed, year';
                        $order = $sort_field ? "ORDER BY 
{$this->marshal($sort_field, 'field')} $dir ": ' ORDER BY adjustment_date DESC';
                }
                
@@ -86,6 +86,7 @@
                        
$adjustment->set_adjustment_type($this->unmarshal($this->db->f('adjustment_type'),
 'string'));
                        
$adjustment->set_is_manual($this->unmarshal($this->db->f('is_manual'),'bool'));
                        
$adjustment->set_is_executed($this->unmarshal($this->db->f('is_executed'),'bool'));
+                       
$adjustment->set_year($this->unmarshal($this->db->f('year'), 'int'));
                }
                
                return $adjustment;
@@ -114,7 +115,8 @@
             'adjustment_date = ' . $adjustment->get_adjustment_date(),
                        'adjustment_type = \'' . 
$adjustment->get_adjustment_type() . '\'',
                        'is_manual = ' . ($adjustment->is_manual() ? "true" : 
"false"),
-                       'is_executed = ' . ($adjustment->is_executed() ? "true" 
: "false")
+                       'is_executed = ' . ($adjustment->is_executed() ? "true" 
: "false"),
+                       'year = ' . $adjustment->get_year()
                );
 
                $result = $this->db->query('UPDATE rental_adjustment SET ' . 
join(',', $values) . " WHERE id=$id", __LINE__,__FILE__);
@@ -131,7 +133,7 @@
        public function add(&$adjustment)
        {
                // Build a db-friendly array of the adjustment object
-               $cols = array('price_item_id', 'responsibility_id', 
'new_price', 'percent', 'adjustment_interval', 'adjustment_date', 
'adjustment_type', 'is_manual', 'is_executed');
+               $cols = array('price_item_id', 'responsibility_id', 
'new_price', 'percent', 'adjustment_interval', 'adjustment_date', 
'adjustment_type', 'is_manual', 'is_executed', 'year');
                $values = array(
                        $adjustment->get_price_item_id(),
                        $adjustment->get_responsibility_id(),
@@ -141,7 +143,8 @@
             $adjustment->get_adjustment_date(),
             '\''.$adjustment->get_adjustment_type().'\'',
             ($adjustment->is_manual() ? "true" : "false"),
-            ($adjustment->is_executed() ? "true" : "false")
+            ($adjustment->is_executed() ? "true" : "false"),
+            $adjustment->get_year()
                );
 
                $query ="INSERT INTO rental_adjustment (" . join(',', $cols) . 
") VALUES (" . join(',', $values) . ")";
@@ -156,7 +159,8 @@
        {
                $query = "SELECT * FROM rental_adjustment WHERE " .
                                 "responsibility_id = 
{$adjustment->get_responsibility_id()} " .
-                                "AND adjustment_date = 
{$adjustment->get_adjustment_date()} " . 
+                                "AND adjustment_date = 
{$adjustment->get_adjustment_date()} " .
+                                "AND year = {$adjustment->year()} " . 
                                 "AND adjustment_interval = 
{$adjustment->get_interval()} " .
                                 "AND percent = {$adjustment->get_percent()}";
                $result = $this->db->query($query);
@@ -219,6 +223,7 @@
                        
$adjustment->set_adjustment_type($this->unmarshal($this->db->f('adjustment_type'),
 'string'));
                        
$adjustment->set_is_manual($this->unmarshal($this->db->f('is_manual'),'bool'));
                        
$adjustment->set_is_executed($this->unmarshal($this->db->f('is_executed'),'bool'));
+                       
$adjustment->set_year($this->unmarshal($this->db->f('year'), 'int'));
                        $adjustments[] = $adjustment;
                }
                
@@ -252,6 +257,7 @@
                 * update price book elements according to type if interval=1
                 */
                $current_year = (int)date('Y');
+               
                //var_dump("innicontr");
                foreach ($adjustments as $adjustment)
                {
@@ -259,7 +265,7 @@
                        $adjustable_contracts = "SELECT id, adjustment_share, 
date_start, adjustment_year FROM rental_contract ";
                        $adjustable_contracts .= "WHERE location_id = 
'{$adjustment->get_responsibility_id()}' AND adjustable ";
                        $adjustable_contracts .= "AND (";
-                       $adjustable_contracts .= "(adjustment_interval = 
{$adjustment->get_interval()} AND (adjustment_year + 
{$adjustment->get_interval()}) = {$current_year})";
+                       $adjustable_contracts .= "(adjustment_interval = 
{$adjustment->get_interval()} AND (adjustment_year + 
{$adjustment->get_interval()}) = {$adjustment->get_year()})";
                        $adjustable_contracts .= " OR ";
                        $adjustable_contracts .= "(adjustment_year IS NULL OR 
adjustment_year = 0)";
                        $adjustable_contracts .= ")";
@@ -273,10 +279,10 @@
                                $adj_year = 
$this->unmarshal($this->db->f('adjustment_year', true), 'int');
                                $start_year = date('Y', $date_start);
 
-                               if(($adj_year != null && $adj_year > 0) || 
(($adj_year == null || $adj_year == 0) && ($start_year + 
$adjustment->get_interval() == $current_year)))
+                               if(($adj_year != null && $adj_year > 0) || 
(($adj_year == null || $adj_year == 0) && ($start_year + 
$adjustment->get_interval() == $adjustment->get_year())))
                                {
                                        //update adjustment_year on contract
-                                       
rental_socontract::get_instance()->update_adjustment_year($contract_id, 
$current_year);
+                                       
rental_socontract::get_instance()->update_adjustment_year($contract_id, 
$adjustment->get_year());
                                        //gather price items to be adjusted
                                        $contract_price_items = 
rental_socontract_price_item::get_instance()->get(null, null, null, null, null, 
null, array('contract_id' => $contract_id));
                                        foreach($contract_price_items as $cpi)

Modified: trunk/rental/inc/class.uiadjustment.inc.php
===================================================================
--- trunk/rental/inc/class.uiadjustment.inc.php 2010-11-10 11:19:05 UTC (rev 
6571)
+++ trunk/rental/inc/class.uiadjustment.inc.php 2010-11-10 11:31:47 UTC (rev 
6572)
@@ -156,6 +156,7 @@
                        $adjustment_date =  
strtotime(phpgw::get_var('adjustment_date_hidden'));
                        
                        if(isset($adjustment)){
+                               $adjustment->set_year(phpgw::get_var('year'));
                                
$adjustment->set_adjustment_date($adjustment_date);
                                $adjustment->set_price_item_id(0);
                                if(isset($responsibility_id) && 
$responsibility_id > 0)

Modified: trunk/rental/inc/class.uicontract.inc.php
===================================================================
--- trunk/rental/inc/class.uicontract.inc.php   2010-11-10 11:19:05 UTC (rev 
6571)
+++ trunk/rental/inc/class.uicontract.inc.php   2010-11-10 11:31:47 UTC (rev 
6572)
@@ -80,9 +80,7 @@
                                case 'contracts_for_adjustment':
                                        $adjustment_id = 
(int)phpgw::get_var('id');
                                        $adjustment = 
rental_soadjustment::get_instance()->get_single($adjustment_id);
-                                       $adjustment_date = 
$adjustment->get_adjustment_date();
-                                       $adjustment_year = 
date('Y',$adjustment_date);
-                                       $filters = array('contract_type' => 
$adjustment->get_responsibility_id(), 'adjustment_interval' => 
$adjustment->get_interval(), 'adjustment_year' => $adjustment_year);
+                                       $filters = array('contract_type' => 
$adjustment->get_responsibility_id(), 'adjustment_interval' => 
$adjustment->get_interval(), 'adjustment_year' => $adjustment->get_year());
                                        break;
                                case 'contracts_part':                          
                // Contracts for this party
                                        $filters = array('party_id' => 
phpgw::get_var('party_id'),'contract_status' => 
phpgw::get_var('contract_status'), 'contract_type' => 
phpgw::get_var('contract_type'), 'status_date_hidden' => 
phpgw::get_var('status_date_hidden'));

Modified: trunk/rental/inc/model/class.adjustment.inc.php
===================================================================
--- trunk/rental/inc/model/class.adjustment.inc.php     2010-11-10 11:19:05 UTC 
(rev 6571)
+++ trunk/rental/inc/model/class.adjustment.inc.php     2010-11-10 11:31:47 UTC 
(rev 6572)
@@ -9,6 +9,7 @@
        protected $new_price;
        protected $percent;
        protected $adjustment_date;
+       protected $year;
        protected $is_manual;
        protected $interval;
        protected $adjustment_type;
@@ -75,6 +76,16 @@
                return $this->adjustment_date;
        }
        
+       public function set_year($year)
+       {
+               $this->year = $year;
+       }
+       
+       public function get_year()
+       {
+               return $this->year;
+       }
+       
        public function set_adjustment_date($adjustment_date)
        {
                $this->adjustment_date = $adjustment_date;
@@ -142,7 +153,8 @@
                        'interval' => $this->get_interval(),
                        'adjustment_type' => 
lang(($this->get_adjustment_type())?$this->get_adjustment_type():'none'),
                        'adjustment_date' => date($date_format, 
$this->get_adjustment_date()),
-                       'is_executed' => lang(($this->is_executed())?'yes':'no')
+                       'is_executed' => 
lang(($this->is_executed())?'yes':'no'),
+                       'year' => $this->get_year()
                );
        }
 }

Modified: trunk/rental/setup/setup.inc.php
===================================================================
--- trunk/rental/setup/setup.inc.php    2010-11-10 11:19:05 UTC (rev 6571)
+++ trunk/rental/setup/setup.inc.php    2010-11-10 11:31:47 UTC (rev 6572)
@@ -1,6 +1,6 @@
 <?php
        $setup_info['rental']['name'] = 'rental';               // Module 
identifier
-       $setup_info['rental']['version'] = '0.1.0.11';  // Current module 
version
+       $setup_info['rental']['version'] = '0.1.0.12';  // Current module 
version
        $setup_info['rental']['app_order'] = 51;                // (?)
        $setup_info['rental']['tables'] = array(
                'rental_party',                                         // All 
contract participants, tenants etc.

Modified: trunk/rental/setup/tables_update.inc.php
===================================================================
--- trunk/rental/setup/tables_update.inc.php    2010-11-10 11:19:05 UTC (rev 
6571)
+++ trunk/rental/setup/tables_update.inc.php    2010-11-10 11:31:47 UTC (rev 
6572)
@@ -204,4 +204,26 @@
                return $GLOBALS['setup_info']['rental']['currentver'];
        }
        
+       $test[] = '0.1.0.11';
+       function rental_upgrade0_1_0_11()
+       {
+               // Add adjustment year column
+               $GLOBALS['phpgw_setup']->oProc->AddColumn('rental_adjustment', 
'year', array(
+                       'type' => 'int', 
+                       'nullable' => true,
+                       'precision' => '4'
+               ));
+               
+               // Update year column to match the adjustment_date of all 
existing adjustments
+               $so = CreateObject('rental.soadjustment');
+               foreach ($so->get(0, NULL, NULL, true, NULL, NULL, NULL) as 
$adjustment) {
+                       $year = strftime('%Y', 
$adjustment->get_adjustment_date());
+                       $adjustment->set_year($year);
+                       $so->store($adjustment);
+               }
+               
+               $GLOBALS['setup_info']['rental']['currentver'] = '0.1.0.12';
+               return $GLOBALS['setup_info']['rental']['currentver'];
+       }
+       
 ?>
\ No newline at end of file

Modified: trunk/rental/templates/base/adjustment.php
===================================================================
--- trunk/rental/templates/base/adjustment.php  2010-11-10 11:19:05 UTC (rev 
6571)
+++ trunk/rental/templates/base/adjustment.php  2010-11-10 11:31:47 UTC (rev 
6572)
@@ -58,6 +58,23 @@
                        ?>
                </dd>
                <dt>
+                       <label for="adjustment_year"><?php echo lang('year') 
?></label>
+               </dt>
+               <dd>
+                       <select name="adjustment_year" id="adjustment_year">
+                               <?php
+                               $this_year = date('Y');
+                               $years = rental_contract::get_year_range();
+                               foreach($years as $year)
+                               {
+                                       ?>
+                                       <option value="<?php echo $year 
?>"<?php echo $this_year == $year ? ' selected="selected"' : '' ?>><?php echo 
$year ?></option>
+                                       <?php
+                               }
+                               ?>
+                       </select>
+               </dd>
+               <dt>
                        <label for="adjustment_date"><?php echo 
lang('adjustment_date') ?></label>
                </dt>
                <dd>

Modified: trunk/rental/templates/base/adjustment_list_partial.php
===================================================================
--- trunk/rental/templates/base/adjustment_list_partial.php     2010-11-10 
11:19:05 UTC (rev 6571)
+++ trunk/rental/templates/base/adjustment_list_partial.php     2010-11-10 
11:31:47 UTC (rev 6572)
@@ -36,6 +36,11 @@
        // Defining columns for datatable
        var columnDefs = [
                {
+                       key: "year",
+                       label: "<?php echo lang('year') ?>",
+                       sortable: true
+               },
+               {
                        key: "adjustment_date",
                        label: "<?php echo lang('adjustment_date') ?>",
                        sortable: true




reply via email to

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