DBA Data[Home] [Help]

PACKAGE BODY: APPS.PODUS

Source


1 package body podus as
2 --$Header: ICXPODUB.pls 115.3 99/07/17 03:20:16 porting ship $
3 --
4 --
5 procedure podusauths ( 	p_requisition_header_id in number,
6 			p_new_status		in varchar2 ) is
7 --
8 begin
9 		--
10 		UPDATE	po_requisition_headers porh
11 		SET	porh.authorization_status	= p_new_status,
12 			porh.last_update_date		= sysdate,
13 			porh.last_updated_by		= fnd_global.user_id,
14 			porh.last_update_login		= fnd_global.login_id
15 		WHERE	porh.requisition_header_id	= p_requisition_header_id;
16 		--
17 end;
18 --
19 --
20 procedure podusipah (	p_requisition_header_id	in number,
21 			p_action 		in varchar2,
22 			p_fwd_to_id 		in number,
23 			p_note 			in varchar2  ) is
24 	l_sequence_number	number;
25 	l_revision_num 		number :=0;
26 	l_approval_path_id 	number;
27 	l_offline_code		varchar2(10);
28 begin
29 	select 	max(sequence_num) + 1
30 	into	l_sequence_number
31 	from	po_action_history
32 	where	object_type_code= 'REQUISITION'
33 	and	object_id	= p_requisition_header_id;
34 	--
35 	--
36 	INSERT into PO_ACTION_HISTORY
37 	     (object_id,
38  	      object_type_code,
39 	      object_sub_type_code,
40 	      sequence_num,
41 	      last_update_date,
42 	      last_updated_by,
43               creation_date,
44               created_by,
45               action_code,
46               action_date,
47               employee_id,
48               note,
49               object_revision_num,
50               last_update_login,
51               request_id,
52               program_application_id,
53               program_id,
54               program_update_date,
55               approval_path_id,
56               offline_code)
57              VALUES
58              (p_requisition_header_id,
59 	      'REQUISITION',
60               'PURCHASE',
61               nvl(l_sequence_number,0),
62               sysdate,
63               fnd_global.user_id,
64               sysdate,
65               fnd_global.user_id,
66               p_action,
67               decode(p_action, '',to_date(''), sysdate),
68               p_fwd_to_id,
69               p_note,
70               l_revision_num,
71               fnd_global.login_id,
72               0,
73               0,
74               0,
75               '',
76               l_approval_path_id,
77               l_offline_code  );
78 
79 end podusipah;
80 --
81 --
82 procedure podusupah ( 	p_requisition_header_id	in number,
83 		   	p_action		in varchar2,
84 		   	p_note			in varchar2 ) is
85 --
86 begin
87 	--
88 	UPDATE 	po_action_history
89         SET	action_code		= p_action,
90 		action_date		= sysdate,
91                 note                	= p_note,
92 		last_updated_by     	= fnd_global.user_id,
93                 last_update_date    	= sysdate,
94                 object_revision_num 	= null,
95 		approval_path_id    	= null
96 	WHERE  	object_id           	= p_requisition_header_id
97         AND    	object_type_code    	= 'REQUISITION'
98         AND	action_code         	IS NULL;
99 	--
100 end podusupah;
101 --
102 --
103 procedure podufwd ( 	p_requisition_header_id in number,
104 			p_action 		in varchar2,
105 			p_fwd_to_id 		in number,
106 			p_note			in varchar2 ) is
107 begin
108 	--
109 	--
110 	podusipah (	p_requisition_header_id	=> p_requisition_header_id,
111 			p_action		=> to_char(null),
112 			p_fwd_to_id		=> p_fwd_to_id,
113 			p_note			=> p_note );
114 
115 	--
116 	--
117 end;
118 --
119 --
120 procedure podustate (	p_requisition_header_id in number,
121 			p_action 		in varchar2,
122 			p_emp_id		in number,
123 			p_note			in varchar2,
124 			p_new_status    	in varchar2  ) is
125 --
126 l_old_status 	po_requisition_headers.authorization_status%TYPE;
127 --
128 begin
129 	select	porh.authorization_status
130 	into	l_old_status
131 	from	po_requisition_headers porh
132 	where	porh.requisition_header_id = p_requisition_header_id;
133 	--
134 	--
135 	if ( l_old_status in ( 'INCOMPLETE', 'RETURNED', 'REJECTED', 'REQUIRES REAPPROVAL') ) then
136 		--
137 		podusipah( 	p_requisition_header_id	=> p_requisition_header_id,
138  				p_action		=> 'SUBMIT',
139 				p_fwd_to_id		=> p_emp_id,
140 				p_note			=> p_note   );
141 		--
142 		--
143 		if ( p_action <> 'SUBMIT' ) then
144 			--
145 			podusipah(	p_requisition_header_id => p_requisition_header_id,
146 					p_action		=> p_action,
147 					p_fwd_to_id		=> p_emp_id,
148 					p_note			=> p_note );
149 		end if;
150 		--
151 
152 	elsif ( l_old_status in ('IN PROCESS','PRE-APPROVED') ) then
153 		--
154 		-- Update previous record with action being performed
155 		--
156 		podusupah(	p_requisition_header_id => p_requisition_header_id,
157 				p_action		=> p_action,
158 				p_note			=> p_note  );
159 
160 	elsif ( l_old_status = 'APPROVED' ) then
161 		--
162 		null;  /* wf does not handle this yet */
163 		--
164 	end if;
165 	--
166 	if ( p_new_status is not null ) then
167 		--
168 		podusauths ( p_requisition_header_id 	=> p_requisition_header_id,
169 			     p_new_status		=> p_new_status );
170 		--
171 	end if;
172 	--
173 end podustate;
174 --
175 --
176 end podus;