fmsystem-commits
[Top][All Lists]
Advanced

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

[Fmsystem-commits] [7769] property: notify project coordinators on close


From: Sigurd Nes
Subject: [Fmsystem-commits] [7769] property: notify project coordinators on closed tickets
Date: Sat, 01 Oct 2011 18:33:31 +0000

Revision: 7769
          http://svn.sv.gnu.org/viewvc/?view=rev&root=fmsystem&revision=7769
Author:   sigurdne
Date:     2011-10-01 18:33:30 +0000 (Sat, 01 Oct 2011)
Log Message:
-----------
property: notify project coordinators on closed tickets

Modified Paths:
--------------
    
trunk/property/inc/custom/default/varsle_prosjektoordinator_ved_avsluttet_relatert_melding_BBB.php

Modified: 
trunk/property/inc/custom/default/varsle_prosjektoordinator_ved_avsluttet_relatert_melding_BBB.php
===================================================================
--- 
trunk/property/inc/custom/default/varsle_prosjektoordinator_ved_avsluttet_relatert_melding_BBB.php
  2011-09-30 17:48:40 UTC (rev 7768)
+++ 
trunk/property/inc/custom/default/varsle_prosjektoordinator_ved_avsluttet_relatert_melding_BBB.php
  2011-10-01 18:33:30 UTC (rev 7769)
@@ -1,15 +1,99 @@
 <?php
        $db = & $GLOBALS['phpgw']->db;
-
+//_debug_array($data);
+//_debug_array($id);
+       $_closed = false;
        if(in_array('status', $this->fields_updated))
        {
-               $_status = (int) trim($data['status'],'C');
-               $db->query("SELECT * from fm_tts_status WHERE id = 
{$_status}",__LINE__,__FILE__);
-               $this->db->next_record();
-               if($db->f('closed'))
+               if($data['status'] == 'X')
                {
-                       _debug_array($this->fields_updated);                    
        
+                       $_closed = true;
                }
+               else if(stripos($data['status'], 'C') === 0)
+               {
+                       $_status = (int) trim($data['status'],'C');
+                       $db->query("SELECT * from fm_tts_status WHERE id = 
{$_status}",__LINE__,__FILE__);
+                       $this->db->next_record();
+                       if($db->f('closed'))
+                       {
+                               $_closed = true;
+                       }
+               }
        }
-       
 
+       $projects = array();    
+       if ($_closed) // take action
+       {
+               $interlink      = CreateObject('property.interlink');
+               $targets = $interlink->get_relation('property', '.ticket', $id, 
'target');
+               foreach ($targets as $target)
+               {
+                       if($target['location'] == '.project')
+                       {
+                               foreach ($target['data'] as $_data)
+                               {
+                                       $project = 
execMethod('property.soproject.read_single', $_data['id']);
+                                       $projects[] = array
+                                       (
+                                               'id'                    => 
$_data['id'],
+                                               'coordinator'   => 
$project['coordinator'],
+                                               'link'                  => 
$_data['link'],
+                                               'statustext'    => 
$_data['statustext']
+                                       );
+                               }
+                       }
+               }
+               
+               if (!is_object($GLOBALS['phpgw']->send))
+               {
+                       $GLOBALS['phpgw']->send = CreateObject('phpgwapi.send');
+               }
+
+               $validator      = 
CreateObject('phpgwapi.EmailAddressValidator');               
+               $socommon       = CreateObject('property.socommon');
+
+               foreach ($projects as $project_info)
+               {
+                       $prefs = 
$socommon->create_preferences('property',$project_info['coordinator']);
+                       $account_name = 
$GLOBALS['phpgw']->accounts->get($project_info['coordinator'])->__toString();
+                       if ($validator->check_email_address($prefs['email']))
+                       {
+                               // Email address is technically valid
+                               // avoid problems with the delimiter in the 
send class
+                               if(strpos($account_name,','))
+                               {
+                                       $_account_name = explode(',', 
$account_name);
+                                       $account_name = 
ltrim($_account_name[1]) . ' ' . $_account_name[0];
+                               }
+
+                               $_to = "{$account_name}<{$prefs['email']}>";
+                               $from_name = 
$GLOBALS['phpgw_info']['user']['fullname'];
+
+                               if(strpos($from_name,','))
+                               {
+                                       $_from_name = explode(',', $from_name);
+                                       $from_name = ltrim($_from_name[1]) . ' 
' . $_from_name[0];
+                               }
+
+                               $from_email = 
"{$from_name}<{$GLOBALS['phpgw_info']['user']['preferences']['property']['email']}>";
+                               $cc = '';
+                               $bcc ='';
+                               $subject = "Status er endret tor melding 
tilknyttet prosjekt {$project_info['id']}";
+                               $body ="<H2>{$subject}</H2>";
+                               $body .= "</br><a 
href='{$project_info['link']}'>{$subject}</a>";
+
+                               try
+                               {
+                                       $GLOBALS['phpgw']->send->msg('email', 
$_to, $subject, stripslashes($body), '', $cc, $bcc, $from_email, $from_name, 
'html', '');
+                               }
+                               catch (phpmailerException $e)
+                               {
+                                       $receipt['error'][] = array('msg' => 
$e->getMessage());
+                               }
+                       }
+                       else
+                       {
+                               $receipt['error'][] = array('msg'=>lang('This 
user has not defined an email address !') . ' : ' . $account_name);
+                       }
+               }
+       }




reply via email to

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