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 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;