summaryrefslogtreecommitdiff
path: root/addons/pos_sale/models/crm_team.py
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/pos_sale/models/crm_team.py
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/pos_sale/models/crm_team.py')
-rw-r--r--addons/pos_sale/models/crm_team.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/addons/pos_sale/models/crm_team.py b/addons/pos_sale/models/crm_team.py
new file mode 100644
index 00000000..7e2659e8
--- /dev/null
+++ b/addons/pos_sale/models/crm_team.py
@@ -0,0 +1,31 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from odoo import api, fields, models, _
+from odoo.exceptions import UserError, ValidationError
+from datetime import datetime
+import pytz
+
+
+class CrmTeam(models.Model):
+ _inherit = 'crm.team'
+
+ pos_config_ids = fields.One2many('pos.config', 'crm_team_id', string="Point of Sales")
+ pos_sessions_open_count = fields.Integer(string='Open POS Sessions', compute='_compute_pos_sessions_open_count')
+ pos_order_amount_total = fields.Float(string="Session Sale Amount", compute='_compute_pos_order_amount_total')
+
+ def _compute_pos_sessions_open_count(self):
+ for team in self:
+ team.pos_sessions_open_count = self.env['pos.session'].search_count([('config_id.crm_team_id', '=', team.id), ('state', '=', 'opened')])
+
+ def _compute_pos_order_amount_total(self):
+ data = self.env['report.pos.order'].read_group([
+ ('session_id.state', '=', 'opened'),
+ ('config_id.crm_team_id', 'in', self.ids),
+ ], ['price_total:sum', 'config_id'], ['config_id'])
+ rg_results = dict((d['config_id'][0], d['price_total']) for d in data)
+ for team in self:
+ team.pos_order_amount_total = sum([
+ rg_results.get(config.id, 0.0)
+ for config in team.pos_config_ids
+ ])