[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Phpgroupware-cvs] property/inc/class.sodrawing.inc.php, 1.2
From: |
nomail |
Subject: |
[Phpgroupware-cvs] property/inc/class.sodrawing.inc.php, 1.2 |
Date: |
Wed, 2 Jun 2004 20:54:28 +0200 |
Update of /property/inc
Added Files:
Branch:
class.sodrawing.inc.php
date: 2004/06/02 18:54:28; author: sigurdne; state: Exp; lines: +427 -0
Log Message:
no message
=====================================================================
<?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 sodrawing
{
function sodrawing()
{
$this->currentapp =
$GLOBALS['phpgw_info']['flags']['currentapp'];
$this->db = $GLOBALS['phpgw']->db;
$this->db2 = $this->db;
$this->account =
$GLOBALS['phpgw_info']['user']['account_id'];
$this->bocommon =
CreateObject($this->currentapp.'.bocommon',True);
$this->historylog =
CreateObject($this->currentapp.'.historylog','drawing');
$this->vfs =
CreateObject('phpgwapi.vfs');
$this->rootdir = $this->vfs->basedir;
$this->fakebase = $this->vfs->fakebase;
$this->socommon =
CreateObject($this->currentapp.'.socommon');
$this->join = $this->socommon->join;
}
function select_category_list()
{
$this->db->query("SELECT id, descr FROM
fm_drawing_category ORDER BY descr ");
$i = 0;
while ($this->db->next_record())
{
$categories[$i]['id']
= $this->db->f('id');
$categories[$i]['name']
= stripslashes($this->db->f('descr'));
$i++;
}
return $categories;
}
function read_single_category($id='')
{
$this->db->query("SELECT descr FROM fm_drawing_category
where id='$id' ");
$this->db->next_record();
return $this->db->f('descr');
}
function select_status_list()
{
$this->db->query("SELECT id, descr FROM
fm_drawing_status ORDER BY id ");
$i = 0;
while ($this->db->next_record())
{
$status_entries[$i]['id']
= $this->db->f('id');
$status_entries[$i]['name']
= stripslashes($this->db->f('descr'));
$i++;
}
return $status_entries;
}
function select_branch_list()
{
$this->db->query("SELECT id, descr FROM fm_branch ORDER
BY id ");
$i = 0;
while ($this->db->next_record())
{
$branch_entries[$i]['id']
= $this->db->f('id');
$branch_entries[$i]['name']
= stripslashes($this->db->f('descr'));
$i++;
}
return $branch_entries;
}
function read($data)
{
if(is_array($data))
{
if ($data['start'])
{
$start=$data['start'];
}
else
{
$start=0;
}
$filter =
(isset($data['filter'])?$data['filter']:'');
$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);
}
$entity_table = 'fm_drawing';
$cols .= $entity_table . '.location_code';
$cols_return[] = 'location_code';
$cols .= ",$entity_table.id as drawing_id";
$cols_return[] = 'drawing_id';
$cols .= ",$entity_table.drawing_name";
$cols_return[] =
'drawing_name';
$uicols['input_type'][] = 'text';
$uicols['name'][] =
'drawing_name';
$uicols['descr'][] = lang('drawing
name');
$uicols['statustext'][] = lang('drawing name');
$cols .= ",fm_drawing_category.descr as category";
$cols_return[] = 'category';
$uicols['input_type'][] = 'text';
$uicols['name'][] = 'category';
$uicols['descr'][] =
lang('category');
$uicols['statustext'][] = lang('category');
$joinmethod .= " $this->join fm_drawing_category ON
($entity_table.category = fm_drawing_category.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));
if ($order)
{
$ordermethod = " order by fm_drawing.$order
$sort";
}
else
{
$ordermethod = ' order by
fm_drawing.location_code ASC';
}
$where= 'WHERE';
if ($cat_id > 0)
{
$filtermethod .= " $where
fm_drawing.category='$cat_id' ";
$where= 'AND';
}
if ($status_id)
{
$filtermethod .= " $where
fm_drawing.status='$status_id' ";
$where= 'AND';
}
if ($filter)
{
$filtermethod .= " $where
fm_drawing.coordinator='$filter' ";
$where= 'AND';
}
if($query)
{
$query = ereg_replace("'",'',$query);
$query = ereg_replace('"','',$query);
$querymethod = " $where (fm_drawing.address
LIKE '%$query%' or fm_drawing.location_code LIKE '%$query%')";
}
$sql .= " $filtermethod $querymethod";
//echo $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->db2->query($sql,__LINE__,__FILE__);
$this->total_records = $this->db2->num_rows();
$this->db->limit_query($sql .
$ordermethod,$start,__LINE__,__FILE__);
$j=0;
while ($this->db->next_record())
{
for ($i=0;$i<count($cols_return);$i++)
{
$drawing_list[$j][$cols_return[$i]] =
$this->db->f($cols_return[$i]);
}
$location_code= $this->db->f('location_code');
$location = split('-',$location_code);
for ($m=0;$m<count($location);$m++)
{
$drawing_list[$j]['loc' . ($m+1)] =
$location[$m];
$drawing_list[$j]['query_location']['loc' . ($m+1)]=implode("-",
array_slice($location, 0, ($m+1)));
}
$j++;
}
return $drawing_list;
}
function read_single($drawing_id)
{
$sql = "SELECT * from fm_drawing where
id='$drawing_id'";
$this->db->query($sql,__LINE__,__FILE__);
if ($this->db->next_record())
{
$drawing['drawing_id'] =
$this->db->f('id');
$drawing['title']
= $this->db->f('title');
$drawing['drawing_name'] =
$this->db->f('drawing_name');
$drawing['location_code'] =
$this->db->f('location_code');
$drawing['branch_id'] =
$this->db->f('branch_id');
$drawing['version']
= $this->db->f('version');
$drawing['vendor_id'] =
$this->db->f('vendor_id');
$drawing['floor_id'] =
$this->db->f('floor_id');
$drawing['charge_tenant'] =
$this->db->f('charge_tenant');
$drawing['descr']
= $this->db->f('descr');
$drawing['status']
= $this->db->f('status');
$drawing['tenant_id'] =
$this->db->f('tenant_id');
$drawing['user_id']
= $this->db->f('user_id');
$drawing['coordinator'] =
$this->db->f('coordinator');
$drawing['access']
= $this->db->f('access');
$drawing['drawing_date'] =
$this->db->f('drawing_date');
$drawing['cat_id']
= $this->db->f('category');
$drawing['p_num']
= $this->db->f('p_num');
$drawing['p_entity_id'] =
$this->db->f('p_entity_id');
$drawing['p_cat_id'] =
$this->db->f('p_cat_id');
}
//_debug_array($drawing);
return $drawing;
}
function add($drawing)
{
while (is_array($drawing['location']) &&
list($input_name,$value) = each($drawing['location']))
{
if($value)
{
$cols[] = $input_name;
$vals[] = $value;
}
}
while (is_array($drawing['extra']) &&
list($input_name,$value) = each($drawing['extra']))
{
if($value)
{
$cols[] = $input_name;
$vals[] = $value;
}
}
if($cols)
{
$cols = "," . implode(",", $cols);
$vals = ",'" . implode("','", $vals) . "'";
}
if($drawing['street_name'])
{
$address[]= $drawing['street_name'];
$address[]= $drawing['street_number'];
$address = implode(" ", $address);
}
if(!$address)
{
$address = $drawing['location_name'];
}
$drawing['descr'] =
$this->db->db_addslashes($drawing['descr']);
$drawing['name'] =
$this->db->db_addslashes($drawing['name']);
$drawing['title'] =
$this->db->db_addslashes($drawing['title']);
//_debug_array($drawing);
$this->db->query("INSERT INTO fm_drawing
(drawing_name,title,access,category,entry_date,drawing_date,version,coordinator,status,"
.
"descr,location_code,floor_id,address,branch_id,vendor_id,user_id $cols) "
. "VALUES ('"
. $drawing['drawing_name']. "','"
. $drawing['title']. "','"
. "public','"
. $drawing['cat_id']. "','"
. time() . "','"
. $drawing['drawing_date']. "','"
. $drawing['version']. "','"
. $drawing['coordinator']. "','"
. $drawing['status']. "','"
. $drawing['descr']. "','"
. $drawing['location_code']. "','"
. $drawing['floor_id'] . "','"
. $address . "','"
. $drawing['branch_id']. "','"
. $drawing['vendor_id']. "','"
. $this->account. "' $vals)",__LINE__,__FILE__);
$receipt['drawing_id'] =
$this->db->get_last_insert_id('fm_drawing','id');
$this->historylog->add('SO',$receipt['drawing_id'],$drawing['status']);
$this->historylog->add('TO',$receipt['drawing_id'],$drawing['cat_id']);
$this->historylog->add('CO',$receipt['drawing_id'],$drawing['coordinator']);
$receipt['message'][] = array('msg'=>lang('drawing %1
has been saved',"'".$drawing['drawing_name']."'"));
return $receipt;
}
function edit($drawing)
{
while (is_array($drawing['location']) &&
list($input_name,$value) = each($drawing['location']))
{
$vals[] = "$input_name = '$value'";
}
while (is_array($drawing['extra']) &&
list($input_name,$value) = each($drawing['extra']))
{
$vals[] = "$input_name = '$value'";
}
if($vals)
{
$vals = "," . implode(",",$vals);
}
if($drawing['street_name'])
{
$address[]= $drawing['street_name'];
$address[]= $drawing['street_number'];
$address = implode(" ", $address);
}
if(!$address)
{
$address = $drawing['location_name'];
}
$this->db->query("SELECT status,category,coordinator
FROM fm_drawing where id='" .$drawing['drawing_id']."'",__LINE__,__FILE__);
$this->db->next_record();
$old_status = $this->db->f('status');
$old_categroy = $this->db->f('category');
$old_coordinator = $this->db->f('coordinator');
if ($old_status != $drawing['status'])
{
$this->historylog->add('S',$drawing['drawing_id'],$drawing['status']);
}
if ($old_categroy != $drawing['cat_id'])
{
$this->historylog->add('T',$drawing['drawing_id'],$drawing['cat_id']);
}
if ((int)$old_coordinator !=
(int)$drawing['coordinator'])
{
$this->historylog->add('C',$drawing['drawing_id'],$drawing['coordinator']);
}
if($drawing['drawing_name_orig'] &&
!$drawing['drawing_name'] )
{
$drawing['drawing_name'] =
$drawing['drawing_name_orig'];
}
$drawing['descr'] =
$this->db->db_addslashes($drawing['descr']);
$drawing['name'] =
$this->db->db_addslashes($drawing['name']);
$drawing['title'] =
$this->db->db_addslashes($drawing['title']);
//_debug_array($drawing);
$this->db->query("UPDATE fm_drawing set
drawing_name ='" . $drawing['drawing_name']
. "',
title ='" .
$drawing['title'] . "',
branch_id ='" .
$drawing['branch_id'] . "',
status ='" .
$drawing['status'] . "',
category ='" .
$drawing['cat_id'] . "',
drawing_date ='" . $drawing['drawing_date']
. "',
coordinator ='" .
$drawing['coordinator'] . "',
descr ='" . $drawing['descr']
. "',
version ='" .
$drawing['version'] . "',
location_code ='" . $drawing['location_code']
. "',
floor_id ='" .
$drawing['floor_id'] . "',
vendor_id ='" .
$drawing['vendor_id'] . "',
address ='" . $address
. "' $vals WHERE id= '" .
$drawing['drawing_id'] ."'",__LINE__,__FILE__);
$receipt['drawing_id'] = $drawing['drawing_id'];
$receipt['message'][] = array('msg'=>lang('drawing %1
has been edited',"'".$drawing['drawing_name']."'"));
return $receipt;
}
function delete($drawing_id )
{
$this->db->query("SELECT drawing_name FROM fm_drawing
where id='$drawing_id'",__LINE__,__FILE__);
$this->db->next_record();
$drawing_name = $this->db->f('drawing_name');
//echo $this->fakebase. SEP . 'drawing'. SEP . $drawing_name;
if($this->vfs->file_exists(array(
'string' => $this->fakebase. SEP .
'drawing'. SEP . $drawing_name,
'relatives' => Array(RELATIVE_NONE)
)))
{
$this->vfs->override_acl = 1;
if(!$this->vfs->rm (array(
'string' => $this->fakebase. SEP .
'drawing'. SEP . $drawing_name,
'relatives' => array(
RELATIVE_NONE
)
)))
{
$receipt['error'][]=array('msg'=>lang('failed to delete file') . ' :'.
$this->fakebase. SEP . 'drawing'. SEP . $drawing_name);
}
else
{
$receipt['message'][]=array('msg'=>lang('file deleted') . ' :'.
$this->fakebase. SEP . 'drawing'. SEP . $drawing_name);
}
$this->vfs->override_acl = 0;
}
$this->db->query("DELETE FROM fm_drawing WHERE
id='$drawing_id'",__LINE__,__FILE__);
$this->db->query("DELETE FROM fm_drawing_history WHERE
history_record_id='$drawing_id'",__LINE__,__FILE__);
}
}
?>