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