phpgroupware-cvs
[Top][All Lists]
Advanced

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

[Phpgroupware-cvs] property/inc/class.botts.inc.php, 1.2


From: nomail
Subject: [Phpgroupware-cvs] property/inc/class.botts.inc.php, 1.2
Date: Wed, 2 Jun 2004 20:54:28 +0200

Update of /property/inc
Added Files:
        Branch: 
          class.botts.inc.php

date: 2004/06/02 18:54:28;  author: sigurdne;  state: Exp;  lines: +826 -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 botts
        {
                var $start;
                var $query;
                var $filter;
                var $sort;
                var $order;
                var $cat_id;

                var $public_functions = array
                (
                        'read'                          => True,
                        'read_single'           => True,
                        'save'                          => True,
                        'delete'                        => True,
                        'check_perms'           => True
                );

                var $soap_functions = array(
                        'list' => array(
                                'in'  => 
array('int','int','struct','string','int'),
                                'out' => array('array')
                        ),
                        'read' => array(
                                'in'  => array('int','struct'),
                                'out' => array('array')
                        ),
                        'save' => array(
                                'in'  => array('int','struct'),
                                'out' => array()
                        ),
                        'delete' => array(
                                'in'  => array('int','struct'),
                                'out' => array()
                        )
                );

                function botts($session=False)
                {
                        $this->currentapp       = 
$GLOBALS['phpgw_info']['flags']['currentapp'];
                        $this->so                       = 
CreateObject($this->currentapp.'.sotts');
                        $this->bocommon         = 
CreateObject($this->currentapp.'.bocommon');
                        $this->historylog       = 
CreateObject($this->currentapp.'.historylog','tts');
                        $this->config           = 
CreateObject('phpgwapi.config');
                        $this->dateformat = 
$GLOBALS['phpgw_info']['user']['preferences']['common']['dateformat'];

                        if ($session)
                        {
                                $this->read_sessiondata();
                                $this->use_session = True;
                        }

                        $start  = get_var('start',array('POST','GET'));
                        $query  = get_var('query',array('POST','GET'));
                        $sort   = get_var('sort',array('POST','GET'));
                        $order  = get_var('order',array('POST','GET'));
                        $filter = get_var('filter',array('POST','GET'));
                        $user_filter    = 
get_var('user_filter',array('POST','GET'));
                        $cat_id = get_var('cat_id',array('POST','GET'));
                        $district_id    = 
get_var('district_id',array('POST','GET'));
                        $allrows        = 
get_var('allrows',array('POST','GET'));

                        if ($start)
                        {
                                $this->start=$start;
                        }
                        else
                        {
                                $this->start=0;
                        }

                        if(isset($query))
                        {
                                $this->query = $query;
                        }
                        if(isset($filter))
                        {
                                $this->filter = $filter;
                        }
                        if(isset($user_filter))
                        {
                                $this->user_filter = $user_filter;
                        }
                        if(isset($sort))
                        {
                                $this->sort = $sort;
                        }
                        if(isset($order))
                        {
                                $this->order = $order;
                        }
                        if(isset($cat_id))
                        {
                                $this->cat_id = $cat_id;
                        }
                        if(isset($district_id))
                        {
                                $this->district_id = $district_id;
                        }
                        if(isset($allrows))
                        {
                                $this->allrows = $allrows;
                        }
                }


                function save_sessiondata($data)
                {
                        if ($this->use_session)
                        {
                                
$GLOBALS['phpgw']->session->appsession('session_data','tts',$data);
                        }
                }

                function read_sessiondata()
                {
                        $data = 
$GLOBALS['phpgw']->session->appsession('session_data','tts');

                        $this->start    = $data['start'];
                        $this->query    = $data['query'];
                        $this->filter   = $data['filter'];
                        $this->user_filter      = $data['user_filter'];
                        $this->sort             = $data['sort'];
                        $this->order    = $data['order'];
                        $this->cat_id   = $data['cat_id'];
                        $this->district_id      = $data['district_id'];
                        $this->allrows  = $data['allrows'];
                }

                function filter($data=0)
                {
                        if(is_array($data))
                        {
                                $format = 
(isset($data['format'])?$data['format']:'');
                                $selected = 
(isset($data['filter'])?$data['filter']:$data['default']);
                        }

                        
$GLOBALS['phpgw']->xslttpl->add_file(array('filter_filter'));

                        $filters[0][id]='closed';
                        $filters[0][name]=lang('Closed');
                        $filters[1][id]='all';
                        $filters[1][name]=lang('All');

                        while (is_array($filters) && list(,$filter) = 
each($filters))
                        {
                                $sel_filter = '';
                                if ($filter['id']==$selected)
                                {
                                        $sel_filter = 'selected';
                                }

                                $filter_list[] = array
                                (
                                        'id'    => $filter['id'],
                                        'name'          => $filter['name'],
                                        'selected'      => $sel_filter
                                );
                        }

                        for ($i=0;$i<count($filter_list);$i++)
                        {
                                if ($filter_list[$i]['selected'] != 'selected')
                                {
                                        unset($filter_list[$i]['selected']);
                                }
                        }

                        return $filter_list;
                }

                function get_status_list($selected)
                {

                        $filters[0][id]='X';
                        $filters[0][name]=lang('Closed');
                        $filters[1][id]='O';
                        $filters[1][name]=lang('Open');

                        while (is_array($filters) && list(,$filter) = 
each($filters))
                        {
                                $sel_filter = '';
                                if ($filter['id']==$selected)
                                {
                                        $sel_filter = 'selected';
                                }

                                $filter_list[] = array
                                (
                                        'id'    => $filter['id'],
                                        'name'          => $filter['name'],
                                        'selected'      => $sel_filter
                                );
                        }

                        for ($i=0;$i<count($filter_list);$i++)
                        {
                                if ($filter_list[$i]['selected'] != 'selected')
                                {
                                        unset($filter_list[$i]['selected']);
                                }
                        }

                        return $filter_list;
                }


                function get_priority_list($selected='')
                {

                        if(!$selected)
                        {
                                $selected = 
$GLOBALS['phpgw_info']['user']['preferences'][$this->currentapp]['prioritydefault'];
                        }

                        $priority_comment[1]=' - '.lang('Lowest');
                        $priority_comment[5]=' - '.lang('Medium');
                        $priority_comment[10]=' - '.lang('Highest');

                        for ($i=1; $i<=10; $i++)
                        {
                                $priorities[$i]['id'] =$i;
                                $priorities[$i]['name'] =$i . 
$priority_comment[$i];
                        }

                        while (is_array($priorities) && list(,$priority) = 
each($priorities))
                        {
                                $sel_priority = '';
                                if ($priority['id']==$selected)
                                {
                                        $sel_priority = 'selected';
                                }

                                $priority_list[] = array
                                (
                                        'id'    => $priority['id'],
                                        'name'          => $priority['name'],
                                        'selected'      => $sel_priority
                                );
                        }

                        for ($i=0;$i<count($priority_list);$i++)
                        {
                                if ($priority_list[$i]['selected'] != 
'selected')
                                {
                                        unset($priority_list[$i]['selected']);
                                }
                        }

//_debug_array($priority_list);
                        return $priority_list;
                }

                function get_category_name($cat_id)
                {
                        return $this->so->get_category_name($cat_id);
                }

                function select_category_list($format='',$selected='')
                {

                        switch($format)
                        {
                                case 'select':
                                        
$GLOBALS['phpgw']->xslttpl->add_file(array('cat_select'));
                                        break;
                                case 'filter':
                                        
$GLOBALS['phpgw']->xslttpl->add_file(array('cat_filter'));
                                        break;
                        }

                        $categories= $this->so->select_category_list();

                        while (is_array($categories) && list(,$category) = 
each($categories))
                        {
                                $sel_category = '';
                                if ($category['id']==$selected)
                                {
                                        $sel_category = 'selected';
                                }

                                $category_list[] = array
                                (
                                        'cat_id'        => $category['id'],
                                        'name'          => $category['name'],
                                        'selected'      => $sel_category
                                );
                        }

                        for ($i=0;$i<count($category_list);$i++)
                        {
                                if ($category_list[$i]['selected'] != 
'selected')
                                {
                                        unset($category_list[$i]['selected']);
                                }
                        }

                        return $category_list;
                }

                function read()
                {
                        $tickets = $this->so->read(array('start' => 
$this->start,'query' => $this->query,'sort' => $this->sort,'order' => 
$this->order,
                                                                                
        'filter' => $this->filter,'cat_id' => $this->cat_id,'district_id' => 
$this->district_id,
                                                                                
        'allrows'=>$this->allrows,'user_filter' => $this->user_filter));
                        $this->total_records = $this->so->total_records;
                        $entity = $this->so->get_origin_entity_type();

                        $this->uicols=$this->so->uicols;
                        for ($i=0; $i<count($tickets); $i++)
                        {
                                if($tickets[$i]['assignedto'])
                                {
                                        $tickets[$i]['assignedto'] = 
$GLOBALS['phpgw']->accounts->id2name($tickets[$i]['assignedto']);
                                }
                                else
                                {
                                        $tickets[$i]['assignedto'] = 
$GLOBALS['phpgw']->accounts->id2name($tickets[$i]['group_id']);
                                }

                                $tickets[$i]['timestampopened'] = 
$GLOBALS['phpgw']->common->show_date($tickets[$i]['entry_date'],$this->dateformat);

                                if($tickets[$i]['finnish_date2'])
                                {
                                        
$tickets[$i]['delay']=($tickets[$i]['finnish_date2']-$tickets[$i]['finnish_date'])/(24*3600);
                                        
$tickets[$i]['finnish_date']=$tickets[$i]['finnish_date2'];
                                }
                                $tickets[$i]['finnish_date'] = 
(isset($tickets[$i]['finnish_date'])?$GLOBALS['phpgw']->common->show_date($tickets[$i]['finnish_date'],$this->dateformat):'');

                                if ($tickets[$i]['status'] == 'X')
                                {
                                        $history_values = 
$this->historylog->return_array(array(),array('X'),'history_timestamp','DESC',$tickets[$i]['id']);
                                        $tickets[$i]['timestampclosed'] = 
$GLOBALS['phpgw']->common->show_date($history_values[0]['datetime'],$this->dateformat);
                                }
                                if ($tickets[$i]['new_ticket'])
                                {
                                        $tickets[$i]['new_ticket'] = 
lang('New');
                                }

                                for ($j=0;$j<count($entity);$j++)
                                {
                                        $tickets[$i]['child_date'][$j] = 
$this->so->get_child_date($tickets[$i]['id'],$entity[$j]['type'],$entity[$j]['entity_id'],$entity[$j]['cat_id']);
                                }
                        }

//_debug_array($tickets);
                        return $tickets;
                }

                function read_single($id)
                {

                        $this->so->update_view($id);

                        $ticket = $this->so->read_single($id);

                        $ticket['user_lid'] = 
$GLOBALS['phpgw']->accounts->id2name($ticket['user_id']);
                        $ticket['group_lid'] = 
$GLOBALS['phpgw']->accounts->id2name($ticket['group_id']);


                        if($ticket['finnish_date2'])
                        {
                                
$ticket['finnish_date']=$ticket['finnish_date2'];
                        }

                        if($ticket['finnish_date'])
                        {
                                $ticket['finnish_date'] = 
$GLOBALS['phpgw']->common->show_date($ticket['finnish_date'],$this->dateformat);
                        }

                        if($ticket['location_code'])
                        {
                                $solocation     = 
CreateObject($this->currentapp.'.solocation');
                                $ticket['location_data'] = 
$solocation->read_single($ticket['location_code']);
                        }
//_debug_array($ticket['location_data']);
                        if($ticket['p_num'])
                        {
                                $soadmin_entity = 
CreateObject($this->currentapp.'.soadmin_entity');
                                $category = 
$soadmin_entity->read_single_category($ticket['p_entity_id'],$ticket['p_cat_id']);

                                
$ticket['p'][$ticket['p_entity_id']]['p_num']=$ticket['p_num'];
                                
$ticket['p'][$ticket['p_entity_id']]['p_entity_id']=$ticket['p_entity_id'];
                                
$ticket['p'][$ticket['p_entity_id']]['p_cat_id']=$ticket['p_cat_id'];
                                
$ticket['p'][$ticket['p_entity_id']]['p_cat_name'] = $category['name'];
                        }


                        if($ticket['tenant_id']>0)
                        {
                                
$tenant_data=$this->bocommon->read_single_tenant($ticket['tenant_id']);
                                $ticket['location_data']['tenant_id']= 
$ticket['tenant_id'];
                                $ticket['location_data']['contact_phone']= 
$tenant_data['contact_phone'];
                                $ticket['location_data']['last_name']   = 
$tenant_data['last_name'];
                                $ticket['location_data']['first_name']  = 
$tenant_data['first_name'];
                        }
                        else
                        {
                                unset($ticket['location_data']['tenant_id']);
                                
unset($ticket['location_data']['contact_phone']);
                                unset($ticket['location_data']['last_name']);
                                unset($ticket['location_data']['first_name']);
                        }


                        $history_values = 
$this->historylog->return_array(array(),array('O'),'history_timestamp','DESC',$id);
                        $ticket['timestampopened'] = 
$GLOBALS['phpgw']->common->show_date($history_values[0]['datetime'],$this->dateformat);
                        // Figure out when it was opened and last closed

                        $history_values = 
$this->historylog->return_array(array(),array('O'),'history_timestamp','ASC',$id);
                        $ticket['last_opened'] = 
$GLOBALS['phpgw']->common->show_date($history_values[0]['datetime']);

                        if($ticket['status']=='X')
                        {

                                $history_values = 
$this->historylog->return_array(array(),array('X'),'history_timestamp','DESC',$id);
                                $ticket['timestampclosed']= 
$GLOBALS['phpgw']->common->show_date($history_values[0]['datetime'],$this->dateformat);
                        }



                        $status_text = array(
                                'R' => 'Re-opened',
                                'X' => 'Closed',
                                'O' => 'Opened',
                                'A' => 'Re-assigned',
                                'G' => 'Re-assigned group',
                                'P' => 'Priority changed',
                                'T' => 'Category changed',
                                'S' => 'Subject changed',
                                'B' => 'Billing rate',
                                'H' => 'Billing hours',
                                'F' => 'finnish date'
                        );

                        $ticket['status_name'] = 
lang($status_text[$ticket['status']]);
                        
$ticket['assignedto_name']=$GLOBALS['phpgw']->accounts->id2name($ticket['assignedto']);
                        
$ticket['user_lid']=$GLOBALS['phpgw']->accounts->id2name($ticket['user_id']);
                        
$ticket['category_name']=ucfirst($this->get_category_name($ticket['cat_id']));

                        return $ticket;
                }

                function read_additional_notes($id)
                {
                        $history_array = 
$this->historylog->return_array(array(),array('C'),'','',$id);
                        $i=1;
                        while (is_array($history_array) && list(,$value) = 
each($history_array))
                        {
                                $additional_notes[] = array
                                (
                                        'value_count'   => $i,
                                        'value_date'    => 
$GLOBALS['phpgw']->common->show_date($value['datetime']),
                                        'value_user'    => $value['owner'],
                                        'value_note'    => 
stripslashes(stripslashes($value['new_value'])),
                                        );
                                $i++;
                        }

                        return $additional_notes;
                }


                function read_record_history($id)
                {
                        $history_array = 
$this->historylog->return_array(array('C','O'),array(),'','',$id);
                        $i=0;
                        while (is_array($history_array) && list(,$value) = 
each($history_array))
                        {

                                $record_history[$i]['value_date']       = 
$GLOBALS['phpgw']->common->show_date($value['datetime']);
                                $record_history[$i]['value_user']       = 
$value['owner'];

                                switch ($value['status'])
                                {
                                        case 'R': $type = lang('Re-opened'); 
break;
                                        case 'X': $type = lang('Closed');    
break;
                                        case 'O': $type = lang('Opened');    
break;
                                        case 'A': $type = lang('Re-assigned'); 
break;
                                        case 'G': $type = lang('Re-assigned 
group'); break;
                                        case 'P': $type = lang('Priority 
changed'); break;
                                        case 'T': $type = lang('Category 
changed'); break;
                                        case 'S': $type = lang('Subject 
changed'); break;
                                        case 'H': $type = lang('Billable hours 
changed'); break;
                                        case 'B': $type = lang('Billable rate 
changed'); break;
                                        case 'F': $type = lang('finnish date 
changed'); break;
                                        case 'IF': $type = lang('Initial 
finnish date'); break;
                                        default: break;
                                }

                                
if($value['new_value']=='O'){$value['new_value']=lang('Opened');}
                                
if($value['new_value']=='X'){$value['new_value']=lang('Closed');}


                                $record_history[$i]['value_action']     = 
$type?$type:'';
                                unset($type);
                                if ($value['status'] == 'A' || $value['status'] 
== 'G')
                                {
                                        if ((int)$value['new_value']>0)
                                        {
                                                
$record_history[$i]['value_new_value']  = 
$GLOBALS['phpgw']->accounts->id2name($value['new_value']);
                                        }
                                        else
                                        {
                                                
$record_history[$i]['value_new_value']  = lang('None');

                                        }
                                }
                                else if ($value['status'] == 'T')
                                {
                                        $record_history[$i]['value_new_value']  
= $this->get_category_name($value['new_value']);
                                }
                                else if (($value['status'] == 'F') || 
($value['status'] =='IF'))
                                {
                                        $record_history[$i]['value_new_value']  
= $GLOBALS['phpgw']->common->show_date($value['new_value'],$this->dateformat);
                                }
                                else if ($value['status'] != 'O' && 
$value['new_value'])
                                {
                                        $record_history[$i]['value_new_value']  
= $value['new_value'];
                                }
                                else
                                {
                                        $record_history[$i]['value_new_value']  
= '';
                                }

                                $i++;
                        }

                        return $record_history;
                }

                function add($ticket)
                {
                        while (is_array($ticket['location']) && list(,$value) = 
each($ticket['location']))
                        {
                                if($value)
                                {
                                        $location[] = $value;
                                }
                        }

                        $ticket['finnish_date'] = 
$this->bocommon->date_to_timestamp($ticket['finnish_date']);
                        $ticket['location_code']=implode("-", $location);

                        $receipt = $this->so->add($ticket);

                        $this->config->read_repository();

                        if ($this->config->config_data['mailnotification'])
                        {
                                $receipt = 
$this->mail_ticket($receipt['id'],$fields_updated,$receipt,$ticket['location_code']);

                        }

                        return $receipt;
                }


                function 
mail_ticket($id,$fields_updated,$receipt=0,$location_code='')
                {
                        $this->config->read_repository();
                        $this->send                     = 
CreateObject('phpgwapi.send');

                        $members = array();

                        $ticket = $this->so->read_single($id);

                        if($ticket['location_code'])
                        {

                                $solocation             = 
CreateObject($this->currentapp.'.solocation');
                                $soadmin_location       = 
CreateObject($this->currentapp.'.soadmin_location');
                                $location_data          = 
$solocation->read_single($ticket['location_code']);

                                
$type_id=count(explode('-',$ticket['location_code']));
                                $fm_location_cols = 
$soadmin_location->read_attrib(array('type_id'=>$type_id,'lookup_type'=>$type_id));
                                $i=0;
                                if (isset($fm_location_cols) AND 
is_array($fm_location_cols))
                                {
                                        foreach($fm_location_cols as 
$location_entry)
                                        {
                                                
if($location_entry['lookup_form'])
                                                {
                                                        
$address_element[$i]['text']=$location_entry['input_text'];
                                                        
$address_element[$i]['value']=$location_data[$location_entry['column_name']];
                                                }
                                                $i++;
                                        }
                                }
                        }

                        $history_values = 
$this->historylog->return_array(array(),array('O'),'history_timestamp','DESC',$id);
                        $timestampopened = 
$GLOBALS['phpgw']->common->show_date($history_values[0]['datetime'],$this->dateformat);

                        if($ticket['status']=='X')
                        {
                                $history_values = 
$this->historylog->return_array(array(),array('X'),'history_timestamp','DESC',$id);
                                $timestampclosed = 
$GLOBALS['phpgw']->common->show_date($history_values[0]['datetime'],$this->dateformat);
                        }

                        $history_2 = 
$this->historylog->return_array(array('C','O'),array(),'','',$id);
                        $m=count($history_2)-1;
                        $ticket['status']=$history_2[$m]['status'];

                        $stat = $ticket['status'];
                        $status = array(
                                'R' => 'Re-opened',
                                'X' => 'Closed',
                                'O' => 'Opened',
                                'A' => 'Re-assigned',
                                'G' => 'Re-assigned group',
                                'P' => 'Priority changed',
                                'T' => 'Category changed',
                                'S' => 'Subject changed',
                                'B' => 'Billing rate',
                                'H' => 'Billing hours',
                                'F' => 'finnish date changed'
                        );


                        $group_name= 
$GLOBALS['phpgw']->accounts->id2name($ticket['group_id']);

                        // build subject
                        $subject = '['.lang('Ticket').' #'.$id.'] : ' . 
$location_code .' ' .$this->get_category_name($ticket['cat_id']) . '; ' 
.$ticket['subject'];


                //      $prefs_user = 
$GLOBALS['phpgw']->preferences->create_email_preferences($ticket['user_id']);
                        $prefs_user = 
$this->bocommon->create_preferences($this->currentapp,$ticket['user_id']);

                        $from_address=$prefs_user['email'];

        //-----------from--------

                        
$current_user_id=$GLOBALS['phpgw_info']['user']['account_id'];

                        $current_user_firstname = 
$GLOBALS['phpgw_info']['user']['firstname'];

                        $current_user_lastname  
=$GLOBALS['phpgw_info']['user']['lastname'];

                        $current_user_name= $user_firstname . " " 
.$user_lastname ;

//                      $current_prefs_user = 
$GLOBALS['phpgw']->preferences->create_email_preferences($current_user_id);
                        $current_prefs_user = 
$this->bocommon->create_preferences($this->currentapp,$current_user_id);
                        $current_user_address=$current_prefs_user['email'];

                        $headers = "Return-Path: <". $current_user_address 
.">\r\n";
                        $headers .= "From: " . $current_user_name . "<" . 
$current_user_address .">\r\n";
                        $headers .= "Bcc: " . $current_user_name . "<" . 
$current_user_address .">\r\n";
                        $headers .= "Content-type: text/html; 
charset=iso-8859-1\r\n";
                        $headers .= "MIME-Version: 1.0\r\n";

        //-----------from--------
                // build body
                        $body  = '';
                        $body .= lang('Ticket').' #'.$id."\n";
                        $body .= lang('Date Opened').': '.$timestampopened."\n";
                        $body .= lang('Category').': '. 
$this->get_category_name($ticket['cat_id']) ."\n";
//                      $body .= lang('Subject').': '. $ticket['subject'] ."\n";
                        $body .= lang('Location').': '. 
$ticket['location_code'] ."\n";
                        $body .= lang('Address').': '. $ticket['address'] ."\n";
                        if (isset($address_element) AND 
is_array($address_element))
                        {
                                foreach($address_element as $address_entry)
                                {
                                        $body .= $address_entry['text'].': '. 
$address_entry['value'] ."\n";
                                }
                        }

                        if($ticket['tenant_id'])
                        {
                                
$tenant_data=$this->bocommon->read_single_tenant($ticket['tenant_id']);
                                $body .= lang('Tenant').': '. 
$tenant_data['first_name'] . ' ' .$tenant_data['last_name'] ."\n";

                                if($tenant_data['contact_phone'])
                                {
                                        $body .= lang('Contact phone').': '. 
$tenant_data['contact_phone'] ."\n";

                                }
                        }
                        $body .= lang('Assigned To').': 
'.$GLOBALS['phpgw']->accounts->id2name($ticket['assignedto'])."\n";
                        $body .= lang('Priority').': '.$ticket['priority']."\n";
                        if($group_name)
                        {
                                $body .= lang('Group').': '. $group_name ."\n";
                        }
                        $body .= lang('Opened By').': '. $ticket['user_name'] 
."\n\n";
                        $body .= lang('First Note Added').":\n";
                        $body .= 
stripslashes(strip_tags($ticket['details']))."\n\n";

                        
/**************************************************************\
                        * Display additional notes                              
       *
                        
\**************************************************************/
                        if($fields_updated)
                        {
                                $i=1;

                                $history_array = 
$this->historylog->return_array(array(),array('C'),'','',$id);
                                while (is_array($history_array) && 
list(,$value) = each($history_array))
                                {
                                        $body .= lang('Date') . ': 
'.$GLOBALS['phpgw']->common->show_date($value['datetime'])."\n";
                                        $body .= lang('User') . ': 
'.$value['owner']."\n";
                                        $body .=lang('Note').': '. 
nl2br(stripslashes($value['new_value']))."\n\n";
                                        $i++;
                                }
                                $subject.= "-" .$i;
                        }

                        
/**************************************************************\
                        * Display record history                                
       *
                        
\**************************************************************/

                        if($timestampclosed)
                        {
                                $body .= lang('Date Closed').': 
'.$timestampclosed."\n\n";
                        }

                        if ($this->config->config_data['groupnotification'])
                        {
                                // select group recipients
                                $members  = 
$GLOBALS['phpgw']->accounts->member($ticket['group_id']);
                        }

                        if ($this->config->config_data['ownernotification'])
                        {
                                // add owner to recipients
                                $members[] = array('account_id' => 
$ticket['user_id'], 'account_name' => 
$GLOBALS['phpgw']->accounts->id2name($ticket['user_id']));
                        }

                        if ($this->config->config_data['assignednotification'])
                        {
                                // add assigned to recipients
                                $members[] = array('account_id' => 
$ticket['assignedto'], 'account_name' => 
$GLOBALS['phpgw']->accounts->id2name($ticket['assignedto']));
                        }

                        $error = Array();
                        $toarray = Array();
                        $i=0;
                        for ($i=0;$i<count($members);$i++)
                        {
                                if ($members[$i]['account_id'])
                                {
                        //              $prefs = 
$GLOBALS['phpgw']->preferences->create_email_preferences($members[$i]['account_id']);
                                        $prefs = 
$this->bocommon->create_preferences($this->currentapp,$members[$i]['account_id']);
                                        if (strlen($prefs['email'])> 
(strlen($members[$i]['account_name'])+1))
                                        {
                                                $toarray[$prefs['email']] = 
$prefs['email'];
                                        }
                                        else
                                        {
                                                $receipt['error'][] = 
array('msg'=> lang('Your message could not be sent!'));
                                                $receipt['error'][] = 
array('msg'=>lang('This user has not defined an email address !') . ' : ' . 
$members[$i]['account_name']);
                                        }
                                }
                        }

                        if(count($toarray) > 1)
                        {
                                $to = implode(',',$toarray);
                        }
                        else
                        {
                                $to = current($toarray);
                        }

                        $mail_method= 
$this->config->config_data['fmwrkorder_mail'];
//                      echo 'mail_method: '.$mail_method .'<BR>';

                        if ($mail_method=='smtp'):
                        {
                                $rc = $this->send->msg('email', $to, $subject, 
stripslashes($body), '', $cc, 
$bcc,$current_user_address,$current_user_name,'txt');
                        }
                        elseif ($mail_method=='sendmail'):
                        {
                                $rc=    @mail($to,$subject,stripslashes($body), 
$headers);
                        }
                        else:
                        {
                                $receipt['error'][] = array('msg'=> 
lang('Mailing method is not chosen! (admin section)'));
                        }
                        endif;

                //      $rc=1;
                        if (!$rc)
                        {
                                $receipt['error'][] = array('msg'=> lang('Your 
message could not be sent by mail!'));
                                $receipt['error'][] = array('msg'=> lang('The 
mail server returned'));
                                $receipt['error'][] = array('msg'=> 'From :' . 
$current_user_name . '<' . $current_user_address .'>');
                                $receipt['error'][] = array('msg'=> 'to: '.$to);
                                $receipt['error'][] = array('msg'=> 'subject: 
'.$subject);
                                $receipt['error'][] = array('msg'=> $body );
        //                      $receipt['error'][] = array('msg'=> 'cc: ' . 
$cc);
        //                      $receipt['error'][] = array('msg'=> 'bcc: 
'.$bcc);
                                $receipt['error'][] = array('msg'=> 'group: 
'.$group_name);
                                $receipt['error'][] = array('msg'=> 'err_code: 
'.$this->send->err['code']);
                                $receipt['error'][] = array('msg'=> 'err_msg: 
'. htmlspecialchars($this->send->err['msg']));
                                $receipt['error'][] = array('msg'=> 'err_desc: 
'. $GLOBALS['phpgw']->err['desc']);
                        }

//_debug_array($receipt);
                        return $receipt;
                }


                function delete($id)
                {
                        $this->so->delete($id);
                }
        }
?>




reply via email to

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