Search in sources :

Example 21 with AdempiereException

use of org.adempiere.exceptions.AdempiereException in project adempiere by adempiere.

the class ZkReportViewer method cmd_find.

//	cmd_report
/**
	 * 	Query Report
	 */
private void cmd_find() {
    int AD_Table_ID = m_reportEngine.getPrintFormat().getAD_Table_ID();
    String title = null;
    String tableName = null;
    //	Get Find Tab Info
    String sql = "SELECT t.AD_Tab_ID " + //	,w.Name, t.Name, w.IsDefault, t.SeqNo, ABS (tt.AD_Window_ID-t.AD_Window_ID)
    "FROM AD_Tab t" + " INNER JOIN AD_Window w ON (t.AD_Window_ID=w.AD_Window_ID)" + " INNER JOIN AD_Table tt ON (t.AD_Table_ID=tt.AD_Table_ID) " + "WHERE tt.AD_Table_ID=? " + "ORDER BY w.IsDefault DESC, t.SeqNo, ABS (tt.AD_Window_ID-t.AD_Window_ID)";
    int AD_Tab_ID = DB.getSQLValue(null, sql, AD_Table_ID);
    // ASP
    MClient client = MClient.get(Env.getCtx());
    String ASPFilter = "";
    if (client.isUseASP())
        ASPFilter = "     AND (   AD_Tab_ID IN ( " + // Just ASP subscribed tabs for client "
        "              SELECT t.AD_Tab_ID " + "                FROM ASP_Tab t, ASP_Window w, ASP_Level l, ASP_ClientLevel cl " + "               WHERE w.ASP_Level_ID = l.ASP_Level_ID " + "                 AND cl.AD_Client_ID = " + client.getAD_Client_ID() + "                 AND cl.ASP_Level_ID = l.ASP_Level_ID " + "                 AND t.ASP_Window_ID = w.ASP_Window_ID " + "                 AND t.IsActive = 'Y' " + "                 AND w.IsActive = 'Y' " + "                 AND l.IsActive = 'Y' " + "                 AND cl.IsActive = 'Y' " + // Show
        "                 AND t.ASP_Status = 'S') " + "        OR AD_Tab_ID IN ( " + // + show ASP exceptions for client
        "              SELECT AD_Tab_ID " + "                FROM ASP_ClientException ce " + "               WHERE ce.AD_Client_ID = " + client.getAD_Client_ID() + "                 AND ce.IsActive = 'Y' " + "                 AND ce.AD_Tab_ID IS NOT NULL " + "                 AND ce.AD_Field_ID IS NULL " + // Show
        "                 AND ce.ASP_Status = 'S') " + "       ) " + "   AND AD_Tab_ID NOT IN ( " + // minus hide ASP exceptions for client
        "          SELECT AD_Tab_ID " + "            FROM ASP_ClientException ce " + "           WHERE ce.AD_Client_ID = " + client.getAD_Client_ID() + "             AND ce.IsActive = 'Y' " + "             AND ce.AD_Tab_ID IS NOT NULL " + "             AND ce.AD_Field_ID IS NULL " + // Hide
        "             AND ce.ASP_Status = 'H')";
    //
    sql = "SELECT Name, TableName FROM AD_Tab_v WHERE AD_Tab_ID=? " + ASPFilter;
    if (!Env.isBaseLanguage(Env.getCtx(), "AD_Tab"))
        sql = "SELECT Name, TableName FROM AD_Tab_vt WHERE AD_Tab_ID=?" + " AND AD_Language='" + Env.getAD_Language(Env.getCtx()) + "' " + ASPFilter;
    try {
        PreparedStatement pstmt = DB.prepareStatement(sql, null);
        pstmt.setInt(1, AD_Tab_ID);
        ResultSet rs = pstmt.executeQuery();
        //
        if (rs.next()) {
            title = rs.getString(1);
            tableName = rs.getString(2);
        }
        //
        rs.close();
        pstmt.close();
    } catch (SQLException e) {
        log.log(Level.SEVERE, sql, e);
    }
    GridField[] findFields = null;
    if (tableName != null)
        findFields = GridField.createFields(m_ctx, m_WindowNo, 0, AD_Tab_ID);
    //	FR [ 295 ]
    if (findFields == null) {
        //	No Tab for Table exists
        if (launchProcessPara()) {
            try {
                renderReport();
            } catch (Exception e) {
                throw new AdempiereException("Failed to render report", e);
            }
            revalidate();
        } else {
            return;
        }
    } else {
        FindWindow find = new FindWindow(m_WindowNo, title, AD_Table_ID, tableName, "", findFields, 1, AD_Tab_ID);
        if (!find.isCancel()) {
            m_reportEngine.setQuery(find.getQuery());
            try {
                renderReport();
            } catch (Exception e) {
                throw new AdempiereException("Failed to render report", e);
            }
            revalidate();
        }
        find = null;
    }
}
Also used : SQLException(java.sql.SQLException) AdempiereException(org.adempiere.exceptions.AdempiereException) ResultSet(java.sql.ResultSet) PreparedStatement(java.sql.PreparedStatement) GridField(org.compiere.model.GridField) SQLException(java.sql.SQLException) AdempiereException(org.adempiere.exceptions.AdempiereException) MClient(org.compiere.model.MClient)

Example 22 with AdempiereException

use of org.adempiere.exceptions.AdempiereException in project adempiere by adempiere.

the class ZkReportViewer method init.

private void init() {
    Borderlayout layout = new Borderlayout();
    layout.setStyle("position: absolute; height: 99%; width: 99%");
    this.appendChild(layout);
    this.setStyle("width: 100%; height: 100%; position: absolute");
    toolBar.setHeight("26px");
    previewType.setMold("select");
    previewType.appendItem("PDF", "PDF");
    previewType.appendItem("HTML", "HTML");
    previewType.appendItem("Excel", "XLS");
    toolBar.appendChild(previewType);
    previewType.addEventListener(Events.ON_SELECT, this);
    toolBar.appendChild(new Separator("vertical"));
    //set default type
    String type = m_reportEngine.getPrintFormat().isForm() ? MSysConfig.getValue("ZK_REPORT_FORM_OUTPUT_TYPE") : MSysConfig.getValue("ZK_REPORT_TABLE_OUTPUT_TYPE");
    if ("PDF".equals(type))
        previewType.setSelectedIndex(0);
    else if ("HTML".equals(type))
        previewType.setSelectedIndex(1);
    else if ("XLS".equals(type))
        previewType.setSelectedIndex(2);
    else
        //fallback to PDF
        previewType.setSelectedIndex(0);
    labelDrill.setValue(Msg.getMsg(Env.getCtx(), "Drill") + ": ");
    toolBar.appendChild(labelDrill);
    comboDrill.setMold("select");
    comboDrill.setTooltiptext(Msg.getMsg(Env.getCtx(), "Drill"));
    toolBar.appendChild(comboDrill);
    toolBar.appendChild(new Separator("vertical"));
    comboReport.setMold("select");
    comboReport.setTooltiptext(Msg.translate(Env.getCtx(), "AD_PrintFormat_ID"));
    toolBar.appendChild(comboReport);
    //	FR [ 237 ]
    //		toolBar.appendChild(new Separator("vertical"));
    comboReportView.setMold("select");
    comboReportView.setTooltiptext(Msg.translate(Env.getCtx(), "AD_ReportView_ID"));
    toolBar.appendChild(comboReportView);
    summary.setText(Msg.getMsg(Env.getCtx(), "Summary"));
    toolBar.appendChild(summary);
    bCustomize.setImage(ServletFns.resolveThemeURL("~./images/Preference24.png"));
    bCustomize.setTooltiptext(Msg.getMsg(Env.getCtx(), "PrintCustomize"));
    toolBar.appendChild(bCustomize);
    bCustomize.addEventListener(Events.ON_CLICK, this);
    bFind.setImage(ServletFns.resolveThemeURL("~./images/Find24.png"));
    bFind.setTooltiptext(Msg.getMsg(Env.getCtx(), "Find"));
    toolBar.appendChild(bFind);
    bFind.addEventListener(Events.ON_CLICK, this);
    toolBar.appendChild(new Separator("vertical"));
    bSendMail.setImage(ServletFns.resolveThemeURL("~./images/SendMail24.png"));
    bSendMail.setTooltiptext(Msg.getMsg(Env.getCtx(), "SendMail"));
    toolBar.appendChild(bSendMail);
    bSendMail.addEventListener(Events.ON_CLICK, this);
    bArchive.setImage(ServletFns.resolveThemeURL("~./images/Archive24.png"));
    bArchive.setTooltiptext(Msg.getMsg(Env.getCtx(), "Archive"));
    toolBar.appendChild(bArchive);
    bArchive.addEventListener(Events.ON_CLICK, this);
    if (m_isCanExport) {
        bExport.setImage(ServletFns.resolveThemeURL("~./images/ExportX24.png"));
        bExport.setTooltiptext(Msg.getMsg(Env.getCtx(), "Export"));
        toolBar.appendChild(bExport);
        bExport.addEventListener(Events.ON_CLICK, this);
    }
    toolBar.appendChild(new Separator("vertical"));
    bRefresh.setImage(ServletFns.resolveThemeURL("~./images/Refresh24.png"));
    bRefresh.setTooltiptext(Msg.getMsg(Env.getCtx(), "Refresh"));
    toolBar.appendChild(bRefresh);
    bRefresh.addEventListener(Events.ON_CLICK, this);
    North north = new North();
    layout.appendChild(north);
    north.appendChild(toolBar);
    Center center = new Center();
    center.setHflex("true");
    center.setVflex("true");
    layout.appendChild(center);
    iframe = new Iframe();
    iframe.setId("reportFrame");
    iframe.setHeight("100%");
    iframe.setWidth("100%");
    iframe.addEventListener(Events.ON_CLICK, this);
    iframe.addEventListener(Events.ON_RIGHT_CLICK, this);
    center.appendChild(iframe);
    try {
        renderReport();
    } catch (Exception e) {
        throw new AdempiereException("Failed to render report", e);
    }
    iframe.setAutohide(true);
    this.setBorder("normal");
    this.addEventListener("onZoom", new EventListener() {

        public void onEvent(Event event) throws Exception {
            if (event instanceof ZoomEvent) {
                ZoomEvent ze = (ZoomEvent) event;
                if (ze.getData() != null && ze.getData() instanceof MQuery) {
                    AEnv.zoom((MQuery) ze.getData());
                }
            }
        }
    });
    this.addEventListener(DrillEvent.ON_DRILL_ACROSS, new EventListener() {

        public void onEvent(Event event) throws Exception {
            if (event instanceof DrillEvent) {
                DrillEvent de = (DrillEvent) event;
                if (de.getData() != null && de.getData() instanceof MQuery) {
                    MQuery query = (MQuery) de.getData();
                    Listitem item = comboDrill.getSelectedItem();
                    if (item != null && item.getValue() != null && item.toString().trim().length() > 0) {
                        query.setTableName(item.getValue().toString());
                        executeDrill(query, event.getTarget());
                    }
                }
            }
        }
    });
    this.addEventListener(DrillEvent.ON_DRILL_DOWN, new EventListener() {

        public void onEvent(Event event) throws Exception {
            if (event instanceof DrillEvent) {
                DrillEvent de = (DrillEvent) event;
                if (de.getData() != null && de.getData() instanceof MQuery) {
                    MQuery query = (MQuery) de.getData();
                    executeDrill(query, event.getTarget());
                }
            }
        }
    });
}
Also used : Iframe(org.zkoss.zul.Iframe) Center(org.zkoss.zul.Center) Listitem(org.zkoss.zul.Listitem) MQuery(org.compiere.model.MQuery) Borderlayout(org.zkoss.zul.Borderlayout) SQLException(java.sql.SQLException) AdempiereException(org.adempiere.exceptions.AdempiereException) ZoomEvent(org.adempiere.webui.event.ZoomEvent) AdempiereException(org.adempiere.exceptions.AdempiereException) ZoomEvent(org.adempiere.webui.event.ZoomEvent) Event(org.zkoss.zk.ui.event.Event) DrillEvent(org.adempiere.webui.event.DrillEvent) DrillEvent(org.adempiere.webui.event.DrillEvent) North(org.zkoss.zul.North) EventListener(org.zkoss.zk.ui.event.EventListener) Separator(org.zkoss.zul.Separator)

