diff --git a/stock_reserve/data/stock_data.xml b/stock_reserve/data/stock_data.xml
index 27832218d..be6e44224 100644
--- a/stock_reserve/data/stock_data.xml
+++ b/stock_reserve/data/stock_data.xml
@@ -5,5 +5,22 @@
Reservation Stock
+
+
+
+
+ Release the stock reservation having a passed validity date
+
+
+ 1
+ days
+ -1
+
+ stock.reservation
+ release_validity_exceeded
+ ()
+
+
diff --git a/stock_reserve/model/stock_reserve.py b/stock_reserve/model/stock_reserve.py
index f23a901db..4f3c4e66a 100644
--- a/stock_reserve/model/stock_reserve.py
+++ b/stock_reserve/model/stock_reserve.py
@@ -37,7 +37,7 @@ class stock_reservation(orm.Model):
readonly=True,
ondelete='cascade',
select=1),
- 'date_validity': fields.datetime('Validity Date'),
+ 'date_validity': fields.date('Validity Date'),
}
_defaults = {
@@ -77,6 +77,16 @@ class stock_reservation(orm.Model):
move_obj.action_cancel(cr, uid, move_ids, context=context)
return True
+ def release_validity_exceeded(self, cr, uid, ids=None, context=None):
+ """ Release all the reservation having an exceeded validity date """
+ domain = [('date_validity', '<', fields.date.today()),
+ ('state', '=', 'done')]
+ if ids:
+ domain.append(('id', 'in', ids))
+ reserv_ids = self.search(cr, uid, domain, context=context)
+ self.release(cr, uid, reserv_ids, context=context)
+ return True
+
def unlink(self, cr, uid, ids, context=None):
""" Release the reservation before the unlink """
self.release(cr, uid, ids, context=context)
diff --git a/stock_reserve/view/stock_reserve.xml b/stock_reserve/view/stock_reserve.xml
index a0f02f8ce..9f0015ab0 100644
--- a/stock_reserve/view/stock_reserve.xml
+++ b/stock_reserve/view/stock_reserve.xml
@@ -128,8 +128,7 @@
+ parent="stock.menu_stock_inventory_control"
+ sequence="30"/>