begin
if (AStoreCard_ID is null) then
mQueueIn = '';
else
mQueueIn = AStoreCard_ID;
mQueueOut = '';
while (mQueueIn <> '') do begin
mStoreCardID = cast (ib_get_token(mQueueIn, ';') as char(10));
mQueueIn = ib_delete_token(mQueueIn, ';');
for select R.Replacement_ID from StoreCardReplacements R
join storecards sc on sc.id = r.replacement_id
where R.StoreCard_ID = :mStoreCardID and sc.Hidden = 'N'
into :mReplacementID
do begin
if ((ib_find_token(mQueueOut, mReplacementID) = 0)
and (mReplacementID <> AStoreCard_ID)) then begin
if (mQueueIn <> '') then
mQueueIn = mQueueIn || ';';
mQueueIn = mQueueIn || mReplacementID;
if (mQueueOut <> '') then
mQueueOut = mQueueOut || ';';
mQueueOut = mQueueOut || mReplacementID;
ID = mReplacementID;
suspend;
end
end
end
end;