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 authored and anajuaristi committed Oct 21, 2024
1 parent e11be8a commit 20a48fc
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,29 @@ 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:
last_order.write({"state": "draft"})
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 +46,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 All @@ -46,7 +64,7 @@ def cart_update(
product_custom_attribute_values=None,
no_variant_attribute_values=None,
express=False,
**kwargs
**kwargs,
):
sale_order = super().cart_update(
product_id=product_id,
Expand All @@ -55,7 +73,7 @@ def cart_update(
product_custom_attribute_values=product_custom_attribute_values,
no_variant_attribute_values=no_variant_attribute_values,
express=express,
**kwargs
**kwargs,
)

request.session["website_sale_cart_quantity"] = sale_order.cart_quantity
Expand All @@ -82,7 +100,7 @@ def cart_update_json(
display=True,
product_custom_attribute_values=None,
no_variant_attribute_values=None,
**kw
**kw,
):
values = super().cart_update_json(
product_id=product_id,
Expand All @@ -92,7 +110,7 @@ def cart_update_json(
display=display,
product_custom_attribute_values=product_custom_attribute_values,
no_variant_attribute_values=no_variant_attribute_values,
**kw
**kw,
)

request.session["website_sale_cart_quantity"] = values.get("cart_quantity", 0)
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 20a48fc

Please sign in to comment.