/**
  * @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
ファイル: CanceledOrder.php プロジェクト: GerDner/luck-docker
 /**
  * @param Order $order
  * @return \Shopware\Models\Article\Detail[]
  */
 private function getProductsOfOrder(Order $order)
 {
     /**@var $repository \Shopware\Components\Model\ModelRepository*/
     $repository = $this->get('models')->getRepository('Shopware\\Models\\Article\\Detail');
     $products = [];
     foreach ($order->getDetails() as $detail) {
         /**@var $detail \Shopware\Models\Order\Detail*/
         if (!$this->isProductPosition($detail)) {
             continue;
         }
         $variant = $repository->findOneBy(['number' => $detail->getArticleNumber()]);
         $products[] = $variant;
     }
     return $products;
 }
コード例 #5
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;
 }
コード例 #6
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;
 }