Files
enterprise-addons/website_sale_stock_renting/controllers/main.py
T

33 lines
1.3 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import fields
from odoo.http import request, route
from odoo.addons.website_sale_renting.controllers.main import WebsiteSaleRenting
class WebsiteSaleStockRenting(WebsiteSaleRenting):
@route()
def renting_product_availabilities(self, product_id, min_date, max_date):
""" Return rental product availabilities.
Availabilities are the available quantities of a product for a given period. This is
expressed by an ordered list of dict {'start': ..., 'end': ..., 'available_quantity': ...).
:rtype: dict
"""
product_sudo = request.env['product.product'].sudo().browse(product_id).exists()
result = {
**super().renting_product_availabilities(product_id, min_date, max_date),
'preparation_time': product_sudo.preparation_time
}
if product_sudo.is_storable and not product_sudo.allow_out_of_stock_order:
result['renting_availabilities'] = product_sudo._get_availabilities(
fields.Datetime.to_datetime(min_date),
fields.Datetime.to_datetime(max_date),
request.website.warehouse_id.id,
with_cart=True,
)
return result