DBA Data[Home] [Help]

PACKAGE BODY: APPS.PO_REQUISITION_LINES_PKG3

Source


1 PACKAGE BODY PO_REQUISITION_LINES_PKG3 as
2 /* $Header: POXRIL4B.pls 120.0.12020000.2 2013/02/10 14:15:37 vegajula ship $ */
3 -- Read the profile option that enables/disables the debug log
4 g_fnd_debug CONSTANT VARCHAR2(1) := NVL(FND_PROFILE.VALUE('AFLOG_ENABLED'),'N');
5 
6 c_log_head    CONSTANT VARCHAR2(35) := 'po.plsql.PO_REQUISITION_LINES_PKG3.';
7 
8   PROCEDURE Lock3_Row(X_Rowid                            VARCHAR2,
9                      X_Rate_Type                        VARCHAR2,
10                      X_Rate_Date                        DATE,
11                      X_Rate                             NUMBER,
12                      X_Currency_Unit_Price              NUMBER,
13                      X_Currency_Amount                NUMBER, -- <SERVICES FPJ>
14                      X_Suggested_Vendor_Name            VARCHAR2,
15                      X_Suggested_Vendor_Location        VARCHAR2,
16                      X_Suggested_Vendor_Contact         VARCHAR2,
17                      X_Suggested_Vendor_Phone           VARCHAR2,
18                      X_Sugg_Vendor_Product_Code    VARCHAR2,
19                      X_Un_Number_Id                     NUMBER,
20                      X_Hazard_Class_Id                  NUMBER,
21                      X_Must_Use_Sugg_Vendor_Flag        VARCHAR2,
22                      X_Reference_Num                    VARCHAR2,
23                      X_On_Rfq_Flag                      VARCHAR2,
24                      X_Urgent_Flag                      VARCHAR2,
25                      X_Cancel_Flag                      VARCHAR2,
26                      X_Source_Organization_Id           NUMBER,
27                      X_Source_Subinventory              VARCHAR2,
28                      X_Destination_Type_Code            VARCHAR2,
29                      X_Destination_Organization_Id      NUMBER,
30                      X_Destination_Subinventory         VARCHAR2,
31                      X_Quantity_Cancelled               NUMBER,
32                      X_Cancel_Date                      DATE,
33                      X_Cancel_Reason                    VARCHAR2,
34                      X_Closed_Code                      VARCHAR2,
35                      X_Agent_Return_Note                VARCHAR2,
36                      X_Changed_After_Research_Flag      VARCHAR2,
37                      X_Vendor_Id                        NUMBER,
38                      X_Vendor_Site_Id                   NUMBER,
39                      X_Vendor_Contact_Id                NUMBER
40   ) IS
41 
42     CURSOR C IS
43         SELECT *
44         FROM   PO_REQUISITION_LINES
45         WHERE  rowid = X_Rowid
46         FOR UPDATE of Requisition_Line_Id NOWAIT;
47 
48     Recinfo C%ROWTYPE;
49 	-- For debug purposes
50     l_api_name CONSTANT VARCHAR2(30) := 'Lock3_Row';
51   BEGIN
52     OPEN C;
53     FETCH C INTO Recinfo;
54     if (C%NOTFOUND) then
55       CLOSE C;
56       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_DELETED');
57       APP_EXCEPTION.Raise_Exception;
58     end if;
59     CLOSE C;
60     /* Bug 2679432 - Added the trunc function for the rate_date column
61     as the date coming from REQIMPORT could have
62     time component and the lock_row would fail   */
63     if (
64                (   (TRIM(Recinfo.rate_type) = TRIM(X_Rate_Type))
65                 OR (    (TRIM(Recinfo.rate_type) IS NULL)
66                     AND (TRIM(X_Rate_Type) IS NULL)))
67            AND (   (trunc(Recinfo.rate_date) = trunc(X_Rate_Date))
68                 OR (    (Recinfo.rate_date IS NULL)
69                     AND (X_Rate_Date IS NULL)))
70            AND (   (Recinfo.rate = X_Rate)
71                 OR (    (Recinfo.rate IS NULL)
72                     AND (X_Rate IS NULL)))
73            AND (   (Recinfo.currency_unit_price = X_Currency_Unit_Price)
74                 OR (    (Recinfo.currency_unit_price IS NULL)
75                     AND (X_Currency_Unit_Price IS NULL)))
76 -- <SERVICES FPJ START>
77            AND (   (Recinfo.currency_amount = X_Currency_Amount)
78                 OR (    (Recinfo.currency_amount IS NULL)
79                     AND (X_Currency_Amount IS NULL)))
80 -- <SERVICES FPJ END>
81            AND (   (TRIM(Recinfo.suggested_vendor_name) = TRIM(X_Suggested_Vendor_Name))
82                 OR (    (TRIM(Recinfo.suggested_vendor_name) IS NULL)
83                     AND (TRIM(X_Suggested_Vendor_Name) IS NULL)))
84            AND (   (TRIM(Recinfo.suggested_vendor_location) = TRIM(X_Suggested_Vendor_Location))
85                 OR (    (TRIM(Recinfo.suggested_vendor_location) IS NULL)
86                     AND (TRIM(X_Suggested_Vendor_Location) IS NULL)))
87            AND (   (TRIM(Recinfo.suggested_vendor_contact) = TRIM(X_Suggested_Vendor_Contact))
88                 OR (    (TRIM(Recinfo.suggested_vendor_contact) IS NULL)
89                     AND (TRIM(X_Suggested_Vendor_Contact) IS NULL)))
90            AND (   (TRIM(Recinfo.suggested_vendor_phone) = TRIM(X_Suggested_Vendor_Phone))
91                 OR (    (TRIM(Recinfo.suggested_vendor_phone) IS NULL)
92                     AND (TRIM(X_Suggested_Vendor_Phone) IS NULL)))
93            AND (   (TRIM(Recinfo.suggested_vendor_product_code) = TRIM(X_Sugg_Vendor_Product_Code))
94                 OR (    (TRIM(Recinfo.suggested_vendor_product_code) IS NULL)
95                     AND (TRIM(X_Sugg_Vendor_Product_Code) IS NULL)))
96            AND (   (Recinfo.un_number_id = X_Un_Number_Id)
97                 OR (    (Recinfo.un_number_id IS NULL)
98                     AND (X_Un_Number_Id IS NULL)))
99            AND (   (Recinfo.hazard_class_id = X_Hazard_Class_Id)
100                 OR (    (Recinfo.hazard_class_id IS NULL)
101                     AND (X_Hazard_Class_Id IS NULL)))
102            AND (   (TRIM(Recinfo.must_use_sugg_vendor_flag) = TRIM(X_Must_Use_Sugg_Vendor_Flag))
103                 OR (    (TRIM(Recinfo.must_use_sugg_vendor_flag) IS NULL)
104                     AND (TRIM(X_Must_Use_Sugg_Vendor_Flag) IS NULL)))
105            AND (   (TRIM(Recinfo.reference_num) = TRIM(X_Reference_Num))
106                 OR (    (TRIM(Recinfo.reference_num) IS NULL)
107                     AND (TRIM(X_Reference_Num) IS NULL)))
108            AND (   (TRIM(Recinfo.on_rfq_flag) = TRIM(X_On_Rfq_Flag))
109                 OR (    (TRIM(Recinfo.on_rfq_flag) IS NULL)
110                     AND (TRIM(X_On_Rfq_Flag) IS NULL)))
111            AND (   (TRIM(Recinfo.urgent_flag) = TRIM(X_Urgent_Flag))
112                 OR (    (TRIM(Recinfo.urgent_flag) IS NULL)
113                     AND (TRIM(X_Urgent_Flag) IS NULL)))
114            AND (   (TRIM(Recinfo.cancel_flag) = TRIM(X_Cancel_Flag))
115                 OR (    (TRIM(Recinfo.cancel_flag) IS NULL)
116                     AND (TRIM(X_Cancel_Flag) IS NULL)))
117            AND (   (Recinfo.source_organization_id = X_Source_Organization_Id)
118                 OR (    (Recinfo.source_organization_id IS NULL)
119                     AND (X_Source_Organization_Id IS NULL)))
120            AND (   (TRIM(Recinfo.source_subinventory) = TRIM(X_Source_Subinventory))
121                 OR (    (TRIM(Recinfo.source_subinventory) IS NULL)
122                     AND (TRIM(X_Source_Subinventory) IS NULL)))
123            AND (   (TRIM(Recinfo.destination_type_code) = TRIM(X_Destination_Type_Code))
124                 OR (    (TRIM(Recinfo.destination_type_code) IS NULL)
125                     AND (TRIM(X_Destination_Type_Code) IS NULL)))
126            AND (   (Recinfo.destination_organization_id = X_Destination_Organization_Id)
127                 OR (    (Recinfo.destination_organization_id IS NULL)
128                     AND (X_Destination_Organization_Id IS NULL)))
129            AND (   (TRIM(Recinfo.destination_subinventory) = TRIM(X_Destination_Subinventory))
130                 OR (    (TRIM(Recinfo.destination_subinventory) IS NULL)
131                     AND (TRIM(X_Destination_Subinventory) IS NULL)))
132            AND (   (Recinfo.quantity_cancelled = X_Quantity_Cancelled)
133                 OR (    (Recinfo.quantity_cancelled IS NULL)
134                     AND (X_Quantity_Cancelled IS NULL)))
135            AND (   (Recinfo.cancel_date = X_Cancel_Date)
136                 OR (    (Recinfo.cancel_date IS NULL)
137                     AND (X_Cancel_Date IS NULL)))
138            AND (   (TRIM(Recinfo.cancel_reason) = TRIM(X_Cancel_Reason))
139                 OR (    (TRIM(Recinfo.cancel_reason) IS NULL)
140                     AND (TRIM(X_Cancel_Reason) IS NULL)))
141            AND (   (TRIM(Recinfo.closed_code) = TRIM(X_Closed_Code))
142                 OR (    (TRIM(Recinfo.closed_code) IS NULL)
143                     AND (TRIM(X_Closed_Code) IS NULL)))
144            AND (   (TRIM(Recinfo.agent_return_note) = TRIM(X_Agent_Return_Note))
145                 OR (    (TRIM(Recinfo.agent_return_note) IS NULL)
146                     AND (TRIM(X_Agent_Return_Note) IS NULL)))
147            AND (   (TRIM(Recinfo.changed_after_research_flag) = TRIM(X_Changed_After_Research_Flag))
148                 OR (    (TRIM(Recinfo.changed_after_research_flag) IS NULL)
149                     AND (TRIM(X_Changed_After_Research_Flag) IS NULL)))
150            AND (   (Recinfo.vendor_id = X_Vendor_Id)
151                 OR (    (Recinfo.vendor_id IS NULL)
152                     AND (X_Vendor_Id IS NULL)))
153            AND (   (Recinfo.vendor_site_id = X_Vendor_Site_Id)
154                 OR (    (Recinfo.vendor_site_id IS NULL)
155                     AND (X_Vendor_Site_Id IS NULL)))
156            AND (   (Recinfo.vendor_contact_id = X_Vendor_Contact_Id)
157                 OR (    (Recinfo.vendor_contact_id IS NULL)
158                     AND (X_Vendor_Contact_Id IS NULL)))
159             ) then
160       return;
161     else
162 	    IF (g_fnd_debug = 'Y') THEN
163         IF (NVL(TRIM(X_Rate_Type),'-999') <> NVL( TRIM(Recinfo.rate_type),'-999')) THEN
164              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form rate_type '||X_Rate_Type ||' Database  rate_type '||Recinfo.rate_type);
165         END IF;
166         IF (X_Rate_Date <> Recinfo.rate_date ) THEN
167               FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form rate_date '||X_Rate_Date ||' Database  rate_date '||Recinfo.rate_date);
168         END IF;
169         IF (NVL(X_Rate,-999) <> NVL(Recinfo.rate,-999)) THEN
170              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form rate'||X_Rate ||' Database  rate '|| Recinfo.rate);
171         END IF;
172         IF (NVL(X_Currency_Unit_Price,-999) <> NVL(Recinfo.currency_unit_price,-999)) THEN
173              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form currency_unit_price'||X_Currency_Unit_Price ||' Database  currency_unit_price '|| Recinfo.currency_unit_price);
174         END IF;
175         IF (NVL(X_Currency_Amount,-999) <> NVL(Recinfo.currency_amount,-999)) THEN
176              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form currency_amount'||X_Currency_Amount ||' Database  currency_amount '|| Recinfo.currency_amount);
177         END IF;
178         IF (NVL(TRIM(X_Suggested_Vendor_Name),'-999') <> NVL( TRIM(Recinfo.suggested_vendor_name),'-999')) THEN
179              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form suggested_vendor_name '||X_Suggested_Vendor_Name ||' Database  suggested_vendor_name '||Recinfo.suggested_vendor_name);
180         END IF;
181         IF (NVL(TRIM(X_Suggested_Vendor_Location),'-999') <> NVL( TRIM(Recinfo.suggested_vendor_location),'-999')) THEN
182              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form suggested_vendor_location '||X_Suggested_Vendor_Location ||' Database  suggested_vendor_location '||Recinfo.suggested_vendor_location);
183         END IF;
184         IF (NVL(TRIM(X_Suggested_Vendor_Contact),'-999') <> NVL( TRIM(Recinfo.suggested_vendor_contact),'-999')) THEN
185              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form suggested_vendor_contact '||X_Suggested_Vendor_Contact ||' Database  suggested_vendor_contact '||Recinfo.suggested_vendor_contact);
186         END IF;
187         IF (NVL(TRIM(X_Suggested_Vendor_Phone),'-999') <> NVL( TRIM(Recinfo.suggested_vendor_phone),'-999')) THEN
188              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form suggested_vendor_phone '||X_Suggested_Vendor_Phone ||' Database  suggested_vendor_phone '||Recinfo.suggested_vendor_phone);
189         END IF;
190         IF (NVL(TRIM(X_Sugg_Vendor_Product_Code),'-999') <> NVL( TRIM(Recinfo.suggested_vendor_product_code),'-999')) THEN
191              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form sugg_vendor_product_code '||X_Sugg_Vendor_Product_Code ||' Database  sugg_vendor_product_code '||Recinfo.suggested_vendor_product_code);
192         END IF;
193         IF (NVL(X_Un_Number_Id,-999) <> NVL(Recinfo.un_number_id,-999)) THEN
194              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form un_number_id'||X_Un_Number_Id ||' Database  un_number_id '|| Recinfo.un_number_id);
195         END IF;
196         IF (NVL(X_Hazard_Class_Id,-999) <> NVL(Recinfo.hazard_class_id,-999)) THEN
197              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form hazard_class_id'||X_Hazard_Class_Id ||' Database  hazard_class_id '|| Recinfo.hazard_class_id);
198         END IF;
199         IF (NVL(TRIM(X_Must_Use_Sugg_Vendor_Flag),'-999') <> NVL( TRIM(Recinfo.must_use_sugg_vendor_flag),'-999')) THEN
200              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form must_use_sugg_vendor_flag '||X_Must_Use_Sugg_Vendor_Flag ||' Database  must_use_sugg_vendor_flag '||Recinfo.must_use_sugg_vendor_flag);
201         END IF;
202         IF (NVL(TRIM(X_Reference_Num),'-999') <> NVL( TRIM(Recinfo.reference_num),'-999')) THEN
203              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form reference_num '||X_Reference_Num ||' Database  reference_num '||Recinfo.reference_num);
204         END IF;
205         IF (NVL(TRIM(X_On_Rfq_Flag),'-999') <> NVL( TRIM(Recinfo.on_rfq_flag),'-999')) THEN
206              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form on_rfq_flag '||X_On_Rfq_Flag ||' Database  on_rfq_flag '||Recinfo.on_rfq_flag);
207         END IF;
208         IF (NVL(TRIM(X_Urgent_Flag),'-999') <> NVL( TRIM(Recinfo.urgent_flag),'-999')) THEN
209              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form urgent_flag '||X_Urgent_Flag ||' Database  urgent_flag '||Recinfo.urgent_flag);
210         END IF;
211         IF (NVL(TRIM(X_Cancel_Flag),'-999') <> NVL( TRIM(Recinfo.cancel_flag),'-999')) THEN
212              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form cancel_flag '||X_Cancel_Flag ||' Database  cancel_flag '||Recinfo.cancel_flag);
213         END IF;
214         IF (NVL(X_Source_Organization_Id,-999) <> NVL(Recinfo.source_organization_id,-999)) THEN
215              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form source_organization_id'||X_Source_Organization_Id ||' Database  source_organization_id '|| Recinfo.source_organization_id);
216         END IF;
217         IF (NVL(TRIM(X_Source_Subinventory),'-999') <> NVL( TRIM(Recinfo.source_subinventory),'-999')) THEN
218              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form source_subinventory '||X_Source_Subinventory ||' Database  source_subinventory '||Recinfo.source_subinventory);
219         END IF;
220         IF (NVL(TRIM(X_Destination_Type_Code),'-999') <> NVL( TRIM(Recinfo.destination_type_code),'-999')) THEN
221              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form destination_type_code '||X_Destination_Type_Code ||' Database  destination_type_code '||Recinfo.destination_type_code);
222         END IF;
223         IF (NVL(X_Destination_Organization_Id,-999) <> NVL(Recinfo.destination_organization_id,-999)) THEN
224              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form destination_organization_id'||X_Destination_Organization_Id ||' Database  destination_organization_id '|| Recinfo.destination_organization_id);
225         END IF;
226         IF (NVL(TRIM(X_Destination_Subinventory),'-999') <> NVL( TRIM(Recinfo.destination_subinventory),'-999')) THEN
227              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form destination_subinventory '||X_Destination_Subinventory ||' Database  destination_subinventory '||Recinfo.destination_subinventory);
228         END IF;
229         IF (NVL(X_Quantity_Cancelled,-999) <> NVL(Recinfo.quantity_cancelled,-999)) THEN
230              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form quantity_cancelled'||X_Quantity_Cancelled ||' Database  quantity_cancelled '|| Recinfo.quantity_cancelled);
231         END IF;
232         IF (X_Cancel_Date <> Recinfo.cancel_date ) THEN
233               FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form cancel_date '||X_Cancel_Date ||' Database  cancel_date '||Recinfo.cancel_date);
234         END IF;
235         IF (NVL(TRIM(X_Cancel_Reason),'-999') <> NVL( TRIM(Recinfo.cancel_reason),'-999')) THEN
236              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form cancel_reason '||X_Cancel_Reason ||' Database  cancel_reason '||Recinfo.cancel_reason);
237         END IF;
238         IF (NVL(TRIM(X_Closed_Code),'-999') <> NVL( TRIM(Recinfo.closed_code),'-999')) THEN
239              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form closed_code '||X_Closed_Code ||' Database  closed_code '||Recinfo.closed_code);
240         END IF;
241         IF (NVL(TRIM(X_Agent_Return_Note),'-999') <> NVL( TRIM(Recinfo.agent_return_note),'-999')) THEN
242              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form agent_return_note '||X_Agent_Return_Note ||' Database  agent_return_note '||Recinfo.agent_return_note);
243         END IF;
244         IF (NVL(TRIM(X_Changed_After_Research_Flag),'-999') <> NVL( TRIM(Recinfo.changed_after_research_flag),'-999')) THEN
245              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form changed_after_research_flag '||X_Changed_After_Research_Flag ||' Database  changed_after_research_flag '||Recinfo.changed_after_research_flag);
246         END IF;
247         IF (NVL(X_Vendor_Id,-999) <> NVL(Recinfo.vendor_id,-999)) THEN
248              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form vendor_id'||X_Vendor_Id ||' Database  vendor_id '|| Recinfo.vendor_id);
249         END IF;
250         IF (NVL(X_Vendor_Site_Id,-999) <> NVL(Recinfo.vendor_site_id,-999)) THEN
251              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form vendor_site_id'||X_Vendor_Site_Id ||' Database  vendor_site_id '|| Recinfo.vendor_site_id);
252         END IF;
253         IF (NVL(X_Vendor_Contact_Id,-999) <> NVL(Recinfo.vendor_contact_id,-999)) THEN
254              FND_LOG.string(FND_LOG.LEVEL_STATEMENT,c_log_head || l_api_name,' Form vendor_contact_id'||X_Vendor_Contact_Id ||' Database  vendor_contact_id '|| Recinfo.vendor_contact_id);
255         END IF;
256     END IF;
257       FND_MESSAGE.Set_Name('FND', 'FORM_RECORD_CHANGED');
258       APP_EXCEPTION.RAISE_EXCEPTION;
259     end if;
260   END Lock3_Row;
261 
262 END PO_REQUISITION_LINES_PKG3;