use of org.adempiere.webui.component.Window in project adempiere by adempiere.
the class WDeleteSelection method initComponents.
/**
* Init components
*/
private void initComponents() {
container = new Window();
container.setTitle(Msg.getMsg(Env.getCtx(), "DeleteSelection"));
container.setAttribute("modal", Boolean.TRUE);
container.setWidth("500px");
container.setHeight("400px");
container.setBorder("normal");
container.setSizable(true);
container.setClosable(true);
container.setMaximizable(true);
// Init list
listbox = new Listbox();
// FR [ 2877111 ]
Vector<String> data = getData();
for (int i = 0; i < data.size(); i++) {
String record = data.get(i);
listbox.appendItem(record, record);
}
// Is a multiple selection
listbox.setMultiple(true);
// Instance Panel
confirmPanel = new ConfirmPanel(true);
//
Div div = new Div();
div.setStyle("width: 100%; height: 100%");
Pre pre = new Pre();
Text text = new Text(Msg.getMsg(Env.getCtx(), "DeleteSelectionDescription"));
text.setParent(pre);
pre.setParent(div);
//
Borderlayout layout = new Borderlayout();
layout.setParent(container);
layout.setWidth("100%");
layout.setHeight("100%");
North north = new North();
north.setParent(layout);
north.appendChild(div);
Center center = new Center();
center.setParent(layout);
center.setFlex(true);
center.appendChild(listbox);
listbox.setWidth("100%");
listbox.setVflex(true);
//
South south = new South();
south.setParent(layout);
south.appendChild(confirmPanel);
// Add Listener
confirmPanel.addActionListener(Events.ON_CLICK, this);
// Default Selected
if (isDefaultSelected() && getSelection() != null) {
listbox.setSelectedIndices(getSelection());
}
}
use of org.adempiere.webui.component.Window in project adempiere by adempiere.
the class ZkJRViewerProvider method openViewer.
public void openViewer(JasperPrint jasperPrint, String title) throws JRException {
Window viewer = new ZkJRViewer(jasperPrint, title);
viewer.setAttribute(Window.MODE_KEY, Window.MODE_EMBEDDED);
viewer.setAttribute(Window.INSERT_POSITION_KEY, Window.INSERT_NEXT);
SessionManager.getAppDesktop().showWindow(viewer);
}
use of org.adempiere.webui.component.Window in project adempiere by adempiere.
the class ZkReportViewer method cmd_export.
// cmd_archive
/**
* Export
*/
private void cmd_export() {
log.config("");
if (!m_isCanExport) {
FDialog.error(m_WindowNo, this, "AccessCannotExport", getTitle());
return;
}
if (winExportFile == null) {
winExportFile = new Window();
winExportFile.setTitle(Msg.getMsg(Env.getCtx(), "Export") + ": " + getTitle());
winExportFile.setWidth("450px");
winExportFile.setClosable(true);
winExportFile.setBorder("normal");
winExportFile.setStyle("position:absolute");
cboType.setMold("select");
cboType.getItems().clear();
cboType.appendItem("ps" + " - " + Msg.getMsg(Env.getCtx(), "FilePS"), "ps");
cboType.appendItem("xml" + " - " + Msg.getMsg(Env.getCtx(), "FileXML"), "xml");
ListItem li = cboType.appendItem("pdf" + " - " + Msg.getMsg(Env.getCtx(), "FilePDF"), "pdf");
cboType.appendItem("html" + " - " + Msg.getMsg(Env.getCtx(), "FileHTML"), "html");
cboType.appendItem("txt" + " - " + Msg.getMsg(Env.getCtx(), "FileTXT"), "txt");
cboType.appendItem("ssv" + " - " + Msg.getMsg(Env.getCtx(), "FileSSV"), "ssv");
cboType.appendItem("csv" + " - " + Msg.getMsg(Env.getCtx(), "FileCSV"), "csv");
cboType.appendItem("xls" + " - " + Msg.getMsg(Env.getCtx(), "FileXLS"), "xls");
cboType.setSelectedItem(li);
Hbox hb = new Hbox();
Div div = new Div();
div.setAlign("right");
div.appendChild(new Label(Msg.getMsg(Env.getCtx(), "FilesOfType")));
hb.appendChild(div);
hb.appendChild(cboType);
cboType.setWidth("100%");
Vbox vb = new Vbox();
vb.setWidth("390px");
winExportFile.appendChild(vb);
vb.appendChild(hb);
vb.appendChild(confirmPanel);
confirmPanel.addActionListener(this);
}
AEnv.showCenterScreen(winExportFile);
}
use of org.adempiere.webui.component.Window in project adempiere by adempiere.
the class FindWindow method initPanel.
// initAdvanced
/**
* initialise Main Window
*
**/
private void initPanel() {
winMain = new MultiTabPart();
winMain.createPart(this);
winMain.getComponent().setStyle("height: 100%; width: 100%; position: relative;");
winAdvanced = new Window();
winLookupRecord = new Window();
Tabpanel tabPanel = new Tabpanel();
tabPanel.setStyle("height: 100%; width: 100%");
tabPanel.appendChild(winLookupRecord);
winMain.addTab(tabPanel, Msg.getMsg(Env.getCtx(), "Find").replaceAll("&", ""), false, true);
tabPanel = new Tabpanel();
tabPanel.setStyle("height: 100%; width: 100%");
tabPanel.appendChild(winAdvanced);
winMain.addTab(tabPanel, Msg.getMsg(Env.getCtx(), "Advanced").replaceAll("&", ""), false, false);
m_sTipText = "<".concat(Msg.getMsg(Env.getCtx(), "SelectOrEnterQueryName")).concat(">");
m_sToolTipText = Msg.getMsg(Env.getCtx(), "SelectOrEnterQueryNameToolTip");
try {
initSimple();
initAdvanced();
} catch (Exception e) {
log.warning("Init failed " + e.getLocalizedMessage());
}
}
use of org.adempiere.webui.component.Window in project adempiere by adempiere.
the class InvoicePrint method doIt.
// prepare
/**
* Perrform process.
* @return Message
* @throws Exception
*/
protected String doIt() throws java.lang.Exception {
// Need to have Template
if (p_EMailPDF && p_R_MailText_ID == 0)
throw new AdempiereUserError("@NotFound@: @R_MailText_ID@");
log.info("C_BPartner_ID=" + m_C_BPartner_ID + ", C_Invoice_ID=" + m_C_Invoice_ID + ", EmailPDF=" + p_EMailPDF + ",R_MailText_ID=" + p_R_MailText_ID + ", DateInvoiced=" + m_dateInvoiced_From + "-" + m_dateInvoiced_To + ", DocumentNo=" + m_DocumentNo_From + "-" + m_DocumentNo_To);
MMailText mText = null;
if (p_R_MailText_ID != 0) {
mText = new MMailText(getCtx(), p_R_MailText_ID, get_TrxName());
if (mText.get_ID() != p_R_MailText_ID)
throw new AdempiereUserError("@NotFound@: @R_MailText_ID@ - " + p_R_MailText_ID);
}
// Too broad selection
if (m_C_BPartner_ID == 0 && m_C_Invoice_ID == 0 && m_dateInvoiced_From == null && m_dateInvoiced_To == null && m_DocumentNo_From == null && m_DocumentNo_To == null)
throw new AdempiereUserError("@RestrictSelection@");
MClient client = MClient.get(getCtx());
// Get Info
StringBuffer sql = new StringBuffer(// 1..3
"SELECT i.C_Invoice_ID,bp.AD_Language,c.IsMultiLingualDocument," + // Prio: 1. BPartner 2. DocType, 3. PrintFormat (Org) // see ReportCtl+MInvoice
" COALESCE(bp.Invoice_PrintFormat_ID, dt.AD_PrintFormat_ID, pf.Invoice_PrintFormat_ID)," + // 4
" dt.DocumentCopies+bp.DocumentCopies," + // 5
" bpc.AD_User_ID, i.DocumentNo," + // 6..7
" bp.C_BPartner_ID " + // 8
"FROM C_Invoice i" + " INNER JOIN C_BPartner bp ON (i.C_BPartner_ID=bp.C_BPartner_ID)" + " LEFT OUTER JOIN AD_User bpc ON (i.AD_User_ID=bpc.AD_User_ID)" + " INNER JOIN AD_Client c ON (i.AD_Client_ID=c.AD_Client_ID)" + " INNER JOIN AD_PrintForm pf ON (i.AD_Client_ID=pf.AD_Client_ID)" + " INNER JOIN C_DocType dt ON (i.C_DocType_ID=dt.C_DocType_ID)" + " WHERE i.AD_Client_ID=? AND i.AD_Org_ID=? AND i.isSOTrx='Y' AND " + // more them 1 PF
" pf.AD_Org_ID IN (0,i.AD_Org_ID) AND ");
boolean needAnd = false;
if (m_C_Invoice_ID != 0)
sql.append("i.C_Invoice_ID=").append(m_C_Invoice_ID);
else {
if (m_C_BPartner_ID != 0) {
sql.append("i.C_BPartner_ID=").append(m_C_BPartner_ID);
needAnd = true;
}
if (m_dateInvoiced_From != null && m_dateInvoiced_To != null) {
if (needAnd)
sql.append(" AND ");
sql.append("TRUNC(i.DateInvoiced, 'DD') BETWEEN ").append(DB.TO_DATE(m_dateInvoiced_From, true)).append(" AND ").append(DB.TO_DATE(m_dateInvoiced_To, true));
needAnd = true;
} else if (m_dateInvoiced_From != null) {
if (needAnd)
sql.append(" AND ");
sql.append("TRUNC(i.DateInvoiced, 'DD') >= ").append(DB.TO_DATE(m_dateInvoiced_From, true));
needAnd = true;
} else if (m_dateInvoiced_To != null) {
if (needAnd)
sql.append(" AND ");
sql.append("TRUNC(i.DateInvoiced, 'DD') <= ").append(DB.TO_DATE(m_dateInvoiced_To, true));
needAnd = true;
} else if (m_DocumentNo_From != null && m_DocumentNo_To != null) {
if (needAnd)
sql.append(" AND ");
sql.append("i.DocumentNo BETWEEN ").append(DB.TO_STRING(m_DocumentNo_From)).append(" AND ").append(DB.TO_STRING(m_DocumentNo_To));
} else if (m_DocumentNo_From != null) {
if (needAnd)
sql.append(" AND ");
if (m_DocumentNo_From.indexOf('%') == -1)
sql.append("i.DocumentNo >= ").append(DB.TO_STRING(m_DocumentNo_From));
else
sql.append("i.DocumentNo LIKE ").append(DB.TO_STRING(m_DocumentNo_From));
}
if (p_EMailPDF) {
if (needAnd) {
sql.append(" AND ");
}
/* if emailed to customer only select COmpleted & CLosed invoices */
sql.append("i.DocStatus IN ('CO','CL') ");
}
}
// more than 1 PF record
sql.append(" ORDER BY i.C_Invoice_ID, pf.AD_Org_ID DESC");
log.fine(sql.toString());
MPrintFormat format = null;
int old_AD_PrintFormat_ID = -1;
int old_C_Invoice_ID = -1;
int C_BPartner_ID = 0;
int count = 0;
int errors = 0;
PreparedStatement pstmt = null;
ResultSet rs = null;
List<File> pdfList = new ArrayList<File>();
try {
pstmt = DB.prepareStatement(sql.toString(), get_TrxName());
pstmt.setInt(1, Env.getAD_Client_ID(Env.getCtx()));
pstmt.setInt(2, Env.getAD_Org_ID(Env.getCtx()));
rs = pstmt.executeQuery();
while (rs.next()) {
int C_Invoice_ID = rs.getInt(1);
if (// multiple pf records
C_Invoice_ID == old_C_Invoice_ID)
continue;
old_C_Invoice_ID = C_Invoice_ID;
// Set Language when enabled
// Base Language
Language language = Language.getLoginLanguage();
String AD_Language = rs.getString(2);
if (AD_Language != null && "Y".equals(rs.getString(3)))
language = Language.getLanguage(AD_Language);
//
int AD_PrintFormat_ID = rs.getInt(4);
int copies = rs.getInt(5);
if (copies == 0)
copies = 1;
int AD_User_ID = rs.getInt(6);
MUser to = new MUser(getCtx(), AD_User_ID, get_TrxName());
String DocumentNo = rs.getString(7);
C_BPartner_ID = rs.getInt(8);
//
String documentDir = client.getDocumentDir();
if (documentDir == null || documentDir.length() == 0)
documentDir = ".";
//
if (p_EMailPDF && (to.get_ID() == 0 || to.getEMail() == null || to.getEMail().length() == 0)) {
addLog(C_Invoice_ID, null, null, DocumentNo + " @RequestActionEMailNoTo@");
errors++;
continue;
}
if (AD_PrintFormat_ID == 0) {
addLog(C_Invoice_ID, null, null, DocumentNo + " No Print Format");
errors++;
continue;
}
// Get Format & Data
if (AD_PrintFormat_ID != old_AD_PrintFormat_ID) {
format = MPrintFormat.get(getCtx(), AD_PrintFormat_ID, false);
old_AD_PrintFormat_ID = AD_PrintFormat_ID;
}
format.setLanguage(language);
format.setTranslationLanguage(language);
// query
MQuery query = new MQuery("C_Invoice_Header_v");
query.addRestriction("C_Invoice_ID", MQuery.EQUAL, new Integer(C_Invoice_ID));
// Engine
PrintInfo info = new PrintInfo(DocumentNo, X_C_Invoice.Table_ID, C_Invoice_ID, C_BPartner_ID);
info.setCopies(copies);
ReportEngine re = new ReportEngine(getCtx(), format, query, info);
boolean printed = false;
if (p_EMailPDF) {
String subject = mText.getMailHeader() + " - " + DocumentNo;
EMail email = client.createEMail(to.getEMail(), subject, null);
if (!email.isValid()) {
addLog(C_Invoice_ID, null, null, DocumentNo + " @RequestActionEMailError@ Invalid EMail: " + to);
errors++;
continue;
}
// Context
mText.setUser(to);
// Context
mText.setBPartner(C_BPartner_ID);
mText.setPO(new MInvoice(getCtx(), C_Invoice_ID, get_TrxName()));
String message = mText.getMailText(true);
if (mText.isHtml())
email.setMessageHTML(subject, message);
else {
email.setSubject(subject);
email.setMessageText(message);
}
//
File invoice = null;
if (!Ini.isClient())
invoice = new File(MInvoice.getPDFFileName(documentDir, C_Invoice_ID));
File attachment = re.getPDF(invoice);
log.fine(to + " - " + attachment);
email.addAttachment(attachment);
//
String msg = email.send();
MUserMail um = new MUserMail(mText, getAD_User_ID(), email);
um.saveEx();
if (msg.equals(EMail.SENT_OK)) {
addLog(C_Invoice_ID, null, null, DocumentNo + " @RequestActionEMailOK@ - " + to.getEMail());
count++;
printed = true;
} else {
addLog(C_Invoice_ID, null, null, DocumentNo + " @RequestActionEMailError@ " + msg + " - " + to.getEMail());
errors++;
}
} else {
if (re != null)
pdfList.add(re.getPDF());
count++;
printed = true;
}
// Print Confirm
if (printed) {
StringBuffer sb = new StringBuffer("UPDATE C_Invoice " + "SET DatePrinted=SysDate, IsPrinted='Y' WHERE C_Invoice_ID=").append(C_Invoice_ID);
DB.executeUpdateEx(sb.toString(), get_TrxName());
}
}
// for all entries
} catch (Exception e) {
log.log(Level.SEVERE, "doIt - " + sql, e);
throw new Exception(e);
} finally {
DB.close(rs, pstmt);
}
if (pdfList.size() > 1) {
try {
File outFile = File.createTempFile("InvoicePrint", ".pdf");
AEnv.mergePdf(pdfList, outFile);
Clients.clearBusy();
Window win = new SimplePDFViewer(this.getName(), new FileInputStream(outFile));
win.setAttribute(Window.MODE_KEY, Window.MODE_HIGHLIGHTED);
SessionManager.getAppDesktop().showWindow(win, "center");
} catch (Exception e) {
log.log(Level.SEVERE, e.getLocalizedMessage(), e);
}
} else if (pdfList.size() > 0) {
Clients.clearBusy();
try {
Window win = new SimplePDFViewer(this.getName(), new FileInputStream(pdfList.get(0)));
win.setAttribute(Window.MODE_KEY, Window.MODE_HIGHLIGHTED);
SessionManager.getAppDesktop().showWindow(win, "center");
} catch (Exception e) {
log.log(Level.SEVERE, e.getLocalizedMessage(), e);
}
}
//
if (p_EMailPDF)
return "@Sent@=" + count + " - @Errors@=" + errors;
return "@Printed@=" + count;
}
Aggregations