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