* syntax change:

if 'line' is a browse_record:
  don't use:
    line.unlink(cr, uid, [line.id], context)
  use:
    line.unlink(context=context)

* pep8

bzr revid: olt@tinyerp.com-20090602093457-6yi7ucfo6kbhc5y9
This commit is contained in:
Olivier Laurent 2009-06-02 11:34:57 +02:00
parent d0162d2e9b
commit e3661172ef
1 changed files with 38 additions and 18 deletions

View File

@ -26,6 +26,21 @@ from osv import fields, osv
from mx import DateTime
from tools.translate import _
import tools
from wizard import except_wizard
# XXX
"""
File "/home/oli/work/projects/libeurop/server/bin/addons/point_of_sale/pos.py", line 510, in action_invoice
[2009-05-26 13:33:55,780] ERROR:web-services:[30]: inv_id = inv_ref.create(cr, uid, inv, context)
[2009-05-26 13:33:55,780] ERROR:web-services:[31]: File "/home/oli/work/projects/libeurop/server/bin/osv/orm.py", line 2451, in create
[2009-05-26 13:33:55,780] ERROR:web-services:[32]: cr.execute('insert into "'+self._table+'" (id'+upd0+") values ("+str(id_new)+upd1+')', tuple(upd2))
[2009-05-26 13:33:55,780] ERROR:web-services:[33]: File "/home/oli/work/projects/libeurop/server/bin/sql_db.py", line 76, in wrapper
[2009-05-26 13:33:55,780] ERROR:web-services:[34]: return f(self, *args, **kwargs)
[2009-05-26 13:33:55,780] ERROR:web-services:[35]: File "/home/oli/work/projects/libeurop/server/bin/sql_db.py", line 118, in execute
[2009-05-26 13:33:55,780] ERROR:web-services:[36]: res = self._obj.execute(query, params)
[2009-05-26 13:33:55,800] ERROR:web-services:[37]: IntegrityError: null value in column "address_invoice_id" violates not-null constraint
"""
class pos_config_journal(osv.osv):
@ -44,11 +59,11 @@ class pos_order(osv.osv):
_name = "pos.order"
_description = "Point of Sale"
_order = "date_order, create_date desc"
_order = "date_order desc"
_order = "date_order desc, name desc"
def unlink(self, cr, uid, ids, context={}):
for rec in self.browse(cr, uid, ids, context=context):
if rec.state<>'draft':
if rec.state != 'draft':
raise osv.except_osv(_('Invalid action !'), _('Cannot delete a point of sale which is already confirmed !'))
return super(pos_order, self).unlink(cr, uid, ids, context=context)
@ -56,7 +71,7 @@ class pos_order(osv.osv):
if not part:
return {}
pricelist = self.pool.get('res.partner').browse(cr, uid, part).property_product_pricelist.id
return {'value':{'pricelist_id': pricelist}}
return {'value': {'pricelist_id': pricelist}}
def _amount_total(self, cr, uid, ids, field_name, arg, context):
id_set = ",".join(map(str, ids))
@ -68,7 +83,7 @@ class pos_order(osv.osv):
) AS amount
FROM pos_order p
LEFT OUTER JOIN pos_order_line l ON (p.id=l.order_id)
WHERE p.id IN (""" + id_set +""") GROUP BY p.id """)
WHERE p.id IN (""" + id_set +""") GROUP BY p.id """)
res = dict(cr.fetchall())
for rec in self.browse(cr, uid, ids, context):
@ -281,21 +296,21 @@ class pos_order(osv.osv):
# delete this product from old picking:
for old_line in old_picking.move_lines:
if old_line.product_id.id == p_id:
old_line.write(cr, uid, [old_line.id], {'state': 'draft'}) # cannot delete if not draft
old_line.unlink(cr, uid, [old_line.id], context)
old_line.write({'state': 'draft'}, context=context) # cannot delete if not draft
old_line.unlink(context=context)
elif qty_to_del > 0: # product qty has been modified (customer took less than the ordered quantity):
# subtract qty from old picking:
for old_line in old_picking.move_lines:
if old_line.product_id.id == p_id:
old_line.write(cr, uid, [old_line.id], {'product_qty': old_line.product_qty - qty_to_del})
old_line.write({'product_qty': old_line.product_qty - qty_to_del}, context=context)
# add qty to new picking:
line.write(cr, uid, [line.id], {'product_qty': qty_to_del})
line.write({'product_qty': qty_to_del}, context=context)
else: # product hasn't changed (customer took it without any change):
# delete this product from new picking:
line.unlink(cr, uid, [line.id], context)
line.unlink(context=context)
else:
# delete it in the new picking:
line.unlink(cr, uid, [line.id], context)
line.unlink(context=context)
def create_picking(self, cr, uid, ids, context={}):
"""Create a picking for each order and validate it."""
@ -476,7 +491,6 @@ class pos_order(osv.osv):
})
clone_list.append(clone_id)
for clone in self.browse(cr, uid, clone_list):
for order_line in clone.lines:
line_obj.write(cr, uid, [order_line.id], {
@ -690,12 +704,18 @@ class pos_order(osv.osv):
for payment in order.payments:
if not payment.journal_id.default_debit_account_id:
raise osv.except_osv(_('No Default Debit Account !'),
_('You have to define a Default Debit Account for your Financial Journals!\n'))
if not payment.journal_id.default_credit_account_id:
raise osv.except_osv(_('No Default Credit Account !'),
_('You have to define a Default Credit Account for your Financial Journals!\n'))
if payment.amount > 0:
payment_account = \
payment.journal_id.default_debit_account_id.id
payment_account = payment.journal_id.default_debit_account_id.id
else:
payment_account = \
payment.journal_id.default_credit_account_id.id
payment_account = payment.journal_id.default_credit_account_id.id
if payment.amount > 0:
order_account = \
@ -823,7 +843,7 @@ class pos_order_line(osv.osv):
product_id = self.pool.get('product.product').search(cr, uid, [('ean13','=', ean)])
if not product_id:
return False
return False
# search price product
product = self.pool.get('product.product').read(cr, uid, product_id)
@ -845,7 +865,7 @@ class pos_order_line(osv.osv):
}
line_id = self.create(cr, uid, vals)
if not line_id:
raise wizard.except_wizard(_('Error'), _('Create line failed !'))
raise except_wizard(_('Error'), _('Create line failed !'))
else:
vals = {
'qty': qty,
@ -853,7 +873,7 @@ class pos_order_line(osv.osv):
}
line_id = self.write(cr, uid, order_line_id, vals)
if not line_id:
raise wizard.except_wizard(_('Error'), _('Modify line failed !'))
raise except_wizard(_('Error'), _('Modify line failed !'))
line_id = order_line_id
price_line = float(qty)*float(price)