Ciao Bruno, I found some problems with context propagation.
See the following patch
=== modified file 'account_invoice_template/wizard/select_template.py' --- account_invoice_template/wizard/select_template.py 2013-06-18 13:59:38 +0000 +++ account_invoice_template/wizard/select_template.py 2013-07-09 07:52:54 +0000 @@ -40,7 +40,7 @@ wizard_line_pool = self.pool.get('wizard.select.invoice.template.line') model_data_obj = self.pool.get('ir.model.data')
- template = template_pool.browse(cr, uid, wizard.template_id.id) + template = template_pool.browse(cr, uid, wizard.template_id.id, context=context) for line in template.template_line_ids: if line.type == 'input': wizard_line_pool.create(cr, uid,{ @@ -50,10 +50,10 @@ 'amount': line.product_id and line.product_id.list_price or 0.0, 'account_id': line.account_id.id, 'product_id': line.product_id.id, - }) + }, context=context) if not wizard.line_ids: - return self.load_template(cr, uid, ids) - wizard.write({'state': 'template_selected'}) + return self.load_template(cr, uid, ids, context=context) + wizard.write({'state': 'template_selected'}, context=context)
view_rec = model_data_obj.get_object_reference(cr, uid, 'account_invoice_template', 'wizard_select_template') view_id = view_rec and view_rec[1] or False @@ -70,6 +70,8 @@ }
def load_template(self, cr, uid, ids, context=None): + if context is None: + context = {} template_obj = self.pool.get('account.invoice.template') template_line_obj = self.pool.get('account.invoice.template.line') account_period_obj = self.pool.get('account.period') @@ -92,8 +94,8 @@ inv_values['partner_id'] = wizard.template_id.partner_id.id inv_values['account_id'] = wizard.template_id.account_id.id inv_values['type'] = wizard.template_id.type - - inv_id = account_invoice_obj.create(cr, uid, inv_values, context={'type':wizard.template_id.type}) + context['type'] = wizard.template_id.type + inv_id = account_invoice_obj.create(cr, uid, inv_values, context=context) for line in wizard.template_id.template_line_ids: analytic_account_id = False if line.analytic_account_id: @@ -113,7 +115,7 @@ 'price_unit': computed_lines[line.sequence], 'product_id': line.product_id.id, } - id_line = account_invoice_line_obj.create(cr, uid, val) + id_line = account_invoice_line_obj.create(cr, uid, val, context=context)
if wizard.template_id.type in ('out_invoice', 'out_refund'): xml_id = 'invoice_form'
« Back to merge proposal
Ciao Bruno,
I found some problems with context propagation.
See the following patch
=== modified file 'account_ invoice_ template/ wizard/ select_ template. py' invoice_ template/ wizard/ select_ template. py 2013-06-18 13:59:38 +0000 invoice_ template/ wizard/ select_ template. py 2013-07-09 07:52:54 +0000
wizard_ line_pool = self.pool. get('wizard. select. invoice. template. line')
model_ data_obj = self.pool. get('ir. model.data' )
--- account_
+++ account_
@@ -40,7 +40,7 @@
- template = template_ pool.browse( cr, uid, wizard. template_ id.id) pool.browse( cr, uid, wizard. template_ id.id, context=context) template_ line_ids:
wizard_ line_pool. create( cr, uid,{
'amount' : line.product_id and line.product_ id.list_ price or 0.0,
'account_ id': line.account_id.id,
'product_ id': line.product_id.id, template( cr, uid, ids) write({ 'state' : 'template_ selected' }) template( cr, uid, ids, context=context) write({ 'state' : 'template_ selected' }, context=context)
+ template = template_
for line in template.
if line.type == 'input':
@@ -50,10 +50,10 @@
- })
+ }, context=context)
if not wizard.line_ids:
- return self.load_
- wizard.
+ return self.load_
+ wizard.
view_rec = model_data_ obj.get_ object_ reference( cr, uid, 'account_ invoice_ template' , 'wizard_ select_ template' )
view_id = view_rec and view_rec[1] or False
@@ -70,6 +70,8 @@
}
def load_template(self, cr, uid, ids, context=None):
template_ obj = self.pool. get('account. invoice. template' )
template_ line_obj = self.pool. get('account. invoice. template. line')
account_ period_ obj = self.pool. get('account. period' )
inv_values[ 'partner_ id'] = wizard. template_ id.partner_ id.id
inv_values[ 'account_ id'] = wizard. template_ id.account_ id.id
inv_values[ 'type'] = wizard. template_ id.type invoice_ obj.create( cr, uid, inv_values, context= {'type' :wizard. template_ id.type} ) template_ id.type invoice_ obj.create( cr, uid, inv_values, context=context) template_ id.template_ line_ids:
analytic_ account_ id = False account_ id:
'price_ unit': computed_ lines[line. sequence] ,
'product_ id': line.product_id.id, invoice_ line_obj. create( cr, uid, val) invoice_ line_obj. create( cr, uid, val, context=context)
+ if context is None:
+ context = {}
@@ -92,8 +94,8 @@
-
- inv_id = account_
+ context['type'] = wizard.
+ inv_id = account_
for line in wizard.
if line.analytic_
@@ -113,7 +115,7 @@
}
- id_line = account_
+ id_line = account_
if wizard. template_ id.type in ('out_invoice', 'out_refund'):
xml_id = 'invoice_form'