public override void IsValidPeriod(PXCache sender, object row, object newValue)
        {
            string oldValue = (string)sender.GetValue(row, _FieldName);

            base.IsValidPeriod(sender, row, newValue);

            if (newValue != null && _ValidatePeriod != PeriodValidation.Nothing)
            {
                FinPeriod p = (FinPeriod)PXSelect <FinPeriod, Where <FinPeriod.finPeriodID, Equal <Required <FinPeriod.finPeriodID> > > > .Select(sender.Graph, (string)newValue);

                if (p.CAClosed == true)
                {
                    if (PostClosedPeriods(sender.Graph))
                    {
                        sender.RaiseExceptionHandling(_FieldName, row, null, new FiscalPeriodClosedException(p.FinPeriodID, PXErrorLevel.Warning));
                        return;
                    }
                    else
                    {
                        throw new FiscalPeriodClosedException(p.FinPeriodID);
                    }
                }
            }
            return;
        }
Ejemplo n.º 2
0
        private void SetPeriods(UpdateMCAssignmentSettings settings)
        {
            INSetup insetup = INSetup.Current;
            PXCache cache   = UpdateSettings.Cache;

            if (insetup != null && insetup.TurnoverPeriodsPerYear != null && insetup.TurnoverPeriodsPerYear != 0m && settings.PeriodNbr != null && settings.Year != null)
            {
                String periodString = (12 / insetup.TurnoverPeriodsPerYear * (settings.PeriodNbr - 1) + 1).ToString();
                periodString = periodString.Length == 1 ? "0" + periodString : periodString;
                periodString = settings.Year + periodString;

                FinPeriod startPeriod = FinPeriodRepository.FindByID(FinPeriod.organizationID.MasterValue, periodString);

                if (startPeriod != null)
                {
                    //cache.SetValueExt<UpdateMCAssignmentSettings.startFinPeriodID>(settings, startPeriod.FinPeriodID);
                    settings.StartFinPeriodID = startPeriod.FinPeriodID;
                    cache.SetValueExt <UpdateMCAssignmentSettings.startDate>(settings, startPeriod.StartDate);
                }
                periodString = (12 / insetup.TurnoverPeriodsPerYear * settings.PeriodNbr).ToString();
                periodString = periodString.Length == 1 ? "0" + periodString : periodString;
                periodString = settings.Year + periodString;

                FinPeriod endPeriod = FinPeriodRepository.FindByID(FinPeriod.organizationID.MasterValue, periodString);

                if (endPeriod != null)
                {
                    //cache.SetValueExt<UpdateMCAssignmentSettings.endFinPeriodID>(settings, endPeriod.FinPeriodID);
                    settings.EndFinPeriodID = endPeriod.FinPeriodID;
                    cache.SetValueExt <UpdateMCAssignmentSettings.endDate>(settings, endPeriod.EndDate);
                }
            }
        }
