Exemplo n.º 1
0
 function get_all_parties($projectID = false, $task_exists = false)
 {
     $current_user =& singleton("current_user");
     if (!$projectID && is_object($this)) {
         $projectID = $this->get_id();
     }
     if ($projectID) {
         $extra_interested_parties = config::get_config_item("defaultInterestedParties");
         foreach ((array) $extra_interested_parties as $name => $email) {
             $interestedPartyOptions[$email]["name"] = $name;
         }
         // Get primary client contact from Project page
         $db = new db_alloc();
         $q = prepare("SELECT projectClientName,projectClientEMail FROM project WHERE projectID = %d", $projectID);
         $db->query($q);
         $db->next_record();
         $interestedPartyOptions[$db->f("projectClientEMail")]["name"] = $db->f("projectClientName");
         $interestedPartyOptions[$db->f("projectClientEMail")]["external"] = "1";
         // Get all other client contacts from the Client pages for this Project
         $q = prepare("SELECT clientID FROM project WHERE projectID = %d", $projectID);
         $db->query($q);
         $db->next_record();
         $clientID = $db->f("clientID");
         if ($clientID) {
             $client = new client($clientID);
             $interestedPartyOptions = array_merge((array) $interestedPartyOptions, (array) $client->get_all_parties());
         }
         // Get all the project people for this tasks project
         $q = prepare("SELECT emailAddress, firstName, surname, person.personID, username\n                     FROM projectPerson \n                LEFT JOIN person on projectPerson.personID = person.personID \n                    WHERE projectPerson.projectID = %d AND person.personActive = 1 ", $projectID);
         $db->query($q);
         while ($db->next_record()) {
             unset($name);
             $db->f("firstName") && $db->f("surname") and $name = $db->f("firstName") . " " . $db->f("surname");
             $name or $name = $db->f("username");
             $interestedPartyOptions[$db->f("emailAddress")]["name"] = $name;
             $interestedPartyOptions[$db->f("emailAddress")]["personID"] = $db->f("personID");
             $interestedPartyOptions[$db->f("emailAddress")]["internal"] = true;
         }
     }
     if (is_object($current_user) && $current_user->get_id()) {
         $interestedPartyOptions[$current_user->get_value("emailAddress")]["name"] = $current_user->get_name();
         $interestedPartyOptions[$current_user->get_value("emailAddress")]["personID"] = $current_user->get_id();
     }
     // return an aggregation of the current task/proj/client parties + the existing interested parties
     $interestedPartyOptions = interestedParty::get_interested_parties("project", $projectID, $interestedPartyOptions, $task_exists);
     return (array) $interestedPartyOptions;
 }
Exemplo n.º 2
0
 function get_all_parties($projectID = "", $clientID = "")
 {
     $db = new db_alloc();
     $interestedPartyOptions = array();
     if (!$projectID && is_object($this)) {
         $projectID = $this->get_value("projectID");
     }
     if ($projectID) {
         $project = new project($projectID);
         $interestedPartyOptions = $project->get_all_parties();
     }
     if ($clientID) {
         $client = new client($clientID);
         $interestedPartyOptions = array_merge((array) $interestedPartyOptions, (array) $client->get_all_parties());
     }
     $extra_interested_parties = config::get_config_item("defaultInterestedParties") or $extra_interested_parties = array();
     foreach ($extra_interested_parties as $name => $email) {
         $interestedPartyOptions[$email] = array("name" => $name);
     }
     // return an aggregation of the current task/proj/client parties + the existing interested parties
     $interestedPartyOptions = interestedParty::get_interested_parties("invoice", $this->get_id(), $interestedPartyOptions);
     return $interestedPartyOptions;
 }