public List<StageCustomerEntity> GetUserOpportunitys(string userid, string teamid, string begintime, string endtime, string agentid, string clientid)
        {
            List<StageCustomerEntity> list = new List<StageCustomerEntity>();

            DataSet ds = SalesRPTDAL.BaseProvider.GetUserOpportunitys(userid, teamid, begintime, endtime, agentid, clientid);

            DataTable dt = ds.Tables["Users"];

            var stages = SystemBusiness.BaseBusiness.GetOpportunityStages(agentid, clientid);

            #region 统计所有
            var teams = SystemBusiness.BaseBusiness.GetTeams(agentid);
            foreach (var team in teams)
            {
                StageCustomerEntity model = new StageCustomerEntity();

                model.Name = team.TeamName;
                model.GUID = team.TeamID;

                model.Stages = new List<StageCustomerItem>();
                model.ChildItems = new List<StageCustomerEntity>();
                if (team.Users.Count == 0)
                {
                    StageCustomerEntity childModel = new StageCustomerEntity();
                    childModel.GUID = "";
                    childModel.Name = "";
                    childModel.PID = team.TeamID;
                    childModel.PName = team.TeamName;
                    childModel.Stages = new List<StageCustomerItem>();
                    childModel.SCSRNum = 0;
                    childModel.OCSRNum = 0;
                    childModel.NCSRNum = 0;
                    childModel.TotalNum = 0;
                    foreach (var stage in stages)
                    {
                        StageCustomerItem childItem = new StageCustomerItem();
                        childItem.Name = stage.StageName;
                        childItem.Count = 0;
                        childItem.Money = 0;
                        childModel.Stages.Add(childItem);
                        StageCustomerItem item = new StageCustomerItem();
                        item.Name = stage.StageName;
                        item.StageID = stage.StageID;
                        item.Count = childItem.Count;
                        item.Money = childItem.Money;
                        model.Stages.Add(item);
                    }
                    model.ChildItems.Add(childModel);
                }
                //遍历成员
                foreach (var user in team.Users)
                {
                    StageCustomerEntity childModel = new StageCustomerEntity();
                    childModel.GUID = user.UserID;
                    childModel.Name = user.Name;
                    childModel.PID = team.TeamID;
                    childModel.Stages = new List<StageCustomerItem>();

                    //遍历阶段
                    foreach (var stage in stages)
                    {
                        StageCustomerItem childItem = new StageCustomerItem();
                        childItem.Name = stage.StageName;

                        var drs = dt.Select("StageID='" + stage.StageID + "' and OwnerID='" + user.UserID + "'");

                        if (drs.Count() > 0)
                        {
                            childItem.Count = Convert.ToInt32(drs[0]["Value"]);
                            childItem.Money = Convert.ToDecimal(drs[0]["TotalMoney"]);
                        }
                        else
                        {
                            childItem.Count = 0;
                            childItem.Money = 0;
                        }

                        if (model.Stages.Where(m => m.StageID == stage.StageID).Count() > 0)
                        {
                            model.Stages.Where(m => m.StageID == stage.StageID).FirstOrDefault().Count += childItem.Count;
                            model.Stages.Where(m => m.StageID == stage.StageID).FirstOrDefault().Money += childItem.Money;
                        }
                        else
                        {
                            StageCustomerItem item = new StageCustomerItem();
                            item.Name = stage.StageName;
                            item.StageID = stage.StageID;
                            item.Count = childItem.Count;
                            item.Money = childItem.Money;
                            model.Stages.Add(item);
                        }

                        childModel.Stages.Add(childItem);
                    }
                    model.ChildItems.Add(childModel);
                }
                list.Add(model);
            }

            #endregion


            return list;
        }
        public List<StageCustomerEntity> GetUserCustomers(string userid, string teamid, string begintime, string endtime, string agentid, string clientid)
        {
            List<StageCustomerEntity> list = new List<StageCustomerEntity>();

            DataSet ds = CustomerRPTDAL.BaseProvider.GetUserCustomers(userid, teamid, begintime, endtime, agentid, clientid);

            DataTable dt = ds.Tables["Users"];

            int[] stages = {1, 2, 3};



            if (!string.IsNullOrEmpty(userid))
            {
                #region 统计个人
               
                StageCustomerEntity model = new StageCustomerEntity();
                var usertemp = OrganizationBusiness.GetUserByUserID(userid, agentid);
                model.Name = usertemp.Name;
                var team = SystemBusiness.BaseBusiness.GetTeamByID(usertemp.TeamID, agentid);
                model.Stages = new List<StageCustomerItem>();
                model.PID = usertemp.TeamID;
                model.PName = team==null ?"暂无团队":team.TeamName;
                model.SCSRNum = 0;
                model.TotalNum = 0;
                model.OCSRNum = 0;
                model.NCSRNum = 0;
                foreach (var stage in stages)
                {
                    StageCustomerItem item = new StageCustomerItem();
                    item.Name = stage == 1 ? "客户" : stage == 2 ? "机会客户" : "成交客户";
                    var drs = dt.Select("StageStatus='" + stage + "'");  
                    if (drs.Count() > 0)
                    {
                        item.Count = Convert.ToInt32(drs[0]["Value"]);
                    } else {
                        item.Count = 0;
                    }
                    model.SCSRNum += (stage == 3 ? item.Count : 0);
                    model.OCSRNum += (stage == 2 ? item.Count : 0);
                    model.NCSRNum += (stage == 1 ? item.Count : 0);
                    model.TotalNum += item.Count;
                    model.Stages.Add(item);
                }
                list.Add(model);

                #endregion
            }
            else if (!string.IsNullOrEmpty(teamid))
            {
                #region 统计团队
                var team = SystemBusiness.BaseBusiness.GetTeamByID(teamid, agentid);
                StageCustomerEntity model = new StageCustomerEntity();

                model.Name = team.TeamName;
                model.GUID = team.TeamID;

                model.Stages = new List<StageCustomerItem>();
                model.ChildItems = new List<StageCustomerEntity>();
                if (team.Users.Count == 0)
                {
                    StageCustomerEntity childModel = new StageCustomerEntity();
                    childModel.GUID = "";
                    childModel.Name = "";
                    childModel.PID = team.TeamID;
                    childModel.PName = team.TeamName;
                    childModel.Stages = new List<StageCustomerItem>();
                    childModel.SCSRNum = 0;
                    childModel.OCSRNum = 0;
                    childModel.NCSRNum = 0;
                    childModel.TotalNum = 0;
                    foreach (var stage in stages)
                    {
                        StageCustomerItem childItem = new StageCustomerItem();
                        var stageName = stage == 1 ? "客户" : stage == 2 ? "机会客户" : "成交客户";
                        childItem.Name = stageName;
                        childItem.Count = 0;
                        childModel.Stages.Add(childItem);
                        StageCustomerItem item = new StageCustomerItem();
                        item.Name = stageName;
                        item.StageID = stage.ToString();
                        item.Count = childItem.Count;
                        model.Stages.Add(item);
                    }
                    model.ChildItems.Add(childModel);
                }
                //遍历成员
                foreach (var user in team.Users)
                {
                    StageCustomerEntity childModel = new StageCustomerEntity();
                    childModel.GUID = user.UserID;
                    childModel.PName = team.TeamName;
                    childModel.Name = user.Name;
                    childModel.PID = team.TeamID;
                    childModel.SCSRNum = 0;
                    childModel.OCSRNum = 0;
                    childModel.NCSRNum = 0;
                    childModel.TotalNum = 0;
                    childModel.Stages = new List<StageCustomerItem>();
                    //遍历阶段
                    foreach (var stage in stages)
                    {
                        StageCustomerItem childItem = new StageCustomerItem();
                        var stageName = stage == 1 ? "客户" : stage == 2 ? "机会客户" : "成交客户";
                        childItem.Name = stageName;

                        var drs = dt.Select("StageStatus='" + stage + "' and OwnerID='" + user.UserID + "'");
                        if (drs.Count() > 0)
                        {
                            childItem.Count = Convert.ToInt32(drs[0]["Value"]);
                        }
                        else
                        {
                            childItem.Count = 0;
                        }
                        childModel.SCSRNum += (stage == 3 ? childItem.Count : 0);
                        childModel.OCSRNum += (stage == 2 ? childItem.Count : 0);
                        childModel.NCSRNum += (stage == 1 ? childItem.Count : 0);
                        childModel.TotalNum += childItem.Count;
                        if (model.Stages.Where(m => m.StageID == stage.ToString()).Count() > 0)
                        {
                            model.Stages.Where(m => m.StageID == stage.ToString()).FirstOrDefault().Count += childItem.Count;
                        }
                        else 
                        {
                            StageCustomerItem item = new StageCustomerItem();
                            item.Name = stageName;
                            item.StageID = stage.ToString();
                            item.Count = childItem.Count;
                            model.Stages.Add(item);
                        }

                        childModel.Stages.Add(childItem);
                    }
                    model.ChildItems.Add(childModel);
                }
                model.NCSRNum = model.ChildItems.Sum(x => x.NCSRNum);
                model.OCSRNum = model.ChildItems.Sum(x => x.OCSRNum);
                model.TotalNum = model.ChildItems.Sum(x => x.TotalNum);
                model.SCSRNum = model.ChildItems.Sum(x => x.SCSRNum);
                list.Add(model);

                #endregion
            }
            else
            {
                #region 统计所有
                var teams = SystemBusiness.BaseBusiness.GetTeams(agentid);
                foreach (var team in teams)
                {
                    StageCustomerEntity model = new StageCustomerEntity();

                    model.Name = team.TeamName;
                    model.GUID = team.TeamID;

                    model.Stages = new List<StageCustomerItem>();
                    model.ChildItems = new List<StageCustomerEntity>();
                    if (team.Users.Count == 0)
                    {
                        StageCustomerEntity childModel = new StageCustomerEntity();
                        childModel.GUID = "";
                        childModel.Name ="";
                        childModel.PID = team.TeamID;
                        childModel.PName = team.TeamName;
                        childModel.Stages = new List<StageCustomerItem>();
                        childModel.SCSRNum = 0;
                        childModel.OCSRNum = 0;
                        childModel.NCSRNum = 0;
                        childModel.TotalNum = 0;
                        foreach (var stage in stages)
                        {
                            StageCustomerItem childItem = new StageCustomerItem();
                            var stageName = stage == 1 ? "客户" : stage == 2 ? "机会客户" : "成交客户";
                            childItem.Name = stageName;
                            childItem.Count = 0;
                            childModel.Stages.Add(childItem);
                            StageCustomerItem item = new StageCustomerItem();
                            item.Name = stageName;
                            item.StageID = stage.ToString();
                            item.Count = childItem.Count;
                            model.Stages.Add(item);
                        }
                        model.ChildItems.Add(childModel);
                    }
                    //遍历成员
                    foreach (var user in team.Users)
                    {
                        StageCustomerEntity childModel = new StageCustomerEntity();
                        childModel.GUID = user.UserID;
                        childModel.Name = user.Name;
                        childModel.PID = team.TeamID;
                        childModel.PName = team.TeamName;
                        childModel.Stages = new List<StageCustomerItem>();
                        childModel.SCSRNum = 0;
                        childModel.OCSRNum = 0;
                        childModel.NCSRNum = 0;
                        childModel.TotalNum = 0;
                        //遍历阶段
                        foreach (var stage in stages)
                        {
                            StageCustomerItem childItem = new StageCustomerItem();
                            var stageName = stage == 1 ? "客户" : stage == 2 ? "机会客户" : "成交客户";
                            childItem.Name = stageName;

                            var drs = dt.Select("StageStatus=" + stage + " and OwnerID='" + user.UserID + "'");
                            if (drs.Count() > 0)
                            {
                                childItem.Count = Convert.ToInt32(drs[0]["Value"]);
                            }
                            else
                            {
                                childItem.Count = 0;
                            }
                            childModel.SCSRNum += (stage == 3 ? childItem.Count : 0);
                            childModel.OCSRNum += (stage == 2 ? childItem.Count : 0);
                            childModel.NCSRNum += (stage == 1 ? childItem.Count : 0);
                            childModel.TotalNum += childItem.Count;
                            if (model.Stages.Where(m => m.StageID == stage.ToString()).Count() > 0)
                            {
                                model.Stages.Where(m => m.StageID == stage.ToString()).FirstOrDefault().Count += childItem.Count;
                            }
                            else
                            {
                                StageCustomerItem item = new StageCustomerItem();
                                item.Name = stageName;
                                item.StageID = stage.ToString();
                                item.Count = childItem.Count;
                                model.Stages.Add(item);
                            }

                            childModel.Stages.Add(childItem);
                        }
                        model.ChildItems.Add(childModel);
                    }
                    model.TotalNum = model.ChildItems.Sum(x => x.TotalNum);
                    model.SCSRNum = model.ChildItems.Sum(x => x.SCSRNum);
                    model.NCSRNum = model.ChildItems.Sum(x => x.NCSRNum);
                    model.OCSRNum = model.ChildItems.Sum(x => x.OCSRNum);
                    list.Add(model);
                }

                #endregion
            }
            

            return list;
        }
