Example #1
0
        public ActionResult _index(int?projectid, string companyname, bool?deleted)
        {
            var ps = CRM_Logical.GetUserInvolveProject();

            ps = ps.Where(w => w.IsActived == true).ToList();
            IEnumerable <int> idList = ps.Select(o => o.ID);
            var crms = from c in CH.DB.CompanyRelationships.Where(w => idList.Contains((int)w.ProjectID)) select c;

            if (projectid != null)
            {
                crms = crms.Where(w => w.ProjectID == projectid);
            }
            if (companyname != null)
            {
                crms = crms.Where(q => q.Company.Deleted == false && (q.Company.Name_CH.Contains(companyname) || q.Company.Name_EN.Contains(companyname)));
            }
            if (deleted != null)
            {
                crms = crms.Where(w => w.Deleted == deleted);
            }
            var list = from crm in crms
                       select new CompanyInfo
            {
                CRMID         = crm.ID,
                CompanyID     = crm.CompanyID,
                CompanyNameCH = crm.Company.Name_CH,
                CompanyNameEN = crm.Company.Name_EN,
                Deleted       = crm.Deleted,
            };

            list = list.OrderBy(w => w.CompanyNameEN);
            return(View(new GridModel(list.ToList())));
        }
        public ActionResult _ProjectResearchIndex(int?month)
        {
            var md = MonthDuration.GetMonthInstance(month);

            //权限控制
            var ps       = CRM_Logical.GetUserInvolveProject().Select(s => s.ID);
            var projects = Query.AliveProjects();
            var prs      = from p in projects.Where(w => ps.Contains(w.ID))
                           select new _ProjectResearch()
            {
                ProjectName            = p.Name_CH,
                MemberCount            = p.Members.Count,
                ProjectCode            = p.ProjectCode,
                ProjectID              = p.ID,
                FirstWeekCompanyCount  = p.CompanyRelationships.Count(w => w.CreatedDate >= md.StartDate1 && w.CreatedDate < md.EndDate1),
                SecondWeekCompanyCount = p.CompanyRelationships.Count(w => w.CreatedDate >= md.StartDate2 && w.CreatedDate < md.EndDate2),
                ThirdWeekCompanyCount  = p.CompanyRelationships.Count(w => w.CreatedDate >= md.StartDate3 && w.CreatedDate < md.EndDate3),
                FourthWeekCompanyCount = p.CompanyRelationships.Count(w => w.CreatedDate >= md.StartDate4 && w.CreatedDate < md.EndDate4),
                FivethWeekCompanyCount = p.CompanyRelationships.Count(w => w.CreatedDate >= md.StartDate5 && w.CreatedDate < md.EndDate5),
            };

            ViewBag.ProjectId = prs.FirstOrDefault().ProjectID;

            return(View(new GridModel(prs)));
        }
Example #3
0
        public JsonResult _GetIncomebyProjectInMonth()
        {
             var totaldeals = CRM_Logical.GetDeals(true);
            totaldeals = totaldeals.Where(w => w.Income > 0);

              var dealprojectmonth = from d in totaldeals
                                   group d by new { d.ActualPaymentDate.Value.Month, d.ActualPaymentDate.Value.Year,d.Project.Name_CH }
                           into grp

                           select new 
                           {
                               Year = grp.Key.Year,
                               Month = grp.Key.Month,
                               IncomeAmount = grp.Sum(c => c.Income),
                               ProjectName = grp.Key.Name_CH,
                               Category = grp.Key.Year.ToString()+"年"+grp.Key.Month.ToString()+"月",
                           };
            var ps = from p in CH.DB.Projects.Where(p=>p.IsActived==true) 
                     select new {
                         Name =p.Name_CH,
                         Categories = string.Join(",", dealprojectmonth.Where(w=>w.ProjectName == p.Name_CH).Select(s=>s.Category) ),
                         IncomeAmount = string.Join(",", dealprojectmonth.Where(w => w.ProjectName == p.Name_CH).Select(s => s.IncomeAmount)),
                     };
                   
            //var data = from p in ps{}
            //                       from p in ps 
            //                        group d by new { d.ActualPaymentDate.Value.Month, d.ActualPaymentDate.Value.Year,d.Project.Name_CH }
            return Json(ps);
    
        }
Example #4
0
        ProjectPerformaceData GetPerformanceData(int?month)
        {
            DateTime startdate;
            DateTime enddate;

            if (month == null)
            {
                month = DateTime.Now.Month;
            }
            Utl.Utl.GetMonthActualStartdateAndEnddate(month, out startdate, out enddate);
            DateTime monthstartdate = new DateTime(DateTime.Now.Year, month.Value, 1);
            DateTime monthenddate   = monthstartdate.EndOfMonth();



            //选择时间段内的数据
            var per = from p in CH.DB.Projects where p.IsActived == true
                      //join crm in CH.DB.CompanyRelationships on p.ID equals crm.ProjectID into crms
                      join m in CH.DB.Members on p.ID equals m.ProjectID into mems
                      join d in CH.DB.Deals on p.ID equals d.ProjectID into ds
                      //join c in CH.DB.LeadCalls on p.ID equals c.ProjectID into lcs

                      join tp in CH.DB.TargetOfMonths on p.ID equals tp.ProjectID into tps
                      join tm in CH.DB.TargetOfMonthForMembers on p.ID equals tm.ProjectID into tms
                      select new
            {
                Project = p,
                Deals   = ds.Where(d => (d.ActualPaymentDate < monthenddate && d.ActualPaymentDate >= monthstartdate) || (d.SignDate < monthenddate && d.SignDate >= monthstartdate) && d.Abandoned == false),
                //CRMs = crms,
                Mem   = mems.Where(m => m.IsActivated == true && m.Project != null),
                Month = month,
                TPs   = tps.Where(t => month == t.StartDate.Month),
                TMs   = tms.Where(t => t.StartDate.Month == month)
            };

            var data = new ProjectPerformaceData()
            {
                //Faxouts = per.SelectMany(s => s.Faxouts),
                Deals = per.SelectMany(s => s.Deals).Where(d => d.Abandoned == false),
                //CRMs = per.SelectMany(s => s.CRMs),
                StartDate      = startdate,
                EndDate        = enddate,
                Month          = month.Value,
                MonthStartDate = monthstartdate,
                MonthEndDate   = monthenddate,
                ProjectTargets = per.SelectMany(s => s.TPs),
                MemberTargets  = per.SelectMany(s => s.TMs),
                Projects       = per.Select(p => p.Project),
            };

            data.Leads       = CH.DB.Leads.Where(l => l.CreatedDate >= startdate && l.CreatedDate < enddate);
            data.Faxouts     = CRM_Logical.GetProjectFaxoutList(startdate, enddate, CH.DB.Projects.Where(p => p.IsActived == true).Select(s => s.ID).ToList());
            data.Members     = per.SelectMany(p => p.Mem).Distinct().ToList();
            data.MemberNames = data.Members.Select(s => s.Name);
            return(data);
        }
 public ActionResult TargetOfMonthForProject(int?ProjectSelect)
 {
     ViewBag.ProjectSelect = ProjectSelect;
     if (ProjectSelect == null)
     {
         return(View(CH.GetAllData <TargetOfMonth>().Where(s => CRM_Logical.GetUserInvolveProject().Any(m => m.ID == s.ProjectID)).OrderByDescending(s => s.EndDate).ToList()));
     }
     else
     {
         return(View(CH.GetAllData <TargetOfMonth>().Where(s => s.ProjectID == ProjectSelect).OrderByDescending(s => s.EndDate).ToList()));
     }
 }
        /// <summary>
        /// 当所属项目未选定时,自动导入存在的项目id
        /// </summary>
        /// <param name="item"></param>
        /// <param name="projectid"></param>
        /// <returns></returns>
        public static int?TrySetProjectIDForUser(this Controller item, int?projectid)
        {
            if (projectid == null)
            {
                var data = CRM_Logical.GetUserInvolveProject().FirstOrDefault();

                if (data != null)
                {
                    projectid = data.ID;
                }
            }
            return(projectid);
        }