Example 23 with AdempiereException

use of org.adempiere.exceptions.AdempiereException in project adempiere by adempiere.

the class GenericZoomProvider method retrieveZoomInfos.

public List<ZoomInfoFactory.ZoomInfo> retrieveZoomInfos(PO po) {
    String sql = "SELECT DISTINCT ws.AD_Window_ID, ws.Name, wp.AD_Window_ID, wp.Name, t.TableName, tts.AD_Tab_ID, ttp.AD_Tab_ID " + "FROM AD_Table t ";
    boolean baseLanguage = Env.isBaseLanguage(Env.getCtx(), "AD_Window");
    if (baseLanguage)
        sql += "INNER JOIN AD_Window ws ON (t.AD_Window_ID=ws.AD_Window_ID)" + " LEFT OUTER JOIN AD_Window wp ON (t.PO_Window_ID=wp.AD_Window_ID) ";
    else
        sql += "INNER JOIN AD_Window_Trl ws ON (t.AD_Window_ID=ws.AD_Window_ID AND ws.AD_Language=?)" + " LEFT OUTER JOIN AD_Window_Trl wp ON (t.PO_Window_ID=wp.AD_Window_ID AND wp.AD_Language=?) ";
    // WARNING - HardCoded: first tab must have SeqNo = 10
    sql += // first tab so
    "JOIN AD_Tab tts ON (tts.AD_Window_ID=ws.AD_Window_ID AND tts.AD_Table_ID=t.AD_Table_ID AND tts.SeqNo=10)" + // first tab po
    " LEFT OUTER JOIN AD_Tab ttp ON (ttp.AD_Window_ID=wp.AD_Window_ID AND ttp.AD_Table_ID=t.AD_Table_ID AND ttp.SeqNo=10)" + // No Import
    " WHERE t.TableName NOT LIKE 'I%'" + " AND t.AD_Table_ID IN " + "(SELECT AD_Table_ID FROM AD_Column " + // #x
    "WHERE ColumnName=? AND IsKey='N' AND IsParent='N') " + "ORDER BY 2";
    final PreparedStatement pstmt = DB.prepareStatement(sql, null);
    ResultSet rs = null;
    try {
        int index = 1;
        if (!baseLanguage) {
            pstmt.setString(index++, Env.getAD_Language(Env.getCtx()));
            pstmt.setString(index++, Env.getAD_Language(Env.getCtx()));
        }
        pstmt.setString(index++, po.get_TableName() + "_ID");
        rs = pstmt.executeQuery();
        final List<ZoomInfoFactory.ZoomInfo> result = new ArrayList<ZoomInfoFactory.ZoomInfo>();
        while (rs.next()) {
            int AD_Window_ID = rs.getInt(1);
            String Name = rs.getString(2);
            int PO_Window_ID = rs.getInt(3);
            int AD_Tab_ID = rs.getInt(6);
            int PO_Tab_ID = rs.getInt(7);
            String targetTableName = rs.getString(5);
            final MQuery query = evaluateQuery(targetTableName, AD_Tab_ID, Name, po);
            result.add(new ZoomInfoFactory.ZoomInfo(AD_Window_ID, query, Name));
            if (PO_Window_ID != 0 && PO_Tab_ID != 0) {
                Name = rs.getString(4);
                final MQuery querypo = evaluateQuery(targetTableName, PO_Tab_ID, Name, po);
                result.add(new ZoomInfoFactory.ZoomInfo(PO_Window_ID, querypo, Name));
            }
        }
        return result;
    } catch (SQLException e) {
        logger.log(Level.SEVERE, sql, e);
        throw new AdempiereException(e);
    } finally {
        DB.close(rs, pstmt);
    }
}
Also used : SQLException(java.sql.SQLException) ArrayList(java.util.ArrayList) PreparedStatement(java.sql.PreparedStatement) MQuery(org.compiere.model.MQuery) AdempiereException(org.adempiere.exceptions.AdempiereException) ResultSet(java.sql.ResultSet)

