public function allProductsAreRefundable()
    {
        $bProductsHaveBeenRefunded = $this->hasTransactions(self::TRANSACTION_TYPE_PAYMENT_REVERSAL)
            || $this->hasTransactions(self::TRANSACTION_TYPE_CREDIT);
        if (true === $bProductsHaveBeenRefunded) {
            return false;
        }

        if ($this->order->fieldValueTotal == $this->getMaxAllowedValueFor(self::TRANSACTION_TYPE_CREDIT)) {
            return true;
        }

        return false;
    }