[IMP] Clean the product waranty module (PEP8) + remove use of brand as it seems to be lost in another module that is not here

This commit is contained in:
Joel Grand-Guillaume
2013-11-14 11:11:07 +01:00
parent cd04bb8fb2
commit 3d88918057
3 changed files with 41 additions and 37 deletions

View File

@@ -19,5 +19,4 @@
#You should have received a copy of the GNU General Public License #
#along with this program. If not, see <http://www.gnu.org/licenses/>. #
#########################################################################
import product_warranty
from . import product_warranty

View File

@@ -26,16 +26,21 @@
'version': '1.0',
'category': 'Generic Modules/Product',
'description': """
Akretion - Emmanuel Samyn
Extend the product warranty management with warranty details on product / supplier relation
Product Warranty
================
Extend the product warranty management with warranty details on product / supplier relation:
* supplier warranty duration
* return product to company, supplier, brand, other
""",
'author': 'esamyn',
'website': 'http://www.erp-236.com',
* return product to company, supplier, other
Thos informationy are used in the RMA Claim (Product Return Management) module.
""",
'author': 'Akretion',
'website': 'http://akretion.com',
'depends': ['product'],
'init_xml': [],
'update_xml': [
'data': [
'security/ir.model.access.csv',
'product_warranty_view.xml',
],

View File

@@ -28,8 +28,11 @@ class return_instruction(orm.Model):
_description = "Instructions for product return"
_columns = {
'name': fields.char('Title', size=128, required=True),
'instructions' : fields.text('Instructions', help="Instructions for product return"),
'is_default' : fields.boolean('Is default', help="If is default, will be use to set the default value in supplier infos. Be careful to have only one default"),
'instructions' : fields.text('Instructions',
help="Instructions for product return"),
'is_default' : fields.boolean('Is default',
help="If is default, will be use to set the default value in "
"supplier infos. Be careful to have only one default"),
}
class product_supplierinfo(orm.Model):
@@ -40,13 +43,12 @@ class product_supplierinfo(orm.Model):
('company','Company'),
('supplier','Supplier'),
('other','Other'),]
if self.pool.get('ir.module.module').search(cr, uid, [('name','like','product_brand'),('state','like','installed')]):
result.append(('brand','Brand manufacturer'),)
return result
# Get selected lines to add to exchange
def _get_default_instructions(self, cr, uid, context=None):
instruction_ids = self.pool.get('return.instruction').search(cr, uid, [('is_default','=','FALSE')])
instruction_ids = self.pool.get('return.instruction').search(cr, uid,
[('is_default','=','FALSE')])
if instruction_ids:
return instruction_ids[0]
# TODO f(supplier) + other.
@@ -54,7 +56,8 @@ class product_supplierinfo(orm.Model):
def _get_warranty_return_address(self, cr, uid, ids, field_names, arg, context=None):
# Method to return the partner delivery address or if none, the default address
# dedicated_delivery_address stand for the case a new type of address more particularly dedicated to return delivery would be implemented.
# dedicated_delivery_address stand for the case a new type of address more particularly
# dedicated to return delivery would be implemented.
result ={}
address_obj = self.pool.get('res.partner')
for supplier_info in self.browse(cr, uid, ids, context=context):
@@ -64,36 +67,33 @@ class product_supplierinfo(orm.Model):
if return_partner:
if return_partner == 'supplier':
partner_id = supplier_info.name.id
elif return_partner == 'brand':
if not supplier_info.product_id.product_brand_id.partner_id:
raise osv.except_osv(_('Error !'), _('You need to define a partner for the brand of the product !'))
partner_id = supplier_info.product_id.product_brand_id.partner_id.id
else:
partner_id = supplier_info.company_id.partner_id.id
# TODO : Find the partner with a delivery address, child of the partner
# v6.1 code with res.partner.address :
# address_id = address_obj.search(cr, uid, [('partner_id', '=', partner_id), ('type', 'like', 'dedicated_delivery')], context=context)
# if not address_id:
# address_id = address_obj.search(cr, uid, [('partner_id','=', partner_id), ('type','like','delivery')], context=context)
# if not address_id:
# address_id = address_obj.search(cr, uid, [('partner_id', '=', partner_id), ('type', 'like', 'default')], context=context)
# if not address_id:
# raise osv.except_osv(_('Error !'), _('No address define for the %s!') % return_partner)
# #result[supplier_info.id] = address_id[0]
result[supplier_info.id] = partner_id
return result
_columns = {
"warranty_duration" : fields.float('Warranty', help="Warranty in month for this product/supplier relation. Only for company/supplier relation (purchase order) ; the customer/company relation (sale order) always use the product main warranty field"),
"warranty_return_partner" : fields.selection(get_warranty_return_partner, 'Warrantee return', size=128, help="Who is in charge of the warranty return treatment toward the end customer. Company will use the current compagny delivery or default address and so on for supplier and brand manufacturer. Doesn't necessarly mean that the warranty to be applied is the one of the return partner (ie: can be returned to the company and be under the brand warranty"),
'return_instructions': fields.many2one('return.instruction', 'Instructions',help="Instructions for product return"),
'active_supplier' : fields.boolean('Active supplier', help=""),
'warranty_return_address': fields.function(_get_warranty_return_address, type='many2one', relation='res.partner', string="Warranty return address"),
"warranty_duration" : fields.float('Warranty',
help="Warranty in month for this product/supplier relation. Only for "
"company/supplier relation (purchase order) ; the customer/company "
"relation (sale order) always use the product main warranty field"),
"warranty_return_partner" : fields.selection(get_warranty_return_partner,
'Warrantee return',
size=128,
help="Who is in charge of the warranty return treatment toward the end customer. "
"Company will use the current compagny delivery or default address and so on for "
"supplier and brand manufacturer. Doesn't necessarly mean that the warranty to be "
"applied is the one of the return partner (ie: can be returned to the company and "
"be under the brand warranty"),
'return_instructions': fields.many2one('return.instruction',
'Instructions',
help="Instructions for product return"),
'active_supplier' : fields.boolean('Active supplier'),
'warranty_return_address': fields.function(_get_warranty_return_address,
type='many2one', relation='res.partner', string="Warranty return address"),
}
_defaults = {
'warranty_return_partner': lambda *a: 'company',
'return_instructions': _get_default_instructions,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: