protected virtual void SOOrderAlias_RowPersisting(PXCache sender, PXRowPersistingEventArgs e)
        {
            SOOrderAlias row      = e.Row as SOOrderAlias;
            CRCampaign   campaign = Campaign.Current;

            if (row == null || campaign == null)
            {
                return;
            }

            if (e.Operation == PXDBOperation.Insert)
            {
                PXDatabase.Update <SOOrder>(
                    new PXDataFieldAssign <SOOrder.campaignID>(campaign.CampaignID),
                    new PXDataFieldRestrict <SOOrder.orderType>(row.OrderType),
                    new PXDataFieldRestrict <SOOrder.orderNbr>(row.OrderNbr)
                    );
            }
            else if (e.Operation == PXDBOperation.Delete)
            {
                PXDatabase.Update <SOOrder>(
                    new PXDataFieldAssign <SOOrder.campaignID>(null),
                    new PXDataFieldRestrict <SOOrder.orderType>(row.OrderType),
                    new PXDataFieldRestrict <SOOrder.orderNbr>(row.OrderNbr)
                    );
            }

            sender.Clear();

            e.Cancel = true;
        }
        protected virtual void SOOrderAlias_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            SOOrderAlias row = e.Row as SOOrderAlias;

            if (row?.OrigCampaignID != null && row?.OrigCampaignID != row.CampaignID)
            {
                var oldCampaign = new PXSelect <CRCampaign,
                                                Where <CRCampaign.campaignID, Equal <Required <ARInvoice.campaignID> > > >(this).SelectSingle(row.OrigCampaignID);
                if (oldCampaign != null)
                {
                    this.Caches[typeof(SOOrderAlias)].RaiseExceptionHandling <SOOrderAlias.orderNbr>(row, null,
                                                                                                     new PXSetPropertyException(
                                                                                                         PXMessages.LocalizeFormat(Messages.CampaignLinkWarning, oldCampaign.CampaignName),
                                                                                                         PXErrorLevel.Warning));
                }
            }
        }
        protected virtual IEnumerable salesOrders()
        {
            PXResultset <SOOrderAlias, SOOrder> ret = new PXResultset <SOOrderAlias, SOOrder>();

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

            foreach (PXResult <SOOrderAlias, SOOrder> rec in SalesOrders_Select.View.Select(PXView.Currents, null, PXView.Searches, PXView.SortColumns, PXView.Descendings, PXView.Filters, ref startRow, PXView.MaximumRows, ref totalRows))
            {
                SOOrderAlias alias = rec;
                SOOrder      order = rec;
                alias.CampaignID = Campaign.Current?.CampaignID;
                ret.Add(new PXResult <SOOrderAlias, SOOrder>(alias, order));
            }

            PXView.StartRow = 0;
            PXView.SortClear();
            return(ret);
        }