pgsql/x-dragon-invadj.sql
[Pman.Xtuple] / pgsql / fetchinvnumber.sql
1 -- modified to fix dupe invoices being created.
2
3 -- Function: fetchinvcnumber()
4
5 -- DROP FUNCTION fetchinvcnumber();
6
7 CREATE OR REPLACE FUNCTION fetchinvcnumber()
8   RETURNS integer AS
9 $BODY$
10 -- Copyright (c) 1999-2011 by OpenMFG LLC, d/b/a xTuple. 
11 -- See www.xtuple.com/CPAL for the full text of the software license.
12 DECLARE
13   _invcNumber INTEGER;
14   _test INTEGER;
15
16 BEGIN
17
18   LOOP
19
20     SELECT orderseq_number INTO _invcNumber
21     FROM orderseq
22     WHERE (orderseq_name='InvcNumber');
23
24     UPDATE orderseq
25     SET orderseq_number = (orderseq_number + 1)
26     WHERE (orderseq_name='InvcNumber');
27
28     SELECT invchead_id INTO _test
29     FROM invchead
30     WHERE invchead_invcnumber = _invcNumber::text;
31     IF FOUND THEN
32         CONTINUE;
33     END IF;
34
35     SELECT cobmisc_id INTO _test
36     FROM cobmisc
37     WHERE (cobmisc_invcnumber=_invcNumber);
38
39     IF (NOT FOUND) THEN
40       EXIT;
41     END IF;
42
43   END LOOP;
44
45   RETURN _invcNumber;
46
47 END;
48 $BODY$
49   LANGUAGE plpgsql VOLATILE
50   COST 100;
51 ALTER FUNCTION fetchinvcnumber()
52   OWNER TO admin;