Index: openacs-4/packages/recruiting/sql/postgresql/recruiting-api-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/recruiting/sql/postgresql/recruiting-api-create.sql,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/recruiting/sql/postgresql/recruiting-api-create.sql	26 Jul 2002 21:22:34 -0000	1.1
+++ openacs-4/packages/recruiting/sql/postgresql/recruiting-api-create.sql	29 Jul 2002 23:38:09 -0000	1.2
@@ -24,3 +24,373 @@
 -- @author chak (chak@openforce.net)
 -- @creation-date 2002-07-27
 -- @version $Id$
+
+select define_function_args('recruiting_status_type__new','status_type_id,package_id,short_desc,long_desc,enabled_p,creation_user,creation_ip');
+
+create function recruiting_status_type__new(integer,integer,varchar,varchar,boolean,integer,varchar)
+returns integer as'
+declare
+  p_status_type_id              alias for $1;
+  p_package_id                  alias for $2;
+  p_short_desc                  alias for $3;
+  p_long_desc                   alias for $4;
+  p_enabled_p                   alias for $5;
+  p_creation_user               alias for $6;
+  p_creation_ip                 alias for $7;
+  v_status_type_id              integer;
+begin
+
+  v_status_type_id := acs_object__new(
+                   p_status_type_id,
+                   ''recruiting_status_type'',
+                   now(),
+                   p_creation_user,
+                   p_creation_ip,
+                   p_package_id);
+
+   insert into recruiting_status_types
+              (status_type_id,
+               package_id,
+               short_desc,
+               long_desc,
+               enabled_p)
+        values(v_status_type_id,
+               p_package_id,
+               p_short_desc,
+               p_long_desc,
+               p_enabled_p);
+
+   return v_status_type_id;
+
+end;' language 'plpgsql';
+
+select define_function_args('recruiting_status_type__delete','status_type_id');
+create function recruiting_status_type__delete(integer)
+returns integer as '
+declare
+  p_status_type_id      alias for $1;
+begin
+
+  delete from recruiting_status_types where status_type_id = p_status_type_id;
+  
+  perform acs_object__delete(p_status_type_id);
+
+  return 1;
+
+end;' language 'plpgsql';
+
+select define_function_args('recruiting_status_type__name','message_id');
+create function recruiting_status_type__name(integer)
+returns varchar as '
+declare
+  p_message_id          alias for $1;
+begin
+
+  return short_desc 
+    from recruiting_status_types 
+   where status_type_id = p_status_type_id;
+
+end;' language 'plpgsql';
+
+
+select define_function_args('recruiting_criteria__new','criteria_id,package_id,criteria_name,description,enabled_p,creation_user,creation_ip');
+create function recruiting_criteria__new(integer,integer,varchar,varchar,boolean,integer,varchar)
+returns integer as '
+declare
+  p_criteria_id         alias for $1;
+  p_package_id          alias for $2;
+  p_criteria_name       alias for $3;
+  p_descriptioin        alias for $4;
+  p_enabled_p           alias for $5;
+  p_creation_user       alias for $6;
+  p_creation_ip         alias for $7;
+  v_creation_id         integer;
+begin
+
+  v_creation_id := acs_object_type__create_type(
+                p_criteria_id,
+                ''recruiting_criteria'',
+                now(),
+                p_creation_user,
+                p_creation_ip,
+                p_package_id);
+
+  insert into recruiting_criteria
+              (criteria_id,
+               package_id,
+               criteria_name,
+               description,
+               enabled_p)
+        values(v_criteria_id,
+               p_package_id,
+               p_criteria_name,
+               p_description,
+               p_enabled_p);
+
+  return v_criteria_id;
+
+end;' language 'plpgsql';
+
+select define_function_args('recruiting_criteria__delete','criteria_id');
+create function recruiting_criteria__delete(integer)
+returns integer as '
+declare
+  p_criteria_id         alias for $1;
+begin
+
+  delete from recruiting_criteria where criteria_id = p_criteria_id;
+
+  perform acs_object__delete(p_criteria_id);
+
+  return 1;
+
+end;' language 'plpgsql';
+
+select define_function_args('recruiting_criteria__name','criteria_id');
+create function recruiting_criteria__name(integer)
+returns integer as '
+declare
+  p_criteria_id         alias for $1;
+begin
+
+        return criteria_name 
+          from recruiting_criteria
+         where criteria_id = p_criteria_id;
+
+end;' language 'plpgsql';
+
+select define_function_args('recruiting_candidate__new','candidate_id,package_id,first_name,last_name,address1,address2,city,state,zip,zip_plus_four,country,email,status,creation_user,creation_ip');
+create function recruiting_candidate__new(integer,integer,varchar,varchar,varchar,varchar,varchar,varchar,varchar,varchar,varchar,varchar,integer,integer,varchar)
+returns integer as '
+declare
+  p_candidate_id        alias for $1;
+  p_package_id          alias for $2;
+  p_first_name          alias for $3;
+  p_last_name           alias for $4;
+  p_address1            alias for $5;
+  p_address2            alias for $6;
+  p_city                alias for $7;
+  p_state               alias for $8;
+  p_zip                 alias for $9
+  p_zip_plus_four       alias for $10
+  p_country             alias for $11;
+  p_email               alias for $12;
+  p_status              alias for $13;
+  p_creation_user       alias for $14;
+  p_creation_ip         alias for $15;
+  v_candidate_id        integer;
+begin
+
+  v_candidate_id := acs_object__new(
+                 p_candidate_id,
+                 ''recruiting_candidate'',
+                 now(),
+                 p_creation_user,
+                 p_creation_ip,
+                 p_package_id);
+
+   insert into recruiting_candidates
+              (candidate_id,
+               package_id,
+               first_name,
+               last_name,
+               address1,
+               address2,
+               city,
+               state,
+               zip,
+               zip_plus_four,
+               country,
+               email,
+               status)
+        values(v_candidate_id,
+               p_package_id,
+               p_first_name,
+               p_last_name,
+               p_address1,
+               p_address2,
+               p_city,
+               p_state,
+               p_zip,
+               p_zip_plus_four,
+               p_country,
+               p_email,
+               p_status);
+
+  return v_candidate_id;
+
+end;' language 'plpgsql';
+
+select define_function_args('recruiting_candidate__delete','candidate_id');
+create function recruiting_candidate__delete(integer)
+returns integer as '
+declare 
+  p_candidate_id        alias for $1;
+begin
+
+  delete from recruiting_candidates where candidate_id = p_candidate_id;
+
+  perform acs_object__delete(p_candidate_id);
+
+  return 1;
+
+end;' language 'plpgsql';
+
+select define_function_args('recruiting_candidate__name','candidate_id');
+create function recruiting_candidate__name(integer)
+returns varchar as '
+declare
+  p_candidate_id        alias for $1;
+  v_desc                varchar;
+begin
+
+  v_desc := select last_name||'', ''||first_name from recruiting_candidates 
+             where candidate_id = p_candidate_id;
+
+  return v_desc
+
+end;' language 'plpgsql';
+
+select define_function_args('recruiting_interview__new','interview_id,package_id,interviewer_id,candidate_id,creation_user,creation_ip');
+create function recruiting_interview__new(integer,integer,integer,integer,integer,varchar)
+returns integer as '
+declare
+  p_interview_id        alias for $1;
+  p_package_id          alias for $2;
+  p_interviewer_id      alias for $3;
+  p_candidate_id        alias for $4;
+  p_creation_user       alias for $5;
+  p_creation_ip         alias for $6;
+  v_interview_id        integer;
+
+begin
+
+  v_interview_id := acs_object__new(
+                 p_interview_id,
+                 ''recruiting_interview'',
+                 now(),
+                 p_creation_user,
+                 p_creation_ip,
+                 p_package_id);
+
+  insert into recruiting_interviews
+             (interview_id,
+              package_id,
+              interviewer_id,   
+              candidate_id)
+       values(v_interview_id,
+              p_package_id,
+              p_interviewer_id,
+              p_candidate_id);
+
+  return v_interview_id;
+
+end;' language 'plpgsql';
+
+select define_function_args('recruiting_interview__delete','interview_id');
+create function recruiting_interview__delete(integer)
+returns integer as '
+declare
+  p_interview_id        alias for $1;
+begin
+
+  delete from recruiting_interviews where interview_id = p_interview_id;
+
+  perform acs_object__delete(p_interview_id);
+
+  return 1;
+
+end;' language 'plpgsql';
+
+select define_function_args('recruiting_interview_name','interview_id');
+create function recruiting_interview__name(integer)
+returns varchar as '
+declare
+  p_interview_id        alias for $1;
+  v_desc                varchar;
+begin
+
+  v_desc := select u.last_name||'', ''||u.first_name||''''''s interview of ''||c.last_name||'', ''||c.first_name
+              from users u,
+                   recruiting_candidates c
+             where recruiting_interviews.interview_id = p_interview_id
+               and recruiting_interviews.interviewer_id = u.user_id
+               and recruiting_interviews.candidate_id = c.candidate_id;
+
+  return v_desc;
+
+end;' language 'plpgsql';
+
+select define_function_args('recruiting_rating__new','rating_id,package_id,interview_id,criteria_id,rating,creation_user,creation_ip');
+create function recruiting_rating__new(integer,integer,integer,integer,integer,integer,varchar)
+returns integer as '
+declare
+  p_rating_id           alias for $1;
+  p_package_id          alias for $2;
+  p_interview_id        alias for $3;
+  p_criteria_id         alias for $4;
+  p_rating              alias for $5;
+  p_creation_user       alias for $6;
+  p_creation_ip         alias for $7;
+  v_rating_id           integer;
+begin
+
+  v_rating_id := acs_object__new(
+              p_rating_id,
+              ''recruiting_rating'',
+              now(),
+              p_creation_user,
+              p_creation_ip,
+              p_package_id);
+
+  insert into recruiting_ratings
+             (rating_id,
+              package_id,
+              interview_id,
+              criteria_id,      
+              rating)
+       values(v_rating_id,
+              p_package_id,
+              p_interview_id,
+              p_criteria_id,
+              p_rating);
+
+  return v_rating_id;
+
+end;' language 'plpgsql';
+
+select define_function_args('recruiting_rating__delete','rating_id');
+create function recruiting_rating__delete(integer)
+returns integer as '
+declare
+  p_rating_id           alias for $1;
+begin
+
+  delete from recruiting_ratings where rating_id = p_rating_id;
+
+  perform acs_object__delete(p_rating_id);
+
+  return 1;
+
+end;' language 'plpgsql';
+
+select define_function_args('recruiting_rating__name','rating_id');
+create function recruiting_rating__name(integer)
+returns varchar as '
+declare
+  p_rating_id   alias for $1;
+  v_desc        varchar
+begin
+
+  v_desc := select u.last_name||'', ''||u.first_name||''''''s ''||rc.criteria_name||'' rating of ''||c.last_name||'', ''||c.first_name
+              from users u,
+                   recruiting_candidates c,
+                   recruiting_criteria rc,
+             where recruiting_ratings.rating_id = p_rating_id
+               and recruiting_ratings.interview_id = recruiting_interviews.interview_id
+               and recruiting_interviews.interviewer_id = u.user_id
+               and recruiting_interviews.candidate_id = c.candidate_id;
+
+  return v_desc;
+
+end;' language 'plpgsql';