Ejemplo n.º 3
0
        private void SetPeriods(UpdateMCAssignmentSettings settings)
        {
            INSetup insetup = INSetup.Current;
            PXCache cache   = UpdateSettings.Cache;

            if (insetup != null && insetup.TurnoverPeriodsPerYear != null && insetup.TurnoverPeriodsPerYear != 0m && settings.PeriodNbr != null && settings.Year != null)
            {
                String periodString = (12 / insetup.TurnoverPeriodsPerYear * (settings.PeriodNbr - 1) + 1).ToString();
                periodString = periodString.Length == 1 ? "0" + periodString : periodString;
                periodString = settings.Year + periodString;
                FinPeriod startPeriod = (FinPeriod)PXSelect <FinPeriod, Where <FinPeriod.finPeriodID, Equal <Required <FinPeriod.finPeriodID> > > > .Select(this, periodString);

                if (startPeriod != null)
                {
                    //cache.SetValueExt<UpdateMCAssignmentSettings.startFinPeriodID>(settings, startPeriod.FinPeriodID);
                    settings.StartFinPeriodID = startPeriod.FinPeriodID;
                    cache.SetValueExt <UpdateMCAssignmentSettings.startDate>(settings, startPeriod.StartDate);
                }
                periodString = (12 / insetup.TurnoverPeriodsPerYear * settings.PeriodNbr).ToString();
                periodString = periodString.Length == 1 ? "0" + periodString : periodString;
                periodString = settings.Year + periodString;
                FinPeriod endPeriod = (FinPeriod)PXSelect <FinPeriod, Where <FinPeriod.finPeriodID, Equal <Required <FinPeriod.finPeriodID> > > > .Select(this, periodString);

                if (endPeriod != null)
                {
                    //cache.SetValueExt<UpdateMCAssignmentSettings.endFinPeriodID>(settings, endPeriod.FinPeriodID);
                    settings.EndFinPeriodID = endPeriod.FinPeriodID;
                    cache.SetValueExt <UpdateMCAssignmentSettings.endDate>(settings, endPeriod.EndDate);
                }
            }
        }
		public override void IsValidPeriod(PXCache sender, object Row, object NewValue)
		{
			if (NewValue != null && _ValidatePeriod != PeriodValidation.Nothing)
			{
				FinPeriod period = (FinPeriod)PXSelect<FinPeriod, Where<FinPeriod.finPeriodID, Equal<Required<FinPeriod.finPeriodID>>>>.Select(sender.Graph, (string)NewValue);

				if (period == null)
				{
					throw new PXSetPropertyException(Messages.NoPeriodsDefined);
				}

				FASetup setup = PXSetupOptional<FASetup>.Select(sender.Graph);
				if (setup == null || setup.UpdateGL == true)
				{
					if (period.Active != true)
					{
						sender.RaiseExceptionHandling(_FieldName, Row, null, new FiscalPeriodInactiveException(period.FinPeriodID, PXErrorLevel.Warning));
						return;
					}

					if (period.FAClosed == true)
					{
						if (PostClosedPeriods(sender.Graph))
						{
							sender.RaiseExceptionHandling(_FieldName, Row, null, new FiscalPeriodClosedException(period.FinPeriodID, PXErrorLevel.Warning));
							return;
						}
						else
						{
							throw new FiscalPeriodClosedException(period.FinPeriodID);
						}
					}
				}
			}
		}
Ejemplo n.º 5
0
        protected virtual IEnumerable billed()
        {
            UsageFilter filter = Filter.Current;

            if (filter == null)
            {
                return(new List <PMTran>());
            }

            PXSelectBase <PMTran> select = new PXSelectJoin <
                PMTran,
                LeftJoin <CRCase,
                          On <CRCase.noteID, Equal <PMTran.origRefID>,
                              Or <CRCase.caseID, Equal <PMTran.caseID> > > >,
                Where <
                    PMTran.billed, Equal <True>,
                    And <PMTran.projectID, Equal <Current <UsageFilter.contractID> > > > >
                                               (this);

            if (!string.IsNullOrEmpty(filter.InvFinPeriodID))
            {
                FinPeriod finPeriod = PXSelect <FinPeriod, Where <FinPeriod.finPeriodID, Equal <Current <UsageFilter.invFinPeriodID> > > > .Select(this);

                if (finPeriod != null)
                {
                    select.WhereAnd <Where <PMTran.billedDate, Between <Required <FinPeriod.startDate>, Required <FinPeriod.endDate> > > >();
                }
            }

            return(select.Select());
        }
        protected virtual FinPeriod BuildFinPeriod(int?organizationID, object record)
        {
            if (organizationID == FinPeriod.organizationID.MasterValue &&
                MasterPeriodBasedOnOrganizationPeriods)
            {
                MasterFinPeriod baseFinPeriod = (record as PXResult).GetItem <MasterFinPeriod>();

                return(new FinPeriod()
                {
                    FinPeriodID = baseFinPeriod.FinPeriodID,
                    StartDateUI = baseFinPeriod.StartDateUI,
                    EndDateUI = baseFinPeriod.EndDateUI,
                    Descr = baseFinPeriod.Descr,
                    NoteID = baseFinPeriod.NoteID
                });
            }
            else
            {
                PXResult resultRecord = record as PXResult;

                FinPeriod orgFinPeriod = resultRecord != null
                                                                                                        ? resultRecord.GetItem <FinPeriod>()
                                                                                                        : (FinPeriod)record;

                return(new FinPeriod
                {
                    FinPeriodID = orgFinPeriod.FinPeriodID,
                    StartDateUI = orgFinPeriod.StartDateUI,
                    EndDateUI = orgFinPeriod.EndDateUI,
                    Descr = orgFinPeriod.Descr,
                    NoteID = orgFinPeriod.NoteID
                });
            }
        }
