DBA Data[Home] [Help]

PACKAGE BODY: APPS.CSP_ORDERHEADERS_PVT

Source


1 PACKAGE BODY CSP_ORDERHEADERS_PVT AS
2 /* $Header: cspvtmhb.pls 115.14 2003/05/02 17:17:21 phegde ship $ */
3 -- Start of Comments
4 -- Package name     : CSP_ORDERHEADERS_PVT
5 -- Purpose          :
6 -- History          :
7 -- NOTE             : CSP - api_version_number 1.0
8 -- End of Comments
9 
10 
11 G_PKG_NAME CONSTANT VARCHAR2(30):= 'CSP_ORDERHEADERS_PVT';
12 G_FILE_NAME CONSTANT VARCHAR2(12) := 'cspvtmhb.pls';
13 
14 G_USER_ID         NUMBER := FND_GLOBAL.USER_ID;
15 G_LOGIN_ID        NUMBER := FND_GLOBAL.LOGIN_ID;
16 
17 -- Hint: Primary key needs to be returned.
18 PROCEDURE Create_orderheaders(
19     P_Api_Version_Number         IN   NUMBER,
20     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
21     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
22     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
23     P_MOH_Rec     IN    MOH_Rec_Type  := G_MISS_MOH_REC,
24   --Hint: Add detail tables as parameter lists if it's master-detail relationship.
25     X_HEADER_ID                 OUT NOCOPY  NUMBER,
26     X_Return_Status              OUT NOCOPY  VARCHAR2,
27     X_Msg_Count                  OUT NOCOPY  NUMBER,
28     X_Msg_Data                   OUT NOCOPY  VARCHAR2
29     )
30 
31  IS
32 l_api_name                CONSTANT VARCHAR2(30) := 'Create_orderheaders';
33 l_api_version_number      CONSTANT NUMBER   := 1.0;
34 l_return_status_full        VARCHAR2(1);
35 l_identity_sales_member_rec AS_SALES_MEMBER_PUB.Sales_member_rec_Type;
36  BEGIN
37       -- Standard Start of API savepoint
38       SAVEPOINT CREATE_ORDERHEADERS_PVT;
39 
40       -- Standard call to check for call compatibility.
41       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
42                          	             p_api_version_number,
43                                            l_api_name,
44                                            G_PKG_NAME)
45       THEN
46           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
47       END IF;
48 
49 
50       -- Initialize message list if p_init_msg_list is set to TRUE.
51       IF FND_API.to_Boolean( p_init_msg_list )
52       THEN
53           FND_MSG_PUB.initialize;
54       END IF;
55 
56 
57       -- Debug Message
58       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: ' || l_api_name || 'start');
59 
60 
61       -- Initialize API return status to SUCCESS
62       x_return_status := FND_API.G_RET_STS_SUCCESS;
63 
64       --
65       -- API body
66       --
67 
68 -- Un-comment the following statements when AS_CALLOUT_PKG is ready.
69 /*
70       -- if profile AS_PRE_CUSTOM_ENABLED is set to 'Y', callout procedure is invoked for customization purpose
71       IF(FND_PROFILE.VALUE('AS_PRE_CUSTOM_ENABLED')='Y')
72       THEN
73           AS_CALLOUT_PKG.Create_orderheaders_BC(
74                   p_api_version_number   =>  2.0,
75                   p_init_msg_list        =>  FND_API.G_FALSE,
76                   p_commit               =>  FND_API.G_FALSE,
77                   p_validation_level     =>  p_validation_level,
78                   P_MOH_Rec      =>  P_MOH_Rec,
79           -- Hint: Add detail tables as parameter lists if it's master-detail relationship.
80                   x_return_status        =>  x_return_status,
81                   x_msg_count            =>  x_msg_count,
82                   x_msg_data             =>  x_msg_data);
83       END IF;
84 */
85 
86       -- ******************************************************************
87       -- Validate Environment
88       -- ******************************************************************
89       IF FND_GLOBAL.User_Id IS NULL
90       THEN
91           IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
92           THEN
93               FND_MESSAGE.Set_Name(' + appShortName +', 'UT_CANNOT_GET_PROFILE_VALUE');
94               FND_MESSAGE.Set_Token('PROFILE', 'USER_ID', FALSE);
95               FND_MSG_PUB.ADD;
96           END IF;
97           RAISE FND_API.G_EXC_ERROR;
98       END IF;
99 
100 
101     /*
102        The following codes of geting the current user associtated with a saleforce_id is commented out.
103        by CSP. 06-DEC-99.
104 
105       AS_SALES_ORG_MANAGER_PVT.Get_CurrentUser(
106           p_api_version_number => 2.0
107          ,p_salesforce_id => NULL
108          ,x_return_status => x_return_status
109          ,x_msg_count => x_msg_count
110          ,x_msg_data => x_msg_data
111          ,x_sales_member_rec => l_identity_sales_member_rec);
112 
113       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
114          x_error := 'In as_sales';
115          RAISE FND_API.G_EXC_ERROR;
116       END IF;
117     */
118 
119       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
120       THEN
121           -- Debug message
122           JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Validate_orderheaders');
123 
124           -- Invoke validation procedures
125           Validate_orderheaders(
126               p_init_msg_list    => FND_API.G_FALSE,
127               p_validation_level => p_validation_level,
128               p_validation_mode  => JTF_PLSQL_API.G_CREATE,
129               P_MOH_Rec  =>  P_MOH_Rec,
130               x_return_status    => x_return_status,
131               x_msg_count        => x_msg_count,
132               x_msg_data         => x_msg_data
133               );
134       END IF;
135 
136       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
137          RAISE FND_API.G_EXC_ERROR;
138       END IF;
139 
140       -- Hint: Add corresponding Master-Detail business logic here if necessary.
141 
142       -- Debug Message
143       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Calling create table handler');
144 
145 
146       -- Invoke table handler(CSP_MOVEORDER_HEADERS_PKG.Insert_Row)
147       CSP_MOVEORDER_HEADERS_PKG.Insert_Row(
148           p_HEADER_ID  => p_MOH_rec.HEADER_ID,
149           p_CREATED_BY  => p_MOH_rec.created_by,
150           p_CREATION_DATE  => p_MOH_rec.creation_date,
151           p_LAST_UPDATED_BY  => p_MOH_rec.last_updated_by,
152           p_LAST_UPDATE_DATE  => p_MOH_rec.last_update_date,
153           p_LAST_UPDATE_LOGIN  => p_MOH_rec.last_update_login,
154           p_CARRIER  => p_MOH_rec.CARRIER,
155           p_SHIPMENT_METHOD  => p_MOH_rec.SHIPMENT_METHOD,
156           p_AUTORECEIPT_FLAG  => p_MOH_rec.AUTORECEIPT_FLAG,
157           p_ATTRIBUTE_CATEGORY  => p_MOH_rec.ATTRIBUTE_CATEGORY,
158           p_ATTRIBUTE1  => p_MOH_rec.ATTRIBUTE1,
159           p_ATTRIBUTE2  => p_MOH_rec.ATTRIBUTE2,
160           p_ATTRIBUTE3  => p_MOH_rec.ATTRIBUTE3,
161           p_ATTRIBUTE4  => p_MOH_rec.ATTRIBUTE4,
162           p_ATTRIBUTE5  => p_MOH_rec.ATTRIBUTE5,
163           p_ATTRIBUTE6  => p_MOH_rec.ATTRIBUTE6,
164           p_ATTRIBUTE7  => p_MOH_rec.ATTRIBUTE7,
165           p_ATTRIBUTE8  => p_MOH_rec.ATTRIBUTE8,
166           p_ATTRIBUTE9  => p_MOH_rec.ATTRIBUTE9,
167           p_ATTRIBUTE10  => p_MOH_rec.ATTRIBUTE10,
168           p_ATTRIBUTE11  => p_MOH_rec.ATTRIBUTE11,
169           p_ATTRIBUTE12  => p_MOH_rec.ATTRIBUTE12,
170           p_ATTRIBUTE13  => p_MOH_rec.ATTRIBUTE13,
171           p_ATTRIBUTE14  => p_MOH_rec.ATTRIBUTE14,
172           p_ATTRIBUTE15  => p_MOH_rec.ATTRIBUTE15,
173           P_LOCATION_ID => P_MOH_REC.LOCATION_ID,
174           p_PARTY_SITE_ID => P_MOH_REC.PARTY_SITE_ID
175           );
176       -- Hint: Primary key should be returned.
177       -- x_HEADER_ID := px_HEADER_ID;
178 
179       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
180          RAISE FND_API.G_EXC_ERROR;
181       END IF;
182 
183       --
184       -- End of API body
185       --
186 
187       -- Standard check for p_commit
188       IF FND_API.to_Boolean( p_commit )
189       THEN
190           COMMIT WORK;
191       END IF;
192 
193 
194       -- Debug Message
195       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: ' || l_api_name || 'end');
196 
197 
198       -- Standard call to get message count and if count is 1, get message info.
199       FND_MSG_PUB.Count_And_Get
200       (  p_count          =>   x_msg_count,
201          p_data           =>   x_msg_data
202       );
203 
204 -- Un-comment the following statements when AS_CALLOUT_PKG is ready.
205 /*
206       -- if profile AS_POST_CUSTOM_ENABLED is set to 'Y', callout procedure is invoked for customization purpose
207       IF(FND_PROFILE.VALUE('AS_POST_CUSTOM_ENABLED')='Y')
208       THEN
209           AS_CALLOUT_PKG.Create_orderheaders_AC(
210                   p_api_version_number   =>  2.0,
211                   p_init_msg_list        =>  FND_API.G_FALSE,
212                   p_commit               =>  FND_API.G_FALSE,
213                   p_validation_level     =>  p_validation_level,
214                   P_MOH_Rec      =>  P_MOH_Rec,
215           -- Hint: Add detail tables as parameter lists if it's master-detail relationship.
216                   x_return_status        =>  x_return_status,
217                   x_msg_count            =>  x_msg_count,
218                   x_msg_data             =>  x_msg_data);
219       END IF;
220 */
221       EXCEPTION
222           WHEN FND_API.G_EXC_ERROR THEN
223               JTF_PLSQL_API.HANDLE_EXCEPTIONS(
224                    P_API_NAME => L_API_NAME
225                   ,P_PKG_NAME => G_PKG_NAME
226                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
227                   ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PVT
228                   ,X_MSG_COUNT => X_MSG_COUNT
229                   ,X_MSG_DATA => X_MSG_DATA
230                   ,X_RETURN_STATUS => X_RETURN_STATUS);
231 
232           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
233               JTF_PLSQL_API.HANDLE_EXCEPTIONS(
234                    P_API_NAME => L_API_NAME
235                   ,P_PKG_NAME => G_PKG_NAME
236                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
237                   ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PVT
238                   ,X_MSG_COUNT => X_MSG_COUNT
239                   ,X_MSG_DATA => X_MSG_DATA
240                   ,X_RETURN_STATUS => X_RETURN_STATUS);
241 
242           WHEN OTHERS THEN
243               JTF_PLSQL_API.HANDLE_EXCEPTIONS(
244                    P_API_NAME => L_API_NAME
245                   ,P_PKG_NAME => G_PKG_NAME
246                   ,P_EXCEPTION_LEVEL => JTF_PLSQL_API.G_EXC_OTHERS
247                   ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PVT
248                   ,X_MSG_COUNT => X_MSG_COUNT
249                   ,X_MSG_DATA => X_MSG_DATA
250                   ,X_RETURN_STATUS => X_RETURN_STATUS);
251 End Create_orderheaders;
252 
253 
254 -- Hint: Add corresponding update detail table procedures if it's master-detail relationship.
255 PROCEDURE Update_orderheaders(
256     P_Api_Version_Number         IN   NUMBER,
257     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
258     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
259     p_validation_level           IN  NUMBER       := FND_API.G_VALID_LEVEL_FULL,
260     P_Identity_Salesforce_Id     IN   NUMBER       := NULL,
261     P_MOH_Rec     IN    MOH_Rec_Type,
262     X_Return_Status              OUT NOCOPY  VARCHAR2,
263     X_Msg_Count                  OUT NOCOPY  NUMBER,
264     X_Msg_Data                   OUT NOCOPY  VARCHAR2
265     )
266 
267  IS
268 
269 /*
270 Cursor C_Get_orderheaders(HEADER_ID Number) IS
271     Select rowid,
272            HEADER_ID,
273            CREATED_BY,
274            CREATION_DATE,
275            LAST_UPDATED_BY,
276            LAST_UPDATE_DATE,
277            LAST_UPDATE_LOGIN,
278            LOCATION_ID,
279            CARRIER,
280            SHIPMENT_METHOD,
281            AUTORECEIPT_FLAG,
282            ATTRIBUTE_CATEGORY,
283            ATTRIBUTE1,
284            ATTRIBUTE2,
285            ATTRIBUTE3,
286            ATTRIBUTE4,
287            ATTRIBUTE5,
288            ATTRIBUTE6,
289            ATTRIBUTE7,
290            ATTRIBUTE8,
291            ATTRIBUTE9,
292            ATTRIBUTE10,
293            ATTRIBUTE11,
294            ATTRIBUTE12,
295            ATTRIBUTE13,
296            ATTRIBUTE14,
297            ATTRIBUTE15,
298            ADDRESS1,
299            ADDRESS2,
300            ADDRESS3,
301            ADDRESS4,
302            CITY,
303            POSTAL_CODE,
304            STATE,
305            PROVINCE,
306            COUNTRY
307     From  CSP_MOVEORDER_HEADERS
308     -- Hint: Developer need to provide Where clause
309     For Update NOWAIT;
310 */
311 l_api_name                CONSTANT VARCHAR2(30) := 'Update_orderheaders';
312 l_api_version_number      CONSTANT NUMBER   := 1.0;
313 -- Local Variables
314 l_identity_sales_member_rec   AS_SALES_MEMBER_PUB.Sales_member_rec_Type;
315 l_ref_MOH_rec  CSP_orderheaders_PVT.MOH_Rec_Type;
316 l_tar_MOH_rec  CSP_orderheaders_PVT.MOH_Rec_Type := P_MOH_Rec;
317 l_rowid  ROWID;
318  BEGIN
319       -- Standard Start of API savepoint
320       SAVEPOINT UPDATE_ORDERHEADERS_PVT;
321 
322       -- Standard call to check for call compatibility.
323       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
324                          	             p_api_version_number,
325                                            l_api_name,
326                                            G_PKG_NAME)
327       THEN
328           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
329       END IF;
330 
331 
332       -- Initialize message list if p_init_msg_list is set to TRUE.
333       IF FND_API.to_Boolean( p_init_msg_list )
334       THEN
335           FND_MSG_PUB.initialize;
336       END IF;
337 
338 
339       -- Debug Message
340       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: ' || l_api_name || 'start');
341 
342 
343       -- Initialize API return status to SUCCESS
344       x_return_status := FND_API.G_RET_STS_SUCCESS;
345 
346       --
347       -- Api body
348       --
349 -- Un-comment the following statements when AS_CALLOUT_PKG is ready.
350 /*
351       -- if profile AS_PRE_CUSTOM_ENABLED is set to 'Y', callout procedure is invoked for customization purpose
352       IF(FND_PROFILE.VALUE('AS_PRE_CUSTOM_ENABLED')='Y')
353       THEN
354           AS_CALLOUT_PKG.Update_orderheaders_BU(
355                   p_api_version_number   =>  2.0,
356                   p_init_msg_list        =>  FND_API.G_FALSE,
357                   p_commit               =>  FND_API.G_FALSE,
358                   p_validation_level     =>  p_validation_level,
359                   p_identity_salesforce_id => p_identity_salesforce_id,
360                   P_MOH_Rec      =>  P_MOH_Rec,
361           -- Hint: Add detail tables as parameter lists if it's master-detail relationship.
362                   x_return_status        =>  x_return_status,
363                   x_msg_count            =>  x_msg_count,
364                   x_msg_data             =>  x_msg_data);
365       END IF;
366 */
367 
368 
369 /* Comment out the Get_CurrentUser by CSP. 06-DEC-99.
370 
371       AS_SALES_ORG_MANAGER_PVT.Get_CurrentUser(
372           p_api_version_number => 2.0
373          ,p_salesforce_id => p_identity_salesforce_id
374          ,x_return_status => x_return_status
375          ,x_msg_count => x_msg_count
376          ,x_msg_data => x_msg_data
377          ,x_sales_member_rec => l_identity_sales_member_rec);
378 
379       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
380           RAISE FND_API.G_EXC_ERROR;
381       END IF;
382 */
383       -- Debug Message
384       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: - Open Cursor to Select');
385 
386 /*
387       Open C_Get_orderheaders( l_tar_MOH_rec.HEADER_ID);
388 
389       Fetch C_Get_orderheaders into
390                l_rowid,
391                l_ref_MOH_rec.HEADER_ID,
392                l_ref_MOH_rec.CREATED_BY,
393                l_ref_MOH_rec.CREATION_DATE,
394                l_ref_MOH_rec.LAST_UPDATED_BY,
395                l_ref_MOH_rec.LAST_UPDATE_DATE,
396                l_ref_MOH_rec.LAST_UPDATE_LOGIN,
397                l_ref_MOH_rec.LOCATION_ID,
398                l_ref_MOH_rec.CARRIER,
399                l_ref_MOH_rec.SHIPMENT_METHOD,
400                l_ref_MOH_rec.AUTORECEIPT_FLAG,
401                l_ref_MOH_rec.ATTRIBUTE_CATEGORY,
402                l_ref_MOH_rec.ATTRIBUTE1,
403                l_ref_MOH_rec.ATTRIBUTE2,
404                l_ref_MOH_rec.ATTRIBUTE3,
405                l_ref_MOH_rec.ATTRIBUTE4,
406                l_ref_MOH_rec.ATTRIBUTE5,
407                l_ref_MOH_rec.ATTRIBUTE6,
408                l_ref_MOH_rec.ATTRIBUTE7,
409                l_ref_MOH_rec.ATTRIBUTE8,
410                l_ref_MOH_rec.ATTRIBUTE9,
411                l_ref_MOH_rec.ATTRIBUTE10,
412                l_ref_MOH_rec.ATTRIBUTE11,
413                l_ref_MOH_rec.ATTRIBUTE12,
414                l_ref_MOH_rec.ATTRIBUTE13,
415                l_ref_MOH_rec.ATTRIBUTE14,
416                l_ref_MOH_rec.ATTRIBUTE15,
417                l_ref_MOH_rec.ADDRESS1,
418                l_ref_MOH_rec.ADDRESS2,
419                l_ref_MOH_rec.ADDRESS3,
420                l_ref_MOH_rec.ADDRESS4,
421                l_ref_MOH_rec.CITY,
422                l_ref_MOH_rec.POSTAL_CODE,
423                l_ref_MOH_rec.STATE,
424                l_ref_MOH_rec.PROVINCE,
425                l_ref_MOH_rec.COUNTRY;
426 
427        If ( C_Get_orderheaders%NOTFOUND) Then
428            IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
429            THEN
430                FND_MESSAGE.Set_Name('CSP', 'API_MISSING_UPDATE_TARGET');
431                FND_MESSAGE.Set_Token ('INFO', 'orderheaders', FALSE);
432                FND_MSG_PUB.Add;
433            END IF;
434            raise FND_API.G_EXC_ERROR;
435        END IF;
436        -- Debug Message
437        JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: - Close Cursor');
438        Close     C_Get_orderheaders;
439 */
440 
441 /*  uncommented out and will
442       If (l_tar_MOH_rec.last_update_date is NULL or
443           l_tar_MOH_rec.last_update_date = FND_API.G_MISS_Date ) Then
444           IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
445           THEN
446               FND_MESSAGE.Set_Name('CSP', 'API_MISSING_ID');
447               FND_MESSAGE.Set_Token('COLUMN', 'Last_Update_Date', FALSE);
448               FND_MSG_PUB.ADD;
449           END IF;
450           raise FND_API.G_EXC_ERROR;
451       End if;
452       -- Check Whether record has been changed by someone else
453       If (l_tar_MOH_rec.last_update_date <> l_ref_MOH_rec.last_update_date) Then
454           IF FND_MSG_PUB.Check_Msg_Level (FND_MSG_PUB.G_MSG_LVL_ERROR)
455           THEN
456               FND_MESSAGE.Set_Name('CSP', 'API_RECORD_CHANGED');
457               FND_MESSAGE.Set_Token('INFO', 'orderheaders', FALSE);
458               FND_MSG_PUB.ADD;
459           END IF;
460           raise FND_API.G_EXC_ERROR;
461       End if;
462 */
463       IF ( P_validation_level >= FND_API.G_VALID_LEVEL_FULL)
464       THEN
465           -- Debug message
466           JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Validate_orderheaders');
467 
468          -- Invoke validation procedures
469           Validate_orderheaders(
470               p_init_msg_list    => FND_API.G_FALSE,
471               p_validation_level => p_validation_level,
472               p_validation_mode  => JTF_PLSQL_API.G_UPDATE,
473               P_MOH_Rec  =>  P_MOH_Rec,
474               x_return_status    => x_return_status,
475               x_msg_count        => x_msg_count,
476               x_msg_data         => x_msg_data);
477       END IF;
478 
479       IF x_return_status<>FND_API.G_RET_STS_SUCCESS THEN
480           RAISE FND_API.G_EXC_ERROR;
481       END IF;
482 
483       -- Hint: Add corresponding Master-Detail business logic here if necessary.
484 
485       -- Debug Message
486       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Calling update table handler');
487 
488       -- Invoke table handler(CSP_MOVEORDER_HEADERS_PKG.Update_Row)
489       CSP_MOVEORDER_HEADERS_PKG.Update_Row(
490           p_HEADER_ID  => p_MOH_rec.HEADER_ID,
491           p_CREATED_BY  => p_MOH_rec.created_by,
492           p_CREATION_DATE  => p_MOH_rec.creation_date,
493           p_LAST_UPDATED_BY  => p_MOH_rec.LAST_UPDATED_BY,
494           p_LAST_UPDATE_DATE  => SYSDATE,
495           p_LAST_UPDATE_LOGIN  => p_MOH_rec.LAST_UPDATE_LOGIN,
496            p_CARRIER  => p_MOH_rec.CARRIER,
497           p_SHIPMENT_METHOD  => p_MOH_rec.SHIPMENT_METHOD,
498           p_AUTORECEIPT_FLAG  => p_MOH_rec.AUTORECEIPT_FLAG,
499           p_ATTRIBUTE_CATEGORY  => p_MOH_rec.ATTRIBUTE_CATEGORY,
500           p_ATTRIBUTE1  => p_MOH_rec.ATTRIBUTE1,
501           p_ATTRIBUTE2  => p_MOH_rec.ATTRIBUTE2,
502           p_ATTRIBUTE3  => p_MOH_rec.ATTRIBUTE3,
503           p_ATTRIBUTE4  => p_MOH_rec.ATTRIBUTE4,
504           p_ATTRIBUTE5  => p_MOH_rec.ATTRIBUTE5,
505           p_ATTRIBUTE6  => p_MOH_rec.ATTRIBUTE6,
506           p_ATTRIBUTE7  => p_MOH_rec.ATTRIBUTE7,
507           p_ATTRIBUTE8  => p_MOH_rec.ATTRIBUTE8,
508           p_ATTRIBUTE9  => p_MOH_rec.ATTRIBUTE9,
509           p_ATTRIBUTE10  => p_MOH_rec.ATTRIBUTE10,
510           p_ATTRIBUTE11  => p_MOH_rec.ATTRIBUTE11,
511           p_ATTRIBUTE12  => p_MOH_rec.ATTRIBUTE12,
512           p_ATTRIBUTE13  => p_MOH_rec.ATTRIBUTE13,
513           p_ATTRIBUTE14  => p_MOH_rec.ATTRIBUTE14,
514           p_ATTRIBUTE15  => p_MOH_rec.ATTRIBUTE15,
515           P_LOCATION_ID => P_MOH_REC.LOCATION_ID,
516           p_PARTY_SITE_ID => P_MOH_REC.PARTY_SITE_ID
517           /*
518           p_ADDRESS1  => p_MOH_rec.ADDRESS1,
519           p_ADDRESS2  => p_MOH_rec.ADDRESS2,
520           p_ADDRESS3  => p_MOH_rec.ADDRESS3,
521           p_ADDRESS4  => p_MOH_rec.ADDRESS4,
522           p_CITY  => p_MOH_rec.CITY,
523           p_POSTAL_CODE  => p_MOH_rec.POSTAL_CODE,
524           p_STATE  => p_MOH_rec.STATE,
525           p_PROVINCE  => p_MOH_rec.PROVINCE,
526           p_COUNTRY  => p_MOH_rec.COUNTRY */
527           );
528       --
529       -- End of API body.
530       --
531 
532       -- Standard check for p_commit
533       IF FND_API.to_Boolean( p_commit )
534       THEN
535           COMMIT WORK;
536       END IF;
537 
538 
539       -- Debug Message
540       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: ' || l_api_name || 'end');
541 
542 
543       -- Standard call to get message count and if count is 1, get message info.
544       FND_MSG_PUB.Count_And_Get
545       (  p_count          =>   x_msg_count,
546          p_data           =>   x_msg_data
547       );
548 
549 -- Un-comment the following statements when AS_CALLOUT_PKG is ready.
550 /*
551       -- if profile AS_POST_CUSTOM_ENABLED is set to 'Y', callout procedure is invoked for customization purpose
552       IF(FND_PROFILE.VALUE('AS_POST_CUSTOM_ENABLED')='Y')
553       THEN
554           AS_CALLOUT_PKG.Update_orderheaders_AU(
555                   p_api_version_number   =>  2.0,
556                   p_init_msg_list        =>  FND_API.G_FALSE,
557                   p_commit               =>  FND_API.G_FALSE,
558                   p_validation_level     =>  p_validation_level,
559                   p_identity_salesforce_id => p_identity_salesforce_id,
560                   P_MOH_Rec      =>  P_MOH_Rec,
561           -- Hint: Add detail tables as parameter lists if it's master-detail relationship.
562                   x_return_status        =>  x_return_status,
563                   x_msg_count            =>  x_msg_count,
564                   x_msg_data             =>  x_msg_data);
565       END IF;
566 */
567       EXCEPTION
568           WHEN FND_API.G_EXC_ERROR THEN
569               JTF_PLSQL_API.HANDLE_EXCEPTIONS(
570                    P_API_NAME => L_API_NAME
571                   ,P_PKG_NAME => G_PKG_NAME
572                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
573                   ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PVT
574                   ,X_MSG_COUNT => X_MSG_COUNT
575                   ,X_MSG_DATA => X_MSG_DATA
576                   ,X_RETURN_STATUS => X_RETURN_STATUS);
577 
578           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
579               JTF_PLSQL_API.HANDLE_EXCEPTIONS(
580                    P_API_NAME => L_API_NAME
581                   ,P_PKG_NAME => G_PKG_NAME
582                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
583                   ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PVT
584                   ,X_MSG_COUNT => X_MSG_COUNT
585                   ,X_MSG_DATA => X_MSG_DATA
586                   ,X_RETURN_STATUS => X_RETURN_STATUS);
587 
588           WHEN OTHERS THEN
589               JTF_PLSQL_API.HANDLE_EXCEPTIONS(
590                    P_API_NAME => L_API_NAME
591                   ,P_PKG_NAME => G_PKG_NAME
592                   ,P_EXCEPTION_LEVEL => JTF_PLSQL_API.G_EXC_OTHERS
593                   ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PVT
594                   ,X_MSG_COUNT => X_MSG_COUNT
595                   ,X_MSG_DATA => X_MSG_DATA
596                   ,X_RETURN_STATUS => X_RETURN_STATUS);
597 End Update_orderheaders;
598 
599 
600 -- Hint: Add corresponding delete detail table procedures if it's master-detail relationship.
601 --       The Master delete procedure may not be needed depends on different business requirements.
602 PROCEDURE Delete_orderheaders(
603     P_Api_Version_Number         IN   NUMBER,
604     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
605     P_Commit                     IN   VARCHAR2     := FND_API.G_FALSE,
606     p_validation_level           IN   NUMBER       := FND_API.G_VALID_LEVEL_FULL,
607     P_identity_salesforce_id     IN   NUMBER       := NULL,
608     P_MOH_Rec     IN MOH_Rec_Type,
609     X_Return_Status              OUT NOCOPY  VARCHAR2,
610     X_Msg_Count                  OUT NOCOPY  NUMBER,
611     X_Msg_Data                   OUT NOCOPY  VARCHAR2
612     )
613 
614  IS
615 l_api_name                CONSTANT VARCHAR2(30) := 'Delete_orderheaders';
616 l_api_version_number      CONSTANT NUMBER   := 1.0;
617 l_identity_sales_member_rec  AS_SALES_MEMBER_PUB.Sales_member_rec_Type;
618  BEGIN
619       -- Standard Start of API savepoint
620       SAVEPOINT DELETE_ORDERHEADERS_PVT;
621 
622       -- Standard call to check for call compatibility.
623       IF NOT FND_API.Compatible_API_Call ( l_api_version_number,
624                          	             p_api_version_number,
625                                            l_api_name,
626                                            G_PKG_NAME)
627       THEN
628           RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
629       END IF;
630 
631 
632       -- Initialize message list if p_init_msg_list is set to TRUE.
633       IF FND_API.to_Boolean( p_init_msg_list )
634       THEN
635           FND_MSG_PUB.initialize;
636       END IF;
637 
638 
639       -- Debug Message
640       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: ' || l_api_name || 'start');
641 
642 
643       -- Initialize API return status to SUCCESS
644       x_return_status := FND_API.G_RET_STS_SUCCESS;
645 
646       --
647       -- Api body
648       --
649 -- Un-comment the following statements when AS_CALLOUT_PKG is ready.
650 /*
651       -- if profile AS_PRE_CUSTOM_ENABLED is set to 'Y', callout procedure is invoked for customization purpose
652       IF(FND_PROFILE.VALUE('AS_PRE_CUSTOM_ENABLED')='Y')
653       THEN
654           AS_CALLOUT_PKG.Delete_orderheaders_BD(
655                   p_api_version_number   =>  2.0,
656                   p_init_msg_list        =>  FND_API.G_FALSE,
657                   p_commit               =>  FND_API.G_FALSE,
658                   p_validation_level     =>  p_validation_level,
659                   p_identity_salesforce_id => p_identity_salesforce_id,
660                   P_MOH_Rec      =>  P_MOH_Rec,
661           -- Hint: Add detail tables as parameter lists if it's master-detail relationship.
662                   x_return_status        =>  x_return_status,
663                   x_msg_count            =>  x_msg_count,
664                   x_msg_data             =>  x_msg_data);
665       END IF;
666 */
667 
668 /* Comment out by CSP. 06-DEC-1999.
669 
670       AS_SALES_ORG_MANAGER_PVT.Get_CurrentUser(
671           p_api_version_number => 2.0
672          ,p_salesforce_id => p_identity_salesforce_id
673          ,x_return_status => x_return_status
674          ,x_msg_count => x_msg_count
675          ,x_msg_data => x_msg_data
676          ,x_sales_member_rec => l_identity_sales_member_rec);
677 
678       IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
679           RAISE FND_API.G_EXC_ERROR;
680       END IF;
681 */
682       -- Debug Message
683       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP',  'Private API: Calling delete table handler');
684 
685       -- Invoke table handler(CSP_MOVEORDER_HEADERS_PKG.Delete_Row)
686       CSP_MOVEORDER_HEADERS_PKG.Delete_Row(
687           p_HEADER_ID  => p_MOH_rec.HEADER_ID);
688       --
689       -- End of API body
690       --
691 
692       -- Standard check for p_commit
693       IF FND_API.to_Boolean( p_commit )
694       THEN
695           COMMIT WORK;
696       END IF;
697 
698 
699       -- Debug Message
700       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: ' || l_api_name || 'end');
701 
702 
703       -- Standard call to get message count and if count is 1, get message info.
704       FND_MSG_PUB.Count_And_Get
705       (  p_count          =>   x_msg_count,
706          p_data           =>   x_msg_data
707       );
708 
709 -- Un-comment the following statements when AS_CALLOUT_PKG is ready.
710 /*
711       -- if profile AS_POST_CUSTOM_ENABLED is set to 'Y', callout procedure is invoked for customization purpose
712       IF(FND_PROFILE.VALUE('AS_POST_CUSTOM_ENABLED')='Y')
713       THEN
714           AS_CALLOUT_PKG.Delete_orderheaders_AD(
715                   p_api_version_number   =>  2.0,
716                   p_init_msg_list        =>  FND_API.G_FALSE,
717                   p_commit               =>  FND_API.G_FALSE,
718                   p_validation_level     =>  p_validation_level,
719                   p_identity_salesforce_id => p_identity_salesforce_id,
720                   P_MOH_Rec      =>  P_MOH_Rec,
721           -- Hint: Add detail tables as parameter lists if it's master-detail relationship.
722                   x_return_status        =>  x_return_status,
723                   x_msg_count            =>  x_msg_count,
724                   x_msg_data             =>  x_msg_data);
725       END IF;
726 */
727       EXCEPTION
728           WHEN FND_API.G_EXC_ERROR THEN
729               JTF_PLSQL_API.HANDLE_EXCEPTIONS(
730                    P_API_NAME => L_API_NAME
731                   ,P_PKG_NAME => G_PKG_NAME
732                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_ERROR
733                   ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PVT
734                   ,X_MSG_COUNT => X_MSG_COUNT
735                   ,X_MSG_DATA => X_MSG_DATA
736                   ,X_RETURN_STATUS => X_RETURN_STATUS);
737 
738           WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
739               JTF_PLSQL_API.HANDLE_EXCEPTIONS(
740                    P_API_NAME => L_API_NAME
741                   ,P_PKG_NAME => G_PKG_NAME
742                   ,P_EXCEPTION_LEVEL => FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR
743                   ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PVT
744                   ,X_MSG_COUNT => X_MSG_COUNT
745                   ,X_MSG_DATA => X_MSG_DATA
746                   ,X_RETURN_STATUS => X_RETURN_STATUS);
747 
748           WHEN OTHERS THEN
749               JTF_PLSQL_API.HANDLE_EXCEPTIONS(
750                    P_API_NAME => L_API_NAME
751                   ,P_PKG_NAME => G_PKG_NAME
752                   ,P_EXCEPTION_LEVEL => JTF_PLSQL_API.G_EXC_OTHERS
753                   ,P_PACKAGE_TYPE => JTF_PLSQL_API.G_PVT
754                   ,X_MSG_COUNT => X_MSG_COUNT
755                   ,X_MSG_DATA => X_MSG_DATA
756                   ,X_RETURN_STATUS => X_RETURN_STATUS);
757 End Delete_orderheaders;
758 
759 
760 -- This procudure defines the columns for the Dynamic SQL.
761 PROCEDURE Define_Columns(
762     P_MOH_Rec   IN  CSP_ORDERHEADERS_PUB.MOH_Rec_Type,
763     p_cur_get_MOH   IN   NUMBER
764 )
765 IS
766 BEGIN
767       -- Debug Message
768       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Define Columns Begins');
769 
770       -- define all columns for CSP_MOVEORDER_HEADERS_V view
771       dbms_sql.define_column(p_cur_get_MOH, 1, P_MOH_Rec.HEADER_ID);
772       dbms_sql.define_column(p_cur_get_MOH, 2, P_MOH_Rec.CARRIER, 50);
773       dbms_sql.define_column(p_cur_get_MOH, 3, P_MOH_Rec.SHIPMENT_METHOD, 50);
774       dbms_sql.define_column(p_cur_get_MOH, 4, P_MOH_Rec.AUTORECEIPT_FLAG, 10);
775       dbms_sql.define_column(p_cur_get_MOH, 5, P_MOH_Rec.ATTRIBUTE_CATEGORY, 30);
776       dbms_sql.define_column(p_cur_get_MOH, 6, P_MOH_Rec.LOCATION_ID);
777       /*
778       dbms_sql.define_column(p_cur_get_MOH, 7, P_MOH_Rec.ADDRESS1, 240);
779       dbms_sql.define_column(p_cur_get_MOH, 8, P_MOH_Rec.ADDRESS2, 240);
780       dbms_sql.define_column(p_cur_get_MOH, 9, P_MOH_Rec.ADDRESS3, 240);
781       dbms_sql.define_column(p_cur_get_MOH, 10, P_MOH_Rec.ADDRESS4, 240);
782       dbms_sql.define_column(p_cur_get_MOH, 11, P_MOH_Rec.CITY, 60);
783       dbms_sql.define_column(p_cur_get_MOH, 12, P_MOH_Rec.POSTAL_CODE, 60);
784       dbms_sql.define_column(p_cur_get_MOH, 13, P_MOH_Rec.STATE, 60);
785       dbms_sql.define_column(p_cur_get_MOH, 14, P_MOH_Rec.PROVINCE, 60);
786       dbms_sql.define_column(p_cur_get_MOH, 15, P_MOH_Rec.COUNTRY, 60); */
787 
788       -- Debug Message
789       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Define Columns Ends');
790 END Define_Columns;
791 
792 -- This procudure gets column values by the Dynamic SQL.
793 PROCEDURE Get_Column_Values(
794     p_cur_get_MOH   IN   NUMBER,
795     X_MOH_Rec   OUT NOCOPY  CSP_ORDERHEADERS_PUB.MOH_Rec_Type
796 )
797 IS
798 BEGIN
799       -- Debug Message
800       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Get Column Values Begins');
801 
802       -- get all column values for CSP_MOVEORDER_HEADERS_V table
803       dbms_sql.column_value(p_cur_get_MOH, 1, X_MOH_Rec.HEADER_ID);
804       dbms_sql.column_value(p_cur_get_MOH, 2, X_MOH_Rec.CARRIER);
805       dbms_sql.column_value(p_cur_get_MOH, 3, X_MOH_Rec.SHIPMENT_METHOD);
806       dbms_sql.column_value(p_cur_get_MOH, 4, X_MOH_Rec.AUTORECEIPT_FLAG);
807       dbms_sql.column_value(p_cur_get_MOH, 5, X_MOH_Rec.ATTRIBUTE_CATEGORY);
808       dbms_sql.column_value(p_cur_get_MOH, 6, X_MOH_Rec.LOCATION_ID);
809       /*
810       dbms_sql.column_value(p_cur_get_MOH, 7, X_MOH_Rec.ADDRESS1);
811       dbms_sql.column_value(p_cur_get_MOH, 8, X_MOH_Rec.ADDRESS2);
812       dbms_sql.column_value(p_cur_get_MOH, 9, X_MOH_Rec.ADDRESS3);
813       dbms_sql.column_value(p_cur_get_MOH, 10, X_MOH_Rec.ADDRESS4);
814       dbms_sql.column_value(p_cur_get_MOH, 11, X_MOH_Rec.CITY);
815       dbms_sql.column_value(p_cur_get_MOH, 12, X_MOH_Rec.POSTAL_CODE);
816       dbms_sql.column_value(p_cur_get_MOH, 13, X_MOH_Rec.STATE);
817       dbms_sql.column_value(p_cur_get_MOH, 14, X_MOH_Rec.PROVINCE);
818       dbms_sql.column_value(p_cur_get_MOH, 15, X_MOH_Rec.COUNTRY); */
819 
820       -- Debug Message
821       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Get Column Values Ends');
822 END Get_Column_Values;
823 
824 PROCEDURE Gen_MOH_order_cl(
825     p_order_by_rec   IN   CSP_ORDERHEADERS_PUB.MOH_sort_rec_type,
826     x_order_by_cl    OUT NOCOPY  VARCHAR2,
827     x_return_status  OUT NOCOPY  VARCHAR2,
828     x_msg_count      OUT NOCOPY  NUMBER,
829     x_msg_data       OUT NOCOPY  VARCHAR2
830 )
831 IS
832 l_order_by_cl        VARCHAR2(1000)   := NULL;
833 l_util_order_by_tbl  JTF_PLSQL_API.Util_order_by_tbl_type;
834 BEGIN
835       -- Debug Message
836       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Generate Order by Begins');
837 
838       -- Hint: Developer should add more statements according to CSP_sort_rec_type
839       -- Ex:
840       -- l_util_order_by_tbl(1).col_choice := p_order_by_rec.customer_name;
841       -- l_util_order_by_tbl(1).col_name := 'Customer_Name';
842 
843       -- Debug Message
844       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Invoke JTF_PLSQL_API.Translate_OrderBy');
845 
846       JTF_PLSQL_API.Translate_OrderBy(
847           p_api_version_number   =>   1.0
848          ,p_init_msg_list        =>   FND_API.G_FALSE
849          ,p_validation_level     =>   FND_API.G_VALID_LEVEL_FULL
850          ,p_order_by_tbl         =>   l_util_order_by_tbl
851          ,x_order_by_clause      =>   l_order_by_cl
852          ,x_return_status        =>   x_return_status
853          ,x_msg_count            =>   x_msg_count
854          ,x_msg_data             =>   x_msg_data);
855 
856       IF(l_order_by_cl IS NOT NULL) THEN
857           x_order_by_cl := 'order by' || l_order_by_cl;
858       ELSE
859           x_order_by_cl := NULL;
860       END IF;
861 
862       -- Debug Message
863       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Generate Order by Ends');
864 END Gen_MOH_order_cl;
865 
866 -- This procedure bind the variables for the Dynamic SQL
867 PROCEDURE Bind(
868     P_MOH_Rec   IN   CSP_ORDERHEADERS_PUB.MOH_Rec_Type,
869     -- Hint: Add more binding variables here
870     p_cur_get_MOH   IN   NUMBER
871 )
872 IS
873 BEGIN
874       -- Bind variables
875       -- Only those that are not NULL
876       -- Debug Message
877       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Bind Variables Begins');
878 
879       -- The following example applies to all columns,
880       -- developers can copy and paste them.
881       IF( (P_MOH_Rec.HEADER_ID IS NOT NULL) AND (P_MOH_Rec.HEADER_ID <> FND_API.G_MISS_NUM) )
882       THEN
883           DBMS_SQL.BIND_VARIABLE(p_cur_get_MOH, ':p_HEADER_ID', P_MOH_Rec.HEADER_ID);
884       END IF;
885 
886       -- Debug Message
887       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Bind Variables Ends');
888 END Bind;
889 
890 PROCEDURE Gen_Select(
891     x_select_cl   OUT NOCOPY   VARCHAR2
892 )
893 IS
894 BEGIN
895       -- Debug Message
896       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Generate Select Begins');
897 
898       x_select_cl := 'Select ' ||
899                 'CSP_MOVEORDER_HEADERS_V.HEADER_ID,' ||
900                 'CSP_MOVEORDER_HEADERS_V.CREATED_BY,' ||
901                 'CSP_MOVEORDER_HEADERS_V.CREATION_DATE,' ||
902                 'CSP_MOVEORDER_HEADERS_V.LAST_UPDATED_BY,' ||
903                 'CSP_MOVEORDER_HEADERS_V.LAST_UPDATE_DATE,' ||
904                 'CSP_MOVEORDER_HEADERS_V.LAST_UPDATE_LOGIN,' ||
905                 'CSP_MOVEORDER_HEADERS_V.LOCATION_ID,' ||
906                 'CSP_MOVEORDER_HEADERS_V.CARRIER,' ||
907                 'CSP_MOVEORDER_HEADERS_V.SHIPMENT_METHOD,' ||
908                 'CSP_MOVEORDER_HEADERS_V.AUTORECEIPT_FLAG,' ||
909                 'CSP_MOVEORDER_HEADERS_V.ATTRIBUTE_CATEGORY,' ||
910                /* 'CSP_MOVEORDER_HEADERS_V.ADDRESS1,' ||
911                 'CSP_MOVEORDER_HEADERS_V.ADDRESS2,' ||
912                 'CSP_MOVEORDER_HEADERS_V.ADDRESS3,' ||
913                 'CSP_MOVEORDER_HEADERS_V.ADDRESS4,' ||
914                 'CSP_MOVEORDER_HEADERS_V.CITY,' ||
915                 'CSP_MOVEORDER_HEADERS_V.POSTAL_CODE,' ||
916                 'CSP_MOVEORDER_HEADERS_V.STATE,' ||
917                 'CSP_MOVEORDER_HEADERS_V.PROVINCE,' ||
918                 'CSP_MOVEORDER_HEADERS_V.COUNTRY,' || */
919                 'from CSP_MOVEORDER_HEADERS_V';
920       -- Debug Message
921       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Generate Select Ends');
922 
923 END Gen_Select;
924 
925 PROCEDURE Gen_MOH_Where(
926     P_MOH_Rec     IN   CSP_ORDERHEADERS_PUB.MOH_Rec_Type,
927     x_MOH_where   OUT NOCOPY   VARCHAR2
928 )
929 IS
930 -- cursors to check if wildcard values '%' and '_' have been passed
931 -- as item values
932 CURSOR c_chk_str1(p_rec_item VARCHAR2) IS
933     SELECT INSTR(p_rec_item, '%', 1, 1)
934     FROM DUAL;
935 CURSOR c_chk_str2(p_rec_item VARCHAR2) IS
936     SELECT INSTR(p_rec_item, '_', 1, 1)
937     FROM DUAL;
938 
939 -- return values from cursors
940 str_csr1   NUMBER;
941 str_csr2   NUMBER;
942 l_operator VARCHAR2(10);
943 BEGIN
944       -- Debug Message
945       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Generate Where Begins');
946 
947       -- There are three examples for each kind of datatype:
948       -- NUMBER, DATE, VARCHAR2.
949       -- Developer can copy and paste the following codes for your own record.
950 
951       -- example for NUMBER datatype
952       IF( (P_MOH_Rec.HEADER_ID IS NOT NULL) AND (P_MOH_Rec.HEADER_ID <> FND_API.G_MISS_NUM) )
953       THEN
954           IF(x_MOH_where IS NULL) THEN
955               x_MOH_where := 'Where';
956           ELSE
957               x_MOH_where := x_MOH_where || ' AND ';
958           END IF;
959           x_MOH_where := x_MOH_where || 'P_MOH_Rec.HEADER_ID = :p_HEADER_ID';
960       END IF;
961 
962       -- example for DATE datatype
963       IF( (P_MOH_Rec.CREATION_DATE IS NOT NULL) AND (P_MOH_Rec.CREATION_DATE <> FND_API.G_MISS_DATE) )
964       THEN
965           -- check if item value contains '%' wildcard
966           OPEN c_chk_str1(P_MOH_Rec.CREATION_DATE);
967           FETCH c_chk_str1 INTO str_csr1;
968           CLOSE c_chk_str1;
969 
970           IF(str_csr1 <> 0) THEN
971               l_operator := ' LIKE ';
972           ELSE
973               l_operator := ' = ';
974           END IF;
975 
976           -- check if item value contains '_' wildcard
977           OPEN c_chk_str2(P_MOH_Rec.CREATION_DATE);
978           FETCH c_chk_str2 INTO str_csr2;
979           CLOSE c_chk_str2;
980 
981           IF(str_csr2 <> 0) THEN
982               l_operator := ' LIKE ';
983           ELSE
984               l_operator := ' = ';
985           END IF;
986 
987           IF(x_MOH_where IS NULL) THEN
988               x_MOH_where := 'Where ';
989           ELSE
990               x_MOH_where := x_MOH_where || ' AND ';
991           END IF;
992           x_MOH_where := x_MOH_where || 'P_MOH_Rec.CREATION_DATE ' || l_operator || ' :p_CREATION_DATE';
993       END IF;
994 
995       -- example for VARCHAR2 datatype
996       IF( (P_MOH_Rec.CARRIER IS NOT NULL) AND (P_MOH_Rec.CARRIER <> FND_API.G_MISS_CHAR) )
997       THEN
998           -- check if item value contains '%' wildcard
999           OPEN c_chk_str1(P_MOH_Rec.CARRIER);
1000           FETCH c_chk_str1 INTO str_csr1;
1001           CLOSE c_chk_str1;
1002 
1003           IF(str_csr1 <> 0) THEN
1004               l_operator := ' LIKE ';
1005           ELSE
1006               l_operator := ' = ';
1007           END IF;
1008 
1009           -- check if item value contains '_' wildcard
1010           OPEN c_chk_str2(P_MOH_Rec.CARRIER);
1011           FETCH c_chk_str2 INTO str_csr2;
1012           CLOSE c_chk_str2;
1013 
1014           IF(str_csr2 <> 0) THEN
1015               l_operator := ' LIKE ';
1016           ELSE
1017               l_operator := ' = ';
1018           END IF;
1019 
1020           IF(x_MOH_where IS NULL) THEN
1021               x_MOH_where := 'Where ';
1022           ELSE
1023               x_MOH_where := x_MOH_where || ' AND ';
1024           END IF;
1025           x_MOH_where := x_MOH_where || 'P_MOH_Rec.CARRIER ' || l_operator || ' :p_CARRIER';
1026       END IF;
1027 
1028       -- Add more IF statements for each column below
1029 
1030       -- Debug Message
1031       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: Generate Where Ends');
1032 
1033 END Gen_MOH_Where;
1034 
1035 -- Item-level validation procedures
1036 PROCEDURE Validate_HEADER_ID (
1037     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1038     P_Validation_mode            IN   VARCHAR2,
1039     P_HEADER_ID                IN   NUMBER,
1040     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1041     X_Return_Status              OUT NOCOPY  VARCHAR2,
1042     X_Msg_Count                  OUT NOCOPY  NUMBER,
1043     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1044     )
1045 IS
1046     l_check_header_id   number;
1047 BEGIN
1048 
1049       -- Initialize message list if p_init_msg_list is set to TRUE.
1050       IF FND_API.to_Boolean( p_init_msg_list )
1051       THEN
1052           FND_MSG_PUB.initialize;
1053       END IF;
1054 
1055 
1056       -- Initialize API return status to SUCCESS
1057       x_return_status := FND_API.G_RET_STS_SUCCESS;
1058 
1059       -- validate NOT NULL column
1060       IF(p_HEADER_ID is NULL)
1061       THEN
1062           JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_ERROR, 'CSP', 'Private orderheaders API: -Violate NOT NULL constraint(HEADER_ID)');
1063           x_return_status := FND_API.G_RET_STS_ERROR;
1064       END IF;
1065 
1066       IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1067       THEN
1068          NULL;
1069           -- Hint: Validate data
1070           -- IF p_HEADER_ID is not NULL and p_HEADER_ID <> G_MISS_CHAR
1071           -- verify if data is valid
1072           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1073 
1074           -- Check whether the p_header_id exists in the mtl_txn_request_headers. If not, raise an exception.
1075         /* 04/05/00: the following block is moved to csp_to_form_moheaders.validate_and_write.
1076          begin
1077             select header_id into l_check_header_id
1078             from mtl_txn_request_headers
1079             where header_id = p_header_id;
1080 
1081             exception
1082             when no_data_found then
1083               x_msg_count := x_msg_count + 1;
1084               x_msg_data := x_msg_data || 'Invalid Header ID.';
1085               x_return_status := FND_API.G_RET_STS_ERROR;
1086             when others then
1087               x_msg_count := x_msg_count + 1;
1088               x_msg_data := x_msg_data || 'Unexpected errors found while validating the Header ID. Please check the Header ID.';
1089               x_return_status := FND_API.G_RET_STS_ERROR;
1090           end;
1091         */
1092       ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1093       THEN
1094           -- Hint: Validate data
1095           -- IF p_HEADER_ID <> G_MISS_CHAR
1096           -- verify if data is valid
1097           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1098             begin
1099             select header_id into l_check_header_id
1100             from mtl_txn_request_headers
1101             where header_id = p_header_id;
1102 
1103             exception
1104             when no_data_found then
1105               x_msg_count := x_msg_count + 1;
1106               x_msg_data := x_msg_data || 'Invalid Header ID.';
1107               x_return_status := FND_API.G_RET_STS_ERROR;
1108             when others then
1109               x_msg_count := x_msg_count + 1;
1110               x_msg_data := x_msg_data || 'Unexpected errors found while validating the Header ID. Please check the Header ID.';
1111               x_return_status := FND_API.G_RET_STS_ERROR;
1112           end;
1113       END IF;
1114 
1115       -- Standard call to get message count and if count is 1, get message info.
1116       FND_MSG_PUB.Count_And_Get
1117       (  p_count          =>   x_msg_count,
1118          p_data           =>   x_msg_data
1119       );
1120 
1121 END Validate_HEADER_ID;
1122 
1123 
1124 PROCEDURE Validate_LOCATION_ID (
1125     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1126     P_Validation_mode            IN   VARCHAR2,
1127     P_LOCATION_ID                IN   NUMBER,
1128     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1129     X_Return_Status              OUT NOCOPY  VARCHAR2,
1130     X_Msg_Count                  OUT NOCOPY  NUMBER,
1131     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1132     )
1133 IS
1134 BEGIN
1135 
1136       -- Initialize message list if p_init_msg_list is set to TRUE.
1137       IF FND_API.to_Boolean( p_init_msg_list )
1138       THEN
1139           FND_MSG_PUB.initialize;
1140       END IF;
1141 
1142 
1143       -- Initialize API return status to SUCCESS
1144       x_return_status := FND_API.G_RET_STS_SUCCESS;
1145 
1146       -- validate NOT NULL column
1147       IF(p_LOCATION_ID is NULL)
1148       THEN
1149           JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_ERROR, 'CSP', 'Private orderheaders API: -Violate NOT NULL constraint(LOCATION_ID)');
1150           x_return_status := FND_API.G_RET_STS_ERROR;
1151       END IF;
1152 
1153       IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1154       THEN
1155           -- Hint: Validate data
1156           -- IF p_LOCATION_ID is not NULL and p_LOCATION_ID <> G_MISS_CHAR
1157           -- verify if data is valid
1158           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1159           NULL;
1160       ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1161       THEN
1162           -- Hint: Validate data
1163           -- IF p_LOCATION_ID <> G_MISS_CHAR
1164           -- verify if data is valid
1165           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1166           NULL;
1167       END IF;
1168 
1169       -- Standard call to get message count and if count is 1, get message info.
1170       FND_MSG_PUB.Count_And_Get
1171       (  p_count          =>   x_msg_count,
1172          p_data           =>   x_msg_data
1173       );
1174 
1175 END Validate_LOCATION_ID;
1176 
1177 
1178 PROCEDURE Validate_CARRIER (
1179     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1180     P_Validation_mode            IN   VARCHAR2,
1181     P_CARRIER                IN   VARCHAR2,
1182     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1183     X_Return_Status              OUT NOCOPY  VARCHAR2,
1184     X_Msg_Count                  OUT NOCOPY  NUMBER,
1185     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1186     )
1187 IS
1188 BEGIN
1189 
1190       -- Initialize message list if p_init_msg_list is set to TRUE.
1191       IF FND_API.to_Boolean( p_init_msg_list )
1192       THEN
1193           FND_MSG_PUB.initialize;
1194       END IF;
1195 
1196 
1197       -- Initialize API return status to SUCCESS
1198       x_return_status := FND_API.G_RET_STS_SUCCESS;
1199 
1200       IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1201       THEN
1202           -- Hint: Validate data
1203           -- IF p_CARRIER is not NULL and p_CARRIER <> G_MISS_CHAR
1204           -- verify if data is valid
1205           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1206           NULL;
1207       ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1208       THEN
1209           -- Hint: Validate data
1210           -- IF p_CARRIER <> G_MISS_CHAR
1211           -- verify if data is valid
1212           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1213           NULL;
1214       END IF;
1215 
1216       -- Standard call to get message count and if count is 1, get message info.
1217       FND_MSG_PUB.Count_And_Get
1218       (  p_count          =>   x_msg_count,
1219          p_data           =>   x_msg_data
1220       );
1221 
1222 END Validate_CARRIER;
1223 
1224 
1225 PROCEDURE Validate_SHIPMENT_METHOD (
1226     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1227     P_Validation_mode            IN   VARCHAR2,
1228     P_SHIPMENT_METHOD                IN   VARCHAR2,
1229     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1230     X_Return_Status              OUT NOCOPY  VARCHAR2,
1231     X_Msg_Count                  OUT NOCOPY  NUMBER,
1232     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1233     )
1234 IS
1235 BEGIN
1236 
1237       -- Initialize message list if p_init_msg_list is set to TRUE.
1238       IF FND_API.to_Boolean( p_init_msg_list )
1239       THEN
1240           FND_MSG_PUB.initialize;
1241       END IF;
1242 
1243 
1244       -- Initialize API return status to SUCCESS
1245       x_return_status := FND_API.G_RET_STS_SUCCESS;
1246 
1247       IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1248       THEN
1249           -- Hint: Validate data
1250           -- IF p_SHIPMENT_METHOD is not NULL and p_SHIPMENT_METHOD <> G_MISS_CHAR
1251           -- verify if data is valid
1252           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1253           NULL;
1254       ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1255       THEN
1256           -- Hint: Validate data
1257           -- IF p_SHIPMENT_METHOD <> G_MISS_CHAR
1258           -- verify if data is valid
1259           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1260           NULL;
1261       END IF;
1262 
1263       -- Standard call to get message count and if count is 1, get message info.
1264       FND_MSG_PUB.Count_And_Get
1265       (  p_count          =>   x_msg_count,
1266          p_data           =>   x_msg_data
1267       );
1268 
1269 END Validate_SHIPMENT_METHOD;
1270 
1271 
1272 PROCEDURE Validate_AUTORECEIPT_FLAG (
1273     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1274     P_Validation_mode            IN   VARCHAR2,
1275     P_AUTORECEIPT_FLAG                IN   VARCHAR2,
1276     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1277     X_Return_Status              OUT NOCOPY  VARCHAR2,
1278     X_Msg_Count                  OUT NOCOPY  NUMBER,
1279     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1280     )
1281 IS
1282 BEGIN
1283 
1284       -- Initialize message list if p_init_msg_list is set to TRUE.
1285       IF FND_API.to_Boolean( p_init_msg_list )
1286       THEN
1287           FND_MSG_PUB.initialize;
1288       END IF;
1289 
1290 
1291       -- Initialize API return status to SUCCESS
1292       x_return_status := FND_API.G_RET_STS_SUCCESS;
1293 
1294       IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1295       THEN
1296           -- Hint: Validate data
1297           -- IF p_AUTORECEIPT_FLAG is not NULL and p_AUTORECEIPT_FLAG <> G_MISS_CHAR
1298           -- verify if data is valid
1299           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1300           NULL;
1301       ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1302       THEN
1303           -- Hint: Validate data
1304           -- IF p_AUTORECEIPT_FLAG <> G_MISS_CHAR
1305           -- verify if data is valid
1306           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1307           NULL;
1308       END IF;
1309 
1310       -- Standard call to get message count and if count is 1, get message info.
1311       FND_MSG_PUB.Count_And_Get
1312       (  p_count          =>   x_msg_count,
1313          p_data           =>   x_msg_data
1314       );
1315 
1316 END Validate_AUTORECEIPT_FLAG;
1317 
1318 
1319 /* PROCEDURE Validate_ADDRESS1 (
1320     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1321     P_Validation_mode            IN   VARCHAR2,
1322     P_ADDRESS1                IN   VARCHAR2,
1323     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1324     X_Return_Status              OUT NOCOPY  VARCHAR2,
1325     X_Msg_Count                  OUT NOCOPY  NUMBER,
1326     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1327     )
1328 IS
1329 BEGIN
1330 
1331       -- Initialize message list if p_init_msg_list is set to TRUE.
1332       IF FND_API.to_Boolean( p_init_msg_list )
1333       THEN
1334           FND_MSG_PUB.initialize;
1335       END IF;
1336 
1337 
1338       -- Initialize API return status to SUCCESS
1339       x_return_status := FND_API.G_RET_STS_SUCCESS;
1340 
1341       IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1342       THEN
1343           -- Hint: Validate data
1344           -- IF p_ADDRESS1 is not NULL and p_ADDRESS1 <> G_MISS_CHAR
1345           -- verify if data is valid
1346           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1347           NULL;
1348       ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1349       THEN
1350           -- Hint: Validate data
1351           -- IF p_ADDRESS1 <> G_MISS_CHAR
1352           -- verify if data is valid
1353           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1354           NULL;
1355       END IF;
1356 
1357       -- Standard call to get message count and if count is 1, get message info.
1358       FND_MSG_PUB.Count_And_Get
1359       (  p_count          =>   x_msg_count,
1360          p_data           =>   x_msg_data
1361       );
1362 
1363 END Validate_ADDRESS1;
1364 
1365 
1366 PROCEDURE Validate_ADDRESS2 (
1367     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1368     P_Validation_mode            IN   VARCHAR2,
1369     P_ADDRESS2                IN   VARCHAR2,
1370     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1371     X_Return_Status              OUT NOCOPY  VARCHAR2,
1372     X_Msg_Count                  OUT NOCOPY  NUMBER,
1373     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1374     )
1375 IS
1376 BEGIN
1377 
1378       -- Initialize message list if p_init_msg_list is set to TRUE.
1379       IF FND_API.to_Boolean( p_init_msg_list )
1380       THEN
1381           FND_MSG_PUB.initialize;
1382       END IF;
1383 
1384 
1385       -- Initialize API return status to SUCCESS
1386       x_return_status := FND_API.G_RET_STS_SUCCESS;
1387 
1388       IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1389       THEN
1390           -- Hint: Validate data
1391           -- IF p_ADDRESS2 is not NULL and p_ADDRESS2 <> G_MISS_CHAR
1392           -- verify if data is valid
1393           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1394           NULL;
1395       ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1396       THEN
1397           -- Hint: Validate data
1398           -- IF p_ADDRESS2 <> G_MISS_CHAR
1399           -- verify if data is valid
1400           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1401           NULL;
1402       END IF;
1403 
1404       -- Standard call to get message count and if count is 1, get message info.
1405       FND_MSG_PUB.Count_And_Get
1406       (  p_count          =>   x_msg_count,
1407          p_data           =>   x_msg_data
1408       );
1409 
1410 END Validate_ADDRESS2;
1411 
1412 
1413 PROCEDURE Validate_ADDRESS3 (
1414     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1415     P_Validation_mode            IN   VARCHAR2,
1416     P_ADDRESS3                IN   VARCHAR2,
1417     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1418     X_Return_Status              OUT NOCOPY  VARCHAR2,
1419     X_Msg_Count                  OUT NOCOPY  NUMBER,
1420     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1421     )
1422 IS
1423 BEGIN
1424 
1425       -- Initialize message list if p_init_msg_list is set to TRUE.
1426       IF FND_API.to_Boolean( p_init_msg_list )
1427       THEN
1428           FND_MSG_PUB.initialize;
1429       END IF;
1430 
1431 
1432       -- Initialize API return status to SUCCESS
1433       x_return_status := FND_API.G_RET_STS_SUCCESS;
1434 
1435       IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1436       THEN
1437           -- Hint: Validate data
1438           -- IF p_ADDRESS3 is not NULL and p_ADDRESS3 <> G_MISS_CHAR
1439           -- verify if data is valid
1440           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1441           NULL;
1442       ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1443       THEN
1444           -- Hint: Validate data
1445           -- IF p_ADDRESS3 <> G_MISS_CHAR
1446           -- verify if data is valid
1447           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1448           NULL;
1449       END IF;
1450 
1451       -- Standard call to get message count and if count is 1, get message info.
1452       FND_MSG_PUB.Count_And_Get
1453       (  p_count          =>   x_msg_count,
1454          p_data           =>   x_msg_data
1455       );
1456 
1457 END Validate_ADDRESS3;
1458 
1459 
1460 PROCEDURE Validate_ADDRESS4 (
1461     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1462     P_Validation_mode            IN   VARCHAR2,
1463     P_ADDRESS4                IN   VARCHAR2,
1464     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1465     X_Return_Status              OUT NOCOPY  VARCHAR2,
1466     X_Msg_Count                  OUT NOCOPY  NUMBER,
1467     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1468     )
1469 IS
1470 BEGIN
1471 
1472       -- Initialize message list if p_init_msg_list is set to TRUE.
1473       IF FND_API.to_Boolean( p_init_msg_list )
1474       THEN
1475           FND_MSG_PUB.initialize;
1476       END IF;
1477 
1478 
1479       -- Initialize API return status to SUCCESS
1480       x_return_status := FND_API.G_RET_STS_SUCCESS;
1481 
1482       IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1483       THEN
1484           -- Hint: Validate data
1485           -- IF p_ADDRESS4 is not NULL and p_ADDRESS4 <> G_MISS_CHAR
1486           -- verify if data is valid
1487           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1488           NULL;
1489       ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1490       THEN
1491           -- Hint: Validate data
1492           -- IF p_ADDRESS4 <> G_MISS_CHAR
1493           -- verify if data is valid
1494           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1495           NULL;
1496       END IF;
1497 
1498       -- Standard call to get message count and if count is 1, get message info.
1499       FND_MSG_PUB.Count_And_Get
1500       (  p_count          =>   x_msg_count,
1501          p_data           =>   x_msg_data
1502       );
1503 
1504 END Validate_ADDRESS4;
1505 
1506 
1507 PROCEDURE Validate_CITY (
1508     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1509     P_Validation_mode            IN   VARCHAR2,
1510     P_CITY                IN   VARCHAR2,
1511     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1512     X_Return_Status              OUT NOCOPY  VARCHAR2,
1513     X_Msg_Count                  OUT NOCOPY  NUMBER,
1514     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1515     )
1516 IS
1517 BEGIN
1518 
1519       -- Initialize message list if p_init_msg_list is set to TRUE.
1520       IF FND_API.to_Boolean( p_init_msg_list )
1521       THEN
1522           FND_MSG_PUB.initialize;
1523       END IF;
1524 
1525 
1526       -- Initialize API return status to SUCCESS
1527       x_return_status := FND_API.G_RET_STS_SUCCESS;
1528 
1529       IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1530       THEN
1531           -- Hint: Validate data
1532           -- IF p_CITY is not NULL and p_CITY <> G_MISS_CHAR
1533           -- verify if data is valid
1534           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1535           NULL;
1536       ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1537       THEN
1538           -- Hint: Validate data
1539           -- IF p_CITY <> G_MISS_CHAR
1540           -- verify if data is valid
1541           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1542           NULL;
1543       END IF;
1544 
1545       -- Standard call to get message count and if count is 1, get message info.
1546       FND_MSG_PUB.Count_And_Get
1547       (  p_count          =>   x_msg_count,
1548          p_data           =>   x_msg_data
1549       );
1550 
1551 END Validate_CITY;
1552 
1553 
1554 PROCEDURE Validate_POSTAL_CODE (
1555     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1556     P_Validation_mode            IN   VARCHAR2,
1557     P_POSTAL_CODE                IN   VARCHAR2,
1558     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1559     X_Return_Status              OUT NOCOPY  VARCHAR2,
1560     X_Msg_Count                  OUT NOCOPY  NUMBER,
1561     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1562     )
1563 IS
1564 BEGIN
1565 
1566       -- Initialize message list if p_init_msg_list is set to TRUE.
1567       IF FND_API.to_Boolean( p_init_msg_list )
1568       THEN
1569           FND_MSG_PUB.initialize;
1570       END IF;
1571 
1572 
1573       -- Initialize API return status to SUCCESS
1574       x_return_status := FND_API.G_RET_STS_SUCCESS;
1575 
1576       IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1577       THEN
1578           -- Hint: Validate data
1579           -- IF p_POSTAL_CODE is not NULL and p_POSTAL_CODE <> G_MISS_CHAR
1580           -- verify if data is valid
1581           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1582           NULL;
1583       ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1584       THEN
1585           -- Hint: Validate data
1586           -- IF p_POSTAL_CODE <> G_MISS_CHAR
1587           -- verify if data is valid
1588           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1589           NULL;
1590       END IF;
1591 
1592       -- Standard call to get message count and if count is 1, get message info.
1593       FND_MSG_PUB.Count_And_Get
1594       (  p_count          =>   x_msg_count,
1595          p_data           =>   x_msg_data
1596       );
1597 
1598 END Validate_POSTAL_CODE;
1599 
1600 
1601 PROCEDURE Validate_STATE (
1602     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1603     P_Validation_mode            IN   VARCHAR2,
1604     P_STATE                IN   VARCHAR2,
1605     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1606     X_Return_Status              OUT NOCOPY  VARCHAR2,
1607     X_Msg_Count                  OUT NOCOPY  NUMBER,
1608     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1609     )
1610 IS
1611 BEGIN
1612 
1613       -- Initialize message list if p_init_msg_list is set to TRUE.
1614       IF FND_API.to_Boolean( p_init_msg_list )
1615       THEN
1616           FND_MSG_PUB.initialize;
1617       END IF;
1618 
1619 
1620       -- Initialize API return status to SUCCESS
1621       x_return_status := FND_API.G_RET_STS_SUCCESS;
1622 
1623       IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1624       THEN
1625           -- Hint: Validate data
1626           -- IF p_STATE is not NULL and p_STATE <> G_MISS_CHAR
1627           -- verify if data is valid
1628           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1629           NULL;
1630       ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1631       THEN
1632           -- Hint: Validate data
1633           -- IF p_STATE <> G_MISS_CHAR
1634           -- verify if data is valid
1635           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1636           NULL;
1637       END IF;
1638 
1639       -- Standard call to get message count and if count is 1, get message info.
1640       FND_MSG_PUB.Count_And_Get
1641       (  p_count          =>   x_msg_count,
1642          p_data           =>   x_msg_data
1643       );
1644 
1645 END Validate_STATE;
1646 
1647 
1648 PROCEDURE Validate_PROVINCE (
1649     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1650     P_Validation_mode            IN   VARCHAR2,
1651     P_PROVINCE                IN   VARCHAR2,
1652     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1653     X_Return_Status              OUT NOCOPY  VARCHAR2,
1654     X_Msg_Count                  OUT NOCOPY  NUMBER,
1655     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1656     )
1657 IS
1658 BEGIN
1659 
1660       -- Initialize message list if p_init_msg_list is set to TRUE.
1661       IF FND_API.to_Boolean( p_init_msg_list )
1662       THEN
1663           FND_MSG_PUB.initialize;
1664       END IF;
1665 
1666 
1667       -- Initialize API return status to SUCCESS
1668       x_return_status := FND_API.G_RET_STS_SUCCESS;
1669 
1670       IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1671       THEN
1672           -- Hint: Validate data
1673           -- IF p_PROVINCE is not NULL and p_PROVINCE <> G_MISS_CHAR
1674           -- verify if data is valid
1675           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1676           NULL;
1677       ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1678       THEN
1679           -- Hint: Validate data
1680           -- IF p_PROVINCE <> G_MISS_CHAR
1681           -- verify if data is valid
1682           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1683           NULL;
1684       END IF;
1685 
1686       -- Standard call to get message count and if count is 1, get message info.
1687       FND_MSG_PUB.Count_And_Get
1688       (  p_count          =>   x_msg_count,
1689          p_data           =>   x_msg_data
1690       );
1691 
1692 END Validate_PROVINCE;
1693 
1694 
1695 PROCEDURE Validate_COUNTRY (
1696     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1697     P_Validation_mode            IN   VARCHAR2,
1698     P_COUNTRY                IN   VARCHAR2,
1699     -- Hint: You may add 'X_Item_Property_Rec  OUT NOCOPY     JTF_PLSQL_API.ITEM_PROPERTY_REC_TYPE' here if you'd like to pass back item property.
1700     X_Return_Status              OUT NOCOPY  VARCHAR2,
1701     X_Msg_Count                  OUT NOCOPY  NUMBER,
1702     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1703     )
1704 IS
1705 BEGIN
1706 
1707       -- Initialize message list if p_init_msg_list is set to TRUE.
1708       IF FND_API.to_Boolean( p_init_msg_list )
1709       THEN
1710           FND_MSG_PUB.initialize;
1711       END IF;
1712 
1713 
1714       -- Initialize API return status to SUCCESS
1715       x_return_status := FND_API.G_RET_STS_SUCCESS;
1716 
1717       IF(p_validation_mode = JTF_PLSQL_API.G_CREATE)
1718       THEN
1719           -- Hint: Validate data
1720           -- IF p_COUNTRY is not NULL and p_COUNTRY <> G_MISS_CHAR
1721           -- verify if data is valid
1722           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1723           NULL;
1724       ELSIF(p_validation_mode = JTF_PLSQL_API.G_UPDATE)
1725       THEN
1726           -- Hint: Validate data
1727           -- IF p_COUNTRY <> G_MISS_CHAR
1728           -- verify if data is valid
1729           -- if data is not valid : x_return_status := FND_API.G_RET_STS_ERROR;
1730           NULL;
1731       END IF;
1732 
1733       -- Standard call to get message count and if count is 1, get message info.
1734       FND_MSG_PUB.Count_And_Get
1735       (  p_count          =>   x_msg_count,
1736          p_data           =>   x_msg_data
1737       );
1738 
1739 END Validate_COUNTRY;
1740 */
1741 
1742 -- Hint: inter-field level validation can be added here.
1743 -- Hint: If p_validation_mode = JTF_PLSQL_API.G_VALIDATE_UPDATE, we should use cursor
1744 --       to get old values for all fields used in inter-field validation and set all G_MISS_XXX fields to original value
1745 --       stored in database table.
1746 PROCEDURE Validate_MOH_rec(
1747     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1748     P_Validation_mode            IN   VARCHAR2,
1749     P_MOH_Rec     IN    MOH_Rec_Type,
1750     X_Return_Status              OUT NOCOPY  VARCHAR2,
1751     X_Msg_Count                  OUT NOCOPY  NUMBER,
1752     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1753     )
1754 IS
1755 BEGIN
1756 
1757       -- Initialize message list if p_init_msg_list is set to TRUE.
1758       IF FND_API.to_Boolean( p_init_msg_list )
1759       THEN
1760           FND_MSG_PUB.initialize;
1761       END IF;
1762 
1763 
1764       -- Initialize API return status to SUCCESS
1765       x_return_status := FND_API.G_RET_STS_SUCCESS;
1766 
1767       -- Hint: Validate data
1768       -- If data not valid
1769       -- THEN
1770       -- x_return_status := FND_API.G_RET_STS_ERROR;
1771 
1772       -- Debug Message
1773       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'API_INVALID_RECORD');
1774 
1775       -- Standard call to get message count and if count is 1, get message info.
1776       FND_MSG_PUB.Count_And_Get
1777       (  p_count          =>   x_msg_count,
1778          p_data           =>   x_msg_data
1779       );
1780 
1781 END Validate_MOH_Rec;
1782 
1783 PROCEDURE Validate_orderheaders(
1784     P_Init_Msg_List              IN   VARCHAR2     := FND_API.G_FALSE,
1785     P_Validation_level           IN   NUMBER := FND_API.G_VALID_LEVEL_FULL,
1786     P_Validation_mode            IN   VARCHAR2,
1787     P_MOH_Rec     IN    MOH_Rec_Type,
1788     X_Return_Status              OUT NOCOPY  VARCHAR2,
1789     X_Msg_Count                  OUT NOCOPY  NUMBER,
1790     X_Msg_Data                   OUT NOCOPY  VARCHAR2
1791     )
1792 IS
1793 l_api_name   CONSTANT VARCHAR2(30) := 'Validate_orderheaders';
1794  BEGIN
1795 
1796       -- Debug Message
1797       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: ' || l_api_name || 'start');
1798 
1799 
1800       -- Initialize API return status to SUCCESS
1801       x_return_status := FND_API.G_RET_STS_SUCCESS;
1802 
1803       IF (p_validation_level >= JTF_PLSQL_API.G_VALID_LEVEL_ITEM) THEN
1804           -- Hint: We provide validation procedure for every column. Developer should delete
1805           --       unnecessary validation procedures.
1806           Validate_HEADER_ID(
1807               p_init_msg_list          => FND_API.G_FALSE,
1808               p_validation_mode        => p_validation_mode,
1809               p_HEADER_ID   => P_MOH_Rec.HEADER_ID,
1810               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1811               x_return_status          => x_return_status,
1812               x_msg_count              => x_msg_count,
1813               x_msg_data               => x_msg_data);
1814           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1815               raise FND_API.G_EXC_ERROR;
1816           END IF;
1817 
1818           Validate_CARRIER(
1819               p_init_msg_list          => FND_API.G_FALSE,
1820               p_validation_mode        => p_validation_mode,
1821               p_CARRIER   => P_MOH_Rec.CARRIER,
1822               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1823               x_return_status          => x_return_status,
1824               x_msg_count              => x_msg_count,
1825               x_msg_data               => x_msg_data);
1826           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1827               raise FND_API.G_EXC_ERROR;
1828           END IF;
1829 
1830           Validate_SHIPMENT_METHOD(
1831               p_init_msg_list          => FND_API.G_FALSE,
1832               p_validation_mode        => p_validation_mode,
1833               p_SHIPMENT_METHOD   => P_MOH_Rec.SHIPMENT_METHOD,
1834               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1835               x_return_status          => x_return_status,
1836               x_msg_count              => x_msg_count,
1837               x_msg_data               => x_msg_data);
1838           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1839               raise FND_API.G_EXC_ERROR;
1840           END IF;
1841 
1842           Validate_AUTORECEIPT_FLAG(
1843               p_init_msg_list          => FND_API.G_FALSE,
1844               p_validation_mode        => p_validation_mode,
1845               p_AUTORECEIPT_FLAG   => P_MOH_Rec.AUTORECEIPT_FLAG,
1846               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1847               x_return_status          => x_return_status,
1848               x_msg_count              => x_msg_count,
1849               x_msg_data               => x_msg_data);
1850           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1851               raise FND_API.G_EXC_ERROR;
1852           END IF;
1853 
1854          /* Validate_ADDRESS1(
1855               p_init_msg_list          => FND_API.G_FALSE,
1856               p_validation_mode        => p_validation_mode,
1857               p_ADDRESS1   => P_MOH_Rec.ADDRESS1,
1858               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1859               x_return_status          => x_return_status,
1860               x_msg_count              => x_msg_count,
1861               x_msg_data               => x_msg_data);
1862           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1863               raise FND_API.G_EXC_ERROR;
1864           END IF;
1865 
1866           Validate_ADDRESS2(
1867               p_init_msg_list          => FND_API.G_FALSE,
1868               p_validation_mode        => p_validation_mode,
1869               p_ADDRESS2   => P_MOH_Rec.ADDRESS2,
1870               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1871               x_return_status          => x_return_status,
1872               x_msg_count              => x_msg_count,
1873               x_msg_data               => x_msg_data);
1874           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1875               raise FND_API.G_EXC_ERROR;
1876           END IF;
1877 
1878           Validate_ADDRESS3(
1879               p_init_msg_list          => FND_API.G_FALSE,
1880               p_validation_mode        => p_validation_mode,
1881               p_ADDRESS3   => P_MOH_Rec.ADDRESS3,
1882               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1883               x_return_status          => x_return_status,
1884               x_msg_count              => x_msg_count,
1885               x_msg_data               => x_msg_data);
1886           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1887               raise FND_API.G_EXC_ERROR;
1888           END IF;
1889 
1890           Validate_ADDRESS4(
1891               p_init_msg_list          => FND_API.G_FALSE,
1892               p_validation_mode        => p_validation_mode,
1893               p_ADDRESS4   => P_MOH_Rec.ADDRESS4,
1894               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1895               x_return_status          => x_return_status,
1896               x_msg_count              => x_msg_count,
1897               x_msg_data               => x_msg_data);
1898           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1899               raise FND_API.G_EXC_ERROR;
1900           END IF;
1901 
1902           Validate_CITY(
1903               p_init_msg_list          => FND_API.G_FALSE,
1904               p_validation_mode        => p_validation_mode,
1905               p_CITY   => P_MOH_Rec.CITY,
1906               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1907               x_return_status          => x_return_status,
1908               x_msg_count              => x_msg_count,
1909               x_msg_data               => x_msg_data);
1910           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1911               raise FND_API.G_EXC_ERROR;
1912           END IF;
1913 
1914           Validate_POSTAL_CODE(
1915               p_init_msg_list          => FND_API.G_FALSE,
1916               p_validation_mode        => p_validation_mode,
1917               p_POSTAL_CODE   => P_MOH_Rec.POSTAL_CODE,
1918               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1919               x_return_status          => x_return_status,
1920               x_msg_count              => x_msg_count,
1921               x_msg_data               => x_msg_data);
1922           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1923               raise FND_API.G_EXC_ERROR;
1924           END IF;
1925 
1926           Validate_STATE(
1927               p_init_msg_list          => FND_API.G_FALSE,
1928               p_validation_mode        => p_validation_mode,
1929               p_STATE   => P_MOH_Rec.STATE,
1930               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1931               x_return_status          => x_return_status,
1932               x_msg_count              => x_msg_count,
1933               x_msg_data               => x_msg_data);
1934           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1935               raise FND_API.G_EXC_ERROR;
1936           END IF;
1937 
1938           Validate_PROVINCE(
1939               p_init_msg_list          => FND_API.G_FALSE,
1940               p_validation_mode        => p_validation_mode,
1941               p_PROVINCE   => P_MOH_Rec.PROVINCE,
1942               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1943               x_return_status          => x_return_status,
1944               x_msg_count              => x_msg_count,
1945               x_msg_data               => x_msg_data);
1946           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1947               raise FND_API.G_EXC_ERROR;
1948           END IF;
1949 
1950           Validate_COUNTRY(
1951               p_init_msg_list          => FND_API.G_FALSE,
1952               p_validation_mode        => p_validation_mode,
1953               p_COUNTRY   => P_MOH_Rec.COUNTRY,
1954               -- Hint: You may add x_item_property_rec as one of your OUT parameter if you'd like to pass back item property.
1955               x_return_status          => x_return_status,
1956               x_msg_count              => x_msg_count,
1957               x_msg_data               => x_msg_data);
1958           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1959               raise FND_API.G_EXC_ERROR;
1960           END IF;
1961         */
1962       END IF;
1963 
1964       IF (p_validation_level >= JTF_PLSQL_API.G_VALID_LEVEL_RECORD) THEN
1965           -- Hint: Inter-field level validation can be added here
1966           -- invoke record level validation procedures
1967           Validate_MOH_Rec(
1968               p_init_msg_list          => FND_API.G_FALSE,
1969               p_validation_mode        => p_validation_mode,
1970           P_MOH_Rec     =>    P_MOH_Rec,
1971               x_return_status          => x_return_status,
1972               x_msg_count              => x_msg_count,
1973               x_msg_data               => x_msg_data);
1974 
1975           IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1976               raise FND_API.G_EXC_ERROR;
1977           END IF;
1978       END IF;
1979 
1980       IF (p_validation_level >= JTF_PLSQL_API.G_VALID_LEVEL_INTER_RECORD) THEN
1981           -- invoke inter-record level validation procedures
1982           NULL;
1983       END IF;
1984 
1985       IF (p_validation_level >= JTF_PLSQL_API.G_VALID_LEVEL_INTER_ENTITY) THEN
1986           -- invoke inter-entity level validation procedures
1987           NULL;
1988       END IF;
1989 
1990 
1991       -- Debug Message
1992       JTF_PLSQL_API.Debug_Message(FND_MSG_PUB.G_MSG_LVL_DEBUG_LOW, 'CSP', 'Private API: ' || l_api_name || 'end');
1993 
1994 END Validate_orderheaders;
1995 
1996 End CSP_ORDERHEADERS_PVT;