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
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
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
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
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
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
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)