def make_pdf(fileName, content, pformat, report_name, reqId=None, merge_all=True, pages=None, email=False): if pformat == "html": filepath = getHtmlFilepath(report_name, fileName) g = "jasper_erpnext_report/reports/" + frappe.local.site path = os.path.normpath(os.path.relpath(filepath, g)) url = "%s?jasper_doc_path=%s" % ("Jasper Reports", path) fileName = fileName[fileName.rfind(os.sep) + 1:] file_name = fileName.replace(" ", "-").replace("/", "-") jasper_run_method("jasper_after_get_report", file_name, content, url, filepath) if not email: return url return url, filepath jsr = jasper_session_obj or Jr.JasperRoot() file_name, output = jsr.make_pdf(fileName, content, pformat, merge_all, pages) if pformat == "pdf": filepath = get_email_pdf_path(report_name, reqId) path = getPdfFilePath(file_name, filepath) url = "%s?jasper_doc_path=%s" % ("Jasper Reports", path) jasper_run_method("jasper_after_get_report", file_name, output.getvalue(), url, filepath) if not email: file_path = os.path.join(filepath, file_name) jasper_save_email(file_path, output.getvalue()) return url return file_name, filepath, output, url jasper_run_method("jasper_after_get_report", file_name, output.getvalue(), None, None) if not email: jsr.prepare_file_to_client(file_name, output.getvalue()) return return file_name, output
def make_pdf(fileName, content, pformat, report_name, reqId=None, merge_all=True, pages=None, email=False): if pformat == "html": filepath = getHtmlFilepath(report_name, fileName) g = "jasper_erpnext_report/reports/" + frappe.local.site path = os.path.normpath(os.path.relpath(filepath, g)) url = "%s?jasper_doc_path=%s" % ("Jasper Reports", path) fileName = fileName[fileName.rfind(os.sep) + 1:] file_name = fileName.replace(" ", "-").replace("/", "-") jasper_run_method("jasper_after_get_report", file_name, content, url, filepath) if not email: return url return url, filepath jsr = jasper_session_obj or Jr.JasperRoot() file_name, output = jsr.make_pdf(fileName, content, pformat, merge_all, pages) if pformat == "pdf": filepath = get_email_pdf_path(report_name, reqId) path = getPdfFilePath(file_name, filepath) url = "%s?jasper_doc_path=%s" % ("Jasper Reports", path) jasper_run_method("jasper_after_get_report", file_name, output.getvalue(), url, filepath) if not email: file_path = os.path.join(filepath, file_name) jasper_save_email(file_path, output.getvalue()) return url return file_name, filepath, output, url jasper_run_method("jasper_after_get_report", file_name, output.getvalue(), None, None) if not email: jsr.prepare_file_to_client(file_name, output.getvalue()) return return file_name, output
def clear_all_jasper_reports(force=True): deleted = force compiled_removed = 0 emailed_removed = 0 #to every intern_reqid is one local_report_ or from server?(to check) tabReqids = frappe.db.sql("select * from tabJasperReqids where reqid like 'intern_reqid_%'", as_dict=True) import ast from jasper_erpnext_report.utils.jasper_email import get_email_pdf_path for m in tabReqids: d = m.get('data') req = ast.literal_eval(d) reqId = req.get("reqids")[0][0] data = jaspersession_get_value(reqId) if not force: deleted = _f(data) if deleted: if "local_report_" not in reqId: continue intern_reqid = m.get("reqid") try: if not data: d = frappe.db.sql("select * from tabJasperReqids where reqid='{0}'".format(reqId), as_dict=True) data = ast.literal_eval(d[0]['data']) file_path = data.get('result').get("uri").rsplit("/",1) compiled_path = file_path[0] remove_directory(compiled_path) compiled_removed += 1 #if this report was not sent by email then remove it from assets/jasper_erpnext_report/reports/ urlemails = frappe.db.sql("""select count(*) from `tabJasper Email Report` where jasper_report_path like '%{0}%'""".format(intern_reqid)) if urlemails[0][0] == 0: report_name = data.get("report_name").get("data").get("report_name") site = req.get("site") path = get_email_pdf_path(report_name, intern_reqid, site) remove_directory(path) emailed_removed += 1 except: print _("Path does not exist!") frappe.cache().delete_value("jasper:" + reqId) frappe.cache().delete_value("jasper:" + intern_reqid) frappe.db.sql("""delete from tabJasperReqids where reqid in ('%s', '%s')"""%(reqId, intern_reqid)) frappe.db.commit() if compiled_removed > 0: print _("Was removed {0} file(s) from compiled path and {1} file(s) from reports path (emailed only).".format(compiled_removed, emailed_removed)) else: #print _("No file was removed.") print "No file was removed."
def clear_all_jasper_reports(force=True): deleted = force compiled_removed = 0 emailed_removed = 0 #to every intern_reqid is one local_report_ or from server?(to check) tabReqids = frappe.db.sql( "select * from tabJasperReqids where reqid like 'intern_reqid_%'", as_dict=True) import ast from jasper_erpnext_report.utils.jasper_email import get_email_pdf_path for m in tabReqids: d = m.get('data') req = ast.literal_eval(d) reqId = req.get("reqids")[0][0] data = jaspersession_get_value(reqId) if not force: deleted = _f(data) if deleted: if "local_report_" not in reqId: continue intern_reqid = m.get("reqid") try: if not data: d = frappe.db.sql( "select * from tabJasperReqids where reqid='{0}'". format(reqId), as_dict=True) data = ast.literal_eval(d[0]['data']) file_path = data.get('result').get("uri").rsplit("/", 1) compiled_path = file_path[0] remove_directory(compiled_path) compiled_removed += 1 #if this report was not sent by email then remove it from assets/jasper_erpnext_report/reports/ urlemails = frappe.db.sql( """select count(*) from `tabJasper Email Report` where jasper_report_path like '%{0}%'""" .format(intern_reqid)) if urlemails[0][0] == 0: report_name = data.get("report_name").get("data").get( "report_name") site = req.get("site") path = get_email_pdf_path(report_name, intern_reqid, site) remove_directory(path) emailed_removed += 1 except: print _("Path does not exist!") frappe.cache().delete_value("jasper:" + reqId) frappe.cache().delete_value("jasper:" + intern_reqid) frappe.db.sql( """delete from tabJasperReqids where reqid in ('%s', '%s')""" % (reqId, intern_reqid)) frappe.db.commit() if compiled_removed > 0: print _( "Was removed {0} file(s) from compiled path and {1} file(s) from reports path (emailed only)." .format(compiled_removed, emailed_removed)) else: #print _("No file was removed.") print "No file was removed."