/**
  * Returns the method of payment id
  *
  * @throws PlentymarketsExportEntityException if there is no mapping
  */
 protected function getMethodOfPaymentId()
 {
     // Sub-objects
     $Payment = $this->Order->getPayment();
     // Payment
     if ($Payment) {
         try {
             return PlentymarketsMappingController::getMethodOfPaymentByShopwareID($Payment->getId());
         } catch (PlentymarketsMappingExceptionNotExistant $E) {
             $shopgateIds = explode('|', PyConf()->get('OrderShopgateMOPIDs', ''));
             if (in_array($Payment->getId(), $shopgateIds)) {
                 return MOP_SHOPGATE;
             }
         }
     }
     // Save the error
     $this->setError(self::CODE_ERROR_MOP);
     // Exit
     throw new PlentymarketsExportEntityException('The order with the number »' . $this->Order->getNumber() . '« could not be exported (no mapping for method of payment)', 4030);
 }
Exemplo n.º 2
0
 /**
  * @param \Shopware\Models\Order\Order $orderModel
  * @return array
  */
 private function prepareOrderConfirmationMailData($orderModel)
 {
     $billingAddress = Shopware()->Db()->fetchRow('SELECT *, userID AS customerBillingId FROM s_order_billingaddress WHERE orderID = ?', [$orderModel->getId()]);
     $billingAddressAttributes = Shopware()->Db()->fetchRow('SELECT * FROM s_order_billingaddress_attributes WHERE billingID = ?', [$billingAddress['id']]);
     if (!empty($billingAddressAttributes)) {
         $billingAddress = array_merge($billingAddress, $billingAddressAttributes);
     }
     /** @var \Shopware_Components_CreateBackendOrder $createBackendOrder */
     $createBackendOrder = Shopware()->CreateBackendOrder();
     if ($createBackendOrder->getEqualBillingAddress()) {
         $shippingAddress = $billingAddress;
     } else {
         $shippingAddress = Shopware()->Db()->fetchRow('SELECT *, userID AS customerBillingId FROM s_order_shippingaddress WHERE orderID = ?', [$orderModel->getId()]);
         $shippingAddressAttributes = Shopware()->Db()->fetchRow('SELECT * FROM s_order_shippingaddress_attributes WHERE shippingID = ?', [$shippingAddress['id']]);
         if (!empty($shippingAddressAttributes)) {
             $shippingAddress = array_merge($shippingAddress, $shippingAddressAttributes);
         }
     }
     $context['billingaddress'] = $billingAddress;
     $context['shippingaddress'] = $shippingAddress;
     $context['sOrderNumber'] = $orderModel->getNumber();
     $currency = $orderModel->getCurrency();
     $context['sCurrency'] = $currency;
     $context['sAmount'] = $orderModel->getInvoiceAmount() . ' ' . $currency;
     $context['sAmountNet'] = $orderModel->getInvoiceAmountNet() . ' ' . $currency;
     $context['sShippingCosts'] = $orderModel->getInvoiceShipping() . ' ' . $currency;
     $orderTime = $orderModel->getOrderTime();
     $context['sOrderDay'] = $orderTime->format('d.m.Y');
     $context['sOrderTime'] = $orderTime->format('H:i');
     $context['sComment'] = '';
     $context['sLanguage'] = $orderModel->getLanguageSubShop()->getId();
     $context['sSubShop'] = $orderModel->getShop()->getId();
     $orderAttributes = Shopware()->Db()->fetchRow('SELECT * FROM s_order_attributes WHERE orderID = ?', [$orderModel->getId()]);
     $context['attributes'] = $orderAttributes;
     $dispatch = Shopware()->Db()->fetchRow('SELECT * FROM s_premium_dispatch WHERE id = ?', [$orderModel->getDispatch()->getId()]);
     $dispatch = $this->translateDispatch($dispatch, $orderModel->getLanguageSubShop()->getId());
     $context['sDispatch'] = $dispatch;
     $user = Shopware()->Db()->fetchRow('SELECT * FROM s_user WHERE id = ?', [$orderModel->getCustomer()->getId()]);
     $context['additional']['user'] = $user;
     $country = Shopware()->Db()->fetchRow('SELECT * FROM s_core_countries WHERE id = ?', [$orderModel->getBilling()->getCountry()->getId()]);
     $context['additional']['country'] = $country;
     $context['additional']['state'] = [];
     if ($orderModel->getBilling()->getState()) {
         $state = Shopware()->Db()->fetchRow('SELECT * FROM s_core_countries_states WHERE id = ?', [$orderModel->getBilling()->getState()->getId()]);
         $context['additional']['state'] = $state;
     }
     $country = Shopware()->Db()->fetchRow('SELECT * FROM s_core_countries WHERE id = ?', [$orderModel->getShipping()->getCountry()->getId()]);
     $context['additional']['countryShipping'] = $country;
     $context['additional']['stateShipping'] = [];
     if ($orderModel->getShipping()->getState()) {
         $state = Shopware()->Db()->fetchRow('SELECT * FROM s_core_countries_states WHERE id = ?', [$orderModel->getShipping()->getState()->getId()]);
         $context['additional']['stateShipping'] = $state;
     }
     $payment = Shopware()->Db()->fetchRow('SELECT * FROM s_core_paymentmeans WHERE id = ?', [$orderModel->getPayment()->getId()]);
     $payment = $this->translatePayment($payment, $orderModel->getLanguageSubShop()->getId());
     $context['additional']['payment'] = $payment;
     $context['sPaymentTable'] = [];
     if ($context['additional']['payment']['name'] === 'debit') {
         $paymentTable = Shopware()->Db()->fetchRow('SELECT * FROM s_core_payment_data WHERE user_id = ?', [$orderModel->getCustomer()->getId()]);
         $context['sPaymentTable'] = $paymentTable;
     }
     $context['additional']['show_net'] = $orderModel->getNet();
     $context['additional']['charge_var'] = 1;
     return $context;
 }
