SALE: fix workflow error when create invoice from wizard
bzr revid: ced-7de68ca198a3ea06dd081cd24410f4b9128a6bd2
This commit is contained in:
parent
7047fc0377
commit
a6def89886
|
@ -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_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)]}),
|
'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'),
|
'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_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)]}),
|
'address_invoice_id': fields.many2one('res.partner.address', 'Invoice Address', readonly=True, required=True, states={'draft':[('readonly',False)]}),
|
||||||
|
|
|
@ -250,6 +250,12 @@ class sale_order(osv.osv):
|
||||||
if created_lines:
|
if created_lines:
|
||||||
invoices.setdefault(o.partner_id.id, []).append((o, 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():
|
for val in invoices.values():
|
||||||
if grouped:
|
if grouped:
|
||||||
res = make_invoice(val[0][0], reduce(lambda x,y: x + y, [l for o,l in val], []))
|
res = make_invoice(val[0][0], reduce(lambda x,y: x + y, [l for o,l in val], []))
|
||||||
|
|
|
@ -51,10 +51,7 @@ ack_fields = {}
|
||||||
|
|
||||||
def _makeInvoices(self, cr, uid, data, context):
|
def _makeInvoices(self, cr, uid, data, context):
|
||||||
order_obj = pooler.get_pool(cr.dbname).get('sale.order')
|
order_obj = pooler.get_pool(cr.dbname).get('sale.order')
|
||||||
invoices = {}
|
newinv = []
|
||||||
for o in order_obj.browse(cr, uid, data['ids'], context):
|
|
||||||
for i in o.invoice_ids:
|
|
||||||
invoices[i.id] = False
|
|
||||||
|
|
||||||
order_obj.action_invoice_create(cr, uid, data['ids'], data['form']['grouped'])
|
order_obj.action_invoice_create(cr, uid, data['ids'], data['form']['grouped'])
|
||||||
for id in data['ids']:
|
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 o in order_obj.browse(cr, uid, data['ids'], context):
|
||||||
for i in o.invoice_ids:
|
for i in o.invoice_ids:
|
||||||
invoices.setdefault(i.id, True)
|
newinv.append(i.id)
|
||||||
|
|
||||||
newinv = []
|
|
||||||
for key,val in invoices.items():
|
|
||||||
# if val:
|
|
||||||
newinv.append(key)
|
|
||||||
return {
|
return {
|
||||||
'domain': "[('id','in', ["+','.join(map(str,newinv))+"])]",
|
'domain': "[('id','in', ["+','.join(map(str,newinv))+"])]",
|
||||||
'name': 'Invoices',
|
'name': 'Invoices',
|
||||||
|
|
Loading…
Reference in New Issue