/****************************************************************************** * Copyright (C) 2008 Elaine Tan * * Copyright (C) 2008 Idalica Corporation * * This program is free software; you can redistribute it and/or modify it * * under the terms version 2 of the GNU General Public License as published * * by the Free Software Foundation. This program is distributed in the hope * * that it will be useful, but WITHOUT ANY WARRANTY; without even the implied * * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * * with this program; if not, write to the Free Software Foundation, Inc., * * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * *****************************************************************************/ package org.adempiere.webui.dashboard; import org.compiere.model.MRole; import org.compiere.model.Query; import org.compiere.util.DB; import org.compiere.util.Env; import org.compiere.wf.MWFActivity; /** * Dashboard item: Workflow activities, notices and requests * @author Elaine * @date November 20, 2008 * * Contributors: * CarlosRuiz - globalqss - Add unprocessed button to iDempiere * * * Contributors: * Deepak Pansheriya - showing only notes message */ @Deprecated // replaced with DPDocumentStatus public class DPActivitiesModel { public static boolean isShowUnprocessed() { return (Env.getAD_Client_ID(Env.getCtx()) > 0); } /** * Get notice count * @return number of notice */ public static int getNoticeCount() { String sql = "SELECT COUNT(1) FROM AD_Note " + "WHERE AD_Client_ID=? AND AD_User_ID IN (0,?)" + " AND Processed='N' AND AD_BroadcastMessage_ID IS NULL"; int retValue = DB.getSQLValue(null, sql, Env.getAD_Client_ID(Env.getCtx()), Env.getAD_User_ID(Env.getCtx())); return retValue; } /** * Get request count * @return number of request */ public static int getRequestCount() { String sql = MRole.getDefault().addAccessSQL ("SELECT COUNT(1) FROM R_Request " + "WHERE (SalesRep_ID=? OR AD_Role_ID=?) AND Processed='N'" + " AND (DateNextAction IS NULL OR TRUNC(DateNextAction) <= TRUNC(getDate()))" + " AND (R_Status_ID IS NULL OR R_Status_ID IN (SELECT R_Status_ID FROM R_Status WHERE IsClosed='N'))", "R_Request", false, true); // not qualified - RW int retValue = DB.getSQLValue(null, sql, Env.getAD_User_ID(Env.getCtx()), Env.getAD_Role_ID(Env.getCtx())); return retValue; } /** * Get workflow activity count * @return number of workflow activity */ public static int getWorkflowCount() { int AD_User_ID = Env.getAD_User_ID(Env.getCtx()); int AD_Client_ID = Env.getAD_Client_ID(Env.getCtx()); int count = new Query(Env.getCtx(), MWFActivity.Table_Name, MWFActivity.getWhereUserPendingActivities(), null) .setApplyAccessFilter(true, false) .setParameters(AD_User_ID, AD_User_ID, AD_User_ID, AD_User_ID, AD_User_ID, AD_Client_ID) .count(); return count; } /** * Get unprocessed count * @return number of unprocessed */ public static int getUnprocessedCount() { if (! isShowUnprocessed()) return 0; String sql = "SELECT COUNT(1) FROM RV_Unprocessed " + "WHERE AD_Client_ID=? AND CreatedBy=?"; int retValue = DB.getSQLValue(null, sql, Env.getAD_Client_ID(Env.getCtx()), Env.getAD_User_ID(Env.getCtx())); return retValue; } }