[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Phpgroupware-cvs] property/class.uiproject.php, 1.1.1.3
From: |
nomail |
Subject: |
[Phpgroupware-cvs] property/class.uiproject.php, 1.1.1.3 |
Date: |
Fri, 21 May 2004 16:29:11 -0000 |
Update of /property
Modified Files:
Branch:
class.uiproject.php
date: 2004/04/23 21:26:42; author: sigurdne; state: Exp; lines: +1201 -1201
Log Message:
no message
=====================================================================
Index: property/class.uiproject.php
diff -u property/class.uiproject.php:1.1.1.2
property/class.uiproject.php:1.1.1.3
--- property/class.uiproject.php:1.1.1.2 Fri Apr 23 20:26:50 2004
+++ property/class.uiproject.php Fri Apr 23 21:26:42 2004
@@ -1,1201 +1,1201 @@
-<?php
-
/**************************************************************************\
- * phpGroupWare - property
*
- * http://www.phpgroupware.org
*
- *
*
- * Facilities Management
*
- * Written by Sigurd Nes [sigurdne at online.no]
*
- *
------------------------------------------------------------------------ *
- * Copyright 2000 - 2003 Free Software Foundation, Inc
*
- * This program is part of the GNU project, see http://www.gnu.org/
*
- *
------------------------------------------------------------------------ *
- * This program is free software; you can redistribute it and/or modify
it *
- * under the terms of the GNU General Public License as published by the
*
- * Free Software Foundation; either version 2 of the License, or (at
your *
- * option) any later version.
*
-
\**************************************************************************/
-
- class property_uiproject
- {
- var $grants;
- var $cat_id;
- var $start;
- var $query;
- var $sort;
- var $order;
- var $filter;
- var $part_of_town_id;
- var $sub;
- var $currentapp;
-
- var $public_functions = array
- (
- 'excel' => True,
- 'index' => True,
- 'view' => True,
- 'edit' => True,
- 'delete' => True,
- 'date_search'=>True
- );
-
- function property_uiproject()
- {
- $GLOBALS['phpgw_info']['flags']['xslt_app'] = True;
- $this->currentapp = 'property';
//$GLOBALS['phpgw_info']['flags']['currentapp'];
- $this->account =
$GLOBALS['phpgw_data']['user']['id'];
-
- $this->bo =
CreateObject($this->currentapp.'_boproject',True);
- $this->bocommon =
CreateObject($this->currentapp.'_bocommon');
- $this->menu =
CreateObject($this->currentapp.'_menu');
- $this->fm_session =
CreateObject($this->currentapp.'_session');
-
- $this->acl2 =
$GLOBALS['phpgw']->acl;
- $this->acl2_location = '.project';
- $this->acl_read =
$this->acl2->check('.project',1);
- $this->acl_add =
$this->acl2->check('.project',2);
- $this->acl_edit =
$this->acl2->check('.project',4);
- $this->acl_delete =
$this->acl2->check('.project',8);
-
- $this->start =
$this->bo->start;
- $this->query =
$this->bo->query;
- $this->sort =
$this->bo->sort;
- $this->order =
$this->bo->order;
- $this->filter =
$this->bo->filter;
- $this->cat_id =
$this->bo->cat_id;
- $this->status_id =
$this->bo->status_id;
-
- $this->menu->sub ='project';
- }
-
- function save_sessiondata()
- {
- $data = array
- (
- 'start' => $this->start,
- 'query' => $this->query,
- 'sort' => $this->sort,
- 'order' => $this->order,
- 'filter' => $this->filter,
- 'cat_id' => $this->cat_id,
- 'status_id' => $this->status_id
- );
- $this->bo->save_sessiondata($data);
- }
-
- function excel()
- {
- $GLOBALS['phpgw_info']['flags']['noframework'] = True;
- require('PEAR.php');
- $xls =
CreateObject($this->currentapp.'_excel');
-
- $start_date =
urldecode(get_var('start_date',array('POST','GET')));
- $end_date =
urldecode(get_var('end_date',array('POST','GET')));
- $list =
$this->bo->read($start_date,$end_date,$allrows=True);
-
- $uicols = $this->bo->uicols;
- $count_uicols_name=count($uicols['name']);
-
- $j=0;
- if (isset($list) AND is_array($list))
- {
- $str=$xls->Begin();
- foreach($list as $entry)
- {
- $m=0;
- for ($k=0;$k<$count_uicols_name;$k++)
- {
-
if($uicols['input_type'][$k]!='hidden')
- {
- $content[$j][$m]
= $entry[$uicols['name'][$k]];
-
$str.=$xls->WriteLabel(0,$m,$uicols['descr'][$k]);
- $m++;
- }
- }
-
- $j++;
- }
-
- foreach($content as $row)
- {
- $line++;
- for ($i=0; $i<count($row); $i++)
- {
-
$str.=$xls->WriteLabel($line,$i,$row[$i]);
- }
- }
-
- $filename=
$GLOBALS['phpgw_info']['user']['account_lid'].'.xls';
-
- $str.=$xls->EOF();
- $size=strlen($str);
-
- $browser = CreateObject('phpgwapi_browser');
-
$browser->content_header($filename,'application/vnd.ms-excel',$size);
-
- echo $str;
- }
- }
-
- function index()
- {
- if(!$this->acl_read)
- {
-
$this->bocommon->redirect_link('/index.php','sid=cookie&op='.$this->currentapp.'.uilocation.stop&perm=1&acl_location='
. $this->acl2_location);
- }
-
-
$this->bocommon->xsl_add_file(array('project','values','table_header',
-
'menu',
-
'nextmatchs',
-
'search_field'));
-
- $lookup = get_var('lookup',array('POST','GET'));
- $start_date =
urldecode(get_var('start_date',array('POST','GET')));
- $end_date =
urldecode(get_var('end_date',array('POST','GET')));
-
- $links = $this->menu->links('project');
-
- $project_list = $this->bo->read($start_date,$end_date);
- $uicols = $this->bo->uicols;
- $count_uicols_name=count($uicols['name']);
-
- $j=0;
- if (isSet($project_list) AND is_array($project_list))
- {
- foreach($project_list as $project_entry)
-
- {
- for ($k=0;$k<$count_uicols_name;$k++)
- {
-
if($uicols['input_type'][$k]=='text')
- {
-
-
if($project_entry['query_location'][$uicols['name'][$k]])
- {
-
$content[$j]['row'][$k]['statustext'] = lang('search');
-
$content[$j]['row'][$k]['text'] =
$project_entry[$uicols['name'][$k]];
-
$content[$j]['row'][$k]['link'] =
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.index&query='
. $project_entry['query_location'][$uicols['name'][$k]] . '&lookup=' . $lookup
. '&filter=' . $this->filter);
- }
- else
- {
-
$content[$j]['row'][$k]['value'] =
$project_entry[$uicols['name'][$k]];
-
$content[$j]['row'][$k]['name'] = $uicols['name'][$k];
- }
- }
-
elseif($uicols['input_type'][$k]=='link')
- {
-
$content[$j]['row'][$k]['statustext'] = lang('search');
-
$content[$j]['row'][$k]['text'] =
$project_entry[$uicols['name'][$k]];
-
$content[$j]['row'][$k]['link'] =
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uitts.view&id='
. $project_entry[$uicols['name'][$k]]);
- }
-
- if($lookup &&
$k==($count_uicols_name-2))
- {
-
$content[$j]['row'][$k]['lookup_action'] =
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiworkorder.edit&project_id='
. $project_entry['project_id']);
- }
- }
-
- if(!$lookup)
- {
- if ($this->acl_read &&
$this->bocommon->check_perms($project_entry['grants'],PHPGW_ACL_READ))
- {
-
$content[$j]['row'][$k]['statustext'] = lang('view the
project');
-
$content[$j]['row'][$k]['text'] = lang('view');
-
$content[$j]['row'][$k]['link'] =
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.view&id='
. $project_entry['project_id']);
- $k++;
- }
- else
- {
-
$content[$j]['row'][$k++]['link']='dummy';
- }
-
- if ($this->acl_edit &&
$this->bocommon->check_perms($project_entry['grants'],PHPGW_ACL_EDIT))
- {
-
$content[$j]['row'][$k]['statustext'] = lang('edit the
project');
-
$content[$j]['row'][$k]['text'] = lang('edit');
-
$content[$j]['row'][$k]['link'] =
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.edit&id='
. $project_entry['project_id']);
- $k++;
- }
- else
- {
-
$content[$j]['row'][$k++]['link']='dummy';
- }
-
- if ($this->acl_delete &&
$this->bocommon->check_perms($project_entry['grants'],PHPGW_ACL_DELETE))
- {
-
$content[$j]['row'][$k]['statustext'] = lang('delete the
project');
-
$content[$j]['row'][$k]['text'] =
lang('delete');
-
$content[$j]['row'][$k]['link'] =
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.delete&id='
. $project_entry['project_id']);
- $k++;
- }
- else
- {
-
$content[$j]['row'][$k++]['link']='dummy';
- }
- }
-
- $j++;
- }
- }
-
- $count_uicols_descr=count($uicols['descr']);
- for ($i=0;$i<$count_uicols_descr;$i++)
- {
- if($uicols['input_type'][$i]!='hidden')
- {
- $table_header[$i]['header'] =
$uicols['descr'][$i];
- $table_header[$i]['width']
= '5%';
- $table_header[$i]['align']
= 'center';
- if($uicols['name'][$i]=='loc1')
- {
- $table_header[$i]['sort_link']
=true;
- $table_header[$i]['sort']
= $this->bocommon->show_sort_order(array
-
(
-
'sort' => $this->sort,
-
'var' => 'location_code',
-
'order' => $this->order,
-
'extra' => array('sid=cookie&op' =>
$this->currentapp.'.uiproject.index',
-
'type_id'
=>$type_id,
-
'query'
=>$this->query,
-
'lookup'
=>$lookup,
-
'district_id' =>
$this->district_id,
-
'cat_id'
=>$this->cat_id,
-
'start_date'=>$start_date,
-
'end_date'=>$end_date)
-
));
- }
- if($uicols['name'][$i]=='project_id')
- {
- $table_header[$i]['sort_link']
=true;
- $table_header[$i]['sort']
= $this->bocommon->show_sort_order(array
-
(
-
'sort' => $this->sort,
-
'var' => 'project_id',
-
'order' => $this->order,
-
'extra' => array('sid=cookie&op' =>
$this->currentapp.'.uiproject.index',
-
'type_id'
=>$type_id,
-
'query'
=>$this->query,
-
'lookup'
=>$lookup,
-
'district_id' =>
$this->district_id,
-
'cat_id'
=>$this->cat_id,
-
'start_date'=>$start_date,
-
'end_date'=>$end_date)
-
));
- }
- if($uicols['name'][$i]=='address')
- {
- $table_header[$i]['sort_link']
=true;
- $table_header[$i]['sort']
= $this->bocommon->show_sort_order(array
-
(
-
'sort' => $this->sort,
-
'var' => 'address',
-
'order' => $this->order,
-
'extra' => array('sid=cookie&op' =>
$this->currentapp.'.uiproject.index',
-
'type_id'
=>$type_id,
-
'query'
=>$this->query,
-
'lookup'
=>$lookup,
-
'district_id' =>
$this->district_id,
-
'cat_id'
=>$this->cat_id,
-
'start_date'=>$start_date,
-
'end_date'=>$end_date)
-
));
- }
- }
- }
-
- if(!$lookup)
- {
- if($this->acl_read)
- {
- $table_header[$i]['width']
= '5%';
- $table_header[$i]['align']
= 'center';
- $table_header[$i]['header']
= lang('view');
- $i++;
- }
- if($this->acl_edit)
- {
- $table_header[$i]['width']
= '5%';
- $table_header[$i]['align']
= 'center';
- $table_header[$i]['header']
= lang('edit');
- $i++;
- }
- if($this->acl_delete)
- {
- $table_header[$i]['width']
= '5%';
- $table_header[$i]['align']
= 'center';
- $table_header[$i]['header']
= lang('delete');
- $i++;
- }
- }
- else
- {
- $table_header[$i]['width']
= '5%';
- $table_header[$i]['align']
= 'center';
- $table_header[$i]['header'] =
lang('select');
- }
-
-//html_print_r($content);
- if($this->acl_add)
- {
- $table_add[] = array
- (
- 'lang_add'
=> lang('add'),
- 'lang_add_statustext' => lang('add a
project'),
- 'add_action' =>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.edit')
- );
- }
-
- $link_data = array
- (
- 'sid=cookie&op' =>
$this->currentapp.'.uiproject.index',
- 'sort'
=>$this->sort,
- 'order'
=>$this->order,
- 'cat_id'
=>$this->cat_id,
- 'district_id'
=>$this->district_id,
- 'filter'
=>$this->filter,
- 'status_id'
=>$this->status_id,
- 'lookup'
=>$lookup,
- 'query'
=>$this->query,
- 'start_date' =>$start_date,
- 'end_date'
=>$end_date
- );
-
- $link_date_search
=
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.date_search');
-
- $link_excel = array
- (
- 'sid=cookie&op' =>
$this->currentapp.'.uiproject.excel',
- 'sort'
=>$this->sort,
- 'order'
=>$this->order,
- 'cat_id'
=>$this->cat_id,
- 'district_id'
=>$this->district_id,
- 'filter'
=>$this->filter,
- 'status_id'
=>$this->status_id,
- 'lookup'
=>$lookup,
- 'query'
=>$this->query,
- 'start_date' =>$start_date,
- 'end_date'
=>$end_date,
- 'start' =>$this->start
- );
-
- $data = array
- (
- 'lang_excel' =>
'excel',
- 'link_excel' =>
$this->bocommon->link('/index.php',$link_excel),
- 'lang_excel_help' =>
lang('Download table to MS Excel'),
-
- 'start_date'
=>$start_date,
- 'end_date'
=>$end_date,
- 'lang_none'
=>lang('None'),
- 'lang_date_search' =>
lang('Date search'),
- 'lang_date_search_help' => lang('Narrow
the search by dates'),
- 'link_date_search' =>
$link_date_search,
- 'overlib_source' =>
'./'.$this->currentapp.'/inc/overlib.js',
-
- 'lang_select'
=> lang('select'),
- 'lookup_action'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiworkorder.edit'),
- 'lookup'
=> $lookup,
- 'links'
=> $links,
- 'allow_allrows'
=> false,
- 'start_record'
=> $this->start,
- 'record_limit'
=> 15, //$GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs'],
- 'num_records'
=> count($project_list),
- 'all_records'
=> $this->bo->total_records,
- 'link_url'
=> $this->bocommon->link('/index.php',$link_data),
- 'img_path'
=>
dirname($GLOBALS['HTTP_SERVER_VARS']['PHP_SELF']).'/api/skins/default/images',
- 'lang_no_cat'
=> lang('no category'),
- 'lang_cat_statustext' =>
lang('Select the category the project belongs to. To do not use a category
select NO CATEGORY'),
- 'select_name'
=> 'cat_id',
- 'cat_list'
=> $this->bo->select_category_project_list('filter',$this->cat_id),
- 'district_list'
=> $this->bocommon->select_district_list('filter',$this->district_id),
- 'lang_no_district'
=> lang('no district'),
- 'lang_district_statustext' =>
lang('Select the district the selection belongs to. To do not use a district
select NO DISTRICT'),
- 'select_district_name' =>
'district_id',
- 'select_action'
=> $this->bocommon->link('/index.php',$link_data),
-
- 'lang_status_statustext' =>
lang('Select the status the agreement belongs to. To do not use a category
select NO STATUS'),
- 'status_name'
=> 'status_id',
- 'lang_no_status'
=> lang('No status'),
- 'status_list'
=> $this->bo->select_status_list('filter',$this->status_id),
-
- 'lang_user_statustext' =>
lang('Select the user the project belongs to. To do not use a category select
NO USER'),
- 'select_user_name'
=> 'filter',
- 'lang_no_user'
=> lang('No user'),
- 'user_list'
=>
$this->bocommon->get_user_list_right2('filter',4,$this->filter,$this->acl2_location,array('all'),$default=$this->account),
-
- 'lang_searchfield_statustext' => lang('Enter
the search string. To show all entries, empty this field and press the SUBMIT
button again'),
- 'lang_searchbutton_statustext' => lang('Submit
the search string'),
- 'query'
=> $this->query,
- 'lang_search'
=> lang('search'),
- 'table_header'
=> $table_header,
- 'values'
=> $content,
- 'table_add'
=> $table_add
- );
-
- $appname
= lang('Project');
- $function_msg =
lang('list Project');
-
- $GLOBALS['phpgw_info']['flags']['app_header'] =
lang($this->currentapp) . ' - ' . $appname . ': ' . $function_msg;
-
- //$this->save_sessiondata();
- return array('list_project' => $data);
- }
-
- function date_search()
- {
- $this->bocommon->xsl_add_file(array('date_search'));
- $GLOBALS['phpgw_info']['flags']['headonly']=true;
- $values['start_date'] =
get_var('start_date',array('POST'));
- $values['end_date'] =
get_var('end_date',array('POST'));
-
- $function_msg = lang('Date search');
- $appname = lang('project');
-
-
- $dateformat =
strtolower($GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat']);
- $sep = '/';
- $dlarr[strpos($dateformat,'y')] = 'yyyy';
- $dlarr[strpos($dateformat,'m')] = 'MM';
- $dlarr[strpos($dateformat,'d')] = 'DD';
- ksort($dlarr);
-
- $dateformat= (implode($sep,$dlarr));
-
- if(!$values['end_date'])
- {
- $values['end_date'] =
$GLOBALS['phpgw']->common->show_date(mktime(0,0,0,date("m"),date("d"),date("Y")),$GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat']);
- }
-
- $cal_info = $this->bocommon->jscalendar();
- $jsDateFormat=$cal_info['jsDateFormat'];
-
- $data = array
- (
- 'jsDateFormat'
=> $jsDateFormat,
- 'date_img'
=> $cal_info['img'],
- 'lang_datetitle'
=> lang('Select date'),
- 'calendar_setup_start' =>
"Calendar.setup({inputField : 'start_date',ifFormat : '" . $jsDateFormat .
"',button : 'start_date-trigger'});",
- 'calendar_setup_end' =>
"Calendar.setup({inputField : 'end_date',ifFormat : '" . $jsDateFormat .
"',button : 'end_date-trigger'});",
-
- 'lang_start_date_statustext' => lang('Select
the estimated end date for the Project'),
- 'lang_start_date'
=> lang('Start date'),
- 'value_start_date'
=> $values['start_date'],
-
- 'lang_end_date_statustext' =>
lang('Select the estimated end date for the Project'),
- 'lang_end_date'
=> lang('End date'),
- 'value_end_date'
=> $values['end_date'],
-
- 'dateformat'
=> $dateformat,
- 'form_action'
=> $this->bocommon->link('/index.php',$link_data),
- 'lang_submit_statustext' =>
lang('Select this dates'),
- 'lang_submit' =>
lang('Submit')
- );
-
- $GLOBALS['phpgw_info']['flags']['app_header'] =
lang($this->currentapp) . ' - ' . $appname . ': ' . $function_msg;
- return array('date_search' => $data);
- }
-
- function edit()
- {
- if(!$this->acl_add && !$this->acl_edit)
- {
-
$this->bocommon->redirect_link('/index.php','sid=cookie&op='.$this->currentapp.'.uilocation.stop&perm=2&acl_location='
. $this->acl2_location);
- }
- $id =
get_var('id',array('POST','GET'));
- $values =
get_var('values',array('POST'));
- $add_request =
get_var('add_request',array('POST'));
- $add_request =
get_var('add_request',array('POST'));
-
- $config =
CreateObject('phpgwapi_config');
- $bolocation =
CreateObject($this->currentapp.'_bolocation');
-
- $insert_record =
$this->fm_session->appsession('insert_record',$this->currentapp);
- $insert_record_entity =
$this->fm_session->appsession('insert_record_entity',$this->currentapp);
-
- for ($j=0;$j<count($insert_record_entity);$j++)
- {
-
$insert_record['extra'][$insert_record_entity[$j]] =
$insert_record_entity[$j];
- }
-
- $this->bocommon->xsl_add_file(array('project'));
-
- $bypass =
get_var('bypass',array('POST','GET'));
-
- if($add_request)
- {
- $receipt =
$this->bo->add_request($add_request,$id);
- }
-
- if($_POST && !$bypass)
- {
- for ($i=0;
$i<count($insert_record['location']); $i++)
- {
-
if($_POST[$insert_record['location'][$i]])
- {
-
$values['location'][$insert_record['location'][$i]]=
$_POST[$insert_record['location'][$i]];
- }
- }
-
- while (is_array($insert_record['extra']) &&
list($key,$column) = each($insert_record['extra']))
- {
- if($_POST[$key])
- {
- $values['extra'][$column]
= $_POST[$key];
- }
- }
-
- $values['street_name'] =
$_POST['street_name'];
- $values['street_number'] =
$_POST['street_number'];
- $values['location_name'] = $_POST['loc'
. (count($values['location'])).'_name']; // if not address - get the parent
name as address
-
- }
- else
- {
- $location_code =
get_var('location_code',array('POST','GET'));
- $tenant_id =
get_var('tenant_id',array('POST','GET'));
- $values['descr'] =
get_var('descr',array('POST','GET'));
- $ticket_id =
get_var('ticket_id',array('POST','GET'));
- $request_id =
get_var('request_id',array('POST','GET'));
- $p_entity_id =
get_var('p_entity_id',array('POST','GET'));
- $p_cat_id =
get_var('p_cat_id',array('POST','GET'));
- $values['p'][$p_entity_id]['p_entity_id']
= $p_entity_id;
- $values['p'][$p_entity_id]['p_cat_id']
= $p_cat_id;
- $values['p'][$p_entity_id]['p_num']
= get_var('p_num',array('POST','GET'));
-
- if($p_entity_id && $p_cat_id)
- {
- $boadmin_entity =
CreateObject($this->currentapp.'_boadmin_entity');
- $entity_category =
$boadmin_entity->read_single_category($p_entity_id,$p_cat_id);
-
$values['p'][$p_entity_id]['p_cat_name'] = $entity_category['name'];
- }
-
- if($ticket_id)
- {
- $values['ticket_id'][0]['id']=
$ticket_id;
- $values['origin']= 'tts';
- $values['origin_id']= $ticket_id;
- }
-
- if($request_id)
- {
- $values['request_id'][0]['id']=
$request_id;
- $values['origin']= 'request';
- $values['origin_id']= $request_id;
- }
-
- if($location_code)
- {
- $values['location_data'] =
$bolocation->read_single($location_code,array('tenant_id'=>$tenant_id,'p_num'=>$p_num));
- }
-
- }
-
- $values['start_date'] =
get_var('start_date',array('POST'));
- $values['end_date'] =
get_var('end_date',array('POST'));
-
-//html_print_r($values);
- $config->read_repository();
-
- if ($values['save'])
- {
- $save=true;
-
- if(!$values['location'])
- {
-
$receipt['error'][]=array('msg'=>lang('Please select a location !'));
- $error_id=true;
- }
-
- if(!$values['name'])
- {
-
$receipt['error'][]=array('msg'=>lang('Please enter a project NAME !'));
- $error_id=true;
- }
-
- if(!$values['cat_id'])
- {
-
$receipt['error'][]=array('msg'=>lang('Please select a category !'));
- $error_id=true;
- }
-
- if(!$values['coordinator'])
- {
-
$receipt['error'][]=array('msg'=>lang('Please select a coordinator !'));
- $error_id=true;
- }
-
- if(!$values['status'])
- {
-
$receipt['error'][]=array('msg'=>lang('Please select a status !'));
- }
-
- if($id)
- {
- $values['project_id']=$id;
- $action='edit';
- }
-
- if(!$receipt['error'])
- {
- if(!$id)
- {
-
$values['project_id']=$this->bo->next_project_id();
- $id = $values['project_id'];
- }
-
- if($values['copy_project'])
- {
- $action='add';
- $values['project_id'] =
$this->bo->next_project_id();
- $id = $values['project_id'];
- }
- $receipt =
$this->bo->save($values,$action);
- if($receipt['error'])
- {
- unset($id);
- unset($values['project_id']);
- }
-
- if ($values['approval'] &&
$values['mail_address'])
- {
-
$coordinator_name=$GLOBALS['phpgw_info']['user']['fullname'];
-
$coordinator_email=$GLOBALS['phpgw_info']['user']['preferences'][$this->currentapp]['email'];
- $headers = "Return-Path: <".
$coordinator_email .">\r\n";
- $headers .= "From: " .
$coordinator_name . "<" . $coordinator_email .">\r\n";
- $headers .= "Bcc: " .
$coordinator_name . "<" . $coordinator_email .">\r\n";
- $headers .= "Content-type:
text/plain; charset=iso-8859-1\r\n";
-
- $subject = lang(Approval).": ".
$values['project_id'];
- $message = lang(Project) . " "
. $values['project_id'] ." ". lang('needs approval');
-
- $mail_method=
$config->config_data['fmwrkorder_mail'];
- if ($mail_method=='smtp'):
- {
- $bcc =
$coordinator_email;
- $send =
CreateObject('phpgwapi_send');
- $rcpt =
$send->msg('email',$values['mail_address'], $subject, stripslashes($message),
'', $cc, $bcc, $coordinator_email, $coordinator_name, 'plain');
- }
- elseif
($mail_method=='sendmail'):
- {
-
$rcpt=mail($values['mail_address'],$subject,$message, $headers);
- }
- else:
- {
-
$receipt['error'][]=array('msg'=>lang('Mailing method is not chosen! (admin
section)'));
- }
- endif;
- }
-
- if($rcpt)
- {
-
$receipt['message'][]=array('msg'=>lang('%1 is
notified',$values['mail_address']));
- }
- }
-
- if($receipt['error'])
- {
- if($values['location'])
- {
- $location_code=implode("-",
$values['location']);
- $values['location_data'] =
$bolocation->read_single($location_code,$values['extra']);
- }
-
- if($values['extra']['p_num'])
- {
-
$values['p'][$values['extra']['p_entity_id']]['p_num']=$values['extra']['p_num'];
-
$values['p'][$values['extra']['p_entity_id']]['p_entity_id']=$values['extra']['p_entity_id'];
-
$values['p'][$values['extra']['p_entity_id']]['p_cat_id']=$values['extra']['p_cat_id'];
-
$values['p'][$values['extra']['p_entity_id']]['p_cat_name']=$_POST['entity_cat_name_'.$values['extra']['p_entity_id']];
- }
- }
- }
-
- if(((!$receipt['error'] || $add_request) && !$bypass)
&& $id)
- {
- $values = $this->bo->read_single($id);
-
- if(!$values['workorder_budget'] && $save)
- {
-
$this->bocommon->redirect_link('/index.php','sid=cookie&op='.$this->currentapp.'.uiworkorder.edit&project_id='
. $id);
-
- }
-
- if
(!$this->bocommon->check_perms($values['grants'],PHPGW_ACL_EDIT))
- {
-
$receipt['error'][]=array('msg'=>lang('You have no edit right for this
project'));
-
$this->fm_session->appsession('receipt',$this->currentapp,$receipt);
-
-
$this->bocommon->redirect_link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.view&id='
. $id);
-
- }
- else
- {
- $record_history =
$this->bo->read_record_history($id);
- }
- }
-
-
- $table_header_history[] = array
- (
- 'lang_date' => lang('Date'),
- 'lang_user' => lang('User'),
- 'lang_action' => lang('Action'),
- 'lang_new_value' => lang('New value')
- );
-
- $table_header_workorder_budget[] = array
- (
- 'lang_workorder_id' => lang('Workorder'),
- 'lang_budget' => lang('Budget'),
- 'lang_calculation' => lang('Calculation'),
- 'lang_vendor' => lang('Vendor')
- );
-
- if ($id)
- {
- $function_msg = lang('Edit Project');
- }
- else
- {
- $function_msg = lang('Add Project');
- }
-
- if ($values['cat_id'])
- {
- $this->cat_id = $values['cat_id'];
- }
-
- $lookup_type='form';
-
-//html_print_r($values);
- $location_data=$bolocation->initiate_ui_location(array(
- 'values' =>
$values['location_data'],
- 'type_id' => -1,
// calculated from location_types
- 'no_link' =>
False, // disable lookup links for location type less than type_id
- 'tenant' => True,
- 'lookup_type' => $lookup_type,
- 'lookup_entity' =>
$this->bocommon->get_lookup_entity('project'),
- 'entity_data' => $values['p']
- ));
-
-
- $link_data = array
- (
- 'sid=cookie&op' =>
$this->currentapp.'.uiproject.edit',
- 'id' => $id
- );
-
- $link_request_data = array
- (
- 'sid=cookie&op' =>
$this->currentapp.'.uirequest.index',
- 'query' =>
$values['location_code'],
- 'project_id' => $values['project_id']
- );
-
-
-
$supervisor_id=$GLOBALS['phpgw_info']['user']['preferences'][$this->currentapp]['approval_from'];
- $need_approval =
$config->config_data['workorder_approval'];
-
-
$project_status=$GLOBALS['phpgw_info']['user']['preferences'][$this->currentapp]['project_status'];
-
$project_category=$GLOBALS['phpgw_info']['user']['preferences'][$this->currentapp]['project_category'];
- if(!$values['status'])
- {
- $values['status']=$project_status;
- }
-
- if(!$values['cat_id'])
- {
- $values['cat_id']=$project_category;
- }
-
- if(!$values['coordinator'])
- {
- $values['coordinator']=$this->account;
- }
-
- if ($supervisor_id && $need_approval=='yes')
- {
- $prefs =
$this->bocommon->create_preferences($this->currentapp,$supervisor_id);
- $supervisor_email = $prefs['email'];
- }
-
- if(!$values['start_date'])
- {
- $values['start_date'] =
$GLOBALS['phpgw']->common->show_date(mktime(0,0,0,date("m"),date("d"),date("Y")),$GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat']);
- }
-
- if($receipt)
- {
- $msgbox_data =
$this->bocommon->msgbox_data($receipt);
- }
-
- if($values['reserve'])
- {
-
$reserve_remainder=$values['reserve']-$values['deviation'];
- $remainder_percent=
number_format(($reserve_remainder/$values['reserve'])*100, 2, ',', '');
- }
-
- $cal_info = $this->bocommon->jscalendar();
- $jsDateFormat=$cal_info['jsDateFormat'];
-
- $data = array
- (
- 'msgbox_data'
=> $GLOBALS['phpgw']->common->msgbox($msgbox_data),
- 'lang_ticket'
=> lang('ticket'),
- 'lang_ticket_statustext' =>
lang('Link to the ticket for this project'),
- 'link_ticket'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uitts.view'),
- 'value_ticket_id'
=> $values['ticket_id'],
-
- 'value_origin'
=> $values['origin'],
- 'value_origin_id'
=> $values['origin_id'],
-
- 'lang_request'
=> lang('request'),
- 'lang_select_request' =>
lang('Select request'),
- 'lang_select_request_statustext' =>
lang('Add request for this project'),
- 'lang_request_statustext' =>
lang('Link to the request for this project'),
- 'lang_delete_request_statustext'=> lang('Check
to delete this request from this project'),
- 'link_select_request' =>
$this->bocommon->link('/index.php',$link_request_data),
- 'value_request_id'
=> $values['request_id'],
- 'link_request'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uirequest.view'),
-
- 'add_workorder_action'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiworkorder.edit'),
- 'lang_add_workorder'
=> lang('Add Workorder'),
- 'lang_add_workorder_statustext' =>
lang('Add a workorder to this project'),
-
- 'table_header_workorder_budget' =>
$table_header_workorder_budget,
- 'lang_no_workorders' =>
lang('No workorder bugdet'),
- 'workorder_link'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiworkorder.edit'),
- 'record_history'
=> $record_history,
- 'table_header_history' =>
$table_header_history,
- 'lang_history'
=> lang('History'),
- 'lang_no_history'
=> lang('No history'),
-
-// 'cal_info'
=> $cal_info,
- 'jsDateFormat'
=> $jsDateFormat,
- 'date_img'
=> $cal_info['img'],
- 'lang_datetitle'
=> lang('Select date'),
- 'calendar_setup_start' =>
"Calendar.setup({inputField : 'start_date',ifFormat : '" . $jsDateFormat .
"',button : 'start_date-trigger'});",
- 'calendar_setup_end' =>
"Calendar.setup({inputField : 'end_date',ifFormat : '" . $jsDateFormat .
"',button : 'end_date-trigger'});",
-
- 'lang_start_date_statustext' => lang('Select
the estimated end date for the Project'),
- 'lang_start_date'
=> lang('Project start date'),
- 'value_start_date'
=> $values['start_date'],
-
- 'lang_end_date_statustext' =>
lang('Select the estimated end date for the Project'),
- 'lang_end_date'
=> lang('Project end date'),
- 'value_end_date'
=> $values['end_date'],
-
- 'lang_copy_project'
=> lang('Copy project ?'),
- 'lang_copy_project_statustext' => lang('Choose
Copy Project to copy this project to a new project'),
-
- 'lang_charge_tenant' =>
lang('Charge tenant'),
- 'lang_charge_tenant_statustext' => lang('Choose
charge tenant if the tenant i to pay for this project'),
- 'charge_tenant'
=> $values['charge_tenant'],
-
- 'lang_power_meter'
=> lang('Power meter'),
- 'lang_power_meter_statustext' => lang('Enter
the power_meter'),
- 'value_power_meter'
=> $values['power_meter'],
-
- 'lang_budget'
=> lang('Budget'),
- 'value_budget'
=> $values['budget'],
- 'lang_budget_statustext' =>
lang('Enter the budget'),
-
- 'lang_reserve'
=> lang('reserve'),
- 'value_reserve'
=> $values['reserve'],
- 'lang_reserve_statustext' =>
lang('Enter the reserve'),
-
- 'lang_reserve_remainder' =>
lang('reserve remainder'),
- 'value_reserve_remainder' =>
$reserve_remainder,
- 'value_reserve_remainder_percent'=>
$remainder_percent,
-
- 'vendor_data'
=> $vendor_data,
- 'location_data'
=> $location_data,
- 'location_type'
=> 'form',
- 'form_action'
=> $this->bocommon->link('/index.php',$link_data),
- 'done_action'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.index'),
- 'lang_year'
=> lang('Year'),
- 'lang_category'
=> lang('category'),
- 'lang_save'
=> lang('save'),
- 'lang_done'
=> lang('done'),
- 'lang_name'
=> lang('Name'),
-
- 'lang_project_id'
=> lang('Project ID'),
- 'value_project_id'
=> $values['project_id'],
- 'value_name'
=> $values['name'],
- 'lang_name_statustext' =>
lang('Enter Project Name'),
-
- 'lang_other_branch'
=> lang('Other branch'),
- 'lang_other_branch_statustext' =>
lang('Enter other branch if not found in the list'),
- 'value_other_branch'
=> $values['other_branch'],
-
- 'lang_descr_statustext' =>
lang('Enter a description of the project'),
- 'lang_descr'
=> lang('Description'),
- 'value_descr'
=> $values['descr'],
- 'lang_done_statustext' =>
lang('Back to the list'),
- 'lang_save_statustext' =>
lang('Save the project'),
- 'lang_no_cat'
=> lang('Select category'),
- 'lang_cat_statustext' =>
lang('Select the category the project belongs to. To do not use a category
select NO CATEGORY'),
- 'select_name'
=> 'values[cat_id]',
- 'value_cat_id'
=> $values['cat_id'],
- 'cat_list'
=> $this->bo->select_category_project_list('select',$values['cat_id']),
-
- 'lang_workorder_id'
=> lang('Workorder ID'),
- 'sum_workorder_budget' =>
$values['sum_workorder_budget'],
- 'sum_workorder_calculation' =>
$values['sum_workorder_calculation'],
- 'workorder_budget'
=> $values['workorder_budget'],
-
- 'lang_coordinator'
=> lang('Coordinator'),
- 'lang_sum'
=> lang('Sum'),
- 'lang_user_statustext' =>
lang('Select the coordinator the project belongs to. To do not use a category
select NO USER'),
- 'select_user_name'
=> 'values[coordinator]',
- 'lang_no_user'
=> lang('Select coordinator'),
- 'user_list'
=>
$this->bocommon->get_user_list_right2('select',4,$values['coordinator'],$this->acl2_location),
-
- 'status_list'
=> $this->bo->select_status_list('select',$values['status']),
- 'select_status_name' =>
'values[status]',
- 'lang_no_status'
=> lang('Select status'),
- 'lang_status'
=> lang('Status'),
- 'lang_status_statustext' =>
lang('What is the current status of this project ?'),
-
- 'branch_list'
=> $this->bo->select_branch_p_list($values['project_id']),
- 'lang_branch'
=> lang('branch'),
- 'lang_branch_statustext' =>
lang('Select the branches for this project'),
-
- 'key_responsible_list'
=> $this->bo->select_branch_list($values['key_responsible']),
- 'lang_no_key_responsible'
=> lang('Select key responsible'),
- 'lang_key_responsible'
=> lang('key responsible'),
- 'lang_key_responsible_statustext'
=> lang('Select the key responsible for this project'),
-
- 'key_fetch_list'
=> $this->bo->select_key_location_list($values['key_fetch']),
- 'lang_no_key_fetch'
=> lang('Where to fetch the key'),
- 'lang_key_fetch'
=> lang('key fetch location'),
- 'lang_key_fetch_statustext'
=> lang('Select where to fetch the key'),
-
- 'key_deliver_list'
=> $this->bo->select_key_location_list($values['key_deliver']),
- 'lang_no_key_deliver'
=> lang('Where to deliver the key'),
- 'lang_key_deliver'
=> lang('key deliver location'),
- 'lang_key_deliver_statustext' =>
lang('Select where to deliver the key'),
-
- 'need_approval'
=> $need_approval,
- 'lang_ask_approval'
=> lang('Ask for approval'),
- 'lang_ask_approval_statustext' =>
lang('Check this to send a mail to your supervisor for approval'),
- 'value_approval_mail_address' =>
$supervisor_email,
-
-
- 'currency'
=> $GLOBALS['phpgw_info']['user']['preferences']['common']['currency']
- );
-
- $appname = lang('project');
- $GLOBALS['phpgw_info']['flags']['app_header'] =
lang($this->currentapp) . ' - ' . $appname . ': ' . $function_msg;
- return array('edit' => $data);
- }
-
- function delete()
- {
- if(!$this->acl_delete)
- {
-
$this->bocommon->redirect_link('/index.php','sid=cookie&op='.$this->currentapp.'.uilocation.stop&perm=8&acl_location='
. $this->acl2_location);
- }
-
- $project_id = get_var('project_id',array('POST','GET'));
- $confirm = get_var('confirm',array('POST'));
-
- $link_data = array
- (
- 'sid=cookie&op' =>
$this->currentapp.'.uiproject.index'
- );
-
- if (get_var('confirm',array('POST')))
- {
- $this->bo->delete($project_id);
- Header('Location: ' .
$this->bocommon->link('/index.php',$link_data));
- }
-
- $this->bocommon->xsl_add_file(array('app_delete'));
-
- $data = array
- (
- 'done_action' =>
$this->bocommon->link('/index.php',$link_data),
- 'delete_action' =>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.delete&project_id='
. $project_id),
- 'lang_confirm_msg' => lang('do you
really want to delete this entry'),
- 'lang_yes' =>
lang('yes'),
- 'lang_yes_statustext' => lang('Delete the
entry'),
- 'lang_no_statustext' => lang('Back to the
list'),
- 'lang_no' =>
lang('no')
- );
-
- $appname
= lang('project');
- $function_msg =
lang('delete project');
-
- $GLOBALS['phpgw_info']['flags']['app_header'] =
lang($this->currentapp) . ' - ' . $appname . ': ' . $function_msg;
- return array('delete' => $data);
- }
-
- function view()
- {
- if(!$this->acl_read)
- {
-
$this->bocommon->redirect_link('/index.php','sid=cookie&op='.$this->currentapp.'.uilocation.stop&perm=1&acl_location='
. $this->acl2_location);
- }
-
- $receipt =
$this->fm_session->appsession('receipt',$this->currentapp);
-
$this->fm_session->appsession('receipt',$this->currentapp,'');
- $bolocation =
CreateObject($this->currentapp.'_bolocation');
-
- $id = get_var('id',array('POST','GET'));
-
- $this->bocommon->xsl_add_file(array('project'));
-
- $values = $this->bo->read_single($id);
-
- $record_history = $this->bo->read_record_history($id);
-
- $table_header_history[] = array
- (
- 'lang_date' => lang('Date'),
- 'lang_user' => lang('User'),
- 'lang_action' => lang('Action'),
- 'lang_new_value' => lang('New value')
- );
-
- $table_header_workorder_budget[] = array
- (
- 'lang_workorder_id' => lang('Workorder'),
- 'lang_budget' => lang('Budget'),
- 'lang_calculation' => lang('Calculation'),
- 'lang_vendor' => lang('Vendor')
- );
-
- $function_msg = lang('View Project');
-
- if ($values['cat_id'])
- {
- $this->cat_id = $values['cat_id'];
- }
-
- $location_data=$bolocation->initiate_ui_location(array(
- 'values' =>
$values['location_data'],
- 'type_id' =>
count(explode('-',$values['location_data']['location_code'])),
- 'no_link' =>
False, // disable lookup links for location type less than type_id
- 'tenant' =>
$values['location_data']['tenant_id'],
- 'lookup_type' => 'view',
- 'lookup_entity' =>
$this->bocommon->get_lookup_entity('project'),
- 'entity_data' => $values['p']
- ));
-
-
- if($values['reserve'])
- {
-
$reserve_remainder=$values['reserve']-$values['deviation'];
- $remainder_percent=
number_format(($reserve_remainder/$values['reserve'])*100, 2, ',', '');
- }
-
-//html_print_r($values);
- $msgbox_data = $this->bocommon->msgbox_data($receipt);
-
- $data = array
- (
- 'msgbox_data'
=> $GLOBALS['phpgw']->common->msgbox($msgbox_data),
-
- 'lang_ticket'
=> lang('ticket'),
- 'lang_ticket_statustext' =>
lang('Link to the ticket for this project'),
- 'link_ticket'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uitts.view'),
- 'value_ticket_id'
=> $values['ticket_id'],
-
- 'lang_request'
=> lang('request'),
- 'lang_request_statustext' =>
lang('Link to the request for this project'),
- 'value_request_id'
=> $values['request_id'],
- 'link_request'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uirequest.view'),
-
- 'table_header_workorder_budget' =>
$table_header_workorder_budget,
- 'lang_no_workorders' =>
lang('No workorder bugdet'),
- 'workorder_link'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiworkorder.view'),
- 'record_history'
=> $record_history,
- 'table_header_history' =>
$table_header_history,
- 'lang_history'
=> lang('History'),
- 'lang_no_history'
=> lang('No history'),
-
- 'lang_start_date'
=> lang('Project start date'),
- 'value_start_date'
=> $values['start_date'],
-
- 'lang_end_date'
=> lang('Project end date'),
- 'value_end_date'
=> $values['end_date'],
-
- 'lang_charge_tenant' =>
lang('Charge tenant'),
- 'charge_tenant'
=> $values['charge_tenant'],
-
- 'lang_power_meter'
=> lang('Power meter'),
- 'value_power_meter'
=> $values['power_meter'],
-
- 'lang_budget'
=> lang('Budget'),
- 'value_budget'
=> $values['budget'],
-
- 'lang_reserve'
=> lang('reserve'),
- 'value_reserve'
=> $values['reserve'],
- 'lang_reserve_statustext' =>
lang('Enter the reserve'),
-
- 'lang_reserve_remainder' =>
lang('reserve remainder'),
- 'value_reserve_remainder' =>
$reserve_remainder,
- 'value_reserve_remainder_percent'=>
$remainder_percent,
-
- 'vendor_data'
=> $vendor_data,
- 'location_data'
=> $location_data,
- 'location_type'
=> 'view',
- 'done_action'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.index'),
- 'lang_year'
=> lang('Year'),
- 'lang_category'
=> lang('category'),
- 'lang_save'
=> lang('save'),
- 'lang_done'
=> lang('done'),
- 'lang_name'
=> lang('Name'),
-
- 'lang_project_id'
=> lang('Project ID'),
- 'value_project_id'
=> $values['project_id'],
- 'value_name'
=> $values['name'],
-
- 'lang_other_branch'
=> lang('Other branch'),
- 'value_other_branch'
=> $values['other_branch'],
-
- 'lang_descr'
=> lang('Description'),
- 'value_descr'
=> $values['descr'],
- 'lang_done_statustext' =>
lang('Back to the list'),
- 'select_name'
=> 'values[cat_id]',
- 'cat_list'
=> $this->bo->select_category_project_list('select',$values['cat_id']),
-
- 'lang_workorder_id'
=> lang('Workorder ID'),
- 'sum_workorder_budget' =>
$values['sum_workorder_budget'],
- 'sum_workorder_calculation' =>
$values['sum_workorder_calculation'],
- 'workorder_budget'
=> $values['workorder_budget'],
-
- 'lang_coordinator'
=> lang('Coordinator'),
- 'lang_sum'
=> lang('Sum'),
- 'select_user_name'
=> 'values[coordinator]',
- 'lang_no_user'
=> lang('Select coordinator'),
- 'user_list'
=> $this->bocommon->get_user_list('select',$values['coordinator']),
-
- 'status_list'
=> $this->bo->select_status_list('select',$values['status']),
- 'lang_no_status'
=> lang('Select status'),
- 'lang_status'
=> lang('Status'),
-
- 'branch_list'
=> $this->bo->select_branch_p_list($values['project_id']),
- 'lang_branch'
=> lang('branch'),
-
- 'key_responsible_list'
=> $this->bo->select_branch_list($values['key_responsible']),
- 'lang_key_responsible'
=> lang('key responsible'),
-
- 'key_fetch_list'
=> $this->bo->select_key_location_list($values['key_fetch']),
- 'lang_key_fetch'
=> lang('key fetch location'),
-
- 'key_deliver_list'
=> $this->bo->select_key_location_list($values['key_deliver']),
- 'lang_key_deliver'
=> lang('key deliver location'),
-
- 'edit_action'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.edit&id='
. $id),
- 'lang_edit_statustext'
=> lang('Edit this entry project'),
- 'lang_edit'
=> lang('Edit'),
- 'currency'
=>
$GLOBALS['phpgw_info']['user']['preferences']['common']['currency']
- );
-
- $appname = lang('project');
- $GLOBALS['phpgw_info']['flags']['app_header'] =
lang($this->currentapp) . ' - ' . $appname . ': ' . $function_msg;
- return array('view' => $data);
- }
- }
-?>
+<?php
+
/**************************************************************************\
+ * phpGroupWare - property
*
+ * http://www.phpgroupware.org
*
+ *
*
+ * Facilities Management
*
+ * Written by Sigurd Nes [sigurdne at online.no]
*
+ *
------------------------------------------------------------------------ *
+ * Copyright 2000 - 2003 Free Software Foundation, Inc
*
+ * This program is part of the GNU project, see http://www.gnu.org/
*
+ *
------------------------------------------------------------------------ *
+ * This program is free software; you can redistribute it and/or modify
it *
+ * under the terms of the GNU General Public License as published by the
*
+ * Free Software Foundation; either version 2 of the License, or (at
your *
+ * option) any later version.
*
+
\**************************************************************************/
+
+ class property_uiproject
+ {
+ var $grants;
+ var $cat_id;
+ var $start;
+ var $query;
+ var $sort;
+ var $order;
+ var $filter;
+ var $part_of_town_id;
+ var $sub;
+ var $currentapp;
+
+ var $public_functions = array
+ (
+ 'excel' => True,
+ 'index' => True,
+ 'view' => True,
+ 'edit' => True,
+ 'delete' => True,
+ 'date_search'=>True
+ );
+
+ function property_uiproject()
+ {
+ $GLOBALS['phpgw_info']['flags']['xslt_app'] = True;
+ $this->currentapp = 'property';
//$GLOBALS['phpgw_info']['flags']['currentapp'];
+ $this->account =
$GLOBALS['phpgw_data']['user']['id'];
+
+ $this->bo =
CreateObject($this->currentapp.'_boproject',True);
+ $this->bocommon =
CreateObject($this->currentapp.'_bocommon');
+ $this->menu =
CreateObject($this->currentapp.'_menu');
+ $this->fm_session =
CreateObject($this->currentapp.'_session');
+
+ $this->acl2 =
$GLOBALS['phpgw']->acl;
+ $this->acl2_location = '.project';
+ $this->acl_read =
$this->acl2->check('.project',1);
+ $this->acl_add =
$this->acl2->check('.project',2);
+ $this->acl_edit =
$this->acl2->check('.project',4);
+ $this->acl_delete =
$this->acl2->check('.project',8);
+
+ $this->start =
$this->bo->start;
+ $this->query =
$this->bo->query;
+ $this->sort =
$this->bo->sort;
+ $this->order =
$this->bo->order;
+ $this->filter =
$this->bo->filter;
+ $this->cat_id =
$this->bo->cat_id;
+ $this->status_id =
$this->bo->status_id;
+
+ $this->menu->sub ='project';
+ }
+
+ function save_sessiondata()
+ {
+ $data = array
+ (
+ 'start' => $this->start,
+ 'query' => $this->query,
+ 'sort' => $this->sort,
+ 'order' => $this->order,
+ 'filter' => $this->filter,
+ 'cat_id' => $this->cat_id,
+ 'status_id' => $this->status_id
+ );
+ $this->bo->save_sessiondata($data);
+ }
+
+ function excel()
+ {
+ $GLOBALS['phpgw_info']['flags']['noframework'] = True;
+ require('PEAR.php');
+ $xls =
CreateObject($this->currentapp.'_excel');
+
+ $start_date =
urldecode(get_var('start_date',array('POST','GET')));
+ $end_date =
urldecode(get_var('end_date',array('POST','GET')));
+ $list =
$this->bo->read($start_date,$end_date,$allrows=True);
+
+ $uicols = $this->bo->uicols;
+ $count_uicols_name=count($uicols['name']);
+
+ $j=0;
+ if (isset($list) AND is_array($list))
+ {
+ $str=$xls->Begin();
+ foreach($list as $entry)
+ {
+ $m=0;
+ for ($k=0;$k<$count_uicols_name;$k++)
+ {
+
if($uicols['input_type'][$k]!='hidden')
+ {
+ $content[$j][$m]
= $entry[$uicols['name'][$k]];
+
$str.=$xls->WriteLabel(0,$m,$uicols['descr'][$k]);
+ $m++;
+ }
+ }
+
+ $j++;
+ }
+
+ foreach($content as $row)
+ {
+ $line++;
+ for ($i=0; $i<count($row); $i++)
+ {
+
$str.=$xls->WriteLabel($line,$i,$row[$i]);
+ }
+ }
+
+ $filename=
$GLOBALS['phpgw_info']['user']['account_lid'].'.xls';
+
+ $str.=$xls->EOF();
+ $size=strlen($str);
+
+ $browser = CreateObject('phpgwapi_browser');
+
$browser->content_header($filename,'application/vnd.ms-excel',$size);
+
+ echo $str;
+ }
+ }
+
+ function index()
+ {
+ if(!$this->acl_read)
+ {
+
$this->bocommon->redirect_link('/index.php','sid=cookie&op='.$this->currentapp.'.uilocation.stop&perm=1&acl_location='
. $this->acl2_location);
+ }
+
+
$this->bocommon->xsl_add_file(array('project','values','table_header',
+
'menu',
+
'nextmatchs',
+
'search_field'));
+
+ $lookup = get_var('lookup',array('POST','GET'));
+ $start_date =
urldecode(get_var('start_date',array('POST','GET')));
+ $end_date =
urldecode(get_var('end_date',array('POST','GET')));
+
+ $links = $this->menu->links('project');
+
+ $project_list = $this->bo->read($start_date,$end_date);
+ $uicols = $this->bo->uicols;
+ $count_uicols_name=count($uicols['name']);
+
+ $j=0;
+ if (isSet($project_list) AND is_array($project_list))
+ {
+ foreach($project_list as $project_entry)
+
+ {
+ for ($k=0;$k<$count_uicols_name;$k++)
+ {
+
if($uicols['input_type'][$k]=='text')
+ {
+
+
if($project_entry['query_location'][$uicols['name'][$k]])
+ {
+
$content[$j]['row'][$k]['statustext'] = lang('search');
+
$content[$j]['row'][$k]['text'] =
$project_entry[$uicols['name'][$k]];
+
$content[$j]['row'][$k]['link'] =
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.index&query='
. $project_entry['query_location'][$uicols['name'][$k]] . '&lookup=' . $lookup
. '&filter=' . $this->filter);
+ }
+ else
+ {
+
$content[$j]['row'][$k]['value'] =
$project_entry[$uicols['name'][$k]];
+
$content[$j]['row'][$k]['name'] = $uicols['name'][$k];
+ }
+ }
+
elseif($uicols['input_type'][$k]=='link')
+ {
+
$content[$j]['row'][$k]['statustext'] = lang('search');
+
$content[$j]['row'][$k]['text'] =
$project_entry[$uicols['name'][$k]];
+
$content[$j]['row'][$k]['link'] =
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uitts.view&id='
. $project_entry[$uicols['name'][$k]]);
+ }
+
+ if($lookup &&
$k==($count_uicols_name-2))
+ {
+
$content[$j]['row'][$k]['lookup_action'] =
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiworkorder.edit&project_id='
. $project_entry['project_id']);
+ }
+ }
+
+ if(!$lookup)
+ {
+ if ($this->acl_read &&
$this->bocommon->check_perms($project_entry['grants'],PHPGW_ACL_READ))
+ {
+
$content[$j]['row'][$k]['statustext'] = lang('view the
project');
+
$content[$j]['row'][$k]['text'] = lang('view');
+
$content[$j]['row'][$k]['link'] =
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.view&id='
. $project_entry['project_id']);
+ $k++;
+ }
+ else
+ {
+
$content[$j]['row'][$k++]['link']='dummy';
+ }
+
+ if ($this->acl_edit &&
$this->bocommon->check_perms($project_entry['grants'],PHPGW_ACL_EDIT))
+ {
+
$content[$j]['row'][$k]['statustext'] = lang('edit the
project');
+
$content[$j]['row'][$k]['text'] = lang('edit');
+
$content[$j]['row'][$k]['link'] =
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.edit&id='
. $project_entry['project_id']);
+ $k++;
+ }
+ else
+ {
+
$content[$j]['row'][$k++]['link']='dummy';
+ }
+
+ if ($this->acl_delete &&
$this->bocommon->check_perms($project_entry['grants'],PHPGW_ACL_DELETE))
+ {
+
$content[$j]['row'][$k]['statustext'] = lang('delete the
project');
+
$content[$j]['row'][$k]['text'] =
lang('delete');
+
$content[$j]['row'][$k]['link'] =
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.delete&id='
. $project_entry['project_id']);
+ $k++;
+ }
+ else
+ {
+
$content[$j]['row'][$k++]['link']='dummy';
+ }
+ }
+
+ $j++;
+ }
+ }
+
+ $count_uicols_descr=count($uicols['descr']);
+ for ($i=0;$i<$count_uicols_descr;$i++)
+ {
+ if($uicols['input_type'][$i]!='hidden')
+ {
+ $table_header[$i]['header'] =
$uicols['descr'][$i];
+ $table_header[$i]['width']
= '5%';
+ $table_header[$i]['align']
= 'center';
+ if($uicols['name'][$i]=='loc1')
+ {
+ $table_header[$i]['sort_link']
=true;
+ $table_header[$i]['sort']
= $this->bocommon->show_sort_order(array
+
(
+
'sort' => $this->sort,
+
'var' => 'location_code',
+
'order' => $this->order,
+
'extra' => array('sid=cookie&op' =>
$this->currentapp.'.uiproject.index',
+
'type_id'
=>$type_id,
+
'query'
=>$this->query,
+
'lookup'
=>$lookup,
+
'district_id' =>
$this->district_id,
+
'cat_id'
=>$this->cat_id,
+
'start_date'=>$start_date,
+
'end_date'=>$end_date)
+
));
+ }
+ if($uicols['name'][$i]=='project_id')
+ {
+ $table_header[$i]['sort_link']
=true;
+ $table_header[$i]['sort']
= $this->bocommon->show_sort_order(array
+
(
+
'sort' => $this->sort,
+
'var' => 'project_id',
+
'order' => $this->order,
+
'extra' => array('sid=cookie&op' =>
$this->currentapp.'.uiproject.index',
+
'type_id'
=>$type_id,
+
'query'
=>$this->query,
+
'lookup'
=>$lookup,
+
'district_id' =>
$this->district_id,
+
'cat_id'
=>$this->cat_id,
+
'start_date'=>$start_date,
+
'end_date'=>$end_date)
+
));
+ }
+ if($uicols['name'][$i]=='address')
+ {
+ $table_header[$i]['sort_link']
=true;
+ $table_header[$i]['sort']
= $this->bocommon->show_sort_order(array
+
(
+
'sort' => $this->sort,
+
'var' => 'address',
+
'order' => $this->order,
+
'extra' => array('sid=cookie&op' =>
$this->currentapp.'.uiproject.index',
+
'type_id'
=>$type_id,
+
'query'
=>$this->query,
+
'lookup'
=>$lookup,
+
'district_id' =>
$this->district_id,
+
'cat_id'
=>$this->cat_id,
+
'start_date'=>$start_date,
+
'end_date'=>$end_date)
+
));
+ }
+ }
+ }
+
+ if(!$lookup)
+ {
+ if($this->acl_read)
+ {
+ $table_header[$i]['width']
= '5%';
+ $table_header[$i]['align']
= 'center';
+ $table_header[$i]['header']
= lang('view');
+ $i++;
+ }
+ if($this->acl_edit)
+ {
+ $table_header[$i]['width']
= '5%';
+ $table_header[$i]['align']
= 'center';
+ $table_header[$i]['header']
= lang('edit');
+ $i++;
+ }
+ if($this->acl_delete)
+ {
+ $table_header[$i]['width']
= '5%';
+ $table_header[$i]['align']
= 'center';
+ $table_header[$i]['header']
= lang('delete');
+ $i++;
+ }
+ }
+ else
+ {
+ $table_header[$i]['width']
= '5%';
+ $table_header[$i]['align']
= 'center';
+ $table_header[$i]['header'] =
lang('select');
+ }
+
+//html_print_r($content);
+ if($this->acl_add)
+ {
+ $table_add[] = array
+ (
+ 'lang_add'
=> lang('add'),
+ 'lang_add_statustext' => lang('add a
project'),
+ 'add_action' =>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.edit')
+ );
+ }
+
+ $link_data = array
+ (
+ 'sid=cookie&op' =>
$this->currentapp.'.uiproject.index',
+ 'sort'
=>$this->sort,
+ 'order'
=>$this->order,
+ 'cat_id'
=>$this->cat_id,
+ 'district_id'
=>$this->district_id,
+ 'filter'
=>$this->filter,
+ 'status_id'
=>$this->status_id,
+ 'lookup'
=>$lookup,
+ 'query'
=>$this->query,
+ 'start_date' =>$start_date,
+ 'end_date'
=>$end_date
+ );
+
+ $link_date_search
=
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.date_search');
+
+ $link_excel = array
+ (
+ 'sid=cookie&op' =>
$this->currentapp.'.uiproject.excel',
+ 'sort'
=>$this->sort,
+ 'order'
=>$this->order,
+ 'cat_id'
=>$this->cat_id,
+ 'district_id'
=>$this->district_id,
+ 'filter'
=>$this->filter,
+ 'status_id'
=>$this->status_id,
+ 'lookup'
=>$lookup,
+ 'query'
=>$this->query,
+ 'start_date' =>$start_date,
+ 'end_date'
=>$end_date,
+ 'start' =>$this->start
+ );
+
+ $data = array
+ (
+ 'lang_excel' =>
'excel',
+ 'link_excel' =>
$this->bocommon->link('/index.php',$link_excel),
+ 'lang_excel_help' =>
lang('Download table to MS Excel'),
+
+ 'start_date'
=>$start_date,
+ 'end_date'
=>$end_date,
+ 'lang_none'
=>lang('None'),
+ 'lang_date_search' =>
lang('Date search'),
+ 'lang_date_search_help' => lang('Narrow
the search by dates'),
+ 'link_date_search' =>
$link_date_search,
+ 'overlib_source' =>
'./'.$this->currentapp.'/inc/overlib.js',
+
+ 'lang_select'
=> lang('select'),
+ 'lookup_action'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiworkorder.edit'),
+ 'lookup'
=> $lookup,
+ 'links'
=> $links,
+ 'allow_allrows'
=> false,
+ 'start_record'
=> $this->start,
+ 'record_limit'
=> 15, //$GLOBALS['phpgw_info']['user']['preferences']['common']['maxmatchs'],
+ 'num_records'
=> count($project_list),
+ 'all_records'
=> $this->bo->total_records,
+ 'link_url'
=> $this->bocommon->link('/index.php',$link_data),
+ 'img_path'
=>
dirname($GLOBALS['HTTP_SERVER_VARS']['PHP_SELF']).'/api/skins/default/images',
+ 'lang_no_cat'
=> lang('no category'),
+ 'lang_cat_statustext' =>
lang('Select the category the project belongs to. To do not use a category
select NO CATEGORY'),
+ 'select_name'
=> 'cat_id',
+ 'cat_list'
=> $this->bo->select_category_project_list('filter',$this->cat_id),
+ 'district_list'
=> $this->bocommon->select_district_list('filter',$this->district_id),
+ 'lang_no_district'
=> lang('no district'),
+ 'lang_district_statustext' =>
lang('Select the district the selection belongs to. To do not use a district
select NO DISTRICT'),
+ 'select_district_name' =>
'district_id',
+ 'select_action'
=> $this->bocommon->link('/index.php',$link_data),
+
+ 'lang_status_statustext' =>
lang('Select the status the agreement belongs to. To do not use a category
select NO STATUS'),
+ 'status_name'
=> 'status_id',
+ 'lang_no_status'
=> lang('No status'),
+ 'status_list'
=> $this->bo->select_status_list('filter',$this->status_id),
+
+ 'lang_user_statustext' =>
lang('Select the user the project belongs to. To do not use a category select
NO USER'),
+ 'select_user_name'
=> 'filter',
+ 'lang_no_user'
=> lang('No user'),
+ 'user_list'
=>
$this->bocommon->get_user_list_right2('filter',4,$this->filter,$this->acl2_location,array('all'),$default=$this->account),
+
+ 'lang_searchfield_statustext' => lang('Enter
the search string. To show all entries, empty this field and press the SUBMIT
button again'),
+ 'lang_searchbutton_statustext' => lang('Submit
the search string'),
+ 'query'
=> $this->query,
+ 'lang_search'
=> lang('search'),
+ 'table_header'
=> $table_header,
+ 'values'
=> $content,
+ 'table_add'
=> $table_add
+ );
+
+ $appname
= lang('Project');
+ $function_msg =
lang('list Project');
+
+ $GLOBALS['phpgw_info']['flags']['app_header'] =
lang($this->currentapp) . ' - ' . $appname . ': ' . $function_msg;
+
+ //$this->save_sessiondata();
+ return array('list_project' => $data);
+ }
+
+ function date_search()
+ {
+ $this->bocommon->xsl_add_file(array('date_search'));
+ $GLOBALS['phpgw_info']['flags']['headonly']=true;
+ $values['start_date'] =
get_var('start_date',array('POST'));
+ $values['end_date'] =
get_var('end_date',array('POST'));
+
+ $function_msg = lang('Date search');
+ $appname = lang('project');
+
+
+ $dateformat =
strtolower($GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat']);
+ $sep = '/';
+ $dlarr[strpos($dateformat,'y')] = 'yyyy';
+ $dlarr[strpos($dateformat,'m')] = 'MM';
+ $dlarr[strpos($dateformat,'d')] = 'DD';
+ ksort($dlarr);
+
+ $dateformat= (implode($sep,$dlarr));
+
+ if(!$values['end_date'])
+ {
+ $values['end_date'] =
$GLOBALS['phpgw']->common->show_date(mktime(0,0,0,date("m"),date("d"),date("Y")),$GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat']);
+ }
+
+ $cal_info = $this->bocommon->jscalendar();
+ $jsDateFormat=$cal_info['jsDateFormat'];
+
+ $data = array
+ (
+ 'jsDateFormat'
=> $jsDateFormat,
+ 'date_img'
=> $cal_info['img'],
+ 'lang_datetitle'
=> lang('Select date'),
+ 'calendar_setup_start' =>
"Calendar.setup({inputField : 'start_date',ifFormat : '" . $jsDateFormat .
"',button : 'start_date-trigger'});",
+ 'calendar_setup_end' =>
"Calendar.setup({inputField : 'end_date',ifFormat : '" . $jsDateFormat .
"',button : 'end_date-trigger'});",
+
+ 'lang_start_date_statustext' => lang('Select
the estimated end date for the Project'),
+ 'lang_start_date'
=> lang('Start date'),
+ 'value_start_date'
=> $values['start_date'],
+
+ 'lang_end_date_statustext' =>
lang('Select the estimated end date for the Project'),
+ 'lang_end_date'
=> lang('End date'),
+ 'value_end_date'
=> $values['end_date'],
+
+ 'dateformat'
=> $dateformat,
+ 'form_action'
=> $this->bocommon->link('/index.php',$link_data),
+ 'lang_submit_statustext' =>
lang('Select this dates'),
+ 'lang_submit' =>
lang('Submit')
+ );
+
+ $GLOBALS['phpgw_info']['flags']['app_header'] =
lang($this->currentapp) . ' - ' . $appname . ': ' . $function_msg;
+ return array('date_search' => $data);
+ }
+
+ function edit()
+ {
+ if(!$this->acl_add && !$this->acl_edit)
+ {
+
$this->bocommon->redirect_link('/index.php','sid=cookie&op='.$this->currentapp.'.uilocation.stop&perm=2&acl_location='
. $this->acl2_location);
+ }
+ $id =
get_var('id',array('POST','GET'));
+ $values =
get_var('values',array('POST'));
+ $add_request =
get_var('add_request',array('POST'));
+ $add_request =
get_var('add_request',array('POST'));
+
+ $config =
CreateObject('phpgwapi_config');
+ $bolocation =
CreateObject($this->currentapp.'_bolocation');
+
+ $insert_record =
$this->fm_session->appsession('insert_record',$this->currentapp);
+ $insert_record_entity =
$this->fm_session->appsession('insert_record_entity',$this->currentapp);
+
+ for ($j=0;$j<count($insert_record_entity);$j++)
+ {
+
$insert_record['extra'][$insert_record_entity[$j]] =
$insert_record_entity[$j];
+ }
+
+ $this->bocommon->xsl_add_file(array('project'));
+
+ $bypass =
get_var('bypass',array('POST','GET'));
+
+ if($add_request)
+ {
+ $receipt =
$this->bo->add_request($add_request,$id);
+ }
+
+ if($_POST && !$bypass)
+ {
+ for ($i=0;
$i<count($insert_record['location']); $i++)
+ {
+
if($_POST[$insert_record['location'][$i]])
+ {
+
$values['location'][$insert_record['location'][$i]]=
$_POST[$insert_record['location'][$i]];
+ }
+ }
+
+ while (is_array($insert_record['extra']) &&
list($key,$column) = each($insert_record['extra']))
+ {
+ if($_POST[$key])
+ {
+ $values['extra'][$column]
= $_POST[$key];
+ }
+ }
+
+ $values['street_name'] =
$_POST['street_name'];
+ $values['street_number'] =
$_POST['street_number'];
+ $values['location_name'] = $_POST['loc'
. (count($values['location'])).'_name']; // if not address - get the parent
name as address
+
+ }
+ else
+ {
+ $location_code =
get_var('location_code',array('POST','GET'));
+ $tenant_id =
get_var('tenant_id',array('POST','GET'));
+ $values['descr'] =
get_var('descr',array('POST','GET'));
+ $ticket_id =
get_var('ticket_id',array('POST','GET'));
+ $request_id =
get_var('request_id',array('POST','GET'));
+ $p_entity_id =
get_var('p_entity_id',array('POST','GET'));
+ $p_cat_id =
get_var('p_cat_id',array('POST','GET'));
+ $values['p'][$p_entity_id]['p_entity_id']
= $p_entity_id;
+ $values['p'][$p_entity_id]['p_cat_id']
= $p_cat_id;
+ $values['p'][$p_entity_id]['p_num']
= get_var('p_num',array('POST','GET'));
+
+ if($p_entity_id && $p_cat_id)
+ {
+ $boadmin_entity =
CreateObject($this->currentapp.'_boadmin_entity');
+ $entity_category =
$boadmin_entity->read_single_category($p_entity_id,$p_cat_id);
+
$values['p'][$p_entity_id]['p_cat_name'] = $entity_category['name'];
+ }
+
+ if($ticket_id)
+ {
+ $values['ticket_id'][0]['id']=
$ticket_id;
+ $values['origin']= 'tts';
+ $values['origin_id']= $ticket_id;
+ }
+
+ if($request_id)
+ {
+ $values['request_id'][0]['id']=
$request_id;
+ $values['origin']= 'request';
+ $values['origin_id']= $request_id;
+ }
+
+ if($location_code)
+ {
+ $values['location_data'] =
$bolocation->read_single($location_code,array('tenant_id'=>$tenant_id,'p_num'=>$p_num));
+ }
+
+ }
+
+ $values['start_date'] =
get_var('start_date',array('POST'));
+ $values['end_date'] =
get_var('end_date',array('POST'));
+
+//html_print_r($values);
+ $config->read_repository();
+
+ if ($values['save'])
+ {
+ $save=true;
+
+ if(!$values['location'])
+ {
+
$receipt['error'][]=array('msg'=>lang('Please select a location !'));
+ $error_id=true;
+ }
+
+ if(!$values['name'])
+ {
+
$receipt['error'][]=array('msg'=>lang('Please enter a project NAME !'));
+ $error_id=true;
+ }
+
+ if(!$values['cat_id'])
+ {
+
$receipt['error'][]=array('msg'=>lang('Please select a category !'));
+ $error_id=true;
+ }
+
+ if(!$values['coordinator'])
+ {
+
$receipt['error'][]=array('msg'=>lang('Please select a coordinator !'));
+ $error_id=true;
+ }
+
+ if(!$values['status'])
+ {
+
$receipt['error'][]=array('msg'=>lang('Please select a status !'));
+ }
+
+ if($id)
+ {
+ $values['project_id']=$id;
+ $action='edit';
+ }
+
+ if(!$receipt['error'])
+ {
+ if(!$id)
+ {
+
$values['project_id']=$this->bo->next_project_id();
+ $id = $values['project_id'];
+ }
+
+ if($values['copy_project'])
+ {
+ $action='add';
+ $values['project_id'] =
$this->bo->next_project_id();
+ $id = $values['project_id'];
+ }
+ $receipt =
$this->bo->save($values,$action);
+ if($receipt['error'])
+ {
+ unset($id);
+ unset($values['project_id']);
+ }
+
+ if ($values['approval'] &&
$values['mail_address'])
+ {
+
$coordinator_name=$GLOBALS['phpgw_info']['user']['fullname'];
+
$coordinator_email=$GLOBALS['phpgw_info']['user']['preferences'][$this->currentapp]['email'];
+ $headers = "Return-Path: <".
$coordinator_email .">\r\n";
+ $headers .= "From: " .
$coordinator_name . "<" . $coordinator_email .">\r\n";
+ $headers .= "Bcc: " .
$coordinator_name . "<" . $coordinator_email .">\r\n";
+ $headers .= "Content-type:
text/plain; charset=iso-8859-1\r\n";
+
+ $subject = lang(Approval).": ".
$values['project_id'];
+ $message = lang(Project) . " "
. $values['project_id'] ." ". lang('needs approval');
+
+ $mail_method=
$config->config_data['fmwrkorder_mail'];
+ if ($mail_method=='smtp'):
+ {
+ $bcc =
$coordinator_email;
+ $send =
CreateObject('phpgwapi_send');
+ $rcpt =
$send->msg('email',$values['mail_address'], $subject, stripslashes($message),
'', $cc, $bcc, $coordinator_email, $coordinator_name, 'plain');
+ }
+ elseif
($mail_method=='sendmail'):
+ {
+
$rcpt=mail($values['mail_address'],$subject,$message, $headers);
+ }
+ else:
+ {
+
$receipt['error'][]=array('msg'=>lang('Mailing method is not chosen! (admin
section)'));
+ }
+ endif;
+ }
+
+ if($rcpt)
+ {
+
$receipt['message'][]=array('msg'=>lang('%1 is
notified',$values['mail_address']));
+ }
+ }
+
+ if($receipt['error'])
+ {
+ if($values['location'])
+ {
+ $location_code=implode("-",
$values['location']);
+ $values['location_data'] =
$bolocation->read_single($location_code,$values['extra']);
+ }
+
+ if($values['extra']['p_num'])
+ {
+
$values['p'][$values['extra']['p_entity_id']]['p_num']=$values['extra']['p_num'];
+
$values['p'][$values['extra']['p_entity_id']]['p_entity_id']=$values['extra']['p_entity_id'];
+
$values['p'][$values['extra']['p_entity_id']]['p_cat_id']=$values['extra']['p_cat_id'];
+
$values['p'][$values['extra']['p_entity_id']]['p_cat_name']=$_POST['entity_cat_name_'.$values['extra']['p_entity_id']];
+ }
+ }
+ }
+
+ if(((!$receipt['error'] || $add_request) && !$bypass)
&& $id)
+ {
+ $values = $this->bo->read_single($id);
+
+ if(!$values['workorder_budget'] && $save)
+ {
+
$this->bocommon->redirect_link('/index.php','sid=cookie&op='.$this->currentapp.'.uiworkorder.edit&project_id='
. $id);
+
+ }
+
+ if
(!$this->bocommon->check_perms($values['grants'],PHPGW_ACL_EDIT))
+ {
+
$receipt['error'][]=array('msg'=>lang('You have no edit right for this
project'));
+
$this->fm_session->appsession('receipt',$this->currentapp,$receipt);
+
+
$this->bocommon->redirect_link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.view&id='
. $id);
+
+ }
+ else
+ {
+ $record_history =
$this->bo->read_record_history($id);
+ }
+ }
+
+
+ $table_header_history[] = array
+ (
+ 'lang_date' => lang('Date'),
+ 'lang_user' => lang('User'),
+ 'lang_action' => lang('Action'),
+ 'lang_new_value' => lang('New value')
+ );
+
+ $table_header_workorder_budget[] = array
+ (
+ 'lang_workorder_id' => lang('Workorder'),
+ 'lang_budget' => lang('Budget'),
+ 'lang_calculation' => lang('Calculation'),
+ 'lang_vendor' => lang('Vendor')
+ );
+
+ if ($id)
+ {
+ $function_msg = lang('Edit Project');
+ }
+ else
+ {
+ $function_msg = lang('Add Project');
+ }
+
+ if ($values['cat_id'])
+ {
+ $this->cat_id = $values['cat_id'];
+ }
+
+ $lookup_type='form';
+
+//html_print_r($values);
+ $location_data=$bolocation->initiate_ui_location(array(
+ 'values' =>
$values['location_data'],
+ 'type_id' => -1,
// calculated from location_types
+ 'no_link' =>
False, // disable lookup links for location type less than type_id
+ 'tenant' => True,
+ 'lookup_type' => $lookup_type,
+ 'lookup_entity' =>
$this->bocommon->get_lookup_entity('project'),
+ 'entity_data' => $values['p']
+ ));
+
+
+ $link_data = array
+ (
+ 'sid=cookie&op' =>
$this->currentapp.'.uiproject.edit',
+ 'id' => $id
+ );
+
+ $link_request_data = array
+ (
+ 'sid=cookie&op' =>
$this->currentapp.'.uirequest.index',
+ 'query' =>
$values['location_code'],
+ 'project_id' => $values['project_id']
+ );
+
+
+
$supervisor_id=$GLOBALS['phpgw_info']['user']['preferences'][$this->currentapp]['approval_from'];
+ $need_approval =
$config->config_data['workorder_approval'];
+
+
$project_status=$GLOBALS['phpgw_info']['user']['preferences'][$this->currentapp]['project_status'];
+
$project_category=$GLOBALS['phpgw_info']['user']['preferences'][$this->currentapp]['project_category'];
+ if(!$values['status'])
+ {
+ $values['status']=$project_status;
+ }
+
+ if(!$values['cat_id'])
+ {
+ $values['cat_id']=$project_category;
+ }
+
+ if(!$values['coordinator'])
+ {
+ $values['coordinator']=$this->account;
+ }
+
+ if ($supervisor_id && $need_approval=='yes')
+ {
+ $prefs =
$this->bocommon->create_preferences($this->currentapp,$supervisor_id);
+ $supervisor_email = $prefs['email'];
+ }
+
+ if(!$values['start_date'])
+ {
+ $values['start_date'] =
$GLOBALS['phpgw']->common->show_date(mktime(0,0,0,date("m"),date("d"),date("Y")),$GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat']);
+ }
+
+ if($receipt)
+ {
+ $msgbox_data =
$this->bocommon->msgbox_data($receipt);
+ }
+
+ if($values['reserve'])
+ {
+
$reserve_remainder=$values['reserve']-$values['deviation'];
+ $remainder_percent=
number_format(($reserve_remainder/$values['reserve'])*100, 2, ',', '');
+ }
+
+ $cal_info = $this->bocommon->jscalendar();
+ $jsDateFormat=$cal_info['jsDateFormat'];
+
+ $data = array
+ (
+ 'msgbox_data'
=> $GLOBALS['phpgw']->common->msgbox($msgbox_data),
+ 'lang_ticket'
=> lang('ticket'),
+ 'lang_ticket_statustext' =>
lang('Link to the ticket for this project'),
+ 'link_ticket'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uitts.view'),
+ 'value_ticket_id'
=> $values['ticket_id'],
+
+ 'value_origin'
=> $values['origin'],
+ 'value_origin_id'
=> $values['origin_id'],
+
+ 'lang_request'
=> lang('request'),
+ 'lang_select_request' =>
lang('Select request'),
+ 'lang_select_request_statustext' =>
lang('Add request for this project'),
+ 'lang_request_statustext' =>
lang('Link to the request for this project'),
+ 'lang_delete_request_statustext'=> lang('Check
to delete this request from this project'),
+ 'link_select_request' =>
$this->bocommon->link('/index.php',$link_request_data),
+ 'value_request_id'
=> $values['request_id'],
+ 'link_request'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uirequest.view'),
+
+ 'add_workorder_action'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiworkorder.edit'),
+ 'lang_add_workorder'
=> lang('Add Workorder'),
+ 'lang_add_workorder_statustext' =>
lang('Add a workorder to this project'),
+
+ 'table_header_workorder_budget' =>
$table_header_workorder_budget,
+ 'lang_no_workorders' =>
lang('No workorder bugdet'),
+ 'workorder_link'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiworkorder.edit'),
+ 'record_history'
=> $record_history,
+ 'table_header_history' =>
$table_header_history,
+ 'lang_history'
=> lang('History'),
+ 'lang_no_history'
=> lang('No history'),
+
+// 'cal_info'
=> $cal_info,
+ 'jsDateFormat'
=> $jsDateFormat,
+ 'date_img'
=> $cal_info['img'],
+ 'lang_datetitle'
=> lang('Select date'),
+ 'calendar_setup_start' =>
"Calendar.setup({inputField : 'start_date',ifFormat : '" . $jsDateFormat .
"',button : 'start_date-trigger'});",
+ 'calendar_setup_end' =>
"Calendar.setup({inputField : 'end_date',ifFormat : '" . $jsDateFormat .
"',button : 'end_date-trigger'});",
+
+ 'lang_start_date_statustext' => lang('Select
the estimated end date for the Project'),
+ 'lang_start_date'
=> lang('Project start date'),
+ 'value_start_date'
=> $values['start_date'],
+
+ 'lang_end_date_statustext' =>
lang('Select the estimated end date for the Project'),
+ 'lang_end_date'
=> lang('Project end date'),
+ 'value_end_date'
=> $values['end_date'],
+
+ 'lang_copy_project'
=> lang('Copy project ?'),
+ 'lang_copy_project_statustext' => lang('Choose
Copy Project to copy this project to a new project'),
+
+ 'lang_charge_tenant' =>
lang('Charge tenant'),
+ 'lang_charge_tenant_statustext' => lang('Choose
charge tenant if the tenant i to pay for this project'),
+ 'charge_tenant'
=> $values['charge_tenant'],
+
+ 'lang_power_meter'
=> lang('Power meter'),
+ 'lang_power_meter_statustext' => lang('Enter
the power_meter'),
+ 'value_power_meter'
=> $values['power_meter'],
+
+ 'lang_budget'
=> lang('Budget'),
+ 'value_budget'
=> $values['budget'],
+ 'lang_budget_statustext' =>
lang('Enter the budget'),
+
+ 'lang_reserve'
=> lang('reserve'),
+ 'value_reserve'
=> $values['reserve'],
+ 'lang_reserve_statustext' =>
lang('Enter the reserve'),
+
+ 'lang_reserve_remainder' =>
lang('reserve remainder'),
+ 'value_reserve_remainder' =>
$reserve_remainder,
+ 'value_reserve_remainder_percent'=>
$remainder_percent,
+
+ 'vendor_data'
=> $vendor_data,
+ 'location_data'
=> $location_data,
+ 'location_type'
=> 'form',
+ 'form_action'
=> $this->bocommon->link('/index.php',$link_data),
+ 'done_action'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.index'),
+ 'lang_year'
=> lang('Year'),
+ 'lang_category'
=> lang('category'),
+ 'lang_save'
=> lang('save'),
+ 'lang_done'
=> lang('done'),
+ 'lang_name'
=> lang('Name'),
+
+ 'lang_project_id'
=> lang('Project ID'),
+ 'value_project_id'
=> $values['project_id'],
+ 'value_name'
=> $values['name'],
+ 'lang_name_statustext' =>
lang('Enter Project Name'),
+
+ 'lang_other_branch'
=> lang('Other branch'),
+ 'lang_other_branch_statustext' =>
lang('Enter other branch if not found in the list'),
+ 'value_other_branch'
=> $values['other_branch'],
+
+ 'lang_descr_statustext' =>
lang('Enter a description of the project'),
+ 'lang_descr'
=> lang('Description'),
+ 'value_descr'
=> $values['descr'],
+ 'lang_done_statustext' =>
lang('Back to the list'),
+ 'lang_save_statustext' =>
lang('Save the project'),
+ 'lang_no_cat'
=> lang('Select category'),
+ 'lang_cat_statustext' =>
lang('Select the category the project belongs to. To do not use a category
select NO CATEGORY'),
+ 'select_name'
=> 'values[cat_id]',
+ 'value_cat_id'
=> $values['cat_id'],
+ 'cat_list'
=> $this->bo->select_category_project_list('select',$values['cat_id']),
+
+ 'lang_workorder_id'
=> lang('Workorder ID'),
+ 'sum_workorder_budget' =>
$values['sum_workorder_budget'],
+ 'sum_workorder_calculation' =>
$values['sum_workorder_calculation'],
+ 'workorder_budget'
=> $values['workorder_budget'],
+
+ 'lang_coordinator'
=> lang('Coordinator'),
+ 'lang_sum'
=> lang('Sum'),
+ 'lang_user_statustext' =>
lang('Select the coordinator the project belongs to. To do not use a category
select NO USER'),
+ 'select_user_name'
=> 'values[coordinator]',
+ 'lang_no_user'
=> lang('Select coordinator'),
+ 'user_list'
=>
$this->bocommon->get_user_list_right2('select',4,$values['coordinator'],$this->acl2_location),
+
+ 'status_list'
=> $this->bo->select_status_list('select',$values['status']),
+ 'select_status_name' =>
'values[status]',
+ 'lang_no_status'
=> lang('Select status'),
+ 'lang_status'
=> lang('Status'),
+ 'lang_status_statustext' =>
lang('What is the current status of this project ?'),
+
+ 'branch_list'
=> $this->bo->select_branch_p_list($values['project_id']),
+ 'lang_branch'
=> lang('branch'),
+ 'lang_branch_statustext' =>
lang('Select the branches for this project'),
+
+ 'key_responsible_list'
=> $this->bo->select_branch_list($values['key_responsible']),
+ 'lang_no_key_responsible'
=> lang('Select key responsible'),
+ 'lang_key_responsible'
=> lang('key responsible'),
+ 'lang_key_responsible_statustext'
=> lang('Select the key responsible for this project'),
+
+ 'key_fetch_list'
=> $this->bo->select_key_location_list($values['key_fetch']),
+ 'lang_no_key_fetch'
=> lang('Where to fetch the key'),
+ 'lang_key_fetch'
=> lang('key fetch location'),
+ 'lang_key_fetch_statustext'
=> lang('Select where to fetch the key'),
+
+ 'key_deliver_list'
=> $this->bo->select_key_location_list($values['key_deliver']),
+ 'lang_no_key_deliver'
=> lang('Where to deliver the key'),
+ 'lang_key_deliver'
=> lang('key deliver location'),
+ 'lang_key_deliver_statustext' =>
lang('Select where to deliver the key'),
+
+ 'need_approval'
=> $need_approval,
+ 'lang_ask_approval'
=> lang('Ask for approval'),
+ 'lang_ask_approval_statustext' =>
lang('Check this to send a mail to your supervisor for approval'),
+ 'value_approval_mail_address' =>
$supervisor_email,
+
+
+ 'currency'
=> $GLOBALS['phpgw_info']['user']['preferences']['common']['currency']
+ );
+
+ $appname = lang('project');
+ $GLOBALS['phpgw_info']['flags']['app_header'] =
lang($this->currentapp) . ' - ' . $appname . ': ' . $function_msg;
+ return array('edit' => $data);
+ }
+
+ function delete()
+ {
+ if(!$this->acl_delete)
+ {
+
$this->bocommon->redirect_link('/index.php','sid=cookie&op='.$this->currentapp.'.uilocation.stop&perm=8&acl_location='
. $this->acl2_location);
+ }
+
+ $project_id = get_var('project_id',array('POST','GET'));
+ $confirm = get_var('confirm',array('POST'));
+
+ $link_data = array
+ (
+ 'sid=cookie&op' =>
$this->currentapp.'.uiproject.index'
+ );
+
+ if (get_var('confirm',array('POST')))
+ {
+ $this->bo->delete($project_id);
+ Header('Location: ' .
$this->bocommon->link('/index.php',$link_data));
+ }
+
+ $this->bocommon->xsl_add_file(array('app_delete'));
+
+ $data = array
+ (
+ 'done_action' =>
$this->bocommon->link('/index.php',$link_data),
+ 'delete_action' =>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.delete&project_id='
. $project_id),
+ 'lang_confirm_msg' => lang('do you
really want to delete this entry'),
+ 'lang_yes' =>
lang('yes'),
+ 'lang_yes_statustext' => lang('Delete the
entry'),
+ 'lang_no_statustext' => lang('Back to the
list'),
+ 'lang_no' =>
lang('no')
+ );
+
+ $appname
= lang('project');
+ $function_msg =
lang('delete project');
+
+ $GLOBALS['phpgw_info']['flags']['app_header'] =
lang($this->currentapp) . ' - ' . $appname . ': ' . $function_msg;
+ return array('delete' => $data);
+ }
+
+ function view()
+ {
+ if(!$this->acl_read)
+ {
+
$this->bocommon->redirect_link('/index.php','sid=cookie&op='.$this->currentapp.'.uilocation.stop&perm=1&acl_location='
. $this->acl2_location);
+ }
+
+ $receipt =
$this->fm_session->appsession('receipt',$this->currentapp);
+
$this->fm_session->appsession('receipt',$this->currentapp,'');
+ $bolocation =
CreateObject($this->currentapp.'_bolocation');
+
+ $id = get_var('id',array('POST','GET'));
+
+ $this->bocommon->xsl_add_file(array('project'));
+
+ $values = $this->bo->read_single($id);
+
+ $record_history = $this->bo->read_record_history($id);
+
+ $table_header_history[] = array
+ (
+ 'lang_date' => lang('Date'),
+ 'lang_user' => lang('User'),
+ 'lang_action' => lang('Action'),
+ 'lang_new_value' => lang('New value')
+ );
+
+ $table_header_workorder_budget[] = array
+ (
+ 'lang_workorder_id' => lang('Workorder'),
+ 'lang_budget' => lang('Budget'),
+ 'lang_calculation' => lang('Calculation'),
+ 'lang_vendor' => lang('Vendor')
+ );
+
+ $function_msg = lang('View Project');
+
+ if ($values['cat_id'])
+ {
+ $this->cat_id = $values['cat_id'];
+ }
+
+ $location_data=$bolocation->initiate_ui_location(array(
+ 'values' =>
$values['location_data'],
+ 'type_id' =>
count(explode('-',$values['location_data']['location_code'])),
+ 'no_link' =>
False, // disable lookup links for location type less than type_id
+ 'tenant' =>
$values['location_data']['tenant_id'],
+ 'lookup_type' => 'view',
+ 'lookup_entity' =>
$this->bocommon->get_lookup_entity('project'),
+ 'entity_data' => $values['p']
+ ));
+
+
+ if($values['reserve'])
+ {
+
$reserve_remainder=$values['reserve']-$values['deviation'];
+ $remainder_percent=
number_format(($reserve_remainder/$values['reserve'])*100, 2, ',', '');
+ }
+
+//html_print_r($values);
+ $msgbox_data = $this->bocommon->msgbox_data($receipt);
+
+ $data = array
+ (
+ 'msgbox_data'
=> $GLOBALS['phpgw']->common->msgbox($msgbox_data),
+
+ 'lang_ticket'
=> lang('ticket'),
+ 'lang_ticket_statustext' =>
lang('Link to the ticket for this project'),
+ 'link_ticket'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uitts.view'),
+ 'value_ticket_id'
=> $values['ticket_id'],
+
+ 'lang_request'
=> lang('request'),
+ 'lang_request_statustext' =>
lang('Link to the request for this project'),
+ 'value_request_id'
=> $values['request_id'],
+ 'link_request'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uirequest.view'),
+
+ 'table_header_workorder_budget' =>
$table_header_workorder_budget,
+ 'lang_no_workorders' =>
lang('No workorder bugdet'),
+ 'workorder_link'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiworkorder.view'),
+ 'record_history'
=> $record_history,
+ 'table_header_history' =>
$table_header_history,
+ 'lang_history'
=> lang('History'),
+ 'lang_no_history'
=> lang('No history'),
+
+ 'lang_start_date'
=> lang('Project start date'),
+ 'value_start_date'
=> $values['start_date'],
+
+ 'lang_end_date'
=> lang('Project end date'),
+ 'value_end_date'
=> $values['end_date'],
+
+ 'lang_charge_tenant' =>
lang('Charge tenant'),
+ 'charge_tenant'
=> $values['charge_tenant'],
+
+ 'lang_power_meter'
=> lang('Power meter'),
+ 'value_power_meter'
=> $values['power_meter'],
+
+ 'lang_budget'
=> lang('Budget'),
+ 'value_budget'
=> $values['budget'],
+
+ 'lang_reserve'
=> lang('reserve'),
+ 'value_reserve'
=> $values['reserve'],
+ 'lang_reserve_statustext' =>
lang('Enter the reserve'),
+
+ 'lang_reserve_remainder' =>
lang('reserve remainder'),
+ 'value_reserve_remainder' =>
$reserve_remainder,
+ 'value_reserve_remainder_percent'=>
$remainder_percent,
+
+ 'vendor_data'
=> $vendor_data,
+ 'location_data'
=> $location_data,
+ 'location_type'
=> 'view',
+ 'done_action'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.index'),
+ 'lang_year'
=> lang('Year'),
+ 'lang_category'
=> lang('category'),
+ 'lang_save'
=> lang('save'),
+ 'lang_done'
=> lang('done'),
+ 'lang_name'
=> lang('Name'),
+
+ 'lang_project_id'
=> lang('Project ID'),
+ 'value_project_id'
=> $values['project_id'],
+ 'value_name'
=> $values['name'],
+
+ 'lang_other_branch'
=> lang('Other branch'),
+ 'value_other_branch'
=> $values['other_branch'],
+
+ 'lang_descr'
=> lang('Description'),
+ 'value_descr'
=> $values['descr'],
+ 'lang_done_statustext' =>
lang('Back to the list'),
+ 'select_name'
=> 'values[cat_id]',
+ 'cat_list'
=> $this->bo->select_category_project_list('select',$values['cat_id']),
+
+ 'lang_workorder_id'
=> lang('Workorder ID'),
+ 'sum_workorder_budget' =>
$values['sum_workorder_budget'],
+ 'sum_workorder_calculation' =>
$values['sum_workorder_calculation'],
+ 'workorder_budget'
=> $values['workorder_budget'],
+
+ 'lang_coordinator'
=> lang('Coordinator'),
+ 'lang_sum'
=> lang('Sum'),
+ 'select_user_name'
=> 'values[coordinator]',
+ 'lang_no_user'
=> lang('Select coordinator'),
+ 'user_list'
=> $this->bocommon->get_user_list('select',$values['coordinator']),
+
+ 'status_list'
=> $this->bo->select_status_list('select',$values['status']),
+ 'lang_no_status'
=> lang('Select status'),
+ 'lang_status'
=> lang('Status'),
+
+ 'branch_list'
=> $this->bo->select_branch_p_list($values['project_id']),
+ 'lang_branch'
=> lang('branch'),
+
+ 'key_responsible_list'
=> $this->bo->select_branch_list($values['key_responsible']),
+ 'lang_key_responsible'
=> lang('key responsible'),
+
+ 'key_fetch_list'
=> $this->bo->select_key_location_list($values['key_fetch']),
+ 'lang_key_fetch'
=> lang('key fetch location'),
+
+ 'key_deliver_list'
=> $this->bo->select_key_location_list($values['key_deliver']),
+ 'lang_key_deliver'
=> lang('key deliver location'),
+
+ 'edit_action'
=>
$this->bocommon->link('/index.php','sid=cookie&op='.$this->currentapp.'.uiproject.edit&id='
. $id),
+ 'lang_edit_statustext'
=> lang('Edit this entry project'),
+ 'lang_edit'
=> lang('Edit'),
+ 'currency'
=>
$GLOBALS['phpgw_info']['user']['preferences']['common']['currency']
+ );
+
+ $appname = lang('project');
+ $GLOBALS['phpgw_info']['flags']['app_header'] =
lang($this->currentapp) . ' - ' . $appname . ': ' . $function_msg;
+ return array('view' => $data);
+ }
+ }
+?>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Phpgroupware-cvs] property/class.uiproject.php, 1.1.1.3,
nomail <=