/**
  * @throws PlentymarketsExportEntityException
  */
 protected function bookIncommingPayment()
 {
     $paymentStatusPaid = explode('|', PlentymarketsConfig::getInstance()->getOrderPaidStatusID(12));
     // Directly book the incoming payment
     if ($this->Order->getPaymentStatus() && in_array($this->Order->getPaymentStatus()->getId(), $paymentStatusPaid)) {
         // May throw an exception
         $IncomingPayment = new PlentymarketsExportEntityOrderIncomingPayment($this->Order->getId());
         $IncomingPayment->book();
     }
 }
    /**
     * Writes the plenty order id and the status into the database
     *
     * @param integer $plentyOrderID
     * @param float $plentyOrderStatus
     */
    protected function setSuccess($plentyOrderID, $plentyOrderStatus)
    {
        PlentymarketsLogger::getInstance()->message('Export:Order', 'The sales order with the number  »' . $this->Order->getNumber() . '« has been created in plentymakets (id: ' . $plentyOrderID . ', status: ' . $plentyOrderStatus . ')');
        Shopware()->Db()->prepare('
			UPDATE plenty_order
				SET
					status = 2,
					timestampLastTry = NOW(),
					numberOfTries = numberOfTries + 1,
					plentyOrderTimestamp = NOW(),
					plentyOrderId = ?,
					plentyOrderStatus = ?
				WHERE shopwareId = ?
		')->execute(array($plentyOrderID, $plentyOrderStatus, $this->Order->getId()));
    }
コード例 #3
0
ファイル: Order.php プロジェクト: GerDner/luck-docker
 /**
  * Internal helper function to check if the order or payment status has been changed. If one
  * of the status changed, the function will create a status mail. If the passed autoSend parameter
  * is true, the created status mail will be send directly.
  * @param Order   $order
  * @param \Shopware\Models\Order\Status $statusBefore
  * @param \Shopware\Models\Order\Status $clearedBefore
  * @param boolean $autoSend
  * @return array
  */
 private function checkOrderStatus($order, $statusBefore, $clearedBefore, $autoSend)
 {
     if ($order->getOrderStatus()->getId() !== $statusBefore->getId() || $order->getPaymentStatus()->getId() !== $clearedBefore->getId()) {
         //status or cleared changed?
         if ($order->getOrderStatus()->getId() !== $statusBefore->getId()) {
             $mail = $this->getMailForOrder($order->getId(), $order->getOrderStatus()->getId());
         } else {
             $mail = $this->getMailForOrder($order->getId(), $order->getPaymentStatus()->getId());
         }
         //mail object created and auto send activated, then send mail directly.
         if (is_object($mail['mail']) && $autoSend === "true") {
             $result = Shopware()->Modules()->Order()->sendStatusMail($mail['mail']);
             //check if send mail was successfully.
             $mail['data']['sent'] = is_object($result);
         }
         return $mail['data'];
     } else {
         return null;
     }
 }
コード例 #4
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;
 }