public GenericFinPeriodSelectorAttribute( Type searchType, ICalendarOrganizationIDProvider sourceOrganizationIDProvider, bool takeBranchForSelectorFromQueryParams = false, bool takeOrganizationForSelectorFromQueryParams = false, bool masterPeriodBasedOnOrganizationPeriods = true, FinPeriodSelectorAttribute.SelectionModesWithRestrictions selectionModeWithRestrictions = FinPeriodSelectorAttribute.SelectionModesWithRestrictions.Undefined, Type[] fieldList = null) : base(GetSearchType(searchType, takeBranchForSelectorFromQueryParams, takeOrganizationForSelectorFromQueryParams), fieldList) { OrigSearchType = searchType; SourceOrganizationIDProvider = sourceOrganizationIDProvider; TakeBranchForSelectorFromQueryParams = takeBranchForSelectorFromQueryParams; TakeOrganizationForSelectorFromQueryParams = takeOrganizationForSelectorFromQueryParams; MasterPeriodBasedOnOrganizationPeriods = masterPeriodBasedOnOrganizationPeriods; }
protected override void ValidateFinPeriodsStatus(PXCache sender, object row, string finPeriodID, ICalendarOrganizationIDProvider calendarOrganizationIDProvider) { FASetup setup = PXSetupOptional <FASetup> .Select(sender.Graph); if (setup == null || setup.UpdateGL == true) { base.ValidateFinPeriodsStatus(sender, row, finPeriodID, calendarOrganizationIDProvider); } }
public static ValidationResult ValidateRowLevelSources( ICalendarOrganizationIDProvider calendarOrganizationIDProvider, PXCache cache, object row, Func <int?, bool?> /*<Calendar OrganizationID, result>*/ validationDelegate, bool skipMain = false) { ValidationResult result = new ValidationResult(); List <CalendarOrganizationIDProvider.KeyWithSourceValues> branchValues = calendarOrganizationIDProvider.GetSourcesSpecification(cache, row).SpecificationItems .Where(specification => !specification.IsMain || !skipMain) .Select(specification => calendarOrganizationIDProvider.GetBranchIDsValueFromField(cache.Graph, cache, row, specification)) .ToList(); foreach (CalendarOrganizationIDProvider.KeyWithSourceValues branchValue in branchValues) { bool hasError = false; foreach (int?branchID in branchValue.SourceBranchIDs) { if (branchID == null) { continue; } bool branchError = false; int? organizationID = PXAccess.GetParentOrganizationID(branchID); if (!result.OrganizationIDsWithErrors.Contains(organizationID)) { if (validationDelegate(organizationID) == false) { result.OrganizationIDsWithErrors.Add(organizationID); branchError = true; hasError = true; } } else { branchError = true; hasError = true; } if (branchError) { if (!result.BranchIDsWithErrors.Contains(branchID)) { result.BranchIDsWithErrors.Add(branchID); } } } if (hasError) { result.BranchValuesWithErrors.Add(branchValue); } } return(result); }