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"/>