示例#1
0
    def run_post_save_methods(self):
        """Run standard methods after `INSERT` or `UPDATE`. Standard Methods are:

		- `on_update` for **Save**.
		- `on_update`, `on_submit` for **Submit**.
		- `on_cancel` for **Cancel**
		- `update_after_submit` for **Update after Submit**"""
        if self._action == "save":
            self.run_method("on_update")
        elif self._action == "submit":
            self.run_method("on_update")
            self.run_method("on_submit")
        elif self._action == "cancel":
            self.run_method("on_cancel")
            self.check_no_back_links_exist()
        elif self._action == "update_after_submit":
            self.run_method("on_update_after_submit")

        self.run_method('on_change')

        self.update_timeline_doc()
        self.clear_cache()
        self.notify_update()

        update_global_search(self)

        if getattr(
                self.meta, 'track_changes', False
        ) and self._doc_before_save and not self.flags.ignore_version:
            self.save_version()

        if (self.doctype, self.name) in frappe.flags.currently_saving:
            frappe.flags.currently_saving.remove((self.doctype, self.name))

        self.latest = None
示例#2
0
文件: document.py 项目: frappe/frappe
	def run_post_save_methods(self):
		"""Run standard methods after `INSERT` or `UPDATE`. Standard Methods are:

		- `on_update` for **Save**.
		- `on_update`, `on_submit` for **Submit**.
		- `on_cancel` for **Cancel**
		- `update_after_submit` for **Update after Submit**"""
		if self._action=="save":
			self.run_method("on_update")
		elif self._action=="submit":
			self.run_method("on_update")
			self.run_method("on_submit")
		elif self._action=="cancel":
			self.run_method("on_cancel")
			self.check_no_back_links_exist()
		elif self._action=="update_after_submit":
			self.run_method("on_update_after_submit")

		self.run_method('on_change')

		self.update_timeline_doc()
		self.clear_cache()
		self.notify_update()

		update_global_search(self)

		if getattr(self.meta, 'track_changes', False) and self._doc_before_save and not self.flags.ignore_version:
			self.save_version()

		if (self.doctype, self.name) in frappe.flags.currently_saving:
			frappe.flags.currently_saving.remove((self.doctype, self.name))

		self.latest = None
示例#3
0
	def run_post_save_methods(self):
		"""Run standard methods after `INSERT` or `UPDATE`. Standard Methods are:

		- `on_update` for **Save**.
		- `on_update`, `on_submit` for **Submit**.
		- `on_cancel` for **Cancel**
		- `update_after_submit` for **Update after Submit**"""

		doc_before_save = self.get_doc_before_save()

		if self._action=="save":
			self.run_method("on_update")
		elif self._action=="submit":
			self.run_method("on_update")
			self.run_method("on_submit")
		elif self._action=="cancel":
			self.run_method("on_cancel")
			self.check_no_back_links_exist()
		elif self._action=="update_after_submit":
			self.run_method("on_update_after_submit")


		self.clear_cache()
		self.notify_update()

		update_global_search(self)

		if getattr(self.meta, 'track_changes', False) and not self.flags.ignore_version \
			and not self.doctype == 'Version' and not frappe.flags.in_install:
			self.save_version()

		self.run_method('on_change')

		if (self.doctype, self.name) in frappe.flags.currently_saving:
			frappe.flags.currently_saving.remove((self.doctype, self.name))

		# make event update log for doctypes having event consumers
		if not frappe.flags.in_install and not frappe.flags.in_migrate and check_doctype_has_consumers(self.doctype):
			if self.flags.update_log_for_doc_creation:
				make_event_update_log(self, update_type='Create')
				self.flags.update_log_for_doc_creation = False
			else:
				from frappe.event_streaming.doctype.event_update_log.event_update_log import get_update
				diff = get_update(doc_before_save, self)
				if diff:
					doc = self
					doc.diff = diff
					make_event_update_log(doc, update_type='Update')

		self.latest = None
示例#4
0
    def run_post_save_methods(self):
        """Run standard methods after `INSERT` or `UPDATE`. Standard Methods are:

		- `on_update` for **Save**.
		- `on_update`, `on_submit` for **Submit**.
		- `on_cancel` for **Cancel**
		- `update_after_submit` for **Update after Submit**"""
        if self._action == "save":
            self.run_method("on_update")
        elif self._action == "submit":
            self.run_method("on_update")
            self.run_method("on_submit")
        elif self._action == "cancel":
            self.run_method("on_cancel")
            self.check_no_back_links_exist()
        elif self._action == "update_after_submit":
            self.run_method("on_update_after_submit")

        self.run_method('on_change')

        self.update_timeline_doc()
        self.clear_cache()
        self.notify_update()

        try:
            frappe.enqueue('frappe.utils.global_search.update_global_search',
                           now=frappe.flags.in_test or frappe.flags.in_install
                           or frappe.flags.in_migrate,
                           doc=self)
        except redis.exceptions.ConnectionError:
            update_global_search(self)

        if self._doc_before_save and not self.flags.ignore_version:
            self.save_version()

        if (self.doctype, self.name) in frappe.flags.currently_saving:
            frappe.flags.currently_saving.remove((self.doctype, self.name))

        self.latest = None
