Compare commits

..

No commits in common. "rel_6_sourceguardian_PHP80" and "master" have entirely different histories.

563 changed files with 8 additions and 62443 deletions

View File

@ -1,36 +0,0 @@
<?php
declare(strict_types=1);
$finder = PhpCsFixer\Finder::create()
->in(__DIR__)
;
$header = <<<EOF
Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
For the full copyright and license information, please view
the LICENSE file that was distributed with this source code.
https://www.d3data.de
@copyright (C) D3 Data Development (Inh. Thomas Dartsch)
@author D3 Data Development - Daniel Seifert <info@shopmodule.com>
@link https://www.oxidmodule.com
EOF;
$config = new PhpCsFixer\Config();
return $config->setRules([
'@PHP80Migration' => true,
'@PSR12' => true,
'header_comment' => [
'comment_type' => 'PHPDoc',
'header' => $header,
'location' => 'after_open',
'separate' => 'both',
],
'php_unit_test_class_requires_covers' => true,
'doctrine_annotation_indentation' => true,
])
->setFinder($finder)
;

View File

@ -1,35 +0,0 @@
<?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1);
namespace D3\Ordermanager\Application\Controller\Admin;
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_;
use D3\Ordermanager\Application\Controller\Admin\d3_cfg_ordermanageritem_list as itemList;
use D3\Ordermanager\Application\Controller\Admin\d3_cfg_ordermanageritem_main as itemMain;
class d3_cfg_ordermanageritem extends d3_cfg_mod_
{
public function render(): string
{
$this->addTplParam('sListClass', itemList::class);
$this->addTplParam('sMainClass', itemMain::class);
$this->_hasListItems = true;
return parent::render();
}
}

View File

@ -1,376 +0,0 @@
<?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1);
namespace D3\Ordermanager\Application\Controller\Admin;
use D3\DIContainerHandler\d3DicException;
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\Ordermanager\Application\Model\Actions\d3ordermanager_action_interface as ActionModelInterface;
use D3\Ordermanager\Application\Model\Actions\d3ordermanager_actiongrouplist as ActionGroupList;
use D3\Ordermanager\Application\Model\Actions\d3ordermanager_actionlist as ActionList;
use D3\Ordermanager\Application\Model\Constants;
use D3\Ordermanager\Application\Model\d3ordermanager_pdfhandler as PdfHandler;
use D3\Ordermanager\Application\Model\d3ordermanager as Manager;
use D3\Ordermanager\Application\Model\d3ordermanager_vars as VariablesTrait;
use D3\Ordermanager\Application\Model\Exceptions\d3ordermanager_actionException;
use DateTime;
use Doctrine\DBAL\Exception as DBALException;
use Doctrine\DBAL\Driver\Exception as DBALDriverException;
use Doctrine\DBAL\Query\QueryBuilder;
use OxidEsales\Eshop\Application\Model\Order as Item;
use OxidEsales\Eshop\Application\Model\ContentList;
use OxidEsales\Eshop\Core\Config;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
use OxidEsales\Eshop\Core\Exception\StandardException;
use OxidEsales\Eshop\Core\Language;
use OxidEsales\Eshop\Core\Model\ListModel;
use OxidEsales\Eshop\Core\Registry;
use OxidEsales\Eshop\Core\Request;
use OxidEsales\Eshop\Core\UtilsView;
class d3_cfg_ordermanageritem_action extends d3_cfg_ordermanageritem_settings
{
use VariablesTrait;
protected $_sThisTemplate = '@'. Constants::OXID_MODULE_ID .'/admin/d3_cfg_ordermanageritem_action';
protected $_sMenuSubItemTitle = 'd3mxordermanager_items';
protected $_sSavedId;
protected string $_sExportFieldDescMLIdent = 'D3_ORDERMANAGER_FIELDDESC';
protected string $_sExportFieldTitleBaseMLIdent = 'D3_ORDERMANAGER_FIELDTITLE_';
protected string $_sExportFieldLangMLIdent = 'D3_ORDERMANAGER_FIELDADD_LANG';
/**
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws StandardException
* @throws d3DicException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
*/
public function save(): void
{
// @codeCoverageIgnoreStart
if (!defined('OXID_PHP_UNIT')) {
parent::save();
}
// @codeCoverageIgnoreEnd
$aMissingRequiredValues = [];
/** @var ActionModelInterface $oAction */
foreach ($this->getActionList() as $sId => $oAction) {
if ($this->getProfile()->getValue($oAction->getActiveSwitchParameter())) {
try {
$oAction->throwUnvalidConfigurationException();
} catch (d3ordermanager_actionException $e) {
unset($e);
$aMissingRequiredValues[] = $sId;
}
}
}
if ($aMissingRequiredValues !== []) {
$this->addTplParam('missingRequValuesActions', $aMissingRequiredValues);
}
}
/**
* @throws d3DicException
*/
public function getContentList(): ListModel
{
/** @var $oContentList ContentList */
$oContentList = d3GetOxidDIC()->get('d3ox.ordermanager.'.ContentList::class);
return $this->_getObjectList($oContentList);
}
/**
* @throws d3DicException
*/
public function d3GetConfig(): Config
{
/** @var Config $config */
$config = d3GetOxidDIC()->get('d3ox.ordermanager.'.Config::class);
return $config;
}
/**
* @throws d3DicException
*/
public function getItemFieldNames(): array
{
/** @var Item $item */
$item = d3GetOxidDIC()->get('d3ox.ordermanager.'. Item::class);
return $item->getFieldNames();
}
/**
* @throws d3DicException
*/
public function getProfile(): Manager
{
/** @var Manager $oProfile */
$oProfile = d3GetOxidDIC()->get(Manager::class);
$soxId = $this->getEditObjectId();
if ($soxId != "-1") {
// load object
$oProfile->loadInLang($this->_iEditLang, $soxId);
// load object in other languages
$oOtherLang = $oProfile->getAvailableInLangs();
if (!isset($oOtherLang[$this->_iEditLang])) {
$oProfile->loadInLang(key($oOtherLang), $soxId);
}
}
return $oProfile;
}
/**
* @throws d3DicException
*/
public function getExportExamplePath(): string
{
$oProfile = $this->getProfile();
/** @var Request $request */
$request = d3GetOxidDIC()->get('d3ox.ordermanager.'.Request::class);
$soxId = $request->getRequestEscapedParameter("oxid");
if (isset($soxId) && $soxId && $soxId != "-1") {
// load object
$oProfile->loadInLang($this->_iEditLang, $soxId);
$oProfile = $this->_d3LoadInOtherLang($oProfile, $soxId);
}
$aSearch = [(new DateTime())->setTimestamp($oProfile->getStartTime())->format('Y-m-d_H-i-s')];
/** @var Language $oLang */
$oLang = d3GetOxidDIC()->get('d3ox.ordermanager.'.Language::class);
$aReplace = [$oLang->translateString('D3_ORDERMANAGER_ACTION_DATEPLACEHOLDER')];
return str_replace($aSearch, $aReplace, $oProfile->getListExportFilePath());
}
/**
* @param $sFieldName
* @throws d3DicException
*/
public function getFieldNameDescription($sFieldName): string
{
if (($sFieldNameTitle = $this->getFieldNameTitle($sFieldName))) {
return sprintf(
$this->getLang()->translateString($this->_sExportFieldDescMLIdent),
$sFieldNameTitle,
$sFieldName
);
}
return $sFieldName;
}
/**
* @throws d3DicException
*/
public function getLang(): Language
{
/** @var Language $language */
$language = d3GetOxidDIC()->get('d3ox.ordermanager.'.Language::class);
return $language;
}
/**
* @param $sFieldName
* @throws d3DicException
*/
public function getFieldNameTitle($sFieldName): ?string
{
$sLangAdd = '';
$sPattern = "@(.*)([_]{1}([0-9]{1,3}))$@";
if (preg_match($sPattern, $sFieldName, $aMatches)) {
$sFieldMLIdent = $this->_sExportFieldTitleBaseMLIdent.strtoupper($aMatches[1]);
$aLangNames = $this->getLang()->getLanguageNames();
$sLangAdd = sprintf(
$this->getLang()->translateString($this->_sExportFieldLangMLIdent),
$aLangNames[$aMatches[3]]
);
} else {
$sFieldMLIdent = $this->_sExportFieldTitleBaseMLIdent.strtoupper($sFieldName);
}
$sFieldName = $this->getLang()->translateString($sFieldMLIdent);
if ($sFieldName != $sFieldMLIdent) {
return $sFieldName.$sLangAdd;
}
return null;
}
/**
* @throws d3DicException
*/
public function getPdfHandler(): PdfHandler
{
d3GetOxidDIC()->set(
PdfHandler::class.'.args.ordermanager',
$this->getProfile()
);
d3GetOxidDIC()->set(
PdfHandler::class.'.args.order',
d3GetOxidDIC()->get('d3ox.ordermanager.'. Item::class)
);
/** @var PdfHandler $pdfhandler */
$pdfhandler = d3GetOxidDIC()->get(PdfHandler::class);
return $pdfhandler;
}
/**
* @throws d3DicException
*/
public function canGenerateOxidPdf(): bool
{
return $this->getPdfHandler()->canGenerateOxidPdf();
}
/**
* @throws d3DicException
*/
public function canGeneratePdfDocuments(): bool
{
return $this->getPdfHandler()->canGeneratePdfDocuments();
}
/**
* @throws d3DicException
*/
public function getActionGroupList(): ActionGroupList
{
d3GetOxidDIC()->set(
ActionGroupList::class.'.args.ordermanager',
$this->getProfile()
);
d3GetOxidDIC()->set(
ActionGroupList::class.'.args.order',
d3GetOxidDIC()->get('d3ox.ordermanager.'. Item::class)
);
/** @var ActionGroupList $actiongroup */
$actiongroup = d3GetOxidDIC()->get(ActionGroupList::class);
return $actiongroup;
}
/**
* @throws d3DicException
*/
public function getActionListObject(): ActionList
{
d3GetOxidDIC()->set(
ActionList::class.'.args.ordermanager',
$this->getProfile()
);
d3GetOxidDIC()->set(
ActionList::class.'.args.order',
d3GetOxidDIC()->get('d3ox.ordermanager.'. Item::class)
);
/** @var ActionList $actionlist */
$actionlist = d3GetOxidDIC()->get(ActionList::class);
return $actionlist;
}
/**
* @throws d3DicException
*/
public function getGroupedActionList(): array
{
$oManager = $this->getProfile();
$oActionList = $this->getActionGroupList();
$oActionList->setGroups($oManager->getConfiguration()->getGroupedActionIdList());
return $oActionList->getGroupList();
}
/**
* @throws d3DicException
*/
public function getActionList(): array
{
$oManager = $this->getProfile();
$oActionList = $this->getActionListObject();
$oActionList->setActions($oManager->getConfiguration()->getActionIdList());
return $oActionList->getActionList();
}
protected function _d3LoadInOtherLang(Manager $oProfile, string $soxId): Manager
{
// load object in other languages
$oOtherLang = $oProfile->getAvailableInLangs();
if (!isset($oOtherLang[$this->_iEditLang])) {
$oProfile->loadInLang(key($oOtherLang), $soxId);
}
return $oProfile;
}
/**
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws DBALDriverException
* @throws StandardException
* @throws d3DicException
* @throws d3ParameterNotFoundException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
*/
public function markAsFinished(): void
{
$oProfile = $this->getProfile();
/** @var QueryBuilder $qb */
$qb = d3GetOxidDIC()->get('d3ox.modcfg.OxDbQueryBuilder');
$qb->select('count(*)')
->from(d3GetOxidDIC()->get('d3ox.ordermanager.'.Item::class)->getViewName());
$iAllCount = (int) $qb->execute()->fetchOne();
$iCount = $oProfile->markConcernedItemsAsFinished(true);
$oEx = oxNew(
StandardException::class,
sprintf(
Registry::getLang()->translateString('D3_ORDERMANAGER_ACTION_MARKASFINISHED_MESSAGE'),
$iCount,
$iAllCount
)
);
Registry::get(UtilsView::class)->addErrorToDisplay($oEx);
}
}

View File

@ -1,38 +0,0 @@
<?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1);
namespace D3\Ordermanager\Application\Controller\Admin;
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_list;
use D3\Ordermanager\Application\Model\Constants;
use D3\Ordermanager\Application\Model\d3ordermanager as Manager;
use D3\Ordermanager\Application\Model\d3ordermanagerlist as ManagerList;
class d3_cfg_ordermanageritem_list extends d3_cfg_mod_list
{
protected $_sListClass = Manager::class;
protected $_sListType = ManagerList::class;
protected $_blShowListItems = true;
protected $_sThisTemplate = '@'. Constants::OXID_MODULE_ID .'/admin/d3_cfg_ordermanageritem_list';
protected $_sMenuItemTitle = 'd3mxordermanager';
protected $_sMenuSubItemTitle = 'd3mxordermanager_items';
}

View File

