Skip to content
Snippets Groups Projects
Commit 02ba6139 authored by Arnold Moyaux's avatar Arnold Moyaux Committed by fw-bot
Browse files

[FIX] purchase_requistion: call for tender zero lines


Usecase to reproduce:
- Create a purchase requistion with type Call For Tender
- Update a line and set the price to zero.

UserError 'You cannot confirm the blanket order without price.' raised.
It happens because the write don't process the same check than create
and don't check if the purchase_requistion is a blanket order or a call
for tender. It also doens't check the current state of the
purchase_requisition.

closes odoo/odoo#39973

Task: 2120211
X-original-commit: 7d69f014
Signed-off-by: default avatarArnold Moyaux <amoyaux@users.noreply.github.com>
parent 3c5a2724
No related branches found
No related tags found
No related merge requests found
......@@ -201,7 +201,9 @@ class PurchaseRequisitionLine(models.Model):
def write(self, vals):
res = super(PurchaseRequisitionLine, self).write(vals)
if 'price_unit' in vals:
if vals['price_unit'] <= 0.0:
if vals['price_unit'] <= 0.0 and any(
requisition.state not in ['draft', 'cancel', 'done'] and
requisition.is_quantity_copy == 'none' for requisition in self.mapped('requisition_id')):
raise UserError(_('You cannot confirm the blanket order without price.'))
# If the price is updated, we have to update the related SupplierInfo
self.supplier_info_ids.write({'price': vals['price_unit']})
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment