[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Fmsystem-commits] [8988] property: move orders to new home
From: |
Sigurd Nes |
Subject: |
[Fmsystem-commits] [8988] property: move orders to new home |
Date: |
Sat, 17 Mar 2012 19:25:24 +0000 |
Revision: 8988
http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=8988
Author: sigurdne
Date: 2012-03-17 19:25:24 +0000 (Sat, 17 Mar 2012)
Log Message:
-----------
property: move orders to new home
Modified Paths:
--------------
trunk/property/inc/class.boproject.inc.php
trunk/property/inc/class.boworkorder.inc.php
trunk/property/inc/class.soentity.inc.php
trunk/property/inc/class.soproject.inc.php
trunk/property/inc/class.soworkorder.inc.php
trunk/property/inc/class.uiproject.inc.php
trunk/property/inc/class.uiworkorder.inc.php
trunk/property/setup/phpgw_no.lang
trunk/property/templates/base/project.xsl
trunk/property/templates/base/workorder.xsl
Modified: trunk/property/inc/class.boproject.inc.php
===================================================================
--- trunk/property/inc/class.boproject.inc.php 2012-03-16 14:04:26 UTC (rev
8987)
+++ trunk/property/inc/class.boproject.inc.php 2012-03-17 19:25:24 UTC (rev
8988)
@@ -591,10 +591,12 @@
function read_single_mini($project_id)
{
- $project
= $this->so->read_single($project_id);
- $dateformat
= $GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'];
- $project['start_date'] =
$GLOBALS['phpgw']->common->show_date($project['start_date'],$dateformat);
- $project['end_date'] =
isset($project['end_date']) && $project['end_date'] ?
$GLOBALS['phpgw']->common->show_date($project['end_date'],$dateformat) : '';
+ if($project = $this->so->read_single($project_id))
+ {
+ $dateformat
= $GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'];
+ $project['start_date'] =
$GLOBALS['phpgw']->common->show_date($project['start_date'],$dateformat);
+ $project['end_date'] =
isset($project['end_date']) && $project['end_date'] ?
$GLOBALS['phpgw']->common->show_date($project['end_date'],$dateformat) : '';
+ }
if($project['location_code'])
{
Modified: trunk/property/inc/class.boworkorder.inc.php
===================================================================
--- trunk/property/inc/class.boworkorder.inc.php 2012-03-16 14:04:26 UTC
(rev 8987)
+++ trunk/property/inc/class.boworkorder.inc.php 2012-03-17 19:25:24 UTC
(rev 8988)
@@ -598,33 +598,34 @@
switch ($value['status'])
{
- case 'R': $type = lang('Re-opened'); break;
- case 'RM': $type = lang('remark'); break;
- case 'X': $type = lang('Closed'); break;
- case 'O': $type = lang('Opened'); break;
- case 'A': $type = lang('Re-assigned'); break;
- case 'P': $type = lang('Priority changed');
break;
- case 'M':
- $type = lang('Sent by email to');
- $_order_sent_adress =
explode('::',$value['new_value']);
- $this->order_sent_adress =
$_order_sent_adress[0]; // in case we want to resend the order as an reminder
- unset($_order_sent_adress);
- break;
- case 'MS':
- $type = lang('Sent by sms');
- break;
- case 'B': $type = lang('Budget changed'); break;
- 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 'SO': $type = lang('Initial Status');
break;
- case 'S': $type = lang('Status changed'); break;
- case 'SC': $type = lang('Status confirmed');
break;
- case 'AP': $type = lang('Ask for approval');
break;
- case 'ON': $type = lang('Owner notified');
break;
- case 'H': $type = lang('Billable hours
changed'); break;
- default: break;
+ case 'R': $type = lang('Re-opened');
break;
+ case 'RM': $type = lang('remark');
break;
+ case 'X': $type = lang('Closed');
break;
+ case 'O': $type = lang('Opened');
break;
+ case 'A': $type = lang('Re-assigned');
break;
+ case 'P': $type = lang('Priority
changed'); break;
+ case 'M':
+ $type = lang('Sent by email
to');
+ $_order_sent_adress =
explode('::',$value['new_value']);
+ $this->order_sent_adress =
$_order_sent_adress[0]; // in case we want to resend the order as an reminder
+ unset($_order_sent_adress);
+ break;
+ case 'MS':
+ $type = lang('Sent by sms');
+ break;
+ case 'B': $type = lang('Budget
changed'); break;
+ 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 'SO': $type = lang('Initial
Status'); break;
+ case 'S': $type = lang('Status
changed'); break;
+ case 'SC': $type = lang('Status
confirmed'); break;
+ case 'AP': $type = lang('Ask for
approval'); break;
+ case 'ON': $type = lang('Owner
notified'); break;
+ case 'H': $type = lang('Billable hours
changed'); break;
+ case 'NP': $type = lang('moved to
another project'); break;
+ default:
}
if($value['new_value']=='O'){$value['new_value']=lang('Opened');}
Modified: trunk/property/inc/class.soentity.inc.php
===================================================================
--- trunk/property/inc/class.soentity.inc.php 2012-03-16 14:04:26 UTC (rev
8987)
+++ trunk/property/inc/class.soentity.inc.php 2012-03-17 19:25:24 UTC (rev
8988)
@@ -295,7 +295,7 @@
$uicols['datatype'][] = '';
$uicols['sortable'][] = true;
$uicols['exchange'][] = false;
- $uicols['formatter'][] = '';
+ $uicols['formatter'][] = $lookup ? ''
: 'linktToEntity';
$uicols['classname'][] = '';
$cols_return[] = 'id';
@@ -930,7 +930,7 @@
$uicols['datatype'][] = '';
$uicols['sortable'][] = true;
$uicols['exchange'][] = false;
- $uicols['formatter'][] =
'linktToEntity';
+ $uicols['formatter'][] = $lookup ? ''
: 'linktToEntity';
$uicols['classname'][] = '';
$cols_return[] = 'id';
Modified: trunk/property/inc/class.soproject.inc.php
===================================================================
--- trunk/property/inc/class.soproject.inc.php 2012-03-16 14:04:26 UTC (rev
8987)
+++ trunk/property/inc/class.soproject.inc.php 2012-03-17 19:25:24 UTC (rev
8988)
@@ -735,6 +735,7 @@
function read_single($project_id, $values = array())
{
$project_id = (int) $project_id;
+ $project = array();
$sql = "SELECT * from fm_project WHERE
id={$project_id}";
$this->db->query($sql,__LINE__,__FILE__);
@@ -1160,9 +1161,13 @@
if($project['budget'])
{
- $new_budget =
$this->updat_budget($project['id'], $project['budget_year'],
$project['budget']);
+ $this->updat_budget($project['id'],
$project['budget_year'], $project['budget']);
}
+ $this->db->query("SELECT sum(budget) AS sum_budget FROM
fm_project_budget WHERE project_id = " . (int)$project['id'],__LINE__,__FILE__);
+ $this->db->next_record();
+ $new_budget =(int)$this->db->f('sum_budget');
+
if($project['extra']['contact_phone'] &&
$project['extra']['tenant_id'])
{
$this->db->query("UPDATE fm_tenant SET
contact_phone='". $project['extra']['contact_phone']. "' WHERE id='".
$project['extra']['tenant_id']. "'",__LINE__,__FILE__);
@@ -1190,13 +1195,18 @@
}
$this->update_request_status($project['id'],$project['status'],$project['cat_id'],$project['coordinator']);
- $this->db->query("SELECT id from fm_workorder WHERE
project_id=" . (int)$project['id'] ,__LINE__,__FILE__);
+ $this->db->query("SELECT id FROM fm_workorder WHERE
project_id=" . (int)$project['id'] ,__LINE__,__FILE__);
$workorders = array();
while ($this->db->next_record())
{
$workorders[] = $this->db->f('id');
}
+ if ($workorders)
+ {
+ $historylog_workorder =
CreateObject('property.historylog','workorder');
+ }
+
if (($old_status != $project['status']) ||
$project['confirm_status'])
{
$close_pending_action = false;
@@ -1229,10 +1239,6 @@
unset($action_params);
}
- if ($workorders)
- {
- $historylog_workorder =
CreateObject('property.historylog','workorder');
- }
if($old_status != $project['status'])
{
@@ -1326,6 +1332,88 @@
// execMethod('property.soworkorder.update_planned_cost',
$project['id']);
+ if (isset($project['new_project_id']) &&
$project['new_project_id'] && ($project['new_project_id'] != $project['id']))
+ {
+ $new_project_id = (int)
$project['new_project_id'];
+ reset($workorders);
+ foreach($workorders as $workorder_id)
+ {
+
$historylog_workorder->add('NP',$workorder_id,$new_project_id, $project['id']);
+ }
+
+ $sql = "SELECT sum(budget) AS sum_budget FROM
fm_project_budget WHERE project_id = {$new_project_id}";
+ $this->db->query($sql,__LINE__,__FILE__);
+ $this->db->next_record();
+ $old_budget_new_project =
(int)$this->db->f('sum_budget');
+
+ $sql = "SELECT * FROM fm_project_budget WHERE
project_id = " . (int)$project['id'];
+ $this->db->query($sql,__LINE__,__FILE__);
+
+ $budget = array();
+ while ($this->db->next_record())
+ {
+ $budget[] = array
+ (
+ 'project_id' =>
(int)$project['id'],
+ 'year'
=> $this->db->f('year'),
+ 'budget'
=> (int)$this->db->f('budget'),
+ 'user_id'
=> $this->db->f('user_id'),
+ 'entry_date' =>
$this->db->f('entry_date'),
+ 'modified_date' =>
$this->db->f('modified_date')
+ );
+ }
+
+ foreach($budget as $entry)
+ {
+ $sql = "SELECT * FROM fm_project_budget
WHERE project_id = {$new_project_id} AND year = {$entry['year']}";
+
$this->db->query($sql,__LINE__,__FILE__);
+ if($this->db->next_record())
+ {
+ $sql = "UPDATE
fm_project_budget SET budget = budget + {$entry['budget']} WHERE project_id =
{$new_project_id} AND year = {$entry['year']}";
+ }
+ else
+ {
+ $value_set = array
+ (
+ 'project_id'
=> $new_project_id,
+ 'year'
=> $entry['year'],
+ 'budget'
=> $entry['budget'],
+ 'user_id'
=> $entry['user_id'],
+ 'entry_date'
=> $entry['entry_date'],
+ 'modified_date'
=> $entry['modified_date']
+ );
+ $cols = implode(',',
array_keys($value_set));
+ $values =
$this->db->validate_insert(array_values($value_set));
+ $this->db->query("INSERT INTO
fm_project_budget ({$cols}) VALUES ({$values})",__LINE__,__FILE__);
+ }
+ }
+
+ if ($old_budget)
+ {
+ $historylog->add('B',$project['id'],0,
$old_budget);
+ }
+
+ $sql = "SELECT sum(budget) AS sum_budget FROM
fm_project_budget WHERE project_id = {$new_project_id}";
+ $this->db->query($sql,__LINE__,__FILE__);
+ $this->db->next_record();
+ $new_budget_new_project =
(int)$this->db->f('sum_budget');
+
+ $sql = "SELECT reserve FROM fm_project WHERE id
= " . (int)$project['id'];
+ $this->db->query($sql,__LINE__,__FILE__);
+ $this->db->next_record();
+ $reserve_old_project =
(int)$this->db->f('reserve');
+
+ if ($new_budget_new_project !=
$old_budget_new_project)
+ {
+ $historylog->add('B',$new_project_id,
$new_budget_new_project, $old_budget_new_project);
+ }
+ $this->db->query("UPDATE fm_workorder SET
project_id = {$new_project_id} WHERE project_id =
{$project['id']}",__LINE__,__FILE__);
+ $this->db->query("UPDATE fm_project SET reserve
= 0 WHERE reserve IS NULL AND id = {$new_project_id}" ,__LINE__,__FILE__);
+ $this->db->query("UPDATE fm_project SET budget
= {$new_budget_new_project}, reserve = reserve + {$reserve_old_project} WHERE
id = {$new_project_id}" ,__LINE__,__FILE__);
+ $this->db->query("UPDATE fm_project SET budget
= 0, reserve = 0 WHERE id = " . (int)$project['id'] ,__LINE__,__FILE__);
+ $this->db->query("DELETE FROM fm_project_budget
WHERE project_id = " . (int)$project['id'] ,__LINE__,__FILE__);
+ }
+
$receipt['id'] = $project['id'];
$receipt['message'][] = array('msg'=>lang('project %1
has been edited', $project['id']));
Modified: trunk/property/inc/class.soworkorder.inc.php
===================================================================
--- trunk/property/inc/class.soworkorder.inc.php 2012-03-16 14:04:26 UTC
(rev 8987)
+++ trunk/property/inc/class.soworkorder.inc.php 2012-03-17 19:25:24 UTC
(rev 8988)
@@ -1256,6 +1256,13 @@
$historylog->add('B', $workorder['id'],
$workorder['budget'], $old_budget);
}
+ if (isset($workorder['new_project_id']) &&
$workorder['new_project_id'] && ($workorder['new_project_id'] !=
$workorder['project_id']))
+ {
+ $new_project_id = (int)
$workorder['new_project_id'];
+ $this->db->query("UPDATE fm_workorder SET
project_id = {$new_project_id} WHERE id= {$workorder['id']}"
,__LINE__,__FILE__);
+
$historylog->add('NP',$workorder['id'],$new_project_id,
$workorder['project_id']);
+ }
+
if ($workorder['remark'])
{
$historylog->add('RM', $workorder['id'],
$workorder['remark']);
Modified: trunk/property/inc/class.uiproject.inc.php
===================================================================
--- trunk/property/inc/class.uiproject.inc.php 2012-03-16 14:04:26 UTC (rev
8987)
+++ trunk/property/inc/class.uiproject.inc.php 2012-03-17 19:25:24 UTC (rev
8988)
@@ -1131,6 +1131,16 @@
}
}
+ if(isset($values['new_project_id']) &&
$values['new_project_id'] &&
!$this->bo->read_single_mini($values['new_project_id']))
+ {
+
$receipt['error'][]=array('msg'=>lang('the project %1 does not exist',
$values['new_project_id']));
+ }
+
+ if(isset($values['new_project_id']) &&
$values['new_project_id'] && $values['new_project_id'] == $id)
+ {
+
unset($values['new_project_id']);
+ }
+
if(!isset($values['end_date']) ||
!$values['end_date'])
{
$receipt['error'][]=array('msg'=>lang('Please select an end date!'));
Modified: trunk/property/inc/class.uiworkorder.inc.php
===================================================================
--- trunk/property/inc/class.uiworkorder.inc.php 2012-03-16 14:04:26 UTC
(rev 8987)
+++ trunk/property/inc/class.uiworkorder.inc.php 2012-03-17 19:25:24 UTC
(rev 8988)
@@ -959,6 +959,16 @@
$values =
$this->bocommon->collect_locationdata($values,$insert_record);
}
+ if(isset($values['new_project_id']) &&
$values['new_project_id'] &&
!$boproject->read_single_mini($values['new_project_id']))
+ {
+
$receipt['error'][]=array('msg'=>lang('the project %1 does not exist',
$values['new_project_id']));
+ }
+
+ if(isset($values['new_project_id']) &&
$values['new_project_id'] && $values['new_project_id'] == $values['project_id'])
+ {
+ unset($values['new_project_id']);
+ }
+
if(!$values['title'])
{
$receipt['error'][]=array('msg'=>lang('Please enter a workorder title !'));
Modified: trunk/property/setup/phpgw_no.lang
===================================================================
--- trunk/property/setup/phpgw_no.lang 2012-03-16 14:04:26 UTC (rev 8987)
+++ trunk/property/setup/phpgw_no.lang 2012-03-17 19:25:24 UTC (rev 8988)
@@ -1050,6 +1050,10 @@
month property no Måned
Monthly (by day) property no Månedlig (dag)
Monthly (by date) property no Månedlig (dato)
+move property no Flytt
+move budget and orders to another project property no Flytt
budsjett og bestillinger til et annet prosjekt
+move to another project property no Flytt til et annet
prosjekt
+moved to another project property no Flyttet til et annet
prosjekt
muliple checkbox property no Flervalgs avkrysningsknapp
muliple radio property no Flervalgs radioknapp
multiple checkbox property no Flervalgs avkrysningsknapp
@@ -1694,6 +1698,7 @@
the mail server returned property no E-post serveren
returnerte
the number of %1 hour is added! property no %1 poster er
lagt til
The order will also be sent to this one property no
Bestillinga blir også sendt til denne
+the project %1 does not exist property no Prosjekt %1 finnes ikke
the project has not been saved property no Prosjektet er ikke
lagret
the property is private. if the property should be public, uncheck this box
property no Eiendommen er merket privat. Dersom den skulle være
public - fjern krysset i denne boksen
the property is public. if the property should be private, check this box
property no Eiendommen er merket public. Dersom den skulle være
privat - kryss av denne boksen
Modified: trunk/property/templates/base/project.xsl
===================================================================
--- trunk/property/templates/base/project.xsl 2012-03-16 14:04:26 UTC (rev
8987)
+++ trunk/property/templates/base/project.xsl 2012-03-17 19:25:24 UTC (rev
8988)
@@ -356,6 +356,23 @@
</xsl:choose>
</xsl:when>
</xsl:choose>
+ <xsl:choose>
+ <xsl:when
test="value_project_id!='' and mode='edit'">
+ <tr>
+
<td valign="top">
+
<xsl:value-of select="php:function('lang', 'move')"/>
+
</td>
+
<td>
+
<input type="text" name="values[new_project_id]" value="">
+
<xsl:attribute name="title">
+
<xsl:value-of select="php:function('lang', 'move budget
and orders to another project')"/>
+
</xsl:attribute>
+
</input>
+
</td>
+ </tr>
+ </xsl:when>
+ </xsl:choose>
+
<tr>
<td
valign="top">
<xsl:value-of select="php:function('lang', 'budget')"/>
Modified: trunk/property/templates/base/workorder.xsl
===================================================================
--- trunk/property/templates/base/workorder.xsl 2012-03-16 14:04:26 UTC (rev
8987)
+++ trunk/property/templates/base/workorder.xsl 2012-03-17 19:25:24 UTC (rev
8988)
@@ -166,6 +166,22 @@
</td>
</tr>
<xsl:choose>
+ <xsl:when
test="value_workorder_id!='' and mode='edit'">
+ <tr>
+
<td valign="top">
+
<xsl:value-of select="php:function('lang', 'move to another project')"/>
+
</td>
+
<td>
+
<input type="text" name="values[new_project_id]" value="">
+
<xsl:attribute name="title">
+
<xsl:value-of select="php:function('lang', 'move to
another project')"/>
+
</xsl:attribute>
+
</input>
+
</td>
+ </tr>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:choose>
<xsl:when
test="location_template_type='form'">
<xsl:call-template name="location_form"/>
</xsl:when>
@@ -294,7 +310,7 @@
<td>
<input
type="hidden" name="values[origin]" value="{value_origin_type}"/>
<input
type="hidden" name="values[origin_id]" value="{value_origin_id}"/>
- <input
type="text" name="values[title]" value="{value_title}"
onMouseout="window.status='';return true;">
+ <input
type="text" name="values[title]" value="{value_title}" size="60">
<xsl:attribute name="title">
<xsl:value-of select="lang_title_statustext"/>
</xsl:attribute>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [8988] property: move orders to new home,
Sigurd Nes <=