* @link http://www.oxidmodule.com */ namespace D3\Linkmobility4OXID\Application\Model; use D3\Linkmobility4OXID\Application\Model\Exceptions\noRecipientFoundException; use D3\LinkmobilityClient\ValueObject\Recipient; use OxidEsales\Eshop\Application\Model\Country; use OxidEsales\Eshop\Application\Model\Order; use OxidEsales\Eshop\Application\Model\User; class OrderRecipients { /** * @var Order */ private $order; public function __construct(Order $order) { $this->order = $order; } /** * @return Recipient * @throws noRecipientFoundException */ public function getSmsRecipient(): Recipient { foreach ($this->getSmsRecipientFields() as $phoneFieldName => $countryIdFieldName) { $content = trim($this->order->getFieldData($phoneFieldName)); if (strlen($content)) { $country = oxNew(Country::class); $country->load($this->order->getFieldData($countryIdFieldName)); return oxNew(Recipient::class, $content, $country->getFieldData('oxisoalpha2')); } } throw oxNew(noRecipientFoundException::class); } /** * @return string[] */ public function getSmsRecipientFields(): array { return [ 'oxdelfon' => 'oxdelcountryid', 'oxbillfon' => 'oxbillcountryid' ]; } }