forked from Mapan/odoo17e
30 lines
1.2 KiB
Python
30 lines
1.2 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo.http import request
|
|
from odoo import fields, http
|
|
|
|
from odoo.addons.website_sale_renting.controllers.product import WebsiteSaleRenting
|
|
|
|
class WebsiteSaleStockRenting(WebsiteSaleRenting):
|
|
|
|
@http.route(
|
|
'/rental/product/availabilities', type='json', auth="public", methods=['POST'],
|
|
website=True
|
|
)
|
|
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: list(dict)
|
|
"""
|
|
product_sudo = request.env["product.product"].sudo().browse(product_id).exists()
|
|
result = {'preparation_time': product_sudo.preparation_time}
|
|
if 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._get_warehouse_available(), with_cart=True
|
|
)
|
|
return result
|