summaryrefslogtreecommitdiff
path: root/addons/lunch/models/lunch_cashmove.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/lunch/models/lunch_cashmove.py')
-rw-r--r--addons/lunch/models/lunch_cashmove.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/addons/lunch/models/lunch_cashmove.py b/addons/lunch/models/lunch_cashmove.py
new file mode 100644
index 00000000..bb7a0380
--- /dev/null
+++ b/addons/lunch/models/lunch_cashmove.py
@@ -0,0 +1,30 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from odoo import api, fields, models, _
+from odoo.tools import float_round
+
+
+class LunchCashMove(models.Model):
+ """ Two types of cashmoves: payment (credit) or order (debit) """
+ _name = 'lunch.cashmove'
+ _description = 'Lunch Cashmove'
+ _order = 'date desc'
+
+ currency_id = fields.Many2one('res.currency', default=lambda self: self.env.company.currency_id)
+ user_id = fields.Many2one('res.users', 'User',
+ default=lambda self: self.env.uid)
+ date = fields.Date('Date', required=True, default=fields.Date.context_today)
+ amount = fields.Float('Amount', required=True)
+ description = fields.Text('Description')
+
+ def name_get(self):
+ return [(cashmove.id, '%s %s' % (_('Lunch Cashmove'), '#%d' % cashmove.id)) for cashmove in self]
+
+ @api.model
+ def get_wallet_balance(self, user, include_config=True):
+ result = float_round(sum(move['amount'] for move in self.env['lunch.cashmove.report'].search_read(
+ [('user_id', '=', user.id)], ['amount'])), precision_digits=2)
+ if include_config:
+ result += user.company_id.lunch_minimum_threshold
+ return result