Beispiel #1
0
        protected virtual LumDeadStockEnqResult GetRowByPrimaryKeys(PXSelectBase <INSiteStatus> command,
                                                                    LumDeadStockEnqFilter filter, DateTime?inStockSince, DateTime?noSalesSince)
        {
            if (PXView.MaximumRows == 1 && PXView.StartRow == 0 &&
                PXView.Searches?.Length == Result.Cache.Keys.Count &&
                PXView.SearchColumns.Select(sc => sc.Column)
                .SequenceEqual(Result.Cache.Keys, StringComparer.OrdinalIgnoreCase) &&
                PXView.Searches.All(k => k != null))
            {
                int startRow  = 0;
                int totalRows = 0;
                var rows      = command.View.Select(new object[] { filter },
                                                    PXView.Parameters, PXView.Searches, PXView.SortColumns, PXView.Descendings,
                                                    PXView.Filters, ref startRow, PXView.MaximumRows, ref totalRows);

                foreach (var row in rows)
                {
                    if (row is PXResult)
                    {
                        return(MakeResult(row as PXResult <INSiteStatus>, inStockSince, noSalesSince));
                    }

                    return(MakeResult(new PXResult <INSiteStatus>(row as INSiteStatus), inStockSince, noSalesSince));
                }
            }

            return(null);
        }
Beispiel #2
0
 protected virtual void AddSiteFilter(PXSelectBase <INSiteStatus> command, LumDeadStockEnqFilter filter)
 {
     if (filter.SiteID != null)
     {
         command.WhereAnd <Where <INSiteStatus.siteID.IsEqual <LumDeadStockEnqFilter.siteID.FromCurrent> > >();
     }
 }
Beispiel #3
0
        protected virtual List <object> AddFilters(LumDeadStockEnqFilter filter, PXSelectBase <INSiteStatus> command,
                                                   DateTime?inStockSince, DateTime?noSalesSince)
        {
            var parameters = new List <object>();

            AddQtyOnHandFilter(command);
            AddSiteFilter(command, filter);
            AddInventoryFilter(command, filter);
            AddItemClassFilter(command, filter);
            AddNoSalesSinceFilter(command, parameters, noSalesSince);

            return(parameters);
        }
Beispiel #4
0
        protected virtual void GetStartDates(LumDeadStockEnqFilter filter, out DateTime?inStockSince, out DateTime?noSalesSince)
        {
            switch (filter.SelectBy)
            {
            case LumDeadStockEnqFilter.selectBy.Days:
                inStockSince = filter.InStockDays == null ? (DateTime?)null :
                               GetCurrentDate().AddDays(-1 * (int)filter.InStockDays);

                noSalesSince = filter.NoSalesDays == null ? (DateTime?)null :
                               GetCurrentDate().AddDays(-1 * (int)filter.NoSalesDays);
                break;

            case LumDeadStockEnqFilter.selectBy.Date:
                inStockSince = filter.InStockSince;
                noSalesSince = filter.NoSalesSince;
                break;

            default:
                throw new NotImplementedException();
            }
        }
Beispiel #5
0
        protected virtual bool ValidateFilter(LumDeadStockEnqFilter filter)
        {
            if (filter == null || filter.SiteID == null || filter.SelectBy == null)
            {
                return(false);
            }

            if (filter.SelectBy == LumDeadStockEnqFilter.selectBy.Days &&
                filter.InStockDays == null &&
                filter.NoSalesDays == null)
            {
                return(false);
            }

            if (filter.SelectBy == LumDeadStockEnqFilter.selectBy.Date &&
                filter.InStockSince == null &&
                filter.NoSalesSince == null)
            {
                return(false);
            }

            return(true);
        }
Beispiel #6
0
 protected virtual void AddItemClassFilter(PXSelectBase <INSiteStatus> command, LumDeadStockEnqFilter filter)
 {
     if (filter.ItemClassID != null)
     {
         command.WhereAnd <Where <InventoryItem.itemClassID.
                                  IsEqual <LumDeadStockEnqFilter.itemClassID.FromCurrent> > >();
     }
 }
Beispiel #7
0
        protected virtual void AddInventoryFilter(PXSelectBase <INSiteStatus> command, LumDeadStockEnqFilter filter)
        {
            if (filter.InventoryID != null)
            {
                command.WhereAnd <Where <INSiteStatus.inventoryID
                                         .IsEqual <LumDeadStockEnqFilter.inventoryID.FromCurrent> > >();
            }

            command.WhereAnd <Where <InventoryItem.itemStatus.IsNotIn <
                                         InventoryItemStatus.markedForDeletion, InventoryItemStatus.inactive> > >();
        }