return {
}
+
+ def wkf_action_close(self, cr, uid, ids, context=None):
+ # Check that a register is not closed with a zero balance if it started with a positive balance
+ for record in self.browse(cr, uid, ids, context=context):
+ for st in record.statement_ids:
+
+ if st.balance_start>0 and not st.balance_end_real:
+ # The pos manager can close sessions with 0 for the end balance.
+ if not self.pool.get('ir.model.access').check_groups(cr, uid, "point_of_sale.group_pos_manager"):
+ raise osv.except_osv( _('Please check your ending balance!'),
+ _("Your ending balance is zero, don't forget to enter it before closing the session! Leave around 20-30 EUR in the register."))
+ return super(pos_session, self).wkf_action_close(cr, uid, ids, context)
+
pos_session()
res[line.id] = state
else:
cr.execute('''
- SELECT i.state, i.id, i.partner_id FROM
+ SELECT i.state, i.id FROM
pos_order i
WHERE
i.id = (
if not fetched:
res[line.id] = 'canceled'
continue
- partner_id = fetched[2]
- self.write(cr, uid, line.id, {'partner': partner_id})
+ print("DEV: [pos_membership] [membership_line] [_state]: line.partner.id=%s" % (str(line.partner.id)))
+ self.write(cr, uid, line.id, {'partner': line.partner.id})
# NOTE: force une mise à jour du partner,
# car il n'y en a pas lors de la création du pos.order
# dans le PoS (pour le moment)
partner_obj = self.pool.get('res.partner')
- for partner in partner_obj.browse(cr, uid, [partner_id], context=context):
+ for partner in partner_obj.browse(cr, uid, [line.partner.id], context=context):
if not partner.member_ident:
mbr_id = self.pool.get('ir.sequence').get(cr, uid, 'member_ident')
partner_obj.write(cr, uid, partner.id, {'member_ident': mbr_id})
def write(self, cr, uid, ids, vals, context=None):
print("DEV: [pos_membership] [membership_line] [write]: ids=%s vals=%s" % (str(ids), str(vals)))
- member_line_obj = self.pool.get('membership.membership_line')
res = super(membership_line, self).write(cr, uid, ids, vals, context=context)
print("DEV: [pos_membership] [membership_line] [write]: res=%s" % str(res))
return res
s = 2
elif ostate == 'draft' and s != 0 and s != 1:
s = 3
+ else:
+ # when we don't have an invoice line only use the date to get the state.
+ s = 0
+ break
if s == 4:
for mline in partner_data.member_lines:
if mline.date_from < today and \