DBA Data[Home] [Help]

PACKAGE BODY: APPS.WSH_ITM_UTIL

Source


1 PACKAGE BODY WSH_ITM_UTIL AS
2 /* $Header: WSHUTITB.pls 115.5 2004/01/19 14:39:18 sgumaste ship $ */
3 
4 
5   -- Name
6   --   GET_SERVICE_DETAILS
7   --   Purpose
8   --   On passing the p_application_id, p_master_organization_id and
9   --   p_organization_id this procedure returns the services defined for
10   --   user and the additional country codes for all the services.
11   -- Arguments
12   --   p_application_id               p_application_id of a request
13   --   p_master_organization_id       p_master_organization_id of a request
14   --   p_organization_id              p_organization_id of a request
15   --   x_service_tbl                  service types and addl_country_codes
16   --                                  returned as a PLSQL table Service_Rec_Type
17   --   x_supports_combination_flag    A flag indicating whether a combined
18   --                                  request for all the services returned
19   --                                  by x_service_types_rec is supported or
20   --                                  not.
21   --   x_return_status                Return Status
22   -- Notes
23   --   Refer the record T_SERVICE_TYPES_REC
24 
25 
26 
27 PROCEDURE GET_SERVICE_DETAILS (
28        p_application_id              IN  NUMBER,
29        p_master_organization_id      IN  NUMBER,
30        p_organization_id             IN  NUMBER,
31        x_service_tbl                 OUT NOCOPY  Service_Tbl_Type,
32        x_supports_combination_flag   OUT NOCOPY  VARCHAR2,
33        x_return_status               OUT NOCOPY  VARCHAR2)
34 IS
35     priority               NUMBER := 0;
36     service_tbl            Service_Tbl_Type;
37     G_MISS_SERVICE_TBL     Service_Tbl_Type;
38     vendor_id              WSH_ITM_VENDORS.VENDOR_ID%TYPE := 0;
39     comb_flag              WSH_ITM_VENDORS.SUPPORTS_COMBINATION_FLAG%TYPE := 'Y';
40     l_addl_country_code    VARCHAR2(5);
41     l_sql_error            VARCHAR2(2000);
42     i                      NUMBER := 1;
43 
44     CURSOR Get_Services(
45 	p_application_id NUMBER,
46 	p_master_organization_id NUMBER) IS
47     --Bug3330869        SELECT * from (
48     SELECT      priority                        ,
49                 service_type                    ,
50                 addl_country_check_req          ,
51                 vendor_id                       ,
52                 supports_combination_flag
53     FROM (
54        SELECT 1 priority,
55               s.service_type,
56               s.addl_country_check_req,
57               v.vendor_id,
58               v.supports_combination_flag
59        FROM   WSH_ITM_SERVICE_PREFERENCES us1,
60 	      WSH_ITM_VENDOR_SERVICES s,
61 	      WSH_ITM_VENDORS v
62        WHERE  us1.application_id         = p_application_id   and
63               us1.master_organization_id = p_master_organization_id  and
64               us1.vendor_service_id      = s.vendor_service_id and
65               us1.active_flag            = 'Y'and
66               s.vendor_id                = v.vendor_id
67        UNION
68        SELECT 2 priority,
69               s.service_type,
70               s.addl_country_check_req,
71               v.vendor_id,
72               v.supports_combination_flag
73        FROM   WSH_ITM_SERVICE_PREFERENCES us1,
74 	      WSH_ITM_VENDOR_SERVICES s,
75 	      WSH_ITM_VENDORS v
76        WHERE  us1.application_id         = p_application_id   and
77               us1.master_organization_id   is null  and
78               us1.active_flag            = 'Y'and
79               us1.vendor_service_id      = s.vendor_service_id and
80               s.vendor_id                = v.vendor_id
81 	     ) order by priority;
82 
83   BEGIN
84     --
85     x_return_status := FND_API.G_RET_STS_SUCCESS;
86     oe_debug_pub.add('***Inside the procedure WSH_ITM_UTIL.GET_SERVICE_DETAILS***');
87     oe_debug_pub.add('Application Id ' || p_application_id);
88     oe_debug_pub.add('Master Organization  Id ' || p_master_organization_id);
89     oe_debug_pub.add('Organization Id ' || p_organization_id);
90 
91     service_tbl := G_MISS_SERVICE_TBL;
92 
93     BEGIN
94         SELECT ITM_ADDITIONAL_COUNTRY_CODE
95         INTO l_addl_country_code
96         FROM WSH_SHIPPING_PARAMETERS
97         WHERE organization_id = p_organization_id;
98     EXCEPTION
99         WHEN NO_DATA_FOUND THEN
100            l_addl_country_code := '';
101     END;
102 
103     oe_debug_pub.add('Additional Country Code is ' || l_addl_country_code);
104 
105     FOR ser_details IN Get_Services(p_application_id, p_master_organization_id)
106     LOOP
107 
108       IF ser_details.priority >= priority THEN
109        priority := ser_details.priority;
110       ELSE
111        EXIT;
112       END IF;
113 
114       service_tbl(i).service_type_code := ser_details.service_type;
115       IF ser_details.addl_country_check_req = 'Y' then
116         service_tbl(i).addl_country_code := l_addl_country_code;
117       ELSE
118         service_tbl(i).addl_country_code := '';
119       END IF;
120 
121       oe_debug_pub.add('Service Type ' || service_tbl(i).service_type_code);
122       oe_debug_pub.add('Additional Country Code ' || service_tbl(i).addl_country_code );
123 
124       i := i + 1;
125 
126       IF vendor_id = 0 then
127         vendor_id := ser_details.vendor_id;
128       END IF;
129 
130       IF vendor_id <> ser_details.vendor_id OR ser_details.supports_combination_flag = 'N' THEN
131         comb_flag := 'N';
132       END IF;
133 
134       vendor_id := ser_details.vendor_id;
135 
136     END LOOP;
137 
138     oe_debug_pub.add('Supports Combination Flag ' || comb_flag );
139     x_supports_combination_flag := comb_flag;
140     x_service_tbl               := service_tbl;
141     oe_debug_pub.add('***End of  the procedure WSH_ITM_UTIL.GET_SERVICE_DETAILS***');
142 
143 
144   EXCEPTION
145 
146     WHEN OTHERS THEN
147       l_sql_error := SQLERRM;
148       OE_DEBUG_PUB.Add('Processing Failed with an Error');
149       OE_DEBUG_PUB.Add('The unexpected error is :' || l_sql_error);
150       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
151 
152   END GET_SERVICE_DETAILS;
153 
154 
155   -- Name
156   --   UPDATE_PROCESS_FLAG
157   --   Purpose
158   --   To update the process_flag of a request.
159   -- Arguments
160   --   p_control_id_list              A PLSQL Table containing the list of transaction control id values
161   --   p_process_flag                 process_flag value
162   --   x_return_status                Return Status
163 
164 
165 PROCEDURE UPDATE_PROCESS_FLAG (
166        p_control_id_list             IN  CONTROL_ID_LIST,
167        p_process_flag                IN  NUMBER,
168        x_return_status               OUT NOCOPY  VARCHAR2)
169 IS
170     l_sql_error            VARCHAR2(2000);
171     i                      NUMBER;
172 
173   BEGIN
174 
175     --
176     x_return_status := FND_API.G_RET_STS_SUCCESS;
177     oe_debug_pub.add('In the procedure WSH_ITM_UTIL.UPDATE_PROCESS_FLAG');
178 
179     FORALL i IN p_control_id_list.FIRST..p_control_id_list.LAST
180      UPDATE WSH_ITM_REQUEST_CONTROL
181      SET
182         PROCESS_FLAG = p_process_flag
183      WHERE REQUEST_CONTROL_ID = p_control_id_list(i);
184 
185     oe_debug_pub.add('End of the procedure WSH_ITM_UTIL.UPDATE_PROCESS_FLAG');
186 
187   EXCEPTION
188 
189     WHEN OTHERS THEN
190       l_sql_error := SQLERRM;
191       oe_debug_pub.add('Processing Failed with an Error');
192       oe_debug_pub.add('The unexpected error is :' || l_sql_error);
193       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
194 
195   END UPDATE_PROCESS_FLAG;
196 
197   -- Name
198   --   get vendor
199   --   Purpose
200   --   To get the Vendor name from the Request Control ID
201   -- Arguments
202   --   p_request_control_id        p_request_control_id of a request
203   --   x_service_provider          VendorName
204   PROCEDURE GET_SERVICE_PROVIDER(
205         p_request_control_id    IN NUMBER,
206         x_service_provider      OUT NOCOPY VARCHAR2) IS
207   BEGIN
208 	SELECT VENDOR INTO x_service_provider FROM
209 	( SELECT 1 PRIORITY, V.SERVICE_PROVIDER VENDOR
210   	  FROM WSH_ITM_SERVICE_PREFERENCES US1,
211 	  WSH_ITM_VENDOR_SERVICES S, WSH_ITM_VENDORS V,
212   		WSH_ITM_REQUEST_CONTROL RC
213   	  WHERE US1.APPLICATION_ID = RC.APPLICATION_ID AND
214   	        US1.MASTER_ORGANIZATION_ID = RC.MASTER_ORGANIZATION_ID  AND
215   		US1.VENDOR_SERVICE_ID = S.VENDOR_SERVICE_ID AND
216   		S.VENDOR_ID = V.VENDOR_ID AND
217   		US1.ACTIVE_FLAG = 'Y' AND
218   		S.SERVICE_TYPE = RC.SERVICE_TYPE_CODE AND
219   		RC.REQUEST_CONTROL_ID = p_request_control_id
220   	 UNION
221   	 SELECT 2 PRIORITY, V.SERVICE_PROVIDER VENDOR
222   	 FROM WSH_ITM_SERVICE_PREFERENCES US1,
223   		WSH_ITM_VENDOR_SERVICES S, WSH_ITM_VENDORS V,
224   		WSH_ITM_REQUEST_CONTROL RC
225   	 WHERE US1.APPLICATION_ID = RC.APPLICATION_ID AND
226   		US1.MASTER_ORGANIZATION_ID IS NULL AND
227   		US1.VENDOR_SERVICE_ID = S.VENDOR_SERVICE_ID AND
228   		S.VENDOR_ID = V.VENDOR_ID AND
229   		US1.ACTIVE_FLAG = 'Y' AND
230   		S.SERVICE_TYPE = RC.SERVICE_TYPE_CODE AND
231   		RC.REQUEST_CONTROL_ID = p_request_control_id
232   	ORDER BY PRIORITY
233 	) WHERE ROWNUM < 2;
234     EXCEPTION
235 	WHEN NO_DATA_FOUND THEN
236 	   x_service_provider := NULL;
237         WHEN OTHERS THEN
238 	   x_service_provider := NULL;
239   END GET_SERVICE_PROVIDER;
240 
241 
242 END WSH_ITM_UTIL;