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);
         }
     }
 }