Search in sources :

Example 1 with ProcessModalDialog

use of org.adempiere.webui.apps.ProcessModalDialog in project adempiere by adempiere.

the class AbstractADWindowPanel method onPrint.

//
/**
     * @see ToolbarListener#onPrint()
     */
public void onPrint() {
    GridTab currentTab = toolbar.getCurrentPanel().getGridTab();
    //Get process defined for this tab
    int AD_Process_ID = currentTab.getAD_Process_ID();
    //	No report defined
    if (AD_Process_ID == 0) {
        onReport();
        return;
    }
    if (!onSave(false))
        return;
    //
    int table_ID = currentTab.getAD_Table_ID();
    int record_ID = currentTab.getRecord_ID();
    ProcessModalDialog dialog = new ProcessModalDialog(this, getWindowNo(), AD_Process_ID, table_ID, record_ID, true);
    if (dialog.isValid()) {
        dialog.setPosition("center");
        try {
            dialog.setPage(this.getComponent().getPage());
            dialog.doModal();
        } catch (InterruptedException e) {
        }
    }
}
Also used : GridTab(org.compiere.model.GridTab) ProcessModalDialog(org.adempiere.webui.apps.ProcessModalDialog)

Example 2 with ProcessModalDialog

use of org.adempiere.webui.apps.ProcessModalDialog in project adempiere by adempiere.

the class ZkReportViewer method launchProcessPara.

//	cmd_find
/**
	 * FR [ 295 ]
	 * Launch Parameters for re-query
	 * @return isOk
	 */
private boolean launchProcessPara() {
    //	Create new Instance
    ProcessInfo pi = new ProcessInfo(m_reportEngine.getProcessInfo().getTitle(), m_reportEngine.getProcessInfo().getAD_Process_ID(), m_reportEngine.getProcessInfo().getTable_ID(), m_reportEngine.getProcessInfo().getRecord_ID());
    //	Launch dialog
    ProcessModalDialog dialog = new ProcessModalDialog(null, m_WindowNo, pi);
    if (dialog.isValid()) {
        try {
            dialog.setPage(this.getPage());
            dialog.doModal();
            //	Valid
            if (dialog.isOK()) {
                //	execute
                ProcessCtl worker = new ProcessCtl(null, m_WindowNo, pi, true, null);
                //synchrous
                worker.run();
                //	
                ReportEngine re = ReportEngine.get(Env.getCtx(), pi);
                //	
                if (re != null) {
                    m_reportEngine.setQuery(re.getQuery());
                }
                //	
                return true;
            }
        } catch (InterruptedException e) {
            log.severe(e.getLocalizedMessage());
        }
    }
    //	Default
    return false;
}
Also used : ReportEngine(org.compiere.print.ReportEngine) ProcessCtl(org.compiere.apps.ProcessCtl) ProcessInfo(org.compiere.process.ProcessInfo) ProcessModalDialog(org.adempiere.webui.apps.ProcessModalDialog)

Example 3 with ProcessModalDialog

use of org.adempiere.webui.apps.ProcessModalDialog in project adempiere by adempiere.

the class WPaySelect method generatePaySelect.

//  calculateSelection
/**
	 *  Generate PaySelection
	 */
private void generatePaySelect() {
    if (miniTable.getRowCount() == 0)
        return;
    miniTable.setSelectedIndices(new int[] { 0 });
    calculateSelection();
    if (m_noSelected == 0)
        return;
    String msg = generatePaySelect(miniTable, (ValueNamePair) fieldPaymentRule.getSelectedItem().getValue(), new Timestamp(fieldPayDate.getComponent().getValue().getTime()), (BankInfo) fieldBankAccount.getSelectedItem().getValue());
    if (msg != null && msg.length() > 0) {
        FDialog.error(m_WindowNo, form, "SaveError", msg);
        return;
    }
    //  Ask to Post it
    if (!FDialog.ask(m_WindowNo, form, "VPaySelectGenerate?", "(" + m_ps.getDocumentNo() + ")"))
        return;
    //  Prepare Process 
    //	C_PaySelection_CreatePayment
    int AD_Proces_ID = 155;
    //	Execute Process
    ProcessModalDialog dialog = new ProcessModalDialog(this, m_WindowNo, AD_Proces_ID, X_C_PaySelection.Table_ID, m_ps.getC_PaySelection_ID(), false);
    if (dialog.isValid()) {
        try {
            dialog.setWidth("500px");
            dialog.setVisible(true);
            dialog.setPage(form.getPage());
            dialog.doModal();
        } catch (SuspendNotAllowedException e) {
            log.log(Level.SEVERE, e.getLocalizedMessage(), e);
        }
    }
}
Also used : ProcessModalDialog(org.adempiere.webui.apps.ProcessModalDialog) SuspendNotAllowedException(org.zkoss.zk.ui.SuspendNotAllowedException) Timestamp(java.sql.Timestamp)

Example 4 with ProcessModalDialog

