示例#1
0
        public virtual SourceValuesCollectionItem GetBranchIDsValueFromField(
            PXGraph graph,
            PXCache attributeCache,
            object extRow,
            SourceSpecificationItem calendarOrganizationIdSourceSpec)
        {
            bool?  result   = null;
            object branchID = null;

            if (calendarOrganizationIdSourceSpec.BranchSourceType != null || calendarOrganizationIdSourceSpec.BranchSourceFormula != null)
            {
                PXCache cache = GetSourceCache(graph, attributeCache, calendarOrganizationIdSourceSpec.BranchSourceType);

                object row = GetSourceRow(cache, extRow);

                if (calendarOrganizationIdSourceSpec.BranchSourceFormula != null)
                {
                    BqlFormula.Verify(cache, row, calendarOrganizationIdSourceSpec.BranchSourceFormula, ref result, ref branchID);
                }
                else
                {
                    branchID = BqlHelper.GetOperandValue(cache, row, calendarOrganizationIdSourceSpec.BranchSourceType);
                }
            }

            return(new SourceValuesCollectionItem()
            {
                SpecificationItem = calendarOrganizationIdSourceSpec,
                BranchIDs = ((int?)branchID).SingleToList()
            });
        }
示例#2
0
        public CalendarOrganizationIDProvider(Type branchSourceType                 = null,
                                              Type branchSourceFormulaType          = null,
                                              Type organizationSourceType           = null,
                                              Type useMasterCalendarSourceType      = null,
                                              bool useMasterOrganizationIDByDefault = false,
                                              Type[] sourceSpecificationTypes       = null)
        {
            SourcesSpecification = new SourcesSpecificationCollection();

            if (branchSourceType != null ||
                branchSourceFormulaType != null ||
                organizationSourceType != null)
            {
                SourceSpecificationItem sourceSpecification = new SourceSpecificationItem()
                {
                    BranchSourceType        = branchSourceType,
                    BranchSourceFormulaType = branchSourceFormulaType,
                    OrganizationSourceType  = organizationSourceType,
                    IsMain = true
                };

                sourceSpecification.Initialize();

                SourcesSpecification.SpecificationItems.Add(sourceSpecification);
            }

            if (sourceSpecificationTypes != null)
            {
                foreach (var sourceSpecificationType in sourceSpecificationTypes)
                {
                    SourceSpecificationItem sourceSpec = (SourceSpecificationItem)Activator.CreateInstance(sourceSpecificationType);

                    sourceSpec.Initialize();

                    SourcesSpecification.SpecificationItems.Add(sourceSpec);
                }
            }

            SourcesSpecification.PrimarySpecificationItem = SourcesSpecification.SpecificationItems.SingleOrDefault(s => s.IsMain);

            UseMasterCalendarSourceType = useMasterCalendarSourceType;

            UseMasterOrganizationIDByDefault = useMasterOrganizationIDByDefault;
        }
示例#3
0
        public virtual SourceValuesCollectionItem GetOrganizationIDsValueFromField(
            PXGraph graph,
            PXCache attributeCache,
            object extRow,
            SourceSpecificationItem sourceSpecification)
        {
            int?organizationID = null;

            if (sourceSpecification.OrganizationSourceType != null)
            {
                PXCache cache = GetSourceCache(graph, attributeCache, sourceSpecification.OrganizationSourceType);

                object row = GetSourceRow(cache, extRow);

                organizationID = (int?)BqlHelper.GetOperandValue(cache, row, sourceSpecification.OrganizationSourceType);
            }

            return(new SourceValuesCollectionItem()
            {
                SpecificationItem = sourceSpecification,
                OrganizationIDs = organizationID.SingleToList()
            });
        }
示例#4
0
        protected virtual SourceValuesCollectionItem EvaluateOrganizationIDsValuesItem(PXGraph graph, PXCache attributeCache, object extRow, SourceSpecificationItem specificationItem)
        {
            if (specificationItem == null)
            {
                return(null);
            }

            return(EvaluateOrganizationIDsValuesItem(new SourceValuesCollectionItem()
            {
                OrganizationIDs = GetOrganizationIDsValueFromField(graph, attributeCache, extRow, specificationItem).OrganizationIDs,
                BranchIDs = GetBranchIDsValueFromField(graph, attributeCache, extRow, specificationItem).BranchIDs,
                SpecificationItem = specificationItem
            }));
        }