mirror of
https://github.com/OCA/rma.git
synced 2025-02-16 17:11:47 +02:00
[FIX] first round of changing name of class return.line by claim.line
This commit is contained in:
@@ -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()
|
||||
|
||||
|
||||
@@ -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 & 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>
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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">
|
||||
|
||||
Reference in New Issue
Block a user