[Home] [Help]
PACKAGE BODY: APPS.CSI_CTR_EST_CTR_READING_GRP
Source
1 PACKAGE BODY CSI_CTR_EST_CTR_READING_GRP AS
2 /* $Header: csigectb.pls 120.0.12010000.2 2008/10/31 21:09:46 rsinn ship $ */
3
4 -- --------------------------------------------------------
5 -- Define global variables
6 -- --------------------------------------------------------
7
8 --G_PKG_NAME CONSTANT VARCHAR2(30):= 'CSI_CTR_EST_CTR_READING_GRP';
9 G_FILE_NAME CONSTANT VARCHAR2(12) := 'csigectb.pls';
10
11 --|---------------------------------------------------
12 --| procedure name: estimate_counter_reading
13 --| description : procedure used to
14 --| estimate counter reading
15 --|---------------------------------------------------
16
17 PROCEDURE estimate_counter_reading
18 (
19 P_Api_Version_Number IN NUMBER,
20 P_Init_Msg_List IN VARCHAR2 := FND_API.G_FALSE,
21 P_Commit IN VARCHAR2 := FND_API.G_FALSE,
22 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
23 p_counter_id IN NUMBER,
24 p_estimation_period_start_date IN DATE,
25 p_estimation_period_end_date IN DATE,
26 p_avg_calculation_start_date IN DATE,
27 p_number_of_readings IN NUMBER,
28 x_estimated_usage_qty OUT NOCOPY NUMBER,
29 x_estimated_meter_reading OUT NOCOPY NUMBER,
30 x_estimated_period_start_rdg OUT NOCOPY NUMBER,
31 X_Return_Status OUT NOCOPY VARCHAR2,
32 X_Msg_Count OUT NOCOPY NUMBER,
33 X_Msg_Data OUT NOCOPY VARCHAR2
34 ) IS
35 l_api_name CONSTANT VARCHAR2(30) := 'ESTIMATE_COUNTER_READING';
36 l_api_version_number CONSTANT NUMBER := 1.0;
37 -- l_debug_level NUMBER;
38 BEGIN
39 -- Standard Start of API savepoint
40 SAVEPOINT ESTIMATE_COUNTER_READING;
41
42 -- Check for freeze_flag in csi_install_parameters is set to 'Y'
43 csi_ctr_gen_utility_pvt.check_ib_active;
44
45 -- Standard call to check for call compatibility.
46 IF NOT FND_API.Compatible_API_Call (l_api_version_number ,
47 p_api_version_number ,
48 l_api_name ,
49 G_PKG_NAME )
50 THEN
51 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
52 END IF;
53
54 -- Initialize message list if p_init_msg_list is set to TRUE.
55 IF FND_API.to_Boolean( p_init_msg_list ) THEN
56 FND_MSG_PUB.initialize;
57 END IF;
58
59 -- Initialize API return status to SUCCESS
60 x_return_status := FND_API.G_RET_STS_SUCCESS;
61
62 -- Read the debug profiles values in to global variable 7197402
63 CSI_CTR_GEN_UTILITY_PVT.read_debug_profiles;
64
65 -- Check the profile option debug_level for debug message reporting
66 -- l_debug_level:=fnd_profile.value('CSI_COUNTER_DEBUG_LEVEL');
67
68 -- If debug_level = 1 then dump the procedure name
69 IF (CSI_CTR_GEN_UTILITY_PVT.g_debug_level > 0) THEN
70 csi_ctr_gen_utility_pvt.put_line( 'estimate_counter_reading');
71 END IF;
72
73 -- If the debug level = 2 then dump all the parameters values.
74 IF (CSI_CTR_GEN_UTILITY_PVT.g_debug_level > 1) THEN
75 csi_ctr_gen_utility_pvt.put_line( 'estimate_counter_reading' ||
76 p_api_version_number ||'-'||
77 p_commit ||'-'||
78 p_init_msg_list ||'-'||
79 p_validation_level );
80 END IF;
81
82 -- call private API
83 CSI_COUNTER_READINGS_PVT.ESTIMATE_COUNTER_READING(
84 p_api_version => p_api_version_number,
85 p_init_msg_list => p_init_msg_list,
86 p_commit => p_commit,
87 p_validation_level => p_validation_level,
88 p_counter_id => p_counter_id,
89 p_estimation_period_start_date => p_estimation_period_start_date,
90 p_estimation_period_end_date => p_estimation_period_end_date,
91 p_avg_calculation_start_date => p_avg_calculation_start_date,
92 p_number_of_readings => p_number_of_readings,
93 x_estimated_usage_qty => x_estimated_usage_qty,
94 x_estimated_meter_reading => x_estimated_meter_reading,
95 x_estimated_period_start_rdg => x_estimated_period_start_rdg,
96 x_return_status => x_return_status,
97 x_msg_count => x_msg_count,
98 x_msg_data => x_msg_data
99 );
100 IF NOT (x_return_status = FND_API.G_RET_STS_SUCCESS ) THEN
101 ROLLBACK TO ESTIMATE_COUNTER_READING;
102 RAISE FND_API.G_EXC_ERROR;
103 END IF;
104
105 -- End of API Body.
106 IF FND_API.To_Boolean(p_commit) THEN
107 COMMIT WORK;
108 END IF;
109
110 FND_MSG_PUB.Count_And_Get
111 (p_count => x_msg_count,
112 p_data => x_msg_data
113 );
114
115 EXCEPTION
116 WHEN FND_API.G_EXC_ERROR THEN
117 ROLLBACK TO ESTIMATE_COUNTER_READING;
118 x_return_status := FND_API.G_RET_STS_ERROR ;
119 FND_MSG_PUB.Count_And_Get
120 (p_count => x_msg_count ,
121 p_data => x_msg_data
122 );
123 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
124 ROLLBACK TO ESTIMATE_COUNTER_READING;
125 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
126 FND_MSG_PUB.Count_And_Get
127 (p_count => x_msg_count ,
128 p_data => x_msg_data
129 );
130 WHEN OTHERS THEN
131 ROLLBACK TO ESTIMATE_COUNTER_READING;
132 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
133 IF FND_MSG_PUB.Check_Msg_Level(FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR) THEN
134 FND_MSG_PUB.Add_Exc_Msg(G_PKG_NAME ,l_api_name);
135 END IF;
136 FND_MSG_PUB.Count_And_Get
137 (p_count => x_msg_count ,
138 p_data => x_msg_data
139 );
140
141 END estimate_counter_reading;
142
143 END CSI_CTR_EST_CTR_READING_GRP;