DBA Data[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;