/**
  * @param \Magento\Sales\Api\Data\CreditmemoInterface $creditmemo
  * @return bool
  * @throws \Magento\Framework\Exception\LocalizedException
  */
 protected function validateForRefund(\Magento\Sales\Api\Data\CreditmemoInterface $creditmemo)
 {
     if ($creditmemo->getId()) {
         throw new \Magento\Framework\Exception\LocalizedException(__('We cannot register an existing credit memo.'));
     }
     $baseOrderRefund = $this->priceCurrency->round($creditmemo->getOrder()->getBaseTotalRefunded() + $creditmemo->getBaseGrandTotal());
     if ($baseOrderRefund > $this->priceCurrency->round($creditmemo->getOrder()->getBaseTotalPaid())) {
         $baseAvailableRefund = $creditmemo->getOrder()->getBaseTotalPaid() - $creditmemo->getOrder()->getBaseTotalRefunded();
         throw new \Magento\Framework\Exception\LocalizedException(__('The most money available to refund is %1.', $creditmemo->getOrder()->formatBasePrice($baseAvailableRefund)));
     }
     return true;
 }