Beispiel #1
0
        public virtual IEnumerable tree
        (
            [PXString]
            string AcctCD
        )
        {
            var result = new List <BranchItem>();
            var cache  = this._Graph.Caches[typeof(BranchItem)];

            foreach (var organization in PXAccess.GetOrganizations(OnlyActive).Where(_ => _.DeletedDatabaseRecord == false))
            {
                var o = new BranchItem()
                {
                    BAccountID = organization.BAccountID,
                    AcctName   = organization.OrganizationName,
                    /*BranchID = null*/
                };
                result.Add(o);
                object cd = organization.OrganizationCD;
                cache.RaiseFieldUpdating <BranchItem.acctCD>(o, ref cd);
                o.AcctCD = cd.ToString();
                if (organization.IsSingle)
                {
                    continue;
                }
                foreach (var branch in organization.ChildBranches.Where(_ => _.DeletedDatabaseRecord == false))
                {
                    var b = new BranchItem()
                    {
                        BAccountID       = branch.BAccountID,
                        AcctName         = branch.BranchName,
                        ParentBAccountID = organization.BAccountID,
                        /*BranchID = branch.BranchID*/
                    };
                    cd = branch.BranchCD;
                    cache.RaiseFieldUpdating <BranchItem.acctCD>(b, ref cd);
                    b.AcctCD = cd.ToString();
                    result.Add(b);
                }
            }

            return(result);
        }