[FIX] first round of changing name of class return.line by claim.line

This commit is contained in:
Benoit Guillot
2012-09-03 12:06:46 +02:00
parent 9e1b472974
commit e0075171d2
8 changed files with 136 additions and 123 deletions

View File

@@ -43,11 +43,11 @@ class substate_substate(osv.osv):
substate_substate()
#=====
class return_line(osv.osv):
class claim_line(osv.osv):
"""
Class to handle a product return line (corresponding to one invoice line)
"""
_name = "return.line"
_name = "claim.line"
_description = "List of product to return"
# Method to calculate total amount of the line : qty*UP
@@ -104,17 +104,17 @@ class return_line(osv.osv):
}
# Method to calculate warranty limit
def set_warranty_limit(self, cr, uid, ids,context,return_line):
if return_line.invoice_id.date_invoice:
def set_warranty_limit(self, cr, uid, ids,context,claim_line):
if claim_line.invoice_id.date_invoice:
warning = "Valid"
if return_line.claim_id.claim_type == 'supplier':
if return_line.prodlot_id :
limit = (datetime.strptime(return_line.invoice_id.date_invoice, '%Y-%m-%d') + relativedelta(months=int(return_line.product_id.seller_ids[0].warranty_duration))).strftime('%Y-%m-%d') # TO BE IMPLEMENTED !!!
if claim_line.claim_id.claim_type == 'supplier':
if claim_line.prodlot_id :
limit = (datetime.strptime(claim_line.invoice_id.date_invoice, '%Y-%m-%d') + relativedelta(months=int(claim_line.product_id.seller_ids[0].warranty_duration))).strftime('%Y-%m-%d') # TO BE IMPLEMENTED !!!
else :
limit = (datetime.strptime(return_line.invoice_id.date_invoice, '%Y-%m-%d') + relativedelta(months=int(return_line.product_id.seller_ids[0].warranty_duration))).strftime('%Y-%m-%d')
limit = (datetime.strptime(claim_line.invoice_id.date_invoice, '%Y-%m-%d') + relativedelta(months=int(claim_line.product_id.seller_ids[0].warranty_duration))).strftime('%Y-%m-%d')
else :
limit = (datetime.strptime(return_line.invoice_id.date_invoice, '%Y-%m-%d') + relativedelta(months=int(return_line.product_id.warranty))).strftime('%Y-%m-%d')
if limit < return_line.claim_id.date:
limit = (datetime.strptime(claim_line.invoice_id.date_invoice, '%Y-%m-%d') + relativedelta(months=int(claim_line.product_id.warranty))).strftime('%Y-%m-%d')
if limit < claim_line.claim_id.date:
warning = 'Expired'
self.write(cr,uid,ids,{
'guarantee_limit' : limit,
@@ -142,26 +142,26 @@ class return_line(osv.osv):
raise osv.except_osv(_('Error !'), _('Cannot find any address for this product partner !'))
# Method to calculate warranty return address
def set_warranty_return_address(self, cr, uid, ids,context,return_line):
def set_warranty_return_address(self, cr, uid, ids,context,claim_line):
return_address = None
warranty_type = 'company'
if return_line.product_id.seller_ids:
if claim_line.product_id.seller_ids:
# default : use first supplier method
seller = return_line.product_id.seller_ids[0]
if len(return_line.product_id.seller_ids) > 1 :
seller = claim_line.product_id.seller_ids[0]
if len(claim_line.product_id.seller_ids) > 1 :
# multi supplier method
print "TO BE IMPLEMENTED"
print "lenght: ",len(return_line.product_id.seller_ids)
print "lenght: ",len(claim_line.product_id.seller_ids)
#seller = set right seller line
if seller.warranty_return_partner:
return_partner = seller.warranty_return_partner
if return_partner == 'company':
return_address = self._get_partner_address(cr, uid, ids, context,return_line.claim_id.company_id.partner_id)[0]
return_address = self._get_partner_address(cr, uid, ids, context,claim_line.claim_id.company_id.partner_id)[0]
elif return_partner == 'supplier':
return_address = self._get_partner_address(cr, uid, ids, context,return_line.product_id.seller_ids[0].name)[0]
return_address = self._get_partner_address(cr, uid, ids, context,claim_line.product_id.seller_ids[0].name)[0]
warranty_type = 'supplier'
elif return_partner == 'brand':
return_address = self._get_partner_address(cr, uid, ids, context, return_line.product_id.product_brand_id.partner_id)[0]
return_address = self._get_partner_address(cr, uid, ids, context, claim_line.product_id.product_brand_id.partner_id)[0]
warranty_type = 'brand'
else :
warranty_type = 'other'
@@ -182,15 +182,15 @@ class return_line(osv.osv):
# Method to calculate warranty limit and validity
def set_warranty(self, cr, uid, ids,context=None):
for return_line in self.browse(cr,uid,ids):
if return_line.product_id and return_line.invoice_id:
self.set_warranty_limit(cr, uid, ids,context,return_line)
self.set_warranty_return_address(cr, uid, ids,context,return_line)
for claim_line in self.browse(cr,uid,ids):
if claim_line.product_id and claim_line.invoice_id:
self.set_warranty_limit(cr, uid, ids,context,claim_line)
self.set_warranty_return_address(cr, uid, ids,context,claim_line)
else:
raise osv.except_osv(_('Error !'), _('PLEASE SET PRODUCT & INVOICE!'))
return True
return_line()
claim_line()
#=====
class product_exchange(osv.osv):
@@ -250,12 +250,13 @@ product_exchange()
#==========
class crm_claim(osv.osv):
_inherit = 'crm.claim'
_columns = {
'sequence': fields.char('Sequence', size=128,readonly=True,states={'draft': [('readonly', False)]},required=True, help="Company internal claim unique number"),
'claim_type': fields.selection([('customer','Customer'),
('supplier','Supplier'),
('other','Other')], 'Claim type', required=True, help="customer = from customer to company ; supplier = from company to supplier"),
'return_line_ids' : fields.one2many('return.line', 'claim_id', 'Return lines'),
'claim_line_ids' : fields.one2many('claim.line', 'claim_id', 'Return lines'),
'product_exchange_ids': fields.one2many('product.exchange', 'claim_return_id', 'Product exchanges'),
# Aftersale outsourcing
# 'in_supplier_picking_id': fields.many2one('stock.picking', 'Return To Supplier Picking', required=False, select=True),
@@ -275,26 +276,27 @@ class crm_claim(osv.osv):
#===== Method to select all returned lines =====
def select_all(self,cr, uid, ids,context):
return_obj = self.pool.get('return.line')
for line in self.browse(cr,uid,ids)[0].return_line_ids:
return_obj = self.pool.get('claim.line')
for line in self.browse(cr,uid,ids)[0].claim_line_ids:
return_obj.write(cr,uid,line.id,{'selected':True})
return True
#===== Method to unselect all returned lines =====
def unselect_all(self,cr, uid, ids,context):
return_obj = self.pool.get('return.line')
for line in self.browse(cr,uid,ids)[0].return_line_ids:
return_obj = self.pool.get('claim.line')
for line in self.browse(cr,uid,ids)[0].claim_line_ids:
return_obj.write(cr,uid,line.id,{'selected':False})
return True
def refund(self, cr, uid, ids, context=None):
mod_obj = self.pool.get('ir.model.data')
xml_id = 'action_account_invoice_refund'
result = mod_obj.get_object_reference(cr, uid, 'account', xml_id)
id = result and result[1] or False
result = act_obj.read(cr, uid, id, context=context)
print 'result', result
return result
# === deprecated if we use the refund wizard of the account module ===
# def refund(self, cr, uid, ids, context=None):
# mod_obj = self.pool.get('ir.model.data')
# xml_id = 'action_account_invoice_refund'
# result = mod_obj.get_object_reference(cr, uid, 'account', xml_id)
# id = result and result[1] or False
# result = act_obj.read(cr, uid, id, context=context)
# print 'result', result
# return result
crm_claim()

View File

@@ -25,9 +25,9 @@
<data>
<!-- Return line -->
<!-- SEARCH -->
<record id="view_crm_return_lines_filter" model="ir.ui.view">
<record id="view_crm_claim_lines_filter" model="ir.ui.view">
<field name="name">CRM - Claims Search</field>
<field name="model">return.line</field>
<field name="model">claim.line</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Claims">
@@ -72,9 +72,9 @@
</record>
<!-- TREE -->
<record model="ir.ui.view" id="crm_return_line_tree_view">
<record model="ir.ui.view" id="crm_claim_line_tree_view">
<field name="name">CRM - Claims Tree</field>
<field name="model">return.line</field>
<field name="model">claim.line</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree editable="top" string="Returned lines">
@@ -93,9 +93,9 @@
</record>
<!-- FORM -->
<record model="ir.ui.view" id="crm_return_line_form_view">
<record model="ir.ui.view" id="crm_claim_line_form_view">
<field name="name">CRM - Claim product return line Form</field>
<field name="model">return.line</field>
<field name="model">claim.line</field>
<field name="arch" type="xml">
<form string="Returned line">
<field name="name"/>
@@ -221,7 +221,7 @@
</xpath>
<page string="Communication &amp; History" position="after">
<page string="Product return">
<field name="return_line_ids" nolabel="1" colspan="4"/>
<field name="claim_line_ids" nolabel="1" colspan="4"/>
<group col="1" rowspan="3">
<separator string="Add lines" colspan="4"/>
<button name="%(action_create_return_serial)d" string="Mass return from serial/lot n°" states="draft,open" type="action" target="new"/>
@@ -236,7 +236,7 @@
<separator string="From selected lines" colspan="4"/>
<button name="%(action_picking_in_from_returned_lines)d" string="New picking IN" states="draft,open" type="action" target="new"/>
<button name="%(action_picking_out_from_returned_lines)d" string="New picking OUT" states="draft,open" type="action" target="new"/>
<button name="refund" string="New refund" states="draft,open" type="object"/>
<button name="%(account.action_account_invoice_refund)d" type='action' string='New Refund' states='draft,open' icon="gtk-execute" context="{'active_ids': '1'}"/>
<!--<button name="%(action_exchange_from_returned_lines)d" string="New exchange" states="draft,open" type="action" target="new"/>-->
</group>
</page>
@@ -342,26 +342,26 @@
<!-- Menu -->
<!-- return lines action -->
<record model="ir.actions.act_window" id="act_crm_case_return_lines">
<field name="name">Return lines</field>
<field name="res_model">return.line</field>
<record model="ir.actions.act_window" id="act_crm_case_claim_lines">
<field name="name">Claim lines</field>
<field name="res_model">claim.line</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="crm_return_line_tree_view"/>
<field name="view_id" ref="crm_claim_line_tree_view"/>
<!-- field name="context">{'search_default_section_id': section_id, "search_default_current":1,"search_default_user_id":uid, "stage_type":'claim'}</field -->
<field name="search_view_id" ref="view_crm_return_lines_filter"/>
<field name="search_view_id" ref="view_crm_claim_lines_filter"/>
</record>
<!-- substates action -->
<record id="act_crm_claim_substates" model="ir.actions.act_window">
<field name="name">Return line substates</field>
<field name="name">Claim line substates</field>
<field name="res_model">substate.substate</field>
<field name="view_type">form</field>
<!-- field name="view_id" ref="crm.crm_case_categ_tree-view"/ -->
</record>
<!-- Menu -->
<menuitem name="Return lines" id="menu_crm_case_claims_return_lines"
parent="base.menu_aftersale" action="act_crm_case_return_lines" sequence="2"/>
<menuitem name="Returned line substates" id="menu_crm_case_claims_return_line_substates"
<menuitem name="Return lines" id="menu_crm_case_claims_claim_lines"
parent="base.menu_aftersale" action="act_crm_case_claim_lines" sequence="2"/>
<menuitem name="Returned line substates" id="menu_crm_case_claims_claim_line_substates"
parent="crm_claim.menu_config_claim" action="act_crm_claim_substates" sequence="2"/>
</data>
</openerp>

View File

@@ -29,18 +29,18 @@ class picking_in_from_returned_lines(osv.osv_memory):
_name='picking_in_from_returned_lines.wizard'
_description='Wizard to create a picking in from selected return lines'
_columns = {
'return_line_location' : fields.many2one('stock.location', 'Dest. Location',help="Location where the system will stock the returned products.", select=True),
'return_line_ids' : fields.many2many('temp.return.line',string='Selected return lines'),
'claim_line_location' : fields.many2one('stock.location', 'Dest. Location',help="Location where the system will stock the returned products.", select=True),
'claim_line_ids' : fields.many2many('temp.claim.line',string='Selected return lines'),
}
# Get selected lines to add to picking in
def _get_selected_lines(self, cr, uid,context):
returned_line_ids = self.pool.get('crm.claim').read(cr, uid, context['active_id'], ['return_line_ids'])['return_line_ids']
returned_lines = self.pool.get('return.line').browse(cr, uid,returned_line_ids)
returned_line_ids = self.pool.get('crm.claim').read(cr, uid, context['active_id'], ['claim_line_ids'])['claim_line_ids']
returned_lines = self.pool.get('claim.line').browse(cr, uid,returned_line_ids)
M2M = []
for line in returned_lines:
if True: #line.selected:
M2M.append(self.pool.get('temp.return.line').create(cr, uid, {
M2M.append(self.pool.get('temp.claim.line').create(cr, uid, {
'claim_origine' : "none",
'invoice_id' : line.invoice_id.id,
'product_id' : line.product_id.id,
@@ -55,8 +55,8 @@ class picking_in_from_returned_lines(osv.osv_memory):
return self.pool.get('stock.warehouse').read(cr, uid, [1],['lot_input_id'])[0]['lot_input_id'][0]
_defaults = {
'return_line_ids': _get_selected_lines,
'return_line_location' : _get_dest_loc,
'claim_line_ids': _get_selected_lines,
'claim_line_location' : _get_dest_loc,
}
# If "Cancel" button pressed
@@ -65,6 +65,7 @@ class picking_in_from_returned_lines(osv.osv_memory):
# If "Create" button pressed
def action_create_picking(self, cr, uid, ids, context=None):
print "context", context
partner_id = 0
# wf_service = netsvc.LocalService("workflow")
for picking in self.browse(cr, uid,ids):
@@ -87,12 +88,12 @@ class picking_in_from_returned_lines(osv.osv_memory):
'invoice_state': "none",
'company_id': claim_id.company_id.id,
'location_id': location,
'location_dest_id': picking.return_line_location.id,
'location_dest_id': picking.claim_line_location.id,
'note' : 'RMA picking in',
'claim_id': claim_id.id,
})
# Create picking lines
for picking_line in picking.return_line_ids:
for picking_line in picking.claim_line_ids:
move_id = self.pool.get('stock.move').create(cr, uid, {
'name' : picking_line.product_id.name_template, # Motif : crm id ? stock_picking_id ?
'priority': '0',
@@ -111,7 +112,7 @@ class picking_in_from_returned_lines(osv.osv_memory):
# 'price_currency_id': claim_id.company_id.currency_id.id, # from invoice ???
'company_id': claim_id.company_id.id,
'location_id': location,
'location_dest_id': picking.return_line_location.id,
'location_dest_id': picking.claim_line_location.id,
#self.pool.get('stock.warehouse').read(cr, uid, [1],['lot_input_id'])[0]['lot_input_id'][0],
'note': 'RMA Refound',
})
@@ -132,17 +133,17 @@ class picking_out_from_returned_lines(osv.osv_memory):
_name='picking_out_from_returned_lines.wizard'
_description='Wizard to create a picking out from selected return lines'
_columns = {
'return_line_ids' : fields.many2many('temp.return.line', string='Selected return lines'),
'claim_line_ids' : fields.many2many('temp.claim.line', string='Selected return lines'),
}
# Get selected lines to add to picking in
def _get_selected_lines(self, cr, uid,context):
returned_line_ids = self.pool.get('crm.claim').read(cr, uid, context['active_id'], ['return_line_ids'])['return_line_ids']
returned_lines = self.pool.get('return.line').browse(cr, uid,returned_line_ids)
returned_line_ids = self.pool.get('crm.claim').read(cr, uid, context['active_id'], ['claim_line_ids'])['claim_line_ids']
returned_lines = self.pool.get('claim.line').browse(cr, uid,returned_line_ids)
M2M = []
for line in returned_lines:
if True: # line.selected:
M2M.append(self.pool.get('temp.return.line').create(cr, uid, {
M2M.append(self.pool.get('temp.claim.line').create(cr, uid, {
'claim_origine' : "none",
'invoice_id' : line.invoice_id.id,
'product_id' : line.product_id.id,
@@ -153,7 +154,7 @@ class picking_out_from_returned_lines(osv.osv_memory):
return M2M
_defaults = {
'return_line_ids': _get_selected_lines,
'claim_line_ids': _get_selected_lines,
}
# If "Cancel" button pressed
@@ -189,7 +190,7 @@ class picking_out_from_returned_lines(osv.osv_memory):
})
# Create picking lines
for picking_line in picking.return_line_ids:
for picking_line in picking.claim_line_ids:
move_id = self.pool.get('stock.move').create(cr, uid, {
'name' : picking_line.product_id.name_template, # Motif : crm id ? stock_picking_id ?
'priority': '0',

View File

@@ -31,9 +31,9 @@
<field name="arch" type="xml">
<form string="Select return lines to add in picking">
<separator string="Destination location" colspan="4"/>
<field name="return_line_location" nolabel="1" /> <!-- domain="[('usage','=','internal')]" -->
<field name="claim_line_location" nolabel="1" /> <!-- domain="[('usage','=','internal')]" -->
<separator string="Select lines for picking " colspan="4"/>
<field name="return_line_ids" nolabel="1" colspan="4"/>
<field name="claim_line_ids" nolabel="1" colspan="4"/>
<group col="4" colspan="2">
<button special="cancel" string="Cancel" name="action_cancel" type="object" icon='gtk-cancel'/>
<button name="action_create_picking" string="Create picking" icon='gtk-ok' type="object"/>
@@ -64,7 +64,7 @@
<field name="arch" type="xml">
<form string="Select return lines to add in picking">
<separator string="Select lines for picking out " colspan="4"/>
<field name="return_line_ids" nolabel="1" colspan="4"/>
<field name="claim_line_ids" nolabel="1" colspan="4"/>
<group col="4" colspan="2">
<button special="cancel" string="Cancel" name="action_cancel" type="object" icon='gtk-cancel'/>
<button name="action_create_picking" string="Create picking" icon='gtk-ok' type="object"/>

View File

@@ -29,17 +29,17 @@ class refund_from_returned_lines(osv.osv_memory):
_description='Wizard to create an refund for selected product return lines'
_columns = {
'refund_journal' : fields.many2one('account.journal', 'Refund journal', select=True),
'return_line_ids' : fields.many2many('temp.return.line', string='Selected return lines'),
'claim_line_ids' : fields.many2many('temp.claim.line', string='Selected return lines'),
}
# Get selected lines to add to picking in
def _get_selected_lines(self, cr, uid,context):
returned_line_ids = self.pool.get('crm.claim').read(cr, uid, context['active_id'], ['return_line_ids'])['return_line_ids']
returned_lines = self.pool.get('return.line').browse(cr, uid,returned_line_ids)
returned_line_ids = self.pool.get('crm.claim').read(cr, uid, context['active_id'], ['claim_line_ids'])['claim_line_ids']
returned_lines = self.pool.get('claim.line').browse(cr, uid,returned_line_ids)
M2M = []
for line in returned_lines:
if True: #line.selected:
M2M.append(self.pool.get('temp.return.line').create(cr, uid, {
M2M.append(self.pool.get('temp.claim.line').create(cr, uid, {
'claim_origine' : "none",
'invoice_id' : line.invoice_id.id,
'product_id' : line.product_id.id,
@@ -56,7 +56,7 @@ class refund_from_returned_lines(osv.osv_memory):
return self.pool.get('account.journal').search(cr, uid, [('type','=','sale_refund')],limit=1)[0]
_defaults = {
'return_line_ids': _get_selected_lines,
'claim_line_ids': _get_selected_lines,
'refund_journal' : _get_journal,
}
@@ -95,7 +95,7 @@ class refund_from_returned_lines(osv.osv_memory):
'claim_id': claim_id.id,
})
# Create invoice lines
for refund_line in refund.return_line_ids:
for refund_line in refund.claim_line_ids:
if refund_line.invoice_id:
invoice_line_id = self.pool.get('account.invoice.line').create(cr, uid, {
'name' : refund_line.product_id.name_template,

View File

@@ -24,34 +24,44 @@
<openerp>
<data>
<!-- SELECT FORM VIEW -->
<record id="view_refund_from_returned_lines_form" model="ir.ui.view">
<field name="name">refund_from_returned_lines_wiew</field>
<field name="model">refund_from_returned_lines.wizard</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Select return lines to refund">
<separator string="Select lines for picking " colspan="4"/>
<field name="refund_journal"/>
<field name="return_line_ids" nolabel="1" colspan="4"/>
<group col="4" colspan="2">
<button special="cancel" string="Cancel" name="action_cancel" type="object" icon='gtk-cancel'/>
<button name="action_create_refund" string="Create refund" icon='gtk-ok' type="object"/>
</group>
</form>
</field>
</record>
<!-- <record id="view_refund_from_returned_lines_form" model="ir.ui.view">-->
<!-- <field name="name">refund_from_returned_lines_wiew</field>-->
<!-- <field name="model">refund_from_returned_lines.wizard</field>-->
<!-- <field name="type">form</field>-->
<!-- <field name="arch" type="xml">-->
<!-- <form string="Select return lines to refund">-->
<!-- <separator string="Select lines for picking " colspan="4"/>-->
<!-- <field name="refund_journal"/>-->
<!-- <field name="return_line_ids" nolabel="1" colspan="4"/>-->
<!-- <group col="4" colspan="2">-->
<!-- <button special="cancel" string="Cancel" name="action_cancel" type="object" icon='gtk-cancel'/>-->
<!-- <button name="action_create_refund" string="Create refund" icon='gtk-ok' type="object"/>-->
<!-- </group>-->
<!-- </form>-->
<!-- </field>-->
<!-- </record> -->
<!-- -->
<!-- SELECT ACTION -->
<record id="action_refund_from_returned_lines" model="ir.actions.act_window">
<field name="name">action_refund_from_returned_lines</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">refund_from_returned_lines.wizard</field>
<field name="src_model">crm.claim</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<!-- field name="context">{'claim_id':claim_id}</field -->
</record>
<!-- <record id="action_refund_from_returned_lines" model="ir.actions.act_window">-->
<!-- <field name="name">action_refund_from_returned_lines</field>-->
<!-- <field name="type">ir.actions.act_window</field>-->
<!-- <field name="res_model">refund_from_returned_lines.wizard</field>-->
<!-- <field name="src_model">crm.claim</field>-->
<!-- <field name="view_type">form</field>-->
<!-- <field name="view_mode">form</field>-->
<!-- <field name="target">new</field> -->
<!-- field name="context">{'claim_id':claim_id}</field -->
<!-- </record> -->
<!-- -->
<!-- <record id="action_claim_refund" model="ir.actions.act_window">-->
<!-- <field name="name">New Refund</field>-->
<!-- <field name="res_model">refund_from_returned_lines.wizard</field>-->
<!-- <field name="view_type">form</field>-->
<!-- <field name="view_mode">tree,form</field>-->
<!-- <field name="view_id" ref="account.view_account_invoice_refund"/>-->
<!-- <field name="target">new</field>-->
<!-- </record>-->
</data>
</openerp>

View File

@@ -58,8 +58,8 @@ class returned_lines_from_invoice_invoice(osv.osv_memory):
invoice_lines_ids = invoice_line_pool.search(cr, uid, [('invoice_id', '=', inv_id)])
# Get invoice lines from invoice line ids
for invoice_line in invoice_line_pool.browse(cr,uid,invoice_lines_ids):
return_line_pool = self.pool.get('return.line')
line_id = return_line_pool.create(cr, uid, {
claim_line_pool = self.pool.get('claim.line')
line_id = claim_line_pool.create(cr, uid, {
'claim_origine' : "none",
'invoice_id' : invoice_line.invoice_id.id,
'product_id' : invoice_line.product_id.id,
@@ -70,7 +70,7 @@ class returned_lines_from_invoice_invoice(osv.osv_memory):
'selected' : False,
'state' : 'draft',
})
for line in return_line_pool.browse(cr,uid,[line_id],context):
for line in claim_line_pool.browse(cr,uid,[line_id],context):
line.set_warranty()
return {'type': 'ir.actions.act_window_close',}
@@ -98,7 +98,7 @@ class returned_lines_from_invoice_lines(osv.osv_memory):
_name='returned_lines_from_invoice_line.wizard'
_description='Wizard to create product return lines from invoice'
_columns = {
'return_line_ids' : fields.many2many('temp.return.line', string='Return lines'),
'claim_line_ids' : fields.many2many('temp.claim.line', string='claim lines'),
}
# Get possible returns from invoice
@@ -108,7 +108,7 @@ class returned_lines_from_invoice_lines(osv.osv_memory):
M2M = []
# Create return lines from invoice lines
for invoice_line in self.pool.get('account.invoice.line').browse(cr,uid,invoice_lines_ids):
M2M.append(self.pool.get('temp.return.line').create(cr, uid, {
M2M.append(self.pool.get('temp.claim.line').create(cr, uid, {
'claim_origine' : "none",
'invoice_id' : invoice_line.invoice_id.id,
'invoice_line_id' : invoice_line.id,
@@ -120,7 +120,7 @@ class returned_lines_from_invoice_lines(osv.osv_memory):
return M2M
_defaults = {
'return_line_ids': _get_possible_returns_from_invoice,
'claim_line_ids': _get_possible_returns_from_invoice,
}
# If "Cancel" button pressed
@@ -130,9 +130,9 @@ class returned_lines_from_invoice_lines(osv.osv_memory):
# If "Create" button pressed, for all temp return line create return line
def action_create_returns(self, cr, uid, ids, context=None):
for wiz_obj in self.browse(cr,uid,ids):
for line in wiz_obj.return_line_ids:
return_line_pool = self.pool.get('return.line')
line_id = return_line_pool.create(cr, uid, {
for line in wiz_obj.claim_line_ids:
claim_line_pool = self.pool.get('claim.line')
line_id = claim_line_pool.create(cr, uid, {
'claim_origine' : line.claim_origine,
'invoice_id' : line.invoice_id.id,
'product_id' : line.product_id.id,
@@ -143,7 +143,7 @@ class returned_lines_from_invoice_lines(osv.osv_memory):
'selected' : False,
'state' : 'draft',
})
for line in return_line_pool.browse(cr,uid,[line_id],context):
for line in claim_line_pool.browse(cr,uid,[line_id],context):
line.set_warranty()
return {
@@ -153,11 +153,11 @@ class returned_lines_from_invoice_lines(osv.osv_memory):
returned_lines_from_invoice_lines()
#===== Temp returned line
class temp_return_line(osv.osv_memory):
class temp_claim_line(osv.osv_memory):
"""
Class to handle a product return line (corresponding to one invoice line)
"""
_name = "temp.return.line"
_name = "temp.claim.line"
_description = "List of product to return"
_columns = {
'claim_origine': fields.selection([('none','Not specified'),
@@ -176,5 +176,5 @@ class temp_return_line(osv.osv_memory):
'price_unit': fields.float('Unit sale price', digits=(12,2),),
}
temp_return_line()
temp_claim_line()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@@ -61,7 +61,7 @@
<field name="arch" type="xml">
<form string="Select return lines to create">
<separator string="Select return lines to create " colspan="4"/>
<field name="return_line_ids" nolabel="1" colspan="4"/>
<field name="claim_line_ids" nolabel="1" colspan="4"/>
<group col="4" colspan="2">
<button special="cancel" string="Cancel" name="action_cancel" type="object" icon='gtk-cancel'/>
<button name="action_create_returns" string="Create selected returns" icon='gtk-ok' type="object"/>
@@ -71,9 +71,9 @@
</record>
<!-- SELECT TEMP RETURN LINES TREE VIEW -->
<record model="ir.ui.view" id="temp_return_line_tree_view">
<field name="name">temp_return_line_Tree</field>
<field name="model">temp.return.line</field>
<record model="ir.ui.view" id="temp_claim_line_tree_view">
<field name="name">temp_claim_line_Tree</field>
<field name="model">temp.claim.line</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Confirm return lines">