[FIX] purchase_requisition: access right error on confirm/cancel bo

before this commit, on closing/confirming a blanket order by a purchase user throws access right on product_supplierinfo model.

after this commit, access right error will not be shown on confirming and closing the blanket order.

closes odoo/odoo#111896

X-original-commit: 9d86621029a478b8e1cbae4f228fe454a184fba3
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
This commit is contained in:
niyasraphy
2023-02-03 17:41:18 +01:00
parent d724f69a1d
commit 2f069b9ce8
@@ -107,7 +107,7 @@ class PurchaseRequisition(models.Model):
# try to set all associated quotations to cancel state
for requisition in self:
for requisition_line in requisition.line_ids:
requisition_line.supplier_info_ids.unlink()
requisition_line.supplier_info_ids.sudo().unlink()
requisition.purchase_ids.button_cancel()
for po in requisition.purchase_ids:
po.message_post(body=_('Cancelled by the agreement associated to this quotation.'))
@@ -147,7 +147,7 @@ class PurchaseRequisition(models.Model):
raise UserError(_('You have to cancel or validate every RfQ before closing the purchase requisition.'))
for requisition in self:
for requisition_line in requisition.line_ids:
requisition_line.supplier_info_ids.unlink()
requisition_line.supplier_info_ids.sudo().unlink()
self.write({'state': 'done'})
@api.ondelete(at_uninstall=False)
@@ -217,7 +217,7 @@ class PurchaseRequisitionLine(models.Model):
purchase_requisition = self.requisition_id
if purchase_requisition.type_id.quantity_copy == 'none' and purchase_requisition.vendor_id:
# create a supplier_info only in case of blanket order
self.env['product.supplierinfo'].create({
self.env['product.supplierinfo'].sudo().create({
'partner_id': purchase_requisition.vendor_id.id,
'product_id': self.product_id.id,
'product_tmpl_id': self.product_id.product_tmpl_id.id,