Example #7
0
        public ActionResult Distribution(int?projectid)
        {
            var member = CH.GetAllData <Member>(i => i.ProjectID == projectid);
            var dc     = CRM_Logical.GetDefaultCharatracter();

            member.ForEach(m =>
            {
                dc.RemoveAll(i => m.CharactersSet.Contains(i.ToUpper()));
            });
            ViewBag.ProjectID = projectid;
            ViewBag.DC        = dc;

            return(View(member));
        }
        public ViewResult Index(List <int> selectedprojects, bool?isActivated, DateTime?startdate, DateTime?enddate)
        {
            startdate = startdate == null ? new DateTime(1, 1, 1) : startdate;
            enddate   = enddate == null ? new DateTime(9999, 1, 1) : startdate;
            List <string> saleslist = new List <string>();

            foreach (var d in CH.GetAllData <EmployeeRole>())
            {
                if (d.RoleID == 12)
                {
                    saleslist.Add(d.AccountName);
                }
            }
            if (selectedprojects != null)
            {
                if (Employee.CurrentRole.Level == ChinaTLRequired.LVL)
                {
                    var ts = from t in CH.DB.TargetOfMonthForMembers.Where(w => saleslist.Contains(w.Member.Name))
                             where selectedprojects.Any(sp => sp == t.ProjectID)
                             select t;
                    return(View(ts.OrderByDescending(t => t.CreatedDate).ToList()));
                }
                else
                {
                    var ts = from t in CH.DB.TargetOfMonthForMembers
                             where selectedprojects.Any(sp => sp == t.ProjectID)
                             select t;
                    return(View(ts.OrderByDescending(t => t.CreatedDate).ToList()));
                }
            }
            else
            {
                if (Employee.CurrentRole.Level == ChinaTLRequired.LVL)
                {
                    var ps = CRM_Logical.GetUserInvolveProject();
                    var rs = CH.GetAllData <TargetOfMonthForMember>(r => ps.Any(sp => sp.ID == r.ProjectID) && r.CreatedDate >= startdate && r.CreatedDate <= enddate && saleslist.Contains(r.Member.Name));
                    return(View(rs));
                }
                else
                {
                    var ps = CRM_Logical.GetUserInvolveProject();
                    var rs = CH.GetAllData <TargetOfMonthForMember>(r => ps.Any(sp => sp.ID == r.ProjectID) && r.CreatedDate >= startdate && r.CreatedDate <= enddate);
                    return(View(rs));
                }
            }
        }
        public ViewResult Index(List <int> selectedprojects, bool?isActivated, DateTime?startdate, DateTime?enddate)
        {
            startdate = startdate == null ? new DateTime(1, 1, 1) : startdate;
            enddate   = enddate == null ? new DateTime(9999, 1, 1) : startdate;

            if (selectedprojects != null)
            {
                var rs = CH.GetAllData <Research>(r => selectedprojects.Any(sp => sp == r.ProjectID) && r.CreatedDate >= startdate && r.CreatedDate <= enddate);
                return(View(rs));
            }
            else
            {
                var ps = CRM_Logical.GetUserInvolveProject();
                var rs = CH.GetAllData <Research>(r => ps.Any(sp => sp.ID == r.ProjectID) && r.CreatedDate >= startdate && r.CreatedDate <= enddate);
                return(View(rs));
            }
        }
