DBA Data[Home] [Help]

PACKAGE BODY: APPS.OE_CONFIG

Source


1 PACKAGE BODY OE_CONFIG AS
2 /* $Header: oexczdfb.pls 115.8 2000/02/16 18:31:10 pkm ship    $ */
3 
4 
5 function CZ_BCE_DETAILS_FLAG(comp_common_bill_sequence_id IN NUMBER)
6    RETURN VARCHAR2
7 IS
8         CURSOR details(comp_common_bill_sequence_id NUMBER) IS
9 
10         select 'Y'
11         from   bom_inventory_components bic
12         where  bic.bill_sequence_id = comp_common_bill_sequence_id
13         and    (bic.bom_item_type = 1
14                 or bic.bom_item_type = 2
15                 or (bic.optional = 1 and bic.bom_item_type = 4)
16                );
17 
18 --The cursor "details" has been changed to resolve the issue where "+" signs were
19 --not being displayed in the config window for mandatory option classes having
20 --optional items under it (bug #615826). The previous sql used to look at the
21 --immediate children of the referenced item. It has been changed to look all
22 --the way down the tree.
23 
24 /*        select 'Y'
25         from   bom_bill_of_materials bom
26         where  bom.assembly_item_id (+) = assembly_id
27         and    bom.organization_id = org_id
28         and    nvl(bom.alternate_bom_designator,'-99') = nvl(alt_desg,'-99')
29         and    exists (select 'Exists'
30                       from   bom_inventory_components bic
31                       where  bic.bill_sequence_id = bom.common_bill_sequence_id
32                       and    optional = 1);*/
33 
34         details_flag VARCHAR2(15) := 'N';
35    BEGIN
36         OPEN details(comp_common_bill_sequence_id);
37         FETCH details into details_flag;
38         IF SQL%NOTFOUND THEN
39           details_flag := 'N';
40         END IF;
41         CLOSE details;
42 
43         return(details_flag);
44    END CZ_BCE_DETAILS_FLAG;
45 
46 
47 FUNCTION cz_get_list_price( component_item_id IN NUMBER,
48                         primary_uom_code IN VARCHAR2,
49                         list_id IN NUMBER,
50 			prc_attr1 IN VARCHAR2 DEFAULT NULL,
51 			prc_attr2 IN VARCHAR2 DEFAULT NULL,
52 			prc_attr3 IN VARCHAR2 DEFAULT NULL,
53 			prc_attr4 IN VARCHAR2 DEFAULT NULL,
54 			prc_attr5 IN VARCHAR2 DEFAULT NULL,
55 			prc_attr6 IN VARCHAR2 DEFAULT NULL,
56 			prc_attr7 IN VARCHAR2 DEFAULT NULL,
57 			prc_attr8 IN VARCHAR2 DEFAULT NULL,
58 			prc_attr9 IN VARCHAR2 DEFAULT NULL,
59 			prc_attr10 IN VARCHAR2 DEFAULT NULL,
60 			prc_attr11 IN VARCHAR2 DEFAULT NULL,
61 			prc_attr12 IN VARCHAR2 DEFAULT NULL,
62 			prc_attr13 IN VARCHAR2 DEFAULT NULL,
63 			prc_attr14 IN VARCHAR2 DEFAULT NULL,
64 			prc_attr15 IN VARCHAR2 DEFAULT NULL)
65 
66 RETURN NUMBER
67 IS
68 --****************************************************************************
69 -- This function is used to populate the list price of an item in the config window.
70 -- It checks for the list price in the following places in the following order:
71 -- 1. The primary price list with the pricing attributes on the price list
72 --    matching the pricing attributes on the line.
73 -- 2. The primary price list without checking if the attributes match.
74 -- 3. The list price on the item.
75 --*****************************************************************************
76 
77    CURSOR price(component_item_id NUMBER,
78                 primary_uom_code VARCHAR2,
79                 x_price_list_id NUMBER,
80 		prc_attr1 VARCHAR2,
81 		prc_attr2  VARCHAR2,
82 		prc_attr3  VARCHAR2,
83 		prc_attr4  VARCHAR2,
84 		prc_attr5  VARCHAR2,
85 		prc_attr6  VARCHAR2,
86 		prc_attr7  VARCHAR2,
87 		prc_attr8  VARCHAR2,
88 		prc_attr9  VARCHAR2,
89 		prc_attr10  VARCHAR2,
90 		prc_attr11  VARCHAR2,
91 		prc_attr12  VARCHAR2,
92 		prc_attr13  VARCHAR2,
93 		prc_attr14  VARCHAR2,
94 		prc_attr15  VARCHAR2) IS
95    SELECT  NVL(PRL.LIST_PRICE,SEL.LIST_PRICE)
96      FROM    SO_PRICE_LISTS PRI
97          ,   SO_PRICE_LIST_LINES PRL
98          ,   SO_PRICE_LISTS SEC
99          ,   SO_PRICE_LIST_LINES SEL
100      WHERE   PRL.INVENTORY_ITEM_ID (+)= component_item_id
101        AND    PRL.UNIT_CODE (+)=  primary_uom_code
102        AND    PRL.PRICE_LIST_ID (+) +0  = PRI.PRICE_LIST_ID
103        AND    TRUNC(SYSDATE) BETWEEN NVL(PRL.START_DATE_ACTIVE(+),TRUNC(SYSDATE))
104              AND NVL(PRL.END_DATE_ACTIVE(+),TRUNC(SYSDATE))
105        AND    PRI.PRICE_LIST_ID = x_price_list_id
106        AND    TRUNC(SYSDATE) BETWEEN NVL(PRI.START_DATE_ACTIVE,TRUNC(SYSDATE))
107              AND NVL(PRI.END_DATE_ACTIVE,TRUNC(SYSDATE))
108        AND    SEL.INVENTORY_ITEM_ID (+)= component_item_id
109        AND    SEL.UNIT_CODE (+)= primary_uom_code
110        AND    TRUNC(SYSDATE) BETWEEN NVL(SEL.START_DATE_ACTIVE(+),TRUNC(SYSDATE))
111               AND NVL(SEL.END_DATE_ACTIVE(+),TRUNC(SYSDATE))
112        AND    SEC.PRICE_LIST_ID = NVL(PRI.SECONDARY_PRICE_LIST_ID,
113                                     PRI.PRICE_LIST_ID)
114        AND    TRUNC(SYSDATE) BETWEEN NVL(SEC.START_DATE_ACTIVE,TRUNC(SYSDATE))
115               AND NVL(SEC.END_DATE_ACTIVE,TRUNC(SYSDATE))
116        AND    SEL.PRICE_LIST_ID (+) +0  = SEC.PRICE_LIST_ID
117        --AND    NVL(PRL.PRICING_CONTEXT,' ') = ' '
118        AND    NVL(PRL.PRICING_ATTRIBUTE1,'NULL') = NVL(prc_attr1, 'NULL')
119        AND    NVL(PRL.PRICING_ATTRIBUTE2,'NULL') = NVL(prc_attr2, 'NULL')
120        AND    NVL(PRL.PRICING_ATTRIBUTE3,'NULL') = NVL(prc_attr3, 'NULL')
121        AND    NVL(PRL.PRICING_ATTRIBUTE4,'NULL') = NVL(prc_attr4, 'NULL')
122        AND    NVL(PRL.PRICING_ATTRIBUTE5,'NULL') = NVL(prc_attr5, 'NULL')
123        AND    NVL(PRL.PRICING_ATTRIBUTE6,'NULL') = NVL(prc_attr6, 'NULL')
124        AND    NVL(PRL.PRICING_ATTRIBUTE7,'NULL') = NVL(prc_attr7, 'NULL')
125        AND    NVL(PRL.PRICING_ATTRIBUTE8,'NULL') = NVL(prc_attr8, 'NULL')
126        AND    NVL(PRL.PRICING_ATTRIBUTE9,'NULL') = NVL(prc_attr9, 'NULL')
127        AND    NVL(PRL.PRICING_ATTRIBUTE10,'NULL') = NVL(prc_attr10, 'NULL')
128        AND    NVL(PRL.PRICING_ATTRIBUTE11,'NULL') = NVL(prc_attr11, 'NULL')
129        AND    NVL(PRL.PRICING_ATTRIBUTE12,'NULL') = NVL(prc_attr12, 'NULL')
130        AND    NVL(PRL.PRICING_ATTRIBUTE13,'NULL') = NVL(prc_attr13, 'NULL')
131        AND    NVL(PRL.PRICING_ATTRIBUTE14,'NULL') = NVL(prc_attr14, 'NULL')
132        AND    NVL(PRL.PRICING_ATTRIBUTE15,'NULL') = NVL(prc_attr15, 'NULL')
133        --AND    NVL(SEL.PRICING_CONTEXT,' ') = ' '
134        --AND    NVL(SEL.PRICING_ATTRIBUTE1,' ') = ' '
135        --AND    NVL(SEL.PRICING_ATTRIBUTE2,' ') = ' '
136        --AND    NVL(SEL.PRICING_ATTRIBUTE3,' ') = ' '
137        --AND    NVL(SEL.PRICING_ATTRIBUTE4,' ') = ' '
138        --AND    NVL(SEL.PRICING_ATTRIBUTE5,' ') = ' '
139        --AND    NVL(SEL.PRICING_ATTRIBUTE6,' ') = ' '
140        --AND    NVL(SEL.PRICING_ATTRIBUTE7,' ') = ' '
141        --AND    NVL(SEL.PRICING_ATTRIBUTE8,' ') = ' '
142        --AND    NVL(SEL.PRICING_ATTRIBUTE9,' ') = ' '
143        --AND    NVL(SEL.PRICING_ATTRIBUTE10,' ') = ' '
144        --AND    NVL(SEL.PRICING_ATTRIBUTE11,' ') = ' '
145        --AND    NVL(SEL.PRICING_ATTRIBUTE12,' ') = ' '
146        --AND    NVL(SEL.PRICING_ATTRIBUTE13,' ') = ' '
147        --AND    NVL(SEL.PRICING_ATTRIBUTE14,' ') = ' '
148        --AND    NVL(SEL.PRICING_ATTRIBUTE15,' ') = ' '
149 	;
150 
151      CURSOR dummy_price(component_item_id NUMBER) IS
152 	select LIST_PRICE_PER_UNIT
153 	from mtl_system_items_kfv msi
154 	where msi.inventory_item_id = component_item_id;
155 
156      x_list_price NUMBER ;
157 
158 BEGIN
159 
160        if (list_id is NULL) then
161           return(0);
162        end if;
163        open dummy_price(component_item_id);
164        fetch dummy_price into x_list_price;
165        if dummy_price%NOTFOUND then
166 		x_list_price := 0;
167        end if;
168        close dummy_price;
169 
170        open price(component_item_id,
171                 primary_uom_code,
172                 list_id,
173 		prc_attr1,
174 		prc_attr2,
175 		prc_attr3,
176 		prc_attr4,
177 		prc_attr5,
178 		prc_attr6,
179 		prc_attr7,
180 		prc_attr8,
181 		prc_attr9,
182 		prc_attr10,
183 		prc_attr11,
184 		prc_attr12,
185 		prc_attr13,
186 		prc_attr14,
187 		prc_attr15);
188 
189 	FETCH price into x_list_price;
190 	IF price%NOTFOUND THEN
191 		CLOSE price;
192 		OPEN price(component_item_id,
193                 	primary_uom_code,
194                 	list_id,
195 			'NULL',
196 			'NULL',
197 			'NULL',
198 			'NULL',
199 			'NULL',
200 			'NULL',
201 			'NULL',
202 			'NULL',
203 			'NULL',
204 			'NULL',
205 			'NULL',
206 			'NULL',
207 			'NULL',
208 			'NULL',
209 			'NULL');
210 		FETCH price into x_list_price;
211 		IF price%NOTFOUND THEN
212 			CLOSE price;
213 			return(x_list_price);
214 		END IF;
215 	ELSE
216 		CLOSE price;
217 		return(x_list_price);
218 	END IF;
219       return(x_list_price);
220 END cz_get_list_price;
221 
222 
223 function CZ_MESSAGE_COUNT(x_system_id   IN NUMBER,
224                         x_header_id   IN NUMBER,
225                         x_line_id     IN NUMBER)
226    RETURN NUMBER
227 is
228         x_count number := 0;
229    BEGIN
230         return(x_count);
231    END CZ_MESSAGE_COUNT;
232 
233 function CZ_ERROR_COUNT(x_system_id   IN NUMBER,
234                         x_header_id   IN NUMBER,
235                         x_line_id     IN NUMBER)
236    RETURN NUMBER
237 is
238         x_count number := 0;
239    BEGIN
240 
241         return(x_count);
242 
243    END CZ_ERROR_COUNT;
244 
245 function CZ_AUTOSELECT_COUNT(x_system_id   IN NUMBER,
246                         x_header_id   IN NUMBER,
247                         x_line_id     IN NUMBER)
248    RETURN NUMBER
249 is
250         x_count number := 0;
251    BEGIN
252 
253         return(x_count);
254 
255    END CZ_AUTOSELECT_COUNT;
256 
257 function CZ_OVERRIDE_ERROR_COUNT(x_system_id   IN NUMBER,
258                         x_header_id   IN NUMBER,
259                         x_line_id     IN NUMBER)
260    RETURN NUMBER
261 is
262         x_count number := 0;
263    BEGIN
264 
265         return(x_count);
266 
267    END CZ_OVERRIDE_ERROR_COUNT;
268 
269 function CZ_OVERRIDEN_COUNT(x_system_id   IN NUMBER,
270                         x_header_id   IN NUMBER,
271                         x_line_id     IN NUMBER)
272    RETURN NUMBER
273 is
274         x_count number := 0;
275    BEGIN
276 
277         return(x_count);
278 
279    END CZ_OVERRIDEN_COUNT;
280 
281 
282 function CZ_WARN_COUNT(x_system_id   IN NUMBER,
283                         x_header_id   IN NUMBER,
284                         x_line_id     IN NUMBER)
285    RETURN NUMBER
286 is
287 
288         x_count number := 0;
289    BEGIN
290         return(x_count);
291    END CZ_WARN_COUNT;
292 
293 function CZ_SUGGEST_COUNT(x_system_id   IN NUMBER,
297 is
294                         x_header_id   IN NUMBER,
295                         x_line_id     IN NUMBER)
296    RETURN NUMBER
298         x_count number := 0;
299 
300    BEGIN
301         return(x_count);
302    END CZ_SUGGEST_COUNT;
303 
304 
305 END OE_CONFIG;