1
0
forked from Mapan/odoo17e
odoo17e-kedaikipas58/addons/website_sale_stock_renting/controllers/product.py
2024-12-10 09:04:09 +07:00

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