def on_update(self, method=None): #if we are importing docs from jasperserver if not frappe.flags.in_import: r_filters=["`tabJasper Reports`.jasper_doctype is NULL", "`tabJasper Reports`.report is NULL"] jr = JasperRoot() data = jr._get_reports_list(filters_report=r_filters) #report_list_dirt_doc is not called from here cached = redis_transation(data, "report_list_all") if cached and data: jaspersession_set_value("report_list_dirt_all", False) jaspersession_set_value("report_list_dirt_doc", True) elif data: #redis not cache jaspersession_set_value("report_list_dirt_doc", True) jaspersession_set_value("report_list_dirt_all", True) if check_root_exists(self.doctype, self.name): return #if jrxml file was removed then remove all associated images and params if self.jasper_report_origin.lower() == "localserver": frappe.db.sql("""delete from `tab%s` where %s=%s """ % ("Jasper Parameter", "parent", '%s'),(self.name), auto_commit=1) self.query = ""
def on_update(self, method=None): #if we are importing docs from jasperserver if not frappe.flags.in_import: r_filters = [ "`tabJasper Reports`.jasper_doctype is NULL", "`tabJasper Reports`.report is NULL" ] jr = JasperRoot() data = jr._get_reports_list(filters_report=r_filters) #report_list_dirt_doc is not called from here cached = redis_transation(data, "report_list_all") if cached and data: jaspersession_set_value("report_list_dirt_all", False) jaspersession_set_value("report_list_dirt_doc", True) elif data: #redis not cache jaspersession_set_value("report_list_dirt_doc", True) jaspersession_set_value("report_list_dirt_all", True) if check_root_exists(self.doctype, self.name): return #if jrxml file was removed then remove all associated images and params if self.jasper_report_origin.lower() == "localserver": frappe.db.sql("""delete from `tab%s` where %s=%s """ % ("Jasper Parameter", "parent", '%s'), (self.name), auto_commit=1) self.query = ""
def before_save(self, method=None): self.jasper_doctype = None if not frappe.utils.strip(self.jasper_doctype) else self.jasper_doctype self.report = None if not frappe.utils.strip(self.report) else self.report if not self.jasper_param_message: try: self.jasper_param_message = frappe.db.get_values_from_single(["jasper_param_message"], None, "JasperServerConfig")[0][0].format(report=self.jasper_report_name, user=frappe.local.session['user']) except: self.jasper_param_message = "" #check if Jasper is configurated use_jasper_server = frappe.db.get_values_from_single(["use_jasper_server"], None, "JasperServerConfig")[0][0] if use_jasper_server == "None": frappe.throw(_("You need to configure Jasper first.")) return if check_root_exists(self.doctype, self.name): rootquery = '' self.query = '' jrxml_path = _get_jrxml_root_path(self) xmldoc = JasperXmlReport(jrxml_path) xmlname = check_if_xPath_exists(xmldoc) if xmlname and not check_for_report_xPath(xmldoc, xmlname, self): frappe.throw(_("Import %s for report %s first." % (xmlname + ".xml",self.jasper_report_name))) subreportquerys = getSubReportsQuery(xmldoc, self) subquery = '' for subreportquery in subreportquerys: subquery = subquery + subreportquery.get("name") + ":\n" + subreportquery.get("query") + "\n" if xmldoc.queryString or subquery: self.query = xmldoc.name + ":\n" + xmldoc.queryString + "\n" + subquery #give feedback to the user shown related params params = xmldoc.get_params_from_xml() #get total number of parameters to concatenate with name of parameter is_copy = "Other" action_type = "Ask" for param in params: pname = param.xpath('./@name') pclass = param.xpath('./@class') ptype = pclass[0].split(".") c = len(ptype) - 1 if check_param_exists(self, pname[0]): break if check_queryString_param(xmldoc.queryString, pname[0]): is_copy = "Is for where clause" action_type = "Automatic" #param_type = param_type_java_conversion.get(ptype[c]) self.append("jasper_parameters", {"__islocal": True, "jasper_param_name":pname[0], "jasper_param_type": ptype[c],#.lower().capitalize() "jasper_param_action": action_type, "param_expression":"In", "is_copy":is_copy, "name": self.name + "_" + pname[0]}) self.query = rootquery + self.query return #if jrxml file was removed then prepare to remove all associated images and params given feedback to the user if self.jasper_report_origin.lower() == "localserver": self.jasper_parameters = [] return
def before_save(self, method=None): self.jasper_doctype = None if not frappe.utils.strip( self.jasper_doctype) else self.jasper_doctype self.report = None if not frappe.utils.strip( self.report) else self.report if not self.jasper_param_message: self.jasper_param_message = frappe.db.get_values_from_single( ["jasper_param_message"], None, "JasperServerConfig")[0][0].format( report=self.jasper_report_name, user=frappe.local.session['user']) #check if Jasper is configurated use_jasper_server = frappe.db.get_values_from_single( ["use_jasper_server"], None, "JasperServerConfig")[0][0] if use_jasper_server == "None": frappe.throw(_("You need to configure Jasper first.")) return if check_root_exists(self.doctype, self.name): rootquery = '' self.query = '' jrxml_path = _get_jrxml_root_path(self) xmldoc = JasperXmlReport(jrxml_path) xmlname = check_if_xPath_exists(xmldoc) if xmlname and not check_for_report_xPath(xmldoc, xmlname, self): frappe.throw( _("Import %s for report %s first." % (xmlname + ".xml", self.jasper_report_name))) subreportquerys = getSubReportsQuery(xmldoc, self) subquery = '' for subreportquery in subreportquerys: subquery = subquery + subreportquery.get( "name") + ":\n" + subreportquery.get("query") + "\n" if xmldoc.queryString or subquery: self.query = xmldoc.name + ":\n" + xmldoc.queryString + "\n" + subquery #give feedback to the user shown related params params = xmldoc.get_params_from_xml() #get total number of parameters to concatenate with name of parameter is_copy = "Other" action_type = "Ask" for param in params: pname = param.xpath('./@name') pclass = param.xpath('./@class') ptype = pclass[0].split(".") c = len(ptype) - 1 if check_param_exists(self, pname[0]): break if check_queryString_param(xmldoc.queryString, pname[0]): is_copy = "Is for where clause" action_type = "Automatic" #param_type = param_type_java_conversion.get(ptype[c]) self.append( "jasper_parameters", { "__islocal": True, "jasper_param_name": pname[0], "jasper_param_type": ptype[c], #.lower().capitalize() "jasper_param_action": action_type, "param_expression": "In", "is_copy": is_copy, "name": self.name + "_" + pname[0] }) self.query = rootquery + self.query return #if jrxml file was removed then prepare to remove all associated images and params given feedback to the user if self.jasper_report_origin.lower() == "localserver": self.jasper_parameters = [] return