Example #3
0
        public List<StageCustomerEntity> GetUserCustomers(string userid, string teamid, string begintime, string endtime, string agentid, string clientid)
        {
            List<StageCustomerEntity> list = new List<StageCustomerEntity>();

            DataSet ds = CustomerRPTDAL.BaseProvider.GetUserCustomers(userid, teamid, begintime, endtime, agentid, clientid);

            DataTable dt = ds.Tables["Users"];

            var stages = SystemBusiness.BaseBusiness.GetCustomStages(agentid, clientid);

            if (!string.IsNullOrEmpty(userid))
            {
                #region 统计个人

                StageCustomerEntity model = new StageCustomerEntity();
                model.Name = OrganizationBusiness.GetUserByUserID(userid, agentid).Name;
                model.Stages = new List<StageCustomerItem>();
                foreach (var stage in stages)
                {
                    StageCustomerItem item = new StageCustomerItem();
                    item.Name = stage.StageName;

                    var drs = dt.Select("StageID='" + item.StageID + "'");
                    if (drs.Count() > 0)
                    {
                        item.Count = Convert.ToInt32(drs[0]["Value"]);
                    }
                    else
                    {
                        item.Count = 0;
                    }
                    model.Stages.Add(item);
                }
                list.Add(model);

                #endregion
            }
            else if (!string.IsNullOrEmpty(teamid))
            {
                #region 统计团队
                var team = SystemBusiness.BaseBusiness.GetTeamByID(teamid, agentid);
                StageCustomerEntity model = new StageCustomerEntity();

                model.Name = team.TeamName;
                model.GUID = team.TeamID;

                model.Stages = new List<StageCustomerItem>();
                model.ChildItems = new List<StageCustomerEntity>();

                //遍历成员
                foreach (var user in team.Users)
                {
                    StageCustomerEntity childModel = new StageCustomerEntity();
                    childModel.GUID = user.UserID;
                    childModel.Name = user.Name;
                    childModel.PID = team.TeamID;
                    childModel.Stages = new List<StageCustomerItem>();

                    //遍历阶段
                    foreach (var stage in stages)
                    {
                        StageCustomerItem childItem = new StageCustomerItem();
                        childItem.Name = stage.StageName;

                        var drs = dt.Select("StageID='" + stage.StageID + "' and OwnerID='" + user.UserID + "'");

                        if (drs.Count() > 0)
                        {
                            childItem.Count = Convert.ToInt32(drs[0]["Value"]);
                        }
                        else
                        {
                            childItem.Count = 0;
                        }

                        if (model.Stages.Where(m => m.StageID == stage.StageID).Count() > 0)
                        {
                            model.Stages.Where(m => m.StageID == stage.StageID).FirstOrDefault().Count += childItem.Count;
                        }
                        else
                        {
                            StageCustomerItem item = new StageCustomerItem();
                            item.Name = stage.StageName;
                            item.StageID = stage.StageID;
                            item.Count = childItem.Count;
                            model.Stages.Add(item);
                        }

                        childModel.Stages.Add(childItem);
                    }
                    model.ChildItems.Add(childModel);
                }
                list.Add(model);

                #endregion
            }
            else
            {
                #region 统计所有
                var teams = SystemBusiness.BaseBusiness.GetTeams(agentid);
                foreach (var team in teams)
                {
                    StageCustomerEntity model = new StageCustomerEntity();

                    model.Name = team.TeamName;
                    model.GUID = team.TeamID;

                    model.Stages = new List<StageCustomerItem>();
                    model.ChildItems = new List<StageCustomerEntity>();

                    //遍历成员
                    foreach (var user in team.Users)
                    {
                        StageCustomerEntity childModel = new StageCustomerEntity();
                        childModel.GUID = user.UserID;
                        childModel.Name = user.Name;
                        childModel.PID = team.TeamID;
                        childModel.Stages = new List<StageCustomerItem>();

                        //遍历阶段
                        foreach (var stage in stages)
                        {
                            StageCustomerItem childItem = new StageCustomerItem();
                            childItem.Name = stage.StageName;

                            var drs = dt.Select("StageID='" + stage.StageID + "' and OwnerID='" + user.UserID + "'");

                            if (drs.Count() > 0)
                            {
                                childItem.Count = Convert.ToInt32(drs[0]["Value"]);
                            }
                            else
                            {
                                childItem.Count = 0;
                            }

                            if (model.Stages.Where(m => m.StageID == stage.StageID).Count() > 0)
                            {
                                model.Stages.Where(m => m.StageID == stage.StageID).FirstOrDefault().Count += childItem.Count;
                            }
                            else
                            {
                                StageCustomerItem item = new StageCustomerItem();
                                item.Name = stage.StageName;
                                item.StageID = stage.StageID;
                                item.Count = childItem.Count;
                                model.Stages.Add(item);
                            }

                            childModel.Stages.Add(childItem);
                        }
                        model.ChildItems.Add(childModel);
                    }
                    list.Add(model);
                }

                #endregion
            }

            return list;
        }