Exemplo n.º 3
0
 /**
  * @param \Shopware\Models\Order\Order $orderModel
  * @return \Shopware\Models\Payment\PaymentInstance
  */
 private function preparePaymentInstance(\Shopware\Models\Order\Order $orderModel)
 {
     $paymentId = $orderModel->getPayment()->getId();
     $customerId = $orderModel->getCustomer()->getId();
     $paymentInstanceModel = new Shopware\Models\Payment\PaymentInstance();
     /** @var Shopware\Models\Customer\PaymentData[] $paymentDataModel */
     $paymentDataModel = $this->getCustomerPaymentData($customerId, $paymentId);
     if ($paymentDataModel[0] instanceof Shopware\Models\Customer\PaymentData) {
         /** @var Shopware\Models\Customer\PaymentData $paymentDataModel */
         $paymentDataModel = $paymentDataModel[0];
         $paymentInstanceModel->setBankName($paymentDataModel->getBankName());
         $paymentInstanceModel->setBankCode($paymentDataModel->getBankCode());
         $paymentInstanceModel->setAccountHolder($paymentDataModel->getAccountHolder());
         $paymentInstanceModel->setIban($paymentDataModel->getIban());
         $paymentInstanceModel->setBic($paymentDataModel->getBic());
         $paymentInstanceModel->setBankCode($paymentDataModel->getBankCode());
         $paymentInstanceModel->setAccountNumber($paymentDataModel->getAccountHolder());
     }
     $paymentInstanceModel->setPaymentMean($orderModel->getPayment());
     $paymentInstanceModel->setOrder($orderModel);
     $paymentInstanceModel->setCreatedAt($orderModel->getOrderTime());
     $paymentInstanceModel->setCustomer($orderModel->getCustomer());
     $paymentInstanceModel->setFirstName($orderModel->getBilling()->getFirstName());
     $paymentInstanceModel->setLastName($orderModel->getBilling()->getLastName());
     $paymentInstanceModel->setAddress($orderModel->getBilling()->getStreet());
     $paymentInstanceModel->setZipCode($orderModel->getBilling()->getZipCode());
     $paymentInstanceModel->setCity($orderModel->getBilling()->getCity());
     $paymentInstanceModel->setAmount($orderModel->getInvoiceAmount());
     return $paymentInstanceModel;
 }