예제 #1
0
        protected virtual IEnumerable filter()
        {
            PXCache cache = this.Caches[typeof(SchedulesFilter)];

            if (cache != null)
            {
                SchedulesFilter filter = cache.Current as SchedulesFilter;
                if (filter != null)
                {
                    int startRow  = 0;
                    int totalRows = 0;

                    filter.TotalDeferred  = 0;
                    filter.TotalScheduled = 0;

                    foreach (SchedulesInqResult schedulesInqRow in
                             Records.View.Select(new[] { filter },
                                                 null,
                                                 PXView.Searches,
                                                 null,
                                                 PXView.Descendings,
                                                 Records.View.GetExternalFilters(),
                                                 ref startRow,
                                                 0,
                                                 ref totalRows))
                    {
                        filter.TotalDeferred  += schedulesInqRow.SignDefAmt;
                        filter.TotalScheduled += schedulesInqRow.SignTotalAmt;
                    }
                }
            }
            yield return(cache.Current);

            cache.IsDirty = false;
        }
예제 #2
0
        public virtual IEnumerable items()
        {
            SchedulesFilter filter = this.Filter.Current;

            if (filter != null)
            {
                PXSelectBase <DRScheduleDetail> select = new PXSelectJoin <
                    DRScheduleDetail,
                    InnerJoin <DRSchedule,
                               On <DRSchedule.scheduleID, Equal <DRScheduleDetail.scheduleID> >,
                               InnerJoin <DRDeferredCode,
                                          On <DRDeferredCode.deferredCodeID, Equal <DRScheduleDetail.defCode> > > >,
                    Where <
                        DRDeferredCode.accountType, Equal <Current <SchedulesFilter.accountType> >,
                        And <DRScheduleDetail.status, Equal <DRScheduleStatus.DraftStatus>,
                             And <DRSchedule.isCustom, Equal <True> > > > >
                                                             (this);

                if (!string.IsNullOrEmpty(filter.DeferredCode))
                {
                    select.WhereAnd <Where <DRScheduleDetail.defCode, Equal <Current <SchedulesFilter.deferredCode> > > >();
                }

                if (filter.BranchID != null)
                {
                    select.WhereAnd <Where <DRScheduleDetail.branchID, Equal <Current <SchedulesFilter.branchID> > > >();
                }

                if (filter.AccountID != null)
                {
                    select.WhereAnd <Where <DRScheduleDetail.defAcctID, Equal <Current <SchedulesFilter.accountID> > > >();
                }

                if (filter.SubID != null)
                {
                    select.WhereAnd <Where <DRScheduleDetail.defSubID, Equal <Current <SchedulesFilter.subID> > > >();
                }

                if (filter.BAccountID != null)
                {
                    select.WhereAnd <Where <DRScheduleDetail.bAccountID, Equal <Current <SchedulesFilter.bAccountID> > > >();
                }

                if (filter.ComponentID != null)
                {
                    select.WhereAnd <Where <DRScheduleDetail.componentID, Equal <Current <SchedulesFilter.componentID> > > >();
                }

                return(select.Select());
            }
            else
            {
                return(null);
            }
        }
