Search in sources :

Example 1 with Window

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());
    }
}
Also used : Window(org.adempiere.webui.component.Window) Pre(org.zkoss.zhtml.Pre) Center(org.zkoss.zkex.zul.Center) South(org.zkoss.zkex.zul.South) Text(org.zkoss.zhtml.Text) Borderlayout(org.zkoss.zkex.zul.Borderlayout) Div(org.zkoss.zul.Div) ConfirmPanel(org.adempiere.webui.component.ConfirmPanel) North(org.zkoss.zkex.zul.North) Listbox(org.adempiere.webui.component.Listbox)

Example 2 with Window

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);
}
Also used : Window(org.adempiere.webui.component.Window)

Example 3 with Window

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);
}
Also used : Window(org.adempiere.webui.component.Window) Div(org.zkoss.zul.Div) Hbox(org.zkoss.zul.Hbox) Label(org.adempiere.webui.component.Label) ListItem(org.adempiere.webui.component.ListItem) Vbox(org.zkoss.zul.Vbox)

Example 4 with Window

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());
    }
}
Also used : Window(org.adempiere.webui.component.Window) MultiTabPart(org.adempiere.webui.part.MultiTabPart) Tabpanel(org.adempiere.webui.component.Tabpanel) SQLException(java.sql.SQLException) IOException(java.io.IOException)

Example 5 with Window

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;
}
Also used : SimplePDFViewer(org.adempiere.webui.window.SimplePDFViewer) ArrayList(java.util.ArrayList) Window(org.adempiere.webui.component.Window) org.compiere.print(org.compiere.print)

Aggregations

Window (org.adempiere.webui.component.Window)10 ArrayList (java.util.ArrayList)2 ConfirmPanel (org.adempiere.webui.component.ConfirmPanel)2 Tabpanel (org.adempiere.webui.component.Tabpanel)2 SimplePDFViewer (org.adempiere.webui.window.SimplePDFViewer)2 MQuery (org.compiere.model.MQuery)2 Center (org.zkoss.zkex.zul.Center)2 Div (org.zkoss.zul.Div)2 File (java.io.File)1 FileInputStream (java.io.FileInputStream)1 IOException (java.io.IOException)1 SQLException (java.sql.SQLException)1 Borderlayout (org.adempiere.webui.component.Borderlayout)1 DesktopTabpanel (org.adempiere.webui.component.DesktopTabpanel)1 Grid (org.adempiere.webui.component.Grid)1 Label (org.adempiere.webui.component.Label)1 ListItem (org.adempiere.webui.component.ListItem)1 Listbox (org.adempiere.webui.component.Listbox)1 Panel (org.adempiere.webui.component.Panel)1 Row (org.adempiere.webui.component.Row)1