protected virtual void SetUseMasterCalendarValue(PXCache sender, object row) { if (UseMasterCalendarSourceType == null) { return; } bool useMasterCalendarValue = CalendarOrganizationIDProvider.GetBranchIDsValueFromField(sender.Graph, sender, row, CalendarOrganizationIDProvider.GetSourcesSpecification(sender, row).MainSpecificationItem) .SourceBranchIDs.FirstOrDefault() == null && CalendarOrganizationIDProvider.GetOrganizationIDsValueFromField(sender.Graph, sender, row, CalendarOrganizationIDProvider.GetSourcesSpecification(sender, row).MainSpecificationItem) .SourceOrganizationIDs.FirstOrDefault() == null; sender.SetValueExt(row, UseMasterCalendarSourceType.Name, useMasterCalendarValue); }
protected override void ValidatePeriodAndSourcesImpl(PXCache cache, object oldRow, object newRow, bool externalCall) { int?newMainCalendarOrgID = CalendarOrganizationIDProvider.GetCalendarOrganizationID(cache.Graph, cache, newRow); int?oldMainCalendarOrgID = CalendarOrganizationIDProvider.GetCalendarOrganizationID(cache.Graph, cache, oldRow); if (HeaderMasterFinPeriodIDType != null && CalculatePeriodByHeader) { if (newMainCalendarOrgID != oldMainCalendarOrgID) { string headerMasterPeriodID = GetHeaderMasterFinPeriodID(cache, newRow); if (headerMasterPeriodID != null) { ProcessingResult <FinPeriod> procResult = FinPeriodRepository.GetFinPeriodByMasterPeriodID(newMainCalendarOrgID, headerMasterPeriodID); if (!procResult.IsSuccess) { SetErrorAndResetToOldForField( cache, oldRow, newRow, CalendarOrganizationIDProvider.GetSourcesSpecification(cache, newRow).MainSpecificationItem.BranchSourceType.Name, new PXSetPropertyException(procResult.GetGeneralMessage()), externalCall); } } } } else { FinPeriod newMainOrgFinPeriod = GetAndValidateMainFinPeriod(cache, oldRow, newRow, externalCall); if (newMainOrgFinPeriod == null) { return; } ValidateRelatedToMainFinPeriods(cache, oldRow, newRow, externalCall, newMainCalendarOrgID, oldMainCalendarOrgID, newMainOrgFinPeriod); ValidateNotMainRowLevelSources(cache, oldRow, newRow, externalCall, newMainOrgFinPeriod); } }