source/Application/Model/Voucher.php
public function getVoucherByNr($sVoucherNr, $aVouchers = [], $blCheckavalability = false)
    {
        $oRet = null;
        if (!empty($sVoucherNr)) {
            $sViewName = $this->getViewName();
            $sSeriesViewName = getViewName('oxvoucherseries');
            $oDb = \OxidEsales\Eshop\Core\DatabaseProvider::getDb();

            $sQ = "select {$sViewName}.* from {$sViewName}, {$sSeriesViewName} where
                        {$sSeriesViewName}.oxid = {$sViewName}.oxvoucherserieid and
                        {$sViewName}.oxvouchernr = " . $oDb->quote($sVoucherNr) . " and ";

            if (is_array($aVouchers)) {
                foreach ($aVouchers as $sVoucherId => $sSkipVoucherNr) {
                    $sQ .= "{$sViewName}.oxid != " . $oDb->quote($sVoucherId) . " and ";
                }
            }
            $sQ .= "( {$sViewName}.oxorderid is NULL || {$sViewName}.oxorderid = '' ) ";
            $sQ .= " and ( {$sViewName}.oxdateused is NULL || {$sViewName}.oxdateused = 0 ) ";

            //voucher timeout for 3 hours
            if ($blCheckavalability) {
                $iTime = time() - $this->_getVoucherTimeout();
                $sQ .= " and {$sViewName}.oxreserved < '{$iTime}' ";
            }

            $sQ .= " limit 1";

            if (!($oRet = $this->assignRecord($sQ))) {
                $oEx = oxNew(\OxidEsales\Eshop\Core\Exception\VoucherException::class);
                $oEx->setMessage('ERROR_MESSAGE_VOUCHER_NOVOUCHER');
                $oEx->setVoucherNr($sVoucherNr);
                throw $oEx;
            }
        }

        return $oRet;
    }
public function getVoucherByNr($sVoucherNr, $aVouchers = [], $blCheckavalability = false)
    {
        $oRet = null;
        if (!empty($sVoucherNr)) {
            $sViewName = $this->getViewName();
            $sSeriesViewName = getViewName('oxvoucherseries');
            $oDb = \OxidEsales\Eshop\Core\DatabaseProvider::getDb();

            $sQ = "select {$sViewName}.* from {$sViewName}, {$sSeriesViewName} where
                        {$sSeriesViewName}.oxid = {$sViewName}.oxvoucherserieid and
                        {$sViewName}.oxvouchernr = " . $oDb->quote($sVoucherNr) . " and ";

            if (is_array($aVouchers)) {
                foreach ($aVouchers as $sVoucherId => $sSkipVoucherNr) {
                    $sQ .= "{$sViewName}.oxid != " . $oDb->quote($sVoucherId) . " and ";
                }
            }
            $sQ .= "( {$sViewName}.oxorderid is NULL || {$sViewName}.oxorderid = '' ) ";
            $sQ .= " and ( {$sViewName}.oxdateused is NULL || {$sViewName}.oxdateused = 0 ) ";

            //voucher timeout for 3 hours
            if ($blCheckavalability) {
                $iTime = time() - $this->_getVoucherTimeout();
                $sQ .= " and {$sViewName}.oxreserved < '{$iTime}' ";
            }

            $sQ .= " limit 1";

            if (!($oRet = $this->assignRecord($sQ))) {
                $oEx = oxNew(\OxidEsales\Eshop\Core\Exception\VoucherException::class);
                $oEx->setMessage('ERROR_MESSAGE_VOUCHER_NOVOUCHER');
                $oEx->setVoucherNr($sVoucherNr);
                throw $oEx;
            }
        }

        return $oRet;
    }
public function getVoucherByNr ( $ sVoucherNr , $ aVouchers = [ ] , $ blCheckavalability = false ) { $ oRet = null ; if ( ! empty ( $ sVoucherNr ) ) { $ sViewName = $ this -> getViewName ( ) ; $ sSeriesViewName = getViewName ( 'oxvoucherseries' ) ; $ oDb = \ OxidEsales \ Eshop \ Core \ DatabaseProvider :: getDb ( ) ; $ sQ = "select {$sViewName}.* from {$sViewName}, {$sSeriesViewName} where
                        {$sSeriesViewName}.oxid = {$sViewName}.oxvoucherserieid and
                        {$sViewName}.oxvouchernr = " . $ oDb -> quote ( $ sVoucherNr ) . " and " ; if ( is_array ( $ aVouchers ) ) { foreach ( $ aVouchers as $ sVoucherId => $ sSkipVoucherNr ) { $ sQ .= "{$sViewName}.oxid != " . $ oDb -> quote ( $ sVoucherId ) . " and " ; } } $ sQ .= "( {$sViewName}.oxorderid is NULL || {$sViewName}.oxorderid = '' ) " ; $ sQ .= " and ( {$sViewName}.oxdateused is NULL || {$sViewName}.oxdateused = 0 ) " ; //voucher timeout for 3 hours if ( $ blCheckavalability ) { $ iTime = time ( ) - $ this -> _getVoucherTimeout ( ) ; $ sQ .= " and {$sViewName}.oxreserved < '{$iTime}' " ; } $ sQ .= " limit 1" ; if ( ! ( $ oRet = $ this -> assignRecord ( $ sQ ) ) ) { $ oEx = oxNew ( \ OxidEsales \ Eshop \ Core \ Exception \ VoucherException :: class ) ; $ oEx -> setMessage ( 'ERROR_MESSAGE_VOUCHER_NOVOUCHER' ) ; $ oEx -> setVoucherNr ( $ sVoucherNr ) ; throw $ oEx ; } } return $ oRet ; }
Gets voucher from db by given number.

@param string $sVoucherNr         Voucher number
@param array  $aVouchers          Array of available vouchers (default array())
@param bool   $blCheckavalability check if voucher is still reserver od not

@throws oxVoucherException exception

@return mixed
Gets voucher from db by given number .