diff --git a/addons/website_sale/__manifest__.py b/addons/website_sale/__manifest__.py index 034c85ddb14..dd68c7046d5 100644 --- a/addons/website_sale/__manifest__.py +++ b/addons/website_sale/__manifest__.py @@ -6,12 +6,13 @@ 'website': 'https://www.odoo.com/page/e-commerce', 'version': '1.0', 'description': "", - 'depends': ['website', 'sale_payment', 'website_payment', 'website_mail', 'website_form', 'website_rating'], + 'depends': ['website', 'sale_payment', 'website_payment', 'website_mail', 'website_form', 'website_rating', 'digest'], 'data': [ 'security/ir.model.access.csv', 'security/website_sale.xml', 'data/data.xml', 'data/mail_template_data.xml', + 'data/digest_data.xml', 'views/product_views.xml', 'views/account_views.xml', 'views/sale_report_views.xml', @@ -20,6 +21,7 @@ 'views/templates.xml', 'views/snippets.xml', 'views/res_config_settings_views.xml', + 'views/digest_views.xml', ], 'demo': [ 'data/demo.xml', diff --git a/addons/website_sale/data/digest_data.xml b/addons/website_sale/data/digest_data.xml new file mode 100644 index 00000000000..0f9739fd4cf --- /dev/null +++ b/addons/website_sale/data/digest_data.xml @@ -0,0 +1,8 @@ + + + + + True + + + diff --git a/addons/website_sale/models/__init__.py b/addons/website_sale/models/__init__.py index f2bc8685f6f..2ed1e1dbe42 100644 --- a/addons/website_sale/models/__init__.py +++ b/addons/website_sale/models/__init__.py @@ -11,3 +11,4 @@ from . import payment from . import sale_order from . import website from . import res_config_settings +from . import digest diff --git a/addons/website_sale/models/digest.py b/addons/website_sale/models/digest.py new file mode 100644 index 00000000000..70ae0b9bfb4 --- /dev/null +++ b/addons/website_sale/models/digest.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models, _ +from odoo.exceptions import AccessError + + +class Digest(models.Model): + _inherit = 'digest.digest' + + kpi_website_sale_total = fields.Boolean('eCommerce Sales') + kpi_website_sale_total_value = fields.Monetary(compute='_compute_kpi_website_sale_total_value') + + def _compute_kpi_website_sale_total_value(self): + if not self.env.user.has_group('sales_team.group_sale_salesman_all_leads'): + raise AccessError(_("Do not have access, skip this data for user's digest email")) + for record in self: + start, end, company = record._get_kpi_compute_parameters() + confirmed_website_sales = self.env['sale.order'].search([ + ('confirmation_date', '>=', start), + ('confirmation_date', '<', end), + ('state', 'not in', ['draft', 'cancel', 'sent']), + ('team_id.team_type', '=', 'website'), + ('company_id', '=', company.id) + ]) + record.kpi_website_sale_total_value = sum(confirmed_website_sales.mapped('amount_total')) + + def compute_kpis_actions(self, company, user): + res = super(Digest, self).compute_kpis_actions(company, user) + res['kpi_website_sale_total'] = 'website.backend_dashboard&menu_id=%s' % self.env.ref('website.menu_website_configuration').id + return res diff --git a/addons/website_sale/views/digest_views.xml b/addons/website_sale/views/digest_views.xml new file mode 100644 index 00000000000..08399e346dd --- /dev/null +++ b/addons/website_sale/views/digest_views.xml @@ -0,0 +1,17 @@ + + + + digest.digest.view.form.inherit.website.sale.order + digest.digest + + + + Sales + sales_team.group_sale_salesman_all_leads + + + + + + +