[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Phpgroupware-cvs] property/class.soworkorder.php, 1.1.1.3
From: |
nomail |
Subject: |
[Phpgroupware-cvs] property/class.soworkorder.php, 1.1.1.3 |
Date: |
Fri, 21 May 2004 17:03:23 -0000 |
Update of /property
Modified Files:
Branch:
class.soworkorder.php
date: 2004/04/23 21:26:33; author: sigurdne; state: Exp; lines: +558 -558
Log Message:
no message
=====================================================================
Index: property/class.soworkorder.php
diff -u property/class.soworkorder.php:1.1.1.2
property/class.soworkorder.php:1.1.1.3
--- property/class.soworkorder.php:1.1.1.2 Fri Apr 23 20:26:09 2004
+++ property/class.soworkorder.php Fri Apr 23 21:26:33 2004
@@ -1,558 +1,558 @@
-<?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_soworkorder
- {
-
- function property_soworkorder()
- {
- $this->currentapp = 'property';
//$GLOBALS['phpgw_info']['flags']['currentapp'];
- $this->db = $GLOBALS['phpgw']->db;
- $this->db2 = $this->db;
- $this->account =
$GLOBALS['phpgw_data']['user']['id'];
- $this->bocommon =
CreateObject($this->currentapp.'_bocommon');
- $this->fm_session =
CreateObject($this->currentapp.'_session');
-
- $this->join = $this->bocommon->join;
- $this->left_join = $this->bocommon->left_join;
- $this->grants =
$this->fm_session->appsession('grants_project',$this->currentapp);
-
- if(!$this->grants)
- {
- $this->acl2 =
CreateObject($this->currentapp.'_acl2','##DEFAULT##','##DEFAULT##');
- $this->grants =
$this->acl2->get_grants($this->currentapp,'.project');
-
$this->fm_session->appsession('grants_project',$this->currentapp,$this->grants);
- }
- }
-
- function next_id()
- {
- $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT
value from fm_idgenerator where name = 'workorder'");
-
- $id = $dbresult->fields['value']+1;
- return $id;
- }
-
- function select_category_workorder_list()
- {
-
- $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT id,
descr FROM fm_workorder_category ORDER BY descr ");
-
- $i = 0;
- while (!$dbresult->EOF)
- {
- $categories[$i]['id']
= $dbresult->fields['id'];
- $categories[$i]['name']
= stripslashes($dbresult->fields['descr']);
- $i++;
- $dbresult->MoveNext();
- }
- return $categories;
- }
-
- function read_single_project_category($id='')
- {
- $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT
descr FROM fm_workorder_category where id='$id' ");
-
- return $dbresult->fields['descr'];
- }
-
- function get_b_account_name($id='')
- {
- $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT
descr FROM fm_b_account where id='$id' ");
-
- return $dbresult->fields['descr'];
- }
-
- function select_status_list()
- {
- $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT id,
descr FROM fm_workorder_status ORDER BY id ");
-
- $i = 0;
- while (!$dbresult->EOF)
- {
- $status_entries[$i]['id']
= $dbresult->fields['id'];
- $status_entries[$i]['name']
= stripslashes($dbresult->fields['descr']);
- $i++;
- $dbresult->MoveNext();
- }
- return $status_entries;
- }
-
- function select_branch_list()
- {
- $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT id,
descr FROM fm_branch ORDER BY id ");
-
- $i = 0;
- while (!$dbresult->EOF)
- {
- $branch_entries[$i]['id']
= $dbresult->fields['id'];
- $branch_entries[$i]['name']
= stripslashes($dbresult->fields['descr']);
- $i++;
- $dbresult->MoveNext();
- }
- return $branch_entries;
- }
-
- function select_key_location_list()
- {
- $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT id,
descr FROM fm_key_loc ORDER BY descr ");
-
- $i = 0;
- while (!$dbresult->EOF)
- {
- $key_location_entries[$i]['id']
= $dbresult->fields['id'];
- $key_location_entries[$i]['name']
= stripslashes($dbresult->fields['descr']);
- $i++;
- $dbresult->MoveNext();
- }
- return $key_location_entries;
- }
-
- function read($data)
- {
-
- if(is_array($data))
- {
- if ($data['start'])
- {
- $start=$data['start'];
- }
- else
- {
- $start=0;
- }
- $filter =
$data['filter']?$data['filter']:$this->account;
- $query =
(isset($data['query'])?$data['query']:'');
- $sort =
(isset($data['sort'])?$data['sort']:'DESC');
- $order =
(isset($data['order'])?$data['order']:'');
- $cat_id =
(isset($data['cat_id'])?$data['cat_id']:0);
- $status_id =
(isset($data['status_id'])?$data['status_id']:0);
- $search_vendor =
(isset($data['search_vendor'])?$data['search_vendor']:'');
- $start_date =
(isset($data['start_date'])?$data['start_date']:'');
- $end_date =
(isset($data['end_date'])?$data['end_date']:'');
- $allrows =
(isset($data['allrows'])?$data['allrows']:'');
- }
-
-//html_print_r($data);
- $sql =
$this->bocommon->fm_cache('sql_workorder'.!!$search_vendor);
-
- if(!$sql)
- {
- $entity_table = 'fm_project';
-
- $cols .= $entity_table . '.location_code';
- $cols_return[] = 'location_code';
-
- $cols .= ",$entity_table.id as project_id";
- $cols_return[] =
'project_id';
- $uicols['input_type'][] = 'text';
- $uicols['name'][] =
'project_id';
- $uicols['descr'][] =
lang('Project');
- $uicols['statustext'][] = lang('Project
ID');
-
- $cols .= ",fm_workorder.id as workorder_id";
- $cols_return[] =
'workorder_id';
- $uicols['input_type'][] = 'text';
- $uicols['name'][] =
'workorder_id';
- $uicols['descr'][] =
lang('Workorder');
- $uicols['statustext'][] =
lang('Workorder ID');
-
- $cols .= ",fm_workorder.title as title";
- $cols_return[] =
'title';
- $uicols['input_type'][] = 'text';
- $uicols['name'][] =
'title';
- $uicols['descr'][] =
lang('Title');
- $uicols['statustext'][] =
lang('Workorder title');
-
- $cols .= ",fm_workorder.status as status";
- $cols_return[] =
'status';
- $uicols['input_type'][] = 'text';
- $uicols['name'][] =
'status';
- $uicols['descr'][] =
lang('Status');
- $uicols['statustext'][] =
lang('Workorder status');
-
- $cols .= ",fm_workorder.entry_date as
entry_date";
- $cols_return[] =
'entry_date';
- $uicols['input_type'][] = 'text';
- $uicols['name'][] =
'entry_date';
- $uicols['descr'][] =
lang('Entry date');
- $uicols['statustext'][] =
lang('Workorder entry date');
-
- $cols .= ",phpgw_accounts.account_lid as
user_lid";
- $cols_return[] =
'user_lid';
- $uicols['input_type'][] = 'text';
- $uicols['name'][] =
'user_lid';
- $uicols['descr'][] =
lang('User');
- $uicols['statustext'][] =
lang('Workorder User');
-
- $cols .= ',vendor_id';
- $cols_return[] = 'vendor_id';
- $uicols['input_type'][] = 'text';
- $uicols['name'][] =
'vendor_id';
- $uicols['descr'][] =
lang('Vendor ID');
-
- $cols .= ",fm_project.user_id as project_owner";
-
- $joinmethod .= " $this->join fm_workorder ON
($entity_table.id = fm_workorder.project_id) $this->join phpgw_accounts ON
(fm_workorder.user_id = phpgw_accounts.account_id))";
- $paranthesis .='(';
-
-// if($search_vendor)
- {
- $cols .= ',phpgw_addressbook.org_name';
- $cols_return[] = 'org_name';
- $uicols['input_type'][] =
'hidden';
- $uicols['name'][]
= 'vendor_id';
- $uicols['descr'][]
= lang('Vendor name');
-
- $joinmethod .= " $this->left_join
phpgw_addressbook ON (fm_workorder.vendor_id = phpgw_addressbook.id))";
- $paranthesis .='(';
- }
-
- $sql =
$this->bocommon->generate_sql(array('entity_table'=>$entity_table,'cols'=>$cols,'cols_return'=>$cols_return,
-
'uicols'=>$uicols,'joinmethod'=>$joinmethod,'paranthesis'=>$paranthesis,'query'=>$query));
-
-
-
$this->bocommon->fm_cache('sql_workorder'.!!$search_vendor,$sql);
-
- $this->uicols =
$this->bocommon->uicols;
- $cols_return =
$this->bocommon->cols_return;
- $type_id =
$this->bocommon->type_id;
-// $this->cols_extra =
$this->bocommon->cols_extra;
-
-
$this->bocommon->fm_cache('uicols_workorder'.!!$search_vendor,$this->uicols);
-
$this->bocommon->fm_cache('cols_return_workorder'.!!$search_vendor,$cols_return);
-
$this->bocommon->fm_cache('type_id_workorder'.!!$search_vendor,$type_id);
-//
$this->bocommon->fm_cache('cols_extra_workorder'.!!$search_vendor,$this->cols_extra);
-
- }
- else
- {
- $this->uicols =
$this->bocommon->fm_cache('uicols_workorder'.!!$search_vendor);
- $cols_return =
$this->bocommon->fm_cache('cols_return_workorder'.!!$search_vendor);
- $type_id =
$this->bocommon->fm_cache('type_id_workorder'.!!$search_vendor);
-// $this->cols_extra =
$this->bocommon->fm_cache('cols_extra_workorder'.!!$search_vendor);
- }
-
- if ($order)
- {
- $ordermethod = " order by $order $sort";
- }
- else
- {
- $ordermethod = ' order by fm_workorder.id DESC';
- }
-
- $where= 'WHERE';
-
- if ($cat_id > 0)
- {
- $filtermethod .= " $where
fm_project.category=$cat_id ";
- $where= 'AND';
- }
-
- if ($status_id)
- {
- $filtermethod .= " $where
fm_workorder.status='$status_id' ";
- $where= 'AND';
- }
-
- if ($filter=='all')
- {
- if (is_array($this->grants))
- {
- $grants = $this->grants;
- while (list($user) = each($grants))
- {
- $public_user_list[] = $user;
- }
- reset($public_user_list);
- $filtermethod .= " $where
(fm_project.access='public' AND fm_project.user_id IN(" .
implode(',',$public_user_list) . "))";
- $where= 'AND';
- }
- }
- else
- {
- $filtermethod .= " $where
fm_workorder.user_id=$filter ";
- $where= 'AND';
- }
-
- if ($start_date)
- {
- $filtermethod .= " $where
fm_workorder.start_date >= $start_date AND fm_workorder.start_date <= $end_date
";
- $where= 'AND';
- }
-
- if($query)
- {
- if(stristr($query, '.'))
- {
- $query=explode(".",$query);
- $querymethod = " $where
(fm_project.loc1='" . $query[0] . "' AND fm_project.loc".$type_id."='" .
$query[1] . "')";
- }
- else
- {
- $query = ereg_replace("'",'',$query);
- $query = ereg_replace('"','',$query);
-
- $querymethod = " $where
(fm_workorder.title LIKE '%$query%' or fm_workorder.descr LIKE '%$query%' or
fm_project.address LIKE '%$query%' or fm_project.location_code LIKE '%$query%'
or fm_workorder.id LIKE '%$query%')";
- }
- $where= 'AND';
-
- }
-
- if($search_vendor)
- {
- if((int)$search_vendor>0)
- {
- $querymethod_vendor = " $where
fm_workorder.vendor_id=" .(int)$search_vendor ;
- }
- else
- {
- $querymethod_vendor = " $where
phpgw_addressbook.org_name LIKE '%$search_vendor%'";
- }
- }
-
- $sql .= " $filtermethod $querymethod
$querymethod_vendor";
-//echo $sql;
- $dbresult2 = $GLOBALS['phpgw']->db->Execute($sql);
- $this->total_records = $dbresult2->_numOfRows;
- $maxmatchs = 15;
-
- if(!$allrows)
- {
- $dbresult =
$GLOBALS['phpgw']->db->SelectLimit($sql . $ordermethod,$maxmatchs,$start);
-
- }
- else
- {
- $dbresult = $GLOBALS['phpgw']->db->Execute($sql
. $ordermethod);
- }
-
- $count_cols_return=count($cols_return);
- $j=0;
- while (!$dbresult->EOF)
- {
- for ($i=0;$i<$count_cols_return;$i++)
- {
- $workorder_list[$j][$cols_return[$i]] =
$dbresult->fields[$cols_return[$i]];
- $workorder_list[$j]['grants'] =
(int)$this->grants[$dbresult->fields['project_owner']];
- }
-
- $location_code=
$dbresult->fields['location_code'];
- $location = split('-',$location_code);
- $count_location =count($location);
- for ($m=0;$m<$count_location;$m++)
- {
- $workorder_list[$j]['loc' . ($m+1)] =
$location[$m];
-
$workorder_list[$j]['query_location']['loc' . ($m+1)]=implode("-",
array_slice($location, 0, ($m+1)));
- }
-
- $j++;
- $dbresult->MoveNext();
- }
-
- return $workorder_list;
- }
-
- function read_single($workorder_id)
- {
- $sql = "SELECT fm_workorder.*, fm_chapter.descr as
chapter ,fm_project.user_id from fm_workorder $this->join fm_project on
fm_workorder.project_id=fm_project.id $this->left_join fm_chapter on "
- . " fm_workorder.chapter_id = fm_chapter.id
where fm_workorder.id=$workorder_id";
-
- $dbresult = $GLOBALS['phpgw']->db->Execute($sql);
-
- if (!$dbresult->EOF)
- {
- $workorder['workorder_id'] =
$dbresult->fields['id'];
- $workorder['project_id'] =
$dbresult->fields['project_id'];
- $workorder['title']
= $dbresult->fields['title'];
- $workorder['name']
= $dbresult->fields['name'];
- $workorder['key_fetch'] =
$dbresult->fields['key_fetch'];
- $workorder['key_deliver'] =
$dbresult->fields['key_deliver'];
- $workorder['key_responsible'] =
$dbresult->fields['key_responsible'];
- $workorder['charge_tenant'] =
$dbresult->fields['charge_tenant'];
- $workorder['descr']
= $dbresult->fields['descr'];
- $workorder['status'] =
$dbresult->fields['status'];
- $workorder['budget'] =
(int)$dbresult->fields['budget'];
- $workorder['calculation']
=
($dbresult->fields['calculation']*(1+$dbresult->fields['addition']/100))+$dbresult->fields['rig_addition'];
- $workorder['b_account_id']
= (int)$dbresult->fields['account_id'];
- $workorder['addition_percentage'] =
(int)$dbresult->fields['addition'];
- $workorder['addition_rs']
= (int)$dbresult->fields['rig_addition'];
- $workorder['act_mtrl_cost']
= $dbresult->fields['act_mtrl_cost'];
- $workorder['act_vendor_cost'] =
$dbresult->fields['act_vendor_cost'];
- $workorder['user_id']
= $dbresult->fields['user_id'];
- $workorder['vendor_id'] =
$dbresult->fields['vendor_id'];
- $workorder['coordinator'] =
$dbresult->fields['coordinator'];
- $workorder['access'] =
$dbresult->fields['access'];
- $workorder['start_date'] =
$dbresult->fields['start_date'];
- $workorder['end_date'] =
$dbresult->fields['end_date'];
- $workorder['cat_id'] =
$dbresult->fields['category'];
- $workorder['chapter_id'] =
$dbresult->fields['chapter_id'];
- $workorder['chapter'] =
$dbresult->fields['chapter'];
- $workorder['deviation'] =
$dbresult->fields['deviation'];
- $workorder['grants']
= (int)$this->grants[$dbresult->fields['user_id']];
- }
-
-//html_print_r($workorder);
- return $workorder;
- }
-
-
- function project_budget_from_workorder($project_id = '')
- {
- $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT
budget, id as workorder_id from fm_workorder where project_id='$project_id'");
- while (!$dbresult->EOF)
- {
- $budget[] = array(
- 'workorder_id' =>
$dbresult->fields['workorder_id'],
- 'budget' =>
sprintf("%01.2f",$dbresult->fields['budget'])
- );
- $dbresult->MoveNext();
- }
- return $budget;
- }
-
- function branch_p_list($project_id = '')
- {
-
- $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT
branch_id from fm_projectbranch WHERE project_id='$project_id' ");
- while (!$dbresult->EOF)
- {
- $selected[] = array('branch_id' =>
$dbresult->fields['branch_id']);
- $dbresult->MoveNext();
- }
-
- return $selected;
- }
-
- function increment_workorder_id()
- {
- $GLOBALS['phpgw']->db->Execute("UPDATE fm_idgenerator
set value = value + 1 where name = 'workorder'");
- }
-
- function add($workorder)
- {
- $historylog =
CreateObject($this->currentapp.'_historylog','workorder');
- $workorder['descr'] =
$this->db->db_addslashes($workorder['descr']);
- $workorder['title'] =
$this->db->db_addslashes($workorder['title']);
-
- $values= array(
- $workorder['workorder_id'],
- $workorder['project_id'],
- $workorder['title'],
- 'public',
- time(),
- $workorder['start_date'],
- $workorder['end_date'],
- $workorder['status'],
- $workorder['descr'],
- $workorder['budget'],
- $workorder['b_account_id'],
- $workorder['addition_rs'],
- $workorder['addition_percentage'],
- $workorder['key_deliver'],
- $workorder['key_fetch'],
- $workorder['vendor_id'],
- $workorder['charge_tenant'],
- $this->account);
-
- $values = $this->bocommon->validate_db_insert($values);
-
- $GLOBALS['phpgw']->db->begintrans();
-
- $GLOBALS['phpgw']->db->Execute("INSERT INTO
fm_workorder (id,project_id,title,access,entry_date,start_date,end_date,status,"
- .
"descr,budget,account_id,rig_addition,addition,key_deliver,key_fetch,vendor_id,charge_tenant,user_id)
"
- . "VALUES ( $values )");
-
- if($GLOBALS['phpgw']->db->committrans())
- {
- $this->increment_workorder_id();
-
$historylog->add('SO',$workorder['workorder_id'],$workorder['status']);
- $receipt['message'][] =
array('msg'=>lang('workorder %1 has been saved',$workorder['workorder_id']));
- }
- else
- {
- $receipt['error'][] = array('msg'=>lang('the
workorder has not been saved'));
- }
- return $receipt;
- }
-
- function edit($workorder)
- {
- $historylog =
CreateObject($this->currentapp.'_historylog','workorder');
- $workorder['descr'] =
$this->db->db_addslashes($workorder['descr']);
- $workorder['title'] =
$this->db->db_addslashes($workorder['title']);
-//html_print_r($workorder);
-
- $value_set=array(
- 'title' => $workorder['title'],
- 'status' => $workorder['status'],
- 'start_date' => $workorder['start_date'],
- 'end_date' =>
$workorder['end_date'],
- 'descr' => $workorder['descr'],
- 'budget' =>
(int)$workorder['budget'],
- 'key_deliver' => $workorder['key_deliver'],
- 'key_fetch' =>
$workorder['key_fetch'],
- 'account_id' => $workorder['b_account_id'],
- 'rig_addition' => $workorder['addition_rs'],
- 'addition' =>
$workorder['addition_percentage'],
- 'charge_tenant' => $workorder['charge_tenant'],
- 'vendor_id' =>
$workorder['vendor_id']
- );
-
- $value_set =
$this->bocommon->validate_db_update($value_set);
-
- $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT
status,budget FROM fm_workorder where id='" .$workorder['workorder_id']."'");
-
-
- $old_status = $dbresult->fields['status'];
- $old_budget = $dbresult->fields['budget'];
-
- $GLOBALS['phpgw']->db->begintrans();
-
- $GLOBALS['phpgw']->db->Execute("UPDATE fm_workorder set
$value_set WHERE id=" . $workorder['workorder_id'] );
-
- if($GLOBALS['phpgw']->db->committrans())
- {
- if ($old_status != $workorder['status'])
- {
-
$historylog->add('S',$workorder['workorder_id'],$workorder['status']);
- }
- if ($old_budget != $workorder['budget'])
- {
-
$historylog->add('B',$workorder['workorder_id'],$workorder['budget']);
- }
-
- $receipt['message'][] =
array('msg'=>lang('workorder %1 has been edited',$workorder['workorder_id']));
- }
- else
- {
- $receipt['error'][] =
array('msg'=>lang('workorder %1 has not been
edited',$workorder['workorder_id']));
- }
-
- return $receipt;
- }
-
- function delete($workorder_id )
- {
- $GLOBALS['phpgw']->db->Execute("DELETE FROM
fm_workorder WHERE id='" . $workorder_id . "'");
- $GLOBALS['phpgw']->db->Execute("DELETE FROM
fm_workorder_history WHERE history_record_id='" . $workorder_id . "'");
- $GLOBALS['phpgw']->db->Execute("DELETE FROM fm_wo_hours
WHERE workorder_id='" . $workorder_id . "'");
-
- }
- }
-?>
+<?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_soworkorder
+ {
+
+ function property_soworkorder()
+ {
+ $this->currentapp = 'property';
//$GLOBALS['phpgw_info']['flags']['currentapp'];
+ $this->db = $GLOBALS['phpgw']->db;
+ $this->db2 = $this->db;
+ $this->account =
$GLOBALS['phpgw_data']['user']['id'];
+ $this->bocommon =
CreateObject($this->currentapp.'_bocommon');
+ $this->fm_session =
CreateObject($this->currentapp.'_session');
+
+ $this->join = $this->bocommon->join;
+ $this->left_join = $this->bocommon->left_join;
+ $this->grants =
$this->fm_session->appsession('grants_project',$this->currentapp);
+
+ if(!$this->grants)
+ {
+ $this->acl2 =
CreateObject($this->currentapp.'_acl2','##DEFAULT##','##DEFAULT##');
+ $this->grants =
$this->acl2->get_grants($this->currentapp,'.project');
+
$this->fm_session->appsession('grants_project',$this->currentapp,$this->grants);
+ }
+ }
+
+ function next_id()
+ {
+ $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT
value from fm_idgenerator where name = 'workorder'");
+
+ $id = $dbresult->fields['value']+1;
+ return $id;
+ }
+
+ function select_category_workorder_list()
+ {
+
+ $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT id,
descr FROM fm_workorder_category ORDER BY descr ");
+
+ $i = 0;
+ while (!$dbresult->EOF)
+ {
+ $categories[$i]['id']
= $dbresult->fields['id'];
+ $categories[$i]['name']
= stripslashes($dbresult->fields['descr']);
+ $i++;
+ $dbresult->MoveNext();
+ }
+ return $categories;
+ }
+
+ function read_single_project_category($id='')
+ {
+ $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT
descr FROM fm_workorder_category where id='$id' ");
+
+ return $dbresult->fields['descr'];
+ }
+
+ function get_b_account_name($id='')
+ {
+ $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT
descr FROM fm_b_account where id='$id' ");
+
+ return $dbresult->fields['descr'];
+ }
+
+ function select_status_list()
+ {
+ $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT id,
descr FROM fm_workorder_status ORDER BY id ");
+
+ $i = 0;
+ while (!$dbresult->EOF)
+ {
+ $status_entries[$i]['id']
= $dbresult->fields['id'];
+ $status_entries[$i]['name']
= stripslashes($dbresult->fields['descr']);
+ $i++;
+ $dbresult->MoveNext();
+ }
+ return $status_entries;
+ }
+
+ function select_branch_list()
+ {
+ $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT id,
descr FROM fm_branch ORDER BY id ");
+
+ $i = 0;
+ while (!$dbresult->EOF)
+ {
+ $branch_entries[$i]['id']
= $dbresult->fields['id'];
+ $branch_entries[$i]['name']
= stripslashes($dbresult->fields['descr']);
+ $i++;
+ $dbresult->MoveNext();
+ }
+ return $branch_entries;
+ }
+
+ function select_key_location_list()
+ {
+ $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT id,
descr FROM fm_key_loc ORDER BY descr ");
+
+ $i = 0;
+ while (!$dbresult->EOF)
+ {
+ $key_location_entries[$i]['id']
= $dbresult->fields['id'];
+ $key_location_entries[$i]['name']
= stripslashes($dbresult->fields['descr']);
+ $i++;
+ $dbresult->MoveNext();
+ }
+ return $key_location_entries;
+ }
+
+ function read($data)
+ {
+
+ if(is_array($data))
+ {
+ if ($data['start'])
+ {
+ $start=$data['start'];
+ }
+ else
+ {
+ $start=0;
+ }
+ $filter =
$data['filter']?$data['filter']:$this->account;
+ $query =
(isset($data['query'])?$data['query']:'');
+ $sort =
(isset($data['sort'])?$data['sort']:'DESC');
+ $order =
(isset($data['order'])?$data['order']:'');
+ $cat_id =
(isset($data['cat_id'])?$data['cat_id']:0);
+ $status_id =
(isset($data['status_id'])?$data['status_id']:0);
+ $search_vendor =
(isset($data['search_vendor'])?$data['search_vendor']:'');
+ $start_date =
(isset($data['start_date'])?$data['start_date']:'');
+ $end_date =
(isset($data['end_date'])?$data['end_date']:'');
+ $allrows =
(isset($data['allrows'])?$data['allrows']:'');
+ }
+
+//html_print_r($data);
+ $sql =
$this->bocommon->fm_cache('sql_workorder'.!!$search_vendor);
+
+ if(!$sql)
+ {
+ $entity_table = 'fm_project';
+
+ $cols .= $entity_table . '.location_code';
+ $cols_return[] = 'location_code';
+
+ $cols .= ",$entity_table.id as project_id";
+ $cols_return[] =
'project_id';
+ $uicols['input_type'][] = 'text';
+ $uicols['name'][] =
'project_id';
+ $uicols['descr'][] =
lang('Project');
+ $uicols['statustext'][] = lang('Project
ID');
+
+ $cols .= ",fm_workorder.id as workorder_id";
+ $cols_return[] =
'workorder_id';
+ $uicols['input_type'][] = 'text';
+ $uicols['name'][] =
'workorder_id';
+ $uicols['descr'][] =
lang('Workorder');
+ $uicols['statustext'][] =
lang('Workorder ID');
+
+ $cols .= ",fm_workorder.title as title";
+ $cols_return[] =
'title';
+ $uicols['input_type'][] = 'text';
+ $uicols['name'][] =
'title';
+ $uicols['descr'][] =
lang('Title');
+ $uicols['statustext'][] =
lang('Workorder title');
+
+ $cols .= ",fm_workorder.status as status";
+ $cols_return[] =
'status';
+ $uicols['input_type'][] = 'text';
+ $uicols['name'][] =
'status';
+ $uicols['descr'][] =
lang('Status');
+ $uicols['statustext'][] =
lang('Workorder status');
+
+ $cols .= ",fm_workorder.entry_date as
entry_date";
+ $cols_return[] =
'entry_date';
+ $uicols['input_type'][] = 'text';
+ $uicols['name'][] =
'entry_date';
+ $uicols['descr'][] =
lang('Entry date');
+ $uicols['statustext'][] =
lang('Workorder entry date');
+
+ $cols .= ",phpgw_accounts.account_lid as
user_lid";
+ $cols_return[] =
'user_lid';
+ $uicols['input_type'][] = 'text';
+ $uicols['name'][] =
'user_lid';
+ $uicols['descr'][] =
lang('User');
+ $uicols['statustext'][] =
lang('Workorder User');
+
+ $cols .= ',vendor_id';
+ $cols_return[] = 'vendor_id';
+ $uicols['input_type'][] = 'text';
+ $uicols['name'][] =
'vendor_id';
+ $uicols['descr'][] =
lang('Vendor ID');
+
+ $cols .= ",fm_project.user_id as project_owner";
+
+ $joinmethod .= " $this->join fm_workorder ON
($entity_table.id = fm_workorder.project_id) $this->join phpgw_accounts ON
(fm_workorder.user_id = phpgw_accounts.account_id))";
+ $paranthesis .='(';
+
+// if($search_vendor)
+ {
+ $cols .= ',phpgw_addressbook.org_name';
+ $cols_return[] = 'org_name';
+ $uicols['input_type'][] =
'hidden';
+ $uicols['name'][]
= 'vendor_id';
+ $uicols['descr'][]
= lang('Vendor name');
+
+ $joinmethod .= " $this->left_join
phpgw_addressbook ON (fm_workorder.vendor_id = phpgw_addressbook.id))";
+ $paranthesis .='(';
+ }
+
+ $sql =
$this->bocommon->generate_sql(array('entity_table'=>$entity_table,'cols'=>$cols,'cols_return'=>$cols_return,
+
'uicols'=>$uicols,'joinmethod'=>$joinmethod,'paranthesis'=>$paranthesis,'query'=>$query));
+
+
+
$this->bocommon->fm_cache('sql_workorder'.!!$search_vendor,$sql);
+
+ $this->uicols =
$this->bocommon->uicols;
+ $cols_return =
$this->bocommon->cols_return;
+ $type_id =
$this->bocommon->type_id;
+// $this->cols_extra =
$this->bocommon->cols_extra;
+
+
$this->bocommon->fm_cache('uicols_workorder'.!!$search_vendor,$this->uicols);
+
$this->bocommon->fm_cache('cols_return_workorder'.!!$search_vendor,$cols_return);
+
$this->bocommon->fm_cache('type_id_workorder'.!!$search_vendor,$type_id);
+//
$this->bocommon->fm_cache('cols_extra_workorder'.!!$search_vendor,$this->cols_extra);
+
+ }
+ else
+ {
+ $this->uicols =
$this->bocommon->fm_cache('uicols_workorder'.!!$search_vendor);
+ $cols_return =
$this->bocommon->fm_cache('cols_return_workorder'.!!$search_vendor);
+ $type_id =
$this->bocommon->fm_cache('type_id_workorder'.!!$search_vendor);
+// $this->cols_extra =
$this->bocommon->fm_cache('cols_extra_workorder'.!!$search_vendor);
+ }
+
+ if ($order)
+ {
+ $ordermethod = " order by $order $sort";
+ }
+ else
+ {
+ $ordermethod = ' order by fm_workorder.id DESC';
+ }
+
+ $where= 'WHERE';
+
+ if ($cat_id > 0)
+ {
+ $filtermethod .= " $where
fm_project.category=$cat_id ";
+ $where= 'AND';
+ }
+
+ if ($status_id)
+ {
+ $filtermethod .= " $where
fm_workorder.status='$status_id' ";
+ $where= 'AND';
+ }
+
+ if ($filter=='all')
+ {
+ if (is_array($this->grants))
+ {
+ $grants = $this->grants;
+ while (list($user) = each($grants))
+ {
+ $public_user_list[] = $user;
+ }
+ reset($public_user_list);
+ $filtermethod .= " $where
(fm_project.access='public' AND fm_project.user_id IN(" .
implode(',',$public_user_list) . "))";
+ $where= 'AND';
+ }
+ }
+ else
+ {
+ $filtermethod .= " $where
fm_workorder.user_id=$filter ";
+ $where= 'AND';
+ }
+
+ if ($start_date)
+ {
+ $filtermethod .= " $where
fm_workorder.start_date >= $start_date AND fm_workorder.start_date <= $end_date
";
+ $where= 'AND';
+ }
+
+ if($query)
+ {
+ if(stristr($query, '.'))
+ {
+ $query=explode(".",$query);
+ $querymethod = " $where
(fm_project.loc1='" . $query[0] . "' AND fm_project.loc".$type_id."='" .
$query[1] . "')";
+ }
+ else
+ {
+ $query = ereg_replace("'",'',$query);
+ $query = ereg_replace('"','',$query);
+
+ $querymethod = " $where
(fm_workorder.title LIKE '%$query%' or fm_workorder.descr LIKE '%$query%' or
fm_project.address LIKE '%$query%' or fm_project.location_code LIKE '%$query%'
or fm_workorder.id LIKE '%$query%')";
+ }
+ $where= 'AND';
+
+ }
+
+ if($search_vendor)
+ {
+ if((int)$search_vendor>0)
+ {
+ $querymethod_vendor = " $where
fm_workorder.vendor_id=" .(int)$search_vendor ;
+ }
+ else
+ {
+ $querymethod_vendor = " $where
phpgw_addressbook.org_name LIKE '%$search_vendor%'";
+ }
+ }
+
+ $sql .= " $filtermethod $querymethod
$querymethod_vendor";
+//echo $sql;
+ $dbresult2 = $GLOBALS['phpgw']->db->Execute($sql);
+ $this->total_records = $dbresult2->_numOfRows;
+ $maxmatchs = 15;
+
+ if(!$allrows)
+ {
+ $dbresult =
$GLOBALS['phpgw']->db->SelectLimit($sql . $ordermethod,$maxmatchs,$start);
+
+ }
+ else
+ {
+ $dbresult = $GLOBALS['phpgw']->db->Execute($sql
. $ordermethod);
+ }
+
+ $count_cols_return=count($cols_return);
+ $j=0;
+ while (!$dbresult->EOF)
+ {
+ for ($i=0;$i<$count_cols_return;$i++)
+ {
+ $workorder_list[$j][$cols_return[$i]] =
$dbresult->fields[$cols_return[$i]];
+ $workorder_list[$j]['grants'] =
(int)$this->grants[$dbresult->fields['project_owner']];
+ }
+
+ $location_code=
$dbresult->fields['location_code'];
+ $location = split('-',$location_code);
+ $count_location =count($location);
+ for ($m=0;$m<$count_location;$m++)
+ {
+ $workorder_list[$j]['loc' . ($m+1)] =
$location[$m];
+
$workorder_list[$j]['query_location']['loc' . ($m+1)]=implode("-",
array_slice($location, 0, ($m+1)));
+ }
+
+ $j++;
+ $dbresult->MoveNext();
+ }
+
+ return $workorder_list;
+ }
+
+ function read_single($workorder_id)
+ {
+ $sql = "SELECT fm_workorder.*, fm_chapter.descr as
chapter ,fm_project.user_id from fm_workorder $this->join fm_project on
fm_workorder.project_id=fm_project.id $this->left_join fm_chapter on "
+ . " fm_workorder.chapter_id = fm_chapter.id
where fm_workorder.id=$workorder_id";
+
+ $dbresult = $GLOBALS['phpgw']->db->Execute($sql);
+
+ if (!$dbresult->EOF)
+ {
+ $workorder['workorder_id'] =
$dbresult->fields['id'];
+ $workorder['project_id'] =
$dbresult->fields['project_id'];
+ $workorder['title']
= $dbresult->fields['title'];
+ $workorder['name']
= $dbresult->fields['name'];
+ $workorder['key_fetch'] =
$dbresult->fields['key_fetch'];
+ $workorder['key_deliver'] =
$dbresult->fields['key_deliver'];
+ $workorder['key_responsible'] =
$dbresult->fields['key_responsible'];
+ $workorder['charge_tenant'] =
$dbresult->fields['charge_tenant'];
+ $workorder['descr']
= $dbresult->fields['descr'];
+ $workorder['status'] =
$dbresult->fields['status'];
+ $workorder['budget'] =
(int)$dbresult->fields['budget'];
+ $workorder['calculation']
=
($dbresult->fields['calculation']*(1+$dbresult->fields['addition']/100))+$dbresult->fields['rig_addition'];
+ $workorder['b_account_id']
= (int)$dbresult->fields['account_id'];
+ $workorder['addition_percentage'] =
(int)$dbresult->fields['addition'];
+ $workorder['addition_rs']
= (int)$dbresult->fields['rig_addition'];
+ $workorder['act_mtrl_cost']
= $dbresult->fields['act_mtrl_cost'];
+ $workorder['act_vendor_cost'] =
$dbresult->fields['act_vendor_cost'];
+ $workorder['user_id']
= $dbresult->fields['user_id'];
+ $workorder['vendor_id'] =
$dbresult->fields['vendor_id'];
+ $workorder['coordinator'] =
$dbresult->fields['coordinator'];
+ $workorder['access'] =
$dbresult->fields['access'];
+ $workorder['start_date'] =
$dbresult->fields['start_date'];
+ $workorder['end_date'] =
$dbresult->fields['end_date'];
+ $workorder['cat_id'] =
$dbresult->fields['category'];
+ $workorder['chapter_id'] =
$dbresult->fields['chapter_id'];
+ $workorder['chapter'] =
$dbresult->fields['chapter'];
+ $workorder['deviation'] =
$dbresult->fields['deviation'];
+ $workorder['grants']
= (int)$this->grants[$dbresult->fields['user_id']];
+ }
+
+//html_print_r($workorder);
+ return $workorder;
+ }
+
+
+ function project_budget_from_workorder($project_id = '')
+ {
+ $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT
budget, id as workorder_id from fm_workorder where project_id='$project_id'");
+ while (!$dbresult->EOF)
+ {
+ $budget[] = array(
+ 'workorder_id' =>
$dbresult->fields['workorder_id'],
+ 'budget' =>
sprintf("%01.2f",$dbresult->fields['budget'])
+ );
+ $dbresult->MoveNext();
+ }
+ return $budget;
+ }
+
+ function branch_p_list($project_id = '')
+ {
+
+ $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT
branch_id from fm_projectbranch WHERE project_id='$project_id' ");
+ while (!$dbresult->EOF)
+ {
+ $selected[] = array('branch_id' =>
$dbresult->fields['branch_id']);
+ $dbresult->MoveNext();
+ }
+
+ return $selected;
+ }
+
+ function increment_workorder_id()
+ {
+ $GLOBALS['phpgw']->db->Execute("UPDATE fm_idgenerator
set value = value + 1 where name = 'workorder'");
+ }
+
+ function add($workorder)
+ {
+ $historylog =
CreateObject($this->currentapp.'_historylog','workorder');
+ $workorder['descr'] =
$this->db->db_addslashes($workorder['descr']);
+ $workorder['title'] =
$this->db->db_addslashes($workorder['title']);
+
+ $values= array(
+ $workorder['workorder_id'],
+ $workorder['project_id'],
+ $workorder['title'],
+ 'public',
+ time(),
+ $workorder['start_date'],
+ $workorder['end_date'],
+ $workorder['status'],
+ $workorder['descr'],
+ $workorder['budget'],
+ $workorder['b_account_id'],
+ $workorder['addition_rs'],
+ $workorder['addition_percentage'],
+ $workorder['key_deliver'],
+ $workorder['key_fetch'],
+ $workorder['vendor_id'],
+ $workorder['charge_tenant'],
+ $this->account);
+
+ $values = $this->bocommon->validate_db_insert($values);
+
+ $GLOBALS['phpgw']->db->begintrans();
+
+ $GLOBALS['phpgw']->db->Execute("INSERT INTO
fm_workorder (id,project_id,title,access,entry_date,start_date,end_date,status,"
+ .
"descr,budget,account_id,rig_addition,addition,key_deliver,key_fetch,vendor_id,charge_tenant,user_id)
"
+ . "VALUES ( $values )");
+
+ if($GLOBALS['phpgw']->db->committrans())
+ {
+ $this->increment_workorder_id();
+
$historylog->add('SO',$workorder['workorder_id'],$workorder['status']);
+ $receipt['message'][] =
array('msg'=>lang('workorder %1 has been saved',$workorder['workorder_id']));
+ }
+ else
+ {
+ $receipt['error'][] = array('msg'=>lang('the
workorder has not been saved'));
+ }
+ return $receipt;
+ }
+
+ function edit($workorder)
+ {
+ $historylog =
CreateObject($this->currentapp.'_historylog','workorder');
+ $workorder['descr'] =
$this->db->db_addslashes($workorder['descr']);
+ $workorder['title'] =
$this->db->db_addslashes($workorder['title']);
+//html_print_r($workorder);
+
+ $value_set=array(
+ 'title' => $workorder['title'],
+ 'status' => $workorder['status'],
+ 'start_date' => $workorder['start_date'],
+ 'end_date' =>
$workorder['end_date'],
+ 'descr' => $workorder['descr'],
+ 'budget' =>
(int)$workorder['budget'],
+ 'key_deliver' => $workorder['key_deliver'],
+ 'key_fetch' =>
$workorder['key_fetch'],
+ 'account_id' => $workorder['b_account_id'],
+ 'rig_addition' => $workorder['addition_rs'],
+ 'addition' =>
$workorder['addition_percentage'],
+ 'charge_tenant' => $workorder['charge_tenant'],
+ 'vendor_id' =>
$workorder['vendor_id']
+ );
+
+ $value_set =
$this->bocommon->validate_db_update($value_set);
+
+ $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT
status,budget FROM fm_workorder where id='" .$workorder['workorder_id']."'");
+
+
+ $old_status = $dbresult->fields['status'];
+ $old_budget = $dbresult->fields['budget'];
+
+ $GLOBALS['phpgw']->db->begintrans();
+
+ $GLOBALS['phpgw']->db->Execute("UPDATE fm_workorder set
$value_set WHERE id=" . $workorder['workorder_id'] );
+
+ if($GLOBALS['phpgw']->db->committrans())
+ {
+ if ($old_status != $workorder['status'])
+ {
+
$historylog->add('S',$workorder['workorder_id'],$workorder['status']);
+ }
+ if ($old_budget != $workorder['budget'])
+ {
+
$historylog->add('B',$workorder['workorder_id'],$workorder['budget']);
+ }
+
+ $receipt['message'][] =
array('msg'=>lang('workorder %1 has been edited',$workorder['workorder_id']));
+ }
+ else
+ {
+ $receipt['error'][] =
array('msg'=>lang('workorder %1 has not been
edited',$workorder['workorder_id']));
+ }
+
+ return $receipt;
+ }
+
+ function delete($workorder_id )
+ {
+ $GLOBALS['phpgw']->db->Execute("DELETE FROM
fm_workorder WHERE id='" . $workorder_id . "'");
+ $GLOBALS['phpgw']->db->Execute("DELETE FROM
fm_workorder_history WHERE history_record_id='" . $workorder_id . "'");
+ $GLOBALS['phpgw']->db->Execute("DELETE FROM fm_wo_hours
WHERE workorder_id='" . $workorder_id . "'");
+
+ }
+ }
+?>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Phpgroupware-cvs] property/class.soworkorder.php, 1.1.1.3,
nomail <=