diff --git a/crm_claim_rma/crm_claim_rma.py b/crm_claim_rma/crm_claim_rma.py
index 7277c0ee..e340558d 100644
--- a/crm_claim_rma/crm_claim_rma.py
+++ b/crm_claim_rma/crm_claim_rma.py
@@ -104,20 +104,23 @@ class return_line(osv.osv):
# Method to calculate warranty limit
def set_warranty_limit(self, cr, uid, ids,context,return_line):
- 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 return_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 !!!
+ 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')
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')
- 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:
- warning = 'Expired'
- self.write(cr,uid,ids,{
+ 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:
+ warning = 'Expired'
+ self.write(cr,uid,ids,{
'guarantee_limit' : limit,
'warning' : warning,
- })
+ })
+ else:
+ raise osv.except_osv(_('Error !'), _('Cannot find any date for invoice ! Must be a validated invoice !'))
return True
# Method to return the partner delivery address or if none, the default address
@@ -243,7 +246,7 @@ class crm_claim_product_return(osv.osv):
_description = "Add product return functionalities, product exchange and aftersale outsourcing to CRM claim"
_inherit = 'crm.claim'
_columns = {
- 'sequence': fields.char('Sequence', size=128, required=True,readonly=True, help="Company internal claim unique number"),
+ '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"),
diff --git a/crm_claim_rma/crm_claim_rma_view.xml b/crm_claim_rma/crm_claim_rma_view.xml
index 6859cba1..222d9ce1 100644
--- a/crm_claim_rma/crm_claim_rma_view.xml
+++ b/crm_claim_rma/crm_claim_rma_view.xml
@@ -101,7 +101,7 @@
-
+
@@ -283,18 +283,34 @@
+
+
+
+