diff --git a/src/Application/Model/d3linkmobility_ordermanager_action.php b/src/Application/Model/d3linkmobility_ordermanager_action.php
index 0f5e58b..940f470 100644
--- a/src/Application/Model/d3linkmobility_ordermanager_action.php
+++ b/src/Application/Model/d3linkmobility_ordermanager_action.php
@@ -15,12 +15,16 @@ declare(strict_types=1);
namespace D3\Linkmobility4Ordermanager\Application\Model;
+use D3\ModCfg\Application\Model\Exception\d3_cfg_mod_exception;
+use D3\ModCfg\Application\Model\Exception\d3ShopCompatibilityAdapterException;
use D3\Ordermanager\Application\Model\Actions\d3ordermanager_action_abstract;
use D3\Ordermanager\Application\Model\d3ordermanager_conf;
use Doctrine\DBAL\DBALException;
use OxidEsales\Eshop\Application\Model\Content;
use OxidEsales\Eshop\Core\Exception\DatabaseConnectionException;
use OxidEsales\Eshop\Core\Exception\DatabaseErrorException;
+use OxidEsales\Eshop\Core\Exception\DatabaseException;
+use OxidEsales\Eshop\Core\Exception\StandardException;
class d3linkmobility_ordermanager_action extends d3ordermanager_action_abstract
{
@@ -99,18 +103,14 @@ class d3linkmobility_ordermanager_action extends d3ordermanager_action_abstract
$aMailDesc = [];
$aEditedValues ?
- ($aEditedValues['blSendMailToCustomer'] ? $aMailDesc[] = 'Customer' : '') :
- ($this->getManager()->getValue('blSendMailToCustomer') ? $aMailDesc[] = 'Customer' : '');
+ ($aEditedValues['blLinkMobilityMessageToCustomer'] ? $aMailDesc[] = 'Customer' : '') :
+ ($this->getManager()->getValue('blLinkMobilityMessageToCustomer') ? $aMailDesc[] = 'Customer' : '');
$aEditedValues ?
- ($aEditedValues['blSendMailToOwner'] ? $aMailDesc[] = 'Owner' : '') :
- ($this->getManager()->getValue('blSendMailToOwner') ? $aMailDesc[] = 'Owner' : '');
- $aEditedValues ?
- ($aEditedValues['blSendMailToCustom'] ? $aMailDesc[] = 'Custom: ' . $aEditedValues['sSendMailToCustomAddress'] : '') :
- ($this->getManager()->getValue('blSendMailToCustom') ?
- $aMailDesc[] = 'Custom: ' . $this->getManager()->getValue('sSendMailToCustomAddress') :
+ ($aEditedValues['blLinkMobilityMessageToCustom'] ? $aMailDesc[] = 'Custom: ' . $aEditedValues['sLinkMobilityMessageToCustomAddress'] : '') :
+ ($this->getManager()->getValue('blLinkMobilityMessageToCustom') ?
+ $aMailDesc[] = 'Custom: ' . $this->getManager()->getValue('sLinkMobilityMessageToCustomAddress') :
''
);
- }
return implode(', ', $aMailDesc);
}
@@ -177,6 +177,33 @@ class d3linkmobility_ordermanager_action extends d3ordermanager_action_abstract
return $this->getManager()->getExecMode();
}
+ /**
+ * @throws DBALException
+ * @throws DatabaseConnectionException
+ * @throws DatabaseErrorException
+ * @throws DatabaseException
+ * @throws StandardException
+ * @throws d3ShopCompatibilityAdapterException
+ * @throws d3_cfg_mod_exception
+ */
+ public function startExecution()
+ {
+ if ($this->canExecuteMethod() && $this->hasRequiredValues()) {
+ $this->getSendClass()->sendOrderManagerSms($this->getManager(), $this->getItem());
+ }
+ }
+
+ /**
+ * @return d3linkmobility_ordermanager_sender
+ */
+ public function getSendClass()
+ {
+ /** @var d3linkmobility_ordermanager_sender $mailer */
+ $sender = oxNew(d3linkmobility_ordermanager_sender::class);
+
+ return $sender;
+ }
+
/**
* @return string
*/
diff --git a/src/Application/Model/d3linkmobility_ordermanager_sender.php b/src/Application/Model/d3linkmobility_ordermanager_sender.php
new file mode 100644
index 0000000..33281dc
--- /dev/null
+++ b/src/Application/Model/d3linkmobility_ordermanager_sender.php
@@ -0,0 +1,100 @@
+
+ * @link https://www.oxidmodule.com
+ */
+
+declare(strict_types=1);
+
+namespace D3\Linkmobility4Ordermanager\Application\Model;
+
+use D3\Linkmobility4OXID\Application\Model\MessageTypes\Sms;
+use D3\Linkmobility4OXID\Application\Model\OrderRecipients;
+use D3\LinkmobilityClient\ValueObject\Recipient;
+use D3\Ordermanager\Application\Model\d3ordermanager;
+use OxidEsales\Eshop\Application\Model\Order;
+
+class d3linkmobility_ordermanager_sender
+{
+ /** @var d3ordermanager */
+ protected $manager;
+
+ /** @var Order */
+ protected $item;
+
+ public function sendOrderManagerSms(d3ordermanager $manager, Order $item)
+ {
+ $this->setManager($manager);
+ $this->setItem($item);
+
+ $sms = oxNew(Sms::class, $this->getMessageBody());
+ $sms->sendCustomRecipientMessage($this->getRecipients());
+ }
+
+ /**
+ * @return string
+ */
+ protected function getMessageBody(): string
+ {
+ return '';
+ }
+
+ /**
+ * @return array
+ * @throws \D3\Linkmobility4OXID\Application\Model\Exceptions\noRecipientFoundException
+ * @throws \D3\ModCfg\Application\Model\Exception\d3ParameterNotFoundException
+ */
+ protected function getRecipients(): array
+ {
+ $aEditedValues = $this->getManager()->getEditedValues();
+
+ $recipients = [];
+ if ($aEditedValues && $aEditedValues['blLinkMobilityMessageToCustomer']) {
+ $recipients[] = oxNew(OrderRecipients::class, $this->getItem())->getSmsRecipient();
+ }
+ if ($aEditedValues && $aEditedValues['blLinkMobilityMessageToCustom']) {
+ $recipients[] = oxNew(Recipient::class, 'number', 'DE');
+ }
+
+ return $recipients;
+ }
+
+ /**
+ * @return Order
+ */
+ public function getItem(): Order
+ {
+ return $this->item;
+ }
+
+ /**
+ * @param Order $item
+ */
+ public function setItem(Order $item): void
+ {
+ $this->item = $item;
+ }
+
+ /**
+ * @param d3ordermanager $manager
+ */
+ public function setManager(d3ordermanager $manager): void
+ {
+ $this->manager = $manager;
+ }
+
+ /**
+ * @return d3ordermanager
+ */
+ public function getManager(): d3ordermanager
+ {
+ return $this->manager;
+ }
+}
\ No newline at end of file
diff --git a/src/Application/views/admin/tpl/d3linkmobility_ordermanager_action.tpl b/src/Application/views/admin/tpl/d3linkmobility_ordermanager_action.tpl
index 2bd714e..4cb7cd7 100644
--- a/src/Application/views/admin/tpl/d3linkmobility_ordermanager_action.tpl
+++ b/src/Application/views/admin/tpl/d3linkmobility_ordermanager_action.tpl
@@ -13,7 +13,7 @@
getValue('sLinkMobilityMessageFromTheme') == 'frontend'}]checked[{/if}] [{$blActionRestriction}] [{$readonly}]>
getValue('sLinkMobilityMessageFromTheme') == 'module'}]checked[{/if}] [{$blActionRestriction}] [{$readonly}]>
-
+