public function execute(\Magento\Framework\Event\Observer $observer)
 {
     /** @var \Magento\Sales\Model\Order $order */
     $order = $observer->getData(self::DATA_ORDER);
     $this->_subRegister->savePv($order);
     $this->_subRegister->accountPv($order);
 }
 public function execute(\Magento\Framework\Event\Observer $observer)
 {
     /** @var \Magento\Sales\Model\Order $order */
     $order = $observer->getData(self::DATA_ORDER);
     /* save PV for order and order items into the registry */
     $this->_subRegister->savePv($order);
     /* account PV if order is paid (credit card payment) */
     $state = $order->getState();
     $status = $order->getStatus();
     if ($state == \Magento\Sales\Model\Order::STATE_PROCESSING && $status != \Magento\Sales\Model\Order::STATUS_FRAUD) {
         $this->_subRegister->accountPv($order);
     }
 }
 public function execute(\Magento\Framework\Event\Observer $observer)
 {
     /** @var \Magento\Sales\Model\Order\Invoice $invoice */
     $invoice = $observer->getData(self::DATA_INVOICE);
     $state = $invoice->getState();
     if ($state == \Magento\Sales\Model\Order\Invoice::STATE_PAID) {
         /* update date_paid in the PV registry */
         /** @var \Magento\Sales\Model\Order $order */
         $order = $invoice->getOrder();
         $orderId = $order->getEntityId();
         if ($orderId) {
             $datePaid = $this->_toolDate->getUtcNowForDb();
             $this->_logger->debug("Update paid date in PV registry on sale order (#{$orderId}) is paid.");
             $data = [ESale::ATTR_DATE_PAID => $datePaid];
             $this->_repoSale->updateById($orderId, $data);
             /* transfer PV to customer account */
             $this->_subRegister->accountPv($order);
         }
     }
 }
 public function execute(\Magento\Framework\Event\Observer $observer)
 {
     /** @var \Magento\Sales\Model\Order\Invoice $invoice */
     $invoice = $observer->getData(self::DATA_INVOICE);
     $state = $invoice->getState();
     if ($state == \Magento\Sales\Model\Order\Invoice::STATE_PAID) {
         try {
             /* update date_paid in the PV registry */
             /** @var \Magento\Sales\Model\Order $order */
             $order = $invoice->getOrder();
             $orderId = $order->getEntityId();
             $datePaid = $this->_toolDate->getUtcNowForDb();
             $this->_logger->debug("Update paid date in PV registry on sale order (#{$orderId}) is paid.");
             $data = [ESale::ATTR_DATE_PAID => $datePaid];
             $this->_repoSale->updateById($orderId, $data);
             /* transfer PV to customer account */
             $this->_subRegister->accountPv($order);
         } catch (\Throwable $e) {
             /* catch all exceptions and steal them */
             $msg = 'Some error is occurred on update of the paid date in PV register. Error: ' . $e->getMessage();
             $this->_logger->error($msg);
         }
     }
 }