예제 #3
0
        public virtual IEnumerable records()
        {
            SchedulesFilter filter = this.Filter.Current;

            if (filter != null)
            {
                PXSelectBase <SchedulesInqResult> select = new PXSelectJoin <SchedulesInqResult,
                                                                             InnerJoin <DRSchedule, On <DRSchedule.scheduleID, Equal <SchedulesInqResult.scheduleID> >,
                                                                                        InnerJoin <DRDeferredCode, On <DRDeferredCode.deferredCodeID, Equal <SchedulesInqResult.defCode> >,
                                                                                                   LeftJoin <InventoryItem, On <InventoryItem.inventoryID, Equal <SchedulesInqResult.componentID> > > > >,
                                                                             Where <DRDeferredCode.accountType, Equal <Current <SchedulesFilter.accountType> > > >(this);

                if (!string.IsNullOrEmpty(filter.DeferredCode))
                {
                    select.WhereAnd <Where <SchedulesInqResult.defCode, Equal <Current <SchedulesFilter.deferredCode> > > >();
                }

                if (filter.AccountID != null)
                {
                    select.WhereAnd <Where <SchedulesInqResult.defAcctID, Equal <Current <SchedulesFilter.accountID> > > >();
                }

                if (filter.SubID != null)
                {
                    select.WhereAnd <Where <SchedulesInqResult.defSubID, Equal <Current <SchedulesFilter.subID> > > >();
                }

                if (filter.BAccountID != null)
                {
                    select.WhereAnd <Where <SchedulesInqResult.bAccountID, Equal <Current <SchedulesFilter.bAccountID> > > >();
                }

                if (filter.ComponentID != null)
                {
                    select.WhereAnd <Where <SchedulesInqResult.componentID, Equal <Current <SchedulesFilter.componentID> > > >();
                }


                foreach (PXResult <SchedulesInqResult, DRSchedule, DRDeferredCode, InventoryItem> record in select.Select())
                {
                    SchedulesInqResult sd   = (SchedulesInqResult)record;
                    InventoryItem      item = (InventoryItem)record;

                    sd.ComponentCD  = item.InventoryCD;
                    sd.DocumentType = DRScheduleDocumentType.BuildDocumentType(sd.Module, sd.DocType);

                    yield return(sd);
                }
            }
            else
            {
                yield break;
            }
        }
예제 #4
0
        protected virtual void SchedulesFilter_AccountType_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e)
        {
            SchedulesFilter row = e.Row as SchedulesFilter;

            if (row != null)
            {
                row.BAccountID   = null;
                row.DeferredCode = null;
                row.AccountID    = null;
                row.SubID        = null;
            }
        }
예제 #5
0
        protected virtual IEnumerable filter()
        {
            PXCache cache = this.Caches[typeof(SchedulesFilter)];

            if (cache != null)
            {
                SchedulesFilter filter = cache.Current as SchedulesFilter;
                if (filter != null)
                {
                    int startRow  = 0;
                    int totalRows = 0;

                    filter.TotalDeferred  = 0;
                    filter.TotalScheduled = 0;

                    BqlCommand cmd = ComposeBQLCommandForRecords(filter);
                    if (cmd == null)
                    {
                        yield return(cache.Current);
                    }

                    cmd = cmd.AggregateNew <Aggregate <
                                                Sum <SchedulesInqResult.signTotalAmt,
                                                     Sum <SchedulesInqResult.signDefAmt> > > >();

                    PXView view = new PXView(this, true, cmd);

                    List <object> record = view.Select(new[] { filter },
                                                       null,
                                                       null,
                                                       null,
                                                       null,
                                                       Records.View.GetExternalFilters(),
                                                       ref startRow,
                                                       0,
                                                       ref totalRows);

                    if (record.Count > 0)
                    {
                        PXResult <SchedulesInqResult, DRSchedule, DRDeferredCode, InventoryItem> rec =
                            (PXResult <SchedulesInqResult, DRSchedule, DRDeferredCode, InventoryItem>)record[0];
                        filter.TotalScheduled = ((SchedulesInqResult)rec).SignTotalAmt;
                        filter.TotalDeferred  = ((SchedulesInqResult)rec).SignDefAmt;
                    }
                }
            }
            yield return(cache.Current);

            cache.IsDirty = false;
        }
