36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
from odoo import api, fields, models, _
|
|
from odoo.exceptions import UserError
|
|
from odoo.osv.expression import OR
|
|
|
|
|
|
class Bill(models.Model):
|
|
_name = "pos.bill"
|
|
_order = "value"
|
|
_description = "Coins/Bills"
|
|
_inherit = ["pos.load.mixin"]
|
|
|
|
name = fields.Char("Name")
|
|
value = fields.Float("Coin/Bill Value", required=True, digits=(16, 4))
|
|
for_all_config = fields.Boolean("For All PoS", default=True, help="If checked, this coin/bill will be available in all PoS.")
|
|
pos_config_ids = fields.Many2many("pos.config", string="Point of Sales")
|
|
|
|
@api.model
|
|
def name_create(self, name):
|
|
try:
|
|
value = float(name)
|
|
except ValueError:
|
|
raise UserError(_("The name of the Coins/Bills must be a number."))
|
|
result = super().create({"name": name, "value": value})
|
|
return result.id, result.display_name
|
|
|
|
@api.model
|
|
def _load_pos_data_domain(self, data):
|
|
return OR([
|
|
[('id', 'in', data['pos.config']['data'][0]['default_bill_ids']), ('for_all_config', '=', False)],
|
|
[('for_all_config', '=', True)]
|
|
])
|
|
|
|
@api.model
|
|
def _load_pos_data_fields(self, config_id):
|
|
return ['id', 'name', 'value']
|