validation fixes in mantenance schedule and error fixes in setting serial no warranty expiry date
diff --git a/stock/doctype/stock_ledger/stock_ledger.py b/stock/doctype/stock_ledger/stock_ledger.py
index 9f498d2..0c0e246 100644
--- a/stock/doctype/stock_ledger/stock_ledger.py
+++ b/stock/doctype/stock_ledger/stock_ledger.py
@@ -17,7 +17,7 @@
from __future__ import unicode_literals
import webnotes
-from webnotes.utils import add_days, cstr, flt, nowdate
+from webnotes.utils import add_days, cstr, flt, nowdate, cint
from webnotes.model.doc import Document
from webnotes.model.wrapper import getlist
from webnotes.model.code import get_obj
@@ -149,17 +149,18 @@
s = Document('Serial No', serial_no)
s.delivery_document_type = obj.doc.doctype
s.delivery_document_no = obj.doc.name
- s.delivery_date = obj.doc.posting_date
- s.delivery_time = obj.doc.posting_time
- s.customer = obj.doc.customer
- s.customer_name = obj.doc.customer_name
- s.delivery_address = obj.doc.address_display
- s.territory = obj.doc.territory
- s.warranty_expiry_date = s.warranty_period and add_days(cstr(obj.doc.posting_date), s.warranty_period) or ''
- s.docstatus = 1
- s.status = 'Delivered'
- s.modified = nowdate()
- s.modified_by = session['user']
+ s.delivery_date = obj.doc.posting_date
+ s.delivery_time = obj.doc.posting_time
+ s.customer = obj.doc.customer
+ s.customer_name = obj.doc.customer_name
+ s.delivery_address = obj.doc.address_display
+ s.territory = obj.doc.territory
+ s.warranty_expiry_date = cint(s.warranty_period) and \
+ add_days(cstr(obj.doc.posting_date), cint(s.warranty_period)) or s.warranty_expiry_date
+ s.docstatus = 1
+ s.status = 'Delivered'
+ s.modified = nowdate()
+ s.modified_by = session['user']
s.save()
diff --git a/support/doctype/maintenance_schedule/maintenance_schedule.py b/support/doctype/maintenance_schedule/maintenance_schedule.py
index 6560c83..6628c0b 100644
--- a/support/doctype/maintenance_schedule/maintenance_schedule.py
+++ b/support/doctype/maintenance_schedule/maintenance_schedule.py
@@ -277,24 +277,21 @@
def on_update(self):
webnotes.conn.set(self.doc, 'status', 'Draft')
- #validate that new maintenance start date does not clash with existing mntc end date
- #-------------------------------------------------------------------------------------------------
def validate_serial_no_warranty(self):
for d in getlist(self.doclist, 'item_maintenance_detail'):
- if d.serial_no:
- dt = sql("select warranty_expiry_date, amc_expiry_date from `tabSerial No` where name = %s", d.serial_no, as_dict=1)
-
- if dt[0]['warranty_expiry_date']:
- if dt[0]['warranty_expiry_date'] >= getdate(d.start_date):
- msgprint("Serial no "+d.serial_no+" for item "+d.item_code+" is already under warranty till "+(dt[0]['warranty_expiry_date']).strftime('%Y-%m-%d')+". You can schedule AMC start date after "+(dt[0]['warranty_expiry_date']).strftime('%Y-%m-%d'))
- raise Exception
- if dt[0]['amc_expiry_date']:
- if dt[0]['amc_expiry_date'] >= getdate(d.start_date):
- msgprint("Serial no "+d.serial_no+" for item "+d.item_code+" is already under AMC till "+(dt[0]['amc_expiry_date']).strftime('%Y-%m-%d')+". You can schedule new AMC start date after "+(dt[0]['amc_expiry_date']).strftime('%Y-%m-%d'))
- raise Exception
-
- #validate if schedule generated for all items
- #-------------------------------------------------
+ if d.serial_no.strip():
+ dt = sql("""select warranty_expiry_date, amc_expiry_date
+ from `tabSerial No` where name = %s""", d.serial_no, as_dict=1)
+ if dt[0]['warranty_expiry_date'] and dt[0]['warranty_expiry_date'] >= d.start_date:
+ webnotes.msgprint("""Serial No: %s is already under warranty upto %s.
+ Please check AMC Start Date.""" %
+ (d.serial_no, dt[0]["warranty_expiry_date"]), raise_exception=1)
+
+ if dt[0]['amc_expiry_date'] and dt[0]['amc_expiry_date'] >= d.start_date:
+ webnotes.msgprint("""Serial No: %s is already under AMC upto %s.
+ Please check AMC Start Date.""" %
+ (d.serial_no, sr[0]["amc_expiry_date"]), raise_exception=1)
+
def validate_schedule(self):
item_lst1 =[]
item_lst2 =[]