Ejemplo n.º 7
0
        protected override void ClosePeriodProc(FinPeriod financialPeriod)
        {
            PXSelectBase <APRegister> prebookedDocuments = new PXSelect <
                APRegister,
                Where <
                    APRegister.voided, Equal <False>,
                    And <APRegister.prebooked, Equal <True>,
                         And <APRegister.released, Equal <False>,
                              And <APRegister.finPeriodID, Equal <Required <APRegister.finPeriodID> > > > > > >(this);

            if (prebookedDocuments.Any(financialPeriod.FinPeriodID))
            {
                throw new PXException(Messages.PeriodHasPrebookedDocs);
            }

            PXSelectBase <APRegister> unreleasedDocuments = new PXSelectJoin <
                APRegister,
                LeftJoin <APAdjust,
                          On <APAdjust.adjgDocType, Equal <APRegister.docType>,
                              And <APAdjust.adjgRefNbr, Equal <APRegister.refNbr>,
                                   And <APAdjust.released, Equal <False> > > > >,
                Where <
                    APRegister.voided, Equal <False>,
                    And <APRegister.scheduled, Equal <False>,
                         And <APRegister.rejected, Equal <False>,
                              And <Where <
                                       APAdjust.adjgFinPeriodID, IsNull,
                                       And <APRegister.released, Equal <False>,
                                            And <APRegister.finPeriodID, Equal <Required <APRegister.finPeriodID> >,
                                                 Or <APAdjust.adjgFinPeriodID, Equal <Required <APAdjust.adjgFinPeriodID> > > > > > > > > > >(this);

            if (unreleasedDocuments.Any(financialPeriod.FinPeriodID, financialPeriod.FinPeriodID))
            {
                throw new PXException(Messages.PeriodHasUnreleasedDocs);
            }

            LandedCostTran landedCostTransactions = PXSelectJoin <
                LandedCostTran,
                InnerJoin <POReceipt,
                           On <LandedCostTran.pOReceiptNbr, Equal <POReceipt.receiptNbr> > >,
                Where <
                    LandedCostTran.source, Equal <LandedCostTranSource.fromPO>,
                    And <POReceipt.released, Equal <True>,
                         And <LandedCostTran.postponeAP, Equal <False>,
                              And <LandedCostTran.processed, Equal <False>,
                                   And <LandedCostTran.invoiceDate, GreaterEqual <Required <LandedCostTran.invoiceDate> >,
                                        And <LandedCostTran.invoiceDate, Less <Required <LandedCostTran.invoiceDate> > > > > > > > >
                                                    .SelectWindowed(this, 0, 1, financialPeriod.StartDate, financialPeriod.EndDate);

            if (landedCostTransactions?.LCTranID != null)
            {
                throw new PXException(Messages.PeriodHasAPDocsFromPO_LCToBeCreated);
            }

            financialPeriod.APClosed = true;
            Caches[typeof(FinPeriod)].Update(financialPeriod);

            Actions.PressSave();
        }
