2 /*********************************************************************************
3 * SugarCRM Community Edition is a customer relationship management program developed by
4 * SugarCRM, Inc. Copyright (C) 2004-2013 SugarCRM Inc.
6 * This program is free software; you can redistribute it and/or modify it under
7 * the terms of the GNU Affero General Public License version 3 as published by the
8 * Free Software Foundation with the addition of the following permission added
9 * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10 * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
11 * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
13 * This program is distributed in the hope that it will be useful, but WITHOUT
14 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15 * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
18 * You should have received a copy of the GNU Affero General Public License along with
19 * this program; if not, see http://www.gnu.org/licenses or write to the Free
20 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
23 * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
24 * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
26 * The interactive user interfaces in modified source and object code versions
27 * of this program must display Appropriate Legal Notices, as required under
28 * Section 5 of the GNU Affero General Public License version 3.
30 * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31 * these Appropriate Legal Notices must retain the display of the "Powered by
32 * SugarCRM" logo. If the display of the logo is not reasonably feasible for
33 * technical reasons, the Appropriate Legal Notices must display the words
34 * "Powered by SugarCRM".
35 ********************************************************************************/
37 require_once 'modules/Opportunities/Opportunity.php';
39 class SugarTestOpportunityUtilities
42 private static $_createdOpportunities = array();
44 private static $_createdAccount = null;
46 private function __construct()
50 private function _createAccount($time)
52 if (self::$_createdAccount === null)
54 $name = 'SugarOpportunityAccount';
55 $account = new Account();
56 $account->name = $name . $time;
57 $account->email1 = 'account@' . $time . 'sugar.com';
60 $GLOBALS['db']->commit();
61 self::$_createdAccount = $account;
64 return self::$_createdAccount;
67 private function _createOpportunity($id, $time, $account)
70 $name = 'SugarOpportunity';
72 $opportunity = new Opportunity();
76 $opportunity->new_with_id = true;
77 $opportunity->id = $id;
80 $opportunity->name = $name . $time;
81 $opportunity->amount = 10000;
82 $opportunity->account_id = $account->id;
83 $opportunity->account_name = $account->name;
84 $opportunity->date_closed = $timedate->to_display_date_time(gmdate("Y-m-d H:i:s"));
87 $GLOBALS['db']->commit();
89 self::$_createdOpportunities[] = $opportunity;
94 public static function createOpportunity($id = '', Account $account = null)
98 if ($account === null)
100 $account = self::_createAccount($time);
103 $opportunity = self::_createOpportunity($id, $time, $account);
108 public static function setCreatedOpportunity($opportunity_ids)
110 foreach ($opportunity_ids as $opportunity_id)
112 $opportunity = new Opportunity();
113 $opportunity->id = $opportunity_id;
114 self::$_createdOpportunities[] = $opportunity;
118 public static function removeAllCreatedOpportunities()
120 $opportunity_ids = self::getCreatedOpportunityIds();
122 if (!empty($opportunity_ids))
124 $GLOBALS['db']->query('DELETE FROM opportunities WHERE id IN (\'' . implode("', '", $opportunity_ids) . '\')');
125 $GLOBALS['db']->query('DELETE FROM opportunities_contacts WHERE opportunity_id IN (\'' . implode("', '", $opportunity_ids) . '\')');
128 if (self::$_createdAccount !== null && self::$_createdAccount->id)
130 $GLOBALS['db']->query('DELETE FROM accounts WHERE id = \'' . self::$_createdAccount->id . '\'');
134 public static function getCreatedOpportunityIds()
136 $opportunity_ids = array();
138 foreach (self::$_createdOpportunities as $opportunity)
140 $opportunity_ids[] = $opportunity->id;
143 return $opportunity_ids;