DBA Data[Home] [Help]

PACKAGE BODY: APPS.FTE_MLS_WRAPPER

Source


1 PACKAGE BODY FTE_MLS_WRAPPER as
2 /* $Header: FTEMLWRB.pls 120.25 2006/06/09 14:43:28 nltan noship $ */
3 
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'FTE_MLS_WRAPPER';
5 
6 --------------
7 --No wrapper needed for delete delivery
8 -------------
9 --========================================================================
10 -- PROCEDURE : Create_Update_Stop         FTE wrapper
11 --
12 -- COMMENT   : Wrapper around WSH_TRIP_STOPS_GRP.Create_Update
13 --             Passes in all the parameters reqd (record type input changed to
14 --             number of parameters which are collected, assigned to a record
15 --             and call WSH_TRIP_STOPS_GRP.Create_Update
16 --========================================================================
17 
18   PROCEDURE Create_Update_Stop
19   (
20   	p_api_version_number     IN   NUMBER,
21 	p_init_msg_list          IN   VARCHAR2,
22 	x_return_status          OUT NOCOPY   VARCHAR2,
23 	x_msg_count              OUT NOCOPY   NUMBER,
24 	x_msg_data               OUT NOCOPY   VARCHAR2,
25 	p_action_code            IN   VARCHAR2,
26 	p_trip_id                IN   NUMBER DEFAULT FND_API.G_MISS_NUM,
27 	p_trip_name              IN   VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
28 	p_stop_location_id       IN   NUMBER DEFAULT FND_API.G_MISS_NUM,
29 	p_stop_location_code     IN   VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
30 	p_planned_dep_date       IN   DATE DEFAULT FND_API.G_MISS_DATE,
31 	x_stop_id                OUT NOCOPY   NUMBER,
32 	pp_STOP_ID                   IN        NUMBER DEFAULT FND_API.G_MISS_NUM  ,
33 	pp_TRIP_ID                   IN        NUMBER DEFAULT FND_API.G_MISS_NUM  ,
34 	pp_TRIP_NAME                 IN        VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
35 	pp_STOP_LOCATION_ID          IN        NUMBER DEFAULT FND_API.G_MISS_NUM  ,
36 	pp_STOP_LOCATION_CODE        IN        VARCHAR2   DEFAULT FND_API.G_MISS_CHAR,
37 	pp_PLANNED_ARRIVAL_DATE      IN        DATE DEFAULT FND_API.G_MISS_DATE,
38 	pp_PLANNED_DEPARTURE_DATE    IN        DATE DEFAULT FND_API.G_MISS_DATE,
39 	pp_ACTUAL_ARRIVAL_DATE       IN        DATE DEFAULT FND_API.G_MISS_DATE,
40 	pp_ACTUAL_DEPARTURE_DATE     IN        DATE DEFAULT FND_API.G_MISS_DATE,
41 	pp_DEPARTURE_GROSS_WEIGHT    IN        NUMBER DEFAULT FND_API.G_MISS_NUM  ,
42 	pp_DEPARTURE_NET_WEIGHT      IN        NUMBER DEFAULT FND_API.G_MISS_NUM  ,
43 	pp_WEIGHT_UOM_CODE           IN        VARCHAR2   DEFAULT FND_API.G_MISS_CHAR,
44 	pp_WEIGHT_UOM_DESC           IN        VARCHAR2   DEFAULT FND_API.G_MISS_CHAR,
45 	pp_DEPARTURE_VOLUME          IN        NUMBER DEFAULT FND_API.G_MISS_NUM  ,
46 	pp_VOLUME_UOM_CODE           IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
47 	pp_VOLUME_UOM_DESC           IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
48 	pp_DEPARTURE_SEAL_CODE       IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
49 	pp_DEPARTURE_FILL_PERCENT    IN       NUMBER DEFAULT FND_API.G_MISS_NUM  ,
50 	pp_STOP_SEQUENCE_NUMBER      IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
51 	pp_LOCK_STOP_ID              IN      NUMBER DEFAULT FND_API.G_MISS_NUM,
52 	pp_STATUS_CODE               IN      VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
53 	pp_PENDING_INTERFACE_FLAG    IN      VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
54 	pp_TRANSACTION_HEADER_ID     IN      NUMBER DEFAULT FND_API.G_MISS_NUM,
55 	pp_WSH_LOCATION_ID           IN      NUMBER DEFAULT FND_API.G_MISS_NUM,
56 	pp_TRACKING_DRILLDOWN_FLAG   IN      VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
57 	pp_TRACKING_REMARKS          IN      VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
58 	pp_CARRIER_EST_DEPARTURE_DATE IN     DATE DEFAULT FND_API.G_MISS_DATE,
59 	pp_CARRIER_EST_ARRIVAL_DATE   IN     DATE DEFAULT FND_API.G_MISS_DATE,
60 	pp_LOADING_START_DATETIME     IN     DATE DEFAULT FND_API.G_MISS_DATE,
61 	pp_LOADING_END_DATETIME       IN     DATE DEFAULT FND_API.G_MISS_DATE,
62 	pp_UNLOADING_START_DATETIME   IN     DATE DEFAULT FND_API.G_MISS_DATE,
63 	pp_UNLOADING_END_DATETIME     IN     DATE DEFAULT FND_API.G_MISS_DATE,
64 	pp_TP_ATTRIBUTE_CATEGORY     IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
65 	pp_TP_ATTRIBUTE1             IN       VARCHAR2   DEFAULT FND_API.G_MISS_CHAR,
66 	pp_TP_ATTRIBUTE2             IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
67 	pp_TP_ATTRIBUTE3             IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
68 	pp_TP_ATTRIBUTE4             IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
69 	pp_TP_ATTRIBUTE5             IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
70 	pp_TP_ATTRIBUTE6             IN      VARCHAR2   DEFAULT FND_API.G_MISS_CHAR,
71 	pp_TP_ATTRIBUTE7             IN       VARCHAR2   DEFAULT FND_API.G_MISS_CHAR,
72 	pp_TP_ATTRIBUTE8             IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
73 	pp_TP_ATTRIBUTE9             IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
74 	pp_TP_ATTRIBUTE10            IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
75 	pp_TP_ATTRIBUTE11            IN       VARCHAR2   DEFAULT FND_API.G_MISS_CHAR,
76 	pp_TP_ATTRIBUTE12            IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
77 	pp_TP_ATTRIBUTE13            IN       VARCHAR2   DEFAULT FND_API.G_MISS_CHAR,
78 	pp_TP_ATTRIBUTE14            IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
79 	pp_TP_ATTRIBUTE15            IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
80 	pp_ATTRIBUTE_CATEGORY        IN       VARCHAR2   DEFAULT FND_API.G_MISS_CHAR,
81 	pp_ATTRIBUTE1                IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
82 	pp_ATTRIBUTE2                IN       VARCHAR2   DEFAULT FND_API.G_MISS_CHAR,
83 	pp_ATTRIBUTE3                IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
84 	pp_ATTRIBUTE4                IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
85 	pp_ATTRIBUTE5                IN       VARCHAR2   DEFAULT FND_API.G_MISS_CHAR,
86 	pp_ATTRIBUTE6                IN       VARCHAR2   DEFAULT FND_API.G_MISS_CHAR,
87 	pp_ATTRIBUTE7                IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
88 	pp_ATTRIBUTE8                IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
89 	pp_ATTRIBUTE9                IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
90 	pp_ATTRIBUTE10               IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
91 	pp_ATTRIBUTE11               IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
92 	pp_ATTRIBUTE12               IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
93 	pp_ATTRIBUTE13               IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
94 	pp_ATTRIBUTE14               IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR ,
95 	pp_ATTRIBUTE15               IN       VARCHAR2   DEFAULT FND_API.G_MISS_CHAR,
96 	pp_CREATION_DATE             IN       DATE DEFAULT FND_API.G_MISS_DATE,
97 	pp_CREATED_BY                IN       NUMBER DEFAULT FND_API.G_MISS_NUM  ,
98 	pp_LAST_UPDATE_DATE          IN       DATE DEFAULT FND_API.G_MISS_DATE,
99 	pp_LAST_UPDATED_BY           IN       NUMBER DEFAULT FND_API.G_MISS_NUM  ,
100 	pp_LAST_UPDATE_LOGIN         IN       NUMBER DEFAULT FND_API.G_MISS_NUM  ,
101 	pp_PROGRAM_APPLICATION_ID    IN       NUMBER DEFAULT FND_API.G_MISS_NUM  ,
102 	pp_PROGRAM_ID                IN       NUMBER DEFAULT FND_API.G_MISS_NUM  ,
103 	pp_PROGRAM_UPDATE_DATE       IN       DATE DEFAULT FND_API.G_MISS_DATE,
104 	pp_REQUEST_ID                IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
105 	p_new_stop_sequence	     IN	      NUMBER DEFAULT FND_API.G_MISS_NUM,
106  	p_is_temp		     IN	      VARCHAR2	DEFAULT 'N',
107  	p_wkend_layover_stops	     IN	      NUMBER DEFAULT FND_API.G_MISS_NUM,
108  	p_wkday_layover_stops	     IN	      NUMBER DEFAULT FND_API.G_MISS_NUM,
109 	p_shipments_type_flag	     IN	      VARCHAR2 DEFAULT FND_API.G_MISS_CHAR
110 
111   ) IS
112 
113   -- <insert here your local variables declaration>
114   p_stop_info 	WSH_TRIP_STOPS_PVT.Trip_Stop_Rec_Type;
115   p_in_rec	WSH_TRIP_STOPS_GRP.stopInRecType;
116   l_stop_out_tab	WSH_TRIP_STOPS_GRP.stop_out_tab_type;
117   l_rec_attr_tab	WSH_TRIP_STOPS_PVT.Stop_Attr_Tbl_Type;
118 
119   l_stop_seq_rec	FTE_MLS_WRAPPER.stop_seq_rec;
120   p_commit	VARCHAR2(1);
121   l_stop_seq 	NUMBER;
122   l_count	NUMBER;
123 
124 
125 --
126 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
127 --
128 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'CREATE_UPDATE_STOP';
129 
130 
131   BEGIN
132 	SAVEPOINT	CREATE_UPDATE_STOP_PUB;
133 
134 	-- Initialize message list if p_init_msg_list is set to TRUE.
135 	--
136 	--
137 	IF FND_API.to_Boolean( p_init_msg_list )
138 	THEN
139 		FND_MSG_PUB.initialize;
140 	END IF;
141 	--
142 	--
143 	--  Initialize API return status to success
144 	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
145 	x_msg_count		:= 0;
146 	x_msg_data		:= 0;
147 
148         IF l_debug_on THEN
149  	      wsh_debug_sv.push(l_module_name);
150         END IF;
151 
152 	--create trip stop record
153 	p_stop_info.STOP_ID:=pp_STOP_ID;
154  	p_stop_info.TRIP_ID  := pp_TRIP_ID ;
155  	p_stop_info.STOP_LOCATION_ID:=  pp_STOP_LOCATION_ID ;
156 	p_stop_info.STOP_LOCATION_CODE:=pp_STOP_LOCATION_CODE;
157  	p_stop_info.PLANNED_ARRIVAL_DATE :=pp_PLANNED_ARRIVAL_DATE ;
158  	p_stop_info.PLANNED_DEPARTURE_DATE:=pp_PLANNED_DEPARTURE_DATE ;
159  	p_stop_info.ACTUAL_ARRIVAL_DATE  := pp_ACTUAL_ARRIVAL_DATE ;
160  	p_stop_info.ACTUAL_DEPARTURE_DATE:= pp_ACTUAL_DEPARTURE_DATE ;
161  	p_stop_info.DEPARTURE_GROSS_WEIGHT:=pp_DEPARTURE_GROSS_WEIGHT ;
162  	p_stop_info.DEPARTURE_NET_WEIGHT := pp_DEPARTURE_NET_WEIGHT ;
163  	p_stop_info.WEIGHT_UOM_CODE    := pp_WEIGHT_UOM_CODE   ;
164 	p_stop_info.WEIGHT_UOM_DESC    :=pp_WEIGHT_UOM_DESC;
165  	p_stop_info.DEPARTURE_VOLUME   := pp_DEPARTURE_VOLUME  ;
166  	p_stop_info.VOLUME_UOM_CODE    :=  pp_VOLUME_UOM_CODE ;
167   	p_stop_info.VOLUME_UOM_DESC    :=pp_VOLUME_UOM_DESC;
168  	p_stop_info.DEPARTURE_SEAL_CODE := pp_DEPARTURE_SEAL_CODE   ;
169  	p_stop_info.DEPARTURE_FILL_PERCENT :=pp_DEPARTURE_FILL_PERCENT ;
170  	p_stop_info.STOP_SEQUENCE_NUMBER    	:=pp_STOP_SEQUENCE_NUMBER;
171 
172 	p_stop_info.LOCK_STOP_ID:=pp_LOCK_STOP_ID;
173  	p_stop_info.STATUS_CODE:=pp_STATUS_CODE;
174 	p_stop_info.PENDING_INTERFACE_FLAG:=pp_PENDING_INTERFACE_FLAG;
175 	p_stop_info.TRANSACTION_HEADER_ID:=pp_TRANSACTION_HEADER_ID;
176 
177  	p_stop_info.WSH_LOCATION_ID:=pp_WSH_LOCATION_ID;
178  	p_stop_info.TRACKING_DRILLDOWN_FLAG:=pp_TRACKING_DRILLDOWN_FLAG ;
179  	p_stop_info.TRACKING_REMARKS:=pp_TRACKING_REMARKS;
180  	p_stop_info.CARRIER_EST_DEPARTURE_DATE:=pp_CARRIER_EST_DEPARTURE_DATE;
181  	p_stop_info.CARRIER_EST_ARRIVAL_DATE:=pp_CARRIER_EST_ARRIVAL_DATE;
182  	p_stop_info.LOADING_START_DATETIME:=pp_LOADING_START_DATETIME;
183  	p_stop_info.LOADING_END_DATETIME:=pp_LOADING_END_DATETIME;
184  	p_stop_info.UNLOADING_START_DATETIME:=pp_UNLOADING_START_DATETIME;
185  	p_stop_info.UNLOADING_END_DATETIME:=pp_UNLOADING_END_DATETIME;
186 
187  	p_stop_info.TP_ATTRIBUTE_CATEGORY := pp_TP_ATTRIBUTE_CATEGORY;
188  	p_stop_info.TP_ATTRIBUTE1      := pp_TP_ATTRIBUTE1 ;
189  	p_stop_info.TP_ATTRIBUTE2      := pp_TP_ATTRIBUTE2  ;
190  	p_stop_info.TP_ATTRIBUTE3      :=  pp_TP_ATTRIBUTE3 ;
191  	p_stop_info.TP_ATTRIBUTE4      := pp_TP_ATTRIBUTE4  ;
192  	p_stop_info.TP_ATTRIBUTE5      := pp_TP_ATTRIBUTE5  ;
193  	p_stop_info.TP_ATTRIBUTE6      := pp_TP_ATTRIBUTE6  ;
194  	p_stop_info.TP_ATTRIBUTE7      :=  pp_TP_ATTRIBUTE7 ;
195  	p_stop_info.TP_ATTRIBUTE8      := pp_TP_ATTRIBUTE8  ;
196  	p_stop_info.TP_ATTRIBUTE9      := pp_TP_ATTRIBUTE9  ;
197  	p_stop_info.TP_ATTRIBUTE10     := pp_TP_ATTRIBUTE10 ;
198  	p_stop_info.TP_ATTRIBUTE11     := pp_TP_ATTRIBUTE11 ;
199  	p_stop_info.TP_ATTRIBUTE12     := pp_TP_ATTRIBUTE12;
200  	p_stop_info.TP_ATTRIBUTE13     := pp_TP_ATTRIBUTE13 ;
201  	p_stop_info.TP_ATTRIBUTE14     := pp_TP_ATTRIBUTE14 ;
202  	p_stop_info.TP_ATTRIBUTE15     := pp_TP_ATTRIBUTE15 ;
203  	p_stop_info.ATTRIBUTE_CATEGORY  := pp_ATTRIBUTE_CATEGORY ;
204  	p_stop_info.ATTRIBUTE1          := pp_ATTRIBUTE1;
205  	p_stop_info.ATTRIBUTE2          := pp_ATTRIBUTE2;
206  	p_stop_info.ATTRIBUTE3          := pp_ATTRIBUTE3;
207  	p_stop_info.ATTRIBUTE4          := pp_ATTRIBUTE4;
208  	p_stop_info.ATTRIBUTE5          := pp_ATTRIBUTE5 ;
209  	p_stop_info.ATTRIBUTE6          := pp_ATTRIBUTE6 ;
210  	p_stop_info.ATTRIBUTE7          := pp_ATTRIBUTE7 ;
211  	p_stop_info.ATTRIBUTE8          := pp_ATTRIBUTE8 ;
212  	p_stop_info.ATTRIBUTE9          := pp_ATTRIBUTE9 ;
213  	p_stop_info.ATTRIBUTE10         := pp_ATTRIBUTE10;
214  	p_stop_info.ATTRIBUTE11          := pp_ATTRIBUTE11;
215  	p_stop_info.ATTRIBUTE12          := pp_ATTRIBUTE12 ;
216  	p_stop_info.ATTRIBUTE13         := pp_ATTRIBUTE13;
217  	p_stop_info.ATTRIBUTE14         := pp_ATTRIBUTE14 ;
218  	p_stop_info.ATTRIBUTE15         := pp_ATTRIBUTE15;
219  	p_stop_info.CREATION_DATE       := pp_CREATION_DATE;
220  	p_stop_info.CREATED_BY           := pp_CREATED_BY ;
221  	p_stop_info.LAST_UPDATE_DATE     := pp_LAST_UPDATE_DATE;
222  	p_stop_info.LAST_UPDATED_BY      := pp_LAST_UPDATED_BY;
223  	p_stop_info.LAST_UPDATE_LOGIN    := pp_LAST_UPDATE_LOGIN;
224  	p_stop_info.PROGRAM_APPLICATION_ID  := pp_PROGRAM_APPLICATION_ID;
225  	p_stop_info.PROGRAM_ID         := pp_PROGRAM_ID;
226  	p_stop_info.PROGRAM_UPDATE_DATE := pp_PROGRAM_UPDATE_DATE;
227  	p_stop_info.REQUEST_ID      := pp_REQUEST_ID;
228 	p_stop_info.wkend_layover_stops := p_wkend_layover_stops;
229  	p_stop_info.wkday_layover_stops := p_wkday_layover_stops;
230 	p_stop_info.shipments_type_flag := p_shipments_type_flag;
231 
232 	--call public API
233 
234 	IF l_debug_on THEN
235 	    WSH_DEBUG_SV.log(l_module_name,
236 		'FTE_MLS_WRAPPER.p_is_temp value ',p_is_temp);
237 	END IF;
238 
239 
240 	IF (p_is_temp = 'N' OR
241 	    p_is_temp IS NULL)
242 	THEN
243 
244 		p_in_rec.caller:='FTEMLWRB';
245 		p_in_rec.phase:=null;
246 		p_in_rec.action_code:=p_action_code;
247 		l_rec_attr_tab(1):=p_stop_info;
248 		p_commit:='F';
249 
250 	        WSH_INTERFACE_GRP.Create_Update_Stop(p_api_version_number=>p_api_version_number,
251     						p_init_msg_list=>FND_API.G_FALSE,
252 						p_commit=>p_commit,
253 						p_in_rec=>p_in_rec,
254 						p_rec_attr_tab=>l_rec_attr_tab,
255 						x_stop_out_tab=> l_stop_out_tab,
256     						x_return_status=>x_return_status,
257     						x_msg_count=>x_msg_count,
258     						x_msg_data=>x_msg_data
259 						);
260 
261 		-- update carrier est dates
262 		IF (p_action_code = 'UPDATE') THEN
263 			UPDATE WSH_TRIP_STOPS
264 			SET CARRIER_EST_DEPARTURE_DATE = pp_CARRIER_EST_DEPARTURE_DATE,
265 			    CARRIER_EST_ARRIVAL_DATE = pp_CARRIER_EST_ARRIVAL_DATE
266 			WHERE STOP_ID = pp_STOP_ID;
267 		END IF;
268 
269 
270 	        IF l_debug_on THEN
271 	            WSH_DEBUG_SV.log(l_module_name,
272 	            	'FTE_MLS_WRAPPER.CREATE_UPDATE_STOP x_return_status',x_return_status);
273 	        END IF;
274 
275 
276 		--# Bug 2911100 : HBHAGAVA
277 		IF ( ( x_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS
278 			OR x_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING)
279 			AND l_stop_out_tab.count > 0) THEN
280 		     x_stop_id := l_stop_out_tab(l_stop_out_tab.FIRST).stop_id;
281 		END IF;
282 	ELSE
283 		l_stop_seq := pp_STOP_SEQUENCE_NUMBER;
284 
285 	        IF l_debug_on THEN
286 	            WSH_DEBUG_SV.log(l_module_name,
287 	            	'FTE_MLS_WRAPPER.CREATE_UPDATE_STOP Stop Seq Number ',
288 	            				l_stop_seq);
289 
290 	            WSH_DEBUG_SV.log(l_module_name,
291 	            	'FTE_MLS_WRAPPER.CREATE_UPDATE_STOP New Stop Seq Number ',
292 	            				p_new_stop_sequence);
293 
294 	            WSH_DEBUG_SV.log(l_module_name,
295 	            	'FTE_MLS_WRAPPER.CREATE_UPDATE_STOP Stop stop id ',
296 	            				p_stop_info.stop_id);
297 
298 	        END IF;
299 
300 		/**
301 	        -- if stop seq number is null then it is a new stop
302 	        -- so we can use new stop sequence number
303 	        IF (l_stop_seq IS NULL)
304 	        THEN
305 	        	l_stop_seq := p_new_stop_sequence;
306 	        	p_stop_info.STOP_SEQUENCE_NUMBER := p_new_stop_sequence;
307 	        END IF;
308 
309 
310 		FTE_MLS_WRAPPER.G_STOPS_TAB_REC(l_stop_seq) := p_stop_info;
311 
312 		l_stop_seq_rec.OLD_STOP_SEQUENCE_NUMBER := l_stop_seq;
313 		l_stop_seq_rec.NEW_STOP_SEQUENCE_NUMBER := p_new_stop_sequence;
314 		FTE_MLS_WRAPPER.G_STOPS_SEQ_TAB(l_stop_seq) := l_stop_seq_rec;
315 		*/
316 		-- Changed based on shipping changes to stop seq id
317 
318 
319 		FTE_MLS_WRAPPER.G_STOPS_TAB_REC(p_new_stop_sequence) := p_stop_info;
320 
321 		l_stop_seq_rec.OLD_STOP_SEQUENCE_NUMBER := l_stop_seq;
322 		l_stop_seq_rec.NEW_STOP_SEQUENCE_NUMBER := p_new_stop_sequence;
323 		FTE_MLS_WRAPPER.G_STOPS_SEQ_TAB(p_new_stop_sequence) := l_stop_seq_rec;
324 
325 
326 	        IF l_debug_on THEN
327 	            WSH_DEBUG_SV.log(l_module_name,
328 	            	'FTE_MLS_WRAPPER.CREATE_UPDATE_STOP Adding to temp table');
329 	        END IF;
330 
331 	END IF;
332 
333 
334         FND_MSG_PUB.Count_And_Get (
335              p_count => x_msg_count,
336              p_data  => x_msg_data);
337 
338         IF l_debug_on THEN
339           WSH_DEBUG_SV.pop(l_module_name);
340         END IF;
341 
342   EXCEPTION
343 	WHEN FND_API.G_EXC_ERROR THEN
344 		ROLLBACK TO CREATE_UPDATE_STOP_PUB;
345 		x_return_status := FND_API.G_RET_STS_ERROR;
346 		FND_MSG_PUB.Count_And_Get
347 		  (
348 		     p_count  => x_msg_count,
349 		     p_data  =>  x_msg_data,
350 		     p_encoded => FND_API.G_FALSE
351 		  );
352 		IF l_debug_on THEN
353 			WSH_DEBUG_SV.pop(l_module_name);
354 		END IF;
355 
356 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
357 		ROLLBACK TO CREATE_UPDATE_STOP_PUB;
358 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
359 		FND_MSG_PUB.Count_And_Get
360 		  (
361 		     p_count  => x_msg_count,
362 		     p_data  =>  x_msg_data,
363 		     p_encoded => FND_API.G_FALSE
364 		  );
365 		IF l_debug_on THEN
366 			WSH_DEBUG_SV.pop(l_module_name);
367 		END IF;
368 	WHEN OTHERS THEN
369 		ROLLBACK TO CREATE_UPDATE_STOP_PUB;
370 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
371 		FND_MSG_PUB.Count_And_Get
372 		  (
373 		     p_count  => x_msg_count,
374 		     p_data  =>  x_msg_data,
375 		     p_encoded => FND_API.G_FALSE
376 		  );
377 		IF l_debug_on THEN
378 			WSH_DEBUG_SV.pop(l_module_name);
379 		END IF;
380   END Create_Update_Stop;
381 
382 
383 
384 -- PROCEDURE : Stop_Action
385 -- p_action_code           'DELETE'
386 PROCEDURE Stop_Action
387   ( p_api_version_number     IN   NUMBER,
388     p_init_msg_list          IN   VARCHAR2,
389     x_return_status          OUT NOCOPY   VARCHAR2,
390     x_msg_count              OUT NOCOPY   NUMBER,
391     x_msg_data               OUT NOCOPY   VARCHAR2,
392     p_action_code            IN   VARCHAR2,
393     p_stop_id                IN   NUMBER DEFAULT NULL,
394     p_trip_id                IN   NUMBER DEFAULT NULL,
395     p_trip_name              IN   VARCHAR2 DEFAULT NULL,
396     p_stop_location_id       IN   NUMBER DEFAULT NULL,
397     p_stop_location_code     IN   VARCHAR2 DEFAULT NULL,
398     p_planned_dep_date       IN   DATE   DEFAULT NULL,
399     p_actual_date            IN   DATE   DEFAULT NULL,
400     p_defer_interface_flag   IN   VARCHAR2 DEFAULT 'Y')
401 
402   IS
403 
404     x_stop_out_rec WSH_TRIP_STOPS_GRP.stopActionOutRecType;
405 
406     p_action_prms WSH_TRIP_STOPS_GRP.action_parameters_rectype;
407     p_entity_id_tab WSH_UTIL_CORE.id_tab_type;
408     p_commit VARCHAR2(1);
409 
410 	--
411 	l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
412 	--
413 	l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'STOP_ACTION';
414 
415 	l_return_status             VARCHAR2(32767);
416 	l_msg_count                 NUMBER;
417 	l_msg_data                  VARCHAR2(32767);
418 	l_number_of_warnings	    NUMBER;
419 	l_number_of_errors	    NUMBER;
420 
421 
422   BEGIN
423 
424 	SAVEPOINT	STOP_ACTION_PUB;
425 
426 	-- Initialize message list if p_init_msg_list is set to TRUE.
427 	--
428 	--
429 	IF FND_API.to_Boolean( p_init_msg_list )
430 	THEN
431 		FND_MSG_PUB.initialize;
432 	END IF;
433 	--
434 	--
435 	--  Initialize API return status to success
436 	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
437 	x_msg_count		:= 0;
438 	x_msg_data		:= 0;
439 	l_return_status 	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
440 	l_number_of_warnings	:= 0;
441 	l_number_of_errors	:= 0;
442 
443 	IF l_debug_on THEN
444 	      wsh_debug_sv.push(l_module_name);
445 	END IF;
446 
447 
448 	p_entity_id_tab(1):=p_stop_id;
449 	IF (p_action_code = 'ARRIVE' OR
450 		p_action_code = 'CLOSE')
451 	THEN
452 		p_action_prms.action_code := 'UPDATE-STATUS';
453 		p_action_prms.stop_action := p_action_code;
454 	ELSE
455 		p_action_prms.action_code:=p_action_code;
456 	END IF;
457 
458 	p_action_prms.phase:=NULL;
459 	p_action_prms.caller:=G_PKG_NAME;
460 	p_action_prms.actual_date := p_actual_date;
461 	p_commit:='F';
462 
463 	WSH_INTERFACE_GRP.Stop_Action
464 	   ( p_api_version_number =>   p_api_version_number,
465 	    p_init_msg_list      =>    FND_API.G_FALSE,
466 	    p_commit		 =>    p_commit,
467 	    p_entity_id_tab	 =>    p_entity_id_tab,
468 	    p_action_prms	 =>    p_action_prms,
469 	    x_stop_out_rec 	 =>    x_stop_out_rec,
470 	    x_return_status      =>    l_return_status ,
471 	    x_msg_count          =>    l_msg_count,
472 	    x_msg_data           =>    l_msg_data
473 
474 	   );
475 
476 	IF l_debug_on THEN
477 		WSH_DEBUG_SV.logmsg(l_module_name,' WSH_INTERFACE_GRP.After calling stop action');
478 		WSH_DEBUG_SV.logmsg(l_module_name,'l_return_status:' || l_return_status);
479 		WSH_DEBUG_SV.logmsg(l_module_name,'l_msg_count:' || l_msg_count);
480 		WSH_DEBUG_SV.logmsg(l_module_name,'l_msg_count:' || l_msg_data);
481 
482 	END IF;
483 
484 
485 	wsh_util_core.api_post_call(
486 	      p_return_status    =>l_return_status,
487 	      x_num_warnings     =>l_number_of_warnings,
488 	      x_num_errors       =>l_number_of_errors,
489 	      p_msg_data	 =>l_msg_data);
490 
491 	IF l_number_of_errors > 0
492 	THEN
493 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
494 	ELSIF l_number_of_warnings > 0
495 	THEN
496 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
497 	ELSE
498 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
499 	END IF;
500 
501 	FND_MSG_PUB.Count_And_Get
502 	  (
503 	     p_count  => x_msg_count,
504 	     p_data  =>  x_msg_data,
505 	     p_encoded => FND_API.G_FALSE
506 	  );
507 
508 	IF l_debug_on THEN
509 	  WSH_DEBUG_SV.pop(l_module_name);
510 	END IF;
511 
512 
513   EXCEPTION
514 	WHEN FND_API.G_EXC_ERROR THEN
515 		ROLLBACK TO STOP_ACTION_PUB;
516 		x_return_status := FND_API.G_RET_STS_ERROR;
517 		FND_MSG_PUB.Count_And_Get
518 		  (
519 		     p_count  => x_msg_count,
520 		     p_data  =>  x_msg_data,
521 		     p_encoded => FND_API.G_FALSE
522 		  );
523 		IF l_debug_on THEN
524 			WSH_DEBUG_SV.pop(l_module_name);
525 		END IF;
526 
527 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
528 		ROLLBACK TO STOP_ACTION_PUB;
529 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
530 		FND_MSG_PUB.Count_And_Get
531 		  (
532 		     p_count  => x_msg_count,
533 		     p_data  =>  x_msg_data,
534 		     p_encoded => FND_API.G_FALSE
535 		  );
536 		IF l_debug_on THEN
537 			WSH_DEBUG_SV.pop(l_module_name);
538 		END IF;
539 	WHEN OTHERS THEN
540 		ROLLBACK TO STOP_ACTION_PUB;
541 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
542 		FND_MSG_PUB.Count_And_Get
543 		  (
544 		     p_count  => x_msg_count,
545 		     p_data  =>  x_msg_data,
546 		     p_encoded => FND_API.G_FALSE
547 		  );
548 		IF l_debug_on THEN
549 			WSH_DEBUG_SV.pop(l_module_name);
550 		END IF;
551   END Stop_Action;
552 
553 
554 
555 --DELIVERY
556 --p_action_code will be either 'ASSIGN-TRIP','UNASSIGN-TRIP'
557   PROCEDURE Delivery_Action
558   ( p_api_version_number     IN   NUMBER,
559     p_init_msg_list          IN   VARCHAR2,
560     x_return_status          OUT NOCOPY   VARCHAR2,
561     x_msg_count              OUT NOCOPY   NUMBER,
562     x_msg_data               OUT NOCOPY   VARCHAR2,
563     p_action_code            IN   VARCHAR2,
564     p_delivery_id            IN   NUMBER DEFAULT NULL,
565     p_delivery_name          IN   VARCHAR2 DEFAULT NULL,
566     p_asg_trip_id            IN   NUMBER DEFAULT NULL,
567     p_asg_trip_name          IN   VARCHAR2 DEFAULT NULL,
568     p_asg_pickup_stop_id     IN   NUMBER DEFAULT NULL,
569     p_asg_pickup_loc_id      IN   NUMBER DEFAULT NULL,
570     p_asg_pickup_loc_code    IN   VARCHAR2 DEFAULT NULL,
571     p_asg_pickup_arr_date    IN   DATE   DEFAULT NULL,
572     p_asg_pickup_dep_date    IN   DATE   DEFAULT NULL,
573     p_asg_dropoff_stop_id    IN   NUMBER DEFAULT NULL,
574     p_asg_dropoff_loc_id     IN   NUMBER DEFAULT NULL,
575     p_asg_dropoff_loc_code   IN   VARCHAR2 DEFAULT NULL,
576     p_asg_dropoff_arr_date   IN   DATE   DEFAULT NULL,
577     p_asg_dropoff_dep_date   IN   DATE   DEFAULT NULL,
578     p_sc_action_flag         IN   VARCHAR2 DEFAULT 'S',
579     p_sc_intransit_flag      IN   VARCHAR2 DEFAULT 'N',
580     p_sc_close_trip_flag     IN   VARCHAR2 DEFAULT 'N',
581     p_sc_create_bol_flag     IN   VARCHAR2 DEFAULT 'N',
582     p_sc_stage_del_flag      IN   VARCHAR2 DEFAULT 'Y',
583     p_sc_trip_ship_method    IN   VARCHAR2 DEFAULT NULL,
584     p_sc_actual_dep_date     IN   DATE     DEFAULT NULL,
585     p_sc_report_set_id       IN   NUMBER DEFAULT NULL,
586     p_sc_report_set_name     IN   VARCHAR2 DEFAULT NULL,
587     p_sc_defer_interface_flag	IN  VARCHAR2 DEFAULT 'Y',
588     p_wv_override_flag       IN   VARCHAR2 DEFAULT 'N',
589     x_trip_id                OUT NOCOPY   VARCHAR2,
590     x_trip_name              OUT NOCOPY   VARCHAR2,
591     x_delivery_leg_id        OUT NOCOPY   NUMBER ,
592     x_delivery_leg_seq       OUT NOCOPY   NUMBER )
593   IS
594   --{
595       CURSOR delivery_leg_cur
596       IS
597 	SELECT delivery_leg_id, sequence_number
598 	FROM   wsh_delivery_legs wdl,
599 	       wsh_trip_stops wts
600         WHERE  wts.trip_id        = p_asg_trip_id
601 	AND    wts.stop_id        = wdl.pick_up_stop_id
602 	AND    wdl.pick_up_stop_id = p_asg_pickup_stop_id
603 	AND    wdl.delivery_id    = p_delivery_id;
604 
605   --}
606 
607    p_commit VARCHAR2(1);
608    l_action_prms	WSH_DELIVERIES_GRP.action_parameters_rectype;
609    l_delivery_id_tab	WSH_UTIL_CORE.id_tab_type;
610    l_delivery_out_rec	WSH_DELIVERIES_GRP.Delivery_Action_Out_Rec_Type;
611 
612 
613 
614 	l_number_of_errors    NUMBER;
615 	l_number_of_warnings  NUMBER;
616 	l_return_status             VARCHAR2(32767);
617 	l_msg_count                 NUMBER;
618 	l_index                     NUMBER;
619 	l_msg_data                  VARCHAR2(32767);
620 
621 
622 --
623 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
624 --
625 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'DELIVERY_ACTION';
626 
627 
628   BEGIN
629 
630   	SAVEPOINT	DELIVERY_ACTION_PUB;
631 
632 	-- Initialize message list if p_init_msg_list is set to TRUE.
633 	--
634 	--
635 	IF FND_API.to_Boolean( p_init_msg_list )
636 	THEN
637 		FND_MSG_PUB.initialize;
638 	END IF;
639 	--
640 	--
641 	--  Initialize API return status to success
642 	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
643 	x_msg_count		:= 0;
644 	x_msg_data		:= 0;
645 
646 	l_number_of_errors      := 0;
647 	l_number_of_warnings    := 0;
648 
649 	IF l_debug_on THEN
650 	      wsh_debug_sv.push(l_module_name);
651 	END IF;
652 
653 
654  	p_commit:='F';
655 	l_action_prms.caller:=G_PKG_NAME;
656 	l_action_prms.phase:=NULL;
657 
658 	l_action_prms.action_code:=p_action_code;
659 	l_action_prms.trip_id               := p_asg_trip_id;
660 	l_action_prms.trip_name             := p_asg_trip_name;
661 	l_action_prms.pickup_stop_id        := p_asg_pickup_stop_id;
662 	l_action_prms.pickup_loc_id         := p_asg_pickup_loc_id;
663 --	l_action_prms.pickup_stop_seq       := p_asg_pickup_stop_seq;
664 	l_action_prms.pickup_loc_code       := p_asg_pickup_loc_code;
665 	l_action_prms.pickup_arr_date       := p_asg_pickup_arr_date;
666 	l_action_prms.pickup_dep_date       := p_asg_pickup_dep_date;
667 	l_action_prms.dropoff_stop_id       := p_asg_dropoff_stop_id;
668 	l_action_prms.dropoff_loc_id        := p_asg_dropoff_loc_id;
669 --	l_action_prms.dropoff_stop_seq      := p_asg_dropoff_stop_seq;
670 	l_action_prms.dropoff_loc_code      := p_asg_dropoff_loc_code;
671 	l_action_prms.dropoff_arr_date      := p_asg_dropoff_arr_date;
672 	l_action_prms.dropoff_dep_date      := p_asg_dropoff_dep_date;
673 	l_action_prms.action_flag           := p_sc_action_flag;
674 	l_action_prms.intransit_flag        := p_sc_intransit_flag;
675 	l_action_prms.close_trip_flag       := p_sc_close_trip_flag;
676 --	l_action_prms.create_bol_flag       := p_sc_create_bol_flag;
677 	l_action_prms.stage_del_flag        := p_sc_stage_del_flag;
678 	l_action_prms.ship_method_code      := p_sc_trip_ship_method;
679 	l_action_prms.actual_dep_date       := p_sc_actual_dep_date;
680 	l_action_prms.report_set_id         := p_sc_report_set_id;
681 	l_action_prms.report_set_name       := p_sc_report_set_name;
682 	l_action_prms.defer_interface_flag  := p_sc_defer_interface_flag;
683 	l_action_prms.override_flag         := p_wv_override_flag;
684 	l_delivery_id_tab(1)                := p_delivery_id;
685 
686 
687 	--call public API
688 
689 	WSH_INTERFACE_GRP.Delivery_Action
690 	(	p_api_version_number     	=>p_api_version_number, -- NUMBER
691     		p_init_msg_list         =>FND_API.G_FALSE, -- VARCHAR2
692 		p_action_prms		=>l_action_prms, --					WSH_DELIVERIES_GRP.action_parameters_rectype,
693 		p_delivery_id_tab	=>l_delivery_id_tab, -- wsh_util_core.id_tab_type,
694 		x_delivery_out_rec	=>l_delivery_out_rec, -- WSH_DELIVERIES_GRP.Delivery_Action_Out_Rec_Type,
695     		x_return_status         =>l_return_status,
696     		x_msg_count             =>l_msg_count,
697     		x_msg_data              =>l_msg_data
698 	);
699 
700 
701 	IF l_debug_on THEN
702 	         WSH_DEBUG_SV.logmsg(l_module_name,
703 	         	' WSH_INTERFACE_GRP.DeliveryAction Return status ' || x_return_status,
704 	         		     WSH_DEBUG_SV.C_PROC_LEVEL);
705         END IF;
706 
707 	wsh_util_core.api_post_call(
708 	      p_return_status    =>l_return_status,
709 	      x_num_warnings     =>l_number_of_warnings,
710 	      x_num_errors       =>l_number_of_errors,
711 	      p_msg_data	 =>l_msg_data);
712 
713 	IF l_debug_on THEN
714 	         WSH_DEBUG_SV.logmsg(l_module_name,
715 	         	'after wsh_util_core: x_return_status ' || x_return_status || ' l_return_status '||l_return_status,
716 	         		     WSH_DEBUG_SV.C_PROC_LEVEL);
717 	END IF;
718 
719 	x_return_status := l_return_status;
720 
721 	IF (x_return_status = 'E')
722 	THEN
723 		RAISE FND_API.G_EXC_ERROR;
724 	ELSIF (x_return_status = 'U')
725 	THEN
726 		RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
727 	END IF;
728 
729 
730 
731 	--
732 	--	    x_trip_id        := l_delivery_out_rec.trip_id;
733 	--	    x_trip_name      := l_delivery_out_rec.trip_name;
734 	--
735 
736 	IF (x_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS AND
737 	   l_delivery_out_rec.result_id_tab.count > 0) THEN
738 		x_trip_id := l_delivery_out_rec.result_id_tab(1);
739 		--x_trip_name := l_delivery_out_rec(l_delivery_out_rec.FIRST).trip_name;
740 	END IF;
741 
742 	    --
743 	FOR delivery_leg_rec IN delivery_leg_cur
744 	LOOP
745 	--{
746 		x_delivery_leg_id := delivery_leg_rec.delivery_leg_id;
747 		x_delivery_leg_seq := delivery_leg_rec.sequence_number;
748 	--}
749 	END LOOP;
750 
751 	FND_MSG_PUB.Count_And_Get
752 	  (
753 	     p_count  => x_msg_count,
754 	     p_data  =>  x_msg_data,
755 	     p_encoded => FND_API.G_FALSE
756 	  );
757 
758 	IF l_debug_on THEN
759 		WSH_DEBUG_SV.pop(l_module_name);
760 	END IF;
761 
762 
763   EXCEPTION
764 	WHEN FND_API.G_EXC_ERROR THEN
765 		ROLLBACK TO DELIVERY_ACTION_PUB;
766 		x_return_status := FND_API.G_RET_STS_ERROR;
767 		FND_MSG_PUB.Count_And_Get
768 		  (
769 		     p_count  => x_msg_count,
770 		     p_data  =>  x_msg_data,
771 		     p_encoded => FND_API.G_FALSE
772 		  );
773 		IF l_debug_on THEN
774 			WSH_DEBUG_SV.pop(l_module_name);
775 		END IF;
776 
777 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
778 		ROLLBACK TO DELIVERY_ACTION_PUB;
779 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
780 		FND_MSG_PUB.Count_And_Get
781 		  (
782 		     p_count  => x_msg_count,
783 		     p_data  =>  x_msg_data,
784 		     p_encoded => FND_API.G_FALSE
785 		  );
786 		IF l_debug_on THEN
787 			WSH_DEBUG_SV.pop(l_module_name);
788 		END IF;
789 
790 	WHEN OTHERS THEN
791 		ROLLBACK TO DELIVERY_ACTION_PUB;
792 		WSH_UTIL_CORE.DEFAULT_HANDLER('FTE_MLS_WRAPPER.Delivery_Action');
793 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
794 		FND_MSG_PUB.Count_And_Get
795 		  (
796 		     p_count  => x_msg_count,
797 		     p_data  =>  x_msg_data,
798 		     p_encoded => FND_API.G_FALSE
799 		  );
800 		IF l_debug_on THEN
801 			WSH_DEBUG_SV.pop(l_module_name);
802 		END IF;
803 
804   END Delivery_Action;
805 
806   PROCEDURE Create_Update_Trip
807 
808   ( p_api_version_number     		IN   NUMBER,
809 	p_init_msg_list      		IN   VARCHAR2,
810 	x_return_status      		OUT NOCOPY   VARCHAR2,
811 	x_msg_count          		OUT NOCOPY   NUMBER,
812 	x_msg_data           	        OUT NOCOPY   VARCHAR2,
813         x_trip_id                       OUT NOCOPY       NUMBER,
814         x_trip_name                     OUT NOCOPY       VARCHAR2,
815 	p_action_code            	IN   VARCHAR2,
816 	p_rec_TRIP_ID                   IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
817 	p_rec_NAME                      IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
818 	p_rec_ARRIVE_AFTER_TRIP_ID      IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
819 	p_rec_ARRIVE_AFTER_TRIP_NAME    IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
820 	p_rec_VEHICLE_ITEM_ID           IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
821 	p_rec_VEHICLE_ITEM_DESC         IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
822 	p_rec_VEHICLE_ORGANIZATION_ID   IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
823 	p_rec_VEHICLE_ORGANIZATION_COD  IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
824 	p_rec_VEHICLE_NUMBER            IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
825 	p_rec_VEHICLE_NUM_PREFIX        IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
826 	p_rec_CARRIER_ID                IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
827 	p_rec_SHIP_METHOD_CODE          IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
828 	p_rec_SHIP_METHOD_NAME          IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
829 	p_rec_ROUTE_ID                  IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
830 	p_rec_ROUTING_INSTRUCTIONS      IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
831 	p_rec_ATTRIBUTE_CATEGORY        IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
832 	p_rec_ATTRIBUTE1                IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
833 	p_rec_ATTRIBUTE2                IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
834 	p_rec_ATTRIBUTE3                IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
835 	p_rec_ATTRIBUTE4                IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
836 	p_rec_ATTRIBUTE5                IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
837 	p_rec_ATTRIBUTE6                IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
838 	p_rec_ATTRIBUTE7                IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
839 	p_rec_ATTRIBUTE8                IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
840 	p_rec_ATTRIBUTE9                IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
841 	p_rec_ATTRIBUTE10               IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
842 	p_rec_ATTRIBUTE11               IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
843 	p_rec_ATTRIBUTE12               IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
844 	p_rec_ATTRIBUTE13               IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
845 	p_rec_ATTRIBUTE14               IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
846 	p_rec_ATTRIBUTE15               IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
847 	p_rec_SERVICE_LEVEL             IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR,
848 	p_rec_MODE_OF_TRANSPORT         IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR,
849 	p_rec_CONSOLIDATION_ALLOWED     IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR,
850 	p_rec_PLANNED_FLAG          	IN 	 VARCHAR2  DEFAULT FND_API.G_MISS_CHAR,
851 	p_rec_STATUS_CODE           	IN	 VARCHAR2  DEFAULT FND_API.G_MISS_CHAR,
852 	p_rec_FREIGHT_TERMS_CODE    	IN 	 VARCHAR2  DEFAULT FND_API.G_MISS_CHAR,
853 	p_rec_LOAD_TENDER_STATUS    	IN 	 VARCHAR2  DEFAULT FND_API.G_MISS_CHAR,
854 	p_rec_ROUTE_LANE_ID         	IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
855 	p_rec_LANE_ID              	IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
856 	p_rec_SCHEDULE_ID          	IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
857 	p_rec_BOOKING_NUMBER     	IN	 VARCHAR2  DEFAULT FND_API.G_MISS_CHAR,
858 	p_rec_CREATION_DATE             IN       DATE DEFAULT FND_API.G_MISS_DATE,
859 	p_rec_CREATED_BY                IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
860 	p_rec_LAST_UPDATE_DATE          IN       DATE DEFAULT FND_API.G_MISS_DATE,
861 	p_rec_LAST_UPDATED_BY           IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
862 	p_rec_LAST_UPDATE_LOGIN         IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
863 	p_rec_PROGRAM_APPLICATION_ID    IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
864 	p_rec_PROGRAM_ID                IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
865 	p_rec_PROGRAM_UPDATE_DATE       IN       DATE DEFAULT FND_API.G_MISS_DATE,
866 	p_rec_REQUEST_ID                IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
867 	p_trip_name              	IN   	 VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
868 	p_carrier_contact_id 	    	IN	     NUMBER DEFAULT FND_API.G_MISS_NUM,
869 	p_carrier_contact_name	    	IN	     VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
870 	p_shipper_name		    	IN	     VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
871 	p_shipper_wait_time		IN	     NUMBER DEFAULT FND_API.G_MISS_NUM,
872 	p_wait_time_uom		    	IN	     VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
873 	p_wf_name			IN	     VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
874 	p_wf_process_name		IN	     VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
875 	p_wf_item_key		    	IN	     VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
876 	p_load_tender_number	    	IN	     NUMBER DEFAULT FND_API.G_MISS_NUM,
877 	p_action			IN	     VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
878 	p_autoaccept			IN	     VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
879 	p_url				IN	     VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
880 	p_carrier_remarks		IN	     VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
881         p_operator                      IN           VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
882         p_rec_IGNORE_FOR_PLANNING       IN           VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
883         p_rec_CONSIGNEE_CAR_AC_NO	IN	 VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
884         p_rec_CARRIER_REF_NUMBER	IN	 VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
885         p_rec_ROUTING_RULE_ID		IN	 NUMBER DEFAULT FND_API.G_MISS_NUM,
886         p_rec_APPEND_FLAG		IN 	 VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
887         p_rec_RANK_ID			IN	 NUMBER DEFAULT FND_API.G_MISS_NUM
888 	)
889  IS
890 
891 	l_creation_date		DATE;
892 	l_created_by 		NUMBER;
893 	l_last_update_date	DATE;
894 	l_last_updated_by	NUMBER;
895 	l_last_update_login	NUMBER;
896 
897 	l_number_of_warnings	NUMBER;
898 	l_number_of_errors	NUMBER;
899 	l_return_status             VARCHAR2(32767);
900 	l_msg_count                 NUMBER;
901 	l_msg_data                  VARCHAR2(32767);
902 
903 	l_trip_id		NUMBER;
904 
905   BEGIN
906 
907 	SAVEPOINT	CREATE_UPDATE_TRIP_OLD_PUB;
908 
909 
910 	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
911 	x_msg_count		:= 0;
912 	x_msg_data		:= 0;
913 	l_return_status 	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
914 	l_number_of_warnings	:= 0;
915 	l_number_of_errors	:= 0;
916 
917 	Create_Update_Trip(p_api_version_number => p_api_version_number,
918 			p_init_msg_list      => p_init_msg_list      ,
919 			x_return_status      => l_return_status      ,
920 			x_msg_count          => l_msg_count          ,
921 			x_msg_data          => l_msg_data          ,
922 			x_trip_id          => l_trip_id          ,
923 			x_trip_name          => x_trip_name          ,
924 			x_CREATION_DATE          => l_CREATION_DATE          ,
925 			x_CREATED_BY          => l_CREATED_BY          ,
926 			x_LAST_UPDATE_DATE          => l_LAST_UPDATE_DATE          ,
927 			x_LAST_UPDATED_BY          => l_LAST_UPDATED_BY          ,
928 			x_LAST_UPDATE_LOGIN          => l_LAST_UPDATE_LOGIN          ,
929 			p_action_code          => p_action_code          ,
930 		    p_rec_TRIP_ID                   =>     p_rec_TRIP_ID,
931 		    p_rec_NAME                      =>     p_rec_NAME   ,
932 		    p_rec_ARRIVE_AFTER_TRIP_ID      =>     p_rec_ARRIVE_AFTER_TRIP_ID  ,
933 		    p_rec_ARRIVE_AFTER_TRIP_NAME    =>     p_rec_ARRIVE_AFTER_TRIP_NAME,
934 		    p_rec_VEHICLE_ITEM_ID           =>     p_rec_VEHICLE_ITEM_ID       ,
935 		    p_rec_VEHICLE_ITEM_DESC         =>     p_rec_VEHICLE_ITEM_DESC     ,
936 		    p_rec_VEHICLE_ORGANIZATION_ID   =>     p_rec_VEHICLE_ORGANIZATION_ID,
937 		    p_rec_VEHICLE_ORGANIZATION_COD  =>     p_rec_VEHICLE_ORGANIZATION_COD,
938 		    p_rec_VEHICLE_NUMBER            =>     p_rec_VEHICLE_NUMBER        ,
939 		    p_rec_VEHICLE_NUM_PREFIX        =>     p_rec_VEHICLE_NUM_PREFIX    ,
940 		    p_rec_CARRIER_ID                =>     p_rec_CARRIER_ID            ,
941 		    p_rec_SHIP_METHOD_CODE          =>     p_rec_SHIP_METHOD_CODE      ,
942 		    p_rec_SHIP_METHOD_NAME          =>     p_rec_SHIP_METHOD_NAME      ,
943 		    p_rec_ROUTE_ID                  =>     p_rec_ROUTE_ID              ,
944 		    p_rec_ROUTING_INSTRUCTIONS      =>     p_rec_ROUTING_INSTRUCTIONS  ,
945 		    p_rec_ATTRIBUTE_CATEGORY        =>     p_rec_ATTRIBUTE_CATEGORY    ,
946 		    p_rec_ATTRIBUTE1                =>     p_rec_ATTRIBUTE1            ,
947 		    p_rec_ATTRIBUTE2                =>     p_rec_ATTRIBUTE2            ,
948 		    p_rec_ATTRIBUTE3                =>     p_rec_ATTRIBUTE3            ,
949 		    p_rec_ATTRIBUTE4                =>     p_rec_ATTRIBUTE4            ,
950 		    p_rec_ATTRIBUTE5                =>     p_rec_ATTRIBUTE5            ,
951 		    p_rec_ATTRIBUTE6                =>     p_rec_ATTRIBUTE6            ,
952 		    p_rec_ATTRIBUTE7                =>     p_rec_ATTRIBUTE7            ,
953 		    p_rec_ATTRIBUTE8                =>     p_rec_ATTRIBUTE8            ,
954 		    p_rec_ATTRIBUTE9                =>     p_rec_ATTRIBUTE9            ,
955 		    p_rec_ATTRIBUTE10               =>     p_rec_ATTRIBUTE10           ,
956 		    p_rec_ATTRIBUTE11               =>     p_rec_ATTRIBUTE11           ,
957 		    p_rec_ATTRIBUTE12               =>     p_rec_ATTRIBUTE12           ,
958 		    p_rec_ATTRIBUTE13               =>     p_rec_ATTRIBUTE13           ,
959 		    p_rec_ATTRIBUTE14               =>     p_rec_ATTRIBUTE14           ,
960 		    p_rec_ATTRIBUTE15               =>     p_rec_ATTRIBUTE15           ,
961 		    p_rec_SERVICE_LEVEL             =>     p_rec_SERVICE_LEVEL         ,
962 		    p_rec_MODE_OF_TRANSPORT         =>     p_rec_MODE_OF_TRANSPORT     ,
963 		    p_rec_CONSOLIDATION_ALLOWED     =>     p_rec_CONSOLIDATION_ALLOWED ,
964 		    p_rec_PLANNED_FLAG              => 	   p_rec_PLANNED_FLAG          ,
965 		    p_rec_STATUS_CODE               =>	   p_rec_STATUS_CODE           ,
966 		    p_rec_FREIGHT_TERMS_CODE        => 	   p_rec_FREIGHT_TERMS_CODE    ,
967 		    p_rec_LOAD_TENDER_STATUS        => 	   p_rec_LOAD_TENDER_STATUS    ,
968 		    p_rec_ROUTE_LANE_ID             =>     p_rec_ROUTE_LANE_ID         ,
969 		    p_rec_LANE_ID                   =>     p_rec_LANE_ID               ,
970 		    p_rec_SCHEDULE_ID               =>     p_rec_SCHEDULE_ID           ,
971 		    p_rec_BOOKING_NUMBER     	    =>	   p_rec_BOOKING_NUMBER     	,
972 		    p_rec_CREATION_DATE             =>     p_rec_CREATION_DATE         ,
973 		    p_rec_CREATED_BY                =>     p_rec_CREATED_BY            ,
974 		    p_rec_LAST_UPDATE_DATE          =>     p_rec_LAST_UPDATE_DATE      ,
975 		    p_rec_LAST_UPDATED_BY           =>     p_rec_LAST_UPDATED_BY       ,
976 		    p_rec_LAST_UPDATE_LOGIN         =>     p_rec_LAST_UPDATE_LOGIN     ,
977 		    p_rec_PROGRAM_APPLICATION_ID    =>     p_rec_PROGRAM_APPLICATION_ID,
978 		    p_rec_PROGRAM_ID                =>     p_rec_PROGRAM_ID            ,
979 		    p_rec_PROGRAM_UPDATE_DATE       =>     p_rec_PROGRAM_UPDATE_DATE   ,
980 		    p_rec_REQUEST_ID                =>     p_rec_REQUEST_ID            ,
981 		    p_carrier_contact_id 	    =>	   p_carrier_contact_id 	,
982 		    p_shipper_name		    =>	   p_shipper_name		,
983 		    p_shipper_wait_time		    =>	   p_shipper_wait_time		,
984 		    p_wait_time_uom		    =>	   p_wait_time_uom		,
985 		    p_action			    =>	   p_action			,
986 		    p_carrier_remarks		    =>	   p_carrier_remarks		,
987 		    p_operator			    =>     p_operator,
988 		    p_rec_IGNORE_FOR_PLANNING       =>     p_rec_IGNORE_FOR_PLANNING    ,
989 		    p_rec_CONSIGNEE_CAR_AC_NO	    =>	   p_rec_CONSIGNEE_CAR_AC_NO	,
990     		    p_rec_CARRIER_REF_NUMBER	    =>	   p_rec_CARRIER_REF_NUMBER	,
991     		    p_rec_ROUTING_RULE_ID	    =>	   p_rec_ROUTING_RULE_ID	,
992     		    p_rec_APPEND_FLAG		    =>	   p_rec_APPEND_FLAG		,
993     		    p_rec_RANK_ID		    =>	   p_rec_RANK_ID		);
994 
995 
996 		    x_trip_id := l_trip_id;
997 
998 		wsh_util_core.api_post_call(
999 		      p_return_status    =>l_return_status,
1000 		      x_num_warnings     =>l_number_of_warnings,
1001 		      x_num_errors       =>l_number_of_errors,
1002 		      p_msg_data	 =>l_msg_data);
1003 
1004 			IF l_number_of_errors > 0
1005 			THEN
1006 			    x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1007 			ELSIF l_number_of_warnings > 0
1008 			THEN
1009 			    x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
1010 			ELSE
1011 			    x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1012 			END IF;
1013 
1014 			FND_MSG_PUB.Count_And_Get
1015 			  (
1016 			     p_count  => x_msg_count,
1017 			     p_data  =>  x_msg_data,
1018 			     p_encoded => FND_API.G_FALSE
1019 			  );
1020 
1021   EXCEPTION
1022 	WHEN FND_API.G_EXC_ERROR THEN
1023 		ROLLBACK TO CREATE_UPDATE_TRIP_OLD_PUB;
1024 		x_return_status := FND_API.G_RET_STS_ERROR;
1025 		FND_MSG_PUB.Count_And_Get
1026 		  (
1027 		     p_count  => x_msg_count,
1028 		     p_data  =>  x_msg_data,
1029 		     p_encoded => FND_API.G_FALSE
1030 		  );
1031 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1032 		ROLLBACK TO CREATE_UPDATE_TRIP_OLD_PUB;
1033 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1034 		FND_MSG_PUB.Count_And_Get
1035 		  (
1036 		     p_count  => x_msg_count,
1037 		     p_data  =>  x_msg_data,
1038 		     p_encoded => FND_API.G_FALSE
1039 		  );
1040 	WHEN OTHERS THEN
1041 		ROLLBACK TO CREATE_UPDATE_TRIP_OLD_PUB;
1042 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1043 		FND_MSG_PUB.Count_And_Get
1044 		  (
1045 		     p_count  => x_msg_count,
1046 		     p_data  =>  x_msg_data,
1047 		     p_encoded => FND_API.G_FALSE
1048 		  );
1049   END Create_Update_Trip;
1050 
1051 --========================================================================
1052 -- PROCEDURE : Create_Update_Trip         FTE wrapper
1053 --
1054 -- COMMENT   : Wrapper around WSH_TRIPS_PUB.Create_Update_Trip
1055 --             Passes in all the parameters reqd (record type input changed to
1056 --             number of parameters which are collected, assigned to a record
1057 --             and call WSH_TRIPS_PUB.Create_Update_Trip
1058 -- MODIFIED    09/04/2002 HBHAGAVA
1059 --	       Added new paramters for Load Tender
1060 --			p_rec_tender_id
1061 --			p_delivery_leg_ids
1062 --========================================================================
1063   PROCEDURE Create_Update_Trip
1064   ( p_api_version_number     		IN   NUMBER,
1065 	p_init_msg_list      		IN   VARCHAR2,
1066 	x_return_status          	OUT NOCOPY   VARCHAR2,
1067 	x_msg_count              	OUT NOCOPY   NUMBER,
1068 	x_msg_data               	OUT NOCOPY   VARCHAR2,
1069         x_trip_id                       OUT NOCOPY       NUMBER,
1070         x_trip_name                     OUT NOCOPY       VARCHAR2,
1071 	x_CREATION_DATE          	OUT NOCOPY	DATE,
1072 	x_CREATED_BY             	OUT NOCOPY 	NUMBER,
1073 	x_LAST_UPDATE_DATE       	OUT NOCOPY 	DATE,
1074 	x_LAST_UPDATED_BY        	OUT NOCOPY 	NUMBER,
1075 	x_LAST_UPDATE_LOGIN      	OUT NOCOPY 	NUMBER,
1076 	p_action_code            	IN   VARCHAR2,
1077 	p_rec_TRIP_ID                   IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
1078 	p_rec_NAME                      IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1079 	p_rec_ARRIVE_AFTER_TRIP_ID      IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
1080 	p_rec_ARRIVE_AFTER_TRIP_NAME    IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1081 	p_rec_VEHICLE_ITEM_ID           IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
1082 	p_rec_VEHICLE_ITEM_DESC         IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1083 	p_rec_VEHICLE_ORGANIZATION_ID   IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
1084 	p_rec_VEHICLE_ORGANIZATION_COD  IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1085 	p_rec_VEHICLE_NUMBER            IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1086 	p_rec_VEHICLE_NUM_PREFIX        IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1087 	p_rec_CARRIER_ID                IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
1088 	p_rec_SHIP_METHOD_CODE          IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1089 	p_rec_SHIP_METHOD_NAME          IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1090 	p_rec_ROUTE_ID                  IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
1091 	p_rec_ROUTING_INSTRUCTIONS      IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1092 	p_rec_ATTRIBUTE_CATEGORY        IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1093 	p_rec_ATTRIBUTE1                IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1094 	p_rec_ATTRIBUTE2                IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1095 	p_rec_ATTRIBUTE3                IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1096 	p_rec_ATTRIBUTE4                IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1097 	p_rec_ATTRIBUTE5                IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1098 	p_rec_ATTRIBUTE6                IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1099 	p_rec_ATTRIBUTE7                IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1100 	p_rec_ATTRIBUTE8                IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1101 	p_rec_ATTRIBUTE9                IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1102 	p_rec_ATTRIBUTE10               IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1103 	p_rec_ATTRIBUTE11               IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1104 	p_rec_ATTRIBUTE12               IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1105 	p_rec_ATTRIBUTE13               IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1106 	p_rec_ATTRIBUTE14               IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1107 	p_rec_ATTRIBUTE15               IN       VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1108 	p_rec_SERVICE_LEVEL             IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR,
1109 	p_rec_MODE_OF_TRANSPORT         IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR,
1110 	p_rec_CONSOLIDATION_ALLOWED     IN       VARCHAR2  DEFAULT FND_API.G_MISS_CHAR,
1111 	p_rec_PLANNED_FLAG          	IN 	 VARCHAR2  DEFAULT FND_API.G_MISS_CHAR,
1112 	p_rec_STATUS_CODE           	IN	 VARCHAR2  DEFAULT FND_API.G_MISS_CHAR,
1113 	p_rec_FREIGHT_TERMS_CODE    	IN 	 VARCHAR2  DEFAULT FND_API.G_MISS_CHAR,
1114 	p_rec_LOAD_TENDER_STATUS    	IN 	 VARCHAR2  DEFAULT FND_API.G_MISS_CHAR,
1115 	p_rec_ROUTE_LANE_ID         	IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
1116 	p_rec_LANE_ID              	IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
1117 	p_rec_SCHEDULE_ID          	IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
1118 	p_rec_BOOKING_NUMBER     	IN	 VARCHAR2  DEFAULT FND_API.G_MISS_CHAR,
1119 	p_rec_CREATION_DATE             IN       DATE DEFAULT FND_API.G_MISS_DATE,
1120 	p_rec_CREATED_BY                IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
1121 	p_rec_LAST_UPDATE_DATE          IN       DATE DEFAULT FND_API.G_MISS_DATE,
1122 	p_rec_LAST_UPDATED_BY           IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
1123 	p_rec_LAST_UPDATE_LOGIN         IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
1124 	p_rec_PROGRAM_APPLICATION_ID    IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
1125 	p_rec_PROGRAM_ID                IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
1126 	p_rec_PROGRAM_UPDATE_DATE       IN       DATE DEFAULT FND_API.G_MISS_DATE,
1127 	p_rec_REQUEST_ID                IN       NUMBER DEFAULT FND_API.G_MISS_NUM,
1128 	p_carrier_contact_id 	    	IN	     NUMBER DEFAULT FND_API.G_MISS_NUM,
1129 	p_shipper_name		    	IN	     VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1130 	p_shipper_wait_time		IN	     NUMBER DEFAULT FND_API.G_MISS_NUM,
1131 	p_wait_time_uom		    	IN	     VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1132 	p_action			IN	     VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1133 	p_carrier_remarks		IN	     VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1134         p_operator                      IN           VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1135         p_rec_IGNORE_FOR_PLANNING       IN           VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1136         p_rec_CONSIGNEE_CAR_AC_NO	IN	 VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1137         p_rec_CARRIER_REF_NUMBER	IN	 VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1138         p_rec_ROUTING_RULE_ID		IN	 NUMBER DEFAULT FND_API.G_MISS_NUM,
1139         p_rec_APPEND_FLAG		IN 	 VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
1140         p_rec_RANK_ID			IN	 NUMBER DEFAULT FND_API.G_MISS_NUM
1141         ) IS
1142 
1143   -- <insert here your local variables declaration>
1144 	p_trip_info_tab	WSH_TRIPS_PVT.Trip_Attr_Tbl_Type;
1145 	p_trip_info WSH_TRIPS_PVT.Trip_Rec_Type;
1146 	p_trip_in_rec WSH_TRIPS_GRP.TripInRecType;
1147 	x_out_tab WSH_TRIPS_GRP.trip_Out_tab_type;
1148 	p_commit VARCHAR2(1);
1149 
1150 	l_shipper_wait_time		NUMBER;
1151 	l_carrier_name			VARCHAR2(1000);
1152 	l_temp_action			VARCHAR2(30);
1153 	l_load_tender_number		NUMBER;
1154 	l_db_tender_status    		VARCHAR2(30);
1155 
1156 	l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
1157 	l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'CREATE_UPDATE_TRIP';
1158 
1159 	l_number_of_warnings	NUMBER;
1160 	l_number_of_errors	NUMBER;
1161 	l_return_status             VARCHAR2(32767);
1162 	l_msg_count                 NUMBER;
1163 	l_msg_data                  VARCHAR2(32767);
1164 
1165 	l_action_out_rec	FTE_ACTION_OUT_REC;
1166 	trip_action_param 	FTE_TRIP_ACTION_PARAM_REC;
1167 	l_tender_attr_rec	FTE_TENDER_ATTR_REC;
1168 
1169 	l_db_lane_id		NUMBER;
1170 
1171   BEGIN
1172 
1173 
1174 	SAVEPOINT	CREATE_UPDATE_TRIP_PUB;
1175 
1176 	-- Initialize message list if p_init_msg_list is set to TRUE.
1177 	--
1178 	--
1179 	IF FND_API.to_Boolean( p_init_msg_list )
1180 	THEN
1181 		FND_MSG_PUB.initialize;
1182 	END IF;
1183 	--
1184 	--
1185 	--  Initialize API return status to success
1186 	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1187 	x_msg_count		:= 0;
1188 	x_msg_data		:= 0;
1189 	l_return_status 	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1190 	l_number_of_warnings	:= 0;
1191 	l_number_of_errors	:= 0;
1192 
1193 	IF l_debug_on THEN
1194 	      wsh_debug_sv.push(l_module_name);
1195 	END IF;
1196 
1197 	IF l_debug_on
1198 	THEN
1199 		WSH_DEBUG_SV.logmsg(l_module_name,' Trip id 	' 		|| p_rec_TRIP_ID, WSH_DEBUG_SV.C_PROC_LEVEL);
1200 		WSH_DEBUG_SV.logmsg(l_module_name,' Carrrier Id ' 	|| p_rec_CARRIER_ID, WSH_DEBUG_SV.C_PROC_LEVEL);
1201 		WSH_DEBUG_SV.logmsg(l_module_name,' Mode 	' 		|| p_rec_MODE_OF_TRANSPORT, WSH_DEBUG_SV.C_PROC_LEVEL);
1202 		WSH_DEBUG_SV.logmsg(l_module_name,' Lane Id 	' 		|| p_rec_lane_id, WSH_DEBUG_SV.C_PROC_LEVEL);
1203 		WSH_DEBUG_SV.logmsg(l_module_name,' Trip Name 	'  || p_rec_NAME ,WSH_DEBUG_SV.C_PROC_LEVEL);
1204 		WSH_DEBUG_SV.logmsg(l_module_name,' Load Tener Status '  || p_rec_LOAD_TENDER_STATUS ,WSH_DEBUG_SV.C_PROC_LEVEL);
1205 		WSH_DEBUG_SV.logmsg(l_module_name,' Ignore for Plan '|| p_rec_IGNORE_FOR_PLANNING ,WSH_DEBUG_SV.C_PROC_LEVEL);
1206 		WSH_DEBUG_SV.logmsg(l_module_name,' ShipMethod '|| p_rec_SHIP_METHOD_CODE ,WSH_DEBUG_SV.C_PROC_LEVEL);
1207 		WSH_DEBUG_SV.logmsg(l_module_name,' Rank Id '|| p_rec_RANK_ID ,WSH_DEBUG_SV.C_PROC_LEVEL);
1208 		WSH_DEBUG_SV.logmsg(l_module_name,' CarConsAcNo '|| p_rec_CONSIGNEE_CAR_AC_NO ,WSH_DEBUG_SV.C_PROC_LEVEL);
1209 		WSH_DEBUG_SV.logmsg(l_module_name,' CarRefNumber '|| p_rec_CARRIER_REF_NUMBER ,WSH_DEBUG_SV.C_PROC_LEVEL);
1210 	END IF;
1211 
1212 
1213 	--populate trip record
1214 	p_trip_info.TRIP_ID 			:= p_rec_TRIP_ID;
1215 	p_trip_info.NAME 			:= p_rec_NAME;
1216 	p_trip_info.ARRIVE_AFTER_TRIP_ID 	:= p_rec_ARRIVE_AFTER_TRIP_ID;
1217 	p_trip_info.ARRIVE_AFTER_TRIP_NAME 	:= p_rec_ARRIVE_AFTER_TRIP_NAME;
1218 	p_trip_info.VEHICLE_ITEM_ID 		:= p_rec_VEHICLE_ITEM_ID;
1219 	p_trip_info.VEHICLE_ITEM_DESC 		:= p_rec_VEHICLE_ITEM_DESC;
1220 	p_trip_info.VEHICLE_ORGANIZATION_ID 	:= p_rec_VEHICLE_ORGANIZATION_ID;
1221 	p_trip_info.VEHICLE_ORGANIZATION_CODE 	:= p_rec_VEHICLE_ORGANIZATION_COD;
1222 	p_trip_info.VEHICLE_NUMBER 		:= p_rec_VEHICLE_NUMBER;
1223 	p_trip_info.VEHICLE_NUM_PREFIX 		:= p_rec_VEHICLE_NUM_PREFIX;
1224 	p_trip_info.CARRIER_ID 			:= p_rec_CARRIER_ID;
1225 	--p_trip_info.SHIP_METHOD_CODE 		:= p_rec_SHIP_METHOD_CODE;
1226 	p_trip_info.SHIP_METHOD_CODE 		:= FND_API.G_MISS_CHAR;
1227 
1228 	p_trip_info.SHIP_METHOD_NAME 		:= p_rec_SHIP_METHOD_NAME;
1229 	p_trip_info.ROUTE_ID 			:= p_rec_ROUTE_ID;
1230 	p_trip_info.ROUTING_INSTRUCTIONS 	:= p_rec_ROUTING_INSTRUCTIONS;
1231 	p_trip_info.ATTRIBUTE_CATEGORY 		:= p_rec_ATTRIBUTE_CATEGORY;
1232 	p_trip_info.ATTRIBUTE1 			:= p_rec_ATTRIBUTE1;
1233 	p_trip_info.ATTRIBUTE2 			:= p_rec_ATTRIBUTE2;
1234 	p_trip_info.ATTRIBUTE3 			:= p_rec_ATTRIBUTE3;
1235 	p_trip_info.ATTRIBUTE4 			:= p_rec_ATTRIBUTE4;
1236 	p_trip_info.ATTRIBUTE5 			:= p_rec_ATTRIBUTE5;
1237 	p_trip_info.ATTRIBUTE6 			:= p_rec_ATTRIBUTE6;
1238 	p_trip_info.ATTRIBUTE7 			:= p_rec_ATTRIBUTE7;
1239 	p_trip_info.ATTRIBUTE8 			:= p_rec_ATTRIBUTE8;
1240 	p_trip_info.ATTRIBUTE9 			:= p_rec_ATTRIBUTE9;
1241 	p_trip_info.ATTRIBUTE10			:= p_rec_ATTRIBUTE10;
1242 	p_trip_info.ATTRIBUTE11			:= p_rec_ATTRIBUTE11;
1243 	p_trip_info.ATTRIBUTE12 		:= p_rec_ATTRIBUTE12;
1244 	p_trip_info.ATTRIBUTE13 		:= p_rec_ATTRIBUTE13;
1245 	p_trip_info.ATTRIBUTE14 		:= p_rec_ATTRIBUTE14;
1246 	p_trip_info.ATTRIBUTE15 		:= p_rec_ATTRIBUTE15;
1247 	p_trip_info.SERVICE_LEVEL		:= p_rec_SERVICE_LEVEL;
1248 	p_trip_info.MODE_OF_TRANSPORT		:= p_rec_MODE_OF_TRANSPORT;
1249 	p_trip_info.CONSOLIDATION_ALLOWED 	:= p_rec_CONSOLIDATION_ALLOWED;
1250 
1251 	p_trip_info.PLANNED_FLAG 		:= p_rec_PLANNED_FLAG;
1252 	p_trip_info.STATUS_CODE 		:= p_rec_STATUS_CODE;
1253 	p_trip_info.FREIGHT_TERMS_CODE 		:= p_rec_FREIGHT_TERMS_CODE;
1254 --	p_trip_info.LOAD_TENDER_STATUS 		:= p_rec_LOAD_TENDER_STATUS;
1255 	p_trip_info.ROUTE_LANE_ID 		:= p_rec_ROUTE_LANE_ID;
1256 	p_trip_info.LANE_ID 			:= p_rec_LANE_ID;
1257 	p_trip_info.SCHEDULE_ID			:= p_rec_SCHEDULE_ID;
1258 	p_trip_info.BOOKING_NUMBER 		:= p_rec_BOOKING_NUMBER;
1259 
1260 	p_trip_info.CREATION_DATE 		:= p_rec_CREATION_DATE;
1261 	p_trip_info.CREATED_BY 			:= p_rec_CREATED_BY;
1262 	p_trip_info.LAST_UPDATE_DATE 		:= p_rec_LAST_UPDATE_DATE;
1263 	p_trip_info.LAST_UPDATED_BY 		:= p_rec_LAST_UPDATED_BY;
1264 	p_trip_info.LAST_UPDATE_LOGIN 		:= p_rec_LAST_UPDATE_LOGIN;
1265 	p_trip_info.PROGRAM_APPLICATION_ID 	:= p_rec_PROGRAM_APPLICATION_ID;
1266 	p_trip_info.PROGRAM_ID 			:= p_rec_PROGRAM_ID;
1267 	p_trip_info.PROGRAM_UPDATE_DATE 	:= p_rec_PROGRAM_UPDATE_DATE;
1268 	p_trip_info.REQUEST_ID 			:= p_rec_REQUEST_ID;
1269 	p_trip_info.ignore_for_planning 	:= p_rec_IGNORE_FOR_PLANNING;
1270 
1271 	--- Release 12 Attributes
1272 	p_trip_info.carrier_reference_number 	:= p_rec_CARRIER_REF_NUMBER;
1273 	p_trip_info.rank_id 			:= p_rec_RANK_ID;
1274 	p_trip_info.consignee_carrier_ac_no 	:= p_rec_CONSIGNEE_CAR_AC_NO;
1275 	p_trip_info.routing_rule_id 		:= p_rec_ROUTING_RULE_ID;
1276     	p_trip_info.append_flag 		:= p_rec_APPEND_FLAG;
1277 
1278 	IF l_debug_on THEN
1279 		WSH_DEBUG_SV.logmsg(l_module_name,' p_action_code ' ||
1280 					p_action_code,WSH_DEBUG_SV.C_PROC_LEVEL);
1281 		WSH_DEBUG_SV.logmsg(l_module_name,' p_ship_method_code ' ||
1282 					p_rec_ship_method_code,WSH_DEBUG_SV.C_PROC_LEVEL);
1283 	END IF;
1284 
1285     	IF (p_action_code = 'UPDATE')
1286     	THEN
1287     	--{
1288 
1289 		-- Get Current load tender status of trip
1290 		-- Modified for REL12 HBHAGAVA
1291 		SELECT LOAD_TENDER_STATUS, LANE_ID INTO l_db_tender_status, l_db_lane_id
1292 		FROM WSH_TRIPS
1293 		WHERE TRIP_ID = p_rec_TRIP_ID;
1294 
1295 
1296 		IF l_debug_on THEN
1297 			WSH_DEBUG_SV.logmsg(l_module_name,' l_db_tender_status ' ||
1298 				l_db_tender_status,WSH_DEBUG_SV.C_PROC_LEVEL);
1299 		END IF;
1300 
1301 
1302 		--
1303 		-- rel 12 HBHAGAVA
1304 		-- Set tender parameters to null if lane id on the trip is getting set to null
1305 		-- when we cancel the service we should set tender related params to null.
1306 		-- Even if lane id passed in is not same as the one in db then we should
1307 		-- clear off  the tender parameters. This is because we might have picked up
1308 		-- tender enabled lane first and then might have picked up a non-tender
1309 		-- enabled trip.
1310 		IF ((p_rec_LANE_ID IS NULL) OR (p_rec_lane_id <> l_db_lane_id))
1311 		THEN
1312 		--{
1313 
1314 			p_trip_info.load_tender_status := NULL;
1315 			p_trip_info.wf_name := NULL;
1316 			p_trip_info.wf_process_name := NULL;
1317 			p_trip_info.wf_item_key := NULL;
1318 			p_trip_info.carrier_contact_id := NULL;
1319 			p_trip_info.shipper_wait_time := NULL;
1320 			p_trip_info.wait_time_uom := NULL;
1321 			p_trip_info.load_tender_number := NULL;
1322 			p_trip_info.LOAD_TENDERED_TIME := NULL;
1323 			p_trip_info.OPERATOR := NULL;
1324 			p_trip_info.CARRIER_RESPONSE := NULL;
1325 			p_trip_info.CARRIER_REFERENCE_NUMBER := NULL;
1326 			p_trip_info.RANK_ID	:= NULL;
1327 
1328 		--}
1329 		ELSIF (l_db_tender_status IS NOT NULL)
1330 		THEN
1331 		--{
1332 
1333 			-- In packj User can update trip name/ routing instructions after tendered.
1334 			-- In order to retain teneder parameters we have to set these values.
1335 			-- added by HBHAGAVA
1336 			p_trip_info.load_tender_status := FND_API.G_MISS_CHAR;
1337 			p_trip_info.wf_name := FND_API.G_MISS_CHAR;
1338 			p_trip_info.wf_process_name := FND_API.G_MISS_CHAR;
1339 			p_trip_info.wf_item_key := FND_API.G_MISS_CHAR;
1340 			p_trip_info.carrier_contact_id := FND_API.G_MISS_NUM;
1341 			p_trip_info.shipper_wait_time := FND_API.G_MISS_NUM;
1342 			p_trip_info.wait_time_uom := FND_API.G_MISS_CHAR;
1343 			p_trip_info.load_tender_number := FND_API.G_MISS_NUM;
1344 			p_trip_info.LOAD_TENDERED_TIME := FND_API.G_MISS_DATE;
1345 			p_trip_info.OPERATOR := FND_API.G_MISS_CHAR;
1346 			p_trip_info.CARRIER_RESPONSE := FND_API.G_MISS_CHAR;
1347 			p_trip_info.CARRIER_REFERENCE_NUMBER := FND_API.G_MISS_CHAR;
1348 		--}
1349 		END IF;
1350 
1351 
1352 
1353 
1354 
1355 	--}
1356 	END IF;
1357 
1358 
1359 	p_trip_info_tab(1):=p_trip_info;
1360 	p_trip_in_rec.caller:=G_PKG_NAME;
1361 	p_trip_in_rec.phase:=NULL;
1362 	p_trip_in_rec.action_code:=p_action_code;
1363 	p_commit:='F';
1364 
1365 
1366        -- This is to make sure we do not udpate anything for update tender event
1367 
1368 	IF (p_action IS NULL OR p_action <> FTE_TENDER_PVT.S_SHIPPER_UPDATED)
1369 	THEN
1370 		--call wsh public API
1371 		WSH_INTERFACE_GRP.Create_Update_Trip
1372 		(
1373 		    p_api_version_number	=>p_api_version_number,
1374 		    p_init_msg_list		=>FND_API.G_FALSE,
1375 		    p_commit			=>p_commit,
1376 		    x_return_status		=>l_return_status,
1377 		    x_msg_count			=>l_msg_count,
1378 		    x_msg_data			=>l_msg_data,
1379 		    p_trip_info_tab		=>p_trip_info_tab,
1380 		    p_in_rec			=>p_trip_in_rec,
1381 		    x_out_tab			=>x_out_tab
1382 		);
1383 
1384 		IF l_debug_on THEN
1385 			WSH_DEBUG_SV.logmsg(l_module_name,' l_return_status after
1386 					WSH_INTERFACE_GRP.Create_Update_Trip ' ||
1387 					l_return_status,WSH_DEBUG_SV.C_PROC_LEVEL);
1388 		END IF;
1389 
1390 		wsh_util_core.api_post_call(
1391 		      p_return_status    =>l_return_status,
1392 		      x_num_warnings     =>l_number_of_warnings,
1393 		      x_num_errors       =>l_number_of_errors,
1394 		      p_msg_data	 =>l_msg_data);
1395 
1396 		IF (l_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS
1397 			and x_out_tab.count > 0) THEN
1398 			x_trip_id := x_out_tab(x_out_tab.FIRST).trip_id;
1399 			x_trip_name := x_out_tab(x_out_tab.FIRST).trip_name;
1400 		END IF;
1401 	END IF;
1402 
1403 	IF l_debug_on THEN
1404 		WSH_DEBUG_SV.logmsg(l_module_name,' trip_name ' ||
1405 				x_trip_name,WSH_DEBUG_SV.C_PROC_LEVEL);
1406 		WSH_DEBUG_SV.logmsg(l_module_name,' p_action_code => ' ||
1407 				p_action_code,WSH_DEBUG_SV.C_PROC_LEVEL);
1408 		WSH_DEBUG_SV.logmsg(l_module_name,' p_action => ' ||
1409 				p_action,WSH_DEBUG_SV.C_PROC_LEVEL);
1410 
1411        END IF;
1412 
1413 
1414        -- This is for Tender Call: HBHAGAVA
1415 
1416 	IF (p_action <> FND_API.G_MISS_CHAR
1417 		AND p_action IS NOT NULL)
1418 	THEN
1419 	--{
1420 
1421 		trip_action_param := FTE_TRIP_ACTION_PARAM_REC(null,p_action,
1422 						null,null,null,null,null,null,
1423 						null,null,null,null,null,null,
1424 						null,null);
1425 
1426 		l_tender_attr_rec	:= FTE_TENDER_ATTR_REC(
1427 						p_rec_TRIP_ID, -- TripId
1428 						p_rec_NAME, -- Trip Name
1429 						p_rec_TRIP_ID, --tender id
1430 						l_db_tender_status, -- status
1431 						p_carrier_contact_id,-- car_contact_id
1432 						null, -- car contact name
1433 						null, -- auto_accept
1434 						null, -- auto tender
1435 						p_shipper_wait_time, -- ship wait time
1436 						p_wait_time_uom, -- ship time uom
1437 						null, -- wf name
1438 						null, -- wf process name
1439 						null, --wf item key
1440 						p_carrier_remarks, -- Carrier response
1441 						null, -- carrier pickup date
1442 						null, -- carrier dropoff date
1443 						p_rec_VEHICLE_NUMBER, -- vehicle number
1444 						p_operator, -- operator
1445 						p_rec_carrier_ref_number, -- carrier ref number
1446 						null, -- shipment status header id
1447 						FTE_TENDER_PVT.S_SOURCE_CP, -- response source
1448 						null); -- transaction id
1449 
1450 
1451 		  Trip_Action
1452 		  ( p_api_version_number     => 1.0,
1453 		    p_init_msg_list          => FND_API.G_FALSE,
1454 		    x_return_status          => l_return_status,
1455 		    x_msg_count              => l_msg_count,
1456 		    x_msg_data               => l_msg_data,
1457 		    x_action_out_rec	     => l_action_out_rec,
1458 		    p_trip_info_rec	     => l_tender_attr_rec,
1459 		    p_action_prms	     => trip_action_param);
1460 
1461 		IF l_debug_on THEN
1462 			WSH_DEBUG_SV.logmsg(l_module_name,' l_return_status after
1463 					Trpi_action ' || l_return_status,WSH_DEBUG_SV.C_PROC_LEVEL);
1464 		END IF;
1465 
1466 		wsh_util_core.api_post_call(
1467 		      p_return_status    =>l_return_status,
1468 		      x_num_warnings     =>l_number_of_warnings,
1469 		      x_num_errors       =>l_number_of_errors,
1470 		      p_msg_data	 =>l_msg_data);
1471 
1472 
1473 	END IF;
1474 	--}
1475 
1476         -- query up  WHO columns and assign the values
1477         IF (p_action_code <> 'CREATE') THEN
1478           SELECT CREATION_DATE, CREATED_BY, LAST_UPDATE_DATE,
1479                 LAST_UPDATED_BY,LAST_UPDATE_LOGIN
1480           INTO x_CREATION_DATE,x_CREATED_BY,x_LAST_UPDATE_DATE,
1481              x_LAST_UPDATED_BY, x_LAST_UPDATE_LOGIN
1482           FROM WSH_TRIPS
1483           WHERE TRIP_ID = p_rec_TRIP_ID;
1484         END IF;
1485 
1486 	IF l_number_of_errors > 0
1487 	THEN
1488 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1489 	ELSIF l_number_of_warnings > 0
1490 	THEN
1491 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
1492 	ELSE
1493 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1494 	END IF;
1495 
1496 	FND_MSG_PUB.Count_And_Get
1497 	  (
1498 	     p_count  => x_msg_count,
1499 	     p_data  =>  x_msg_data,
1500 	     p_encoded => FND_API.G_FALSE
1501 	  );
1502 
1503 	IF l_debug_on THEN
1504 		WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
1505 		WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
1506 		WSH_DEBUG_SV.logmsg(l_module_name,'x_t_id:' || x_trip_id);
1507 		WSH_DEBUG_SV.logmsg(l_module_name,'x_t_name:' || x_trip_name);
1508 	END IF;
1509 
1510 	IF l_debug_on THEN
1511 		WSH_DEBUG_SV.pop(l_module_name);
1512 	END IF;
1513 
1514   EXCEPTION
1515 	WHEN FND_API.G_EXC_ERROR THEN
1516 		ROLLBACK TO CREATE_UPDATE_TRIP_PUB;
1517 		x_return_status := FND_API.G_RET_STS_ERROR;
1518 		FND_MSG_PUB.Count_And_Get
1519 		  (
1520 		     p_count  => x_msg_count,
1521 		     p_data  =>  x_msg_data,
1522 		     p_encoded => FND_API.G_FALSE
1523 		  );
1524 
1525 		IF l_debug_on THEN
1526 			WSH_DEBUG_SV.logmsg(l_module_name,' Error Occured ' ||
1527 					x_return_status,WSH_DEBUG_SV.C_PROC_LEVEL);
1528 			WSH_DEBUG_SV.pop(l_module_name);
1529 		END IF;
1530 
1531 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1532 		ROLLBACK TO CREATE_UPDATE_TRIP_PUB;
1533 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1534 		FND_MSG_PUB.Count_And_Get
1535 		  (
1536 		     p_count  => x_msg_count,
1537 		     p_data  =>  x_msg_data,
1538 		     p_encoded => FND_API.G_FALSE
1539 		  );
1540 		IF l_debug_on THEN
1541 			WSH_DEBUG_SV.logmsg(l_module_name,' Unexpected error Occured ' ||
1542 					x_return_status,WSH_DEBUG_SV.C_PROC_LEVEL);
1543 			WSH_DEBUG_SV.pop(l_module_name);
1544 		END IF;
1545 
1546 	WHEN OTHERS THEN
1547 		IF l_debug_on THEN
1548 			WSH_DEBUG_SV.logmsg(l_module_name,'P1DEBUG:13  ',WSH_DEBUG_SV.C_PROC_LEVEL);
1549 		END IF;
1550 
1551 		ROLLBACK TO CREATE_UPDATE_TRIP_PUB;
1552 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1553 		FND_MSG_PUB.Count_And_Get
1554 		  (
1555 		     p_count  => x_msg_count,
1556 		     p_data  =>  x_msg_data,
1557 		     p_encoded => FND_API.G_FALSE
1558 		  );
1559 		IF l_debug_on THEN
1560 			WSH_DEBUG_SV.logmsg(l_module_name,' SQL Error Occured ' ||
1561 					SQLCODE||' '||SQLERRM, WSH_DEBUG_SV.C_PROC_LEVEL);
1562 			WSH_DEBUG_SV.pop(l_module_name);
1563 		END IF;
1564 
1565   END Create_Update_Trip;
1566 --
1567 --========================================================================
1568 -- PROCEDURE : Trip_Action         FTE wrapper
1569 --========================================================================
1570 
1571   PROCEDURE Trip_Action
1572   ( p_api_version_number     IN   NUMBER,
1573     p_init_msg_list          IN   VARCHAR2,
1574     x_return_status          OUT NOCOPY   VARCHAR2,
1575     x_msg_count              OUT NOCOPY   NUMBER,
1576     x_msg_data               OUT NOCOPY   VARCHAR2,
1577     p_action_code            IN   VARCHAR2,
1578     p_trip_id                IN   NUMBER DEFAULT NULL,
1579     p_trip_name              IN   VARCHAR2 DEFAULT NULL,
1580     p_wv_override_flag       IN   VARCHAR2 DEFAULT 'N') IS
1581 
1582 
1583 
1584   p_entity_id_tab  WSH_UTIL_CORE.id_tab_type;
1585   p_action_prms WSH_TRIPS_GRP.action_parameters_rectype;
1586   x_trip_out_rec WSH_TRIPS_GRP.tripActionOutRecType;
1587   p_commit VARCHAR2(1);
1588 
1589 --
1590 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
1591 --
1592 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'TRIP_ACTION';
1593 
1594 
1595   BEGIN
1596 
1597 	SAVEPOINT	TRIP_ACTION_PUB;
1598 
1599 	-- Initialize message list if p_init_msg_list is set to TRUE.
1600 	--
1601 	--
1602 	IF FND_API.to_Boolean( p_init_msg_list )
1603 	THEN
1604 		FND_MSG_PUB.initialize;
1605 	END IF;
1606 	--
1607 	--
1608 	--  Initialize API return status to success
1609 	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1610 	x_msg_count		:= 0;
1611 	x_msg_data		:= 0;
1612 
1613 	IF l_debug_on THEN
1614 	      wsh_debug_sv.push(l_module_name);
1615 	END IF;
1616 
1617 	p_entity_id_tab(1):=p_trip_id;
1618 	p_action_prms.action_code:=p_action_code;
1619 	p_action_prms.phase:=NULL;
1620 	p_action_prms.caller:=G_PKG_NAME;
1621 	p_commit:='F';
1622 
1623 	--call wsh public API
1624 	WSH_INTERFACE_GRP.Trip_Action
1625 	(
1626 	    p_api_version_number=>p_api_version_number,
1627 	    p_init_msg_list=>FND_API.G_FALSE,
1628 	    p_commit=>p_commit,
1629 	    p_entity_id_tab=>p_entity_id_tab,
1630 	    p_action_prms=>p_action_prms,
1631 	    x_trip_out_rec=>x_trip_out_rec,
1632 	    x_return_status=>x_return_status,
1633 	    x_msg_count=>x_msg_count,
1634 	    x_msg_data=>x_msg_data
1635 	);
1636 
1637 	IF l_debug_on THEN
1638 		WSH_DEBUG_SV.pop(l_module_name);
1639 	END IF;
1640 
1641 
1642   EXCEPTION
1643 	WHEN FND_API.G_EXC_ERROR THEN
1644 		ROLLBACK TO TRIP_ACTION_PUB;
1645 		x_return_status := FND_API.G_RET_STS_ERROR;
1646 		FND_MSG_PUB.Count_And_Get
1647 		  (
1648 		     p_count  => x_msg_count,
1649 		     p_data  =>  x_msg_data,
1650 		     p_encoded => FND_API.G_FALSE
1651 		  );
1652 
1653 		IF l_debug_on THEN
1654 			WSH_DEBUG_SV.pop(l_module_name);
1655 		END IF;
1656 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1657 		ROLLBACK TO TRIP_ACTION_PUB;
1658 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1659 		FND_MSG_PUB.Count_And_Get
1660 		  (
1661 		     p_count  => x_msg_count,
1662 		     p_data  =>  x_msg_data,
1663 		     p_encoded => FND_API.G_FALSE
1664 		  );
1665 		IF l_debug_on THEN
1666 			WSH_DEBUG_SV.pop(l_module_name);
1667 		END IF;
1668 	WHEN OTHERS THEN
1669 		ROLLBACK TO TRIP_ACTION_PUB;
1670 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1671 		FND_MSG_PUB.Count_And_Get
1672 		  (
1673 		     p_count  => x_msg_count,
1674 		     p_data  =>  x_msg_data,
1675 		     p_encoded => FND_API.G_FALSE
1676 		  );
1677 		IF l_debug_on THEN
1678 			WSH_DEBUG_SV.pop(l_module_name);
1679 		END IF;
1680   END Trip_Action;
1681   --
1682   --
1683   --
1684   --
1685 --======================================================================
1686 -- Added Following procedures for 10+ --ajpraba
1687 --======================================================================
1688 
1689     --Added by ajprabha for 10+ validations.
1690     --========================================================================
1691     -- PROCEDURE : TENDER_TRIP_VALIDATIONS  PRIVATE
1692     --
1693     -- PARAMETERS: p_tripNameTab     IN  FTE_NAME_TAB_TYPE
1694     --
1695     -- RETURN    :  Token of Trips Names as per required to display.
1696     -- VERSION   : current version         1.0
1697     --             initial version         1.0
1698     --========================================================================
1699     FUNCTION GET_TRIP_MSG_TOKEN
1700         (p_tenderIdTab     IN  FTE_ID_TAB_TYPE -- Table of Trip Names
1701      ) RETURN VARCHAR2 IS
1702         l_debug_on                  CONSTANT BOOLEAN       := WSH_DEBUG_SV.is_debug_enabled;
1703         l_module_name               CONSTANT VARCHAR2(100) := 'FTE.PLSQL.' || G_PKG_NAME || '.' || 'GET_TRIP_MSG_TOKEN';
1704 
1705         l_tokenName VARCHAR2(2000);
1706     BEGIN
1707         IF l_debug_on THEN
1708             WSH_DEBUG_SV.PUSH(l_module_name);
1709             WSH_DEBUG_SV.logmsg(l_module_name,'Setting new user-friendly message for '|| p_tenderIdTab.COUNT||' Trips');
1710         END IF;
1711         --Setting the Tender IDs for displaying the appropriate message.
1712         l_tokenName := '';
1713         FOR i IN p_tenderIdTab.FIRST..p_tenderIdTab.LAST LOOP
1714             l_tokenName := l_tokenName || p_tenderIdTab(i);
1715             IF ((i+1) = p_tenderIdTab.COUNT) THEN
1716                 l_tokenName := l_tokenName || ' & ';
1717             ELSIF(i <> p_tenderIdTab.COUNT) THEN
1718                 l_tokenName := l_tokenName || ' , ';
1719             END IF;
1720         END LOOP;
1721         IF l_debug_on THEN
1722             WSH_DEBUG_SV.logmsg(l_module_name, 'Setting Token as - ' || l_tokenName);
1723             WSH_DEBUG_SV.POP(l_module_name);
1724         END IF;
1725         RETURN l_tokenName;
1726     END GET_TRIP_MSG_TOKEN;
1727 
1728 
1729     --Added by ajprabha for 10+ validations.
1730     --========================================================================
1731     -- PROCEDURE : TENDER_TRIP_VALIDATIONS  PRIVATE
1732     --
1733     -- PARAMETERS: p_tripNameTab     IN  FTE_NAME_TAB_TYPE
1734     --
1735     -- RETURN    :  Token of Trips Names as per required to display.
1736     -- VERSION   : current version         1.0
1737     --             initial version         1.0
1738     --========================================================================
1739     FUNCTION GET_TRIP_MSG_TOKEN
1740         (p_tripNamesTab     IN  FTE_NAME_TAB_TYPE -- Table of Trip Names
1741      ) RETURN VARCHAR2 IS
1742         l_debug_on                  CONSTANT BOOLEAN       := WSH_DEBUG_SV.is_debug_enabled;
1743         l_module_name               CONSTANT VARCHAR2(100) := 'FTE.PLSQL.' || G_PKG_NAME || '.' || 'GET_TRIP_MSG_TOKEN';
1744 
1745         l_tokenName VARCHAR2(2000);
1746     BEGIN
1747         IF l_debug_on THEN
1748             WSH_DEBUG_SV.PUSH(l_module_name);
1749             WSH_DEBUG_SV.logmsg(l_module_name,'Setting new user-friendly message for '|| p_tripNamesTab.COUNT||' Trips');
1750         END IF;
1751         --Setting the Tender IDs for displaying the appropriate message.
1752         l_tokenName := '';
1753         FOR i IN p_tripNamesTab.FIRST..p_tripNamesTab.LAST LOOP
1754             l_tokenName := l_tokenName || p_tripNamesTab(i);
1755             IF ((i+1) = p_tripNamesTab.COUNT) THEN
1756                 l_tokenName := l_tokenName || ' & ';
1757             ELSIF(i <> p_tripNamesTab.COUNT) THEN
1758                 l_tokenName := l_tokenName || ' , ';
1759             END IF;
1760         END LOOP;
1761         IF l_debug_on THEN
1762             WSH_DEBUG_SV.logmsg(l_module_name, 'Setting Token as - ' || l_tokenName);
1763             WSH_DEBUG_SV.POP(l_module_name);
1764         END IF;
1765         RETURN l_tokenName;
1766     END GET_TRIP_MSG_TOKEN;
1767 
1768 
1769 --Added by ajprabha for 10+ validations.
1770 --========================================================================
1771 -- PROCEDURE : TENDER_TRIP_VALIDATIONS  PRIVATE
1772 --
1773 -- PARAMETERS: p_tripID            Trip ID
1774 --
1775 -- RETURN    :  True if all validations are done.
1776 -- VERSION   : current version         1.0
1777 --             initial version         1.0
1778 --========================================================================
1779 FUNCTION TENDER_TRIP_VALIDATIONS
1780         (p_tripID     IN  NUMBER, -- TRIP ID
1781          x_tripName   OUT NOCOPY VARCHAR2,
1782          x_carrierID  OUT NOCOPY VARCHAR2,
1783          x_tripType   OUT NOCOPY VARCHAR2,
1784          x_tripTenderStatus OUT NOCOPY VARCHAR2
1785      ) RETURN BOOLEAN IS
1786         l_isCarrierTenderEnabled    VARCHAR2(1);
1787         l_autoTenderEnabled	    VARCHAR2(1);
1788         l_numberOfDeliveries        NUMBER;
1789         l_laneID                    NUMBER;
1790         l_modeOfTransport           VARCHAR2(30);
1791         l_serviceLevel              VARCHAR2(30);
1792         l_carrier_name		    VARCHAR2(360);
1793 
1794         l_debug_on                  CONSTANT BOOLEAN       := WSH_DEBUG_SV.is_debug_enabled;
1795         l_module_name               CONSTANT VARCHAR2(100) := 'FTE.PLSQL.' || G_PKG_NAME || '.' || 'TENDER_TRIP_VALIDATIONS';
1796 
1797         CURSOR c_tripDetails(p_tripID NUMBER) IS
1798             SELECT CARRIER_ID, NAME, LANE_ID, MODE_OF_TRANSPORT, SERVICE_LEVEL, SHIPMENTS_TYPE_FLAG,
1799             	   LOAD_TENDER_STATUS
1800             FROM WSH_TRIPS
1801             WHERE TRIP_ID = p_tripID;
1802 
1803         CURSOR c_isCarrierTenderEnabled (p_CarrierID NUMBER) IS
1804             SELECT 'Y', decode(ENABLE_AUTO_TENDER,null,'N','N','N','Y') AUTO_TENDER,
1805 				   party_name carrier_name
1806             FROM WSH_CARRIER_SITES sites, HZ_PARTIES parties
1807             WHERE CARRIER_ID = p_CarrierID
1808 	 	AND parties.party_id = carrier_id
1809                 AND (sites.EMAIL_ADDRESS IS NOT NULL OR TENDER_TRANSMISSION_METHOD IS NOT NULL)
1810                 AND ROWNUM = 1;
1811 
1812 
1813         CURSOR c_numberOfDel(p_TripID NUMBER) IS
1814             SELECT COUNT(LEGS.DELIVERY_ID)
1815             FROM    WSH_DELIVERY_LEGS LEGS,
1816                 WSH_TRIP_STOPS ST
1817             WHERE
1818                   ST.STOP_ID = LEGS.PICK_UP_STOP_ID
1819               AND ST.TRIP_ID = p_TripID;
1820 
1821     BEGIN
1822 
1823         IF l_debug_on THEN
1824             WSH_DEBUG_SV.PUSH(l_module_name);
1825             WSH_DEBUG_SV.logmsg(l_module_name,' Begin Validations for trip ' || p_tripID);
1826         END IF;
1827 
1828         BEGIN
1829             --Get Carrier, TripName and LoadTender Status.
1830             x_carrierID := -99; -- Default Value in case Trip is not present.
1831             OPEN c_tripDetails(p_tripID);
1832             FETCH c_tripDetails
1833             INTO x_carrierID, x_tripName, l_laneID, l_modeOfTransport, l_serviceLevel,
1834             			x_tripType, x_tripTenderStatus;
1835             CLOSE c_tripDetails;
1836 
1837             IF (l_debug_on) THEN
1838                 WSH_DEBUG_SV.logmsg(l_module_name,' Got Carrier '|| x_carrierID || ' for trip ' || x_tripName);
1839             END IF;
1840 
1841             --Checking if Carrier is present in the Trip Level
1842             IF ((x_carrierID = -99) OR
1843                  (x_carrierID IS NULL) OR
1844                  (l_laneID IS NULL) OR
1845                  (l_modeOfTransport IS NULL) OR
1846                  (l_serviceLevel IS NULL)) THEN
1847 
1848                 FND_MESSAGE.SET_NAME('FTE','FTE_MLS_TENDER_INIT_FAIL');
1849                 FND_MSG_PUB.ADD;
1850 
1851                 IF l_debug_on THEN
1852                     WSH_DEBUG_SV.logmsg(l_module_name,' Carrier/Lane/ServiceLevel/Mode is null. Trip Cannot be tendered.');
1853                     WSH_DEBUG_SV.pop(l_module_name);
1854                 END IF;
1855                 RETURN FALSE;
1856             END IF;
1857 
1858             IF (l_debug_on) THEN
1859                 WSH_DEBUG_SV.logmsg(l_module_name,' Checking if Carrier is Tender Enabled');
1860             END IF;
1861 
1862             l_isCarrierTenderEnabled := 'N';
1863             l_autoTenderEnabled := 'N';
1864 
1865             --Checking if Carrier is Tender enabled.
1866             OPEN c_isCarrierTenderEnabled(x_carrierID);
1867             FETCH c_isCarrierTenderEnabled
1868             INTO  l_isCarrierTenderEnabled,l_autoTenderEnabled,l_carrier_name;
1869             CLOSE c_isCarrierTenderEnabled;
1870 
1871 
1872             IF (l_debug_on) THEN
1873                 WSH_DEBUG_SV.logmsg(l_module_name,' Carrier Tender Enabled - ' || l_isCarrierTenderEnabled);
1874             END IF;
1875 
1876             IF l_isCarrierTenderEnabled <> 'Y' THEN
1877                 --Log exception into FND
1878                 FND_MESSAGE.SET_NAME('FTE','FTE_CARRIER_NOT_TENDER_ENBL');
1879 		FND_MESSAGE.SET_TOKEN('CARRIER_NAME', l_carrier_name);
1880                 FND_MSG_PUB.ADD;
1881                 IF l_debug_on THEN
1882                     WSH_DEBUG_SV.logmsg(l_module_name,' Carrier is not tender Enabled');
1883                     WSH_DEBUG_SV.pop(l_module_name);
1884                 END IF;
1885                 RETURN FALSE;
1886             END IF;
1887 
1888 	    IF l_debug_on THEN
1889 		    WSH_DEBUG_SV.logmsg(l_module_name,' checking autotender enabled ' || l_autoTenderEnabled);
1890 	    END IF;
1891 
1892 	    -- As part of HIDDING PROJECT we are going to set this flag to Y
1893 	   -- l_autoTenderEnabled = 'Y'
1894             l_autoTenderEnabled := 'Y';
1895 
1896             IF l_autoTenderEnabled <> 'Y' THEN
1897                 FND_MESSAGE.SET_NAME('FTE','FTE_CARRIER_NO_AUTO_TENDER');
1898 		FND_MESSAGE.SET_TOKEN('CARRIER_NAME', l_carrier_name);
1899                 FND_MSG_PUB.ADD;
1900                 IF l_debug_on THEN
1901                     WSH_DEBUG_SV.logmsg(l_module_name,' Carrier is not auto tender enabled ');
1902                     WSH_DEBUG_SV.pop(l_module_name);
1903                 END IF;
1904                 RETURN FALSE;
1905 	    END IF;
1906 
1907 
1908             --Checking for number of deliveries on the Trip.
1909             OPEN c_numberOfDel(p_TripID);
1910             FETCH c_numberOfDel INTO l_numberOfDeliveries;
1911             CLOSE c_numberOfDel;
1912 
1913             IF l_debug_on THEN
1914                 WSH_DEBUG_SV.logmsg(l_module_name,' Number of deliveries in the Trip is - ' || l_numberOfDeliveries);
1915             END IF;
1916 
1917             --Trip cannot be tendered in case there arent any deliveries in the trip.
1918             IF l_numberOfDeliveries = 0 THEN
1919                 --Log Exception FTE_TRIP_CNT_TENDER_NO_DLVY with token TRIP_NAME
1920                 FND_MESSAGE.SET_NAME('FTE','FTE_TRIP_CNT_TENDER_NO_DLVY');
1921                 FND_MESSAGE.SET_TOKEN('TRIP_NAME', x_tripName);
1922                 FND_MSG_PUB.ADD;
1923                 IF l_debug_on THEN
1924                     WSH_DEBUG_SV.logmsg(l_module_name,' Trip Cannot be tendered since there are no delieries on the trip ');
1925                     WSH_DEBUG_SV.pop(l_module_name);
1926                 END IF;
1927                 RETURN FALSE;
1928             END IF;
1929 
1930             IF (l_debug_on) THEN
1931                     WSH_DEBUG_SV.logmsg(l_module_name,' Validations are all passes, Trip can now be tendered.');
1932                     WSH_DEBUG_SV.pop(l_module_name);
1933             END IF;
1934 
1935             RETURN TRUE;
1936 
1937          EXCEPTION
1938             WHEN OTHERS THEN
1939                 IF l_debug_on THEN
1940                      WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. '||
1941                                'Oracle error message is '||
1942                                SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
1943                     WSH_DEBUG_SV.pop(l_module_name);
1944                 END IF;
1945                 RETURN FALSE;
1946         END;
1947     END TENDER_TRIP_VALIDATIONS;
1948 
1949 --========================================================================
1950 -- PROCEDURE : Tender_Trips    PRIVATE
1951 --
1952 -- PARAMETERS: p_api_version_number    known api version error number
1953 --             p_init_msg_list         FND_API.G_TRUE to reset list
1954 --             p_trip_id_tab           Table of trip id's
1955 --             x_action_out_rec	       List of Successfull and Failed Trips
1956 --             x_return_status         return status
1957 --             x_msg_count             number of messages in the list
1958 --             x_msg_data              text of messages
1959 -- VERSION   : current version         1.0
1960 --             initial version         1.0
1961 --========================================================================
1962 PROCEDURE TENDER_TRIPS
1963     ( p_api_version_number     IN               NUMBER,
1964       p_init_msg_list          IN               VARCHAR2,
1965       p_trip_id_tab            IN               FTE_ID_TAB_TYPE,
1966       p_caller		       IN		VARCHAR2,
1967       x_action_out_rec	       OUT NOCOPY       FTE_ACTION_OUT_REC,
1968       x_return_status          OUT NOCOPY       VARCHAR2,
1969       x_msg_count              OUT NOCOPY       NUMBER,
1970       x_msg_data               OUT NOCOPY       VARCHAR2
1971     ) IS
1972         l_debug_on              CONSTANT BOOLEAN        := WSH_DEBUG_SV.is_debug_enabled;
1973         l_module_name           CONSTANT VARCHAR2(100)  := 'FTE.PLSQL.' || G_PKG_NAME || '.' || 'TENDER_TRIPS';
1974         i                       NUMBER          :=  0;
1975         l_tripType              VARCHAR2(30);
1976         l_tripTenderStatus	VARCHAR2(30);
1977         l_orgID                 NUMBER          :=  0;
1978         l_carrierID             NUMBER          :=  0;
1979         l_tripName              VARCHAR2(30);
1980         l_stopLocID             NUMBER          :=  0;
1981 
1982         l_return_status         VARCHAR2(100);
1983         l_msg_count             NUMBER          :=  0;
1984         l_msg_data              VARCHAR2(500)   := NULL;
1985         l_number_of_warnings    NUMBER          :=  0;
1986         l_number_of_errors      NUMBER          :=  0;
1987 
1988         x_trip_id               NUMBER          :=  0;
1989         x_trip_name             VARCHAR2(30);
1990         x_CREATION_DATE         DATE;
1991         x_CREATED_BY            NUMBER;
1992         x_LAST_UPDATE_DATE      DATE;
1993         x_LAST_UPDATED_BY       NUMBER;
1994         x_LAST_UPDATE_LOGIN     NUMBER;
1995 
1996         l_carrier_contact_id    NUMBER;
1997         l_carrier_contact_name  VARCHAR2(2000);
1998         l_shipper_wait_time     NUMBER;
1999         l_wait_time_uom         VARCHAR2(50);
2000         l_autoAcceptLoadTender  VARCHAR2(1);
2001         l_wFItemKey             VARCHAR2(240);
2002         l_error_tkn             VARCHAR2(500);
2003 
2004         --Result and Failed IDs
2005         l_error_id_tab	    FTE_ID_TAB_TYPE;
2006         l_valid_ids_tab	    FTE_ID_TAB_TYPE;
2007         l_error_name_tab    FTE_NAME_TAB_TYPE;
2008         l_valid_name_tab    FTE_NAME_TAB_TYPE;
2009 
2010         l_tenderIds             VARCHAR2(500);
2011 
2012         l_trip_action_rec	FTE_TRIP_ACTION_PARAM_REC;
2013         l_action_out_rec	FTE_ACTION_OUT_REC;
2014         l_tender_attr_rec	FTE_TENDER_ATTR_REC;
2015 
2016 
2017         --OUTBOUND TripStops
2018         CURSOR c_tripStops (p_tripID NUMBER) IS
2019             SELECT STOP_LOCATION_ID
2020             FROM WSH_TRIP_STOPS
2021             WHERE TRIP_ID = p_tripID
2022             ORDER BY PLANNED_ARRIVAL_DATE,
2023                  STOP_SEQUENCE_NUMBER,
2024                  STOP_ID;
2025 
2026         --INBOUND Trip Stops
2027         CURSOR c_tripStopsIB (p_tripID NUMBER) IS
2028             SELECT STOP_LOCATION_ID
2029             FROM WSH_TRIP_STOPS
2030             WHERE TRIP_ID = p_tripID
2031             ORDER BY PLANNED_ARRIVAL_DATE       DESC,
2032                      STOP_SEQUENCE_NUMBER       DESC,
2033                      STOP_ID                    DESC;
2034 
2035         --INBOUND Trip Stops
2036         CURSOR c_getStops (p_tripID NUMBER) IS
2037             SELECT stop_id,
2038             	   departure_gross_weight,departure_volume,weight_uom_code,volume_uom_code
2039             FROM WSH_TRIP_STOPS
2040             WHERE TRIP_ID = p_tripID
2041             ORDER BY PLANNED_ARRIVAL_DATE       DESC,
2042                      STOP_SEQUENCE_NUMBER       DESC,
2043                      STOP_ID                    DESC;
2044 
2045         --Get Organization for the Pickup(O/B) or DropOff(I/B) Stop
2046         CURSOR c_getOrganization (p_stopID NUMBER) IS
2047             SELECT ORG_DEF.ORGANIZATION_ID
2048             FROM
2049                 ORG_ORGANIZATION_DEFINITIONS    ORG_DEF,
2050                 HR_ALL_ORGANIZATION_UNITS       HR_ALL_ORG_UNT
2051             WHERE
2052                 ORG_DEF.ORGANIZATION_ID         = HR_ALL_ORG_UNT.ORGANIZATION_ID
2053                 AND HR_ALL_ORG_UNT.LOCATION_ID  = p_stopID;
2054 
2055 
2056         CURSOR c_CarrierContact (p_CarrierID NUMBER) IS
2057                 SELECT
2058                     REL.PARTY_ID                            CONTACT_PARTY_ID,
2059                     PARTY.PARTY_NAME                        NAME,
2060                     CAR_SITES.TENDER_WAIT_TIME              SHIPPER_WAIT_TIME,
2061                     CAR_SITES.WAIT_TIME_UOM                 WAIT_TIME_UOM,
2062                     CAR_SITES.AUTO_ACCEPT_LOAD_TENDER       AUTO_ACCEPT_LOAD_TENDER
2063                 FROM
2064                     HZ_PARTIES PARTY,
2065                     HZ_RELATIONSHIPS REL,
2066                     HZ_PARTY_SITES SITES,
2067                     HZ_ORG_CONTACTS CONT,
2068                     HZ_CONTACT_POINTS POINTS,
2069                     --HZ_CONTACT_POINTS PHONE,
2070                     WSH_CARRIER_SITES CAR_SITES,
2071                     WSH_LOCATIONS WL
2072                 WHERE
2073                     REL.OBJECT_ID                   = PARTY.PARTY_ID
2074                     AND REL.SUBJECT_TYPE            = 'ORGANIZATION'
2075                     AND REL.SUBJECT_TABLE_NAME      = 'HZ_PARTIES'
2076                     AND SITES.PARTY_ID              = REL.SUBJECT_ID
2077                     AND CONT.PARTY_SITE_ID          = SITES.PARTY_SITE_ID
2078                     AND CONT.PARTY_RELATIONSHIP_ID  = REL.RELATIONSHIP_ID
2079                     AND POINTS.OWNER_TABLE_ID       = REL.PARTY_ID
2080                     AND POINTS.OWNER_TABLE_NAME     = 'HZ_PARTIES'
2081                     AND POINTS.CONTACT_POINT_TYPE   = 'EMAIL'
2082                     --AND PHONE.OWNER_TABLE_ID(+)     = REL.PARTY_ID
2083                     --AND PHONE.OWNER_TABLE_NAME(+)   = 'HZ_PARTIES'
2084                     --AND PHONE.CONTACT_POINT_TYPE(+) = 'PHONE'
2085                     AND CAR_SITES.CARRIER_SITE_ID   = SITES.PARTY_SITE_ID
2086                     AND WL.WSH_LOCATION_ID          = SITES.LOCATION_ID
2087                     AND (DECODE(CAR_SITES.EMAIL_ADDRESS, POINTS.EMAIL_ADDRESS,'Y','N') = 'Y'
2088                     	 OR CAR_SITES.TENDER_TRANSMISSION_METHOD IS NOT NULL)
2089                     AND CAR_SITES.CARRIER_ID        = p_CarrierID;
2090 
2091         CURSOR c_CarrierContactOrg (p_CarrierID NUMBER, p_orgID NUMBER) IS
2092                 SELECT
2093                     REL.PARTY_ID                            CONTACT_PARTY_ID,
2094                     PARTY.PARTY_NAME                        NAME,
2095                     CAR_SITES.TENDER_WAIT_TIME              SHIPPER_WAIT_TIME,
2096                     CAR_SITES.WAIT_TIME_UOM                 WAIT_TIME_UOM,
2097                     CAR_SITES.AUTO_ACCEPT_LOAD_TENDER       AUTO_ACCEPT_LOAD_TENDER
2098                 FROM
2099                     HZ_PARTIES                  PARTY,
2100                     HZ_RELATIONSHIPS            REL,
2101                     HZ_PARTY_SITES              SITES,
2102                     HZ_ORG_CONTACTS             CONT,
2103                     HZ_CONTACT_POINTS           POINTS,
2104                     --HZ_CONTACT_POINTS           PHONE,
2105                     WSH_CARRIER_SITES           CAR_SITES,
2106                     WSH_LOCATIONS               WL,
2107                     WSH_ORG_CARRIER_SITES       ORG_CAR_SITES
2108                 WHERE
2109                     REL.OBJECT_ID                   = PARTY.PARTY_ID
2110                     AND REL.SUBJECT_TYPE            = 'ORGANIZATION'
2111                     AND REL.SUBJECT_TABLE_NAME      = 'HZ_PARTIES'
2112                     AND SITES.PARTY_ID              = REL.SUBJECT_ID
2113                     AND CONT.PARTY_SITE_ID          = SITES.PARTY_SITE_ID
2114                     AND CONT.PARTY_RELATIONSHIP_ID  = REL.RELATIONSHIP_ID
2115                     AND POINTS.OWNER_TABLE_ID       = REL.PARTY_ID
2116                     AND POINTS.OWNER_TABLE_NAME     = 'HZ_PARTIES'
2117                     AND POINTS.CONTACT_POINT_TYPE   = 'EMAIL'
2118                     --AND PHONE.OWNER_TABLE_ID(+)     = REL.PARTY_ID
2119                     --AND PHONE.OWNER_TABLE_NAME(+)   = 'HZ_PARTIES'
2120                     --AND PHONE.CONTACT_POINT_TYPE(+) = 'PHONE'
2121                     AND CAR_SITES.CARRIER_SITE_ID   = SITES.PARTY_SITE_ID
2122                     AND WL.WSH_LOCATION_ID          = SITES.LOCATION_ID
2123                     AND (DECODE(CAR_SITES.EMAIL_ADDRESS, POINTS.EMAIL_ADDRESS,'Y','N') = 'Y'
2124                     	 OR CAR_SITES.TENDER_TRANSMISSION_METHOD IS NOT NULL)
2125                     AND CAR_SITES.CARRIER_ID        = p_CarrierID
2126                     AND ORG_CAR_SITES.ENABLED_FLAG  = 'Y'
2127                     AND ORG_CAR_SITES.ORGANIZATION_ID = p_orgID;
2128 
2129     BEGIN
2130         SAVEPOINT TENDER_TRIPS;
2131         -- Initialize message list if p_init_msg_list is set to TRUE.
2132         --
2133         IF FND_API.to_Boolean( p_init_msg_list ) THEN
2134             FND_MSG_PUB.initialize;
2135         END IF;
2136 
2137         IF l_debug_on THEN
2138             WSH_DEBUG_SV.PUSH(l_module_name);
2139             WSH_DEBUG_SV.logmsg(l_module_name,'About to tender ' || p_trip_id_tab.COUNT || ' Trips');
2140         END IF;
2141 
2142         l_error_id_tab	    :=    FTE_ID_TAB_TYPE();
2143         l_valid_ids_tab	    :=    FTE_ID_TAB_TYPE();
2144         l_error_name_tab    :=    FTE_NAME_TAB_TYPE();
2145         l_valid_name_tab    :=    FTE_NAME_TAB_TYPE();
2146 
2147 
2148         BEGIN
2149             --Looping through the trips to tender if possible.
2150             FOR i IN p_trip_id_tab.FIRST..p_trip_id_tab.LAST LOOP
2151                 IF l_debug_on THEN
2152                     WSH_DEBUG_SV.logmsg(l_module_name,'About to tender Trip - ' || p_trip_id_tab(i));
2153                 END IF;
2154                 --Checking if trip has got deliveries present to go ahead and tender
2155                 IF (TENDER_TRIP_VALIDATIONS(p_trip_id_tab(i),
2156                                             l_tripName,
2157                                             l_carrierID,
2158                                             l_tripType,
2159                                             l_tripTenderStatus
2160                                             )) THEN
2161                     IF l_debug_on THEN
2162                         WSH_DEBUG_SV.logmsg(l_module_name,
2163                         'Validated the trip Successfuly, Querrying data for the trip ');
2164                         WSH_DEBUG_SV.logmsg(l_module_name,'Type of Trip - ' || l_tripType);
2165                     END IF;
2166 
2167                     -- If trip is Inbound then get DESC order of Arrival Date
2168                     IF l_tripType = 'I' THEN
2169                         OPEN c_tripStopsIB(p_trip_id_tab(i));
2170                         FETCH c_tripStopsIB INTO l_stopLocID;
2171                         CLOSE c_tripStopsIB;
2172                     ELSIF l_tripType = 'O' OR l_tripType = 'M'THEN
2173                         OPEN c_tripStops(p_trip_id_tab(i));
2174                         FETCH c_tripStops INTO l_stopLocID;
2175                         CLOSE c_tripStops;
2176                     END IF;
2177 
2178                     IF l_debug_on THEN
2179                         WSH_DEBUG_SV.logmsg(l_module_name,'Querried up the InitialPickup Stop ' || l_stopLocID || ' for the trip successfully.');
2180                     END IF;
2181 
2182                     --Getting the Organization of Final Stop.
2183                     OPEN c_getOrganization(l_stopLocID);
2184                     FETCH c_getOrganization INTO l_orgID;
2185                     CLOSE c_getOrganization;
2186                     IF l_debug_on THEN
2187                         WSH_DEBUG_SV.logmsg(l_module_name,'Querried up the Organization ' || l_orgID || ' for the Stop successfully.');
2188                     END IF;
2189 
2190                     --If Organization is set to the carrier Site use it, else pick all.
2191                     IF l_orgID <> NULL THEN
2192                         OPEN c_CarrierContactOrg(l_carrierID, l_orgID);
2193                         FETCH c_CarrierContactOrg
2194                          INTO
2195                             l_carrier_contact_id,
2196                             l_carrier_contact_name,
2197                             l_shipper_wait_time,
2198                             l_wait_time_uom,
2199                             l_autoAcceptLoadTender;
2200 
2201 
2202                         CLOSE c_CarrierContactOrg;
2203                     ELSE
2204                         OPEN c_CarrierContact(l_carrierID);
2205                         FETCH c_CarrierContact
2206                             INTO
2207                                 l_carrier_contact_id,
2208                                 l_carrier_contact_name,
2209                                 l_shipper_wait_time,
2210                                 l_wait_time_uom,
2211                                 l_autoAcceptLoadTender;
2212                         CLOSE c_CarrierContact;
2213                     END IF;
2214 
2215 
2216                     --{
2217 		    IF (l_carrier_contact_id IS NULL)
2218 		    THEN
2219 			IF l_debug_on THEN
2220 			    WSH_DEBUG_SV.logmsg(l_module_name,' Invalid Carrier Contact information. Cannot Tender ');
2221 			END IF;
2222 
2223                         l_error_id_tab.EXTEND;
2224                         l_error_id_tab(l_error_id_tab.COUNT)     := p_trip_id_tab(i);
2225                         l_error_name_tab.EXTEND;
2226                         l_error_name_tab(l_error_name_tab.COUNT) := l_tripName;
2227                         l_number_of_errors := l_number_of_errors + 1;
2228 		    ELSE
2229 
2230 			    IF l_debug_on THEN
2231 				WSH_DEBUG_SV.logmsg(l_module_name,'Querried up the data for the trip successfully, Updating the Trip');
2232 			    END IF;
2233 
2234 			    --Call new TRIP_ACTION api
2235 
2236 			    l_trip_action_rec := FTE_TRIP_ACTION_PARAM_REC(null,'TENDERED',
2237 					null,null,null,null,null,null,
2238 					null,null,null,null,null,null,
2239 					null,null);
2240 
2241 
2242 			    l_tender_attr_rec	:= FTE_TENDER_ATTR_REC(
2243 					p_trip_id_tab(i), -- TripId
2244 					l_tripName, -- Trip Name
2245 					p_trip_id_tab(i), --tender id
2246 					l_tripTenderStatus, -- status
2247 					l_carrier_contact_id,-- car_contact_id
2248 					l_carrier_contact_name, -- car contact name
2249 					null, -- auto_accept
2250 					null, -- auto tender
2251 					l_shipper_wait_time, -- ship wait time
2252 					l_wait_time_uom, -- ship time uom
2253 					null, -- wf name
2254 					null, -- wf process name
2255 					null, --wf item key
2256 					null,null,null,null,null,null,null,null,null);
2257 
2258 
2259 
2260 			    Trip_Action (p_api_version_number     => 1.0,
2261 					p_init_msg_list          => FND_API.G_TRUE,
2262 					x_return_status          => l_return_status,
2263 					x_msg_count              => l_msg_count,
2264 					x_msg_data               => l_msg_data,
2265 					x_action_out_rec	 => l_action_out_rec,
2266 					p_trip_info_rec	     	 => l_tender_attr_rec,
2267 					p_action_prms	     	 => l_trip_action_rec);
2268 
2269 			    IF l_debug_on THEN
2270 				WSH_DEBUG_SV.logmsg(l_module_name,'Updated the Trip ' || l_return_status || ' l_msg_data = ' || l_msg_data);
2271 			    END IF;
2272 
2273 
2274 			    IF l_return_status = 'E' THEN
2275 				IF l_debug_on THEN
2276 				    WSH_DEBUG_SV.logmsg(l_module_name,'Failed to update the trip. ' || l_msg_data);
2277 				END IF;
2278 				l_error_id_tab.EXTEND;
2279 				l_error_id_tab(l_error_id_tab.COUNT)     := p_trip_id_tab(i);
2280 				l_error_name_tab.EXTEND;
2281 				l_error_name_tab(l_error_name_tab.COUNT) := l_tripName;
2282 				l_number_of_errors := l_number_of_errors + 1;
2283 			    END IF;
2284 
2285 			    IF l_debug_on THEN
2286 				WSH_DEBUG_SV.logmsg(l_module_name,'Before Post API Call');
2287 				WSH_DEBUG_SV.logmsg(l_module_name,'l_return_status:     ' || l_return_status);
2288 				WSH_DEBUG_SV.logmsg(l_module_name,'l_msg_count:         ' || l_msg_count);
2289 				WSH_DEBUG_SV.logmsg(l_module_name,'l_msg_data:  ' || l_msg_data);
2290 				WSH_DEBUG_SV.logmsg(l_module_name,'l_number_of_warnings:         ' || l_number_of_warnings);
2291 			    END IF;
2292 			    WSH_UTIL_CORE.API_POST_CALL(
2293 				      p_return_status    =>l_return_status,
2294 				      x_num_warnings     =>l_number_of_warnings,
2295 				      x_num_errors       =>l_number_of_errors,
2296 				      p_msg_data         =>l_msg_data,
2297 				      p_raise_error_flag => FALSE);
2298 
2299 			    -- Take snapshot
2300 		    --}
2301 		    END IF;
2302                 ELSE
2303                     --Failed Validations. Adding tripID to result table.
2304                     l_error_id_tab.EXTEND;
2305                     l_error_id_tab(l_error_id_tab.COUNT)     := p_trip_id_tab(i);
2306                     l_error_name_tab.EXTEND;
2307                     l_error_name_tab(l_error_name_tab.COUNT) := l_tripName;
2308                     l_number_of_errors := l_number_of_errors + 1;
2309                     IF l_debug_on THEN
2310                         WSH_DEBUG_SV.logmsg(l_module_name,'Validation Failed for trip - ' || p_trip_id_tab(i) || '. Did not tender.');
2311                     END IF;
2312 
2313                 END IF;
2314             END LOOP;
2315 
2316             x_action_out_rec    := FTE_ACTION_OUT_REC(l_error_id_tab,l_valid_ids_tab,null,null,null,null,null,null);
2317 
2318             --Setting Return Status appropriately.
2319             IF l_number_of_errors > 0 THEN
2320                 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2321             ELSIF l_number_of_warnings > 0  THEN
2322                 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
2323             ELSE
2324                 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
2325             END IF;
2326 
2327 
2328             --If some trips failed and some passed, return warning msg.
2329             IF ((l_error_id_tab.COUNT > 0) AND (l_error_id_tab.COUNT < p_trip_id_tab.COUNT)) THEN
2330                 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
2331             END IF;
2332 
2333             FND_MSG_PUB.Count_And_Get (
2334                  p_count => x_msg_count,
2335                  p_data  => x_msg_data,
2336                  p_encoded => FND_API.G_FALSE);
2337 
2338             IF (p_caller = 'UI')
2339             THEN
2340 	    --{
2341 
2342 		    IF l_debug_on THEN
2343 			WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status ' || x_return_status);
2344 			WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count     ' || x_msg_count);
2345 			WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_data      ' ||
2346 						FTE_MLS_UTIL.GET_MESSAGE(x_msg_count,x_msg_data));
2347 		    END IF;
2348 
2349 		    --Suppressing the detailed msg to be shown to the user
2350 		    IF l_debug_on THEN
2351 			WSH_DEBUG_SV.logmsg(l_module_name,'Clearing off unrequired messages');
2352 		    END IF;
2353 
2354 		    FND_MSG_PUB.initialize; -- FND messages are not sent back to the UI hence clearing the stack
2355 		    x_msg_data     := '';
2356 		    x_msg_count    := 0;
2357 
2358 		    IF (l_error_id_tab.COUNT > 0) THEN --In case any error is present.
2359 			WSH_DEBUG_SV.logmsg(l_module_name,'Getting new user-friendly message for '||l_error_name_tab.COUNT||' ERROR Trips');
2360 			l_tenderIds := GET_TRIP_MSG_TOKEN(l_error_id_tab);
2361 		    ELSIF (l_valid_ids_tab.COUNT > 0) THEN --In case Only success is present.
2362 			WSH_DEBUG_SV.logmsg(l_module_name,'Getting new user-friendly message for '||l_error_name_tab.COUNT||' SUCCESS Trips');
2363 			l_tenderIds := GET_TRIP_MSG_TOKEN(l_valid_ids_tab);
2364 		    END IF;
2365 
2366 		    --Setting new user friendly message for Error and Warning.
2367 		    IF x_return_status = WSH_UTIL_CORE.G_RET_STS_ERROR THEN
2368 			FND_MESSAGE.SET_NAME('FTE','FTE_MULTI_TENDER_FAIL');
2369 	  	        FND_MESSAGE.SET_TOKEN('trip_names', l_tenderIds);
2370 		    ELSIF x_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING THEN
2371 			FND_MESSAGE.SET_NAME('FTE','FTE_MULTI_TENDER_WARN');
2372 		    FND_MESSAGE.SET_TOKEN('trip_names', l_tenderIds);
2373 		    ELSIF x_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
2374 			FND_MESSAGE.SET_NAME('FTE','FTE_MULTI_TENDER_PASS');
2375 		    END IF;
2376 		    FND_MSG_PUB.ADD;
2377 
2378 		    FND_MSG_PUB.Count_And_Get (
2379 			 p_count => x_msg_count,
2380 			 p_data  => x_msg_data,
2381 			 p_encoded => FND_API.G_FALSE);
2382 
2383 		     IF l_debug_on THEN
2384 			WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count - ' || x_msg_count);
2385 			WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_data  - ' || x_msg_data);
2386 			WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_data  - ' || FTE_MLS_UTIL.GET_MESSAGE(x_msg_count,x_msg_data));
2387 		     END IF;
2388 	    --}
2389 	    END IF;
2390 
2391             IF l_debug_on THEN
2392                 WSH_DEBUG_SV.pop(l_module_name);
2393             END IF;
2394 
2395         EXCEPTION
2396             WHEN FND_API.G_EXC_ERROR THEN
2397                 ROLLBACK TO TENDER_TRIPS;
2398                 x_return_status := FND_API.G_RET_STS_ERROR;
2399                 FND_MSG_PUB.Count_And_Get
2400                 (
2401                     p_count  => x_msg_count,
2402                     p_data  =>  x_msg_data,
2403                     p_encoded => FND_API.G_FALSE
2404                 );
2405                 IF l_debug_on THEN
2406                     WSH_DEBUG_SV.pop(l_module_name);
2407                 END IF;
2408             WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2409                 ROLLBACK TO TENDER_TRIPS;
2410                 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2411                 FND_MSG_PUB.Count_And_Get
2412                 (
2413                     p_count  => x_msg_count,
2414                     p_data  =>  x_msg_data,
2415                     p_encoded => FND_API.G_FALSE
2416                 );
2417                 IF l_debug_on THEN
2418                     WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
2419                     WSH_DEBUG_SV.pop(l_module_name);
2420                 END IF;
2421             WHEN OTHERS THEN
2422                 ROLLBACK TO TENDER_TRIPS;
2423                 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2424                 FND_MSG_PUB.Count_And_Get
2425                   (
2426                      p_count  => x_msg_count,
2427                      p_data  =>  x_msg_data,
2428                      p_encoded => FND_API.G_FALSE
2429                   );
2430                 IF l_debug_on THEN
2431                     WSH_DEBUG_SV.logmsg(l_module_name,'Unlown error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
2432                     WSH_DEBUG_SV.pop(l_module_name);
2433                 END IF;
2434         END;
2435 END TENDER_TRIPS;
2436 --}
2437     --Added by ajprabha for 10+ validations.
2438     --========================================================================
2439     -- PROCEDURE : CANCEL_TENDER_VALIDATIONS  PRIVATE
2440     --
2441     -- PARAMETERS: p_tripID            Trip ID
2442     --
2443     -- RETURN    :  True if all validations are done.
2444     -- VERSION   : current version         1.0
2445     --             initial version         1.0
2446     --========================================================================
2447     FUNCTION CANCEL_TENDER_VALIDATIONS
2448             (p_tripID               IN NUMBER, -- TRIP ID
2449              x_tripName             OUT NOCOPY VARCHAR2,
2450              x_carrierID            OUT NOCOPY VARCHAR2,
2451              x_tripLoadTenderStatus OUT NOCOPY VARCHAR2,
2452              x_carrier_contact_id   OUT NOCOPY NUMBER,
2453              x_wFItemKey            OUT NOCOPY VARCHAR2
2454        ) RETURN BOOLEAN IS
2455         l_debug_on                  CONSTANT BOOLEAN       := WSH_DEBUG_SV.is_debug_enabled;
2456         l_module_name               CONSTANT VARCHAR2(100) := 'FTE.PLSQL.' || G_PKG_NAME || '.' || 'CANCEL_TENDER_VALIDATIONS';
2457 
2458         CURSOR c_tripDetails (p_tripID NUMBER) IS
2459             SELECT NAME, PLANNED_FLAG, LOAD_TENDER_STATUS,
2460             CARRIER_ID, CARRIER_CONTACT_ID, WF_ITEM_KEY, LANE_ID
2461             FROM WSH_TRIPS
2462             WHERE TRIP_ID = p_tripID;
2463 
2464         l_tripName		                    VARCHAR2(30);
2465         l_laneID                            NUMBER;
2466         l_tripLoadTenderStatus	            VARCHAR2(30);
2467         l_tripPlannedFlag	                VARCHAR2(1);
2468         TRIP_SHIPPER_CANCELLED  CONSTANT    VARCHAR2(20)   := 'SHIPPER_CANCELLED';
2469         TRIP_FIRM               CONSTANT    VARCHAR(1)     := 'F';
2470         TRIP_PLANNED            CONSTANT    VARCHAR(1)     := 'Y';
2471 
2472     BEGIN
2473 
2474         IF l_debug_on THEN
2475             WSH_DEBUG_SV.PUSH(l_module_name);
2476             WSH_DEBUG_SV.logmsg(l_module_name,' Begin Validations for trip ' || p_tripID);
2477         END IF;
2478 
2479         --Getting trip details for all the validations
2480         OPEN  c_tripDetails(p_tripID);
2481         FETCH c_tripDetails INTO x_tripName, l_tripPlannedFlag, x_tripLoadTenderStatus,
2482                                  x_carrierID, x_carrier_contact_id, x_wFItemKey, l_laneID;
2483         CLOSE c_tripDetails;
2484 
2485         -- Check for NULL Lane
2486         IF (l_laneID IS NULL) THEN
2487             --No msg as of now. Will check later --AJPRABHA
2488             IF l_debug_on THEN
2489                  WSH_DEBUG_SV.logmsg(l_module_name,'Failed since LaneID is null ');
2490                  WSH_DEBUG_SV.pop(l_module_name);
2491             END IF;
2492             RETURN FALSE;
2493         END IF;
2494 
2495         --Check if PlannedFlag = F (Firm) or Y (Planned)
2496         IF ((l_tripPlannedFlag = TRIP_FIRM) OR (l_tripPlannedFlag = TRIP_PLANNED)) THEN
2497             FND_MESSAGE.SET_NAME('FTE','FTE_CNT_CAN_TENDER_FIRMED');
2498             FND_MESSAGE.SET_TOKEN('TRIP_NAME', l_tripName);
2499             FND_MSG_PUB.ADD;
2500             IF l_debug_on THEN
2501                  WSH_DEBUG_SV.logmsg(l_module_name,'Failed since Planned Flag is ' || l_tripPlannedFlag);
2502                  WSH_DEBUG_SV.pop(l_module_name);
2503             END IF;
2504             RETURN FALSE;
2505         END IF;
2506 
2507 
2508         IF l_debug_on THEN
2509             WSH_DEBUG_SV.logmsg(l_module_name,' Validations are all passed, Cancel tender can now be performed.');
2510             WSH_DEBUG_SV.pop(l_module_name);
2511         END IF;
2512         RETURN TRUE;
2513 
2514         EXCEPTION
2515             WHEN OTHERS THEN
2516                 IF l_debug_on THEN
2517                      WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. '||
2518                                'Oracle error message is '||
2519                                SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
2520                     WSH_DEBUG_SV.pop(l_module_name);
2521                 END IF;
2522                 RETURN FALSE;
2523     END CANCEL_TENDER_VALIDATIONS;
2524 
2525     --========================================================================
2526     -- PROCEDURE : Cancel_Tender_Trips    PRIVATE
2527     --
2528     -- PARAMETERS: p_api_version_number    known api version error number
2529     --             p_init_msg_list         FND_API.G_TRUE to reset list
2530     --             p_trip_id_tab           Table of trip id's
2531     --             x_success_trip_id_tab   Out Table of failed trip IDs.
2532     --             x_return_status         return status
2533     --             x_msg_count             number of messages in the list
2534     --             x_msg_data              text of messages
2535     -- VERSION   : current version         1.0
2536     --             initial version         1.0
2537     --========================================================================
2538     PROCEDURE CANCEL_TENDER_TRIPS
2539     ( p_api_version_number      IN              NUMBER,
2540       p_init_msg_list           IN              VARCHAR2,
2541       p_trip_id_tab             IN              FTE_ID_TAB_TYPE,
2542       x_action_out_rec	        OUT NOCOPY      FTE_ACTION_OUT_REC,
2543       x_return_status           OUT NOCOPY      VARCHAR2,
2544       x_msg_count               OUT NOCOPY      NUMBER,
2545       x_msg_data                OUT NOCOPY      VARCHAR2
2546     ) IS
2547 
2548         l_debug_on                  CONSTANT BOOLEAN       := WSH_DEBUG_SV.is_debug_enabled;
2549         l_module_name               CONSTANT VARCHAR2(100) := 'FTE.PLSQL.' || G_PKG_NAME || '.' || 'CANCEL_TENDER_TRIPS';
2550 
2551         l_return_status         VARCHAR2(1);
2552         l_error_tkn             VARCHAR2(500);
2553         l_msg_count             NUMBER  := 0;
2554         l_msg_data              VARCHAR2(500);
2555         l_number_of_warnings    NUMBER  := 0;
2556         l_number_of_errors      NUMBER  := 0;
2557         l_tripNames             VARCHAR2(500);
2558 
2559         l_tripName              VARCHAR2(30);
2560         l_carrierID             NUMBER := 0;
2561         l_load_tender_status    VARCHAR2(30);
2562         l_carrier_contact_id    NUMBER := 0;
2563         l_wFItemKey             VARCHAR2(240);
2564 
2565         --Result and Failed IDs
2566         l_error_id_tab	        FTE_ID_TAB_TYPE;
2567         l_valid_ids_tab	        FTE_ID_TAB_TYPE;
2568         l_error_name_tab        FTE_NAME_TAB_TYPE;
2569 
2570         x_trip_id               NUMBER  := 0;
2571         x_trip_name             VARCHAR2(30);
2572         x_CREATION_DATE         DATE;
2573         x_CREATED_BY            NUMBER;
2574         x_LAST_UPDATE_DATE      DATE;
2575         x_LAST_UPDATED_BY       NUMBER;
2576         x_LAST_UPDATE_LOGIN     NUMBER;
2577 
2578         l_trip_action_rec	FTE_TRIP_ACTION_PARAM_REC;
2579         l_action_out_rec	FTE_ACTION_OUT_REC;
2580         l_tender_attr_rec	FTE_TENDER_ATTR_REC;
2581 
2582 
2583     BEGIN
2584         -- Initialize message list if p_init_msg_list is set to TRUE.
2585         IF FND_API.to_Boolean( p_init_msg_list ) THEN
2586             FND_MSG_PUB.initialize;
2587         END IF;
2588         SAVEPOINT CANCEL_TENDER_TRIPS;
2589         IF l_debug_on THEN
2590             WSH_DEBUG_SV.PUSH(l_module_name);
2591             WSH_DEBUG_SV.logmsg(l_module_name,'About to cancel tender ' || p_trip_id_tab.COUNT || ' Trips');
2592         END IF;
2593 
2594         l_error_id_tab	:=    FTE_ID_TAB_TYPE();
2595         l_valid_ids_tab	:=    FTE_ID_TAB_TYPE();
2596         l_error_name_tab :=   FTE_NAME_TAB_TYPE();
2597 
2598         BEGIN
2599             FOR i IN p_trip_id_tab.FIRST..p_trip_id_tab.LAST LOOP
2600                 IF l_debug_on THEN
2601                     WSH_DEBUG_SV.logmsg(l_module_name,'About to cancel tender for Trip - ' || p_trip_id_tab(i));
2602                 END IF;
2603 
2604                 IF (CANCEL_TENDER_VALIDATIONS(
2605                             p_tripID                => p_trip_id_tab(i),
2606                             x_tripName              => l_tripName,
2607                             x_carrierID             => l_carrierID,
2608                             x_tripLoadTenderStatus  => l_load_tender_status,
2609                             x_carrier_contact_id    => l_carrier_contact_id,
2610                             x_wFItemKey             => l_wFItemKey))
2611                 THEN
2612                 --{
2613 
2614 			l_trip_action_rec := FTE_TRIP_ACTION_PARAM_REC(null,FTE_TENDER_PVT.S_SHIPPER_CANCELLED,
2615 							null,null,null,null,null,null,
2616 							null,null,null,null,null,null,
2617 							null,null);
2618 
2619 			l_tender_attr_rec	:= FTE_TENDER_ATTR_REC(
2620 							p_trip_id_tab(i), -- TripId
2621 							null, -- Trip Name
2622 							p_trip_id_tab(i), --tender id
2623 							FTE_TENDER_PVT.S_SHIPPER_CANCELLED, -- status
2624 							null,-- car_contact_id
2625 							null, -- car contact name
2626 							null, -- auto_accept
2627 							null, -- auto tender
2628 							null, -- ship wait time
2629 							null, -- ship time uom
2630 							null, -- wf name
2631 							null, -- wf process name
2632 							null, --wf item key
2633 							null,null,null,null,null,null,null,null,null);
2634 
2635 
2636 			FTE_MLS_WRAPPER.Trip_Action (p_api_version_number     => 1.0,
2637 				p_init_msg_list          => FND_API.G_TRUE,
2638 				x_return_status          => l_return_status,
2639 				x_msg_count              => l_msg_count,
2640 				x_msg_data               => l_msg_data,
2641 				x_action_out_rec	 => l_action_out_rec,
2642 				p_trip_info_rec	     	 => l_tender_attr_rec,
2643 				p_action_prms	     	 => l_trip_action_rec);
2644 
2645 
2646                     IF l_debug_on THEN
2647                         WSH_DEBUG_SV.logmsg(l_module_name,'Updated the Trip ' || l_return_status || ' l_msg_data = ' || l_msg_data);
2648                     END IF;
2649 
2650                     IF l_return_status = 'E' THEN
2651                     --{
2652                         IF l_debug_on THEN
2653                             WSH_DEBUG_SV.logmsg(l_module_name,'Failed to update the trip.' || l_msg_data);
2654                         END IF;
2655                         l_error_id_tab.EXTEND;
2656                         l_error_id_tab(l_error_id_tab.COUNT) := p_trip_id_tab(i);
2657                         l_error_name_tab.EXTEND;
2658                         l_error_name_tab(l_error_name_tab.COUNT) := l_tripName;
2659                         l_number_of_errors := l_number_of_errors + 1;
2660                     --}
2661                     ELSE
2662                     --{
2663                         IF l_debug_on THEN
2664                             WSH_DEBUG_SV.logmsg(l_module_name,'Updated the trip successfully.' || l_msg_data);
2665                         END IF;
2666 
2667                         l_valid_ids_tab.EXTEND;
2668                         l_valid_ids_tab(l_valid_ids_tab.COUNT) := p_trip_id_tab(i);
2669                         --Find Delivery Legs and Add history Data
2670                         /**
2671                         FTE_DELIVERY_ACTIVITY.ADD_HISTORY(
2672                             p_trip_id       =>  p_trip_id_tab(i),
2673                             p_activity_date =>  SYSDATE,
2674                             p_activity_type =>  'TENDER_CANCEL_PROCESS',
2675                             p_request_id    =>  FND_GLOBAL.USER_ID,
2676                             p_action_by     =>  FND_GLOBAL.USER_ID,
2677                             p_action_by_name=>  FND_GLOBAL.USER_NAME,
2678                             p_remarks       =>  NULL, --Checked and confimred with HB consistent with Java
2679                             p_result_status =>  NULL, --Checked and confimred with HB consistent with Java
2680                             p_initial_status=>  l_load_tender_status,
2681                             x_return_status =>  l_return_status,
2682                             x_error_msg     =>  l_msg_data,
2683                             x_error_tkn     =>  l_error_tkn --Check with HB
2684                         );
2685 
2686 	                WSH_UTIL_CORE.API_POST_CALL(
2687 				p_return_status    =>l_return_status,
2688 				x_num_warnings     =>l_number_of_warnings,
2689 				x_num_errors       =>l_number_of_errors,
2690 				p_msg_data         =>l_msg_data,
2691 				p_raise_error_flag => FALSE);
2692 
2693                         -- delete tender snapshot
2694 
2695 			FTE_TENDER_PVT.DELETE_TENDER_SNAPSHOT(
2696 				p_init_msg_list           => FND_API.G_FALSE,
2697 				p_tender_id		  => p_trip_id_tab(i),
2698 				x_return_status           => l_return_status,
2699 				x_msg_count               => l_number_of_errors,
2700 				x_msg_data                => l_msg_data);
2701 
2702 	                WSH_UTIL_CORE.API_POST_CALL(
2703 				p_return_status    =>l_return_status,
2704 				x_num_warnings     =>l_number_of_warnings,
2705 				x_num_errors       =>l_number_of_errors,
2706 				p_msg_data         =>l_msg_data,
2707 				p_raise_error_flag => FALSE);
2708 			*/
2709                     --}
2710                     END IF;
2711 
2712                     IF l_debug_on THEN
2713                         WSH_DEBUG_SV.logmsg(l_module_name,'Before Post API Call');
2714                         WSH_DEBUG_SV.logmsg(l_module_name,'l_return_status:     ' || l_return_status);
2715                         WSH_DEBUG_SV.logmsg(l_module_name,'l_msg_count:         ' || l_msg_count);
2716                         WSH_DEBUG_SV.logmsg(l_module_name,'l_msg_data:  ' || l_msg_data);
2717                     END IF;
2718 
2719                     WSH_UTIL_CORE.API_POST_CALL(
2720                         p_return_status    =>l_return_status,
2721                         x_num_warnings     =>l_number_of_warnings,
2722                         x_num_errors       =>l_number_of_errors,
2723                         p_msg_data         =>l_msg_data,
2724                         p_raise_error_flag => FALSE);
2725                 --}
2726                 ELSE
2727                 --{
2728                     --Failed Validations. Adding tripID to result table.
2729                     l_error_id_tab.EXTEND;
2730                     l_error_id_tab(l_error_id_tab.COUNT) := p_trip_id_tab(i);
2731                     l_error_name_tab.EXTEND;
2732                     l_error_name_tab(l_error_name_tab.COUNT) := l_tripName;
2733                     l_number_of_errors := l_number_of_errors + 1;
2734                     IF l_debug_on THEN
2735                         WSH_DEBUG_SV.logmsg(l_module_name,'Validation Failed for cancel tender trip - ' || p_trip_id_tab(i) || '. Did not tender.');
2736                     END IF;
2737                 --}
2738                 END IF;
2739             END LOOP;
2740 
2741             IF l_debug_on THEN
2742                 WSH_DEBUG_SV.logmsg(l_module_name,'End of Loop');
2743                 WSH_DEBUG_SV.logmsg(l_module_name,'l_number_of_errors - ' || l_number_of_errors);
2744                 WSH_DEBUG_SV.logmsg(l_module_name,'l_number_of_warnings - ' || l_number_of_warnings);
2745                 WSH_DEBUG_SV.logmsg(l_module_name,'l_number_of_errors - ' || l_number_of_errors);
2746             END IF;
2747             x_action_out_rec    := FTE_ACTION_OUT_REC(
2748                     l_error_id_tab,l_valid_ids_tab,NULL,NULL,NULL,NULL,NULL,NULL);
2749 
2750             --Setting Return Status appropriately.
2751             IF    l_number_of_errors > 0 THEN
2752                 x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
2753             ELSIF l_number_of_warnings > 0  THEN
2754                 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
2755             ELSE
2756                 x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
2757             END IF;
2758 
2759 
2760              --If some trips failed and some passed, return warning msg.
2761             IF ((l_error_id_tab.COUNT > 0) AND (l_error_id_tab.COUNT < p_trip_id_tab.COUNT)) THEN
2762                 WSH_DEBUG_SV.logmsg(l_module_name,'Reset the return status to warn');
2763                 x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
2764             END IF;
2765 
2766             IF l_debug_on THEN
2767                 WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:     ' || x_return_status);
2768                 WSH_DEBUG_SV.logmsg(l_module_name,'l_msg_count:         ' || l_msg_count);
2769                 WSH_DEBUG_SV.logmsg(l_module_name,'l_number_of_errors:  ' || l_number_of_errors);
2770                 WSH_DEBUG_SV.logmsg(l_module_name,'l_number_of_warnings:  ' || l_number_of_warnings);
2771             END IF;
2772 
2773             --Suppressing the detailed msg to be shown to the user
2774             IF l_debug_on THEN
2775                 WSH_DEBUG_SV.logmsg(l_module_name,'Clearing off unrequired messages - ' || l_msg_data);
2776             END IF;
2777             FND_MSG_PUB.initialize; -- FND messages are not sent back to the UI hence   clearing the stack
2778             x_msg_data     := '';
2779             x_msg_count    := 0;
2780 
2781             IF (l_error_name_tab.COUNT > 0) THEN -- If error/warning get trip name list
2782                l_tripNames := GET_TRIP_MSG_TOKEN(l_error_name_tab);
2783             END IF;
2784 
2785             --Setting new user friendly message for Error and Warning.
2786             IF x_return_status = WSH_UTIL_CORE.G_RET_STS_ERROR THEN
2787                 FND_MESSAGE.SET_NAME('FTE','FTE_MULTI_CANCEL_TENDER_FAIL');
2788             ELSIF x_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING THEN
2789                 FND_MESSAGE.SET_NAME('FTE','FTE_MULTI_CANCEL_TENDER_WARN');
2790             ELSIF x_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
2791                 FND_MESSAGE.SET_NAME('FTE','FTE_MULTI_CANCEL_TENDER_PASS');
2792             END IF;
2793 
2794             IF x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
2795                 FND_MESSAGE.SET_TOKEN('trip_names', l_tripNames);
2796             END IF;
2797             FND_MSG_PUB.ADD;
2798 
2799             FND_MSG_PUB.Count_And_Get (
2800                  p_count => x_msg_count,
2801                  p_data  => x_msg_data,
2802                  p_encoded => FND_API.G_FALSE);
2803 
2804             IF l_debug_on THEN
2805                 WSH_DEBUG_SV.pop(l_module_name);
2806             END IF;
2807         EXCEPTION
2808             WHEN FND_API.G_EXC_ERROR THEN
2809                 ROLLBACK TO CANCEL_TENDER_TRIPS;
2810                 x_return_status := FND_API.G_RET_STS_ERROR;
2811                 FND_MSG_PUB.COUNT_AND_GET
2812                 (
2813                     p_count  => x_msg_count,
2814                     p_data  =>  x_msg_data,
2815                     p_encoded => FND_API.G_FALSE
2816                 );
2817                 IF l_debug_on THEN
2818                     WSH_DEBUG_SV.pop(l_module_name);
2819                 END IF;
2820             WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
2821                 ROLLBACK TO CANCEL_TENDER_TRIPS;
2822                 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2823                 FND_MSG_PUB.COUNT_AND_GET
2824                 (
2825                     p_count  => x_msg_count,
2826                     p_data  =>  x_msg_data,
2827                     p_encoded => FND_API.G_FALSE
2828                 );
2829                 IF l_debug_on THEN
2830                     WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
2831                     WSH_DEBUG_SV.pop(l_module_name);
2832                 END IF;
2833             WHEN OTHERS THEN
2834                 ROLLBACK TO CANCEL_TENDER_TRIPS;
2835                 x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
2836                 FND_MSG_PUB.COUNT_AND_GET
2837                   (
2838                      p_count  => x_msg_count,
2839                      p_data  =>  x_msg_data,
2840                      p_encoded => FND_API.G_FALSE
2841                   );
2842                 IF l_debug_on THEN
2843                     WSH_DEBUG_SV.pop(l_module_name);
2844                 END IF;
2845         END;
2846     END CANCEL_TENDER_TRIPS;
2847 --------- End of 10+ Enhancement - ajprabha
2848 --========================================================================
2849 -- Added Following procedure for PACK J
2850 --========================================================================
2851 
2852 
2853 --========================================================================
2854 -- PROCEDURE : TRIP_ACTION         Wrapper API      PUBLIC
2855 --
2856 -- PARAMETERS: p_api_version_number    known api version error number
2857 --             p_init_msg_list         FND_API.G_TRUE to reset list
2858 --	       p_trip_id_tab	       table of trip id's
2859 --             p_action_prms           Record of caller, phase, action_code and other
2860 --                                     parameters specific to the actions.
2861 --	       x_action_out_rec	       Out rec based on actions.
2862 --             x_return_status         return status
2863 --             x_msg_count             number of messages in the list
2864 --             x_msg_data              text of messages
2865 -- VERSION   : current version         1.0
2866 --             initial version         1.0
2867 --========================================================================
2868 
2869   PROCEDURE Trip_Action
2870   ( p_api_version_number     IN   		NUMBER,
2871     p_init_msg_list          IN   		VARCHAR2,
2872     p_trip_id_tab	     IN			FTE_ID_TAB_TYPE,
2873     p_action_prms	     IN			FTE_TRIP_ACTION_PARAM_REC,
2874     x_action_out_rec	     OUT NOCOPY		FTE_ACTION_OUT_REC,
2875     x_return_status          OUT NOCOPY 	VARCHAR2,
2876     x_msg_count              OUT NOCOPY 	NUMBER,
2877     x_msg_data               OUT NOCOPY 	VARCHAR2
2878   ) IS
2879 
2880   	l_trip_id		NUMBER;
2881 
2882 	l_wsh_id_tab  		WSH_UTIL_CORE.id_tab_type;
2883 	l_wsh_action_prms 	WSH_TRIPS_GRP.action_parameters_rectype;
2884   	l_wsh_out_rec 		WSH_TRIPS_GRP.tripActionOutRecType;
2885 
2886   	l_debug_on 		CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
2887 	l_module_name 		CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME ||
2888 							   '.' || 'TRIP_ACTION';
2889 	l_result_id_tab		FTE_ID_TAB_TYPE;
2890 	l_valid_ids_tab		FTE_ID_TAB_TYPE;
2891 
2892 
2893   BEGIN
2894 
2895 	SAVEPOINT	TRIP_ACTION_PUB;
2896 
2897 	-- Initialize message list if p_init_msg_list is set to TRUE.
2898 	--
2899 	--
2900 	IF FND_API.to_Boolean( p_init_msg_list )
2901 	THEN
2902 		FND_MSG_PUB.initialize;
2903 	END IF;
2904 	--
2905 	--
2906 	--  Initialize API return status to success
2907 	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
2908 	x_msg_count		:= 0;
2909 	x_msg_data		:= 0;
2910 
2911 	IF l_debug_on THEN
2912 	      wsh_debug_sv.push(l_module_name);
2913 	END IF;
2914 
2915     --AJPRABHA 10+
2916     IF	  P_ACTION_PRMS.ACTION_CODE = 'TENDER' THEN
2917         TENDER_TRIPS(
2918             p_api_version_number    =>	p_api_version_number,
2919             p_init_msg_list         =>	p_init_msg_list,
2920             p_trip_id_tab           =>	p_trip_id_tab,
2921             p_caller		    =>  'UI',
2922             x_action_out_rec        =>  x_action_out_rec,
2923             x_return_status		    =>	x_return_status,
2924             x_msg_count		        =>	x_msg_count,
2925             x_msg_data		        =>	x_msg_data
2926         );
2927     ELSIF P_ACTION_PRMS.ACTION_CODE = 'CANCEL_TENDER' THEN
2928         CANCEL_TENDER_TRIPS (
2929           p_api_version_number     =>	p_api_version_number,
2930           p_init_msg_list          =>	p_init_msg_list,
2931           p_trip_id_tab            =>	p_trip_id_tab,
2932           x_action_out_rec	       =>   x_action_out_rec,
2933           x_return_status          =>	x_return_status,
2934           x_msg_count              =>	x_msg_count,
2935           x_msg_data               =>	x_msg_data
2936         );
2937     ELSE
2938 
2939         --Step 1: Copy id's to wsh id's. If there are no id's then we don't have to do
2940         -- anything. Check if shipping does this.
2941 
2942 
2943 
2944         FTE_MLS_UTIL.COPY_FTE_ID_TO_WSH_ID(
2945                         p_fte_id_tab	=>	p_trip_id_tab,
2946                         x_wsh_id_tab	=>	l_wsh_id_tab);
2947 
2948         IF l_debug_on THEN
2949             WSH_DEBUG_SV.logmsg(l_module_name,' Action to be performed ' || p_action_prms.action_code);
2950         END IF;
2951 
2952         --Step 2: now copy action params.
2953         /** Valid Actions.
2954         --                                     'PLAN','UNPLAN',
2955         --                                     'WT-VOL'
2956         --                                     'PICK-RELEASE'
2957         --                                     'DELETE'
2958         */
2959         l_wsh_action_prms.action_code 		:= p_action_prms.action_code;
2960         l_wsh_action_prms.phase 		:= p_action_prms.phase;
2961         l_wsh_action_prms.caller 		:= G_PKG_NAME;
2962         /** Enabled these parameters when they need. No need of copying them right now
2963         l_wsh_action_prms.organization_id	:= p_action_prms.organization_id;
2964         l_wsh_action_prms.report_set_id         := p_action_prms.report_set_id;
2965         l_wsh_action_prms.override_flag         := p_action_prms.override_flag;
2966         l_wsh_action_prms.trip_name             := p_action_prms.trip_name;
2967         l_wsh_action_prms.actual_date           := p_action_prms.actual_date;
2968         l_wsh_action_prms.stop_id		:= p_action_prms.stop_id;
2969         l_wsh_action_prms.action_flag           := p_action_prms.action_flag;
2970         l_wsh_action_prms.autointransit_flag    := p_action_prms.autointransit_flag;
2971         l_wsh_action_prms.autoclose_flag        := p_action_prms.autoclose_flag;
2972         l_wsh_action_prms.stage_del_flag        := p_action_prms.stage_del_flag;
2973         l_wsh_action_prms.ship_method		:= p_action_prms.ship_method;
2974         l_wsh_action_prms.bill_of_lading_flag   := p_action_prms.bill_of_lading_flag;
2975         l_wsh_action_prms.defer_interface_flag  := p_action_prms.defer_interface_flag;
2976         l_wsh_action_prms.actual_departure_date := p_action_prms.actual_departure_date;
2977         **/
2978 
2979 
2980         -- Step 3: Call Wsh API
2981         --call wsh public API
2982         WSH_INTERFACE_GRP.Trip_Action
2983         (
2984             p_api_version_number	=>	1.0,
2985             p_init_msg_list		=>	FND_API.G_FALSE,
2986             p_commit			=>	'F',
2987             p_entity_id_tab		=>	l_wsh_id_tab,
2988             p_action_prms		=>	l_wsh_action_prms,
2989             x_trip_out_rec		=>	l_wsh_out_rec,
2990             x_return_status		=>	x_return_status,
2991             x_msg_count			=>	x_msg_count,
2992             x_msg_data			=>	x_msg_data
2993         );
2994 
2995 
2996         -- Step 4: Copy out wsh out rec to fte out rec
2997             l_result_id_tab		:= FTE_ID_TAB_TYPE();
2998             l_valid_ids_tab		:= FTE_ID_TAB_TYPE();
2999             x_action_out_rec 	:= FTE_ACTION_OUT_REC(
3000                         l_result_id_tab,l_valid_ids_tab,null,null,null,null,null,null);
3001 
3002             -- Step 4.1 Copy wsh result id from l_wsh_out_rec to
3003             --  	    result id tab of x_action_out_rec
3004             WSH_DEBUG_SV.logmsg(l_module_name,'result_id_tab.count' || l_wsh_out_rec.result_id_tab.count);
3005             FTE_MLS_UTIL.COPY_WSH_ID_TO_FTE_ID(
3006                     p_wsh_id_tab	=>	l_wsh_out_rec.result_id_tab,
3007                     x_fte_id_tab	=>	x_action_out_rec.result_id_tab);
3008 
3009 
3010             -- Step 4.2 Copy wsh valid ids tab from l_wsh_out_rec to
3011             --		valid ids tab of x_action_out_rec
3012             WSH_DEBUG_SV.logmsg(l_module_name,'valid_ids_tab.count' || l_wsh_out_rec.valid_ids_tab.count);
3013 
3014 
3015             FTE_MLS_UTIL.COPY_WSH_ID_TO_FTE_ID(
3016                     p_wsh_id_tab	=>	l_wsh_out_rec.valid_ids_tab,
3017                     x_fte_id_tab	=>	x_action_out_rec.valid_ids_tab);
3018 
3019             -- Step 4.3 copy selection issue flag of l_wsh_out_rec
3020             --		to selection issue flag of x_action_out_rec
3021             -- no need to copy this value since it is used by shipping transaction form
3022             -- x_action_out_rec.selection_issue_flag := l_wsh_out_rec.selection_issue_flag;
3023 
3024             /**
3025             -- Testing purpose
3026             FTE_MLS_UTIL.COPY_WSH_ID_TO_FTE_ID(
3027                     p_wsh_id_tab	=>	l_wsh_id_tab,
3028                     x_fte_id_tab	=>	x_action_out_rec.valid_ids_tab);
3029             */
3030     END IF;
3031 	IF l_debug_on THEN
3032 		WSH_DEBUG_SV.logmsg(l_module_name,'Return Count ' || x_action_out_rec.result_id_tab.count);
3033 		WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
3034 		WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
3035 	END IF;
3036 
3037 
3038 	FND_MSG_PUB.Count_And_Get
3039 	  (
3040 	     p_count  => x_msg_count,
3041 	     p_data  =>  x_msg_data,
3042 	     p_encoded => FND_API.G_FALSE
3043 	  );
3044 
3045 
3046 	IF l_debug_on THEN
3047 		WSH_DEBUG_SV.pop(l_module_name);
3048 	END IF;
3049 
3050 
3051   EXCEPTION
3052 	WHEN FND_API.G_EXC_ERROR THEN
3053 		ROLLBACK TO TRIP_ACTION_PUB;
3054 		x_return_status := FND_API.G_RET_STS_ERROR;
3055 		FND_MSG_PUB.Count_And_Get
3056 		  (
3057 		     p_count  => x_msg_count,
3058 		     p_data  =>  x_msg_data,
3059 		     p_encoded => FND_API.G_FALSE
3060 		  );
3061 
3062 		IF l_debug_on THEN
3063 			WSH_DEBUG_SV.pop(l_module_name);
3064 		END IF;
3065 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3066 		ROLLBACK TO TRIP_ACTION_PUB;
3067 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3068 		FND_MSG_PUB.Count_And_Get
3069 		  (
3070 		     p_count  => x_msg_count,
3071 		     p_data  =>  x_msg_data,
3072 		     p_encoded => FND_API.G_FALSE
3073 		  );
3074 		IF l_debug_on THEN
3075 			WSH_DEBUG_SV.pop(l_module_name);
3076 		END IF;
3077 	WHEN OTHERS THEN
3078 		ROLLBACK TO TRIP_ACTION_PUB;
3079 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3080 		FND_MSG_PUB.Count_And_Get
3081 		  (
3082 		     p_count  => x_msg_count,
3083 		     p_data  =>  x_msg_data,
3084 		     p_encoded => FND_API.G_FALSE
3085 		  );
3086 		IF l_debug_on THEN
3087 		        wsh_debug_sv.log (l_module_name,'Error',substr(sqlerrm,1,200));
3088 			WSH_DEBUG_SV.pop(l_module_name);
3089 		END IF;
3090   END Trip_Action;
3091 
3092 
3093 --========================================================================
3094 -- PROCEDURE : STOP_ACTION         Wrapper API      PUBLIC
3095 --
3096 -- PARAMETERS: p_api_version_number    known api version error number
3097 --             p_init_msg_list         FND_API.G_TRUE to reset list
3098 --	       p_stop_id_tab	       table of stop id's
3099 --             p_action_prms           Record of caller, phase, action_code and other
3100 --                                     parameters specific to the actions.
3101 --	       x_action_out_rec	       Out rec based on actions.
3102 --             x_return_status         return status
3103 --             x_msg_count             number of messages in the list
3104 --             x_msg_data              text of messages
3105 -- VERSION   : current version         1.0
3106 --             initial version         1.0
3107 --========================================================================
3108 
3109   PROCEDURE STOP_ACTION
3110   ( p_api_version_number     IN   		NUMBER,
3111     p_init_msg_list          IN   		VARCHAR2,
3112     p_stop_id_tab	     IN			FTE_ID_TAB_TYPE,
3113     p_action_prms	     IN			FTE_STOP_ACTION_PARAM_REC,
3114     x_action_out_rec	     OUT NOCOPY		FTE_ACTION_OUT_REC,
3115     x_return_status          OUT NOCOPY 	VARCHAR2,
3116     x_msg_count              OUT NOCOPY 	NUMBER,
3117     x_msg_data               OUT NOCOPY 	VARCHAR2
3118   ) IS
3119 
3120 
3121 	l_wsh_out_rec WSH_TRIP_STOPS_GRP.stopActionOutRecType;
3122 	l_wsh_action_prms WSH_TRIP_STOPS_GRP.action_parameters_rectype;
3123 	l_wsh_id_tab WSH_UTIL_CORE.id_tab_type;
3124 	l_commit VARCHAR2(1);
3125 
3126 
3127 	l_return_status         VARCHAR2(10);
3128 	l_msg_count             NUMBER;
3129 	l_msg_data              VARCHAR2(32767);
3130 
3131 	l_number_of_warnings	NUMBER;
3132 	l_number_of_errors	NUMBER;
3133 
3134 	--
3135 	l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
3136 	--
3137 	l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'STOP_ACTION';
3138 
3139 
3140   BEGIN
3141 
3142 	SAVEPOINT	STOP_ACTION_PUB;
3143 
3144 	-- Initialize message list if p_init_msg_list is set to TRUE.
3145 	--
3146 	--
3147 	IF FND_API.to_Boolean( p_init_msg_list )
3148 	THEN
3149 		FND_MSG_PUB.initialize;
3150 	END IF;
3151 	--
3152 	--
3153 	--  Initialize API return status to success
3154 	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3155 	x_msg_count		:= 0;
3156 	x_msg_data		:= 0;
3157 
3158 	l_return_status		:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3159 	l_number_of_warnings	:= 0;
3160 	l_number_of_errors	:= 0;
3161 
3162 
3163 
3164 	IF l_debug_on THEN
3165 	      wsh_debug_sv.push(l_module_name);
3166 	END IF;
3167 
3168 	--Step 1: Copy id's to wsh id's. If there are no id's then we don't have to do
3169 	-- anything. Check if shipping does this.
3170 
3171 
3172 
3173 	FTE_MLS_UTIL.COPY_FTE_ID_TO_WSH_ID(
3174 					p_fte_id_tab	=>	p_stop_id_tab,
3175 					x_wsh_id_tab	=>	l_wsh_id_tab);
3176 
3177 	IF l_debug_on THEN
3178 		WSH_DEBUG_SV.logmsg(l_module_name,' Action to be performed ' || p_action_prms.action_code);
3179 	END IF;
3180 
3181 	--Step 2: now copy action params.
3182 	/** Valid Actions.
3183 	--                                     'PLAN','UNPLAN',
3184 	--                                     'ARRIVE','CLOSE'
3185 	--                                     'PICK-RELEASE'
3186 	--                                     'DELETE'
3187 	*/
3188 	l_wsh_action_prms.action_code 		:= p_action_prms.action_code;
3189 	l_wsh_action_prms.phase 		:= p_action_prms.phase;
3190 	l_wsh_action_prms.caller 		:= G_PKG_NAME;
3191 
3192 
3193 	-- Step 3: Call Wsh API
3194 	--call wsh public API
3195 	WSH_INTERFACE_GRP.Stop_Action
3196 	(
3197 	    p_api_version_number	=>	1.0,
3198 	    p_init_msg_list		=>	FND_API.G_FALSE,
3199 	    p_commit			=>	'F',
3200 	    p_entity_id_tab		=>	l_wsh_id_tab,
3201 	    p_action_prms		=>	l_wsh_action_prms,
3202 	    x_stop_out_rec		=>	l_wsh_out_rec,
3203 	    x_return_status		=>	l_return_status,
3204 	    x_msg_count			=>	l_msg_count,
3205 	    x_msg_data			=>	l_msg_data
3206 	);
3207 
3208 
3209 	-- Step 4: Copy out wsh out rec to fte out rec
3210 		-- Step 4.1 Copy wsh result id from l_wsh_out_rec to
3211 		--  	    result id tab of x_action_out_rec
3212 		FTE_MLS_UTIL.COPY_WSH_ID_TO_FTE_ID(
3213 				p_wsh_id_tab	=>	l_wsh_out_rec.result_id_tab,
3214 				x_fte_id_tab	=>	x_action_out_rec.result_id_tab);
3215 
3216 
3217 		-- Step 4.2 Copy wsh valid ids tab from l_wsh_out_rec to
3218 		--		valid ids tab of x_action_out_rec
3219 		FTE_MLS_UTIL.COPY_WSH_ID_TO_FTE_ID(
3220 				p_wsh_id_tab	=>	l_wsh_out_rec.valid_ids_tab,
3221 				x_fte_id_tab	=>	x_action_out_rec.valid_ids_tab);
3222 
3223 		-- Step 4.3 copy selection issue flag of l_wsh_out_rec
3224 		--		to selection issue flag of x_action_out_rec
3225 		-- no need to copy this value since it is used by shipping transaction form
3226 		-- x_action_out_rec.selection_issue_flag := l_wsh_out_rec.selection_issue_flag;
3227 
3228 
3229 	IF l_debug_on THEN
3230 		WSH_DEBUG_SV.logmsg(l_module_name,' WSH_INTERFACE_GRP.After calling stop action');
3231 		WSH_DEBUG_SV.logmsg(l_module_name,'l_return_status:' || l_return_status);
3232 		WSH_DEBUG_SV.logmsg(l_module_name,'l_msg_count:' || l_msg_count);
3233 		WSH_DEBUG_SV.logmsg(l_module_name,'data:' || l_msg_data);
3234 		WSH_DEBUG_SV.logmsg(l_module_name,' l_number_of_warnings ' || l_number_of_warnings);
3235 		WSH_DEBUG_SV.logmsg(l_module_name,' l_number_of_errors ' || l_number_of_errors);
3236 	END IF;
3237 
3238 
3239 	wsh_util_core.api_post_call(
3240 	      p_return_status    =>l_return_status,
3241 	      x_num_warnings     =>l_number_of_warnings,
3242 	      x_num_errors       =>l_number_of_errors,
3243 	      p_msg_data	 =>l_msg_data,
3244 	      p_raise_error_flag => FALSE);
3245 
3246 
3247 	IF l_number_of_errors > 0
3248 	THEN
3249 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3250 	ELSIF l_number_of_warnings > 0
3251 	THEN
3252 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
3253 	ELSE
3254 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3255 	END IF;
3256 
3257 	IF l_debug_on THEN
3258 		WSH_DEBUG_SV.logmsg(l_module_name,' After count and get');
3259 		WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
3260 		WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
3261 		WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_data:' || x_msg_data);
3262 	END IF;
3263 
3264 
3265 	FND_MSG_PUB.Count_And_Get
3266 	  (
3267 	     p_count  => x_msg_count,
3268 	     p_data  =>  x_msg_data,
3269 	     p_encoded => FND_API.G_FALSE
3270 	  );
3271 
3272 
3273 
3274 
3275 	IF l_debug_on THEN
3276 		WSH_DEBUG_SV.pop(l_module_name);
3277 	END IF;
3278 
3279 
3280   EXCEPTION
3281 	WHEN FND_API.G_EXC_ERROR THEN
3282 		ROLLBACK TO STOP_ACTION_PUB;
3283 		x_return_status := FND_API.G_RET_STS_ERROR;
3284 		FND_MSG_PUB.Count_And_Get
3285 		  (
3286 		     p_count  => x_msg_count,
3287 		     p_data  =>  x_msg_data,
3288 		     p_encoded => FND_API.G_FALSE
3289 		  );
3290 		IF l_debug_on THEN
3291 			WSH_DEBUG_SV.pop(l_module_name);
3292 		END IF;
3293 
3294 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3295 		ROLLBACK TO STOP_ACTION_PUB;
3296 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3297 		FND_MSG_PUB.Count_And_Get
3298 		  (
3299 		     p_count  => x_msg_count,
3300 		     p_data  =>  x_msg_data,
3301 		     p_encoded => FND_API.G_FALSE
3302 		  );
3303 		IF l_debug_on THEN
3304 			WSH_DEBUG_SV.pop(l_module_name);
3305 		END IF;
3306 	WHEN OTHERS THEN
3307 		ROLLBACK TO STOP_ACTION_PUB;
3308 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3309 		FND_MSG_PUB.Count_And_Get
3310 		  (
3311 		     p_count  => x_msg_count,
3312 		     p_data  =>  x_msg_data,
3313 		     p_encoded => FND_API.G_FALSE
3314 		  );
3315 		IF l_debug_on THEN
3316 		        wsh_debug_sv.log (l_module_name,'Error',substr(sqlerrm,1,200));
3317 			WSH_DEBUG_SV.pop(l_module_name);
3318 		END IF;
3319 
3320   END STOP_ACTION;
3321 
3322 
3323 --========================================================================
3324 -- PROCEDURE : INIT_STOPS_PLS_TABLE         Wrapper API      PUBLIC
3325 --
3326 -- PARAMETERS: p_api_version_number    known api version error number
3327 --             p_init_msg_list         FND_API.G_TRUE to reset list
3328 --	       p_stop_id_tab	       table of stop id's
3329 --             p_action_prms           Record of caller, phase, action_code and other
3330 --                                     parameters specific to the actions.
3331 --	       x_action_out_rec	       Out rec based on actions.
3332 --             x_return_status         return status
3333 --             x_msg_count             number of messages in the list
3334 --             x_msg_data              text of messages
3335 -- VERSION   : current version         1.0
3336 --             initial version         1.0
3337 --========================================================================
3338 
3339 
3340   PROCEDURE INIT_STOPS_PLS_TABLE
3341   ( p_api_version_number     IN   		NUMBER,
3342     p_init_msg_list          IN   		VARCHAR2,
3343     x_return_status          OUT NOCOPY 	VARCHAR2,
3344     x_msg_count              OUT NOCOPY 	NUMBER,
3345     x_msg_data               OUT NOCOPY 	VARCHAR2
3346   ) IS
3347 
3348 
3349 	l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
3350 	--
3351 	l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'INIT_STOPS_PLS_TABLE';
3352 
3353 
3354   BEGIN
3355 
3356 	SAVEPOINT	INIT_STOPS_PLS_TABLE_PUB;
3357 
3358 	-- Initialize message list if p_init_msg_list is set to TRUE.
3359 	--
3360 	--
3361 	IF FND_API.to_Boolean( p_init_msg_list )
3362 	THEN
3363 		FND_MSG_PUB.initialize;
3364 	END IF;
3365 	--
3366 	--
3367 	--  Initialize API return status to success
3368 	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3369 	x_msg_count		:= 0;
3370 	x_msg_data		:= 0;
3371 
3372 	IF l_debug_on THEN
3373 	      wsh_debug_sv.push(l_module_name);
3374 	END IF;
3375 
3376 
3377 
3378 	FTE_MLS_WRAPPER.G_STOPS_TAB_REC.delete;
3379         FTE_MLS_WRAPPER.G_STOPS_SEQ_TAB.delete;
3380 
3381 	IF l_debug_on THEN
3382 		WSH_DEBUG_SV.logmsg(l_module_name, ' deleteing G_STOPS_TAB_REC ' );
3383 		WSH_DEBUG_SV.logmsg(l_module_name, ' deleteing G_STOPS_SEQ_TAB ' );
3384 		WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
3385 		WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
3386 	END IF;
3387 
3388 
3389 	FND_MSG_PUB.Count_And_Get
3390 	  (
3391 	     p_count  => x_msg_count,
3392 	     p_data  =>  x_msg_data,
3393 	     p_encoded => FND_API.G_FALSE
3394 	  );
3395 
3396 
3397 	IF l_debug_on THEN
3398 		WSH_DEBUG_SV.pop(l_module_name);
3399 	END IF;
3400 
3401 
3402   EXCEPTION
3403 	WHEN FND_API.G_EXC_ERROR THEN
3404 		ROLLBACK TO INIT_STOPS_PLS_TABLE_PUB;
3405 		x_return_status := FND_API.G_RET_STS_ERROR;
3406 		FND_MSG_PUB.Count_And_Get
3407 		  (
3408 		     p_count  => x_msg_count,
3409 		     p_data  =>  x_msg_data,
3410 		     p_encoded => FND_API.G_FALSE
3411 		  );
3412 		IF l_debug_on THEN
3413 			WSH_DEBUG_SV.pop(l_module_name);
3414 		END IF;
3415 
3416 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3417 		ROLLBACK TO INIT_STOPS_PLS_TABLE_PUB;
3418 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3419 		FND_MSG_PUB.Count_And_Get
3420 		  (
3421 		     p_count  => x_msg_count,
3422 		     p_data  =>  x_msg_data,
3423 		     p_encoded => FND_API.G_FALSE
3424 		  );
3425 		IF l_debug_on THEN
3426 			WSH_DEBUG_SV.pop(l_module_name);
3427 		END IF;
3428 	WHEN OTHERS THEN
3429 		ROLLBACK TO INIT_STOPS_PLS_TABLE_PUB;
3430 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3431 		FND_MSG_PUB.Count_And_Get
3432 		  (
3433 		     p_count  => x_msg_count,
3434 		     p_data  =>  x_msg_data,
3435 		     p_encoded => FND_API.G_FALSE
3436 		  );
3437 		IF l_debug_on THEN
3438 		        wsh_debug_sv.log (l_module_name,'Error',substr(sqlerrm,1,200));
3439 			WSH_DEBUG_SV.pop(l_module_name);
3440 		END IF;
3441 
3442   END INIT_STOPS_PLS_TABLE;
3443 
3444 
3445 --========================================================================
3446 -- PROCEDURE : PROCESS_STOPS         Wrapper API      PUBLIC
3447 --
3448 -- PARAMETERS: p_api_version_number    known api version error number
3449 --             p_init_msg_list         FND_API.G_TRUE to reset list
3450 --	       p_stop_id_tab	       table of stop id's
3451 --             p_action_prms           Record of caller, phase, action_code and other
3452 --                                     parameters specific to the actions.
3453 --	       x_action_out_rec	       Out rec based on actions.
3454 --             x_return_status         return status
3455 --             x_msg_count             number of messages in the list
3456 --             x_msg_data              text of messages
3457 -- VERSION   : current version         1.0
3458 --             initial version         1.0
3459 --========================================================================
3460   PROCEDURE PROCESS_STOPS(
3461         p_api_version_number    IN NUMBER,
3462         p_init_msg_list         IN VARCHAR2,
3463         p_commit                IN VARCHAR2,
3464 	x_stop_out_tab	     	OUT NOCOPY FTE_ID_TAB_TYPE,
3465 	x_stop_seq_tab		OUT NOCOPY FTE_ID_TAB_TYPE,
3466         x_return_status         OUT NOCOPY VARCHAR2,
3467         x_msg_count             OUT NOCOPY NUMBER,
3468         x_msg_data              OUT NOCOPY VARCHAR2)
3469   IS
3470 
3471 	l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
3472 	--
3473 	l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'PROCESS_STOPS';
3474 
3475 	l_stop_info 	WSH_TRIP_STOPS_PVT.Trip_Stop_Rec_Type;
3476 	l_in_rec	WSH_TRIP_STOPS_GRP.stopInRecType;
3477 	l_stop_out_tab	WSH_TRIP_STOPS_GRP.stop_out_tab_type;
3478 	l_rec_attr_tab	WSH_TRIP_STOPS_PVT.Stop_Attr_Tbl_Type;
3479 
3480 	l_index		NUMBER;
3481 
3482 	l_action_code	VARCHAR2(30);
3483 	l_number_of_warnings	NUMBER;
3484 	l_number_of_errors	NUMBER;
3485 	l_return_status             VARCHAR2(32767);
3486 	l_msg_count                 NUMBER;
3487 	l_msg_data                  VARCHAR2(32767);
3488 	l_idx 		NUMBER;
3489 
3490   BEGIN
3491 
3492 	SAVEPOINT	PROCESS_STOPS_PUB;
3493 
3494 	-- Initialize message list if p_init_msg_list is set to TRUE.
3495 	--
3496 	--
3497 	IF FND_API.to_Boolean( p_init_msg_list )
3498 	THEN
3499 		FND_MSG_PUB.initialize;
3500 	END IF;
3501 	--
3502 	--
3503 	--  Initialize API return status to success
3504 	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3505 	x_msg_count		:= 0;
3506 	x_msg_data		:= 0;
3507 	l_number_of_warnings	:= 0;
3508 	l_number_of_errors	:= 0;
3509 
3510 
3511 	IF l_debug_on THEN
3512 	      wsh_debug_sv.push(l_module_name);
3513 	END IF;
3514 
3515 	-- sort stops based on old sequence
3516 	-- sort values in G_STOPS_SEQ_TAB
3517 
3518 	IF l_debug_on THEN
3519 		WSH_DEBUG_SV.logmsg(l_module_name,' ......................... ');
3520 		WSH_DEBUG_SV.logmsg(l_module_name,' Number of Records in Glocal Stop Table ' ||
3521 				G_STOPS_TAB_REC.count);
3522 		WSH_DEBUG_SV.logmsg(l_module_name,' Number of Records in Global Stop Seq  ' ||
3523 				G_STOPS_SEQ_TAB.count);
3524 
3525 	END IF;
3526 
3527 	x_stop_out_tab := FTE_ID_TAB_TYPE();
3528 	x_stop_seq_tab := FTE_ID_TAB_TYPE();
3529 
3530 
3531 	IF l_debug_on THEN
3532 
3533 		WSH_DEBUG_SV.logmsg(l_module_name,' Printing all stops ');
3534 
3535 		IF G_STOPS_TAB_REC.count > 0
3536 		THEN
3537 
3538 			l_index := G_STOPS_TAB_REC.LAST;
3539 			l_idx := 1;
3540 			WHILE l_index IS NOT NULL
3541 			LOOP
3542 				WSH_DEBUG_SV.logmsg(l_module_name,' Index ' || l_index);
3543 		                l_index := G_STOPS_TAB_REC.PRIOR(l_index);
3544 			END LOOP;
3545 		END IF;
3546 
3547 	END IF;
3548 
3549 
3550 
3551 	IF G_STOPS_TAB_REC.count > 0
3552 	THEN
3553 
3554 
3555 	        l_index := G_STOPS_TAB_REC.LAST;
3556 	        l_idx := 1;
3557 	        WHILE l_index IS NOT NULL
3558 	        LOOP
3559 
3560 			l_stop_info := FTE_MLS_WRAPPER.G_STOPS_TAB_REC(l_index);
3561 
3562 			IF l_debug_on THEN
3563 				WSH_DEBUG_SV.logmsg(l_module_name, ' Index ' || l_index);
3564 			        WSH_DEBUG_SV.logmsg(l_module_name,' stop seq ' || l_stop_info.STOP_SEQUENCE_NUMBER);
3565 				WSH_DEBUG_SV.logmsg(l_module_name,' stop id ' || l_stop_info.STOP_ID);
3566 			END IF;
3567 
3568 			/** Changes based on the wsh stop seq changes
3569 			l_stop_info.STOP_SEQUENCE_NUMBER :=
3570 				FTE_MLS_WRAPPER.G_STOPS_SEQ_TAB(l_index).NEW_STOP_SEQUENCE_NUMBER;
3571 		 	*/
3572 			l_stop_info.STOP_SEQUENCE_NUMBER :=
3573 				FTE_MLS_WRAPPER.G_STOPS_SEQ_TAB(l_index).OLD_STOP_SEQUENCE_NUMBER;
3574 
3575 
3576 			IF (l_stop_info.STOP_ID IS NULL)
3577 			THEN
3578 				l_action_code := 'CREATE';
3579 			ELSE
3580 				l_action_code := 'UPDATE';
3581 			END IF;
3582 
3583 
3584 			l_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3585 			l_msg_count		:= 0;
3586 			l_msg_data		:= 0;
3587 
3588 			l_in_rec.caller:='FTEMLWRB';
3589 			l_in_rec.phase:=null;
3590 			l_in_rec.action_code:=l_action_code;
3591 			l_rec_attr_tab(1):=l_stop_info;
3592 
3593 			Create_Update_Stop(p_api_version_number	=>	p_api_version_number,
3594 					p_init_msg_list		=>	FND_API.G_FALSE,
3595 					p_commit		=>	p_commit,
3596 					p_in_rec		=>	l_in_rec,
3597 					p_rec_attr_tab		=>	l_rec_attr_tab,
3598 					x_stop_out_tab		=> 	l_stop_out_tab,
3599 					x_return_status		=> 	l_return_status,
3600 					x_msg_count		=>	l_msg_count,
3601 					x_msg_data		=>	l_msg_data
3602 			);
3603 
3604 
3605 			/**
3606 			IF ( ( l_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS
3607 				OR l_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING)
3608 				AND l_stop_out_tab.count > 0)
3609 			THEN
3610 			      x_stop_out_tab.EXTEND;
3611 			      x_stop_out_tab(l_idx) := l_stop_out_tab(l_stop_out_tab.FIRST).stop_id;
3612 
3613 			      x_stop_seq_tab.EXTEND;
3614 			      -- send stop seq number back
3615 			      x_stop_seq_tab(l_idx) := l_stop_info.STOP_SEQUENCE_NUMBER;
3616 			END IF;
3617 			*/
3618 
3619 			wsh_util_core.api_post_call(
3620 			      p_return_status    =>l_return_status,
3621 			      x_num_warnings     =>l_number_of_warnings,
3622 			      x_num_errors       =>l_number_of_errors,
3623 			      p_msg_data	 =>l_msg_data);
3624 
3625 			 l_idx := l_idx+1;
3626 
3627 	                l_index := G_STOPS_TAB_REC.PRIOR(l_index);
3628 
3629 
3630 		END LOOP;
3631 	END IF;
3632 
3633 	IF l_number_of_errors > 0
3634 	THEN
3635 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3636 	ELSIF l_number_of_warnings > 0
3637 	THEN
3638 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
3639 	ELSE
3640 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3641 	END IF;
3642 
3643 
3644 	FND_MSG_PUB.Count_And_Get
3645 	  (
3646 	     p_count  => x_msg_count,
3647 	     p_data  =>  x_msg_data,
3648 	     p_encoded => FND_API.G_FALSE
3649 	  );
3650 
3651 
3652 	IF l_debug_on THEN
3653 		WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
3654 		WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
3655 	END IF;
3656 
3657 	IF l_debug_on THEN
3658 		WSH_DEBUG_SV.pop(l_module_name);
3659 	END IF;
3660 
3661 
3662   EXCEPTION
3663 	WHEN FND_API.G_EXC_ERROR THEN
3664 		ROLLBACK TO PROCESS_STOPS_PUB;
3665 		x_return_status := FND_API.G_RET_STS_ERROR;
3666 		FND_MSG_PUB.Count_And_Get
3667 		  (
3668 		     p_count  => x_msg_count,
3669 		     p_data  =>  x_msg_data,
3670 		     p_encoded => FND_API.G_FALSE
3671 		  );
3672 		IF l_debug_on THEN
3673 			WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
3674 			WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
3675 			WSH_DEBUG_SV.pop(l_module_name);
3676 		END IF;
3677 
3678 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3679 		ROLLBACK TO PROCESS_STOPS_PUB;
3680 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3681 		FND_MSG_PUB.Count_And_Get
3682 		  (
3683 		     p_count  => x_msg_count,
3684 		     p_data  =>  x_msg_data,
3685 		     p_encoded => FND_API.G_FALSE
3686 		  );
3687 		IF l_debug_on THEN
3688 			WSH_DEBUG_SV.pop(l_module_name);
3689 		END IF;
3690 	WHEN OTHERS THEN
3691 		ROLLBACK TO PROCESS_STOPS_PUB;
3692 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3693 		x_msg_data := substr(sqlerrm,1,200);
3694 		IF l_debug_on THEN
3695 		        wsh_debug_sv.log (l_module_name,'Error',substr(sqlerrm,1,200));
3696 			WSH_DEBUG_SV.pop(l_module_name);
3697 		END IF;
3698 
3699 		FND_MSG_PUB.Count_And_Get
3700 		  (
3701 		     p_count  => x_msg_count,
3702 		     p_data  =>  x_msg_data,
3703 		     p_encoded => FND_API.G_FALSE
3704 		  );
3705 
3706   END PROCESS_STOPS;
3707 
3708 
3709 --========================================================================
3710 -- PROCEDURE : CREATE_UPDATE_STOP         Wrapper API      PUBLIC
3711 --
3712 -- PARAMETERS: p_api_version_number    known api version error number
3713 --             p_init_msg_list         FND_API.G_TRUE to reset list
3714 --	       p_stop_id_tab	       table of stop id's
3715 --             p_action_prms           Record of caller, phase, action_code and other
3716 --                                     parameters specific to the actions.
3717 --	       x_action_out_rec	       Out rec based on actions.
3718 --             x_return_status         return status
3719 --             x_msg_count             number of messages in the list
3720 --             x_msg_data              text of messages
3721 -- VERSION   : current version         1.0
3722 --             initial version         1.0
3723 --========================================================================
3724 
3725   PROCEDURE CREATE_UPDATE_STOP(
3726         p_api_version_number    IN NUMBER,
3727         p_init_msg_list         IN VARCHAR2,
3728         p_commit                IN VARCHAR2,
3729         p_in_rec                IN WSH_TRIP_STOPS_GRP.stopInRecType,
3730         p_rec_attr_tab          IN WSH_TRIP_STOPS_PVT.Stop_Attr_Tbl_Type,
3731         x_stop_out_tab          OUT NOCOPY WSH_TRIP_STOPS_GRP.stop_out_tab_type,
3732         x_return_status         OUT NOCOPY VARCHAR2,
3733         x_msg_count             OUT NOCOPY NUMBER,
3734         x_msg_data              OUT NOCOPY VARCHAR2) IS
3735 
3736 	l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
3737 	--
3738 	l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'CREATE_UPDATE_STOP';
3739 
3740 	l_stop_out_tab	WSH_TRIP_STOPS_GRP.stop_out_tab_type;
3741 	l_rec_attr_tab	WSH_TRIP_STOPS_PVT.Stop_Attr_Tbl_Type;
3742 
3743 	l_number_of_warnings	NUMBER;
3744 	l_number_of_errors	NUMBER;
3745 	l_return_status             VARCHAR2(32767);
3746 	l_msg_count                 NUMBER;
3747 	l_msg_data                  VARCHAR2(32767);
3748 
3749   BEGIN
3750 
3751 	SAVEPOINT	CREATE_UPDATE_STOP_PUB;
3752 
3753 	-- Initialize message list if p_init_msg_list is set to TRUE.
3754 	--
3755 	--
3756 	IF FND_API.to_Boolean( p_init_msg_list )
3757 	THEN
3758 		FND_MSG_PUB.initialize;
3759 	END IF;
3760 	--
3761 	--
3762 	--  Initialize API return status to success
3763 	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3764 	x_msg_count		:= 0;
3765 	x_msg_data		:= 0;
3766 	l_number_of_warnings	:= 0;
3767 	l_number_of_errors	:= 0;
3768 
3769 	IF l_debug_on THEN
3770 	      wsh_debug_sv.push(l_module_name);
3771 	END IF;
3772 
3773 
3774 	IF l_debug_on THEN
3775 	         WSH_DEBUG_SV.logmsg(l_module_name,
3776 	         	' Stop Planned Departure Date ' || p_rec_attr_tab(1).planned_departure_date,
3777 	         		     WSH_DEBUG_SV.C_PROC_LEVEL);
3778 	         WSH_DEBUG_SV.logmsg(l_module_name,
3779 	         	' Stop Planned Arrival Date ' || p_rec_attr_tab(1).planned_arrival_date,
3780 	         		     WSH_DEBUG_SV.C_PROC_LEVEL);
3781         END IF;
3782 
3783         WSH_INTERFACE_GRP.Create_Update_Stop(p_api_version_number=>p_api_version_number,
3784     						p_init_msg_list=>FND_API.G_FALSE,
3785 						p_commit=>p_commit,
3786 						p_in_rec=>p_in_rec,
3787 						p_rec_attr_tab=>p_rec_attr_tab,
3788 						x_stop_out_tab=> x_stop_out_tab,
3789     						x_return_status=>l_return_status,
3790     						x_msg_count=>l_msg_count,
3791     						x_msg_data=>l_msg_data
3792 						);
3793 	wsh_util_core.api_post_call(
3794 	      p_return_status    =>l_return_status,
3795 	      x_num_warnings     =>l_number_of_warnings,
3796 	      x_num_errors       =>l_number_of_errors,
3797 	      p_msg_data	 =>l_msg_data);
3798 
3799 
3800 	IF l_number_of_errors > 0
3801 	THEN
3802 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3803 	ELSIF l_number_of_warnings > 0
3804 	THEN
3805 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
3806 	ELSE
3807 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3808 	END IF;
3809 
3810 	FND_MSG_PUB.Count_And_Get
3811 	  (
3812 	     p_count  => x_msg_count,
3813 	     p_data  =>  x_msg_data,
3814 	     p_encoded => FND_API.G_FALSE
3815 	  );
3816 
3817 	IF l_debug_on THEN
3818 		WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
3819 		WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
3820 	END IF;
3821 
3822 	IF l_debug_on THEN
3823 		WSH_DEBUG_SV.pop(l_module_name);
3824 	END IF;
3825 
3826 
3827   EXCEPTION
3828 	WHEN FND_API.G_EXC_ERROR THEN
3829 		ROLLBACK TO CREATE_UPDATE_STOP_PUB;
3830 		x_return_status := FND_API.G_RET_STS_ERROR;
3831 		FND_MSG_PUB.Count_And_Get
3832 		  (
3833 		     p_count  => x_msg_count,
3834 		     p_data  =>  x_msg_data,
3835 		     p_encoded => FND_API.G_FALSE
3836 		  );
3837 		IF l_debug_on THEN
3838 			WSH_DEBUG_SV.pop(l_module_name);
3839 		END IF;
3840 
3841 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3842 		ROLLBACK TO CREATE_UPDATE_STOP_PUB;
3843 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3844 		FND_MSG_PUB.Count_And_Get
3845 		  (
3846 		     p_count  => x_msg_count,
3847 		     p_data  =>  x_msg_data,
3848 		     p_encoded => FND_API.G_FALSE
3849 		  );
3850 		IF l_debug_on THEN
3851 			WSH_DEBUG_SV.pop(l_module_name);
3852 		END IF;
3853 	WHEN OTHERS THEN
3854 		ROLLBACK TO CREATE_UPDATE_STOP_PUB;
3855 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3856 		FND_MSG_PUB.Count_And_Get
3857 		  (
3858 		     p_count  => x_msg_count,
3859 		     p_data  =>  x_msg_data,
3860 		     p_encoded => FND_API.G_FALSE
3861 		  );
3862 		IF l_debug_on THEN
3863 		        wsh_debug_sv.log (l_module_name,'Error',substr(sqlerrm,1,200));
3864 			WSH_DEBUG_SV.pop(l_module_name);
3865 		END IF;
3866 
3867   END CREATE_UPDATE_STOP;
3868 
3869 
3870   PROCEDURE REPRICE_TRIP (
3871   	p_api_version              IN  NUMBER DEFAULT 1.0,
3872         p_init_msg_list            IN  VARCHAR2 DEFAULT FND_API.G_FALSE,
3873         p_trip_id		   IN  NUMBER,
3874         x_return_status            OUT NOCOPY  VARCHAR2,
3875         x_msg_count                OUT NOCOPY  NUMBER,
3876         x_msg_data                 OUT NOCOPY  VARCHAR2
3877   ) AS
3878 
3879 	l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
3880 	--
3881 	l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'REPRICE_TRIP';
3882 
3883 	l_action_params 	FTE_TRIP_RATING_GRP.action_param_rec;
3884 	l_trip_id_list		WSH_UTIL_CORE.id_tab_type;
3885 
3886 	l_number_of_warnings	NUMBER;
3887 	l_number_of_errors	NUMBER;
3888 	l_return_status             VARCHAR2(32767);
3889 	l_msg_count                 NUMBER;
3890 	l_msg_data                  VARCHAR2(32767);
3891 
3892   BEGIN
3893 
3894 	SAVEPOINT	REPRICE_TRIP_PUB;
3895 
3896 	-- Initialize message list if p_init_msg_list is set to TRUE.
3897 	--
3898 	--
3899 	IF FND_API.to_Boolean( p_init_msg_list )
3900 	THEN
3901 		FND_MSG_PUB.initialize;
3902 	END IF;
3903 	--
3904 	--
3905 	--  Initialize API return status to success
3906 	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3907 	x_msg_count		:= 0;
3908 	x_msg_data		:= 0;
3909 	l_number_of_warnings	:= 0;
3910 	l_number_of_errors	:= 0;
3911 
3912 	IF l_debug_on THEN
3913 	      wsh_debug_sv.push(l_module_name);
3914 	      WSH_DEBUG_SV.logmsg(l_module_name,' trip id ' || p_trip_id);
3915 	END IF;
3916 
3917 	l_trip_id_list(1) :=  p_trip_id;
3918 	l_action_params.caller := 'FTE';
3919 	l_action_params.event  := 'RE-RATING';
3920 	l_action_params.action := 'RATE';
3921 	l_action_params.trip_id_list := l_trip_id_list;
3922 
3923 
3924 	FTE_TRIP_RATING_GRP.Rate_Trip (
3925 	             p_api_version              => 1.0,
3926 	             p_init_msg_list            => FND_API.G_FALSE,
3927 	             p_action_params            => l_action_params,
3928 	             p_commit                   => FND_API.G_FALSE,
3929 	             x_return_status            => l_return_status,
3930 	             x_msg_count                => l_msg_count,
3931 	             x_msg_data                 => l_msg_data);
3932 
3933 	wsh_util_core.api_post_call(
3934 	      p_return_status    =>l_return_status,
3935 	      x_num_warnings     =>l_number_of_warnings,
3936 	      x_num_errors       =>l_number_of_errors,
3937 	      p_msg_data	 =>l_msg_data);
3938 
3939 
3940 	IF l_number_of_errors > 0
3941 	THEN
3942 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
3943 	ELSIF l_number_of_warnings > 0
3944 	THEN
3945 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
3946 	ELSE
3947 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
3948 	END IF;
3949 
3950 	FND_MSG_PUB.Count_And_Get
3951 	  (
3952 	     p_count  => x_msg_count,
3953 	     p_data  =>  x_msg_data,
3954 	     p_encoded => FND_API.G_FALSE
3955 	  );
3956 
3957 	IF l_debug_on THEN
3958 		WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
3959 		WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
3960 	END IF;
3961 
3962 	IF l_debug_on THEN
3963 		WSH_DEBUG_SV.pop(l_module_name);
3964 	END IF;
3965 
3966 
3967   EXCEPTION
3968 	WHEN FND_API.G_EXC_ERROR THEN
3969 		ROLLBACK TO REPRICE_TRIP_PUB;
3970 		x_return_status := FND_API.G_RET_STS_ERROR;
3971 		FND_MSG_PUB.Count_And_Get
3972 		  (
3973 		     p_count  => x_msg_count,
3974 		     p_data  =>  x_msg_data,
3975 		     p_encoded => FND_API.G_FALSE
3976 		  );
3977 		IF l_debug_on THEN
3978 			WSH_DEBUG_SV.pop(l_module_name);
3979 		END IF;
3980 
3981 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
3982 		ROLLBACK TO REPRICE_TRIP_PUB;
3983 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3984 		FND_MSG_PUB.Count_And_Get
3985 		  (
3986 		     p_count  => x_msg_count,
3987 		     p_data  =>  x_msg_data,
3988 		     p_encoded => FND_API.G_FALSE
3989 		  );
3990 		IF l_debug_on THEN
3991 			WSH_DEBUG_SV.pop(l_module_name);
3992 		END IF;
3993 	WHEN OTHERS THEN
3994 		ROLLBACK TO REPRICE_TRIP_PUB;
3995 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
3996 		FND_MSG_PUB.Count_And_Get
3997 		  (
3998 		     p_count  => x_msg_count,
3999 		     p_data  =>  x_msg_data,
4000 		     p_encoded => FND_API.G_FALSE
4001 		  );
4002 		IF l_debug_on THEN
4003 		        wsh_debug_sv.log (l_module_name,'Error',substr(sqlerrm,1,200));
4004 			WSH_DEBUG_SV.pop(l_module_name);
4005 		END IF;
4006 
4007   END REPRICE_TRIP;
4008 --
4009 --
4010 --========================================================================
4011 -- PROCEDURE : Delivery_Detail_Action         FTE wrapper
4012 -- p_action_code: UNASSIGN, IGNORE_PLAN, INCLUDE_PLAN, AUTOCREATE-DLVY
4013 --========================================================================
4014 
4015 PROCEDURE Delivery_Detail_Action
4016   ( p_api_version_number	IN 	NUMBER,
4017     p_init_msg_list          	IN 	VARCHAR2,
4018     p_mls_id_tab	     	IN 	FTE_ID_TAB_TYPE,
4019     p_action_params		IN 	FTE_DDL_ACTION_PARAM_REC,
4020     x_return_status          	OUT NOCOPY   VARCHAR2,
4021     x_msg_count              	OUT NOCOPY   NUMBER,
4022     x_msg_data               	OUT NOCOPY   VARCHAR2,
4023     x_action_out_rec		OUT NOCOPY   FTE_ACTION_OUT_REC
4024  ) IS
4025 
4026 	l_detail_id_tab		WSH_UTIL_CORE.id_tab_type;
4027 	l_detail_out_rec	wsh_glbl_var_strct_grp.dd_action_out_rec_type;
4028 	l_action_prms 		wsh_glbl_var_strct_grp.dd_action_parameters_rec_type;
4029     	l_group_id_tab		WSH_UTIL_CORE.id_tab_type;
4030 
4031     	-- Set action_out_rec
4032     	l_result_id_tab		FTE_ID_TAB_TYPE;
4033 	l_valid_id_tab		FTE_ID_TAB_TYPE;
4034     	l_delivery_id_tab	FTE_ID_TAB_TYPE;
4035     	l_selection_issue_flag	VARCHAR(1);
4036     	l_split_quantity	NUMBER;
4037     	l_split_quantity2	NUMBER;
4038     	l_caller		VARCHAR(100);
4039 
4040     --
4041     l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
4042     --
4043     l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'DELIVERY_DETAIL_ACTION';
4044 
4045 
4046       BEGIN
4047 
4048     	SAVEPOINT	DETAIL_ACTION_PUB;
4049 
4050     	-- Initialize message list if p_init_msg_list is set to TRUE.
4051     	--
4052     	--
4053     	IF FND_API.to_Boolean( p_init_msg_list )
4054     	THEN
4055     		FND_MSG_PUB.initialize;
4056     	END IF;
4057     	--
4058     	--
4059     	--  Initialize API return status to success
4060     	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4061     	x_msg_count		:= 0;
4062     	x_msg_data		:= 0;
4063 
4064     	IF l_debug_on THEN
4065     	      wsh_debug_sv.push(l_module_name);
4066 	END IF;
4067 
4068 	-- set action_prms
4069 
4070 	IF p_action_params.caller IS NULL
4071 	THEN
4072 		l_caller := G_PKG_NAME;
4073 	ELSE
4074 		l_caller := p_action_params.caller;
4075 	END IF;
4076 
4077 	IF l_debug_on THEN
4078 		WSH_DEBUG_SV.logmsg(l_module_name,'CALLER:' || l_caller);
4079 	END IF;
4080 
4081 	l_action_prms.caller			:= l_caller;
4082 	l_action_prms.action_code		:= p_action_params.action_code;
4083 	l_action_prms.phase 	 		:= p_action_params.phase;
4084 	l_action_prms.delivery_id		:= p_action_params.delivery_id;
4085 	l_action_prms.delivery_name		:= p_action_params.delivery_name;
4086 	l_action_prms.wv_override_flag		:= p_action_params.wv_override_flag;
4087 	l_action_prms.quantity_to_split		:= p_action_params.quantity_to_split;
4088 	l_action_prms.quantity2_to_split	:= p_action_params.quantity2_to_split;
4089 	l_action_prms.container_name		:= p_action_params.container_name;
4090 	l_action_prms.container_instance_id	:= p_action_params.container_instance_id;
4091 	l_action_prms.container_flag		:= p_action_params.container_flag;
4092 	l_action_prms.delivery_flag		:= p_action_params.delivery_flag;
4093 	l_action_prms.group_id_tab		:= l_group_id_tab;
4094 	l_action_prms.split_quantity		:= p_action_params.split_quantity;
4095 	l_action_prms.split_quantity2		:= p_action_params.split_quantity2;
4096 
4097 	-- Set l_detail_id_tab
4098 	FOR i IN p_mls_id_tab.FIRST..p_mls_id_tab.LAST LOOP
4099 		l_detail_id_tab(i) := p_mls_id_tab(i);
4100 	END LOOP;
4101 
4102 	WSH_INTERFACE_GRP.Delivery_Detail_Action
4103 	(
4104 		p_api_version_number	=>p_api_version_number,
4105     		p_init_msg_list		=>FND_API.G_TRUE,
4106     		p_commit		=>FND_API.G_FALSE,
4107     		x_return_status     	=>x_return_status,
4108     		x_msg_count         	=>x_msg_count,
4109     		x_msg_data          	=>x_msg_data,
4110     		p_detail_id_tab		=>l_detail_id_tab, -- wsh_util_core.id_tab_type
4111     		p_action_prms 		=>l_action_prms,   -- wsh_glbl_var_strct_grp.dd_action_parameters_rec_type
4112     		x_action_out_rec	=>l_detail_out_rec -- wsh_glbl_var_strct_grp.dd_action_out_rec_type
4113 	);
4114 
4115 	l_result_id_tab 	:= FTE_ID_TAB_TYPE();
4116 	l_valid_id_tab 		:= FTE_ID_TAB_TYPE();
4117 	l_delivery_id_tab 	:= FTE_ID_TAB_TYPE();
4118 	x_action_out_rec 	:= FTE_ACTION_OUT_REC(
4119 					l_result_id_tab,l_valid_id_tab,l_delivery_id_tab,null,null,null,null,null);
4120 
4121 	-- set valid ids tab
4122 	IF (l_detail_out_rec.valid_id_tab.count>0) THEN
4123 		FOR i IN l_detail_out_rec.valid_id_tab.FIRST..l_detail_out_rec.valid_id_tab.LAST LOOP
4124 			l_valid_id_tab.EXTEND;
4125 			l_valid_id_tab(i) := l_detail_out_rec.valid_id_tab(i);
4126 		END LOOP;
4127 	END IF;
4128 
4129 	-- set result ids tab
4130 	IF (l_detail_out_rec.result_id_tab.count>0) THEN
4131 		FOR i IN l_detail_out_rec.result_id_tab.FIRST..l_detail_out_rec.result_id_tab.LAST LOOP
4132 			l_result_id_tab.EXTEND;
4133 			l_result_id_tab(i) := l_detail_out_rec.result_id_tab(i);
4134 		END LOOP;
4135 	END IF;
4136 
4137 	-- set delivery ids tab
4138 	IF (l_detail_out_rec.delivery_id_tab.count>0) THEN
4139 		FOR i IN l_detail_out_rec.delivery_id_tab.FIRST..l_detail_out_rec.delivery_id_tab.LAST LOOP
4140 			l_delivery_id_tab.EXTEND;
4141 			l_delivery_id_tab(i) := l_detail_out_rec.delivery_id_tab(i);
4142 		END LOOP;
4143 	END IF;
4144 
4145 	-- set selection issue flag
4146 	l_selection_issue_flag := l_detail_out_rec.selection_issue_flag;
4147 
4148 	-- set split quantity
4149 	l_split_quantity := l_detail_out_rec.split_quantity;
4150 
4151 	-- set split quantity2
4152 	l_split_quantity := l_detail_out_rec.split_quantity2;
4153 
4154 
4155 	IF l_debug_on THEN
4156 		WSH_DEBUG_SV.logmsg(l_module_name,'Return Count ' || x_action_out_rec.result_id_tab.count);
4157 		WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
4158 		WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
4159 	END IF;
4160 
4161 
4162 	FND_MSG_PUB.Count_And_Get
4163 	(
4164 	     p_count  => x_msg_count,
4165 	     p_data  =>  x_msg_data,
4166 	     p_encoded => FND_API.G_FALSE
4167 	);
4168 
4169 
4170 	IF l_debug_on THEN
4171 		WSH_DEBUG_SV.pop(l_module_name);
4172 	END IF;
4173 
4174 	EXCEPTION
4175 		WHEN FND_API.G_EXC_ERROR THEN
4176 			ROLLBACK TO DETAIL_ACTION_PUB;
4177 			x_return_status := FND_API.G_RET_STS_ERROR;
4178 			FND_MSG_PUB.Count_And_Get
4179 			  (
4180 			     p_count  => x_msg_count,
4181 			     p_data  =>  x_msg_data,
4182 			     p_encoded => FND_API.G_FALSE
4183 			  );
4184 
4185 			IF l_debug_on THEN
4186 				WSH_DEBUG_SV.pop(l_module_name);
4187 			END IF;
4188 		WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4189 			ROLLBACK TO DETAIL_ACTION_PUB;
4190 			x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4191 			FND_MSG_PUB.Count_And_Get
4192 			  (
4193 			     p_count  => x_msg_count,
4194 			     p_data  =>  x_msg_data,
4195 			     p_encoded => FND_API.G_FALSE
4196 			  );
4197 			IF l_debug_on THEN
4198 				WSH_DEBUG_SV.pop(l_module_name);
4199 			END IF;
4200 		WHEN OTHERS THEN
4201 			ROLLBACK TO DETAIL_ACTION_PUB;
4202 			x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4203 			FND_MSG_PUB.Count_And_Get
4204 			  (
4205 			     p_count  => x_msg_count,
4206 			     p_data  =>  x_msg_data,
4207 			     p_encoded => FND_API.G_FALSE
4208 			  );
4209 			IF l_debug_on THEN
4210 				WSH_DEBUG_SV.pop(l_module_name);
4211 			END IF;
4212 
4213 
4214 
4215   --
4216   END Delivery_Detail_Action;
4217   --
4218 --========================================================================
4219 -- PROCEDURE : Create_Update_Delivery_Detail         FTE wrapper
4220 -- p_action_code: UPDATE
4221 --========================================================================
4222 
4223 PROCEDURE Create_Update_Delivery_Detail
4224   (
4225     p_api_version_number	IN	NUMBER,
4226     p_init_msg_list           	IN 	VARCHAR2,
4227     p_commit                  	IN 	VARCHAR2,
4228     p_detail_info_tab		IN	FTE_DDL_ATTR_TAB_TYPE,
4229     p_action_code		IN 	VARCHAR2,
4230     x_return_status           	OUT NOCOPY	VARCHAR2,
4231     x_msg_count               	OUT NOCOPY 	NUMBER,
4232     x_msg_data                	OUT NOCOPY	VARCHAR2,
4233     x_detail_id_tab		OUT NOCOPY	FTE_ID_TAB_TYPE
4234   ) IS
4235 
4236 	l_detail_attr_tab_type	wsh_glbl_var_strct_grp.delivery_details_Attr_tbl_Type;
4237 	l_detail_attr_rec	wsh_glbl_var_strct_grp.delivery_details_rec_type;
4238 	l_detail_in_rec		wsh_glbl_var_strct_grp.detailInRecType;
4239 	l_detail_out_rec	wsh_glbl_var_strct_grp.detailOutRecType;
4240 	l_fte_detail_attr_rec	FTE_DDL_ATTR_REC;
4241 
4242 	l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
4243 	--
4244 	l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'CREATE_UPDATE_DDL';
4245 
4246 
4247       BEGIN
4248 
4249     	SAVEPOINT	DDL_CREATE_UPDATE_PUB;
4250 
4251     	-- Initialize message list if p_init_msg_list is set to TRUE.
4252     	--
4253     	--
4254     	IF FND_API.to_Boolean( p_init_msg_list )
4255     	THEN
4256     		FND_MSG_PUB.initialize;
4257     	END IF;
4258     	--
4259     	--
4260     	--  Initialize API return status to success
4261     	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4262     	x_msg_count		:= 0;
4263     	x_msg_data		:= 0;
4264 
4265     	IF l_debug_on THEN
4266     	      wsh_debug_sv.push(l_module_name);
4267 	END IF;
4268 
4269 	-- Extract detailsAttrRec from table - table should only have one row
4270 	-- 188 Attributes mapped
4271 	IF (p_detail_info_tab.count>0) THEN
4272 	  FOR i IN p_detail_info_tab.FIRST..p_detail_info_tab.LAST LOOP
4273 	  	l_fte_detail_attr_rec := p_detail_info_tab(i);
4274 
4275 		l_detail_attr_rec.delivery_detail_id := l_fte_detail_attr_rec.delivery_detail_id;
4276 		l_detail_attr_rec.source_code := l_fte_detail_attr_rec.source_code;
4277 		l_detail_attr_rec.source_header_id := l_fte_detail_attr_rec.source_header_id;
4278 		l_detail_attr_rec.source_line_id := l_fte_detail_attr_rec.source_line_id;
4279 		l_detail_attr_rec.customer_id := l_fte_detail_attr_rec.customer_id;
4280 		l_detail_attr_rec.sold_to_contact_id := l_fte_detail_attr_rec.sold_to_contact_id;
4281 		l_detail_attr_rec.inventory_item_id := l_fte_detail_attr_rec.inventory_item_id;
4282 		l_detail_attr_rec.item_description := l_fte_detail_attr_rec.item_description;
4283 		l_detail_attr_rec.hazard_class_id := l_fte_detail_attr_rec.hazard_class_id;
4284 		l_detail_attr_rec.country_of_origin := l_fte_detail_attr_rec.country_of_origin;
4285 		l_detail_attr_rec.classification := l_fte_detail_attr_rec.classification;
4286 		l_detail_attr_rec.ship_from_location_id := l_fte_detail_attr_rec.ship_from_location_id;
4287 		l_detail_attr_rec.ship_to_location_id := l_fte_detail_attr_rec.ship_to_location_id;
4288 		l_detail_attr_rec.ship_to_contact_id := l_fte_detail_attr_rec.ship_to_contact_id;
4289 		l_detail_attr_rec.ship_to_site_use_id := l_fte_detail_attr_rec.ship_to_site_use_id;
4290 		l_detail_attr_rec.deliver_to_location_id := l_fte_detail_attr_rec.deliver_to_location_id;
4291 		l_detail_attr_rec.deliver_to_contact_id := l_fte_detail_attr_rec.deliver_to_contact_id;
4292 		l_detail_attr_rec.deliver_to_site_use_id := l_fte_detail_attr_rec.deliver_to_site_use_id;
4293 		l_detail_attr_rec.intmed_ship_to_location_id := l_fte_detail_attr_rec.intmed_ship_to_location_id;
4294 		l_detail_attr_rec.intmed_ship_to_contact_id := l_fte_detail_attr_rec.intmed_ship_to_contact_id;
4295 		l_detail_attr_rec.hold_code := l_fte_detail_attr_rec.hold_code;
4296 		l_detail_attr_rec.ship_tolerance_above := l_fte_detail_attr_rec.ship_tolerance_above;
4297 		l_detail_attr_rec.ship_tolerance_below := l_fte_detail_attr_rec.ship_tolerance_below;
4298 		l_detail_attr_rec.requested_quantity := l_fte_detail_attr_rec.requested_quantity;
4299 		l_detail_attr_rec.shipped_quantity := l_fte_detail_attr_rec.shipped_quantity;
4300 		l_detail_attr_rec.delivered_quantity := l_fte_detail_attr_rec.delivered_quantity;
4301 		l_detail_attr_rec.requested_quantity_uom := l_fte_detail_attr_rec.requested_quantity_uom;
4302 		l_detail_attr_rec.subinventory := l_fte_detail_attr_rec.subinventory;
4303 		l_detail_attr_rec.revision := l_fte_detail_attr_rec.revision;
4304 		l_detail_attr_rec.lot_number := l_fte_detail_attr_rec.lot_number;
4305 		l_detail_attr_rec.customer_requested_lot_flag := l_fte_detail_attr_rec.customer_requested_lot_flag;
4306 		l_detail_attr_rec.serial_number := l_fte_detail_attr_rec.serial_number;
4307 		l_detail_attr_rec.locator_id := l_fte_detail_attr_rec.locator_id;
4308 		l_detail_attr_rec.date_requested := l_fte_detail_attr_rec.date_requested;
4309 		l_detail_attr_rec.date_scheduled := l_fte_detail_attr_rec.date_scheduled;
4310 		l_detail_attr_rec.master_container_item_id := l_fte_detail_attr_rec.master_container_item_id;
4311 		l_detail_attr_rec.detail_container_item_id := l_fte_detail_attr_rec.detail_container_item_id;
4312 		l_detail_attr_rec.load_seq_number := l_fte_detail_attr_rec.load_seq_number;
4313 		l_detail_attr_rec.ship_method_code := l_fte_detail_attr_rec.ship_method_code;
4314 		l_detail_attr_rec.carrier_id := l_fte_detail_attr_rec.carrier_id;
4315 		l_detail_attr_rec.freight_terms_code := l_fte_detail_attr_rec.freight_terms_code;
4316 		l_detail_attr_rec.shipment_priority_code := l_fte_detail_attr_rec.shipment_priority_code;
4317 		l_detail_attr_rec.fob_code := l_fte_detail_attr_rec.fob_code;
4318 		l_detail_attr_rec.customer_item_id := l_fte_detail_attr_rec.customer_item_id;
4319 		l_detail_attr_rec.dep_plan_required_flag := l_fte_detail_attr_rec.dep_plan_required_flag;
4320 		l_detail_attr_rec.customer_prod_seq := l_fte_detail_attr_rec.customer_prod_seq;
4321 		l_detail_attr_rec.customer_dock_code := l_fte_detail_attr_rec.customer_dock_code;
4322 		l_detail_attr_rec.cust_model_serial_number := l_fte_detail_attr_rec.cust_model_serial_number;
4323 		l_detail_attr_rec.customer_job := l_fte_detail_attr_rec.customer_job;
4324 		l_detail_attr_rec.customer_production_line := l_fte_detail_attr_rec.customer_production_line;
4325 		l_detail_attr_rec.net_weight := l_fte_detail_attr_rec.net_weight;
4326 		l_detail_attr_rec.weight_uom_code := l_fte_detail_attr_rec.weight_uom_code;
4327 		l_detail_attr_rec.volume := l_fte_detail_attr_rec.volume;
4328 		l_detail_attr_rec.volume_uom_code := l_fte_detail_attr_rec.volume_uom_code;
4329 		l_detail_attr_rec.tp_attribute_category := l_fte_detail_attr_rec.tp_attribute_category;
4330 		l_detail_attr_rec.tp_attribute1 := l_fte_detail_attr_rec.tp_attribute1;
4331 		l_detail_attr_rec.tp_attribute2 := l_fte_detail_attr_rec.tp_attribute2;
4332 		l_detail_attr_rec.tp_attribute3 := l_fte_detail_attr_rec.tp_attribute3;
4333 		l_detail_attr_rec.tp_attribute4 := l_fte_detail_attr_rec.tp_attribute4;
4334 		l_detail_attr_rec.tp_attribute5 := l_fte_detail_attr_rec.tp_attribute5;
4335 		l_detail_attr_rec.tp_attribute6 := l_fte_detail_attr_rec.tp_attribute6;
4336 		l_detail_attr_rec.tp_attribute7 := l_fte_detail_attr_rec.tp_attribute7;
4337 		l_detail_attr_rec.tp_attribute8 := l_fte_detail_attr_rec.tp_attribute8;
4338 		l_detail_attr_rec.tp_attribute9 := l_fte_detail_attr_rec.tp_attribute9;
4339 		l_detail_attr_rec.tp_attribute10 := l_fte_detail_attr_rec.tp_attribute10;
4340 		l_detail_attr_rec.tp_attribute11 := l_fte_detail_attr_rec.tp_attribute11;
4341 		l_detail_attr_rec.tp_attribute12 := l_fte_detail_attr_rec.tp_attribute12;
4342 		l_detail_attr_rec.tp_attribute13 := l_fte_detail_attr_rec.tp_attribute13;
4343 		l_detail_attr_rec.tp_attribute14 := l_fte_detail_attr_rec.tp_attribute14;
4344 		l_detail_attr_rec.tp_attribute15 := l_fte_detail_attr_rec.tp_attribute15;
4345 		l_detail_attr_rec.attribute_category := l_fte_detail_attr_rec.attribute_category;
4346 		l_detail_attr_rec.attribute1 := l_fte_detail_attr_rec.attribute1;
4347 		l_detail_attr_rec.attribute2 := l_fte_detail_attr_rec.attribute2;
4348 		l_detail_attr_rec.attribute3 := l_fte_detail_attr_rec.attribute3;
4349 		l_detail_attr_rec.attribute4 := l_fte_detail_attr_rec.attribute4;
4350 		l_detail_attr_rec.attribute5 := l_fte_detail_attr_rec.attribute5;
4351 		l_detail_attr_rec.attribute6 := l_fte_detail_attr_rec.attribute6;
4352 		l_detail_attr_rec.attribute7 := l_fte_detail_attr_rec.attribute7;
4353 		l_detail_attr_rec.attribute8 := l_fte_detail_attr_rec.attribute8;
4354 		l_detail_attr_rec.attribute9 := l_fte_detail_attr_rec.attribute9;
4355 		l_detail_attr_rec.attribute10 := l_fte_detail_attr_rec.attribute10;
4356 		l_detail_attr_rec.attribute11 := l_fte_detail_attr_rec.attribute11;
4357 		l_detail_attr_rec.attribute12 := l_fte_detail_attr_rec.attribute12;
4358 		l_detail_attr_rec.attribute13 := l_fte_detail_attr_rec.attribute13;
4359 		l_detail_attr_rec.attribute14 := l_fte_detail_attr_rec.attribute14;
4360 		l_detail_attr_rec.attribute15 := l_fte_detail_attr_rec.attribute15;
4361 		l_detail_attr_rec.created_by := l_fte_detail_attr_rec.created_by;
4362 		l_detail_attr_rec.creation_date := l_fte_detail_attr_rec.creation_date;
4363 		l_detail_attr_rec.last_update_date := l_fte_detail_attr_rec.last_update_date;
4364 		l_detail_attr_rec.last_update_login := l_fte_detail_attr_rec.last_update_login;
4365 		l_detail_attr_rec.last_updated_by := l_fte_detail_attr_rec.last_updated_by;
4366 		l_detail_attr_rec.program_application_id := l_fte_detail_attr_rec.program_application_id;
4367 		l_detail_attr_rec.program_id := l_fte_detail_attr_rec.program_id;
4368 		l_detail_attr_rec.program_update_date := l_fte_detail_attr_rec.program_update_date;
4369 		l_detail_attr_rec.request_id := l_fte_detail_attr_rec.request_id;
4370 		l_detail_attr_rec.mvt_stat_status := l_fte_detail_attr_rec.mvt_stat_status;
4371 		l_detail_attr_rec.released_flag := l_fte_detail_attr_rec.released_flag;
4372 		l_detail_attr_rec.organization_id := l_fte_detail_attr_rec.organization_id;
4373 		l_detail_attr_rec.transaction_temp_id := l_fte_detail_attr_rec.transaction_temp_id;
4374 		l_detail_attr_rec.ship_set_id := l_fte_detail_attr_rec.ship_set_id;
4375 		l_detail_attr_rec.arrival_set_id := l_fte_detail_attr_rec.arrival_set_id;
4376 		l_detail_attr_rec.ship_model_complete_flag := l_fte_detail_attr_rec.ship_model_complete_flag;
4377 		l_detail_attr_rec.top_model_line_id := l_fte_detail_attr_rec.top_model_line_id;
4378 		l_detail_attr_rec.source_header_number := l_fte_detail_attr_rec.source_header_number;
4379 		l_detail_attr_rec.source_header_type_id := l_fte_detail_attr_rec.source_header_type_id;
4380 		l_detail_attr_rec.source_header_type_name := l_fte_detail_attr_rec.source_header_type_name;
4381 		l_detail_attr_rec.cust_po_number := l_fte_detail_attr_rec.cust_po_number;
4382 		l_detail_attr_rec.ato_line_id := l_fte_detail_attr_rec.ato_line_id;
4383 		l_detail_attr_rec.src_requested_quantity := l_fte_detail_attr_rec.src_requested_quantity;
4384 		l_detail_attr_rec.src_requested_quantity_uom := l_fte_detail_attr_rec.src_requested_quantity_uom;
4385 		l_detail_attr_rec.move_order_line_id := l_fte_detail_attr_rec.move_order_line_id;
4386 		l_detail_attr_rec.cancelled_quantity := l_fte_detail_attr_rec.cancelled_quantity;
4387 		l_detail_attr_rec.quality_control_quantity := l_fte_detail_attr_rec.quality_control_quantity;
4388 		l_detail_attr_rec.cycle_count_quantity := l_fte_detail_attr_rec.cycle_count_quantity;
4389 		l_detail_attr_rec.tracking_number := l_fte_detail_attr_rec.tracking_number;
4390 		l_detail_attr_rec.movement_id := l_fte_detail_attr_rec.movement_id;
4391 		l_detail_attr_rec.shipping_instructions := l_fte_detail_attr_rec.shipping_instructions;
4392 		l_detail_attr_rec.packing_instructions := l_fte_detail_attr_rec.packing_instructions;
4393 		l_detail_attr_rec.project_id := l_fte_detail_attr_rec.project_id;
4394 		l_detail_attr_rec.task_id := l_fte_detail_attr_rec.task_id;
4395 		l_detail_attr_rec.org_id := l_fte_detail_attr_rec.org_id;
4396 		l_detail_attr_rec.oe_interfaced_flag := l_fte_detail_attr_rec.oe_interfaced_flag;
4397 		l_detail_attr_rec.split_from_detail_id := l_fte_detail_attr_rec.split_from_detail_id;
4398 		l_detail_attr_rec.inv_interfaced_flag := l_fte_detail_attr_rec.inv_interfaced_flag;
4399 		l_detail_attr_rec.source_line_number := l_fte_detail_attr_rec.source_line_number;
4400 		l_detail_attr_rec.inspection_flag := l_fte_detail_attr_rec.inspection_flag;
4401 		l_detail_attr_rec.released_status := l_fte_detail_attr_rec.released_status;
4402 		l_detail_attr_rec.container_flag := l_fte_detail_attr_rec.container_flag;
4403 		l_detail_attr_rec.container_type_code := l_fte_detail_attr_rec.container_type_code;
4404 		l_detail_attr_rec.container_name := l_fte_detail_attr_rec.container_name;
4405 		l_detail_attr_rec.fill_percent := l_fte_detail_attr_rec.fill_percent;
4406 		l_detail_attr_rec.gross_weight := l_fte_detail_attr_rec.gross_weight;
4407 		l_detail_attr_rec.master_serial_number := l_fte_detail_attr_rec.master_serial_number;
4408 		l_detail_attr_rec.maximum_load_weight := l_fte_detail_attr_rec.maximum_load_weight;
4409 		l_detail_attr_rec.maximum_volume := l_fte_detail_attr_rec.maximum_volume;
4410 		l_detail_attr_rec.minimum_fill_percent := l_fte_detail_attr_rec.minimum_fill_percent;
4411 		l_detail_attr_rec.seal_code := l_fte_detail_attr_rec.seal_code;
4412 		l_detail_attr_rec.unit_number := l_fte_detail_attr_rec.unit_number;
4413 		l_detail_attr_rec.unit_price := l_fte_detail_attr_rec.unit_price;
4414 		l_detail_attr_rec.currency_code := l_fte_detail_attr_rec.currency_code;
4415 		l_detail_attr_rec.freight_class_cat_id := l_fte_detail_attr_rec.freight_class_cat_id;
4416 		l_detail_attr_rec.commodity_code_cat_id := l_fte_detail_attr_rec.commodity_code_cat_id;
4417 		l_detail_attr_rec.preferred_grade := l_fte_detail_attr_rec.preferred_grade;
4418 		l_detail_attr_rec.src_requested_quantity2 := l_fte_detail_attr_rec.src_requested_quantity2;
4419 		l_detail_attr_rec.src_requested_quantity_uom2 := l_fte_detail_attr_rec.src_requested_quantity_uom2;
4420 		l_detail_attr_rec.requested_quantity2 := l_fte_detail_attr_rec.requested_quantity2;
4421 		l_detail_attr_rec.shipped_quantity2 := l_fte_detail_attr_rec.shipped_quantity2;
4422 		l_detail_attr_rec.delivered_quantity2 := l_fte_detail_attr_rec.delivered_quantity2;
4423 		l_detail_attr_rec.cancelled_quantity2 := l_fte_detail_attr_rec.cancelled_quantity2;
4424 		l_detail_attr_rec.quality_control_quantity2 := l_fte_detail_attr_rec.quality_control_quantity2;
4425 		l_detail_attr_rec.cycle_count_quantity2 := l_fte_detail_attr_rec.cycle_count_quantity2;
4426 		l_detail_attr_rec.requested_quantity_uom2 := l_fte_detail_attr_rec.requested_quantity_uom2;
4427 		--l_detail_attr_rec.sublot_number := l_fte_detail_attr_rec.sublot_number;
4428 		l_detail_attr_rec.lpn_id := l_fte_detail_attr_rec.lpn_id;
4429 		l_detail_attr_rec.pickable_flag := l_fte_detail_attr_rec.pickable_flag;
4430 		l_detail_attr_rec.original_subinventory := l_fte_detail_attr_rec.original_subinventory;
4431 		l_detail_attr_rec.to_serial_number := l_fte_detail_attr_rec.to_serial_number;
4432 		l_detail_attr_rec.picked_quantity := l_fte_detail_attr_rec.picked_quantity;
4433 		l_detail_attr_rec.picked_quantity2 := l_fte_detail_attr_rec.picked_quantity2;
4434 		l_detail_attr_rec.received_quantity := l_fte_detail_attr_rec.received_quantity;
4435 		l_detail_attr_rec.received_quantity2 := l_fte_detail_attr_rec.received_quantity2;
4436 		l_detail_attr_rec.source_line_set_id := l_fte_detail_attr_rec.source_line_set_id;
4437 		l_detail_attr_rec.batch_id := l_fte_detail_attr_rec.batch_id;
4438 		l_detail_attr_rec.ROWID := l_fte_detail_attr_rec.ROW_ID;
4439 		l_detail_attr_rec.transaction_id := l_fte_detail_attr_rec.transaction_id;
4440 		l_detail_attr_rec.VENDOR_ID := l_fte_detail_attr_rec.VENDOR_ID;
4441 		l_detail_attr_rec.SHIP_FROM_SITE_ID := l_fte_detail_attr_rec.SHIP_FROM_SITE_ID;
4442 		l_detail_attr_rec.LINE_DIRECTION := l_fte_detail_attr_rec.LINE_DIRECTION;
4443 		l_detail_attr_rec.PARTY_ID := l_fte_detail_attr_rec.PARTY_ID;
4444 		l_detail_attr_rec.ROUTING_REQ_ID := l_fte_detail_attr_rec.ROUTING_REQ_ID;
4445 		l_detail_attr_rec.SHIPPING_CONTROL := l_fte_detail_attr_rec.SHIPPING_CONTROL;
4446 		l_detail_attr_rec.SOURCE_BLANKET_REFERENCE_ID := l_fte_detail_attr_rec.SOURCE_BLANKET_REFERENCE_ID;
4447 		l_detail_attr_rec.SOURCE_BLANKET_REFERENCE_NUM := l_fte_detail_attr_rec.SOURCE_BLANKET_REFERENCE_NUM;
4448 		l_detail_attr_rec.PO_SHIPMENT_LINE_ID := l_fte_detail_attr_rec.PO_SHIPMENT_LINE_ID;
4449 		l_detail_attr_rec.PO_SHIPMENT_LINE_NUMBER := l_fte_detail_attr_rec.PO_SHIPMENT_LINE_NUMBER;
4450 		l_detail_attr_rec.RETURNED_QUANTITY := l_fte_detail_attr_rec.RETURNED_QUANTITY;
4451 		l_detail_attr_rec.RETURNED_QUANTITY2 := l_fte_detail_attr_rec.RETURNED_QUANTITY2;
4452 		l_detail_attr_rec.RCV_SHIPMENT_LINE_ID := l_fte_detail_attr_rec.RCV_SHIPMENT_LINE_ID;
4453 		l_detail_attr_rec.SOURCE_LINE_TYPE_CODE := l_fte_detail_attr_rec.SOURCE_LINE_TYPE_CODE;
4454 		l_detail_attr_rec.SUPPLIER_ITEM_NUMBER := l_fte_detail_attr_rec.SUPPLIER_ITEM_NUMBER;
4455 		l_detail_attr_rec.IGNORE_FOR_PLANNING := l_fte_detail_attr_rec.IGNORE_FOR_PLANNING;
4456 		l_detail_attr_rec.EARLIEST_PICKUP_DATE := l_fte_detail_attr_rec.EARLIEST_PICKUP_DATE;
4457 		l_detail_attr_rec.LATEST_PICKUP_DATE := l_fte_detail_attr_rec.LATEST_PICKUP_DATE;
4458 		l_detail_attr_rec.EARLIEST_DROPOFF_DATE := l_fte_detail_attr_rec.EARLIEST_DROPOFF_DATE;
4459 		l_detail_attr_rec.LATEST_DROPOFF_DATE := l_fte_detail_attr_rec.LATEST_DROPOFF_DATE;
4460 		l_detail_attr_rec.REQUEST_DATE_TYPE_CODE := l_fte_detail_attr_rec.REQUEST_DATE_TYPE_CODE;
4461 		l_detail_attr_rec.tp_delivery_detail_id := l_fte_detail_attr_rec.tp_delivery_detail_id;
4462 		l_detail_attr_rec.source_document_type_id := l_fte_detail_attr_rec.source_document_type_id;
4463 
4464 	  END LOOP;
4465 	END IF;
4466 
4467 	-- Create details_attr_tab_type
4468 	l_detail_attr_tab_type(1) := l_detail_attr_rec;
4469 
4470 	-- Create detailsInRec
4471 	l_detail_in_rec.caller := G_PKG_NAME;
4472 	l_detail_in_rec.action_code := p_action_code;
4473 
4474 	-- Call WSH's Create_Update_DDL API
4475 	WSH_INTERFACE_GRP.Create_Update_Delivery_Detail (
4476 		p_api_version_number	=> 1.0,
4477 		p_init_msg_list		=> FND_API.G_TRUE,
4478 		p_commit		=> FND_API.G_FALSE,
4479 		x_return_status		=> x_return_status,
4480 		x_msg_count		=> x_msg_count,
4481 		x_msg_data		=> x_msg_data,
4482 		p_detail_info_tab	=> l_detail_attr_tab_type,
4483 		p_IN_rec		=> l_detail_in_rec,
4484 		x_OUT_rec		=> l_detail_out_rec -- WSH_UTIL_CORE.Id_Tab_Type
4485 	);
4486 
4487 	-- Handle detailsOutRec
4488 
4489 	IF l_debug_on THEN
4490 		WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
4491 		WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
4492 	END IF;
4493 
4494 	FND_MSG_PUB.Count_And_Get
4495 	(
4496 	     p_count  => x_msg_count,
4497 	     p_data  =>  x_msg_data,
4498 	     p_encoded => FND_API.G_FALSE
4499 	);
4500 
4501 
4502 	IF l_debug_on THEN
4503 		WSH_DEBUG_SV.pop(l_module_name);
4504 	END IF;
4505 
4506 
4507 	EXCEPTION
4508 		WHEN FND_API.G_EXC_ERROR THEN
4509 			ROLLBACK TO DDL_CREATE_UPDATE_PUB;
4510 			x_return_status := FND_API.G_RET_STS_ERROR;
4511 			FND_MSG_PUB.Count_And_Get
4512 			  (
4513 			     p_count  => x_msg_count,
4514 			     p_data  =>  x_msg_data,
4515 			     p_encoded => FND_API.G_FALSE
4516 			  );
4517 
4518 			IF l_debug_on THEN
4519 				WSH_DEBUG_SV.pop(l_module_name);
4520 			END IF;
4521 		WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4522 			ROLLBACK TO DDL_CREATE_UPDATE_PUB;
4523 			x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4524 			FND_MSG_PUB.Count_And_Get
4525 			  (
4526 			     p_count  => x_msg_count,
4527 			     p_data  =>  x_msg_data,
4528 			     p_encoded => FND_API.G_FALSE
4529 			  );
4530 			IF l_debug_on THEN
4531 				WSH_DEBUG_SV.pop(l_module_name);
4532 			END IF;
4533 		WHEN OTHERS THEN
4534 			ROLLBACK TO DDL_CREATE_UPDATE_PUB;
4535 			x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4536 			FND_MSG_PUB.Count_And_Get
4537 			  (
4538 			     p_count  => x_msg_count,
4539 			     p_data  =>  x_msg_data,
4540 			     p_encoded => FND_API.G_FALSE
4541 			  );
4542 			IF l_debug_on THEN
4543 				WSH_DEBUG_SV.pop(l_module_name);
4544 			END IF;
4545   --
4546 
4547   END Create_Update_Delivery_Detail;
4548 
4549   --
4550   --
4551 --========================================================================
4552 -- PROCEDURE : Delivery_Action         FTE wrapper
4553 -- p_action_code: AUTOCREATE_TRIP,CALC_WT_VOL,UNASSIGN,
4554 --                SPLIT,SELECT-CARRIER,CLOSE,FIRM,PLAN,UNPLAN,
4555 --                IGNORE_PLAN,INCLUDE_PLAN
4556 --========================================================================
4557 
4558 PROCEDURE Delivery_Action
4559   ( p_api_version_number	IN 	NUMBER,
4560     p_init_msg_list          	IN 	VARCHAR2,
4561     p_mls_id_tab	     	IN 	FTE_ID_TAB_TYPE,
4562     p_action_params		IN 	FTE_DLV_ACTION_PARAM_REC,
4563     x_return_status          	OUT NOCOPY   VARCHAR2,
4564     x_msg_count              	OUT NOCOPY   NUMBER,
4565     x_msg_data               	OUT NOCOPY   VARCHAR2,
4566     x_action_out_rec		OUT NOCOPY   FTE_ACTION_OUT_REC
4567   ) IS
4568 
4569 	l_delivery_id_tab	WSH_UTIL_CORE.id_tab_type;
4570 	l_delivery_out_rec	WSH_DELIVERIES_GRP.Delivery_Action_Out_Rec_Type;
4571 	l_action_prms 		WSH_DELIVERIES_GRP.action_parameters_rectype;
4572 
4573     	-- Set delivery action_out_rec
4574     	l_result_id_tab		FTE_ID_TAB_TYPE;
4575 	l_valid_id_tab		FTE_ID_TAB_TYPE;
4576     	l_selection_issue_flag	VARCHAR(1);
4577 	l_packing_slip_number	VARCHAR2(50);
4578 
4579 
4580 	l_number_of_errors    NUMBER;
4581 	l_number_of_warnings  NUMBER;
4582 	l_return_status             VARCHAR2(32767);
4583 	l_msg_count                 NUMBER;
4584 	l_index                     NUMBER;
4585 	l_msg_data                  VARCHAR2(32767);
4586 
4587 
4588     --
4589     l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
4590     --
4591     l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'DELIVERY_ACTION';
4592 
4593 
4594       CURSOR stop_info (p_tripId NUMBER)
4595       IS
4596 	SELECT stop_id, trip_id, planned_arrival_Date,planned_departure_date
4597 	FROM   wsh_trip_stops
4598         WHERE  trip_id        = p_tripId;
4599 
4600       BEGIN
4601 
4602     	SAVEPOINT	DELIVERY_ACTION_PUB;
4603 
4604     	-- Initialize message list if p_init_msg_list is set to TRUE.
4605     	--
4606     	--
4607     	IF FND_API.to_Boolean( p_init_msg_list )
4608     	THEN
4609     		FND_MSG_PUB.initialize;
4610     	END IF;
4611     	--
4612     	--
4613     	--  Initialize API return status to success
4614     	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4615     	x_msg_count		:= 0;
4616     	x_msg_data		:= null;
4617 
4618 
4619 	l_number_of_errors     := 0;
4620 	l_number_of_warnings   := 0;
4621 
4622 
4623 
4624     	IF l_debug_on THEN
4625     	      wsh_debug_sv.push(l_module_name);
4626 	END IF;
4627 
4628 	-- set action_prms
4629 	l_action_prms.caller			:= G_PKG_NAME;
4630 	l_action_prms.phase 	 		:= p_action_params.phase;
4631 	l_action_prms.action_code		:= p_action_params.action_code;
4632 	l_action_prms.trip_id			:= p_action_params.trip_id;
4633 	l_action_prms.trip_name			:= p_action_params.trip_name;
4634 	l_action_prms.pickup_stop_id		:= p_action_params.pickup_stop_id;
4635 	l_action_prms.pickup_loc_id		:= p_action_params.pickup_loc_id;
4636 	l_action_prms.pickup_stop_seq		:= p_action_params.pickup_stop_seq;
4637 	l_action_prms.pickup_loc_code		:= p_action_params.pickup_loc_code;
4638 	l_action_prms.pickup_arr_date		:= p_action_params.pickup_arr_date;
4639 	l_action_prms.pickup_dep_date		:= p_action_params.pickup_dep_date;
4640 	l_action_prms.pickup_stop_status	:= p_action_params.pickup_stop_status;
4641 	l_action_prms.dropoff_stop_id		:= p_action_params.dropoff_stop_id;
4642 	l_action_prms.dropoff_loc_id		:= p_action_params.dropoff_loc_id;
4643 	l_action_prms.dropoff_stop_seq		:= p_action_params.dropoff_stop_seq;
4644 	l_action_prms.dropoff_loc_code		:= p_action_params.dropoff_loc_code;
4645 	l_action_prms.dropoff_arr_date		:= p_action_params.dropoff_arr_date;
4646 	l_action_prms.dropoff_dep_date		:= p_action_params.dropoff_dep_date;
4647 	l_action_prms.dropoff_stop_status	:= p_action_params.dropoff_stop_status;
4648 	l_action_prms.action_flag		:= p_action_params.action_flag;
4649 	l_action_prms.intransit_flag		:= p_action_params.intransit_flag;
4650 	l_action_prms.close_trip_flag		:= p_action_params.close_trip_flag;
4651 	l_action_prms.stage_del_flag		:= p_action_params.stage_del_flag;
4652 	l_action_prms.bill_of_lading_flag	:= p_action_params.bill_of_lading_flag;
4653 	l_action_prms.mc_bill_of_lading_flag	:= p_action_params.mc_bill_of_lading_flag;
4654 	l_action_prms.override_flag		:= p_action_params.override_flag;
4655 	l_action_prms.ship_method_code		:= p_action_params.ship_method_code;
4656 	l_action_prms.actual_dep_date		:= p_action_params.actual_dep_date;
4657 	l_action_prms.report_set_id		:= p_action_params.report_set_id;
4658 	l_action_prms.report_set_name		:= p_action_params.report_set_name;
4659 	l_action_prms.send_945_flag		:= p_action_params.send_945_flag;
4660 	l_action_prms.action_type		:= p_action_params.action_type;
4661 	l_action_prms.document_type		:= p_action_params.document_type;
4662 	l_action_prms.organization_id		:= p_action_params.organization_id;
4663 	l_action_prms.reason_of_transport	:= p_action_params.reason_of_transport;
4664 	l_action_prms.description		:= p_action_params.description;
4665 
4666 	-- Set id_tab
4667 	FOR i IN p_mls_id_tab.FIRST..p_mls_id_tab.LAST LOOP
4668 		l_delivery_id_tab(i) := p_mls_id_tab(i);
4669 	END LOOP;
4670 
4671 	WSH_INTERFACE_GRP.Delivery_Action
4672 	(
4673 		p_api_version_number	=>p_api_version_number,
4674     		p_init_msg_list		=>FND_API.G_TRUE,
4675     		p_commit		=>FND_API.G_FALSE,
4676     		p_action_prms           =>l_action_prms,   -- WSH_DELIVERIES_GRP.action_parameters_rectype
4677     		p_delivery_id_tab	=>l_delivery_id_tab, -- wsh_util_core.id_tab_type
4678 		x_delivery_out_rec	=>l_delivery_out_rec, -- WSH_DELIVERIES_GRP.Delivery_Action_Out_Rec_Type
4679     		x_return_status     	=>l_return_status,
4680     		x_msg_count         	=>l_msg_count,
4681     		x_msg_data          	=>l_msg_data
4682     	);
4683 
4684 
4685 	IF l_debug_on THEN
4686 		WSH_DEBUG_SV.logmsg(l_module_name,' Return Message ' || l_return_status );
4687 		WSH_DEBUG_SV.logmsg(l_module_name,' l_msg_data ' || l_msg_data );
4688 		WSH_DEBUG_SV.logmsg(l_module_name,' l_msg_count ' || l_msg_count );
4689 	END IF;
4690 
4691 
4692 	wsh_util_core.api_post_call(
4693 	      p_return_status    =>l_return_status,
4694 	      x_num_warnings     =>l_number_of_warnings,
4695 	      x_num_errors       =>l_number_of_errors,
4696 	      p_msg_data	 =>l_msg_data);
4697 
4698 
4699 
4700 	l_result_id_tab 	:= FTE_ID_TAB_TYPE();
4701 	l_valid_id_tab 		:= FTE_ID_TAB_TYPE();
4702 	x_action_out_rec 	:= FTE_ACTION_OUT_REC(
4703 					l_result_id_tab,l_valid_id_tab,null,null,null,null,null,null);
4704 
4705 	-- set valid ids tab
4706 	IF (l_delivery_out_rec.valid_ids_tab.count>0) THEN
4707 		FOR i IN l_delivery_out_rec.valid_ids_tab.FIRST..l_delivery_out_rec.valid_ids_tab.LAST LOOP
4708 			l_valid_id_tab.EXTEND;
4709 			l_valid_id_tab(i) := l_delivery_out_rec.valid_ids_tab(i);
4710 		END LOOP;
4711 	END IF;
4712 
4713 	-- set result ids tab
4714 	IF (l_delivery_out_rec.result_id_tab.count>0) THEN
4715 		FOR i IN l_delivery_out_rec.result_id_tab.FIRST..l_delivery_out_rec.result_id_tab.LAST LOOP
4716 			l_result_id_tab.EXTEND;
4717 			l_result_id_tab(i) := l_delivery_out_rec.result_id_tab(i);
4718 		END LOOP;
4719 	END IF;
4720 
4721 
4722 	-- set selection issue flag
4723 	l_selection_issue_flag := l_delivery_out_rec.selection_issue_flag;
4724 
4725 	IF l_debug_on THEN
4726 		WSH_DEBUG_SV.logmsg(l_module_name,'Return Count ' || x_action_out_rec.result_id_tab.count);
4727 
4728 
4729 		FOR stop_info_rec IN stop_info (p_action_params.trip_id)
4730 		LOOP
4731 		--{
4732 			WSH_DEBUG_SV.logmsg(l_module_name,' Stop Id ' || stop_info_rec.stop_id);
4733 			WSH_DEBUG_SV.logmsg(l_module_name,' Planned Arrival Date ' || stop_info_rec.planned_arrival_date);
4734 			WSH_DEBUG_SV.logmsg(l_module_name,' Planned departure date ' || stop_info_rec.planned_departure_date);
4735 		--}
4736 		END LOOP;
4737 
4738 	END IF;
4739 
4740 	IF l_number_of_errors > 0
4741 	THEN
4742 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4743 	ELSIF l_number_of_warnings > 0
4744 	THEN
4745 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
4746 	ELSE
4747 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4748 	END IF;
4749 
4750 	IF l_debug_on THEN
4751 		WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
4752 		WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
4753 		WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_data:' || x_msg_data);
4754 	END IF;
4755 
4756 
4757 	/**
4758 	FND_MSG_PUB.Count_And_Get
4759 	(
4760 	     p_count  => x_msg_count,
4761 	     p_data  =>  x_msg_data,
4762 	     p_encoded => FND_API.G_FALSE
4763 	);
4764 	*/
4765 
4766 
4767 	IF l_debug_on THEN
4768 		WSH_DEBUG_SV.pop(l_module_name);
4769 	END IF;
4770 
4771 
4772 	EXCEPTION
4773 		WHEN FND_API.G_EXC_ERROR THEN
4774 			ROLLBACK TO DELIVERY_ACTION_PUB;
4775 			x_return_status := FND_API.G_RET_STS_ERROR;
4776 			FND_MSG_PUB.Count_And_Get
4777 			  (
4778 			     p_count  => x_msg_count,
4779 			     p_data  =>  x_msg_data,
4780 			     p_encoded => FND_API.G_FALSE
4781 			  );
4782 
4783 			IF l_debug_on THEN
4784 				WSH_DEBUG_SV.pop(l_module_name);
4785 			END IF;
4786 		WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4787 			ROLLBACK TO DELIVERY_ACTION_PUB;
4788 			x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4789 			FND_MSG_PUB.Count_And_Get
4790 			  (
4791 			     p_count  => x_msg_count,
4792 			     p_data  =>  x_msg_data,
4793 			     p_encoded => FND_API.G_FALSE
4794 			  );
4795 			IF l_debug_on THEN
4796 				WSH_DEBUG_SV.pop(l_module_name);
4797 			END IF;
4798 		WHEN OTHERS THEN
4799 			ROLLBACK TO DELIVERY_ACTION_PUB;
4800 			x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4801 			FND_MSG_PUB.Count_And_Get
4802 			  (
4803 			     p_count  => x_msg_count,
4804 			     p_data  =>  x_msg_data,
4805 			     p_encoded => FND_API.G_FALSE
4806 			  );
4807 			IF l_debug_on THEN
4808 				WSH_DEBUG_SV.pop(l_module_name);
4809 			END IF;
4810 
4811 
4812   --
4813   --
4814   END Delivery_Action;
4815   --
4816   --
4817 --========================================================================
4818 --
4819 -- PROCEDURE : Delivery_Action_On_Trip         FTE wrapper
4820 -- p_action_code: UNASSIGN-TRIP
4821 -- Description : Unassigns 1 delivery from 1 trip. If you pass in multiple
4822 --               deliveres, each on a single trip (as validated in FTE),
4823 --               procedure iteratively calls WSH Group APIs for each
4824 --               delivery.
4825 --
4826 --========================================================================
4827 
4828 PROCEDURE Delivery_Action_On_Trip
4829   ( p_api_version_number	IN 	NUMBER,
4830     p_init_msg_list          	IN 	VARCHAR2,
4831     p_mls_delivery_id_tab	IN 	FTE_ID_TAB_TYPE,
4832     p_mls_trip_id_tab	     	IN 	FTE_ID_TAB_TYPE,
4833     p_action_params		IN 	FTE_DLV_ACTION_PARAM_REC,
4834     x_return_status          	OUT NOCOPY   VARCHAR2,
4835     x_msg_count              	OUT NOCOPY   NUMBER,
4836     x_msg_data               	OUT NOCOPY   VARCHAR2,
4837     x_action_out_rec		OUT NOCOPY   FTE_ACTION_OUT_REC
4838   ) IS
4839 
4840 	l_delivery_id_tab	WSH_UTIL_CORE.id_tab_type;
4841 	l_delivery_out_rec	WSH_DELIVERIES_GRP.Delivery_Action_Out_Rec_Type;
4842 	l_action_prms 		WSH_DELIVERIES_GRP.action_parameters_rectype;
4843 
4844     	-- Set delivery action_out_rec
4845     	x_result_id_tab		FTE_ID_TAB_TYPE;
4846 	x_valid_id_tab		FTE_ID_TAB_TYPE;
4847     	l_selection_issue_flag	VARCHAR(1);
4848 	l_packing_slip_number	VARCHAR2(50);
4849 	l_return_status		VARCHAR2(100);
4850 	l_msg_count		NUMBER;
4851 	l_msg_data		VARCHAR2(500);
4852 	l_number_of_warnings    NUMBER;
4853 	l_number_of_errors      NUMBER;
4854 	l_number_valid		NUMBER;
4855 
4856     --
4857     l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
4858     --
4859     l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'DELIVERY_ACTION_ON_TRIP';
4860 
4861 
4862       BEGIN
4863 
4864     	SAVEPOINT	DELIVERY_ACTION_ON_TRIP_PUB;
4865 
4866     	-- Initialize message list if p_init_msg_list is set to TRUE.
4867     	--
4868     	--
4869     	IF FND_API.to_Boolean( p_init_msg_list )
4870     	THEN
4871     		FND_MSG_PUB.initialize;
4872     	END IF;
4873     	--
4874     	--
4875     	--  Initialize API return status to success
4876     	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4877     	x_msg_count		:= 0;
4878     	--x_msg_data		:= 0;
4879 	l_number_of_warnings    := 0;
4880         l_number_of_errors      := 0;
4881     	l_number_valid		:= 1;
4882 
4883     	IF l_debug_on THEN
4884     	      wsh_debug_sv.push(l_module_name);
4885 	END IF;
4886 
4887 	x_result_id_tab 	:= FTE_ID_TAB_TYPE();
4888 	x_valid_id_tab 		:= FTE_ID_TAB_TYPE();
4889 
4890 	FOR i IN p_mls_delivery_id_tab.FIRST..p_mls_delivery_id_tab.LAST LOOP
4891 		-- set action_prms
4892 		l_action_prms.phase 	 	:= p_action_params.phase;
4893 		l_action_prms.action_code	:= p_action_params.action_code;
4894 		l_action_prms.caller		:= G_PKG_NAME;
4895 		l_action_prms.trip_id		:= p_mls_trip_id_tab(i);
4896 
4897 		-- set id tab
4898 		l_delivery_id_tab(1)            := p_mls_delivery_id_tab(i);
4899 
4900 	    	--  Initialize API return status to success
4901 	    	l_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4902 	    	l_msg_count		:= 0;
4903 	    	l_msg_data		:= 0;
4904 
4905 		WSH_INTERFACE_GRP.Delivery_Action
4906 		(
4907 			p_api_version_number	=>p_api_version_number,
4908     			p_init_msg_list		=>p_init_msg_list,
4909     			p_commit		=>FND_API.G_FALSE,
4910     			p_action_prms           =>l_action_prms,   -- WSH_DELIVERIES_GRP.action_parameters_rectype
4911     			p_delivery_id_tab	=>l_delivery_id_tab, -- wsh_util_core.id_tab_type
4912 			x_delivery_out_rec	=>l_delivery_out_rec, -- WSH_DELIVERIES_GRP.Delivery_Action_Out_Rec_Type
4913     			x_return_status     	=>l_return_status,
4914     			x_msg_count         	=>l_msg_count,
4915     			x_msg_data          	=>l_msg_data
4916     		);
4917 
4918 	  -- if success, populate valid ids tab
4919 	  IF ((l_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS)
4920 	  		OR (l_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING))
4921 	  THEN
4922 	  	x_valid_id_tab.EXTEND;
4923 	  	x_valid_id_tab(l_number_valid) := l_delivery_id_tab(1);
4924 	  END IF;
4925 
4926 	  WSH_UTIL_CORE.API_POST_CALL(
4927                               p_return_status    =>l_return_status,
4928                               x_num_warnings     =>l_number_of_warnings,
4929                               x_num_errors       =>l_number_of_errors,
4930                               p_msg_data         =>l_msg_data,
4931                               p_raise_error_flag =>FALSE);
4932 
4933 	  -- set selection issue flag
4934 	  l_selection_issue_flag := l_delivery_out_rec.selection_issue_flag;
4935 
4936 	  IF l_debug_on THEN
4937 		WSH_DEBUG_SV.logmsg(l_module_name,'l_return_status:' || l_return_status);
4938 		WSH_DEBUG_SV.logmsg(l_module_name,'l_msg_count:' || l_msg_count);
4939 	  END IF;
4940 
4941 	  x_msg_count := x_msg_count+l_msg_count;
4942 	  --x_msg_data := x_msg_data||' '||l_msg_data;
4943 
4944 	END LOOP;
4945 
4946  	IF l_debug_on THEN
4947 		WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count total:' || x_msg_count);
4948 		WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_data total:' || x_msg_data);
4949  	END IF;
4950 
4951  	IF l_debug_on THEN
4952 		WSH_DEBUG_SV.logmsg(l_module_name,'x_valid_id count:' || x_valid_id_tab.count);
4953  	END IF;
4954 
4955 
4956 	x_action_out_rec 	:= FTE_ACTION_OUT_REC(
4957 					x_result_id_tab,x_valid_id_tab,null,null,null,null,null,null);
4958 
4959 	IF ((x_valid_id_tab.count > 0) AND (x_valid_id_tab.count = p_mls_delivery_id_tab.count))
4960 	THEN
4961 		x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
4962 	ELSIF ((x_valid_id_tab.count > 0) AND (x_valid_id_tab.count <> p_mls_delivery_id_tab.count))
4963 	THEN
4964 		x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
4965 	ELSIF (x_valid_id_tab.count <= 0)
4966 	THEN
4967 		x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4968 	ELSE
4969 		x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
4970 	END IF;
4971 
4972  	IF l_debug_on THEN
4973 		WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status count:' || x_return_status);
4974  	END IF;
4975 
4976 	IF l_debug_on THEN
4977 		WSH_DEBUG_SV.pop(l_module_name);
4978 	END IF;
4979 
4980 
4981 	EXCEPTION
4982 		WHEN FND_API.G_EXC_ERROR THEN
4983 			ROLLBACK TO DELIVERY_ACTION_ON_TRIP_PUB;
4984 			x_return_status := FND_API.G_RET_STS_ERROR;
4985 			FND_MSG_PUB.Count_And_Get
4986 			  (
4987 			     p_count  => x_msg_count,
4988 			     p_data  =>  x_msg_data,
4989 			     p_encoded => FND_API.G_FALSE
4990 			  );
4991 			IF l_debug_on THEN
4992 				WSH_DEBUG_SV.pop(l_module_name);
4993 			END IF;
4994 		WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
4995 			ROLLBACK TO DELIVERY_ACTION_ON_TRIP_PUB;
4996 			x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
4997 			FND_MSG_PUB.Count_And_Get
4998 			  (
4999 			     p_count  => x_msg_count,
5000 			     p_data  =>  x_msg_data,
5001 			     p_encoded => FND_API.G_FALSE
5002 			  );
5003 			IF l_debug_on THEN
5004 				WSH_DEBUG_SV.pop(l_module_name);
5005 			END IF;
5006 		WHEN OTHERS THEN
5007 			ROLLBACK TO DELIVERY_ACTION_ON_TRIP_PUB;
5008 			x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5009 			FND_MSG_PUB.Count_And_Get
5010 			  (
5011 			     p_count  => x_msg_count,
5012 			     p_data  =>  x_msg_data,
5013 			     p_encoded => FND_API.G_FALSE
5014 			  );
5015 			IF l_debug_on THEN
5016 				WSH_DEBUG_SV.pop(l_module_name);
5017 			END IF;
5018 
5019 
5020 
5021 
5022   END Delivery_Action_On_Trip;
5023 --
5024 --
5025 --========================================================================
5026 -- PROCEDURE : Delivery_Action         FTE wrapper
5027 -- p_action_code: AUTOCREATE_TRIP,CALC_WT_VOL,UNASSIGN,
5028 --                SPLIT,SELECT-CARRIER,CLOSE,FIRM,PLAN,UNPLAN,
5029 --                IGNORE_PLAN,INCLUDE_PLAN
5030 --========================================================================
5031 --
5032 PROCEDURE Create_Update_Delivery
5033   ( p_api_version_number     IN   NUMBER,
5034     p_init_msg_list          IN   VARCHAR2,
5035     p_commit		     IN   VARCHAR2,
5036     p_dlvy_info_tab	     IN   FTE_DLV_ATTR_TAB_TYPE,
5037     p_action_code	     IN	  VARCHAR2,
5038     x_return_status          OUT  NOCOPY VARCHAR2,
5039     x_msg_count              OUT  NOCOPY NUMBER,
5040     x_msg_data               OUT  NOCOPY VARCHAR2,
5041     x_dlvy_id_tab	     OUT  NOCOPY FTE_ID_TAB_TYPE
5042   ) IS
5043 
5044        l_dlvy_attr_tab_type	WSH_NEW_DELIVERIES_PVT.Delivery_Attr_Tbl_Type;
5045        l_dlvy_attr_rec		WSH_NEW_DELIVERIES_PVT.Delivery_Rec_Type;
5046        l_dlvy_in_rec		WSH_DELIVERIES_GRP.Del_In_Rec_Type;
5047        l_dlvy_out_rec		WSH_DELIVERIES_GRP.Del_Out_Tbl_Type;
5048        l_fte_dlvy_attr_rec	FTE_DLV_ATTR_REC;
5049 
5050       --
5051        l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
5052        --
5053        l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'CREATE_UPDATE_DLVY';
5054 
5055 
5056         BEGIN
5057 
5058        	SAVEPOINT	DELIVERY_CREATE_UPDATE_PUB;
5059 
5060        	-- Initialize message list if p_init_msg_list is set to TRUE.
5061        	--
5062        	--
5063        	IF FND_API.to_Boolean( p_init_msg_list )
5064        	THEN
5065        		FND_MSG_PUB.initialize;
5066        	END IF;
5067        	--
5068        	--
5069        	--  Initialize API return status to success
5070        	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
5071        	x_msg_count		:= 0;
5072        	x_msg_data		:= 0;
5073 
5074        	IF l_debug_on THEN
5075        	      wsh_debug_sv.push(l_module_name);
5076    	END IF;
5077 
5078 	-- Extract delivery_rec_type from table - table should only have one row
5079 	-- 153 Attributes mapped
5080 	IF (p_dlvy_info_tab.count>0) THEN
5081 	  FOR i IN p_dlvy_info_tab.FIRST..p_dlvy_info_tab.LAST LOOP
5082 	  	l_fte_dlvy_attr_rec := p_dlvy_info_tab(i);
5083 
5084 	  	l_dlvy_attr_rec.DELIVERY_ID := l_fte_dlvy_attr_rec.DELIVERY_ID;
5085 	  	l_dlvy_attr_rec.NAME := l_fte_dlvy_attr_rec.DELIVERY_NAME;
5086 	  	l_dlvy_attr_rec.PLANNED_FLAG := l_fte_dlvy_attr_rec.PLANNED_FLAG;
5087 	  	l_dlvy_attr_rec.STATUS_CODE := l_fte_dlvy_attr_rec.STATUS_CODE;
5088 	  	l_dlvy_attr_rec.DELIVERY_TYPE := l_fte_dlvy_attr_rec.DELIVERY_TYPE;
5089 	  	l_dlvy_attr_rec.LOADING_SEQUENCE := l_fte_dlvy_attr_rec.LOADING_SEQUENCE;
5090 	  	l_dlvy_attr_rec.LOADING_ORDER_FLAG := l_fte_dlvy_attr_rec.LOADING_ORDER_FLAG;
5091 	  	l_dlvy_attr_rec.INITIAL_PICKUP_DATE := l_fte_dlvy_attr_rec.INITIAL_PICKUP_DATE;
5092 	  	l_dlvy_attr_rec.INITIAL_PICKUP_LOCATION_ID := l_fte_dlvy_attr_rec.INITIAL_PICKUP_LOCATION_ID;
5093 		l_dlvy_attr_rec.ORGANIZATION_ID := l_fte_dlvy_attr_rec.ORGANIZATION_ID;
5094 	  	l_dlvy_attr_rec.ULTIMATE_DROPOFF_LOCATION_ID := l_fte_dlvy_attr_rec.ULTIMATE_DROPOFF_LOCATION_ID;
5095 	  	l_dlvy_attr_rec.ULTIMATE_DROPOFF_DATE := l_fte_dlvy_attr_rec.ULTIMATE_DROPOFF_DATE;
5096 	  	l_dlvy_attr_rec.CUSTOMER_ID := l_fte_dlvy_attr_rec.CUSTOMER_ID;
5097 	  	l_dlvy_attr_rec.INTMED_SHIP_TO_LOCATION_ID := l_fte_dlvy_attr_rec.INTMED_SHIP_TO_LOCATION_ID;
5098 	  	l_dlvy_attr_rec.POOLED_SHIP_TO_LOCATION_ID := l_fte_dlvy_attr_rec.POOLED_SHIP_TO_LOCATION_ID;
5099 	  	l_dlvy_attr_rec.CARRIER_ID := l_fte_dlvy_attr_rec.CARRIER_ID;
5100 	  	l_dlvy_attr_rec.SHIP_METHOD_CODE := l_fte_dlvy_attr_rec.SHIP_METHOD_CODE;
5101 	  	l_dlvy_attr_rec.FREIGHT_TERMS_CODE := l_fte_dlvy_attr_rec.FREIGHT_TERMS_CODE;
5102 	  	l_dlvy_attr_rec.FOB_CODE := l_fte_dlvy_attr_rec.FOB_CODE;
5103 		l_dlvy_attr_rec.FOB_LOCATION_ID := l_fte_dlvy_attr_rec.FOB_LOCATION_ID;
5104 	  	l_dlvy_attr_rec.WAYBILL := l_fte_dlvy_attr_rec.WAYBILL;
5105 	  	l_dlvy_attr_rec.DOCK_CODE := l_fte_dlvy_attr_rec.DOCK_CODE;
5106 	  	l_dlvy_attr_rec.ACCEPTANCE_FLAG := l_fte_dlvy_attr_rec.ACCEPTANCE_FLAG;
5107 	  	l_dlvy_attr_rec.ACCEPTED_BY := l_fte_dlvy_attr_rec.ACCEPTED_BY;
5108 	  	l_dlvy_attr_rec.ACCEPTED_DATE := l_fte_dlvy_attr_rec.ACCEPTED_DATE;
5109 	  	l_dlvy_attr_rec.ACKNOWLEDGED_BY := l_fte_dlvy_attr_rec.ACKNOWLEDGED_BY;
5110 	  	l_dlvy_attr_rec.CONFIRMED_BY := l_fte_dlvy_attr_rec.CONFIRMED_BY;
5111 	  	l_dlvy_attr_rec.CONFIRM_DATE := l_fte_dlvy_attr_rec.CONFIRM_DATE;
5112 	  	l_dlvy_attr_rec.ASN_DATE_SENT := l_fte_dlvy_attr_rec.ASN_DATE_SENT;
5113 		l_dlvy_attr_rec.ASN_STATUS_CODE := l_fte_dlvy_attr_rec.ASN_STATUS_CODE;
5114 	  	l_dlvy_attr_rec.ASN_SEQ_NUMBER := l_fte_dlvy_attr_rec.ASN_SEQ_NUMBER;
5115 	  	l_dlvy_attr_rec.GROSS_WEIGHT := l_fte_dlvy_attr_rec.GROSS_WEIGHT;
5116 	  	l_dlvy_attr_rec.NET_WEIGHT := l_fte_dlvy_attr_rec.NET_WEIGHT;
5117 	  	l_dlvy_attr_rec.WEIGHT_UOM_CODE := l_fte_dlvy_attr_rec.WEIGHT_UOM_CODE;
5118 	  	l_dlvy_attr_rec.VOLUME := l_fte_dlvy_attr_rec.VOLUME;
5119 	  	l_dlvy_attr_rec.VOLUME_UOM_CODE := l_fte_dlvy_attr_rec.VOLUME_UOM_CODE;
5120 	  	l_dlvy_attr_rec.ADDITIONAL_SHIPMENT_INFO := l_fte_dlvy_attr_rec.ADDITIONAL_SHIPMENT_INFO;
5121 	  	l_dlvy_attr_rec.CURRENCY_CODE := l_fte_dlvy_attr_rec.CURRENCY_CODE;
5122 	  	l_dlvy_attr_rec.ATTRIBUTE_CATEGORY := l_fte_dlvy_attr_rec.ATTRIBUTE_CATEGORY;
5123 	  	l_dlvy_attr_rec.ATTRIBUTE1 := l_fte_dlvy_attr_rec.ATTRIBUTE1;
5124 	  	l_dlvy_attr_rec.ATTRIBUTE2 := l_fte_dlvy_attr_rec.ATTRIBUTE2;
5125 	  	l_dlvy_attr_rec.ATTRIBUTE3 := l_fte_dlvy_attr_rec.ATTRIBUTE3;
5126 	  	l_dlvy_attr_rec.ATTRIBUTE4 := l_fte_dlvy_attr_rec.ATTRIBUTE4;
5127 	  	l_dlvy_attr_rec.ATTRIBUTE5 := l_fte_dlvy_attr_rec.ATTRIBUTE5;
5128 	  	l_dlvy_attr_rec.ATTRIBUTE6 := l_fte_dlvy_attr_rec.ATTRIBUTE6;
5129 	  	l_dlvy_attr_rec.ATTRIBUTE7 := l_fte_dlvy_attr_rec.ATTRIBUTE7;
5130 	  	l_dlvy_attr_rec.ATTRIBUTE8 := l_fte_dlvy_attr_rec.ATTRIBUTE8;
5131 	  	l_dlvy_attr_rec.ATTRIBUTE9 := l_fte_dlvy_attr_rec.ATTRIBUTE9;
5132 	  	l_dlvy_attr_rec.ATTRIBUTE10 := l_fte_dlvy_attr_rec.ATTRIBUTE10;
5133 	  	l_dlvy_attr_rec.ATTRIBUTE11 := l_fte_dlvy_attr_rec.ATTRIBUTE11;
5134 	  	l_dlvy_attr_rec.ATTRIBUTE12 := l_fte_dlvy_attr_rec.ATTRIBUTE12;
5135 	  	l_dlvy_attr_rec.ATTRIBUTE13 := l_fte_dlvy_attr_rec.ATTRIBUTE13;
5136 	  	l_dlvy_attr_rec.ATTRIBUTE14 := l_fte_dlvy_attr_rec.ATTRIBUTE14;
5137 	  	l_dlvy_attr_rec.ATTRIBUTE15 := l_fte_dlvy_attr_rec.ATTRIBUTE15;
5138 	  	l_dlvy_attr_rec.TP_ATTRIBUTE_CATEGORY := l_fte_dlvy_attr_rec.TP_ATTRIBUTE_CATEGORY;
5139 	  	l_dlvy_attr_rec.TP_ATTRIBUTE1 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE1;
5140 	  	l_dlvy_attr_rec.TP_ATTRIBUTE2 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE2;
5141 	  	l_dlvy_attr_rec.TP_ATTRIBUTE3 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE3;
5142 	  	l_dlvy_attr_rec.TP_ATTRIBUTE4 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE4;
5143 	  	l_dlvy_attr_rec.TP_ATTRIBUTE5 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE5;
5144 	  	l_dlvy_attr_rec.TP_ATTRIBUTE6 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE6;
5145 	  	l_dlvy_attr_rec.TP_ATTRIBUTE7 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE7;
5146 	  	l_dlvy_attr_rec.TP_ATTRIBUTE8 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE8;
5147 	  	l_dlvy_attr_rec.TP_ATTRIBUTE9 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE9;
5148 	  	l_dlvy_attr_rec.TP_ATTRIBUTE10 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE10;
5149 	  	l_dlvy_attr_rec.TP_ATTRIBUTE11 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE11;
5150 		l_dlvy_attr_rec.TP_ATTRIBUTE12 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE12;
5151 	  	l_dlvy_attr_rec.TP_ATTRIBUTE13 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE13;
5152 	  	l_dlvy_attr_rec.TP_ATTRIBUTE14 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE14;
5153 	  	l_dlvy_attr_rec.TP_ATTRIBUTE15 := l_fte_dlvy_attr_rec.TP_ATTRIBUTE15;
5154 	  	l_dlvy_attr_rec.GLOBAL_ATTRIBUTE_CATEGORY := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE_CATEGORY;
5155 	  	l_dlvy_attr_rec.GLOBAL_ATTRIBUTE1 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE1;
5156 	  	l_dlvy_attr_rec.GLOBAL_ATTRIBUTE2 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE2;
5157 	  	l_dlvy_attr_rec.GLOBAL_ATTRIBUTE3 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE3;
5158 	  	l_dlvy_attr_rec.GLOBAL_ATTRIBUTE4 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE4;
5159 	  	l_dlvy_attr_rec.GLOBAL_ATTRIBUTE5 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE5;
5160 		l_dlvy_attr_rec.GLOBAL_ATTRIBUTE6 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE6;
5161 	  	l_dlvy_attr_rec.GLOBAL_ATTRIBUTE7 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE7;
5162 	  	l_dlvy_attr_rec.GLOBAL_ATTRIBUTE8 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE8;
5163 	  	l_dlvy_attr_rec.GLOBAL_ATTRIBUTE9 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE9;
5164 	  	l_dlvy_attr_rec.GLOBAL_ATTRIBUTE10 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE10;
5165 	  	l_dlvy_attr_rec.GLOBAL_ATTRIBUTE11 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE11;
5166 	  	l_dlvy_attr_rec.GLOBAL_ATTRIBUTE12 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE12;
5167 	  	l_dlvy_attr_rec.GLOBAL_ATTRIBUTE13 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE13;
5168 	  	l_dlvy_attr_rec.GLOBAL_ATTRIBUTE14 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE14;
5169 	  	l_dlvy_attr_rec.GLOBAL_ATTRIBUTE15 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE15;
5170 		l_dlvy_attr_rec.GLOBAL_ATTRIBUTE16 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE16;
5171 	  	l_dlvy_attr_rec.GLOBAL_ATTRIBUTE17 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE17;
5172 	  	l_dlvy_attr_rec.GLOBAL_ATTRIBUTE18 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE18;
5173 	  	l_dlvy_attr_rec.GLOBAL_ATTRIBUTE19 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE19;
5174 	  	l_dlvy_attr_rec.GLOBAL_ATTRIBUTE20 := l_fte_dlvy_attr_rec.GLOBAL_ATTRIBUTE20;
5175 	  	l_dlvy_attr_rec.CREATION_DATE := l_fte_dlvy_attr_rec.CREATION_DATE;
5176 	  	l_dlvy_attr_rec.CREATED_BY := l_fte_dlvy_attr_rec.CREATED_BY;
5177 	  	l_dlvy_attr_rec.LAST_UPDATE_DATE := l_fte_dlvy_attr_rec.LAST_UPDATE_DATE;
5178 	  	l_dlvy_attr_rec.LAST_UPDATED_BY := l_fte_dlvy_attr_rec.LAST_UPDATED_BY;
5179 	  	l_dlvy_attr_rec.LAST_UPDATE_LOGIN := l_fte_dlvy_attr_rec.LAST_UPDATE_LOGIN;
5180 		l_dlvy_attr_rec.PROGRAM_APPLICATION_ID := l_fte_dlvy_attr_rec.PROGRAM_APPLICATION_ID;
5181 	  	l_dlvy_attr_rec.PROGRAM_ID := l_fte_dlvy_attr_rec.PROGRAM_ID;
5182 	  	l_dlvy_attr_rec.PROGRAM_UPDATE_DATE := l_fte_dlvy_attr_rec.PROGRAM_UPDATE_DATE;
5183 	  	l_dlvy_attr_rec.REQUEST_ID := l_fte_dlvy_attr_rec.REQUEST_ID;
5184 	  	l_dlvy_attr_rec.BATCH_ID := l_fte_dlvy_attr_rec.BATCH_ID;
5185 	  	l_dlvy_attr_rec.HASH_VALUE := l_fte_dlvy_attr_rec.HASH_VALUE;
5186 	  	l_dlvy_attr_rec.SOURCE_HEADER_ID := l_fte_dlvy_attr_rec.SOURCE_HEADER_ID;
5187 	  	l_dlvy_attr_rec.NUMBER_OF_LPN := l_fte_dlvy_attr_rec.NUMBER_OF_LPN;
5188 	  	l_dlvy_attr_rec.COD_AMOUNT := l_fte_dlvy_attr_rec.COD_AMOUNT;
5189 	  	l_dlvy_attr_rec.COD_CURRENCY_CODE := l_fte_dlvy_attr_rec.COD_CURRENCY_CODE;
5190 		l_dlvy_attr_rec.COD_REMIT_TO := l_fte_dlvy_attr_rec.COD_REMIT_TO;
5191 	  	l_dlvy_attr_rec.COD_CHARGE_PAID_BY := l_fte_dlvy_attr_rec.COD_CHARGE_PAID_BY;
5192 	  	l_dlvy_attr_rec.PROBLEM_CONTACT_REFERENCE := l_fte_dlvy_attr_rec.PROBLEM_CONTACT_REFERENCE;
5193 	  	l_dlvy_attr_rec.PORT_OF_LOADING := l_fte_dlvy_attr_rec.PORT_OF_LOADING;
5194 	  	l_dlvy_attr_rec.PORT_OF_DISCHARGE := l_fte_dlvy_attr_rec.PORT_OF_DISCHARGE;
5195 	  	l_dlvy_attr_rec.FTZ_NUMBER := l_fte_dlvy_attr_rec.FTZ_NUMBER;
5196 	  	l_dlvy_attr_rec.ROUTED_EXPORT_TXN := l_fte_dlvy_attr_rec.ROUTED_EXPORT_TXN;
5197 	  	l_dlvy_attr_rec.ENTRY_NUMBER := l_fte_dlvy_attr_rec.ENTRY_NUMBER;
5198 	  	l_dlvy_attr_rec.ROUTING_INSTRUCTIONS := l_fte_dlvy_attr_rec.ROUTING_INSTRUCTIONS;
5199 	  	l_dlvy_attr_rec.IN_BOND_CODE := l_fte_dlvy_attr_rec.IN_BOND_CODE;
5200 		l_dlvy_attr_rec.SHIPPING_MARKS:= l_fte_dlvy_attr_rec.SHIPPING_MARKS;
5201 	  	l_dlvy_attr_rec.SERVICE_LEVEL := l_fte_dlvy_attr_rec.SERVICE_LEVEL;
5202 	  	l_dlvy_attr_rec.MODE_OF_TRANSPORT := l_fte_dlvy_attr_rec.MODE_OF_TRANSPORT;
5203 	  	l_dlvy_attr_rec.ASSIGNED_TO_FTE_TRIPS := l_fte_dlvy_attr_rec.ASSIGNED_TO_FTE_TRIPS;
5204 	  	l_dlvy_attr_rec.AUTO_SC_EXCLUDE_FLAG := l_fte_dlvy_attr_rec.AUTO_SC_EXCLUDE_FLAG;
5205 	  	l_dlvy_attr_rec.AUTO_AP_EXCLUDE_FLAG := l_fte_dlvy_attr_rec.AUTO_AP_EXCLUDE_FLAG;
5206 	  	l_dlvy_attr_rec.AP_BATCH_ID := l_fte_dlvy_attr_rec.AP_BATCH_ID;
5207 	  	l_dlvy_attr_rec.ROWID := l_fte_dlvy_attr_rec.ROW_ID;
5208 	  	l_dlvy_attr_rec.LOADING_ORDER_DESC := l_fte_dlvy_attr_rec.LOADING_ORDER_DESC;
5209 	  	l_dlvy_attr_rec.ORGANIZATION_CODE := l_fte_dlvy_attr_rec.ORGANIZATION_CODE;
5210 		l_dlvy_attr_rec.ULTIMATE_DROPOFF_LOCATION_CODE := l_fte_dlvy_attr_rec.ULTIMATE_DROPOFF_LOCATION_CODE;
5211 	  	l_dlvy_attr_rec.INITIAL_PICKUP_LOCATION_CODE := l_fte_dlvy_attr_rec.INITIAL_PICKUP_LOCATION_CODE;
5212 	  	l_dlvy_attr_rec.CUSTOMER_NUMBER := l_fte_dlvy_attr_rec.CUSTOMER_NUMBER;
5213 	  	l_dlvy_attr_rec.INTMED_SHIP_TO_LOCATION_CODE := l_fte_dlvy_attr_rec.INTMED_SHIP_TO_LOCATION_CODE;
5214 	  	l_dlvy_attr_rec.POOLED_SHIP_TO_LOCATION_CODE := l_fte_dlvy_attr_rec.POOLED_SHIP_TO_LOCATION_CODE;
5215 	  	l_dlvy_attr_rec.CARRIER_CODE := l_fte_dlvy_attr_rec.CARRIER_CODE;
5216 	  	l_dlvy_attr_rec.SHIP_METHOD_NAME := l_fte_dlvy_attr_rec.SHIP_METHOD_NAME;
5217 	  	l_dlvy_attr_rec.FREIGHT_TERMS_NAME := l_fte_dlvy_attr_rec.FREIGHT_TERMS_NAME;
5218 	  	l_dlvy_attr_rec.FOB_NAME := l_fte_dlvy_attr_rec.FOB_NAME;
5219 	  	l_dlvy_attr_rec.FOB_LOCATION_CODE := l_fte_dlvy_attr_rec.FOB_LOCATION_CODE;
5220 		l_dlvy_attr_rec.WEIGHT_UOM_DESC := l_fte_dlvy_attr_rec.WEIGHT_UOM_DESC;
5221 	  	l_dlvy_attr_rec.VOLUME_UOM_DESC := l_fte_dlvy_attr_rec.VOLUME_UOM_DESC;
5222 	  	l_dlvy_attr_rec.CURRENCY_NAME := l_fte_dlvy_attr_rec.CURRENCY_NAME;
5223 	  	l_dlvy_attr_rec.SHIPMENT_DIRECTION := l_fte_dlvy_attr_rec.SHIPMENT_DIRECTION;
5224 	  	l_dlvy_attr_rec.VENDOR_ID := l_fte_dlvy_attr_rec.VENDOR_ID;
5225 	  	l_dlvy_attr_rec.PARTY_ID := l_fte_dlvy_attr_rec.PARTY_ID;
5226 	  	l_dlvy_attr_rec.ROUTING_RESPONSE_ID := l_fte_dlvy_attr_rec.ROUTING_RESPONSE_ID;
5227 	  	l_dlvy_attr_rec.RCV_SHIPMENT_HEADER_ID := l_fte_dlvy_attr_rec.RCV_SHIPMENT_HEADER_ID;
5228 	  	l_dlvy_attr_rec.ASN_SHIPMENT_HEADER_ID := l_fte_dlvy_attr_rec.ASN_SHIPMENT_HEADER_ID;
5229 	  	l_dlvy_attr_rec.SHIPPING_CONTROL := l_fte_dlvy_attr_rec.SHIPPING_CONTROL;
5230 		l_dlvy_attr_rec.TP_DELIVERY_NUMBER := l_fte_dlvy_attr_rec.TP_DELIVERY_NUMBER;
5231 	  	l_dlvy_attr_rec.EARLIEST_PICKUP_DATE := l_fte_dlvy_attr_rec.EARLIEST_PICKUP_DATE;
5232 	  	l_dlvy_attr_rec.LATEST_PICKUP_DATE := l_fte_dlvy_attr_rec.LATEST_PICKUP_DATE;
5233 	  	l_dlvy_attr_rec.EARLIEST_DROPOFF_DATE := l_fte_dlvy_attr_rec.EARLIEST_DROPOFF_DATE;
5234 	  	l_dlvy_attr_rec.LATEST_DROPOFF_DATE := l_fte_dlvy_attr_rec.LATEST_DROPOFF_DATE;
5235 	  	l_dlvy_attr_rec.IGNORE_FOR_PLANNING := l_fte_dlvy_attr_rec.IGNORE_FOR_PLANNING;
5236 	  	l_dlvy_attr_rec.TP_PLAN_NAME := l_fte_dlvy_attr_rec.TP_PLAN_NAME;
5237 	  	l_dlvy_attr_rec.PRORATE_WT_FLAG := l_fte_dlvy_attr_rec.PRORATE_WT_FLAG;
5238 	  END LOOP;
5239 	END IF;
5240 
5241 	IF l_debug_on THEN
5242 		WSH_DEBUG_SV.logmsg(l_module_name,'DeliveryId:' || l_dlvy_attr_rec.DELIVERY_ID);
5243 		WSH_DEBUG_SV.logmsg(l_module_name,'ProrateWtFlag:' || l_dlvy_attr_rec.PRORATE_WT_FLAG);
5244 	END IF;
5245 
5246 
5247 	-- Create details_attr_tab_type
5248 	l_dlvy_attr_tab_type(1) := l_dlvy_attr_rec;
5249 
5250 	-- Create detailsInRec
5251 	l_dlvy_in_rec.caller := G_PKG_NAME;
5252 	l_dlvy_in_rec.action_code := p_action_code;
5253 
5254 	-- Call WSH's Create_Update_DLVY API
5255 	WSH_INTERFACE_GRP.Create_Update_Delivery (
5256 		p_api_version_number     => 1.0,
5257 		p_init_msg_list          => FND_API.G_TRUE,
5258 		p_commit		 => FND_API.G_FALSE,
5259     		p_in_rec                 => l_dlvy_in_rec,
5260     		p_rec_attr_tab	     	 => l_dlvy_attr_tab_type,
5261     		x_del_out_rec_tab        => l_dlvy_out_rec,
5262     		x_return_status          => x_return_status,
5263     		x_msg_count              => x_msg_count,
5264     		x_msg_data               => x_msg_data
5265 	);
5266 
5267 	-- Handle dlvyOutRec
5268 	/* Del_Out_Rec_Type is RECORD (
5269 	  delivery_id   NUMBER,
5270 	  name      VARCHAR2(30),
5271 	        rowid                   VARCHAR2(4000));
5272 	*/
5273 
5274 	IF l_debug_on THEN
5275 		WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
5276 		WSH_DEBUG_SV.logmsg(l_module_name,'x_msg_count:' || x_msg_count);
5277 	END IF;
5278 
5279 	FND_MSG_PUB.Count_And_Get
5280 	(
5281 	     p_count  => x_msg_count,
5282 	     p_data  =>  x_msg_data,
5283 	     p_encoded => FND_API.G_FALSE
5284 	);
5285 
5286 
5287 	IF l_debug_on THEN
5288 		WSH_DEBUG_SV.pop(l_module_name);
5289 	END IF;
5290 
5291 
5292 	EXCEPTION
5293 		WHEN FND_API.G_EXC_ERROR THEN
5294 			ROLLBACK TO DELIVERY_CREATE_UPDATE_PUB;
5295 			x_return_status := FND_API.G_RET_STS_ERROR;
5296 			FND_MSG_PUB.Count_And_Get
5297 			  (
5298 			     p_count  => x_msg_count,
5299 			     p_data  =>  x_msg_data,
5300 			     p_encoded => FND_API.G_FALSE
5301 			  );
5302 
5303 			IF l_debug_on THEN
5304 				WSH_DEBUG_SV.pop(l_module_name);
5305 			END IF;
5306 		WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5307 			ROLLBACK TO DELIVERY_CREATE_UPDATE_PUB;
5308 			x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5309 			FND_MSG_PUB.Count_And_Get
5310 			  (
5311 			     p_count  => x_msg_count,
5312 			     p_data  =>  x_msg_data,
5313 			     p_encoded => FND_API.G_FALSE
5314 			  );
5315 			IF l_debug_on THEN
5316 				WSH_DEBUG_SV.pop(l_module_name);
5317 			END IF;
5318 		WHEN OTHERS THEN
5319 			ROLLBACK TO DELIVERY_CREATE_UPDATE_PUB;
5320 			x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5321 			FND_MSG_PUB.Count_And_Get
5322 			  (
5323 			     p_count  => x_msg_count,
5324 			     p_data  =>  x_msg_data,
5325 			     p_encoded => FND_API.G_FALSE
5326 			  );
5327 			IF l_debug_on THEN
5328 				WSH_DEBUG_SV.pop(l_module_name);
5329 			END IF;
5330   --
5331   END CREATE_UPDATE_DELIVERY;
5332   --
5333   --
5334 --========================================================================
5335 -- PROCEDURE : Exception_Action         FTE wrapper
5336 -- p_action_code: CHANGE_STATUS
5337 -- new_status: CLOSED, NO_ACTION_REQUIRED
5338 -- lookup_type: EXCEPTION_STATUS
5339 --========================================================================
5340 --
5341 PROCEDURE Exception_Action
5342   ( p_api_version_number	IN 	NUMBER,
5343     p_init_msg_list         IN 	VARCHAR2,
5344     p_validation_level	IN	NUMBER,
5345     p_commit		IN	VARCHAR2,
5346     p_action		IN	VARCHAR2,
5347     p_xc_action_tab	IN 	FTE_XC_ACTION_TAB_TYPE,
5348     x_return_status          	OUT NOCOPY   VARCHAR2,
5349     x_msg_count              	OUT NOCOPY   NUMBER,
5350     x_msg_data              	OUT NOCOPY   VARCHAR2,
5351     x_action_out_rec		OUT NOCOPY   FTE_ACTION_OUT_REC
5352   )IS
5353 
5354 	l_exception_action_param_rec	WSH_EXCEPTIONS_PUB.XC_ACTION_REC_TYPE;
5355         l_fte_dlvy_attr_rec		FTE_XC_ACTION_PARAM_REC;
5356 
5357      	-- Set delivery action_out_rec
5358     	x_result_id_tab		FTE_ID_TAB_TYPE;
5359 	x_valid_id_tab		FTE_ID_TAB_TYPE;
5360   	l_return_status		VARCHAR2(100);
5361   	l_msg_count		NUMBER;
5362   	l_msg_data		VARCHAR2(500);
5363 	l_number_of_warnings    NUMBER;
5364         l_number_of_errors      NUMBER;
5365 
5366         --
5367         l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
5368         --
5369         l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'EXCEPTION_ACTION';
5370 
5371 
5372         BEGIN
5373 
5374        	SAVEPOINT	EXCEPTION_ACTION_PUB;
5375 
5376        	-- Initialize message list if p_init_msg_list is set to TRUE.
5377        	--
5378        	--
5379        	IF FND_API.to_Boolean( p_init_msg_list )
5380        	THEN
5381        		FND_MSG_PUB.initialize;
5382        	END IF;
5383        	--
5384        	--
5385        	--  Initialize API return status to success
5386        	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
5387        	x_msg_count		:= 0;
5388        	x_msg_data		:= '';
5389 	l_number_of_warnings    := 0;
5390         l_number_of_errors      := 0;
5391 
5392        	IF l_debug_on THEN
5393        	      wsh_debug_sv.push(l_module_name);
5394    	END IF;
5395 
5396 	-- Iteratively loop through each rec in the tab and call WSH API
5397 	x_result_id_tab 	:= FTE_ID_TAB_TYPE();
5398 	x_valid_id_tab 		:= FTE_ID_TAB_TYPE();
5399 
5400 	FOR i IN p_xc_action_tab.FIRST..p_xc_action_tab.LAST LOOP
5401 	  l_fte_dlvy_attr_rec := p_xc_action_tab(i);
5402 
5403 	  -- map action param rec
5404 	  l_exception_action_param_rec.request_id := l_fte_dlvy_attr_rec.request_id;
5405 	  l_exception_action_param_rec.batch_id := l_fte_dlvy_attr_rec.batch_id;
5406 	  l_exception_action_param_rec.exception_id := l_fte_dlvy_attr_rec.exception_id;
5407 	  l_exception_action_param_rec.exception_name := l_fte_dlvy_attr_rec.exception_name;
5408 	  l_exception_action_param_rec.logging_entity := l_fte_dlvy_attr_rec.logging_entity;
5409 	  l_exception_action_param_rec.logging_entity_id := l_fte_dlvy_attr_rec.logging_entity_id;
5410 	  l_exception_action_param_rec.manually_logged := l_fte_dlvy_attr_rec.manually_logged;
5411 	  l_exception_action_param_rec.message := l_fte_dlvy_attr_rec.message;
5412 	  l_exception_action_param_rec.logged_at_location_code := l_fte_dlvy_attr_rec.logged_at_location_code;
5413 	  l_exception_action_param_rec.exception_location_code := l_fte_dlvy_attr_rec.exception_location_code;
5414 	  l_exception_action_param_rec.severity := l_fte_dlvy_attr_rec.severity;
5415 	  l_exception_action_param_rec.delivery_name := l_fte_dlvy_attr_rec.delivery_name;
5416 	  l_exception_action_param_rec.trip_name := l_fte_dlvy_attr_rec.trip_name;
5417 	  l_exception_action_param_rec.stop_location_id := l_fte_dlvy_attr_rec.stop_location_id;
5418 	  l_exception_action_param_rec.delivery_detail_id := l_fte_dlvy_attr_rec.delivery_detail_id;
5419 	  l_exception_action_param_rec.container_name := l_fte_dlvy_attr_rec.container_name;
5420 	  l_exception_action_param_rec.org_id := l_fte_dlvy_attr_rec.org_id;
5421 	  l_exception_action_param_rec.inventory_item_id := l_fte_dlvy_attr_rec.inventory_item_id;
5422 	  l_exception_action_param_rec.lot_number := l_fte_dlvy_attr_rec.lot_number;
5423 	  --l_exception_action_param_rec.sublot_number := l_fte_dlvy_attr_rec.sublot_number;
5424 	  l_exception_action_param_rec.revision := l_fte_dlvy_attr_rec.revision;
5425 
5426 	  l_exception_action_param_rec.serial_number := l_fte_dlvy_attr_rec.serial_number;
5427 	  l_exception_action_param_rec.unit_of_measure := l_fte_dlvy_attr_rec.unit_of_measure;
5428 	  l_exception_action_param_rec.quantity := l_fte_dlvy_attr_rec.quantity;
5429 	  l_exception_action_param_rec.unit_of_measure2 := l_fte_dlvy_attr_rec.unit_of_measure2;
5430 	  l_exception_action_param_rec.quantity2 := l_fte_dlvy_attr_rec.quantity2;
5431 	  l_exception_action_param_rec.subinventory := l_fte_dlvy_attr_rec.subinventory;
5432 	  l_exception_action_param_rec.locator_id := l_fte_dlvy_attr_rec.locator_id;
5433 	  l_exception_action_param_rec.error_message := l_fte_dlvy_attr_rec.error_message;
5434 	  l_exception_action_param_rec.attribute_category := l_fte_dlvy_attr_rec.attribute_category;
5435 	  l_exception_action_param_rec.attribute1 := l_fte_dlvy_attr_rec.attribute1;
5436 
5437 	  l_exception_action_param_rec.attribute2 := l_fte_dlvy_attr_rec.attribute2;
5438 	  l_exception_action_param_rec.attribute3 := l_fte_dlvy_attr_rec.attribute3;
5439 	  l_exception_action_param_rec.attribute4 := l_fte_dlvy_attr_rec.attribute4;
5440 	  l_exception_action_param_rec.attribute5 := l_fte_dlvy_attr_rec.attribute5;
5441 	  l_exception_action_param_rec.attribute6 := l_fte_dlvy_attr_rec.attribute6;
5442 	  l_exception_action_param_rec.attribute7 := l_fte_dlvy_attr_rec.attribute7;
5443 	  l_exception_action_param_rec.attribute8 := l_fte_dlvy_attr_rec.attribute8;
5444 	  l_exception_action_param_rec.attribute9 := l_fte_dlvy_attr_rec.attribute9;
5445 	  l_exception_action_param_rec.attribute10 := l_fte_dlvy_attr_rec.attribute10;
5446 	  l_exception_action_param_rec.attribute11 := l_fte_dlvy_attr_rec.attribute11;
5447 
5448 	  l_exception_action_param_rec.attribute12 := l_fte_dlvy_attr_rec.attribute12;
5449 	  l_exception_action_param_rec.attribute13 := l_fte_dlvy_attr_rec.attribute13;
5450 	  l_exception_action_param_rec.attribute14 := l_fte_dlvy_attr_rec.attribute14;
5451 	  l_exception_action_param_rec.attribute15 := l_fte_dlvy_attr_rec.attribute15;
5452 	  l_exception_action_param_rec.departure_date := l_fte_dlvy_attr_rec.departure_date;
5453 	  l_exception_action_param_rec.arrival_date := l_fte_dlvy_attr_rec.arrival_date;
5454 	  /*   Do not set the following fields. They are used for Purge. Do not set them
5455 	  l_exception_action_param_rec.exception_type := l_fte_dlvy_attr_rec.exception_type;
5456 	  l_exception_action_param_rec.departure_date_to := l_fte_dlvy_attr_rec.departure_date_to;
5457 	  l_exception_action_param_rec.arrival_date_to := l_fte_dlvy_attr_rec.arrival_date_to;
5458 	  l_exception_action_param_rec.creation_date := l_fte_dlvy_attr_rec.creation_date;
5459 	  l_exception_action_param_rec.creation_date_to := l_fte_dlvy_attr_rec.creation_date_to;
5460 	  l_exception_action_param_rec.data_older_no_of_days := l_fte_dlvy_attr_rec.data_older_no_of_days;
5461 	  */
5462 	  l_exception_action_param_rec.status := l_fte_dlvy_attr_rec.status;
5463 	  l_exception_action_param_rec.new_status := l_fte_dlvy_attr_rec.new_status;
5464 	  l_exception_action_param_rec.caller := G_PKG_NAME;
5465 	  l_exception_action_param_rec.phase := l_fte_dlvy_attr_rec.phase;
5466 
5467 	  WSH_EXCEPTIONS_GRP.Exception_Action (
5468 	        p_api_version           => p_api_version_number,
5469 	        p_init_msg_list         => p_commit,
5470 	        p_validation_level      => p_validation_level,
5471 	        p_commit                => p_commit,
5472 	        x_msg_count             => l_msg_count,
5473 	        x_msg_data              => l_msg_data,
5474 	        x_return_status         => l_return_status,
5475 	        p_exception_rec         => l_exception_action_param_rec,
5476 	        p_action                => p_action
5477 	   );
5478 
5479 	  -- if success, populate valid ids tab
5480 	  IF ((l_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS)
5481 	  		OR (l_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING))
5482 	  THEN
5483 	  	x_valid_id_tab.EXTEND;
5484 	  	x_valid_id_tab(i) := l_exception_action_param_rec.exception_id;
5485 	  ELSIF (l_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR) THEN
5486 	  	x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5487 	  END IF;
5488 
5489 	  WSH_UTIL_CORE.API_POST_CALL(
5490                               p_return_status    =>l_return_status,
5491                               x_num_warnings     =>l_number_of_warnings,
5492                               x_num_errors       =>l_number_of_errors,
5493                               p_msg_data         =>l_msg_data,
5494                               p_raise_error_flag =>FALSE);
5495 
5496 	  IF l_debug_on THEN
5497 		WSH_DEBUG_SV.logmsg(l_module_name,'entity_id:' || l_exception_action_param_rec.logging_entity_id);
5498 		WSH_DEBUG_SV.logmsg(l_module_name,'l_return_status:' || l_return_status);
5499 		WSH_DEBUG_SV.logmsg(l_module_name,'l_msg_count:' || l_msg_count);
5500 	  END IF;
5501 
5502 	  -- set the return params
5503 	  x_msg_count := x_msg_count+l_msg_count;
5504 	  x_msg_data  := x_msg_data ||' '||l_msg_data;
5505 
5506 	END LOOP;
5507 
5508 	IF x_valid_id_tab.count<=0 -- there are no valid ids
5509 	THEN
5510 	   x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5511 	ELSIF x_valid_id_tab.count>0 AND x_valid_id_tab.count < p_xc_action_tab.count
5512 	THEN
5513 	   x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
5514 	ELSIF x_valid_id_tab.count>0 AND x_valid_id_tab.count = p_xc_action_tab.count
5515 	THEN
5516 	   x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
5517 	ELSE
5518 	   x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5519 	END IF;
5520 
5521  	IF l_debug_on THEN
5522 	  WSH_DEBUG_SV.logmsg(l_module_name,'x_valid_id_tab.count:' || x_valid_id_tab.count);
5523 	  WSH_DEBUG_SV.logmsg(l_module_name,'p_xc_action_tab.count:' || p_xc_action_tab.count);
5524 	  WSH_DEBUG_SV.logmsg(l_module_name,'x_return_status:' || x_return_status);
5525 	END IF;
5526 
5527 	/**
5528         FND_MSG_PUB.Count_And_Get
5529           (
5530              p_count  => x_msg_count,
5531              p_data  =>  x_msg_data,
5532              p_encoded => FND_API.G_FALSE
5533           );
5534 	*/
5535 
5536         x_action_out_rec        := FTE_ACTION_OUT_REC(
5537                                         x_result_id_tab,x_valid_id_tab,null,null,null,null,null,null);
5538 
5539 	IF l_debug_on THEN
5540 		WSH_DEBUG_SV.pop(l_module_name);
5541 	END IF;
5542 
5543 
5544 	EXCEPTION
5545 		WHEN FND_API.G_EXC_ERROR THEN
5546 			ROLLBACK TO EXCEPTION_ACTION_PUB;
5547 			x_return_status := FND_API.G_RET_STS_ERROR;
5548 			FND_MSG_PUB.Count_And_Get
5549 			  (
5550 			     p_count  => x_msg_count,
5551 			     p_data  =>  x_msg_data,
5552 			     p_encoded => FND_API.G_FALSE
5553 			  );
5554 
5555 			IF l_debug_on THEN
5556 				WSH_DEBUG_SV.pop(l_module_name);
5557 			END IF;
5558 		WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5559 			ROLLBACK TO EXCEPTION_ACTION_PUB;
5560 			x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5561 			FND_MSG_PUB.Count_And_Get
5562 			  (
5563 			     p_count  => x_msg_count,
5564 			     p_data  =>  x_msg_data,
5565 			     p_encoded => FND_API.G_FALSE
5566 			  );
5567 			IF l_debug_on THEN
5568 				WSH_DEBUG_SV.pop(l_module_name);
5569 			END IF;
5570 		WHEN OTHERS THEN
5571 			ROLLBACK TO EXCEPTION_ACTION_PUB;
5572 			x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5573 			FND_MSG_PUB.Count_And_Get
5574 			  (
5575 			     p_count  => x_msg_count,
5576 			     p_data  =>  x_msg_data,
5577 			     p_encoded => FND_API.G_FALSE
5578 			  );
5579 			IF l_debug_on THEN
5580 				WSH_DEBUG_SV.pop(l_module_name);
5581 			END IF;
5582   END EXCEPTION_ACTION;
5583 
5584 --
5585 --
5586 --========================================================================
5587 -- PROCEDURE : Group_Detail_Search_Dlvy         FTE wrapper
5588 -- DESC: Procedure calls WSH api to group details
5589 -- 	 and search for matching segments.
5590 --========================================================================
5591 --
5592 PROCEDURE GROUP_DETAIL_SEARCH_DLVY
5593   ( p_api_version_number	IN 	NUMBER,
5594     p_init_msg_list         	IN 	VARCHAR2,
5595     p_commit			IN	VARCHAR2,
5596     p_id_tab			IN 	FTE_ID_TAB_TYPE,
5597     x_return_status          	OUT NOCOPY   VARCHAR2,
5598     x_msg_count              	OUT NOCOPY   NUMBER,
5599     x_msg_data              	OUT NOCOPY   VARCHAR2
5600   )IS
5601 
5602 	l_id_attr_tab	WSH_DELIVERY_AUTOCREATE.GRP_ATTR_TAB_TYPE;	-- DetailIdTab
5603 	l_id_attr_rec	WSH_DELIVERY_AUTOCREATE.GRP_ATTR_REC_TYPE; 	-- DetailIdRec
5604 	l_id_entity_tab	WSH_UTIL_CORE.ID_TAB_TYPE; 			-- MatchingIdTab
5605 	l_action_rec 	WSH_DELIVERY_AUTOCREATE.ACTION_REC_TYPE;	-- ActionOutRec
5606 	l_out_rec	WSH_DELIVERY_AUTOCREATE.OUT_REC_TYPE;		-- OutRecType
5607 	l_targ_attr_rec	WSH_DELIVERY_AUTOCREATE.GRP_ATTR_REC_TYPE; 	-- TargetIdRec
5608         l_grp_attr_tab	WSH_DELIVERY_AUTOCREATE.GRP_ATTR_TAB_TYPE;	-- GroupIdTab
5609         --
5610         l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
5611         --
5612         l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'GROUP_DETAIL_SEARCH_DLVY';
5613 
5614 
5615         BEGIN
5616 
5617        	SAVEPOINT	GROUP_DETAIL_SEARCH_DLVY_PUB;
5618 
5619        	-- Initialize message list if p_init_msg_list is set to FALSE.
5620        	--
5621        	--
5622        	IF FND_API.to_Boolean( p_init_msg_list )
5623        	THEN
5624        		FND_MSG_PUB.initialize;
5625        	END IF;
5626        	--
5627        	--
5628        	--  Initialize API return status to success
5629        	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
5630        	x_msg_count		:= 0;
5631        	x_msg_data		:= 0;
5632 
5633        	IF l_debug_on THEN
5634        	      wsh_debug_sv.push(l_module_name);
5635    	END IF;
5636 
5637         -- Create DetailIdTab
5638         FOR i IN p_id_tab.FIRST..p_id_tab.LAST LOOP
5639 	  -- Create DetailIdRec
5640           l_id_attr_rec.entity_id := p_id_tab(i);
5641           l_id_attr_rec.entity_type := 'DELIVERY_DETAIL';
5642           l_id_attr_tab(i) := l_id_attr_rec;
5643         END LOOP;
5644 
5645 	-- Create ActionRecType
5646 	l_action_rec.action := 'MATCH_GROUPS';
5647 	l_action_rec.caller := G_PKG_NAME;
5648 	l_action_rec.output_format_type := 'TEMP_TAB';
5649 	-- l_action_rec.output_entity_type := 'DELIVERY';
5650 	l_action_rec.check_single_grp := 'N';
5651 
5652 	-- Create targetRecType
5653 	l_targ_attr_rec.entity_type := 'DELIVERY';
5654 
5655 	-- Call WSH's grouping API
5656 	WSH_DELIVERY_AUTOCREATE.Find_Matching_Groups(
5657 		p_attr_tab 	=>	l_id_attr_tab,
5658 	        p_action_rec 	=>	l_action_rec,
5659                 p_target_rec 	=> 	l_targ_attr_rec,
5660                 p_group_tab 	=>	l_grp_attr_tab,
5661                 x_matched_entities =>	l_id_entity_tab,
5662                 x_out_rec	=>	l_out_rec,
5663        		x_return_status =>	x_return_status
5664        		);
5665 
5666 	-- Check output params
5667 	IF (x_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS
5668 		AND l_grp_attr_tab.count>1)
5669 	THEN
5670 	  WSH_DELIVERY_AUTOCREATE.Reset_WSH_TMP;
5671 	  x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5672 	  FND_MESSAGE.SET_NAME('FTE','FTE_LINES_NOT_GROUPABLE');
5673           FND_MSG_PUB.ADD;
5674 	ELSIF (x_return_status = WSH_UTIL_CORE.G_RET_STS_WARNING
5675 		AND l_grp_attr_tab.count>1)
5676 	THEN
5677 	  WSH_DELIVERY_AUTOCREATE.Reset_WSH_TMP;
5678 	  x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
5679 	  FND_MESSAGE.SET_NAME('FTE','FTE_LINES_NOT_GROUPABLE');
5680           FND_MSG_PUB.ADD;
5681 	ELSIF (x_return_status = WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR
5682 		OR x_return_status = WSH_UTIL_CORE.G_RET_STS_ERROR)
5683 	THEN
5684 	  WSH_DELIVERY_AUTOCREATE.Reset_WSH_TMP;
5685 	END IF;
5686 
5687         FND_MSG_PUB.Count_And_Get
5688           (
5689              p_count  => x_msg_count,
5690              p_data  =>  x_msg_data,
5691              p_encoded => FND_API.G_FALSE
5692           );
5693 
5694 	IF l_debug_on THEN
5695 		WSH_DEBUG_SV.pop(l_module_name);
5696 	END IF;
5697 
5698 	EXCEPTION
5699 		WHEN FND_API.G_EXC_ERROR THEN
5700 			ROLLBACK TO GROUP_DETAIL_SEARCH_DLVY_PUB;
5701 			x_return_status := FND_API.G_RET_STS_ERROR;
5702 			FND_MSG_PUB.Count_And_Get
5703 			  (
5704 			     p_count  => x_msg_count,
5705 			     p_data  =>  x_msg_data,
5706 			     p_encoded => FND_API.G_FALSE
5707 			  );
5708 
5709 			IF l_debug_on THEN
5710 				WSH_DEBUG_SV.pop(l_module_name);
5711 			END IF;
5712 		WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
5713 			ROLLBACK TO GROUP_DETAIL_SEARCH_DLVY_PUB;
5714 			x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5715 			FND_MSG_PUB.Count_And_Get
5716 			  (
5717 			     p_count  => x_msg_count,
5718 			     p_data  =>  x_msg_data,
5719 			     p_encoded => FND_API.G_FALSE
5720 			  );
5721 			IF l_debug_on THEN
5722 				WSH_DEBUG_SV.pop(l_module_name);
5723 			END IF;
5724 		WHEN OTHERS THEN
5725 			ROLLBACK TO GROUP_DETAIL_SEARCH_DLVY_PUB;
5726 			x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5727 			FND_MSG_PUB.Count_And_Get
5728 			  (
5729 			     p_count  => x_msg_count,
5730 			     p_data  =>  x_msg_data,
5731 			     p_encoded => FND_API.G_FALSE
5732 			  );
5733 			IF l_debug_on THEN
5734 				WSH_DEBUG_SV.pop(l_module_name);
5735 			END IF;
5736   END GROUP_DETAIL_SEARCH_DLVY;
5737 
5738 PROCEDURE Get_Disabled_List(
5739                 p_entity_type IN VARCHAR2,
5740                 p_entity_id     IN NUMBER,
5741                 p_parent_entity_id IN NUMBER DEFAULT NULL,
5742                 x_disabled_list  OUT NOCOPY FTE_NAME_TAB_TYPE,
5743                 x_return_status         OUT NOCOPY      VARCHAR2,
5744                 x_msg_count             OUT NOCOPY      NUMBER,
5745                 x_msg_data              OUT NOCOPY      VARCHAR2
5746                 ) IS
5747 
5748 l_disabled_list wsh_util_core.column_tab_type;
5749 i NUMBER;
5750 
5751 
5752 --
5753 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
5754 --
5755 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'Get_Disabled_List';
5756 
5757 
5758 BEGIN
5759 
5760         IF l_debug_on
5761         THEN
5762  	      wsh_debug_sv.push(l_module_name);
5763         END IF;
5764 
5765 
5766         WSH_DATA_PROTECTION.Get_Disabled_List(
5767                 p_api_version=> 1.0,
5768                 p_entity_type=>p_entity_type,
5769                 p_entity_id=>p_entity_id,
5770                 p_parent_entity_id=>p_parent_entity_id,
5771                 p_list_type=>'FORM',
5772                 p_caller => 'FTE',
5773                 x_disabled_list=>l_disabled_list,
5774                 x_return_status=>x_return_status,
5775                 x_msg_count=>x_msg_count,
5776                 x_msg_data=> x_msg_data
5777         );
5778 
5779         IF (l_debug_on)
5780         THEN
5781         	WSH_DEBUG_SV.logmsg(l_module_name,' WSH GET DISABLED LIST :Status:'||x_return_status);
5782         	WSH_DEBUG_SV.logmsg(l_module_name,' WSH GET DISABLED LIST ::message:'||x_msg_data);
5783         END IF;
5784 
5785 
5786 
5787         IF ((l_disabled_list IS NOT NULL) AND (l_disabled_list.COUNT > 0) AND
5788         	((x_return_status <>WSH_UTIL_CORE.G_RET_STS_ERROR ) OR
5789         	(x_return_status <>WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR)))
5790         THEN
5791                 x_disabled_list:=FTE_NAME_TAB_TYPE('NULL');
5792                 x_disabled_list.EXTEND(l_disabled_list.COUNT-1,1);
5793                 i:=l_disabled_list.FIRST();
5794 
5795                 WHILE( i IS NOT NULL)
5796                 LOOP
5797 
5798 			IF (l_debug_on)
5799 			THEN
5800 				WSH_DEBUG_SV.logmsg(l_module_name,' GET DISABLED LIST '||i||':'||l_disabled_list(i));
5801 
5802 			END IF;
5803                         x_disabled_list(i):=l_disabled_list(i);
5804                         i:=l_disabled_list.NEXT(i);
5805 
5806                 END LOOP;
5807 
5808 
5809 
5810         END IF;
5811 
5812         IF l_debug_on THEN
5813           WSH_DEBUG_SV.pop(l_module_name);
5814         END IF;
5815 
5816 EXCEPTION
5817 
5818 	WHEN OTHERS THEN
5819 
5820 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
5821 		IF l_debug_on THEN
5822 			WSH_DEBUG_SV.pop(l_module_name);
5823 		END IF;
5824 
5825 END Get_Disabled_List;
5826 --
5827 --
5828 --**************************************************************************
5829 -- Rel 12
5830 --***************************************************************************
5831 --========================================================================
5832 -- PROCEDURE : TRIP_ACTION         Wrapper API      PUBLIC
5833 --		Added for Rel 12
5834 --
5835 -- PARAMETERS: p_api_version_number    known api version error number
5836 --             p_init_msg_list         FND_API.G_TRUE to reset list
5837 --             x_return_status         return status
5838 --             x_msg_count             number of messages in the list
5839 --             x_msg_data              text of messages
5840 --	       x_action_out_rec	       Out rec based on actions.
5841 --	       p_trip_info_rec	       table of trip id's
5842 --             p_action_prms           Record of caller, phase, action_code and other
5843 --                                     parameters specific to the actions.
5844 -- VERSION   : current version         1.0
5845 --             initial version         1.0
5846 --========================================================================
5847 
5848 PROCEDURE Trip_Action
5849 ( 	p_api_version_number     IN   		NUMBER,
5850 	p_init_msg_list          IN   		VARCHAR2,
5851 	x_return_status          OUT NOCOPY 	VARCHAR2,
5852 	x_msg_count              OUT NOCOPY 	NUMBER,
5853 	x_msg_data               OUT NOCOPY 	VARCHAR2,
5854 	x_action_out_rec	 OUT NOCOPY	FTE_ACTION_OUT_REC,
5855 	p_trip_info_rec	     	 IN		FTE_TENDER_ATTR_REC,
5856 	p_action_prms	     	 IN		FTE_TRIP_ACTION_PARAM_REC
5857 ) IS
5858 
5859 
5860 
5861 -- Initial Variables
5862 l_return_status             VARCHAR2(32767);
5863 l_msg_count                 NUMBER;
5864 l_msg_data                  VARCHAR2(32767);
5865 l_number_of_warnings	    NUMBER;
5866 l_number_of_errors	    NUMBER;
5867 
5868 l_mbol_number		    VARCHAR2(32767);
5869 l_tender_action		    VARCHAR2(30);
5870 l_item_key		    VARCHAR2(240);
5871 l_trip_info_rec		    FTE_TENDER_ATTR_REC;
5872 
5873 l_trip_id			NUMBER;
5874 l_trip_name			VARCHAR2(100);
5875 db_mode_of_transport		VARCHAR2(30);
5876 
5877 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
5878 
5879 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'TRIP_ACTION';
5880 
5881 --{Trip update parameters
5882   p_trip_info_tab	WSH_TRIPS_PVT.Trip_Attr_Tbl_Type;
5883   p_trip_info 		WSH_TRIPS_PVT.Trip_Rec_Type;
5884   p_trip_in_rec 	WSH_TRIPS_GRP.TripInRecType;
5885   x_out_tab 		WSH_TRIPS_GRP.trip_Out_tab_type;
5886 --}
5887   l_tmp			VARCHAR2(100);
5888   l_db_sm_code		VARCHAR2(30);
5889 
5890 BEGIN
5891 
5892 	SAVEPOINT	TRIP_ACTION_PUB;
5893 
5894 	-- Initialize message list if p_init_msg_list is set to TRUE.
5895 	--
5896 	--
5897 
5898 	IF FND_API.to_Boolean( p_init_msg_list )
5899 	THEN
5900 		FND_MSG_PUB.initialize;
5901 	END IF;
5902 	--
5903 	--
5904 	--  Initialize API return status to success
5905 	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
5906 	x_msg_count		:= 0;
5907 	x_msg_data		:= 0;
5908 	l_return_status 	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
5909 	l_number_of_warnings	:= 0;
5910 	l_number_of_errors	:= 0;
5911 
5912 	IF l_debug_on
5913 	THEN
5914 	      wsh_debug_sv.push(l_module_name);
5915               WSH_DEBUG_SV.logmsg(l_module_name,' Action to be performed ' || p_action_prms.action_code);
5916 	END IF;
5917 
5918 
5919 	l_tender_action := p_action_prms.action_code;
5920 	--{
5921 	--{ Call validate tender request to check the action
5922 	FTE_TENDER_PVT.VALIDATE_TENDER_REQUEST(
5923 		p_api_version_number => p_api_version_number,
5924 		p_init_msg_list	     => FND_API.G_FALSE,
5925 		x_return_status	     => l_return_status,
5926 		x_msg_count	     => l_msg_count,
5927 		x_msg_data	     => l_msg_data,
5928 		p_trip_id            => p_trip_info_rec.trip_id,
5929 		p_action_code	     => 'UPDATE',
5930 		p_tender_action	     => p_action_prms.action_code,
5931 		p_trip_name          => p_trip_info_rec.TRIP_NAME);
5932 
5933 	IF l_debug_on
5934 	THEN
5935 		WSH_DEBUG_SV.logmsg(l_module_name, ' VALIDATE_TENDER_REQUEST return status '
5936 						|| l_return_status, WSH_DEBUG_SV.C_PROC_LEVEL);
5937 	END IF;
5938 
5939 
5940 	wsh_util_core.api_post_call(
5941 	      p_return_status    =>l_return_status,
5942 	      x_num_warnings     =>l_number_of_warnings,
5943 	      x_num_errors       =>l_number_of_errors,
5944 	      p_msg_data	 =>l_msg_data);
5945 	--}
5946 
5947 	IF  l_tender_action = FTE_TENDER_PVT.S_TENDERED THEN
5948 	--{
5949 
5950 		l_item_key := FTE_TENDER_PVT.GET_ITEM_KEY(p_trip_info_rec.trip_id);
5951 
5952 		SELECT SHIP_METHOD_CODE,MODE_OF_TRANSPORT
5953 		INTO l_db_sm_code,db_mode_of_transport FROM WSH_TRIPS
5954 		WHERE TRIP_ID = p_trip_info_rec.trip_id;
5955 
5956 		l_trip_info_rec	:= FTE_TENDER_ATTR_REC(
5957 					p_trip_info_rec.trip_id, -- TripId
5958 					p_trip_info_rec.trip_name, -- Trip Name
5959 					p_trip_info_rec.tender_id, --tender id
5960 					FTE_TENDER_PVT.S_TENDERED, -- status
5961 					p_trip_info_rec.car_contact_id,-- car_contact_id
5962 					p_trip_info_rec.car_contact_name, -- car contact name
5963 					null, -- auto_accept
5964 					null, -- auto tender
5965 					p_trip_info_rec.ship_wait_time, -- ship wait time
5966 					p_trip_info_rec.ship_time_uom, -- ship time uom
5967 					'FTETEREQ', -- wf name
5968  					'TENDER_REQUEST_PROCESS', -- wf process name
5969  					l_item_key, --wf item key
5970  					null,null,null,null,null,null,null,null,null);
5971 
5972 		-- Update Trip information
5973 		INITIALIZE_TRIP_REC(x_trip_info => p_trip_info);
5974 
5975 		p_trip_info.TRIP_ID 		:= l_trip_info_rec.trip_id;
5976 		p_trip_info.SHIP_METHOD_CODE	:= l_db_sm_code;--FND_API.G_MISS_CHAR;
5977 		p_trip_info.shipper_wait_time 	:= l_trip_info_rec.SHIP_WAIT_TIME;
5978 		p_trip_info.wait_time_uom     	:= l_trip_info_rec.SHIP_TIME_UOM;
5979 		p_trip_info.wf_name 		:= l_trip_info_rec.WF_NAME;
5980 		p_trip_info.wf_process_name 	:= l_trip_info_rec.wf_process_name;
5981 		p_trip_info.wf_item_key 	:= l_trip_info_rec.wf_item_key;
5982 		p_trip_info.load_Tender_number  := l_trip_info_rec.trip_id;
5983 		p_trip_info.load_tender_status  := FTE_TENDER_PVT.S_TENDERED;
5984 		p_trip_info.carrier_contact_id  := l_trip_info_rec.car_contact_id;
5985 		p_trip_info.carrier_response    := null;
5986 		p_trip_info.carrier_reference_number := null;
5987 		p_trip_info.operator		:= null;
5988 		p_trip_info.load_Tendered_time  := SYSDATE;
5989 
5990 		p_trip_info_tab(1)		:=p_trip_info;
5991 		p_trip_in_rec.caller		:=G_PKG_NAME;
5992 		p_trip_in_rec.phase		:=NULL;
5993 		p_trip_in_rec.action_code	:='UPDATE';
5994 
5995 		WSH_INTERFACE_GRP.Create_Update_Trip
5996 		(
5997 		    p_api_version_number	=>p_api_version_number,
5998 		    p_init_msg_list		=>FND_API.G_FALSE,
5999 		    p_commit			=>FND_API.G_FALSE,
6000 		    x_return_status		=>l_return_status,
6001 		    x_msg_count			=>l_msg_count,
6002 		    x_msg_data			=>l_msg_data,
6003 		    p_trip_info_tab		=>p_trip_info_tab,
6004 		    p_in_rec			=>p_trip_in_rec,
6005 		    x_out_tab			=>x_out_tab
6006 		);
6007 
6008 
6009 		/**
6010 		UPDATE WSH_TRIPS
6011 		SET shipper_wait_time = l_trip_info_rec.SHIP_WAIT_TIME,
6012 		    wait_time_uom = l_trip_info_rec.SHIP_TIME_UOM,
6013 		    wf_name = l_trip_info_rec.wf_name,
6014 		    wf_process_name = l_trip_info_rec.wf_process_name,
6015 		    wf_item_key = l_trip_info_rec.wf_item_key,
6016 		    load_Tender_number = l_trip_info_rec.trip_id,
6017 		    load_tender_status = l_trip_info_rec.tender_status,
6018 		    carrier_contact_id = l_trip_info_rec.car_contact_id,
6019 		    carrier_response   = null,
6020 		    carrier_reference_number = null,
6021 		    operator	= null,
6022 		    load_Tendered_time = SYSDATE
6023 		WHERE trip_id = l_trip_info_rec.trip_id;
6024 		*/
6025 
6026 
6027 		IF l_debug_on
6028 		THEN
6029 		      WSH_DEBUG_SV.logmsg(l_module_name,' WSH_INTERFACE_GRP.CREATE_UPDATE_TRIP return status '
6030 		      				|| l_return_status, WSH_DEBUG_SV.C_PROC_LEVEL);
6031 		END IF;
6032 
6033 
6034 		wsh_util_core.api_post_call(
6035 		      p_return_status    =>l_return_status,
6036 		      x_num_warnings     =>l_number_of_warnings,
6037 		      x_num_errors       =>l_number_of_errors,
6038 		      p_msg_data	 =>l_msg_data);
6039 
6040 
6041 		--{
6042 		-- First get the MBOL Information for the trip
6043 		IF (db_mode_of_transport = 'TRUCK')
6044 		THEN
6045 
6046 			WSH_MBOLS_PVT.Generate_MBOL(p_trip_id =>  p_trip_info_rec.trip_id,
6047 					    x_sequence_number =>  l_mbol_number,
6048 					    x_return_status   =>  l_return_status);
6049 
6050 			IF l_debug_on
6051 			THEN
6052 			      WSH_DEBUG_SV.logmsg(l_module_name,' WSH_MBOLS_PVT.Generate_MBOL return status '
6053 		      				|| l_return_status, WSH_DEBUG_SV.C_PROC_LEVEL);
6054 			END IF;
6055 
6056 
6057 			IF ( (l_return_status = 'E') OR (l_return_status = 'U') )
6058 			THEN
6059 
6060 				IF l_debug_on
6061 				THEN
6062 				      WSH_DEBUG_SV.logmsg(l_module_name,' MBOL is not generated ');
6063 				END IF;
6064 				FND_MESSAGE.SET_NAME('FTE','FTE_MBOL_NOT_GENERATED');
6065 				l_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
6066 				WSH_UTIL_CORE.ADD_MESSAGE(l_return_status);
6067 			END IF;
6068 
6069 			wsh_util_core.api_post_call(
6070 			      p_return_status    =>l_return_status,
6071 			      x_num_warnings     =>l_number_of_warnings,
6072 			      x_num_errors       =>l_number_of_errors,
6073 			      p_msg_data	 =>l_msg_data);
6074 
6075 		END IF;
6076 		--}
6077 
6078 		IF l_debug_on
6079 		THEN
6080 		      WSH_DEBUG_SV.logmsg(l_module_name,' Call FTE_TENDER_PVT.RAISE_TENDER_EVENT ',
6081 		      			  WSH_DEBUG_SV.C_PROC_LEVEL);
6082 		END IF;
6083 
6084 
6085 		FTE_TENDER_PVT.RAISE_TENDER_EVENT(
6086 			p_init_msg_list           => FND_API.G_FALSE,
6087 			x_return_status           => l_return_status,
6088 			x_msg_count               => l_msg_count,
6089 			x_msg_data                => l_msg_data,
6090 			p_trip_info	       	  => l_trip_info_rec,
6091 			p_mbol_number		  => l_mbol_number);
6092 
6093 
6094 		IF l_debug_on
6095 		THEN
6096 		      WSH_DEBUG_SV.logmsg(l_module_name,' FTE_TENDER_PVT.RAISE_TENDER_EVENT '
6097 		      				|| l_return_status, WSH_DEBUG_SV.C_PROC_LEVEL);
6098 		END IF;
6099 
6100 
6101 		wsh_util_core.api_post_call(
6102 		      p_return_status    =>l_return_status,
6103 		      x_num_warnings     =>l_number_of_warnings,
6104 		      x_num_errors       =>l_number_of_errors,
6105 		      p_msg_data	 =>l_msg_data);
6106 
6107 
6108 
6109 	--}
6110 	ELSIF (l_tender_action = FTE_TENDER_PVT.S_ACCEPTED OR
6111 		l_tender_action = FTE_TENDER_PVT.S_REJECTED) THEN
6112 	--{
6113 
6114 		IF l_debug_on
6115 		THEN
6116 		      WSH_DEBUG_SV.logmsg(l_module_name,' Action ' || l_tender_action,
6117 		      			  WSH_DEBUG_SV.C_PROC_LEVEL);
6118 		END IF;
6119 
6120 
6121 		select wf_item_key into l_item_key from wsh_trips
6122 		where trip_id = p_trip_info_rec.trip_id;
6123 
6124 		IF (l_tender_action = FTE_TENDER_PVT.S_REJECTED) THEN
6125 			l_trip_info_rec	:= FTE_TENDER_ATTR_REC(
6126 					p_trip_info_rec.trip_id, -- TripId
6127 					p_trip_info_rec.trip_name, -- Trip Name
6128 					p_trip_info_rec.trip_id, --tender id
6129 					FTE_TENDER_PVT.S_REJECTED, -- status
6130 					null,-- car_contact_id
6131 					null, -- car contact name
6132 					null, -- auto_accept
6133 					null, -- auto tender
6134 					null, -- ship wait time
6135 					null, -- ship time uom
6136 					'FTETERES', -- wf name
6137  					'TENDER_REJECT_PROCESS', -- wf process name
6138  					l_item_key, --wf item key
6139  					p_trip_info_rec.remarks,
6140  					null,null,null,null,
6141  					null,null,
6142  					p_trip_info_rec.response_source,null);
6143 		ELSIF (l_tender_action = FTE_TENDER_PVT.S_ACCEPTED) THEN
6144 			l_trip_info_rec	:= FTE_TENDER_ATTR_REC(
6145 					p_trip_info_rec.trip_id, -- TripId
6146 					p_trip_info_rec.trip_name, -- Trip Name
6147 					p_trip_info_rec.trip_id, --tender id
6148 					FTE_TENDER_PVT.S_ACCEPTED, -- status
6149 					null,-- car_contact_id
6150 					null, -- car contact name
6151 					null, -- auto_accept
6152 					null, -- auto tender
6153 					null, -- ship wait time
6154 					null, -- ship time uom
6155 					'FTETERES', -- wf name
6156  					'TENDER_ACCEPT_PROCESS', -- wf process name
6157  					l_item_key, --wf item key
6158  					p_trip_info_rec.REMARKS,
6159  					p_trip_info_rec.CARRIER_PICKUP_DATE,
6160 					p_trip_info_rec.CARRIER_DROPOFF_DATE,
6161 					p_trip_info_rec.VEHICLE_NUMBER,
6162 					p_trip_info_rec.OPERATOR,
6163  					p_trip_info_rec.CARRIER_REF_NUMBER,null,
6164  					p_trip_info_rec.response_source,null);
6165 		END IF;
6166 
6167 
6168 
6169 		FTE_TENDER_PVT.HANDLE_TENDER_RESPONSE(
6170 			p_init_msg_list           => FND_API.G_FALSE,
6171 			x_return_status           => l_return_status,
6172 			x_msg_count               => l_msg_count,
6173 			x_msg_data                => l_msg_data,
6174 			p_trip_info	       	  => l_trip_info_rec);
6175 
6176 		wsh_util_core.api_post_call(
6177 		      p_return_status    =>l_return_status,
6178 		      x_num_warnings     =>l_number_of_warnings,
6179 		      x_num_errors       =>l_number_of_errors,
6180 		      p_msg_data	 =>l_msg_data);
6181 	--}
6182 	ELSIF (l_tender_action = FTE_TENDER_PVT.S_NORESPONSE) THEN
6183 		--{
6184 
6185 			IF l_debug_on
6186 			THEN
6187 			      WSH_DEBUG_SV.logmsg(l_module_name,' No Response call',
6188 			      			  WSH_DEBUG_SV.C_PROC_LEVEL);
6189 			END IF;
6190 
6191 			INITIALIZE_TRIP_REC(x_trip_info => p_trip_info);
6192 
6193 			-- Update trip information
6194 			p_trip_info.TRIP_ID 		:= p_trip_info_rec.trip_id;
6195 			p_trip_info.wf_name 		:= p_trip_info_rec.WF_NAME;
6196 			p_trip_info.wf_process_name 	:= p_trip_info_rec.wf_process_name;
6197 			p_trip_info.wf_item_key 	:= p_trip_info_rec.wf_item_key;
6198 			p_trip_info.load_Tender_number  := p_trip_info_rec.tender_id;
6199 			p_trip_info.load_tender_status  := FTE_TENDER_PVT.S_NORESPONSE;
6200 
6201 			p_trip_info_tab(1)		:=p_trip_info;
6202 			p_trip_in_rec.caller		:=G_PKG_NAME;
6203 			p_trip_in_rec.phase		:=NULL;
6204 			p_trip_in_rec.action_code	:='UPDATE';
6205 
6206 			IF l_debug_on
6207 			THEN
6208 			      WSH_DEBUG_SV.logmsg(l_module_name,' Trip Id ' || p_trip_info.TRIP_ID,
6209 			      			  WSH_DEBUG_SV.C_PROC_LEVEL);
6210 			END IF;
6211 
6212 
6213 			WSH_INTERFACE_GRP.Create_Update_Trip
6214 			(
6215 			    p_api_version_number	=>p_api_version_number,
6216 			    p_init_msg_list		=>FND_API.G_FALSE,
6217 			    p_commit			=>FND_API.G_FALSE,
6218 			    x_return_status		=>l_return_status,
6219 			    x_msg_count			=>l_msg_count,
6220 			    x_msg_data			=>l_msg_data,
6221 			    p_trip_info_tab		=>p_trip_info_tab,
6222 			    p_in_rec			=>p_trip_in_rec,
6223 			    x_out_tab			=>x_out_tab
6224 			);
6225 
6226 			IF l_debug_on
6227 			THEN
6228 			      WSH_DEBUG_SV.logmsg(l_module_name,' REturn value from Create update trip ' ||
6229 			      				l_return_status,
6230 						  WSH_DEBUG_SV.C_PROC_LEVEL);
6231 			END IF;
6232 
6233 			wsh_util_core.api_post_call(
6234 			      p_return_status    =>l_return_status,
6235 			      x_num_warnings     =>l_number_of_warnings,
6236 			      x_num_errors       =>l_number_of_errors,
6237 			      p_msg_data	 =>l_msg_data);
6238 
6239 	ELSIF (l_tender_action = FTE_TENDER_PVT.S_AUTO_ACCEPTED) THEN
6240 		--{
6241 
6242 			IF l_debug_on
6243 			THEN
6244 			      WSH_DEBUG_SV.logmsg(l_module_name,' Autoaccept call ',
6245 			      			  WSH_DEBUG_SV.C_PROC_LEVEL);
6246 			END IF;
6247 
6248 			INITIALIZE_TRIP_REC(x_trip_info => p_trip_info);
6249 
6250 			-- Update trip information
6251 			p_trip_info.TRIP_ID 		:= p_trip_info_rec.trip_id;
6252 			p_trip_info.wf_name 		:= p_trip_info_rec.WF_NAME;
6253 			p_trip_info.wf_process_name 	:= p_trip_info_rec.wf_process_name;
6254 			p_trip_info.wf_item_key 	:= p_trip_info_rec.wf_item_key;
6255 			p_trip_info.load_Tender_number  := p_trip_info_rec.tender_id;
6256 			p_trip_info.load_tender_status  := FTE_TENDER_PVT.S_AUTO_ACCEPTED;
6257 
6258 			p_trip_info_tab(1)		:=p_trip_info;
6259 			p_trip_in_rec.caller		:=G_PKG_NAME;
6260 			p_trip_in_rec.phase		:=NULL;
6261 			p_trip_in_rec.action_code	:='UPDATE';
6262 
6263 			IF l_debug_on
6264 			THEN
6265 			      WSH_DEBUG_SV.logmsg(l_module_name,' Trip Id ' || p_trip_info.TRIP_ID,
6266 			      			  WSH_DEBUG_SV.C_PROC_LEVEL);
6267 			END IF;
6268 
6269 
6270 			WSH_INTERFACE_GRP.Create_Update_Trip
6271 			(
6272 			    p_api_version_number	=>p_api_version_number,
6273 			    p_init_msg_list		=>FND_API.G_FALSE,
6274 			    p_commit			=>FND_API.G_FALSE,
6275 			    x_return_status		=>l_return_status,
6276 			    x_msg_count			=>l_msg_count,
6277 			    x_msg_data			=>l_msg_data,
6278 			    p_trip_info_tab		=>p_trip_info_tab,
6279 			    p_in_rec			=>p_trip_in_rec,
6280 			    x_out_tab			=>x_out_tab
6281 			);
6282 
6283 			IF l_debug_on
6284 			THEN
6285 			      WSH_DEBUG_SV.logmsg(l_module_name,' REturn value from Create update trip ' ||
6286 			      				l_return_status,
6287 						  WSH_DEBUG_SV.C_PROC_LEVEL);
6288 			END IF;
6289 
6290 			wsh_util_core.api_post_call(
6291 			      p_return_status    =>l_return_status,
6292 			      x_num_warnings     =>l_number_of_warnings,
6293 			      x_num_errors       =>l_number_of_errors,
6294 			      p_msg_data	 =>l_msg_data);
6295 
6296 	ELSIF (l_tender_action = FTE_TENDER_PVT.S_SHIPPER_CANCELLED) THEN
6297 	--{
6298 
6299 		IF l_debug_on
6300 		THEN
6301 		      WSH_DEBUG_SV.logmsg(l_module_name,' Action ' || l_tender_action,
6302 		      			  WSH_DEBUG_SV.C_PROC_LEVEL);
6303 		END IF;
6304 
6305 
6306 		select wf_item_key into l_item_key from wsh_trips
6307 		where trip_id = p_trip_info_rec.trip_id;
6308 
6309 		l_trip_info_rec	:= FTE_TENDER_ATTR_REC(
6310 				p_trip_info_rec.trip_id, -- TripId
6311 				p_trip_info_rec.trip_name, -- Trip Name
6312 				p_trip_info_rec.trip_id, --tender id
6313 				FTE_TENDER_PVT.S_SHIPPER_CANCELLED, -- status
6314 				null,-- car_contact_id
6315 				null, -- car contact name
6316 				null, -- auto_accept
6317 				null, -- auto tender
6318 				null, -- ship wait time
6319 				null, -- ship time uom
6320 				'FTETESCA', -- wf name
6321 				'TENDER_CANCEL_PROCESS', -- wf process name
6322 				l_item_key, --wf item key
6323 				null,
6324 				null,null,null,null,
6325 				null,null,
6326 				p_trip_info_rec.response_source,null);
6327 
6328 		FTE_TENDER_PVT.HANDLE_CANCEL_TENDER(
6329 			p_init_msg_list           => FND_API.G_FALSE,
6330 			x_return_status           => l_return_status,
6331 			x_msg_count               => l_msg_count,
6332 			x_msg_data                => l_msg_data,
6333 			p_trip_info	       	  => l_trip_info_rec);
6334 
6335 		wsh_util_core.api_post_call(
6336 		      p_return_status    =>l_return_status,
6337 		      x_num_warnings     =>l_number_of_warnings,
6338 		      x_num_errors       =>l_number_of_errors,
6339 		      p_msg_data	 =>l_msg_data);
6340 
6341 	--}
6342 	ELSIF (l_tender_action = FTE_TENDER_PVT.S_SHIPPER_UPDATED) THEN
6343 	--{
6344 
6345 		IF l_debug_on
6346 		THEN
6347 		      WSH_DEBUG_SV.logmsg(l_module_name,' Action ' || l_tender_action,
6348 		      			  WSH_DEBUG_SV.C_PROC_LEVEL);
6349 		END IF;
6350 
6351 
6352 		select wf_item_key into l_item_key from wsh_trips
6353 		where trip_id = p_trip_info_rec.trip_id;
6354 
6355 		l_trip_info_rec	:= FTE_TENDER_ATTR_REC(
6356 				p_trip_info_rec.trip_id, -- TripId
6357 				p_trip_info_rec.trip_name, -- Trip Name
6358 				p_trip_info_rec.trip_id, --tender id
6359 				FTE_TENDER_PVT.S_SHIPPER_UPDATED, -- status
6360 				null,-- car_contact_id
6361 				null, -- car contact name
6362 				null, -- auto_accept
6363 				null, -- auto tender
6364 				null, -- ship wait time
6365 				null, -- ship time uom
6366 				'FTETEREQ', -- wf name
6367 				'TENDER_UPDATE_PROCESS', -- wf process name
6368 				l_item_key, --wf item key
6369 				null,
6370 				null,null,null,null,
6371 				null,null,
6372 				null,null);
6373 
6374 
6375 		FTE_TENDER_PVT.HANDLE_UPDATE_TENDER(
6376 			p_init_msg_list           => FND_API.G_FALSE,
6377 			x_return_status           => l_return_status,
6378 			x_msg_count               => l_msg_count,
6379 			x_msg_data                => l_msg_data,
6380 			p_trip_info	       	  => l_trip_info_rec);
6381 
6382 		wsh_util_core.api_post_call(
6383 		      p_return_status    =>l_return_status,
6384 		      x_num_warnings     =>l_number_of_warnings,
6385 		      x_num_errors       =>l_number_of_errors,
6386 		      p_msg_data	 =>l_msg_data);
6387 
6388 	--}
6389 	END IF;
6390 
6391 	IF l_number_of_errors > 0
6392 	THEN
6393 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6394 	    RAISE FND_API.G_EXC_ERROR;
6395 	ELSIF l_number_of_warnings > 0 THEN
6396 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
6397 	ELSE
6398 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
6399 	END IF;
6400 
6401 
6402 	FND_MSG_PUB.Count_And_Get
6403 	  (
6404 	     p_count  => x_msg_count,
6405 	     p_data  =>  x_msg_data,
6406 	     p_encoded => FND_API.G_FALSE
6407 	  );
6408 
6409 
6410 	IF l_debug_on THEN
6411 		WSH_DEBUG_SV.pop(l_module_name);
6412 	END IF;
6413 
6414 
6415   EXCEPTION
6416 	WHEN FND_API.G_EXC_ERROR THEN
6417 		ROLLBACK TO TRIP_ACTION_PUB;
6418 		x_return_status := FND_API.G_RET_STS_ERROR;
6419 		FND_MSG_PUB.Count_And_Get
6420 		  (
6421 		     p_count  => x_msg_count,
6422 		     p_data  =>  x_msg_data,
6423 		     p_encoded => FND_API.G_FALSE
6424 		  );
6425 
6426 		IF l_debug_on THEN
6427 			WSH_DEBUG_SV.pop(l_module_name);
6428 		END IF;
6429 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6430 		ROLLBACK TO TRIP_ACTION_PUB;
6431 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
6432 		FND_MSG_PUB.Count_And_Get
6433 		  (
6434 		     p_count  => x_msg_count,
6435 		     p_data  =>  x_msg_data,
6436 		     p_encoded => FND_API.G_FALSE
6437 		  );
6438 		IF l_debug_on THEN
6439 			WSH_DEBUG_SV.pop(l_module_name);
6440 		END IF;
6441 	WHEN OTHERS THEN
6442 		ROLLBACK TO TRIP_ACTION_PUB;
6443 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
6444 		FND_MSG_PUB.Count_And_Get
6445 		  (
6446 		     p_count  => x_msg_count,
6447 		     p_data  =>  x_msg_data,
6448 		     p_encoded => FND_API.G_FALSE
6449 		  );
6450 		IF l_debug_on THEN
6451 		        wsh_debug_sv.log (l_module_name,'Error',substr(sqlerrm,1,200));
6452 			WSH_DEBUG_SV.pop(l_module_name);
6453 		END IF;
6454 END Trip_Action;
6455 --
6456 --***************************************************************************
6457 --========================================================================
6458 -- PROCEDURE : TRIP_ACTION         Wrapper API      PUBLIC
6459 --		Added for Rel 12
6460 --
6461 -- PARAMETERS: p_api_version_number    known api version error number
6462 --             p_init_msg_list         FND_API.G_TRUE to reset list
6463 --             x_return_status         return status
6464 --             x_msg_count             number of messages in the list
6465 --             x_msg_data              text of messages
6466 --	       x_action_out_rec	       Out rec based on actions.
6467 --	       p_tripId		       trip id
6468 --             p_action_prms           Record of caller, phase, action_code and other
6469 --                                     parameters specific to the actions.
6470 -- VERSION   : current version         1.0
6471 --             initial version         1.0
6472 --========================================================================
6473 PROCEDURE Trip_Action
6474   ( p_api_version_number     IN   		NUMBER,
6475     p_init_msg_list          IN   		VARCHAR2,
6476     x_return_status          OUT NOCOPY 	VARCHAR2,
6477     x_msg_count              OUT NOCOPY 	NUMBER,
6478     x_msg_data               OUT NOCOPY 	VARCHAR2,
6479     x_action_out_rec	     OUT NOCOPY		FTE_ACTION_OUT_REC,
6480     p_tripId		     IN			NUMBER,
6481     p_action_prms	     IN			FTE_TRIP_ACTION_PARAM_REC
6482   )
6483 IS
6484 -- Initial Variables
6485 l_return_status             VARCHAR2(32767);
6486 l_msg_count                 NUMBER;
6487 l_msg_data                  VARCHAR2(32767);
6488 l_number_of_warnings	    NUMBER;
6489 l_number_of_errors	    NUMBER;
6490 
6491 l_trip_id_tab		   FTE_ID_TAB_TYPE;
6492 
6493 
6494 
6495 l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
6496 
6497 l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.' || G_PKG_NAME || '.' || 'TRIP_ACTION';
6498 
6499 
6500   BEGIN
6501 
6502   	SAVEPOINT	TRIP_ACTION_PUB;
6503 
6504 	-- This procedure will try to load trip information and call
6505 	-- TRIP_ACTION procedure with trip_rec. Since shipper wait time and
6506 	-- other values are not updated by calling application,
6507 	-- we are going to default them from the first
6508 	-- found carrier site.
6509 	IF FND_API.to_Boolean( p_init_msg_list )
6510 	THEN
6511 		FND_MSG_PUB.initialize;
6512 	END IF;
6513 	--
6514 	--
6515 	--  Initialize API return status to success
6516 	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
6517 	x_msg_count		:= 0;
6518 	x_msg_data		:= 0;
6519 	l_return_status 	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
6520 	l_number_of_warnings	:= 0;
6521 	l_number_of_errors	:= 0;
6522 
6523 	IF l_debug_on
6524 	THEN
6525 	      wsh_debug_sv.push(l_module_name);
6526               WSH_DEBUG_SV.logmsg(l_module_name,' Action to be performed ' || p_action_prms.action_code);
6527 	END IF;
6528 
6529 
6530 	IF  p_action_prms.action_code = FTE_TENDER_PVT.S_TENDERED THEN
6531 	--{
6532 		l_trip_id_tab	:= FTE_ID_TAB_TYPE();
6533 		l_trip_id_tab.EXTEND;
6534 		l_trip_id_tab(l_trip_id_tab.COUNT) := p_tripId;
6535 
6536 		FTE_MLS_WRAPPER.TENDER_TRIPS
6537 		    ( p_api_version_number     => 1.0,
6538 		      p_init_msg_list          => FND_API.G_FALSE,
6539 		      p_trip_id_tab            => l_trip_id_tab,
6540 		      p_caller		       => 'BE', --Back end
6541 		      x_action_out_rec	       => x_action_out_rec,
6542 		      x_return_status          => l_return_status,
6543 		      x_msg_count              => l_msg_count,
6544 		      x_msg_data               => l_msg_data);
6545 
6546 		    IF l_debug_on THEN
6547 			WSH_DEBUG_SV.logmsg(l_module_name,' return status from TENDER_TRIPS ' || l_return_status);
6548 		    END IF;
6549 
6550 	--}
6551 	END IF;
6552 
6553 	wsh_util_core.api_post_call(
6554 	      p_return_status    =>l_return_status,
6555 	      x_num_warnings     =>l_number_of_warnings,
6556 	      x_num_errors       =>l_number_of_errors,
6557 	      p_msg_data	 =>l_msg_data);
6558 
6559 
6560 	IF l_number_of_errors > 0
6561 	THEN
6562 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6563 	    RAISE FND_API.G_EXC_ERROR;
6564 	ELSIF l_number_of_warnings > 0 THEN
6565 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
6566 	ELSE
6567 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
6568 	END IF;
6569 
6570 
6571 	FND_MSG_PUB.Count_And_Get
6572 	  (
6573 	     p_count  => x_msg_count,
6574 	     p_data  =>  x_msg_data,
6575 	     p_encoded => FND_API.G_FALSE
6576 	  );
6577 
6578 	IF l_debug_on THEN
6579 		WSH_DEBUG_SV.pop(l_module_name);
6580 	END IF;
6581 
6582 
6583   EXCEPTION
6584 	WHEN FND_API.G_EXC_ERROR THEN
6585 		ROLLBACK TO TRIP_ACTION_PUB;
6586 		x_return_status := FND_API.G_RET_STS_ERROR;
6587 		FND_MSG_PUB.Count_And_Get
6588 		  (
6589 		     p_count  => x_msg_count,
6590 		     p_data  =>  x_msg_data,
6591 		     p_encoded => FND_API.G_FALSE
6592 		  );
6593 
6594 		IF l_debug_on THEN
6595 			WSH_DEBUG_SV.pop(l_module_name);
6596 		END IF;
6597 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6598 		ROLLBACK TO TRIP_ACTION_PUB;
6599 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
6600 		FND_MSG_PUB.Count_And_Get
6601 		  (
6602 		     p_count  => x_msg_count,
6603 		     p_data  =>  x_msg_data,
6604 		     p_encoded => FND_API.G_FALSE
6605 		  );
6606 		IF l_debug_on THEN
6607 			WSH_DEBUG_SV.pop(l_module_name);
6608 		END IF;
6609 	WHEN OTHERS THEN
6610 		ROLLBACK TO TRIP_ACTION_PUB;
6611 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
6612 		FND_MSG_PUB.Count_And_Get
6613 		  (
6614 		     p_count  => x_msg_count,
6615 		     p_data  =>  x_msg_data,
6616 		     p_encoded => FND_API.G_FALSE
6617 		  );
6618 		IF l_debug_on THEN
6619 		        wsh_debug_sv.log (l_module_name,'Error',substr(sqlerrm,1,200));
6620 			WSH_DEBUG_SV.pop(l_module_name);
6621 		END IF;
6622 END TRIP_ACTION;
6623 --========================================================================
6624 -- PROCEDURE : UPDATE_SERVICE_TO_TRIP        FTE wrapper
6625 --
6626 -- COMMENT   : Procedure updates trip with new service by calling
6627 --	       FTE_MLS_WRAPPER and raises appropriate select service
6628 --             or cancel service event.
6629 -- ORIG CALLER    : FTE_UI: TripWB, DeliveryWB, ManageItinerary
6630 --
6631 -- SERVICE_ACTION: 'UPDATE' means overwriting existing service.
6632 --                 'ADD_NEW' means assigning new service.
6633 --                 'REMOVE' means user is canceling service
6634 -- DELIVERY_LEG_ID: If this value is populated, it means it is coming
6635 --                  Manage Itinerary
6636 -- TRIP_ID: If this value is populated and both DELIVERY_ID,
6637 --          DELIVERY_LEG_ID are NULL, it means it is coming from TWB
6638 --========================================================================
6639 --
6640 --
6641 PROCEDURE UPDATE_SERVICE_ON_TRIP
6642 (
6643 	p_API_VERSION_NUMBER	IN	NUMBER,
6644 	p_INIT_MSG_LIST		IN	VARCHAR2,
6645 	p_COMMIT		IN	VARCHAR2,
6646 	p_CALLER		IN	VARCHAR2,
6647 	p_SERVICE_ACTION	IN	VARCHAR2,
6648 	p_DELIVERY_ID		IN	NUMBER,
6649 	p_DELIVERY_LEG_ID	IN 	NUMBER,
6650 	p_TRIP_ID		IN	NUMBER,
6651 	p_LANE_ID		IN	NUMBER,
6652 	p_SCHEDULE_ID		IN	NUMBER,
6653 	p_CARRIER_ID		IN	NUMBER,
6654 	p_SERVICE_LEVEL		IN	VARCHAR2,
6655 	p_MODE_OF_TRANSPORT	IN	VARCHAR2,
6656 	p_VEHICLE_ITEM_ID	IN	NUMBER,
6657 	p_VEHICLE_ORG_ID	IN	NUMBER,
6658 	p_CONSIGNEE_CARRIER_AC_NO IN    VARCHAR2,
6659 	p_FREIGHT_TERMS_CODE	IN	VARCHAR2,
6660 	x_RETURN_STATUS		OUT NOCOPY	VARCHAR2,
6661 	x_MSG_COUNT		OUT NOCOPY	NUMBER,
6662 	x_MSG_DATA		OUT NOCOPY	VARCHAR2
6663 )
6664   IS
6665 	l_ret_trip_id	NUMBER;
6666 	l_ret_trip_name	VARCHAR2(30);
6667 
6668 	l_number_of_warnings	NUMBER;
6669 	l_number_of_errors	NUMBER;
6670 	l_return_status         VARCHAR2(32767);
6671 	l_msg_count             NUMBER;
6672 	l_msg_data              VARCHAR2(32767);
6673 	l_debug_on CONSTANT BOOLEAN := WSH_DEBUG_SV.is_debug_enabled;
6674      	l_module_name CONSTANT VARCHAR2(100) := 'fte.plsql.'|| G_PKG_NAME ||'.'||'UPDATE_SERVICE_ON_TRIP';
6675 
6676   BEGIN
6677 
6678   SAVEPOINT	UPD_SERV_ON_TRIP_PUB;
6679 
6680 
6681     	-- Initialize message list if p_init_msg_list is set to TRUE.
6682     	--
6683     	--IF FND_API.to_Boolean( p_init_msg_list )
6684     	--THEN
6685     		FND_MSG_PUB.initialize;
6686     	--END IF;
6687 	--
6688     	IF l_debug_on THEN
6689     	      wsh_debug_sv.push(l_module_name);
6690 	END IF;
6691     	--
6692 	l_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
6693 	l_msg_count		:= 0;
6694 
6695 	x_return_status       	:= WSH_UTIL_CORE.G_RET_STS_SUCCESS;
6696 	x_msg_count		:= 0;
6697 	--
6698 
6699         IF l_debug_on THEN
6700             WSH_DEBUG_SV.logmsg(l_module_name, 'Service Action:'||p_service_action);
6701         END IF;
6702 
6703         -- Step 1. First update service on the trip
6704         CREATE_UPDATE_TRIP(
6705 		p_api_version_number    	=> 1.0,
6706 		p_init_msg_list			=> FND_API.G_FALSE,
6707 		x_return_status 		=> l_return_status,
6708 		x_msg_count			=> l_msg_count,
6709 		x_msg_data			=> l_msg_data,
6710 		x_trip_id			=> l_ret_trip_id,
6711 		x_trip_name			=> l_ret_trip_name,
6712 		p_action_code			=> 'UPDATE',
6713 		p_rec_TRIP_ID			=> p_trip_id,
6714 		p_rec_LANE_ID			=> p_lane_id,
6715 		p_rec_SCHEDULE_ID		=> p_schedule_id,
6716 		p_rec_CARRIER_ID		=> p_carrier_id,
6717 		p_rec_SERVICE_LEVEL		=> p_service_level,
6718 		p_rec_MODE_OF_TRANSPORT		=> p_mode_of_transport,
6719 		p_rec_SHIP_METHOD_CODE		=> NULL,
6720 		p_rec_VEHICLE_ORGANIZATION_ID 	=> p_vehicle_org_id,
6721 		p_rec_VEHICLE_ITEM_ID		=> p_vehicle_item_id,
6722 		p_rec_CONSIGNEE_CAR_AC_NO 	=> p_CONSIGNEE_CARRIER_AC_NO,
6723 		p_rec_FREIGHT_TERMS_CODE	=> p_FREIGHT_TERMS_CODE);
6724 
6725 	  WSH_UTIL_CORE.API_POST_CALL(
6726 		p_return_status    =>l_return_status,
6727 		x_num_warnings     =>l_number_of_warnings,
6728 		x_num_errors       =>l_number_of_errors,
6729 		p_msg_data	   =>l_msg_data);
6730 
6731 	  IF l_debug_on THEN
6732 	        WSH_DEBUG_SV.logmsg(l_module_name, 'API:FTE_MLS_WRAPPER.CREATE_UPD_TRIP');
6733 	        WSH_DEBUG_SV.logmsg(l_module_name, 'l_return_status:'||l_return_status);
6734 	        WSH_DEBUG_SV.logmsg(l_module_name, 'l_number_of_warnings:'||l_number_of_warnings);
6735 	        WSH_DEBUG_SV.logmsg(l_module_name, 'l_number_of_errors:'||l_number_of_errors);
6736 	        WSH_DEBUG_SV.logmsg(l_module_name, 'l_msg_data:'||l_msg_data);
6737 	  END IF;
6738 
6739 	-- Step 2:Raise appropriate business events:
6740 	-- If service action is UPDATE,
6741 	--      raise a cancel service event first,
6742 	-- 	then raise a select service event
6743 	-- Else raise only a select service event
6744 
6745         /* R12 Hiding Project
6746         IF l_debug_on THEN
6747             WSH_DEBUG_SV.logmsg(l_module_name, 'Service Action:'||p_service_action);
6748         END IF;
6749 
6750 	IF ( p_service_action = 'UPDATE' OR p_service_action = 'REMOVE') THEN
6751 
6752 	        FTE_WORKFLOW_UTIL.TRIP_CANCEL_SERVICE(
6753 			p_trip_id 	=> p_trip_id,
6754 			x_return_status	=> l_return_status);
6755 
6756 	  	WSH_UTIL_CORE.API_POST_CALL(
6757 		  p_return_status    =>l_return_status,
6758 		  x_num_warnings     =>l_number_of_warnings,
6759 		  x_num_errors       =>l_number_of_errors,
6760 		  p_msg_data	   =>l_msg_data);
6761 
6762 	        IF l_debug_on THEN
6763 	          WSH_DEBUG_SV.logmsg(l_module_name, 'API:FTE_WORKFLOW_UTIL: CANCEL SERVICE');
6764 	          WSH_DEBUG_SV.logmsg(l_module_name, 'l_return_status:'||l_return_status);
6765 	          WSH_DEBUG_SV.logmsg(l_module_name, 'l_number_of_warnings:'||l_number_of_warnings);
6766 	          WSH_DEBUG_SV.logmsg(l_module_name, 'l_number_of_errors:'||l_number_of_errors);
6767 	          WSH_DEBUG_SV.logmsg(l_module_name, 'l_msg_data:'||l_msg_data);
6768 	  	END IF;
6769 
6770 	END IF;
6771 
6772 	IF (p_service_action = 'ADD_NEW' OR p_service_action = 'UPDATE') THEN
6773                 IF l_debug_on THEN
6774 	            WSH_DEBUG_SV.logmsg(l_module_name, 'Raising Select Trip Service Event');
6775 	        END IF;
6776 
6777 	        FTE_WORKFLOW_UTIL.TRIP_SELECT_SERVICE_INIT(
6778 			p_trip_id 	=> p_trip_id,
6779 			x_return_status	=> l_return_status);
6780 
6781 	  	WSH_UTIL_CORE.API_POST_CALL(
6782 		  p_return_status    =>l_return_status,
6783 		  x_num_warnings     =>l_number_of_warnings,
6784 		  x_num_errors       =>l_number_of_errors,
6785 		  p_msg_data	   =>l_msg_data);
6786 
6787 	        IF l_debug_on THEN
6788 	          WSH_DEBUG_SV.logmsg(l_module_name, 'API:FTE_WORKFLOW_UTIL: SELECT SERVICE');
6789 	          WSH_DEBUG_SV.logmsg(l_module_name, 'l_return_status:'||l_return_status);
6790 	          WSH_DEBUG_SV.logmsg(l_module_name, 'l_number_of_warnings:'||l_number_of_warnings);
6791 	          WSH_DEBUG_SV.logmsg(l_module_name, 'l_number_of_errors:'||l_number_of_errors);
6792 	          WSH_DEBUG_SV.logmsg(l_module_name, 'l_msg_data:'||l_msg_data);
6793 	  	END IF;
6794 	END IF;
6795 	*/
6796 
6797 	IF l_number_of_errors > 0
6798 	THEN
6799 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
6800 	    RAISE FND_API.G_EXC_ERROR;
6801 	ELSIF l_number_of_warnings > 0 THEN
6802 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
6803 	ELSE
6804 	    x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
6805 	END IF;
6806 
6807 	FND_MSG_PUB.Count_And_Get
6808 	  (
6809 	     p_count  => x_msg_count,
6810 	     p_data  =>  x_msg_data,
6811 	     p_encoded => FND_API.G_FALSE
6812 	  );
6813 
6814 	--
6815 EXCEPTION
6816 	WHEN FND_API.G_EXC_ERROR THEN
6817 		ROLLBACK TO UPD_SERV_ON_TRIP_PUB;
6818 		x_return_status := FND_API.G_RET_STS_ERROR;
6819 		FND_MSG_PUB.Count_And_Get
6820 		  (
6821 		     p_count  => x_msg_count,
6822 		     p_data  =>  x_msg_data,
6823 		     p_encoded => FND_API.G_FALSE
6824 		  );
6825 	WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
6826 		ROLLBACK TO UPD_SERV_ON_TRIP_PUB;
6827 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
6828 		FND_MSG_PUB.Count_And_Get
6829 		  (
6830 		     p_count  => x_msg_count,
6831 		     p_data  =>  x_msg_data,
6832 		     p_encoded => FND_API.G_FALSE
6833 		  );
6834 	WHEN OTHERS THEN
6835 		ROLLBACK TO UPD_SERV_ON_TRIP_PUB;
6836 		x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
6837 		FND_MSG_PUB.Count_And_Get
6838 		  (
6839 		     p_count  => x_msg_count,
6840 		     p_data  =>  x_msg_data,
6841 		     p_encoded => FND_API.G_FALSE
6842 		  );
6843 END UPDATE_SERVICE_ON_TRIP;
6844 --
6845 PROCEDURE INITIALIZE_TRIP_REC(x_trip_info OUT NOCOPY WSH_TRIPS_PVT.Trip_Rec_Type)
6846 IS
6847 
6848 	p_trip_info	WSH_TRIPS_PVT.Trip_Rec_Type;
6849 
6850 BEGIN
6851 
6852 	p_trip_info.TRIP_ID                   := FND_API.G_MISS_NUM;
6853 	p_trip_info.NAME                      := FND_API.G_MISS_CHAR;
6854 	p_trip_info.ARRIVE_AFTER_TRIP_ID      := FND_API.G_MISS_NUM;
6855 	p_trip_info.ARRIVE_AFTER_TRIP_NAME    := FND_API.G_MISS_CHAR;
6856 	p_trip_info.VEHICLE_ITEM_ID           := FND_API.G_MISS_NUM;
6857 	p_trip_info.VEHICLE_ITEM_DESC         := FND_API.G_MISS_CHAR;
6858 	p_trip_info.VEHICLE_ORGANIZATION_ID   := FND_API.G_MISS_NUM;
6859 	p_trip_info.VEHICLE_ORGANIZATION_CODE  := FND_API.G_MISS_CHAR;
6860 	p_trip_info.VEHICLE_NUMBER            := FND_API.G_MISS_CHAR;
6861 	p_trip_info.VEHICLE_NUM_PREFIX        := FND_API.G_MISS_CHAR;
6862 	p_trip_info.CARRIER_ID                := FND_API.G_MISS_NUM;
6863 	p_trip_info.SHIP_METHOD_CODE          := FND_API.G_MISS_CHAR;
6864 	p_trip_info.SHIP_METHOD_NAME          := FND_API.G_MISS_CHAR;
6865 	p_trip_info.ROUTE_ID                  := FND_API.G_MISS_NUM;
6866 	p_trip_info.ROUTING_INSTRUCTIONS      := FND_API.G_MISS_CHAR;
6867 	p_trip_info.ATTRIBUTE_CATEGORY        := FND_API.G_MISS_CHAR;
6868 	p_trip_info.ATTRIBUTE1                := FND_API.G_MISS_CHAR;
6869 	p_trip_info.ATTRIBUTE2                := FND_API.G_MISS_CHAR;
6870 	p_trip_info.ATTRIBUTE3                := FND_API.G_MISS_CHAR;
6871 	p_trip_info.ATTRIBUTE4                := FND_API.G_MISS_CHAR;
6872 	p_trip_info.ATTRIBUTE5                := FND_API.G_MISS_CHAR;
6873 	p_trip_info.ATTRIBUTE6                := FND_API.G_MISS_CHAR;
6874 	p_trip_info.ATTRIBUTE7                := FND_API.G_MISS_CHAR;
6875 	p_trip_info.ATTRIBUTE8                := FND_API.G_MISS_CHAR;
6876 	p_trip_info.ATTRIBUTE9                := FND_API.G_MISS_CHAR;
6877 	p_trip_info.ATTRIBUTE10               := FND_API.G_MISS_CHAR;
6878 	p_trip_info.ATTRIBUTE11               := FND_API.G_MISS_CHAR;
6879 	p_trip_info.ATTRIBUTE12               := FND_API.G_MISS_CHAR;
6880 	p_trip_info.ATTRIBUTE13               := FND_API.G_MISS_CHAR;
6881 	p_trip_info.ATTRIBUTE14               := FND_API.G_MISS_CHAR;
6882 	p_trip_info.ATTRIBUTE15               := FND_API.G_MISS_CHAR;
6883 	p_trip_info.SERVICE_LEVEL             := FND_API.G_MISS_CHAR;
6884 	p_trip_info.MODE_OF_TRANSPORT         := FND_API.G_MISS_CHAR;
6885 	p_trip_info.CONSOLIDATION_ALLOWED     := FND_API.G_MISS_CHAR;
6886 	p_trip_info.PLANNED_FLAG          	:= FND_API.G_MISS_CHAR;
6887 	p_trip_info.STATUS_CODE           	:= FND_API.G_MISS_CHAR;
6888 	p_trip_info.FREIGHT_TERMS_CODE    	:= FND_API.G_MISS_CHAR;
6889 	p_trip_info.LOAD_TENDER_STATUS    	:= FND_API.G_MISS_CHAR;
6890 	p_trip_info.ROUTE_LANE_ID         	:= FND_API.G_MISS_NUM;
6891 	p_trip_info.LANE_ID              	:= FND_API.G_MISS_NUM;
6892 	p_trip_info.SCHEDULE_ID          	:= FND_API.G_MISS_NUM;
6893 	p_trip_info.BOOKING_NUMBER     		:= FND_API.G_MISS_CHAR;
6894 	p_trip_info.carrier_contact_id 	    	:= FND_API.G_MISS_NUM;
6895 	p_trip_info.shipper_wait_time		:= FND_API.G_MISS_NUM;
6896 	p_trip_info.wait_time_uom		    	:= FND_API.G_MISS_CHAR;
6897 	p_trip_info.wf_name			:= FND_API.G_MISS_CHAR;
6898 	p_trip_info.wf_process_name		:= FND_API.G_MISS_CHAR;
6899 	p_trip_info.wf_item_key		    	:= FND_API.G_MISS_CHAR;
6900 	p_trip_info.load_tender_number	    	:= FND_API.G_MISS_NUM;
6901 	p_trip_info.Load_tendered_time		:= FND_API.G_MISS_DATE;
6902 	p_trip_info.carrier_response		:= FND_API.G_MISS_CHAR;
6903         p_trip_info.operator                    := FND_API.G_MISS_CHAR;
6904         p_trip_info.IGNORE_FOR_PLANNING       	:= FND_API.G_MISS_CHAR;
6905         p_trip_info.CONSIGNEE_CARRIER_AC_NO		:= FND_API.G_MISS_CHAR;
6906         p_trip_info.CARRIER_REFERENCE_NUMBER		:= FND_API.G_MISS_CHAR;
6907         p_trip_info.ROUTING_RULE_ID		:= FND_API.G_MISS_NUM;
6908         p_trip_info.APPEND_FLAG			:= FND_API.G_MISS_CHAR;
6909         p_trip_info.RANK_ID			:= FND_API.G_MISS_NUM;
6910 
6911 	x_trip_info := p_trip_info;
6912 
6913 END INITIALIZE_TRIP_REC;
6914 
6915 --
6916 END FTE_MLS_WRAPPER;