[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Fmsystem-commits] [16072] Stable: Merge 16064:16071 from trunk
From: |
sigurdne |
Subject: |
[Fmsystem-commits] [16072] Stable: Merge 16064:16071 from trunk |
Date: |
Mon, 12 Dec 2016 10:26:05 +0000 (UTC) |
Revision: 16072
http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=16072
Author: sigurdne
Date: 2016-12-12 10:26:04 +0000 (Mon, 12 Dec 2016)
Log Message:
-----------
Stable: Merge 16064:16071 from trunk
Modified Paths:
--------------
branches/Version-2_0-branch/phpgwapi/inc/class.phpgw.inc.php
branches/Version-2_0-branch/property/inc/class.botts.inc.php
branches/Version-2_0-branch/property/inc/class.boworkorder.inc.php
branches/Version-2_0-branch/property/inc/class.soproject.inc.php
branches/Version-2_0-branch/property/inc/class.soworkorder.inc.php
branches/Version-2_0-branch/property/inc/class.uilocation.inc.php
branches/Version-2_0-branch/property/inc/class.uiproject.inc.php
branches/Version-2_0-branch/property/inc/class.uitts.inc.php
branches/Version-2_0-branch/property/inc/class.uiwo_hour.inc.php
branches/Version-2_0-branch/property/inc/class.uiworkorder.inc.php
branches/Version-2_0-branch/property/inc/cron/default/Import_fra_agresso_X205_BK.php
branches/Version-2_0-branch/property/inc/custom/default/BkBygg_lag_Agresso_ordre_fra_workorder.php
branches/Version-2_0-branch/property/js/portico/workorder.edit.js
branches/Version-2_0-branch/property/setup/phpgw_en.lang
branches/Version-2_0-branch/property/setup/phpgw_no.lang
branches/Version-2_0-branch/property/templates/base/config.tpl
branches/Version-2_0-branch/property/templates/base/workorder.xsl
Property Changed:
----------------
branches/Version-2_0-branch/
Property changes on: branches/Version-2_0-branch
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/dev-syncromind:13653
/branches/dev-syncromind-2:14933-15891
/branches/stavangerkommune:12743-12875,12986
/trunk:14721-14732,14734-14735,14737,14739,14741,14743-14744,14746-14749,14751,14753,14755-14757,14759,14761-14764,14766-14768,14770-14783,14785-14792,14794-14813,14815-14816,14818,14820-14822,14824-14825,14827-14829,14831-14834,14836,14838,14840-14842,14844-14845,14847,14849-14866,14868-14869,14871,14873-14875,14877-14878,14880-14884,14886-14896,14898,14900-14902,14904,14906-14909,14911-14915,14917-14919,14921-14922,14924-14978,14980-15258,15260-15261,15263-15264,15266-15285,15287-15288,15290-15291,15293,15295,15297,15299-15305,15307-15310,15312-15335,15337-15352,15354,15356,15358,15360-15541,15543-15566,15568-15569,15571,15573-15581,15583,15585-15617,15619,15621-15630,15632-15635,15637-15639,15641-15643,15645,15647-15665,15667-15668,15670-15671,15673-15693,15695-15712,15714-15764,15766-15767,15769-15787,15789-15802,15804-15811,15813-15814,15816-15818,15820-15849,15851-15887,15889-15900,15902-16046,16048-16051,16053,16055,16057-16063
+ /branches/dev-syncromind:13653
/branches/dev-syncromind-2:14933-15891
/branches/stavangerkommune:12743-12875,12986
/trunk:14721-14732,14734-14735,14737,14739,14741,14743-14744,14746-14749,14751,14753,14755-14757,14759,14761-14764,14766-14768,14770-14783,14785-14792,14794-14813,14815-14816,14818,14820-14822,14824-14825,14827-14829,14831-14834,14836,14838,14840-14842,14844-14845,14847,14849-14866,14868-14869,14871,14873-14875,14877-14878,14880-14884,14886-14896,14898,14900-14902,14904,14906-14909,14911-14915,14917-14919,14921-14922,14924-14978,14980-15258,15260-15261,15263-15264,15266-15285,15287-15288,15290-15291,15293,15295,15297,15299-15305,15307-15310,15312-15335,15337-15352,15354,15356,15358,15360-15541,15543-15566,15568-15569,15571,15573-15581,15583,15585-15617,15619,15621-15630,15632-15635,15637-15639,15641-15643,15645,15647-15665,15667-15668,15670-15671,15673-15693,15695-15712,15714-15764,15766-15767,15769-15787,15789-15802,15804-15811,15813-15814,15816-15818,15820-15849,15851-15887,15889-15900,15902-16046,16048-16051,16053,16055,16057-16063,16065-16071
Modified: branches/Version-2_0-branch/phpgwapi/inc/class.phpgw.inc.php
===================================================================
--- branches/Version-2_0-branch/phpgwapi/inc/class.phpgw.inc.php
2016-12-12 10:21:33 UTC (rev 16071)
+++ branches/Version-2_0-branch/phpgwapi/inc/class.phpgw.inc.php
2016-12-12 10:26:04 UTC (rev 16072)
@@ -465,7 +465,7 @@
$value = filter_var($value,
FILTER_SANITIZE_STRING, FILTER_FLAG_NO_ENCODE_QUOTES);
$value =
htmlspecialchars($value, ENT_QUOTES, 'UTF-8', true);
// $value = htmlentities($value,
ENT_QUOTES, 'UTF-8', true);
- $value = str_replace(array('(',
')', '=', '--',';'),array('(', ')', '=','−−',';'),
$value); // prevent SQL-injection
+ $value =
str_replace(array(';','(', ')', '=', '--'),array(';','(', ')',
'=','−−'), $value); // prevent SQL-injection
break;
case 'boolean':
Modified: branches/Version-2_0-branch/property/inc/class.botts.inc.php
===================================================================
--- branches/Version-2_0-branch/property/inc/class.botts.inc.php
2016-12-12 10:21:33 UTC (rev 16071)
+++ branches/Version-2_0-branch/property/inc/class.botts.inc.php
2016-12-12 10:26:04 UTC (rev 16072)
@@ -1788,18 +1788,19 @@
*/
public function check_purchase_right($ecodimb = 0, $amount = 0,
$order_id = 0)
{
- $need_approval =
isset($this->config->config_data['workorder_approval']) ?
$this->config->config_data['workorder_approval'] : '';
+ $need_approval =
empty($this->config->config_data['workorder_approval']) ? false : true;
if(!$need_approval)
{
return array();
}
+ $approval_amount_limit =
!empty($this->config->config_data['approval_amount_limit']) ? (int)
$this->config->config_data['approval_amount_limit'] : 0;
$config = CreateObject('admin.soconfig',
$GLOBALS['phpgw']->locations->get_id('property', '.ticket'));
$check_external_register=
!!$config->config_data['external_register']['check_external_register'];
$supervisors = array();
- $invoice = CreateObject('property.soinvoice');
if (isset($this->config->config_data['invoice_acl']) &&
$this->config->config_data['invoice_acl'] == 'dimb')
{
+ $invoice = CreateObject('property.soinvoice');
$default_found = false;
$supervisor_id =
$invoice->get_default_dimb_role_user(3, $ecodimb);
if($supervisor_id)
@@ -1889,7 +1890,7 @@
$supervisors[$supervisor_id] =
array('id' => $supervisor_id, 'required' => true);
}
}
- else
+ else if($approval_amount_limit > 0 && $amount >
$approval_amount_limit)
{
$supervisor_id = 0;
@@ -1900,7 +1901,7 @@
if ($supervisor_id)
{
- $supervisors[$supervisor_id] =
array('id' => $supervisor_id, 'required' => true);
+ $supervisors[$supervisor_id] =
array('id' => $supervisor_id, 'required' => true, 'default' => true);
$prefs =
$this->bocommon->create_preferences('property', $supervisor_id);
@@ -1913,63 +1914,16 @@
}
}
- if(!$check_external_register &&
!empty($GLOBALS['phpgw_info']['user']['preferences']['property']['approval_from'])
- &&
empty($supervisors[$GLOBALS['phpgw_info']['user']['preferences']['property']['approval_from']]))
- {
- $supervisor_id =
$GLOBALS['phpgw_info']['user']['preferences']['property']['approval_from'];
- $supervisors[$supervisor_id] = array('id' =>
$supervisor_id, 'required' => false, 'default' => true);
- }
+// if(!$check_external_register &&
!empty($GLOBALS['phpgw_info']['user']['preferences']['property']['approval_from'])
+// &&
empty($supervisors[$GLOBALS['phpgw_info']['user']['preferences']['property']['approval_from']]))
+// {
+// $supervisor_id =
$GLOBALS['phpgw_info']['user']['preferences']['property']['approval_from'];
+// $supervisors[$supervisor_id] = array('id' =>
$supervisor_id, 'required' => false, 'default' => true);
+// }
return $this->get_supervisor_approval($supervisors,
$order_id);
}
- public function check_external_register($param)
- {
- $id = $param['id'];
- // $url =
"http://tjenester.usrv.ubergenkom.no/api/tilskudd/{$sub_check}";
- $url = "{$param['url']}/{$param['sub_check']}";
- $extravars = array
- (
- 'id' => $id,
- );
-
- $url .= '?' . http_build_query($extravars, null, '&');
-
- $post_data = array();
-
- $ch = curl_init();
- // curl_setopt($ch, CURLOPT_PROXY, $proxy);
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_USERPWD,
"{$param['username']}:{$param['password']}");
- curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
- // Set The Response Format to Json
- curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json'));
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
- //set data to be posted
- if($post_data)
- {
- $post_items = array();
- foreach ( $post_data as $key => $value)
- {
- $post_items[] = "{$key}={$value}";
- }
- curl_setopt($ch, CURLOPT_POSTFIELDS, implode
('&', $post_items));
- }
-
- $result = curl_exec($ch);
-
- $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
- curl_close($ch);
-
- if($httpCode != 200)
- {
- throw new Exception("HTTP-status {$httpCode}");
- }
-
- return json_decode($result, true);
- }
-
/**
*
* @param array $supervisors
@@ -1979,12 +1933,10 @@
*/
protected function get_supervisor_approval($supervisors,
$order_id = 0)
{
- $need_approval =
isset($this->config->config_data['workorder_approval']) ?
$this->config->config_data['workorder_approval'] : '';
+ $order_type =
$this->bocommon->socommon->get_order_type($order_id);
if($order_id)
{
- $order_type =
$this->bocommon->socommon->get_order_type($order_id);
-
switch ($order_type)
{
case 'workorder':
@@ -2001,8 +1953,41 @@
}
$supervisor_email = array();
- if ($supervisors && $need_approval)
+
+ //Check if user is asked for approval
+ if(empty($supervisors[$this->account]) && $order_id)
{
+ $action_params = array(
+ 'appname' => 'property',
+ 'location' => $location,
+ 'id' => $location_item_id,
+ 'responsible' => $this->account,
+ 'responsible_type' => 'user',
+ 'action' => 'approval',
+ 'deadline' => '',
+ 'created_by' => '',
+ 'allrows' => false,
+ 'closed' => false
+ );
+ $requests =
CreateObject('property.sopending_action')->get_pending_action($action_params);
+ if($requests)
+ {
+ $supervisors[$this->account] =
array('id' => $this->account, 'required' => true, 'default' => true);
+ }
+ else
+ {
+ $action_params['closed'] = true;
+ $requests =
CreateObject('property.sopending_action')->get_pending_action($action_params);
+ if($requests)
+ {
+ $supervisors[$this->account] =
array('id' => $this->account, 'required' => false, 'default' => true);
+ }
+ }
+ }
+
+
+ if ($supervisors)
+ {
$dateformat =
$GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'];
foreach ($supervisors as $supervisor_id =>
$info)
@@ -2063,6 +2048,55 @@
return $supervisor_email;
}
+
+ public function check_external_register($param)
+ {
+ $id = $param['id'];
+ // $url =
"http://tjenester.usrv.ubergenkom.no/api/tilskudd/{$sub_check}";
+ $url = "{$param['url']}/{$param['sub_check']}";
+ $extravars = array
+ (
+ 'id' => $id,
+ );
+
+ $url .= '?' . http_build_query($extravars, null, '&');
+
+ $post_data = array();
+
+ $ch = curl_init();
+ // curl_setopt($ch, CURLOPT_PROXY, $proxy);
+ curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
+ curl_setopt($ch, CURLOPT_URL, $url);
+ curl_setopt($ch, CURLOPT_USERPWD,
"{$param['username']}:{$param['password']}");
+ curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
+ // Set The Response Format to Json
+ curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json'));
+ curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
+ //set data to be posted
+ if($post_data)
+ {
+ $post_items = array();
+ foreach ( $post_data as $key => $value)
+ {
+ $post_items[] = "{$key}={$value}";
+ }
+ curl_setopt($ch, CURLOPT_POSTFIELDS, implode
('&', $post_items));
+ }
+
+ $result = curl_exec($ch);
+
+ $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
+ curl_close($ch);
+
+ if($httpCode != 200)
+ {
+ throw new Exception("HTTP-status {$httpCode}");
+ }
+
+ return json_decode($result, true);
+ }
+
+
function validate_purchase_grant( $ecodimb, $budget_amount,
$order_id )
{
if($order_id)
Modified: branches/Version-2_0-branch/property/inc/class.boworkorder.inc.php
===================================================================
--- branches/Version-2_0-branch/property/inc/class.boworkorder.inc.php
2016-12-12 10:21:33 UTC (rev 16071)
+++ branches/Version-2_0-branch/property/inc/class.boworkorder.inc.php
2016-12-12 10:26:04 UTC (rev 16072)
@@ -1059,4 +1059,24 @@
return $_budget_amount[$id];
}
+ function get_accumulated_budget_amount($project_id)
+ {
+ $_budget_amount = 0;
+ $orders = $this->so->get_order_list($project_id);
+ foreach ($orders as $order_id)
+ {
+ $_budget_amount += (int)
$this->get_budget_amount($order_id);
+ }
+ return $_budget_amount;
+ }
+
+ /**
+ * Get orders related to a project
+ * @param int $project_id
+ * @return array of ids
+ */
+ function get_order_list($project_id)
+ {
+ return $this->so->get_order_list($project_id);
+ }
}
\ No newline at end of file
Modified: branches/Version-2_0-branch/property/inc/class.soproject.inc.php
===================================================================
--- branches/Version-2_0-branch/property/inc/class.soproject.inc.php
2016-12-12 10:21:33 UTC (rev 16071)
+++ branches/Version-2_0-branch/property/inc/class.soproject.inc.php
2016-12-12 10:26:04 UTC (rev 16072)
@@ -1763,6 +1763,8 @@
execMethod('property.sopending_action.close_pending_action', $action_params);
unset($action_params);
+
+
$this->approve_related_workorders($project['id']);
}
$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';
@@ -2521,6 +2523,23 @@
//_debug_array($open_period);die();
}
+ function set_status( $id, $status_new)
+ {
+ $id = (int)$id;
+ $this->db->query("SELECT status FROM fm_project WHERE
id = '{$id}'", __LINE__, __FILE__);
+ $this->db->next_record();
+ $old_status = $this->db->f('status');
+
+ if ($old_status != $status_new)
+ {
+ $this->db->transaction_begin();
+ $this->db->query("UPDATE fm_project SET status
= '{$status_new}' WHERE id = '{$id}'", __LINE__, __FILE__);
+ $historylog =
CreateObject('property.historylog', 'project');
+ $historylog->add('S', $id, $status_new,
$old_status);
+ $this->db->transaction_commit();
+ }
+ }
+
function update_request_status( $project_id = '', $status = '',
$category = 0, $coordinator = 0 )
{
$historylog_r = CreateObject('property.historylog',
'request');
@@ -3381,4 +3400,42 @@
}
}
}
+
+ private function approve_related_workorders( $project_id )
+ {
+ $project_id = (int)$project_id;
+ $ids = array();
+ $this->db->query("SELECT id FROM fm_workorder WHERE
project_id = {$project_id}", __LINE__, __FILE__);
+ while ($this->db->next_record())
+ {
+ $ids[] = $this->db->f('id');
+ }
+
+ $historylog = CreateObject('property.historylog',
'workorder');
+
+ foreach ($ids as $order_id)
+ {
+ $action_params = array(
+ 'appname' => 'property',
+ 'location' => '.project.workorder',
+ 'id' => $order_id,
+ 'responsible' => $this->account,
+ 'responsible_type' => 'user',
+ 'action' => 'approval',
+ 'remark' => '',
+ 'deadline' => ''
+ );
+
+
if(!execMethod('property.sopending_action.get_pending_action', $action_params))
+ {
+
execMethod('property.sopending_action.set_pending_action', $action_params);
+ }
+
execMethod('property.sopending_action.close_pending_action', $action_params);
+ $budget_amount =
execMethod('property.boworkorder.get_budget_amount', $order_id);
+
+ $historylog->add('OA', $order_id,
$GLOBALS['phpgw']->accounts->get($this->account)->__toString() .
"::{$budget_amount}");
+
+ phpgwapi_cache::message_set(lang('order %1
approved for amount %2', $order_id, $budget_amount),'message');
+ }
+ }
}
\ No newline at end of file
Modified: branches/Version-2_0-branch/property/inc/class.soworkorder.inc.php
===================================================================
--- branches/Version-2_0-branch/property/inc/class.soworkorder.inc.php
2016-12-12 10:21:33 UTC (rev 16071)
+++ branches/Version-2_0-branch/property/inc/class.soworkorder.inc.php
2016-12-12 10:26:04 UTC (rev 16072)
@@ -1022,6 +1022,18 @@
return $budget;
}
+ function get_order_list( $project_id = 0 )
+ {
+ $project_id = (int)$project_id;
+ $this->db->query("select id FROM fm_workorder WHERE
project_id={$project_id}");
+ $values = array();
+ while ($this->db->next_record())
+ {
+ $values[] = $this->db->f('id');
+ }
+ return $values;
+ }
+
/**
* planned cost start out as the project budget - and reflect
the amount yet to be spent on the project
* When an order is placed - the "planned cost" is reduced
with expected cost for that order.
Modified: branches/Version-2_0-branch/property/inc/class.uilocation.inc.php
===================================================================
--- branches/Version-2_0-branch/property/inc/class.uilocation.inc.php
2016-12-12 10:21:33 UTC (rev 16071)
+++ branches/Version-2_0-branch/property/inc/class.uilocation.inc.php
2016-12-12 10:26:04 UTC (rev 16072)
@@ -1663,6 +1663,11 @@
$location_code = phpgw::get_var('location_code');
$values = $this->bo->get_history($location_code);
+ $dateformat =
$GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'];
+ foreach ($values as &$entry)
+ {
+ $entry['entry_date'] =
$GLOBALS['phpgw']->common->show_date($entry['entry_date'],$dateformat);
+ }
$result_data = array('results' => $values);
Modified: branches/Version-2_0-branch/property/inc/class.uiproject.inc.php
===================================================================
--- branches/Version-2_0-branch/property/inc/class.uiproject.inc.php
2016-12-12 10:21:33 UTC (rev 16071)
+++ branches/Version-2_0-branch/property/inc/class.uiproject.inc.php
2016-12-12 10:26:04 UTC (rev 16072)
@@ -1056,7 +1056,15 @@
{
if
(isset($values['approval'][$_account_id]) && $values['approval'][$_account_id])
{
- $rcpt =
$GLOBALS['phpgw']->send->msg('email', $_address, $subject,
stripslashes($message), '', $cc, $bcc, $from_email, $from_name, 'html');
+ try
+ {
+
$rcpt = $GLOBALS['phpgw']->send->msg('email', $_address, $subject,
stripslashes($message), '', $cc, $bcc, $from_email, $from_name, 'html');
+ }
+ catch
(Exception $e)
+ {
+
phpgwapi_cache::message_set($e->getMessage(), 'error');
+ }
+
$action_params['responsible'] = $_account_id;
execMethod('property.sopending_action.set_pending_action', $action_params);
if
(!$rcpt)
@@ -1150,7 +1158,14 @@
$body = nl2br($body);
- $returncode =
$GLOBALS['phpgw']->send->msg('email', $to, $subject, $body, false, false,
false, $from_email, $from_name, 'html');
+ try
+ {
+ $returncode =
$GLOBALS['phpgw']->send->msg('email', $to, $subject, $body, false, false,
false, $from_email, $from_name, 'html');
+ }
+ catch (Exception $e)
+ {
+
phpgwapi_cache::message_set($e->getMessage(), 'error');
+ }
if (!$returncode) //
not nice, but better than failing silently
{
Modified: branches/Version-2_0-branch/property/inc/class.uitts.inc.php
===================================================================
--- branches/Version-2_0-branch/property/inc/class.uitts.inc.php
2016-12-12 10:21:33 UTC (rev 16071)
+++ branches/Version-2_0-branch/property/inc/class.uitts.inc.php
2016-12-12 10:26:04 UTC (rev 16072)
@@ -3622,6 +3622,8 @@
$historylog = CreateObject('property.historylog',
'tts');
$id = $ticket['id'];
+ $order_id = $ticket['order_id'];
+
if (isset($ticket['file_attachments']) &&
is_array($ticket['file_attachments']))
{
$attachments =
CreateObject('property.bofiles')->get_attachments($ticket['file_attachments']);
@@ -3712,7 +3714,7 @@
$rcpt =
$GLOBALS['phpgw']->send->msg('email', $_to, $subject, stripslashes($body), '',
$cc, $bcc, $coordinator_email, $coordinator_name, 'html', '', $attachments,
true);
phpgwapi_cache::message_set(lang('%1 is
notified', $_to),'message' );
$historylog->add('M', $id,
"{$_to}{$attachment_log}");
-
phpgwapi_cache::message_set(lang('Workorder is sent by email!'),'message' );
+
phpgwapi_cache::message_set(lang('Workorder %1 is sent by email to %2',
$order_id, $_to),'message' );
}
catch (Exception $exc)
{
Modified: branches/Version-2_0-branch/property/inc/class.uiwo_hour.inc.php
===================================================================
--- branches/Version-2_0-branch/property/inc/class.uiwo_hour.inc.php
2016-12-12 10:21:33 UTC (rev 16071)
+++ branches/Version-2_0-branch/property/inc/class.uiwo_hour.inc.php
2016-12-12 10:26:04 UTC (rev 16072)
@@ -1536,7 +1536,7 @@
$_attachment_log = $attachment_log ?
"::$attachment_log" : '';
$historylog =
CreateObject('property.historylog', 'workorder');
$historylog->add('M', $workorder_id,
"{$_to}{$_attachment_log}");
- $receipt['message'][] = array('msg' =>
lang('Workorder is sent by email!'));
+ $receipt['message'][] = array('msg' =>
lang('Workorder %1 is sent by email!', $workorder_id));
if ($attachment_log)
{
$receipt['message'][] =
array('msg' => $attachment_log);
@@ -1910,7 +1910,7 @@
{
try
{
- $_validated =
$this->_validate_purchase_grant($workorder_id, $project['ecodimb'] ?
$project['ecodimb'] : $workorder['ecodimb']);
+ $_validated =
$this->_validate_purchase_grant($workorder_id, $project['ecodimb'] ?
$project['ecodimb'] : $workorder['ecodimb'], $project['id']);
}
catch (Exception $ex)
{
@@ -3344,7 +3344,7 @@
function send_order( $workorder_id )
{
$workorder =
$this->boworkorder->read_single($workorder_id);
- $show_cost = true;
+ $show_cost = false;
$email_receipt = true;
$pdfcode = $this->pdf_order($workorder_id, $show_cost);
$dir =
"{$GLOBALS['phpgw_info']['server']['temp_dir']}/pdf_files";
@@ -3373,10 +3373,7 @@
$from_name =
$GLOBALS['phpgw']->accounts->get($workorder['user_id'])->__toString();
$from_email =
"{$from_name}<{$GLOBALS['phpgw']->preferences->data['property']['email']}>";
- if
($GLOBALS['phpgw']->preferences->data['property']['order_email_rcpt'] == 1)
- {
- $bcc = $from_email;
- }
+ $bcc =
!empty($GLOBALS['phpgw']->preferences->data['property']['email']) ? $from_email
: '';
$subject = lang('Workorder') . ": " . $workorder_id;
@@ -3409,12 +3406,15 @@
try
{
$GLOBALS['phpgw']->send->msg('email', $_to,
$subject, $body, '', $cc, $bcc, $from_email, $from_name, 'html', '',
$attachments, $email_receipt);
+ phpgwapi_cache::message_set(lang('Workorder %1
is sent by email to %2', $workorder_id, $_to),'message');
+ phpgwapi_cache::message_set(lang('%1 is
notified', $bcc),'message');
}
catch (Exception $e)
{
if ($e)
{
phpgwapi_cache::message_set($e->getMessage(), 'error');
+ phpgwapi_cache::message_set("Bestilling
{$workorder_id} er ikke sendt", 'error');
throw $e;
}
}
@@ -3457,10 +3457,21 @@
}
- private function _validate_purchase_grant( $id, $ecodimb )
+ private function _validate_purchase_grant( $id, $ecodimb,
$project_id )
{
- $_budget_amount =
$this->boworkorder->get_budget_amount($id);
+ $approval_level =
!empty($this->config->config_data['approval_level']) ?
$this->config->config_data['approval_level'] : 'order';
+
+ $_accumulated_budget_amount = 0;
+ if($approval_level == 'project')
+ {
+ $_budget_amount =
$this->boworkorder->get_accumulated_budget_amount($project_id);
+ }
+ else
+ {
+ $_budget_amount =
$this->boworkorder->get_budget_amount($id);
+ }
+
try
{
$purchase_grant_ok =
CreateObject('property.botts')->validate_purchase_grant( $ecodimb,
$_budget_amount, $id);
Modified: branches/Version-2_0-branch/property/inc/class.uiworkorder.inc.php
===================================================================
--- branches/Version-2_0-branch/property/inc/class.uiworkorder.inc.php
2016-12-12 10:21:33 UTC (rev 16071)
+++ branches/Version-2_0-branch/property/inc/class.uiworkorder.inc.php
2016-12-12 10:26:04 UTC (rev 16072)
@@ -972,12 +972,35 @@
if (isset($values['approval']) &&
$values['approval'] && $config->config_data['workorder_approval'])
{
+ $approval_level =
!empty($config->config_data['approval_level']) ?
$config->config_data['approval_level'] : 'order';
+
+ switch ($approval_level)
+ {
+ case 'project':
+ $approval_menuaction =
'property.uiproject.edit';
+ $subject =
lang('Approval') . ": {$values['project_id']}";
+ $message = '<a href ="'
. $GLOBALS['phpgw']->link( array('menuaction' => $approval_menuaction,
+ 'id' =>
$values['project_id']), false, true) . '">' . lang('project %1 needs approval',
$values['project_id']) . '</a>';
+ if
(isset($config->config_data['project_approval_status']) &&
$config->config_data['project_approval_status'])
+ {
+
$_project_status = $config->config_data['project_approval_status'];
+
createObject('property.soproject')->set_status($values['project_id'],$_project_status);
+ }
+
+ $_orders =
$this->bo->get_order_list($values['project_id']);
+ break;
+ default:
+ $approval_menuaction =
'property.uiworkorder.edit';
+ $subject =
lang('Approval') . ": {$id}";
+ $message = '<a href ="'
. $GLOBALS['phpgw']->link( array('menuaction' => $approval_menuaction,
+ 'id' => $id), false,
true) . '">' . lang('Workorder %1 needs approval', $id) . '</a>';
+ $_orders = array($id);
+ break;
+ }
+
$coordinator_name =
$GLOBALS['phpgw_info']['user']['fullname'];
$coordinator_email =
$GLOBALS['phpgw_info']['user']['preferences']['property']['email'];
- $subject = lang(Approval) . ": " . $id;
- $message = '<a href ="' .
$GLOBALS['phpgw']->link('/index.php', array('menuaction' =>
'property.uiworkorder.edit',
- 'id' => $id), false,
true) . '">' . lang('Workorder %1 needs approval', $ticket['order_id']) .
'</a>';
if
(empty($GLOBALS['phpgw_info']['server']['smtp_server']))
{
@@ -1013,21 +1036,25 @@
$_address =
$GLOBALS['phpgw']->accounts->id2lid($_account_id) . "@{$email_domain}";
}
- $action_params['responsible'] =
$_account_id;
- try
+ foreach ($_orders as $_order_id)
{
- $historylog->add('AP',
$id, $GLOBALS['phpgw']->accounts->get($_account_id)->__toString() .
"::{$_budget_amount}");
-
execMethod('property.sopending_action.set_pending_action', $action_params);
- $rcpt =
$GLOBALS['phpgw']->send->msg('email', $_address, $subject,
stripslashes($message), '', $cc, $bcc, $coordinator_email, $coordinator_name,
'html');
- if ($rcpt)
+
$action_params['responsible'] = $_account_id;
+ $action_params['id'] =
$_order_id;
+ try
{
-
phpgwapi_cache::message_set(lang('%1 is notified', $_address),'message');
+
$historylog->add('AP', $id,
$GLOBALS['phpgw']->accounts->get($_account_id)->__toString() .
"::{$_budget_amount}");
+
execMethod('property.sopending_action.set_pending_action', $action_params);
+ $rcpt =
$GLOBALS['phpgw']->send->msg('email', $_address, $subject,
stripslashes($message), '', $cc, $bcc, $coordinator_email, $coordinator_name,
'html');
+ if ($rcpt)
+ {
+
phpgwapi_cache::message_set(lang('%1 is notified', $_address),'message');
+ }
}
+ catch (Exception $exc)
+ {
+
phpgwapi_cache::message_set($exc->getMessage(),'error');
+ }
}
- catch (Exception $exc)
- {
-
phpgwapi_cache::message_set($exc->getMessage(),'error');
- }
}
}
@@ -2241,6 +2268,15 @@
$enable_unspsc =
isset($config->config_data['enable_unspsc']) &&
$config->config_data['enable_unspsc'] ? true : false;
$enable_order_service_id =
isset($config->config_data['enable_order_service_id']) &&
$config->config_data['enable_order_service_id'] ? true : false;
+
+ $approval_level =
!empty($config->config_data['approval_level']) ?
$config->config_data['approval_level'] : 'order';
+
+ $accumulated_budget_amount = 0;
+ if($approval_level == 'project')
+ {
+ $accumulated_budget_amount =
$this->bo->get_accumulated_budget_amount($values['project_id']);
+ }
+
$data = array(
'datatable_def' => $datatable_def,
'periodization_data' => $periodization_data,
@@ -2299,7 +2335,8 @@
'lang_budget' => lang('Budget'),
'value_budget' =>
isset($this->receipt['error']) && $this->receipt['error'] ?
$_POST['values']['budget'] : '',
'check_for_budget' => abs($budget),
- 'check_value_budget' => $budget,
+ 'local_value_budget' => $budget,
+ 'accumulated_budget_amount' =>
$accumulated_budget_amount ? $accumulated_budget_amount : $budget,
'lang_budget_statustext' => lang('Enter the
budget'),
'lang_incl_tax' => lang('incl tax'),
'lang_calculation' => lang('Calculation'),
Modified:
branches/Version-2_0-branch/property/inc/cron/default/Import_fra_agresso_X205_BK.php
===================================================================
---
branches/Version-2_0-branch/property/inc/cron/default/Import_fra_agresso_X205_BK.php
2016-12-12 10:21:33 UTC (rev 16071)
+++
branches/Version-2_0-branch/property/inc/cron/default/Import_fra_agresso_X205_BK.php
2016-12-12 10:26:04 UTC (rev 16072)
@@ -732,6 +732,23 @@
try
{
$bilagsnr =
$this->import_end_file($buffer);
+
+ $previous_received =
$this->get_previous_received((int)$order_id);
+ $received_amount = (float)
$previous_received + (float) $belop;
+ $order_type =
$this->bocommon->socommon->get_order_type($order_id);
+
+ switch ($order_type)
+ {
+ case 'workorder':
+ $received =
createObject('property.boworkorder')->receive_order( (int)$order_id,
$received_amount );
+ break;
+ case 'ticket':
+ $received =
createObject('property.botts')->receive_order( (int)$order_id, $received_amount
);
+ break;
+ default:
+ throw new
Exception('Order type not supported');
+ }
+
}
catch (Exception $e)
{
@@ -754,6 +771,20 @@
}
}
+ function get_previous_received( $order_id )
+ {
+ $amount = 0;
+ $sql = "SELECT sum(godkjentbelop) AS amount FROM
fm_ecobilag WHERE pmwrkord_code = {$order_id}";
+ $this->db->query($sql, __LINE__, __FILE__);
+ $this->db->next_record();
+ $amount += (float)$this->db->f('amount');
+ $sql = "SELECT sum(godkjentbelop) AS amount FROM
fm_ecobilagoverf WHERE pmwrkord_code = {$order_id}";
+ $this->db->query($sql, __LINE__, __FILE__);
+ $this->db->next_record();
+ $amount += (float)$this->db->f('amount');
+ return $amount;
+ }
+
function get_order_info( $order_id = 0 )
{
$order_id = (int)$order_id;
@@ -839,7 +870,15 @@
function import_end_file( $buffer )
{
- $num = $this->soXport->add($buffer,
$this->skip_update_voucher_id);
+ try
+ {
+ $num = $this->soXport->add($buffer,
$this->skip_update_voucher_id);
+ }
+ catch (Exception $e)
+ {
+ throw $e;
+ }
+
if ($this->debug)
{
_debug_array("import_end_file() ");
Modified:
branches/Version-2_0-branch/property/inc/custom/default/BkBygg_lag_Agresso_ordre_fra_workorder.php
===================================================================
---
branches/Version-2_0-branch/property/inc/custom/default/BkBygg_lag_Agresso_ordre_fra_workorder.php
2016-12-12 10:21:33 UTC (rev 16071)
+++
branches/Version-2_0-branch/property/inc/custom/default/BkBygg_lag_Agresso_ordre_fra_workorder.php
2016-12-12 10:26:04 UTC (rev 16072)
@@ -55,8 +55,20 @@
return 2;
}
- $price =
ExecMethod('property.boworkorder.get_budget_amount',$workorder['id']);
+ $config = CreateObject('phpgwapi.config', 'property');
+ $config->read();
+ $approval_level =
!empty($config->config_data['approval_level']) ?
$config->config_data['approval_level'] : 'order';
+ $price = 0;
+ if($approval_level == 'project')
+ {
+ $price =
ExecMethod('property.boworkorder.get_accumulated_budget_amount',
$workorder['project_id']);
+ }
+ else
+ {
+ $price =
ExecMethod('property.boworkorder.get_budget_amount', $workorder['id']);
+ }
+
try
{
$purchase_grant_ok =
CreateObject('property.botts')->validate_purchase_grant( $workorder['ecodimb'],
$price, $workorder['id']);
Modified: branches/Version-2_0-branch/property/js/portico/workorder.edit.js
===================================================================
--- branches/Version-2_0-branch/property/js/portico/workorder.edit.js
2016-12-12 10:21:33 UTC (rev 16071)
+++ branches/Version-2_0-branch/property/js/portico/workorder.edit.js
2016-12-12 10:26:04 UTC (rev 16072)
@@ -1,4 +1,6 @@
-var amount = 0;
+//var amount = 0;
+var local_value_budget;
+var accumulated_budget_amount;
var order_id;
var vendor_id;
var project_ecodimb;
@@ -537,8 +539,11 @@
var contract_sum = Number($('#field_contract_sum').val());
var budget_sum = Number($('#field_budget').val());
- var total_amount = Math.max(contract_sum, budget_sum) || Number(amount);
+ var total_amount = Math.max((contract_sum - Number(local_value_budget)
+ Number(accumulated_budget_amount)),
+ (budget_sum - Number(local_value_budget) +
Number(accumulated_budget_amount)),
+ (Number(local_value_budget),Number(accumulated_budget_amount)));
+
$("#order_received_amount").val(total_amount);
var oArgs = {menuaction: 'property.uitts.check_purchase_right',
ecodimb: ecodimb, amount: total_amount, order_id: order_id};
Modified: branches/Version-2_0-branch/property/setup/phpgw_en.lang
===================================================================
--- branches/Version-2_0-branch/property/setup/phpgw_en.lang 2016-12-12
10:21:33 UTC (rev 16071)
+++ branches/Version-2_0-branch/property/setup/phpgw_en.lang 2016-12-12
10:26:04 UTC (rev 16072)
@@ -1640,7 +1640,7 @@
Workorder end date property en Workorder end date
workorder entry date property en Workorder entry date
Workorder ID property en Workorder ID
-Workorder is sent by email! property en Workorder is sent by
email!
+Workorder %1 is sent by email to %2 property en Workorder %1 is
sent by email to %2
Workorder start date property en Workorder start date
workorder status property en Workorder status
Workorder template property en Workorder template
Modified: branches/Version-2_0-branch/property/setup/phpgw_no.lang
===================================================================
--- branches/Version-2_0-branch/property/setup/phpgw_no.lang 2016-12-12
10:21:33 UTC (rev 16071)
+++ branches/Version-2_0-branch/property/setup/phpgw_no.lang 2016-12-12
10:26:04 UTC (rev 16072)
@@ -1209,6 +1209,7 @@
order property no Bestilling
order approval revoked property no Bestillingsgodkjenning opphevet
order approved property no Bestilling godkjent
+order %1 approved for amount %2 property no Bestilling %1
er godkjent med beløp %2
order order %1 is not approved property no Bestilling %1 er ikke
godkjent
order_dim1 property no Aktivitet
order id property no BestillingsNr
@@ -1977,7 +1978,7 @@
workorder end date property no Sluttdato
workorder entry date property no Registreringsdato
workorder id property no Bestilling
-workorder is sent by email! property no Bestilling er sendt pr
e-post!
+Workorder %1 is sent by email to %2 property no Bestilling %1
er sendt pr e-post til %2
workorders status property no Status bestilling
workorder start date property no Start dato for bestilling
workorder status property no Status
Modified: branches/Version-2_0-branch/property/templates/base/config.tpl
===================================================================
--- branches/Version-2_0-branch/property/templates/base/config.tpl
2016-12-12 10:21:33 UTC (rev 16071)
+++ branches/Version-2_0-branch/property/templates/base/config.tpl
2016-12-12 10:26:04 UTC (rev 16072)
@@ -1,693 +1,712 @@
<!-- BEGIN header -->
<form method="POST" action="{action_url}">
- <table class="pure-table pure-table-bordered">
- <tr class="th">
- <td colspan="2"><font
color="{th_text}"> <b>{title}</b></font></td>
- </tr>
+ <table class="pure-table pure-table-bordered pure-table-striped">
+ <thead>
+ <tr>
+ <th colspan="2">{title}</th>
+ </tr>
+ </thead>
<!-- END header -->
<!-- BEGIN body -->
- <tr class="pure-table-odd">
- <td colspan="2"> </td>
- </tr>
- <tr>
- <td
colspan="2"> <b>{lang_Workorder}/{lang_FM_settings}</b></td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_organisation}:</td>
- <td><input name="newsettings[org_name]"
value="{value_org_name}"></td>
- </tr>
- <tr>
- <td>{lang_org_unit_id}:</td>
- <td><input name="newsettings[org_unit_id]"
value="{value_org_unit_id}"></td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_delivery_address}:</td>
- <td>
- <textarea cols="40" rows="4"
name="newsettings[delivery_address]"
wrap="virtual">{value_delivery_address}</textarea>
- </td>
- </tr>
- <tr>
- <td>{lang_invoice_address}:</td>
- <td>
- <textarea cols="40" rows="4"
name="newsettings[invoice_address]"
wrap="virtual">{value_invoice_address}</textarea>
- </td>
- </tr>
+ <tbody>
+ <tr>
+ <td
colspan="2"> <b>{lang_Workorder}/{lang_FM_settings}</b></td>
+ </tr>
+ <tr>
+ <td>{lang_organisation}:</td>
+ <td><input name="newsettings[org_name]"
value="{value_org_name}"></td>
+ </tr>
+ <tr>
+ <td>{lang_org_unit_id}:</td>
+ <td><input name="newsettings[org_unit_id]"
value="{value_org_unit_id}"></td>
+ </tr>
+ <tr>
+ <td>{lang_delivery_address}:</td>
+ <td>
+ <textarea cols="40" rows="4"
name="newsettings[delivery_address]"
wrap="virtual">{value_delivery_address}</textarea>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_invoice_address}:</td>
+ <td>
+ <textarea cols="40" rows="4"
name="newsettings[invoice_address]"
wrap="virtual">{value_invoice_address}</textarea>
+ </td>
+ </tr>
- <tr class="pure-table-odd">
- <td>{lang_order_footer_header}:</td>
- <td><input name="newsettings[order_footer_header]"
value="{value_order_footer_header}"></td>
- </tr>
+ <tr>
+ <td>{lang_order_footer_header}:</td>
+ <td><input
name="newsettings[order_footer_header]"
value="{value_order_footer_header}"></td>
+ </tr>
- <tr>
- <td>{lang_order_footer}:</td>
- <td>
- <textarea cols="40" rows="4"
name="newsettings[order_footer]" wrap="virtual">{value_order_footer}</textarea>
- </td>
- </tr>
+ <tr>
+ <td>{lang_order_footer}:</td>
+ <td>
+ <textarea cols="40" rows="4"
name="newsettings[order_footer]" wrap="virtual">{value_order_footer}</textarea>
+ </td>
+ </tr>
- <tr class="pure-table-odd">
- <td>{lang_order_logo}:</td>
- <td><input name="newsettings[order_logo]"
value="{value_order_logo}"></td>
- </tr>
+ <tr>
+ <td>{lang_order_logo}:</td>
+ <td><input name="newsettings[order_logo]"
value="{value_order_logo}"></td>
+ </tr>
- <tr>
- <td>{lang_order_logo_width}:</td>
- <td><input name="newsettings[order_logo_width]"
value="{value_order_logo_width}"></td>
- </tr>
+ <tr>
+ <td>{lang_order_logo_width}:</td>
+ <td><input name="newsettings[order_logo_width]"
value="{value_order_logo_width}"></td>
+ </tr>
- <tr class="pure-table-odd">
- <td>{lang_SMS_client_order_notice}:'ref: __order_id__.
Message'</td>
- <td>
- <textarea cols="40" rows="4"
name="newsettings[sms_client_order_notice]"
wrap="virtual">{value_sms_client_order_notice}</textarea>
- </td>
- </tr>
- </tr>
- <tr>
- <td>{lang_dimb_responsible_1}:</td>
- <td>
- <select name="newsettings[dimb_responsible_1]">
- {hook_dimb_cat_1}
- </select>
- </td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_dimb_responsible_2}:</td>
- <td>
- <select name="newsettings[dimb_responsible_2]">
- {hook_dimb_cat_2}
- </select>
- </td>
- </tr>
- <tr>
- <td>{lang_invoicehandler}:</td>
- <td>
- <select name="newsettings[invoicehandler]">
- <option value="1"
{selected_invoicehandler_1}>Default</option>
- <option value="2"
{selected_invoicehandler_2}>Alternative</option>
- </select>
- </td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_invoice_acl}:</td>
- <td>
- <select name="newsettings[invoice_acl]">
- <option value="default"
{selected_invoice_acl_default}>ACL</option>
- <option value="dimb"
{selected_invoice_acl_dimb}>DimB</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>{lang_project_status_on_approval}:</td>
- <td>
- <select
name="newsettings[project_approval_status]">
- {hook_project_approval_status}
- </select>
- </td>
- </tr>
+ <tr>
+ <td>{lang_SMS_client_order_notice}:'ref:
__order_id__. Message'</td>
+ <td>
+ <textarea cols="40" rows="4"
name="newsettings[sms_client_order_notice]"
wrap="virtual">{value_sms_client_order_notice}</textarea>
+ </td>
+ </tr>
+ </tr>
+ <tr>
+ <td>{lang_dimb_responsible_1}:</td>
+ <td>
+ <select
name="newsettings[dimb_responsible_1]">
+ {hook_dimb_cat_1}
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_dimb_responsible_2}:</td>
+ <td>
+ <select
name="newsettings[dimb_responsible_2]">
+ {hook_dimb_cat_2}
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_invoicehandler}:</td>
+ <td>
+ <select
name="newsettings[invoicehandler]">
+ <option value="1"
{selected_invoicehandler_1}>Default</option>
+ <option value="2"
{selected_invoicehandler_2}>Alternative</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_invoice_acl}:</td>
+ <td>
+ <select name="newsettings[invoice_acl]">
+ <option value="default"
{selected_invoice_acl_default}>ACL</option>
+ <option value="dimb"
{selected_invoice_acl_dimb}>DimB</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_project_status_on_approval}:</td>
+ <td>
+ <select
name="newsettings[project_approval_status]">
+ {hook_project_approval_status}
+ </select>
+ </td>
+ </tr>
- <tr class="pure-table-odd">
- <td>{lang_project_status_on_last_order_closed}:</td>
- <td>
- <select
name="newsettings[project_status_on_last_order_closed]">
-
{hook_project_status_on_last_order_closed}
- </select>
- </td>
- </tr>
+ <tr>
+
<td>{lang_project_status_on_last_order_closed}:</td>
+ <td>
+ <select
name="newsettings[project_status_on_last_order_closed]">
+
{hook_project_status_on_last_order_closed}
+ </select>
+ </td>
+ </tr>
- <tr>
- <td>{lang_workorder_status_on_approval}:</td>
- <td>
- <select
name="newsettings[workorder_approval_status]">
- {hook_workorder_approval_status}
- </select>
- </td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_workorder_status_on_ordered}:</td>
- <td>
- <select
name="newsettings[workorder_ordered_status]">
- {hook_workorder_ordered_status}
- </select>
- </td>
- </tr>
+ <tr>
+ <td>{lang_workorder_status_on_approval}:</td>
+ <td>
+ <select
name="newsettings[workorder_approval_status]">
+ {hook_workorder_approval_status}
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_approval_amount_limit}:</td>
+ <td>
+ <input
name="newsettings[approval_amount_limit]" value="{value_approval_amount_limit}">
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_approval_level}:</td>
+ <td>
+ <select
name="newsettings[approval_level]">
+ <option value="order"
{selected_approval_level_order}>{lang_order}</option>
+ <option value="project"
{selected_approval_level_project}>{lang_project}</option>
+ </select>
+ </td>
+ </tr>
- <tr>
- <td>{lang_request_status_on_project_hookup}:</td>
- <td>
- <select
name="newsettings[request_project_hookup_status]">
- {hook_request_project_hookup_status}
- </select>
- </td>
- </tr>
- <tr>
- <td>{lang_request_status_on_ticket_hookup}:</td>
- <td>
- <select
name="newsettings[request_ticket_hookup_status]">
- {hook_request_ticket_hookup_status}
- </select>
- </td>
- </tr>
+ <tr>
+ <td>{lang_workorder_status_on_ordered}:</td>
+ <td>
+ <select
name="newsettings[workorder_ordered_status]">
+ {hook_workorder_ordered_status}
+ </select>
+ </td>
+ </tr>
- <tr class="pure-table-odd">
-
<td>{lang_workorder_status_that_are_to_be_set_when_invoice_is_processed}:</td>
- <td>
- <select
name="newsettings[workorder_closed_status]">
- {hook_workorder_closed_status}
- </select>
- </td>
- <tr>
-
<td>{lang_workorder_reopen_status_that_are_to_be_set_when_invoice_is_processed}:</td>
- <td>
- <select
name="newsettings[workorder_reopen_status]">
- {hook_workorder_reopen_status}
- </select>
- </td>
- <tr>
- <td>{lang_require_building_part_at_workorder}:</td>
- <td>
- <select
name="newsettings[workorder_require_building_part]">
- <option value=""
{selected_workorder_require_building_part_}>NO</option>
- <option value="1"
{selected_workorder_require_building_part_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_require_vendor_at_workorder}:</td>
- <td>
- <select
name="newsettings[workorder_require_vendor]">
- <option value=""
{selected_workorder_require_vendor_}>NO</option>
- <option value="1"
{selected_workorder_require_vendor_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>{lang_delay_operation_workorder_end_date},
{lang_last_day_in_year}:</td>
- <td>
- <select
name="newsettings[delay_operation_workorder_end_date]">
- <option value=""
{selected_delay_operation_workorder_end_date_}>NO</option>
- <option value="1"
{selected_delay_operation_workorder_end_date_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_enable_UNSPSC_kode}:</td>
- <td>
- <select name="newsettings[enable_unspsc]">
- <option value=""
{selected_enable_unspsc_}>NO</option>
- <option value="1"
{selected_enable_unspsc_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>{lang_enable_order_service_id}:</td>
- <td>
- <select
name="newsettings[enable_order_service_id]">
- <option value=""
{selected_enable_order_service_id_}>NO</option>
- <option value="1"
{selected_enable_order_service_id_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_Default_municipal_number}:</td>
- <td><input name="newsettings[default_municipal]"
value="{value_default_municipal}"></td>
- </tr>
- <tr>
- <td>{lang_Tax}: [%]</td>
- <td><input name="newsettings[fm_tax]"
value="{value_fm_tax}"></td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_Enter_the_location_of_files_URL} <br>
- {lang_Example}: http://www.domain.com/files</td>
- <td><input name="newsettings[files_url]"
value="{value_files_url}"></td>
- </tr>
- <tr>
-
<td>{lang_Path_to_external_files_for_use_with_location}:<br>
- {lang_On_windows_use}: "//computername/share"
{lang_or} "\\\\computername\share"</td>
- <td><input name="newsettings[external_files]"
value="{value_external_files}"></td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_max_recursive_level_at_external_files}:</td>
- <td>
- <select
name="newsettings[external_files_maxlevel]">
- <option value="0"
{selected_external_files_maxlevel_0}>None</option>
- <option value="1"
{selected_external_files_maxlevel_1}>1</option>
- <option value="2"
{selected_external_files_maxlevel_2}>2</option>
- <option value="3"
{selected_external_files_maxlevel_3}>3</option>
- <option value="4"
{selected_external_files_maxlevel_4}>4</option>
- <option value="5"
{selected_external_files_maxlevel_5}>5</option>
- <option value="6"
{selected_external_files_maxlevel_6}>6</option>
- <option value="7"
{selected_external_files_maxlevel_7}>7</option>
- <option value="8"
{selected_external_files_maxlevel_8}>8</option>
- </select>
- </td>
- </tr>
- <tr class="row_of">
- <td>{lang_filter_at_level_at_external_files}:
<br/>(loc1)</td>
- <td>
- <select
name="newsettings[external_files_filterlevel]">
- <option value="0"
{selected_external_files_filterlevel_0}>None</option>
- <option value="1"
{selected_external_files_filterlevel_1}>1</option>
- <option value="2"
{selected_external_files_filterlevel_2}>2</option>
- <option value="3"
{selected_external_files_filterlevel_3}>3</option>
- <option value="4"
{selected_external_files_filterlevel_4}>4</option>
- <option value="5"
{selected_external_files_filterlevel_5}>5</option>
- <option value="6"
{selected_external_files_filterlevel_6}>6</option>
- <option value="7"
{selected_external_files_filterlevel_7}>7</option>
- <option value="8"
{selected_external_files_filterlevel_8}>8</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>{lang_Enter_MAP_URL} <br>
- {lang_Example}: http://www.domain.com/map</td>
- <td><input name="newsettings[map_url]"
value="{value_map_url}"></td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_Enter_GAB_Location_Level} <br>
- {lang_Default_value_is}: 3</td>
- <td><input name="newsettings[gab_insert_level]"
value="{value_gab_insert_level}"></td>
- </tr>
- <tr>
- <td>{lang_Enter_GAB_URL} <br>
- {lang_Example}: http://www.domain.com/gab</td>
- <td><input name="newsettings[gab_url]"
value="{value_gab_url}"></td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_gab_url_paramtres}:<br>
- lang_Example:
type=eiendom&knr=__kommune_nr__&Gnr=__gaards_nr__&Bnr=__bruks_nr__&Fnr=__feste_nr__&Snr=__seksjons_nr__
- </td>
- <td>
- <textarea cols="40" rows="4"
name="newsettings[gab_url_paramtres]"
wrap="virtual">{value_gab_url_paramtres}</textarea>
- </td>
- </tr>
- <tr>
- <td>{lang_suppress_old_tenant}:</td>
- <td>
- <select name="newsettings[suppress_tenant]">
- <option value=""
{selected_suppress_tenant_}>NO</option>
- <option value="1"
{selected_suppress_tenant_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>{lang_show_billable_hours}:</td>
- <td>
- <select name="newsettings[show_billable_hours]">
- <option value=""
{selected_show_billable_hours_}>NO</option>
- <option value="1"
{selected_show_billable_hours_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr>
- <td
colspan="2"> <b>{lang_TTS}::{lang_settings}</b></td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_Open_translates_to}: <br>
- {lang_default}: {lang_Open}</td>
- <td><input name="newsettings[tts_lang_open]"
value="{value_tts_lang_open}"></td>
- </tr>
- <tr>
- <td valign =
'top'>{lang_TTS_assign_group_candidates}:</td>
- <td>
- <!--to be able to blank the setting - need an
empty value-->
- <input type = 'hidden'
name="newsettings[fmtts_assign_group_candidates][]" value="">
- <table>
- {hook_fmtts_assign_group_candidates}
- </table>
- </td>
- </tr>
- <tr class="pure-table-odd">
- <td >{lang_TTS_disable_assign_to_user_on_add}:</td>
- <td>
- <select
name="newsettings[tts_disable_userassign_on_add]">
- <option value=""
{selected_tts_disable_userassign_on_add_}>NO</option>
- <option value="1"
{selected_tts_disable_userassign_on_add_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr>
- <td valign = 'top'>{lang_TTS_simplified_group}:</td>
- <td>
- <!--to be able to blank the setting - need an
empty value-->
- <input type = 'hidden'
name="newsettings[fmttssimple_group][]" value="">
- <table>
- {hook_fmttssimple_group}
- </table>
- </td>
- </tr>
- <tr>
- <td valign =
'top'>{lang_TTS_simplified_categories}:</td>
- <td>
- <!--to be able to blank the setting - need an
empty value-->
- <input type = 'hidden'
name="newsettings[fmttssimple_categories][]" value="">
- <table>
- {hook_fmttssimple_categories}
- </table>
- </td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_Mail_Notification}:</td>
- <td>
- <select name="newsettings[mailnotification]">
- <option value=""
{selected_mailnotification_}>NO</option>
- <option value="1"
{selected_mailnotification_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>{lang_Owner_Notification_Project}.</td>
- <td>
- <select
name="newsettings[notify_project_owner]">
- <option value=""
{selected_notify_project_owner_}>NO</option>
- <option value="1"
{selected_notify_project_owner_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_Owner_Notification_TTS}.</td>
- <td>
- <select name="newsettings[ownernotification]">
- <option value=""
{selected_ownernotification_}>NO</option>
- <option value="1"
{selected_ownernotification_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>{lang_Assigned_Notification_TTS}.</td>
- <td>
- <select
name="newsettings[assignednotification]">
- <option value=""
{selected_assignednotification_}>NO</option>
- <option value="1"
{selected_assignednotification_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_Group_Notification_TTS}.</td>
- <td>
- <select name="newsettings[groupnotification]">
- <option value=""
{selected_groupnotification_}>NO</option>
- <option value="1"
{selected_groupnotification_1}>YES</option>
- <option value="2"
{selected_groupnotification_2}>Never</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>{lang_TTS_file_upload}:</td>
- <td>
- <select name="newsettings[fmttsfileupload]">
- <option value=""
{selected_fmttsfileupload_}>NO</option>
- <option value="1"
{selected_fmttsfileupload_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>{lang_mandatory_title_TTS}.</td>
- <td>
- <select name="newsettings[tts_mandatory_title]">
- <option value=""
{selected_tts_mandatory_title_}>NO</option>
- <option value="1"
{selected_tts_mandatory_title_1}>YES</option>
- </select>
- </td>
- </tr>
+ <tr>
+
<td>{lang_request_status_on_project_hookup}:</td>
+ <td>
+ <select
name="newsettings[request_project_hookup_status]">
+
{hook_request_project_hookup_status}
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_request_status_on_ticket_hookup}:</td>
+ <td>
+ <select
name="newsettings[request_ticket_hookup_status]">
+
{hook_request_ticket_hookup_status}
+ </select>
+ </td>
+ </tr>
- <tr class="pure-table-odd">
- <td valign = 'top'>{lang_TTS_finnish_date}:</td>
- <td>
- <!--to be able to blank the setting - need an
empty value-->
- <input type = 'hidden'
name="newsettings[fmtts_group_finnish_date][]" value="">
- <table>
- {hook_fmtts_group_finnish_date}
- </table>
- </td>
- </tr>
- <tr>
- <td>{lang_send_response_TTS}.</td>
- <td>
- <select name="newsettings[tts_send_response]">
- <option value=""
{selected_tts_send_response_}>NO</option>
- <option value="1"
{selected_tts_send_response_1}>YES</option>
- </select>
- </td>
- </tr>
+ <tr>
+
<td>{lang_workorder_status_that_are_to_be_set_when_invoice_is_processed}:</td>
+ <td>
+ <select
name="newsettings[workorder_closed_status]">
+ {hook_workorder_closed_status}
+ </select>
+ </td>
+ <tr>
+
<td>{lang_workorder_reopen_status_that_are_to_be_set_when_invoice_is_processed}:</td>
+ <td>
+ <select
name="newsettings[workorder_reopen_status]">
+ {hook_workorder_reopen_status}
+ </select>
+ </td>
+ <tr>
+
<td>{lang_require_building_part_at_workorder}:</td>
+ <td>
+ <select
name="newsettings[workorder_require_building_part]">
+ <option value=""
{selected_workorder_require_building_part_}>NO</option>
+ <option value="1"
{selected_workorder_require_building_part_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_require_vendor_at_workorder}:</td>
+ <td>
+ <select
name="newsettings[workorder_require_vendor]">
+ <option value=""
{selected_workorder_require_vendor_}>NO</option>
+ <option value="1"
{selected_workorder_require_vendor_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_delay_operation_workorder_end_date},
{lang_last_day_in_year}:</td>
+ <td>
+ <select
name="newsettings[delay_operation_workorder_end_date]">
+ <option value=""
{selected_delay_operation_workorder_end_date_}>NO</option>
+ <option value="1"
{selected_delay_operation_workorder_end_date_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_enable_UNSPSC_kode}:</td>
+ <td>
+ <select
name="newsettings[enable_unspsc]">
+ <option value=""
{selected_enable_unspsc_}>NO</option>
+ <option value="1"
{selected_enable_unspsc_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_enable_order_service_id}:</td>
+ <td>
+ <select
name="newsettings[enable_order_service_id]">
+ <option value=""
{selected_enable_order_service_id_}>NO</option>
+ <option value="1"
{selected_enable_order_service_id_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_Default_municipal_number}:</td>
+ <td><input
name="newsettings[default_municipal]" value="{value_default_municipal}"></td>
+ </tr>
+ <tr>
+ <td>{lang_Tax}: [%]</td>
+ <td><input name="newsettings[fm_tax]"
value="{value_fm_tax}"></td>
+ </tr>
+ <tr>
+ <td>{lang_Enter_the_location_of_files_URL} <br>
+ {lang_Example}:
http://www.domain.com/files</td>
+ <td><input name="newsettings[files_url]"
value="{value_files_url}"></td>
+ </tr>
+ <tr>
+
<td>{lang_Path_to_external_files_for_use_with_location}:<br>
+ {lang_On_windows_use}:
"//computername/share" {lang_or} "\\\\computername\share"</td>
+ <td><input name="newsettings[external_files]"
value="{value_external_files}"></td>
+ </tr>
+ <tr>
+
<td>{lang_max_recursive_level_at_external_files}:</td>
+ <td>
+ <select
name="newsettings[external_files_maxlevel]">
+ <option value="0"
{selected_external_files_maxlevel_0}>None</option>
+ <option value="1"
{selected_external_files_maxlevel_1}>1</option>
+ <option value="2"
{selected_external_files_maxlevel_2}>2</option>
+ <option value="3"
{selected_external_files_maxlevel_3}>3</option>
+ <option value="4"
{selected_external_files_maxlevel_4}>4</option>
+ <option value="5"
{selected_external_files_maxlevel_5}>5</option>
+ <option value="6"
{selected_external_files_maxlevel_6}>6</option>
+ <option value="7"
{selected_external_files_maxlevel_7}>7</option>
+ <option value="8"
{selected_external_files_maxlevel_8}>8</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_filter_at_level_at_external_files}:
<br/>(loc1)</td>
+ <td>
+ <select
name="newsettings[external_files_filterlevel]">
+ <option value="0"
{selected_external_files_filterlevel_0}>None</option>
+ <option value="1"
{selected_external_files_filterlevel_1}>1</option>
+ <option value="2"
{selected_external_files_filterlevel_2}>2</option>
+ <option value="3"
{selected_external_files_filterlevel_3}>3</option>
+ <option value="4"
{selected_external_files_filterlevel_4}>4</option>
+ <option value="5"
{selected_external_files_filterlevel_5}>5</option>
+ <option value="6"
{selected_external_files_filterlevel_6}>6</option>
+ <option value="7"
{selected_external_files_filterlevel_7}>7</option>
+ <option value="8"
{selected_external_files_filterlevel_8}>8</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_Enter_MAP_URL} <br>
+ {lang_Example}:
http://www.domain.com/map</td>
+ <td><input name="newsettings[map_url]"
value="{value_map_url}"></td>
+ </tr>
+ <tr>
+ <td>{lang_Enter_GAB_Location_Level} <br>
+ {lang_Default_value_is}: 3</td>
+ <td><input name="newsettings[gab_insert_level]"
value="{value_gab_insert_level}"></td>
+ </tr>
+ <tr>
+ <td>{lang_Enter_GAB_URL} <br>
+ {lang_Example}:
http://www.domain.com/gab</td>
+ <td><input name="newsettings[gab_url]"
value="{value_gab_url}"></td>
+ </tr>
+ <tr>
+ <td>{lang_gab_url_paramtres}:<br>
+ lang_Example:
type=eiendom&knr=__kommune_nr__&Gnr=__gaards_nr__&Bnr=__bruks_nr__&Fnr=__feste_nr__&Snr=__seksjons_nr__
+ </td>
+ <td>
+ <textarea cols="40" rows="4"
name="newsettings[gab_url_paramtres]"
wrap="virtual">{value_gab_url_paramtres}</textarea>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_suppress_old_tenant}:</td>
+ <td>
+ <select
name="newsettings[suppress_tenant]">
+ <option value=""
{selected_suppress_tenant_}>NO</option>
+ <option value="1"
{selected_suppress_tenant_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_show_billable_hours}:</td>
+ <td>
+ <select
name="newsettings[show_billable_hours]">
+ <option value=""
{selected_show_billable_hours_}>NO</option>
+ <option value="1"
{selected_show_billable_hours_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td
colspan="2"> <b>{lang_TTS}::{lang_settings}</b></td>
+ </tr>
+ <tr>
+ <td>{lang_Open_translates_to}: <br>
+ {lang_default}: {lang_Open}</td>
+ <td><input name="newsettings[tts_lang_open]"
value="{value_tts_lang_open}"></td>
+ </tr>
+ <tr>
+ <td valign =
'top'>{lang_TTS_assign_group_candidates}:</td>
+ <td>
+ <!--to be able to blank the setting -
need an empty value-->
+ <input type = 'hidden'
name="newsettings[fmtts_assign_group_candidates][]" value="">
+ <table>
+
{hook_fmtts_assign_group_candidates}
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td
>{lang_TTS_disable_assign_to_user_on_add}:</td>
+ <td>
+ <select
name="newsettings[tts_disable_userassign_on_add]">
+ <option value=""
{selected_tts_disable_userassign_on_add_}>NO</option>
+ <option value="1"
{selected_tts_disable_userassign_on_add_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td valign =
'top'>{lang_TTS_simplified_group}:</td>
+ <td>
+ <!--to be able to blank the setting -
need an empty value-->
+ <input type = 'hidden'
name="newsettings[fmttssimple_group][]" value="">
+ <table>
+ {hook_fmttssimple_group}
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td valign =
'top'>{lang_TTS_simplified_categories}:</td>
+ <td>
+ <!--to be able to blank the setting -
need an empty value-->
+ <input type = 'hidden'
name="newsettings[fmttssimple_categories][]" value="">
+ <table>
+ {hook_fmttssimple_categories}
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_Mail_Notification}:</td>
+ <td>
+ <select
name="newsettings[mailnotification]">
+ <option value=""
{selected_mailnotification_}>NO</option>
+ <option value="1"
{selected_mailnotification_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_Owner_Notification_Project}.</td>
+ <td>
+ <select
name="newsettings[notify_project_owner]">
+ <option value=""
{selected_notify_project_owner_}>NO</option>
+ <option value="1"
{selected_notify_project_owner_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_Owner_Notification_TTS}.</td>
+ <td>
+ <select
name="newsettings[ownernotification]">
+ <option value=""
{selected_ownernotification_}>NO</option>
+ <option value="1"
{selected_ownernotification_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_Assigned_Notification_TTS}.</td>
+ <td>
+ <select
name="newsettings[assignednotification]">
+ <option value=""
{selected_assignednotification_}>NO</option>
+ <option value="1"
{selected_assignednotification_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_Group_Notification_TTS}.</td>
+ <td>
+ <select
name="newsettings[groupnotification]">
+ <option value=""
{selected_groupnotification_}>NO</option>
+ <option value="1"
{selected_groupnotification_1}>YES</option>
+ <option value="2"
{selected_groupnotification_2}>Never</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_TTS_file_upload}:</td>
+ <td>
+ <select
name="newsettings[fmttsfileupload]">
+ <option value=""
{selected_fmttsfileupload_}>NO</option>
+ <option value="1"
{selected_fmttsfileupload_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_mandatory_title_TTS}.</td>
+ <td>
+ <select
name="newsettings[tts_mandatory_title]">
+ <option value=""
{selected_tts_mandatory_title_}>NO</option>
+ <option value="1"
{selected_tts_mandatory_title_1}>YES</option>
+ </select>
+ </td>
+ </tr>
- <tr>
- <td>{lang_Ask_for_workorder_approval_by_e-mail}.</td>
- <td>
- <select name="newsettings[workorder_approval]">
- <option value=""
{selected_workorder_approval_}>NO</option>
- <option value="1"
{selected_workorder_approval_1}>YES</option>
- </select>
- </td>
- </tr>
+ <tr>
+ <td valign = 'top'>{lang_TTS_finnish_date}:</td>
+ <td>
+ <!--to be able to blank the setting -
need an empty value-->
+ <input type = 'hidden'
name="newsettings[fmtts_group_finnish_date][]" value="">
+ <table>
+ {hook_fmtts_group_finnish_date}
+ </table>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_send_response_TTS}.</td>
+ <td>
+ <select
name="newsettings[tts_send_response]">
+ <option value=""
{selected_tts_send_response_}>NO</option>
+ <option value="1"
{selected_tts_send_response_1}>YES</option>
+ </select>
+ </td>
+ </tr>
- <tr>
- <td>{lang_Ask_for_project_approval_by_e-mail}.</td>
- <td>
- <select name="newsettings[project_approval]">
- <option value=""
{selected_project_approval_}>NO</option>
- <option value="1"
{selected_project_approval_1}>YES</option>
- </select>
- </td>
- </tr>
+ <tr>
+
<td>{lang_Ask_for_workorder_approval_by_e-mail}.</td>
+ <td>
+ <select
name="newsettings[workorder_approval]">
+ <option value=""
{selected_workorder_approval_}>NO</option>
+ <option value="1"
{selected_workorder_approval_1}>YES</option>
+ </select>
+ </td>
+ </tr>
- <tr class="pure-table-odd">
- <td>{lang_project_suppress_meter}.</td>
- <td>
- <select
name="newsettings[project_suppressmeter]">
- <option value=""
{selected_project_suppressmeter_}>NO</option>
- <option value="1"
{selected_project_suppressmeter_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>{lang_project_suppress_coordination}.</td>
- <td>
- <select
name="newsettings[project_suppresscoordination]">
- <option value=""
{selected_project_suppresscoordination_}>NO</option>
- <option value="1"
{selected_project_suppresscoordination_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_project_optional_category}.</td>
- <td>
- <select
name="newsettings[project_optional_category]">
- <option value=""
{selected_project_optional_category_}>NO</option>
- <option value="1"
{selected_project_optional_category_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>{lang_request_show_dates}.</td>
- <td>
- <select name="newsettings[request_show_dates]">
- <option value=""
{selected_request_show_dates_}>NO</option>
- <option value="1"
{selected_request_show_dates_1}>YES</option>
- </select>
- </td>
- </tr>
+ <tr>
+
<td>{lang_Ask_for_project_approval_by_e-mail}.</td>
+ <td>
+ <select
name="newsettings[project_approval]">
+ <option value=""
{selected_project_approval_}>NO</option>
+ <option value="1"
{selected_project_approval_1}>YES</option>
+ </select>
+ </td>
+ </tr>
- <tr>
- <td>{lang_request_location_level}.</td>
- <td>
- <select
name="newsettings[request_location_level]">
- {hook_list_location_level_otions}
- </select>
- </td>
- </tr>
+ <tr>
+ <td>{lang_project_suppress_meter}.</td>
+ <td>
+ <select
name="newsettings[project_suppressmeter]">
+ <option value=""
{selected_project_suppressmeter_}>NO</option>
+ <option value="1"
{selected_project_suppressmeter_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_project_suppress_coordination}.</td>
+ <td>
+ <select
name="newsettings[project_suppresscoordination]">
+ <option value=""
{selected_project_suppresscoordination_}>NO</option>
+ <option value="1"
{selected_project_suppresscoordination_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_project_optional_category}.</td>
+ <td>
+ <select
name="newsettings[project_optional_category]">
+ <option value=""
{selected_project_optional_category_}>NO</option>
+ <option value="1"
{selected_project_optional_category_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_request_show_dates}.</td>
+ <td>
+ <select
name="newsettings[request_show_dates]">
+ <option value=""
{selected_request_show_dates_}>NO</option>
+ <option value="1"
{selected_request_show_dates_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_request_location_level}.</td>
+ <td>
+ <select
name="newsettings[request_location_level]">
+
{hook_list_location_level_otions}
+ </select>
+ </td>
+ </tr>
- <tr class="pure-table-odd">
- <td>{lang_lang_request_coordinator}:</td>
- <td><input name="newsettings[lang_request_coordinator]"
value="{value_lang_request_coordinator}"></td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_meter_table}:</td>
- <td><input name="newsettings[meter_table]"
value="{value_meter_table}"></td>
- </tr>
- <tr>
-
<td>{lang_email_addresses_(comma-separated)_to_be_notified_about_tenant_claim_(empty_for_no_notify)}:</td>
- <td>
- <input
name="newsettings[tenant_claim_notify_mails]"
value="{value_tenant_claim_notify_mails}" size="40">
- </td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_Receive_workorder_status_by_SMS}.</td>
- <td>
- <select name="newsettings[wo_status_sms]">
- <option value=""
{selected_wo_status_sms_}>NO</option>
- <option value="1"
{selected_wo_status_sms_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr>
-
<td>{lang_Use_ACL_for_accessing_location_based_information}.</td>
- <td>
- <select name="newsettings[acl_at_location]">
- <option value=""
{selected_acl_at_location_}>NO</option>
- <option value="1"
{selected_acl_at_location_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_Bypass_ACL_for_accessing_tickets}.</td>
- <td>
- <select
name="newsettings[bypass_acl_at_tickets]">
- <option value=""
{selected_bypass_acl_at_tickets_}>NO</option>
- <option value="1"
{selected_bypass_acl_at_tickets_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>{lang_Bypass_ACL_for_accessing_entities}.</td>
- <td>
- <!--to be able to blank the setting - need an
empty value-->
- <input type = 'hidden'
name="newsettings[bypass_acl_at_entity][]" value="">
- <table>
- {hook_bypass_acl_at_entity}
- </table>
- </td>
- </tr>
+ <tr>
+ <td>{lang_lang_request_coordinator}:</td>
+ <td><input
name="newsettings[lang_request_coordinator]"
value="{value_lang_request_coordinator}"></td>
+ </tr>
- <tr class="pure-table-odd">
- <td>{lang_Use_ACL_for_helpdesk_categories}.</td>
- <td>
- <select name="newsettings[acl_at_tts_category]">
- <option value=""
{selected_acl_at_tts_category_}>NO</option>
- <option value="1"
{selected_acl_at_tts_category_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>{lang_Use_location_at_workorder}.</td>
- <td>
- <select
name="newsettings[location_at_workorder]">
- <option value=""
{selected_location_at_workorder_}>NO</option>
- <option value="1"
{selected_location_at_workorder_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_budget_at_project_level}.</td>
- <td>
- <select name="newsettings[budget_at_project]">
- <option value=""
{selected_budget_at_project_}>NO</option>
- <option value="1"
{selected_budget_at_project_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_common_budget_account_at_project_level}.</td>
- <td>
- <select
name="newsettings[budget_account_at_project]">
- <option value=""
{selected_budget_account_at_project_}>NO</option>
- <option value="1"
{selected_budget_account_at_project_1}>YES</option>
- </select>
- </td>
- </tr>
- <tr>
- <td>{lang_update_project_budget_from_order}.</td>
- <td>
- <select
name="newsettings[update_project_budget_from_order]">
- <option value=""
{selected_update_project_budget_from_order_}>NO</option>
- <option value="1"
{selected_update_project_budget_from_order_1}>YES</option>
- </select>
- </td>
- </tr>
+ <tr>
+ <td>{lang_meter_table}:</td>
+ <td><input name="newsettings[meter_table]"
value="{value_meter_table}"></td>
+ </tr>
+ <tr>
+
<td>{lang_email_addresses_(comma-separated)_to_be_notified_about_tenant_claim_(empty_for_no_notify)}:</td>
+ <td>
+ <input
name="newsettings[tenant_claim_notify_mails]"
value="{value_tenant_claim_notify_mails}" size="40">
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_Receive_workorder_status_by_SMS}.</td>
+ <td>
+ <select
name="newsettings[wo_status_sms]">
+ <option value=""
{selected_wo_status_sms_}>NO</option>
+ <option value="1"
{selected_wo_status_sms_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+
<td>{lang_Use_ACL_for_accessing_location_based_information}.</td>
+ <td>
+ <select
name="newsettings[acl_at_location]">
+ <option value=""
{selected_acl_at_location_}>NO</option>
+ <option value="1"
{selected_acl_at_location_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+
<td>{lang_Bypass_ACL_for_accessing_tickets}.</td>
+ <td>
+ <select
name="newsettings[bypass_acl_at_tickets]">
+ <option value=""
{selected_bypass_acl_at_tickets_}>NO</option>
+ <option value="1"
{selected_bypass_acl_at_tickets_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+
<td>{lang_Bypass_ACL_for_accessing_entities}.</td>
+ <td>
+ <!--to be able to blank the setting -
need an empty value-->
+ <input type = 'hidden'
name="newsettings[bypass_acl_at_entity][]" value="">
+ <table>
+ {hook_bypass_acl_at_entity}
+ </table>
+ </td>
+ </tr>
- <tr>
-
<td>{lang_disallow_multiple_condition_types_at_demands}.</td>
- <td>
- <select
name="newsettings[disallow_multiple_condition_types]">
- <option value=""
{selected_disallow_multiple_condition_types_}>NO</option>
- <option value="1"
{selected_disallow_multiple_condition_types_1}>YES</option>
- </select>
- </td>
- </tr>
+ <tr>
+ <td>{lang_Use_ACL_for_helpdesk_categories}.</td>
+ <td>
+ <select
name="newsettings[acl_at_tts_category]">
+ <option value=""
{selected_acl_at_tts_category_}>NO</option>
+ <option value="1"
{selected_acl_at_tts_category_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_Use_location_at_workorder}.</td>
+ <td>
+ <select
name="newsettings[location_at_workorder]">
+ <option value=""
{selected_location_at_workorder_}>NO</option>
+ <option value="1"
{selected_location_at_workorder_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td>{lang_budget_at_project_level}.</td>
+ <td>
+ <select
name="newsettings[budget_at_project]">
+ <option value=""
{selected_budget_at_project_}>NO</option>
+ <option value="1"
{selected_budget_at_project_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+
<td>{lang_common_budget_account_at_project_level}.</td>
+ <td>
+ <select
name="newsettings[budget_account_at_project]">
+ <option value=""
{selected_budget_account_at_project_}>NO</option>
+ <option value="1"
{selected_budget_account_at_project_1}>YES</option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+
<td>{lang_update_project_budget_from_order}.</td>
+ <td>
+ <select
name="newsettings[update_project_budget_from_order]">
+ <option value=""
{selected_update_project_budget_from_order_}>NO</option>
+ <option value="1"
{selected_update_project_budget_from_order_1}>YES</option>
+ </select>
+ </td>
+ </tr>
- <tr class="pure-table-odd">
- <td valign = 'top'>{lang_list_location_level}:</td>
- <td>
- <!--to be able to blank the setting - need an
empty value-->
- <input type = 'hidden'
name="newsettings[list_location_level][]" value="">
- <table>
- {hook_list_location_level}
- </table>
- </td>
- </tr>
+ <tr>
+
<td>{lang_disallow_multiple_condition_types_at_demands}.</td>
+ <td>
+ <select
name="newsettings[disallow_multiple_condition_types]">
+ <option value=""
{selected_disallow_multiple_condition_types_}>NO</option>
+ <option value="1"
{selected_disallow_multiple_condition_types_1}>YES</option>
+ </select>
+ </td>
+ </tr>
- <tr>
- <td>{lang_ntlm_alternative_host}:</td>
- <td><input name="newsettings[ntlm_alternative_host]"
value="{value_ntlm_alternative_host}"></td>
- </tr>
- <tr class="pure-table-odd">
- <td>{lang_uploader_filetypes}: jpg,gif,png</td>
- <td><input name="newsettings[uploader_filetypes]"
value="{value_uploader_filetypes}"></td>
- </tr>
+ <tr>
+ <td valign =
'top'>{lang_list_location_level}:</td>
+ <td>
+ <!--to be able to blank the setting -
need an empty value-->
+ <input type = 'hidden'
name="newsettings[list_location_level][]" value="">
+ <table>
+ {hook_list_location_level}
+ </table>
+ </td>
+ </tr>
- <tr>
- <td>{lang_filter_buildingpart}:</td>
- <td>
- <table>
- {hook_filter_buildingpart}
- </table>
- </td>
- </tr>
+ <tr>
+ <td>{lang_ntlm_alternative_host}:</td>
+ <td><input
name="newsettings[ntlm_alternative_host]"
value="{value_ntlm_alternative_host}"></td>
+ </tr>
+ <tr>
+ <td>{lang_uploader_filetypes}: jpg,gif,png</td>
+ <td><input
name="newsettings[uploader_filetypes]" value="{value_uploader_filetypes}"></td>
+ </tr>
- <tr class="pure-table-odd">
- <td>{lang_condition_survey_import_category}:</td>
- <td>
- <table>
- {hook_condition_survey_import_cat}
- </table>
- </td>
- </tr>
+ <tr>
+ <td>{lang_filter_buildingpart}:</td>
+ <td>
+ <table>
+ {hook_filter_buildingpart}
+ </table>
+ </td>
+ </tr>
- <tr>
-
<td>{lang_initial_status_that_are_to_be_set_when_condition_survey_are_imported}:</td>
- <td>
- <select
name="newsettings[condition_survey_initial_status]">
- {hook_condition_survey_initial_status}
- </select>
- </td>
- </tr>
+ <tr>
+
<td>{lang_condition_survey_import_category}:</td>
+ <td>
+ <table>
+
{hook_condition_survey_import_cat}
+ </table>
+ </td>
+ </tr>
- <tr>
-
<td>{lang_hidden_status_that_are_to_be_set_when_condition_survey_are_imported}:</td>
- <td>
- <select
name="newsettings[condition_survey_hidden_status]">
- {hook_condition_survey_hidden_status}
- </select>
- </td>
- </tr>
+ <tr>
+
<td>{lang_initial_status_that_are_to_be_set_when_condition_survey_are_imported}:</td>
+ <td>
+ <select
name="newsettings[condition_survey_initial_status]">
+
{hook_condition_survey_initial_status}
+ </select>
+ </td>
+ </tr>
- <tr class="pure-table-odd">
-
<td>{lang_obsolete_status_that_are_to_be_set_for_old_records_when_condition_survey_are_imported}:</td>
- <td>
- <select
name="newsettings[condition_survey_obsolete_status]">
- {hook_condition_survey_obsolete_status}
- </select>
- </td>
- </tr>
+ <tr>
+
<td>{lang_hidden_status_that_are_to_be_set_when_condition_survey_are_imported}:</td>
+ <td>
+ <select
name="newsettings[condition_survey_hidden_status]">
+
{hook_condition_survey_hidden_status}
+ </select>
+ </td>
+ </tr>
+ <tr>
+
<td>{lang_obsolete_status_that_are_to_be_set_for_old_records_when_condition_survey_are_imported}:</td>
+ <td>
+ <select
name="newsettings[condition_survey_obsolete_status]">
+
{hook_condition_survey_obsolete_status}
+ </select>
+ </td>
+ </tr>
+ </tbody>
+
<!--
groupnotification
-->
<!-- END body -->
<!-- BEGIN footer -->
- <tr class="th">
- <td colspan="2">
-
- </td>
- </tr>
- <tr>
- <td colspan="2" align="center">
- <input type="submit" name="submit"
value="{lang_submit}">
- <input type="submit" name="cancel"
value="{lang_cancel}">
- </td>
- </tr>
+ <tfoot>
+ <tr>
+ <td colspan="2">
+
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" align="center">
+ <input type="submit" name="submit"
value="{lang_submit}">
+ <input type="submit" name="cancel"
value="{lang_cancel}">
+ </td>
+ </tr>
+ </tfoot>
</table>
</form>
<!-- END footer -->
Modified: branches/Version-2_0-branch/property/templates/base/workorder.xsl
===================================================================
--- branches/Version-2_0-branch/property/templates/base/workorder.xsl
2016-12-12 10:21:33 UTC (rev 16071)
+++ branches/Version-2_0-branch/property/templates/base/workorder.xsl
2016-12-12 10:26:04 UTC (rev 16072)
@@ -1236,7 +1236,8 @@
<script type="text/javascript">
var lang = <xsl:value-of
select="php:function('js_lang', 'please enter either a budget or contrakt sum',
'next', 'save')"/>;
var check_for_budget = <xsl:value-of
select="check_for_budget"/>;
- var amount = <xsl:value-of
select="check_value_budget"/>;
+ var local_value_budget = <xsl:value-of
select="local_value_budget"/>;
+ var accumulated_budget_amount = <xsl:value-of
select="accumulated_budget_amount"/>;
var project_ecodimb = '<xsl:value-of
select="project_ecodimb"/>';
var base_java_url = <xsl:value-of
select="base_java_url"/>;
var location_item_id = '<xsl:value-of
select="location_item_id"/>';
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Fmsystem-commits] [16072] Stable: Merge 16064:16071 from trunk,
sigurdne <=