Ejemplo n.º 8
0
        public virtual IEnumerable nextperiod(PXAdapter adapter)
        {
            InventoryTranSumEnqFilter filter = Filter.Current as InventoryTranSumEnqFilter;

            FinPeriod nextperiod = FinPeriodRepository.FindNextPeriod(FinPeriod.organizationID.MasterValue, filter.FinPeriodID, looped: true);

            filter.FinPeriodID = nextperiod?.FinPeriodID;
            return(adapter.Get());
        }
Ejemplo n.º 9
0
        private decimal PeriodProportionByDays(DateTime date, int shift = 0)
        {
            FinPeriod finPeriod = _financialPeriodProvider.FindFinPeriodByDate(_graph, date);
            var       start     = _financialPeriodProvider.PeriodStartDate(_graph, finPeriod.FinPeriodID);
            var       end       = _financialPeriodProvider.PeriodEndDate(_graph, finPeriod.FinPeriodID);

            int days = (int)end.Subtract(start).TotalDays + 1;

            return((decimal)(date.Subtract(start).TotalDays + 1 + shift) / days);
        }
Ejemplo n.º 10
0
        protected virtual void InventoryTranByAcctEnqFilter_PeriodEndDate_FieldDefaulting(PXCache cache, PXFieldDefaultingEventArgs e)
        {
            var row = e.Row as InventoryTranByAcctEnqFilter;

            if (row != null)
            {
                FinPeriod period = FinPeriodRepository.FindByID(FinPeriod.organizationID.MasterValue, row.FinPeriodID);
                e.NewValue = period?.EndDate;
            }
        }
        public virtual IEnumerable previousperiod(PXAdapter adapter)
        {
            InventoryTranByAcctEnqFilter filter = Filter.Current as InventoryTranByAcctEnqFilter;

            FinPeriod prevPeriod = FinPeriodRepository.FindPrevPeriod(FinPeriod.organizationID.MasterValue, filter.FinPeriodID, looped: true);

            filter.FinPeriodID = prevPeriod?.FinPeriodID;
            ResetFilterDates(filter);
            return(adapter.Get());
        }
Ejemplo n.º 12
0
        public virtual IEnumerable NextPeriod(PXAdapter adapter)
        {
            ScheduleTransFilter filter = Filter.Current as ScheduleTransFilter;

            int?      calendarOrganizationID = FinPeriodRepository.GetCalendarOrganizationID(filter.OrganizationID, filter.BranchID, filter.UseMasterCalendar);
            FinPeriod nextPeriod             = FinPeriodRepository.FindNextPeriod(calendarOrganizationID, filter.FinPeriodID, looped: true);

            filter.FinPeriodID = nextPeriod != null ? nextPeriod.FinPeriodID : null;

            return(adapter.Get());
        }
Ejemplo n.º 13
0
        public FinPeriod GetOffsetPeriod(string finPeriodID, int offset, int?organizationID)
        {
            FinPeriod offsetPeriod = FindOffsetPeriod(finPeriodID, offset, organizationID);

            if (offsetPeriod == null)
            {
                throw new FinancialPeriodOffsetNotFoundException(finPeriodID, offset);
            }

            return(offsetPeriod);
        }
Ejemplo n.º 14
0
        public FinPeriod GetFinPeriodByDate(DateTime?date, int?organizationID)
        {
            FinPeriod finPeriod = FindFinPeriodByDate(date, organizationID);

            if (finPeriod == null)
            {
                throw new FinancialPeriodNotDefinedForDateException(date);
            }

            return(finPeriod);
        }
Ejemplo n.º 15
0
        public static new void ClosePeriod(List <FinPeriod> list)
        {
            CAClosing pg = PXGraph.CreateInstance <CAClosing>();

            for (int i = 0; i < list.Count; i++)
            {
                pg.Clear();
                FinPeriod per = list[i];
                pg.ClosePeriodProc(per);
            }
        }
        public virtual IEnumerable NextPeriod(PXAdapter adapter)
        {
            ScheduleTransFilter filter     = Filter.Current as ScheduleTransFilter;
            FinPeriod           nextperiod = FiscalPeriodUtils.FindNextPeriod(this, filter.FinPeriodID, true);

            if (nextperiod != null)
            {
                filter.FinPeriodID = nextperiod.FinPeriodID;
            }
            return(adapter.Get());
        }