use of org.adempiere.webui.apps.ProcessModalDialog in project adempiere by adempiere.

the class AbstractADWindowPanel method actionButton.

//
/**************************************************************************
	 *	Start Button Process
	 *  @param wButton button
	 */
private void actionButton(WButtonEditor wButton) {
    GridTab currentTab = toolbar.getCurrentPanel().getGridTab();
    if (currentTab.hasChangedCurrentTabAndParents()) {
        String msg = CLogger.retrieveErrorString("Please ReQuery Window");
        FDialog.error(curWindowNo, parent, null, msg);
        return;
    }
    logger.info(wButton.toString());
    boolean startWOasking = false;
    String col = wButton.getColumnName();
    //  Zoom
    if (col.equals("Record_ID")) {
        int AD_Table_ID = Env.getContextAsInt(ctx, curWindowNo, "AD_Table_ID");
        int Record_ID = Env.getContextAsInt(ctx, curWindowNo, "Record_ID");
        AEnv.zoom(AD_Table_ID, Record_ID);
        return;
    }
    if (currentTab.needSave(true, false)) {
        if (!onSave(false))
            return;
    }
    int table_ID = currentTab.getAD_Table_ID();
    //	Record_ID
    int record_ID = currentTab.getRecord_ID();
    if (record_ID == -1 && currentTab.getKeyColumnName().equals("AD_Language"))
        record_ID = Env.getContextAsInt(ctx, curWindowNo, "AD_Language_ID");
    if (record_ID == -1 && (wButton.getProcess_ID() == 306 || wButton.getProcess_ID() == 307)) {
        Integer id = (Integer) currentTab.getValue("AD_ChangeLog_ID");
        record_ID = id.intValue();
    }
    if (record_ID == -1 && currentTab.getKeyColumnName().endsWith("_ID")) {
        FDialog.error(curWindowNo, parent, "SaveErrorRowNotFound");
        return;
    }
    boolean isProcessMandatory = false;
    if (col.equals("PaymentRule")) {
        WPayment vp = new WPayment(curWindowNo, currentTab, wButton);
        if (//	may not be allowed
        vp.isInitOK()) {
            vp.setVisible(true);
            AEnv.showWindow(vp);
        }
        if (vp.needSave()) {
            onSave(false);
            onRefresh(false);
        }
    } else if (col.equals("DocAction")) {
        isProcessMandatory = true;
        WDocActionPanel win = new WDocActionPanel(currentTab);
        if (win.getNumberOfOptions() == 0) {
            logger.info("DocAction - No Options");
            return;
        } else {
            AEnv.showWindow(win);
            if (!win.isStartProcess())
                return;
            //batch = win.isBatch();
            startWOasking = true;
        //vda.dispose();
        }
    } else if (col.equals("CreateFrom")) {
        ICreateFrom cf = WCreateFromFactory.create(currentTab);
        if (cf != null) {
            if (cf.isInitOK()) {
                cf.showWindow();
                currentTab.dataRefresh();
            }
            return;
        }
    // else may start process
    } else if (col.equals("Posted") && MRole.getDefault().isShowAcct()) {
        //  Check Doc Status
        String processed = Env.getContext(ctx, curWindowNo, "Processed");
        if (!processed.equals("Y")) {
            String docStatus = Env.getContext(ctx, curWindowNo, "DocStatus");
            if (DocAction.STATUS_Completed.equals(docStatus) || DocAction.STATUS_Closed.equals(docStatus) || DocAction.STATUS_Reversed.equals(docStatus) || DocAction.STATUS_Voided.equals(docStatus))
                ;
            else {
                FDialog.error(curWindowNo, parent, "PostDocNotComplete");
                return;
            }
        }
        // try to get table and record id from context data (eg for unposted view)
        // otherwise use current table/record
        int tableId = Env.getContextAsInt(ctx, curWindowNo, "AD_Table_ID", true);
        int recordId = Env.getContextAsInt(ctx, curWindowNo, "Record_ID", true);
        if (tableId == 0 || recordId == 0) {
            tableId = currentTab.getAD_Table_ID();
            recordId = currentTab.getRecord_ID();
        }
        //  Check Post Status
        Object ps = currentTab.getValue("Posted");
        if (ps != null && ps.equals("Y")) {
            new org.adempiere.webui.acct.WAcctViewer(Env.getContextAsInt(ctx, curWindowNo, "AD_Client_ID"), tableId, recordId);
        } else {
            if (FDialog.ask(curWindowNo, null, "PostImmediate?")) {
                //	force when problems
                boolean force = ps != null && !ps.equals("N");
                String error = AEnv.postImmediate(curWindowNo, Env.getAD_Client_ID(ctx), tableId, recordId, force);
                if (error != null)
                    FDialog.error(curWindowNo, null, "PostingError-N", error);
                onRefresh(false);
            }
        }
        return;
    }
    //  Posted
    /**
		 *  Start Process ----
		 */
    logger.config("Process_ID=" + wButton.getProcess_ID() + ", Record_ID=" + record_ID);
    if (wButton.getProcess_ID() == 0) {
        if (isProcessMandatory) {
            FDialog.error(curWindowNo, null, null, Msg.parseTranslation(ctx, "@NotFound@ @AD_Process_ID@"));
        }
        return;
    }
    if (currentTab.needSave(true, false)) {
        if (!onSave(false))
            return;
    }
    // call form
    MProcess pr = new MProcess(ctx, wButton.getProcess_ID(), null);
    //	Validate Access
    //	BR [ 147 ]
    MRole role = MRole.getDefault(ctx, false);
    Boolean accessRW = role.checkProcessAccess(pr.getAD_Process_ID());
    if (accessRW == null || !accessRW.booleanValue()) {
        FDialog.error(curWindowNo, parent, "AccessCannotProcess");
        return;
    }
    int adFormID = pr.getAD_Form_ID();
    //	Yamel Senih BR[ 127 ], 2015-11-25
    //	Bug with launch form
    int adBrowseID = pr.getAD_Browse_ID();
    if (adFormID != 0) {
        String title = wButton.getDescription();
        if (title == null || title.length() == 0)
            title = wButton.getDisplay();
        ProcessInfo pi = new ProcessInfo(title, wButton.getProcess_ID(), table_ID, record_ID);
        pi.setWindowNo(curWindowNo);
        pi.setAD_User_ID(Env.getAD_User_ID(ctx));
        pi.setAD_Client_ID(Env.getAD_Client_ID(ctx));
        ADForm form = ADForm.openForm(adFormID);
        form.setProcessInfo(pi);
        //	Yamel Senih FR [ 114 ], 2015-11-25
        form.setAttribute(Window.MODE_KEY, Window.MODE_MODAL);
        form.setAttribute(Window.INSERT_POSITION_KEY, Window.INSERT_NEXT);
        form.setClosable(true);
        form.setMaximizable(true);
        form.setSizable(true);
        form.setContentStyle("overflow: auto");
        AEnv.showWindow(form);
        //	End Yamel Senih
        currentTab.dataRefreshAll();
    } else if (adBrowseID != 0) {
        String title = wButton.getDescription();
        if (title == null || title.length() == 0)
            title = wButton.getDisplay();
        ProcessInfo pi = new ProcessInfo(title, wButton.getProcess_ID(), table_ID, record_ID);
        pi.setAD_User_ID(Env.getAD_User_ID(ctx));
        pi.setAD_Client_ID(Env.getAD_Client_ID(ctx));
        MBrowse browse = new MBrowse(Env.getCtx(), adBrowseID, null);
        WBrowser browser = new WBrowser(true, curWindowNo, "", browse, "", true, "", "Y".equals(Env.isSOTrx(Env.getCtx(), curWindowNo)));
        browser.setProcessInfo(pi);
        CustomForm ff = browser.getForm();
        ff.setAttribute(Window.MODE_KEY, Window.MODE_EMBEDDED);
        ff.setAttribute(Window.INSERT_POSITION_KEY, Window.INSERT_NEXT);
        ff.setTitle(title);
        SessionManager.getAppDesktop().showWindow(ff);
        onRefresh(false);
    } else {
        ProcessModalDialog dialog = new ProcessModalDialog(this, curWindowNo, wButton.getProcess_ID(), table_ID, record_ID, startWOasking);
        if (dialog.isValid()) {
            dialog.setWidth("500px");
            dialog.setVisible(true);
            dialog.setPosition("center");
            AEnv.showWindow(dialog);
        }
    //onRefresh(true); // Need to fire events to activate subordinate tabs.
    }
}
Also used : MProcess(org.compiere.model.MProcess) MRole(org.compiere.model.MRole) ProcessInfo(org.compiere.process.ProcessInfo) ProcessModalDialog(org.adempiere.webui.apps.ProcessModalDialog) MBrowse(org.adempiere.model.MBrowse) WBrowser(org.eevolution.form.WBrowser) ICreateFrom(org.compiere.grid.ICreateFrom) WPayment(org.adempiere.webui.apps.form.WPayment) GridTab(org.compiere.model.GridTab)

Aggregations

ProcessModalDialog (org.adempiere.webui.apps.ProcessModalDialog)4 GridTab (org.compiere.model.GridTab)2 ProcessInfo (org.compiere.process.ProcessInfo)2 Timestamp (java.sql.Timestamp)1 MBrowse (org.adempiere.model.MBrowse)1 WPayment (org.adempiere.webui.apps.form.WPayment)1 ProcessCtl (org.compiere.apps.ProcessCtl)1 ICreateFrom (org.compiere.grid.ICreateFrom)1 MProcess (org.compiere.model.MProcess)1 MRole (org.compiere.model.MRole)1 ReportEngine (org.compiere.print.ReportEngine)1 WBrowser (org.eevolution.form.WBrowser)1 SuspendNotAllowedException (org.zkoss.zk.ui.SuspendNotAllowedException)1