@ -1,125 +0,0 @@
<?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1);
namespace D3\Ordermanager\Application\Controller\Admin;
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_main;
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
use D3\Ordermanager\Application\Model\Constants;
use D3\Ordermanager\Application\Model\d3ordermanager as Manager;
use D3\Ordermanager\Application\Model\d3ordermanager_vars as VariablesTrait;
use Doctrine\DBAL\Exception as DBALException;
use OxidEsales\Eshop\Core\Config;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
use OxidEsales\Eshop\Core\Exception\StandardException;
use OxidEsales\Eshop\Core\Request;
class d3_cfg_ordermanageritem_main extends d3_cfg_mod_main
{
use VariablesTrait;
protected $_sSavedId;
protected $_sSetModId = 'd3_ordermanager';
protected $_sModId = 'd3_ordermanager';
protected $_sMenuItemTitle = 'd3mxordermanager';
protected $_sMenuSubItemTitle = 'd3mxordermanager_items';
protected $_sThisTemplate = '@'. Constants::OXID_MODULE_ID .'/admin/d3_cfg_ordermanageritem_main';
protected $_blUseOwnOxid = true;
protected $_aNaviItems = [
'new' => [
'sScript' => 'top.oxid.admin.editThis( -1 );return false;',
'sTranslationId' => 'D3_TOOLTIPS_NEWORDERMANAGER',
],
];
protected $_sD3ObjectClass = Manager::class;
/**
* Loads article parameters and passes them to template engine, returns
* name of template file "article_main.tpl".
*
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws StandardException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
*/
public function render(): string
{
$sRet = parent::render();
/** @var Config $config */
$config = d3GetOxidDIC()->get('d3ox.ordermanager.'.Config::class);
$this->addTplParam("blUseTimeCheck", $config->getConfigParam('blUseTimeCheck'));
return $sRet;
}
/**
* Sets default values for empty article (currently does nothing), returns
* array with parameters.
*
* @param array $aParams Parameters, to set default values
*/
public function addDefaultValues($aParams): array
{
$aParams = parent::addDefaultValues($aParams);
/** @var Manager $oManager */
$oManager = d3GetOxidDIC()->get(Manager::class);
$sFieldLongName = $oManager->d3GetFieldLongName('d3_cronjobid');
/** @var Request $request */
$request = d3GetOxidDIC()->get('d3ox.ordermanager.'.Request::class);
$aRequestParameter = $request->getRequestEscapedParameter("editval");
if (is_array($aRequestParameter) && isset($aRequestParameter[$sFieldLongName])) {
$aRequestParameter[$sFieldLongName] = $this->fixCronjobId($aRequestParameter[$sFieldLongName]);
if (isset($_POST['editval'])) {
$_POST['editval'] = $aRequestParameter;
} elseif (isset($_GET['editval'])) {
$_GET['editval'] = $aRequestParameter;
}
}
return $aParams;
}
/**
* @param $sId
*/
public function fixCronjobId($sId): string|array
{
$aSearch = [
' ',
];
$sReplace = '_';
return str_replace($aSearch, $sReplace, $sId);
}
}

View File

@ -1,189 +0,0 @@
<?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1);
namespace D3\Ordermanager\Application\Controller\Admin;
use D3\ModCfg\Application\Model\d3filesystem;
use D3\ModCfg\Application\Model\d3str;
use D3\ModCfg\Application\Model\Exception\wrongModIdException;
use D3\Ordermanager\Application\Model\Constants;
use D3\Ordermanager\Application\Model\d3ordermanager as Manager;
use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod;
use D3\Ordermanager\Application\Model\d3ordermanager_vars as VariablesTrait;
use OxidEsales\Eshop\Application\Controller\Admin\AdminDetailsController;
use OxidEsales\Eshop\Application\Controller\Admin\AdminMall; // required for non fallback case
use OxidEsales\Eshop\Core\Language;
use OxidEsales\Eshop\Core\Request;
class d3_cfg_ordermanageritem_mall extends d3AdminMall
{
use VariablesTrait;
private string $_sModId = 'd3_ordermanager';
/**
* DB table having oxshopincl and oxshopexcl fields we are going to deal with
*/
protected $_sMallTable = "d3modprofile";
protected $_blUseOwnOxid = true;
protected $_sMenuItemTitle = 'd3mxordermanager';
protected $_sMenuSubItemTitle = 'd3tbclordermanager_items_mall';
protected $_sHelpLinkMLAdd;
protected $_aNaviItems = [
'new' => [
'sScript' => 'top.oxid.admin.editThis( -1 );return false;',
'sTranslationId' => 'D3_TOOLTIPS_NEWORDERMANAGER',
],
];
/**
* Class name of object to load
*/
protected $_sObjectClassName = Manager::class;
/**
* constructor.
*/
public function __construct()
{
d3GetOxidDIC()->getParameter($this->_DIC_Instance_Id . 'modcfgid') === $this->_sModId or
throw oxNew(wrongModIdException::class, $this->_sModId);
parent::__construct();
}
public function getProfile(): Manager
{
/** @var Manager $oManager */
$oManager = d3GetOxidDIC()->get($this->_sObjectClassName);
return $oManager;
}
public function render(): string
{
$oProfile = $this->getProfile();
/** @var Request $request */
$request = d3GetOxidDIC()->get('d3ox.ordermanager.'.Request::class);
$soxId = $request->getRequestEscapedParameter("oxid");
if ($this->_isSetOxid($soxId)) {
// load object
$oProfile->loadInLang($this->_iEditLang, $soxId);
$oProfile = $this->_d3LoadInOtherLang($oProfile, $soxId);
}
$this->addTplParam('edit', $oProfile);
return parent::render();
}
public function getUserMessages(): array
{
return [];
}
public function getLang(): Language
{
/** @var Language $lang */
$lang = d3GetOxidDIC()->get('d3ox.ordermanager.'.Language::class);
return $lang;
}
public function getHelpURL(): string
{
$sUrl = $this->d3GetSet()->getHelpURL();
/** @var d3str $oD3Str */
$oD3Str = d3GetOxidDIC()->get(d3str::class);
if ($this->_sHelpLinkMLAdd) {
$sUrl .= $oD3Str->unprefixedslashit($this->getLang()->translateString($this->_sHelpLinkMLAdd));
}
$oFS = d3GetOxidDIC()->get(d3filesystem::class);
$aFileName = $oFS->splitFilename($sUrl);
// has no extension
if (false == $aFileName['ext']) {
return $oD3Str->trailingslashit($sUrl);
}
return $sUrl;
}
/**
* return type can't be defined, because of unmockable d3_cfg_mod class, use stdClass in test
* @return d3_cfg_mod
*/
public function d3GetSet()
{
/** @var d3_cfg_mod $modcfg */
$modcfg = d3GetOxidDIC()->get('d3.ordermanager.modcfg');
return $modcfg;
}
/**
* exampleItem: array('new' => array(
* 'sScript' => 'top.oxid.admin.editThis( -1 );return false;',
* 'sTranslationId' => 'foo',
* )
*/
public function getNaviItems(): array
{
return $this->_aNaviItems;
}
public function d3GetMenuItemTitle(): string
{
return $this->_sMenuItemTitle;
}
public function d3GetMenuSubItemTitle(): string
{
return $this->_sMenuSubItemTitle;
}
/**
* @param $soxId
*/
protected function _isSetOxid($soxId): bool
{
return isset($soxId) && $soxId && $soxId != "-1";
}
/**
* @param $soxId
*
*/
protected function _d3LoadInOtherLang(Manager $oProfile, $soxId): Manager
{
// load object in other languages
$oOtherLang = $oProfile->getAvailableInLangs();
if (false == isset($oOtherLang[$this->_iEditLang])) {
$oProfile->loadInLang(key($oOtherLang), $soxId);
}
return $oProfile;
}
}

View File

@ -1,376 +0,0 @@
<?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1);
namespace D3\Ordermanager\Application\Controller\Admin;
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_main;
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\Ordermanager\Application\Model\Actions\d3ordermanager_actionlist as ActionListModel;
use D3\Ordermanager\Application\Model\Constants;
use D3\Ordermanager\Application\Model\d3ordermanager as Manager;
use D3\Ordermanager\Application\Model\d3ordermanager_configurationcheck;
use D3\Ordermanager\Application\Model\d3ordermanager_vars as VariablesTrait;
use D3\Ordermanager\Application\Model\Exceptions\d3ActionRequirementInterface;
use D3\Ordermanager\Application\Model\Requirements\d3ordermanager_requirementlist as RequirementListModel;
use D3\Ordermanager\Application\Controller\Admin\d3_cfg_ordermanageritem_action as ItemActionController;
use D3\Ordermanager\Application\Controller\Admin\d3_cfg_ordermanageritem_requ as ItemRequirementController;
use Doctrine\DBAL\Exception as DBALException;
use OxidEsales\Eshop\Application\Model\Order as ItemModel;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
use OxidEsales\Eshop\Core\Exception\StandardException;
use OxidEsales\Eshop\Core\Language;
use OxidEsales\Eshop\Core\Request;
use OxidEsales\Eshop\Core\UtilsView;
use ReflectionException;
class d3_cfg_ordermanageritem_overview extends d3_cfg_mod_main
{
use VariablesTrait;
protected $_sSetModId = 'd3_ordermanager';
protected $_sModId = 'd3_ordermanager';
protected $_sThisTemplate = '@'. Constants::OXID_MODULE_ID .'/admin/d3_cfg_ordermanageritem_overview';
protected $_sMenuItemTitle = 'd3mxordermanager';
protected $_sMenuSubItemTitle = 'd3mxordermanager_items';
protected $_blUseOwnOxid = true;
protected $_aNaviItems = [
'new' => [
'sScript' => 'top.oxid.admin.editThis( -1 );return false;',
'sTranslationId' => 'D3_TOOLTIPS_NEWORDERMANAGER',
],
];
protected $_sD3ObjectClass = Manager::class;
protected $_sRequestData;
/**
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
* @throws StandardException
*/
public function render(): string
{
try {
d3GetOxidDIC()->set(
d3ordermanager_configurationcheck::class.'.args.ordermanager',
$this->getManager()
);
/** @var d3ordermanager_configurationcheck $confCheck */
$confCheck = d3GetOxidDIC()->get(d3ordermanager_configurationcheck::class);
$confCheck->checkThrowingExceptions(d3ordermanager_configurationcheck::REQUIREMENTS_AND_ACTIONS);
} catch (d3ActionRequirementInterface $d3ActionRequirement) {
/** @var UtilsView $utilsView */
$utilsView = d3GetOxidDIC()->get('d3ox.ordermanager.'.UtilsView::class);
$utilsView->addErrorToDisplay($d3ActionRequirement);
}
return parent::render();
}
public function getActionAdminController(): ItemActionController
{
/** @var ItemActionController $action */
$action = d3GetOxidDIC()->get(ItemActionController::class);
return $action;
}
public function getRequirementAdminController(): ItemRequirementController
{
/** @var ItemRequirementController $requ */
$requ = d3GetOxidDIC()->get(ItemRequirementController::class);
return $requ;
}
/**
* @param $method
* @param $arguments
*
* @return mixed
*/
public function __call($method, $arguments)
{
$oActionView = $this->getActionAdminController();
if (method_exists($oActionView, $method)) {
return call_user_func_array([ $oActionView, $method], $arguments);
}
$oRequView = $this->getRequirementAdminController();
if (method_exists($oRequView, $method)) {
return call_user_func_array([ $oRequView, $method], $arguments);
}
return parent::__call($method, $arguments);
}
public function getRequirementListObject(Manager $oManager): RequirementListModel
{
d3GetOxidDIC()->set(
RequirementListModel::class.'.args.ordermanager',
$oManager
);
/** @var RequirementListModel $requList */
$requList = d3GetOxidDIC()->get(RequirementListModel::class);
return $requList;
}
public function getRequirementList(): array
{
/** @var Manager $oManager */
$oManager = $this->getProfile();
$oRequList = $this->getRequirementListObject($oManager);
$oRequList->setRequirements($oManager->getConfiguration()->getRequirementIdList());
return $oRequList->getRequirementList();
}
public function getActionListObject(Manager $oManager): ActionListModel
{
d3GetOxidDIC()->set(
ActionListModel::class.'.args.ordermanager',
$oManager
);
d3GetOxidDIC()->set(
ActionListModel::class.'.args.order',
d3GetOxidDIC()->get('d3ox.ordermanager.'.ItemModel::class)
);
/** @var ActionListModel $actionlist */
$actionlist = d3GetOxidDIC()->get(ActionListModel::class);
return $actionlist;
}
public function getActionList(): array
{
/** @var Manager $oManager */
$oManager = $this->getProfile();
$oActionList = $this->getActionListObject($oManager);
$oActionList->setActions($oManager->getConfiguration()->getActionIdList());
return $oActionList->getActionList();
}
public function isEditMode(): bool
{
return false;
}
public function setRequestData(): void
{
/** @var Request $request */
$request = d3GetOxidDIC()->get('d3ox.ordermanager.'.Request::class);
$this->_sRequestData = $request->getRequestEscapedParameter('sRequestData');
}
protected function _getRequestData(): string
{
return $this->_sRequestData;
}
/**
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws d3ParameterNotFoundException
*/
public function getToFinishedCount(): int
{
/** @var Request $request */
$request = d3GetOxidDIC()->get('d3ox.ordermanager.'.Request::class);
$requestCount = $request->getRequestEscapedParameter('toFinishedCount');
if ($this->canRequestData(__FUNCTION__)) {
/** @var Manager $oProfile */
$oProfile = $this->getProfile();
return $oProfile->getListGenerator()->getConcernedItemCount();
}
if ($this->canUseRequestData($requestCount)) {
return (int) $requestCount;
}
return 0;
}
/**
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws StandardException
* @throws ReflectionException
* @throws d3ParameterNotFoundException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
*/
public function getFinishedCount(): int
{
/** @var Request $request */
$request = d3GetOxidDIC()->get('d3ox.ordermanager.'.Request::class);
$requestCount = $request->getRequestEscapedParameter('finishedCount');
if ($this->canRequestData(__FUNCTION__)) {
/** @var Manager $oProfile */
$oProfile = $this->getProfile();
return $oProfile->getListGenerator()->getFinishedItemCount();
}
if ($this->canUseRequestData($requestCount)) {
return (int) $requestCount;
}
return 0;
}
/**
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws d3ParameterNotFoundException
*/
public function getFinishedMonthCount(): int
{
/** @var Request $request */
$request = d3GetOxidDIC()->get('d3ox.ordermanager.'.Request::class);
$requestCount = $request->getRequestEscapedParameter('finishedMonthCount');
if ($this->canRequestData(__FUNCTION__)) {
/** @var Manager $oProfile */
$oProfile = $this->getProfile();
return $oProfile->getListGenerator()->getFinishedMonthItemCount();
}
if ($this->canUseRequestData($requestCount)) {
return (int) $requestCount;
}
return 0;
}
/**
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws d3ParameterNotFoundException
*/
public function getNotFinishedCount(): int
{
/** @var Request $request */
$request = d3GetOxidDIC()->get('d3ox.ordermanager.'.Request::class);
$requestCount = $request->getRequestEscapedParameter('notFinishedCount');
if ($this->canRequestData(__FUNCTION__)) {
/** @var Manager $oProfile */
$oProfile = $this->getProfile();
return $oProfile->getListGenerator()->getNotFinishedItemCount();
}
if ($this->canUseRequestData($requestCount)) {
return (int) $requestCount;
}
return 0;
}
/**
* @param $sFunctionName
*
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
*/
public function canRequestData($sFunctionName): bool
{
if (!$this->getDataOnDemand()) {
return true;
}
return $this->_getRequestData() == $sFunctionName;
}
/**
* @param $requestCount
*
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
*/
public function canUseRequestData($requestCount): bool
{
return $this->getDataOnDemand()
&& isset($requestCount) && false !== $requestCount;
}
/**
* @throws DatabaseConnectionException
* @throws DBALException
* @throws DatabaseErrorException
*/
public function getDataOnDemand(): bool
{
return (bool) $this->d3GetSet()->getValue('blCalcStatOnDemand');
}
/**
* @param $sRequestName
* @param $sFunctionName
*/
public function hasRequestedData($sRequestName, $sFunctionName): bool
{
/** @var Request $request */
$request = d3GetOxidDIC()->get('d3ox.ordermanager.'.Request::class);
$iRequestCount = (string) $request->getRequestEscapedParameter($sRequestName);
return (bool) strlen($iRequestCount) || $this->_getRequestData() == $sFunctionName;
}
public function getManager(): Manager
{
/** @var Manager $manager */
$manager = d3GetOxidDIC()->get(Manager::class);
$manager->load($this->getEditObjectId());
return $manager;
}
public function getLang(): Language
{
/** @var Language $lang */
$lang = d3GetOxidDIC()->get('d3ox.ordermanager.'.Language::class);
return $lang;
}
/**
* @param $sManagerId
*/
public function getManagerTitle(string $sManagerId): string
{
$oManager = $this->getManager();
if ($oManager->load($sManagerId)) {
return $oManager->getFieldData('oxtitle');
}
return $this->getLang()->translateString('D3_ORDERMANAGER_REQU_OTHERJOB_UNKNOWNJOBID').' "'.$sManagerId.'"';
}
}