Example 24 with AdempiereException

use of org.adempiere.exceptions.AdempiereException in project adempiere by adempiere.

the class POWrapper method create.

@SuppressWarnings("unchecked")
public static <T> T create(Object obj, Class<T> cl, boolean useOldValues, String trlAdLanguage) {
    if (obj == null) {
        return null;
    }
    if (cl.isInstance(obj) && !useOldValues && trlAdLanguage == null) {
        return (T) obj;
    }
    final PO po;
    if (obj instanceof PO) {
        po = (PO) obj;
    } else {
        po = getPO(obj);
    }
    if (!(po instanceof PO)) {
        throw new AdempiereException("Not a PO object - " + obj);
    }
    //
    // Check TableName
    final String classTableName = InterfaceWrapperHelper.getTableNameOrNull(cl);
    if (classTableName != null) {
        final String poTableName = po.get_TableName();
        if (!poTableName.equals(classTableName)) {
            throw new IllegalArgumentException("PO " + po + " (TableName:" + poTableName + ") and class " + cl + " (TableName:" + classTableName + ") are not compatible");
        }
    }
    return (T) Proxy.newProxyInstance(cl.getClassLoader(), new Class<?>[] { cl }, new POWrapper(cl, po, useOldValues, trlAdLanguage));
}
Also used : AdempiereException(org.adempiere.exceptions.AdempiereException) PO(org.compiere.model.PO)

