FR [ 2453882 ] Alert Processor : attached file name improvement

https://sourceforge.net/tracker/?func=detail&atid=879335&aid=2453882&group_id=176962

minor improvement: at the end of the message i am adding date when the report was generated.

Please help me with a review ;)
This commit is contained in:
teo_sarca 2009-01-16 07:58:38 +00:00
parent e65fadc597
commit fc91b00ffb
2 changed files with 55 additions and 3 deletions

View File

@ -16,10 +16,16 @@
*****************************************************************************/ *****************************************************************************/
package org.compiere.model; package org.compiere.model;
import java.io.File;
import java.io.IOException;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Properties; import java.util.Properties;
import org.adempiere.exceptions.AdempiereException;
import org.compiere.util.DB; import org.compiere.util.DB;
import org.compiere.util.Util;
/** /**
@ -30,6 +36,8 @@ import org.compiere.util.DB;
*/ */
public class MAlertRule extends X_AD_AlertRule public class MAlertRule extends X_AD_AlertRule
{ {
private static final long serialVersionUID = -1267260460210893262L;
/** /**
* Standatd Constructor * Standatd Constructor
* @param ctx context * @param ctx context
@ -120,6 +128,42 @@ public class MAlertRule extends X_AD_AlertRule
return finalSQL; return finalSQL;
} // getSql } // getSql
/**
* Create Report File
* @param extension file extension
* @return newly created File
*/
public File createReportFile(String extension)
{
if (Util.isEmpty(extension))
{
throw new IllegalArgumentException("Parameter extension cannot be empty");
}
String name = new SimpleDateFormat("yyyyMMddhhmm").format(new Timestamp(System.currentTimeMillis()))
+"_"+Util.stripDiacritics(getName().trim());
File file = null;
try
{
file = new File(name+"."+extension);
file.createNewFile();
return file;
}
catch (Exception e)
{
file = null;
}
// Fallback
String filePrefix = "Alert_"; // TODO: add AD_AlertRule.FileName (maybe)
try
{
file = File.createTempFile(filePrefix, "."+extension);
}
catch (IOException e)
{
throw new AdempiereException(e);
}
return file;
}
/** /**
* Before Save * Before Save

View File

@ -21,6 +21,7 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.ResultSetMetaData; import java.sql.ResultSetMetaData;
import java.sql.Timestamp; import java.sql.Timestamp;
import java.text.DateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.logging.Level; import java.util.logging.Level;
@ -36,13 +37,13 @@ import org.compiere.model.MSysConfig;
import org.compiere.model.MUser; import org.compiere.model.MUser;
import org.compiere.util.CLogger; import org.compiere.util.CLogger;
import org.compiere.util.DB; import org.compiere.util.DB;
import org.compiere.util.DisplayType;
import org.compiere.util.Env; import org.compiere.util.Env;
import org.compiere.util.Msg; import org.compiere.util.Msg;
import org.compiere.util.TimeUtil; import org.compiere.util.TimeUtil;
import org.compiere.util.Trx; import org.compiere.util.Trx;
import org.compiere.util.ValueNamePair; import org.compiere.util.ValueNamePair;
/** /**
* Alert Processor * Alert Processor
* *
@ -51,6 +52,7 @@ import org.compiere.util.ValueNamePair;
* *
* @author Teo Sarca, SC ARHIPAC SERVICE SRL * @author Teo Sarca, SC ARHIPAC SERVICE SRL
* <li>FR [ 1894573 ] Alert Processor Improvements * <li>FR [ 1894573 ] Alert Processor Improvements
* <li>FR [ 2453882 ] Alert Processor : attached file name improvement
*/ */
public class AlertProcessor extends AdempiereServer public class AlertProcessor extends AdempiereServer
{ {
@ -223,6 +225,13 @@ public class AlertProcessor extends AdempiereServer
return true; return true;
} }
//
// Report footer - Date Generated
DateFormat df = DisplayType.getDateFormat(DisplayType.DateTime);
message.append("\n\n");
message.append(Msg.translate(getCtx(), "Date")).append(" : ")
.append(df.format(new Timestamp(System.currentTimeMillis())));
Collection<Integer> users = alert.getRecipientUsers(); Collection<Integer> users = alert.getRecipientUsers();
int countMail = notifyUsers(users, alert.getAlertSubject(), message.toString(), attachments); int countMail = notifyUsers(users, alert.getAlertSubject(), message.toString(), attachments);
@ -389,8 +398,7 @@ public class AlertProcessor extends AdempiereServer
if (data.size() <= 1) if (data.size() <= 1)
return null; return null;
// File // File
String filePrefix = "Alert_"; // TODO: add AD_AlertRule.FileName (maybe) File file = rule.createReportFile("xls");
File file = File.createTempFile(filePrefix, ".xls");
// //
ArrayExcelExporter exporter = new ArrayExcelExporter(getCtx(), data); ArrayExcelExporter exporter = new ArrayExcelExporter(getCtx(), data);
exporter.export(file, null, false); exporter.export(file, null, false);