Ejemplo n.º 17
0
        public static IEnumerable <string> GetPeriodAgingBucketDescriptions(
            IFinPeriodRepository finPeriodRepository,
            DateTime currentDate,
            AgingDirection agingDirection,
            int numberOfBuckets,
            int calendarOrganizationID,
            bool usePeriodDescription)
        {
            if (finPeriodRepository == null)
            {
                throw new ArgumentNullException(nameof(finPeriodRepository));
            }
            if (numberOfBuckets <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(numberOfBuckets));
            }

            short periodStep = (short)(agingDirection == AgingDirection.Backwards ? -1 : 1);

            FinPeriod currentPeriod = finPeriodRepository.GetByID(
                finPeriodRepository.GetPeriodIDFromDate(currentDate, calendarOrganizationID),
                calendarOrganizationID);

            yield return(usePeriodDescription
                ? currentPeriod.Descr
                : FinPeriodUtils.FormatForError(currentPeriod.FinPeriodID));

            --numberOfBuckets;

            while (numberOfBuckets > 1)
            {
                currentPeriod = finPeriodRepository.GetByID(
                    finPeriodRepository.GetOffsetPeriodId(currentPeriod.FinPeriodID, periodStep, calendarOrganizationID),
                    calendarOrganizationID);

                yield return(usePeriodDescription
                                ? currentPeriod.Descr
                                : FinPeriodUtils.FormatForError(currentPeriod.FinPeriodID));

                --numberOfBuckets;
            }

            if (numberOfBuckets > 0)
            {
                yield return(PXMessages.LocalizeFormatNoPrefix(
                                 agingDirection == AgingDirection.Backwards
                                                ? Messages.BeforeMonth
                                                : Messages.AfterMonth,
                                 usePeriodDescription
                                        ? currentPeriod.Descr
                                        : FinPeriodUtils.FormatForError(currentPeriod.FinPeriodID)));
            }
        }
        protected virtual void ResetFilterDates(InventoryTranByAcctEnqFilter aRow)
        {
            FinPeriod period = PXSelectReadonly <FinPeriod, Where <FinPeriod.finPeriodID, Equal <Required <FinPeriod.finPeriodID> > > > .Select(this, aRow.FinPeriodID);

            if (period != null)
            {
                aRow.PeriodStartDate = period.StartDate;
                aRow.PeriodEndDate   = period.EndDate;
                aRow.EndDate         = null;
                aRow.StartDate       = null;
            }
        }
        protected virtual void ResetFilterDates(InventoryTranByAcctEnqFilter aRow)
        {
            FinPeriod period = FinPeriodRepository.FindByID(FinPeriod.organizationID.MasterValue, aRow.FinPeriodID);

            if (period != null)
            {
                aRow.PeriodStartDate = period.StartDate;
                aRow.PeriodEndDate   = period.EndDate;
                aRow.EndDate         = null;
                aRow.StartDate       = null;
            }
        }
Ejemplo n.º 20
0
        public FinPeriod GetByID(string finPeriodID, int?organizationID)
        {
            FinPeriod finPeriod = FindByID(organizationID, finPeriodID);

            if (finPeriod == null)
            {
                throw new PXException(Common.Messages.EntityWithIDDoesNotExist,
                                      EntityHelper.GetFriendlyEntityName(typeof(FinPeriod)),
                                      finPeriodID);
            }

            return(finPeriod);
        }
