1 PACKAGE BODY PO_LINES_PKG_SL as
2 /* $Header: POXPIL2B.pls 120.2 2005/06/27 04:45:46 sjadhav noship $ */
3
4 PROCEDURE Lock_Row(X_Rowid VARCHAR2,
5 X_Po_Line_Id NUMBER,
6 X_Po_Header_Id NUMBER,
7 X_Line_Type_Id NUMBER,
8 X_Line_Num NUMBER,
9 X_Item_Id NUMBER,
10 X_Item_Revision VARCHAR2,
11 X_Category_Id NUMBER,
12 X_Item_Description VARCHAR2,
13 X_Unit_Meas_Lookup_Code VARCHAR2,
14 X_Quantity_Committed NUMBER,
15 X_Committed_Amount NUMBER,
16 X_Allow_Price_Override_Flag VARCHAR2,
17 X_Not_To_Exceed_Price NUMBER,
18 X_List_Price_Per_Unit NUMBER,
19 X_Unit_Price NUMBER,
20 X_Quantity NUMBER,
21 X_Un_Number_Id NUMBER,
22 X_Hazard_Class_Id NUMBER,
23 X_Note_To_Vendor VARCHAR2,
24 X_From_Header_Id NUMBER,
25 X_From_Line_Id NUMBER,
26 X_From_Line_Location_Id NUMBER, -- <SERVICES FPJ>
27 X_Min_Order_Quantity NUMBER,
28 X_Max_Order_Quantity NUMBER,
29 X_Qty_Rcv_Tolerance NUMBER,
30 X_Over_Tolerance_Error_Flag VARCHAR2,
31 X_Market_Price NUMBER,
32 X_Unordered_Flag VARCHAR2,
33 X_Closed_Flag VARCHAR2,
34 X_User_Hold_Flag VARCHAR2,
35 X_Cancel_Flag VARCHAR2,
36 X_Cancelled_By NUMBER,
37 X_Cancel_Date DATE,
38 X_Cancel_Reason VARCHAR2,
39 X_Firm_Status_Lookup_Code VARCHAR2,
40 X_Firm_Date DATE,
41 X_Vendor_Product_Num VARCHAR2,
42 X_Contract_Num VARCHAR2,
43 X_Tax_Code_Id NUMBER,
44 X_Type_1099 VARCHAR2,
45 X_Capital_Expense_Flag VARCHAR2,
46 X_Negotiated_By_Preparer_Flag VARCHAR2,
47 X_Attribute_Category VARCHAR2,
48 X_Attribute1 VARCHAR2,
49 X_Attribute2 VARCHAR2,
50 X_Attribute3 VARCHAR2,
51 X_Attribute4 VARCHAR2,
52 X_Attribute5 VARCHAR2,
53 X_Attribute6 VARCHAR2,
54 X_Attribute7 VARCHAR2,
55 X_Attribute8 VARCHAR2,
56 X_Attribute9 VARCHAR2,
57 X_Attribute10 VARCHAR2,
58 X_Reference_Num VARCHAR2,
59 X_Attribute11 VARCHAR2,
60 X_Attribute12 VARCHAR2,
61 X_Attribute13 VARCHAR2,
62 X_Attribute14 VARCHAR2,
63 X_Attribute15 VARCHAR2,
64 X_Min_Release_Amount NUMBER,
65 X_Price_Type_Lookup_Code VARCHAR2,
66 X_Closed_Code VARCHAR2,
67 X_Price_Break_Lookup_Code VARCHAR2,
68 X_Ussgl_Transaction_Code VARCHAR2,
69 X_Government_Context VARCHAR2,
70 X_Closed_Date DATE,
71 X_Closed_Reason VARCHAR2,
72 X_Closed_By NUMBER,
73 X_Transaction_Reason_Code VARCHAR2,
74 X_Expiration_Date DATE,
75 X_Global_Attribute_Category VARCHAR2,
76 X_Global_Attribute1 VARCHAR2,
77 X_Global_Attribute2 VARCHAR2,
78 X_Global_Attribute3 VARCHAR2,
79 X_Global_Attribute4 VARCHAR2,
80 X_Global_Attribute5 VARCHAR2,
81 X_Global_Attribute6 VARCHAR2,
82 X_Global_Attribute7 VARCHAR2,
83 X_Global_Attribute8 VARCHAR2,
84 X_Global_Attribute9 VARCHAR2,
85 X_Global_Attribute10 VARCHAR2,
86 X_Global_Attribute11 VARCHAR2,
87 X_Global_Attribute12 VARCHAR2,
88 X_Global_Attribute13 VARCHAR2,
89 X_Global_Attribute14 VARCHAR2,
90 X_Global_Attribute15 VARCHAR2,
91 X_Global_Attribute16 VARCHAR2,
92 X_Global_Attribute17 VARCHAR2,
93 X_Global_Attribute18 VARCHAR2,
94 X_Global_Attribute19 VARCHAR2,
95 X_Global_Attribute20 VARCHAR2,
96 -- Bug# 1056597
97 -- Mahesh Chandak(GML-OPM).Use 3 new fields secondary_unit_of_measure,secondary_quantity,preferred_grade.Ignore the old fields added by bug# 1056597..
98 --Preetam Bamb (GML) 21-feb-2000 Added 5 columns to the insert_row procedure
99 --Bug# 1056597
100 -- start of 1548597
101 X_Base_Uom VARCHAR2,
102 X_Base_Qty NUMBER,
103 X_Secondary_Uom VARCHAR2,
104 X_Secondary_Qty NUMBER,
105 X_Qc_Grade VARCHAR2,
106 X_Secondary_Unit_of_measure VARCHAR2 default null ,
107 X_Secondary_Quantity NUMBER default null,
108 X_preferred_Grade VARCHAR2 default null,
109 -- end of 1548597
110 p_contract_id IN NUMBER DEFAULT NULL, -- <GC FPJ>
111 X_job_id NUMBER, -- <SERVICES FPJ>
112 X_contractor_first_name VARCHAR2, -- <SERVICES FPJ>
113 X_contractor_last_name VARCHAR2, -- <SERVICES FPJ>
114 X_assignment_start_date DATE, -- <SERVICES FPJ>
115 X_amount_db NUMBER, -- <SERVICES FPJ>
116 -- <FPJ Advanced Price START>
117 X_Base_Unit_Price NUMBER DEFAULT NULL
118 -- <FPJ Advanced Price END>
119 ) IS
120 CURSOR C IS
121 SELECT *
122 FROM PO_LINES
123 WHERE rowid = X_Rowid
124 FOR UPDATE of Po_Line_Id NOWAIT;
125 Recinfo C%ROWTYPE;
126 BEGIN
127 OPEN C;
128 FETCH C INTO Recinfo;
129 if (C%NOTFOUND) then
130 CLOSE C;
131 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
132 APP_EXCEPTION.Raise_Exception;
133 end if;
134 CLOSE C;
135 if (
136
137 (Recinfo.po_line_id = X_Po_Line_Id)
138 AND (Recinfo.po_header_id = X_Po_Header_Id)
139 AND (Recinfo.line_type_id = X_Line_Type_Id)
140 AND (Recinfo.line_num = X_Line_Num)
141 AND ( (Recinfo.item_id = X_Item_Id)
142 OR ( (Recinfo.item_id IS NULL)
143 AND (X_Item_Id IS NULL)))
144 AND ( (Recinfo.item_revision = X_Item_Revision)
145 OR ( (Recinfo.item_revision IS NULL)
146 AND (X_Item_Revision IS NULL)))
147 AND ( (Recinfo.category_id = X_Category_Id)
148 OR ( (Recinfo.category_id IS NULL)
149 AND (X_Category_Id IS NULL)))
150 AND ( (Recinfo.item_description = X_Item_Description)
151 OR ( (Recinfo.item_description IS NULL)
152 AND (X_Item_Description IS NULL)))
153 AND ( (Recinfo.unit_meas_lookup_code = X_Unit_Meas_Lookup_Code)
154 OR ( (Recinfo.unit_meas_lookup_code IS NULL)
155 AND (X_Unit_Meas_Lookup_Code IS NULL)))
156 AND ( (Recinfo.quantity_committed = X_Quantity_Committed)
157 OR ( (Recinfo.quantity_committed IS NULL)
158 AND (X_Quantity_Committed IS NULL)))
159 AND ( (Recinfo.committed_amount = X_Committed_Amount)
160 OR ( (Recinfo.committed_amount IS NULL)
161 AND (X_Committed_Amount IS NULL)))
162 AND ( (Recinfo.allow_price_override_flag = X_Allow_Price_Override_Flag)
163 OR ( (Recinfo.allow_price_override_flag IS NULL)
164 AND (X_Allow_Price_Override_Flag IS NULL)))
165 AND ( (Recinfo.not_to_exceed_price = X_Not_To_Exceed_Price)
166 OR ( (Recinfo.not_to_exceed_price IS NULL)
167 AND (X_Not_To_Exceed_Price IS NULL)))
168 AND ( (Recinfo.list_price_per_unit = X_List_Price_Per_Unit)
169 OR ( (Recinfo.list_price_per_unit IS NULL)
170 AND (X_List_Price_Per_Unit IS NULL)))
171 -- <FPJ Advanced Price START>
172 AND ( (Recinfo.base_unit_price = X_Base_Unit_Price)
173 OR (X_Base_Unit_Price IS NULL))
174 -- <FPJ Advanced Price START>
175 AND ( (Recinfo.unit_price = X_Unit_Price)
176 OR ( (Recinfo.unit_price IS NULL)
177 AND (X_Unit_Price IS NULL)))
178 AND ( (Recinfo.quantity = X_Quantity)
179 OR ( (Recinfo.quantity IS NULL)
180 AND (X_Quantity IS NULL)))
181 AND ( (Recinfo.un_number_id = X_Un_Number_Id)
182 OR ( (Recinfo.un_number_id IS NULL)
183 AND (X_Un_Number_Id IS NULL)))
184 AND ( (Recinfo.hazard_class_id = X_Hazard_Class_Id)
185 OR ( (Recinfo.hazard_class_id IS NULL)
186 AND (X_Hazard_Class_Id IS NULL)))
187 AND ( (Recinfo.note_to_vendor = X_Note_To_Vendor)
188 OR ( (Recinfo.note_to_vendor IS NULL)
189 AND (X_Note_To_Vendor IS NULL)))
190 AND ( (Recinfo.from_header_id = X_From_Header_Id)
191 OR ( (Recinfo.from_header_id IS NULL)
192 AND (X_From_Header_Id IS NULL)))
193 AND ( (Recinfo.from_line_id = X_From_Line_Id)
194 OR ( (Recinfo.from_line_id IS NULL)
195 AND (X_From_Line_Id IS NULL)))
196 -- <SERVICES FPJ START>
197 AND ( (Recinfo.from_line_location_id = X_From_Line_Location_Id)
198 OR ( (Recinfo.from_line_location_id IS NULL)
199 AND (X_From_Line_Location_Id IS NULL)))
200 -- <SERVICES FPJ END>
201 AND ( (Recinfo.min_order_quantity = X_Min_Order_Quantity)
202 OR ( (Recinfo.min_order_quantity IS NULL)
203 AND (X_Min_Order_Quantity IS NULL)))
204 AND ( (Recinfo.max_order_quantity = X_Max_Order_Quantity)
205 OR ( (Recinfo.max_order_quantity IS NULL)
206 AND (X_Max_Order_Quantity IS NULL)))
207 AND ( (Recinfo.qty_rcv_tolerance = X_Qty_Rcv_Tolerance)
208 OR ( (Recinfo.qty_rcv_tolerance IS NULL)
209 AND (X_Qty_Rcv_Tolerance IS NULL)))
210 AND ( (Recinfo.over_tolerance_error_flag = X_Over_Tolerance_Error_Flag)
211 OR ( (Recinfo.over_tolerance_error_flag IS NULL)
212 AND (X_Over_Tolerance_Error_Flag IS NULL)))
213 AND ( (Recinfo.market_price = X_Market_Price)
214 OR ( (Recinfo.market_price IS NULL)
215 AND (X_Market_Price IS NULL)))
216 AND ( (Recinfo.unordered_flag = X_Unordered_Flag)
217 OR ( (Recinfo.unordered_flag IS NULL)
218 AND (X_Unordered_Flag IS NULL)))
219 AND ( (Recinfo.closed_flag = X_Closed_Flag)
220 OR ( (Recinfo.closed_flag IS NULL)
221 AND (X_Closed_Flag IS NULL)))
222 AND ( (Recinfo.user_hold_flag = X_User_Hold_Flag)
223 OR ( (Recinfo.user_hold_flag IS NULL)
224 AND (X_User_Hold_Flag IS NULL)))
225 AND ( (Recinfo.cancel_flag = X_Cancel_Flag)
226 OR ( (Recinfo.cancel_flag IS NULL)
227 AND (X_Cancel_Flag IS NULL)))
228 AND ( (Recinfo.cancelled_by = X_Cancelled_By)
229 OR ( (Recinfo.cancelled_by IS NULL)
230 AND (X_Cancelled_By IS NULL)))
231 AND ( (Recinfo.cancel_date = X_Cancel_Date)
232 OR ( (Recinfo.cancel_date IS NULL)
233 AND (X_Cancel_Date IS NULL)))
234 AND ( (Recinfo.cancel_reason = X_Cancel_Reason)
235 OR ( (Recinfo.cancel_reason IS NULL)
236 AND (X_Cancel_Reason IS NULL)))
237 AND ( (Recinfo.firm_status_lookup_code = X_Firm_Status_Lookup_Code)
238 OR ( (Recinfo.firm_status_lookup_code IS NULL)
239 AND (X_Firm_Status_Lookup_Code IS NULL)))
240 AND ( (Recinfo.firm_date = X_Firm_Date)
241 OR ( (Recinfo.firm_date IS NULL)
242 AND (X_Firm_Date IS NULL)))
243 AND ( (Recinfo.vendor_product_num = X_Vendor_Product_Num)
244 OR ( (Recinfo.vendor_product_num IS NULL)
245 AND (X_Vendor_Product_Num IS NULL)))
246 ) then
247
248 if (
249 -- <GC FPJ START>
250 -- Check Contract_id instead of Contract_num
251 (
252 (Recinfo.contract_id = p_contract_id)
253 OR ( (Recinfo.contract_id IS NULL)
254 AND (p_contract_id IS NULL)))
255 -- <GC FPJ END>
256 AND ( (Recinfo.type_1099 = X_Type_1099)
257 OR ( (Recinfo.type_1099 IS NULL)
258 AND (X_Type_1099 IS NULL)))
259 AND ( (Recinfo.capital_expense_flag = X_Capital_Expense_Flag)
260 OR ( (Recinfo.capital_expense_flag IS NULL)
261 AND (X_Capital_Expense_Flag IS NULL)))
262 AND ( (Recinfo.negotiated_by_preparer_flag = X_Negotiated_By_Preparer_Flag)
263 OR ( (Recinfo.negotiated_by_preparer_flag IS NULL)
264 AND (X_Negotiated_By_Preparer_Flag IS NULL)))
265 AND ( (Recinfo.attribute_category = X_Attribute_Category)
266 OR ( (Recinfo.attribute_category IS NULL)
267 AND (X_Attribute_Category IS NULL)))
268 AND ( (Recinfo.attribute1 = X_Attribute1)
269 OR ( (Recinfo.attribute1 IS NULL)
270 AND (X_Attribute1 IS NULL)))
271 AND ( (Recinfo.attribute2 = X_Attribute2)
272 OR ( (Recinfo.attribute2 IS NULL)
273 AND (X_Attribute2 IS NULL)))
274 AND ( (Recinfo.attribute3 = X_Attribute3)
275 OR ( (Recinfo.attribute3 IS NULL)
276 AND (X_Attribute3 IS NULL)))
277 AND ( (Recinfo.attribute4 = X_Attribute4)
281 OR ( (Recinfo.attribute5 IS NULL)
278 OR ( (Recinfo.attribute4 IS NULL)
279 AND (X_Attribute4 IS NULL)))
280 AND ( (Recinfo.attribute5 = X_Attribute5)
282 AND (X_Attribute5 IS NULL)))
283 AND ( (Recinfo.attribute6 = X_Attribute6)
284 OR ( (Recinfo.attribute6 IS NULL)
285 AND (X_Attribute6 IS NULL)))
286 AND ( (Recinfo.attribute7 = X_Attribute7)
287 OR ( (Recinfo.attribute7 IS NULL)
288 AND (X_Attribute7 IS NULL)))
289 AND ( (Recinfo.attribute8 = X_Attribute8)
290 OR ( (Recinfo.attribute8 IS NULL)
291 AND (X_Attribute8 IS NULL)))
292 AND ( (Recinfo.attribute9 = X_Attribute9)
293 OR ( (Recinfo.attribute9 IS NULL)
294 AND (X_Attribute9 IS NULL)))
295 AND ( (Recinfo.attribute10 = X_Attribute10)
296 OR ( (Recinfo.attribute10 IS NULL)
297 AND (X_Attribute10 IS NULL)))
298 AND ( (Recinfo.reference_num = X_Reference_Num)
299 OR ( (Recinfo.reference_num IS NULL)
300 AND (X_Reference_Num IS NULL)))
301 AND ( (Recinfo.attribute11 = X_Attribute11)
302 OR ( (Recinfo.attribute11 IS NULL)
303 AND (X_Attribute11 IS NULL)))
304 AND ( (Recinfo.attribute12 = X_Attribute12)
305 OR ( (Recinfo.attribute12 IS NULL)
306 AND (X_Attribute12 IS NULL)))
307 AND ( (Recinfo.attribute13 = X_Attribute13)
308 OR ( (Recinfo.attribute13 IS NULL)
309 AND (X_Attribute13 IS NULL)))
310 AND ( (Recinfo.attribute14 = X_Attribute14)
311 OR ( (Recinfo.attribute14 IS NULL)
312 AND (X_Attribute14 IS NULL)))
313 AND ( (Recinfo.attribute15 = X_Attribute15)
314 OR ( (Recinfo.attribute15 IS NULL)
315 AND (X_Attribute15 IS NULL)))
316 AND ( (Recinfo.min_release_amount = X_Min_Release_Amount)
317 OR ( (Recinfo.min_release_amount IS NULL)
318 AND (X_Min_Release_Amount IS NULL)))
319 AND ( (Recinfo.price_type_lookup_code = X_Price_Type_Lookup_Code)
320 OR ( (Recinfo.price_type_lookup_code IS NULL)
321 AND (X_Price_Type_Lookup_Code IS NULL)))
322 AND ( (Recinfo.closed_code = X_Closed_Code)
323 OR ( (Recinfo.closed_code IS NULL)
324 AND (X_Closed_Code IS NULL)))
325 AND ( (Recinfo.price_break_lookup_code = X_Price_Break_Lookup_Code)
326 OR ( (Recinfo.price_break_lookup_code IS NULL)
327 AND (X_Price_Break_Lookup_Code IS NULL)))
328 AND ( (Recinfo.government_context = X_Government_Context)
329 OR ( (Recinfo.government_context IS NULL)
330 AND (X_Government_Context IS NULL)))
331 AND ( (Recinfo.closed_date = X_Closed_Date)
332 OR ( (Recinfo.closed_date IS NULL)
333 AND (X_Closed_Date IS NULL)))
334 AND ( (Recinfo.closed_reason = X_Closed_Reason)
335 OR ( (Recinfo.closed_reason IS NULL)
336 AND (X_Closed_Reason IS NULL)))
337 AND ( (Recinfo.closed_by = X_Closed_By)
338 OR ( (Recinfo.closed_by IS NULL)
339 AND (X_Closed_By IS NULL)))
340 AND ( (Recinfo.transaction_reason_code = X_Transaction_Reason_Code)
341 OR ( (Recinfo.transaction_reason_code IS NULL)
342 AND (X_Transaction_Reason_Code IS NULL)))
343 AND ( (Recinfo.Expiration_Date = X_Expiration_Date)
344 OR ( (Recinfo.Expiration_Date IS NULL)
345 AND (X_Expiration_Date IS NULL)))
346 --Bug# 1056597 Preetam Bamb (GML) 21-feb-2000 Added 5 columns to the insert_row procedure
347 -- start of 1548597 comment code added by bug 1056597 and add code to include secondary_unit_of_measure,secondary_quantity and preferred_grade fields
348 /**
349 AND ( (Recinfo.Base_uom = X_Base_uom)
350 OR ( (Recinfo.Base_uom IS NULL)
351 AND (X_Base_uom IS NULL)))
352 AND ( (Recinfo.Base_qty = X_Base_qty)
353 OR ( (Recinfo.Base_qty IS NULL)
354 AND (X_Base_qty IS NULL)))
355 AND ( (Recinfo.Secondary_uom = X_Secondary_uom)
356 OR ( (Recinfo.Secondary_uom IS NULL)
357 AND (X_Secondary_uom IS NULL)))
358 AND ( (Recinfo.Secondary_qty = X_Secondary_qty)
359 OR ( (Recinfo.Secondary_qty IS NULL)
360 AND (X_Secondary_qty IS NULL)))
361 AND ( (Recinfo.qc_grade = X_qc_grade)
362 OR ( (Recinfo.qc_grade IS NULL)
363 AND (X_qc_grade IS NULL)))
364 **/
365 --End Bug# 1056597
366 AND ( (Recinfo.Secondary_unit_of_measure = X_Secondary_Unit_Of_Measure)
367 OR ( (Recinfo.Secondary_unit_of_measure IS NULL)
368 AND (X_Secondary_Unit_Of_Measure IS NULL)))
369 AND ( (Recinfo.Secondary_quantity = X_Secondary_Quantity)
370 OR ( (Recinfo.Secondary_quantity IS NULL)
371 AND (X_Secondary_Quantity IS NULL)))
372 AND ( (Recinfo.preferred_grade = X_preferred_grade)
373 OR ( (Recinfo.preferred_grade IS NULL)
377 OR ( (Recinfo.global_attribute_category IS NULL)
374 AND (X_preferred_grade IS NULL)))
375 --End Bug# 1548597
376 AND ( (Recinfo.global_attribute_category = X_Global_Attribute_Category)
378 AND (X_Global_Attribute_Category IS NULL)))
379 AND ( (Recinfo.global_attribute1 = X_Global_Attribute1)
380 OR ( (Recinfo.global_attribute1 IS NULL)
381 AND (X_Global_Attribute1 IS NULL)))
382 AND ( (Recinfo.global_attribute2 = X_Global_Attribute2)
383 OR ( (Recinfo.global_attribute2 IS NULL)
384 AND (X_Global_Attribute2 IS NULL)))
385 AND ( (Recinfo.global_attribute3 = X_Global_Attribute3)
386 OR ( (Recinfo.global_attribute3 IS NULL)
387 AND (X_Global_Attribute3 IS NULL)))
388 AND ( (Recinfo.global_attribute4 = X_Global_Attribute4)
389 OR ( (Recinfo.global_attribute4 IS NULL)
390 AND (X_Global_Attribute4 IS NULL)))
391 AND ( (Recinfo.global_attribute5 = X_Global_Attribute5)
392 OR ( (Recinfo.global_attribute5 IS NULL)
393 AND (X_Global_Attribute5 IS NULL)))
394 AND ( (Recinfo.global_attribute6 = X_Global_Attribute6)
395 OR ( (Recinfo.global_attribute6 IS NULL)
396 AND (X_Global_Attribute6 IS NULL)))
397 AND ( (Recinfo.global_attribute7 = X_Global_Attribute7)
398 OR ( (Recinfo.global_attribute7 IS NULL)
399 AND (X_Global_Attribute7 IS NULL)))
400 AND ( (Recinfo.global_attribute8 = X_Global_Attribute8)
401 OR ( (Recinfo.global_attribute8 IS NULL)
402 AND (X_Global_Attribute8 IS NULL)))
403 AND ( (Recinfo.global_attribute9 = X_Global_Attribute9)
404 OR ( (Recinfo.global_attribute9 IS NULL)
405 AND (X_Global_Attribute9 IS NULL)))
406 AND ( (Recinfo.global_attribute10 = X_Global_Attribute10)
407 OR ( (Recinfo.global_attribute10 IS NULL)
408 AND (X_Global_Attribute10 IS NULL)))
409 AND ( (Recinfo.global_attribute11 = X_Global_Attribute11)
410 OR ( (Recinfo.global_attribute11 IS NULL)
411 AND (X_Global_Attribute11 IS NULL)))
412 AND ( (Recinfo.global_attribute12 = X_Global_Attribute12)
413 OR ( (Recinfo.global_attribute12 IS NULL)
414 AND (X_Global_Attribute12 IS NULL)))
415 AND ( (Recinfo.global_attribute13 = X_Global_Attribute13)
416 OR ( (Recinfo.global_attribute13 IS NULL)
417 AND (X_Global_Attribute13 IS NULL)))
418 AND ( (Recinfo.global_attribute14 = X_Global_Attribute14)
419 OR ( (Recinfo.global_attribute14 IS NULL)
420 AND (X_Global_Attribute14 IS NULL)))
421 AND ( (Recinfo.global_attribute15 = X_Global_Attribute15)
422 OR ( (Recinfo.global_attribute15 IS NULL)
423 AND (X_Global_Attribute15 IS NULL)))
424 AND ( (Recinfo.global_attribute16 = X_Global_Attribute16)
425 OR ( (Recinfo.global_attribute16 IS NULL)
426 AND (X_Global_Attribute16 IS NULL)))
427 AND ( (Recinfo.global_attribute17 = X_Global_Attribute17)
428 OR ( (Recinfo.global_attribute17 IS NULL)
429 AND (X_Global_Attribute17 IS NULL)))
430 AND ( (Recinfo.global_attribute18 = X_Global_Attribute18)
431 OR ( (Recinfo.global_attribute18 IS NULL)
432 AND (X_Global_Attribute18 IS NULL)))
433 AND ( (Recinfo.global_attribute19 = X_Global_Attribute19)
434 OR ( (Recinfo.global_attribute19 IS NULL)
435 AND (X_Global_Attribute19 IS NULL)))
436 AND ( (Recinfo.global_attribute20 = X_Global_Attribute20)
437 OR ( (Recinfo.global_attribute20 IS NULL)
438 AND (X_Global_Attribute20 IS NULL)))
439 -- <SERVICES FPJ START>
440 AND ( (Recinfo.job_id = X_job_id)
441 OR ( (Recinfo.job_id IS NULL)
442 AND (X_job_id IS NULL)))
443 AND ( (Recinfo.contractor_first_name = X_contractor_first_name)
444 OR ( (Recinfo.contractor_first_name IS NULL)
445 AND (X_contractor_first_name IS NULL)))
446 AND ( (Recinfo.contractor_last_name = X_contractor_last_name)
447 OR ( (Recinfo.contractor_last_name IS NULL)
448 AND (X_contractor_last_name IS NULL)))
449 AND ( (Recinfo.start_date = X_assignment_start_date)
450 OR ( (Recinfo.start_date IS NULL)
451 AND (X_assignment_start_date IS NULL)))
452 AND ( (Recinfo.amount = X_amount_db)
453 OR ( (Recinfo.amount IS NULL)
454 AND (X_amount_db IS NULL)))
455 -- <SERVICES FPJ END>
456 ) then
457 return;
458 else
459 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
460 APP_EXCEPTION.RAISE_EXCEPTION;
461 end if;
462 else
463 FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
464 APP_EXCEPTION.RAISE_EXCEPTION;
465 end if;
466
467 END Lock_Row;
468
469 END PO_LINES_PKG_SL;