<?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;
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
?>
|