def get_price_available(self, order):
        self.ensure_one()
        category_price = 0.0
        price_dict = self.get_price_dict(order)
        for line in self.price_rule_ids:
            if line.product_category_id:
                products = order.mapped('order_line.product_id')
                test = any(product.categ_id == line.product_category_id
                           for product in products)
                if test:
                    category_price = line.product_category_price
                    break
            else:
                test = safe_eval(
                    line.variable + line.operator + str(line.max_value),
                    price_dict)
                if test:
                    break
        if category_price:
            return category_price

        # Note that this will evaluate all the price_rule_ids again and
        # our category rules might interfere withthe correct computation
        return super(DeliveryCarrier, self).get_price_available(order)