DBA Data[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;