799 lines
25 KiB
PHP
799 lines
25 KiB
PHP
<?php
|
||
|
||
/**
|
||
* This Software is the property of Data Development and is protected
|
||
* by copyright law - it is NOT Freeware.
|
||
*
|
||
* Any unauthorized use of this software without a valid license
|
||
* is a violation of the license agreement and will be prosecuted by
|
||
* civil and criminal law.
|
||
*
|
||
* http://www.shopmodule.com
|
||
*
|
||
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
|
||
* @author D3 Data Development - Daniel Seifert <support@shopmodule.com>
|
||
* @link http://www.oxidmodule.com
|
||
*/
|
||
|
||
namespace D3\Fileupload\Application\Controller;
|
||
|
||
use D3\Fileupload\Application\Model\d3fileupload;
|
||
use D3\Fileupload\Application\Model\d3fileupload_setting;
|
||
use D3\Fileupload\Application\Model\Exceptions\d3fileuploadException;
|
||
use D3\Fileupload\Modules\Application\Model\d3_oxarticle_fileupload;
|
||
use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod;
|
||
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
|
||
use D3\ModCfg\Application\Model\Exception\d3ParameterNotFoundException;
|
||
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
|
||
use D3\ModCfg\Application\Model\Log\d3log;
|
||
use D3\ModCfg\Application\Model\Parametercontainer\d3ParameterContainer;
|
||
use Doctrine\DBAL\DBALException;
|
||
use OxidEsales\Eshop\Application\Controller\AccountController;
|
||
use OxidEsales\Eshop\Application\Model\Order;
|
||
use OxidEsales\Eshop\Application\Model\OrderArticle;
|
||
use OxidEsales\Eshop\Application\Model\OrderArticleList;
|
||
use OxidEsales\Eshop\Application\Model\User;
|
||
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
|
||
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
|
||
use OxidEsales\Eshop\Core\Exception\StandardException;
|
||
use OxidEsales\Eshop\Core\Registry;
|
||
use OxidEsales\Eshop\Core\Request;
|
||
use OxidEsales\Eshop\Core\SeoEncoder;
|
||
use OxidEsales\Eshop\Core\UtilsView;
|
||
use OxidEsales\Facts\Facts;
|
||
|
||
class d3uploadmanager extends AccountController
|
||
{
|
||
private $_sModId = 'd3fileupload';
|
||
public $blThrown = false;
|
||
|
||
/**
|
||
* Template, fuer basic und azure
|
||
* @var string
|
||
*/
|
||
protected $_sTemplateD3Fileupload = 'd3uploadmanager.tpl';
|
||
|
||
/** @var d3ParameterContainer */
|
||
public $oParameterContainer;
|
||
|
||
/**
|
||
* d3uploadmanager constructor.
|
||
*/
|
||
public function __construct()
|
||
{
|
||
parent::__construct();
|
||
|
||
$this->oParameterContainer = oxNew(d3ParameterContainer::class);
|
||
}
|
||
|
||
/**
|
||
* @return null|void
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws d3ShopCompatibilityAdapterException
|
||
* @throws d3_cfg_mod_exception
|
||
* @throws StandardException
|
||
* @throws d3fileuploadException
|
||
*/
|
||
public function init()
|
||
{
|
||
parent::init();
|
||
|
||
if (!$this->getSet()->isActive()) {
|
||
/** @var d3fileuploadException $oEx */
|
||
$oEx = oxNew(d3fileuploadException::class, $this->getSet()->d3getLog(), d3log::ERROR);
|
||
$oEx->d3disableScreenMessage();
|
||
$oEx->setMessage(Registry::getLang()->translateString('D3FILEUPLOAD_EXC_NOTACTIVE', null, true));
|
||
throw $oEx;
|
||
}
|
||
|
||
$this->getSet()->d3getLog()->log(d3log::INFO, __CLASS__, __FUNCTION__, __LINE__, "starting");
|
||
}
|
||
|
||
/**
|
||
* @return User
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws StandardException
|
||
* @throws d3ParameterNotFoundException
|
||
* @throws d3ShopCompatibilityAdapterException
|
||
* @throws d3_cfg_mod_exception
|
||
* @throws \Exception
|
||
*/
|
||
public function getUser()
|
||
{
|
||
if (false == $this->oParameterContainer->has('oUser')) {
|
||
/** @var \OxidEsales\Eshop\Core\Request $request */
|
||
$request = Registry::get(Request::class);
|
||
$sUserID = $request->getRequestEscapedParameter("uid");
|
||
$oUser = oxNew(User::class);
|
||
|
||
$facts = oxNew(Facts::class);
|
||
if (in_array(strtolower($facts->getEdition()), array('ee', 'b2b')) &&
|
||
false == Registry::getConfig()->getConfigParam('blMallUsers')
|
||
) {
|
||
$oUser->setDisableShopCheck(false);
|
||
}
|
||
|
||
// check user
|
||
if (false == $sUserID ||
|
||
false == $oUser->Load($sUserID)
|
||
) {
|
||
/** @var d3fileuploadException $oEx */
|
||
$oEx = oxNew(d3fileuploadException::class, $this->getSet()->d3getLog(), d3log::ERROR);
|
||
$oEx->d3enableScreenMessage();
|
||
$oEx->setMessage('D3FILESUPLOAD_ERROR_MESSAGE_WRONG_PARAMS_UID');
|
||
$oEx->setLogText("Can't load user, UserId is '".$sUserID."'");
|
||
if (false == $this->blThrown) {
|
||
$oEx->debugOut();
|
||
$this->blThrown = true;
|
||
}
|
||
// throw $oEx;
|
||
Registry::getUtils()->redirect(Registry::getConfig()->getShopCurrentURL().'&cl=account');
|
||
} else {
|
||
$this->oParameterContainer->set('oUser', $oUser);
|
||
}
|
||
}
|
||
|
||
return $this->oParameterContainer->get('oUser');
|
||
}
|
||
|
||
/**
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws StandardException
|
||
* @throws d3ParameterNotFoundException
|
||
* @throws d3ShopCompatibilityAdapterException
|
||
* @throws d3_cfg_mod_exception
|
||
* @throws d3fileuploadException
|
||
*/
|
||
public function checkHasArticle()
|
||
{
|
||
$sArticleID = $this->getOrderArticleId();
|
||
|
||
$blFound = false;
|
||
/** @var OrderArticleList $oOrderArticleList */
|
||
$oOrderArticleList = $this->getOrder()->getOrderArticles(true);
|
||
/** @var OrderArticle $oOrderArticle */
|
||
foreach ($oOrderArticleList as $oOrderArticle) {
|
||
if ($oOrderArticle->getId() == $sArticleID) {
|
||
$blFound = true;
|
||
}
|
||
}
|
||
|
||
if (!$blFound) {
|
||
/** @var d3fileuploadException $oEx */
|
||
$oEx = oxNew(d3fileuploadException::class, $this->getSet()->d3getLog(), d3log::ERROR);
|
||
$oEx->d3disableScreenMessage();
|
||
$oEx->setMessage('D3FILESUPLOAD_ERROR_MESSAGE_WRONG_PARAMS_AID');
|
||
$oEx->setLogText("Can't load article, ArticleId is '" . $sArticleID . "'");
|
||
throw $oEx;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* @return Order
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws StandardException
|
||
* @throws d3ParameterNotFoundException
|
||
* @throws d3ShopCompatibilityAdapterException
|
||
* @throws d3_cfg_mod_exception
|
||
* @throws d3fileuploadException
|
||
* @throws \Exception
|
||
*/
|
||
public function getOrder()
|
||
{
|
||
if (false == $this->oParameterContainer->has('oOrder')) {
|
||
$sOrderID = $this->getOrderId();
|
||
/** @var Order $oOrder */
|
||
$oOrder = oxNew(Order::class);
|
||
|
||
/** @var Facts $facts */
|
||
$facts = oxNew(Facts::class);
|
||
if (in_array(strtolower($facts->getEdition()), array('ee', 'b2b'))) {
|
||
$oOrder->setDisableShopCheck( false );
|
||
}
|
||
|
||
//check order
|
||
if (false == $oOrder->Load($sOrderID) ||
|
||
$oOrder->getFieldData("oxuserid") != $this->getUser()->getId()
|
||
) {
|
||
/** @var d3fileuploadException $oEx */
|
||
$oEx = oxNew(d3fileuploadException::class, $this->getSet()->d3getLog(), d3log::ERROR);
|
||
$oEx->d3disableScreenMessage();
|
||
$oEx->setMessage('D3FILESUPLOAD_ERROR_MESSAGE_WRONG_PARAMS_OID');
|
||
$oEx->setLogText("Can't load order, OrderId is '".$sOrderID."'");
|
||
throw $oEx;
|
||
} else {
|
||
$this->oParameterContainer->set('oOrder', $oOrder);
|
||
}
|
||
}
|
||
|
||
return $this->oParameterContainer->get('oOrder');
|
||
}
|
||
|
||
/**
|
||
* @return string
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws StandardException
|
||
* @throws d3ParameterNotFoundException
|
||
* @throws d3ShopCompatibilityAdapterException
|
||
* @throws d3_cfg_mod_exception
|
||
*/
|
||
public function render()
|
||
{
|
||
|
||
try {
|
||
parent::render();
|
||
|
||
if (false == $this->getUser()) {
|
||
return $this->_sThisTemplate = $this->_sThisLoginTemplate;
|
||
}
|
||
|
||
$this->addTplParam('user', $this->getUser());
|
||
$this->addTplParam('order', $this->getOrder());
|
||
} catch (d3fileuploadException $oEx) {
|
||
Registry::get(UtilsView::class)->addErrorToDisplay($oEx);
|
||
}
|
||
|
||
return $this->_sTemplateD3Fileupload;
|
||
}
|
||
|
||
/**
|
||
* @return d3_cfg_mod
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
*/
|
||
public function getSet()
|
||
{
|
||
return d3_cfg_mod::get($this->_sModId);
|
||
}
|
||
|
||
/**
|
||
* @return d3fileupload
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws StandardException
|
||
* @throws d3ParameterNotFoundException
|
||
* @throws d3ShopCompatibilityAdapterException
|
||
* @throws d3_cfg_mod_exception
|
||
* @throws d3fileuploadException
|
||
*/
|
||
protected function _getFileUpload()
|
||
{
|
||
if (false == $this->oParameterContainer->has('oUpload')) {
|
||
$oUpload = oxnew(d3fileupload::class, $this->getOrder());
|
||
$this->oParameterContainer->set('oUpload', $oUpload);
|
||
}
|
||
|
||
return $this->oParameterContainer->get('oUpload');
|
||
}
|
||
|
||
/**
|
||
* @return d3fileupload_setting
|
||
*/
|
||
public function getUploadSettings()
|
||
{
|
||
return oxNew(d3fileupload_setting::class);
|
||
}
|
||
|
||
/**
|
||
* @return null
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws StandardException
|
||
* @throws d3ParameterNotFoundException
|
||
* @throws d3ShopCompatibilityAdapterException
|
||
* @throws d3_cfg_mod_exception
|
||
* @throws d3fileuploadException
|
||
*/
|
||
public function doUpload()
|
||
{
|
||
if ($this->orderIsFixed()) {
|
||
return;
|
||
}
|
||
|
||
try {
|
||
$this->checkHasArticle();
|
||
$sOrderArticleID = $this->getOrderArticleId();
|
||
$sUploadID = $this->getUploadSlotId();
|
||
|
||
$this->getSet()->d3getLog()->log(
|
||
d3log::INFO,
|
||
__CLASS__,
|
||
__FUNCTION__,
|
||
__LINE__,
|
||
"starting",
|
||
"article id is '$sOrderArticleID', upload id is '$sUploadID'"
|
||
);
|
||
|
||
$this->_getFileUpload()->setOrderArticleId($sOrderArticleID);
|
||
$this->_getFileUpload()->setUploadId($sUploadID);
|
||
$blRet = $this->_getFileUpload()->doUpload();
|
||
|
||
$this->getSet()->d3getLog()->log(
|
||
d3log::INFO,
|
||
__CLASS__,
|
||
__FUNCTION__,
|
||
__LINE__,
|
||
"doUpload",
|
||
"return is '$blRet'"
|
||
);
|
||
} catch (d3fileuploadException $oEx) {
|
||
$oEx->debugOut();
|
||
}
|
||
|
||
Registry::getUtils()->redirect($this->getPageLink());
|
||
|
||
return;
|
||
}
|
||
|
||
/**
|
||
* @param $sOrderArticleId
|
||
*
|
||
* @return bool
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws StandardException
|
||
* @throws d3ParameterNotFoundException
|
||
* @throws d3ShopCompatibilityAdapterException
|
||
* @throws d3_cfg_mod_exception
|
||
* @throws d3fileuploadException
|
||
*/
|
||
public function hasFileCountReached($sOrderArticleId)
|
||
{
|
||
return $this->_getFileUpload()->hasFileCountReached($sOrderArticleId);
|
||
}
|
||
|
||
/**
|
||
* loescht jeweils eine Datei
|
||
*
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws StandardException
|
||
* @throws d3ParameterNotFoundException
|
||
* @throws d3ShopCompatibilityAdapterException
|
||
* @throws d3_cfg_mod_exception
|
||
* @throws d3fileuploadException
|
||
*/
|
||
public function doDelete()
|
||
{
|
||
if ($this->orderIsFixed()) {
|
||
return;
|
||
}
|
||
|
||
try {
|
||
$this->checkHasArticle();
|
||
$sOrderArticleID = $this->getOrderArticleId();
|
||
/** @var Request $request */
|
||
$request = Registry::get(Request::class);
|
||
$sFilename = $request->getRequestEscapedParameter("file");
|
||
|
||
$this->getSet()->d3getLog()->log(
|
||
d3log::NOTICE,
|
||
__CLASS__,
|
||
__FUNCTION__,
|
||
__LINE__,
|
||
"starting",
|
||
"aid is '$sOrderArticleID', file is '$sFilename'"
|
||
);
|
||
|
||
$oFileUpload = $this->_getFileUpload();
|
||
$oFileUpload->setOrderArticleId($sOrderArticleID);
|
||
$oFileUpload->setFilename($sFilename);
|
||
|
||
$blRet = $oFileUpload->doDelete();
|
||
|
||
$this->getSet()->d3getLog()->log(
|
||
d3log::NOTICE,
|
||
__CLASS__,
|
||
__FUNCTION__,
|
||
__LINE__,
|
||
"doDelete",
|
||
"return is '$blRet'"
|
||
);
|
||
} catch (d3fileuploadException $oEx) {
|
||
$oEx->debugOut();
|
||
}
|
||
|
||
Registry::getUtils()->redirect($this->getPageLink());
|
||
}
|
||
|
||
/**
|
||
* @return int
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws StandardException
|
||
* @throws d3ParameterNotFoundException
|
||
* @throws d3ShopCompatibilityAdapterException
|
||
* @throws d3_cfg_mod_exception
|
||
*/
|
||
public function getOrderCnt()
|
||
{
|
||
if (false == $this->oParameterContainer->has('iOrderCnt')) {
|
||
$iOrderCnt = $this->getUser()->getOrderCount();
|
||
$this->oParameterContainer->set('iOrderCnt', $iOrderCnt);
|
||
}
|
||
|
||
return $this->oParameterContainer->get('iOrderCnt');
|
||
}
|
||
|
||
/**
|
||
* pr<70>ft, ob Bestellung entsprechende Artikel enth<74>lt
|
||
*
|
||
* @return bool
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws StandardException
|
||
* @throws d3ParameterNotFoundException
|
||
* @throws d3ShopCompatibilityAdapterException
|
||
* @throws d3_cfg_mod_exception
|
||
* @throws d3fileuploadException
|
||
*/
|
||
public function hasUploadArticles()
|
||
{
|
||
return $this->_getFileUpload()->hasUploadArticles();
|
||
}
|
||
|
||
/**
|
||
* Artikel fuer die Dateien hochgeladen werden k<>nnen
|
||
*
|
||
* @return array
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws StandardException
|
||
* @throws d3ParameterNotFoundException
|
||
* @throws d3ShopCompatibilityAdapterException
|
||
* @throws d3_cfg_mod_exception
|
||
* @throws d3fileuploadException
|
||
*/
|
||
public function getUploadArticles()
|
||
{
|
||
return $this->_getFileUpload()->getUploadArticles();
|
||
}
|
||
|
||
/**
|
||
* @param OrderArticle $oOrderArticle
|
||
* @return mixed
|
||
*/
|
||
public function getArticleFromOrderArticle($oOrderArticle)
|
||
{
|
||
return $oOrderArticle->getArticle();
|
||
}
|
||
|
||
/**
|
||
* maximale Dateigroesse
|
||
*
|
||
* @return string
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
*/
|
||
public function getMaxUploadFileCount()
|
||
{
|
||
return $this->getUploadSettings()->getMaxUploadFileCount();
|
||
}
|
||
|
||
/**
|
||
* maximale Dateigroesse
|
||
*
|
||
* @return string
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
*/
|
||
public function getFormattedMaxUploadSize()
|
||
{
|
||
return $this->getUploadSettings()->getFormattedMaxUploadSize();
|
||
}
|
||
|
||
/**
|
||
* Gibt die erlaubten Dateitypen zurueck
|
||
*
|
||
* @return string
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws d3fileuploadException
|
||
*/
|
||
public function getAllowUploadFileTypeListing()
|
||
{
|
||
return $this->getUploadSettings()->getAllowUploadFileTypeListing();
|
||
}
|
||
|
||
/**
|
||
* @return bool
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws StandardException
|
||
* @throws d3ParameterNotFoundException
|
||
* @throws d3ShopCompatibilityAdapterException
|
||
* @throws d3_cfg_mod_exception
|
||
*/
|
||
public function isValidAccount()
|
||
{
|
||
if ($this->getUser()) {
|
||
return true;
|
||
} else {
|
||
/** @var Request $request */
|
||
$request = Registry::get(Request::class);
|
||
$sUserID = $request->getRequestEscapedParameter('uid');
|
||
/** @var $oUser User */
|
||
$oUser = oxnew(User::class);
|
||
if ($oUser->load($sUserID) && $oUser->getFieldData("oxpassword")) {
|
||
return true;
|
||
}
|
||
}
|
||
|
||
return false;
|
||
}
|
||
|
||
/**
|
||
* Gibt die Dateien zurueck
|
||
*
|
||
* @param string $sArticleId
|
||
*
|
||
* @return array
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws StandardException
|
||
* @throws d3ParameterNotFoundException
|
||
* @throws d3ShopCompatibilityAdapterException
|
||
* @throws d3_cfg_mod_exception
|
||
* @throws d3fileuploadException
|
||
*/
|
||
public function getUploadFiles($sArticleId)
|
||
{
|
||
return $this->_getFileUpload()->getUploadItems($sArticleId);
|
||
}
|
||
|
||
/**
|
||
* @param $sOrderArticleId
|
||
* @param $sSlotId
|
||
*
|
||
* @return bool
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws StandardException
|
||
* @throws d3ParameterNotFoundException
|
||
* @throws d3ShopCompatibilityAdapterException
|
||
* @throws d3_cfg_mod_exception
|
||
* @throws d3fileuploadException
|
||
*/
|
||
public function isUploadSlotEmpty($sOrderArticleId, $sSlotId)
|
||
{
|
||
return $this->_getFileUpload()->isUploadSlotEmpty($sOrderArticleId, $sSlotId);
|
||
}
|
||
|
||
/**
|
||
* @return mixed
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws d3fileuploadException
|
||
*/
|
||
public function getOrderArticleId()
|
||
{
|
||
/** @var Request $request */
|
||
$request = Registry::get(Request::class);
|
||
$sArticleId = $request->getRequestEscapedParameter("aid");
|
||
|
||
if (false == $sArticleId) {
|
||
/** @var d3fileuploadException $oEx */
|
||
$oEx = oxNew(d3fileuploadException::class, $this->getSet()->d3getLog(), d3log::ERROR);
|
||
$oEx->d3disableScreenMessage();
|
||
$oEx->setMessage('D3FILEUPLOAD_ERROR_MESSAGE_ARTICLEIDNOTSET');
|
||
throw $oEx;
|
||
}
|
||
|
||
return $sArticleId;
|
||
}
|
||
|
||
/**
|
||
* @return mixed
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws d3fileuploadException
|
||
*/
|
||
public function getUploadSlotId()
|
||
{
|
||
$sSlotId = null;
|
||
|
||
/** @var OrderArticle $oOrderArticle */
|
||
$oOrderArticle = oxNew(OrderArticle::class);
|
||
$oOrderArticle->load($this->getOrderArticleId());
|
||
/** @var d3_oxarticle_fileupload $oArticle */
|
||
$oArticle = $oOrderArticle->getArticle();
|
||
|
||
if (count($oArticle->d3GetUploadsArray())) {
|
||
/** @var Request $request */
|
||
$request = Registry::get(Request::class);
|
||
$sSlotId = $request->getRequestEscapedParameter("uploadid");
|
||
|
||
if (false == $sSlotId || false == in_array($sSlotId, $oArticle->d3GetUploadsArray())) {
|
||
/** @var d3fileuploadException $oEx */
|
||
$oEx = oxNew(d3fileuploadException::class, $this->getSet()->d3getLog(), d3log::ERROR);
|
||
$oEx->d3disableScreenMessage();
|
||
$oEx->setMessage('D3FILEUPLOAD_ERROR_MESSAGE_UPLOADIDNOTSET');
|
||
throw $oEx;
|
||
}
|
||
}
|
||
|
||
return $sSlotId;
|
||
}
|
||
|
||
/**
|
||
* @return mixed
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws d3fileuploadException
|
||
*/
|
||
public function getOrderId()
|
||
{
|
||
/** @var Request $request */
|
||
$request = Registry::get(Request::class);
|
||
$sOrderId = $request->getRequestEscapedParameter("oid");
|
||
|
||
if (false == $sOrderId) {
|
||
/** @var d3fileuploadException $oEx */
|
||
$oEx = oxNew(d3fileuploadException::class, $this->getSet()->d3getLog(), d3log::ERROR);
|
||
$oEx->d3disableScreenMessage();
|
||
$oEx->setMessage('D3FILEUPLOAD_ERROR_MESSAGE_ORDERIDNOTSET');
|
||
throw $oEx;
|
||
}
|
||
|
||
return $sOrderId;
|
||
}
|
||
|
||
/**
|
||
* @return string
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws StandardException
|
||
* @throws d3ParameterNotFoundException
|
||
* @throws d3ShopCompatibilityAdapterException
|
||
* @throws d3_cfg_mod_exception
|
||
* @throws d3fileuploadException
|
||
*/
|
||
public function getNoUploadArticlesMessage()
|
||
{
|
||
return sprintf(
|
||
Registry::getLang()->translateString('D3_UPLOADMANAGER_NO_UPLOAD'),
|
||
$this->getOrder()->getFieldData('oxordernr')
|
||
);
|
||
}
|
||
|
||
/**
|
||
* @return array
|
||
*/
|
||
public function getBreadCrumb()
|
||
{
|
||
$aPaths = array();
|
||
$aPath = array();
|
||
|
||
$language = Registry::getLang();
|
||
|
||
$aPath['title'] = $language->translateString(
|
||
'MY_ACCOUNT',
|
||
$language->getBaseLanguage(),
|
||
false
|
||
);
|
||
$aPath['link'] = Registry::get(SeoEncoder::class)->getStaticUrl(
|
||
$this->getViewConfig()->getSelfLink() . "cl=account"
|
||
);
|
||
$aPaths[] = $aPath;
|
||
|
||
$aPath['title'] = $language->translateString(
|
||
'ORDER_HISTORY',
|
||
$language->getBaseLanguage(),
|
||
false
|
||
);
|
||
$aPath['link'] = Registry::get(SeoEncoder::class)->getStaticUrl(
|
||
$this->getViewConfig()->getSelfLink() . "cl=account_order"
|
||
);
|
||
$aPaths[] = $aPath;
|
||
|
||
$aPath['title'] = $language->translateString(
|
||
'D3_UPLOADMANAGER_HEAD_TITLE',
|
||
$language->getBaseLanguage(),
|
||
false
|
||
);
|
||
$aPath['link'] = $this->getPageLink();
|
||
$aPaths[] = $aPath;
|
||
|
||
return $aPaths;
|
||
}
|
||
|
||
/**
|
||
* @return string
|
||
*/
|
||
public function getPageLink()
|
||
{
|
||
/** @var Request $request */
|
||
$request = Registry::get(Request::class);
|
||
|
||
return $this->getViewConfig()->getSelfLink() . "cl=d3uploadmanager".
|
||
"&oid=".$request->getRequestEscapedParameter('oid').
|
||
"&uid=".$request->getRequestEscapedParameter('uid');
|
||
}
|
||
|
||
/**
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws StandardException
|
||
* @throws d3ParameterNotFoundException
|
||
* @throws d3ShopCompatibilityAdapterException
|
||
* @throws d3_cfg_mod_exception
|
||
* @throws d3fileuploadException
|
||
*/
|
||
public function d3fixorder()
|
||
{
|
||
$oOrder = $this->getOrder();
|
||
|
||
if ($oOrder) {
|
||
$oOrder->assign(
|
||
array(
|
||
'd3uploadfixed' => date('Y-m-d H:i:s'),
|
||
)
|
||
);
|
||
$oOrder->save();
|
||
}
|
||
|
||
Registry::getUtils()->redirect($this->getPageLink());
|
||
}
|
||
|
||
/**
|
||
* @return mixed
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
*/
|
||
public function hasFixation()
|
||
{
|
||
return $this->getSet()->getValue('blAllowFixation');
|
||
}
|
||
|
||
/**
|
||
* @return bool
|
||
* @throws DBALException
|
||
* @throws DatabaseConnectionException
|
||
* @throws DatabaseErrorException
|
||
* @throws StandardException
|
||
* @throws d3ParameterNotFoundException
|
||
* @throws d3ShopCompatibilityAdapterException
|
||
* @throws d3_cfg_mod_exception
|
||
* @throws d3fileuploadException
|
||
*/
|
||
public function orderIsFixed()
|
||
{
|
||
if (false == $this->hasFixation()) {
|
||
return false;
|
||
}
|
||
|
||
$oOrder = $this->getOrder();
|
||
return $oOrder->getFieldData('d3uploadfixed') == '0000-00-00 00:00:00' ? false : true;
|
||
}
|
||
}
|