[Home] [Help]
PACKAGE BODY: APPS.WSH_TRIP_STOPS_PUB
Source
1 PACKAGE BODY WSH_TRIP_STOPS_PUB as
2 /* $Header: WSHSTPBB.pls 120.0.12020000.2 2013/02/12 22:59:56 adagur ship $ */
3
4 --===================
5 -- CONSTANTS
6 --===================
7 G_PKG_NAME CONSTANT VARCHAR2(30) := 'WSH_TRIP_STOPS_PUB';
8 -- add your constants here if any
9
10 --===================
11 -- PROCEDURES
12 --===================
13
14 --========================================================================
15 -- PROCEDURE : Stop_Action PUBLIC
16 --
17 -- PARAMETERS: p_api_version_number known api version error number
18 -- p_init_msg_list FND_API.G_TRUE to reset list
19 -- p_commit To commit the data or not
20 -- x_return_status return status
21 -- x_msg_count number of messages in the list
22 -- x_msg_data text of messages
23 -- p_action_code Stop action code. Valid action codes are
24 -- 'PLAN','UNPLAN',
25 -- 'ARRIVE','CLOSE'
26 -- 'PICK-RELEASE'
27 -- 'DELETE'
28 -- p_stop_id Stop identifier
29 -- p_trip_id Stop identifier - trip id it belongs to
30 -- p_trip_name Stop identifier - trip name it belongs to
31 -- p_stop_location_id Stop identifier - stop location id
32 -- p_stop_location_code Stop identifier - stop location code
33 -- p_planned_dep_date Stop identifier - stop planned dep date
34 -- p_actual_date Actual arrival/departure date of the stop
35 -- VERSION : current version 1.0
36 -- initial version 1.0
37 -- COMMENT : This procedure is used to perform an action specified in p_action_code
38 -- on an existing stop identified by p_stop_id or a unique combination of
39 -- trip_id/trip_name, stop_location_id/stop_location_code or planned_departure_date.
40 --
41 --========================================================================
42
43 PROCEDURE Stop_Action
44 ( p_api_version_number IN NUMBER,
45 p_init_msg_list IN VARCHAR2,
46 p_commit IN VARCHAR2 DEFAULT FND_API.G_TRUE,
47 x_return_status OUT NOCOPY VARCHAR2,
48 x_msg_count OUT NOCOPY NUMBER,
49 x_msg_data OUT NOCOPY VARCHAR2,
50 p_action_code IN VARCHAR2,
51 p_stop_id IN NUMBER DEFAULT NULL,
52 p_trip_id IN NUMBER DEFAULT NULL,
53 p_trip_name IN VARCHAR2 DEFAULT NULL,
54 p_stop_location_id IN NUMBER DEFAULT NULL,
55 p_stop_location_code IN VARCHAR2 DEFAULT NULL,
56 p_planned_dep_date IN DATE DEFAULT NULL,
57 p_actual_date IN DATE DEFAULT NULL,
58 p_defer_interface_flag IN VARCHAR2 DEFAULT 'Y') IS
59
60 l_api_version_number CONSTANT NUMBER := 1.0;
61 l_api_name CONSTANT VARCHAR2(30):= 'Stop_Action';
62 l_entity_id_tab wsh_util_core.id_tab_type;
63 l_action_prms WSH_TRIP_STOPS_GRP.action_parameters_rectype;
64 l_stop_out_rec WSH_TRIP_STOPS_GRP.stopActionOutRecType;
65
66 -- <insert here your local variables declaration>
67 stop_action_error EXCEPTION;
68
69
70
71 l_stop_id NUMBER := p_stop_id;
72 l_trip_id NUMBER := p_trip_id;
73 l_stop_location_id NUMBER := p_stop_location_id;
74 l_return_status VARCHAR2(1);
75 l_num_warning NUMBER;
76 l_num_errors NUMBER;
77
78 l_debug_on BOOLEAN;
79 --
80 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.'
81 || 'STOP_ACTION PUBLIC';
82
83
84 BEGIN
85
86 --
87 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
88 --
89 IF l_debug_on IS NULL
90 THEN
91 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
92 END IF;
93 --
94 IF l_debug_on THEN
95 wsh_debug_sv.push (l_module_name);
96 wsh_debug_sv.log (l_module_name,'p_api_version_number',
97 p_api_version_number);
98 wsh_debug_sv.log (l_module_name,'p_init_msg_list', p_init_msg_list);
99 wsh_debug_sv.log (l_module_name,'p_commit', p_commit);
100 wsh_debug_sv.log (l_module_name,'p_action_code', p_action_code);
101 wsh_debug_sv.log (l_module_name,'p_stop_id', p_stop_id);
102 wsh_debug_sv.log (l_module_name,'p_trip_id', p_trip_id);
103 wsh_debug_sv.log (l_module_name,'p_trip_name', p_trip_name);
104 wsh_debug_sv.log (l_module_name,'p_stop_location_id',
105 p_stop_location_id);
106 wsh_debug_sv.log (l_module_name,'p_stop_location_code',
107 p_stop_location_code);
108 wsh_debug_sv.log (l_module_name,'p_planned_dep_date',
109 p_planned_dep_date);
110 wsh_debug_sv.log (l_module_name,'p_actual_date', p_actual_date);
111 wsh_debug_sv.log (l_module_name,'p_defer_interface_flag',
112 p_defer_interface_flag);
113 END IF;
114
115 -- Standard call to check for call compatibility
116 IF NOT FND_API.Compatible_API_Call
117 ( l_api_version_number
118 , p_api_version_number
119 , l_api_name
120 , G_PKG_NAME
121 )
122 THEN
123 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
124 END IF;
125
126 -- Initialize message stack if required
127 IF FND_API.to_Boolean(p_init_msg_list) THEN
128 FND_MSG_PUB.initialize;
129 END IF;
130
131
132 wsh_util_validate.validate_trip_name( l_trip_id,
133 p_trip_name,
134 l_return_status);
135
136 wsh_util_core.api_post_call(p_return_status =>l_return_status,
137 x_num_warnings =>l_num_warning,
138 x_num_errors =>l_num_errors);
139
140 IF ((l_stop_location_id IS NOT NULL)
141 AND (l_stop_location_id <> FND_API.G_MISS_NUM))
142 OR ((p_stop_location_code IS NOT NULL)
143 AND (p_stop_location_code <> FND_API.G_MISS_CHAR)) THEN
144
145 wsh_util_validate.validate_location( l_stop_location_id,
146 p_stop_location_code,
147 l_return_status);
148
149 wsh_util_core.api_post_call(p_return_status =>l_return_status,
150 x_num_warnings =>l_num_warning,
151 x_num_errors =>l_num_errors);
152
153 END IF;
154 wsh_util_validate.validate_stop_name( l_stop_id,
155 l_trip_id,
156 l_stop_location_id,
157 p_planned_dep_date,
158 l_return_status);
159
160 wsh_util_core.api_post_call(p_return_status =>l_return_status,
161 x_num_warnings =>l_num_warning,
162 x_num_errors =>l_num_errors);
163
164 IF (l_stop_id IS NULL) THEN
165 RAISE FND_API.G_EXC_ERROR;
166 END IF;
167
168 l_action_prms.caller := 'WSH_PUB';
169 IF UPPER(p_action_code) IN ('CLOSE','ARRIVE') THEN
170 l_action_prms.action_code := 'UPDATE-STATUS';
171 l_action_prms.stop_action := p_action_code;
172 ELSE
173 l_action_prms.action_code := p_action_code;
174 END IF;
175 l_action_prms.actual_date := p_actual_date;
176 l_action_prms.defer_interface_flag := p_defer_interface_flag;
177 l_entity_id_tab(1) := l_stop_id;
178
179 WSH_INTERFACE_GRP.Stop_Action (
180 p_api_version_number => 1.0,
181 p_init_msg_list => FND_API.G_FALSE,
182 p_commit => FND_API.G_FALSE,
183 p_entity_id_tab => l_entity_id_tab,
184 p_action_prms => l_action_prms,
185 x_stop_out_rec => l_stop_out_rec,
186 x_return_status => x_return_status,
187 x_msg_count => x_msg_count,
188 x_msg_data => x_msg_data);
189
190 IF FND_API.TO_BOOLEAN(p_commit)
191 THEN
192 IF l_debug_on
193 THEN
194 wsh_debug_sv.log (l_module_name,'Committing Transaction');
195 END IF;
196 COMMIT;
197 END IF;
198
199 FND_MSG_PUB.Count_And_Get
200 ( p_count => x_msg_count
201 , p_data => x_msg_data
202 , p_encoded => FND_API.G_FALSE
203 );
204
205 IF l_debug_on THEN
206 WSH_DEBUG_SV.pop(l_module_name);
207 END IF;
208
209 EXCEPTION
210
211 WHEN FND_API.G_EXC_ERROR THEN
212 x_return_status := FND_API.G_RET_STS_ERROR;
213 FND_MESSAGE.SET_NAME('WSH','WSH_OI_STOP_ACTION_ERROR');
214 FND_MESSAGE.SET_TOKEN('STOP_NAME', wsh_trip_stops_pvt.get_name(l_stop_id));
215 FND_MESSAGE.SET_TOKEN('ACTION', wsh_util_core.get_action_meaning('STOP',p_action_code));
216 wsh_util_core.add_message(x_return_status,l_module_name);
217
218 IF l_debug_on THEN
219 wsh_debug_sv.log (l_module_name,'EXCEPTION:G_EXC_ERROR');
220 WSH_DEBUG_SV.pop(l_module_name);
221 END IF;
222
223
224 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
225 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
226 FND_MESSAGE.SET_NAME('WSH','WSH_OI_STOP_ACTION_ERROR');
227 FND_MESSAGE.SET_TOKEN('STOP_NAME', wsh_trip_stops_pvt.get_name(l_stop_id));
228 FND_MESSAGE.SET_TOKEN('ACTION', wsh_util_core.get_action_meaning('STOP',p_action_code));
229 wsh_util_core.add_message(x_return_status,l_module_name);
230 -- Get message count and data
231 FND_MSG_PUB.Count_And_Get
232 ( p_count => x_msg_count
233 , p_data => x_msg_data
234 , p_encoded => FND_API.G_FALSE
235 );
236 IF l_debug_on THEN
237 wsh_debug_sv.log (l_module_name,'EXCEPTION:G_EXC_UNEXPECTED_ERROR');
238 WSH_DEBUG_SV.pop(l_module_name);
239 END IF;
240
241 WHEN OTHERS THEN
242 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
243 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
244 THEN
245 FND_MSG_PUB.Add_Exc_Msg
246 ( G_PKG_NAME
247 , '_x_'
248 );
249 END IF;
250 -- Get message count and data
251 FND_MSG_PUB.Count_And_Get
252 ( p_count => x_msg_count
253 , p_data => x_msg_data
254 , p_encoded => FND_API.G_FALSE
255 );
256
257 IF l_debug_on THEN
258 wsh_debug_sv.log (l_module_name,'Error',substr(sqlerrm,1,200));
259 WSH_DEBUG_SV.pop(l_module_name);
260 END IF;
261 END Stop_Action;
262
263 --Harmonizing Project **heali
264 PROCEDURE map_stoppub_to_pvt(
265 p_pub_stop_rec IN WSH_TRIP_STOPS_PUB.TRIP_STOP_PUB_REC_TYPE,
266 x_pvt_stop_rec OUT NOCOPY WSH_TRIP_STOPS_PVT.TRIP_STOP_REC_TYPE,
267 x_return_status OUT NOCOPY VARCHAR2) IS
268
269 l_debug_on BOOLEAN;
270 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'MAP_STOPPUB_TO_PVT';
271 BEGIN
272 --
273 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
274 --
275 IF l_debug_on IS NULL
276 THEN
277 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
278 END IF;
279 --
280 IF l_debug_on THEN
281 WSH_DEBUG_SV.push(l_module_name);
282 WSH_DEBUG_SV.log(l_module_name,'p_pub_stop_rec.STOP_ID',p_pub_stop_rec.STOP_ID);
283 WSH_DEBUG_SV.log(l_module_name,'p_pub_stop_rec.TRIP_ID',p_pub_stop_rec.TRIP_ID);
284 WSH_DEBUG_SV.log(l_module_name,'p_pub_stop_rec.TRIP_NAME',p_pub_stop_rec.TRIP_NAME);
285 END IF;
286
287 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
288
289 x_pvt_stop_rec.STOP_ID := p_pub_stop_rec.STOP_ID;
290 x_pvt_stop_rec.TRIP_ID := p_pub_stop_rec.TRIP_ID;
291 x_pvt_stop_rec.STOP_LOCATION_ID := p_pub_stop_rec.STOP_LOCATION_ID;
292 x_pvt_stop_rec.STATUS_CODE := FND_API.G_MISS_CHAR;
293 x_pvt_stop_rec.STOP_SEQUENCE_NUMBER := p_pub_stop_rec.STOP_SEQUENCE_NUMBER;
294 x_pvt_stop_rec.PLANNED_ARRIVAL_DATE := p_pub_stop_rec.PLANNED_ARRIVAL_DATE;
295 x_pvt_stop_rec.PLANNED_DEPARTURE_DATE := p_pub_stop_rec.PLANNED_DEPARTURE_DATE;
296 x_pvt_stop_rec.ACTUAL_ARRIVAL_DATE := p_pub_stop_rec.ACTUAL_ARRIVAL_DATE;
297 x_pvt_stop_rec.ACTUAL_DEPARTURE_DATE := p_pub_stop_rec.ACTUAL_DEPARTURE_DATE;
298 x_pvt_stop_rec.DEPARTURE_GROSS_WEIGHT := p_pub_stop_rec.DEPARTURE_GROSS_WEIGHT;
299 x_pvt_stop_rec.DEPARTURE_NET_WEIGHT := p_pub_stop_rec.DEPARTURE_NET_WEIGHT;
300 x_pvt_stop_rec.WEIGHT_UOM_CODE := p_pub_stop_rec.WEIGHT_UOM_CODE;
301 x_pvt_stop_rec.DEPARTURE_VOLUME := p_pub_stop_rec.DEPARTURE_VOLUME;
302 x_pvt_stop_rec.VOLUME_UOM_CODE := p_pub_stop_rec.VOLUME_UOM_CODE;
303 x_pvt_stop_rec.DEPARTURE_SEAL_CODE := p_pub_stop_rec.DEPARTURE_SEAL_CODE;
304 x_pvt_stop_rec.DEPARTURE_FILL_PERCENT := p_pub_stop_rec.DEPARTURE_FILL_PERCENT;
305 x_pvt_stop_rec.TP_ATTRIBUTE_CATEGORY := p_pub_stop_rec.TP_ATTRIBUTE_CATEGORY;
306 x_pvt_stop_rec.TP_ATTRIBUTE1 := p_pub_stop_rec.TP_ATTRIBUTE1;
307 x_pvt_stop_rec.TP_ATTRIBUTE2 := p_pub_stop_rec.TP_ATTRIBUTE2;
308 x_pvt_stop_rec.TP_ATTRIBUTE3 := p_pub_stop_rec.TP_ATTRIBUTE3;
309 x_pvt_stop_rec.TP_ATTRIBUTE4 := p_pub_stop_rec.TP_ATTRIBUTE4;
310 x_pvt_stop_rec.TP_ATTRIBUTE5 := p_pub_stop_rec.TP_ATTRIBUTE5;
311 x_pvt_stop_rec.TP_ATTRIBUTE6 := p_pub_stop_rec.TP_ATTRIBUTE6;
312 x_pvt_stop_rec.TP_ATTRIBUTE7 := p_pub_stop_rec.TP_ATTRIBUTE7;
313 x_pvt_stop_rec.TP_ATTRIBUTE8 := p_pub_stop_rec.TP_ATTRIBUTE8;
314 x_pvt_stop_rec.TP_ATTRIBUTE9 := p_pub_stop_rec.TP_ATTRIBUTE9;
315 x_pvt_stop_rec.TP_ATTRIBUTE10 := p_pub_stop_rec.TP_ATTRIBUTE10;
316 x_pvt_stop_rec.TP_ATTRIBUTE11 := p_pub_stop_rec.TP_ATTRIBUTE11;
317 x_pvt_stop_rec.TP_ATTRIBUTE12 := p_pub_stop_rec.TP_ATTRIBUTE12;
318 x_pvt_stop_rec.TP_ATTRIBUTE13 := p_pub_stop_rec.TP_ATTRIBUTE13;
319 x_pvt_stop_rec.TP_ATTRIBUTE14 := p_pub_stop_rec.TP_ATTRIBUTE14;
320 x_pvt_stop_rec.TP_ATTRIBUTE15 := p_pub_stop_rec.TP_ATTRIBUTE15;
321 x_pvt_stop_rec.ATTRIBUTE_CATEGORY := p_pub_stop_rec.ATTRIBUTE_CATEGORY;
322 x_pvt_stop_rec.ATTRIBUTE1 := p_pub_stop_rec.ATTRIBUTE1;
323 x_pvt_stop_rec.ATTRIBUTE2 := p_pub_stop_rec.ATTRIBUTE2;
324 x_pvt_stop_rec.ATTRIBUTE3 := p_pub_stop_rec.ATTRIBUTE3;
325 x_pvt_stop_rec.ATTRIBUTE4 := p_pub_stop_rec.ATTRIBUTE4;
326 x_pvt_stop_rec.ATTRIBUTE5 := p_pub_stop_rec.ATTRIBUTE5;
327 x_pvt_stop_rec.ATTRIBUTE6 := p_pub_stop_rec.ATTRIBUTE6;
328 x_pvt_stop_rec.ATTRIBUTE7 := p_pub_stop_rec.ATTRIBUTE7;
329 x_pvt_stop_rec.ATTRIBUTE8 := p_pub_stop_rec.ATTRIBUTE8;
330 x_pvt_stop_rec.ATTRIBUTE9 := p_pub_stop_rec.ATTRIBUTE9;
331 x_pvt_stop_rec.ATTRIBUTE10 := p_pub_stop_rec.ATTRIBUTE10;
332 x_pvt_stop_rec.ATTRIBUTE11 := p_pub_stop_rec.ATTRIBUTE11;
333 x_pvt_stop_rec.ATTRIBUTE12 := p_pub_stop_rec.ATTRIBUTE12;
334 x_pvt_stop_rec.ATTRIBUTE13 := p_pub_stop_rec.ATTRIBUTE13;
335 x_pvt_stop_rec.ATTRIBUTE14 := p_pub_stop_rec.ATTRIBUTE14;
336 x_pvt_stop_rec.ATTRIBUTE15 := p_pub_stop_rec.ATTRIBUTE15;
337 x_pvt_stop_rec.CREATION_DATE := p_pub_stop_rec.CREATION_DATE;
338 x_pvt_stop_rec.CREATED_BY := p_pub_stop_rec.CREATED_BY;
339 x_pvt_stop_rec.LAST_UPDATE_DATE := p_pub_stop_rec.LAST_UPDATE_DATE;
340 x_pvt_stop_rec.LAST_UPDATED_BY := p_pub_stop_rec.LAST_UPDATED_BY;
341 x_pvt_stop_rec.LAST_UPDATE_LOGIN := p_pub_stop_rec.LAST_UPDATE_LOGIN;
342 x_pvt_stop_rec.PROGRAM_APPLICATION_ID := p_pub_stop_rec.PROGRAM_APPLICATION_ID;
343 x_pvt_stop_rec.PROGRAM_ID := p_pub_stop_rec.PROGRAM_ID;
344 x_pvt_stop_rec.PROGRAM_UPDATE_DATE := p_pub_stop_rec.PROGRAM_UPDATE_DATE;
345 x_pvt_stop_rec.REQUEST_ID := p_pub_stop_rec.REQUEST_ID;
346 x_pvt_stop_rec.WSH_LOCATION_ID := FND_API.G_MISS_NUM;
347 x_pvt_stop_rec.TRACKING_DRILLDOWN_FLAG := FND_API.G_MISS_CHAR;
348 x_pvt_stop_rec.TRACKING_REMARKS := FND_API.G_MISS_CHAR;
349 x_pvt_stop_rec.CARRIER_EST_DEPARTURE_DATE := FND_API.G_MISS_DATE;
350 x_pvt_stop_rec.CARRIER_EST_ARRIVAL_DATE := FND_API.G_MISS_DATE;
351 x_pvt_stop_rec.LOADING_START_DATETIME := FND_API.G_MISS_DATE;
352 x_pvt_stop_rec.LOADING_END_DATETIME := FND_API.G_MISS_DATE;
353 x_pvt_stop_rec.UNLOADING_START_DATETIME := FND_API.G_MISS_DATE;
354 x_pvt_stop_rec.UNLOADING_END_DATETIME := FND_API.G_MISS_DATE;
355
356 --x_pvt_stop_rec.ROWID := FND_API.G_MISS_CHAR;
357 x_pvt_stop_rec.TRIP_NAME := p_pub_stop_rec.TRIP_NAME;
358 x_pvt_stop_rec.STOP_LOCATION_CODE := p_pub_stop_rec.STOP_LOCATION_CODE;
359 x_pvt_stop_rec.WEIGHT_UOM_DESC := p_pub_stop_rec.WEIGHT_UOM_DESC;
360 x_pvt_stop_rec.VOLUME_UOM_DESC := p_pub_stop_rec.VOLUME_UOM_DESC;
361 x_pvt_stop_rec.LOCK_STOP_ID := FND_API.G_MISS_NUM;
362 x_pvt_stop_rec.PENDING_INTERFACE_FLAG := FND_API.G_MISS_CHAR;
363 x_pvt_stop_rec.TRANSACTION_HEADER_ID := FND_API.G_MISS_NUM;
364
365 -- csun 10+ internal location change
366 x_pvt_stop_rec.PHYSICAL_STOP_ID := p_pub_stop_rec.PHYSICAL_STOP_ID;
367 x_pvt_stop_rec.PHYSICAL_LOCATION_ID := p_pub_stop_rec.PHYSICAL_LOCATION_ID;
368
369 IF l_debug_on THEN
370 WSH_DEBUG_SV.pop(l_module_name);
371 END IF;
372 EXCEPTION
373 WHEN OTHERS THEN
374 WSH_UTIL_CORE.DEFAULT_HANDLER('WSH_FTE_INTEGRATION.map_stoppub_to_grp',l_module_name);
375 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
376 --
377 IF l_debug_on THEN
378 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '||
379 SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
380 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
381 END IF;
382 --
383 END;
384
385
386 --========================================================================
387 -- PROCEDURE : Create_Update_Stop PUBLIC
388 --
389 -- PARAMETERS: p_api_version_number known api versionerror buffer
390 -- p_init_msg_list FND_API.G_TRUE to reset list
391 -- x_return_status return status
392 -- x_msg_count number of messages in the list
393 -- x_msg_data text of messages
394 -- p_stop_info Attributes for the stop entity
395 -- p_trip_id Trip id for update
396 -- p_trip_name Trip name for update
397 -- p_stop_location_id Stop location id for update
398 -- p_stop_location_code Stop location code for update
399 -- p_planned_dep_date Planned departure date for update
400 -- x_stop_id - stop id of new stop
401 -- VERSION : current version 1.0
402 -- initial version 1.0
403 -- COMMENT : Creates or updates a record in wsh_trip_stops table with information
404 -- specified in p_stop_info. Use p_trip_id, p_trip_name, p_stop_location_id,
405 -- p_stop_location_code or p_planned_dep_date to update these values
406 -- on an existing stop.
407 --========================================================================
408 PROCEDURE Create_Update_Stop
409 ( p_api_version_number IN NUMBER,
410 p_init_msg_list IN VARCHAR2,
411 x_return_status OUT NOCOPY VARCHAR2,
412 x_msg_count OUT NOCOPY NUMBER,
413 x_msg_data OUT NOCOPY VARCHAR2,
414 p_action_code IN VARCHAR2,
415 p_stop_info IN OUT NOCOPY Trip_Stop_Pub_Rec_Type,
416 p_trip_id IN NUMBER DEFAULT FND_API.G_MISS_NUM,
417 p_trip_name IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
418 p_stop_location_id IN NUMBER DEFAULT FND_API.G_MISS_NUM,
419 p_stop_location_code IN VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
420 p_planned_dep_date IN DATE DEFAULT FND_API.G_MISS_DATE,
421 x_stop_id OUT NOCOPY NUMBER) IS
422
423 l_debug_on BOOLEAN;
424 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'Create_Update_Stop';
425
426 l_api_version_number CONSTANT NUMBER := 1.0;
427 l_api_name CONSTANT VARCHAR2(30):= 'Create_Update_Stop';
428
429 l_pvt_stop_rec WSH_TRIP_STOPS_PVT.TRIP_STOP_REC_TYPE;
430
431 l_in_rec WSH_TRIP_STOPS_GRP.stopInRecType;
432 l_rec_attr_tab WSH_TRIP_STOPS_PVT.Stop_Attr_Tbl_Type;
433 l_stop_out_tab WSH_TRIP_STOPS_GRP.stop_out_tab_type;
434
435 l_commit VARCHAR2(1):='F';
436 BEGIN
437 --
438 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
439 --
440 IF l_debug_on IS NULL
441 THEN
442 l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
443 END IF;
444 --
445 IF l_debug_on THEN
446 wsh_debug_sv.push (l_module_name, 'Create_Update_Stop');
447 END IF;
448
449 IF NOT FND_API.Compatible_API_Call (l_api_version_number,p_api_version_number ,l_api_name ,G_PKG_NAME) THEN
450 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
451 END IF;
452
453 IF FND_API.to_Boolean(p_init_msg_list) THEN
454 FND_MSG_PUB.initialize;
455 END IF;
456
457 map_stoppub_to_pvt (
458 p_pub_stop_rec => p_stop_info,
459 x_pvt_stop_rec => l_pvt_stop_rec,
460 x_return_status => x_return_status);
461 IF l_debug_on THEN
462 wsh_debug_sv.log (l_module_name, 'map_stoppub_to_pvt x_return_status',x_return_status);
463 END IF;
464 IF ( x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS ) THEN
465 raise FND_API.G_EXC_ERROR;
466 END IF;
467
468 IF (p_trip_id IS NOT NULL) AND (p_trip_id <> FND_API.G_MISS_NUM) THEN
469 l_pvt_stop_rec.trip_id := p_trip_id;
470 END IF;
471
472 IF (p_trip_name IS NOT NULL) AND (p_trip_name <> FND_API.G_MISS_CHAR) THEN
473 l_pvt_stop_rec.trip_name := p_trip_name;
474 END IF;
475
476 IF (p_stop_location_id IS NOT NULL) AND (p_stop_location_id <> FND_API.G_MISS_NUM) THEN
477 l_pvt_stop_rec.stop_location_id := p_stop_location_id;
478 END IF;
479
480 IF (p_stop_location_code IS NOT NULL) AND (p_stop_location_code <> FND_API.G_MISS_CHAR) THEN
481 l_pvt_stop_rec.stop_location_code := p_stop_location_code;
482 END IF;
483
484 IF (p_planned_dep_date IS NOT NULL) AND (p_planned_dep_date <> FND_API.G_MISS_DATE)THEN
485 l_pvt_stop_rec.planned_departure_date := p_planned_dep_date;
486 END IF;
487
488 -- bug 3666967 - treating non-passed parameters as FND_API.G_MISS_NUM
489 IF (p_action_code = 'CREATE') THEN
490 IF (l_pvt_stop_rec.departure_gross_weight = FND_API.G_MISS_NUM AND
491 l_pvt_stop_rec.departure_net_weight = FND_API.G_MISS_NUM AND
492 l_pvt_stop_rec.departure_volume = FND_API.G_MISS_NUM AND
493 l_pvt_stop_rec.departure_fill_percent = FND_API.G_MISS_NUM) THEN
494 l_pvt_stop_rec.wv_frozen_flag := 'N';
495 ELSE
496 l_pvt_stop_rec.wv_frozen_flag := 'Y';
497 END IF;
498 END IF;
499 -- end bug 3666967
500
501 l_in_rec.caller :='WSH_PUB';
502 l_in_rec.phase := 1;
503 l_in_rec.action_code := p_action_code;
504
505 l_rec_attr_tab(1):= l_pvt_stop_rec;
506
507 WSH_INTERFACE_GRP.CREATE_UPDATE_STOP(
508 p_api_version_number => p_api_version_number,
509 p_init_msg_list => p_init_msg_list,
510 p_commit => l_commit,
511 p_in_rec => l_in_rec,
512 p_rec_attr_tab => l_rec_attr_tab,
513 x_stop_out_tab => l_stop_out_tab,
514 x_return_status => x_return_status,
515 x_msg_count => x_msg_count,
516 x_msg_data => x_msg_data);
517
518 IF l_debug_on THEN
519 WSH_DEBUG_SV.log(l_module_name,'WSH_INTERFACE_GRP.CREATE_UPDATE_STOP x_return_status',x_return_status);
520 END IF;
521
522 IF ( x_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS AND l_stop_out_tab.count > 0) THEN
523 x_stop_id := l_stop_out_tab(l_stop_out_tab.FIRST).stop_id;
524 END IF;
525
526
527 FND_MSG_PUB.Count_And_Get (
528 p_count => x_msg_count,
529 p_data => x_msg_data);
530
531 IF l_debug_on THEN
532 WSH_DEBUG_SV.pop(l_module_name);
533 END IF;
534
535 EXCEPTION
536 WHEN FND_API.G_EXC_ERROR THEN
537 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR ;
538 FND_MSG_PUB.Count_And_Get (
539 p_count => x_msg_count,
540 p_data => x_msg_data,
541 p_encoded => FND_API.G_FALSE);
542 IF l_debug_on THEN
543 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_ERROR exception has occured.',
544 WSH_DEBUG_SV.C_EXCEP_LEVEL);
545 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
546 END IF;
547
548 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
549 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR ;
550 FND_MSG_PUB.Count_And_Get (
551 p_count => x_msg_count,
552 p_data => x_msg_data,
553 p_encoded => FND_API.G_FALSE);
554 IF l_debug_on THEN
555 WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_UNEXPECTED_ERROR exception has occured.',
556 WSH_DEBUG_SV.C_EXCEP_LEVEL);
557 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_UNEXPECTED_ERROR');
558 END IF;
559
560 WHEN WSH_UTIL_CORE.G_EXC_WARNING THEN
561 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
562 FND_MSG_PUB.Count_And_Get (
563 p_count => x_msg_count,
564 p_data => x_msg_data,
565 p_encoded => FND_API.G_FALSE);
566 IF l_debug_on THEN
567 WSH_DEBUG_SV.logmsg(l_module_name,'WSH_UTIL_CORE.G_EXC_WARNING exception has occured.',
568 WSH_DEBUG_SV.C_EXCEP_LEVEL);
569 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:WSH_UTIL_CORE.G_EXC_WARNING');
570 END IF;
571
572 WHEN OTHERS THEN
573 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR ;
574 wsh_util_core.default_handler ('WSH_TRIP_STOPS_GRP.CREATE_UPDATE_STOP');
575 FND_MSG_PUB.Count_And_Get (
576 p_count => x_msg_count,
577 p_data => x_msg_data,
578 p_encoded => FND_API.G_FALSE);
579 IF l_debug_on THEN
580 WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '||
581 SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
582 WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
583 END IF;
584
585 END Create_Update_Stop;
586
587 --Harmonizing Project **heali
588
589 END WSH_TRIP_STOPS_PUB;