| <?php |
| /******************************************************************************* |
| * Copyright (c) 2011 Eclipse Foundation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Wayne Beaton (Eclipse Foundation)- initial API and implementation |
| *******************************************************************************/ |
| require_once($_SERVER['DOCUMENT_ROOT'] . "/projects/classes/common.php"); |
| require_once($_SERVER['DOCUMENT_ROOT'] . "/projects/classes/debug.php"); |
| trace_file_info(__FILE__); |
| |
| function getOrganization($id) { |
| $organizations = getOrganizations(); |
| return $organizations[$id]; |
| } |
| |
| function getOrganizations() { |
| global $_organizations; |
| |
| if ($_organizations) return $_organizations; |
| |
| global $App; |
| $_organizations = array(); |
| |
| $sql = "select |
| o.OrganizationId as id, Name1 as name, SCRM_GUID, |
| om.Relation as type, om.EntryDate as startDate, om.ExpiryDate as endDate |
| from Organizations as o |
| left join OrganizationMemberships as om on (o.OrganizationId = om.OrganizationId)"; |
| |
| $result = $App->foundation_sql($sql); |
| while ($row = mysql_fetch_assoc($result)) { |
| $id = $row['id']; |
| if (!isset($_organizations[$id])) |
| $_organizations[$id] = new Organization($row); |
| if (isset($row['type'])) { |
| $_organizations[$id]->memberships[] = new Membership($row); |
| } |
| } |
| |
| return $_organizations; |
| } |
| |
| class Organization { |
| var $data; |
| var $memberships = array(); |
| |
| function __construct($row) { |
| $this->data = $row; |
| } |
| |
| function getId() { |
| return $this->data['id']; |
| } |
| |
| function getSugarId() { |
| return $this->data['SCRM_GUID']; |
| } |
| |
| function getName() { |
| return $this->data['name']; |
| } |
| |
| function isMember() { |
| foreach($this->memberships as $membership) { |
| if ($membership->isActive()) return true; |
| } |
| return false; |
| } |
| } |
| |
| class Membership { |
| var $data; |
| |
| function __construct($row) { |
| $this->data = $row; |
| } |
| |
| function isActive() { |
| // if we have an end date, we're not active. Otherwise, we are. |
| return $this->getEndDate() ? false : true; |
| } |
| |
| function getEndDate() { |
| if (!$this->data['endDate']) return null; |
| $date = strtotime($this->data['endDate']); |
| return $date < 0 ? null : $date; |
| } |
| } |
| ?> |