Example #10
0
        public static _AvaliableCompanies GetAvaliableCompanies(CRMFilters filters = null)
        {
            var data = new _AvaliableCompanies();

            if (filters.ProjectId == null)
            {
                filters.ProjectId = CRM_Logical.GetUserInvolveProject().FirstOrDefault() == null ? 0 : CRM_Logical.GetUserInvolveProject().FirstOrDefault().ID;
            }
            if (filters.ProjectId > 0)
            {
                data.MemberCompanies = GetGroupedCRM(true, filters);
                //data.PublicCompanies = GetPublicCRM(false, filters);
            }


            return(data);
        }
Example #11
0
        public static IEnumerable <SelectListItem> SaleRelatedProjects(int?selectVal = null)
        {
            List <SelectListItem> selectList = new List <SelectListItem>();

            foreach (Project p in CRM_Logical.GetUserInvolveProject())
            {
                SelectListItem selectListItem = new SelectListItem {
                    Text = p.ProjectCode, Value = p.ID.ToString()
                };
                if (selectVal.HasValue && p.ID == selectVal.Value)
                {
                    selectListItem.Selected = true;
                }
                selectList.Add(selectListItem);
            }
            return(selectList);
        }
Example #12
0
 public static List <string> MemberSelectListInOwnProject()
 {
     if (Employee.CurrentRole.Level == Role.LVL_Sales)
     {
         return(new List <string>()
         {
             Employee.CurrentUserName
         });
     }
     else
     {
         var selMember = (from p in CRM_Logical.GetUserInvolveProject()
                          from m in CH.DB.Members
                          where p.IsActived && p.ID == m.ProjectID
                          select m).OrderBy(s => s.Name);
         return(selMember.Select(s => s.Name).Distinct().ToList());
     }
 }
Example #13
0
        public ActionResult DealGroupBySales(int? year, int? month)
        {
            if(year==null)year = DateTime.Now.Year;
            if(month==null)month = DateTime.Now.Month;
            var totaldeals = CRM_Logical.GetDeals(true);
            totaldeals = totaldeals.Where(w => w.Income > 0);
             var deals = totaldeals.Where(d =>d.ActualPaymentDate.Value.Year == year && d.ActualPaymentDate.Value.Month== month);
             var data = from d in deals
                         group d by new { d.Sales,d.Project.Name_CH}
                         into grp
                         select new _DealBySales {
                               Sales = grp.Key.Sales,
                               IncomeAmount = grp.Sum(c=>c.Income),
                               DealAmount = grp.Sum(c => c.Payment),
                               ProjectName = grp.Key.Name_CH,
                               TotalIncomeAmount = totaldeals.Where(w => w.Sales == grp.Key.Sales).Sum(s => s.Income)
                           };

            return View(data);
        }
Example #14
0
        public static IEnumerable <SelectListItem> ProjectSelectListForLeader(string currentUserName, int?selectVal = null)
        {
            List <SelectListItem> selectList = new List <SelectListItem>();

            var user     = Employee.CurrentUserName;
            var projects = CRM_Logical.GetUserInvolveProjectForLeader();

            foreach (Project project in projects)
            {
                SelectListItem selectListItem = new SelectListItem()
                {
                    Text = project.ProjectCode, Value = project.ID.ToString()
                };
                if (selectVal.HasValue && project.ID == selectVal.Value)
                {
                    selectListItem.Selected = true;
                }
                selectList.Add(selectListItem);
            }
            return(selectList.OrderBy(s => s.Text));
        }
