|
@ -28,8 +28,8 @@ class PurchaseOrder(models.Model): |
|
|
if "supervisor_id" in vals: |
|
|
if "supervisor_id" in vals: |
|
|
new_partner = ( |
|
|
new_partner = ( |
|
|
self.env["res.users"] |
|
|
self.env["res.users"] |
|
|
.browse(vals["supervisor_id"]) |
|
|
|
|
|
.partner_id.id |
|
|
|
|
|
|
|
|
.browse(vals["supervisor_id"]) |
|
|
|
|
|
.partner_id.id |
|
|
) |
|
|
) |
|
|
for rec in self: |
|
|
for rec in self: |
|
|
rec.message_unsubscribe( |
|
|
rec.message_unsubscribe( |
|
@ -57,17 +57,28 @@ class PurchaseOrder(models.Model): |
|
|
res = super(PurchaseOrder, self).button_confirm() |
|
|
res = super(PurchaseOrder, self).button_confirm() |
|
|
for order in self: |
|
|
for order in self: |
|
|
for line in order.order_line: |
|
|
for line in order.order_line: |
|
|
if line.adapt_purchase_price: |
|
|
|
|
|
seller = line.product_id._select_seller( |
|
|
|
|
|
partner_id=line.order_id.partner_id, |
|
|
|
|
|
quantity=line.product_qty, |
|
|
|
|
|
date=order.date_order and order.date_order.date(), |
|
|
|
|
|
uom_id=line.product_uom, |
|
|
|
|
|
params={'order_id': line.order_id} |
|
|
|
|
|
) |
|
|
|
|
|
if seller: |
|
|
|
|
|
seller.price = line.price_unit |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
product_id = line.product_id |
|
|
|
|
|
product_tmpl_id = product_id.product_tmpl_id |
|
|
|
|
|
seller = product_id._select_seller( |
|
|
|
|
|
partner_id=line.order_id.partner_id, |
|
|
|
|
|
quantity=line.product_qty, |
|
|
|
|
|
date=order.date_order and order.date_order.date(), |
|
|
|
|
|
uom_id=line.product_uom, |
|
|
|
|
|
params={"order_id": line.order_id}, |
|
|
|
|
|
) |
|
|
|
|
|
price = line.price_unit |
|
|
|
|
|
suggested_price = ( |
|
|
|
|
|
price * product_tmpl_id.uom_po_id.factor |
|
|
|
|
|
) * (1 + product_tmpl_id.categ_id.profit_margin / 100) |
|
|
|
|
|
if line.adapt_purchase_price and line.adapt_selling_price: |
|
|
|
|
|
seller.price = price |
|
|
|
|
|
# will asynchronously trigger _compute_cost() |
|
|
|
|
|
# on `product.template` in `beesdoo_product` |
|
|
|
|
|
product_tmpl_id.list_price = suggested_price |
|
|
|
|
|
elif line.adapt_purchase_price: |
|
|
|
|
|
seller.price = price # see above comment |
|
|
|
|
|
elif line.adapt_selling_price: |
|
|
|
|
|
product_tmpl_id.list_price = suggested_price |
|
|
return res |
|
|
return res |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -76,14 +87,14 @@ class PurchaseOrderLine(models.Model): |
|
|
|
|
|
|
|
|
adapt_purchase_price = fields.Boolean( |
|
|
adapt_purchase_price = fields.Boolean( |
|
|
default=False, |
|
|
default=False, |
|
|
string='Adapt vendor purchase price', |
|
|
|
|
|
help='Check this box to adapt the purchase price on the product page when confirming Purchase Order' |
|
|
|
|
|
|
|
|
string="Adapt vendor purchase price", |
|
|
|
|
|
help="Check this box to adapt the purchase price " |
|
|
|
|
|
"on the product page when confirming Purchase Order", |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
adapt_selling_price = fields.Boolean( |
|
|
adapt_selling_price = fields.Boolean( |
|
|
default=False, |
|
|
default=False, |
|
|
string='Adapt product seling price', |
|
|
|
|
|
help='Check this box to adapt the selling price on the product page when confirming Purchase Order' |
|
|
|
|
|
|
|
|
string="Adapt product seling price", |
|
|
|
|
|
help="Check this box to adapt the selling price " |
|
|
|
|
|
"on the product page when confirming Purchase Order", |
|
|
) |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|