From 0c94dde9775cde8e07f7a953e0004a33ebb9ed4f Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Tue, 13 Mar 2018 00:27:05 +0100 Subject: [PATCH] Add module stock_history_ods --- stock_history_ods/__init__.py | 3 ++ stock_history_ods/__manifest__.py | 29 +++++++++++++ stock_history_ods/inventory_history.ods | Bin 0 -> 15302 bytes stock_history_ods/report.xml | 17 ++++++++ stock_history_ods/wizard/__init__.py | 3 ++ .../wizard/wizard_valuation_history.py | 40 ++++++++++++++++++ .../wizard/wizard_valuation_history_view.xml | 19 +++++++++ 7 files changed, 111 insertions(+) create mode 100644 stock_history_ods/__init__.py create mode 100644 stock_history_ods/__manifest__.py create mode 100644 stock_history_ods/inventory_history.ods create mode 100644 stock_history_ods/report.xml create mode 100644 stock_history_ods/wizard/__init__.py create mode 100644 stock_history_ods/wizard/wizard_valuation_history.py create mode 100644 stock_history_ods/wizard/wizard_valuation_history_view.xml diff --git a/stock_history_ods/__init__.py b/stock_history_ods/__init__.py new file mode 100644 index 0000000..3b4c3ed --- /dev/null +++ b/stock_history_ods/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import wizard diff --git a/stock_history_ods/__manifest__.py b/stock_history_ods/__manifest__.py new file mode 100644 index 0000000..cc908a4 --- /dev/null +++ b/stock_history_ods/__manifest__.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# Copyright 2018 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + + +{ + 'name': 'Stock History ODS', + 'version': '10.0.1.0.0', + 'category': 'Tools', + 'license': 'AGPL-3', + 'summary': 'Adds a Py3o ODS report on Inventory at Date', + 'description': """ +Stock History ODS +================= + +This module will add a Py3o ODS report on Inventory at Date. + +This module has been written by Alexis de Lattre from Akretion . + """, + 'author': "Akretion", + 'website': 'http://www.akretion.com', + 'depends': ['stock_account', 'report_py3o'], + 'data': [ + 'report.xml', + 'wizard/wizard_valuation_history_view.xml', + ], + 'installable': True, +} diff --git a/stock_history_ods/inventory_history.ods b/stock_history_ods/inventory_history.ods new file mode 100644 index 0000000000000000000000000000000000000000..207275d3746acb513dbd6ca13306d9653a523396 GIT binary patch literal 15302 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 + + + + + Inventory at Date (ODS) + wizard.valuation.history + stock.history.ods + py3o + ods + stock_history_ods + inventory_history.ods + + + + + diff --git a/stock_history_ods/wizard/__init__.py b/stock_history_ods/wizard/__init__.py new file mode 100644 index 0000000..b406068 --- /dev/null +++ b/stock_history_ods/wizard/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import wizard_valuation_history diff --git a/stock_history_ods/wizard/wizard_valuation_history.py b/stock_history_ods/wizard/wizard_valuation_history.py new file mode 100644 index 0000000..03e67a5 --- /dev/null +++ b/stock_history_ods/wizard/wizard_valuation_history.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# Copyright 2018 Akretion (Alexis de Lattre ) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models + + +class StockValuationHistory(models.TransientModel): + _inherit = 'wizard.valuation.history' + + def report_py3o(self): + ppo = self.env['product.product'] + lines = self.env['stock.history'].with_context( + history_date=self.date).read_group( + [('date', '<=', self.date)], + ['product_id', 'location_id', 'move_id', 'company_id', + 'date', 'quantity', 'inventory_value'], + ['product_id', 'location_id']) + categ_id2name = {} + for categ in self.env['product.category'].search([]): + categ_id2name[categ.id] = categ.display_name + res = [] + for line in lines: + product_id = line['product_id'][0] + product = ppo.browse(product_id) + res.append({ + 'product_categ': categ_id2name[product.categ_id.id], + 'product_name': product.name, + 'product_code': product.default_code, + 'product_display_name': line['product_id'][1], + 'product_uom': product.uom_id.name, + 'quantity': line['quantity'], + 'inventory_value': line['inventory_value'], + }) + return res + + def print_table(self): + self.ensure_one() + action = self.env['report'].get_action(self, 'stock.history.ods') + return action diff --git a/stock_history_ods/wizard/wizard_valuation_history_view.xml b/stock_history_ods/wizard/wizard_valuation_history_view.xml new file mode 100644 index 0000000..d7fe698 --- /dev/null +++ b/stock_history_ods/wizard/wizard_valuation_history_view.xml @@ -0,0 +1,19 @@ + + + + + + + wizard.valuation.history + + + + + + +