Example #15
0
        public ActionResult AssignCompany(int?projectId, string memberFilterForCompany = "", string prefixFilter = "", string fuzzyInput = "")
        {
            Project project = null;

            if (projectId.HasValue)
            {
                project = CH.GetDataById <Project>(projectId);
            }
            else
            {
                project = CRM_Logical.GetUserInvolveProject().FirstOrDefault();
            }
            if (project != null)
            {
                ViewBag.ProjectID = project.ID;
            }
            ViewBag.MemberFilterForCompany = memberFilterForCompany;
            ViewBag.selectVal  = prefixFilter;
            ViewBag.fuzzyInput = fuzzyInput;
            return(View());
        }
        public ActionResult _UserResearchIndex(int?month)
        {
            var md = MonthDuration.GetMonthInstance(month);

            var           users     = Query.AliveMemberNames();
            List <string> saleslist = new List <string>();

            foreach (var d in CH.GetAllData <EmployeeRole>())
            {
                if (d.RoleID == 12)
                {
                    saleslist.Add(d.AccountName);
                }
            }

            if (Employee.CurrentRole.Level == ChinaTLRequired.LVL)
            {
                List <string> namelist = CRM_Logical.GetUserInvolveProject().SelectMany(w => w.Members).Select(f => f.Name).ToList();
                users = users.Where(w => saleslist.Contains(w) && namelist.Contains(w));
            }

            //权限控制
            var mems = CRM_Logical.GetUserInvolveProject().Select(s => s.Members.Where(w => w.IsActivated));

            var prs = //from c in CH.DB.CompanyRelationships group c by new {c.Creator} into cg
                      //from l in CH.DB.Leads group c by new {c.companyid} into lg
                      from l in CH.DB.Leads
                      group l by new { l.Creator } into lg
            from u in users
            where lg.Key.Creator == u

                select new _UserResearch()
            {
                UserName            = u,
                FirstWeekLeadCount  = lg.Count(w => w.CreatedDate >= md.StartDate2 && w.CreatedDate < md.EndDate2),
                SecondWeekLeadCount = lg.Count(w => w.CreatedDate >= md.StartDate2 && w.CreatedDate < md.EndDate2),
                ThirdWeekLeadCount  = lg.Count(w => w.CreatedDate >= md.StartDate3 && w.CreatedDate < md.EndDate3),
                FourthWeekLeadCount = lg.Count(w => w.CreatedDate >= md.StartDate4 && w.CreatedDate < md.EndDate4),
                FivethWeekLeadCount = lg.Count(w => w.CreatedDate >= md.StartDate5 && w.CreatedDate < md.EndDate5)
            };

            //var list = prs.ToList();
            //var lg = CH.DB.Leads.Where(w=>w.Creator==Employee.CurrentUserName);
            //foreach (var v in list)
            //{
            //        v.FirstWeekLeadCount = lg.Count(w => w.CreatedDate >= md.StartDate1 && w.CreatedDate < md.EndDate1);
            //        v.SecondWeekLeadCount = lg.Count(w => w.CreatedDate >= md.StartDate2 && w.CreatedDate < md.EndDate2);
            //        v.ThirdWeekLeadCount = lg.Count(w => w.CreatedDate >= md.StartDate3 && w.CreatedDate < md.EndDate3);
            //        v.FourthWeekLeadCount = lg.Count(w => w.CreatedDate >= md.StartDate4 && w.CreatedDate < md.EndDate4);
            //        v.FivethWeekLeadCount = lg.Count(w => w.CreatedDate >= md.StartDate5 && w.CreatedDate < md.EndDate5);
            //}

            //var nprs = from  l in CH.DB.Leads group l by new { l.Creator } into lg
            //           from p in list
            //           where p.UserName == lg.Key.Creator
            //           select new _UserResearch()
            //           {
            //               UserName = p.UserName,
            //               FirstWeekCompanyCount = p.FirstWeekCompanyCount,
            //               SecondWeekCompanyCount = p.SecondWeekCompanyCount,
            //               ThirdWeekCompanyCount = p.ThirdWeekCompanyCount,
            //               FourthWeekCompanyCount = p.FourthWeekCompanyCount,
            //               FivethWeekCompanyCount = p.FivethWeekCompanyCount,


            //           };

            return(View(new GridModel(prs)));
        }
        public ActionResult _CompanyIndex(int?projectid, string sales, int?selType, DateTime?startTime, DateTime?endTime)
        {
            //sales只能看到自己的项目Lead
            if (Employee.CurrentRole.Level == Role.LVL_Sales)
            {
                sales = Employee.CurrentUserName;
            }
            var selCompany = from data in CH.DB.Companys select data;
            IQueryable <CompanyRelationship> crms = CH.DB.CompanyRelationships.Where(w => w.ProjectID > 0);

            if (projectid != null)
            {
                // selCompany.Where(c => CH.DB.CompanyRelationships.Where(r => r.ProjectID == projectid).Any(r => r.CompanyID == c.ID));
                crms = crms.Where(w => w.ProjectID == projectid);
            }
            else
            {
                //var relationship = CH.DB.CompanyRelationships.Where(r => CRM_Logical.GetUserInvolveProject().Any(c => c.ID == r.ProjectID));
                //selCompany.Where(c => relationship.Any(r => r.CompanyID == c.ID));
                var pids = CRM_Logical.GetUserInvolveProject().Select(s => s.ID).ToList();
                crms = CH.DB.CompanyRelationships.Where(w => pids.Contains((int)w.ProjectID));
            }

            if (sales != string.Empty && sales != "null")
            {
                //var relationship = CH.DB.CompanyRelationships.Where(r => CH.DB.Members.Where(m => m.Name == sales).Any(m => m.ProjectID == r.ProjectID));
                //selCompany.Where(c => relationship.Any(r => r.CompanyID == c.ID));
                crms = crms.Where(w => w.Members.Any(a => a.Name == sales));
            }
            //selCompany = crms.Select(s => s.Company);
            switch (selType)
            {
            case 1:
                //selCompany = selCompany.Where(s => s.IsValid == false);
                crms = crms.Where(w => w.Company.IsValid == false);
                break;

            case 2:
                crms = crms.Where(w => !string.IsNullOrEmpty(w.Company.CompanyReviews));
                //selCompany = selCompany.Where(s => !string.IsNullOrEmpty(s.CompanyReviews));
                break;

            default:
                break;
            }

            if (startTime != null)
            {
                //selCompany = selCompany.Where(s => s.CreatedDate >= startTime);
                crms = crms.Where(w => w.Company.CreatedDate >= startTime);
            }

            if (endTime != null)
            {
                //selCompany = selCompany.Where(s => s.CreatedDate <= endTime);
                crms = crms.Where(w => w.Company.CreatedDate <= endTime);
            }

            var findata = from c in crms
                          select new _CompanyResearchDetail
            {
                ID                  = c.Company.ID,
                CompanyNameCH       = c.Company.Name_CH,
                CompanyNameEN       = c.Company.Name_EN,
                CompanyContact      = c.Company.Contact,
                CompanyDesicription = c.Company.Description,
                CompanyReviews      = c.Company.CompanyReviews,
                Creator             = c.Company.Creator,
                CreateDate          = c.Company.CreatedDate,
                IsValid             = c.Company.IsValid == false ? "否" : "是",
                Description         = c.Description,
            };

            return(View(new GridModel(findata)));
        }
