|
|
- <?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 Quinta
- * @subpackage AdminUI
- *
- */
- 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('LastModification');
- $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('ShippingCost');
- $this->dtgOrders->MetaAddColumn('ShippingCharged');
- $this->dtgOrders->MetaAddColumn('HandlingCost');
- $this->dtgOrders->MetaAddColumn('HandlingCharged');
- $this->dtgOrders->MetaAddColumn('Tax');
- $this->dtgOrders->MetaAddColumn('ProductTotalCharged');
- $this->dtgOrders->MetaAddColumn('Notes');
- $this->dtgOrders->MetaAddColumn(QQN::Order()->ShippingMethod);
- $this->dtgOrders->MetaAddColumn(QQN::Order()->PaymentMethod);
- $this->dtgOrders->MetaAddTypeColumn('StatusId', 'OrderStatusType');
- $this->dtgOrders->MetaAddTypeColumn('TypeId', 'OrderType');
-
- // 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);
- }
- }
- ?>
|