[FIX] set active=true in anlysis report
[odoo/odoo.git] / addons / point_of_sale / point_of_sale.py
index 19f18d9..bccb8d7 100644 (file)
@@ -259,12 +259,19 @@ class pos_order(osv.osv):
         if data.get('payment_name', False):
             args['name'] = args['name'] + ': ' + data['payment_name']
         account_def = property_obj.get(cr, uid, 'property_account_receivable', 'res.partner', context=context)
-        args['account_id'] = order.partner_id and order.partner_id.property_account_receivable \
-                             and order.partner_id.property_account_receivable.id or account_def.id or curr_c.account_receivable.id
+        args['account_id'] = (order.partner_id and order.partner_id.property_account_receivable \
+                             and order.partner_id.property_account_receivable.id) or (account_def and account_def.id) or False
         args['partner_id'] = order.partner_id and order.partner_id.id or None
 
+        if not args['account_id']:
+            if not args['partner_id']:
+                msg = _('There is no receivable account defined to make payment')
+            else:
+                msg = _('There is no receivable account defined to make payment for the partner: "%s" (id:%d)') % (order.partner_id.name, order.partner_id.id,)
+            raise osv.except_osv(_('Configuration Error !'), msg)
+
         statement_id = statement_obj.search(cr,uid, [
-                                                     ('journal_id', '=', data['journal']),
+                                                     ('journal_id', '=', int(data['journal'])),
                                                      ('company_id', '=', curr_company),
                                                      ('user_id', '=', uid),
                                                      ('state', '=', 'open')], context=context)
@@ -274,7 +281,7 @@ class pos_order(osv.osv):
             statement_id = statement_id[0]
         args['statement_id'] = statement_id
         args['pos_statement_id'] = order_id
-        args['journal_id'] = data['journal']
+        args['journal_id'] = int(data['journal'])
         args['type'] = 'customer'
         args['ref'] = order.name
         statement_line_obj.create(cr, uid, args, context=context)
@@ -672,11 +679,22 @@ class pos_order_line(osv.osv):
 
 pos_order_line()
 
+class pos_category(osv.osv):
+    _name = 'pos.category'
+    _inherit = 'product.category'
+    _columns = {
+        'parent_id': fields.many2one('pos.category','Parent Category', select=True),
+        'child_id': fields.one2many('pos.category', 'parent_id', string='Child Categories'),
+    }
+pos_category()
+
 class product_product(osv.osv):
     _inherit = 'product.product'
     _columns = {
         'income_pdt': fields.boolean('Product for Input'),
         'expense_pdt': fields.boolean('Product for Output'),
+        'img': fields.binary('Pos Image, must be 50x50'),
+        'pos_categ_id': fields.many2one('pos.category','POS Category', change_default=True, domain="[('type','=','normal')]" ,help="Select a pos category for the current product")
     }
 product_product()