DBA Data[Home] [Help]

PACKAGE BODY: APPS.WSH_DELIVERIES_PUB

Source


1 PACKAGE BODY WSH_DELIVERIES_PUB as
2 /* $Header: WSHDEPBB.pls 120.1 2007/01/05 00:27:45 anxsharm noship $ */
3 
4 --===================
5 -- CONSTANTS
6 --===================
7 G_PKG_NAME CONSTANT VARCHAR2(30) := 'WSH_DELIVERIES_PUB';
8 -- add your constants here if any
9 
10 --===================
11 -- PROCEDURES
12 --===================
13 
14 PROCEDURE Rtrim_delivery (
15              p_in_rec  IN  WSH_DELIVERIES_PUB.Delivery_Pub_Rec_Type,
16              p_out_rec OUT NOCOPY  WSH_DELIVERIES_PUB.Delivery_Pub_Rec_Type)
17  IS
18   l_debug_on BOOLEAN;
19   l_module_name                 CONSTANT VARCHAR2(100) := 'wsh.plsql.' ||
20                             G_PKG_NAME || '.' || 'Rtrim_delivery';
21 BEGIN
22 
23    l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
24    --
25    IF l_debug_on IS NULL
26    THEN
27        l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
28    END IF;
29    --
30    IF l_debug_on THEN
31       wsh_debug_sv.push (l_module_name, 'Rtrim_delivery');
32    END IF;
33 
34    p_out_rec := p_in_rec;
35 
36 
37    p_out_rec.NAME                            :=RTRIM(p_in_rec.NAME);
38    p_out_rec.DELIVERY_TYPE                   :=RTRIM(p_in_rec.DELIVERY_TYPE);
39    p_out_rec.LOADING_ORDER_FLAG              :=RTRIM(p_in_rec.LOADING_ORDER_FLAG);
40    p_out_rec.LOADING_ORDER_DESC              :=RTRIM(p_in_rec.LOADING_ORDER_DESC);
41    p_out_rec.INITIAL_PICKUP_LOCATION_CODE    :=RTRIM(p_in_rec.INITIAL_PICKUP_LOCATION_CODE);
42    p_out_rec.ORGANIZATION_CODE               :=RTRIM(p_in_rec.ORGANIZATION_CODE);
43    p_out_rec.ULTIMATE_DROPOFF_LOCATION_CODE  :=RTRIM(p_in_rec.ULTIMATE_DROPOFF_LOCATION_CODE);
44    p_out_rec.CUSTOMER_NUMBER                 :=RTRIM(p_in_rec.CUSTOMER_NUMBER);
45    p_out_rec.INTMED_SHIP_TO_LOCATION_CODE    :=RTRIM(p_in_rec.INTMED_SHIP_TO_LOCATION_CODE);
46    p_out_rec.POOLED_SHIP_TO_LOCATION_CODE    :=RTRIM(p_in_rec.POOLED_SHIP_TO_LOCATION_CODE);
47    p_out_rec.CARRIER_CODE                    :=RTRIM(p_in_rec.CARRIER_CODE);
48    p_out_rec.SHIP_METHOD_CODE                :=RTRIM(p_in_rec.SHIP_METHOD_CODE);
49    p_out_rec.SHIP_METHOD_NAME                :=RTRIM(p_in_rec.SHIP_METHOD_NAME);
50    p_out_rec.FREIGHT_TERMS_CODE              :=RTRIM(p_in_rec.FREIGHT_TERMS_CODE);
51    p_out_rec.FREIGHT_TERMS_NAME              :=RTRIM(p_in_rec.FREIGHT_TERMS_NAME);
52    p_out_rec.FOB_CODE                        :=RTRIM(p_in_rec.FOB_CODE);
53    p_out_rec.FOB_NAME                        :=RTRIM(p_in_rec.FOB_NAME);
54    p_out_rec.FOB_LOCATION_CODE               :=RTRIM(p_in_rec.FOB_LOCATION_CODE);
55    p_out_rec.WAYBILL                         :=RTRIM(p_in_rec.WAYBILL);
56    p_out_rec.DOCK_CODE                       :=RTRIM(p_in_rec.DOCK_CODE);
57    p_out_rec.ACCEPTANCE_FLAG                 :=RTRIM(p_in_rec.ACCEPTANCE_FLAG);
58    p_out_rec.ACCEPTED_BY                     :=RTRIM(p_in_rec.ACCEPTED_BY);
59    p_out_rec.ACKNOWLEDGED_BY                 :=RTRIM(p_in_rec.ACKNOWLEDGED_BY);
60    p_out_rec.CONFIRMED_BY                    :=RTRIM(p_in_rec.CONFIRMED_BY);
61    p_out_rec.ASN_STATUS_CODE                 :=RTRIM(p_in_rec.ASN_STATUS_CODE);
62    p_out_rec.WEIGHT_UOM_CODE                 :=RTRIM(p_in_rec.WEIGHT_UOM_CODE);
63    p_out_rec.WEIGHT_UOM_DESC                 :=RTRIM(p_in_rec.WEIGHT_UOM_DESC);
64    p_out_rec.VOLUME_UOM_CODE                 :=RTRIM(p_in_rec.VOLUME_UOM_CODE);
65    p_out_rec.VOLUME_UOM_DESC                 :=RTRIM(p_in_rec.VOLUME_UOM_DESC);
66    p_out_rec.ADDITIONAL_SHIPMENT_INFO        :=RTRIM(p_in_rec.ADDITIONAL_SHIPMENT_INFO);
67    p_out_rec.CURRENCY_CODE                   :=RTRIM(p_in_rec.CURRENCY_CODE);
68    p_out_rec.CURRENCY_NAME                   :=RTRIM(p_in_rec.CURRENCY_NAME);
69    p_out_rec.ATTRIBUTE_CATEGORY              :=RTRIM(p_in_rec.ATTRIBUTE_CATEGORY);
70    p_out_rec.ATTRIBUTE1                      :=RTRIM(p_in_rec.ATTRIBUTE1);
71    p_out_rec.ATTRIBUTE2                      :=RTRIM(p_in_rec.ATTRIBUTE2);
72    p_out_rec.ATTRIBUTE3                      :=RTRIM(p_in_rec.ATTRIBUTE3);
73    p_out_rec.ATTRIBUTE4                      :=RTRIM(p_in_rec.ATTRIBUTE4);
74    p_out_rec.ATTRIBUTE5                      :=RTRIM(p_in_rec.ATTRIBUTE5);
75    p_out_rec.ATTRIBUTE6                      :=RTRIM(p_in_rec.ATTRIBUTE6);
76    p_out_rec.ATTRIBUTE7                      :=RTRIM(p_in_rec.ATTRIBUTE7);
77    p_out_rec.ATTRIBUTE8                      :=RTRIM(p_in_rec.ATTRIBUTE8);
78    p_out_rec.ATTRIBUTE9                      :=RTRIM(p_in_rec.ATTRIBUTE9);
79    p_out_rec.ATTRIBUTE10                     :=RTRIM(p_in_rec.ATTRIBUTE10);
80    p_out_rec.ATTRIBUTE11                     :=RTRIM(p_in_rec.ATTRIBUTE11);
81    p_out_rec.ATTRIBUTE12                     :=RTRIM(p_in_rec.ATTRIBUTE12);
82    p_out_rec.ATTRIBUTE13                     :=RTRIM(p_in_rec.ATTRIBUTE13);
83    p_out_rec.ATTRIBUTE14                     :=RTRIM(p_in_rec.ATTRIBUTE14);
84    p_out_rec.ATTRIBUTE15                     :=RTRIM(p_in_rec.ATTRIBUTE15);
85    p_out_rec.TP_ATTRIBUTE_CATEGORY           :=RTRIM(p_in_rec.TP_ATTRIBUTE_CATEGORY);
86    p_out_rec.TP_ATTRIBUTE1                   :=RTRIM(p_in_rec.TP_ATTRIBUTE1);
87    p_out_rec.TP_ATTRIBUTE2                   :=RTRIM(p_in_rec.TP_ATTRIBUTE2);
88    p_out_rec.TP_ATTRIBUTE3                   :=RTRIM(p_in_rec.TP_ATTRIBUTE3);
89    p_out_rec.TP_ATTRIBUTE4                   :=RTRIM(p_in_rec.TP_ATTRIBUTE4);
90    p_out_rec.TP_ATTRIBUTE5                   :=RTRIM(p_in_rec.TP_ATTRIBUTE5);
91    p_out_rec.TP_ATTRIBUTE6                   :=RTRIM(p_in_rec.TP_ATTRIBUTE6);
92    p_out_rec.TP_ATTRIBUTE7                   :=RTRIM(p_in_rec.TP_ATTRIBUTE7);
93    p_out_rec.TP_ATTRIBUTE8                   :=RTRIM(p_in_rec.TP_ATTRIBUTE8);
94    p_out_rec.TP_ATTRIBUTE9                   :=RTRIM(p_in_rec.TP_ATTRIBUTE9);
95    p_out_rec.TP_ATTRIBUTE10                  :=RTRIM(p_in_rec.TP_ATTRIBUTE10);
96    p_out_rec.TP_ATTRIBUTE11                  :=RTRIM(p_in_rec.TP_ATTRIBUTE11);
97    p_out_rec.TP_ATTRIBUTE12                  :=RTRIM(p_in_rec.TP_ATTRIBUTE12);
98    p_out_rec.TP_ATTRIBUTE13                  :=RTRIM(p_in_rec.TP_ATTRIBUTE13);
99    p_out_rec.TP_ATTRIBUTE14                  :=RTRIM(p_in_rec.TP_ATTRIBUTE14);
100    p_out_rec.TP_ATTRIBUTE15                  :=RTRIM(p_in_rec.TP_ATTRIBUTE15);
101    p_out_rec.GLOBAL_ATTRIBUTE_CATEGORY       :=RTRIM(p_in_rec.GLOBAL_ATTRIBUTE_CATEGORY);
102    p_out_rec.GLOBAL_ATTRIBUTE1               :=RTRIM(p_in_rec.GLOBAL_ATTRIBUTE1);
103    p_out_rec.GLOBAL_ATTRIBUTE2               :=RTRIM(p_in_rec.GLOBAL_ATTRIBUTE2);
104    p_out_rec.GLOBAL_ATTRIBUTE3               :=RTRIM(p_in_rec.GLOBAL_ATTRIBUTE3);
105    p_out_rec.GLOBAL_ATTRIBUTE4               :=RTRIM(p_in_rec.GLOBAL_ATTRIBUTE4);
106    p_out_rec.GLOBAL_ATTRIBUTE5               :=RTRIM(p_in_rec.GLOBAL_ATTRIBUTE5);
107    p_out_rec.GLOBAL_ATTRIBUTE6               :=RTRIM(p_in_rec.GLOBAL_ATTRIBUTE6);
108    p_out_rec.GLOBAL_ATTRIBUTE7               :=RTRIM(p_in_rec.GLOBAL_ATTRIBUTE7);
109    p_out_rec.GLOBAL_ATTRIBUTE8               :=RTRIM(p_in_rec.GLOBAL_ATTRIBUTE8);
110    p_out_rec.GLOBAL_ATTRIBUTE9               :=RTRIM(p_in_rec.GLOBAL_ATTRIBUTE9);
111    p_out_rec.GLOBAL_ATTRIBUTE10              :=RTRIM(p_in_rec.GLOBAL_ATTRIBUTE10);
112    p_out_rec.GLOBAL_ATTRIBUTE11              :=RTRIM(p_in_rec.GLOBAL_ATTRIBUTE11);
113    p_out_rec.GLOBAL_ATTRIBUTE12              :=RTRIM(p_in_rec.GLOBAL_ATTRIBUTE12);
114    p_out_rec.GLOBAL_ATTRIBUTE13              :=RTRIM(p_in_rec.GLOBAL_ATTRIBUTE13);
115    p_out_rec.GLOBAL_ATTRIBUTE14              :=RTRIM(p_in_rec.GLOBAL_ATTRIBUTE14);
116    p_out_rec.GLOBAL_ATTRIBUTE15              :=RTRIM(p_in_rec.GLOBAL_ATTRIBUTE15);
117    p_out_rec.GLOBAL_ATTRIBUTE16              :=RTRIM(p_in_rec.GLOBAL_ATTRIBUTE16);
118    p_out_rec.GLOBAL_ATTRIBUTE17              :=RTRIM(p_in_rec.GLOBAL_ATTRIBUTE17);
119    p_out_rec.GLOBAL_ATTRIBUTE18              :=RTRIM(p_in_rec.GLOBAL_ATTRIBUTE18);
120    p_out_rec.GLOBAL_ATTRIBUTE19              :=RTRIM(p_in_rec.GLOBAL_ATTRIBUTE19);
121    p_out_rec.GLOBAL_ATTRIBUTE20              :=RTRIM(p_in_rec.GLOBAL_ATTRIBUTE20);
122    p_out_rec.COD_CURRENCY_CODE               :=RTRIM(p_in_rec.COD_CURRENCY_CODE);
123    p_out_rec.COD_REMIT_TO                    :=RTRIM(p_in_rec.COD_REMIT_TO);
124    p_out_rec.COD_CHARGE_PAID_BY              :=RTRIM(p_in_rec.COD_CHARGE_PAID_BY);
125    p_out_rec.PROBLEM_CONTACT_REFERENCE       :=RTRIM(p_in_rec.PROBLEM_CONTACT_REFERENCE);
126    p_out_rec.PORT_OF_LOADING                 :=RTRIM(p_in_rec.PORT_OF_LOADING);
127    p_out_rec.PORT_OF_DISCHARGE               :=RTRIM(p_in_rec.PORT_OF_DISCHARGE);
128    p_out_rec.FTZ_NUMBER                      :=RTRIM(p_in_rec.FTZ_NUMBER);
129    p_out_rec.ROUTED_EXPORT_TXN               :=RTRIM(p_in_rec.ROUTED_EXPORT_TXN);
130    p_out_rec.ENTRY_NUMBER                    :=RTRIM(p_in_rec.ENTRY_NUMBER);
131    p_out_rec.ROUTING_INSTRUCTIONS            :=RTRIM(p_in_rec.ROUTING_INSTRUCTIONS);
132    p_out_rec.IN_BOND_CODE                    :=RTRIM(p_in_rec.IN_BOND_CODE);
133    p_out_rec.SHIPPING_MARKS                  :=RTRIM(p_in_rec.SHIPPING_MARKS);
134    p_out_rec.SERVICE_LEVEL                   :=RTRIM(p_in_rec.SERVICE_LEVEL);
135    p_out_rec.MODE_OF_TRANSPORT               :=RTRIM(p_in_rec.MODE_OF_TRANSPORT);
136    p_out_rec.ASSIGNED_TO_FTE_TRIPS           :=RTRIM(p_in_rec.ASSIGNED_TO_FTE_TRIPS);
137    p_out_rec.AUTO_SC_EXCLUDE_FLAG            :=RTRIM(p_in_rec.AUTO_SC_EXCLUDE_FLAG);
138    p_out_rec.AUTO_AP_EXCLUDE_FLAG            :=RTRIM(p_in_rec.AUTO_AP_EXCLUDE_FLAG);
139 
140 
141    IF l_debug_on THEN
142       WSH_DEBUG_SV.pop(l_module_name);
143    END IF;
144 
145 EXCEPTION
146 
147    WHEN OTHERS THEN
148       wsh_util_core.default_handler (
149         'WSH_TRIP_STOPS_GRP.Rtrim_delivery', l_module_name);
150       IF l_debug_on THEN
151          WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured.'||
152          ' Oracle error message is '|| SQLERRM,
153                                           WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
154          WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
155      END IF;
156       RAISE;
157 
158 END Rtrim_delivery;
159 
160 
161 --========================================================================
162 -- PROCEDURE : Validate_Delivery         PRIVATE
163 --
164 -- PARAMETERS: p_delivery_info         Attributes for the delivery entity
165 --             p_action_code           'CREATE', 'UPDATE'
166 --             x_return_status         Return status of API
167 -- COMMENT   : Validates p_delivery_info by calling column specific validations
168 --========================================================================
169   PROCEDURE Validate_Delivery
170       (p_delivery_info         IN OUT NOCOPY  delivery_pub_rec_type,
171        p_action_code           IN     VARCHAR2,
172        x_return_status         OUT    NOCOPY VARCHAR2) IS
173 
174   l_assigned_to_trip VARCHAR2(1);
175 
176   -- OTM R12, glog proj
177   l_adjusted_amount  NUMBER;
178 
179   BEGIN
180     --
181     --
182     x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
183 
184     IF (p_action_code <> 'CREATE') THEN
185 
186        IF (p_delivery_info.delivery_id <> FND_API.G_MISS_NUM) OR (p_delivery_info.name <> FND_API.G_MISS_CHAR) THEN
187 
188             IF (p_delivery_info.name <> FND_API.G_MISS_CHAR) THEN
189              p_delivery_info.delivery_id := NULL;
190           END IF;
191 
192             wsh_util_validate.validate_delivery_name(
193             p_delivery_info.delivery_id,
194             p_delivery_info.name,
195             x_return_status);
196 
197             IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
198                RETURN;
199           END IF;
200 
201          END IF;
202 
203       END IF;
204 
205     IF (p_delivery_info.organization_id <> FND_API.G_MISS_NUM) OR (p_delivery_info.organization_code <> FND_API.G_MISS_CHAR) THEN
206 
207          IF (p_delivery_info.organization_code <> FND_API.G_MISS_CHAR) THEN
208           p_delivery_info.organization_id := NULL;
209        END IF;
210 
211          wsh_util_validate.validate_org(
212          p_delivery_info.organization_id,
213          p_delivery_info.organization_code,
214          x_return_status);
215 
216          IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
217             RETURN;
218        END IF;
219     END IF;
220 
221     IF (nvl(p_delivery_info.delivery_type,'STANDARD') NOT IN ('STANDARD','CONSOLIDATED')) THEN
222           p_delivery_info.delivery_type := 'STANDARD';
223 
224       END IF;
225 
226     IF (p_delivery_info.loading_order_flag <> FND_API.G_MISS_CHAR) OR (p_delivery_info.loading_order_desc <> FND_API.G_MISS_CHAR) THEN
227 
228          IF (p_delivery_info.loading_order_desc <> FND_API.G_MISS_CHAR) THEN
229           p_delivery_info.loading_order_flag := NULL;
230        END IF;
231 
232          wsh_util_validate.validate_loading_order(
233          p_delivery_info.loading_order_flag,
234          p_delivery_info.loading_order_desc,
235          x_return_status);
236 
237          IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
238             RETURN;
239        END IF;
240       END IF;
241 
242     IF (p_delivery_info.initial_pickup_location_id <> FND_API.G_MISS_NUM) OR (p_delivery_info.initial_pickup_location_code <> FND_API.G_MISS_CHAR) THEN
243 
244          IF (p_delivery_info.initial_pickup_location_code <> FND_API.G_MISS_CHAR) THEN
245           p_delivery_info.initial_pickup_location_id := NULL;
246        END IF;
247 
248          wsh_util_validate.validate_location(
249          p_delivery_info.initial_pickup_location_id,
250          p_delivery_info.initial_pickup_location_code,
251          x_return_status);
252 
253          IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
254             RETURN;
255        END IF;
256       END IF;
257 
258     IF (p_delivery_info.ultimate_dropoff_location_id <> FND_API.G_MISS_NUM) OR (p_delivery_info.ultimate_dropoff_location_code <> FND_API.G_MISS_CHAR) THEN
259 
260          IF (p_delivery_info.ultimate_dropoff_location_code <> FND_API.G_MISS_CHAR) THEN
261           p_delivery_info.ultimate_dropoff_location_id := NULL;
262        END IF;
263 
264          wsh_util_validate.validate_location(
265          p_delivery_info.ultimate_dropoff_location_id,
269          IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
266          p_delivery_info.ultimate_dropoff_location_code,
267          x_return_status);
268 
270             RETURN;
271        END IF;
272       END IF;
273 
274     IF (p_delivery_info.intmed_ship_to_location_id <> FND_API.G_MISS_NUM) OR (p_delivery_info.intmed_ship_to_location_code <> FND_API.G_MISS_CHAR) THEN
275 
276          IF (p_delivery_info.intmed_ship_to_location_code <> FND_API.G_MISS_CHAR) THEN
277           p_delivery_info.intmed_ship_to_location_id := NULL;
278        END IF;
279 
280          wsh_util_validate.validate_location(
281          p_delivery_info.intmed_ship_to_location_id,
282          p_delivery_info.intmed_ship_to_location_code,
283          x_return_status);
284 
285          IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
286             RETURN;
287        END IF;
288       END IF;
289 
290     IF (p_delivery_info.pooled_ship_to_location_id <> FND_API.G_MISS_NUM) OR (p_delivery_info.pooled_ship_to_location_code <> FND_API.G_MISS_CHAR) THEN
291 
292          IF (p_delivery_info.pooled_ship_to_location_code <> FND_API.G_MISS_CHAR) THEN
293           p_delivery_info.pooled_ship_to_location_id := NULL;
294        END IF;
295 
296          wsh_util_validate.validate_location(
297          p_delivery_info.pooled_ship_to_location_id,
298          p_delivery_info.pooled_ship_to_location_code,
299          x_return_status);
300 
301          IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
302             RETURN;
303        END IF;
304       END IF;
305 
306     IF (p_delivery_info.customer_id <> FND_API.G_MISS_NUM) OR (p_delivery_info.customer_number <> FND_API.G_MISS_CHAR) THEN
307 
308          IF (p_delivery_info.customer_number <> FND_API.G_MISS_CHAR) THEN
309           p_delivery_info.customer_id := NULL;
310        END IF;
311 
312          wsh_util_validate.validate_customer(
313          p_delivery_info.customer_id,
314          p_delivery_info.customer_number,
315          x_return_status);
316 
317          IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
318             RETURN;
319        END IF;
320       END IF;
321 
322     -- Carrier ID is not validated as it is not used...Ship method is used instead.
323 
324     IF (p_delivery_info.ship_method_code <> FND_API.G_MISS_CHAR) OR (p_delivery_info.ship_method_name <> FND_API.G_MISS_CHAR) THEN
325 
326          IF (p_delivery_info.ship_method_code <> FND_API.G_MISS_CHAR) THEN
327           p_delivery_info.ship_method_name := NULL;
328        END IF;
329 
330          wsh_util_validate.validate_ship_method(
331          p_delivery_info.ship_method_code,
332          p_delivery_info.ship_method_name,
333          x_return_status);
334 
335          IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
336             RETURN;
337        END IF;
338       END IF;
339 
340     IF (p_delivery_info.freight_terms_code <> FND_API.G_MISS_CHAR) OR (p_delivery_info.freight_terms_name <> FND_API.G_MISS_CHAR) THEN
341 
342          IF (p_delivery_info.freight_terms_name <> FND_API.G_MISS_CHAR) THEN
343           p_delivery_info.freight_terms_name := NULL;
344        END IF;
345 
346          wsh_util_validate.validate_freight_terms(
347          p_delivery_info.freight_terms_code,
348          p_delivery_info.freight_terms_name,
349          x_return_status);
350 
351          IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
352             RETURN;
353        END IF;
354       END IF;
355 
356     IF (p_delivery_info.fob_code <> FND_API.G_MISS_CHAR) OR (p_delivery_info.fob_name <> FND_API.G_MISS_CHAR) THEN
357 
358          IF (p_delivery_info.fob_name <> FND_API.G_MISS_CHAR) THEN
359           p_delivery_info.fob_code := NULL;
360        END IF;
361 
362          wsh_util_validate.validate_fob(
363          p_delivery_info.fob_code,
364          p_delivery_info.fob_name,
365          x_return_status);
366 
367          IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
368             RETURN;
369        END IF;
370       END IF;
371 
372     IF (p_delivery_info.fob_location_id <> FND_API.G_MISS_NUM) OR (p_delivery_info.fob_location_code <> FND_API.G_MISS_CHAR) THEN
373 
374          IF (p_delivery_info.fob_location_code <> FND_API.G_MISS_CHAR) THEN
375           p_delivery_info.fob_location_id := NULL;
376        END IF;
377 
378          wsh_util_validate.validate_location(
379          p_delivery_info.fob_location_id,
380          p_delivery_info.fob_location_code,
381          x_return_status);
382 
383          IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
384             RETURN;
385        END IF;
386       END IF;
387 
388     IF (p_delivery_info.weight_uom_code <> FND_API.G_MISS_CHAR) OR (p_delivery_info.weight_uom_desc <> FND_API.G_MISS_CHAR) THEN
389 
390          IF (p_delivery_info.weight_uom_desc <> FND_API.G_MISS_CHAR) THEN
391           p_delivery_info.weight_uom_code := NULL;
392        END IF;
393 
394          wsh_util_validate.validate_uom(
395          'WEIGHT',
396          p_delivery_info.organization_id,
397          p_delivery_info.weight_uom_code,
398          p_delivery_info.weight_uom_desc,
399          x_return_status);
400 
404       END IF;
401          IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
402             RETURN;
403        END IF;
405 
406     IF (p_delivery_info.volume_uom_code <> FND_API.G_MISS_CHAR) OR (p_delivery_info.volume_uom_desc <> FND_API.G_MISS_CHAR) THEN
407 
408          IF (p_delivery_info.volume_uom_desc <> FND_API.G_MISS_CHAR) THEN
409           p_delivery_info.volume_uom_code := NULL;
410        END IF;
411 
412          wsh_util_validate.validate_uom(
413          'VOLUME',
414          p_delivery_info.organization_id,
415          p_delivery_info.volume_uom_code,
416          p_delivery_info.volume_uom_desc,
417          x_return_status);
418 
419          IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
420             RETURN;
421        END IF;
422       END IF;
423 
424     IF (p_delivery_info.currency_code <> FND_API.G_MISS_CHAR) OR (p_delivery_info.currency_name <> FND_API.G_MISS_CHAR) THEN
425 
426          IF (p_delivery_info.currency_name <> FND_API.G_MISS_CHAR) THEN
427           p_delivery_info.currency_code := NULL;
428          END IF;
429 
430          -- OTM R12, glog  project changes, to use name value notation
431          WSH_UTIL_VALIDATE.validate_currency(
432            p_currency_code     => p_delivery_info.currency_code,
433            p_currency_name     => p_delivery_info.currency_name,
434            p_amount            => NULL,
435            x_return_status     => x_return_status,
436            x_adjusted_amount   => l_adjusted_amount); -- OTM R12,glog project
437 
438          IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
439             RETURN;
440          END IF;
441       END IF;
442 
443 
444       --
445       -- manifesting code changes
446       -- disallow update of ship method or its components if the delivery is assigned to trip.
447       --
448 
449       IF (p_delivery_info.ship_method_code <> FND_API.G_MISS_CHAR) OR (p_delivery_info.ship_method_code IS NULL) OR
450          (p_delivery_info.carrier_id <> FND_API.G_MISS_NUM) OR (p_delivery_info.carrier_id IS NULL) OR
451          (p_delivery_info.service_level  <> FND_API.G_MISS_CHAR) OR (p_delivery_info.service_level IS NULL) OR
452          (p_delivery_info.mode_of_transport <> FND_API.G_MISS_CHAR) OR (p_delivery_info.mode_of_transport IS NULL) THEN
453 
454           l_assigned_to_trip := WSH_Delivery_Validations.Del_Assigned_To_Trip
455                                          (p_delivery_id =>  p_delivery_info.delivery_id,
456                                           x_return_status => x_return_status);
457 
458           IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
459 
460             RETURN;
461 
462           ELSIF l_assigned_to_trip = 'Y' THEN
463              FND_MESSAGE.SET_NAME('WSH','WSH_DEL_ASSIGNED_ERROR');
464              FND_MESSAGE.SET_TOKEN('DEL_NAME',wsh_new_deliveries_pvt.get_name(p_delivery_info.delivery_id));
465              x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
466              wsh_util_core.add_message(x_return_status);
467              RETURN;
468           END IF;
469        END IF;
470 
471 
472   EXCEPTION
473        WHEN others THEN
474           wsh_util_core.default_handler('WSH_DELIVERIES_PUB.Validate_Delivery');
475           x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
476 
477   END Validate_Delivery;
478 
479 /* I Harmonization -- rvishnuv */
480   PROCEDURE map_pub_to_pvt(
481     p_pub_rec IN delivery_pub_rec_type,
482     x_pvt_rec OUT NOCOPY wsh_new_deliveries_pvt.delivery_rec_type,
483     x_return_status OUT NOCOPY VARCHAR2)
484   IS
485     --
486 l_debug_on BOOLEAN;
487     l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'MAP_PUB_TO_PVT';
488 
489   BEGIN
490     --
491     l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
492     --
493     IF l_debug_on IS NULL
494     THEN
495         l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
496     END IF;
497     --
498     IF l_debug_on THEN
499       WSH_DEBUG_SV.push(l_module_name);
500     END IF;
501     x_return_status := wsh_util_core.g_ret_sts_success;
502     --
503     x_pvt_rec.DELIVERY_ID     := p_pub_rec.DELIVERY_ID;
504     x_pvt_rec.NAME        := p_pub_rec.NAME;
505     x_pvt_rec.DELIVERY_TYPE     := p_pub_rec.DELIVERY_TYPE;
506     x_pvt_rec.LOADING_SEQUENCE      := p_pub_rec.LOADING_SEQUENCE;
507     x_pvt_rec.LOADING_ORDER_FLAG    := p_pub_rec.LOADING_ORDER_FLAG;
508     x_pvt_rec.LOADING_ORDER_DESC    := p_pub_rec.LOADING_ORDER_DESC;
509     x_pvt_rec.INITIAL_PICKUP_DATE   := p_pub_rec.INITIAL_PICKUP_DATE;
510     x_pvt_rec.INITIAL_PICKUP_LOCATION_ID  := p_pub_rec.INITIAL_PICKUP_LOCATION_ID;
511     x_pvt_rec.INITIAL_PICKUP_LOCATION_CODE  := p_pub_rec.INITIAL_PICKUP_LOCATION_CODE;
512     x_pvt_rec.ORGANIZATION_ID     := p_pub_rec.ORGANIZATION_ID;
513     x_pvt_rec.ORGANIZATION_CODE     := p_pub_rec.ORGANIZATION_CODE;
514     x_pvt_rec.ULTIMATE_DROPOFF_LOCATION_ID  := p_pub_rec.ULTIMATE_DROPOFF_LOCATION_ID;
515     x_pvt_rec.ULTIMATE_DROPOFF_LOCATION_CODE  := p_pub_rec.ULTIMATE_DROPOFF_LOCATION_CODE;
516     x_pvt_rec.ULTIMATE_DROPOFF_DATE   := p_pub_rec.ULTIMATE_DROPOFF_DATE;
517     x_pvt_rec.CUSTOMER_ID     := p_pub_rec.CUSTOMER_ID;
518     x_pvt_rec.CUSTOMER_NUMBER     := p_pub_rec.CUSTOMER_NUMBER;
519     x_pvt_rec.INTMED_SHIP_TO_LOCATION_ID  := p_pub_rec.INTMED_SHIP_TO_LOCATION_ID;
523     x_pvt_rec.CARRIER_ID      := p_pub_rec.CARRIER_ID;
520     x_pvt_rec.INTMED_SHIP_TO_LOCATION_CODE  := p_pub_rec.INTMED_SHIP_TO_LOCATION_CODE;
521     x_pvt_rec.POOLED_SHIP_TO_LOCATION_ID  := p_pub_rec.POOLED_SHIP_TO_LOCATION_ID;
522     x_pvt_rec.POOLED_SHIP_TO_LOCATION_CODE  := p_pub_rec.POOLED_SHIP_TO_LOCATION_CODE;
524     x_pvt_rec.CARRIER_CODE      := p_pub_rec.CARRIER_CODE;
525     x_pvt_rec.SHIP_METHOD_CODE      := p_pub_rec.SHIP_METHOD_CODE;
526     x_pvt_rec.SHIP_METHOD_NAME      := p_pub_rec.SHIP_METHOD_NAME;
527     x_pvt_rec.FREIGHT_TERMS_CODE    := p_pub_rec.FREIGHT_TERMS_CODE;
528     x_pvt_rec.FREIGHT_TERMS_NAME    := p_pub_rec.FREIGHT_TERMS_NAME;
529     x_pvt_rec.FOB_CODE        := p_pub_rec.FOB_CODE;
530     x_pvt_rec.FOB_NAME        := p_pub_rec.FOB_NAME;
531     x_pvt_rec.FOB_LOCATION_ID     := p_pub_rec.FOB_LOCATION_ID;
532     x_pvt_rec.FOB_LOCATION_CODE     := p_pub_rec.FOB_LOCATION_CODE;
533     x_pvt_rec.WAYBILL       := p_pub_rec.WAYBILL;
534     x_pvt_rec.DOCK_CODE       := p_pub_rec.DOCK_CODE;
535     x_pvt_rec.ACCEPTANCE_FLAG     := p_pub_rec.ACCEPTANCE_FLAG;
536     x_pvt_rec.ACCEPTED_BY     := p_pub_rec.ACCEPTED_BY;
537     x_pvt_rec.ACCEPTED_DATE     := p_pub_rec.ACCEPTED_DATE;
538     x_pvt_rec.ACKNOWLEDGED_BY     := p_pub_rec.ACKNOWLEDGED_BY;
539     x_pvt_rec.CONFIRMED_BY      := p_pub_rec.CONFIRMED_BY;
540     x_pvt_rec.CONFIRM_DATE      := p_pub_rec.CONFIRM_DATE;
541     x_pvt_rec.ASN_DATE_SENT     := p_pub_rec.ASN_DATE_SENT;
542     x_pvt_rec.ASN_STATUS_CODE     := p_pub_rec.ASN_STATUS_CODE;
543     x_pvt_rec.ASN_SEQ_NUMBER      := p_pub_rec.ASN_SEQ_NUMBER;
544     x_pvt_rec.GROSS_WEIGHT      := p_pub_rec.GROSS_WEIGHT;
545     x_pvt_rec.NET_WEIGHT      := p_pub_rec.NET_WEIGHT;
546     x_pvt_rec.WEIGHT_UOM_CODE     := p_pub_rec.WEIGHT_UOM_CODE;
547     x_pvt_rec.WEIGHT_UOM_DESC     := p_pub_rec.WEIGHT_UOM_DESC;
548     x_pvt_rec.VOLUME        := p_pub_rec.VOLUME;
549     x_pvt_rec.VOLUME_UOM_CODE     := p_pub_rec.VOLUME_UOM_CODE;
550     x_pvt_rec.VOLUME_UOM_DESC     := p_pub_rec.VOLUME_UOM_DESC;
551     x_pvt_rec.ADDITIONAL_SHIPMENT_INFO    := p_pub_rec.ADDITIONAL_SHIPMENT_INFO;
552     x_pvt_rec.CURRENCY_CODE     := p_pub_rec.CURRENCY_CODE;
553     x_pvt_rec.CURRENCY_NAME     := p_pub_rec.CURRENCY_NAME;
554     x_pvt_rec.ATTRIBUTE_CATEGORY    := p_pub_rec.ATTRIBUTE_CATEGORY;
555     x_pvt_rec.ATTRIBUTE1      := p_pub_rec.ATTRIBUTE1;
556     x_pvt_rec.ATTRIBUTE2      := p_pub_rec.ATTRIBUTE2;
557     x_pvt_rec.ATTRIBUTE3      := p_pub_rec.ATTRIBUTE3;
558     x_pvt_rec.ATTRIBUTE4      := p_pub_rec.ATTRIBUTE4;
559     x_pvt_rec.ATTRIBUTE5      := p_pub_rec.ATTRIBUTE5;
560     x_pvt_rec.ATTRIBUTE6      := p_pub_rec.ATTRIBUTE6;
561     x_pvt_rec.ATTRIBUTE7      := p_pub_rec.ATTRIBUTE7;
562     x_pvt_rec.ATTRIBUTE8      := p_pub_rec.ATTRIBUTE8;
563     x_pvt_rec.ATTRIBUTE9      := p_pub_rec.ATTRIBUTE9;
564     x_pvt_rec.ATTRIBUTE10     := p_pub_rec.ATTRIBUTE10;
565     x_pvt_rec.ATTRIBUTE11     := p_pub_rec.ATTRIBUTE11;
566     x_pvt_rec.ATTRIBUTE12     := p_pub_rec.ATTRIBUTE12;
567     x_pvt_rec.ATTRIBUTE13     := p_pub_rec.ATTRIBUTE13;
568     x_pvt_rec.ATTRIBUTE14     := p_pub_rec.ATTRIBUTE14;
569     x_pvt_rec.ATTRIBUTE15     := p_pub_rec.ATTRIBUTE15;
570     x_pvt_rec.TP_ATTRIBUTE_CATEGORY   := p_pub_rec.TP_ATTRIBUTE_CATEGORY;
571     x_pvt_rec.TP_ATTRIBUTE1     := p_pub_rec.TP_ATTRIBUTE1;
572     x_pvt_rec.TP_ATTRIBUTE2     := p_pub_rec.TP_ATTRIBUTE2;
573     x_pvt_rec.TP_ATTRIBUTE3     := p_pub_rec.TP_ATTRIBUTE3;
574     x_pvt_rec.TP_ATTRIBUTE4     := p_pub_rec.TP_ATTRIBUTE4;
575     x_pvt_rec.TP_ATTRIBUTE5     := p_pub_rec.TP_ATTRIBUTE5;
576     x_pvt_rec.TP_ATTRIBUTE6     := p_pub_rec.TP_ATTRIBUTE6;
577     x_pvt_rec.TP_ATTRIBUTE7     := p_pub_rec.TP_ATTRIBUTE7;
578     x_pvt_rec.TP_ATTRIBUTE8     := p_pub_rec.TP_ATTRIBUTE8;
579     x_pvt_rec.TP_ATTRIBUTE9     := p_pub_rec.TP_ATTRIBUTE9;
580     x_pvt_rec.TP_ATTRIBUTE10      := p_pub_rec.TP_ATTRIBUTE10;
581     x_pvt_rec.TP_ATTRIBUTE11      := p_pub_rec.TP_ATTRIBUTE11;
582     x_pvt_rec.TP_ATTRIBUTE12      := p_pub_rec.TP_ATTRIBUTE12;
583     x_pvt_rec.TP_ATTRIBUTE13      := p_pub_rec.TP_ATTRIBUTE13;
584     x_pvt_rec.TP_ATTRIBUTE14      := p_pub_rec.TP_ATTRIBUTE14;
585     x_pvt_rec.TP_ATTRIBUTE15      := p_pub_rec.TP_ATTRIBUTE15;
586     x_pvt_rec.GLOBAL_ATTRIBUTE_CATEGORY   := p_pub_rec.GLOBAL_ATTRIBUTE_CATEGORY;
587     x_pvt_rec.GLOBAL_ATTRIBUTE1     := p_pub_rec.GLOBAL_ATTRIBUTE1;
588     x_pvt_rec.GLOBAL_ATTRIBUTE2     := p_pub_rec.GLOBAL_ATTRIBUTE2;
589     x_pvt_rec.GLOBAL_ATTRIBUTE3     := p_pub_rec.GLOBAL_ATTRIBUTE3;
590     x_pvt_rec.GLOBAL_ATTRIBUTE4     := p_pub_rec.GLOBAL_ATTRIBUTE4;
591     x_pvt_rec.GLOBAL_ATTRIBUTE5     := p_pub_rec.GLOBAL_ATTRIBUTE5;
592     x_pvt_rec.GLOBAL_ATTRIBUTE6     := p_pub_rec.GLOBAL_ATTRIBUTE6;
593     x_pvt_rec.GLOBAL_ATTRIBUTE7     := p_pub_rec.GLOBAL_ATTRIBUTE7;
594     x_pvt_rec.GLOBAL_ATTRIBUTE8     := p_pub_rec.GLOBAL_ATTRIBUTE8;
595     x_pvt_rec.GLOBAL_ATTRIBUTE9     := p_pub_rec.GLOBAL_ATTRIBUTE9;
596     x_pvt_rec.GLOBAL_ATTRIBUTE10    := p_pub_rec.GLOBAL_ATTRIBUTE10;
597     x_pvt_rec.GLOBAL_ATTRIBUTE11    := p_pub_rec.GLOBAL_ATTRIBUTE11;
598     x_pvt_rec.GLOBAL_ATTRIBUTE12    := p_pub_rec.GLOBAL_ATTRIBUTE12;
599     x_pvt_rec.GLOBAL_ATTRIBUTE13    := p_pub_rec.GLOBAL_ATTRIBUTE13;
600     x_pvt_rec.GLOBAL_ATTRIBUTE14    := p_pub_rec.GLOBAL_ATTRIBUTE14;
601     x_pvt_rec.GLOBAL_ATTRIBUTE15    := p_pub_rec.GLOBAL_ATTRIBUTE15;
602     x_pvt_rec.GLOBAL_ATTRIBUTE16    := p_pub_rec.GLOBAL_ATTRIBUTE16;
603     x_pvt_rec.GLOBAL_ATTRIBUTE17    := p_pub_rec.GLOBAL_ATTRIBUTE17;
604     x_pvt_rec.GLOBAL_ATTRIBUTE18    := p_pub_rec.GLOBAL_ATTRIBUTE18;
605     x_pvt_rec.GLOBAL_ATTRIBUTE19    := p_pub_rec.GLOBAL_ATTRIBUTE19;
609     x_pvt_rec.LAST_UPDATE_DATE      := p_pub_rec.LAST_UPDATE_DATE;
606     x_pvt_rec.GLOBAL_ATTRIBUTE20    := p_pub_rec.GLOBAL_ATTRIBUTE20;
607     x_pvt_rec.CREATION_DATE     := p_pub_rec.CREATION_DATE;
608     x_pvt_rec.CREATED_BY      := p_pub_rec.CREATED_BY;
610     x_pvt_rec.LAST_UPDATED_BY     := p_pub_rec.LAST_UPDATED_BY;
611     x_pvt_rec.LAST_UPDATE_LOGIN     := p_pub_rec.LAST_UPDATE_LOGIN;
612     x_pvt_rec.PROGRAM_APPLICATION_ID    := p_pub_rec.PROGRAM_APPLICATION_ID;
613     x_pvt_rec.PROGRAM_ID      := p_pub_rec.PROGRAM_ID;
614     x_pvt_rec.PROGRAM_UPDATE_DATE   := p_pub_rec.PROGRAM_UPDATE_DATE;
615     x_pvt_rec.REQUEST_ID      := p_pub_rec.REQUEST_ID;
616     x_pvt_rec.NUMBER_OF_LPN     := p_pub_rec.NUMBER_OF_LPN;
617     x_pvt_rec.COD_AMOUNT      := p_pub_rec.COD_AMOUNT;
618     x_pvt_rec.COD_CURRENCY_CODE     := p_pub_rec.COD_CURRENCY_CODE;
619     x_pvt_rec.COD_REMIT_TO      := p_pub_rec.COD_REMIT_TO;
620     x_pvt_rec.COD_CHARGE_PAID_BY    := p_pub_rec.COD_CHARGE_PAID_BY;
621     x_pvt_rec.PROBLEM_CONTACT_REFERENCE   := p_pub_rec.PROBLEM_CONTACT_REFERENCE;
622     x_pvt_rec.PORT_OF_LOADING     := p_pub_rec.PORT_OF_LOADING;
623     x_pvt_rec.PORT_OF_DISCHARGE     := p_pub_rec.PORT_OF_DISCHARGE;
624     x_pvt_rec.FTZ_NUMBER      := p_pub_rec.FTZ_NUMBER;
625     x_pvt_rec.ROUTED_EXPORT_TXN     := p_pub_rec.ROUTED_EXPORT_TXN;
626     x_pvt_rec.ENTRY_NUMBER      := p_pub_rec.ENTRY_NUMBER;
627     x_pvt_rec.ROUTING_INSTRUCTIONS    := p_pub_rec.ROUTING_INSTRUCTIONS;
628     x_pvt_rec.IN_BOND_CODE      := p_pub_rec.IN_BOND_CODE;
629     x_pvt_rec.SHIPPING_MARKS      := p_pub_rec.SHIPPING_MARKS;
630     x_pvt_rec.SERVICE_LEVEL     := p_pub_rec.SERVICE_LEVEL;
631     x_pvt_rec.MODE_OF_TRANSPORT     := p_pub_rec.MODE_OF_TRANSPORT;
632     x_pvt_rec.ASSIGNED_TO_FTE_TRIPS   := p_pub_rec.ASSIGNED_TO_FTE_TRIPS;
633     x_pvt_rec.PLANNED_FLAG              := FND_API.G_MISS_CHAR;
634     x_pvt_rec.STATUS_CODE               := FND_API.G_MISS_CHAR;
635     x_pvt_rec.BATCH_ID                  := FND_API.G_MISS_NUM;
636     x_pvt_rec.HASH_VALUE                := FND_API.G_MISS_NUM;
637     x_pvt_rec.SOURCE_HEADER_ID          := FND_API.G_MISS_NUM;
638     x_pvt_rec.AUTO_SC_EXCLUDE_FLAG    := p_pub_rec.AUTO_SC_EXCLUDE_FLAG;
639     x_pvt_rec.AUTO_AP_EXCLUDE_FLAG    := p_pub_rec.AUTO_AP_EXCLUDE_FLAG;
640     x_pvt_rec.AP_BATCH_ID                 := FND_API.G_MISS_NUM;
641     /*3667348*/
642     x_pvt_rec.REASON_OF_TRANSPORT    := p_pub_rec.REASON_OF_TRANSPORT;
643     x_pvt_rec.DESCRIPTION   := p_pub_rec.DESCRIPTION;
644     -- Non Database field added for "Proration of weight from Delivery to delivery lines" Project(Bug#4254552).
645     IF  p_pub_rec.prorate_wt_flag = FND_API.G_MISS_CHAR  THEN
646     --{
647        x_pvt_rec.prorate_wt_flag := WSH_UTIL_CORE.FTE_Is_Installed ;
648     ELSIF p_pub_rec.prorate_wt_flag = 'Y' THEN
649        x_pvt_rec.prorate_wt_flag := 'Y';
650     ELSE
651        x_pvt_rec.prorate_wt_flag := 'N';
652     --}
653     END IF;
654     --
655 
656     IF l_debug_on THEN
657       WSH_DEBUG_SV.pop(l_module_name);
658     END IF;
659   EXCEPTION
660     WHEN OTHERS THEN
661       WSH_UTIL_CORE.DEFAULT_HANDLER('WSH_DELIVERIES_PUB.map_pub_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 map_pub_to_pvt;
670 
671 --========================================================================
672 -- PROCEDURE : Create_Update_Delivery         PUBLIC
673 --
674 -- PARAMETERS: p_api_version_number    known api versionerror buffer
675 --             p_init_msg_list         FND_API.G_TRUE to reset list
676 --             x_return_status         return status
677 --             x_msg_count             number of messages in the list
678 --             x_msg_data              text of messages
679 --         p_delivery_info         Attributes for the delivery entity
680 --             p_delivery_name         Delivery name for update
681 --              x_delivery_id - delivery_Id of new delivery,
682 --             x_name - Name of delivery
683 -- VERSION   : current version         1.0
684 --             initial version         1.0
685 -- COMMENT   : Creates or updates a record in wsh_new_deliveries table
686 --             with information specified in p_delivery_info
687 --========================================================================
688 
689   PROCEDURE Create_Update_Delivery(
690     p_api_version_number     IN   NUMBER,
691     p_init_msg_list          IN   VARCHAR2,
692     x_return_status          OUT NOCOPY   VARCHAR2,
693     x_msg_count              OUT NOCOPY   NUMBER,
694     x_msg_data               OUT NOCOPY   VARCHAR2,
695     p_action_code            IN   VARCHAR2,
696     p_delivery_info           IN OUT NOCOPY  Delivery_Pub_Rec_Type,
697     p_delivery_name          IN   VARCHAR2 DEFAULT FND_API.G_MISS_CHAR,
698     x_delivery_id            OUT NOCOPY   NUMBER,
699     x_name                   OUT NOCOPY   VARCHAR2)
700 
701   IS
702 
703   l_api_version_number CONSTANT NUMBER := 1.0;
704   l_api_name           CONSTANT VARCHAR2(30):= 'Create_Update_Delivery';
705 
706   -- <insert here your local variables declaration>
707   l_message VARCHAR2(50);
708   l_num_errors NUMBER;
709   l_num_warnings NUMBER;
710   l_rec_attr_tab      wsh_new_deliveries_pvt.delivery_attr_tbl_type;
711   l_delivery_in_rec   wsh_deliveries_grp.Del_In_Rec_Type;
715     --
712   l_del_out_rec_tab   wsh_deliveries_grp.Del_Out_Tbl_Type;
713   l_return_status     VARCHAR2(1);
714   l_commit            VARCHAR2(100) := FND_API.G_FALSE;
716   l_debug_on BOOLEAN;
717     --
718     l_module_name CONSTANT   VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'CREATE_UPDATE_DELIVERY_PUB';
719 
720   BEGIN
721     --
722     --
723     l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
724     --
725     IF l_debug_on IS NULL
726     THEN
727         l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
728     END IF;
729     --
730     IF l_debug_on THEN
731       wsh_debug_sv.push(l_module_name);
732     END IF;
733   -- Standard call to check for call compatibility
734     IF NOT FND_API.Compatible_API_Call
735       ( l_api_version_number
736       , p_api_version_number
737       , l_api_name
738       , G_PKG_NAME
739       )
740     THEN
741       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
742     END IF;
743 
744     --  Initialize message stack if required
745     IF FND_API.to_Boolean(p_init_msg_list) THEN
746       FND_MSG_PUB.initialize;
747     END IF;
748 
749 
750     IF (p_action_code = 'UPDATE') THEN
751       IF (p_delivery_name IS NOT NULL) OR (p_delivery_name <> FND_API.G_MISS_CHAR) THEN
752         p_delivery_info.name := p_delivery_name;
753       END IF;
754     ELSIF ( p_action_code <> 'CREATE' ) THEN
755       FND_MESSAGE.SET_NAME('WSH','WSH_INVALID_ACTION_CODE');
756       FND_MESSAGE.SET_TOKEN('ACTION_CODE',p_action_code);
757       x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
758       wsh_util_core.add_message(x_return_status);
759     END IF;
760     --
761     map_pub_to_pvt(
762       p_pub_rec  => p_delivery_info,
763       x_pvt_rec  => l_rec_attr_tab(1),
764       x_return_status => l_return_status);
765     --
766     IF l_debug_on THEN
767       wsh_debug_sv.log(l_module_name,'Return Status After Calling map_pub_to_pvt',l_return_status);
768     END IF;
769     --
770     wsh_util_core.api_post_call(
771       p_return_status => l_return_status,
772       x_num_errors    => l_num_errors,
773       x_num_warnings  => l_num_warnings);
774     --
775     IF (p_action_code = 'UPDATE') THEN
776       --
777       wsh_util_validate.validate_delivery_name(
778         p_delivery_id   => l_rec_attr_tab(1).delivery_id,
779         p_delivery_name => l_rec_attr_tab(1).name,
780         x_return_status => l_return_status);
781       --
782       IF l_debug_on THEN
783         wsh_debug_sv.log(l_module_name,'Return Status After Calling validate_delivery_name',l_return_status);
784       END IF;
785       --
786       wsh_util_core.api_post_call(
787         p_return_status => l_return_status,
788         x_num_errors    => l_num_errors,
789         x_num_warnings  => l_num_warnings);
790       --
791     -- bug 3666967 : else if p_action_code is 'CREATE'
792     -- treating non passed parameters as FND_API.G_MISS_NUM
793     ELSIF (p_action_code = 'CREATE') THEN
794       IF (l_rec_attr_tab(1).gross_weight = FND_API.G_MISS_NUM AND
795           l_rec_attr_tab(1).net_weight = FND_API.G_MISS_NUM AND
796           l_rec_attr_tab(1).volume  = FND_API.G_MISS_NUM) THEN
797         l_rec_attr_tab(1).wv_frozen_flag := 'N';
798       ELSE
799         l_rec_attr_tab(1).wv_frozen_flag := 'Y';
800       END IF;
801     END IF;
802       --
803     l_delivery_in_rec.action_code := p_action_code;
804     l_delivery_in_rec.caller := 'WSH_PUB';
805     wsh_interface_grp.create_update_delivery(
806       p_api_version_number =>  p_api_version_number,
807       p_init_msg_list      =>  p_init_msg_list,
808       p_commit             =>  l_commit,
809       p_in_rec             =>  l_delivery_in_rec,
810       p_rec_attr_tab       =>  l_rec_attr_tab,
811       x_del_out_rec_tab    =>  l_del_out_rec_tab,
812       x_return_status      =>  l_return_status,
813       x_msg_count          =>  x_msg_count,
814       x_msg_data           =>  x_msg_data);
815     --
816     IF l_debug_on THEN
817       wsh_debug_sv.log(l_module_name,'Return Status After Calling create_update_delivery',l_return_status);
818     END IF;
819     --
820     wsh_util_core.api_post_call(
821       p_return_status => l_return_status,
822       x_num_errors    => l_num_errors,
823       x_num_warnings  => l_num_warnings,
824       p_msg_data      => x_msg_data);
825      --
826     --
827     IF l_del_out_rec_tab.COUNT <> 0 THEN
828       --
829       x_delivery_id    := l_del_out_rec_tab(l_del_out_rec_tab.COUNT).delivery_id;
830       x_name           := l_del_out_rec_tab(l_del_out_rec_tab.COUNT).name;
831       --
832     END IF;
833     --
834     IF l_num_warnings > 0 THEN
835       x_return_status := wsh_util_core.g_ret_sts_warning;
836     ELSE
837       x_return_status := wsh_util_core.g_ret_sts_success; --bug 2398628
838     END IF;
839     --
840     FND_MSG_PUB.Count_And_Get
841      ( p_count => x_msg_count
842      , p_data  => x_msg_data
843      );
844     --
845     IF l_debug_on THEN
846       WSH_DEBUG_SV.pop(l_module_name);
847     END IF;
848     --
849   EXCEPTION
850      WHEN FND_API.G_EXC_ERROR THEN
851         x_return_status := FND_API.G_RET_STS_ERROR;
852         --  Get message count and data
853         FND_MSG_PUB.Count_And_Get
854         ( p_count => x_msg_count
858       IF l_debug_on THEN
855         , p_data  => x_msg_data
856         );
857       --
859         WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_EXCEP_LEVEL);
860         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
861       END IF;
862       --
863      WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
864         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
865         --  Get message count and data
866         FND_MSG_PUB.Count_And_Get
867         ( p_count => x_msg_count
868         , p_data  => x_msg_data
869         );
870       --
871       IF l_debug_on THEN
872         WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
873         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_UNEXPECTED_ERROR');
874       END IF;
875       --
876      WHEN OTHERS THEN
877         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
878         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
879         THEN
880            FND_MSG_PUB.Add_Exc_Msg
881            ( G_PKG_NAME
882            , '_x_'
883            );
884         END IF;
885         --  Get message count and data
886         FND_MSG_PUB.Count_And_Get
887         ( p_count => x_msg_count
888         , p_data  => x_msg_data
889         );
890       --
891       IF l_debug_on THEN
892         WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
893         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
894       END IF;
895       --
896   END Create_Update_Delivery;
897 
898   PROCEDURE Delivery_Action
899   ( p_api_version_number     IN   NUMBER,
900     p_init_msg_list          IN   VARCHAR2,
901     x_return_status          OUT NOCOPY   VARCHAR2,
902     x_msg_count              OUT NOCOPY   NUMBER,
903     x_msg_data               OUT NOCOPY   VARCHAR2,
904     p_action_code            IN   VARCHAR2,
905     p_delivery_id            IN   NUMBER DEFAULT NULL,
906     p_delivery_name          IN   VARCHAR2 DEFAULT NULL,
907     p_asg_trip_id            IN   NUMBER DEFAULT NULL,
908     p_asg_trip_name          IN   VARCHAR2 DEFAULT NULL,
909     p_asg_pickup_stop_id     IN   NUMBER DEFAULT NULL,
910     p_asg_pickup_loc_id      IN   NUMBER DEFAULT NULL,
911     p_asg_pickup_stop_seq    IN   NUMBER DEFAULT NULL,
912     p_asg_pickup_loc_code    IN   VARCHAR2 DEFAULT NULL,
913     p_asg_pickup_arr_date    IN   DATE   DEFAULT NULL,
914     p_asg_pickup_dep_date    IN   DATE   DEFAULT NULL,
915     p_asg_dropoff_stop_id    IN   NUMBER DEFAULT NULL,
916     p_asg_dropoff_loc_id     IN   NUMBER DEFAULT NULL,
917     p_asg_dropoff_stop_seq   IN   NUMBER DEFAULT NULL,
918     p_asg_dropoff_loc_code   IN   VARCHAR2 DEFAULT NULL,
919     p_asg_dropoff_arr_date   IN   DATE   DEFAULT NULL,
920     p_asg_dropoff_dep_date   IN   DATE   DEFAULT NULL,
921     p_sc_action_flag         IN   VARCHAR2 DEFAULT 'S',
922     p_sc_intransit_flag      IN   VARCHAR2 DEFAULT 'N',
923     p_sc_close_trip_flag     IN   VARCHAR2 DEFAULT 'N',
924     p_sc_create_bol_flag     IN   VARCHAR2 DEFAULT 'N',
925     p_sc_stage_del_flag      IN   VARCHAR2 DEFAULT 'Y',
926     p_sc_trip_ship_method    IN   VARCHAR2 DEFAULT NULL,
927     p_sc_actual_dep_date     IN   DATE     DEFAULT NULL,
928     p_sc_report_set_id       IN   NUMBER DEFAULT NULL,
929     p_sc_report_set_name     IN   VARCHAR2 DEFAULT NULL,
930     p_sc_defer_interface_flag IN  VARCHAR2 DEFAULT 'Y',
931     p_sc_send_945_flag          IN   VARCHAR2 DEFAULT NULL,
932     p_sc_rule_id             IN   NUMBER DEFAULT NULL,
933     p_sc_rule_name           IN   VARCHAR2 DEFAULT NULL,
934     p_wv_override_flag       IN   VARCHAR2 DEFAULT 'N',
935     x_trip_id                OUT NOCOPY   VARCHAR2,
936     x_trip_name              OUT NOCOPY   VARCHAR2)
937     --
938   IS
939     --
940     l_api_version_number CONSTANT NUMBER := 1.0;
941     l_api_name           CONSTANT VARCHAR2(30):= 'Delivery_Action';
942     --
943 l_debug_on BOOLEAN;
944     --
945     l_module_name CONSTANT   VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'DELIVERY_ACTION_PUB';
946     --
947     --
948     l_action_prms wsh_deliveries_grp.action_parameters_rectype;
949     l_del_action_out_rec wsh_deliveries_grp.Delivery_Action_Out_Rec_Type;
950     l_delivery_id_tab    wsh_util_core.id_tab_type;
951     --
952     l_delivery_id  NUMBER := p_delivery_id;
953     --
954     l_num_errors   NUMBER := 0;
955     l_num_warnings NUMBER := 0;
956     l_return_status VARCHAR2(1);
957     l_first        NUMBER := 0;
958     l_commit            VARCHAR2(100) := FND_API.G_FALSE;
959     --
960   BEGIN
961     --
962     --
963     l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
964     --
965     IF l_debug_on IS NULL
966     THEN
967         l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
968     END IF;
969     --
970     IF l_debug_on THEN
971       wsh_debug_sv.push(l_module_name);
972     END IF;
973     --
974   -- Standard call to check for call compatibility
975     IF NOT FND_API.Compatible_API_Call
976       ( l_api_version_number
977       , p_api_version_number
978       , l_api_name
979       , G_PKG_NAME
980       )
981     THEN
985     --  Initialize message stack if required
982       RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
983     END IF;
984 
986     IF FND_API.to_Boolean(p_init_msg_list) THEN
987       FND_MSG_PUB.initialize;
988     END IF;
989 
990    wsh_util_validate.validate_delivery_name(
991      p_delivery_id   => l_delivery_id,
992      p_delivery_name => p_delivery_name,
993      x_return_status => l_return_status);
994     --
995     IF l_debug_on THEN
996       wsh_debug_sv.log(l_module_name,'Return Status After Calling validate_delivery_name',l_return_status);
997     END IF;
998     --
999     wsh_util_core.api_post_call(
1000       p_return_status => l_return_status,
1001       x_num_errors    => l_num_errors,
1002       x_num_warnings  => l_num_warnings);
1003     --
1004     l_action_prms.caller    := 'WSH_PUB';
1005     l_action_prms.action_code     := p_action_code;
1006     --
1007     -- initializing the action specific parameters
1008     l_action_prms.trip_id   := p_asg_trip_id;
1009     l_action_prms.trip_name   := p_asg_trip_name;
1010     l_action_prms.pickup_stop_id  := p_asg_pickup_stop_id;
1011     l_action_prms.pickup_loc_id   := p_asg_pickup_loc_id;
1012     l_action_prms.pickup_stop_seq := p_asg_pickup_stop_seq;
1013     l_action_prms.pickup_loc_code := p_asg_pickup_loc_code;
1014     l_action_prms.pickup_arr_date := p_asg_pickup_arr_date;
1015     l_action_prms.pickup_dep_date := p_asg_pickup_dep_date;
1016     l_action_prms.dropoff_stop_id := p_asg_dropoff_stop_id;
1017     l_action_prms.dropoff_loc_id  := p_asg_dropoff_loc_id;
1018     l_action_prms.dropoff_stop_seq  := p_asg_dropoff_stop_seq;
1019     l_action_prms.dropoff_loc_code  := p_asg_dropoff_loc_code;
1020     l_action_prms.dropoff_arr_date  := p_asg_dropoff_arr_date;
1021     l_action_prms.dropoff_dep_date  := p_asg_dropoff_dep_date;
1022     l_action_prms.action_flag     := p_sc_action_flag;
1023     l_action_prms.intransit_flag  := p_sc_intransit_flag;
1024     l_action_prms.close_trip_flag     := p_sc_close_trip_flag;
1025     l_action_prms.bill_of_lading_flag     := p_sc_create_bol_flag;
1026     l_action_prms.stage_del_flag      := p_sc_stage_del_flag;
1027     l_action_prms.ship_method_code    := p_sc_trip_ship_method;
1028     l_action_prms.actual_dep_date     := p_sc_actual_dep_date;
1029     l_action_prms.report_set_id   := p_sc_report_set_id;
1030     l_action_prms.report_set_name := p_sc_report_set_name;
1031     l_action_prms.defer_interface_flag  := p_sc_defer_interface_flag;
1032     l_action_prms.send_945_flag   := p_sc_send_945_flag;
1033     l_action_prms.sc_rule_id      := p_sc_rule_id;
1034     l_action_prms.sc_rule_name    := p_sc_rule_name;
1035     l_action_prms.override_flag   := p_wv_override_flag;
1036     IF p_action_code = 'WT-VOL' THEN
1037        l_action_prms.override_flag := 'Y';
1038     END IF;
1039     --
1040     l_delivery_id_tab(1)    := l_delivery_id;
1041     --
1042     wsh_interface_grp.Delivery_Action(
1043       p_api_version_number     =>  p_api_version_number,
1044       p_init_msg_list          =>  p_init_msg_list,
1045       p_commit                 =>  l_commit,
1046       p_action_prms            =>  l_action_prms,
1047       p_delivery_id_tab        =>  l_delivery_id_tab,
1048       x_delivery_out_rec       =>  l_del_action_out_rec,
1049       x_return_status          =>  x_return_status,
1050       x_msg_count              =>  x_msg_count,
1051       x_msg_data               =>  x_msg_data);
1052     --
1053     IF l_debug_on THEN
1054       wsh_debug_sv.log(l_module_name,'Return Status After Calling Delivery_Action Wrapper',x_return_status);
1055     END IF;
1056     --
1057     wsh_util_core.api_post_call(
1058       p_return_status => x_return_status,
1059       x_num_errors    => l_num_errors,
1060       x_num_warnings  => l_num_warnings);
1061     --
1062     IF p_action_code = 'AUTOCREATE-TRIP' THEN
1063       IF l_del_action_out_rec.result_id_tab.count > 0 THEN
1064         l_first := l_del_action_out_rec.result_id_tab.first;
1065         IF l_del_action_out_rec.result_id_tab(l_first) IS NOT NULL THEN
1066           x_trip_id   := l_del_action_out_rec.result_id_tab(l_first);
1067           x_trip_name := wsh_trips_pvt.get_name(l_del_action_out_rec.result_id_tab(l_first));
1068         END IF;
1069       END IF;
1070     END IF;
1071     --
1072     IF l_num_warnings > 0 THEN
1073       x_return_status := wsh_util_core.g_ret_sts_warning;
1074     ELSE
1075       x_return_status := wsh_util_core.g_ret_sts_success; --bug 2398628
1076     END IF;
1077     --
1078     FND_MSG_PUB.Count_And_Get
1079       ( p_count => x_msg_count
1080       , p_data  => x_msg_data
1081       );
1082     --
1083     IF l_debug_on THEN
1084       WSH_DEBUG_SV.pop(l_module_name);
1085     END IF;
1086     --
1087   EXCEPTION
1088      WHEN FND_API.G_EXC_ERROR THEN
1089         x_return_status := FND_API.G_RET_STS_ERROR;
1090         --  Get message count and data
1091         FND_MSG_PUB.Count_And_Get
1092         ( p_count => x_msg_count
1093         , p_data  => x_msg_data
1094         );
1095       --
1096       IF l_debug_on THEN
1097         WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_EXCEP_LEVEL);
1098         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_ERROR');
1099       END IF;
1100       --
1101      WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1102         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1106         , p_data  => x_msg_data
1103         --  Get message count and data
1104         FND_MSG_PUB.Count_And_Get
1105         ( p_count => x_msg_count
1107         );
1108       --
1109       IF l_debug_on THEN
1110         WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
1111         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:FND_API.G_EXC_UNEXPECTED_ERROR');
1112       END IF;
1113       --
1114      WHEN OTHERS THEN
1115         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
1116         IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
1117         THEN
1118            FND_MSG_PUB.Add_Exc_Msg
1119            ( G_PKG_NAME
1120            , '_x_'
1121            );
1122         END IF;
1123         --  Get message count and data
1124         FND_MSG_PUB.Count_And_Get
1125         ( p_count => x_msg_count
1126         , p_data  => x_msg_data
1127         );
1128       --
1129       IF l_debug_on THEN
1130         WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '|| SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
1131         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
1132       END IF;
1133       --
1134 
1135   END Delivery_Action;
1136 
1137 --============================================================================
1138 -- PROCEDURE   : Generate_Documents            PUBLIC API
1139 --
1140 -- PARAMETERS  : p_report_set_name             Report Set Name
1141 --               p_organization_code           Organization Code
1142 --               p_delivery_name               Delivery Name's
1143 --               x_msg_count                   Error Message Count
1144 --               x_msg_data                    Error Message
1145 --               x_return_status               Return Status
1146 --
1147 -- VERSION     : current version               1.0
1148 --               initial version               1.0
1149 --
1150 -- COMMENT     : This Procedure is created for Backward Compatability.
1151 --               This procedure inturn calls procedure Delivery_Actions for
1152 --               generating documents.
1153 --
1154 -- CREATED  BY : version 1.0.1                 UESHANKA
1155 -- CREATION DT : version 1.0.1                 12/MAR/2003
1156 --
1157 --============================================================================
1158 
1159   PROCEDURE Generate_Documents
1160              ( p_report_set_name       IN   VARCHAR2,
1161                p_organization_code     IN   VARCHAR2,
1162                p_delivery_name         IN   WSH_UTIL_CORE.Column_Tab_Type,
1163                x_msg_count             OUT  NOCOPY  NUMBER,
1164                x_msg_data              OUT  NOCOPY  VARCHAR2,
1165                x_return_status         OUT  NOCOPY  VARCHAR2
1166              ) IS
1167  -- Local Variables
1168     l_delivery_count          NUMBER;
1169     l_count                   NUMBER;
1170     l_delivery_id             NUMBER;
1171     l_delivery_name           WSH_NEW_DELIVERIES.Name%TYPE;
1172     l_num_errors              NUMBER;
1173     l_num_warnings            NUMBER;
1174 
1175 --  Debug Variables
1176     l_debug_on                BOOLEAN;
1177     l_module_name             CONSTANT VARCHAR2(75) := 'WSH.PLSQL.' ||
1178                                                         G_PKG_NAME  ||
1179                                                         '.Generate_Documents';
1180 
1181  -- Parameter Variables for WSH_DOCUMENT_SET.Print_Document_Sets
1182     l_report_set_id           NUMBER;
1183     l_organization_id         NUMBER;
1184     l_trip_id                 WSH_TRIPS.Trip_Id%TYPE;
1185     l_trip_name               WSH_TRIPS.Name%TYPE;
1186     l_msg_count               NUMBER;
1187     l_msg_data                VARCHAR2(500);
1188     l_return_status           VARCHAR2(1);
1189     l_delivery_ids            WSH_UTIL_CORE.Id_Tab_Type;
1190     l_document_param_info     WSH_DOCUMENT_SETS.Document_Set_Tab_Type;
1191 
1192  -- Exception
1193     WSH_INVALID_ORGANIZATION  EXCEPTION;
1194     WSH_INVALID_DELIVERY      EXCEPTION;
1195   BEGIN
1196  -- Enabling Debug Starts
1197     l_debug_on := WSH_DEBUG_INTERFACE.G_DEBUG;
1198 
1199     IF ( l_debug_on IS NULL ) THEN
1200       l_debug_on := WSH_DEBUG_SV.Is_Debug_Enabled;
1201     END IF;
1202 
1203     IF l_debug_on THEN
1204       WSH_DEBUG_SV.Push(l_module_name, 'Generate_Documents');
1205       WSH_DEBUG_SV.Logmsg(l_module_name, 'Parameters passed to Generate_Documents');
1206       WSH_DEBUG_SV.Logmsg(l_module_name, 'P_Report_Set_Name   => ' || p_report_set_name);
1207       WSH_DEBUG_SV.Logmsg(l_module_name, 'P_Organization_Code => ' || p_organization_code);
1208       IF p_delivery_name.count > 0 THEN
1209         WSH_DEBUG_SV.Logmsg(l_module_name, 'Delivery Names Passed : ');
1210       FOR i IN 1..p_delivery_name.count LOOP
1211         WSH_DEBUG_SV.Logmsg(l_module_name, 'P_Delivery_Name(' || i || ') => '
1212                                                  || p_delivery_name(i));
1213       END LOOP;
1214       END IF;
1215     END IF;
1216 
1217  -- Assigning Success to x_return_status Initially
1218     x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1219     l_count := 0;
1220 
1221  -- Validation of Organization_Code
1222     WSH_UTIL_VALIDATE.Validate_Org(
1223                       l_organization_id  ,
1224                       p_organization_code,
1225                       x_return_status    );
1226     IF l_debug_on THEN
1230     IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
1227       WSH_DEBUG_SV.Logmsg(l_module_name, 'Return status from Validate_Org : ' || x_return_status);
1228     END IF;
1229 
1231       RAISE WSH_INVALID_ORGANIZATION;
1232     END IF;
1233 
1234  -- Validation of Delivery Names
1235     l_delivery_count := p_delivery_name.count;
1236 
1237     IF (nvl(l_delivery_count, 0) > 0) THEN
1238       BEGIN
1239       FOR i in 1..l_delivery_count LOOP
1240 
1241         l_delivery_name := p_delivery_name(i);
1242         l_delivery_id   := NULL;
1243         WSH_UTIL_VALIDATE.Validate_Delivery_Name(
1244                           l_delivery_id  ,
1245                           l_delivery_name,
1246                           x_return_status);
1247         IF l_debug_on THEN
1248           WSH_DEBUG_SV.Logmsg(l_module_name, 'Return status for Delivery Name (' ||
1249                                              l_delivery_name || ') : ' || x_return_status);
1250         END IF;
1251 
1252         IF (x_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
1253           FND_MESSAGE.Set_Name('WSH', 'WSH_INVALID_DELIVERY');
1254           FND_MESSAGE.Set_Token('DELIVERY', l_delivery_name);
1255           WSH_UTIL_CORE.Add_Message(x_return_status);
1256         ELSE
1257           l_count := l_count + 1;
1258           l_delivery_ids(l_count) := l_delivery_id;
1259         END IF;
1260 
1261       END LOOP;
1262       END;
1263     ELSE
1264       RAISE WSH_INVALID_DELIVERY;
1265     END IF;
1266 
1267  -- WSH_DELIVERIES_PUB.Delivery_Actions called for generating and printing reports.
1268     IF (l_count > 0) THEN
1269       FOR i IN 1..l_count LOOP -- { l_Count For Loop
1270 
1271         l_delivery_id := l_delivery_ids(i);
1272         WSH_DELIVERIES_PUB.Delivery_Action(
1273                            p_api_version_number  =>  1.0,
1274                            p_init_msg_list       =>  'F',
1275                            p_action_code         =>  'PRINT-DOC-SETS',
1276                            p_sc_report_set_name  =>  p_report_set_name,
1277                            p_delivery_id         =>  l_delivery_id  ,
1278                            x_msg_count           =>  l_msg_count,
1279                            x_msg_data            =>  l_msg_data,
1280                            x_trip_id             =>  l_trip_id ,
1281                            x_trip_name           =>  l_trip_name,
1282                            x_return_status       =>  l_return_status);
1283 
1284         WSH_UTIL_CORE.Api_Post_Call(
1285                     p_return_status  =>  l_return_status,
1286                     x_num_errors     =>  l_num_errors   ,
1287                     x_num_warnings   =>  l_num_warnings );
1288 
1289         IF l_debug_on THEN
1290           WSH_DEBUG_SV.Logmsg(l_module_name, 'Return status for Delivery Id (' ||
1291                                              l_delivery_id || ') : ' || l_return_status);
1292         END IF;
1293 
1294       END LOOP;  -- } l_Count For Loop.
1295 
1296       IF l_num_warnings > 0 THEN
1297         x_return_status := WSH_UTIL_CORE.G_RET_STS_WARNING;
1298       ELSE
1299         x_return_status := WSH_UTIL_CORE.G_RET_STS_SUCCESS;
1300       END IF;
1301 
1302     ELSE
1303       x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1304       IF l_debug_on THEN
1305         WSH_DEBUG_SV.Logmsg(l_module_name,
1306               'Deliveries passed are Invalid for generating ' || upper(p_report_set_name));
1307       END IF;
1308 
1309     END IF;
1310 
1311     FND_MSG_PUB.Count_And_Get(
1312                 p_count  => x_msg_count,
1313                 p_data   => x_msg_data );
1314 
1315     IF l_debug_on THEN
1316       WSH_DEBUG_SV.Pop(l_module_name);
1317     END IF;
1318 
1319  -- Exception Handling Block
1320     EXCEPTION
1321       WHEN FND_API.G_EXC_ERROR THEN
1322         x_return_status := FND_API.G_RET_STS_ERROR;
1323         IF l_debug_on THEN
1324           WSH_DEBUG_SV.Logmsg(l_module_name,
1325                               'Expected error occured. Oracle error message is ' || SQLERRM,
1326                               WSH_DEBUG_SV.C_EXCEP_LEVEL);
1327           WSH_DEBUG_SV.Pop(l_module_name, 'EXCEPTION: FND_API.G_EXC_ERROR');
1328         END IF;
1329         FND_MSG_PUB.Count_And_Get(
1330                     p_count  => x_msg_count,
1331                     p_data   => x_msg_data );
1332 
1333       WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
1334         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1335         IF l_debug_on THEN
1336           WSH_DEBUG_SV.Logmsg(l_module_name,
1337                               'Unexpected error occured. Oracle error message is ' || SQLERRM,
1338                               WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
1339           WSH_DEBUG_SV.Pop(l_module_name, 'EXCEPTION: FND_API.G_EXC_UNEXPECTED_ERROR');
1340         END IF;
1341         FND_MSG_PUB.Count_And_Get(
1342                     p_count  => x_msg_count,
1343                     p_data   => x_msg_data );
1344 
1345       WHEN WSH_INVALID_ORGANIZATION THEN
1346         x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1347         IF l_debug_on THEN
1348           WSH_DEBUG_SV.Logmsg(l_module_name, 'WSH_INVALID_ORGANIZATION : ' || x_return_status);
1349         END IF;
1350         FND_MSG_PUB.Count_And_Get(
1351                     p_count  => x_msg_count,
1352                     p_data   => x_msg_data );
1353 
1354       WHEN WSH_INVALID_DELIVERY THEN
1355         FND_MESSAGE.Set_Name('WSH', 'WSH_DOC_INVALID_DELIVERY');
1356         x_return_status := WSH_UTIL_CORE.G_RET_STS_ERROR;
1357         IF l_debug_on THEN
1358           WSH_DEBUG_SV.Logmsg(l_module_name, 'WSH_INVALID_DELIVERY : ' || x_return_status);
1359         END IF;
1360         WSH_UTIL_CORE.Add_Message(x_return_status);
1361         FND_MSG_PUB.Count_And_Get(
1362                     p_count  => x_msg_count,
1363                     p_data   => x_msg_data );
1364 
1365       WHEN OTHERS THEN
1366         WSH_UTIL_CORE.Default_Handler('WSH_DELIVERIES_PUB.GENEREATE_DOCUMENTS');
1367         x_return_status := WSH_UTIL_CORE.G_RET_STS_UNEXP_ERROR;
1368         IF l_debug_on THEN
1369           WSH_DEBUG_SV.Logmsg(l_module_name, 'Unexpected Error : ' || x_return_status);
1370           WSH_DEBUG_SV.Logmsg(l_module_name, 'Error Message : ' || SQLERRM);
1371         END IF;
1372         FND_MSG_PUB.Count_And_Get(
1373                     p_count  => x_msg_count,
1374                     p_data   => x_msg_data );
1375   END Generate_Documents;
1376 
1377 
1378 
1379 END WSH_DELIVERIES_PUB;