Ejemplo n.º 21
0
        public override void FieldDefaulting(PXCache sender, PXFieldDefaultingEventArgs e)
        {
            base.FieldDefaulting(sender, e);

            PXSelectBase <FinPeriod> select = new PXSelect <FinPeriod, Where <FinPeriod.finYear, Equal <Required <FinPeriod.finYear> > >, OrderBy <Asc <FinPeriod.periodNbr> > >(sender.Graph);

            FinPeriod fp = select.SelectWindowed(0, 1, DateTime.Now.Year);

            if (fp != null)
            {
                e.NewValue = FinPeriodIDFormattingAttribute.FormatForDisplay(fp.FinPeriodID);
            }
        }
Ejemplo n.º 22
0
        private DRScheduleDetail InsertScheduleDetail(
            int?componentID,
            DRDeferredCode defCode,
            decimal amount,
            AccountSubaccountPair deferralAccountSubaccount,
            AccountSubaccountPair salesOrExpenseAccountSubaccount,
            int?overridenSubID = null)
        {
            FinPeriod detailFinPeriod = FinPeriodRepository
                                        .GetFinPeriodByMasterPeriodID(PXAccess.GetParentOrganizationID(_branchID),
                                                                      _schedule.FinPeriodID).GetValueOrRaiseError();

            DRScheduleDetail scheduleDetail = new DRScheduleDetail
            {
                ScheduleID    = _schedule.ScheduleID,
                BranchID      = _branchID,
                ComponentID   = componentID,
                CuryTotalAmt  = amount,
                CuryDefAmt    = amount,
                DefCode       = defCode.DeferredCodeID,
                Status        = _isDraft ? DRScheduleStatus.Draft : DRScheduleStatus.Open,
                IsCustom      = false,
                IsOpen        = true,
                Module        = _schedule.Module,
                DocType       = _schedule.DocType,
                RefNbr        = _schedule.RefNbr,
                LineNbr       = _schedule.LineNbr,
                FinPeriodID   = detailFinPeriod.FinPeriodID,
                TranPeriodID  = detailFinPeriod.MasterFinPeriodID,
                BAccountID    = _schedule.BAccountID,
                AccountID     = salesOrExpenseAccountSubaccount.AccountID,
                SubID         = overridenSubID ?? salesOrExpenseAccountSubaccount.SubID,
                DefAcctID     = deferralAccountSubaccount.AccountID,
                DefSubID      = deferralAccountSubaccount.SubID,
                CreditLineNbr = 0,
                DocDate       = _schedule.DocDate,
                BAccountType  =
                    _schedule.Module == BatchModule.AP
                                                ? BAccountType.VendorType
                                                : BAccountType.CustomerType,
            };

            scheduleDetail = _drEntityStorage.Insert(scheduleDetail);

            if (!_isDraft)
            {
                _drEntityStorage.CreateCreditLineTransaction(scheduleDetail, defCode, _branchID);
            }

            return(scheduleDetail);
        }
Ejemplo n.º 23
0
        public static IEnumerable <string> GetPeriodAgingBucketDescriptions(
            IFinPeriodRepository finPeriodRepository,
            DateTime currentDate,
            AgingDirection agingDirection,
            int numberOfBuckets)
        {
            if (finPeriodRepository == null)
            {
                throw new ArgumentNullException(nameof(finPeriodRepository));
            }
            if (numberOfBuckets <= 0)
            {
                throw new ArgumentOutOfRangeException(nameof(numberOfBuckets));
            }

            short periodStep = (short)(agingDirection == AgingDirection.Backwards ? -1 : 1);

            // Must not re-use any existing graphs due to possible query
            // caching of financial periods, which can impact localization
            // of their descriptions, see AC-84505.
            // -
            PXGraph graph = new PXGraph();

            FinPeriod currentPeriod = finPeriodRepository.GetByID(
                finPeriodRepository.GetPeriodIDFromDate(currentDate, FinPeriod.organizationID.MasterValue),
                FinPeriod.organizationID.MasterValue);

            yield return(currentPeriod.Descr);

            --numberOfBuckets;

            while (numberOfBuckets > 1)
            {
                currentPeriod = finPeriodRepository.GetByID(
                    finPeriodRepository.GetOffsetPeriodId(currentPeriod.FinPeriodID, periodStep, FinPeriod.organizationID.MasterValue),
                    FinPeriod.organizationID.MasterValue);

                yield return(currentPeriod.Descr);

                --numberOfBuckets;
            }

            if (numberOfBuckets > 0)
            {
                yield return(PXMessages.LocalizeFormatNoPrefix(
                                 agingDirection == AgingDirection.Backwards
                                                ? Messages.BeforeMonth
                                                : Messages.AfterMonth,
                                 currentPeriod.Descr));
            }
        }
