mirror of
https://github.com/OCA/rma.git
synced 2025-02-16 17:11:47 +02:00
[IMP] fix view and add refund_line_id on the claim_line
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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', '<>','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>
|
||||
|
||||
@@ -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','<>','done'), ('claim_picking', '!=', False)]}"/>
|
||||
<xpath expr="/form/notebook/page[@string='General Information']/group/button[@string='Return Products']" position="attributes">
|
||||
<attribute name="attrs">{'invisible':['|', ('state','<>','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','<>','done'),
|
||||
('claim_picking', '=', False)]}">
|
||||
|
||||
Reference in New Issue
Block a user