View File

@ -1,165 +0,0 @@
<?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1);
namespace D3\Ordermanager\Application\Controller\Admin;
use D3\Ordermanager\Application\Model\Constants;
use D3\Ordermanager\Application\Model\d3ordermanager as Manager;
use D3\Ordermanager\Application\Model\d3ordermanagerlist as ManagerList;
use D3\Ordermanager\Application\Model\d3ordermanager_vars as VariablesTrait;
use D3\Ordermanager\Application\Model\Exceptions\d3ordermanager_requirementException;
use D3\Ordermanager\Application\Model\Requirements\d3ordermanager_requirement_interface as RequirementModelInterface;
use D3\Ordermanager\Application\Model\Requirements\d3ordermanager_requirementgrouplist as RequirementGroupListModel;
use D3\Ordermanager\Application\Model\Requirements\d3ordermanager_requirementlist as RequirementListModel;
use OxidEsales\Eshop\Application\Model\DeliverySetList;
use OxidEsales\Eshop\Application\Model\PaymentList;
use OxidEsales\Eshop\Application\Model\CountryList;
use OxidEsales\Eshop\Core\Language;
use OxidEsales\Eshop\Core\Model\ListModel;
class d3_cfg_ordermanageritem_requ extends d3_cfg_ordermanageritem_settings
{
use VariablesTrait;
protected $_sThisTemplate = '@'. Constants::OXID_MODULE_ID .'/admin/d3_cfg_ordermanageritem_requ';
protected $_sMenuSubItemTitle = 'd3mxordermanager_items';
public function save(): void
{
// @codeCoverageIgnoreStart
if (!defined('OXID_PHP_UNIT')) {
parent::save();
}
// @codeCoverageIgnoreEnd
$aMissingRequiredValues = [];
/** @var RequirementModelInterface $oRequirement */
foreach ($this->getRequirementList() as $sId => $oRequirement) {
if ($this->getProfile()->getValue($oRequirement->getActiveSwitchParameter())) {
try {
$oRequirement->throwUnvalidConfigurationException();
} catch (d3ordermanager_requirementException $e) {
unset($e);
$aMissingRequiredValues[] = $sId;
}
}
}
if ($aMissingRequiredValues !== []) {
$this->addTplParam('missingRequValuesActions', $aMissingRequiredValues);
}
}
public function getPaymentList(): ListModel
{
/** @var PaymentList $oPaymentList */
$oPaymentList = d3GetOxidDIC()->get('d3ox.ordermanager.'.PaymentList::class);
return $this->_getObjectList($oPaymentList, null, 'oxdesc ASC');
}
public function getDeliverySetList(): DeliverySetList
{
/** @var DeliverySetList $oDeliverySetList */
$oDeliverySetList = d3GetOxidDIC()->get('d3ox.ordermanager.'.DeliverySetList::class);
/** @var DeliverySetList $list */
$list = $this->_getObjectList($oDeliverySetList, null, 'oxtitle ASC');
return $list;
}
public function getCountryList(): ListModel
{
/** @var CountryList $oCountryList */
$oCountryList = d3GetOxidDIC()->get('d3ox.ordermanager.'.CountryList::class);
return $this->_getObjectList($oCountryList, null, 'oxtitle ASC');
}
public function getJobList(): ManagerList
{
$sCurrentId = $this->getViewDataElement('edit')->getId();
/** @var $oManagerList ManagerList */
$oManagerList = d3GetOxidDIC()->get(ManagerList::class);
$oManagerList->setCustomSorting('oxsort ASC');
$oManagerList->getList();
$oManagerList->offsetUnset($sCurrentId);
return $oManagerList;
}
public function getLanguageList(): array
{
$oLang = d3GetOxidDIC()->get('d3ox.ordermanager.'.Language::class);
return $oLang->getLanguageArray();
}
/**
* Sets default values for empty article (currently does nothing), returns
* array with parameters.
*
* @param array $aParams Parameters, to set default values
*/
public function addDefaultValues($aParams): array
{
return $aParams;
}
public function getRequirementGroupList(Manager $oManager): RequirementGroupListModel
{
d3GetOxidDIC()->set(
RequirementGroupListModel::class.'.args.ordermanager',
$oManager
);
/** @var RequirementGroupListModel $requGroupModel */
$requGroupModel = d3GetOxidDIC()->get(RequirementGroupListModel::class);
return $requGroupModel;
}
public function getRequirementListObject(Manager $oManager): RequirementListModel
{
d3GetOxidDIC()->set(
RequirementListModel::class.'.args.ordermanager',
$oManager
);
/** @var RequirementListModel $requListModel */
$requListModel = d3GetOxidDIC()->get(RequirementListModel::class);
return $requListModel;
}
public function getGroupedRequirementList(): array
{
/** @var Manager $oManager */
$oManager = $this->getProfile();
$oRequList = $this->getRequirementGroupList($oManager);
$oRequList->setGroups($oManager->getConfiguration()->getGroupedRequirementIdList());
return $oRequList->getGroupList();
}
public function getRequirementList(): array
{
/** @var Manager $oManager */
$oManager = $this->getProfile();
$oRequList = $this->getRequirementListObject($oManager);
$oRequList->setRequirements($oManager->getConfiguration()->getRequirementIdList());
return $oRequList->getRequirementList();
}
}

View File

@ -1,157 +0,0 @@
<?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1);
namespace D3\Ordermanager\Application\Controller\Admin;
use D3\ModCfg\Application\Model\Exception\wrongModIdException;
use D3\Ordermanager\Application\Model\d3ordermanager as Manager;
use D3\Ordermanager\Application\Model\d3ordermanager_vars as VariablesTrait;
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_main;
use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod;
use Doctrine\DBAL\Exception as DBALException;
use Doctrine\DBAL\Query\QueryBuilder;
use OxidEsales\Eshop\Core\Config;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
use OxidEsales\Eshop\Core\Exception\StandardException;
use OxidEsales\Eshop\Core\Language;
use OxidEsales\Eshop\Core\Model\ListModel;
use OxidEsales\Eshop\Core\Model\MultiLanguageModel;
use OxidEsales\EshopCommunity\Internal\Container\ContainerFactory;
use OxidEsales\EshopCommunity\Internal\Framework\Database\QueryBuilderFactoryInterface;
use Psr\Container\ContainerInterface;
class d3_cfg_ordermanageritem_settings extends d3_cfg_mod_main
{
use VariablesTrait;
protected $_sModId = 'd3_ordermanager';
protected $_sMenuItemTitle = 'd3mxordermanager';
protected $_blUseOwnOxid = true;
protected $_aNaviItems = [
'new' => [
'sScript' => 'top.oxid.admin.editThis( -1 );return false;',
'sTranslationId' => 'D3_TOOLTIPS_NEWORDERMANAGER',
],
];
protected $_sD3ObjectClass = Manager::class;
/**
* constructor.
*/
public function __construct()
{
d3GetOxidDIC()->getParameter($this->_DIC_Instance_Id . 'modcfgid') === $this->_sModId or
throw oxNew(wrongModIdException::class, $this->_sModId);
parent::__construct();
}
public function getItemFolders(): array
{
/** @var Config $config */
$config = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Config::class);
return $config->getConfigParam('aOrderfolder');
}
public function getGroupsList(): ListModel
{
/** @var $oGroupsList ListModel */
$oGroupsList = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.ListModel::class);
$oGroupsList->init('oxgroups');
return $this->_getObjectList($oGroupsList, null, 'oxtitle ASC');
}
public function getDIContainer(): ContainerInterface
{
return ContainerFactory::getInstance()->getContainer();
}
/**
* @param null|string $sWhere
* @param null|string $sOrderBy
*
*/
protected function _getObjectList(ListModel $oObjectList, $sWhere = null, $sOrderBy = null): ListModel
{
startProfile(__METHOD__);
/** @var Language $oLang */
$oLang = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Language::class);
/** @var MultiLanguageModel $oObject */
$oObject = $oObjectList->getBaseObject();
if ($oObject->isMultilang()) {
$oObject->setLanguage($oLang->getTplLanguage());
}
$sFieldList = $oObject->getSelectFields();
/** @var queryBuilder $qb */
$qb = $this->getDIContainer()->get(QueryBuilderFactoryInterface::class)->create();
$qb->select($sFieldList)
->from($oObject->getViewName());
if ($sWhere) {
$qb->add('where', $sWhere);
}
if ($sOrderBy) {
$qb->add('orderBy', $sOrderBy);
}
$oObjectList->selectString($qb->getSQL(), $qb->getParameters());
stopProfile(__METHOD__);
return $oObjectList;
}
public function isEditMode(): bool
{
return true;
}
/**
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws StandardException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
*/
public function getRestrictionMessage(): string
{
/** @var Language $oLang */
$oLang = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Language::class);
/** @var d3_cfg_mod $oModCfg */
$oModCfg = d3GetOxidDIC()->get($this->_DIC_Instance_Id.'modcfg');
return sprintf(
$oLang->translateString('D3_ORDERMANAGER_ERROR_RESTRICTIONS'),
$oModCfg->getLicenseConfigData('sEditionId', 'unknown')
);
}
}

View File

