def on_cancel(self):
     for d in self.get("items"):
         if d.serial_no:
             serial_nos = get_valid_serial_nos(d.serial_no)
             self.update_amc_date(serial_nos)
     frappe.db.set(self, "status", "Cancelled")
     delete_events(self.doctype, self.name)
示例#2
0
 def on_cancel(self):
     for d in self.get('items'):
         if d.serial_no:
             serial_nos = get_valid_serial_nos(d.serial_no)
             self.update_amc_date(serial_nos)
     frappe.db.set(self, 'status', 'Cancelled')
     delete_events(self.doctype, self.name)
示例#3
0
	def on_cancel(self):
		for d in self.get('items'):
			if d.serial_no:
				serial_nos = get_valid_serial_nos(d.serial_no)
				self.update_amc_date(serial_nos)
		frappe.db.set(self, 'status', 'Cancelled')
		delete_events(self.doctype, self.name)
示例#4
0
	def on_cancel(self):
		for d in self.get("items"):
			if d.serial_no:
				serial_nos = get_valid_serial_nos(d.serial_no)
				self.update_amc_date(serial_nos)
		frappe.db.set(self, "status", "Cancelled")
		delete_events(self.doctype, self.name)
示例#5
0
    def on_submit(self):
        if not self.get('schedules'):
            throw(_("Please click on 'Generate Schedule' to get schedule"))
        self.check_serial_no_added()
        self.validate_schedule()

        email_map = {}
        for d in self.get('items'):
            if d.serial_no:
                serial_nos = get_valid_serial_nos(d.serial_no)
                self.validate_serial_no(serial_nos, d.start_date)
                self.update_amc_date(serial_nos, d.end_date)

            no_email_sp = []
            if d.sales_person not in email_map:
                sp = frappe.get_doc("Sales Person", d.sales_person)
                try:
                    email_map[d.sales_person] = sp.get_email_id()
                except frappe.ValidationError:
                    no_email_sp.append(d.sales_person)

            if no_email_sp:
                frappe.msgprint(
                    frappe.
                    _("Setting Events to {0}, since the Employee attached to the below Sales Persons does not have a User ID{1}"
                      ).format(self.owner, "<br>" + "<br>".join(no_email_sp)))

            scheduled_date = frappe.db.sql("""select scheduled_date from
				`tabMaintenance Schedule Detail` where sales_person=%s and item_code=%s and
				parent=%s""", (d.sales_person, d.item_code, self.name),
                                           as_dict=1)

            for key in scheduled_date:
                description = frappe._(
                    "Reference: {0}, Item Code: {1} and Customer: {2}").format(
                        self.name, d.item_code, self.customer)
                frappe.get_doc({
                    "doctype":
                    "Event",
                    "owner":
                    email_map.get(d.sales_person, self.owner),
                    "subject":
                    description,
                    "description":
                    description,
                    "starts_on":
                    cstr(key["scheduled_date"]) + " 10:00:00",
                    "event_type":
                    "Private",
                    "ref_type":
                    self.doctype,
                    "ref_name":
                    self.name
                }).insert(ignore_permissions=1)

        frappe.db.set(self, 'status', 'Submitted')
示例#6
0
	def validate_serial_no(self):
		prevdoc_s_no, sr_list = [], []
		for d in self.get('items'):
			self.is_serial_no_added(d.item_code, d.serial_no)
			if d.serial_no:
				sr_list = get_valid_serial_nos(d.serial_no, d.qty, d.item_code)
				self.is_serial_no_exist(d.item_code, sr_list)

				prevdoc_s_no = self.get_prevdoc_serial_no(d.prevdoc_detail_docname)
				if prevdoc_s_no:
					self.is_serial_no_match(sr_list, prevdoc_s_no, d.prevdoc_docname)
示例#7
0
	def validate_serial_no(self):
		prevdoc_s_no, sr_list = [], []
		for d in self.get('items'):
			self.is_serial_no_added(d.item_code, d.serial_no)
			if d.serial_no:
				sr_list = get_valid_serial_nos(d.serial_no, d.qty, d.item_code)
				self.is_serial_no_exist(d.item_code, sr_list)

				prevdoc_s_no = self.get_prevdoc_serial_no(d.prevdoc_detail_docname)
				if prevdoc_s_no:
					self.is_serial_no_match(sr_list, prevdoc_s_no, d.prevdoc_docname)
