| <?php | |
| 	require(__DATAGEN_META_CONTROLS__ . '/AddressMetaControlGen.class.php'); | |
| 
 | |
| 	/** | |
| 	 * This is a MetaControl customizable subclass, providing a QForm or QPanel access to event handlers | |
| 	 * and QControls to perform the Create, Edit, and Delete functionality of the | |
| 	 * Address class.  This code-generated class extends from | |
| 	 * the generated MetaControl class, which contains all the basic elements to help a QPanel or QForm | |
| 	 * display an HTML form that can manipulate a single Address object. | |
| 	 * | |
| 	 * To take advantage of some (or all) of these control objects, you | |
| 	 * must create a new QForm or QPanel which instantiates a AddressMetaControl | |
| 	 * class. | |
| 	 * | |
| 	 * This file is intended to be modified.  Subsequent code regenerations will NOT modify | |
| 	 * or overwrite this file. | |
| 	 *  | |
| 	 * @package Quasi | |
| 	 * @subpackage MetaControls | |
| 	 */ | |
| 	class AddressMetaControl extends AddressMetaControlGen | |
|     { | |
|         /**     | |
|         * @var QListBox - a listbox with People associated with a specific person | |
|          */ | |
|          protected $lstMyPeople; | |
|         /**     | |
|         * @var QListBox - a listbox with Address associated with a specific Account | |
|          */ | |
|          protected $lstMyAddresses; | |
|             | |
|         /** | |
|          * Create and setup QListBox lstMyPeople | |
|          * This creates a listbox containing only persons associated with the Person | |
|          * passed as PersonId. | |
|          * | |
|          *@param integer intPersonId - the person for whom to create an associated listbox | |
|          * @param string $strControlId optional ControlId to use | |
|          * @return QListBox | |
|          */ | |
|         public function lstMyPeople_Create($intPersonId, $strControlId = null) | |
|         { | |
|             $this->lstPerson = new QListBox($this->objParentObject, $strControlId); | |
|             $this->lstPerson->Name = QApplication::Translate('Person'); | |
|             $this->lstPerson->Required = true; | |
|             if (!$this->blnEditMode) | |
|                 $this->lstPerson->AddItem(QApplication::Translate('- Select One -'), null); | |
| 
 | |
|             $aryPersons[] = Person::LoadById($intPersonId); | |
|              | |
|             $aryOwnedPersons = Person::LoadArrayByOwnerPersonId($intPersonId); | |
|              | |
|             if($aryOwnedPersons) | |
|                 $aryPersons = array_merge($aryPersons, $aryOwnedPersons); | |
|              | |
|             if ($aryPersons) | |
|                 foreach ($aryPersons as $objPerson) | |
|                 { | |
|                     $objListItem = new QListItem($objPerson->__toString(), $objPerson->Id); | |
|                     if ($this->objAddress->PersonId == $objPerson->Id) | |
|                         $objListItem->Selected = true; | |
|                     $this->lstPerson->AddItem($objListItem); | |
|                 } | |
|             return $this->lstPerson; | |
|         } | |
|         /** | |
|          * Create and setup QListBox lstMyAddresses | |
|          * This creates a listbox containing only addresses associated with the Account | |
|          * passed as AccountId. | |
|          * | |
|          * @param Account objAccount - the account for which to create an associated listbox | |
|          * @param string $strControlId optional ControlId to use | |
|          * @return QListBox | |
|          */ | |
|         public function lstMyAddresses_Create($objAccount, $strControlId = null) | |
|         { | |
|              | |
|             $this->lstMyAddresses = new QListBox($this->objParentObject, $strControlId); | |
|             $this->lstMyAddresses->Name = QApplication::Translate('My Addresses'); | |
|             $this->lstMyAddresses->Required = true; | |
|             if (!$this->blnEditMode) | |
|                 $this->lstMyAddresses->AddItem(QApplication::Translate('- Select One -'), null); | |
| 
 | |
|             if(!$objAccount instanceof Account) | |
|                 return $this->lstMyAddresses; | |
|              | |
|             $aryPersons[] = Person::LoadById($objAccount->PersonId); | |
|              | |
|             $aryOwnedPersons = Person::LoadArrayByOwnerPersonId($objAccount->PersonId); | |
|             if($aryOwnedPersons) | |
|                 $aryPersons = array_merge($aryPersons, $aryOwnedPersons); | |
| 
 | |
|             $aryPersonIds = array(); | |
|              | |
|             foreach($aryPersons as $objPerson) | |
|                 $aryPersonIds[] = $objPerson->Id; | |
|                  | |
|             $aryAddresses = Address::QueryArray( QQ::In( QQN::Address()->PersonId, $aryPersonIds ));     | |
| 
 | |
|             if( is_array($aryAddresses) ) | |
|                 foreach ($aryAddresses as $objAddress) | |
|                 { | |
|                     $objListItem = new QListItem($objAddress->__toString(), $objAddress->Id); | |
|                     if ($this->objAddress->Id == $objAddress->Id) | |
|                         $objListItem->Selected = true; | |
|                     $this->lstMyAddresses->AddItem($objListItem); | |
|                 } | |
|             return $this->lstMyAddresses; | |
|         } | |
|         /** | |
|          * Create and setup QListBox lstZone - this checks our Address for a country id and attempts | |
|          * to load only those zones for the country. | |
|          * @param integer intCountryId - optional country to filter zones by | |
|          * @param string $strControlId optional ControlId to use | |
|          * @return QListBox | |
|          */ | |
|         public function lstZone_Create($intCountryId = null, $strControlId = null) | |
|         { | |
|             $this->lstZone = new QListBox($this->objParentObject, $strControlId); | |
|             $this->lstZone->Name = QApplication::Translate('Zone'); | |
|             $this->lstZone->Required = true; | |
| 
 | |
|             if($intCountryId)             | |
|                 $aryZones = ZoneType::GetNameArrayByCountryId($intCountryId); | |
|             elseif($this->objAddress->CountryId) | |
|                 $aryZones = ZoneType::GetNameArrayByCountryId($this->objAddress->CountryId); | |
|             else | |
|                 $aryZones = ZoneType::$NameArray; | |
|                  | |
|             foreach (ZoneType::$NameArray as $intId => $strValue) | |
|                 $this->lstZone->AddItem(new QListItem($strValue, $intId, $this->objAddress->ZoneId == $intId)); | |
|             return $this->lstZone; | |
|         } | |
|          | |
|         public function __get($strName) | |
|         { | |
|             switch ($strName) | |
|             { | |
|                 case 'PersonId': | |
|                     if($this->objAddress instanceof Address) | |
|                         return $this->objAddress->PersonId; | |
|                     return null; | |
|                 default: | |
|                     try { | |
|                         return parent::__get($strName); | |
|                     } catch (QCallerException $objExc) { | |
|                         $objExc->IncrementOffset(); | |
|                         throw $objExc; | |
|                     } | |
|             } | |
|         } | |
|         public function __set($strName, $mixValue) | |
|         { | |
|             switch ($strName) | |
|             { | |
|                 case 'PersonId': | |
|                     //set up the lstPerson control so that SaveAddress will work | |
|                     if( ! $this->lstPerson instanceof QListBox ) | |
|                         $this->lstPerson_Create(); | |
|                                                           | |
|                     try { | |
|                         return ($this->lstPerson->SelectedValue = QType::Cast($mixValue, QType::Integer)); | |
|                     } catch (QInvalidCastException $objExc) { | |
|                         $objExc->IncrementOffset(); | |
|                         throw $objExc; | |
|                     } | |
| 
 | |
|                 default: | |
|                     try { | |
|                         return (parent::__set($strName, $mixValue)); | |
|                     } catch (QCallerException $objExc) { | |
|                         $objExc->IncrementOffset(); | |
|                         throw $objExc; | |
|                     } | |
|             } | |
|         } | |
| 
 | |
| 	} | |
| ?>
 |