[IMP] fix view and add refund_line_id on the claim_line

This commit is contained in:
Benoit Guillot
2012-09-18 17:10:23 +02:00
parent f336be53ac
commit 7436a417dc
3 changed files with 54 additions and 29 deletions

View File

@@ -32,6 +32,13 @@ class account_invoice(osv.osv):
'claim_id': fields.many2one('crm.claim', 'Claim'),
}
def _get_cleanup_fields(self, cr, uid, context=None):
fields = super(account_invoice, self)._get_cleanup_fields(cr, uid, context=context)
list_fields = list(fields)
list_fields.append('claim_line_id')
fields = tuple(list_fields)
return fields
def _refund_cleanup_lines(self, cr, uid, lines, context=None):
new_lines = []
if context.get('claim_line_ids') and lines and 'product_id' in lines[0]:#check if is an invoice_line
@@ -39,6 +46,7 @@ class account_invoice(osv.osv):
claim_info = self.pool.get('claim.line').read(cr, uid, claim_line_id[1], ['invoice_line_id', 'product_returned_quantity'], context=context)
invoice_line_info = self.pool.get('account.invoice.line').read(cr, uid, claim_info['invoice_line_id'][0], context=context)
invoice_line_info['quantity'] = claim_info['product_returned_quantity']
invoice_line_info['claim_line_id'] = claim_line_id
new_lines.append(invoice_line_info)
lines = new_lines
result = super(account_invoice, self)._refund_cleanup_lines(cr, uid, lines, context=context)
@@ -49,3 +57,17 @@ class account_invoice(osv.osv):
if kwargs.get('context') and kwargs['context'].get('claim_id'):
result['claim_id'] = kwargs['context']['claim_id']
return result
class account_invoice_line(osv.osv):
_inherit = "account.invoice.line"
def create(self, cr, uid, vals, context=None):
claim_line_id = False
if vals.get('claim_line_id'):
claim_line_id = vals['claim_line_id']
del vals['claim_line_id']
line_id = super(account_invoice_line, self).create(cr, uid, vals, context=context)
if claim_line_id:
self.pool.get('claim.line').write(cr, uid, claim_line_id, {'refund_line_id': line_id}, context=context)
return line_id

View File

@@ -223,38 +223,38 @@
<field name="invoice_id" colspan="1" on_change="onchange_invoice_id(invoice_id, context)" domain="[('partner_id','=',partner_id)]" />
<button name="%(action_create_return_serial)d" string="Mass return from serial/lot n°" states="draft,open" type="action" target="new"/>
<field name="claim_line_ids" nolabel="1" colspan="3"/>
<group col="1" colspan="1">
<separator string="Action" colspan="1"/>
<button name="%(action_claim_picking_in)d"
string="New picking IN" states="draft,open"
type="action" target="new"
context="{'warehouse_id': warehouse_id,
'partner_id': partner_id}"/>
</group>
<group col="4" colspan="4" attrs="{'invisible':[('state', '&lt;&gt;','open')]}">
<separator string="Action" colspan="4" />
<button name="%(action_claim_picking_in)d"
string="New picking IN" states="open"
type="action" target="new"
context="{'warehouse_id': warehouse_id,
'partner_id': partner_id}"/>
<button name="%(action_claim_picking_out)d"
string="New picking OUT" states="draft,open"
type="action" target="new"
context="{'warehouse_id': warehouse_id,
'partner_id': partner_id}"/>
<button name="%(action_claim_picking_out)d"
string="New picking OUT" states="open"
type="action" target="new"
context="{'warehouse_id': warehouse_id,
'partner_id': partner_id}"/>
<button name="%(action_claim_picking_loss)d"
string="New Product Loss" states="draft,open"
type="action" target="new"
context="{'warehouse_id': warehouse_id,
'partner_id': partner_id}"/>
<button name="%(action_claim_picking_loss)d"
string="New Product Loss" states="open"
type="action" target="new"
context="{'warehouse_id': warehouse_id,
'partner_id': partner_id}"/>
<button name="%(account.action_account_invoice_refund)d"
type='action' string='New Refund'
states='draft,open' icon="gtk-execute"
context="{
'invoice_ids': [invoice_id],
'claim_line_ids': claim_line_ids,
'description': name,
'claim_id': id,
}"/>
</group>
<button name="%(account.action_account_invoice_refund)d"
type='action' string='New Refund'
states='open' icon="gtk-execute"
context="{
'invoice_ids': [invoice_id],
'claim_line_ids': claim_line_ids,
'description': name,
'claim_id': id,
}"/>
</group>
</field>
</field>

View File

@@ -21,8 +21,11 @@
<field name="claim_id" />
<field name="claim_picking" invisible="1"/>
</xpath>
<xpath expr="/form/notebook/page[@string='General Information']/group/button[@string='Return Products']" position="replace">
<button name="%(stock.act_stock_return_picking)d" string="Return Products" type="action" icon="gtk-execute" attrs="{'invisible':['|', ('state','&lt;&gt;','done'), ('claim_picking', '!=', False)]}"/>
<xpath expr="/form/notebook/page[@string='General Information']/group/button[@string='Return Products']" position="attributes">
<attribute name="attrs">{'invisible':['|', ('state','&lt;&gt;','done'), ('claim_picking', '!=', False)]}</attribute>
<attribute name="states"></attribute>
</xpath>
<xpath expr="/form/notebook/page[@string='General Information']/group/button[@string='Return Products']" position="after">
<group name="claim_picking_button" attrs="{'invisible':['|',
('state','&lt;&gt;','done'),
('claim_picking', '=', False)]}">