[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Fmsystem-commits] [6581] rental: updates for regulation solution, ch
From: |
Joakim Hop |
Subject: |
[Fmsystem-commits] [6581] rental: updates for regulation solution, changed logic for calcuation of regulation and show affected contract of a regulation |
Date: |
Thu, 11 Nov 2010 14:51:21 +0000 |
Revision: 6581
http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=6581
Author: joakim_hop
Date: 2010-11-11 14:51:20 +0000 (Thu, 11 Nov 2010)
Log Message:
-----------
rental: updates for regulation solution, changed logic for calcuation of
regulation and show affected contract of a regulation
Modified Paths:
--------------
trunk/rental/inc/class.soadjustment.inc.php
trunk/rental/inc/class.socontract.inc.php
trunk/rental/inc/class.uiadjustment.inc.php
trunk/rental/inc/model/class.contract.inc.php
trunk/rental/setup/phpgw_no.lang
trunk/rental/templates/base/contracts_for_regulation_list.php
Modified: trunk/rental/inc/class.soadjustment.inc.php
===================================================================
--- trunk/rental/inc/class.soadjustment.inc.php 2010-11-11 08:58:39 UTC (rev
6580)
+++ trunk/rental/inc/class.soadjustment.inc.php 2010-11-11 14:51:20 UTC (rev
6581)
@@ -140,11 +140,11 @@
$adjustment->get_new_price(),
$adjustment->get_percent(),
$adjustment->get_interval(),
- $adjustment->get_adjustment_date(),
- '\''.$adjustment->get_adjustment_type().'\'',
- ($adjustment->is_manual() ? "true" : "false"),
- ($adjustment->is_executed() ? "true" : "false"),
- $adjustment->get_year()
+ $adjustment->get_adjustment_date(),
+ '\''.$adjustment->get_adjustment_type().'\'',
+ ($adjustment->is_manual() ? "true" : "false"),
+ ($adjustment->is_executed() ? "true" : "false"),
+ $adjustment->get_year()
);
$query ="INSERT INTO rental_adjustment (" . join(',', $cols) .
") VALUES (" . join(',', $values) . ")";
@@ -188,7 +188,6 @@
public function run_adjustments()
{
- //TODO:
/* check if there are incomplete adjustments (for today)
* gather all adjustable contracts with
* interval = adjustment interval and this year =
last adjusted + interval
@@ -199,12 +198,12 @@
* update adjustment -> set is_executed to true
* update price book elements according to type if interval=1
*/
- $current_date = strtotime('now'); //TODO: fix this
- $prev_day = mktime(0,0,0,date('m'),date('d')-1,date('Y'));
+
+ $prev_day = mktime(0,0,0,date('m'),date('d'),date('Y'));
$next_day = mktime(0,0,0,date('m'),date('d')+1,date('Y'));
//get incomplete adjustments for today
- $adjustments_query = "SELECT * FROM rental_adjustment WHERE NOT
is_executed AND (adjustment_date < {$next_day} AND adjustment_date >
{$prev_day})";
+ $adjustments_query = "SELECT * FROM rental_adjustment WHERE NOT
is_executed AND (adjustment_date < {$next_day} AND adjustment_date >=
{$prev_day})";
//var_dump($adjustments_query);
$result = $this->db->query($adjustments_query);
//var_dump("etter spr");
@@ -264,8 +263,8 @@
//gather all adjustable contracts
$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()}) = {$adjustment->get_year()})";
+ $adjustable_contracts .= "AND adjustment_interval =
{$adjustment->get_interval()} ";
+ $adjustable_contracts .= "AND (((adjustment_year +
{$adjustment->get_interval()}) <= {$adjustment->get_year()})";
$adjustable_contracts .= " OR ";
$adjustable_contracts .= "(adjustment_year IS NULL OR
adjustment_year = 0)";
$adjustable_contracts .= ")";
@@ -279,7 +278,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() == $adjustment->get_year())))
+ $contract =
rental_socontract::get_instance()->get_single($contract_id);
+
+ $firstJanAdjYear =
mktime(0,0,0,1,1,$adjustment->get_year());
+ if($contract->is_active($firstJanAdjYear) &&
(($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,
$adjustment->get_year());
@@ -374,5 +376,22 @@
}
return true;
}
+
+ public function newer_executed_regulation_exists($adjustment){
+ $columns = "id";
+ $table = "rental_adjustment";
+ $conditions = "is_executed='true'".
+ "AND adjustment_date >
{$adjustment->get_adjustment_date()}".
+ "AND
adjustment_interval={$adjustment->get_interval()}".
+ "AND
responsibility_id={$adjustment->get_responsibility_id()}";
+ $sql = "Select $columns from $table where $conditions";
+
+ $result = $this->db->query($sql);
+
+ if($this->db->num_rows() > 0){
+ return true;
+ }
+ return false;
+ }
}
?>
Modified: trunk/rental/inc/class.socontract.inc.php
===================================================================
--- trunk/rental/inc/class.socontract.inc.php 2010-11-11 08:58:39 UTC (rev
6580)
+++ trunk/rental/inc/class.socontract.inc.php 2010-11-11 14:51:20 UTC (rev
6581)
@@ -179,12 +179,19 @@
$adjustment_interval =
$this->marshal($filters['adjustment_interval'],'int');
$adjustment_year =
$this->marshal($filters['adjustment_year'],'int');
- if($this->marshal($filters['adjustment_is_executed'])){
+ if($filters['adjustment_is_executed']){
$filter_clauses[] = "contract.adjustment_year =
{$adjustment_year}";
}
else{
- $filter_clauses[] = "contract.adjustment_year +
{$adjustment_interval} = {$adjustment_year}";
+ $filter_clauses[] = "contract.adjustment_year +
{$adjustment_interval} <= {$adjustment_year}";
}
+
+ $firstJanAdjYear = mktime(0,0,0,1,1,$adjustment_year);
+
+ //make sure the contracts are active
+ $filter_clauses[] = "(contract.date_end is null OR
contract.date_end >= {$firstJanAdjYear})";
+ $filter_clauses[] = "contract.date_start is not null
AND contract.date_start <= {$firstJanAdjYear}";
+
$filter_clauses[] = "contract.adjustable IS true";
$filter_clauses[] = "contract.adjustment_interval =
{$adjustment_interval}";
Modified: trunk/rental/inc/class.uiadjustment.inc.php
===================================================================
--- trunk/rental/inc/class.uiadjustment.inc.php 2010-11-11 08:58:39 UTC (rev
6580)
+++ trunk/rental/inc/class.uiadjustment.inc.php 2010-11-11 14:51:20 UTC (rev
6581)
@@ -96,7 +96,7 @@
{
default:
$value['ajax'][] = false;
- $value['actions'][] =
html_entity_decode(self::link(array('menuaction' => 'rental.uiadjustment.view',
'id' => $value['id'])));
+ $value['actions'][] =
html_entity_decode(self::link(array('menuaction' =>
'rental.uiadjustment.show_affected_contracts', 'id' => $value['id'])));
$value['labels'][] = lang('show');
$value['ajax'][] = false;
$value['actions'][] =
html_entity_decode(self::link(array('menuaction' => 'rental.uiadjustment.edit',
'id' => $value['id'])));
@@ -107,9 +107,9 @@
$value['ajax'][] = false;
$value['actions'][] =
html_entity_decode(self::link(array('menuaction' =>
'rental.uiadjustment.delete', 'id' => $value['id'])));
$value['labels'][] = lang('delete');
- $value['ajax'][] = false;
- $value['actions'][] =
html_entity_decode(self::link(array('menuaction' =>
'rental.uiadjustment.show_affected_contracts', 'id' => $value['id'])));
- $value['labels'][] =
lang('show_affected_contracts');
+ //$value['ajax'][] = false;
+ //$value['actions'][] =
html_entity_decode(self::link(array('menuaction' =>
'rental.uiadjustment.show_affected_contracts', 'id' => $value['id'])));
+ //$value['labels'][] =
lang('show_affected_contracts');
}
}
@@ -271,9 +271,17 @@
{
$adjustment_id = (int)phpgw::get_var('id');
$adjustment =
rental_soadjustment::get_instance()->get_single($adjustment_id);
+
+ //if there exist another regulation that has been exectued
after current regulation with the same filters, the affected list will be out
of date.
+ $show_affected_list = true;
+ if($adjustment->is_executed()){
+
if(rental_soadjustment::get_instance()->newer_executed_regulation_exists($adjustment))$show_affected_list
= false;
+ }
+
$this->render('contracts_for_regulation_list.php',
array('adjustment_id' => $adjustment_id,
'adjustment' =>
$adjustment,
-
'cancel_link' =>
self::link(array('menuaction' => 'rental.uiadjustment.index'))));
+
'cancel_link' =>
self::link(array('menuaction' => 'rental.uiadjustment.index')),
+
'show_affected_list' =>
$show_affected_list));
}
public function run_adjustments()
Modified: trunk/rental/inc/model/class.contract.inc.php
===================================================================
--- trunk/rental/inc/model/class.contract.inc.php 2010-11-11 08:58:39 UTC
(rev 6580)
+++ trunk/rental/inc/model/class.contract.inc.php 2010-11-11 14:51:20 UTC
(rev 6581)
@@ -995,9 +995,11 @@
}
}
- public function is_active()
+ public function is_active($date)
{
- $ts = strtotime(date('Y-m-d')); // timestamp for today
+ $ts = $date;
+ if(!$ts)
+ $ts = strtotime(date('Y-m-d')); // timestamp
for today
$date_start =
$this->get_contract_date()->get_start_date();
$date_end = $this->get_contract_date()->get_end_date();
Modified: trunk/rental/setup/phpgw_no.lang
===================================================================
--- trunk/rental/setup/phpgw_no.lang 2010-11-11 08:58:39 UTC (rev 6580)
+++ trunk/rental/setup/phpgw_no.lang 2010-11-11 14:51:20 UTC (rev 6581)
@@ -20,6 +20,7 @@
adjustment_is_executed rental no Reguleringen er utført
adjustment_is_not_executed rental no Reguleringen er ikke utført
adjustment_list rental no Reguleringer
+adjustment_list_out_of_date rental no Det er kjørt en nyere
regulering for samme utvalg av kontrakter
adjustment_share rental no Reguleringsandel
adjustment_type rental no Reguleringstype
adjustment_year rental no Sist regulert
Modified: trunk/rental/templates/base/contracts_for_regulation_list.php
===================================================================
--- trunk/rental/templates/base/contracts_for_regulation_list.php
2010-11-11 08:58:39 UTC (rev 6580)
+++ trunk/rental/templates/base/contracts_for_regulation_list.php
2010-11-11 14:51:20 UTC (rev 6581)
@@ -42,19 +42,26 @@
</div>
<div style="float: left; width: 100%;">
<?php
- $list_form = false;
- $list_id = 'contracts_for_adjustment';
- $url_add_on = '&type='.$list_id.'&id='.$adjustment_id;
- $editable = false;
- $extra_cols = array(
- array("key" => "type", "label" =>
lang('responsibility'), "index" => 3),
- array("key" => "composite", "label" =>
lang('composite'), "sortable"=>'true', "index" => 4),
- array("key" => "party", "label" => lang('party'),
"sortable"=>'true', "index" => 5),
- array("key" => "adjustment_interval", "label" =>
lang('adjustment_interval'), "sortable"=>false),
- array("key" => "adjustment_share", "label" =>
lang('adjustment_share'), "sortable"=>false),
- array("key" => "adjustment_year", "label" =>
lang('adjustment_year'), "sortable"=>false)
- );
- include('contract_list_partial.php');
+ if($show_affected_list){
+ $list_form = false;
+ $list_id = 'contracts_for_adjustment';
+ $url_add_on =
'&type='.$list_id.'&id='.$adjustment_id;
+ $editable = false;
+ $extra_cols = array(
+ array("key" => "type", "label" =>
lang('responsibility'), "index" => 3),
+ array("key" => "composite", "label" =>
lang('composite'), "sortable"=>'true', "index" => 4),
+ array("key" => "party", "label" =>
lang('party'), "sortable"=>'true', "index" => 5),
+ array("key" => "adjustment_interval", "label"
=> lang('adjustment_interval'), "sortable"=>false),
+ array("key" => "adjustment_share", "label" =>
lang('adjustment_share'), "sortable"=>false),
+ array("key" => "adjustment_year", "label" =>
lang('adjustment_year'), "sortable"=>false)
+ );
+ include('contract_list_partial.php');
+ }
+ else{
?>
+ <h3><?php echo lang("adjustment_list_out_of_date")?></h3>
+ <?php
+ }
+ ?>
</div>
</div>
\ No newline at end of file
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [6581] rental: updates for regulation solution, changed logic for calcuation of regulation and show affected contract of a regulation,
Joakim Hop <=