def on_trash(self):
		if frappe.local.session['user'] == "Administrator":
			file_path = self.jasper_report_path
			if os.path.exists(file_path):
				root_path = file_path.rsplit("/",1)
				remove_directory(root_path[0])
			return True
		raise frappe.PermissionError(_("You are not allowed to remove this document."))
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 on_trash(self):
     if frappe.local.session['user'] == "Administrator":
         file_path = self.jasper_report_path
         if os.path.exists(file_path):
             root_path = file_path.rsplit("/", 1)
             remove_directory(root_path[0])
         return True
     raise frappe.PermissionError(
         _("You are not allowed to remove this document."))
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."