* @link http://www.oxidmodule.com */ namespace D3\Ordermanager\Application\Controller\Admin; 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; use D3\Ordermanager\Application\Model\d3ordermanager; use D3\Ordermanager\Application\Model\d3ordermanagerlist; use D3\Ordermanager\Application\Model\Requirements\d3ordermanager_requirementlist; use Exception; use OxidEsales\Eshop\Application\Model\PaymentList; use OxidEsales\Eshop\Application\Model\DeliveryList; 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 { protected $_sThisTemplate = "d3_cfg_ordermanageritem_requ.tpl"; protected $_aTransStatus = array('OK', 'ERROR', 'NOT_OK'); protected $_sMenuSubItemTitle = 'd3mxordermanager_items'; public function save() { // @codeCoverageIgnoreStart if (!defined('OXID_PHP_UNIT')) { parent::save(); } // @codeCoverageIgnoreEnd $aMissingRequiredValues = array(); /** @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 (count($aMissingRequiredValues)) { $this->addTplParam('missingRequValuesActions', $aMissingRequiredValues); } } /** * @return ListModel * @throws Exception */ public function getPaymentList() { /** @var PaymentList $oPaymentList */ $oPaymentList = d3GetModCfgDIC()->get('d3ox.ordermanager.'.PaymentList::class); return $this->_getObjectList($oPaymentList, null, 'oxdesc ASC'); } /** * @return ListModel * @throws Exception */ public function getDeliveryList() { /** @var DeliveryList $oDeliveryList */ $oDeliveryList = d3GetModCfgDIC()->get('d3ox.ordermanager.'.DeliveryList::class); return $this->_getObjectList($oDeliveryList, null, 'oxtitle ASC'); } /** * @return ListModel * @throws Exception */ public function getCountryList() { /** @var CountryList $oCountryList */ $oCountryList = d3GetModCfgDIC()->get('d3ox.ordermanager.'.CountryList::class); return $this->_getObjectList($oCountryList, null, 'oxtitle ASC'); } /** * @return d3ordermanagerlist * @throws Exception */ public function getJobList() { $sCurrentId = $this->getViewDataElement('edit')->getId(); /** @var $oManagerList d3Ordermanagerlist */ $oManagerList = d3GetModCfgDIC()->get(d3ordermanagerlist::class); $oManagerList->setCustomSorting('oxsort ASC'); $oManagerList->getList(); $oManagerList->offsetUnset($sCurrentId); return $oManagerList; } /** * @return array * @throws Exception */ public function getLanguageList() { $oLang = d3GetModCfgDIC()->get('d3ox.ordermanager.'.Language::class); return $oLang->getLanguageArray(); } /** * @return array */ public function getTransStatusList() { return $this->_aTransStatus; } /** * Sets default values for empty article (currently does nothing), returns * array with parameters. * * @param array $aParams Parameters, to set default values * * @return array */ public function addDefaultValues($aParams) { return $aParams; } /** * @param d3ordermanager $oManager * @return d3ordermanager_requirementgrouplist * @throws Exception */ public function getRequirementGroupList(d3ordermanager $oManager) { d3GetModCfgDIC()->set( d3ordermanager_requirementgrouplist::class.'.args.ordermanager', $oManager ); return d3GetModCfgDIC()->get(d3ordermanager_requirementgrouplist::class); } /** * @param d3ordermanager $oManager * @return d3ordermanager_requirementlist * @throws Exception */ public function getRequirementListObject(d3ordermanager $oManager) { d3GetModCfgDIC()->set( d3ordermanager_requirementlist::class.'.args.ordermanager', $oManager ); return d3GetModCfgDIC()->get(d3ordermanager_requirementlist::class); } /** * @return array * @throws Exception */ public function getGroupedRequirementList() { /** @var d3ordermanager $oManager */ $oManager = $this->getProfile(); $oRequList = $this->getRequirementGroupList($oManager); $oRequList->setGroups($oManager->getConfiguration()->getGroupedRequirementIdList()); return $oRequList->getGroupList(); } /** * @return array * @throws Exception */ public function getRequirementList() { /** @var d3ordermanager $oManager */ $oManager = $this->getProfile(); $oRequList = $this->getRequirementListObject($oManager); $oRequList->setRequirements($oManager->getConfiguration()->getRequirementIdList()); return $oRequList->getRequirementList(); } }