diff --git a/modules/purchase_trade/docs/business-rules.md b/modules/purchase_trade/docs/business-rules.md index aae36ba..6520797 100644 --- a/modules/purchase_trade/docs/business-rules.md +++ b/modules/purchase_trade/docs/business-rules.md @@ -710,7 +710,7 @@ Owner technique: `a completer` `sale_date`. - Si le filtre `Side` vaut `All`, une ligne est conservee si son `purchase_date` ou son `sale_date` entre dans les bornes. - - Le filtre `Book` du rapport cible une valeur de dimension analytique + - Le filtre `Dimension` du rapport cible une valeur de dimension analytique rattachee au contrat achat ou vente via `analytic.dimension.assignment`. - Le filtre `Strategy` cible les strategies MTM rattachees aux lignes achat ou vente (`purchase.strategy` / `sale.strategy`). diff --git a/modules/purchase_trade/lot.py b/modules/purchase_trade/lot.py index 46ce27b..97a6df5 100755 --- a/modules/purchase_trade/lot.py +++ b/modules/purchase_trade/lot.py @@ -1223,7 +1223,7 @@ class LotQt( state=None, qttype=None, supplier=None, client=None, ps=None, lot_status=None, group=None, product=None, location=None, origin=None, finished=False, shipping_status=None, asof=None, - todate=None, book=None, strategy=None): + todate=None, dimension=None, strategy=None): pool = Pool() LotQt = pool.get('lot.qt') lqt = LotQt.__table__() @@ -1289,20 +1289,21 @@ class LotQt( return sale_clause return purchase_clause | sale_clause - def book_filter(purchase_id, sale_id): - if not book: + def dimension_filter(purchase_id, sale_id): + if not dimension: return None - purchase_book = Exists(ada.select( + purchase_dimension = Exists(ada.select( ada.id, - where=((ada.purchase == purchase_id) & (ada.value == book)))) - sale_book = Exists(ada.select( + where=((ada.purchase == purchase_id) + & (ada.value == dimension)))) + sale_dimension = Exists(ada.select( ada.id, - where=((ada.sale == sale_id) & (ada.value == book)))) + where=((ada.sale == sale_id) & (ada.value == dimension)))) if ps == 'P': - return purchase_book + return purchase_dimension elif ps == 'S': - return sale_book - return purchase_book | sale_book + return sale_dimension + return purchase_dimension | sale_dimension wh = ((lqt.lot_quantity > 0) & ((lp.lot_type == 'virtual') | (ls.lot_type == 'virtual'))) @@ -1330,9 +1331,9 @@ class LotQt( date_clause = date_filter(pu.purchase_date, sa.sale_date) if date_clause is not None: wh &= date_clause - book_clause = book_filter(pu.id, sa.id) - if book_clause is not None: - wh &= book_clause + dimension_clause = dimension_filter(pu.id, sa.id) + if dimension_clause is not None: + wh &= dimension_clause if strategy: purchase_strategy = Exists(pstr.select( pstr.id, @@ -1468,9 +1469,9 @@ class LotQt( date_clause = date_filter(pu.purchase_date, sa.sale_date) if date_clause is not None: wh2 &= date_clause - book_clause = book_filter(pu.id, sa.id) - if book_clause is not None: - wh2 &= book_clause + dimension_clause = dimension_filter(pu.id, sa.id) + if dimension_clause is not None: + wh2 &= dimension_clause if strategy: purchase_strategy = Exists(pstr.select( pstr.id, @@ -2017,7 +2018,7 @@ class LotReport( shipping_status = context.get('shipping_status') asof = context.get('asof') todate = context.get('todate') - book = context.get('book') + dimension = context.get('dimension') strategy = context.get('strategy') finished = context.get('finished') query = LotQT.getQuery( @@ -2038,7 +2039,7 @@ class LotReport( shipping_status=shipping_status, asof=asof, todate=todate, - book=book, + dimension=dimension, strategy=strategy) return query @@ -2090,7 +2091,7 @@ class LotContext(ModelView): client = fields.Many2One('party.party', "Client") sale = fields.Many2One('sale.sale', "Sale") shipment = fields.Many2One('stock.shipment.in', "Shipment") - book = fields.Many2One('analytic.dimension.value', "Book") + dimension = fields.Many2One('analytic.dimension.value', "Dimension") strategy = fields.Many2One('mtm.strategy', "Strategy") product = fields.Many2One('product.product',"Product") location = fields.Many2One('stock.location',"Location") @@ -2149,19 +2150,7 @@ class LotContext(ModelView): def default_finished(cls): return False - @classmethod - def default_asof(cls): - pool = Pool() - Date = pool.get('ir.date') - return Date.today().replace(day=1,month=1,year=1999) - - @classmethod - def default_todate(cls): - pool = Pool() - Date = pool.get('ir.date') - return Date.today() - - @classmethod + @classmethod def default_type(cls): return 'all' @@ -2198,7 +2187,7 @@ class LotContext(ModelView): fields_names = fields_names.copy() if fields_names is not None else [] for field_name in [ 'purchase', 'sale', 'shipment', 'supplier', 'client', - 'book', 'strategy', 'product', 'location', 'type', + 'dimension', 'strategy', 'product', 'location', 'type', 'shipping_status', 'ps', 'state', 'wh', 'mode', 'group', 'origin', 'finished', 'asof', 'todate']: if field_name not in fields_names: diff --git a/modules/purchase_trade/view/lot_report_context_form.xml b/modules/purchase_trade/view/lot_report_context_form.xml index 805d5ce..0ec0c39 100755 --- a/modules/purchase_trade/view/lot_report_context_form.xml +++ b/modules/purchase_trade/view/lot_report_context_form.xml @@ -9,8 +9,8 @@