Пример #1
0
        /// <summary>
        /// Returns a query that shall be used to pick only the available costcenters
        /// </summary>
        /// <param name="subCustomer"></param>
        /// <param name="personId"></param>
        /// <returns></returns>
        private string BuildCostCentersFromMaximo(string subCustomer, string personId)
        {
            var groupNameToQuery = "'" + HapagPersonGroupConstants.BaseHapagLocationPrefix + subCustomer + "%" + "'";
            var results          =
                _maxDAO.FindByNativeQuery(
                    "select p.persongroup,description from PERSONGROUP p left join persongroupview v on p.PERSONGROUP = v.PERSONGROUP " +
                    "where (p.persongroup  like {0} ) and v.PERSONID = {1} and v.groupdefault = 1"
                    .Fmt(groupNameToQuery, "'" + personId + "'"));
            var list = results.Cast <IEnumerable <KeyValuePair <string, object> > >()
                       .Select(r => r.ToDictionary(pair => pair.Key, pair => pair.Value, StringComparer.OrdinalIgnoreCase)).ToList();
            ISet <string> costcenters = new HashSet <string>();

            foreach (var groupsDescription in list)
            {
                var pg = new PersonGroup()
                {
                    Name        = groupsDescription["persongroup"] as string,
                    Description = groupsDescription["description"] as string,
                };
                var supergroup = HlagLocationUtil.IsSuperGroup(pg);
                if (HlagLocationUtil.IsALocationGroup(pg) && !supergroup)
                {
                    costcenters.Add(HlagLocationUtil.GetCostCenter(pg));
                }
            }
            if (!costcenters.Any())
            {
                return("1!=1");
            }


            var groupedLocation = new HlagGroupedLocation(subCustomer, costcenters, false);

            return(groupedLocation.CostCentersForQuery("glaccount"));
        }
Пример #2
0
        private HlagLocation AddChildGroup(PersonGroup personGroup, Boolean fromSuperGroup)
        {
            var costCenter = HlagLocationUtil.GetCostCenter(personGroup);

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

            var hlagLocation = new HlagLocation {
                CostCenter     = costCenter,
                SubCustomer    = HlagLocationUtil.GetSubCustomerId(personGroup),
                FromSuperGroup = fromSuperGroup
            };

            HlagLocationsCache[personGroup] = new HashSet <HlagLocation> {
                hlagLocation
            };
            return(hlagLocation);
        }