DBA Data[Home] [Help]

PACKAGE BODY: APPS.PO_LINES_PKG_SL

Source


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;