Skip to content

Commit

Permalink
[IMP] website_sale_cart_with_unconfirmed_budget: Remove fork
Browse files Browse the repository at this point in the history
  • Loading branch information
unaiberis committed Oct 21, 2024
1 parent a321ca6 commit 918b5f9
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,28 @@ class WebsiteSale(WebsiteSale):

@http.route(["/shop/cart"], type="http", auth="public", website=True, sitemap=False)
def cart(self, access_token=None, revive="", **post):
response = super().cart(access_token=access_token, revive=revive, **post)
order = request.website.sale_get_order()

if order and order.state != "draft":
request.session["sale_order_id"] = None
order = request.website.sale_get_order()

request.session["website_sale_cart_quantity"] = order.cart_quantity
if not order:
last_order = request.env["sale.order"].search(
[
("partner_id", "=", request.env.user.partner_id.id),
("state", "=", "sent"),
],
order="date_order desc",
limit=1,
)
if last_order:
order = last_order

request.session["website_sale_cart_quantity"] = (
order.cart_quantity if order else 0
)

values = {
"website_sale_order": order,
Expand All @@ -29,7 +45,8 @@ def cart(self, access_token=None, revive="", **post):
values["suggested_products"] = order._cart_accessories()
values.update(self._get_express_shop_payment_values(order))

return request.render("website_sale.cart", values)
response.qcontext.update(values)
return response

@http.route(
["/shop/cart/update"],
Expand Down
49 changes: 29 additions & 20 deletions website_sale_cart_with_unconfirmed_budget/models/sale_order.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,34 @@ class SaleOrder(models.Model):
_inherit = "sale.order"

@api.model
def create(self, vals):
unconfirmed_budget = self.env["sale.order"].search(
[
("state", "=", "draft"),
("partner_id", "=", vals.get("partner_id")),
],
limit=1,
)
def create(self, vals_list):
if isinstance(vals_list, dict):
vals_list = [vals_list]

if unconfirmed_budget:
unconfirmed_budget.order_line.unlink()
for line in vals.get("order_line", []):
unconfirmed_budget.order_line.create(
{
"order_id": unconfirmed_budget.id,
"product_id": line[2]["product_id"],
"product_uom_qty": line[2]["product_uom_qty"],
}
)
return unconfirmed_budget
created_orders = self.browse()

return super().create(vals)
for vals in vals_list:
unconfirmed_budget = self.env["sale.order"].search(
[
("state", "=", "draft"),
("partner_id", "=", vals.get("partner_id")),
],
limit=1,
)

if unconfirmed_budget:
unconfirmed_budget.order_line.unlink()
for line in vals.get("order_line", []):
unconfirmed_budget.order_line.create(
{
"order_id": unconfirmed_budget.id,
"product_id": line[2]["product_id"],
"product_uom_qty": line[2]["product_uom_qty"],
}
)
created_orders += unconfirmed_budget
else:
created_order = super().create(vals)
created_orders += created_order

return created_orders

0 comments on commit 918b5f9

Please sign in to comment.