[Home] [Help]
PACKAGE BODY: APPS.PON_COMPARE_ATTR_PKG
Source
1 PACKAGE BODY PON_COMPARE_ATTR_PKG as
2 /* $Header: PONCHATB.pls 120.0 2005/06/01 14:14:39 appldev noship $ */
3
4 FUNCTION getGroupAttrTargetValue(auctionId number,bidNumber number,attrGroup varchar2) return number is
5
6 CURSOR c_record is
7 select bav.score,paa.attr_max_score,paa.weight
8 from pon_bid_attribute_values bav,
9 pon_auction_attributes paa
10 where bav.auction_header_id=auctionId and
11 bav.auction_header_id=paa.auction_header_id and
12 bav.bid_number = bidNumber and
13 bav.attribute_name=paa.attribute_name and
14 paa.attr_group=attrGroup;
15
16 groupTargetValue number :=0;
17 weightEnabled Boolean := false;
18 weightEnabledVarchar varchar2(1) := 'N';
19
20 begin
21
22 select nvl(hdr_attr_enable_weights,'N') into weightEnabledVarchar
23 from pon_auction_headers_all
24 where auction_header_id=auctionId;
25
26
27 if (weightEnabledVarchar = 'Y') then
28 weightEnabled := true;
29 end if;
30
31
32 For attr IN c_record LOOP
33 begin
34 if (weightEnabled = true) then
35 groupTargetValue := groupTargetValue +
36 (attr.score/attr.attr_max_score)*attr.weight;
37 else
38 groupTargetValue := groupTargetValue + attr.score;
39 end if;
40 end;
41 end loop;
42
43 return(groupTargetValue);
44
45 end getGroupAttrTargetValue;
46 --
47 -- ------------------------------------------------------------------------
48 -- calculate_bid_total_score
49 -- calculates bid header level score
50 -- ------------------------------------------------------------------------
51 --
52 FUNCTION get_bid_total_score
53 (p_bid_number IN pon_bid_headers.bid_number%TYPE)
54 RETURN NUMBER
55 IS
56 v_bid_total_score NUMBER;
57 BEGIN
58 --
59 SELECT
60 DECODE (NVL(pah.HDR_ATTR_ENABLE_WEIGHTS, 'N')
61 , 'Y', SUM(NVL(pba.WEIGHTED_SCORE, 0))
62 , 'N', SUM(NVL(pba.SCORE, 0))
63 ) INTO v_bid_total_score
64 FROM pon_bid_attribute_values pba, pon_auction_headers_all pah
65 WHERE pba.BID_NUMBER = p_bid_number
66 and pba.LINE_NUMBER = -1
67 and pba.AUCTION_HEADER_ID = pah.auction_header_id
68 GROUP BY pah.HDR_ATTR_ENABLE_WEIGHTS;
69
70 RETURN v_bid_total_score;
71 --
72 EXCEPTION
73 WHEN NO_DATA_FOUND THEN
74 RETURN NULL;
75 --
76 END get_bid_total_score;
77 --
78 --
79 end PON_COMPARE_ATTR_PKG;