BEGIN
SELECT A.firstopenperiod_id, A.lastopenperiod_id
FROM bankaccounts A
WHERE A.id = :IN_BANKACCOUNT_ID
INTO FIRST_OPEN_PERIOD_ID, LAST_OPEN_PERIOD_ID;
SELECT rperiod_id
FROM getfirstperiodbydates(:IN_DATE_FROM$DATE, :IN_DATE_TO$DATE, :FIRST_OPEN_PERIOD_ID)
INTO OUT_PERIOD_ID;
IF (OUT_PERIOD_ID IS NOT NULL) THEN BEGIN
SELECT COUNT(*)
FROM bankaccounts2
WHERE parent_id = :IN_BANKACCOUNT_ID AND period_id = :OUT_PERIOD_ID
INTO RECORD_COUNT;
IF (RECORD_COUNT = 0) THEN BEGIN
OUT_PERIOD_ID = LAST_OPEN_PERIOD_ID;
END
SUSPEND;
END
END;