DBA Data[Home] [Help]

PACKAGE BODY: APPS.PO_ASL_UPGRADE_SV3

Source


1 PACKAGE BODY PO_ASL_UPGRADE_SV3 AS
2 /* $Header: POXA3LUB.pls 115.2 2002/11/27 02:08:51 sbull ship $*/
3 
4 /*===========================================================================
5 
6   PROCEDURE NAME:       get_split_multiplier
7 
8 ===========================================================================*/
9 
10 PROCEDURE get_split_multiplier(
11 	x_autosource_rule_id	IN	NUMBER,
12 	x_split_multiplier	IN OUT NOCOPY  NUMBER,
13 	x_add_percent		IN OUT NOCOPY  VARCHAR2
14 ) IS
15 	x_total_allocation	NUMBER;
16 	x_progress		VARCHAR2(30) := '';
17 BEGIN
18 
19     -- Determine total allocation percentage for this autosource rule.
20     -- If total allocation percent is not 0 or 100, we need to scale up
21     -- the percentages to sum up to 100.
22 
23     BEGIN
24 
25     x_progress := '010';
26     SELECT  nvl(sum(split), 0)
27     INTO    x_total_allocation
28     FROM    PO_AUTOSOURCE_VENDORS
29     WHERE   autosource_rule_id = x_autosource_rule_id;
30 
31     EXCEPTION
32         WHEN NO_DATA_FOUND THEN
33 	    x_total_allocation := 0;
34     END;
35 
36     IF x_total_allocation NOT IN (0, 100) THEN
37 	x_split_multiplier := 100/x_total_allocation;
38 
39 	-- If still do not add up to 100% after scaling, we
40 	-- need to add an extra percent to the split for the
41 	-- top ranked vendor.
42 
43 	x_progress := '020';
44 	SELECT  sum(round(split*(100/x_total_allocation)))
45 	INTO	x_total_allocation
46 	FROM	po_autosource_vendors
47 	WHERE   autosource_rule_id = x_autosource_rule_id;
48 
49 	IF x_total_allocation < 100 THEN
50 	    x_add_percent := 'Y';
51 	ELSE
52 	    x_add_percent := 'N';
53 	END IF;
54 
55     ELSE
56 	x_split_multiplier := 1;
57     END IF;
58 
59 EXCEPTION
60     WHEN OTHERS THEN
61 	fnd_file.put_line(fnd_file.log, '** Exception in get_split_multiplier');
62 	fnd_file.put_line(fnd_file.log, 'x_progress = '||x_progress);
63 	PO_MESSAGE_S.SQL_ERROR('GET_SPLIT_MULTIPLIER', x_progress, sqlcode);
64 END;
65 
66 END PO_ASL_UPGRADE_SV3;