diff --git a/ext/custom-addons/dp_custom/models/sale.py b/ext/custom-addons/dp_custom/models/sale.py index 358e1b92..3d1ea46c 100644 --- a/ext/custom-addons/dp_custom/models/sale.py +++ b/ext/custom-addons/dp_custom/models/sale.py @@ -883,9 +883,15 @@ class SaleOrderLine(models.Model): # elif vals.get('intrastat_id', False) and not lot_id: # raise UserError(_('Der Intrastrat Code kann nur gesetzt werden wenn ein Lot angegeben wurde.')) - not_allowed_designbox_keys = ['product_uom_qty', 'product_uom', 'price_unit'] - if not self.check_allowed_vals_from_designbox(not_allowed_designbox_keys, vals): - raise ValidationError(_("Menge und Preis können von Produkten aus der Designbox nicht geändert werden")) + if record.product_id.type == 'service' and self.env.user.has_group('dp_custom.group_allow_change_pg_status'): + not_allowed_designbox_keys = ['product_uom', 'price_unit'] + if not self.check_allowed_vals_from_designbox(not_allowed_designbox_keys, vals): + raise ValidationError( + _("Preise können von Dienstleistungen aus der Designbox nicht geändert werden")) + else: + not_allowed_designbox_keys = ['product_uom_qty', 'product_uom', 'price_unit'] + if not self.check_allowed_vals_from_designbox(not_allowed_designbox_keys, vals): + raise ValidationError(_("Menge und Preis können von Produkten aus der Designbox nicht geändert werden")) return super(SaleOrderLine, self).write(vals) @api.multi