phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] property/class.sowo_hour.php, 1.1.1.3


From: nomail
Subject: [Phpgroupware-cvs] property/class.sowo_hour.php, 1.1.1.3
Date: Fri, 21 May 2004 16:00:14 -0000

Update of /property
Modified Files:
        Branch: 
          class.sowo_hour.php

date: 2004/04/23 21:26:33;  author: sigurdne;  state: Exp;  lines: +703 -703

Log Message:
no message
=====================================================================
Index: property/class.sowo_hour.php
diff -u property/class.sowo_hour.php:1.1.1.2 
property/class.sowo_hour.php:1.1.1.3
--- property/class.sowo_hour.php:1.1.1.2        Fri Apr 23 20:26:09 2004
+++ property/class.sowo_hour.php        Fri Apr 23 21:26:33 2004
@@ -1,703 +1,703 @@
-<?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_sowo_hour
-       {
-
-               function property_sowo_hour()
-               {
-                       $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->join                     = $this->bocommon->join;
-               }
-
-               function get_chapter_list()
-               {
-                       $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT id, 
descr FROM fm_chapter ORDER BY id ");
-
-                       $i = 0;
-                       while (!$dbresult->EOF)
-                       {
-                               $chapter_entries[$i]['id']                      
        = $dbresult->fields['id'];
-                               $chapter_entries[$i]['name']                    
        = stripslashes($dbresult->fields['descr']);
-                               $i++;
-                               $dbresult->MoveNext();
-                       }
-                       return $chapter_entries;
-               }
-
-               function get_grouping_list($workorder_id='')
-               {
-                       $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT 
grouping_id, grouping_descr FROM fm_wo_hours where workorder_id='$workorder_id' 
and grouping_id >0 group by grouping_id, grouping_descr");
-
-                       $i = 0;
-                       while (!$dbresult->EOF)
-                       {
-                               $grouping_entries[$i]['id']                     
        = $dbresult->fields['grouping_id'];
-                               $grouping_entries[$i]['name']                   
        = stripslashes($dbresult->fields['grouping_descr']);
-                               $i++;
-                               $dbresult->MoveNext();
-                       }
-                       return $grouping_entries;
-               }
-
-               function get_building_part_list()
-               {
-                       $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT id, 
descr FROM fm_building_part ORDER BY id ");
-
-                       $i = 0;
-                       while (!$dbresult->EOF)
-                       {
-                               $building_part_entries[$i]['id']                
                = $dbresult->fields['id'];
-                               $building_part_entries[$i]['name']              
                = stripslashes($dbresult->fields['descr']);
-                               $i++;
-                               $dbresult->MoveNext();
-                       }
-                       return $building_part_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 read($data)
-               {
-                       if(is_array($data))
-                       {
-                               $workorder_id = 
(isset($data['workorder_id'])?$data['workorder_id']:0);
-                       }
-
-
-                       $ordermethod = ' order by grouping_id, record , id asc 
';
-
-                       $sql = "SELECT *  FROM fm_wo_hours WHERE 
workorder_id='$workorder_id' ";
-
-                       $dbresult = $GLOBALS['phpgw']->db->Execute($sql . 
$ordermethod);
-                       $this->total_records = $dbresult->_numOfRows;
-
-                       while (!$dbresult->EOF)
-                       {
-                               $hour_list[] = array
-                               (
-                                       'hour_id'                       => 
$dbresult->fields['id'],
-                                       'activity_num'          => 
$dbresult->fields['activity_num'],
-                                       'hours_descr'           => 
stripslashes($dbresult->fields['hours_descr']),
-                                       'owner'                         => 
$dbresult->fields['owner'],
-                                       'quantity'                      => 
$dbresult->fields['quantity'],
-                                       'grouping_id'           => 
$dbresult->fields['grouping_id'],
-                                       'grouping_descr'        => 
$dbresult->fields['grouping_descr'],
-                                       'ns3420_id'                     => 
$dbresult->fields['ns3420_id'],
-                                       'tolerance'                     => 
$dbresult->fields['tolerance'],
-                                       'activity_id'           => 
$dbresult->fields['activity_id'],
-                                       'unit'                          => 
$dbresult->fields['unit'],
-                                       'record'                        => 
$dbresult->fields['record'],
-                                       'cost'                          => 
$dbresult->fields['cost'],
-                                       'billperae'                     => 
$dbresult->fields['billperae'],
-                                       'remark'                        => 
$dbresult->fields['remark'],
-                                       'building_part'         => 
$dbresult->fields['building_part'],
-                                       'dim_d'                         => 
$dbresult->fields['dim_d']
-                                       );
-                               $dbresult->MoveNext();
-                       }
-
-                       for ($i=0; $i<count($hour_list); $i++)
-                       {
-                               $sql = "SELECT sum(amount) as deviation, 
count(amount) as count_deviation FROM fm_wo_h_deviation WHERE 
workorder_id=$workorder_id and hour_id=". $hour_list[$i]['hour_id'];
-                               $dbresult = 
$GLOBALS['phpgw']->db->Execute($sql);
-
-                               
$hour_list[$i]['deviation']=$dbresult->fields['deviation'];
-                               
$hour_list[$i]['count_deviation']=$dbresult->fields['count_deviation'];
-                       }
-
-                       return $hour_list;
-               }
-
-
-               function read_deviation($data)
-               {
-                       if(is_array($data))
-                       {
-                               $workorder_id = 
(isset($data['workorder_id'])?$data['workorder_id']:0);
-                               $hour_id = 
(isset($data['hour_id'])?$data['hour_id']:0);
-                       }
-
-                       $ordermethod = ' order by id asc';
-
-                       $sql = "SELECT *  FROM fm_wo_h_deviation WHERE 
workorder_id=$workorder_id AND hour_id=$hour_id ";
-
-
-                       $dbresult = $GLOBALS['phpgw']->db->Execute($sql . 
$ordermethod);
-                       $this->total_records = $dbresult->_numOfRows;
-
-                       while (!$dbresult->EOF)
-                       {
-                               $deviation[] = array
-                               (
-                                       'entry_date'            => 
$dbresult->fields['entry_date'],
-                                       'workorder_id'          => 
$workorder_id,
-                                       'hour_id'                       => 
$hour_id,
-                                       'id'                            => 
$dbresult->fields['id'],
-                                       'amount'                        => 
$dbresult->fields['amount'],
-                                       'descr'                         => 
stripslashes($dbresult->fields['descr'])
-                                       );
-                               $dbresult->MoveNext();
-                       }
-//html_print_r($deviation);
-                       return $deviation;
-
-
-               }
-
-
-               function read_single_deviation($data)
-               {
-                       if(is_array($data))
-                       {
-                               $workorder_id = 
(isset($data['workorder_id'])?$data['workorder_id']:0);
-                               $hour_id = 
(isset($data['hour_id'])?$data['hour_id']:0);
-                               $id = (isset($data['id'])?$data['id']:0);
-                       }
-
-                       $sql = "SELECT *  FROM fm_wo_h_deviation WHERE 
workorder_id=$workorder_id AND hour_id=$hour_id AND id = $id";
-                       $dbresult = $GLOBALS['phpgw']->db->Execute($sql);
-
-                       $deviation = array
-                       (
-                               'entry_date'            => 
$dbresult->fields['entry_date'],
-                               'workorder_id'          => $workorder_id,
-                               'hour_id'                       => $hour_id,
-                               'id'                            => 
$dbresult->fields['id'],
-                               'amount'                        => 
$dbresult->fields['amount'],
-                               'descr'                         => 
stripslashes($dbresult->fields['descr'])
-                       );
-                       return $deviation;
-               }
-
-               function add_deviation($values)
-               {
-                       $sql = "SELECT max(id) as current_id FROM 
fm_wo_h_deviation WHERE  workorder_id=" . $values['workorder_id'] . " AND 
hour_id=" . $values['hour_id'];
-                       $dbresult = $GLOBALS['phpgw']->db->Execute($sql);
-
-                       $id=$dbresult->fields['current_id']+1;
-
-                       $values['descr'] = 
$this->db->db_addslashes($values['descr']);
-
-                       $values_insert= array(
-                               $values['workorder_id'],
-                               $values['hour_id'],
-                               $id,
-                               $values['amount'],
-                               $values['descr'],
-                               time()
-                               );
-
-                       $values_insert  = 
$this->bocommon->validate_db_insert($values_insert);
-
-                       $GLOBALS['phpgw']->db->Execute("INSERT INTO 
fm_wo_h_deviation (workorder_id,hour_id,id,amount,descr,entry_date) VALUES 
($values_insert)");
-
-                       $receipt['id']= $id;
-
-                       $receipt['message'][] = array('msg'=> lang('deviation 
has been added'));
-                       return $receipt;
-               }
-
-               function edit_deviation($values)
-               {
-                       $values['descr'] = 
$this->db->db_addslashes($values['descr']);
-
-                       $value_set=array(
-                               'amount'                        => 
$values['amount'],
-                               'descr'                 => 
$this->db->db_addslashes($values['descr'])
-                               );
-
-                       $value_set      = 
$this->bocommon->validate_db_update($value_set);
-
-                       $GLOBALS['phpgw']->db->Execute("UPDATE 
fm_wo_h_deviation set $value_set WHERE workorder_id=" . $values['workorder_id'] 
. " AND hour_id=" . $values['hour_id'] . " AND id=" . $values['id']);
-
-                       $receipt['message'][] = array('msg'=> lang('deviation 
has been edited'));
-
-                       return $receipt;
-               }
-
-               function update_deviation($data)
-               {
-                       if(is_array($data))
-                       {
-                               $id = 
(isset($data['workorder_id'])?$data['workorder_id']:0);
-                               $deviation = 
(isset($data['sum_deviation'])?$data['sum_deviation']:0);
-                       }
-                       $GLOBALS['phpgw']->db->Execute("UPDATE fm_workorder set 
deviation = $deviation WHERE id=$id");
-                       return $receipt;
-               }
-
-
-               function next_record($workorder_id)
-               {
-
-                       $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT  
max(record) as record FROM fm_wo_hours where workorder_id='$workorder_id'");
-
-                       $record = $dbresult->fields['record']+1;
-                       return $record;
-
-               }
-
-               function add_template($values,$workorder_id)
-               {
-
-                       $values['name'] = 
$this->db->db_addslashes($values['name']);
-                       $soworkorder    = 
CreateObject($this->currentapp.'_soworkorder');
-                       $workorder              = 
$soworkorder->read_single($workorder_id);
-//html_print_r($workorder);
-
-                       $GLOBALS['phpgw']->db->begintrans();
-
-                       $GLOBALS['phpgw']->db->Execute("INSERT into fm_template 
(owner,name,descr,chapter_id,entry_date) "
-                               . " values ('" .
-                                       $this->account . "','" .
-                                       $values['name'] . "','" .
-                                       $values['descr'] . "','" .
-                                       $workorder['chapter_id'] . "','" .
-                                       time() . "')");
-
-                       $template_id = 
$this->db->get_last_insert_id('fm_template','id');
-
-                       $hour = $this->read(array('workorder_id' => 
$workorder_id));
-
-                       $record = $this->next_record($hour[0]['workorder_id']);
-
-                       for ($i=0; $i<count($hour); $i++)
-                       {
-
-                               $values= array(
-                                       $hour[$i]['activity_id'],
-                                       $hour[$i]['activity_num'],
-                                       $this->account,
-                                       $hour[$i]['hours_descr'],
-                                       $hour[$i]['unit'],
-                                       $hour[$i]['cost'],
-                                       $hour[$i]['quantity'],
-                                       $hour[$i]['billperae'],
-                                       $hour[$i]['ns3420_id'],
-                                       $hour[$i]['dim_d'],
-                                       $hour[$i]['grouping_id'],
-                                       $hour[$i]['grouping_descr'],
-                                       $hour[$i]['remark'],
-                                       $hour[$i]['tolerance'],
-                                       $hour[$i]['building_part'],
-                                       $record,
-                                       $template_id );
-
-                               $values = 
$this->bocommon->validate_db_insert($values);
-
-                               $GLOBALS['phpgw']->db->Execute("INSERT into 
fm_template_hours (activity_id,activity_num,owner,hours_descr,unit,"
-                               . 
"cost,quantity,billperae,ns3420_id,dim_d,grouping_id,grouping_descr,remark,tolerance,building_part,record,template_id)
 "
-                               . " values ($values)");
-
-                               $record++;
-                       }
-
-                       $GLOBALS['phpgw']->db->committrans();
-
-                       $receipt['message'][] = array('msg'=>lang('template %1 
is added',$values['name']));
-                       return $receipt;
-               }
-
-
-               function add_hour($hour)
-               {
-
-                       $record = $this->next_record($hour[0]['workorder_id']);
-
-                       for ($i=0; $i<count($hour); $i++)
-                       {
-
-                               $values= array(
-                                       $hour[$i]['activity_id'],
-                                       $hour[$i]['activity_num'],
-                                       $this->account,
-                                       $hour[$i]['hours_descr'],
-                                       $hour[$i]['unit'],
-                                       $hour[$i]['cost'],
-                                       $hour[$i]['quantity'],
-                                       $hour[$i]['billperae'],
-                                       $hour[$i]['ns3420_id'],
-                                       $hour[$i]['dim_d'],
-                                       $record,
-                                       time(),
-                                       $hour[$i]['workorder_id']);
-
-                               $values = 
$this->bocommon->validate_db_insert($values);
-
-                               $GLOBALS['phpgw']->db->Execute("INSERT into 
fm_wo_hours 
(activity_id,activity_num,owner,hours_descr,unit,cost,quantity,billperae,ns3420_id,dim_d,record,entry_date,workorder_id)
 "
-                               . " values ($values)");
-
-                               $record++;
-                       }
-
-                       $receipt['message'][] = array('msg'=>lang('%1 entries 
is added!',count($hour)));
-
-                       $receipt['hour_id'] = 
$this->db->get_last_insert_id('fm_wo_hours','id');
-
-                       return $receipt;
-
-               }
-
-               function add_hour_from_template($hour,$workorder_id)
-               {
-//html_print_r($hour);
-
-                       $record = $this->next_record($workorder_id);
-
-                       $GLOBALS['phpgw']->db->Execute("UPDATE fm_workorder set
-                               chapter_id      ='" . $hour[0]['chapter_id'] . 
"' WHERE id= '$workorder_id'");
-
-
-                       for ($i=0; $i<count($hour); $i++)
-                       {
-
-                               if($hour[$i]['new_grouping'])
-                               {
-                                       $dbresult = 
$GLOBALS['phpgw']->db->Execute("SELECT grouping_id FROM fm_wo_hours where 
grouping_descr ='" .$hour[$i]['new_grouping'] . "' and workorder_id= 
'$workorder_id'");
-
-                                       if ( $dbresult->fields['grouping_id'])
-                                       {
-                                               $grouping_id    = 
$dbresult->fields['grouping_id'];
-                                       }
-                                       else
-                                       {
-                                               $dbresult = 
$GLOBALS['phpgw']->db->Execute("SELECT max(grouping_id) as grouping_id FROM 
fm_wo_hours where workorder_id= '$workorder_id'");
-
-                                               $grouping_id    = 
$dbresult->fields['grouping_id']+1;
-                                       }
-
-                                       $grouping_descr = 
$hour[$i]['new_grouping'];
-                               }
-
-                               $values= array(
-                                       $this->account,
-                                       $hour[$i]['activity_id'],
-                                       $hour[$i]['activity_num'],
-                                       $hour[$i]['hours_descr'],
-                                       $hour[$i]['unit'],
-                                       $hour[$i]['cost'],
-                                       $hour[$i]['quantity'],
-                                       $hour[$i]['billperae'],
-                                       $hour[$i]['ns3420_id'],
-                                       $hour[$i]['dim_d'],
-                                       $grouping_id,
-                                       $grouping_descr,
-                                       $record,
-                                       $hour[$i]['building_part_id'],
-                                       $hour[$i]['tolerance_id'],
-                                       $hour[$i]['remark'],
-                                       time(),
-                                       $workorder_id );
-
-                               $values = 
$this->bocommon->validate_db_insert($values);
-
-                               $GLOBALS['phpgw']->db->Execute("INSERT into 
fm_wo_hours 
(owner,activity_id,activity_num,hours_descr,unit,cost,quantity,billperae,ns3420_id,dim_d,"
-                               . " 
grouping_id,grouping_descr,record,building_part,tolerance,remark,entry_date,workorder_id)
 "
-                               . " values ($values     )");
-
-                               $record++;
-                       }
-
-                       $receipt['message'][] = array('msg'=>lang('the number 
of %1 hour is added!',$i));
-
-                       return $receipt;
-               }
-
-               function add_custom_hour($hour,$workorder_id)
-               {
-
-                       $hour['record'] = $this->next_record($workorder_id);
-
-                       if($hour['chapter_id'])
-                       {
-                               $GLOBALS['phpgw']->db->Execute("UPDATE 
fm_workorder set
-                               chapter_id      ='" . $hour['chapter_id'] . "' 
WHERE id= '$workorder_id'");
-                       }
-
-                       if($hour['grouping_id'])
-                       {
-                               $dbresult = 
$GLOBALS['phpgw']->db->Execute("SELECT grouping_descr , max(record) as record 
FROM fm_wo_hours where grouping_id='" .$hour['grouping_id'] . "' and 
workorder_id= '$workorder_id' GROUP by grouping_descr");
-
-                               $hour['grouping_descr'] = 
$dbresult->fields['grouping_descr'];
-//                             $hour['record'] = $dbresult->fields['record']+1;
-                       }
-
-                       if($hour['new_grouping'])
-                       {
-                               $dbresult = 
$GLOBALS['phpgw']->db->Execute("SELECT grouping_id FROM fm_wo_hours where 
grouping_descr ='" .$hour['new_grouping'] . "' and workorder_id= 
'$workorder_id'");
-
-                               if ( $dbresult->fields['grouping_id'])
-                               {
-                                       $hour['grouping_id']    = 
$dbresult->fields['grouping_id'];
-                               }
-                               else
-                               {
-                                       $dbresult = 
$GLOBALS['phpgw']->db->Execute("SELECT max(grouping_id) as grouping_id FROM 
fm_wo_hours where workorder_id= '$workorder_id'");
-
-                                       $hour['grouping_id']    = 
$dbresult->fields['grouping_id']+1;
-//                                     $hour['record'] = 1;
-                               }
-
-                               $hour['grouping_descr'] = $hour['new_grouping'];
-                       }
-
-                       $values= array(
-                                       $this->account,
-                                       $hour['descr'],
-                                       $hour['unit'],
-                                       $hour['cost'],
-                                       $hour['quantity'],
-                                       $hour['billperae'],
-                                       $hour['ns3420_id'],
-                                       $hour['dim_d'],
-                                       $hour['grouping_id'],
-                                       $hour['grouping_descr'],
-                                       $hour['record'],
-                                       $hour['building_part_id'],
-                                       $hour['tolerance_id'],
-                                       $hour['remark'],
-                                       time(),
-                                       $workorder_id
-                                       );
-
-                       $values = $this->bocommon->validate_db_insert($values);
-
-                       $GLOBALS['phpgw']->db->Execute("INSERT into fm_wo_hours 
(owner,hours_descr,unit,cost,quantity,billperae,ns3420_id,dim_d,"
-                               . " 
grouping_id,grouping_descr,record,building_part,tolerance,remark,entry_date,workorder_id)
 "
-                               . "VALUES ( $values )");
-
-                       $receipt['hour_id'] = 
$this->db->get_last_insert_id('fm_wo_hours','id');
-
-                       $receipt['message'][] = array('msg'=>lang('hour %1 is 
added!',$receipt['hour_id']));
-
-                       return $receipt;
-
-               }
-
-               function read_single_hour($hour_id)
-               {
-                       $sql = "SELECT * from fm_wo_hours where id='$hour_id'";
-
-                       $dbresult = $GLOBALS['phpgw']->db->Execute($sql);
-
-                       if (!$dbresult->EOF)
-                       {
-                               $hour['hour_id']                                
= $dbresult->fields['id'];
-                               $hour['record']                                 
= $dbresult->fields['record'];
-                               $hour['activity_id']                    = 
$dbresult->fields['activity_id'];
-                               $hour['activity_num']                   = 
$dbresult->fields['activity_num'];
-                               $hour['grouping_id']                    = 
$dbresult->fields['grouping_id'];
-                               $hour['hours_descr']                    = 
$dbresult->fields['hours_descr'];
-                               $hour['remark']                                 
= $dbresult->fields['remark'];
-                               $hour['billperae']                              
= $dbresult->fields['billperae'];
-                               $hour['unit']                                   
= $dbresult->fields['unit'];
-                               $hour['ns3420_id']                              
= $dbresult->fields['ns3420_id'];
-                               $hour['tolerance_id']                   = 
(int)$dbresult->fields['tolerance'];
-                               $hour['building_part_id']               = 
(int)$dbresult->fields['building_part'];
-                               $hour['quantity']                               
= $dbresult->fields['quantity'];
-                               $hour['cost']                                   
= $dbresult->fields['cost'];
-                               $hour['dim_d']                                  
= $dbresult->fields['dim_d'];
-                       }
-
-                       return $hour;
-               }
-
-               function edit($hour,$workorder_id)
-               {
-
-                       $hour['descr'] = 
$this->db->db_addslashes($hour['descr']);
-                       $hour['remark'] = 
$this->db->db_addslashes($hour['remark']);
-//html_print_r($hour);
-
-
-                       if($hour['chapter_id'])
-                       {
-                               $GLOBALS['phpgw']->db->Execute("UPDATE 
fm_workorder set
-                               chapter_id      ='" . $hour['chapter_id'] . "' 
WHERE id= '$workorder_id'");
-                       }
-
-                       if($hour['new_grouping'])
-                       {
-                               $dbresult = 
$GLOBALS['phpgw']->db->Execute("SELECT grouping_id FROM fm_wo_hours where 
grouping_descr ='" .$hour['new_grouping'] . "' and workorder_id= 
'$workorder_id'");
-
-                               if ( $dbresult->fields['grouping_id'])
-                               {
-                                       $hour['grouping_id']    = 
$dbresult->fields['grouping_id'];
-                               }
-                               else
-                               {
-
-                                       $GLOBALS['phpgw']->db->Execute("UPDATE 
fm_wo_hours set grouping_id = NULL WHERE id ='" .$hour['hour_id'] . "'");
-                                       $dbresult = 
$GLOBALS['phpgw']->db->Execute("SELECT count(grouping_id) as num_grouping FROM 
fm_wo_hours where workorder_id= '$workorder_id' and grouping_id >0 ");
-
-                                       if 
($dbresult->fields['num_grouping']==1)
-                                       {
-                                               $hour['grouping_id']=1;
-                                       }
-                                       else
-                                       {
-                                               $dbresult = 
$GLOBALS['phpgw']->db->Execute("SELECT max(grouping_id) as grouping_id FROM 
fm_wo_hours where workorder_id= '$workorder_id'");
-
-                                               $hour['grouping_id']    = 
$dbresult->fields['grouping_id']+1;
-                                       }
-                               }
-                               $hour['grouping_descr'] = $hour['new_grouping'];
-                       }
-                       else
-                       {
-                               $dbresult = 
$GLOBALS['phpgw']->db->Execute("SELECT grouping_id,grouping_descr FROM 
fm_wo_hours where id ='" .$hour['hour_id'] . "'");
-
-                               $old_grouping_id        = 
$dbresult->fields['grouping_id'];
-
-                               if ( $old_grouping_id == $hour['grouping_id'])
-                               {
-
-                                       $hour['grouping_descr'] = 
$dbresult->fields['grouping_descr'];
-                               }
-                               else
-                               {
-                                       $dbresult = 
$GLOBALS['phpgw']->db->Execute("SELECT grouping_descr , max(record) as record 
FROM fm_wo_hours where grouping_id='" .$hour['grouping_id'] . "' and 
workorder_id= '$workorder_id' GROUP by grouping_descr");
-
-                                       if($dbresult->fields['grouping_descr'])
-                                       {
-                                               $hour['grouping_descr'] = 
$dbresult->fields['grouping_descr'];
-                                       }
-                                       else
-                                       {
-                                               $hour['grouping_id']='';
-                                               $hour['grouping_descr']='';
-                                       }
-
-/*                                     if($old_record>1)
-                                       {
-                                               
$GLOBALS['phpgw']->db->Execute("UPDATE fm_wo_hours set
-                                                       record  = record - 1 
where grouping_id='" .$hour['grouping_id'] . "' and workorder_id= 
'$workorder_id' and record > $old_record ");
-
-                                       }
-
-*/
-                               }
-                       }
-
-                       $value_set=array(
-                               'hours_descr'           => $hour['descr'],
-                               'remark'                        => 
$hour['remark'],
-                               'billperae'                     => 
$hour['billperae'],
-                               'unit'                          => 
$hour['unit'],
-                               'quantity'                      => 
$hour['quantity'],
-                               'cost'                          => 
$hour['cost'],
-                               'ns3420_id'                     => 
$hour['ns3420_id'],
-                               'tolerance'                     => 
$hour['tolerance_id'],
-                               'building_part'         => 
$hour['building_part_id'],
-                               'dim_d'                         => 
$hour['dim_d'],
-                               'grouping_id'           => $hour['grouping_id'],
-                               'grouping_descr'        => 
$hour['grouping_descr']
-                               );
-
-                       $value_set      = 
$this->bocommon->validate_db_update($value_set);
-
-                       $GLOBALS['phpgw']->db->Execute("UPDATE fm_wo_hours set 
$value_set WHERE id= '" . $hour['hour_id'] ."'");
-
-                       $receipt['hour_id'] = $hour['hour_id'];
-                       $receipt['message'][] = array('msg'=>lang('hour %1 has 
been edited',$hour['hour_id']));
-                       return $receipt;
-
-               }
-
-               function update_email($to_email,$workorder_id)
-               {
-                       $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT 
vendor_id FROM fm_workorder where id ='$workorder_id'");
-
-                       $vendor_id      = $dbresult->fields['vendor_id'];
-
-                       $GLOBALS['phpgw']->db->Execute("UPDATE 
phpgw_addressbook set email ='$to_email' where  id= '$vendor_id'");
-               }
-
-               function get_extra_email($vendor_id)
-               {
-                       $vendor_id=(int)$vendor_id;
-                       $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT 
contact_value from phpgw_addressbook_extra where contact_id='$vendor_id' and 
contact_value like 'address@hidden'");
-                       while (!$dbresult->EOF)
-                       {
-                               $email_list[] = array('email' => 
$dbresult->fields['contact_value']);
-                               $dbresult->MoveNext();
-                       }
-                       return  $email_list;
-               }
-
-               function delete($hour_id,$workorder_id )
-               {
-                       $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT 
record FROM fm_wo_hours where id ='$hour_id'");
-
-                       $old_record     = $dbresult->fields['record'];
-
-                       $GLOBALS['phpgw']->db->begintrans();
-
-                       $GLOBALS['phpgw']->db->Execute("DELETE FROM fm_wo_hours 
WHERE id='" . $hour_id . "'");
-                       $GLOBALS['phpgw']->db->Execute("DELETE FROM 
fm_wo_h_deviation WHERE workorder_id=$workorder_id AND hour_id=$hour_id");
-                       if($old_record)
-                       {
-                               $GLOBALS['phpgw']->db->Execute("UPDATE 
fm_wo_hours set record   = record - 1 where  workorder_id= '$workorder_id' and 
record > $old_record ");
-                       }
-
-                       $GLOBALS['phpgw']->db->committrans();
-
-                       $receipt['message'][] = array('msg'=>lang('hour %1 has 
been deleted',$hour_id));
-                       return $receipt;
-
-               }
-
-               function delete_deviation($workorder_id,$hour_id,$id )
-               {
-                       $GLOBALS['phpgw']->db->Execute("DELETE FROM 
fm_wo_h_deviation WHERE workorder_id=$workorder_id AND hour_id=$hour_id AND 
id=$id");
-                       $receipt['message'][] = array('msg'=>lang('deviation %1 
has been deleted',$id));
-                       return $receipt;
-               }
-
-               function update_calculation($data)
-               {
-                       if(is_array($data))
-                       {
-                               $id = 
(isset($data['workorder_id'])?$data['workorder_id']:0);
-                               $calculation = 
(isset($data['calculation'])?$data['calculation']:0);
-                       }
-                       $GLOBALS['phpgw']->db->Execute("UPDATE fm_workorder set 
calculation = $calculation WHERE id=$id");
-                       return $receipt;
-               }
-       }
-?>
+<?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_sowo_hour
+       {
+
+               function property_sowo_hour()
+               {
+                       $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->join                     = $this->bocommon->join;
+               }
+
+               function get_chapter_list()
+               {
+                       $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT id, 
descr FROM fm_chapter ORDER BY id ");
+
+                       $i = 0;
+                       while (!$dbresult->EOF)
+                       {
+                               $chapter_entries[$i]['id']                      
        = $dbresult->fields['id'];
+                               $chapter_entries[$i]['name']                    
        = stripslashes($dbresult->fields['descr']);
+                               $i++;
+                               $dbresult->MoveNext();
+                       }
+                       return $chapter_entries;
+               }
+
+               function get_grouping_list($workorder_id='')
+               {
+                       $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT 
grouping_id, grouping_descr FROM fm_wo_hours where workorder_id='$workorder_id' 
and grouping_id >0 group by grouping_id, grouping_descr");
+
+                       $i = 0;
+                       while (!$dbresult->EOF)
+                       {
+                               $grouping_entries[$i]['id']                     
        = $dbresult->fields['grouping_id'];
+                               $grouping_entries[$i]['name']                   
        = stripslashes($dbresult->fields['grouping_descr']);
+                               $i++;
+                               $dbresult->MoveNext();
+                       }
+                       return $grouping_entries;
+               }
+
+               function get_building_part_list()
+               {
+                       $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT id, 
descr FROM fm_building_part ORDER BY id ");
+
+                       $i = 0;
+                       while (!$dbresult->EOF)
+                       {
+                               $building_part_entries[$i]['id']                
                = $dbresult->fields['id'];
+                               $building_part_entries[$i]['name']              
                = stripslashes($dbresult->fields['descr']);
+                               $i++;
+                               $dbresult->MoveNext();
+                       }
+                       return $building_part_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 read($data)
+               {
+                       if(is_array($data))
+                       {
+                               $workorder_id = 
(isset($data['workorder_id'])?$data['workorder_id']:0);
+                       }
+
+
+                       $ordermethod = ' order by grouping_id, record , id asc 
';
+
+                       $sql = "SELECT *  FROM fm_wo_hours WHERE 
workorder_id='$workorder_id' ";
+
+                       $dbresult = $GLOBALS['phpgw']->db->Execute($sql . 
$ordermethod);
+                       $this->total_records = $dbresult->_numOfRows;
+
+                       while (!$dbresult->EOF)
+                       {
+                               $hour_list[] = array
+                               (
+                                       'hour_id'                       => 
$dbresult->fields['id'],
+                                       'activity_num'          => 
$dbresult->fields['activity_num'],
+                                       'hours_descr'           => 
stripslashes($dbresult->fields['hours_descr']),
+                                       'owner'                         => 
$dbresult->fields['owner'],
+                                       'quantity'                      => 
$dbresult->fields['quantity'],
+                                       'grouping_id'           => 
$dbresult->fields['grouping_id'],
+                                       'grouping_descr'        => 
$dbresult->fields['grouping_descr'],
+                                       'ns3420_id'                     => 
$dbresult->fields['ns3420_id'],
+                                       'tolerance'                     => 
$dbresult->fields['tolerance'],
+                                       'activity_id'           => 
$dbresult->fields['activity_id'],
+                                       'unit'                          => 
$dbresult->fields['unit'],
+                                       'record'                        => 
$dbresult->fields['record'],
+                                       'cost'                          => 
$dbresult->fields['cost'],
+                                       'billperae'                     => 
$dbresult->fields['billperae'],
+                                       'remark'                        => 
$dbresult->fields['remark'],
+                                       'building_part'         => 
$dbresult->fields['building_part'],
+                                       'dim_d'                         => 
$dbresult->fields['dim_d']
+                                       );
+                               $dbresult->MoveNext();
+                       }
+
+                       for ($i=0; $i<count($hour_list); $i++)
+                       {
+                               $sql = "SELECT sum(amount) as deviation, 
count(amount) as count_deviation FROM fm_wo_h_deviation WHERE 
workorder_id=$workorder_id and hour_id=". $hour_list[$i]['hour_id'];
+                               $dbresult = 
$GLOBALS['phpgw']->db->Execute($sql);
+
+                               
$hour_list[$i]['deviation']=$dbresult->fields['deviation'];
+                               
$hour_list[$i]['count_deviation']=$dbresult->fields['count_deviation'];
+                       }
+
+                       return $hour_list;
+               }
+
+
+               function read_deviation($data)
+               {
+                       if(is_array($data))
+                       {
+                               $workorder_id = 
(isset($data['workorder_id'])?$data['workorder_id']:0);
+                               $hour_id = 
(isset($data['hour_id'])?$data['hour_id']:0);
+                       }
+
+                       $ordermethod = ' order by id asc';
+
+                       $sql = "SELECT *  FROM fm_wo_h_deviation WHERE 
workorder_id=$workorder_id AND hour_id=$hour_id ";
+
+
+                       $dbresult = $GLOBALS['phpgw']->db->Execute($sql . 
$ordermethod);
+                       $this->total_records = $dbresult->_numOfRows;
+
+                       while (!$dbresult->EOF)
+                       {
+                               $deviation[] = array
+                               (
+                                       'entry_date'            => 
$dbresult->fields['entry_date'],
+                                       'workorder_id'          => 
$workorder_id,
+                                       'hour_id'                       => 
$hour_id,
+                                       'id'                            => 
$dbresult->fields['id'],
+                                       'amount'                        => 
$dbresult->fields['amount'],
+                                       'descr'                         => 
stripslashes($dbresult->fields['descr'])
+                                       );
+                               $dbresult->MoveNext();
+                       }
+//html_print_r($deviation);
+                       return $deviation;
+
+
+               }
+
+
+               function read_single_deviation($data)
+               {
+                       if(is_array($data))
+                       {
+                               $workorder_id = 
(isset($data['workorder_id'])?$data['workorder_id']:0);
+                               $hour_id = 
(isset($data['hour_id'])?$data['hour_id']:0);
+                               $id = (isset($data['id'])?$data['id']:0);
+                       }
+
+                       $sql = "SELECT *  FROM fm_wo_h_deviation WHERE 
workorder_id=$workorder_id AND hour_id=$hour_id AND id = $id";
+                       $dbresult = $GLOBALS['phpgw']->db->Execute($sql);
+
+                       $deviation = array
+                       (
+                               'entry_date'            => 
$dbresult->fields['entry_date'],
+                               'workorder_id'          => $workorder_id,
+                               'hour_id'                       => $hour_id,
+                               'id'                            => 
$dbresult->fields['id'],
+                               'amount'                        => 
$dbresult->fields['amount'],
+                               'descr'                         => 
stripslashes($dbresult->fields['descr'])
+                       );
+                       return $deviation;
+               }
+
+               function add_deviation($values)
+               {
+                       $sql = "SELECT max(id) as current_id FROM 
fm_wo_h_deviation WHERE  workorder_id=" . $values['workorder_id'] . " AND 
hour_id=" . $values['hour_id'];
+                       $dbresult = $GLOBALS['phpgw']->db->Execute($sql);
+
+                       $id=$dbresult->fields['current_id']+1;
+
+                       $values['descr'] = 
$this->db->db_addslashes($values['descr']);
+
+                       $values_insert= array(
+                               $values['workorder_id'],
+                               $values['hour_id'],
+                               $id,
+                               $values['amount'],
+                               $values['descr'],
+                               time()
+                               );
+
+                       $values_insert  = 
$this->bocommon->validate_db_insert($values_insert);
+
+                       $GLOBALS['phpgw']->db->Execute("INSERT INTO 
fm_wo_h_deviation (workorder_id,hour_id,id,amount,descr,entry_date) VALUES 
($values_insert)");
+
+                       $receipt['id']= $id;
+
+                       $receipt['message'][] = array('msg'=> lang('deviation 
has been added'));
+                       return $receipt;
+               }
+
+               function edit_deviation($values)
+               {
+                       $values['descr'] = 
$this->db->db_addslashes($values['descr']);
+
+                       $value_set=array(
+                               'amount'                        => 
$values['amount'],
+                               'descr'                 => 
$this->db->db_addslashes($values['descr'])
+                               );
+
+                       $value_set      = 
$this->bocommon->validate_db_update($value_set);
+
+                       $GLOBALS['phpgw']->db->Execute("UPDATE 
fm_wo_h_deviation set $value_set WHERE workorder_id=" . $values['workorder_id'] 
. " AND hour_id=" . $values['hour_id'] . " AND id=" . $values['id']);
+
+                       $receipt['message'][] = array('msg'=> lang('deviation 
has been edited'));
+
+                       return $receipt;
+               }
+
+               function update_deviation($data)
+               {
+                       if(is_array($data))
+                       {
+                               $id = 
(isset($data['workorder_id'])?$data['workorder_id']:0);
+                               $deviation = 
(isset($data['sum_deviation'])?$data['sum_deviation']:0);
+                       }
+                       $GLOBALS['phpgw']->db->Execute("UPDATE fm_workorder set 
deviation = $deviation WHERE id=$id");
+                       return $receipt;
+               }
+
+
+               function next_record($workorder_id)
+               {
+
+                       $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT  
max(record) as record FROM fm_wo_hours where workorder_id='$workorder_id'");
+
+                       $record = $dbresult->fields['record']+1;
+                       return $record;
+
+               }
+
+               function add_template($values,$workorder_id)
+               {
+
+                       $values['name'] = 
$this->db->db_addslashes($values['name']);
+                       $soworkorder    = 
CreateObject($this->currentapp.'_soworkorder');
+                       $workorder              = 
$soworkorder->read_single($workorder_id);
+//html_print_r($workorder);
+
+                       $GLOBALS['phpgw']->db->begintrans();
+
+                       $GLOBALS['phpgw']->db->Execute("INSERT into fm_template 
(owner,name,descr,chapter_id,entry_date) "
+                               . " values ('" .
+                                       $this->account . "','" .
+                                       $values['name'] . "','" .
+                                       $values['descr'] . "','" .
+                                       $workorder['chapter_id'] . "','" .
+                                       time() . "')");
+
+                       $template_id = 
$this->db->get_last_insert_id('fm_template','id');
+
+                       $hour = $this->read(array('workorder_id' => 
$workorder_id));
+
+                       $record = $this->next_record($hour[0]['workorder_id']);
+
+                       for ($i=0; $i<count($hour); $i++)
+                       {
+
+                               $values= array(
+                                       $hour[$i]['activity_id'],
+                                       $hour[$i]['activity_num'],
+                                       $this->account,
+                                       $hour[$i]['hours_descr'],
+                                       $hour[$i]['unit'],
+                                       $hour[$i]['cost'],
+                                       $hour[$i]['quantity'],
+                                       $hour[$i]['billperae'],
+                                       $hour[$i]['ns3420_id'],
+                                       $hour[$i]['dim_d'],
+                                       $hour[$i]['grouping_id'],
+                                       $hour[$i]['grouping_descr'],
+                                       $hour[$i]['remark'],
+                                       $hour[$i]['tolerance'],
+                                       $hour[$i]['building_part'],
+                                       $record,
+                                       $template_id );
+
+                               $values = 
$this->bocommon->validate_db_insert($values);
+
+                               $GLOBALS['phpgw']->db->Execute("INSERT into 
fm_template_hours (activity_id,activity_num,owner,hours_descr,unit,"
+                               . 
"cost,quantity,billperae,ns3420_id,dim_d,grouping_id,grouping_descr,remark,tolerance,building_part,record,template_id)
 "
+                               . " values ($values)");
+
+                               $record++;
+                       }
+
+                       $GLOBALS['phpgw']->db->committrans();
+
+                       $receipt['message'][] = array('msg'=>lang('template %1 
is added',$values['name']));
+                       return $receipt;
+               }
+
+
+               function add_hour($hour)
+               {
+
+                       $record = $this->next_record($hour[0]['workorder_id']);
+
+                       for ($i=0; $i<count($hour); $i++)
+                       {
+
+                               $values= array(
+                                       $hour[$i]['activity_id'],
+                                       $hour[$i]['activity_num'],
+                                       $this->account,
+                                       $hour[$i]['hours_descr'],
+                                       $hour[$i]['unit'],
+                                       $hour[$i]['cost'],
+                                       $hour[$i]['quantity'],
+                                       $hour[$i]['billperae'],
+                                       $hour[$i]['ns3420_id'],
+                                       $hour[$i]['dim_d'],
+                                       $record,
+                                       time(),
+                                       $hour[$i]['workorder_id']);
+
+                               $values = 
$this->bocommon->validate_db_insert($values);
+
+                               $GLOBALS['phpgw']->db->Execute("INSERT into 
fm_wo_hours 
(activity_id,activity_num,owner,hours_descr,unit,cost,quantity,billperae,ns3420_id,dim_d,record,entry_date,workorder_id)
 "
+                               . " values ($values)");
+
+                               $record++;
+                       }
+
+                       $receipt['message'][] = array('msg'=>lang('%1 entries 
is added!',count($hour)));
+
+                       $receipt['hour_id'] = 
$this->db->get_last_insert_id('fm_wo_hours','id');
+
+                       return $receipt;
+
+               }
+
+               function add_hour_from_template($hour,$workorder_id)
+               {
+//html_print_r($hour);
+
+                       $record = $this->next_record($workorder_id);
+
+                       $GLOBALS['phpgw']->db->Execute("UPDATE fm_workorder set
+                               chapter_id      ='" . $hour[0]['chapter_id'] . 
"' WHERE id= '$workorder_id'");
+
+
+                       for ($i=0; $i<count($hour); $i++)
+                       {
+
+                               if($hour[$i]['new_grouping'])
+                               {
+                                       $dbresult = 
$GLOBALS['phpgw']->db->Execute("SELECT grouping_id FROM fm_wo_hours where 
grouping_descr ='" .$hour[$i]['new_grouping'] . "' and workorder_id= 
'$workorder_id'");
+
+                                       if ( $dbresult->fields['grouping_id'])
+                                       {
+                                               $grouping_id    = 
$dbresult->fields['grouping_id'];
+                                       }
+                                       else
+                                       {
+                                               $dbresult = 
$GLOBALS['phpgw']->db->Execute("SELECT max(grouping_id) as grouping_id FROM 
fm_wo_hours where workorder_id= '$workorder_id'");
+
+                                               $grouping_id    = 
$dbresult->fields['grouping_id']+1;
+                                       }
+
+                                       $grouping_descr = 
$hour[$i]['new_grouping'];
+                               }
+
+                               $values= array(
+                                       $this->account,
+                                       $hour[$i]['activity_id'],
+                                       $hour[$i]['activity_num'],
+                                       $hour[$i]['hours_descr'],
+                                       $hour[$i]['unit'],
+                                       $hour[$i]['cost'],
+                                       $hour[$i]['quantity'],
+                                       $hour[$i]['billperae'],
+                                       $hour[$i]['ns3420_id'],
+                                       $hour[$i]['dim_d'],
+                                       $grouping_id,
+                                       $grouping_descr,
+                                       $record,
+                                       $hour[$i]['building_part_id'],
+                                       $hour[$i]['tolerance_id'],
+                                       $hour[$i]['remark'],
+                                       time(),
+                                       $workorder_id );
+
+                               $values = 
$this->bocommon->validate_db_insert($values);
+
+                               $GLOBALS['phpgw']->db->Execute("INSERT into 
fm_wo_hours 
(owner,activity_id,activity_num,hours_descr,unit,cost,quantity,billperae,ns3420_id,dim_d,"
+                               . " 
grouping_id,grouping_descr,record,building_part,tolerance,remark,entry_date,workorder_id)
 "
+                               . " values ($values     )");
+
+                               $record++;
+                       }
+
+                       $receipt['message'][] = array('msg'=>lang('the number 
of %1 hour is added!',$i));
+
+                       return $receipt;
+               }
+
+               function add_custom_hour($hour,$workorder_id)
+               {
+
+                       $hour['record'] = $this->next_record($workorder_id);
+
+                       if($hour['chapter_id'])
+                       {
+                               $GLOBALS['phpgw']->db->Execute("UPDATE 
fm_workorder set
+                               chapter_id      ='" . $hour['chapter_id'] . "' 
WHERE id= '$workorder_id'");
+                       }
+
+                       if($hour['grouping_id'])
+                       {
+                               $dbresult = 
$GLOBALS['phpgw']->db->Execute("SELECT grouping_descr , max(record) as record 
FROM fm_wo_hours where grouping_id='" .$hour['grouping_id'] . "' and 
workorder_id= '$workorder_id' GROUP by grouping_descr");
+
+                               $hour['grouping_descr'] = 
$dbresult->fields['grouping_descr'];
+//                             $hour['record'] = $dbresult->fields['record']+1;
+                       }
+
+                       if($hour['new_grouping'])
+                       {
+                               $dbresult = 
$GLOBALS['phpgw']->db->Execute("SELECT grouping_id FROM fm_wo_hours where 
grouping_descr ='" .$hour['new_grouping'] . "' and workorder_id= 
'$workorder_id'");
+
+                               if ( $dbresult->fields['grouping_id'])
+                               {
+                                       $hour['grouping_id']    = 
$dbresult->fields['grouping_id'];
+                               }
+                               else
+                               {
+                                       $dbresult = 
$GLOBALS['phpgw']->db->Execute("SELECT max(grouping_id) as grouping_id FROM 
fm_wo_hours where workorder_id= '$workorder_id'");
+
+                                       $hour['grouping_id']    = 
$dbresult->fields['grouping_id']+1;
+//                                     $hour['record'] = 1;
+                               }
+
+                               $hour['grouping_descr'] = $hour['new_grouping'];
+                       }
+
+                       $values= array(
+                                       $this->account,
+                                       $hour['descr'],
+                                       $hour['unit'],
+                                       $hour['cost'],
+                                       $hour['quantity'],
+                                       $hour['billperae'],
+                                       $hour['ns3420_id'],
+                                       $hour['dim_d'],
+                                       $hour['grouping_id'],
+                                       $hour['grouping_descr'],
+                                       $hour['record'],
+                                       $hour['building_part_id'],
+                                       $hour['tolerance_id'],
+                                       $hour['remark'],
+                                       time(),
+                                       $workorder_id
+                                       );
+
+                       $values = $this->bocommon->validate_db_insert($values);
+
+                       $GLOBALS['phpgw']->db->Execute("INSERT into fm_wo_hours 
(owner,hours_descr,unit,cost,quantity,billperae,ns3420_id,dim_d,"
+                               . " 
grouping_id,grouping_descr,record,building_part,tolerance,remark,entry_date,workorder_id)
 "
+                               . "VALUES ( $values )");
+
+                       $receipt['hour_id'] = 
$this->db->get_last_insert_id('fm_wo_hours','id');
+
+                       $receipt['message'][] = array('msg'=>lang('hour %1 is 
added!',$receipt['hour_id']));
+
+                       return $receipt;
+
+               }
+
+               function read_single_hour($hour_id)
+               {
+                       $sql = "SELECT * from fm_wo_hours where id='$hour_id'";
+
+                       $dbresult = $GLOBALS['phpgw']->db->Execute($sql);
+
+                       if (!$dbresult->EOF)
+                       {
+                               $hour['hour_id']                                
= $dbresult->fields['id'];
+                               $hour['record']                                 
= $dbresult->fields['record'];
+                               $hour['activity_id']                    = 
$dbresult->fields['activity_id'];
+                               $hour['activity_num']                   = 
$dbresult->fields['activity_num'];
+                               $hour['grouping_id']                    = 
$dbresult->fields['grouping_id'];
+                               $hour['hours_descr']                    = 
$dbresult->fields['hours_descr'];
+                               $hour['remark']                                 
= $dbresult->fields['remark'];
+                               $hour['billperae']                              
= $dbresult->fields['billperae'];
+                               $hour['unit']                                   
= $dbresult->fields['unit'];
+                               $hour['ns3420_id']                              
= $dbresult->fields['ns3420_id'];
+                               $hour['tolerance_id']                   = 
(int)$dbresult->fields['tolerance'];
+                               $hour['building_part_id']               = 
(int)$dbresult->fields['building_part'];
+                               $hour['quantity']                               
= $dbresult->fields['quantity'];
+                               $hour['cost']                                   
= $dbresult->fields['cost'];
+                               $hour['dim_d']                                  
= $dbresult->fields['dim_d'];
+                       }
+
+                       return $hour;
+               }
+
+               function edit($hour,$workorder_id)
+               {
+
+                       $hour['descr'] = 
$this->db->db_addslashes($hour['descr']);
+                       $hour['remark'] = 
$this->db->db_addslashes($hour['remark']);
+//html_print_r($hour);
+
+
+                       if($hour['chapter_id'])
+                       {
+                               $GLOBALS['phpgw']->db->Execute("UPDATE 
fm_workorder set
+                               chapter_id      ='" . $hour['chapter_id'] . "' 
WHERE id= '$workorder_id'");
+                       }
+
+                       if($hour['new_grouping'])
+                       {
+                               $dbresult = 
$GLOBALS['phpgw']->db->Execute("SELECT grouping_id FROM fm_wo_hours where 
grouping_descr ='" .$hour['new_grouping'] . "' and workorder_id= 
'$workorder_id'");
+
+                               if ( $dbresult->fields['grouping_id'])
+                               {
+                                       $hour['grouping_id']    = 
$dbresult->fields['grouping_id'];
+                               }
+                               else
+                               {
+
+                                       $GLOBALS['phpgw']->db->Execute("UPDATE 
fm_wo_hours set grouping_id = NULL WHERE id ='" .$hour['hour_id'] . "'");
+                                       $dbresult = 
$GLOBALS['phpgw']->db->Execute("SELECT count(grouping_id) as num_grouping FROM 
fm_wo_hours where workorder_id= '$workorder_id' and grouping_id >0 ");
+
+                                       if 
($dbresult->fields['num_grouping']==1)
+                                       {
+                                               $hour['grouping_id']=1;
+                                       }
+                                       else
+                                       {
+                                               $dbresult = 
$GLOBALS['phpgw']->db->Execute("SELECT max(grouping_id) as grouping_id FROM 
fm_wo_hours where workorder_id= '$workorder_id'");
+
+                                               $hour['grouping_id']    = 
$dbresult->fields['grouping_id']+1;
+                                       }
+                               }
+                               $hour['grouping_descr'] = $hour['new_grouping'];
+                       }
+                       else
+                       {
+                               $dbresult = 
$GLOBALS['phpgw']->db->Execute("SELECT grouping_id,grouping_descr FROM 
fm_wo_hours where id ='" .$hour['hour_id'] . "'");
+
+                               $old_grouping_id        = 
$dbresult->fields['grouping_id'];
+
+                               if ( $old_grouping_id == $hour['grouping_id'])
+                               {
+
+                                       $hour['grouping_descr'] = 
$dbresult->fields['grouping_descr'];
+                               }
+                               else
+                               {
+                                       $dbresult = 
$GLOBALS['phpgw']->db->Execute("SELECT grouping_descr , max(record) as record 
FROM fm_wo_hours where grouping_id='" .$hour['grouping_id'] . "' and 
workorder_id= '$workorder_id' GROUP by grouping_descr");
+
+                                       if($dbresult->fields['grouping_descr'])
+                                       {
+                                               $hour['grouping_descr'] = 
$dbresult->fields['grouping_descr'];
+                                       }
+                                       else
+                                       {
+                                               $hour['grouping_id']='';
+                                               $hour['grouping_descr']='';
+                                       }
+
+/*                                     if($old_record>1)
+                                       {
+                                               
$GLOBALS['phpgw']->db->Execute("UPDATE fm_wo_hours set
+                                                       record  = record - 1 
where grouping_id='" .$hour['grouping_id'] . "' and workorder_id= 
'$workorder_id' and record > $old_record ");
+
+                                       }
+
+*/
+                               }
+                       }
+
+                       $value_set=array(
+                               'hours_descr'           => $hour['descr'],
+                               'remark'                        => 
$hour['remark'],
+                               'billperae'                     => 
$hour['billperae'],
+                               'unit'                          => 
$hour['unit'],
+                               'quantity'                      => 
$hour['quantity'],
+                               'cost'                          => 
$hour['cost'],
+                               'ns3420_id'                     => 
$hour['ns3420_id'],
+                               'tolerance'                     => 
$hour['tolerance_id'],
+                               'building_part'         => 
$hour['building_part_id'],
+                               'dim_d'                         => 
$hour['dim_d'],
+                               'grouping_id'           => $hour['grouping_id'],
+                               'grouping_descr'        => 
$hour['grouping_descr']
+                               );
+
+                       $value_set      = 
$this->bocommon->validate_db_update($value_set);
+
+                       $GLOBALS['phpgw']->db->Execute("UPDATE fm_wo_hours set 
$value_set WHERE id= '" . $hour['hour_id'] ."'");
+
+                       $receipt['hour_id'] = $hour['hour_id'];
+                       $receipt['message'][] = array('msg'=>lang('hour %1 has 
been edited',$hour['hour_id']));
+                       return $receipt;
+
+               }
+
+               function update_email($to_email,$workorder_id)
+               {
+                       $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT 
vendor_id FROM fm_workorder where id ='$workorder_id'");
+
+                       $vendor_id      = $dbresult->fields['vendor_id'];
+
+                       $GLOBALS['phpgw']->db->Execute("UPDATE 
phpgw_addressbook set email ='$to_email' where  id= '$vendor_id'");
+               }
+
+               function get_extra_email($vendor_id)
+               {
+                       $vendor_id=(int)$vendor_id;
+                       $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT 
contact_value from phpgw_addressbook_extra where contact_id='$vendor_id' and 
contact_value like 'address@hidden'");
+                       while (!$dbresult->EOF)
+                       {
+                               $email_list[] = array('email' => 
$dbresult->fields['contact_value']);
+                               $dbresult->MoveNext();
+                       }
+                       return  $email_list;
+               }
+
+               function delete($hour_id,$workorder_id )
+               {
+                       $dbresult = $GLOBALS['phpgw']->db->Execute("SELECT 
record FROM fm_wo_hours where id ='$hour_id'");
+
+                       $old_record     = $dbresult->fields['record'];
+
+                       $GLOBALS['phpgw']->db->begintrans();
+
+                       $GLOBALS['phpgw']->db->Execute("DELETE FROM fm_wo_hours 
WHERE id='" . $hour_id . "'");
+                       $GLOBALS['phpgw']->db->Execute("DELETE FROM 
fm_wo_h_deviation WHERE workorder_id=$workorder_id AND hour_id=$hour_id");
+                       if($old_record)
+                       {
+                               $GLOBALS['phpgw']->db->Execute("UPDATE 
fm_wo_hours set record   = record - 1 where  workorder_id= '$workorder_id' and 
record > $old_record ");
+                       }
+
+                       $GLOBALS['phpgw']->db->committrans();
+
+                       $receipt['message'][] = array('msg'=>lang('hour %1 has 
been deleted',$hour_id));
+                       return $receipt;
+
+               }
+
+               function delete_deviation($workorder_id,$hour_id,$id )
+               {
+                       $GLOBALS['phpgw']->db->Execute("DELETE FROM 
fm_wo_h_deviation WHERE workorder_id=$workorder_id AND hour_id=$hour_id AND 
id=$id");
+                       $receipt['message'][] = array('msg'=>lang('deviation %1 
has been deleted',$id));
+                       return $receipt;
+               }
+
+               function update_calculation($data)
+               {
+                       if(is_array($data))
+                       {
+                               $id = 
(isset($data['workorder_id'])?$data['workorder_id']:0);
+                               $calculation = 
(isset($data['calculation'])?$data['calculation']:0);
+                       }
+                       $GLOBALS['phpgw']->db->Execute("UPDATE fm_workorder set 
calculation = $calculation WHERE id=$id");
+                       return $receipt;
+               }
+       }
+?>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]