SALE: fix workflow error when create invoice from wizard

bzr revid: ced-7de68ca198a3ea06dd081cd24410f4b9128a6bd2
This commit is contained in:
ced 2007-02-21 12:21:14 +00:00
parent 7047fc0377
commit a6def89886
3 changed files with 9 additions and 11 deletions

View File

@ -108,7 +108,7 @@ class account_invoice(osv.osv):
'date_invoice': fields.date('Date Invoiced', required=True, states={'open':[('readonly',True)],'close':[('readonly',True)]}),
'date_due': fields.date('Due Date', states={'open':[('readonly',True)],'close':[('readonly',True)]}),
'partner_id': fields.many2one('res.partner', 'Partner', change_default=True, readonly=True, required=True, states={'draft':[('readonly',False)]}, relate=True),
'partner_id': fields.many2one('res.partner', 'Partner', change_default=True, readonly=True, required=True, states={'draft':[('readonly',False)]}, relate=False),
'partner_bank_id': fields.many2one('res.partner.bank', 'Partner bank'),
'address_contact_id': fields.many2one('res.partner.address', 'Contact Address', readonly=True, states={'draft':[('readonly',False)]}),
'address_invoice_id': fields.many2one('res.partner.address', 'Invoice Address', readonly=True, required=True, states={'draft':[('readonly',False)]}),

View File

@ -250,6 +250,12 @@ class sale_order(osv.osv):
if created_lines:
invoices.setdefault(o.partner_id.id, []).append((o, created_lines))
if not invoices:
for o in self.browse(cr, uid, ids):
for i in o.invoice_ids:
if i.state == 'draft':
return i.id
for val in invoices.values():
if grouped:
res = make_invoice(val[0][0], reduce(lambda x,y: x + y, [l for o,l in val], []))

View File

@ -51,10 +51,7 @@ ack_fields = {}
def _makeInvoices(self, cr, uid, data, context):
order_obj = pooler.get_pool(cr.dbname).get('sale.order')
invoices = {}
for o in order_obj.browse(cr, uid, data['ids'], context):
for i in o.invoice_ids:
invoices[i.id] = False
newinv = []
order_obj.action_invoice_create(cr, uid, data['ids'], data['form']['grouped'])
for id in data['ids']:
@ -63,12 +60,7 @@ def _makeInvoices(self, cr, uid, data, context):
for o in order_obj.browse(cr, uid, data['ids'], context):
for i in o.invoice_ids:
invoices.setdefault(i.id, True)
newinv = []
for key,val in invoices.items():
# if val:
newinv.append(key)
newinv.append(i.id)
return {
'domain': "[('id','in', ["+','.join(map(str,newinv))+"])]",
'name': 'Invoices',