Ejemplo n.º 24
0
        protected override void FinPeriod_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            base.FinPeriod_RowSelected(sender, e);
            FinPeriod per = (FinPeriod)e.Row;

            if (per == null)
            {
                return;
            }

            FinPeriod p = PeriodList.Select();

            ShowAssets.SetEnabled(p.Selected == true);
        }
Ejemplo n.º 25
0
        private decimal PeriodProportionByDays(DateTime date, int?organizationID, int shift = 0)
        {
            FinPeriod finPeriod = _finPeriodRepository.FindFinPeriodByDate(date, organizationID);

            if (finPeriod == null)
            {
                throw new PXException(Messages.TermStartDateOrTermEndDatedoNotExist, _code.DeferredCodeID);
            }
            var start = _finPeriodRepository.PeriodStartDate(finPeriod.FinPeriodID, organizationID);
            var end   = _finPeriodRepository.PeriodEndDate(finPeriod.FinPeriodID, organizationID);

            int days = (int)end.Subtract(start).TotalDays + 1;

            return((decimal)(date.Subtract(start).TotalDays + 1 + shift) / days);
        }
Ejemplo n.º 26
0
        /// <summary>
        /// Returns End date for the given period
        /// </summary>
        public DateTime PeriodEndDate(string finPeriodID, int?organizationID)
        {
            FinPeriod financialPeriod = PXSelect <
                FinPeriod,
                Where <FinPeriod.finPeriodID, Equal <Required <FinPeriod.finPeriodID> >,
                       And <FinPeriod.organizationID, Equal <Required <FinPeriod.organizationID> > > > >
                                        .Select(Graph, finPeriodID, organizationID);

            if (financialPeriod == null)
            {
                throw new FinancialPeriodWithIdNotFoundException(finPeriodID);
            }

            return(financialPeriod.EndDate.Value.AddDays(-1));
        }
Ejemplo n.º 27
0
        protected override void FinPeriod_Selected_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e)
        {
            FinPeriod row = (FinPeriod)e.Row;

            if (row != null && row.Selected == true)
            {
                if (PXSelect <PendingPPDDebitAdjApp, Where <APAdjust.adjgFinPeriodID, Equal <Required <APAdjust.adjgFinPeriodID> > > >
                    .SelectSingleBound(this, null, row.FinPeriodID).Count > 0)
                {
                    sender.RaiseExceptionHandling <FinPeriod.selected>(row, true, new PXSetPropertyException(Messages.UnprocessedPPDExistsClosing, PXErrorLevel.RowWarning));
                }
            }

            base.FinPeriod_Selected_FieldUpdated(sender, e);
        }
        public virtual IEnumerable nextperiod(PXAdapter adapter)
        {
            InventoryTranSumEnqFilter filter = Filter.Current as InventoryTranSumEnqFilter;
            FinPeriod nextperiod             = PXSelect <FinPeriod,
                                                         Where <FinPeriod.finPeriodID,
                                                                Greater <Current <InventoryTranSumEnqFilter.finPeriodID> > >,
                                                         OrderBy <Asc <FinPeriod.finPeriodID> >
                                                         > .SelectWindowed(this, 0, 1);

            if (nextperiod == null)
            {
                nextperiod = PXSelectOrderBy <FinPeriod,
                                              OrderBy <Asc <FinPeriod.finPeriodID> > > .SelectWindowed(this, 0, 1);
            }
            filter.FinPeriodID = nextperiod.FinPeriodID;
            return(adapter.Get());
        }
        public virtual IEnumerable NextPeriod(PXAdapter adapter)
        {
            DiscrepancyEnqFilter filter = Filter.Current as DiscrepancyEnqFilter;

            filter.UseMasterCalendar = filter.OrganizationID == null && filter.BranchID == null;
            int?calendarOrganizationID = FinPeriodRepository.GetCalendarOrganizationID(filter.OrganizationID, filter.BranchID, filter.UseMasterCalendar);

            FinPeriod nextPeriodFrom = FinPeriodRepository.FindNextPeriod(calendarOrganizationID, filter.PeriodFrom, looped: true);

            filter.PeriodFrom = nextPeriodFrom != null ? nextPeriodFrom.FinPeriodID : null;

            FinPeriod nextPeriodTo = FinPeriodRepository.FindNextPeriod(calendarOrganizationID, filter.PeriodTo, looped: true);

            filter.PeriodTo      = nextPeriodTo != null ? nextPeriodTo.FinPeriodID : null;
            filter.FilterDetails = null;
            return(adapter.Get());
        }
Ejemplo n.º 30
0
        protected override void ClosePeriodProc(FinPeriod p)
        {
            PXSelectBase select = new PXSelect <INRegister,
                                                Where <INRegister.finPeriodID, Equal <Required <INRegister.finPeriodID> >,
                                                       And <INRegister.released, Equal <boolFalse> > > >(this);
            INRegister doc = (INRegister)select.View.SelectSingle(p.FinPeriodID);

            if (doc != null)
            {
                throw new PXException(AP.Messages.PeriodHasUnreleasedDocs);
            }

            //MS Landed cost will not be able to create these transactions if the period is closed
            LandedCostTran lcTranFromAP = PXSelectJoin <LandedCostTran,
                                                        InnerJoin <APRegister, On <LandedCostTran.aPDocType, Equal <APRegister.docType>,
                                                                                   And <LandedCostTran.aPRefNbr, Equal <APRegister.refNbr> > > >,
                                                        Where <LandedCostTran.invoiceDate, GreaterEqual <Required <LandedCostTran.invoiceDate> >,
                                                               And <LandedCostTran.invoiceDate, Less <Required <LandedCostTran.invoiceDate> >,
                                                                    And <LandedCostTran.source, Equal <LandedCostTranSource.fromAP>,
                                                                         And <APRegister.released, Equal <True>,
                                                                              And <LandedCostTran.processed, Equal <False> > > > > > > .Select(this, p.StartDate, p.EndDate);

            if (lcTranFromAP != null && lcTranFromAP.LCTranID.HasValue)
            {
                throw new PXException(Messages.PeriodHasINDocsFromAP_LCToBeCreated);
            }

            PO.LandedCostTran lcTranFromPO = PXSelectJoin <LandedCostTran,
                                                           InnerJoin <POReceipt, On <LandedCostTran.pOReceiptNbr, Equal <POReceipt.receiptNbr> > >,
                                                           Where <LandedCostTran.invoiceDate, GreaterEqual <Required <LandedCostTran.invoiceDate> >,
                                                                  And <LandedCostTran.invoiceDate, Less <Required <LandedCostTran.invoiceDate> >,
                                                                       And <LandedCostTran.source, Equal <LandedCostTranSource.fromPO>,
                                                                            And <POReceipt.released, Equal <True>,
                                                                                 And <LandedCostTran.processed, Equal <False> > > > > > > .Select(this, p.StartDate, p.EndDate);

            if (lcTranFromPO != null && lcTranFromPO.LCTranID.HasValue)
            {
                throw new PXException(Messages.PeriodHasINDocsFromPO_LCToBeCreated);
            }

            p.INClosed = true;
            Caches[typeof(FinPeriod)].Update(p);

            Actions.PressSave();
        }