oxvoucherserie.php

Go to the documentation of this file.
00001 <?php
00002 
00007 class oxVoucherSerie extends oxBase
00008 {
00009 
00014     protected $_oGroups = null;
00015 
00019     protected $_sCoreTbl = 'oxvoucherseries';
00020 
00024     protected $_sClassName = 'oxvoucherserie';
00025 
00029     public function __construct()
00030     {
00031         parent::__construct();
00032         $this->init( $this->_sCoreTbl);
00033     }
00034 
00042     public function delete( $sOxId = null )
00043     {
00044         if ( !$sOxId ) {
00045             $sOxId = $this->getId();
00046         }
00047 
00048 
00049         $this->unsetDiscountRelations();
00050         $this->unsetUserGroups();
00051         $this->deleteVoucherList();
00052         parent::delete( $sOxId );
00053     }
00054 
00060     public function setUserGroups()
00061     {
00062         if ( $this->_oGroups === null ) {
00063             $this->_oGroups = oxNew( 'oxlist' );
00064             $this->_oGroups->init( 'oxgroups' );
00065             $sSelect  = 'select gr.* from oxgroups as gr, oxobject2group as o2g where ';
00066             $sSelect .= 'o2g.oxobjectid = "'. $this->getId() .'" and gr.oxid = o2g.oxgroupsid ';
00067             $this->_oGroups->selectString( $sSelect );
00068         }
00069 
00070         return $this->_oGroups;
00071     }
00072 
00078     public function unsetUserGroups()
00079     {
00080         $sDelete = 'delete from oxobject2group where oxobjectid = "' . $this->getId() . '"';
00081         oxDb::getDb()->execute( $sDelete );
00082     }
00083 
00089     public function unsetDiscountRelations()
00090     {
00091         $sDelete = 'delete from oxobject2discount where oxobject2discount.oxdiscountid = "' . $this->getId() . '"';
00092         oxDb::getDb()->execute( $sDelete );
00093     }
00094 
00100     public function getVoucherList()
00101     {
00102         $oVoucherList = oxNew( 'oxvoucherlist' );
00103         $sSelect = 'select * from oxvouchers where oxvoucherserieid = "' . $this->getId() . '"';
00104         $oVoucherList->selectString( $sSelect );
00105         return $oVoucherList;
00106     }
00107 
00113     public function deleteVoucherList()
00114     {
00115         $sDelete = 'delete from oxvouchers where oxvoucherserieid = "' . $this->getId() . '"';
00116         oxDb::getDb()->execute( $sDelete );
00117     }
00118 
00124     public function countVouchers()
00125     {
00126         $aStatus = array();
00127 
00128         $oDB = oxDb::getDb();
00129         $sQuery = 'select count(*) as total from oxvouchers where oxvoucherserieid = "' . $this->getId() . '"';
00130         $aStatus['total'] = $oDB->getOne( $sQuery );
00131 
00132         $sQuery = 'select count(*) as used from oxvouchers where oxvoucherserieid = "' . $this->getId()  . '" and oxorderid is not NULL and oxorderid != ""';
00133         $aStatus['used'] = $oDB->getOne( $sQuery );
00134 
00135         $aStatus['available'] = $aStatus['total'] - $aStatus['used'];
00136 
00137         return $aStatus;
00138     }
00139 }