Example #18
0
        public ViewResult Index()
        {
            var data = CRM_Logical.GetUserInvolveProject();

            return(View(data));
        }
        public ViewResult MyProjectIndex()
        {
            var ps = CRM_Logical.GetProductInvolveProject();

            return(View(ps));
        }
Example #20
0
        private IOrderedEnumerable <AjaxViewDeal> getData(string filter = "", int?projectId = null, string CompanyDealCodeLike = "", int?PaymentID = null, int?ParticipantsID = null, int?year = null, int?month = null)
        {
            var deals = CRM_Logical.GetDeals(false, projectId, null, filter);

            if (year != null)
            {
                deals = deals.Where(w => w.ActualPaymentDate.Value.Year == year);
            }
            if (month != null)
            {
                deals = deals.Where(w => w.ActualPaymentDate.Value.Month == month);
            }
            if (!string.IsNullOrWhiteSpace(CompanyDealCodeLike))
            {
                deals = deals.Where(w => w.CompanyRelationship.Company.Name_EN.Contains(CompanyDealCodeLike.Trim()) || w.CompanyRelationship.Company.Name_CH.Contains(CompanyDealCodeLike.Trim()) || w.DealCode.Contains(CompanyDealCodeLike.Trim()));
            }

            if (PaymentID != null)
            {
                switch (PaymentID)
                {
                case 1:
                    deals = deals.Where(s => s.Payment > 0 && s.Payment <= 3000);
                    break;

                case 2:
                    deals = deals.Where(s => s.Payment > 3000 && s.Payment <= 5000);
                    break;

                case 3:
                    deals = deals.Where(s => s.Payment > 5000 && s.Payment <= 8000);
                    break;

                case 4:
                    deals = deals.Where(s => s.Payment > 8000 && s.Payment <= 10000);
                    break;

                case 5:
                    deals = deals.Where(s => s.Payment > 10000 && s.Payment <= 15000);
                    break;

                case 6:
                    deals = deals.Where(s => s.Payment > 15000);
                    break;

                default:
                    break;
                }
            }

            if (ParticipantsID != null)
            {
                if (ParticipantsID == 1)
                {
                    deals = deals.Where(s => s.Participants.Any());
                }
                else
                {
                    deals = deals.Where(s => !s.Participants.Any());
                }
            }
            var         emprole = CH.DB.EmployeeRoles.Where(w => 1 == 1);
            List <Deal> dllist;

            if (Employee.CurrentRole.Level == 4)//财务填写income
            {
                dllist = deals.ToList();
                var ds = from d in dllist
                         where d.IsConfirm == true
                         //where d.IsConfirm == true && (d.Income == 0 || d.ActualPaymentDate == null)
                         select new AjaxViewDeal
                {
                    CompanyNameEN       = d.CompanyRelationship.Company.Name_EN,
                    CompanyNameCH       = d.CompanyRelationship.Company.Name_CH,
                    DealCode            = d.DealCode,
                    Abandoned           = d.Abandoned,
                    AbandonReason       = d.AbandonReason,
                    ActualPaymentDate   = d.ActualPaymentDate,
                    Committer           = d.Committer,
                    CommitterContect    = d.Committer,
                    CommitterEmail      = d.CommitterEmail,
                    ExpectedPaymentDate = d.ExpectedPaymentDate,
                    ID                  = d.ID,
                    Income              = d.Income,
                    IsClosed            = d.IsClosed,
                    PackageNameCH       = d.Package.Name_CH,
                    PackageNameEN       = d.Package.Name_EN,
                    Payment             = d.Payment,
                    Currency            = d.Currencytype.Name,
                    PaymentDetail       = d.PaymentDetail,
                    Sales               = d.Sales,
                    DealType            = d.DealType,
                    ParticipantTypeName = d.Package.ParticipantType.Name_EN,
                    Poll                = d.Poll,
                    ProjectCode         = d.Project.ProjectCode,
                    SignDate            = d.SignDate,
                    TicketDescription   = d.TicketDescription,
                    IsConfirm           = (d.IsConfirm == true ? "是" : "否"),
                    ModifiedDate        = d.ModifiedDate,
                    Role                = emprole.Where(w => w.AccountName == d.Sales).FirstOrDefault() == null ? "" : emprole.Where(w => w.AccountName == d.Sales).FirstOrDefault().Role.Name
                };
                return(ds.OrderByDescending(o => o.SignDate));
            }
            else if (Employee.CurrentRole.Level == 3) //会务确定出单
            {
                var user = Employee.CurrentUserName.Trim();
                var pids = new List <int>();
                foreach (var c in CH.DB.Projects.Where(w => w.IsActived))
                {
                    if (!string.IsNullOrEmpty(c.Conference))
                    {
                        var names = c.Conference.Trim().Split(new string[] { ";", ";" }, StringSplitOptions.RemoveEmptyEntries);
                        if (names.Contains(user))
                        {
                            pids.Add(c.ID);
                        }
                    }
                }

                dllist = deals.Where(w => pids.Contains((int)w.ProjectID)).ToList();
                var ds = from d in dllist
                         select new AjaxViewDeal
                {
                    CompanyNameEN       = d.CompanyRelationship.Company.Name_EN,
                    CompanyNameCH       = d.CompanyRelationship.Company.Name_CH,
                    DealCode            = d.DealCode,
                    Abandoned           = d.Abandoned,
                    AbandonReason       = d.AbandonReason,
                    ActualPaymentDate   = d.ActualPaymentDate,
                    Committer           = d.Committer,
                    CommitterContect    = d.Committer,
                    CommitterEmail      = "",
                    ExpectedPaymentDate = d.ExpectedPaymentDate,
                    ID                = d.ID,
                    Income            = d.Income,
                    IsClosed          = d.IsClosed,
                    PackageNameCH     = d.Package.Name_CH,
                    PackageNameEN     = d.Package.Name_EN,
                    Payment           = d.Payment,
                    Currency          = d.Currencytype.Name,
                    PaymentDetail     = d.PaymentDetail,
                    Sales             = d.Sales,
                    ProjectCode       = d.Project.ProjectCode,
                    SignDate          = d.SignDate,
                    TicketDescription = d.TicketDescription,
                    IsConfirm         = (d.IsConfirm == true ? "是" : "否"),
                    ModifiedDate      = d.ModifiedDate,
                };
                return(ds.OrderByDescending(o => o.SignDate));
            }
            else//板块修改deal
            {
                List <int> idlist = new List <int>();
                foreach (var p in CH.DB.Projects.Where(w => w.IsActived == true && w.Manager != null))
                {
                    var names = p.Manager.Trim().Split(new string[] { ";", ";" }, StringSplitOptions.RemoveEmptyEntries);
                    if (names.Contains(Employee.CurrentUserName))
                    {
                        if (!idlist.Contains(p.ID))
                        {
                            idlist.Add(p.ID);
                        }
                    }
                }
                dllist = deals.Where(d => idlist.Contains((int)d.ProjectID)).ToList();
                var ds = from d in dllist
                         select new AjaxViewDeal
                {
                    CompanyNameEN       = d.CompanyRelationship.Company.Name_EN,
                    CompanyNameCH       = d.CompanyRelationship.Company.Name_CH,
                    DealCode            = d.DealCode,
                    Abandoned           = d.Abandoned,
                    AbandonReason       = d.AbandonReason,
                    ActualPaymentDate   = d.ActualPaymentDate,
                    Committer           = d.Committer,
                    CommitterContect    = d.Committer,
                    CommitterEmail      = d.CommitterEmail,
                    ExpectedPaymentDate = d.ExpectedPaymentDate,
                    ID                = d.ID,
                    Income            = d.Income,
                    IsClosed          = d.IsClosed,
                    PackageNameCH     = d.Package.Name_CH,
                    PackageNameEN     = d.Package.Name_EN,
                    Payment           = d.Payment,
                    Currency          = d.Currencytype.Name,
                    PaymentDetail     = d.PaymentDetail,
                    Sales             = d.Sales,
                    ProjectCode       = d.Project.ProjectCode,
                    SignDate          = d.SignDate,
                    TicketDescription = d.TicketDescription,
                    IsConfirm         = (d.IsConfirm == true ? "是" : "否"),
                    ModifiedDate      = d.ModifiedDate,
                };
                return(ds.OrderByDescending(o => o.SignDate));
            }
        }
        public static SelectList GetProject(string accessright)
        {
            var ps = CRM_Logical.GetUserProjectRight(accessright);

            return(new SelectList(ps, "ID", "Name_CH", "-请选择-"));
        }