diff --git a/org.adempiere.base/src/org/compiere/tools/FileUtil.java b/org.adempiere.base/src/org/compiere/tools/FileUtil.java index 0d06f2a055..20f49d3ee3 100644 --- a/org.adempiere.base/src/org/compiere/tools/FileUtil.java +++ b/org.adempiere.base/src/org/compiere/tools/FileUtil.java @@ -23,6 +23,8 @@ import java.io.FileReader; import java.io.FileWriter; import java.io.FilenameFilter; import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Calendar; import org.compiere.util.Util; @@ -418,4 +420,15 @@ public class FileUtil new FileUtil(directory, filter, action, from, to); } // main + public static String getTempMailName(String subject, String extension) { + Calendar cal = Calendar.getInstance(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); + String dt = sdf.format(cal.getTime()); + String cleanName = subject.replaceAll("[ &/]", ""); + String localFile = System.getProperty("java.io.tmpdir") + + System.getProperty("file.separator") + cleanName + "_" + dt + + extension; + return localFile; + } + } // FileUtil diff --git a/org.adempiere.report.jasper.swing/src/org/compiere/report/JasperReportViewer.java b/org.adempiere.report.jasper.swing/src/org/compiere/report/JasperReportViewer.java index 587692ec25..b1163107c3 100644 --- a/org.adempiere.report.jasper.swing/src/org/compiere/report/JasperReportViewer.java +++ b/org.adempiere.report.jasper.swing/src/org/compiere/report/JasperReportViewer.java @@ -24,6 +24,7 @@ import net.sf.jasperreports.view.JRViewer; import org.compiere.apps.EMailDialog; import org.compiere.model.MUser; +import org.compiere.tools.FileUtil; import org.compiere.util.CLogger; import org.compiere.util.Env; import org.compiere.util.Msg; @@ -136,7 +137,7 @@ class SendByEmailListener implements ActionListener { try { - attachment = File.createTempFile("mail", ".pdf"); + attachment = new File(FileUtil.getTempMailName(subject, ".pdf")); JasperExportManager.exportReportToPdfFile(viewer.getJasperPrint(), attachment.getAbsolutePath()); } catch (Exception e) diff --git a/org.adempiere.ui.swing/src/org/compiere/print/Viewer.java b/org.adempiere.ui.swing/src/org/compiere/print/Viewer.java index 6f2aeac6bd..09edc4e2df 100644 --- a/org.adempiere.ui.swing/src/org/compiere/print/Viewer.java +++ b/org.adempiere.ui.swing/src/org/compiere/print/Viewer.java @@ -18,6 +18,8 @@ *****************************************************************************/ package org.compiere.print; +import static org.compiere.model.SystemIDs.WINDOW_PRINTFORMAT; + import java.awt.BorderLayout; import java.awt.Component; import java.awt.Cursor; @@ -39,6 +41,7 @@ import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; +import java.util.Calendar; import java.util.Properties; import java.util.logging.Level; @@ -80,7 +83,6 @@ import org.compiere.model.MQuery; import org.compiere.model.MRole; import org.compiere.model.MUser; import org.compiere.model.PrintInfo; -import static org.compiere.model.SystemIDs.*; import org.compiere.model.X_C_Invoice; import org.compiere.swing.CButton; import org.compiere.swing.CCheckBox; @@ -89,6 +91,7 @@ import org.compiere.swing.CFrame; import org.compiere.swing.CLabel; import org.compiere.swing.CMenuItem; import org.compiere.swing.CPanel; +import org.compiere.tools.FileUtil; import org.compiere.util.CLogMgt; import org.compiere.util.CLogger; import org.compiere.util.DB; @@ -99,6 +102,7 @@ import org.compiere.util.Language; import org.compiere.util.Login; import org.compiere.util.Msg; import org.compiere.util.NamePair; +import org.compiere.util.TimeUtil; import org.compiere.util.ValueNamePair; /** @@ -911,7 +915,7 @@ public class Viewer extends CFrame try { - attachment = File.createTempFile("mail", ".pdf"); + attachment = new File(FileUtil.getTempMailName(subject, ".pdf")); m_reportEngine.getPDF(attachment); } catch (Exception e) diff --git a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/ZkReportViewer.java b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/ZkReportViewer.java index f8b33d51e9..70f85d98ce 100644 --- a/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/ZkReportViewer.java +++ b/org.adempiere.ui.zk/WEB-INF/src/org/adempiere/webui/window/ZkReportViewer.java @@ -16,6 +16,8 @@ *****************************************************************************/ package org.adempiere.webui.window; +import static org.compiere.model.SystemIDs.WINDOW_PRINTFORMAT; + import java.io.ByteArrayOutputStream; import java.io.File; import java.io.StringWriter; @@ -57,10 +59,10 @@ import org.compiere.model.MRole; import org.compiere.model.MSysConfig; import org.compiere.model.MTable; import org.compiere.model.MUser; -import static org.compiere.model.SystemIDs.*; import org.compiere.print.ArchiveEngine; import org.compiere.print.MPrintFormat; import org.compiere.print.ReportEngine; +import org.compiere.tools.FileUtil; import org.compiere.util.CLogger; import org.compiere.util.DB; import org.compiere.util.Env; @@ -723,7 +725,7 @@ public class ZkReportViewer extends Window implements EventListener, ITab try { - attachment = File.createTempFile("mail", ".pdf"); + attachment = new File(FileUtil.getTempMailName(subject, ".pdf")); m_reportEngine.getPDF(attachment); } catch (Exception e)