/** * returns config according to submitted payment id * returns global config if no payment id is submitted * * @param string $paymentId * @param bool $forceReload * @param bool $asArray * @return array */ public function getPayoneConfig($paymentId = 0, $forceReload = false, $asArray = true) { if (is_null($paymentId)) { $paymentId = 0; } if (!empty($this->payoneConfig[$paymentId]) && !$forceReload) { return $this->payoneConfig[$paymentId]; } $repository = Shopware()->Models()->getRepository('Shopware\\CustomModels\\MoptPayoneConfig\\MoptPayoneConfig'); $data = $repository->getConfigByPaymentId($paymentId, $asArray); if ($data === NULL) { $data = new Shopware\CustomModels\MoptPayoneConfig\MoptPayoneConfig(); $data->setPaymentId($paymentId); } return $this->payoneConfig[$paymentId] = $data; }
/** * saves submitted payment config or calls deleteConfigAction if reset is requested * * @return mixed */ public function saveConfigAction() { $data = $this->Request()->getParams(); if (isset($data['type']) && $data['type'] == 'reset' && $data['paymentId'] != 0) { return $this->deleteConfigAction($data); } $data = $this->validateFormData($data); $config = Shopware()->Plugins()->Frontend()->MoptPaymentPayone()->Application()->PayoneMain()->getInstance()->getPayoneConfig($data['paymentId'], true, false); if ($data['paymentId'] == $config->getPaymentId()) { $config->fromArray($data); } else { $config = new Shopware\CustomModels\MoptPayoneConfig\MoptPayoneConfig(); $config->setData($data); } Shopware()->Models()->persist($config); Shopware()->Models()->flush(); $message = Shopware()->Snippets()->getNamespace('backend/MoptPaymentPayone/messages')->get('successfulSaved', 'Erfolgreich gespeichert', true); $this->View()->assign(array('success' => true, 'data' => $message)); }