DBA Data[Home] [Help]

PACKAGE BODY: APPS.WSH_TRIPS_PUB

Source


1 PACKAGE BODY WSH_TRIPS_PUB as
2 /* $Header: WSHTRPBB.pls 120.1 2005/07/28 10:26:15 parkhj noship $ */
3 
4 --===================
5 -- CONSTANTS
6 --===================
7 G_PKG_NAME CONSTANT VARCHAR2(30) := 'WSH_TRIPS_PUB';
8 -- add your constants here if any
9 
10 --===================
11 -- PROCEDURES
12 --===================
13 
14 --========================================================================
15 -- PROCEDURE : Trip_Action         PUBLIC
16 --
17 -- PARAMETERS: p_api_version_number    known api version error number
18 --             p_init_msg_list         FND_API.G_TRUE to reset list
19 --             x_return_status         return status
20 --             x_msg_count             number of messages in the list
21 --             x_msg_data              text of messages
22 --             p_action_code           Trip action code. Valid action codes are
23 --                                     'PLAN','UNPLAN',
24 --                                     'WT-VOL'
25 --                                     'PICK-RELEASE'
26 --                                     'DELETE'
27 --		     p_trip_id               Trip identifier
28 --             p_trip_name             Trip name
29 --             p_wv_override_flag      Override flag for weight/volume calc
30 -- VERSION   : current version         1.0
31 --             initial version         1.0
32 -- COMMENT   : This procedure is used to perform an action specified in p_action_code
33 --             on an existing trip identified by p_trip_id or trip_name
34 --
35 --========================================================================
36 
37   PROCEDURE Trip_Action
38   ( p_api_version_number     IN   NUMBER,
39     p_init_msg_list          IN   VARCHAR2,
40     x_return_status          OUT NOCOPY   VARCHAR2,
41     x_msg_count              OUT NOCOPY   NUMBER,
42     x_msg_data               OUT NOCOPY   VARCHAR2,
43     p_action_code            IN   VARCHAR2,
44     p_trip_id                IN   NUMBER DEFAULT NULL,
45     p_trip_name              IN   VARCHAR2 DEFAULT NULL,
46     p_wv_override_flag       IN   VARCHAR2 DEFAULT 'N',
47     p_report_set_name        IN   varchar2 ) IS
48 
49   l_api_version_number CONSTANT NUMBER := 1.0;
50   l_api_name           CONSTANT VARCHAR2(30):= 'Trip_Action';
51   l_trip_out_rec       WSH_TRIPS_GRP.tripActionOutRecType;
52   l_action_prms        WSH_TRIPS_GRP.action_parameters_rectype;
53   l_entity_id_tab      wsh_util_core.id_tab_type;
54   l_num_warning        NUMBER := 0;
55   l_num_errors         NUMBER := 0;
56   l_return_status      varchar2(1000);
57   l_report_set_id      NUMBER;
58 
59 l_debug_on BOOLEAN;
60   --
61   l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.'
62                                                             || 'TRIP_ACTION';
63   trip_action_error EXCEPTION;
64 
65   l_trip_id               NUMBER := p_trip_id;
66 
67   BEGIN
68   --  Standard call to check for call compatibility
69      --
70      l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
71      --
72      IF l_debug_on IS NULL
73      THEN
74          l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
75      END IF;
76      --
77      IF l_debug_on THEN
78         wsh_debug_sv.push (l_module_name);
79         wsh_debug_sv.log (l_module_name,'p_api_version_number',
80                                                       p_api_version_number);
81         wsh_debug_sv.log (l_module_name,'p_init_msg_list',p_init_msg_list);
82         wsh_debug_sv.log (l_module_name,'p_action_code',p_action_code);
83         wsh_debug_sv.log (l_module_name,'p_trip_id',p_trip_id);
84         wsh_debug_sv.log (l_module_name,'p_trip_name',p_trip_name);
85         wsh_debug_sv.log (l_module_name,'p_wv_override_flag',
86                                                       p_wv_override_flag);
87         wsh_debug_sv.log (l_module_name,'p_report_set_name',
88                                                       p_report_set_name);
89      END IF;
90 
91      IF NOT FND_API.Compatible_API_Call
92          ( l_api_version_number
93          , p_api_version_number
94          , l_api_name
95          , G_PKG_NAME
96          )
97      THEN
98         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
99      END IF;
100 
101      --  Initialize message stack if required
102      IF FND_API.to_Boolean(p_init_msg_list) THEN
103         FND_MSG_PUB.initialize;
104      END IF;
105 
106   -- <begin procedure logic>
107 
108 
109      wsh_util_validate.validate_trip_name( l_trip_id,
110                                            p_trip_name,
111                                            x_return_status);
112 
113      IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
114         raise trip_action_error;
115      END IF;
116 
117      IF p_report_set_name IS NOT NULL
118       AND p_report_set_name <> fnd_api.G_MISS_CHAR
119       AND p_action_code = 'PRINT-DOC-SETS' THEN
120         WSH_UTIL_VALIDATE.validate_report_set(
121                                 p_report_set_id   => l_report_set_id,
122                                 p_report_set_name => p_report_set_name,
123                                 x_return_status   => x_return_status);
124 
125         IF l_debug_on THEN
126            wsh_debug_sv.log (l_module_name,'l_report_set_id',l_report_set_id);
127         END IF;
128 
129         IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
130            raise trip_action_error;
131         END IF;
132 
133         l_action_prms.report_set_id  := l_report_set_id;
134 
135      END IF;
136 
137      l_entity_id_tab(1) := l_trip_id;
138 
139      l_action_prms.action_code := p_action_code;
140      l_action_prms.caller      := 'WSH_API';
141 
142      l_action_prms.override_flag      := p_wv_override_flag;
143 
144      WSH_INTERFACE_GRP.Trip_Action(
145                       p_api_version_number => 1.0,
146                       p_init_msg_list      => FND_API.G_FALSE,
147                       p_commit             => FND_API.G_TRUE,
148                       p_entity_id_tab      => l_entity_id_tab,
149                       p_action_prms        => l_action_prms,
150                       x_trip_out_rec       => l_trip_out_rec,
151                       x_return_status      => l_return_status,
152                       x_msg_count          => x_msg_count,
153                       x_msg_data           => x_msg_data);
154 
155      wsh_util_core.api_post_call(p_return_status  =>l_return_status,
156                                x_num_warnings     =>l_num_warning,
157                                x_num_errors       =>l_num_errors);
158 
159      x_return_status := l_return_status;
160 
161      FND_MSG_PUB.Count_And_Get
162      ( p_count => x_msg_count
163      , p_data  => x_msg_data
164      ,p_encoded => FND_API.G_FALSE
165      );
166 
167     IF l_debug_on THEN
168          WSH_DEBUG_SV.pop(l_module_name);
169     END IF;
170 
171 
172   EXCEPTION
173 
174 	WHEN trip_action_error THEN
175 	   FND_MESSAGE.SET_NAME('WSH','WSH_OI_TRIP_ACTION_ERROR');
176 	   FND_MESSAGE.SET_TOKEN('TRIP_NAME', wsh_trips_pvt.get_name(l_trip_id));
177 	   FND_MESSAGE.SET_TOKEN('ACTION', wsh_util_core.get_action_meaning('TRIP',p_action_code));
178 	   wsh_util_core.add_message(x_return_status,l_module_name);
179            FND_MSG_PUB.Count_And_Get
180            ( p_count => x_msg_count
181            , p_data  => x_msg_data
182            ,p_encoded => FND_API.G_FALSE
183            );
184            IF l_debug_on THEN
185                 wsh_debug_sv.log (l_module_name,'EXCEPTION:trip_action_error');
186                 WSH_DEBUG_SV.pop(l_module_name);
187            END IF;
188 
189      WHEN FND_API.G_EXC_ERROR THEN
190         x_return_status := FND_API.G_RET_STS_ERROR;
191         --  Get message count and data
192         FND_MSG_PUB.Count_And_Get
193         ( p_count => x_msg_count
194         , p_data  => x_msg_data
195         ,p_encoded => FND_API.G_FALSE
196         );
197         IF l_debug_on THEN
198              wsh_debug_sv.log (l_module_name,'EXCEPTION:G_EXC_ERROR');
199              WSH_DEBUG_SV.pop(l_module_name);
200         END IF;
201 
202      WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
203         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
204         --  Get message count and data
205         FND_MSG_PUB.Count_And_Get
206         ( p_count => x_msg_count
207         , p_data  => x_msg_data
208         ,p_encoded => FND_API.G_FALSE
209         );
210         IF l_debug_on THEN
211              wsh_debug_sv.log (l_module_name,'EXCEPTION:G_RET_STS_UNEXP_ERROR');
212              WSH_DEBUG_SV.pop(l_module_name);
213         END IF;
214 
215      WHEN WSH_UTIL_CORE.G_EXC_WARNING THEN
216 
217         x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
218         --  Get message count and data
219         FND_MSG_PUB.Count_And_Get
220         ( p_count => x_msg_count
221         , p_data  => x_msg_data
222         ,p_encoded => FND_API.G_FALSE
223         );
224         IF l_debug_on THEN
225              wsh_debug_sv.log (l_module_name,'EXCEPTION:G_RET_STS_WARNING');
226              WSH_DEBUG_SV.pop(l_module_name);
227         END IF;
228 
229 
230      WHEN OTHERS THEN
231         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
232         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
233         THEN
234            FND_MSG_PUB.Add_Exc_Msg
235            ( G_PKG_NAME
236            , '_x_'
237            );
238         END IF;
239         --  Get message count and data
240         FND_MSG_PUB.Count_And_Get
241         ( p_count => x_msg_count
242         , p_data  => x_msg_data
243         ,p_encoded => FND_API.G_FALSE
244         );
245         IF l_debug_on THEN
246            wsh_debug_sv.log (l_module_name,'Others',substr(sqlerrm,1,200));
247            WSH_DEBUG_SV.pop(l_module_name);
248         END IF;
249 
250   END Trip_Action;
251 
252 
253 --========================================================================
254 -- PROCEDURE : Trip_Action         PUBLIC
255 --
256 -- PARAMETERS: p_api_version_number    known api version error number
257 --             p_init_msg_list         FND_API.G_TRUE to reset list
258 --             p_commit                FND_API.G_TRUE to commit
259 --             x_return_status         return status
260 --             x_msg_count             number of messages in the list
261 --             x_msg_data              text of messages
262 --             p_action_param_rec      Action Parameters Valid action codes are
263 --                                     'PLAN','UNPLAN',
264 --                                     'WT-VOL'
265 --                                     'PICK-RELEASE'
266 --                                     'DELETE'
267 --                                     'TRIP-CONFIRM'
268 --	       p_trip_id               Trip identifier
269 --             p_trip_name             Trip name
270 -- VERSION   : current version         1.0
271 --             initial version         1.0
272 -- COMMENT   : This procedure is used to perform an action specified in p_action_param_rec
273 --             on an existing trip identified by p_trip_id or trip_name
274 --
275 --========================================================================
276 
277   PROCEDURE Trip_Action
278   ( p_api_version_number     IN   NUMBER,
279     p_init_msg_list          IN   VARCHAR2,
280     p_commit                 IN   VARCHAR2,
281     x_return_status          OUT  NOCOPY   VARCHAR2,
282     x_msg_count              OUT  NOCOPY   NUMBER,
283     x_msg_data               OUT  NOCOPY   VARCHAR2,
284     p_action_param_rec       IN   WSH_TRIPS_PUB.Action_Param_Rectype,
285     p_trip_id                IN   NUMBER ,
286     p_trip_name              IN   VARCHAR2 ) IS
287 
288   l_api_version_number CONSTANT NUMBER := 1.0;
289   l_api_name           CONSTANT VARCHAR2(30):= 'Trip_Action';
290   l_trip_out_rec       WSH_TRIPS_GRP.tripActionOutRecType;
291   l_action_prms        WSH_TRIPS_GRP.action_parameters_rectype;
292   l_entity_id_tab      wsh_util_core.id_tab_type;
293   l_num_warning        NUMBER := 0;
294   l_num_errors         NUMBER := 0;
295   l_return_status      varchar2(1000);
296   l_report_set_id      NUMBER;
297 
298   l_debug_on BOOLEAN;
299   --
300   l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.'
301                                                             || 'TRIP_ACTION';
302   trip_action_error EXCEPTION;
303 
304   l_trip_id               NUMBER := p_trip_id;
305 
306   BEGIN
307   --  Standard call to check for call compatibility
308      --
309      l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
310      --
311      IF l_debug_on IS NULL
312      THEN
313          l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
314      END IF;
315      --
316      IF l_debug_on THEN
317         wsh_debug_sv.push (l_module_name);
318         wsh_debug_sv.log (l_module_name,'p_api_version_number', p_api_version_number);
319         wsh_debug_sv.log (l_module_name,'p_init_msg_list',p_init_msg_list);
320         wsh_debug_sv.log (l_module_name,'p_commit',p_commit);
321         wsh_debug_sv.log (l_module_name,'action_code',p_action_param_rec.action_code);
322         wsh_debug_sv.log (l_module_name,'organization_id',p_action_param_rec.organization_id);
323         wsh_debug_sv.log (l_module_name,'report_set_name',p_action_param_rec.report_set_name);
324         wsh_debug_sv.log (l_module_name,'report_set_id',p_action_param_rec.report_set_id);
325         wsh_debug_sv.log (l_module_name,'override_flag',p_action_param_rec.override_flag);
326         wsh_debug_sv.log (l_module_name,'actual_date',p_action_param_rec.actual_date);
327         wsh_debug_sv.log (l_module_name,'action_flag',p_action_param_rec.action_flag);
328         wsh_debug_sv.log (l_module_name,'autointransit_flag',p_action_param_rec.autointransit_flag);
329         wsh_debug_sv.log (l_module_name,'autoclose_flag',p_action_param_rec.autoclose_flag);
330         wsh_debug_sv.log (l_module_name,'stage_del_flag',p_action_param_rec.stage_del_flag);
331         wsh_debug_sv.log (l_module_name,'ship_method',p_action_param_rec.ship_method);
332         wsh_debug_sv.log (l_module_name,'bill_of_lading_flag',p_action_param_rec.bill_of_lading_flag);
333         wsh_debug_sv.log (l_module_name,'defer_interface_flag',p_action_param_rec.defer_interface_flag);
334         wsh_debug_sv.log (l_module_name,'actual_departure_date',p_action_param_rec.actual_departure_date);
335         wsh_debug_sv.log (l_module_name,'p_trip_id',p_trip_id);
336         wsh_debug_sv.log (l_module_name,'p_trip_name',p_trip_name);
337      END IF;
338 
339      IF NOT FND_API.Compatible_API_Call
340          ( l_api_version_number
341          , p_api_version_number
342          , l_api_name
343          , G_PKG_NAME
344          )
345      THEN
346         RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
347      END IF;
348 
349      --  Initialize message stack if required
350      IF FND_API.to_Boolean(p_init_msg_list) THEN
351         FND_MSG_PUB.initialize;
352      END IF;
353 
354   -- <begin procedure logic>
355 
356 
357      wsh_util_validate.validate_trip_name( l_trip_id,
358                                            p_trip_name,
359                                            x_return_status);
360 
361      IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
362         raise trip_action_error;
363      END IF;
364 
365 
366      IF p_action_param_rec.report_set_name IS NOT NULL
367       AND p_action_param_rec.report_set_name <> fnd_api.G_MISS_CHAR
368       AND p_action_param_rec.action_code = 'PRINT-DOC-SETS' THEN
369         WSH_UTIL_VALIDATE.validate_report_set(
370                                 p_report_set_id   => l_report_set_id,
371                                 p_report_set_name => p_action_param_rec.report_set_name,
372                                 x_return_status   => x_return_status);
373 
374 
375         IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
376            raise trip_action_error;
377         END IF;
378 
379         l_action_prms.report_set_id  := l_report_set_id;
380 
381      ELSE
382 
383         l_action_prms.report_set_id  := p_action_param_rec.report_set_id;
384 
385      END IF;
386 
387      IF l_debug_on THEN
388         wsh_debug_sv.log (l_module_name,'l_report_set_id',l_report_set_id);
389      END IF;
390 
391      l_entity_id_tab(1) := l_trip_id;
392      l_action_prms.action_code := p_action_param_rec.action_code;
393      l_action_prms.caller      := 'WSH_API';
394 
395      l_action_prms.organization_id       := p_action_param_rec.organization_id;
396      l_action_prms.override_flag         := p_action_param_rec.override_flag;
397      l_action_prms.actual_date           := p_action_param_rec.actual_date;
398      l_action_prms.action_flag           := p_action_param_rec.action_flag;
399      l_action_prms.autointransit_flag    := p_action_param_rec.autointransit_flag;
400      l_action_prms.autoclose_flag        := p_action_param_rec.autoclose_flag;
401      l_action_prms.stage_del_flag        := p_action_param_rec.stage_del_flag;
402      l_action_prms.ship_method           := p_action_param_rec.ship_method;
403      l_action_prms.bill_of_lading_flag   := p_action_param_rec.bill_of_lading_flag;
404      l_action_prms.defer_interface_flag  := p_action_param_rec.defer_interface_flag;
405      l_action_prms.actual_departure_date := p_action_param_rec.actual_departure_date;
406 
407      WSH_INTERFACE_GRP.Trip_Action(
408                       p_api_version_number => 1.0,
409                       p_init_msg_list      => FND_API.G_FALSE,
410                       p_commit             => FND_API.G_FALSE,
411                       p_entity_id_tab      => l_entity_id_tab,
412                       p_action_prms        => l_action_prms,
413                       x_trip_out_rec       => l_trip_out_rec,
414                       x_return_status      => l_return_status,
415                       x_msg_count          => x_msg_count,
416                       x_msg_data           => x_msg_data);
417 
418      wsh_util_core.api_post_call(p_return_status  =>l_return_status,
419                                x_num_warnings     =>l_num_warning,
420                                x_num_errors       =>l_num_errors);
421 
422      x_return_status := l_return_status;
423 
424      FND_MSG_PUB.Count_And_Get
425      ( p_count => x_msg_count
426      , p_data  => x_msg_data
427      ,p_encoded => FND_API.G_FALSE
428      );
429 
430     IF FND_API.to_boolean(p_commit) AND x_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS THEN
431        COMMIT;
432     END IF;
433 
434     IF l_debug_on THEN
435          WSH_DEBUG_SV.pop(l_module_name);
436     END IF;
437 
438 
439   EXCEPTION
440 
441 	WHEN trip_action_error THEN
442 	   FND_MESSAGE.SET_NAME('WSH','WSH_OI_TRIP_ACTION_ERROR');
443 	   FND_MESSAGE.SET_TOKEN('TRIP_NAME', wsh_trips_pvt.get_name(l_trip_id));
444 	   FND_MESSAGE.SET_TOKEN('ACTION',wsh_util_core.get_action_meaning('TRIP', p_action_param_rec.action_code));
445 	   wsh_util_core.add_message(x_return_status,l_module_name);
446            FND_MSG_PUB.Count_And_Get
447            ( p_count => x_msg_count
448            , p_data  => x_msg_data
449            ,p_encoded => FND_API.G_FALSE
450            );
451            IF l_debug_on THEN
452                 wsh_debug_sv.log (l_module_name,'EXCEPTION:trip_action_error');
453                 WSH_DEBUG_SV.pop(l_module_name);
454            END IF;
455 
456      WHEN FND_API.G_EXC_ERROR THEN
457         x_return_status := FND_API.G_RET_STS_ERROR;
458         --  Get message count and data
459         FND_MSG_PUB.Count_And_Get
460         ( p_count => x_msg_count
461         , p_data  => x_msg_data
462         ,p_encoded => FND_API.G_FALSE
463         );
464         IF l_debug_on THEN
465              wsh_debug_sv.log (l_module_name,'EXCEPTION:G_EXC_ERROR');
466              WSH_DEBUG_SV.pop(l_module_name);
467         END IF;
468 
469      WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
470         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
471         --  Get message count and data
472         FND_MSG_PUB.Count_And_Get
473         ( p_count => x_msg_count
474         , p_data  => x_msg_data
475         ,p_encoded => FND_API.G_FALSE
476         );
477         IF l_debug_on THEN
478              wsh_debug_sv.log (l_module_name,'EXCEPTION:G_RET_STS_UNEXP_ERROR');
479              WSH_DEBUG_SV.pop(l_module_name);
480         END IF;
481 
482      WHEN WSH_UTIL_CORE.G_EXC_WARNING THEN
483 
484         x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
485         --  Get message count and data
486         FND_MSG_PUB.Count_And_Get
487         ( p_count => x_msg_count
488         , p_data  => x_msg_data
489         ,p_encoded => FND_API.G_FALSE
490         );
491         IF l_debug_on THEN
492              wsh_debug_sv.log (l_module_name,'EXCEPTION:G_RET_STS_WARNING');
493              WSH_DEBUG_SV.pop(l_module_name);
494         END IF;
495 
496 
497      WHEN OTHERS THEN
498         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
499         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
500         THEN
501            FND_MSG_PUB.Add_Exc_Msg
502            ( G_PKG_NAME
503            , '_x_'
504            );
505         END IF;
506         --  Get message count and data
507         FND_MSG_PUB.Count_And_Get
508         ( p_count => x_msg_count
509         , p_data  => x_msg_data
510         ,p_encoded => FND_API.G_FALSE
511         );
512         IF l_debug_on THEN
513            wsh_debug_sv.log (l_module_name,'Others',substr(sqlerrm,1,200));
514            WSH_DEBUG_SV.pop(l_module_name);
515         END IF;
516 
517   END Trip_Action;
518 
519 
520 --Harmonizing Project **heali
521 PROCEDURE map_trippub_to_pvt(
522    p_pub_trip_rec IN WSH_TRIPS_PUB.TRIP_PUB_REC_TYPE,
523    x_pvt_trip_rec OUT NOCOPY WSH_TRIPS_PVT.TRIP_REC_TYPE,
524    x_return_status OUT NOCOPY VARCHAR2) IS
525 
526 l_debug_on BOOLEAN;
527 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'MAP_TRIPPUB_TO_GRP';
528 
529 l_return_status VARCHAR2(1);
530 l_num_warnings NUMBER;
531 l_num_errors   NUMBER;
532 l_freight_terms_code  VARCHAR2(30);
533 
534 BEGIN
535    --
536    --
537    l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
538    --
539    IF l_debug_on IS NULL
540    THEN
541        l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
542    END IF;
543    --
544    IF l_debug_on THEN
545        WSH_DEBUG_SV.push(l_module_name);
546        WSH_DEBUG_SV.log(l_module_name,'p_pub_trip_rec.TRIP_ID',p_pub_trip_rec.TRIP_ID);
547        WSH_DEBUG_SV.log(l_module_name,'p_pub_trip_rec.NAME',p_pub_trip_rec.NAME);
548    END IF;
549    --
550   x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
551 
552   x_pvt_trip_rec.TRIP_ID					  := p_pub_trip_rec.TRIP_ID;
553   x_pvt_trip_rec.NAME						 := p_pub_trip_rec.NAME;
554   x_pvt_trip_rec.PLANNED_FLAG				 := FND_API.G_MISS_CHAR;
555   x_pvt_trip_rec.ARRIVE_AFTER_TRIP_ID		 := p_pub_trip_rec.ARRIVE_AFTER_TRIP_ID;
556   x_pvt_trip_rec.STATUS_CODE				  := FND_API.G_MISS_CHAR;
557   x_pvt_trip_rec.VEHICLE_ITEM_ID			  := p_pub_trip_rec.VEHICLE_ITEM_ID;
558   x_pvt_trip_rec.VEHICLE_ORGANIZATION_ID	  := p_pub_trip_rec.VEHICLE_ORGANIZATION_ID;
559   x_pvt_trip_rec.VEHICLE_NUMBER			   := p_pub_trip_rec.VEHICLE_NUMBER;
560   x_pvt_trip_rec.VEHICLE_NUM_PREFIX		   := p_pub_trip_rec.VEHICLE_NUM_PREFIX;
561   x_pvt_trip_rec.CARRIER_ID				   := p_pub_trip_rec.CARRIER_ID;
562   x_pvt_trip_rec.SHIP_METHOD_CODE			 := p_pub_trip_rec.SHIP_METHOD_CODE;
563   x_pvt_trip_rec.ROUTE_ID					 := p_pub_trip_rec.ROUTE_ID;
564   x_pvt_trip_rec.ROUTING_INSTRUCTIONS		 := p_pub_trip_rec.ROUTING_INSTRUCTIONS;
565   x_pvt_trip_rec.ATTRIBUTE_CATEGORY		   := p_pub_trip_rec.ATTRIBUTE_CATEGORY;
566   x_pvt_trip_rec.ATTRIBUTE1				   := p_pub_trip_rec.ATTRIBUTE1;
567   x_pvt_trip_rec.ATTRIBUTE2				   := p_pub_trip_rec.ATTRIBUTE2;
568   x_pvt_trip_rec.ATTRIBUTE3				   := p_pub_trip_rec.ATTRIBUTE3;
569   x_pvt_trip_rec.ATTRIBUTE4				   := p_pub_trip_rec.ATTRIBUTE4;
570   x_pvt_trip_rec.ATTRIBUTE5				   := p_pub_trip_rec.ATTRIBUTE5;
571   x_pvt_trip_rec.ATTRIBUTE6				   := p_pub_trip_rec.ATTRIBUTE6;
572   x_pvt_trip_rec.ATTRIBUTE7				   := p_pub_trip_rec.ATTRIBUTE7;
573   x_pvt_trip_rec.ATTRIBUTE8				   := p_pub_trip_rec.ATTRIBUTE8;
574   x_pvt_trip_rec.ATTRIBUTE9				   := p_pub_trip_rec.ATTRIBUTE9;
575   x_pvt_trip_rec.ATTRIBUTE10				  := p_pub_trip_rec.ATTRIBUTE10;
576   x_pvt_trip_rec.ATTRIBUTE11				  := p_pub_trip_rec.ATTRIBUTE11;
577   x_pvt_trip_rec.ATTRIBUTE12				  := p_pub_trip_rec.ATTRIBUTE12;
578   x_pvt_trip_rec.ATTRIBUTE13				  := p_pub_trip_rec.ATTRIBUTE13;
579   x_pvt_trip_rec.ATTRIBUTE14				  := p_pub_trip_rec.ATTRIBUTE14;
580   x_pvt_trip_rec.ATTRIBUTE15				  := p_pub_trip_rec.ATTRIBUTE15;
581   x_pvt_trip_rec.CREATION_DATE				:= p_pub_trip_rec.CREATION_DATE;
582   x_pvt_trip_rec.CREATED_BY				   := p_pub_trip_rec.CREATED_BY;
583   x_pvt_trip_rec.LAST_UPDATE_DATE			 := p_pub_trip_rec.LAST_UPDATE_DATE;
584   x_pvt_trip_rec.LAST_UPDATED_BY			  := p_pub_trip_rec.LAST_UPDATED_BY;
585   x_pvt_trip_rec.LAST_UPDATE_LOGIN			:= p_pub_trip_rec.LAST_UPDATE_LOGIN;
586   x_pvt_trip_rec.PROGRAM_APPLICATION_ID	   := p_pub_trip_rec.PROGRAM_APPLICATION_ID;
587   x_pvt_trip_rec.PROGRAM_ID				   := p_pub_trip_rec.PROGRAM_ID;
588   x_pvt_trip_rec.PROGRAM_UPDATE_DATE		  := p_pub_trip_rec.PROGRAM_UPDATE_DATE;
589   x_pvt_trip_rec.REQUEST_ID				   := p_pub_trip_rec.REQUEST_ID;
590   x_pvt_trip_rec.SERVICE_LEVEL				:= p_pub_trip_rec.SERVICE_LEVEL;
591   x_pvt_trip_rec.MODE_OF_TRANSPORT			:= p_pub_trip_rec.MODE_OF_TRANSPORT;
592 
593   IF p_pub_trip_rec.freight_terms_name <> FND_API.G_MISS_CHAR
594      AND p_pub_trip_rec.freight_terms_code = FND_API.G_MISS_CHAR THEN
595            --
596       l_freight_terms_code := NULL;
597       wsh_util_validate.validate_freight_terms(
598         p_freight_terms_code  => l_freight_terms_code,
599         p_freight_terms_name  => p_pub_trip_rec.freight_terms_name,
600         x_return_status       => l_return_status);
601       --
602       IF l_debug_on THEN
603         wsh_debug_sv.log(l_module_name,'Return Status After Calling validate_freight_terms',l_return_status);
604       END IF;
605       --
606       WSH_UTIL_CORE.api_post_call(
607         p_return_status     => l_return_status,
608         x_num_warnings      => l_num_warnings,
609         x_num_errors        => l_num_errors);
610       --
611   ELSE
612      IF p_pub_trip_rec.freight_terms_name IS NULL
613         AND p_pub_trip_rec.freight_Terms_code = FND_API.G_MISS_CHAR THEN
614        l_freight_terms_code := NULL;
615      ELSE
616        l_freight_terms_code := p_pub_trip_rec.freight_terms_code;
617      END IF;
618   END IF;
619 
620   x_pvt_trip_rec.FREIGHT_TERMS_CODE		   := l_freight_terms_code;
621   x_pvt_trip_rec.CONSOLIDATION_ALLOWED		:= FND_API.G_MISS_CHAR;
622   x_pvt_trip_rec.LOAD_TENDER_STATUS		   := FND_API.G_MISS_CHAR;
623   x_pvt_trip_rec.ROUTE_LANE_ID				:= FND_API.G_MISS_NUM;
624   x_pvt_trip_rec.LANE_ID					  := FND_API.G_MISS_NUM;
625   x_pvt_trip_rec.SCHEDULE_ID				  := FND_API.G_MISS_NUM;
626   x_pvt_trip_rec.BOOKING_NUMBER			   := FND_API.G_MISS_CHAR;
627   --x_pvt_trip_rec.ROWID				:= FND_API.G_MISS_CHAR;
628   x_pvt_trip_rec.ARRIVE_AFTER_TRIP_NAME	   := p_pub_trip_rec.ARRIVE_AFTER_TRIP_NAME;
629   x_pvt_trip_rec.SHIP_METHOD_NAME			 := p_pub_trip_rec.SHIP_METHOD_NAME;
630   x_pvt_trip_rec.VEHICLE_ITEM_DESC			:= p_pub_trip_rec.VEHICLE_ITEM_DESC;
631   x_pvt_trip_rec.VEHICLE_ORGANIZATION_CODE	:= p_pub_trip_rec.VEHICLE_ORGANIZATION_CODE;
632   x_pvt_trip_rec.OPERATOR	:= p_pub_trip_rec.OPERATOR;
633   x_pvt_trip_rec.SEAL_CODE      := p_pub_trip_rec.SEAL_CODE;
634   x_pvt_trip_rec.CARRIER_REFERENCE_NUMBER := p_pub_trip_rec.CARRIER_REFERENCE_NUMBER;
635   x_pvt_trip_rec.CONSIGNEE_CARRIER_AC_NO := p_pub_trip_rec.CONSIGNEE_CARRIER_AC_NO;
636 
637   IF l_debug_on THEN
638       WSH_DEBUG_SV.pop(l_module_name);
639   END IF;
640   --
641 EXCEPTION
642      WHEN FND_API.G_EXC_ERROR THEN
643         x_return_status := FND_API.G_RET_STS_ERROR;
644         -- caller will handle this exception
645         IF l_debug_on THEN
646            WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
647            WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
648         END IF;
649 --
650      WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
651         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
652         -- caller will handle this exception
653 
654         IF l_debug_on THEN
655            WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_UNEXPECTED_ERROR exception has occured.',WSH_DEBUG_SV.C_EXCEP_LEVEL);
656            WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_UNEXPECTED_ERROR');
657         END IF;
658 --
659 
660   WHEN OTHERS THEN
661 	WSH_UTIL_CORE.DEFAULT_HANDLER('WSH_FTE_INTEGRATION.map_trippub_to_pvt',l_module_name);
662 	x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
663 	--
664 	IF l_debug_on THEN
665 	    WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
666 	    WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
667 	END IF;
668 	--
669 END;
670 
671 
672 --========================================================================
673 -- PROCEDURE : Create_Update_Trip      PUBLIC
674 --
675 -- PARAMETERS: p_api_version_number    known api versionerror buffer
676 --             p_init_msg_list         FND_API.G_TRUE to reset list
677 --             x_return_status         return status
678 --             x_msg_count             number of messages in the list
679 --             x_msg_data              text of messages
680 --		     p_trip_info             Attributes for the trip entity
681 --             p_trip_name             Trip name for update
682 --  	          x_trip_id               Trip id of new trip
683 --  	          x_trip_name             Trip name of new trip
684 -- VERSION   : current version         1.0
685 --             initial version         1.0
686 -- COMMENT   : Creates or updates a record in wsh_trips table with information
687 --             specified in p_trip_info
688 --========================================================================
689 
690 PROCEDURE Create_Update_Trip
691   ( p_api_version_number     IN   NUMBER,
692     p_init_msg_list          IN   VARCHAR2,
693     x_return_status          OUT NOCOPY   VARCHAR2,
694     x_msg_count              OUT NOCOPY   NUMBER,
695     x_msg_data               OUT NOCOPY   VARCHAR2,
696     p_action_code            IN   VARCHAR2,
697     p_trip_info          IN OUT NOCOPY   Trip_Pub_Rec_Type,
698     p_trip_name              IN   VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
699     x_trip_id                OUT NOCOPY   NUMBER,
700     x_trip_name              OUT NOCOPY   VARCHAR2) IS
701 
702 l_api_version_number CONSTANT NUMBER := 1.0;
703 l_api_name           CONSTANT VARCHAR2(30):= 'Create_Update_Trip';
704 
705 l_debug_on BOOLEAN;
706 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'Create_Update_Trip';
707 
708 l_commit	VARCHAR2(1):='F';
709 
710 l_pvt_trip_rec          WSH_TRIPS_PVT.TRIP_REC_TYPE;
711 l_trip_info_tab         WSH_TRIPS_PVT.Trip_Attr_Tbl_Type;
712 l_out_tab               WSH_TRIPS_GRP.trip_out_tab_type;
713 l_in_rec                WSH_TRIPS_GRP.TripInRecType;
714 
715 BEGIN
716    --
717    l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
718    --
719    IF l_debug_on IS NULL
720    THEN
721        l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
722    END IF;
723    --
724    IF l_debug_on THEN
725       wsh_debug_sv.push (l_module_name, 'Create_Update_Trip');
726    END IF;
727 
728    IF NOT FND_API.Compatible_API_Call (l_api_version_number,p_api_version_number ,l_api_name ,G_PKG_NAME) THEN
729       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
730    END IF;
731 
732    IF FND_API.to_Boolean(p_init_msg_list) THEN
733       FND_MSG_PUB.initialize;
734    END IF;
735 
736    map_trippub_to_pvt (
737                 p_pub_trip_rec => p_trip_info,
738                 x_pvt_trip_rec => l_pvt_trip_rec,
739                 x_return_status => x_return_status);
740 
741    IF ( x_return_status <>  WSH_UTIL_CORE.G_RET_STS_SUCCESS ) THEN
742       raise FND_API.G_EXC_ERROR;
743    END IF;
744 
745    l_in_rec.caller:='WSH_PUB';
746    l_in_rec.phase:= 1;
747    l_in_rec.action_code:= p_action_code;
748 
749    IF (p_trip_name IS NOT NULL) AND (p_trip_name <> FND_API.G_MISS_CHAR) THEN
750       l_pvt_trip_rec.name := p_trip_name;
751    END IF;
752 
753    IF (l_pvt_trip_rec.name IS NOT NULL AND l_pvt_trip_rec.name <>  FND_API.G_MISS_CHAR
754                                        and l_in_rec.action_code <> 'CREATE') THEN
755       wsh_util_validate.validate_trip_name( l_pvt_trip_rec.trip_id,
756                                          l_pvt_trip_rec.name,
757                                          x_return_status);
758 
759        IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
760           raise FND_API.G_EXC_ERROR;
761        END IF;
762    END IF;
763 
764    IF (l_pvt_trip_rec.arrive_after_trip_name IS NOT NULL
765                                          AND l_pvt_trip_rec.arrive_after_trip_name <> FND_API.G_MISS_CHAR) THEN
766       wsh_util_validate.validate_trip_name( l_pvt_trip_rec.arrive_after_trip_id,
767                                          l_pvt_trip_rec.arrive_after_trip_name,
768                                          x_return_status);
769 
770       IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
771          raise FND_API.G_EXC_ERROR;
772       END IF;
773    END IF;
774 
775    l_trip_info_tab(1):= l_pvt_trip_rec;
776 
777    WSH_INTERFACE_GRP.Create_Update_Trip(
778         p_api_version_number     => p_api_version_number,
779         p_init_msg_list          => p_init_msg_list,
780         p_commit                 => l_commit,
781         x_return_status          => x_return_status,
782         x_msg_count              => x_msg_count,
783         x_msg_data               => x_msg_data,
784         p_trip_info_tab          => l_trip_info_tab,
785         p_In_rec                 => l_In_rec,
786         x_Out_tab                => l_Out_Tab);
787 
788     IF l_debug_on THEN
789        wsh_debug_sv.log (l_module_name,'WSH_INTERFACE_GRP.Create_Update_Trip x_return_status',x_return_status);
790     END IF;
791     IF (x_return_status = WSH_UTIL_CORE.G_RET_STS_SUCCESS and l_Out_Tab.count > 0) THEN
792        x_trip_id := l_out_tab(l_out_tab.FIRST).trip_id;
793        x_trip_name := l_out_tab(l_out_tab.FIRST).trip_name;
794     END IF;
795 
796    FND_MSG_PUB.Count_And_Get (
797        p_count => x_msg_count,
798        p_data  => x_msg_data);
799 
800  IF l_debug_on THEN
801     WSH_DEBUG_SV.pop(l_module_name);
802  END IF;
803 
804 EXCEPTION
805   WHEN FND_API.G_EXC_ERROR THEN
806      x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR ;
807      FND_MSG_PUB.Count_And_Get (
808                      p_count  => x_msg_count,
809                      p_data  =>  x_msg_data,
810                      p_encoded => FND_API.G_FALSE);
811      IF l_debug_on THEN
812       WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_ERROR exception has occured.',
813                                          WSH_DEBUG_SV.C_EXCEP_LEVEL);
814       WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
815      END IF;
816 
817   WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
818      x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR ;
819      FND_MSG_PUB.Count_And_Get (
820                      p_count  => x_msg_count,
821                      p_data  =>  x_msg_data,
822                      p_encoded => FND_API.G_FALSE);
823      IF l_debug_on THEN
824       WSH_DEBUG_SV.logmsg(l_module_name,'FND_API.G_EXC_UNEXPECTED_ERROR exception has occured.',
825                                          WSH_DEBUG_SV.C_EXCEP_LEVEL);
826       WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_UNEXPECTED_ERROR');
827      END IF;
828 
829   WHEN WSH_UTIL_CORE.G_EXC_WARNING THEN
830      x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
831      FND_MSG_PUB.Count_And_Get (
832                      p_count  => x_msg_count,
833                      p_data  =>  x_msg_data,
834                      p_encoded => FND_API.G_FALSE);
835      IF l_debug_on THEN
836       WSH_DEBUG_SV.logmsg(l_module_name,'WSH_UTIL_CORE.G_EXC_WARNING exception has occured.',
837                                          WSH_DEBUG_SV.C_EXCEP_LEVEL);
838       WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:WSH_UTIL_CORE.G_EXC_WARNING');
839      END IF;
840 
841   WHEN OTHERS THEN
842       x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR ;
843       wsh_util_core.default_handler ('WSH_TRIP_STOPS_GRP.CREATE_UPDATE_STOP');
844       FND_MSG_PUB.Count_And_Get (
845                      p_count  => x_msg_count,
846                      p_data  =>  x_msg_data,
847                      p_encoded => FND_API.G_FALSE);
848       IF l_debug_on THEN
849          WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '||
850                                                      SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
851          WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
852       END IF;
853 
854 END Create_Update_Trip;
855 --Harmonizing Project **heali
856 
857 
858 END WSH_TRIPS_PUB;