76 regels
2.2 KiB
PHP
76 regels
2.2 KiB
PHP
<?php
|
|
|
|
namespace D3\ModCfg\Application\Model\Transactionlog;
|
|
|
|
use D3\ModCfg\Application\Model\Transactionlog\Reader\AbstractReader;
|
|
use InvalidArgumentException;
|
|
use OxidEsales\Eshop\Core\Database\Adapter\Doctrine\ResultSet;
|
|
use OxidEsales\Eshop\Core\DatabaseProvider;
|
|
use OxidEsales\Eshop\Core\Model\BaseModel;
|
|
use OxidEsales\Eshop\Core\Model\ListModel;
|
|
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
|
|
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
|
|
|
|
/**
|
|
* Class d3transactionloglist
|
|
*/
|
|
class d3transactionloglist extends ListModel
|
|
{
|
|
/** @var AbstractReader */
|
|
private $logreader;
|
|
|
|
/**
|
|
* Class Constructor
|
|
*
|
|
* @param string $transactionlog
|
|
*
|
|
* @internal param string $sObjectName Associated list item object type
|
|
*/
|
|
public function __construct($transactionlog)
|
|
{
|
|
if (!($transactionlog instanceof d3transactionlog)) {
|
|
throw new InvalidArgumentException('You have not provided a d3transactionlog instance');
|
|
}
|
|
|
|
parent::__construct();
|
|
|
|
$this->init($transactionlog->getClassName());
|
|
$this->logreader = $transactionlog->getTransactionLogReader();
|
|
}
|
|
|
|
/**
|
|
* Selects and SQL, creates objects and assign them
|
|
*
|
|
* @param string $sql
|
|
* @param array $parameters
|
|
* @throws DatabaseConnectionException
|
|
* @throws DatabaseErrorException
|
|
*/
|
|
public function selectString($sql, array $parameters = [])
|
|
{
|
|
$this->clear();
|
|
|
|
$oDb = DatabaseProvider::getDb(DatabaseProvider::FETCH_MODE_ASSOC);
|
|
if ($this->_aSqlLimit[0] || $this->_aSqlLimit[1]) {
|
|
/** @var ResultSet $rs */
|
|
$rs = $oDb->selectLimit($sql, $this->_aSqlLimit[1], $this->_aSqlLimit[0], $parameters);
|
|
} else {
|
|
/** @var ResultSet $rs */
|
|
$rs = $oDb->select($sql, $parameters);
|
|
}
|
|
|
|
if ($rs && $rs->count() > 0) {
|
|
while (!$rs->EOF) {
|
|
/** @var BaseModel $oListObject */
|
|
$oListObject = oxNew($this->_sObjectsInListName, $this->logreader);
|
|
|
|
$this->assignElement($oListObject, $rs->fields);
|
|
|
|
$this->add($oListObject);
|
|
|
|
$rs->fetchRow();
|
|
}
|
|
}
|
|
}
|
|
}
|