Search in sources :

Example 6 with MBrowse

use of org.adempiere.model.MBrowse in project adempiere by adempiere.

the class APanel method actionButton.

/**************************************************************************
	 *	Start Button Process
	 *  @param vButton button
	 */
protected void actionButton(VButton vButton) {
    log.info(vButton.toString());
    if (m_curTab.hasChangedCurrentTabAndParents()) {
        String msg = CLogger.retrieveErrorString("Please ReQuery Window");
        ADialog.error(m_curWindowNo, this, null, msg);
        return;
    }
    boolean startWOasking = false;
    //		boolean batch = false;
    String col = vButton.getColumnName();
    //  Zoom
    if (col.equals("Record_ID")) {
        int AD_Table_ID = Env.getContextAsInt(m_ctx, m_curWindowNo, "AD_Table_ID");
        int Record_ID = Env.getContextAsInt(m_ctx, m_curWindowNo, "Record_ID");
        AEnv.zoom(AD_Table_ID, Record_ID);
        return;
    }
    //  save first	---------------
    if (m_curTab.needSave(true, false))
        if (!cmd_save(true))
            return;
    // Save included tabs if necessary - teo_sarca BF [ 2876892 ]
    for (GridTab includedTab : m_curTab.getIncludedTabs()) {
        if (includedTab.needSave(true, false))
            if (!includedTab.dataSave(true))
                return;
    }
    //
    int table_ID = m_curTab.getAD_Table_ID();
    //	Record_ID
    int record_ID = m_curTab.getRecord_ID();
    //	Record_ID - Language Handling
    if (record_ID == -1 && m_curTab.getKeyColumnName().equals("AD_Language"))
        record_ID = Env.getContextAsInt(m_ctx, m_curWindowNo, "AD_Language_ID");
    //	Record_ID - Change Log ID
    if (record_ID == -1 && (vButton.getProcess_ID() == 306 || vButton.getProcess_ID() == 307)) {
        Integer id = (Integer) m_curTab.getValue("AD_ChangeLog_ID");
        record_ID = id.intValue();
    }
    //	Ensure it's saved
    if (record_ID == -1 && m_curTab.getKeyColumnName().endsWith("_ID")) {
        ADialog.error(m_curWindowNo, this, "SaveErrorRowNotFound");
        return;
    }
    boolean isProcessMandatory = false;
    //	Pop up Payment Rules
    if (col.equals("PaymentRule")) {
        VPayment vp = new VPayment(m_curWindowNo, m_curTab, vButton);
        if (//	may not be allowed
        vp.isInitOK())
            vp.setVisible(true);
        vp.dispose();
        if (vp.needSave()) {
            cmd_save(false);
            cmd_refresh();
        }
    } else //	Pop up Document Action (Workflow)
    if (col.equals("DocAction")) {
        isProcessMandatory = true;
        VDocAction vda = new VDocAction(m_curWindowNo, m_curTab, vButton, record_ID);
        //	Something to select from?
        if (vda.getNumberOfOptions() == 0) {
            vda.dispose();
            log.info("DocAction - No Options");
            return;
        } else {
            vda.setVisible(true);
            if (!vda.isStartProcess())
                return;
            //				batch = vda.isBatch();
            startWOasking = true;
            vda.dispose();
        }
    } else //  Pop up Create From
    if (col.equals("CreateFrom")) {
        // Run form only if the button has no process defined - teo_sarca [ 1974354 ]
        if (vButton.getProcess_ID() <= 0) {
            ICreateFrom cf = VCreateFromFactory.create(m_curTab);
            if (cf != null) {
                if (cf.isInitOK()) {
                    cf.showWindow();
                    cf.closeWindow();
                    m_curTab.dataRefresh();
                } else
                    cf.closeWindow();
                return;
            }
        //	else may start process
        }
    } else //  Posting -----
    if (col.equals("Posted") && MRole.getDefault().isShowAcct()) {
        //  Check Doc Status
        String processed = Env.getContext(m_ctx, m_curWindowNo, "Processed");
        if (!processed.equals("Y")) {
            String docStatus = Env.getContext(m_ctx, m_curWindowNo, "DocStatus");
            if (DocAction.STATUS_Completed.equals(docStatus) || DocAction.STATUS_Closed.equals(docStatus) || DocAction.STATUS_Reversed.equals(docStatus) || DocAction.STATUS_Voided.equals(docStatus))
                ;
            else {
                ADialog.error(m_curWindowNo, this, "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(m_ctx, m_curWindowNo, "AD_Table_ID", true);
        int recordId = Env.getContextAsInt(m_ctx, m_curWindowNo, "Record_ID", true);
        if (tableId == 0 || recordId == 0) {
            tableId = m_curTab.getAD_Table_ID();
            recordId = m_curTab.getRecord_ID();
        }
        //  Check Post Status
        Object ps = m_curTab.getValue("Posted");
        if (ps != null && ps.equals("Y")) {
            new org.compiere.acct.AcctViewer(Env.getContextAsInt(m_ctx, m_curWindowNo, "AD_Client_ID"), tableId, recordId);
        } else {
            if (ADialog.ask(m_curWindowNo, this, "PostImmediate?")) {
                //	force when problems
                boolean force = ps != null && !ps.equals("N");
                String error = AEnv.postImmediate(m_curWindowNo, Env.getAD_Client_ID(m_ctx), tableId, recordId, force);
                if (error != null)
                    ADialog.error(m_curWindowNo, this, "PostingError-N", error);
                cmd_refresh();
            }
        }
        return;
    }
    //  Posted
    /**
		 *  Start Process ----
		 *  or invoke user form
		 */
    log.config("Process_ID=" + vButton.getProcess_ID() + ", Record_ID=" + record_ID);
    if (vButton.getProcess_ID() == 0) {
        if (isProcessMandatory) {
            ADialog.error(m_curWindowNo, this, null, Msg.parseTranslation(m_ctx, "@NotFound@ @AD_Process_ID@"));
        }
        return;
    }
    //	Save item changed
    if (m_curTab.needSave(true, false))
        if (!cmd_save(true))
            return;
    // call form
    MProcess pr = new MProcess(m_ctx, vButton.getProcess_ID(), null);
    //	Validate Access
    MRole role = MRole.getDefault(m_ctx, false);
    Boolean accessRW = role.checkProcessAccess(pr.getAD_Process_ID());
    if (accessRW == null || !accessRW.booleanValue()) {
        ADialog.error(m_curWindowNo, this, null, Msg.parseTranslation(m_ctx, "@AccessCannotProcess@"));
        return;
    }
    //	
    int form_ID = pr.getAD_Form_ID();
    if (form_ID != 0) {
        if (m_curTab.needSave(true, false))
            if (!cmd_save(true))
                return;
        //	Yamel Senih FR [ 114 ] 2015-11-23 Add Support to Dialog for create from
        FormFrame ff = new FormFrame(getWindowNo());
        String title = vButton.getDescription();
        if (title == null || title.length() == 0)
            title = vButton.getName();
        ProcessInfo pi = new ProcessInfo(title, vButton.getProcess_ID(), table_ID, record_ID);
        pi.setAD_User_ID(Env.getAD_User_ID(m_ctx));
        pi.setAD_Client_ID(Env.getAD_Client_ID(m_ctx));
        ff.setProcessInfo(pi);
        ff.openForm(form_ID);
        ff.pack();
        AEnv.showCenterScreen(ff);
        //	Refresh
        m_curTab.dataRefresh();
        //	End Yamel Senih
        return;
    }
    int browse_ID = pr.getAD_Browse_ID();
    if (browse_ID != 0) {
        if (m_curTab.needSave(true, false))
            if (!cmd_save(true))
                return;
        String title = vButton.getDescription();
        if (title == null || title.length() == 0)
            title = vButton.getName();
        ProcessInfo pi = new ProcessInfo(title, vButton.getProcess_ID(), table_ID, record_ID);
        pi.setAD_User_ID(Env.getAD_User_ID(m_ctx));
        pi.setAD_Client_ID(Env.getAD_Client_ID(m_ctx));
        FormFrame ff = new FormFrame(getWindowNo());
        ff.setProcessInfo(pi);
        MBrowse browse = new MBrowse(Env.getCtx(), browse_ID, null);
        new VBrowser(ff, true, getWindowNo(), "", browse, "", true, "", Env.isSOTrx(Env.getCtx(), m_curWindowNo));
        ff.pack();
        AEnv.showCenterScreen(ff);
        //	Yamel Senih
        //	Refresh
        m_curTab.dataRefresh();
        return;
    } else {
        ProcessModalDialog dialog = new ProcessModalDialog(m_ctx, Env.getWindow(m_curWindowNo), Env.getHeader(m_ctx, m_curWindowNo), this, m_curWindowNo, vButton.getProcess_ID(), table_ID, record_ID, startWOasking);
        //	BR [ 323 ]
        if (!startWOasking) {
            dialog.validate();
            dialog.pack();
            AEnv.showCenterWindow(Env.getWindow(m_curWindowNo), dialog);
        }
    }
}
Also used : VDocAction(org.compiere.grid.ed.VDocAction) MProcess(org.compiere.model.MProcess) FormFrame(org.compiere.apps.form.FormFrame) MRole(org.compiere.model.MRole) VPayment(org.compiere.grid.VPayment) ProcessInfo(org.compiere.process.ProcessInfo) MBrowse(org.adempiere.model.MBrowse) Point(java.awt.Point) VBrowser(org.eevolution.form.VBrowser) ICreateFrom(org.compiere.grid.ICreateFrom) GridTab(org.compiere.model.GridTab)

Example 7 with MBrowse

use of org.adempiere.model.MBrowse in project adempiere by adempiere.

the class VBrowser method openBrowse.

/**
	 * get Browse
	 * @param windowNo
	 * @param browserId
	 * @param whereClause
	 * @param isSOTrx
	 */
public static CFrame openBrowse(int windowNo, int browserId, String whereClause, Boolean isSOTrx) {
    MBrowse browse = new MBrowse(Env.getCtx(), browserId, null);
    boolean modal = false;
    if (windowNo > 0)
        modal = true;
    String value = "";
    String keyColumn = "";
    boolean multiSelection = true;
    FormFrame ff = new FormFrame(windowNo);
    return new VBrowser(ff, modal, windowNo, value, browse, keyColumn, multiSelection, whereClause, isSOTrx).getFrame();
}
Also used : FormFrame(org.compiere.apps.form.FormFrame) MBrowse(org.adempiere.model.MBrowse)

Example 8 with MBrowse

use of org.adempiere.model.MBrowse in project adempiere by adempiere.

the class VBrowser method main.

// Worker
public static void main(String[] args) {
    Splash.getSplash();
    // Adempiere.startup(true); // needs to be here for UI
    // Adempiere.startupEnvironment(false);
    Adempiere.startup(true);
    Ini.setProperty(Ini.P_UID, "SuperUser");
    Ini.setProperty(Ini.P_PWD, "System");
    Ini.setProperty(Ini.P_ROLE, "GardenWorld Admin");
    Ini.setProperty(Ini.P_CLIENT, "GardenWorld");
    Ini.setProperty(Ini.P_ORG, "HQ");
    Ini.setProperty(Ini.P_WAREHOUSE, "HQ Warehouse");
    Ini.setProperty(Ini.P_LANGUAGE, "English");
    // Ini.setProperty(Ini.P_PRINTER,"MyPrinter");
    Login login = new Login(Env.getCtx());
    login.batchLogin();
    Properties m_ctx = Env.getCtx();
    MBrowse browse = new MBrowse(m_ctx, 50025, null);
    FormFrame frame = new FormFrame(0);
    boolean modal = true;
    int WindowNo = 0;
    String value = "";
    String keyColumn = "";
    boolean multiSelection = true;
    String whereClause = "";
    VBrowser browser = new VBrowser(frame, modal, WindowNo, value, browse, keyColumn, multiSelection, whereClause, true);
    // browser.setPreferredSize(getPreferredSize ());
    browser.getFrame().setVisible(true);
    browser.getFrame().pack();
}
Also used : FormFrame(org.compiere.apps.form.FormFrame) Login(org.compiere.util.Login) Properties(java.util.Properties) MBrowse(org.adempiere.model.MBrowse)

Example 9 with MBrowse

use of org.adempiere.model.MBrowse in project adempiere by adempiere.

the class BrowseElementHandler method create.

public void create(Properties ctx, TransformerHandler document) throws SAXException {
    int AD_Browse_ID = Env.getContextAsInt(ctx, "AD_Browse_ID");
    PackOut packOut = (PackOut) ctx.get("PackOutProcess");
    MBrowse m_Browse = new MBrowse(ctx, AD_Browse_ID, null);
    AttributesImpl atts = new AttributesImpl();
    packOut.createView(m_Browse.getAD_View_ID(), document);
    packOut.createProcess(m_Browse.getAD_Process_ID(), document);
    createBrowseBinding(atts, m_Browse);
    document.startElement("", "", "browse", atts);
    // Tab Tag
    StringBuilder whereClause = new StringBuilder(I_AD_Browse_Field.COLUMNNAME_AD_Browse_ID).append("=?");
    List<MBrowseField> browseFields = new Query(ctx, I_AD_Browse_Field.Table_Name, whereClause.toString(), getTrxName(ctx)).setParameters(m_Browse.getAD_Browse_ID()).list();
    for (MBrowseField bf : browseFields) {
        createBrowseField(ctx, document, bf.getAD_Browse_Field_ID());
    }
    // Loop tags.
    document.endElement("", "", "browse");
}
Also used : MBrowseField(org.adempiere.model.MBrowseField) AttributesImpl(org.xml.sax.helpers.AttributesImpl) Query(org.compiere.model.Query) PackOut(org.adempiere.pipo.PackOut) MBrowse(org.adempiere.model.MBrowse)

Example 10 with MBrowse

use of org.adempiere.model.MBrowse in project adempiere by adempiere.

the class BrowseElementHandler method startElement.

public void startElement(Properties ctx, Element element) throws SAXException {
    // Check namespace.
    String elementValue = element.getElementValue();
    Attributes atts = element.attributes;
    log.info(elementValue + " " + atts.getValue("Name"));
    String entitytype = atts.getValue("EntityType");
    if (isProcessElement(ctx, entitytype)) {
        String name = atts.getValue("Name");
        int id = get_ID(ctx, "AD_Browse", name);
        if (id > 0 && browses.contains(id)) {
            return;
        }
        MBrowse m_Browse = new MBrowse(ctx, id, getTrxName(ctx));
        if (id <= 0 && atts.getValue("AD_Browse_ID") != null && Integer.parseInt(atts.getValue("AD_Browse_ID")) <= PackOut.MAX_OFFICIAL_ID)
            m_Browse.setAD_Browse_ID(Integer.parseInt(atts.getValue("AD_Browse_ID")));
        String Object_Status = null;
        int AD_Backup_ID = -1;
        if (id > 0) {
            AD_Backup_ID = copyRecord(ctx, "AD_Browse", m_Browse);
            Object_Status = "Update";
        } else {
            Object_Status = "New";
            AD_Backup_ID = 0;
        }
        if (getStringValue(atts, "ADViewNameID") != null) {
            name = atts.getValue("ADViewNameID");
            id = get_IDWithColumn(ctx, "AD_View", "Name", name);
            if (id <= 0) {
                element.defer = true;
                element.unresolved = "AD_View: " + name;
                return;
            }
            m_Browse.setAD_View_ID(id);
        }
        if (getStringValue(atts, "ADProcessNameID") != null) {
            name = atts.getValue("ADProcessNameID");
            if (name != null && name.trim().length() > 0) {
                id = get_IDWithColumn(ctx, "AD_Process", "Name", name);
                if (id <= 0) {
                    element.defer = true;
                    element.unresolved = "AD_Process: " + name;
                    return;
                }
                m_Browse.setAD_Process_ID(id);
            }
        }
        if (getStringValue(atts, "ADWindowNameID") != null) {
            name = atts.getValue("ADWindowNameID");
            if (name != null && name.trim().length() > 0) {
                id = get_IDWithColumn(ctx, "AD_Window", "Name", name);
                if (id <= 0) {
                    element.defer = true;
                    element.unresolved = "AD_Window: " + name;
                    return;
                }
                m_Browse.setAD_Window_ID(id);
            }
        }
        m_Browse.setValue(atts.getValue("Value"));
        m_Browse.setName(atts.getValue("Name"));
        m_Browse.setDescription(getStringValue(atts, "Description"));
        m_Browse.setHelp(getStringValue(atts, "Help"));
        m_Browse.setIsActive(atts.getValue("isActive") != null ? Boolean.valueOf(atts.getValue("isActive")).booleanValue() : true);
        m_Browse.setIsCollapsibleByDefault(atts.getValue("IsCollapsibleByDefault") != null ? Boolean.valueOf(atts.getValue("IsCollapsibleByDefault")).booleanValue() : true);
        m_Browse.setIsDeleteable(atts.getValue("IsDeleteable") != null ? Boolean.valueOf(atts.getValue("IsDeleteable")).booleanValue() : true);
        m_Browse.setIsExecutedQueryByDefault(atts.getValue("IsExecutedQueryByDefault") != null ? Boolean.valueOf(atts.getValue("IsExecutedQueryByDefault")).booleanValue() : true);
        m_Browse.setIsSelectedByDefault(atts.getValue("IsSelectedByDefault") != null ? Boolean.valueOf(atts.getValue("IsSelectedByDefault")).booleanValue() : true);
        m_Browse.setIsShowTotal(atts.getValue("IsShowTotal") != null ? Boolean.valueOf(atts.getValue("IsShowTotal")).booleanValue() : true);
        m_Browse.setEntityType(atts.getValue("EntityType"));
        m_Browse.setWhereClause(atts.getValue("WhereClause"));
        m_Browse.setAccessLevel(atts.getValue("AccessLevel"));
        if (m_Browse.save(getTrxName(ctx)) == true) {
            record_log(ctx, 1, m_Browse.getName(), "Browse", m_Browse.get_ID(), AD_Backup_ID, Object_Status, "AD_Browse", get_IDWithColumn(ctx, "AD_Table", "TableName", "AD_Browse"));
            element.recordId = m_Browse.getAD_Browse_ID();
            browses.add(m_Browse.getAD_Browse_ID());
        } else {
            record_log(ctx, 0, m_Browse.getName(), "Browse", m_Browse.get_ID(), AD_Backup_ID, Object_Status, "AD_Browse", get_IDWithColumn(ctx, "AD_Table", "TableName", "AD_Browse"));
            throw new POSaveFailedException("Browse");
        }
    } else {
        element.skip = true;
    }
}
Also used : Attributes(org.xml.sax.Attributes) POSaveFailedException(org.adempiere.pipo.exception.POSaveFailedException) MBrowse(org.adempiere.model.MBrowse)

Aggregations

MBrowse (org.adempiere.model.MBrowse)16 MBrowseField (org.adempiere.model.MBrowseField)6 FormFrame (org.compiere.apps.form.FormFrame)4 ProcessInfo (org.compiere.process.ProcessInfo)4 AdempiereException (org.adempiere.exceptions.AdempiereException)3 MViewColumn (org.adempiere.model.MViewColumn)3 I_AD_View_Column (org.adempiere.model.I_AD_View_Column)2 CommandReceiver (org.adempiere.pos.command.CommandReceiver)2 CustomForm (org.adempiere.webui.panel.CustomForm)2 ICreateFrom (org.compiere.grid.ICreateFrom)2 GridTab (org.compiere.model.GridTab)2 MBPartner (org.compiere.model.MBPartner)2 MColumn (org.compiere.model.MColumn)2 MProcess (org.compiere.model.MProcess)2 MRole (org.compiere.model.MRole)2 Query (org.compiere.model.Query)2 VBrowser (org.eevolution.form.VBrowser)2 WBrowser (org.eevolution.form.WBrowser)2 Dimension (java.awt.Dimension)1 Point (java.awt.Point)1