Example #1
0
        /// <summary>
        /// Send notice to role
        /// </summary>
        /// <param name="list">change information</param>
        private List <int> SendRoleNotice()
        {
            List <int> _users = new List <int>();
            string     sql    = @"SELECT AD_User.ad_user_ID,
                         AD_User_Roles.AD_Role_ID
                        FROM AD_User_Roles
                        INNER JOIN ad_user
                        ON (AD_User_Roles.AD_User_ID    =AD_User.AD_User_ID)
                        WHERE AD_User_Roles.AD_Role_ID IN
                          (SELECT AD_Role_ID
                          FROM R_RequestTypeUpdates
                          WHERE AD_Role_ID   IS NOT NULL
                          AND R_RequestType_ID=" + _req.GetR_RequestType_ID() + @"
                          AND IsActive        ='Y'
                          )
                        AND AD_User_Roles.AD_User_ID NOT IN
                          (SELECT u.AD_User_ID
                          FROM RV_RequestUpdates_Only ru
                          INNER JOIN AD_User u
                          ON (ru.AD_User_ID=u.AD_User_ID)
                          LEFT OUTER JOIN AD_User_Roles r
                          ON (u.AD_User_ID     =r.AD_User_ID)
                          WHERE ru.R_Request_ID=" + _req.GetR_Request_ID() + @"
                          )
                        AND ad_user.email IS NOT NULL";

            DataSet _ds = DB.ExecuteDataset(sql, null, null);

            if (_ds != null && _ds.Tables[0].Rows.Count > 0)
            {
                _users = validateUsers(_ds);
            }
            return(_users);
        }
        }       //	findSalesRep

        /**
         *  Find SalesRep/User based on Request Type and Question.
         *  @param request request
         *  @return SalesRep_ID user
         */
        private int FindSalesRep(MRequest request)
        {
            String QText = request.GetSummary();

            if (QText == null)
            {
                QText = "";
            }
            else
            {
                QText = QText.ToUpper();
            }
            //
            MRequestProcessorRoute[] routes = m_model.GetRoutes(false);
            for (int i = 0; i < routes.Length; i++)
            {
                MRequestProcessorRoute route = routes[i];

                //	Match first on Request Type
                if ((request.GetR_RequestType_ID() == route.GetR_RequestType_ID()) &&
                    (route.GetR_RequestType_ID() != 0))
                {
                    return(route.GetAD_User_ID());
                }

                //	Match on element of keyword
                String keyword = route.GetKeyword();
                if (keyword != null)
                {
                    StringTokenizer st = new StringTokenizer(keyword.ToUpper(), " ,;\t\n\r\f");
                    while (st.HasMoreElements())
                    {
                        if (QText.IndexOf(st.NextToken()) != -1)
                        {
                            return(route.GetAD_User_ID());
                        }
                    }
                }
            }   //	for all routes

            return(m_model.GetSupervisor_ID());
        }   //  findSalesRep
Example #3
0
        protected override string DoIt()
        {
            _req = new MRequest(GetCtx(), GetRecord_ID(), null);

            // check mail template if found on request or request type.
            mailText_ID = _req.GetR_MailText_ID();
            if (mailText_ID == 0)
            {
                MRequestType reqType = new MRequestType(GetCtx(), _req.GetR_RequestType_ID(), null);
                if (reqType.GetR_MailText_ID() > 0)
                {
                    mailText_ID = reqType.GetR_MailText_ID();
                }
            }
            if (mailText_ID == 0)
            {
                GetReqHistory();
                if (_reqAction == null)
                {
                    return(Msg.GetMsg(GetCtx(), "R_NoReqChanges"));
                }
                string changedValues = _reqAction.GetChangedValues();
                bool   _changed      = false;
                sendInfo = new List <String>();

                if (!string.IsNullOrEmpty(changedValues))
                {
                    string[] strValues = changedValues.Split(',');
                    if (strValues.Length > 0)
                    {
                        for (int i = 0; i < strValues.Length; i++)
                        {
                            _changed = true;
                            sendInfo.Add(strValues[i]);
                        }
                    }
                }

                #region commented
                //
                //if (_req.GetR_RequestType_ID() != _reqAction.GetR_RequestType_ID() && _reqAction.GetR_RequestType_ID() > 0)
                //{
                //    _changed = true;
                //    sendInfo.Add("R_RequestType_ID");
                //}
                //if (_req.GetR_Group_ID() != _reqAction.GetR_Group_ID() && _reqAction.GetR_Group_ID() > 0)
                //{
                //    _changed = true;
                //    sendInfo.Add("R_Group_ID");
                //}
                //if (_req.GetR_Category_ID() != _reqAction.GetR_Category_ID() && _reqAction.GetR_Category_ID() > 0)
                //{
                //    _changed = true;
                //    sendInfo.Add("R_Category_ID");
                //}
                //if (_req.GetR_Status_ID() != _reqAction.GetR_Status_ID() && _reqAction.GetR_Status_ID() > 0)
                //{
                //    _changed = true;
                //    sendInfo.Add("R_Status_ID");
                //}
                //if (_req.GetR_Resolution_ID() != _reqAction.GetR_Resolution_ID() && _reqAction.GetR_Resolution_ID() > 0)
                //{
                //    _changed = true;
                //    sendInfo.Add("R_Resolution_ID");
                //}
                ////
                //if (_req.GetSalesRep_ID() != _reqAction.GetSalesRep_ID() && _reqAction.GetSalesRep_ID() > 0)
                //{
                //    _changed = true;
                //    sendInfo.Add("SalesRep_ID");
                //}
                ////
                //if (_req.GetPriority() != _reqAction.GetPriority() && !string.IsNullOrEmpty(_reqAction.GetPriority()))
                //{
                //    _changed = true;
                //    sendInfo.Add("Priority");
                //}
                //if (_req.GetPriorityUser() != _reqAction.GetPriorityUser() && !string.IsNullOrEmpty(_reqAction.GetPriorityUser()))
                //{
                //    _changed = true;
                //    sendInfo.Add("PriorityUser");
                //}
                //if (_req.GetSummary() != _reqAction.GetSummary() && !string.IsNullOrEmpty(_reqAction.GetSummary()))
                //{
                //    _changed = true;
                //    sendInfo.Add("Summary");
                //}
                #endregion
                if (sendInfo.Count > 0 && _changed)
                {
                    prepareNotificMsg(sendInfo);
                    // For Role Changes
                    Thread thread = new Thread(new ThreadStart(() => SendNotices(sendInfo)));
                    thread.Start();
                    return(Msg.GetMsg(GetCtx(), "R_EmailBackgrndRun"));
                }
                else
                {
                    return(Msg.GetMsg(GetCtx(), "R_NoReqChanges"));
                }
            }
            else
            {
                prepareNotificMsg(sendInfo);
                // For Role Changes
                Thread thread = new Thread(new ThreadStart(() => SendNotices(sendInfo)));
                thread.Start();
                return(Msg.GetMsg(GetCtx(), "R_EmailBackgrndRun"));
            }

            return("");
        }