/**
  * @param \Magento\Framework\Event\Observer $observer
  * @return void
  */
 public function execute(\Magento\Framework\Event\Observer $observer)
 {
     if ($observer->getEvent()->getState() != \Magento\Sales\Model\Order::STATE_NEW) {
         return;
     }
     $status = $observer->getEvent()->getStatus();
     $defaultStatus = $this->_salesOrderConfig->getStateDefaultStatus(\Magento\Sales\Model\Order::STATE_NEW);
     $methods = $this->_paymentConfig->getActiveMethods();
     foreach ($methods as $method) {
         if ($method->getConfigData('order_status') == $status) {
             $this->_resourceConfig->saveConfig('payment/' . $method->getCode() . '/order_status', $defaultStatus, 'default', 0);
         }
     }
 }
Example #2
0
 /**
  * Gets Payu.pl-specific default status for state.
  *
  * @param string $state
  * @return string
  */
 public function getStateDefaultStatus($state)
 {
     switch ($state) {
         case Order::STATE_PENDING_PAYMENT:
             return $this->scopeConfig->getValue(self::XML_PATH_ORDER_STATUS_NEW, 'store');
         case Order::STATE_HOLDED:
             return $this->scopeConfig->getValue(self::XML_PATH_ORDER_STATUS_HOLDED, 'store');
         case Order::STATE_PROCESSING:
             return $this->scopeConfig->getValue(self::XML_PATH_ORDER_STATUS_PROCESSING, 'store');
     }
     return parent::getStateDefaultStatus($state);
 }