Index: openacs-4/packages/contacts/sql/postgresql/attributes-package-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/sql/postgresql/Attic/attributes-package-create.sql,v diff -u -N --- openacs-4/packages/contacts/sql/postgresql/attributes-package-create.sql 13 Jan 2005 13:57:00 -0000 1.2 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,307 +0,0 @@ --- attributes-package-create.sql --- --- @author Matthew Geddert openacs@geddert.com --- @creation-date 2004-07-28 --- @cvs-id $Id: attributes-package-create.sql,v 1.2 2005/01/13 13:57:00 jeffd Exp $ --- --- - - -create function inline_1 () -returns integer as ' -begin - - PERFORM acs_object_type__create_type ( - ''contact_attribute'', - ''Contact Attribute'', - ''Contact Attributes'', - ''acs_object'', - ''contact_attributes'', - ''attribute_id'', - null, - ''f'', - null, - ''contact__attribute_name'' - ); - - return 0; - -end;' language 'plpgsql'; -select inline_1 (); -drop function inline_1 (); - - - -create or replace function contact__widget_create (varchar,varchar,varchar,varchar,boolean,varchar,varchar,boolean,boolean) -returns integer as ' -declare - p_storage_column alias for $1; - p_description alias for $2; - p_widget alias for $3; - p_datatype alias for $4; - p_help_p alias for $5; - p_html alias for $6; - p_format alias for $7; - p_multiple_p alias for $8; - p_nospell_p alias for $9; - v_widget_id integer; -begin - v_widget_id := nextval(''contact_widget_id_seq''); - - insert into contact_widgets - (widget_id,storage_column,description,widget,datatype,help_p,html,format,multiple_p,nospell_p) - values - (v_widget_id,p_storage_column,p_description,p_widget,p_datatype,p_help_p,p_html,p_format,p_multiple_p,p_nospell_p); - - return v_widget_id; -end;' language 'plpgsql'; - - - - - -create or replace function contact__attribute_create (integer,varchar,integer,boolean,timestamptz,integer,varchar,integer) -returns integer as ' -declare - p_attribute_id alias for $1; - p_attribute alias for $2; - p_widget_id alias for $3; - p_depreciated_p alias for $4; - p_creation_date alias for $5; - p_creation_user alias for $6; - p_creation_ip alias for $7; - p_context_id alias for $8; - v_attribute_id integer; -begin - v_attribute_id := acs_object__new ( - p_attribute_id, - ''contact_attribute'', - p_creation_date, - p_creation_user, - P_creation_ip, - p_context_id - ); - - insert into contact_attributes - (attribute_id,attribute,widget_id,depreciated_p) - values - (v_attribute_id,p_attribute,p_widget_id,p_depreciated_p); - - return v_attribute_id; -end;' language 'plpgsql'; - -create or replace function contact__attribute_name_save(integer,varchar,varchar,varchar) -returns integer as ' -declare - p_attribute_id alias for $1; - p_locale alias for $2; - p_name alias for $3; - p_help_text alias for $4; -begin - - delete from contact_attribute_names where attribute_id = p_attribute_id and locale = p_locale; - - insert into contact_attribute_names - (attribute_id,locale,name,help_text) - values - (p_attribute_id,p_locale,p_name,p_help_text); - - return ''1''; -end;' language 'plpgsql'; - - - - - - - - - - -create or replace function contact__attribute_object_map_save(integer,integer,integer,boolean,varchar) -returns integer as ' -declare - p_object_id alias for $1; - p_attribute_id alias for $2; - p_sort_order alias for $3; - p_required_p alias for $4; - p_heading alias for $5; -begin - - delete from contact_attribute_object_map where attribute_id = p_attribute_id and object_id = p_object_id; - - insert into contact_attribute_object_map - (object_id,attribute_id,sort_order,required_p,heading) - values - (p_object_id,p_attribute_id,p_sort_order,p_required_p,p_heading); - - return ''1''; -end;' language 'plpgsql'; - - - - - -create or replace function contact__attribute_name (integer) -returns varchar as ' -declare - p_attribute_id alias for $1; - v_name varchar; -begin - v_name := attribute from contact_attributes where attribute_id = p_attribute_id; - return v_name; -end;' language 'plpgsql'; - -create or replace function contact__attribute_delete (integer) -returns integer as ' -declare - p_attribute_id alias for $1; -begin - update contact_attributes set deleted_p = ''t'' where attribute_id = p_attribute_id; - return 0; -end;' language 'plpgsql'; - --- raise NOTICE ''v_count: %'', v_count; - - -create or replace function contact__attribute_value_save (integer,integer,integer,integer,integer,timestamptz,text,boolean,timestamptz,integer,varchar) -returns integer as ' -declare - p_party_id alias for $1; - p_attribute_id alias for $2; - p_option_map_id alias for $3; - p_address_id alias for $4; - p_number_id alias for $5; - p_time alias for $6; - p_value alias for $7; - p_deleted_p alias for $8; - p_creation_date alias for $9; - p_creation_user alias for $10; - p_creation_ip alias for $11; - v_count integer; - v_option_map_id integer; - v_address_id integer; - v_number_id integer; - v_time timestamptz; - v_value text; - v_edit_p boolean; -begin - - v_count := count(*) from contact_attribute_values where party_id = p_party_id and attribute_id = p_attribute_id and not deleted_p; - - if v_count = ''0'' then - - if p_option_map_id is not null - or p_address_id is not null - or p_number_id is not null - or p_time is not null - or p_value is not null - then - - insert into contact_attribute_values - (party_id,attribute_id,option_map_id,address_id,number_id,time,value,deleted_p,creation_date,creation_user,creation_ip) - values - (p_party_id,p_attribute_id,p_option_map_id,p_address_id,p_number_id,p_time,p_value,p_deleted_p,p_creation_date,p_creation_user,p_creation_ip); - end if; - - else - - - select option_map_id, - address_id, - number_id, - time, - value - into v_option_map_id, - v_address_id, - v_number_id, - v_time, - v_value - from contact_attribute_values - where party_id = p_party_id - and attribute_id = p_attribute_id - and not deleted_p; - - if p_option_map_id is null - and p_address_id is null - and p_number_id is null - and p_time is null - and p_value is null - then - - update contact_attribute_values set deleted_p = ''t'' where attribute_id = p_attribute_id and party_id = p_party_id; - - - end if; - - - - if v_option_map_id != p_option_map_id - or v_address_id != p_address_id - or v_number_id != p_number_id - or v_time != p_time - or v_value != p_value - then - - update contact_attribute_values set deleted_p = ''t'' where attribute_id = p_attribute_id and party_id = p_party_id; - - if p_option_map_id is not null - or p_address_id is not null - or p_number_id is not null - or p_time is not null - or p_value is not null - then - insert into contact_attribute_values - (party_id,attribute_id,option_map_id,address_id,number_id,time,value,deleted_p,creation_date,creation_user,creation_ip) - values - (p_party_id,p_attribute_id,p_option_map_id,p_address_id,p_number_id,p_time,p_value,p_deleted_p,p_creation_date,p_creation_user,p_creation_ip); - end if; - - end if; - - end if; - - - - - return 0; -end;' language 'plpgsql'; - - - - - - - - - -create or replace function contact__attribute_option_create (integer,varchar,integer) -returns integer as ' -declare - p_attribute_id alias for $1; - p_option alias for $2; - p_sort_order alias for $3; - v_option_id integer; -begin - - select nextval(''contact_attribute_options_id_seq'') - into v_option_id; - - insert into contact_attribute_options - (option_id,attribute_id,option,sort_order) - values - (v_option_id,p_attribute_id,p_option,p_sort_order); - -return v_option_id; -end;' language 'plpgsql'; - -create or replace function contact__attribute_option_delete (integer) -returns integer as ' -declare - p_option_id alias for $1; -begin - update contact_attribute_options set deleted_p = ''t'' where option_id = p_option_id; -return 0; -end;' language 'plpgsql'; - -