def update_serial_no_warranty_amc_status(self, serial_no_list = []):
		if serial_no_list:
			sr_list = serial_no_list
		else:
			sr_list = [s[0] for s in sql("select name from `tabSerial No` where docstatus = 1")]
		
		for s in sr_list:
			sr = Document('Serial No', s)
			if sr.amc_expiry_date:
				sr.warranty_amc_status = (sr.amc_expiry_date < nowdate()) and 'Out of AMC' or 'Under AMC'
			elif sr.warranty_expiry_date:
				sr.warranty_amc_status = (sr.warranty_expiry_date < nowdate()) and 'Out of Warranty' or 'Under Warranty'
			sr.save()
Пример #2
0
 def update_warranty_amc_history(self, submit = 1):
   if self.doc.order_type in ['AMC', 'OTS (One Time Service)']:
     sr_list = []
     if submit:
       for d in getlist(self.doclist, 'service_order_details'):
         sr = Document('Serial No', d.serial_no)
         child = addchild(sr, 'warranty_amc_history', 'Warranty AMC History', 0)
         child.from_date = d.start_date
         child.to_date = d.end_date
         child.status = (self.doc.order_type == 'AMC') and 'Under AMC' or 'OTS (One Time Service)'
         child.against_doctype = self.doc.doctype
         child.against_docname = self.doc.name
         child.customer = self.doc.customer
         child.territory = self.doc.territory
         child.save()
         sr.warranty_amc_status = (self.doc.order_type == 'AMC') and 'Under AMC' or 'OTS (One Time Service)'
         sr.amc_expiry_date = d.end_date
         sr.save()
         sr_list.append(d.serial_no)
     else:
       sql("delete from `tabWarranty AMC History` where against_doctype = %s and against_docname = %s", (self.doc.doctype, self.doc.name))
       for d in getlist(self.doclist, 'service_order_details'):
         sql("update `tabSerial No` set amc_expiry_date = '' where name = '%s'" % (d.serial_no))
         sr_list.append(d.serial_no)
     self.update_serial_no_warranty_amc_status(serial_no_list = sr_list)
Пример #3
0
 def update_warranty_amc_history(self, submit = 1):
   if submit:
     for d in getlist(self.doclist, 'delivery_note_details'):
       if d.serial_no:
         serial_nos = self.get_sr_no_list(d.serial_no)
         for s in serial_nos:
           sr = Document('Serial No', s)
           child = addchild(sr, 'warranty_amc_history', 'Warranty AMC History', 0)
           child.from_date = self.doc.transaction_date
           child.to_date = d.warranty_expiry_date
           child.status = 'Under Warranty'
           child.against_doctype = self.doc.doctype
           child.against_docname = self.doc.name
           child.customer = self.doc.customer
           child.territory = self.doc.territory
           child.save()
           sr.warranty_amc_status = 'Under Warranty'
           sr.warranty_expiry_date = d.warranty_expiry_date
           sr.save()
   else:
     sql("delete from `tabWarranty AMC History` where against_doctype = %s and against_docname = %s", (self.doc.doctype, self.doc.name))
     sr_list = []
     for d in getlist(self.doclist, 'service_order_details'):
       if d.serial_no:
         serial_nos = self.get_sr_no_list(d.serial_no)
         for s in serial_nos:
           sql("update `tabSerial No` set warranty_expiry_date = '' where name = '%s'" % (s))
           sr_list.append(s)
     self.update_serial_no_warranty_amc_status(serial_no_list = sr_list) 
Пример #4
0
 def update_warranty_amc_history(self, submit=1):
     if self.doc.order_type in ["AMC", "OTS (One Time Service)"]:
         sr_list = []
         if submit:
             for d in getlist(self.doclist, "service_order_details"):
                 sr = Document("Serial No", d.serial_no)
                 child = addchild(sr, "warranty_amc_history", "Warranty AMC History", 0)
                 child.from_date = d.start_date
                 child.to_date = d.end_date
                 child.status = (self.doc.order_type == "AMC") and "Under AMC" or "OTS (One Time Service)"
                 child.against_doctype = self.doc.doctype
                 child.against_docname = self.doc.name
                 child.customer = self.doc.customer
                 child.territory = self.doc.territory
                 child.save()
                 sr.warranty_amc_status = (self.doc.order_type == "AMC") and "Under AMC" or "OTS (One Time Service)"
                 sr.amc_expiry_date = d.end_date
                 sr.save()
                 sr_list.append(d.serial_no)
         else:
             sql(
                 "delete from `tabWarranty AMC History` where against_doctype = %s and against_docname = %s",
                 (self.doc.doctype, self.doc.name),
             )
             for d in getlist(self.doclist, "service_order_details"):
                 sql("update `tabSerial No` set amc_expiry_date = '' where name = '%s'" % (d.serial_no))
                 sr_list.append(d.serial_no)
         self.update_serial_no_warranty_amc_status(serial_no_list=sr_list)