summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornel@tinyerp.com <>2010-06-10 10:59:12 +0200
committernel@tinyerp.com <>2010-06-10 10:59:12 +0200
commit96bfb5b2df8a21272a98bbb4fc4edd7e671b51ed (patch)
tree14752488f5453ec057dd73f9af90e5cd8cbd9ec3
parent10e3e39e76014dff2b6ac86a8d498979bb9ba158 (diff)
[IMP] use exist global and change setting production lots
bzr revid: nel@tinyerp.com-20100610085912-qesib9robxe4adc6
-rw-r--r--addons/stock/wizard/stock_move.py47
-rw-r--r--addons/stock/wizard/stock_move_view.xml29
2 files changed, 60 insertions, 16 deletions
diff --git a/addons/stock/wizard/stock_move.py b/addons/stock/wizard/stock_move.py
index aa7bb42cf8b..cf290c2d011 100644
--- a/addons/stock/wizard/stock_move.py
+++ b/addons/stock/wizard/stock_move.py
@@ -207,7 +207,9 @@ class split_in_production_lot(osv.osv_memory):
_columns = {
'product_id': fields.many2one('product.product', 'Product', required=True, select=True),
- 'line_ids': fields.one2many('stock.move.split.lines', 'lot_id', 'Lots Number')
+ 'line_ids': fields.one2many('stock.move.split.lines', 'lot_id', 'Lots Number'),
+ 'line_exist_ids': fields.one2many('stock.move.split.lines.exist', 'lot_id', 'Lots Existing Numbers'),
+ 'use_exist' : fields.boolean('Use Exist'),
}
def split_lot(self, cr, uid, ids, context=None):
"""
@@ -249,10 +251,12 @@ class split_in_production_lot(osv.osv_memory):
quantity_rest = move.product_qty
uos_qty_rest = move.product_uos_qty
new_move = []
- for line in data.line_ids:
+ if data.use_exist:
+ lines = [l for l in data.line_exist_ids if l]
+ else:
+ lines = [l for l in data.line_ids if l]
+ for line in lines:
quantity = line.quantity
-
-
if quantity <= 0 or move_qty == 0:
continue
quantity_rest -= quantity
@@ -272,20 +276,21 @@ class split_in_production_lot(osv.osv_memory):
if quantity_rest == 0:
current_move = move.id
prodlot_id = False
- if line.use_exist and line.name:
- prodlot_id = prodlot_obj.search(cr, uid, [('prefix','=',line.name),('product_id','=',data.product_id.id)])
+ if data.use_exist and line.prodlot_id:
+ prodlot_id = prodlot_obj.search(cr, uid, [('id','=',line.prodlot_id.id)])
if prodlot_id:
- prodlot_id = prodlot_id[0]
+ prodlot_id = prodlot_id[0]
if not prodlot_id:
- sequence = ir_sequence_obj.get(cr, uid, 'stock.lot.serial')
- prodlot_id = prodlot_obj.create(cr, uid, {'name': sequence, 'prefix' : line.name},
+ # sequence = ir_sequence_obj.get(cr, uid, 'stock.lot.serial')
+ prodlot_id = prodlot_obj.create(cr, uid, {'name': line.name},
+ # 'prefix' : line.name},
{'product_id': move.product_id.id})
move_obj.write(cr, uid, [current_move], {'prodlot_id': prodlot_id})
prodlot = prodlot_obj.browse(cr, uid, prodlot_id)
- ref = '%d' % (move.id)
- if prodlot.ref:
- ref = '%s, %s' % (prodlot.ref, ref)
- prodlot_obj.write(cr, uid, [prodlot_id], {'ref': ref})
+ # ref = '%d' % (move.id)
+ # if prodlot.ref:
+ # ref = '%s, %s' % (prodlot.ref, ref)
+ # prodlot_obj.write(cr, uid, [prodlot_id], {'ref': ref})
update_val = {}
if quantity_rest > 0:
@@ -295,10 +300,24 @@ class split_in_production_lot(osv.osv_memory):
return new_move
split_in_production_lot()
+class stock_move_split_lines_exist(osv.osv_memory):
+ _name = "stock.move.split.lines.exist"
+ _description = "Exist Split lines"
+ _columns = {
+ 'name': fields.char('Tracking serial', size=64),
+ 'quantity': fields.integer('Quantity'),
+ 'lot_id': fields.many2one('stock.move.split', 'Lot'),
+ 'prodlot_id': fields.many2one('stock.production.lot', 'Production Lot'),
+ }
+ _defaults = {
+ 'quantity': lambda *x: 1,
+ }
+
+stock_move_split_lines_exist()
+
class stock_move_split_lines(osv.osv_memory):
_name = "stock.move.split.lines"
_description = "Split lines"
-
_columns = {
'name': fields.char('Tracking serial', size=64),
'quantity': fields.integer('Quantity'),
diff --git a/addons/stock/wizard/stock_move_view.xml b/addons/stock/wizard/stock_move_view.xml
index 5f58072f17a..dc860c5e5b1 100644
--- a/addons/stock/wizard/stock_move_view.xml
+++ b/addons/stock/wizard/stock_move_view.xml
@@ -106,18 +106,43 @@
<form string="Split in lots">
<field name="product_id" colspan="4" readonly="1"/>
<newline/>
+ <field name="use_exist"/>
+ <group colspan="4" attrs="{'invisible':[('use_exist','=',True)]}">
<field name="line_ids" colspan="4" nolabel="1">
<tree string="Lots Number" editable="top">
<field name="name" string="Lots"/>
<field name="quantity" />
- <field name="use_exist" />
</tree>
<form string="Lots Number">
<field name="name" string="Lots"/>
<field name="quantity" />
- <field name="use_exist" />
</form>
</field>
+ </group>
+ <group colspan="4" attrs="{'invisible':[('use_exist','=',True)]}">
+ <field name="line_ids" colspan="4" nolabel="1">
+ <tree string="Lots Number" editable="top">
+ <field name="name" string="Lots"/>
+ <field name="quantity" />
+ </tree>
+ <form string="Lots Number">
+ <field name="name" string="Lots"/>
+ <field name="quantity" />
+ </form>
+ </field>
+ </group>
+ <group colspan="4" attrs="{'invisible':[('use_exist','!=',True)]}">
+ <field name="line_exist_ids" colspan="4" nolabel="1">
+ <tree string="Lots Number" editable="top">
+ <field name="prodlot_id" string="Lots"/>
+ <field name="quantity" />
+ </tree>
+ <form string="Lots Number">
+ <field name="prodlot_id" string="Lots"/>
+ <field name="quantity" />
+ </form>
+ </field>
+ </group>
<separator string="" colspan="4" />
<label string="" colspan="2" />
<button icon='gtk-cancel' special="cancel"