/** * Check order status before save * * @param Order $order * @return $this * @SuppressWarnings(PHPMD.CyclomaticComplexity) * @SuppressWarnings(PHPMD.NPathComplexity) */ public function check(Order $order) { if (!$order->getId()) { return $order; } if (!$order->isCanceled() && !$order->canUnhold() && !$order->canInvoice() && !$order->canShip()) { if (0 == $order->getBaseGrandTotal() || $order->canCreditmemo()) { if ($order->getState() !== Order::STATE_COMPLETE) { $order->setState(Order::STATE_COMPLETE)->setStatus($order->getConfig()->getStateDefaultStatus(Order::STATE_COMPLETE)); } } elseif (floatval($order->getTotalRefunded()) || !$order->getTotalRefunded() && $order->hasForcedCanCreditmemo()) { if ($order->getState() !== Order::STATE_CLOSED) { $order->setState(Order::STATE_CLOSED)->setStatus($order->getConfig()->getStateDefaultStatus(Order::STATE_CLOSED)); } } } if ($order->getState() == Order::STATE_NEW && $order->getIsInProcess()) { $order->setState(Order::STATE_PROCESSING)->setStatus($order->getConfig()->getStateDefaultStatus(Order::STATE_PROCESSING)); } return $this; }
/** * */ protected function _createShipment() { $this->_debugData['_createShipment'] = 'Creating shipment for order'; // create shipment for cash payment $payment = $this->_order->getPayment()->getMethodInstance(); if ($this->_order->canShip()) { $itemQty = array(); $shipment = $this->_order->prepareShipment($itemQty); if ($shipment) { $shipment->register(); $shipment->getOrder()->setIsInProcess(true); $comment = __('Shipment created by Adyen'); $shipment->addComment($comment); /** @var \Magento\Framework\DB\Transaction $transaction */ $transaction = $this->_transactionFactory->create(); $transaction->addObject($shipment)->addObject($shipment->getOrder())->save(); $this->_debugData['_createShipment done'] = 'Order is shipped'; } } else { $this->_debugData['_createShipment error'] = 'Order can\'t be shipped'; } }
/** * Create shipment * * @throws bool */ protected function _createShipment() { $this->_adyenLogger->addAdyenNotificationCronjob('Creating shipment for order'); // create shipment for cash payment $payment = $this->_order->getPayment()->getMethodInstance(); if ($this->_order->canShip()) { $itemQty = []; $shipment = $this->_order->prepareShipment($itemQty); if ($shipment) { $shipment->register(); $shipment->getOrder()->setIsInProcess(true); $comment = __('Shipment created by Adyen'); $shipment->addComment($comment); /** @var \Magento\Framework\DB\Transaction $transaction */ $transaction = $this->_transactionFactory->create(); $transaction->addObject($shipment)->addObject($shipment->getOrder())->save(); $this->_adyenLogger->addAdyenNotificationCronjob('Order is shipped'); } } else { $this->_adyenLogger->addAdyenNotificationCronjob('Order can\'t be shipped'); } }
/** * Check order status before save * * @param Order $order * @return $this */ public function check(Order $order) { if (!$order->getId()) { return $order; } $userNotification = $order->hasCustomerNoteNotify() ? $order->getCustomerNoteNotify() : null; if (!$order->isCanceled() && !$order->canUnhold() && !$order->canInvoice() && !$order->canShip()) { if (0 == $order->getBaseGrandTotal() || $order->canCreditmemo()) { if ($order->getState() !== Order::STATE_COMPLETE) { $order->setState(Order::STATE_COMPLETE, true, '', $userNotification, false); } } elseif (floatval($order->getTotalRefunded()) || !$order->getTotalRefunded() && $order->hasForcedCanCreditmemo()) { if ($order->getState() !== Order::STATE_CLOSED) { $order->setState(Order::STATE_CLOSED, true, '', $userNotification, false); } } } if ($order->getState() == Order::STATE_NEW && $order->getIsInProcess()) { $order->setState(Order::STATE_PROCESSING, true, '', $userNotification); } return $this; }