--
-- acs_mail_body__clone/7
--
create or replace function acs_mail_body__clone(
  integer,
  integer,
  character varying,
  timestamp with time zone,
  integer,
  character varying,
  integer
) returns int4 as $$

declare 
	p_old_body_id       alias for $1;
	p_body_id           alias for $2;    -- default null
	p_object_type       alias for $3;    -- default acs_mail_body
	p_creation_date     alias for $4;    -- default now()
	p_creation_user     alias for $5;    -- default null
	p_creation_ip       alias for $6;    -- default null
	p_context_id        alias for $7;    -- default null
    v_object_id         integer;
    v_body_reply_to		integer;
    v_body_from         integer;
    v_body_date         timestamptz;
    v_header_message_id varchar;
    v_header_reply_to   varchar;
    v_header_subject    text;
    v_header_from       text;
    v_header_to         text;
    v_content_item_id integer;
begin
     select body_reply_to, body_from, body_date,
            header_reply_to, header_subject, header_from, header_to,
            content_item_id
         into v_body_reply_to, v_body_from, v_body_date,
            v_header_reply_to, v_header_subject, v_header_from, v_header_to,
            v_content_item_id
         from acs_mail_bodies
         where body_id = p_old_body_id;

     v_object_id := acs_mail_body__new (
		p_body_id,				-- body_id 
		v_body_reply_to,		-- body_reply_to 
		v_body_from,			-- body_from 
		v_body_date,			-- body_date 
		v_header_reply_to,		-- header_reply_to 
		v_header_subject,		-- header_subject 
		v_header_from,			-- header_from 
		v_header_to,			-- header_to 
		v_content_item_id,		-- content_item_id 
		p_object_type,			-- object_type 
		p_creation_date,		-- creation_date 
		p_creation_user,		-- creation_user 
		p_creation_ip,			-- creation_ip 
		p_context_id			-- context_id 
     );

     return v_object_id;
end;
$$ language plpgsql;