Break barcode generator into smaller pieces
authorDan Scott <dan@coffeecode.net>
Wed, 31 Aug 2011 20:08:48 +0000 (16:08 -0400)
committerDan Scott <dscott@laurentian.ca>
Tue, 7 May 2013 18:37:50 +0000 (14:37 -0400)
This should make it easier to expose evergreen.lu_generate_barcode() for
manual purposes (e.g. for creating a new user on the fly in the Register
Patron UI).

Signed-off-by: Dan Scott <dscott@laurentian.ca>
tools/patron-load/ldap_sync

index e2b87ef..216250f 100644 (file)
@@ -178,15 +178,11 @@ def generate_lu_barcode():
     print """
 CREATE SEQUENCE evergreen.lu_barcode START 200000;
 
-CREATE OR REPLACE FUNCTION evergreen.generate_lu_barcode(usr_id INT) RETURNS TEXT AS $$
+CREATE OR REPLACE FUNCTION evergreen.lu_update_barcode(usr_id INT) RETURNS TEXT AS $$
 DECLARE
     barcode TEXT;
-    mod TEXT;
-    bc_serial RECORD;
 BEGIN
-    SELECT NEXTVAL('evergreen.lu_barcode') AS bc INTO bc_serial;
-    barcode := '0000700' || bc_serial.bc::text;
-    barcode := barcode || evergreen.mod10(barcode);
+    barcode := evergreen.lu_generate_barcode();
 
     INSERT INTO actor.card (usr, barcode) VALUES (usr_id, barcode);
 
@@ -197,6 +193,20 @@ BEGIN
     RETURN barcode;
 END;
 $$ LANGUAGE PLPGSQL;
+
+CREATE OR REPLACE FUNCTION evergreen.lu_generate_barcode() RETURNS TEXT AS $$
+DECLARE
+    barcode TEXT;
+    mod TEXT;
+    bc_serial RECORD;
+BEGIN
+    SELECT NEXTVAL('evergreen.lu_barcode') AS bc INTO bc_serial;
+    barcode := '0000700' || bc_serial.bc::text;
+    barcode := barcode || evergreen.mod10(barcode);
+
+    RETURN barcode;
+END;
+$$ LANGUAGE PLPGSQL;
 """