Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FIX] Make check in quant level so that it works in manufacturing as well #256

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion stock_no_negative/models/__init__.py
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@
##############################################################################

from . import product_template
from . import stock_move
from . import stock_quant
175 changes: 0 additions & 175 deletions stock_no_negative/models/stock_move.py

This file was deleted.

52 changes: 52 additions & 0 deletions stock_no_negative/models/stock_quant.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Copyright (C) 2016, Eska Yazılım ve Danışmanlık A.Ş.
# http://www.eskayazilim.com.tr
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp import api, _, exceptions, models


class StockQuant(models.Model):
_inherit = 'stock.quant'

@api.model
def _quant_create(self, qty, move, lot_id=False, owner_id=False,
src_package_id=False, dest_package_id=False,
force_location_from=False, force_location_to=False):
if move.product_id.check_no_negative \
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are not checking here if qty is negative.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

_quant_create is called when negative otherwise _quant_split is called.

yes it is not self explanatory but it works like a charm.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, I see, please document it then properly, indicating that always that this method is called and the location is internal, a negative quant is created.

and move.location_id.usage == 'internal':
lot_msg_str = ""
if lot_id:
lot = self.env['stock.production.lot'].browse(lot_id)
lot_msg_str = _(" with the lot/serial '%s' ") % lot.name
raise exceptions.ValidationError(_(
"Product '%s' has active "
"'check no negative' \n"
"but with this move "
"you will have a quantity of "
"'%s' \n%sin location \n'%s'"
) % (move.product_id.name,
move.product_id.qty_available - move.product_uom_qty,
lot_msg_str,
move.location_id.name,))
return super(StockQuant, self)._quant_create(
qty, move, lot_id=lot_id, owner_id=owner_id,
src_package_id=src_package_id, dest_package_id=dest_package_id,
force_location_from=force_location_from,
force_location_to=force_location_to)