-CREATE OR REPLACE FUNCTION fetchNextCheckNumber(INTEGER) RETURNS INTEGER AS '
+CREATE OR REPLACE FUNCTION fetchNextCheckNumber(pBankaccntid INTEGER) RETURNS INTEGER AS $$
-- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
-- See www.xtuple.com/CPAL for the full text of the software license.
DECLARE
pBankaccntid ALIAS FOR $1;
_nextChkNumber INTEGER;
+ _checkheadid INTEGER;
BEGIN
FROM bankaccnt
WHERE (bankaccnt_id=pBankaccntid);
+ WHILE (TRUE) LOOP
+ SELECT checkhead_id INTO _checkheadid
+ FROM checkhead
+ WHERE (checkhead_number=_nextChkNumber)
+ AND (checkhead_bankaccnt_id=pBankaccntid);
+ IF (NOT FOUND) THEN
+ EXIT;
+ ELSE
+ _nextChkNumber := _nextChkNumber + 1;
+ END IF;
+ END LOOP;
+
UPDATE bankaccnt
SET bankaccnt_nextchknum = (bankaccnt_nextchknum + 1)
WHERE (bankaccnt_id=pBankaccntid);
RETURN _nextChkNumber;
END;
-' LANGUAGE 'plpgsql';
+$$ LANGUAGE 'plpgsql';
-CREATE OR REPLACE FUNCTION setNextCheckNumber(INTEGER, INTEGER) RETURNS BOOLEAN AS '
+CREATE OR REPLACE FUNCTION setNextCheckNumber(pBankaccntid INTEGER,
+ pNextCheckNumber INTEGER) RETURNS BOOLEAN AS $$
-- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
-- See www.xtuple.com/CPAL for the full text of the software license.
DECLARE
- pBankaccntid ALIAS FOR $1;
- pNextCheckNumber ALIAS FOR $2;
+ _nextChkNumber INTEGER;
+ _checkheadid INTEGER;
BEGIN
+ _nextChkNumber := pNextCheckNumber;
+
+ WHILE (TRUE) LOOP
+ SELECT checkhead_id INTO _checkheadid
+ FROM checkhead
+ WHERE (checkhead_number=_nextChkNumber)
+ AND (checkhead_bankaccnt_id=pBankaccntid);
+ IF (NOT FOUND) THEN
+ EXIT;
+ ELSE
+ _nextChkNumber := _nextChkNumber + 1;
+ END IF;
+ END LOOP;
+
UPDATE bankaccnt
- SET bankaccnt_nextchknum=pNextCheckNumber
+ SET bankaccnt_nextchknum=_nextChkNumber
WHERE (bankaccnt_id=pBankaccntid);
RETURN TRUE;
END;
-' LANGUAGE 'plpgsql';
+$$ LANGUAGE 'plpgsql';