Example 25 with AdempiereException

use of org.adempiere.exceptions.AdempiereException in project adempiere by adempiere.

the class GridTabWrapper method invoke.

@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
    String methodName = method.getName();
    if (methodName.startsWith("set") && args.length == 1) {
        final Class<?> paramType = method.getParameterTypes()[0];
        final String propertyName;
        final Object value;
        if (isModelInterface(paramType)) {
            // Model setter - me00_03374
            propertyName = methodName.substring(3) + "_ID";
            value = InterfaceWrapperHelper.getId(args[0]);
        } else {
            propertyName = methodName.substring(3);
            value = POWrapper.checkZeroIdValue(propertyName, args[0]);
        }
        final String errorMsg = m_gridTab.setValue(propertyName, value);
        if (!Util.isEmpty(errorMsg)) {
            final String msg = "Attempt to set field " + propertyName + " of grid tab " + m_gridTab + " to value '" + value + " (original: " + args[0] + ")" + "' returned an error message: " + errorMsg;
            if (failOnColumnNotFound) {
                throw new AdempiereException(msg);
            } else {
                log.severe(msg);
            }
        }
        return null;
    } else if (methodName.startsWith("get") && (args == null || args.length == 0) && // metas: GridTab direct calls should be forwarded to GridTab directly
    !methodName.startsWith("get_")) {
        String propertyName = methodName.substring(3);
        Object value = m_gridTab.getValue(propertyName);
        if (value != null) {
            return value;
        }
        //
        if (method.getReturnType() == int.class) {
            value = Integer.valueOf(0);
        } else if (method.getReturnType() == BigDecimal.class) {
            value = BigDecimal.ZERO;
        } else if (isModelInterface(method.getReturnType())) {
            value = getReferencedObject(propertyName, method);
        } else if (PO.class.isAssignableFrom(method.getReturnType())) {
            throw new IllegalArgumentException("Method not supported - " + methodName);
        }
        return value;
    } else if (methodName.startsWith("is") && (args == null || args.length == 0)) {
        String propertyName = methodName.substring(2);
        GridField field = m_gridTab.getField(propertyName);
        if (field != null) {
            final Object value = field.getValue();
            return value instanceof Boolean ? value : "Y".equals(value);
        }
        //
        field = m_gridTab.getField("Is" + propertyName);
        if (field != null) {
            final Object value = field.getValue();
            return value instanceof Boolean ? value : "Y".equals(value);
        }
        //
        throw new IllegalArgumentException("Method not supported - " + methodName);
    } else if (method.getName().equals("get_TableName")) {
        return m_gridTab.get_TableName();
    } else {
        // TODO: this is not working; we need to find the similar method in m_gridTab.getClass() class
        return method.invoke(m_gridTab, args);
    }
}
Also used : AdempiereException(org.adempiere.exceptions.AdempiereException) GridField(org.compiere.model.GridField)

Aggregations

AdempiereException (org.adempiere.exceptions.AdempiereException)216 BigDecimal (java.math.BigDecimal)64 SQLException (java.sql.SQLException)42 ResultSet (java.sql.ResultSet)29 PreparedStatement (java.sql.PreparedStatement)28 MProduct (org.compiere.model.MProduct)28 ArrayList (java.util.ArrayList)27 Timestamp (java.sql.Timestamp)23 Query (org.compiere.model.Query)19 PO (org.compiere.model.PO)16 MBPartner (org.compiere.model.MBPartner)14 Properties (java.util.Properties)13 File (java.io.File)12 List (java.util.List)12 ProcessInfo (org.compiere.process.ProcessInfo)12 Arrays (java.util.Arrays)10 Env (org.compiere.util.Env)10 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)9 MMovement (org.compiere.model.MMovement)9 Date (java.util.Date)8