@ -1,142 +0,0 @@
<?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1);
namespace D3\Ordermanager\Application\Controller\Admin;
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
use D3\Ordermanager\Application\Model\Constants;
use D3\Ordermanager\Application\Model\d3ordermanager as Manager;
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_main;
use D3\Ordermanager\Application\Model\d3ordermanager_conf as ConfModel;
use D3\Ordermanager\Application\Model\d3ordermanager_vars as VariablesTrait;
use Doctrine\DBAL\Exception as DBALException;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
use OxidEsales\Eshop\Core\Exception\StandardException;
use OxidEsales\Eshop\Core\Request;
class d3_cfg_ordermanageritem_trigger extends d3_cfg_mod_main
{
use VariablesTrait;
protected $_sSavedId;
protected $_sSetModId = 'd3_ordermanager';
protected $_sModId = 'd3_ordermanager';
protected $_sMenuItemTitle = 'd3mxordermanager';
protected $_sMenuSubItemTitle = 'd3mxordermanager_items';
protected $_sThisTemplate = '@'. Constants::OXID_MODULE_ID .'/admin/d3_cfg_ordermanageritem_trigger';
protected $_blUseOwnOxid = true;
protected $_aNaviItems = [
'new' => [
'sScript' => 'top.oxid.admin.editThis( -1 );return false;',
'sTranslationId' => 'D3_TOOLTIPS_NEWORDERMANAGER',
],
];
protected $_sD3ObjectClass = Manager::class;
/**
* Sets default values for empty article (currently does nothing), returns
* array with parameters.
*
* @param array $aParams Parameters, to set default values
*/
public function addDefaultValues($aParams): array
{
$aParams = parent::addDefaultValues($aParams);
/** @var Manager $oManager */
$oManager = d3GetOxidDIC()->get(Manager::class);
$sFieldLongName = $oManager->d3GetFieldLongName('d3_cronjobid');
/** @var Request $request */
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
$aRequestParameter = $request->getRequestEscapedParameter("editval");
if (is_array($aRequestParameter) && isset($aRequestParameter[$sFieldLongName])) {
$aRequestParameter[$sFieldLongName] = $this->fixCronjobId($aRequestParameter[$sFieldLongName]);
if (isset($_POST['editval'])) {
$_POST['editval'] = $aRequestParameter;
} elseif (isset($_GET['editval'])) {
$_GET['editval'] = $aRequestParameter;
}
}
return $aParams;
}
/**
* @param $sId
*/
public function fixCronjobId($sId): string|array
{
$aSearch = [
' ',
];
$sReplace = '_';
return str_replace($aSearch, $sReplace, $sId);
}
/**
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws StandardException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
*/
public function triggersAreAllowed(): bool
{
if ($this->d3GetSet()->isDemo()) {
return true;
}
return in_array(
true,
array_map([$this->d3GetSet(),'getLicenseConfigData'], [ConfModel::SERIAL_BIT_STANDARD_EDITION])
);
}
/**
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws StandardException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
*/
public function scriptsAreAllowed(): bool
{
if ($this->d3GetSet()->isDemo()) {
return true;
}
return in_array(
true,
array_map([$this->d3GetSet(),'getLicenseConfigData'], [ConfModel::SERIAL_BIT_PREMIUM_EDITION])
);
}
}

View File

@ -1,36 +0,0 @@
<?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1);
namespace D3\Ordermanager\Application\Controller\Admin;
use D3\ModCfg\Application\Controller\Admin\Log\d3_cfg_log;
class d3_cfg_ordermanagerlog extends d3_cfg_log
{
protected $_sModId = 'd3_ordermanager';
public function d3getAdditionalUrlParams(): string
{
$sRet = parent::d3getAdditionalUrlParams();
if ($this->_sModId) {
$sRet .= '&sD3ModId='.$this->_sModId;
}
return $sRet;
}
}

View File

@ -1,25 +0,0 @@
<?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1);
namespace D3\Ordermanager\Application\Controller\Admin;
use D3\ModCfg\Application\Controller\Admin\Log\d3_cfg_log_list;
class d3_cfg_ordermanagerlog_list extends d3_cfg_log_list
{
protected $_sModId = 'd3_ordermanager';
}

View File

@ -1,35 +0,0 @@
<?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1);
namespace D3\Ordermanager\Application\Controller\Admin;
use D3\Ordermanager\Application\Controller\Admin\d3_cfg_ordermanagerset_list as setListController;
use D3\Ordermanager\Application\Controller\Admin\d3_cfg_ordermanagerset_main as setMainController;
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_;
class d3_cfg_ordermanagerset extends d3_cfg_mod_
{
public function render(): string
{
$this->addTplParam('sListClass', setListController::class);
$this->addTplParam('sMainClass', setMainController::class);
$this->_hasListItems = false;
return parent::render();
}
}

View File

@ -1,31 +0,0 @@
<?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1);
namespace D3\Ordermanager\Application\Controller\Admin;
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_licence;
class d3_cfg_ordermanagerset_licence extends d3_cfg_mod_licence
{
protected $_sModId = 'd3_ordermanager';
protected $_hasNewsletterForm = false;
protected $_sMenuItemTitle = 'd3mxordermanager';
protected $_sMenuSubItemTitle = 'd3mxordermanager_settings';
}

View File

@ -1,45 +0,0 @@
<?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1);
namespace D3\Ordermanager\Application\Controller\Admin;
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_list;
class d3_cfg_ordermanagerset_list extends d3_cfg_mod_list
{
// enables language depended configuration
protected $_blD3ShowLangSwitch = false;
protected $_sMenuItemTitle = 'd3mxordermanager';
protected $_sMenuSubItemTitle = 'd3mxordermanager_settings';
/**
* @return null
*/
public function render()
{
$sRet = parent::render();
// default page number 1
$this->addTplParam('oxid', 1);
$this->addTplParam("default_edit", "d3_cfg_ordermanagerset_main");
$this->addTplParam("updatemain", $this->_blUpdateMain);
return $sRet;
}
}

View File

@ -1,220 +0,0 @@
<?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1);
namespace D3\Ordermanager\Application\Controller\Admin;
use D3\ModCfg\Application\Controller\Admin\d3_cfg_mod_main;
use D3\ModCfg\Application\Model\d3str;
use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
use D3\ModCfg\Application\Model\Exception\wrongModIdException;
use D3\ModCfg\Application\Model\Filegenerator\d3filegeneratorcronsh;
use D3\ModCfg\Application\Model\Shopcompatibility\d3ShopCompatibilityAdapterHandler;
use D3\Ordermanager\Application\Model\Constants;
use D3\Ordermanager\Application\Model\d3ordermanager as Manager;
use D3\Ordermanager\Application\Model\d3ordermanager_vars as VariablesTrait;
use Doctrine\DBAL\Exception as DBALException;
use OxidEsales\Eshop\Application\Model\Shop;
use OxidEsales\Eshop\Core\Config;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
use OxidEsales\Eshop\Core\Exception\StandardException;
use OxidEsales\Eshop\Core\Language;
use OxidEsales\Eshop\Core\Request;
use OxidEsales\Eshop\Core\ViewConfig;
class d3_cfg_ordermanagerset_main extends d3_cfg_mod_main
{
use VariablesTrait;
protected $_sModId = 'd3_ordermanager';
protected $_sThisTemplate = '@'. Constants::OXID_MODULE_ID .'/admin/d3_cfg_ordermanagerset_main';
protected $_blHasDebugSwitch = true;
protected $_sDebugHelpTextIdent = 'D3_ORDERMANAGER_SET_DEBUG_DESC';
protected $_sMenuItemTitle = 'd3mxordermanager';
protected $_sMenuSubItemTitle = 'd3mxordermanager_settings';
/**
* constructor.
*/
public function __construct()
{
d3GetOxidDIC()->getParameter($this->_DIC_Instance_Id . 'modcfgid') === $this->_sModId or
throw oxNew(wrongModIdException::class, $this->_sModId);
parent::__construct();
}
public function getManager(): Manager
{
/** @var Manager $manager */
$manager = d3GetOxidDIC()->get(Manager::class);
return $manager;
}
/**
* get basic cronjob access password; for cases only, if no password is set
*/
public function getBaseCronPW(): string
{
return $this->getManager()->getBaseCronPW();
}
public function getViewConfig(): ViewConfig
{
// don't use DIC because of circular reference
if ($this->_oViewConf === null) {
$this->_oViewConf = oxNew(ViewConfig::class);
}
return $this->_oViewConf;
}
public function getD3Str(): d3str
{
/** @var d3str $d3str */
$d3str = d3GetOxidDIC()->get(d3str::class);
return $d3str;
}
/**
* @param bool|int $iCronJobId
*/
public function getCronPath($iCronJobId = false): string
{
$sScriptPath = VENDOR_PATH.'bin/d3_ordermanager_cron';
$aParameters = [
'task' => 'run',
'shp' => $this->getViewConfig()->getActiveShopId(),
];
if ($iCronJobId !== false) {
$aParameters['cjid'] = $iCronJobId;
}
return 'php ' . $sScriptPath." ".implode(' ', $aParameters);
}
/**
* @throws DatabaseConnectionException
*/
public function getAvailableCronjobIds(): array
{
return $this->getManager()->getAvailableCronjobIds();
}
/**
* @param bool|array $aCJID
*/
public function getCJIDDesc(array $aCJID): string
{
/** @var Language $oLang */
$oLang = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Language::class);
if ($aCJID['count'] == 1) {
return sprintf(
$oLang->translateString('D3_ORDERMANAGER_SET_CRON_JOBID', null, true),
$aCJID['id'],
$aCJID['count']
);
}
return sprintf(
$oLang->translateString('D3_ORDERMANAGER_SET_CRON_JOBSID', null, true),
$aCJID['id'],
$aCJID['count']
);
}
/**
* @param bool|int $iCronJobId
*/
public function getCronTimestampVarName($iCronJobId = false): string
{
$sVarName = "sCronExecTimestamp";
if ($iCronJobId !== false) {
$sVarName .= $iCronJobId;
}
return $sVarName;
}
public function getFileGeneratorCronSh(): d3filegeneratorcronsh
{
/** @var d3filegeneratorcronsh $filegenerator */
$filegenerator = d3GetOxidDIC()->get(d3filegeneratorcronsh::class);
return $filegenerator;
}
public function getCronProviderList(): array
{
return $this->getFileGeneratorCronSh()->getContentList();
}
public function getCompatibilityAdapterHandler(): d3ShopCompatibilityAdapterHandler
{
/** @var d3ShopCompatibilityAdapterHandler $compatiblityHandler */
$compatiblityHandler = d3GetOxidDIC()->get(d3ShopCompatibilityAdapterHandler::class);
return $compatiblityHandler;
}
public function d3GetActiveShop(): Shop
{
/** @var Config $config */
$config = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Config::class);
return $config->getActiveShop();
}
/**
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws StandardException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
*/
public function generateCronShFile(): void
{
$sScriptPath = VENDOR_PATH.'bin/d3_ordermanager_cron';
/** @var Request $request */
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
$sCronId = $request->getRequestEscapedParameter('cronid');
$oShop = $this->d3GetActiveShop();
$aParameters = [
0 => 'run',
1 => $oShop->getId(),
2 => $sCronId,
];
$oD3ShGenerator = $this->getFileGeneratorCronSh();
$oD3ShGenerator->setContentType($request->getRequestEscapedParameter('crontype'));
$oD3ShGenerator->setScriptPath($sScriptPath);
$oD3ShGenerator->setSortedParameterList($aParameters);
$oD3ShGenerator->startDownload('d3ordermanager_'.$oShop->getId()."_".$sCronId.".sh");
}
}

View File

