[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;