protected virtual void FixedAsset_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
        {
            FixedAsset asset = (FixedAsset)e.Row;

            // AssetID can be <0 when the datasource inserts a temporary record on redirect from selector
            if (asset == null || asset.AssetID < 0)
            {
                return;
            }

            FADetailsTransfer det = PXSelect <FADetailsTransfer, Where <FADetailsTransfer.assetID, Equal <Current <FixedAsset.assetID> > > > .SelectSingleBound(this, new object[] { asset });

            try
            {
                AssetProcess.ThrowDisabled_Transfer(this, asset, det);
            }
            catch (PXException exc)
            {
                PXUIFieldAttribute.SetEnabled <FixedAsset.selected>(sender, asset, false);
                sender.RaiseExceptionHandling <FixedAsset.selected>(asset, null, new PXSetPropertyException(exc.MessageNoNumber, PXErrorLevel.RowWarning));
            }

            if (string.IsNullOrEmpty(det.TransferPeriodID))
            {
                PXUIFieldAttribute.SetEnabled <FixedAsset.selected>(sender, asset, false);
                sender.RaiseExceptionHandling <FADetailsTransfer.transferPeriodID>(asset, null, new PXSetPropertyException(Messages.NextPeriodNotGenerated));
            }
        }