Overview

Packages

  • application
    • commands
    • components
      • actions
      • filters
      • leftWidget
      • permissions
      • sortableWidget
      • util
      • webupdater
      • x2flow
        • actions
        • triggers
      • X2GridView
      • X2Settings
    • controllers
    • models
      • embedded
    • modules
      • accounts
        • controllers
        • models
      • actions
        • controllers
        • models
      • calendar
        • controllers
        • models
      • charts
        • models
      • contacts
        • controllers
        • models
      • docs
        • components
        • controllers
        • models
      • groups
        • controllers
        • models
      • marketing
        • components
        • controllers
        • models
      • media
        • controllers
        • models
      • mobile
        • components
      • opportunities
        • controllers
        • models
      • products
        • controllers
        • models
      • quotes
        • controllers
        • models
      • services
        • controllers
        • models
      • template
        • models
      • users
        • controllers
        • models
      • workflow
        • controllers
        • models
      • x2Leads
        • controllers
        • models
  • None
  • system
    • base
    • caching
    • console
    • db
      • ar
      • schema
    • validators
    • web
      • actions
      • auth
      • helpers
      • widgets
        • captcha
        • pagers
  • zii
    • widgets
      • grid

Classes

  • Opportunity
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /*****************************************************************************************
  3:  * X2Engine Open Source Edition is a customer relationship management program developed by
  4:  * X2Engine, Inc. Copyright (C) 2011-2016 X2Engine Inc.
  5:  * 
  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 X2ENGINE, X2ENGINE DISCLAIMS THE WARRANTY
 11:  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
 12:  * 
 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
 16:  * details.
 17:  * 
 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
 21:  * 02110-1301 USA.
 22:  * 
 23:  * You can contact X2Engine, Inc. P.O. Box 66752, Scotts Valley,
 24:  * California 95067, USA. or at email address contact@x2engine.com.
 25:  * 
 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.
 29:  * 
 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:  * X2Engine" 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 X2Engine".
 35:  *****************************************************************************************/
 36: 
 37: Yii::import('application.models.X2Model');
 38: 
 39: /**
 40:  * This is the model class for table "x2_opportunities".
 41:  *
 42:  * @package application.modules.opportunities.models
 43:  */
 44: class Opportunity extends X2Model {
 45:     /**
 46:      * Returns the static model of the specified AR class.
 47:      * @return Opportunity the static model class
 48:      */
 49:     public static function model($className=__CLASS__) { return parent::model($className); }
 50: 
 51:     /**
 52:      * @return string the associated database table name
 53:      */
 54:     public function tableName() { return 'x2_opportunities'; }
 55: 
 56:     public function behaviors() {
 57:         return array_merge(parent::behaviors(),array(
 58:             'X2LinkableBehavior'=>array(
 59:                 'class'=>'X2LinkableBehavior',
 60:                 'module'=>'opportunities'
 61:             ),
 62:             'ERememberFiltersBehavior' => array(
 63:                 'class' => 'application.components.ERememberFiltersBehavior',
 64:                 'defaults'=>array(),
 65:                 'defaultStickOnClear'=>false
 66:             )
 67:         ));
 68:     }
 69: 
 70:     /**
 71:      * Formats data for associatedContacts before saving
 72:      * @return boolean whether or not to save
 73:      */
 74:     public function beforeSave() {
 75:         if(isset($this->associatedContacts))
 76:             $this->associatedContacts = self::parseContacts($this->associatedContacts);
 77: 
 78:         return parent::beforeSave();
 79:     }
 80: 
 81:     public static function getNames() {
 82:         $arr = Opportunity::model()->findAll();
 83:         $names = array(0=>'None');
 84:         foreach($arr as $opportunity)
 85:             $names[$opportunity->id] = $opportunity->name;
 86: 
 87:         return $names;
 88:     }
 89: 
 90:     public static function parseUsers($userArray){
 91:         return implode(', ',$userArray);
 92:     }
 93: 
 94:     public static function parseUsersTwo($arr){
 95:         $str="";
 96:         if(is_array($arr)){
 97:             $arr=array_keys($arr);
 98:             $str=implode(', ',$arr);
 99:         }
100: 
101:         return $str;
102:     }
103: 
104:     public static function parseContacts($contactArray){
105:         if(is_array($contactArray)){
106:             return implode(' ',$contactArray);
107:         }else{
108:             return $contactArray;
109:         }
110:     }
111: 
112:     public static function parseContactsTwo($arr){
113:         $str="";
114:         foreach($arr as $id=>$contact){
115:             $str.=$id." ";
116:         }
117:         return $str;
118:     }
119: 
120:     public static function getOpportunityLinks($accountId) {
121: 
122:         $allOpportunities = X2Model::model('Opportunity')->findAllByAttributes(array('accountName'=>$accountId));
123: 
124:         $links = array();
125:         foreach($allOpportunities as $model) {
126:             $links[] = CHtml::link($model->name,array('/opportunities/opportunities/view','id'=>$model->id));
127:         }
128:         return implode(', ',$links);
129:     }
130: 
131:     public static function editContactArray($arr, $model) {
132: 
133:         $rels=Relationships::model()->findAllByAttributes(array('firstType'=>'Contacts','secondType'=>'Opportunity','secondId'=>$model->id));
134:         $pieces=array();
135:         foreach($rels as $relationship){
136:             $contact=X2Model::model('Contacts')->findByPk($relationship->firstId);
137:             if(isset($contact)){
138:                 $pieces[$relationship->firstId]=$contact->name;
139:             }
140:         }
141:         unset($arr[0]);
142:         foreach($pieces as $id=>$contact){
143:             if(isset($arr[$id])){
144:                 unset($arr[$id]);
145:             }
146:         }
147: 
148:         return $arr;
149:     }
150: 
151:     public static function editUserArray($arr, $model) {
152: 
153:         $pieces=explode(', ',$model->assignedTo);
154:         unset($arr['Anyone']);
155:         unset($arr['admin']);
156:         foreach($pieces as $user){
157:             if(array_key_exists($user,$arr)){
158:                 unset($arr[$user]);
159:             }
160:         }
161:         return $arr;
162:     }
163: 
164:     public static function editUsersInverse($arr) {
165: 
166:         $data=array();
167: 
168:         foreach($arr as $username){
169:             if($username!='' && !is_numeric($username))
170:                 $data[]=User::model()->findByAttributes(array('username'=>$username));
171:             elseif(is_numeric($username))
172:                 $data[]=Groups::model()->findByPK($username);
173:         }
174: 
175:         $temp=array();
176:         if(isset($data)){
177:             foreach($data as $item){
178:                 if(isset($item)){
179:                     if($item instanceof User)
180:                         $temp[$item->username]=$item->firstName.' '.$item->lastName;
181:                     else
182:                         $temp[$item->id]=$item->name;
183:                 }
184:             }
185:         }
186:         return $temp;
187:     }
188: 
189:     public static function editContactsInverse($arr) {
190:         $data=array();
191: 
192:         foreach($arr as $id){
193:             if($id!='')
194:                 $data[]=X2Model::model('Contacts')->findByPk($id);
195:         }
196:         $temp=array();
197: 
198:         foreach($data as $item){
199:             $temp[$item->id]=$item->firstName.' '.$item->lastName;
200:         }
201:         return $temp;
202:     }
203: 
204:     public function search($resultsPerPage=null, $uniqueId=null) {
205:         $criteria=new CDbCriteria;
206:         // $parameters=array("condition"=>"salesStage='Working'",'limit'=>ceil(Profile::getResultsPerPage()));
207:         $parameters=array('limit'=>ceil(Profile::getResultsPerPage()));
208:         $criteria->scopes=array('findAll'=>array($parameters));
209: 
210:         return $this->searchBase($criteria, $resultsPerPage);
211:     }
212: 
213:     public function searchAdmin() {
214:         $criteria=new CDbCriteria;
215: 
216:         return $this->searchBase($criteria);
217:     }
218: 
219: 
220: }
221: 
X2CRM Documentation API documentation generated by ApiGen 2.8.0