[IMP]account_analytic_analysis: Improve onchange template and set context in added code
bzr revid: dbr@tinyerp.com-20130307060259-zu4ufsgasgvxkq8w
This commit is contained in:
parent
b4e9d6679b
commit
5303cef954
|
@ -35,11 +35,11 @@ _logger = logging.getLogger(__name__)
|
|||
class account_analytic_invoice_line(osv.osv):
|
||||
_name = "account.analytic.invoice.line"
|
||||
|
||||
def _amount_line(self, cr, uid, ids, prop, unknow_none, unknow_dict):
|
||||
def _amount_line(self, cr, uid, ids, prop, unknow_none, unknow_dict, context=None):
|
||||
res = {}
|
||||
tax_obj = self.pool.get('account.tax')
|
||||
cur_obj = self.pool.get('res.currency')
|
||||
for line in self.browse(cr, uid, ids):
|
||||
for line in self.browse(cr, uid, ids, context=context):
|
||||
taxes = tax_obj.compute_all(cr, uid, line.tax_ids, line.price_unit, line.quantity, product=line.product_id, partner=line.analytic_account_id.partner_id)
|
||||
res[line.id] = taxes['total']
|
||||
if line.analytic_account_id:
|
||||
|
@ -695,9 +695,11 @@ class account_analytic_account(osv.osv):
|
|||
res = super(account_analytic_account, self).on_change_template(cr, uid, ids, template_id, context=context)
|
||||
analytic_account = self.browse(cr, uid, template_id, context=context)
|
||||
invoice_line_ids = []
|
||||
#TO FIX: do not use write here. need another solution to unlink
|
||||
self.write(cr, uid, analytic_account.id, {'invoice_line_ids': []})
|
||||
|
||||
if ids:
|
||||
acc = self.browse(cr, uid, ids, context=context)[0]
|
||||
if acc.invoice_line_ids:
|
||||
for l in acc.invoice_line_ids:
|
||||
self.write(cr, uid, analytic_account.id, {'invoice_line_ids': [(2, l.id)]})
|
||||
template = self.browse(cr, uid, template_id, context=context)
|
||||
for x in template.invoice_line_ids:
|
||||
line = x.read([],load='_classic_write')[0]
|
||||
|
@ -781,7 +783,7 @@ class account_analytic_account(osv.osv):
|
|||
inv_line_id = []
|
||||
obj_invoice_line = self.pool.get('account.invoice.line')
|
||||
obj_contract_line = self.pool.get('account.analytic.invoice.line')
|
||||
for line in obj_contract_line.browse(cr, uid, contract_line_ids):
|
||||
for line in obj_contract_line.browse(cr, uid, contract_line_ids, context=context):
|
||||
invoice_line_vals = {
|
||||
'name': line.name,
|
||||
'origin': line.analytic_account_id.name,
|
||||
|
@ -834,7 +836,7 @@ class account_analytic_account(osv.osv):
|
|||
obj_invoice_line = self.pool.get('account.invoice.line')
|
||||
contract_ids = self.search(cr, uid, [('next_date','=', current_date), ('state','=', 'open'), ('recurring_invoices','=', True)])
|
||||
if contract_ids:
|
||||
for contract in self.browse(cr, uid, contract_ids):
|
||||
for contract in self.browse(cr, uid, contract_ids, context=context):
|
||||
contract_line_ids = self.pool.get('account.analytic.invoice.line').search(cr, uid, [('analytic_account_id', '=', contract.id)], context=context)
|
||||
if contract_line_ids:
|
||||
invoice_id = self._prepare_invoice(cr, uid, contract, context=context)
|
||||
|
|
|
@ -34,13 +34,13 @@
|
|||
}
|
||||
contract_id = self.create(cr, uid, data)
|
||||
assert contract_id, "contract has not been created correctly"
|
||||
|
||||
self._amount_all(cr, uid, [contract_id], '', {}, {})
|
||||
template = self.browse(cr, uid, ref('account_analytic_account_0'))
|
||||
res = self.on_change_template(cr, uid, [contract_id], template.id, {})
|
||||
self.write(cr, uid, [contract_id], res['value'])
|
||||
context = None
|
||||
self._amount_all(cr, uid, [contract_id], '', {}, context=context)
|
||||
template = self.browse(cr, uid, ref('account_analytic_account_0'),context=context)
|
||||
res = self.on_change_template(cr, uid, [contract_id], template.id, context=context)
|
||||
self.write(cr, uid, [contract_id], res['value'], context=context)
|
||||
line_obj = self.pool.get('account.analytic.invoice.line')
|
||||
contract = self.browse(cr, uid, contract_id)
|
||||
contract = self.browse(cr, uid, contract_id, context=context)
|
||||
assert template.partner_id.id == contract.partner_id.id or res['value']['partner_id'], "Customer of contract is not match with Contract Template"
|
||||
assert template.company_id.id == contract.company_id.id, "Company of contract is not match with Contract Template"
|
||||
assert template.date_start == contract.date_start, "Start Date of contract is not match with Contract Template"
|
||||
|
@ -49,7 +49,7 @@
|
|||
invoice_obj = self.pool.get('account.invoice')
|
||||
contract_invoice = invoice_obj.search(cr, uid, [('origin','=','Agrement of the loan for current month')])
|
||||
template_invoice = invoice_obj.search(cr, uid, [('origin','=','Loan EMI Agrement')])
|
||||
inv = invoice_obj.browse(cr ,uid, contract_invoice)[0]
|
||||
inv = invoice_obj.browse(cr ,uid, contract_invoice, context=context)[0]
|
||||
result = invoice_obj._amount_all(cr, uid, contract_invoice, '', {}, {})
|
||||
assert inv.state == 'draft', 'Contract created invoice not in draft state.'
|
||||
assert inv.amount_untaxed == contract.amount_untaxed, "Contract Invoice's Total tax excluded is not same as contract"
|
||||
|
|
Loading…
Reference in New Issue