public override object Evaluate(PXCache cache, object item, Dictionary <Type, object> pars)
        {
            string         classID = (string)pars[typeof(ClassID)];
            CRContactClass cls     = PXSelect <CRContactClass, Where <CRContactClass.classID, Equal <Required <CRContactClass.classID> > > > .Select(cache.Graph, classID);

            if (cls == null)
            {
                return(null);
            }

            PXSelectBase <EPCompanyTreeMember> cmd = new PXSelectJoin <EPCompanyTreeMember,
                                                                       InnerJoin <EPCompanyTreeH, On <EPCompanyTreeMember.workGroupID, Equal <EPCompanyTreeH.workGroupID> > >,
                                                                       Where <EPCompanyTreeMember.userID, Equal <Required <EPCompanyTreeMember.userID> > > >(cache.Graph);

            if (cls.DefaultWorkgroupID != null && cls.OwnerIsCreatedUser != true)
            {
                return(cls.DefaultWorkgroupID);
            }
            else if (cls.DefaultWorkgroupID != null && cls.OwnerIsCreatedUser == true)
            {
                cmd.WhereAnd <Where <EPCompanyTreeH.parentWGID, Equal <Required <EPCompanyTreeH.parentWGID> > > >();
                EPCompanyTreeMember m = cmd.SelectSingle(cache.Graph.Accessinfo.UserID, cls.DefaultWorkgroupID);
                return(m.With(_ => _.WorkGroupID));
            }
            else if (cls.DefaultWorkgroupID == null && cls.OwnerIsCreatedUser == true && cls.DefaultOwnerWorkgroup == true)
            {
                EPCompanyTreeMember m = cmd.SelectSingle(cache.Graph.Accessinfo.UserID);
                return(m.With(_ => _.WorkGroupID));
            }
            else
            {
                return(null);
            }
        }
コード例 #2
0
        public override void Verify(PXCache cache, object item, List <object> pars, ref bool?result, ref object value)
        {
            string         classID = (string)Calculate <ClassID>(cache, item);
            CRContactClass cls     = PXSelect <CRContactClass, Where <CRContactClass.classID, Equal <Required <CRContactClass.classID> > > > .Select(cache.Graph, classID);

            if (cls == null)
            {
                return;
            }

            PXSelectBase <EPCompanyTreeMember> cmd = new PXSelectJoin <EPCompanyTreeMember,
                                                                       InnerJoin <EPCompanyTreeH, On <EPCompanyTreeMember.workGroupID, Equal <EPCompanyTreeH.workGroupID> > >,
                                                                       Where <EPCompanyTreeMember.userID, Equal <Required <EPCompanyTreeMember.userID> > > >(cache.Graph);

            if (cls.DefaultWorkgroupID != null && cls.OwnerIsCreatedUser != true)
            {
                value = cls.DefaultWorkgroupID;
            }
            else if (cls.DefaultWorkgroupID != null && cls.OwnerIsCreatedUser == true)
            {
                cmd.WhereAnd <Where <EPCompanyTreeH.parentWGID, Equal <Required <EPCompanyTreeH.parentWGID> > > >();
                EPCompanyTreeMember m = cmd.SelectSingle(cache.Graph.Accessinfo.UserID, cls.DefaultWorkgroupID);
                value = m.With(_ => _.WorkGroupID);
            }
            else if (cls.DefaultWorkgroupID == null && cls.OwnerIsCreatedUser == true && cls.DefaultOwnerWorkgroup == true)
            {
                EPCompanyTreeMember m = cmd.SelectSingle(cache.Graph.Accessinfo.UserID);
                value = m.With(_ => _.WorkGroupID);
            }
            else
            {
                value = null;
            }
        }