예제 #6
0
        public virtual BqlCommand ComposeBQLCommandForRecords(SchedulesFilter filter)
        {
            if (filter == null)
            {
                return(null);
            }

            PXSelectBase <SchedulesInqResult> select = new PXSelectJoin <SchedulesInqResult,
                                                                         InnerJoin <DRSchedule, On <DRSchedule.scheduleID, Equal <SchedulesInqResult.scheduleID> >,
                                                                                    InnerJoin <DRDeferredCode, On <DRDeferredCode.deferredCodeID, Equal <SchedulesInqResult.defCode> >,
                                                                                               LeftJoin <InventoryItem, On <InventoryItem.inventoryID, Equal <SchedulesInqResult.componentID> > > > >,
                                                                         Where <DRDeferredCode.accountType, Equal <Current <SchedulesFilter.accountType> > > >(this);

            if (!string.IsNullOrEmpty(filter.DeferredCode))
            {
                select.WhereAnd <Where <SchedulesInqResult.defCode, Equal <Current <SchedulesFilter.deferredCode> > > >();
            }

            if (filter.OrgBAccountID != null)
            {
                select.WhereAnd <Where <SchedulesInqResult.branchID, Inside <Current <SchedulesFilter.orgBAccountID> > > >();          //MatchWithOrg
            }

            if (filter.AccountID != null)
            {
                select.WhereAnd <Where <SchedulesInqResult.defAcctID, Equal <Current <SchedulesFilter.accountID> > > >();
            }

            if (filter.SubID != null)
            {
                select.WhereAnd <Where <SchedulesInqResult.defSubID, Equal <Current <SchedulesFilter.subID> > > >();
            }

            if (filter.BAccountID != null)
            {
                select.WhereAnd <Where <SchedulesInqResult.bAccountID, Equal <Current <SchedulesFilter.bAccountID> > > >();
            }

            if (filter.ComponentID != null)
            {
                select.WhereAnd <Where <SchedulesInqResult.componentID, Equal <Current <SchedulesFilter.componentID> > > >();
            }

            return(select.View.BqlSelect);
        }
예제 #7
0
        public virtual IEnumerable records()
        {
            var ret = new List <SchedulesInqResult>();

            int startRow  = PXView.StartRow;
            int totalRows = 0;

            SchedulesFilter filter = this.Filter.Current;

            BqlCommand cmd = ComposeBQLCommandForRecords(filter);

            if (cmd == null)
            {
                return(ret);
            }

            PXView view = new PXView(this, true, cmd);

            foreach (PXResult <SchedulesInqResult, DRSchedule, DRDeferredCode, InventoryItem> record in
                     view.Select(
                         PXView.Currents,
                         null,
                         PXView.Searches,
                         PXView.SortColumns,
                         PXView.Descendings,
                         PXView.Filters,
                         ref startRow,
                         PXView.MaximumRows,
                         ref totalRows))
            {
                SchedulesInqResult schedulesInqResult = (SchedulesInqResult)record;
                InventoryItem      inventoryItem      = (InventoryItem)record;

                schedulesInqResult.ComponentCD  = inventoryItem.InventoryCD;
                schedulesInqResult.DocumentType = DRScheduleDocumentType.BuildDocumentType(schedulesInqResult.Module, schedulesInqResult.DocType);

                ret.Add(schedulesInqResult);
            }

            PXView.StartRow = 0;

            return(ret);
        }
예제 #8
0
        public virtual IEnumerable items()
        {
            SchedulesFilter filter = this.Filter.Current;

            if (filter != null)
            {
                PXSelectBase <DRScheduleDetail> select = new PXSelectJoin <
                    DRScheduleDetail,
                    InnerJoin <DRSchedule,
                               On <DRSchedule.scheduleID, Equal <DRScheduleDetail.scheduleID> >,
                               InnerJoin <DRDeferredCode,
                                          On <DRDeferredCode.deferredCodeID, Equal <DRScheduleDetail.defCode> > > >,
                    Where <
                        DRDeferredCode.accountType, Equal <Current <DRDraftScheduleProc.SchedulesFilter.accountType> >,
                        And <DRScheduleDetail.status, Equal <DRScheduleStatus.DraftStatus>,
                             And <DRSchedule.isCustom, Equal <True> > > >,
                    OrderBy <
                        Asc <DRScheduleDetail.scheduleID,
                             Asc <DRScheduleDetail.componentID,
                                  Asc <DRScheduleDetail.detailLineNbr> > > > >
                                                             (this);

                BqlCommand command = select.View.BqlSelect;

                if (!string.IsNullOrEmpty(filter.DeferredCode))
                {
                    command = command.WhereAnd <Where <DRScheduleDetail.defCode, Equal <Current <SchedulesFilter.deferredCode> > > >();
                }

                if (filter.BranchID != null)
                {
                    command = command.WhereAnd <Where <DRScheduleDetail.branchID, Equal <Current <SchedulesFilter.branchID> > > >();
                }

                if (filter.AccountID != null)
                {
                    command = command.WhereAnd <Where <DRScheduleDetail.defAcctID, Equal <Current <SchedulesFilter.accountID> > > >();
                }

                if (filter.SubID != null)
                {
                    command = command.WhereAnd <Where <DRScheduleDetail.defSubID, Equal <Current <SchedulesFilter.subID> > > >();
                }

                if (filter.BAccountID != null)
                {
                    command = command.WhereAnd <Where <DRScheduleDetail.bAccountID, Equal <Current <SchedulesFilter.bAccountID> > > >();
                }

                if (filter.ComponentID != null)
                {
                    command = command.WhereAnd <Where <DRScheduleDetail.componentID, Equal <Current <SchedulesFilter.componentID> > > >();
                }

                return(command.CreateView(this, mergeCache: !select.View.IsReadOnly).SelectExternalWithPaging());
            }
            else
            {
                return(null);
            }
        }
예제 #9
0
        public virtual IEnumerable records()
        {
            var ret = new List <SchedulesInqResult>();

            int startRow  = PXView.StartRow;
            int totalRows = 0;

            SchedulesFilter filter = this.Filter.Current;

            if (filter != null)
            {
                PXSelectBase <SchedulesInqResult> select = new PXSelectJoin <SchedulesInqResult,
                                                                             InnerJoin <DRSchedule, On <DRSchedule.scheduleID, Equal <SchedulesInqResult.scheduleID> >,
                                                                                        InnerJoin <DRDeferredCode, On <DRDeferredCode.deferredCodeID, Equal <SchedulesInqResult.defCode> >,
                                                                                                   LeftJoin <InventoryItem, On <InventoryItem.inventoryID, Equal <SchedulesInqResult.componentID> > > > >,
                                                                             Where <DRDeferredCode.accountType, Equal <Current <SchedulesFilter.accountType> > > >(this);

                if (!string.IsNullOrEmpty(filter.DeferredCode))
                {
                    select.WhereAnd <Where <SchedulesInqResult.defCode, Equal <Current <SchedulesFilter.deferredCode> > > >();
                }

                if (filter.AccountID != null)
                {
                    select.WhereAnd <Where <SchedulesInqResult.defAcctID, Equal <Current <SchedulesFilter.accountID> > > >();
                }

                if (filter.SubID != null)
                {
                    select.WhereAnd <Where <SchedulesInqResult.defSubID, Equal <Current <SchedulesFilter.subID> > > >();
                }

                if (filter.BAccountID != null)
                {
                    select.WhereAnd <Where <SchedulesInqResult.bAccountID, Equal <Current <SchedulesFilter.bAccountID> > > >();
                }

                if (filter.ComponentID != null)
                {
                    select.WhereAnd <Where <SchedulesInqResult.componentID, Equal <Current <SchedulesFilter.componentID> > > >();
                }

                foreach (PXResult <SchedulesInqResult, DRSchedule, DRDeferredCode, InventoryItem> record in
                         select.View.Select(
                             PXView.Currents,
                             null,
                             PXView.Searches,
                             PXView.SortColumns,
                             PXView.Descendings,
                             PXView.Filters,
                             ref startRow,
                             PXView.MaximumRows,
                             ref totalRows))
                {
                    SchedulesInqResult schedulesInqResult = (SchedulesInqResult)record;
                    InventoryItem      inventoryItem      = (InventoryItem)record;

                    schedulesInqResult.ComponentCD  = inventoryItem.InventoryCD;
                    schedulesInqResult.DocumentType = DRScheduleDocumentType.BuildDocumentType(schedulesInqResult.Module, schedulesInqResult.DocType);

                    ret.Add(schedulesInqResult);
                }
            }

            PXView.StartRow = 0;

            return(ret);
        }