Zum Inhalt springen
Menü
Sie müssen registriert sein, um mit der Community zu interagieren.
Diese Frage wurde gekennzeichnet
1 Antworten
1719 Ansichten

Hello,

I want to prevent the sale of a product if it reaches a specific quantity odoo 17

Avatar
Verwerfen
Beste Antwort

Hello,


To prevent the sale of a product if it reaches a specific quantity in Odoo 17, you can achieve this by creating a custom module or by using server actions and automated actions to enforce this restriction. Here’s a step-by-step guide on how you can implement this using a custom module approach:


1. Create a new model file for the product extension:


  from odoo import models, fields


  class ProductTemplate(models.Model):

      _inherit = 'product.template'


      min_qty = fields.Float(string='Minimum Quantity', default=0.0, help='Minimum quantity for the product to trigger the restriction.')


2. Define the sale order model:


  from odoo import models, fields, api, _

  from odoo.exceptions import UserError


  class SaleOrderLine(models.Model):

      _inherit = 'sale.order.line'


      @api.constrains('product_uom_qty')

      def _check_product_quantity(self):

          for line in self:

              if line.product_id.qty_available

                  raise UserError(_(

                      'You cannot sell this product because it has reached the minimum quantity limit: %s' % line.product_id.name))


This will prevent the sale of a product if it reaches a specific quantity by checking the available quantity against a defined minimum quantity for the product. If the available quantity is less than or equal to the minimum quantity, an error will be raised, preventing the sale.


Hope it helps.

Avatar
Verwerfen
Verknüpfte Beiträge Antworten Ansichten Aktivität
1
Aug. 25
511
0
Juni 24
1849
4
Juni 24
4185
0
März 24
1976
2
Jan. 24
2297