public virtual string CalcFinPeriodIDForMaster(PXCache cache, object row, string masterFinPeriodID) { return(FinPeriodRepository .GetFinPeriodByMasterPeriodID( CalendarOrganizationIDProvider.GetCalendarOrganizationID(cache.Graph, cache, row), masterFinPeriodID) .Result ?.FinPeriodID); }
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); } }
protected virtual FinPeriod GetAndValidateMainFinPeriod(PXCache cache, object oldRow, object newRow, bool externalCall) { int?newMainCalendarOrgID = CalendarOrganizationIDProvider.GetCalendarOrganizationID(cache.Graph, cache, newRow); int?oldMainCalendarOrgID = CalendarOrganizationIDProvider.GetCalendarOrganizationID(cache.Graph, cache, oldRow); string newMainOrgFinPeriodID = null; FinPeriod newMainOrgFinPeriod = null; newMainOrgFinPeriodID = (string)cache.GetValue(newRow, _FieldName); if (newMainOrgFinPeriodID == null) { return(null); } newMainOrgFinPeriod = FinPeriodRepository.FindByID(newMainCalendarOrgID, newMainOrgFinPeriodID); if (newMainOrgFinPeriod == null) { string errorMessage = null; if (newMainCalendarOrgID == FinPeriod.organizationID.MasterValue) { errorMessage = PXMessages.LocalizeFormatNoPrefix(Messages.MasterFinPeriodDoesNotExist, FormatForError(newMainOrgFinPeriodID)); } else { errorMessage = PXMessages.LocalizeFormatNoPrefix( Messages.FinPeriodDoesNotExistForCompany, FormatForError(newMainOrgFinPeriodID), PXAccess.GetOrganizationCD(newMainCalendarOrgID)); } SetErrorAndResetForMainFields(cache, oldRow, newRow, oldMainCalendarOrgID, newMainCalendarOrgID, externalCall, new PXSetPropertyException(errorMessage)); return(null); } return(newMainOrgFinPeriod); }
protected override void RedefaultPeriodID(PXCache cache, object row) { if (HeaderMasterFinPeriodIDType != null) { if (CalculatePeriodByHeader) { string newFinPeriodID = null; int?calendarOrgID = CalendarOrganizationIDProvider.GetCalendarOrganizationID(cache.Graph, cache, row); if (calendarOrgID != null) { FinPeriod orgFinPeriod = FinPeriodRepository.GetFinPeriodByMasterPeriodID( calendarOrgID, GetHeaderMasterFinPeriodID(cache, row)) .Result; if (orgFinPeriod != null) { newFinPeriodID = FormatForDisplay(orgFinPeriod.FinPeriodID); } } cache.SetValueExt(row, _FieldName, newFinPeriodID); } } else { base.RedefaultPeriodID(cache, row); if (AutoCalculateMasterPeriod) { SetMasterPeriodID(cache, row); } } }
public virtual string CalcMasterPeriodID(PXCache cache, object row) { string finPeriodID; finPeriodID = (string)cache.GetValue(row, _FieldName); int?calendarOrgID = CalendarOrganizationIDProvider.GetCalendarOrganizationID(cache.Graph, cache, row); if (calendarOrgID == FinPeriod.organizationID.MasterValue) { return(finPeriodID); } string masterFinPeriodID = null; if (finPeriodID != null) { FinPeriod orgFinPeriod = FinPeriodRepository.FindByID(calendarOrgID, finPeriodID); masterFinPeriodID = orgFinPeriod?.MasterFinPeriodID; } return(masterFinPeriodID); }
public override void FieldDefaulting(PXCache sender, PXFieldDefaultingEventArgs e) { SetUseMasterCalendarValue(sender, e.Row); if (HeaderMasterFinPeriodIDType != null && CalculatePeriodByHeader) { int?calendarOrgID = CalendarOrganizationIDProvider.GetCalendarOrganizationID(sender.Graph, sender, e.Row); FinPeriod orgFinPeriod = FinPeriodRepository.GetFinPeriodByMasterPeriodID( calendarOrgID, GetHeaderMasterFinPeriodID(sender, e.Row)) .Result; if (orgFinPeriod != null) { e.NewValue = FormatForDisplay(orgFinPeriod.FinPeriodID); } } else { base.FieldDefaulting(sender, e); } }