1 PACKAGE BODY igi_exp_hold AS
2 -- $Header: igiexpmb.pls 115.7 2003/08/09 11:46:22 rgopalan ship $
3
4 PROCEDURE Process_Inv_Hold_Status(p_invoice_id IN NUMBER,
5 p_line_location_id IN NUMBER,
6 p_rcv_transaction_id IN NUMBER,
7 p_hold_lookup_code IN VARCHAR2,
8 p_should_have_hold IN VARCHAR2,
9 p_hold_reason IN VARCHAR2,
10 p_system_user IN NUMBER,
11 p_holds IN OUT NOCOPY HOLDSARRAY,
12 p_holds_count IN OUT NOCOPY COUNTARRAY,
13 p_release_count IN OUT NOCOPY COUNTARRAY,
14 p_calling_sequence IN VARCHAR2);
15
16 PROCEDURE Update_Inv_Dists_To_Approved(p_invoice_id IN NUMBER,
17 p_user_id IN NUMBER,
18 p_calling_sequence IN VARCHAR2);
19
20 PROCEDURE Get_Hold_Status(p_invoice_id IN NUMBER,
21 p_line_location_id IN NUMBER,
22 p_rcv_transaction_id IN NUMBER,
23 p_hold_lookup_code IN VARCHAR2,
24 p_system_user IN NUMBER,
25 p_status IN OUT NOCOPY VARCHAR2,
26 p_return_hold_reason IN OUT NOCOPY VARCHAR2,
27 p_user_id IN OUT NOCOPY VARCHAR2,
28 p_resp_id IN OUT NOCOPY VARCHAR2,
29 p_calling_sequence IN VARCHAR2) ;
30
31 PROCEDURE Release_Hold(p_invoice_id IN NUMBER,
32 p_line_location_id IN NUMBER,
33 p_rcv_transaction_id IN NUMBER,
34 p_hold_lookup_code IN VARCHAR2,
35 p_holds IN OUT NOCOPY HOLDSARRAY,
36 p_release_count IN OUT NOCOPY COUNTARRAY,
37 p_calling_sequence IN VARCHAR2) ;
38
39 PROCEDURE Set_Hold(p_invoice_id IN NUMBER,
40 p_line_location_id IN NUMBER,
41 p_rcv_transaction_id IN NUMBER,
42 p_hold_lookup_code IN VARCHAR2,
43 p_hold_reason IN VARCHAR2,
44 p_holds IN OUT NOCOPY HOLDSARRAY,
45 p_holds_count IN OUT NOCOPY COUNTARRAY,
46 p_calling_sequence IN VARCHAR2);
47
48 PROCEDURE Get_Release_Lookup_For_Hold(p_hold_lookup_code IN VARCHAR2,
49 p_release_lookup_code IN OUT NOCOPY VARCHAR2,
50 p_calling_sequence IN VARCHAR2);
51
52 --
53 -- PROCESS_INV_HOLD_STATUS: Procedure that process and invoice hold status.
54 -- Determines whether to place or release a given
55 -- hold.
56 --
57 -- Parameters:
58 --
59 -- p_invoice_id: Invoice Id
60 --
61 -- p_line_location_id: Line Location Id
62 --
63 -- p_hold_lookup_code: Hold Lookup Code
64 --
65 -- p_should_have_hold: ('Y' or 'N') to indicate whether the invoice should
66 -- have the hold (previous parameter)
67 --
68 -- p_hold_reason: AWT ERROR parameter. The only hold whose hold reason is
69 -- not static.
70 --
71 -- p_system_user: Approval Program User Id
72 --
73 -- p_holds: Holds Array
74 --
75 -- p_holds_count: Holds Count Array
76 --
77 -- p_release_count: Release Count Array
78 --
79 -- p_calling_sequence: Debugging string to indicate path of module calls to be
80 -- printed out NOCOPY upon error.
81 --
82 -- Procedure Flow:
83 -- ---------------
84 --
85 -- Retrieve current hold_status for current hold
86 -- IF already_on_hold
87 -- IF shoould_not_have_hold OR if p_hold_reason is different from the
88 -- exists hold reason
89 -- Release the hold
90 -- ELSIF should_have_hold and hold_status <> Released By User
91 -- IF p_hold_reason is null or existing_hold_reason id different from
92 -- p_hold_reason
93 -- Place the hold on the invoice
94 --============================================================================
95 PROCEDURE Process_Inv_Hold_Status(p_invoice_id IN NUMBER,
96 p_line_location_id IN NUMBER,
97 p_rcv_transaction_id IN NUMBER,
98 p_hold_lookup_code IN VARCHAR2,
99 p_should_have_hold IN VARCHAR2,
100 p_hold_reason IN VARCHAR2,
101 p_system_user IN NUMBER,
102 p_holds IN OUT NOCOPY HOLDSARRAY,
103 p_holds_count IN OUT NOCOPY COUNTARRAY,
104 p_release_count IN OUT NOCOPY COUNTARRAY,
105 p_calling_sequence IN VARCHAR2)IS
106 BEGIN
107 NULL;
108 END Process_Inv_Hold_Status;
109
110
111 --============================================================================
112 -- GET_HOLD_STATUS: Prcedure to return the hold information and status
113 -- of an invoice, whether it is ALREADY ON HOLD,
114 -- RELEASED BY USER or NOT ON HOLD.
115 --============================================================================
116 PROCEDURE Get_Hold_Status(p_invoice_id IN NUMBER,
117 p_line_location_id IN NUMBER,
118 p_rcv_transaction_id IN NUMBER,
119 p_hold_lookup_code IN VARCHAR2,
120 p_system_user IN NUMBER,
121 p_status IN OUT NOCOPY VARCHAR2,
122 p_return_hold_reason IN OUT NOCOPY VARCHAR2,
123 p_user_id IN OUT NOCOPY VARCHAR2,
124 p_resp_id IN OUT NOCOPY VARCHAR2,
125 p_calling_sequence IN VARCHAR2) IS
126 BEGIN
127 NULL;
128 END Get_Hold_Status;
129
130 --============================================================================
131 -- RELEASE_HOLD: Procedure to release a hold from an invoice and update the
132 -- the release count array.
133 --============================================================================
134 PROCEDURE Release_Hold(p_invoice_id IN NUMBER,
135 p_line_location_id IN NUMBER,
136 p_rcv_transaction_id IN NUMBER,
137 p_hold_lookup_code IN VARCHAR2,
138 p_holds IN OUT NOCOPY HOLDSARRAY,
139 p_release_count IN OUT NOCOPY COUNTARRAY,
140 p_calling_sequence IN VARCHAR2) IS
141 BEGIN
142 NULL;
143 END Release_Hold;
144
145 --============================================================================
146 -- SET_HOLD: Procedure to Set an Invoice on Hold and update the hold count
147 -- array.
148 --============================================================================
149
150 PROCEDURE Set_Hold(p_invoice_id IN NUMBER,
151 p_line_location_id IN NUMBER,
152 p_rcv_transaction_id IN NUMBER,
153 p_hold_lookup_code IN VARCHAR2,
154 p_hold_reason IN VARCHAR2,
155 p_holds IN OUT NOCOPY HOLDSARRAY,
156 p_holds_count IN OUT NOCOPY COUNTARRAY,
157 p_calling_sequence IN VARCHAR2) IS
158 BEGIN
159 NULL;
160 END Set_Hold;
161
162 --============================================================================
163 -- GET_RELEASE_LOOKUP_FOR_HOLD: Procedure given a hold_lookup_code retunrs
164 -- the associated return_lookup_code
165 --============================================================================
166 PROCEDURE Get_Release_Lookup_For_Hold(p_hold_lookup_code IN VARCHAR2,
167 p_release_lookup_code IN OUT NOCOPY VARCHAR2,
168 p_calling_sequence IN VARCHAR2) IS
169 BEGIN
170 NULL;
171 END Get_Release_Lookup_For_Hold;
172
173
174 FUNCTION get_approval_status(l_invoice_id IN NUMBER,
175 l_invoice_amount IN NUMBER,
176 l_payment_status_flag IN VARCHAR2,
177 l_invoice_type_lookup_code IN VARCHAR2,
178 l_calling_sequence IN VARCHAR2) RETURN VARCHAR2 ;
179
180 -----------------------------------------------------------------------
181 -- Function get_approval_status returns the invoice approval status
182 -- lookup code.
183 --
184 -- Invoices:
185 -- 'APPROVED'
186 -- 'NEEDS REAPPROVAL'
187 -- 'NEVER APPROVED'
188 -- 'CANCELLED'
189 --
190 -- Prepayments:
191 -- 'AVAILABLE'
192 -- 'CANCELLED'
193 -- 'FULL'
194 -- 'UNAPPROVED'
195 -- 'UNPAID'
196 FUNCTION get_approval_status(l_invoice_id IN NUMBER,
197 l_invoice_amount IN NUMBER,
198 l_payment_status_flag IN VARCHAR2,
199 l_invoice_type_lookup_code IN VARCHAR2,
200 l_calling_sequence IN VARCHAR2)
201 RETURN VARCHAR2
202 IS
203 BEGIN NULL;
204 END get_approval_status;
205
206
207 --============================================================================
208 -- UPDATE_INV_DISTS_TO_APPROVED: Procedure that updates the invoice
209 -- distribution match_status_flag to 'A'
210 -- if encumbered or has no postable holds or is a reversal line, otherwise
211 -- if the invoice has postable holds then the match_status_flag remains a
212 -- 'T'.
213 --============================================================================
214 PROCEDURE Update_Inv_Dists_To_Approved(p_invoice_id IN NUMBER,
215 p_user_id IN NUMBER,
216 p_calling_sequence IN VARCHAR2) IS
217 BEGIN NULL;
218 END Update_Inv_Dists_To_Approved;
219
220
221 --============================================================================
222 -- FUNCTION:
223 -- Determine if the source of the invoice excludes it from EXP.
224 --
225 --============================================================================
226
227 FUNCTION invoice_not_excluded( p_invoice_id NUMBER
228 , p_source VARCHAR2
229 , p_calling_sequence VARCHAR2) RETURN BOOLEAN
230 IS
231 BEGIN NULL;
232 END invoice_not_excluded ;
233
234 --============================================================================
235 -- PLACE_EXP_HOLD:
236 -- Procedure that places an Exchange Protocol Hold if there
237 -- are no other holds placed by the approval process.
238 --
239 --============================================================================
240
241 PROCEDURE place_hold( p_invoice_id IN NUMBER
242 , p_source IN VARCHAR2
243 , p_cancelled_date IN DATE
244 , p_calling_sequence IN VARCHAR2 )
245 IS
246 BEGIN NULL;
247 END place_hold;
248
249 END igi_exp_hold ;