[FIX] fix some bugs in the point of sale
bzr revid: stw@openerp.com-20120430150557-5hw97hbcze4ngw3b
This commit is contained in:
parent
979db6e965
commit
b9f8c8dec1
|
@ -152,7 +152,7 @@ class pos_session(osv.osv):
|
|||
POS_SESSION_STATE = [('new', 'New'),('opened', 'Opened'),('closed', 'Closed'),('posted', 'Posted')]
|
||||
|
||||
_columns = {
|
||||
'config_id' : fields.many2one('pos.config', 'PoS', required=True, select=1),
|
||||
'config_id' : fields.many2one('pos.config', 'PoS', required=True, select=1, domain="[('state', '=', 'active')]"),
|
||||
|
||||
'name' : fields.char('Session Sequence', size=32, required=True, select=1, readonly=1),
|
||||
'user_id' : fields.many2one('res.users', 'User', required=True, select=1),
|
||||
|
@ -179,9 +179,6 @@ class pos_session(osv.osv):
|
|||
]
|
||||
|
||||
def _create_cash_register(self, cr, uid, pos_config, name, context=None):
|
||||
import pdb
|
||||
#pdb.set_trace()
|
||||
|
||||
if not pos_config:
|
||||
return False
|
||||
|
||||
|
@ -205,7 +202,6 @@ class pos_session(osv.osv):
|
|||
return cash_register_id
|
||||
|
||||
def create(self, cr, uid, values, context=None):
|
||||
|
||||
config_id = values.get('config_id', False) or False
|
||||
|
||||
if config_id:
|
||||
|
@ -222,14 +218,18 @@ class pos_session(osv.osv):
|
|||
|
||||
def wkf_action_open(self, cr, uid, ids, context=None):
|
||||
# si pas de date start_at, je balance une date, sinon on utilise celle de l'utilisateur
|
||||
values = {
|
||||
#'start_at' : time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'state' : 'opened',
|
||||
}
|
||||
return self.write(cr, uid, ids, values, context=context)
|
||||
for record in self.browse(cr, uid, ids, context=context):
|
||||
values = {}
|
||||
if not record.start_at:
|
||||
values['start_at'] = time.strftime('%Y-%m-%d %H:%M:%S')
|
||||
values['state'] = 'opened'
|
||||
|
||||
record.write(values, context=context)
|
||||
|
||||
return True
|
||||
|
||||
def wkf_action_close(self, cr, uid, ids, context=None):
|
||||
return self.write(cr, uid, ids, {'state' : 'close'}, context=context)
|
||||
return self.write(cr, uid, ids, {'state' : 'close', 'stop_at' : time.strftime('%Y-%m-%d %H:%M:%S')}, context=context)
|
||||
|
||||
def wkf_action_post(self, cr, uid, ids, context=None):
|
||||
return self.write(cr, uid, ids, {'state' : 'post'}, context=context)
|
||||
|
@ -334,8 +334,7 @@ class pos_order(osv.osv):
|
|||
return super(pos_order, self).copy(cr, uid, id, d, context=context)
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Order Ref', size=64, required=True,
|
||||
states={'draft': [('readonly', False)]}, readonly=True),
|
||||
'name': fields.char('Order Ref', size=64, required=True, readonly=True),
|
||||
'company_id':fields.many2one('res.company', 'Company', required=True, readonly=True),
|
||||
'shop_id': fields.many2one('sale.shop', 'Shop', required=True,
|
||||
states={'draft': [('readonly', False)]}, readonly=True),
|
||||
|
@ -350,7 +349,11 @@ class pos_order(osv.osv):
|
|||
'pricelist_id': fields.many2one('product.pricelist', 'Pricelist', required=True, states={'draft': [('readonly', False)]}, readonly=True),
|
||||
'partner_id': fields.many2one('res.partner', 'Customer', change_default=True, select=1, states={'draft': [('readonly', False)], 'paid': [('readonly', False)]}),
|
||||
|
||||
'session_id' : fields.many2one('pos.session', 'Session', required=True, select=1),
|
||||
'session_id' : fields.many2one('pos.session', 'Session',
|
||||
select=1,
|
||||
domain="[('state', '=', 'opened')]",
|
||||
states={'draft' : [('readonly', False)]},
|
||||
readonly=True),
|
||||
|
||||
'state': fields.selection([('draft', 'New'),
|
||||
('cancel', 'Cancelled'),
|
||||
|
@ -377,7 +380,7 @@ class pos_order(osv.osv):
|
|||
_defaults = {
|
||||
'user_id': lambda self, cr, uid, context: uid,
|
||||
'state': 'draft',
|
||||
'name': lambda obj, cr, uid, context: obj.pool.get('ir.sequence').get(cr, uid, 'pos.order'),
|
||||
'name': '/',
|
||||
'date_order': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'nb_print': 0,
|
||||
'company_id': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
|
||||
|
@ -386,6 +389,10 @@ class pos_order(osv.osv):
|
|||
'pricelist_id': _default_pricelist,
|
||||
}
|
||||
|
||||
def create(self, cr, uid, values, context=None):
|
||||
values['name'] = self.pool.get('ir.sequence').get(cr, uid, 'pos.order')
|
||||
return super(pos_order, self).create(cr, uid, values, context=context)
|
||||
|
||||
def test_paid(self, cr, uid, ids, context=None):
|
||||
"""A Point of Sale is paid when the sum
|
||||
@return: True
|
||||
|
@ -453,7 +460,7 @@ class pos_order(osv.osv):
|
|||
if not len(ids):
|
||||
return False
|
||||
for order in self.browse(cr, uid, ids, context=context):
|
||||
if order.state<>'cancel':
|
||||
if order.state != 'cancel':
|
||||
raise osv.except_osv(_('Error!'), _('In order to set to draft a sale, it must be cancelled.'))
|
||||
self.write(cr, uid, ids, {'state': 'draft'})
|
||||
wf_service = netsvc.LocalService("workflow")
|
||||
|
|
|
@ -134,6 +134,7 @@
|
|||
<field name="location_dest_id" ref="stock.stock_location_customers"/>
|
||||
<field name="picking_id" ref="stock_picking_out0"/>
|
||||
</record>
|
||||
<!--
|
||||
<record id="pos_order_line_orderline0" model="pos.order.line">
|
||||
<field name="notice">No Discount</field>
|
||||
<field name="product_id" ref="product.product_product_pc1"/>
|
||||
|
@ -143,6 +144,7 @@
|
|||
<field eval="1.0" name="qty"/>
|
||||
<field name="name">Order Line/07</field>
|
||||
</record>
|
||||
-->
|
||||
|
||||
<!--Resource: pos.order-->
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
<field name="arch" type="xml">
|
||||
<form string="PoS Orders">
|
||||
<group col="7" colspan="4">
|
||||
<field name="session_id" />
|
||||
<field name="name"/>
|
||||
<field name="date_order"/>
|
||||
<field name="partner_id" on_change="onchange_partner_id(partner_id)" context="{'search_default_customer':1}" attrs="{'readonly': [('state','=','invoiced')]}"/>
|
||||
|
@ -871,12 +872,6 @@
|
|||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<!--
|
||||
<page string="Others">
|
||||
</page>
|
||||
<page string="Nothing">
|
||||
</page>
|
||||
-->
|
||||
</notebook>
|
||||
|
||||
<group colspan="4" col="5">
|
||||
|
|
Loading…
Reference in New Issue