ACCOUNT,PURCHASE,SALE: move project_id to line.account_analytic_id for invoice and purchase
bzr revid: ced-e509f9176b9d083913fcbde094911f1862833d81
This commit is contained in:
parent
74817fde46
commit
98a8a9752b
|
@ -42,8 +42,10 @@
|
|||
<form string="Invoice Line">
|
||||
<notebook>
|
||||
<page string="Line">
|
||||
<field name="name" select="1"/>
|
||||
<field name="name" select="1" colspan="3"/>
|
||||
<field name="account_id" on_change="onchange_account_id(parent.partner_id,account_id)" />
|
||||
<field name="account_analytic_id" domain="[('type','<>','view')]" />
|
||||
<newline/>
|
||||
<field name="product_id" select="1" on_change="product_id_change(product_id, uos_id, quantity, name, parent.type, parent.partner_id)"/>
|
||||
<field name="uos_id"/>
|
||||
<field name="quantity" select="1"/>
|
||||
|
@ -136,7 +138,6 @@
|
|||
<field name="partner_bank_id" domain="[('partner_id','=',partner_id)]"/>
|
||||
|
||||
<field name="account_id" domain="[('type','<>','view')]" />
|
||||
<field name="project_id" domain="[('type','<>','view')]" />
|
||||
|
||||
<field name="payment_term" on_change="onchange_payment_term(payment_term)" />
|
||||
<field name="date_due" select="1"/>
|
||||
|
|
|
@ -94,7 +94,6 @@ class account_invoice(osv.osv):
|
|||
|
||||
'number': fields.char('Invoice Number', size=32,readonly=True),
|
||||
'reference': fields.char('Invoice Reference', size=64),
|
||||
'project_id': fields.many2one('account.analytic.account', 'Analytic Account', readonly=True, states={'draft':[('readonly',False)]}, relate=True),
|
||||
'comment': fields.text('Additionnal Information'),
|
||||
|
||||
'state': fields.selection([
|
||||
|
@ -270,16 +269,17 @@ class account_invoice(osv.osv):
|
|||
sign = -1
|
||||
# one move line per invoice line
|
||||
iml = self.pool.get('account.invoice.line').move_line_get(cr, uid, inv['id'])
|
||||
if inv['project_id']:
|
||||
for il in iml:
|
||||
for il in iml:
|
||||
print "il:", il
|
||||
if il['account_analytic_id']:
|
||||
il['analytic_lines'] = [(0,0, {
|
||||
'name': il['name'],
|
||||
'date': time.strftime('%Y-%m-%d'),
|
||||
'account_id': inv['project_id'],
|
||||
'account_id': il['account_analytic_id'],
|
||||
'unit_amount': il['quantity'],
|
||||
'amount': il['price'] * sign,
|
||||
'product_id': il['product_id'] and il['product_id'][0],
|
||||
'product_uom_id': il['uos_id'] and il['uos_id'][0],
|
||||
'product_id': il['product_id'],
|
||||
'product_uom_id': il['uos_id'],
|
||||
'general_account_id': il['account_id'],
|
||||
'journal_id': self._get_journal_analytic(cr, uid, inv['type'])
|
||||
})]
|
||||
|
@ -426,7 +426,7 @@ class account_invoice(osv.osv):
|
|||
return self.name_get(cr, user, ids)
|
||||
|
||||
def refund(self, cr, uid, ids):
|
||||
invoices = self.read(cr, uid, ids, ['name', 'type', 'number', 'reference', 'project_id', 'comment', 'date_due', 'partner_id', 'address_contact_id', 'address_invoice_id', 'partner_contact', 'partner_insite', 'partner_ref', 'payment_term', 'account_id', 'currency_id', 'invoice_line', 'tax_line'])
|
||||
invoices = self.read(cr, uid, ids, ['name', 'type', 'number', 'reference', 'comment', 'date_due', 'partner_id', 'address_contact_id', 'address_invoice_id', 'partner_contact', 'partner_insite', 'partner_ref', 'payment_term', 'account_id', 'currency_id', 'invoice_line', 'tax_line'])
|
||||
|
||||
new_ids = []
|
||||
for invoice in invoices:
|
||||
|
@ -467,7 +467,7 @@ class account_invoice(osv.osv):
|
|||
|
||||
# take the id part of the tuple returned for many2one fields
|
||||
for field in ('address_contact_id', 'address_invoice_id', 'partner_id',
|
||||
'project_id', 'account_id', 'currency_id', 'payment_term'):
|
||||
'account_id', 'currency_id', 'payment_term'):
|
||||
invoice[field] = invoice[field] and invoice[field][0]
|
||||
|
||||
# create the new invoice
|
||||
|
@ -535,6 +535,7 @@ class account_invoice_line(osv.osv):
|
|||
'discount': fields.float('Discount (%)', digits=(16,2)),
|
||||
'invoice_line_tax_id': fields.many2many('account.tax', 'account_invoice_line_tax', 'invoice_line_id', 'tax_id', 'Taxes', domain=[('parent_id','=',False)]),
|
||||
'note': fields.text('Notes'),
|
||||
'account_analytic_id': fields.many2one('account.analytic.account', 'Analytic Account', relate=True),
|
||||
}
|
||||
_defaults = {
|
||||
'quantity': lambda *a: 1,
|
||||
|
@ -611,6 +612,7 @@ class account_invoice_line(osv.osv):
|
|||
'account_id':line.account_id.id,
|
||||
'product_id':line.product_id.id,
|
||||
'uos_id':line.uos_id.id,
|
||||
'account_analytic_id':line.account_analytic_id.id,
|
||||
})
|
||||
for tax in tax_obj.compute(cr, uid, line.invoice_line_tax_id, (line.price_unit *(1.0-(line['discount'] or 0.0)/100.0)), line.quantity, inv.address_invoice_id.id, line.product_id, inv.partner_id):
|
||||
val={}
|
||||
|
|
|
@ -94,7 +94,6 @@ class purchase_order(osv.osv):
|
|||
'dest_address_id':fields.many2one('res.partner.address', 'Destination Address', states={'posted':[('readonly',True)]}),
|
||||
'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse', states={'posted':[('readonly',True)]}, relate=True),
|
||||
'location_id': fields.many2one('stock.location', 'Delivery destination', required=True),
|
||||
'project_id':fields.many2one('account.analytic.account', 'Analytic Account', states={'posted':[('readonly',True)]}),
|
||||
|
||||
'pricelist_id':fields.many2one('product.pricelist', 'Pricelist', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}),
|
||||
|
||||
|
@ -200,7 +199,8 @@ class purchase_order(osv.osv):
|
|||
'quantity': ol.product_qty,
|
||||
'product_id': ol.product_id.id or False,
|
||||
'uos_id': ol.product_uom.id or False,
|
||||
'invoice_line_tax_id': [(6, 0, [x.id for x in ol.taxes_id])]
|
||||
'invoice_line_tax_id': [(6, 0, [x.id for x in ol.taxes_id])],
|
||||
'account_analytic_id': ol.account_analytic_id.id,
|
||||
}))
|
||||
|
||||
a = o.partner_id.property_account_payable[0]
|
||||
|
@ -211,7 +211,6 @@ class purchase_order(osv.osv):
|
|||
'type': 'in_invoice',
|
||||
'partner_id': o.partner_id.id,
|
||||
'currency_id': o.pricelist_id.currency_id.id,
|
||||
'project_id': o.project_id.id,
|
||||
'address_invoice_id': o.partner_address_id.id,
|
||||
'address_contact_id': o.partner_address_id.id,
|
||||
'origin': o.name,
|
||||
|
@ -305,7 +304,8 @@ class purchase_order_line(osv.osv):
|
|||
'price_unit': fields.float('Unit Price', required=True, digits=(16, int(config['price_accuracy']))),
|
||||
'price_subtotal': fields.function(_amount_line, method=True, string='Subtotal'),
|
||||
'notes': fields.text('Notes'),
|
||||
'order_id': fields.many2one('purchase.order', 'Order Ref', select=True, required=True, ondelete='cascade')
|
||||
'order_id': fields.many2one('purchase.order', 'Order Ref', select=True, required=True, ondelete='cascade'),
|
||||
'account_analytic_id':fields.many2one('account.analytic.account', 'Analytic Account',),
|
||||
}
|
||||
_defaults = {
|
||||
'product_qty': lambda *a: 1.0
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
<field name="partner_id" select="1" on_change="onchange_partner_id(partner_id)"/>
|
||||
<field name="partner_address_id"/>
|
||||
<field name="pricelist_id" domain="[('type','=','purchase')]"/>
|
||||
<field name="project_id" select="1"/>
|
||||
<field name="ref" select="1"/>
|
||||
<field name="partner_ref" select="1"/>
|
||||
<newline/>
|
||||
|
@ -129,6 +128,8 @@
|
|||
<form string="Purchase Order Line">
|
||||
<notebook>
|
||||
<page string="Order Line">
|
||||
<field name="account_analytic_id"/>
|
||||
<newline/>
|
||||
<field name="product_qty"/>
|
||||
<field name="product_uom"/>
|
||||
<field name="product_id" colspan="3" on_change="product_id_change(parent.pricelist_id,product_id,product_qty,product_uom,parent.partner_id)" context="partner_id=parent.partner_id,quantity=product_qty,pricelist=parent.pricelist_id,uom=product_uom,warehouse=parent.warehouse_id"/>
|
||||
|
|
|
@ -229,7 +229,6 @@ class sale_order(osv.osv):
|
|||
'partner_id': order.partner_id.id,
|
||||
'address_invoice_id': order.partner_invoice_id.id,
|
||||
'address_contact_id': order.partner_invoice_id.id,
|
||||
'project_id': order.project_id.id,
|
||||
'invoice_line': [(6,0,lines)],
|
||||
'currency_id' : order.pricelist_id.currency_id.id,
|
||||
'comment': order.note,
|
||||
|
@ -592,6 +591,7 @@ class sale_order_line(osv.osv):
|
|||
'product_id': line.product_id.id or False,
|
||||
'invoice_line_tax_id': [(6,0,[x.id for x in line.tax_id])],
|
||||
'note': line.notes,
|
||||
'account_analytic_id': line.order_id.project_id.id,
|
||||
})
|
||||
cr.execute('insert into sale_order_line_invoice_rel (order_line_id,invoice_id) values (%d,%d)', (line.id, inv_id))
|
||||
self.write(cr, uid, [line.id], {'invoiced':True})
|
||||
|
|
Loading…
Reference in New Issue