@ -1,482 +0,0 @@
<?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1);
namespace D3\Ordermanager\Application\Controller\Admin;
use D3\ModCfg\Application\Model\Configuration\d3_cfg_mod;
use D3\ModCfg\Application\Model\d3filesystem;
use D3\ModCfg\Application\Model\d3str;
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\Exception\wrongModIdException;
use D3\ModCfg\Application\Model\Log\d3log;
use D3\Ordermanager\Application\Model\Constants;
use D3\Ordermanager\Application\Model\d3ordermanager as Manager;
use D3\Ordermanager\Application\Model\d3ordermanager_configurationcheck;
use D3\Ordermanager\Application\Model\d3ordermanager_execute as ManagerExecuteModel;
use D3\Ordermanager\Application\Model\d3ordermanager_toorderassignment as ToItemAssignmentModel;
use D3\Ordermanager\Application\Model\d3ordermanagerlist;
use D3\Ordermanager\Application\Model\d3ordermanagerlist as ManagerListModel;
use D3\Ordermanager\Application\Model\d3ordermanager_vars as VariablesTrait;
use D3\Ordermanager\Application\Model\Exceptions\d3ActionRequirementInterface;
use D3\Ordermanager\Application\Model\Exceptions\d3ordermanager_templaterendererExceptionInterface;
use Doctrine\DBAL\Exception as DBALException;
use OxidEsales\Eshop\Application\Controller\Admin\AdminDetailsController;
use OxidEsales\Eshop\Application\Model\Order as ItemModel;
use OxidEsales\Eshop\Core\Config;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
use OxidEsales\Eshop\Core\Exception\StandardException;
use OxidEsales\Eshop\Core\Field;
use OxidEsales\Eshop\Core\Language;
use OxidEsales\Eshop\Core\Model\BaseModel;
use OxidEsales\Eshop\Core\Registry;
use OxidEsales\Eshop\Core\Request;
use OxidEsales\Eshop\Core\Session;
use OxidEsales\Eshop\Core\UtilsView;
use OxidEsales\Twig\Resolver\TemplateChain\TemplateType\NonTemplateFilenameException;
class d3_ordermanager_jobs extends AdminDetailsController
{
use VariablesTrait;
private string $_sModId = 'd3_ordermanager';
/** @var ManagerListModel */
protected $_aJobList;
protected $_sHelpLinkMLAdd;
public $_sThisTemplate = '@' . Constants::OXID_MODULE_ID . '/admin/d3_ordermanager_jobs';
/**
* constructor.
*/
public function __construct()
{
// prevent the use of the global currency setting instead of the order setting
unset($_GET['cur']);
d3GetOxidDIC()->getParameter($this->_DIC_Instance_Id . 'modcfgid') === $this->_sModId or
throw oxNew(wrongModIdException::class, $this->_sModId);
parent::__construct();
}
public function getItemObject(): ItemModel
{
/** @var ItemModel $item */
$item = d3GetOxidDIC()->get('d3ox.ordermanager.'.ItemModel::class);
return $item;
}
/**
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws StandardException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
*/
public function render(): string
{
$tpl = parent::render();
$soxId = $this->getEditObjectId();
$this->addTplParam("oxid", $soxId);
if ($soxId != "-1") {
$oItem = $this->getItemObject();
$oItem->load($soxId);
$this->addTplParam("edit", $oItem);
}
/** @var Session $session */
$session = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Session::class);
$sJobFolder = $session->getVariable('d3FolderSelect');
$this->addTplParam("jobfolder", $sJobFolder);
$this->_aJobList = $this->_d3GetManuallyManagerJobs($sJobFolder);
return $tpl;
}
public function d3GetSession(): Session
{
/** @var Session $session */
$session = d3GetOxidDIC()->get('d3ox.ordermanager.'.Session::class);
return $session;
}
public function changeFolder(): void
{
/** @var Request $request */
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
$this->d3GetSession()->setVariable(
'd3FolderSelect',
$request->getRequestEscapedParameter('jobfolder')
);
}
public function getManagerList(): ManagerListModel
{
/** @var ManagerListModel $managerList */
$managerList = d3GetOxidDIC()->get(ManagerListModel::class);
return $managerList;
}
public function d3GetManagerJobs(): ManagerListModel
{
$oManagerList = $this->getManagerList();
$oManagerList->getList();
return $oManagerList;
}
/**
* @param $sFolderId
*
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws StandardException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
*/
protected function _d3GetManuallyManagerJobs($sFolderId): ManagerListModel
{
try {
$oManagerList = $this->getManagerList();
$oList = $oManagerList->d3GetManuallyManagerJobsByFolder($sFolderId);
/** @var Manager $oManager */
foreach ($oList as $sId => $oManager) {
$oManagerExecute = $this->getManagerExecute($oManager);
if (!$oManager->getValue('sManuallyExecMeetCondition')) {
continue;
}
if (false != $oManagerExecute->orderMeetsConditions($this->getEditObjectId())) {
continue;
}
$oList->offsetUnset($sId);
}
return $oList;
} catch (d3ActionRequirementInterface $d3ActionRequirement) {
/** @var UtilsView $utilsView */
$utilsView = d3GetOxidDIC()->get('d3ox.ordermanager.'.UtilsView::class);
$utilsView->addErrorToDisplay($d3ActionRequirement);
}
/** @var d3ordermanagerlist $managerList */
$managerList = d3GetOxidDIC()->get(ManagerListModel::class);
return $managerList;
}
public function d3GetJobList(): array
{
return $this->_aJobList->getArray();
}
public function getManager(): Manager
{
/** @var Manager $manager */
$manager = d3GetOxidDIC()->get(Manager::class);
return $manager;
}
public function getManagerExecute(Manager $oManager): ManagerExecuteModel
{
d3GetOxidDIC()->set(
ManagerExecuteModel::class.'.args.ordermanager',
$oManager
);
/** @var ManagerExecuteModel $managerExecute */
$managerExecute = d3GetOxidDIC()->get(ManagerExecuteModel::class);
return $managerExecute;
}
/**
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws StandardException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
*/
public function d3execordermanager(): void
{
try {
/** @var Request $request */
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id . Request::class);
$oManager = $this->getManager();
$oManager->load($request->getRequestEscapedParameter('ordermanagerid'));
$oManagerExec = $this->getManagerExecute($oManager);
$this->checkForConfigurationException($oManager);
if (false == $oManager->getValue('sManuallyExecMeetCondition') ||
$oManagerExec->orderMeetsConditions($this->getEditObjectId())
) {
$oManagerExec->exec4order($this->getEditObjectId());
$oManagerExec->finishJobExecution();
}
} catch (d3ActionRequirementInterface | d3ordermanager_templaterendererExceptionInterface $oEx) {
// @codeCoverageIgnoreStart
if (!defined('OXID_PHP_UNIT')) {
$logger = Registry::getLogger();
$logger->error($oEx);
}
// @codeCoverageIgnoreEnd
d3GetOxidDIC()->get('d3.ordermanager.log')->alert(
self::class,
__FUNCTION__,
__LINE__,
"execution error",
$oEx->getMessage()
);
/** @var UtilsView $utilsView */
$utilsView = d3GetOxidDIC()->get('d3ox.ordermanager.'.UtilsView::class);
$utilsView->addErrorToDisplay($oEx);
} finally {
$oConfig = d3GetOxidDIC()->get('d3ox.ordermanager.'.Config::class);
$oConfig->setAdminMode(true);
}
}
/**
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws StandardException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
*/
public function d3ExecChangedOrderManager(): void
{
try {
/** @var Request $request */
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
$oManager = $this->getManager();
$oManager->load($request->getRequestEscapedParameter('ordermanagerid'));
$oManager->setEditedValues($request->getRequestEscapedParameter('aContent'));
$oManagerExec = $this->getManagerExecute($oManager);
$this->checkForConfigurationException($oManager);
if (false == $oManager->getValue('sManuallyExecMeetCondition') ||
$oManagerExec->orderMeetsConditions($this->getEditObjectId())
) {
$oManagerExec->exec4order($this->getEditObjectId());
$oManagerExec->finishJobExecution();
}
} catch (d3ActionRequirementInterface|d3ordermanager_templaterendererExceptionInterface $e) {
// @codeCoverageIgnoreStart
if (!defined('OXID_PHP_UNIT')) {
$logger = Registry::getLogger();
$logger->error($e);
}
// @codeCoverageIgnoreEnd
d3GetOxidDIC()->get('d3.ordermanager.log')->alert(
self::class,
__FUNCTION__,
__LINE__,
"execution error",
$e->getMessage()
);
/** @var UtilsView $utilsView */
$utilsView = d3GetOxidDIC()->get('d3ox.ordermanager.'.UtilsView::class);
$utilsView->addErrorToDisplay($e);
} finally {
$oConfig = d3GetOxidDIC()->get('d3ox.ordermanager.'.Config::class);
$oConfig->setAdminMode(true);
}
}
public function getOrderManagerAssignment(Manager $oManager): ToItemAssignmentModel
{
d3GetOxidDIC()->set(
ToItemAssignmentModel::class.'.args.ordermanager',
$oManager
);
/** @var ToItemAssignmentModel $managerAssignment */
$managerAssignment = d3GetOxidDIC()->get(ToItemAssignmentModel::class);
return $managerAssignment;
}
/**
* @throws d3ParameterNotFoundException
*/
public function d3resetOrderManagerAssignment(): void
{
/** @var Request $request */
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
$oManager = $this->getManager();
$oAssignment = $this->getOrderManagerAssignment($oManager);
$oAssignment->resetAssignment(
$request->getRequestEscapedParameter('ordermanagerid'),
$this->getEditObjectId()
);
}
/**
* @return mixed
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
*/
public function getFolderList()
{
$oManager = $this->getManager();
return $oManager->d3getSelectableFolderList();
}
/**
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws StandardException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
*/
public function execChangedContents(): void
{
try {
/** @var Request $request */
$request = d3GetOxidDIC()->get($this->_DIC_OxInstance_Id.Request::class);
$sItemId = $this->getEditObjectId();
$oManager = $this->getManager();
$oManager->load($request->getRequestEscapedParameter('ordermanagerid'));
// check configuration exceptions
$this->checkForConfigurationException($oManager);
$contents = $oManager->getEditableContent($sItemId);
$this->addTplParam('aMailContent', $contents);
$field = oxNew(Field::class);
$field->setValue($contents['html'] ?? '');
$object = oxNew(BaseModel::class);
$object->__set(
'aContent[mail][html]',
$field
);
$this->addTplParam("htmleditor", $this->generateTextEditor("95%", 180, $object, "aContent[mail][html]", "list.tpl.css"));
$this->addTplParam('sAction', __FUNCTION__);
$this->addTplParam('oManager', $oManager);
} catch (d3ActionRequirementInterface | d3ordermanager_templaterendererExceptionInterface | NonTemplateFilenameException $oEx) {
// @codeCoverageIgnoreStart
if (! defined('OXID_PHP_UNIT')) {
$logger = Registry::getLogger();
$logger->error($oEx->getMessage());
}
// @codeCoverageIgnoreEnd
$this->getManager()->d3getLog()->log(d3log::ALERT, self::class, __FUNCTION__, __LINE__, "stop execution because configuration error", $oEx->getMessage());
/** @var UtilsView $utilsView */
$utilsView = d3GetOxidDIC()->get('d3ox.ordermanager.' . UtilsView::class);
$utilsView->addErrorToDisplay($oEx);
} finally {
$oConfig = d3GetOxidDIC()->get('d3ox.ordermanager.'.Config::class);
$oConfig->setAdminMode(true);
}
}
public function getUserMessages(): array
{
return [];
}
public function getLang(): Language
{
/** @var Language $language */
$language = d3GetOxidDIC()->get('d3ox.ordermanager.'.Language::class);
return $language;
}
public function getHelpURL(): string
{
$sUrl = $this->d3GetSet()->getHelpURL();
/** @var d3str $oD3Str */
$oD3Str = d3GetOxidDIC()->get(d3str::class);
if ($this->_sHelpLinkMLAdd) {
$sUrl .= $oD3Str->unprefixedslashit($this->getLang()->translateString($this->_sHelpLinkMLAdd));
}
/** @var d3filesystem $oFS */
$oFS = d3GetOxidDIC()->get(d3filesystem::class);
$aFileName = $oFS->splitFilename($sUrl);
// has no extension
if (false == $aFileName['ext']) {
return $oD3Str->trailingslashit($sUrl);
}
return $sUrl;
}
/**
* return type can't be defined, because of unmockable d3_cfg_mod class, use stdClass in test
* @return d3_cfg_mod
*/
public function d3GetSet()
{
/** @var d3_cfg_mod $modCfg */
$modCfg = d3GetOxidDIC()->get('d3.ordermanager.modcfg');
return $modCfg;
}
public function getLink(): string
{
return '';
}
/**
* @throws d3ActionRequirementInterface
*/
protected function checkForConfigurationException(Manager $oManager): void
{
d3GetOxidDIC()->set(d3ordermanager_configurationcheck::class.'.args.ordermanager', $oManager);
/** @var d3ordermanager_configurationcheck $confCheck */
$confCheck = d3GetOxidDIC()->get(d3ordermanager_configurationcheck::class);
$confCheck->checkThrowingExceptions($oManager->getValue('sManuallyExecMeetCondition') ?
d3ordermanager_configurationcheck::REQUIREMENTS_AND_ACTIONS :
d3ordermanager_configurationcheck::ACTIONS_ONLY);
}
}

View File

