/// <summary>
 /// 根据权限取得Company列表
 /// </summary>
 /// <returns></returns>
 public static List <Company> GetCompanyInAuth(AuthCompany auth)
 {
     try
     {
         List <Company> lstCompany = factory.GetCompanyInAuth(auth);
         if (lstCompany == null)
         {
             throw new Exception("DAL.SalesOrder.CompanyFactory.GetCompanyInAuth()==null");
         }
         return(lstCompany);
     }
     catch (Exception ex)
     {
         LogHelper.WriteLog(new Log()
         {
             message = ex.Message
         }, "GetCompanyInAuth");
         return(null);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取用户有权限获得的分公司-营运点下拉表
        /// </summary>
        /// <param name="auth"></param>
        /// <returns></returns>
        public List <DBSite> GetCompanySite(AuthCompany auth)
        {
            try
            {
                string strCCList = "SELECT A1.BUGUID AS COMPANYGUID,A2.ERPCODE AS DBNAME,A1.CODE AS COSTCENTERCODE,A1.GUID AS SITEGUID FROM TBLSITE (NOLOCK) A1,TBLBU (NOLOCK) A2 where A1.BUGUID=A2.BUGUID";
                //"SELECT DISTINCT DBNAME,COSTCENTERCODE FROM CCMAST (NOLOCK)";

                //List<CCMast> CCList = SqlServerHelper.GetEntityList<CCMast>(SqlServerHelper.salesorderConn, strCCList);
                List <CCMast> CCList = SqlServerHelper.GetEntityList <CCMast>(SqlServerHelper.sfeed(), strCCList);

                List <Company> GetCompanySite = new List <Company>();

                if (auth.action == "wechatBarCode" && auth.userGuid == "None")
                {
                    GetCompanySite = null;
                }
                else
                {
                    GetCompanySite = compfactory.GetCompanyInAuth(auth);
                }
                List <DBSite> SiteList = GetSite(auth.action, auth.userGuid);
                SiteList = (from a in SiteList
                            join b in CCList
                            on a.costCenterCode equals b.costCenterCode
                            select a).ToList();

                List <DBSite> strList = new List <DBSite>();

                if (GetCompanySite != null && GetCompanySite.Count > 0)
                {
                    strList = GetCompanySite.Join(CCList,
                                                  mos => new { companyCode = mos.companyCode },
                                                  nos => new { companyCode = nos.dbName },
                                                  (mos, nos) =>
                    {
                        var data            = new DBSite();
                        data.dbName         = mos.dbName;
                        data.companyGuid    = nos.companyGuid;
                        data.companyCode    = mos.companyCode;
                        data.companyName_ZH = mos.companyName_ZH;
                        data.companyName_EN = mos.companyName_EN;
                        data.costCenterCode = nos.costCenterCode;
                        data.siteGuid       = nos.siteGuid;

                        return(data);
                    }).ToList();

                    if (SiteList != null && SiteList.Count > 0)
                    {
                        strList = strList.Union(SiteList).Distinct(dr => dr.costCenterCode).ToList();
                    }
                }
                else
                {
                    if (SiteList != null && SiteList.Count > 0)
                    {
                        strList = SiteList;
                    }
                    else if (SiteList == null || SiteList.Count == 0)
                    {
                        return(null);
                    }
                }

                List <Site> list = new List <Site>();
                foreach (var item in strList)
                {
                    Site db = new Site();
                    db.dbName         = item.dbName;
                    db.companyGuid    = item.companyGuid;
                    db.companyCode    = item.companyCode;
                    db.companyName_ZH = item.companyName_ZH;
                    db.companyName_EN = item.companyName_EN;
                    db.costCenterCode = item.costCenterCode;
                    db.siteGuid       = item.siteGuid;
                    list.Add(db);
                }

                list.OrderBy(dr => dr.dbName).ThenBy(dr => dr.costCenterCode);

                var lg = strList.GroupBy(dr => dr.dbName).Select(dg => new DBSite()
                {
                    dbName         = dg.FirstOrDefault().dbName,
                    companyName_ZH = dg.FirstOrDefault().companyName_ZH,
                    companyGuid    = dg.FirstOrDefault().companyGuid,
                    siteList       = list.Where(ds => ds.dbName.Equals(dg.FirstOrDefault().dbName)).OrderBy(dr => dr.costCenterCode).ToList()
                }).OrderBy(dg => dg.dbName).ToList().Distinct();

                return(lg.ToList());
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }