From bc05498416ae2fce7625d7f5d842ed0c38fb60a9 Mon Sep 17 00:00:00 2001 From: Stephane Wirtel Date: Wed, 4 Apr 2012 14:31:14 +0200 Subject: [PATCH 01/20] [IMP] point_of_sale: Add the POS Config object bzr revid: stw@openerp.com-20120404123114-e557auyszvy4uy3a --- addons/point_of_sale/point_of_sale.py | 57 ++++++++++++++++ addons/point_of_sale/point_of_sale_view.xml | 76 +++++++++++++++++++++ 2 files changed, 133 insertions(+) diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py index 5af78b131b2..012de387776 100644 --- a/addons/point_of_sale/point_of_sale.py +++ b/addons/point_of_sale/point_of_sale.py @@ -33,6 +33,63 @@ import decimal_precision as dp _logger = logging.getLogger(__name__) +class pos_config(osv.osv): + _name = 'pos.config' + + POS_CONFIG_STATE = [('draft', 'Draft'),('active', 'Active'),('inactive', 'Inactive'),('deprecated', 'Deprecated')] + + _columns = { + 'name' : fields.char('Name', size=32, select=1, required=True), + 'journal_ids' : fields.many2many('account.journal', 'pos_config_journal_rel', 'pos_config_id', 'journal_id', 'Payment Methods'), + 'shop_id' : fields.many2one('sale.shop', 'Shop', required=True, select=1), + 'journal_id' : fields.many2one('account.journal', 'Journal', required=True, select=1), + 'profit_account_id' : fields.many2one('account.account', 'Profit Account', required=True, select=1), + 'loss_account_id' : fields.many2one('account.account', 'Loss Account', required=True, select=1), + + 'authorized_cashbox_diff' : fields.integer('Authorized Cashbox Difference (%)'), + 'authorized_cashbox_diff_fixed' : fields.integer('Authorized Cashbox Difference (Fixed Amount)'), + + + 'iface_self_checkout' : fields.boolean('Self Checkout Mode'), + 'iface_websql' : fields.boolean('WebSQL (to store data)'), + 'iface_led' : fields.boolean('LED Interface'), + 'iface_cashdrawer' : fields.boolean('Cashdrawer Interface'), + 'iface_payment_terminal' : fields.boolean('Payment Terminal Interface'), + 'iface_electronic_scale' : fields.boolean('Electronic Scale Interface'), + 'iface_barscan' : fields.boolean('BarScan Interface'), + 'iface_vkeyboard' : fields.boolean('Virtual KeyBoard Interface'), + + 'state' : fields.selection(POS_CONFIG_STATE, 'State', required=True, readonly=True), + + } + + _defaults = { + 'state' : 'draft', + } + + def set_draft(self, cr, uid, ids, context=None): + return self.write(cr, uid, ids, {'state' : 'draft'}, context=context) + + def set_active(self, cr, uid, ids, context=None): + return self.write(cr, uid, ids, {'state' : 'active'}, context=context) + + def set_inactive(self, cr, uid, ids, context=None): + return self.write(cr, uid, ids, {'state' : 'inactive'}, context=context) + + def set_deprecate(self, cr, uid, ids, context=None): + return self.write(cr, uid, ids, {'state' : 'deprecated'}, context=context) + +pos_config() + +class pos_session(osv.osv): + _name = 'pos.session' + + _columns = { + 'config_id' : fields.many2one('pos.config', 'Configuration', required=True, select=1), + } + +pos_session() + class pos_config_journal(osv.osv): """ Point of Sale journal configuration""" _name = 'pos.config.journal' diff --git a/addons/point_of_sale/point_of_sale_view.xml b/addons/point_of_sale/point_of_sale_view.xml index b397bd826cc..4e1fcc7c6db 100644 --- a/addons/point_of_sale/point_of_sale_view.xml +++ b/addons/point_of_sale/point_of_sale_view.xml @@ -790,5 +790,81 @@ + + pos.config.form.view + pos.config + form + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +