diff --git a/stock_request_analytic/i18n/pt_BR.po b/stock_request_analytic/i18n/pt_BR.po index e0ad41243..e64161f73 100644 --- a/stock_request_analytic/i18n/pt_BR.po +++ b/stock_request_analytic/i18n/pt_BR.po @@ -1,6 +1,6 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * stock_request_analytic +# * stock_request_analytic # msgid "" msgstr "" @@ -33,6 +33,12 @@ msgstr "Contas Analíticas" msgid "Analytic Count" msgstr "Contagem Analítica" +#. module: stock_request_analytic +#: model:ir.model.fields,field_description:stock_request_analytic.field_stock_request__analytic_tag_ids +#: model:ir.model.fields,field_description:stock_request_analytic.field_stock_request_order__analytic_tag_ids +msgid "Analytic Tags" +msgstr "" + #. module: stock_request_analytic #: model:ir.model,name:stock_request_analytic.model_stock_request #: model_terms:ir.ui.view,arch_db:stock_request_analytic.view_account_analytic_account_form @@ -55,9 +61,11 @@ msgid "Stock Rule" msgstr "Regras de Estoque" #. module: stock_request_analytic -#: code:addons/stock_request_analytic/models/stock_request.py:19 +#: code:addons/stock_request_analytic/models/stock_request.py:21 #, python-format -msgid "You cannot link a analytic account to a stock request that belongs to another company." +msgid "" +"You cannot link a analytic account to a stock request that belongs to " +"another company." msgstr "" "Você não pode vincular uma conta analítica a uma requisição de estoque que " "pertence a outra empresa." diff --git a/stock_request_analytic/i18n/stock_request_analytic.pot b/stock_request_analytic/i18n/stock_request_analytic.pot index 0d66ecc86..7b86097a1 100644 --- a/stock_request_analytic/i18n/stock_request_analytic.pot +++ b/stock_request_analytic/i18n/stock_request_analytic.pot @@ -30,6 +30,12 @@ msgstr "" msgid "Analytic Count" msgstr "" +#. module: stock_request_analytic +#: model:ir.model.fields,field_description:stock_request_analytic.field_stock_request__analytic_tag_ids +#: model:ir.model.fields,field_description:stock_request_analytic.field_stock_request_order__analytic_tag_ids +msgid "Analytic Tags" +msgstr "" + #. module: stock_request_analytic #: model:ir.model,name:stock_request_analytic.model_stock_request #: model_terms:ir.ui.view,arch_db:stock_request_analytic.view_account_analytic_account_form @@ -52,7 +58,7 @@ msgid "Stock Rule" msgstr "" #. module: stock_request_analytic -#: code:addons/stock_request_analytic/models/stock_request.py:19 +#: code:addons/stock_request_analytic/models/stock_request.py:21 #, python-format msgid "You cannot link a analytic account to a stock request that belongs to another company." msgstr "" diff --git a/stock_request_analytic/i18n/zh_CN.po b/stock_request_analytic/i18n/zh_CN.po index 90d15d301..9e92c2160 100644 --- a/stock_request_analytic/i18n/zh_CN.po +++ b/stock_request_analytic/i18n/zh_CN.po @@ -1,6 +1,6 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * stock_request_analytic +# * stock_request_analytic # msgid "" msgstr "" @@ -33,6 +33,12 @@ msgstr "分析账户" msgid "Analytic Count" msgstr "分析数量" +#. module: stock_request_analytic +#: model:ir.model.fields,field_description:stock_request_analytic.field_stock_request__analytic_tag_ids +#: model:ir.model.fields,field_description:stock_request_analytic.field_stock_request_order__analytic_tag_ids +msgid "Analytic Tags" +msgstr "" + #. module: stock_request_analytic #: model:ir.model,name:stock_request_analytic.model_stock_request #: model_terms:ir.ui.view,arch_db:stock_request_analytic.view_account_analytic_account_form @@ -55,7 +61,9 @@ msgid "Stock Rule" msgstr "库存规则" #. module: stock_request_analytic -#: code:addons/stock_request_analytic/models/stock_request.py:19 +#: code:addons/stock_request_analytic/models/stock_request.py:21 #, python-format -msgid "You cannot link a analytic account to a stock request that belongs to another company." +msgid "" +"You cannot link a analytic account to a stock request that belongs to " +"another company." msgstr "您无法将分析帐户链接到属于另一家公司的库存请求。" diff --git a/stock_request_analytic/models/stock_request.py b/stock_request_analytic/models/stock_request.py index f332d8bc7..16dd4b24b 100644 --- a/stock_request_analytic/models/stock_request.py +++ b/stock_request_analytic/models/stock_request.py @@ -10,6 +10,8 @@ class StockRequest(models.Model): analytic_account_id = fields.Many2one( 'account.analytic.account', string='Analytic Account') + analytic_tag_ids = fields.Many2many( + 'account.analytic.tag', string='Analytic Tags') @api.constrains('analytic_account_id') def _check_analytic_company_constrains(self): diff --git a/stock_request_analytic/models/stock_request_order.py b/stock_request_analytic/models/stock_request_order.py index c66068f57..fc838ce89 100644 --- a/stock_request_analytic/models/stock_request_order.py +++ b/stock_request_analytic/models/stock_request_order.py @@ -17,12 +17,20 @@ class StockRequestOrder(models.Model): string='Analytic Accounts', readonly=True, ) + analytic_tag_ids = fields.One2many( + comodel_name='account.analytic.tag', + compute='_compute_analytic_ids', + string='Analytic Tags', + readonly=True, + ) @api.depends('stock_request_ids') def _compute_analytic_ids(self): for req in self.sudo(): req.analytic_account_ids = req.stock_request_ids.mapped( 'analytic_account_id') + req.analytic_tag_ids = req.stock_request_ids.mapped( + 'analytic_tag_ids') req.analytic_count = len(req.analytic_account_ids) @api.multi diff --git a/stock_request_analytic/models/stock_rule.py b/stock_request_analytic/models/stock_rule.py index 52bfc0869..fbdedd03a 100644 --- a/stock_request_analytic/models/stock_rule.py +++ b/stock_request_analytic/models/stock_rule.py @@ -13,7 +13,13 @@ class ProcurementRule(models.Model): product_id, product_qty, product_uom, location_id, name, origin, values, group_id) if values.get('stock_request_id'): - analytic_account_id = self.env['stock.request'].browse( - values['stock_request_id']).analytic_account_id.id - res.update(analytic_account_id=analytic_account_id) + stock_request = self.env['stock.request'].browse( + values['stock_request_id'] + ) + analytic_account = stock_request.analytic_account_id + analytic_tags = stock_request.analytic_tag_ids + res.update( + analytic_account_id=analytic_account.id, + analytic_tag_ids=[(4, tag.id) for tag in analytic_tags], + ) return res diff --git a/stock_request_analytic/tests/test_stock_request_analytic.py b/stock_request_analytic/tests/test_stock_request_analytic.py index dff8f277d..10b995a47 100644 --- a/stock_request_analytic/tests/test_stock_request_analytic.py +++ b/stock_request_analytic/tests/test_stock_request_analytic.py @@ -42,8 +42,9 @@ class TestStockRequestAnalytic(test_stock_request.TestStockRequest): }) self.pizza.route_ids = [(6, 0, self.demand_route.ids)] - def prepare_order_request_analytic(self, aa, company): + def prepare_order_request_analytic(self, aa, company, analytic_tags=None): expected_date = fields.Datetime.now() + analytic_tags = analytic_tags or self.env["account.analytic.tag"] vals = { 'company_id': company.id, 'warehouse_id': self.warehouse.id, @@ -54,6 +55,7 @@ class TestStockRequestAnalytic(test_stock_request.TestStockRequest): 'product_uom_id': self.pizza.uom_id.id, 'product_uom_qty': 5.0, 'analytic_account_id': aa.id, + 'analytic_tag_ids': [(4, tag.id) for tag in analytic_tags], 'company_id': company.id, 'warehouse_id': self.warehouse.id, 'location_id': self.demand_loc.id, @@ -63,13 +65,16 @@ class TestStockRequestAnalytic(test_stock_request.TestStockRequest): return vals def test_stock_analytic(self): + analytic_tag = self.env.ref('analytic.tag_contract') vals = self.prepare_order_request_analytic( - self.analytic, self.main_company) + self.analytic, self.main_company, analytic_tags=analytic_tag) order = self.env['stock.request.order'].create(vals) req = order.stock_request_ids order.action_confirm() self.assertEqual( req.move_ids.mapped('analytic_account_id'), self.analytic) + self.assertEqual( + req.move_ids.mapped('analytic_tag_ids'), analytic_tag) self.assertEqual(order.analytic_count, 1) action = order.action_view_analytic() self.assertTrue(action['res_id'], self.analytic.id) diff --git a/stock_request_analytic/views/stock_request_order_views.xml b/stock_request_analytic/views/stock_request_order_views.xml index ae7f84da5..ea7abe191 100644 --- a/stock_request_analytic/views/stock_request_order_views.xml +++ b/stock_request_analytic/views/stock_request_order_views.xml @@ -10,6 +10,7 @@
+