@ -1,333 +0,0 @@
<?php
/**
* Copyright (c) D3 Data Development (Inh. Thomas Dartsch)
*
* For the full copyright and license information, please view
* the LICENSE file that was distributed with this source code.
*
* https://www.d3data.de
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Daniel Seifert <info@shopmodule.com>
* @link https://www.oxidmodule.com
*/
declare(strict_types=1);
namespace D3\Ordermanager\Application\Controller;
use Assert\Assert;
use Assert\InvalidArgumentException;
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\d3ShopCompatibilityAdapterException;
use D3\ModCfg\Application\Model\Exception\wrongModIdException;
use D3\ModCfg\Application\Model\Log\d3LogInterface;
use D3\Ordermanager\Application\Model\d3ordermanager as Manager;
use D3\Ordermanager\Application\Model\d3ordermanager_execute as ManagerExecuteModel;
use D3\Ordermanager\Application\Model\d3ordermanager_vars as VariablesTrait;
use D3\Ordermanager\Application\Model\d3ordermanagerlist as ManagerList;
use D3\Ordermanager\Application\Model\Exceptions\d3ordermanager_cronUnavailableException as cronUnavailableException;
use DateTime;
use Doctrine\DBAL\Exception as DBALException;
use OxidEsales\Eshop\Core\Base;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
use OxidEsales\Eshop\Core\Exception\DatabaseException;
use OxidEsales\Eshop\Core\Exception\StandardException;
use OxidEsales\Eshop\Core\Language;
use OxidEsales\Eshop\Core\Registry;
use OxidEsales\Eshop\Core\Request;
use RuntimeException;
class d3ordermanager_response extends Base
{
use VariablesTrait;
private string $_sModId = 'd3_ordermanager';
/**
* constructor.
*/
public function __construct()
{
$this->isCLI() or throw new RuntimeException('controller must called via command line interface');
d3GetOxidDIC()->getParameter($this->_DIC_Instance_Id . 'modcfgid') === $this->_sModId or
throw oxNew(wrongModIdException::class, $this->_sModId);
parent::__construct();
}
public function isCLI(): bool
{
return str_starts_with(PHP_SAPI, 'cli');
}
public function initCli(): void
{
startProfile(__METHOD__);
$this->_startExecution();
stopProfile(__METHOD__);
}
/**
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws DatabaseException
* @throws StandardException
* @throws cronUnavailableException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
*/
protected function _startExecution()
{
startProfile(__METHOD__);
$iStartTime = microtime(true);
/** @var d3LogInterface $oLog */
$oLog = d3GetOxidDIC()->get('d3.ordermanager.log');
$oLog->info(self::class, __FUNCTION__, __LINE__, "start cron", "");
$this->_checkUnavailableCronjob();
$this->_getSet()->setValue($this->_getCronTimestampVarName(), (new DateTime())->format('Y-m-d H:i:s'));
$this->_getSet()->saveNoLicenseRefresh();
$this->_startJobs();
$iExecTime = microtime(true) - $iStartTime;
$oLog->info(
self::class,
__FUNCTION__,
__LINE__,
"end cron",
'execution time: '.$iExecTime." sec"
);
stopProfile(__METHOD__);
}
public function getManagerList(): ManagerList
{
/** @var ManagerList $managerList */
$managerList = d3GetOxidDIC()->get(ManagerList::class);
return $managerList;
}
public function getManagerExecute(Manager $oManager): ManagerExecuteModel
{
d3GetOxidDIC()->set(
ManagerExecuteModel::class.'.args.ordermanager',
$oManager
);
/** @var ManagerExecuteModel $manager_execute */
$manager_execute = d3GetOxidDIC()->get(ManagerExecuteModel::class);
return $manager_execute;
}
/**
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws DatabaseException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
*/
protected function _startJobs()
{
startProfile(__METHOD__);
$oManagerList = $this->getManagerList();
$oManagerList->setCronJobId($this->_getCronJobIdParameter());
$oManagerList->setCustomSorting('oxsort ASC');
$oManagerList->getList();
$oHandleManager = $this->getManager();
$oHandleManagerExec = $this->getManagerExecute($oHandleManager);
// disable admin mode for using active check
$blOldAdminMode = self::$_blIsAdmin;
self::$_blIsAdmin = false;
/** @var d3LogInterface $oLog */
$oLog = d3GetOxidDIC()->get('d3.ordermanager.log');
$oLog->info(
self::class,
__FUNCTION__,
__LINE__,
'manager count',
$oManagerList->count()
);
/** @var $oManager Manager */
foreach ($oManagerList->getList() as $oManager) {
$oHandleManager = $this->getManager();
$oHandleManager->setLanguage(Registry::getLang()->getTplLanguage());
$oHandleManager->load($oManager->getId());
$oHandleManagerExec->setManager($oHandleManager);
self::$_blIsAdmin = $blOldAdminMode;
$oHandleManagerExec->startJobExecution();
self::$_blIsAdmin = false;
}
self::$_blIsAdmin = $blOldAdminMode;
$oHandleManagerExec->finishJobExecution();
stopProfile(__METHOD__);
}
public function getManager(): Manager
{
/** @var Manager $manager */
$manager = d3GetOxidDIC()->get(Manager::class);
return $manager;
}
protected function _checkAccessKey(): bool
{
$sSetCronPassword = $this->_getSet()->getValue('sCronPassword');
/** @var Request $request */
$request = d3GetOxidDIC()->get('d3ox.ordermanager.'.Request::class);
$sGetAccessKey = $request->getRequestEscapedParameter("key");
$sRegisteredAccessKey = $sSetCronPassword ?: $this->getManager()->getBaseCronPW();
return $this->hasValidAccessKey($sRegisteredAccessKey, $sGetAccessKey);
}
/**
* return type can't be defined, because of unmockable d3_cfg_mod class, use stdClass in test
* @return d3_cfg_mod
*/
protected function _getSet()
{
/** @var d3_cfg_mod $modcfg */
$modcfg = d3GetOxidDIC()->get('d3.ordermanager.modcfg');
return $modcfg;
}
public function isBrowserCall(): bool
{
return (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR']) ||
(isset($_SERVER['HTTP_USER_AGENT']) && $_SERVER['HTTP_USER_AGENT']);
}
/**
* @param $sRegisteredAccessKey
* @param $sGetAccessKey
*/
protected function hasValidAccessKey($sRegisteredAccessKey, $sGetAccessKey): bool
{
if (false == $this->isBrowserCall()) {
return true;
}
return $sRegisteredAccessKey == $sGetAccessKey;
}
/**
* @throws DBALException
* @throws DatabaseConnectionException
* @throws DatabaseErrorException
* @throws StandardException
* @throws d3ShopCompatibilityAdapterException
* @throws d3_cfg_mod_exception
* @throws cronUnavailableException
*/
protected function _checkUnavailableCronjob()
{
$this->_getSet()->isActive() or throw $this->getCronUnavailableException(
$this->getLang()->translateString('D3_ORDERMANAGER_EXC_CRON_MODULEDISABLED')
);
$this->_checkAccessKey() or throw $this->getCronUnavailableException(
$this->getLang()->translateString('D3_ORDERMANAGER_EXC_CRON_WRONGPASSWORD')
);
$this->_getSet()->getValue('blCronActive') or throw $this->getCronUnavailableException(
$this->getLang()->translateString('D3_ORDERMANAGER_EXC_CRON_UNAVAILABLE')
);
}
/**
* @param $sMessage
*/
public function getCronUnavailableException($sMessage): cronUnavailableException
{
return oxNew(cronUnavailableException::class, $sMessage);
}
/**
* @return string|int
*/
protected function _getCronJobIdParameter()
{
/** @var Request $request */
$request = d3GetOxidDIC()->get('d3ox.ordermanager.'.Request::class);
$iCjId = $request->getRequestEscapedParameter('cjid');
try {
Assert::that( $iCjId )->notBlank();
} catch (InvalidArgumentException) {
return 0;
}
return $iCjId;
}
protected function _getCronTimestampVarName(): string
{
return "sCronExecTimestamp".$this->_getCronJobIdParameter();
}
public function getLastExecDate(): string
{
return (string) $this->_getSet()->getValue($this->_getCronTimestampVarName());
}
/**
* @throws DBALException
* @throws DatabaseConnectionException
*/
public function getLastExecDateInfo(): array
{
$sCronJobId = $this->_getCronJobIdParameter();
$taskCount = current(
array_filter(
$this->getManager()->getAvailableCronjobIds(),
static fn ($entry): bool => $entry['id'] == $sCronJobId
)
)['count'];
return [
sprintf(
$this->getLang()->translateString('D3_GENERAL_ORDERMANAGER_TASKCOUNT_CRONID'),
$sCronJobId,
$taskCount
),
sprintf(
$this->getLang()->translateString('D3_GENERAL_ORDERMANAGER_LASTEXEC_CRONID'),
$sCronJobId,
$this->getLastExecDate()
),
];
}
public function getLang(): Language
{
/** @var Language $lang */
$lang = d3GetOxidDIC()->get('d3ox.ordermanager.'.Language::class);
return $lang;
}
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +0,0 @@
<?php ?><?php /** This Software is the property of DÂł Data Development and is protected by copyright law - it is NOT Freeware. Any unauthorized use of this software without a valid license key is a violation of the license agreement and will be prosecuted by civil and criminal law. Inhaber: Thomas Dartsch Alle Rechte vorbehalten @package Auftragsmanager @version 6.0.1.0 SourceGuardian (03.09.2024) @author Daniel Seifert support@shopmodule.com @copyright (C) 2024, D3 Data Development @see https://www.d3data.de */ ?><?php
if(!function_exists('sg_load')){$__v=phpversion();$__x=explode('.',$__v);$__v2=$__x[0].'.'.(int)$__x[1];$__u=strtolower(substr(php_uname(),0,3));$__ts=(@constant('PHP_ZTS') || @constant('ZEND_THREAD_SAFE')?'ts':'');$__f=$__f0='ixed.'.$__v2.$__ts.'.'.$__u;$__ff=$__ff0='ixed.'.$__v2.'.'.(int)$__x[2].$__ts.'.'.$__u;$__ed=@ini_get('extension_dir');$__e=$__e0=@realpath($__ed);$__dl=function_exists('dl') && function_exists('file_exists') && @ini_get('enable_dl') && !@ini_get('safe_mode');if($__dl && $__e && version_compare($__v,'5.2.5','<') && function_exists('getcwd') && function_exists('dirname')){$__d=$__d0=getcwd();if(@$__d[1]==':') {$__d=str_replace('\\','/',substr($__d,2));$__e=str_replace('\\','/',substr($__e,2));}$__e.=($__h=str_repeat('/..',substr_count($__e,'/')));$__f='/ixed/'.$__f0;$__ff='/ixed/'.$__ff0;while(!file_exists($__e.$__d.$__ff) && !file_exists($__e.$__d.$__f) && strlen($__d)>1){$__d=dirname($__d);}if(file_exists($__e.$__d.$__ff)) dl($__h.$__d.$__ff); else if(file_exists($__e.$__d.$__f)) dl($__h.$__d.$__f);}if(!function_exists('sg_load') && $__dl && $__e0){if(file_exists($__e0.'/'.$__ff0)) dl($__ff0); else if(file_exists($__e0.'/'.$__f0)) dl($__f0);}if(!function_exists('sg_load')){$__ixedurl='https://www.sourceguardian.com/loaders/download.php?php_v='.urlencode($__v).'&php_ts='.($__ts?'1':'0').'&php_is='.@constant('PHP_INT_SIZE').'&os_s='.urlencode(php_uname('s')).'&os_r='.urlencode(php_uname('r')).'&os_m='.urlencode(php_uname('m'));$__sapi=php_sapi_name();if(!$__e0) $__e0=$__ed;if(function_exists('php_ini_loaded_file')) $__ini=php_ini_loaded_file(); else $__ini='php.ini';if((substr($__sapi,0,3)=='cgi')||($__sapi=='cli')||($__sapi=='embed')){$__msg="\nPHP script '".__FILE__."' is protected by SourceGuardian and requires a SourceGuardian loader '".$__f0."' to be installed.\n\n1) Download the required loader '".$__f0."' from the SourceGuardian site: ".$__ixedurl."\n2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="\n3) Edit ".$__ini." and add 'extension=".$__f0."' directive";}}$__msg.="\n\n";}else{$__msg="<html><body>PHP script '".__FILE__."' is protected by <a href=\"https://www.sourceguardian.com/\">SourceGuardian</a> and requires a SourceGuardian loader '".$__f0."' to be installed.<br><br>1) <a href=\"".$__ixedurl."\" target=\"_blank\">Click here</a> to download the required '".$__f0."' loader from the SourceGuardian site<br>2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="<br>3) Edit ".$__ini." and add 'extension=".$__f0."' directive<br>4) Restart the web server";}}$__msg.="</body></html>";}die($__msg);exit();}}return sg_load('7A3737B3AF126DC8AAQAAAAhAAAABKgAAACABAAAAAAAAAD/2f8wiSuPSlQ1a1QLjzH+kzc9lOgujVx4hyEYDR9PmxD+NZ/TDRld+xNmdfm/4Jv70b2JQ2bzpbT9lZ/lHUz4lBhiwSjPyPoQg6hxvFCs3X75isqa+byCA+uebiNJqvw4A1/LhQvflggY7iGgKq5W3QJn1jDjNDw0BYLl19XefYWYZnIRXV4puUT89OHVSY2FvxNfp+f1KQRot1xY+j71O+doxIuXvWYpCAAAAJABAACxMAlPkkFKShiCEWjZygCUxIdAiq8MbzR6m4YoTAiehyU1FklRoq41Mrw0Y/GsGXwgjc85ctFbt5JIZ6ytcmLGtFmb/jMTAhtgQS1lDQXNOI0+Mvpp8xzjm3dUlB3i8KeX5AkCDdM2/k/c7aVubmGJK4ubBZT3JUWWdhMdoIlnDKlbTjH+H/94Arlw28X6qvjIbTbI0Suurs6DnMJZNjTkI8JJiTRmd3Ezu2bra9yBpWnnuDcN+8EfwI96zc3W+RS3sa3fatbfpyUnOfVZj422bDWv5qj+KKYz1iWuy5OzQblMdsPPIoHw+Vr/nSOHQ9VJ8zfzZFDd0I7tVtd5I5+ThSqGAi74gOB6JQQuQRpGJ3m3Kh48gD+/YZhTDlqAAGj+nQVFpcATkb1eP27uOHWSbbEhaAGEB+9zYRWGuP8x/+8oY62ToK/XWKdKX8lMCt4abl2aGu3xPNTPtvvmQPUmYLE56qTVdbomEG0/9PfaSPmLPBLZJAzSe1ovvpL3jMTttg48MPyd0731o4RO8aHbUQAAAIgBAABCYRIzOKg3aFmMvk/iMBNGI0WqMrgPX8goeDU+qJAD1aeAS6wvKpz6SGVUkjb/wV4EUjT/k4q22Tj3zMSj88GdGt2+6kPS6EyeLJxw74LF3yDZ4JmbcLmfUUsD8xFvUwP4TwBUvgmtB8WPp0zvw/kRv62wU2k4C/+NbyiaUfeWuqtsc+5iWey+v67UjidrXRzZcZ/UhwozWnMwp+T+NBT+C1Up+Wgtdcqz4clOZpoiEy6sGbWmWXF9OWVs5ZCrg2Px0yVXzhuCtKG3iD5UtO9p3gIec1Or6SRGpJn5lxRWbPX/ZiL4188CiFMbxY+MR+s8SLW31XDAxKe6Q0gdaYkZQioICFgqmtC0jl13Cb1xl5A6F6L/uoMSDljBEz5vQmpPFFOhX5cpHycShBjGV7GEfSZKuJ/+B/dOgwl7fCtOPvXiFboVPZyY1NPV08nh9ggYa8TXKMzBcM9c9dlcU3rZAeAhauWWxqmYnlDu+kgCSFyL+S5YHtMK+tEWTGTYGdik5zTgcROitFIAAACIAQAAzLIEf2G/wSa2cwQedv1fMPs8qGuzujt+30u7upzeKofDrey8KWBkkCSYodsHS8YJbmWpal+SHZWJYxYDoUnSgkdf1lEsv2OZ9NYa0QpuImXWgZH1P3eXX7TTYxfUOIfErTORYUk1fKdjZvZsizuzopyL/IF4LXAGv8xeWW8zISD0MdAa08aWhoZtHSFYaLokKpW1Gw8w90R7mCMWO9UEbse3muGuJ/5kfAi+tKdsdU36uL7Oji+H4eFUQJmnZwHGXbJ72dUVIF1vnvfOCUa0ph7K1o1l1mlhyBQSM6pqFb/g1NqkA16OPM+BT9hEEGNIxFah+5siVAXz/niPWMpPLx1Ni5xOjp1baTYc2rUIlnK1iSpjA26kkOg4+1aR7SXhWsaChx/wRSVJg/62EdkJC8q8oba0sez4yr9+5iuCmYSaNKB8aQNakQKa0WyvUN0gM3Ut6vpIR1LGdIwv4gnRmaUsitT/iAJT1n0tcIOD5KaZJp4qZL7/1UpKbtG1ZnhPYr/vEIZ+lpMAAAAA');

File diff suppressed because one or more lines are too long

View File

@ -1,2 +0,0 @@
<?php ?><?php /** This Software is the property of DÂł Data Development and is protected by copyright law - it is NOT Freeware. Any unauthorized use of this software without a valid license key is a violation of the license agreement and will be prosecuted by civil and criminal law. Inhaber: Thomas Dartsch Alle Rechte vorbehalten @package Auftragsmanager @version 6.0.1.0 SourceGuardian (03.09.2024) @author Daniel Seifert support@shopmodule.com @copyright (C) 2024, D3 Data Development @see https://www.d3data.de */ ?><?php
if(!function_exists('sg_load')){$__v=phpversion();$__x=explode('.',$__v);$__v2=$__x[0].'.'.(int)$__x[1];$__u=strtolower(substr(php_uname(),0,3));$__ts=(@constant('PHP_ZTS') || @constant('ZEND_THREAD_SAFE')?'ts':'');$__f=$__f0='ixed.'.$__v2.$__ts.'.'.$__u;$__ff=$__ff0='ixed.'.$__v2.'.'.(int)$__x[2].$__ts.'.'.$__u;$__ed=@ini_get('extension_dir');$__e=$__e0=@realpath($__ed);$__dl=function_exists('dl') && function_exists('file_exists') && @ini_get('enable_dl') && !@ini_get('safe_mode');if($__dl && $__e && version_compare($__v,'5.2.5','<') && function_exists('getcwd') && function_exists('dirname')){$__d=$__d0=getcwd();if(@$__d[1]==':') {$__d=str_replace('\\','/',substr($__d,2));$__e=str_replace('\\','/',substr($__e,2));}$__e.=($__h=str_repeat('/..',substr_count($__e,'/')));$__f='/ixed/'.$__f0;$__ff='/ixed/'.$__ff0;while(!file_exists($__e.$__d.$__ff) && !file_exists($__e.$__d.$__f) && strlen($__d)>1){$__d=dirname($__d);}if(file_exists($__e.$__d.$__ff)) dl($__h.$__d.$__ff); else if(file_exists($__e.$__d.$__f)) dl($__h.$__d.$__f);}if(!function_exists('sg_load') && $__dl && $__e0){if(file_exists($__e0.'/'.$__ff0)) dl($__ff0); else if(file_exists($__e0.'/'.$__f0)) dl($__f0);}if(!function_exists('sg_load')){$__ixedurl='https://www.sourceguardian.com/loaders/download.php?php_v='.urlencode($__v).'&php_ts='.($__ts?'1':'0').'&php_is='.@constant('PHP_INT_SIZE').'&os_s='.urlencode(php_uname('s')).'&os_r='.urlencode(php_uname('r')).'&os_m='.urlencode(php_uname('m'));$__sapi=php_sapi_name();if(!$__e0) $__e0=$__ed;if(function_exists('php_ini_loaded_file')) $__ini=php_ini_loaded_file(); else $__ini='php.ini';if((substr($__sapi,0,3)=='cgi')||($__sapi=='cli')||($__sapi=='embed')){$__msg="\nPHP script '".__FILE__."' is protected by SourceGuardian and requires a SourceGuardian loader '".$__f0."' to be installed.\n\n1) Download the required loader '".$__f0."' from the SourceGuardian site: ".$__ixedurl."\n2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="\n3) Edit ".$__ini." and add 'extension=".$__f0."' directive";}}$__msg.="\n\n";}else{$__msg="<html><body>PHP script '".__FILE__."' is protected by <a href=\"https://www.sourceguardian.com/\">SourceGuardian</a> and requires a SourceGuardian loader '".$__f0."' to be installed.<br><br>1) <a href=\"".$__ixedurl."\" target=\"_blank\">Click here</a> to download the required '".$__f0."' loader from the SourceGuardian site<br>2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="<br>3) Edit ".$__ini." and add 'extension=".$__f0."' directive<br>4) Restart the web server";}}$__msg.="</body></html>";}die($__msg);exit();}}return sg_load('7A3737B3AF126DC8AAQAAAAhAAAABKgAAACABAAAAAAAAAD/UAna0XPqj7z2Xe9rwSUWLJqe2nWcKNfWhQKpou2y5x/lJRdqVF33c1nu6GhvYKAnVKEoIA2S26cehNo9lzLmw2HQLPWw47R5Id06WiwZOvMr8WxVWgYYjstOHNObZoEWo5K4Tia/wpNl14DIDcbs6uym/5e648FXJK+aoPE0XZgtNyoa7xJ8BVkRbCQAzsk6aEyTMrq3uJQ+X/kpeIIuua1Cfuu8r0C9CAAAANgBAABBazUIEjlBNGgfcuBViJ5N427Iuw9sMoMwJJLbnOr8ou6qtFp5TkZNsFz2kMcdhp05H71qyUlnDr9/jFfzijLnFwNVUIGBYjgn0Tve7rsYPWa5cglJPelkXniSyN+bXjVwcIzlf8Aheh2hC9g4PfOUsIBk9cFVrfARWz8oi4ZXE5IdHfXVBzazhl6atUXV2nHgSaokAtoO5viSk/2PHNefs39e2v9iOQ4mMINMoL8nCG1iML+wSuxkc+Pbd9O7P703tAwsiD6/KuSY2NCA92tQxw//7d7Au6T+04UZJijml0cTk1/xecoReEELM5FYjMGmpWOuT6RTJTvrQNr1vx6aW5QlJpnhfDMGPUXTwwXgJCbIa41i8TdZRvTh1kAzfcBg9nbKoPPIYM82SKdJwnPUWkwIlQhEAw2RTLd+3lQxpg8hK4IkswKLHKAudvRCH8yqwNagQv7Tc6VFxFY3QsuzWd+cyKWZzL7Gdo2e2UjuAv2JDrCx8BHw8ps+N+7e3EhfHRM6c4nhn9fukYatIq9tXBZYotsbsdiScOeA3ggGH794NyYMW1RXdSNoqo1hfHM1Gn6zyLeGYXWilxL+cHclF/HuKYhzbE2TjFBL1zL0ht/O/MZNQF8kUQAAANgBAACZQ8IXILcRq27LQkQ+V40h+HvCN+7F5Xee6XFdHlgG33POSzwhUCUpHCnr1yVfl1c5ojfGDKEdPyTJh0y1Rh2XusEFY9TXvLI09vB4Z4kkLmYhpOlZLmYN9dKUVkO606ddlMtzmXbY7gBxH8ZRaP5d0LXfgpsBDigNmgOJtHYbrZODL3sG6FRlCORHY6ZjXNqBDwHpq9ZnqTwRtpRMAvpME843IIIzFHNcq7LDbb/QURmZoIxYrvDKXBLUsRm8RXcLEj7/S06JFdLMcC2tPYMN2V52hb5z5FLrMmS5b3F9hGdMxM6vjVCQ61hZ2tpOM+qX0mPmLMcJW3Y7Qk0dF77vlrbLMI9nbdyaeHzXlgI5rvtp1wdjuhOhbvoGdcDULJj38PVRH7eFZyI/FskYaU3t1hYte6zgdm2f6SzRj844yq6eglrg7FvEdP7Cb5gItoy1NdUkLY4l9xYvuLhdY1EqpDDBaUDyUEQIz74onVgy+Zszg6QE9W66nni8zrGKjAaPvfOibvTWXpG0xSCHdYJmnIDRLwykoXoNg6n1Me3NoqAfDjuz17sA9Vw66p0Mr9EtrTmaUdsfm6AAo6LRkIqyQHh5nVHeJHaK4ksb7kLVcf3mOKPvckSWUgAAANABAAAUEeycdZCMIkVCcLK4val2X8RrOYHAQM01gYvzNjsOMlXwoXDYRzdV0TCPT8OVE0VGMYQ+sPO8dA2CGikUHQgLm4STQn3iQnK+tYEnrKJFO8Eg5i+Gszk/OfKfznfFC0nlORgo9AVtALsobJDHOIcntFQ16QGXqwv9aHUWuhvIcRaEER1iwM303NaTWmkoQ59+C4emsIgDlcXa6/am1qLovcNZN+5czhtVTuiZ6HhNPM1PrvNIO8nvgoHMQcWBPb2prJmNt7VMAckEaOf0S/qQnqJEF1mRDe8QqQAB9gZ/qzpBjXUMMtQ3itJXHKD4pf3IFHiLTrFyQLxc1OoSowl3u4/3+qfceFP/qqDtiOmiXF0z3TN40UhXP0PEqI1aGbjyJD3H4u53Ne1Tu1w18NZ6QAbBj7YoYyZVbl9q7cLclYjDjKcC9Wq/8Wxykht4gB5ZVE8tOQmDIkV6g1i7RjaImNn1SPHfo6Dt+qMNwGrQCrKv6IS7L8y6mWsY8UEzGtqkIfM7xTuxf7PGF+XCPDLXw3vI/Je5cC6iU2fdTXeJH1IJnIO0vzkTmdQDw580PZosUe1wN7SYVzPN4Hu33TtL+taMws1ufAft1Md4KUz3qgAAAAA=');

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +0,0 @@
<?php ?><?php /** This Software is the property of DÂł Data Development and is protected by copyright law - it is NOT Freeware. Any unauthorized use of this software without a valid license key is a violation of the license agreement and will be prosecuted by civil and criminal law. Inhaber: Thomas Dartsch Alle Rechte vorbehalten @package Auftragsmanager @version 6.0.1.0 SourceGuardian (03.09.2024) @author Daniel Seifert support@shopmodule.com @copyright (C) 2024, D3 Data Development @see https://www.d3data.de */ ?><?php
if(!function_exists('sg_load')){$__v=phpversion();$__x=explode('.',$__v);$__v2=$__x[0].'.'.(int)$__x[1];$__u=strtolower(substr(php_uname(),0,3));$__ts=(@constant('PHP_ZTS') || @constant('ZEND_THREAD_SAFE')?'ts':'');$__f=$__f0='ixed.'.$__v2.$__ts.'.'.$__u;$__ff=$__ff0='ixed.'.$__v2.'.'.(int)$__x[2].$__ts.'.'.$__u;$__ed=@ini_get('extension_dir');$__e=$__e0=@realpath($__ed);$__dl=function_exists('dl') && function_exists('file_exists') && @ini_get('enable_dl') && !@ini_get('safe_mode');if($__dl && $__e && version_compare($__v,'5.2.5','<') && function_exists('getcwd') && function_exists('dirname')){$__d=$__d0=getcwd();if(@$__d[1]==':') {$__d=str_replace('\\','/',substr($__d,2));$__e=str_replace('\\','/',substr($__e,2));}$__e.=($__h=str_repeat('/..',substr_count($__e,'/')));$__f='/ixed/'.$__f0;$__ff='/ixed/'.$__ff0;while(!file_exists($__e.$__d.$__ff) && !file_exists($__e.$__d.$__f) && strlen($__d)>1){$__d=dirname($__d);}if(file_exists($__e.$__d.$__ff)) dl($__h.$__d.$__ff); else if(file_exists($__e.$__d.$__f)) dl($__h.$__d.$__f);}if(!function_exists('sg_load') && $__dl && $__e0){if(file_exists($__e0.'/'.$__ff0)) dl($__ff0); else if(file_exists($__e0.'/'.$__f0)) dl($__f0);}if(!function_exists('sg_load')){$__ixedurl='https://www.sourceguardian.com/loaders/download.php?php_v='.urlencode($__v).'&php_ts='.($__ts?'1':'0').'&php_is='.@constant('PHP_INT_SIZE').'&os_s='.urlencode(php_uname('s')).'&os_r='.urlencode(php_uname('r')).'&os_m='.urlencode(php_uname('m'));$__sapi=php_sapi_name();if(!$__e0) $__e0=$__ed;if(function_exists('php_ini_loaded_file')) $__ini=php_ini_loaded_file(); else $__ini='php.ini';if((substr($__sapi,0,3)=='cgi')||($__sapi=='cli')||($__sapi=='embed')){$__msg="\nPHP script '".__FILE__."' is protected by SourceGuardian and requires a SourceGuardian loader '".$__f0."' to be installed.\n\n1) Download the required loader '".$__f0."' from the SourceGuardian site: ".$__ixedurl."\n2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="\n3) Edit ".$__ini." and add 'extension=".$__f0."' directive";}}$__msg.="\n\n";}else{$__msg="<html><body>PHP script '".__FILE__."' is protected by <a href=\"https://www.sourceguardian.com/\">SourceGuardian</a> and requires a SourceGuardian loader '".$__f0."' to be installed.<br><br>1) <a href=\"".$__ixedurl."\" target=\"_blank\">Click here</a> to download the required '".$__f0."' loader from the SourceGuardian site<br>2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="<br>3) Edit ".$__ini." and add 'extension=".$__f0."' directive<br>4) Restart the web server";}}$__msg.="</body></html>";}die($__msg);exit();}}return sg_load('7A3737B3AF126DC8AAQAAAAhAAAABKgAAACABAAAAAAAAAD/UAna0XPqj7z2Xe9rwSUWLJqe2nWcKNfWhQKpou2y5x/lJRdqVF33c1nu6GhvYKAnVKEoIA2S26cehNo9lzLmw2HQLPWw47R5Id06WiwZOvMr8WxVWgYYjstOHNObZoEWo5K4Tia/wpNl14DIDcbs6uym/5e648FXJK+aoPE0XZgtNyoa7xJ8BVkRbCQAzsk6aEyTMrq3uJQ+X/kpeIIuua1Cfuu8r0C9CAAAAJgBAABfxZ7voFJpv2mDDarWPfmTaIOY7mS+SJkG0IVmyT0vGOYFqMnuENbDbmq6FL3injdSagWDI97v6QvgxZVM9G8YdEoEVAmjgZYjb46RNR5V46fI0/f+tS8ADRkTCocErjiNOM/BZIEC+Mmj+8bzBlN2x3TfPilV7Fmv25ynPDiqSQpAW2D3rRQJKEDIWiHQFPERfydLTb57X1UAuuaat5fIXAaMAhVuJFL9BQml/Kxy9pHKprw+KexEA2NB+NCwUqlaw4QCwAfD4FJczhPB02FyXP1GiguOP5WJWkngGw9Z6ag7dHqm1Pt9Al305WCZakJddv28TnlirXpsplhwEjIBez9RcxhlpSZ9fpgufTo/Gl3NrVzJNDUFjEiN0nfuAIwfXlnPOHrlBuTuw42l1kACuB/tLjc0JP2EWtkf+gZeSPHel8vOOBbbFC74l0ie4Vl0JxsCqSOh4bGGZcaMJsqBgnMyM8VokUnzugCosEx4NCDIwO6hLQTTgbIR1ismQlm+baLRTiVibdauB2/x2puJI9ubGyM+EEFRAAAAkAEAAJN74STXYcz3LAjarn9cWUowWiGFhJ916JV02G87qRVQ4ueJgLJqmBxxYdm8KRtCmCNnuodu4iNKQpcMGDzLYKSGj4IFheJTKEyE/R8U5MLmnubuPyiQ2/bHkHNWp8H0F7PAbKzQP6yGToXN35QdX6DEaOZ4nMV4z5rY9s+7TzBplq9cwrn5lOaoa9Zi2d2S1/w9Vyv9hxkcJ3rcCqrr2VpX20qRZg6/ZNln5IBdjf5HHg+SxHBeHHuee5TnrEsMOrnDUEXzTeUM84ZvjgmTWr1azoE0ZWazvBj1LMWMQzkw0JthNzUQGBgULzvP4aVpEmlFEt0r15SfYFuJ70I8I7U3wZZpM1N9+6PgyNSpWIwfZ9dT68fM2fzrkflVOSts0Ws6x0SaL95Em/QGneTan8eAiumERtv9o2g98nBzNTOKmPFZ21iVUBtl588IC1B7A7/u7AS5qq8ZyeSdXNitjurHomOQEI6HkQxEb7MStriSvTmhEWArk1zr9/u7u+wlbQkhB1xChV/R7eBKlbs2gE5SAAAAkAEAAHDPMsP6iQMCmnfRz1Ypzqjji+dzJtC/brxDHtubiJDEYk4Lu83gz5s+cmjqf2FTHLkU+SOr17FBNw2qq8EBaLXZkZ3CL2TWm6366zjJAnoV3iw0Tw0JFoixXppMPx9I6XekKcS6dTB7mjY8+jatX08JbA6JgIm208gAP3eDsq6Mv94VLc43wSaZIewELyHK/AItW2eG2mXSLhqwfaPzGfpS+4fTfwRHlq2dp0k43w7srzYRbagCqpqHkBIc2ansfQA0MaJFllHga7Vi8lTka94bA9CUmeY7wQvVRD2GY1q/7wsPhpalw5dLx5i9TVvBsn0Iq2hpdCBEWVchjMOUsff4aoRCTOiGvEiO+ezxGXqoAKw+6D1CrV0rQeZJCdViRZkVJ8pftRRDFqJvG2Bwh2sy9Ra2LUouZhnwDYc4H9ISbKfqy6zYrAGdYhEkra7UANNVaUZ9bM+NMAjR6eGtrOhpc1xmVK9Oghu8aVS0tNul+nCStc4MUChDuQS16fZUzgc1NFydX+pFxXr5eG03ElcAAAAA');

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,2 +0,0 @@
<?php ?><?php /** This Software is the property of DÂł Data Development and is protected by copyright law - it is NOT Freeware. Any unauthorized use of this software without a valid license key is a violation of the license agreement and will be prosecuted by civil and criminal law. Inhaber: Thomas Dartsch Alle Rechte vorbehalten @package Auftragsmanager @version 6.0.1.0 SourceGuardian (03.09.2024) @author Daniel Seifert support@shopmodule.com @copyright (C) 2024, D3 Data Development @see https://www.d3data.de */ ?><?php
if(!function_exists('sg_load')){$__v=phpversion();$__x=explode('.',$__v);$__v2=$__x[0].'.'.(int)$__x[1];$__u=strtolower(substr(php_uname(),0,3));$__ts=(@constant('PHP_ZTS') || @constant('ZEND_THREAD_SAFE')?'ts':'');$__f=$__f0='ixed.'.$__v2.$__ts.'.'.$__u;$__ff=$__ff0='ixed.'.$__v2.'.'.(int)$__x[2].$__ts.'.'.$__u;$__ed=@ini_get('extension_dir');$__e=$__e0=@realpath($__ed);$__dl=function_exists('dl') && function_exists('file_exists') && @ini_get('enable_dl') && !@ini_get('safe_mode');if($__dl && $__e && version_compare($__v,'5.2.5','<') && function_exists('getcwd') && function_exists('dirname')){$__d=$__d0=getcwd();if(@$__d[1]==':') {$__d=str_replace('\\','/',substr($__d,2));$__e=str_replace('\\','/',substr($__e,2));}$__e.=($__h=str_repeat('/..',substr_count($__e,'/')));$__f='/ixed/'.$__f0;$__ff='/ixed/'.$__ff0;while(!file_exists($__e.$__d.$__ff) && !file_exists($__e.$__d.$__f) && strlen($__d)>1){$__d=dirname($__d);}if(file_exists($__e.$__d.$__ff)) dl($__h.$__d.$__ff); else if(file_exists($__e.$__d.$__f)) dl($__h.$__d.$__f);}if(!function_exists('sg_load') && $__dl && $__e0){if(file_exists($__e0.'/'.$__ff0)) dl($__ff0); else if(file_exists($__e0.'/'.$__f0)) dl($__f0);}if(!function_exists('sg_load')){$__ixedurl='https://www.sourceguardian.com/loaders/download.php?php_v='.urlencode($__v).'&php_ts='.($__ts?'1':'0').'&php_is='.@constant('PHP_INT_SIZE').'&os_s='.urlencode(php_uname('s')).'&os_r='.urlencode(php_uname('r')).'&os_m='.urlencode(php_uname('m'));$__sapi=php_sapi_name();if(!$__e0) $__e0=$__ed;if(function_exists('php_ini_loaded_file')) $__ini=php_ini_loaded_file(); else $__ini='php.ini';if((substr($__sapi,0,3)=='cgi')||($__sapi=='cli')||($__sapi=='embed')){$__msg="\nPHP script '".__FILE__."' is protected by SourceGuardian and requires a SourceGuardian loader '".$__f0."' to be installed.\n\n1) Download the required loader '".$__f0."' from the SourceGuardian site: ".$__ixedurl."\n2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="\n3) Edit ".$__ini." and add 'extension=".$__f0."' directive";}}$__msg.="\n\n";}else{$__msg="<html><body>PHP script '".__FILE__."' is protected by <a href=\"https://www.sourceguardian.com/\">SourceGuardian</a> and requires a SourceGuardian loader '".$__f0."' to be installed.<br><br>1) <a href=\"".$__ixedurl."\" target=\"_blank\">Click here</a> to download the required '".$__f0."' loader from the SourceGuardian site<br>2) Install the loader to ";if(isset($__d0)){$__msg.=$__d0.DIRECTORY_SEPARATOR.'ixed';}else{$__msg.=$__e0;if(!$__dl){$__msg.="<br>3) Edit ".$__ini." and add 'extension=".$__f0."' directive<br>4) Restart the web server";}}$__msg.="</body></html>";}die($__msg);exit();}}return sg_load('7A3737B3AF126DC8AAQAAAAhAAAABKgAAACABAAAAAAAAAD/UAna0XPqj7z2Xe9rwSUWLJqe2nWcKNfWhQKpou2y5x/lJRdqVF33c1nu6GhvYKAnVKEoIA2S26cehNo9lzLmw2HQLPWw47R5Id06WiwZOvMr8WxVWgYYjstOHNObZoEWo5K4Tia/wpNl14DIDcbs6uym/5e648FXJK+aoPE0XZgtNyoa7xJ8BVkRbCQAzsk6aEyTMrq3uJQ+X/kpeIIuua1Cfuu8r0C9CAAAAKABAAAD2OTkDXmbyIPqOLJW/cGASPRWgOYDC8kZutIhNzpNtV9pCquQDKoyHzBeynAOHFN9j24+xB+kgctj5dzKIssTxyMyeC7Ih3CZItmmoE2k89TFAfbb3Vh20/ROlMfbdYArFT1tQhN1MiTaVbYyd7NCSysZVCLrCWqrg/s7Hcghyxx9mSyhFRerbH86j3Pid7bZXcuJI1XUjjzQTmFX7cpK+yo/RO+VfKxoSUCBpnZ+vfOmnBI+K2P7z5Te2ZuaRzho6r8Flr6Vnez1OHlTltIpSwKFO96+WQ8NGm2QsdsxqMzFaxYPmnhoJ6+IYP8Wo2Aq9h5M/ho3FBrM6pprkCrBeGE/Ep6FeUYnExzJ+rC0W6n2dnZBxlBZOqsyA6e6OEqi5tiuH/8akKFH2kSpAawhrGdKxAyxfNayvQcZOevh+AtVaHVoiMzNLwbdZP6XhlHR7pD4ViZ2XX0e8v3/gmELYqQk5033rKbv5OunS54yGsjTqhzXWgQZvZUF0yMjENspDn+AR84RLU3TS3DrGEA2tSi6df4HF1ZtCD+dteHLQFEAAACQAQAAdy0ON/gFOxDvQZOc8iSWYgS6yAO+p7UssnBE/9+MdSB/xEI+SRSR6VyGZa+lr2ef3S3mUbRunsE61r9fcw1ykI8IHT/xVbKuA40zeMAKDxPPhPo20lCiquqUpVFk7M510bmq8tuTEeL4BdPBDYhfVC/kKckYxWuzyn8+ZrSX7q1nX6JK9k51eEBsWtRdkChSXNecwF829rnpqyrZGo2LgmYvw5KfnHqsz2d7J48bHoFV8ZwxUSH93f3FmVqJrV5zSOu0PMUZ1WPiAo4Vbsc7xjdV5pMSfvK3adSTn1iQGQUiNVgRNlLREpsqghR0RLBK7GAADE9BfCtY7rbvFzJqhfc6/iGNtPENi7axYeFE4S1SV3YRm/autJGFTPxSTpAYOkC2/UUnfNLnyLnIZAhzbdZk3wLOa9wBw7zHD82w5mdILhbBHuRTopMFfVRq3oHabqoXNE1Dtuo6xNKYyZ7Ei+jABouZYbGVDiv3uf9LpxaTL+ck2DvVg4Sh4Fe0iFWPaXBTY8Ne8LxJbvoyaWkz9lIAAACQAQAAVORQEo1EohHZsn61K8B/ewvwSMvkEvvGrUNofPThNtUP/VeblB+CJQE166pmeVskL6Ts+P7Y/JCIBe6r5PoREha9gsEEsNCNg38oBMRauurqleF2lFzCibI6Zv1H1zsamIUyFsCm+z9atVp1OUD8UpPs7EpOL0PUa9AWRrFzoad13smlaVd+c7tXwWyQoJLmTIMRnGEOY4tWoZUiRJMhjrDzEXxnhtn0xhXhe4Lzbg3gz5A+umBoG902Ewaqu/KLk0wIT7w6pbS9F0ImKIdjZknwbW7oNCjw2cWXbhWYb1NwUdSYuYnMhgBtaS+/Uc8LRn0uw7RHEtOPybunrm0uZA55QCUuKgTogJKz7btdSLV58sAFty0CebJy2MnQYF13w3WR6xx19r8SSkiszz48ta7hJxMooO4L7q7JUEgI8m2Vt7Y/IWjwG296AeawZQYZbYTOh1XE79VsTyw9/N33euODSd5EbbzN0vPoiaqtauSQWBVZSRcCFdAaCp0Tcj3Ud41C6Wsm4WMDgODdnmNKAgAAAAA=');

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More