示例#8
0
    def validate_serial_no(self):
        cur_s_no, prevdoc_s_no, sr_list = [], [], []
        for d in getlist(self.doclist, 'installed_item_details'):
            self.is_serial_no_added(d.item_code, d.serial_no)
            if d.serial_no:
                sr_list = get_valid_serial_nos(d.serial_no, d.qty, d.item_code)
                self.is_serial_no_exist(d.item_code, sr_list)

                prevdoc_s_no = self.get_prevdoc_serial_no(
                    d.prevdoc_detail_docname)
                if prevdoc_s_no:
                    self.is_serial_no_match(sr_list, prevdoc_s_no,
                                            d.prevdoc_docname)

                self.is_serial_no_installed(sr_list, d.item_code)
        return sr_list
    def on_submit(self):
        if not self.get("schedules"):
            throw(_("Please click on 'Generate Schedule' to get schedule"))
        self.check_serial_no_added()
        self.validate_schedule()

        email_map = {}
        for d in self.get("items"):
            if d.serial_no:
                serial_nos = get_valid_serial_nos(d.serial_no)
                self.validate_serial_no(serial_nos, d.start_date)
                self.update_amc_date(serial_nos, d.end_date)

            if d.sales_person not in email_map:
                sp = frappe.get_doc("Sales Person", d.sales_person)
                email_map[d.sales_person] = sp.get_email_id()

            scheduled_date = frappe.db.sql(
                """select scheduled_date from
				`tabMaintenance Schedule Detail` where sales_person=%s and item_code=%s and
				parent=%s""",
                (d.sales_person, d.item_code, self.name),
                as_dict=1,
            )

            for key in scheduled_date:
                if email_map[d.sales_person]:
                    description = "Reference: %s, Item Code: %s and Customer: %s" % (
                        self.name,
                        d.item_code,
                        self.customer,
                    )
                    frappe.get_doc(
                        {
                            "doctype": "Event",
                            "owner": email_map[d.sales_person] or self.owner,
                            "subject": description,
                            "description": description,
                            "starts_on": cstr(key["scheduled_date"]) + " 10:00:00",
                            "event_type": "Private",
                            "ref_type": self.doctype,
                            "ref_name": self.name,
                        }
                    ).insert(ignore_permissions=1)

        frappe.db.set(self, "status", "Submitted")
	def on_submit(self):
		if not self.get('schedules'):
			throw(_("Please click on 'Generate Schedule' to get schedule"))
		self.check_serial_no_added()
		self.validate_schedule()

		email_map = {}
		for d in self.get('items'):
			if d.serial_no:
				serial_nos = get_valid_serial_nos(d.serial_no)
				self.validate_serial_no(serial_nos, d.start_date)
				self.update_amc_date(serial_nos, d.end_date)

			no_email_sp = []
			if d.sales_person not in email_map:
				sp = frappe.get_doc("Sales Person", d.sales_person)
				try:
					email_map[d.sales_person] = sp.get_email_id()
				except frappe.ValidationError:
					no_email_sp.append(d.sales_person)
					
			if no_email_sp:
				frappe.msgprint(
					frappe._("Setting Events to {0}, since the Employee attached to the below Sales Persons does not have a User ID{1}").format(
						self.owner, "<br>" + "<br>".join(no_email_sp)
				))

			scheduled_date = frappe.db.sql("""select scheduled_date from
				`tabMaintenance Schedule Detail` where sales_person=%s and item_code=%s and
				parent=%s""", (d.sales_person, d.item_code, self.name), as_dict=1)

			for key in scheduled_date:
				description = frappe._("Reference: %s, Item Code: %s and Customer: %s") % \
					(self.name, d.item_code, self.customer)
				frappe.get_doc({
					"doctype": "Event",
					"owner": email_map.get(d.sales_person, self.owner),
					"subject": description,
					"description": description,
					"starts_on": cstr(key["scheduled_date"]) + " 10:00:00",
					"event_type": "Private",
					"ref_type": self.doctype,
					"ref_name": self.name
				}).insert(ignore_permissions=1)

		frappe.db.set(self, 'status', 'Submitted')
示例#11
0
    def on_submit(self):
        if not self.get('schedules'):
            throw(_("Please click on 'Generate Schedule' to get schedule"))
        self.check_serial_no_added()
        self.validate_schedule()

        email_map = {}
        for d in self.get('items'):
            if d.serial_no:
                serial_nos = get_valid_serial_nos(d.serial_no)
                self.validate_serial_no(serial_nos, d.start_date)
                self.update_amc_date(serial_nos, d.end_date)

            if d.sales_person not in email_map:
                sp = frappe.get_doc("Sales Person", d.sales_person)
                email_map[d.sales_person] = sp.get_email_id()

            scheduled_date = frappe.db.sql("""select scheduled_date from
				`tabMaintenance Schedule Detail` where sales_person=%s and item_code=%s and
				parent=%s""", (d.sales_person, d.item_code, self.name),
                                           as_dict=1)

            for key in scheduled_date:
                if email_map[d.sales_person]:
                    description = "Reference: %s, Item Code: %s and Customer: %s" % \
                     (self.name, d.item_code, self.customer)
                    frappe.get_doc({
                        "doctype": "Event",
                        "owner": email_map[d.sales_person] or self.owner,
                        "subject": description,
                        "description": description,
                        "starts_on": cstr(key["scheduled_date"]) + " 10:00:00",
                        "event_type": "Private",
                        "ref_type": self.doctype,
                        "ref_name": self.name
                    }).insert(ignore_permissions=1)

        frappe.db.set(self, 'status', 'Submitted')
示例#12
0
 def get_prevdoc_serial_no(self, prevdoc_detail_docname):
     serial_nos = frappe.db.get_value("Delivery Note Item",
                                      prevdoc_detail_docname, "serial_no")
     return get_valid_serial_nos(serial_nos)
示例#13
0
	def get_prevdoc_serial_no(self, prevdoc_detail_docname):
		serial_nos = frappe.db.get_value("Delivery Note Item",
			prevdoc_detail_docname, "serial_no")
		return get_valid_serial_nos(serial_nos)