From 71cf4d225eb2db91c1fefe6c53100b7ce670ce5f Mon Sep 17 00:00:00 2001 From: oscar alvarez Date: Tue, 26 Apr 2022 17:20:35 -0500 Subject: [PATCH] Add average cost and amount cost --- __init__.py | 1 + product.py | 50 +++++++++++++++++++++++++++++++++++++++++++++---- stock.py | 34 +++++++++++++++++++++------------ tryton.cfg | 2 +- warehouse.fods | Bin 19316 -> 26814 bytes 5 files changed, 70 insertions(+), 17 deletions(-) diff --git a/__init__.py b/__init__.py index d821fe3..88b5218 100644 --- a/__init__.py +++ b/__init__.py @@ -13,6 +13,7 @@ def register(): Pool.register( product.Product, product.Template, + product.AverageCost, position.ProductPosition, position.ProductTemplatePosition, stock.Move, diff --git a/product.py b/product.py index 4481138..600c833 100644 --- a/product.py +++ b/product.py @@ -1,7 +1,8 @@ # This file is part of Tryton. The COPYRIGHT file at the top level of # this repository contains the full copyright notices and license terms. from datetime import date, timedelta -from trytond.model import fields + +from trytond.model import fields, ModelSQL, ModelView from trytond.pool import Pool, PoolMeta from trytond.pyson import Eval from trytond.transaction import Transaction @@ -13,7 +14,7 @@ TIME_HISTORY = 90 # Days class Product(metaclass=PoolMeta): __name__ = 'product.product' - + stock_duration = fields.Function(fields.Integer('Stock Duration', states=STATES), 'get_stock_duration') stock_level = fields.Function(fields.Selection([ @@ -22,11 +23,37 @@ class Product(metaclass=PoolMeta): ('exhausted', 'Exhausted'), ('normal', 'Normal'), ], 'Stock Level', states=STATES), 'get_stock_level') + avg_cost_price = fields.Function(fields.Numeric("Average Cost Price", + required=True, digits=(16, 4)), 'get_avg_cost_price') + amount_cost = fields.Function(fields.Numeric("Amiunt Cost", + required=True, digits=(16, 4)), 'get_amount_cost') @classmethod def __setup__(cls): super(Product, cls).__setup__() + def get_amount_cost(self, name=None): + if self.avg_cost_price and self.quantity: + return float(self.avg_cost_price) * self.quantity + return + + def get_avg_cost_price(self, name=None): + target_date = date.today() + stock_date_end = Transaction().context.get('stock_date_end') + if stock_date_end: + target_date = stock_date_end + + AverageCost = Pool().get('product.average_cost') + avg_product = AverageCost.search([ + ('product', '=', self.id), + ('effective_date', '<=', target_date), + ], order=[('effective_date', 'DESC')], limit=1) + print(' product >>>> ', avg_product) + if avg_product: + return avg_product[0].cost_price + else: + return self.cost_price + def get_stock_duration(self, name): res = None if Transaction().context.get('stock_date_end'): @@ -72,7 +99,6 @@ class Product(metaclass=PoolMeta): class Template(metaclass=PoolMeta): __name__ = 'product.template' - positions = fields.One2Many('product_template.position','template', 'Positions') @classmethod @@ -82,4 +108,20 @@ class Template(metaclass=PoolMeta): else: default = default.copy() default.setdefault('positions', None) - return super(Template, cls).copy(records, default=default) \ No newline at end of file + return super(Template, cls).copy(records, default=default) + + +class AverageCost(ModelSQL, ModelView): + "Average Cost" + __name__ = "product.average_cost" + product = fields.Many2One('product.product', 'Product', + required=True, domain=[('template.type', '=', 'goods')] + ) + effective_date = fields.Date('Effective Date', required=True) + cost_price = fields.Numeric("Cost Price", required=True, digits=(16, 4)) + stock_move = fields.Many2One('stock.move', 'Move') + + @classmethod + def __setup__(cls): + super(AverageCost, cls).__setup__() + cls._order.insert(0, ('effective_date', 'DESC')) diff --git a/stock.py b/stock.py index 80cd47e..10463d7 100644 --- a/stock.py +++ b/stock.py @@ -79,6 +79,23 @@ class Move(metaclass=PoolMeta): res = description.rstrip('\n') return res + @classmethod + def do(cls, moves): + super(Move, cls).do(moves) + for move in moves: + if move.origin.__name__ in ('purchase.line', 'stock.inventory.line'): + move.set_average_cost() + + def set_average_cost(self): + AverageCost = Pool().get('product.average_cost') + data = { + "stock_move": self.id, + "product": self.product.id, + "effective_date": self.effective_date, + "cost_price": self.product.cost_price, + } + AverageCost.create([data]) + class MoveByProductStart(ModelView): 'Move By Product Start' @@ -359,7 +376,6 @@ class WarehouseReport(Report): Product = pool.get('product.product') OrderPoint = pool.get('stock.order_point') Location = pool.get('stock.location') - # ProductsSupplier = pool.get('purchase.product_supplier') ids_location = data['locations'] locations = Location.browse(data['locations']) dom_products = [ @@ -381,7 +397,6 @@ class WarehouseReport(Report): ('categories', 'in', [data['category']]), ], ]]) - # dom_products.append(('account_category', '=', data['category'])) if not data['zero_quantity']: dom_products.append([('quantity', '!=', 0)]) @@ -406,26 +421,22 @@ class WarehouseReport(Report): stock_context['locations'] = [l.id] with Transaction().set_context(stock_context): prdts = Product.search(dom_products, order=[('code', 'ASC')]) - # p = [p.template.id for p in prdts] - # products_supplier = ProductsSupplier.search([ - # ('template', 'in', p)]) suppliers = {} if data['group_by_supplier']: for p in prdts: if not p.template.product_suppliers: continue for prod_sup in p.template.product_suppliers: - # sup = p.template.product_suppliers[0].party sup_id = prod_sup.party.id try: suppliers[sup_id]['products'].append(p) - suppliers[sup_id]['total_amount'].append(p.cost_value) + suppliers[sup_id]['total_amount'].append(p.amount_cost) except: suppliers[sup_id] = {} suppliers[sup_id]['products'] = [p] suppliers[sup_id]['party'] = prod_sup.party suppliers[sup_id]['total_amount'] = [p.cost_value] - total_amount = sum([p.cost_value for p in prdts if p.cost_value]) + total_amount = sum([p.amount_cost for p in prdts if p.amount_cost]) values[l.id] = { 'name': l.name, 'products': prdts, @@ -439,23 +450,22 @@ class WarehouseReport(Report): if data['only_minimal_level']: products = [p for p in products if p.quantity <= min_quantities[p.id]] - total_amount = sum([p.cost_value for p in products if p.cost_value]) + total_amount = sum([p.amount_cost for p in products if p.amount_cost]) suppliers = {} if data['group_by_supplier']: for p in products: if not p.template.product_suppliers: continue for prod_sup in p.template.product_suppliers: - # sup = p.template.product_suppliers[0].party sup_id = prod_sup.party.id try: suppliers[sup_id]['products'].append(p) - suppliers[sup_id]['total_amount'].append(p.cost_value) + suppliers[sup_id]['total_amount'].append(p.amount_cost) except: suppliers[sup_id] = {} suppliers[sup_id]['products'] = [p] suppliers[sup_id]['party'] = prod_sup.party - suppliers[sup_id]['total_amount'] = [p.cost_value] + suppliers[sup_id]['total_amount'] = [p.amount_cost] products = suppliers.values() cursor = Transaction().connection.cursor() diff --git a/tryton.cfg b/tryton.cfg index ce9b3c1..5fba57c 100644 --- a/tryton.cfg +++ b/tryton.cfg @@ -1,5 +1,5 @@ [tryton] -version=6.0.7 +version=6.0.8 depends: product stock diff --git a/warehouse.fods b/warehouse.fods index 51aedc7aef0ac5eb1bddf0d4ce6d2ef7095a2e6b..3396c779fdcb04c73e39200f9bf77f1addec3003 100644 GIT binary patch delta 24864 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 xsJjzgx>>rr+rGE{kKOvh*u_ni8=yQ*iZ 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