A Qcodo based CMS/ecommerce framework
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

247 lines
12 KiB

<?php
/**
* This is the abstract Panel class for the List All functionality
* of the Order class. This code-generated class
* contains a datagrid to display an HTML page that can
* list a collection of Order objects. It includes
* functionality to perform pagination and sorting on columns.
*
* To take advantage of some (or all) of these control objects, you
* must create a new QPanel which extends this OrderListPanelBase
* class.
*
* Any and all changes to this file will be overwritten with any subsequent re-
* code generation.
*
* @package Quasi
* @subpackage Drafts
*
*/
class OrderListPanel extends QPanel
{
// Local instance of the Meta DataGrid to list Orders
public $dtgOrders;
// Other public QControls in this panel
public $btnCreateNew;
public $pxyViewOrder;
public $pxyViewAccount;
public $lblMessage;
public $txtOrderNumberSearch;
public $txtAccountNumberSearch;
public $lstStatus;
protected $intOrderStatusId = null;
protected $intAccountId = null;
// Callback Method Names
protected $strSetEditPanelMethod;
protected $strCloseEditPanelMethod;
public function __construct($objParentObject, $strSetEditPanelMethod, $strCloseEditPanelMethod, $strControlId = null) {
// Call the Parent
try {
parent::__construct($objParentObject, $strControlId);
} catch (QCallerException $objExc) {
$objExc->IncrementOffset();
throw $objExc;
}
// Record Method Callbacks
$this->strSetEditPanelMethod = $strSetEditPanelMethod;
$this->strCloseEditPanelMethod = $strCloseEditPanelMethod;
// Setup the Template
$this->Template = 'OrderListPanel.tpl.php';
//messages (eg. Name not found ..)
$this->lblMessage = new QLabel($this);
$this->txtOrderNumberSearch = new QIntegerTextBox($this);
$this->txtOrderNumberSearch->AddAction(new QEnterKeyEvent(), new QServerControlAction($this, 'txtViewOrder_Click'));
$this->txtOrderNumberSearch->Name = 'Order No.:';
$this->txtOrderNumberSearch->Width = '5em';
$this->txtOrderNumberSearch->CausesValidation = $this->txtOrderNumberSearch;
$this->txtAccountNumberSearch = new QIntegerTextBox($this);
$this->txtAccountNumberSearch->AddAction(new QEnterKeyEvent(), new QServerControlAction($this, 'txtViewByAccount_Click'));
$this->txtAccountNumberSearch->Name = 'Account No.:';
$this->txtAccountNumberSearch->Width = '5em';
$this->txtAccountNumberSearch->CausesValidation = $this->txtAccountNumberSearch;
$this->lstStatus = new QListBox($this, $strControlId);
$this->lstStatus->Name = 'Select Status:';
$this->lstStatus->AddItem(new QListItem('Any', 0));
foreach (OrderStatusType::$NameArray as $intId => $strValue)
$this->lstStatus->AddItem(new QListItem($strValue, $intId+1));
$this->lstStatus->AddAction(new QChangeEvent(), new QAjaxControlAction($this, 'lstStatus_Selected') );
// Instantiate the Meta DataGrid
$this->dtgOrders = new OrderDataGrid($this);
$this->dtgOrders->SetDataBinder('OrderDataBinder', $this);
$this->dtgOrders->CssClass = 'datagrid';
$this->dtgOrders->AlternateRowStyle->CssClass = 'alternate';
$this->dtgOrders->Paginator = new QPaginator($this->dtgOrders);
$this->dtgOrders->ItemsPerPage = 25;
$this->pxyViewOrder = new QControlProxy($this);
$this->pxyViewOrder->AddAction(new QClickEvent(), new QAjaxControlAction($this, 'pxyViewOrder_Click'));
$this->pxyViewAccount = new QControlProxy($this);
$this->pxyViewAccount->AddAction(new QClickEvent(), new QAjaxControlAction($this, 'pxyViewAccount_Click'));
$this->dtgOrders->MetaAddProxyColumn($this->pxyViewOrder, 'Id');
$this->dtgOrders->MetaAddProxyColumn($this->pxyViewAccount, QQN::Order()->Account);
$this->dtgOrders->GetColumn(0)->Name = "Order Number";
$this->dtgOrders->MetaAddColumn('CreationDate');
$this->dtgOrders->MetaAddColumn('LastModificationDate');
$this->dtgOrders->MetaAddColumn('CompletionDate');
$this->dtgOrders->MetaAddColumn(QQN::Order()->ShippingMethod);
$this->dtgOrders->MetaAddColumn(QQN::Order()->PaymentMethod);
$this->dtgOrders->MetaAddTypeColumn('StatusId', 'OrderStatusType');
$strOrderTotalParam = '<?= money_format("%n", $_ITEM->ProductTotalCharged '
. ' + $_ITEM->ShippingCharged '
. ' + $_ITEM->HandlingCharged '
. ' + $_ITEM->Tax ) ?>';
$objOrderTotalColumn = new QDataGridColumn('Order Total', $strOrderTotalParam );
$this->dtgOrders->AddColumn($objOrderTotalColumn);
/*
$this->dtgOrders->MetaAddColumn('ShippingCost');
$this->dtgOrders->MetaAddColumn('ProductTotalCost');
$this->dtgOrders->MetaAddColumn('ShippingCharged');
$this->dtgOrders->MetaAddColumn('HandlingCharged');
$this->dtgOrders->MetaAddColumn('Tax');
$this->dtgOrders->MetaAddColumn('ProductTotalCharged');
$this->dtgOrders->MetaAddColumn('ShippingNamePrefix');
$this->dtgOrders->MetaAddColumn('ShippingFirstName');
$this->dtgOrders->MetaAddColumn('ShippingMiddleName');
$this->dtgOrders->MetaAddColumn('ShippingLastName');
$this->dtgOrders->MetaAddColumn('ShippingNameSuffix');
$this->dtgOrders->MetaAddColumn('ShippingStreet1');
$this->dtgOrders->MetaAddColumn('ShippingStreet2');
$this->dtgOrders->MetaAddColumn('ShippingSuburb');
$this->dtgOrders->MetaAddColumn('ShippingCounty');
$this->dtgOrders->MetaAddColumn('ShippingCity');
$this->dtgOrders->MetaAddTypeColumn('ShippingZoneId', 'ZoneType');
$this->dtgOrders->MetaAddTypeColumn('ShippingCountryId', 'CountryType');
$this->dtgOrders->MetaAddColumn('ShippingPostalCode');
$this->dtgOrders->MetaAddColumn('BillingNamePrefix');
$this->dtgOrders->MetaAddColumn('BillingFirstName');
$this->dtgOrders->MetaAddColumn('BillingMiddleName');
$this->dtgOrders->MetaAddColumn('BillingLastName');
$this->dtgOrders->MetaAddColumn('BillingNameSuffix');
$this->dtgOrders->MetaAddColumn('BillingStreet1');
$this->dtgOrders->MetaAddColumn('BillingStreet2');
$this->dtgOrders->MetaAddColumn('BillingSuburb');
$this->dtgOrders->MetaAddColumn('BillingCounty');
$this->dtgOrders->MetaAddColumn('BillingCity');
$this->dtgOrders->MetaAddTypeColumn('BillingZoneId', 'ZoneType');
$this->dtgOrders->MetaAddTypeColumn('BillingCountryId', 'CountryType');
$this->dtgOrders->MetaAddColumn('BillingPostalCode');
$this->dtgOrders->MetaAddColumn('Notes');
*/
// Setup the Create New button
$this->btnCreateNew = new QButton($this);
$this->btnCreateNew->Text = QApplication::Translate('Create a New') . ' ' . QApplication::Translate('Order');
$this->btnCreateNew->AddAction(new QClickEvent(), new QAjaxControlAction($this, 'btnCreateNew_Click'));
}
public function pxyViewAccount_Click($strFormId, $strControlId, $intOrderId)
{
$objOrder = Order::Load($intOrderId);
if( $objOrder instanceof Order )
{
$objEditPanel = new AccountEditPanel($this, $this->strCloseEditPanelMethod, $objOrder->AccountId );
$strMethodName = $this->strSetEditPanelMethod;
$this->objForm->$strMethodName($objEditPanel);
}
}
public function pxyViewOrder_Click($strFormId, $strControlId, $strParameter)
{
$strParameterArray = explode(',', $strParameter);
$objEditPanel = new OrderEditPanel($this, $this->strCloseEditPanelMethod, $strParameterArray[0]);
$strMethodName = $this->strSetEditPanelMethod;
$this->objForm->$strMethodName($objEditPanel);
}
public function txtViewOrder_Click($strFormId, $strControlId, $strParameter)
{
$intOrderId = $this->txtOrderNumberSearch->Text;
if(Order::Load($intOrderId))
{
$this->lblMessage->Text = '';
$objEditPanel = new OrderEditPanel($this, $this->strCloseEditPanelMethod, $intOrderId );
$strMethodName = $this->strSetEditPanelMethod;
$this->objForm->$strMethodName($objEditPanel);
}
else
$this->lblMessage->Text = 'Order ' . $intOrderId . ' not found.';
}
public function txtViewByAccount_Click($strFormId, $strControlId, $strParameter)
{
$this->intAccountId = $this->txtAccountNumberSearch->Text;
$this->dtgOrders->Refresh();
}
public function lstStatus_Selected($strFormId, $strControlId, $strParameter)
{
$this->intOrderStatusId = $this->lstStatus->SelectedIndex;
$this->dtgOrders->Refresh();
}
public function OrderDataBinder()
{
$objClauses = array();
if ($objClause = $this->dtgOrders->OrderByClause)
array_push($objClauses, $objClause);
if ($objClause = $this->dtgOrders->LimitClause)
array_push($objClauses, $objClause);
if($this->intOrderStatusId && $this->intAccountId)
{
$this->dtgOrders->TotalItemCount = Order::QueryCount(QQ::AndCondition(
QQ::Equal( QQN::Order()->AccountId, $this->intAccountId),
QQ::Equal( QQN::Order()->StatusId, $this->intOrderStatusId)));
$aryOrders = Order::QueryArray( QQ::AndCondition(
QQ::Equal( QQN::Order()->AccountId, $this->intAccountId),
QQ::Equal( QQN::Order()->StatusId, $this->intOrderStatusId)),
$objClauses );
}
elseif($this->intOrderStatusId )
{
$this->dtgOrders->TotalItemCount = Order::QueryCount(QQ::Equal(QQN::Order()->StatusId, $this->intOrderStatusId));
$aryOrders = Order::QueryArray(QQ::Equal( QQN::Order()->StatusId, $this->intOrderStatusId), $objClauses );
}
elseif($this->intAccountId )
{
$this->dtgOrders->TotalItemCount = Order::QueryCount(QQ::Equal(QQN::Order()->AccountId, $this->intAccountId));
$aryOrders = Order::QueryArray(QQ::Equal( QQN::Order()->AccountId, $this->intAccountId), $objClauses );
}
else
{
$this->dtgOrders->TotalItemCount = Order::CountAll();
$aryOrders = Order::LoadAll( $objClauses );
}
$this->dtgOrders->DataSource = $aryOrders;
}
public function btnCreateNew_Click($strFormId, $strControlId, $strParameter)
{
$objEditPanel = new OrderEditPanel($this, $this->strCloseEditPanelMethod, null);
$strMethodName = $this->strSetEditPanelMethod;
$this->objForm->$strMethodName($objEditPanel);
}
}
?>