示例#5
0
	def update(self, dn, tl):
		"""updates the _user_tag column in the table"""

		if not tl:
			tags = ''
		else:
			tl = list(set(filter(lambda x: x, tl)))
			tags = ',' + ','.join(tl)
		try:
			frappe.db.sql("update `tab%s` set _user_tags=%s where name=%s" % \
				(self.dt,'%s','%s'), (tags , dn))
			doc= frappe.get_doc(self.dt, dn)
			update_global_search(doc)
		except Exception as e:
			if frappe.db.is_column_missing(e):
				if not tags:
					# no tags, nothing to do
					return

				self.setup()
				self.update(dn, tl)
			else: raise
示例#6
0
文件: tags.py 项目: ESS-LLP/frappe
	def update(self, dn, tl):
		"""updates the _user_tag column in the table"""

		if not tl:
			tags = ''
		else:
			tl = list(set(filter(lambda x: x, tl)))
			tags = ',' + ','.join(tl)
		try:
			frappe.db.sql("update `tab%s` set _user_tags=%s where name=%s" % \
				(self.dt,'%s','%s'), (tags , dn))
			doc= frappe.get_doc(self.dt, dn)
			update_global_search(doc)
		except Exception as e:
			if e.args[0]==1054:
				if not tags:
					# no tags, nothing to do
					return

				self.setup()
				self.update(dn, tl)
			else: raise
示例#7
0
def make_or_update_lead(parsed_response, frm_dt_txt, to_dt_txt, lst_exe_dt,
                        last_link):
    em_time_limit = "It is advised to hit this API once in every 15 minutes,but it seems that you have crossed " \
                    "this limit. please try again after 15 minutes."
    em_no_lead = "There are no leads in the given time duration.please try for a different duration."
    error_message = parsed_response[0].get('Error_Message', "NO ERROR")

    if len(error_message) == len(em_time_limit):
        print('Time Limit Reached')
        exit()
    elif len(error_message) == len(em_no_lead):
        # Change the From Date and To Date and Execution Date and Lead Count so to run in future
        update_db(frm_dt_txt, to_dt_txt, lst_exe_dt, last_link)
        print('No Lead in Time Period')
        exit()
    elif error_message == "NO ERROR":
        print(error_message)

    total_leads = parsed_response[0].get('TOTAL_COUNT')
    for lead in parsed_response:
        lead_list = search_existing(search_m=lead.get('MOB', 'NO MOBILE'), search_e= \
            lead.get('SENDEREMAIL', 'NO EMAIL'), country=lead.get('COUNTRY_ISO'))
        if lead_list:
            for lead_name in lead_list:
                frappe.db.set_value("Lead", lead_name, "source", "Campaign")
                frappe.db.set_value("Lead", lead_name, "campaign_name",
                                    "India Mart")
                recd_time = datetime.strptime(lead.get('DATE_TIME_RE'),
                                              '%d-%b-%Y %I:%M:%S %p')
                frappe.db.set_value("Lead", lead_name, "creation", recd_time)
                print("Updated Lead {}".format(str(lead_name)))
        else:
            if lead.get('MOB') is None and lead.get('SENDEREMAIL') is None:
                print('No Lead Created for Query ID' + lead.get("QUERY_ID"))
            else:
                print("Creating New Lead")
                ld = frappe.new_doc("Lead")
                ld.email_id = lead.get('SENDEREMAIL', 'IM-Email')
                print(lead.get('QUERY_ID'))
                if lead.get('GLUSR_USR_COMPANYNAME') is None or (str(
                        lead.get('GLUSR_USR_COMPANYNAME'))).replace(" ",
                                                                    "") == "":
                    ld.company_name = 'IM-Company'
                else:
                    ld.company_name = lead.get('GLUSR_USR_COMPANYNAME')
                ld.lead_name = lead.get('SENDERNAME')
                ld.mobile_no = lead.get('MOB', '1234')
                if lead.get('COUNTRY_ISO') == 'IN':
                    ld.territory = 'India'
                else:
                    ld.territory = 'Exports'
                ld.source = 'Campaign'
                ld.campaign_name = 'India Mart'
                ld.requirement = 100
                ld.creation = datetime.strptime(lead.get('DATE_TIME_RE'),
                                                '%d-%b-%Y %I:%M:%S %p')
                ld.remark = str(lead.get('SUBJECT')) + " " + str(
                    lead.get('ENQ_MESSAGE'))
                ld.save()
                print("Created New Lead# " + ld.name)
                frappe.db.commit()
                lead_doc = frappe.get_doc("Lead", ld.name)
                update_global_search(lead_doc)