[Home] [Help]
PACKAGE BODY: APPS.CN_SYSTEM_PARAMETERS_PVT
Source
1 PACKAGE BODY CN_SYSTEM_PARAMETERS_PVT AS
2 /*$Header: cnvsyspb.pls 115.9 2003/05/02 08:10:35 hithanki ship $*/
3
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'CN_SYSTEM_PARAMETERS_PVT';
5
6 PROCEDURE Get_Data
7 (x_name OUT NOCOPY VARCHAR2,
8 x_status OUT NOCOPY VARCHAR2,
9 x_status_code OUT NOCOPY VARCHAR2,
10 x_rev_class_hierarchy_id OUT NOCOPY NUMBER,
14 x_sob_calendar OUT NOCOPY VARCHAR2,
11 x_set_of_books_id OUT NOCOPY NUMBER,
12 x_sob_name OUT NOCOPY VARCHAR2,
13 x_sob_currency OUT NOCOPY VARCHAR2,
15 x_sob_period_type OUT NOCOPY VARCHAR2,
16 x_batch_size OUT NOCOPY NUMBER,
17 x_transfer_batch_size OUT NOCOPY NUMBER,
18 x_clawback_grace_days OUT NOCOPY NUMBER,
19 x_transaction_batch_size OUT NOCOPY NUMBER,
20 x_managerial_rollup OUT NOCOPY VARCHAR2,
21 x_latest_processed_date OUT NOCOPY DATE,
22 x_salesperson_batch_size OUT NOCOPY NUMBER,
23 x_rule_batch_size OUT NOCOPY NUMBER,
24 x_payables_flag OUT NOCOPY VARCHAR2,
25 x_payroll_flag OUT NOCOPY VARCHAR2,
26 x_payables_ccid_level OUT NOCOPY VARCHAR2,
27 x_usage_flag OUT NOCOPY VARCHAR2,
28 x_income_planner_disclaimer OUT NOCOPY VARCHAR2,
29 x_object_version_number OUT NOCOPY NUMBER) IS
30
31 CURSOR c is
32 select name, status, rev_class_hierarchy_id, set_of_books_id,
33 system_batch_size, transfer_batch_size, clawback_grace_days,
34 srp_batch_size, srp_rollup_flag, latest_processed_date, usage_flag,
35 salesrep_batch_size, cls_package_size, payables_flag, payroll_flag,
36 payables_ccid_level, income_planner_disclaimer,object_version_number
37 FROM cn_repositories
38 WHERE application_type = 'CN' and repository_id > 0;
39
40 r c%rowtype;
41 junk varchar2(30);
42 BEGIN
43 open c;
44 fetch c into r;
45 close c;
46
47 -- copy over information, avoiding nulls
48 x_name := r.name;
49 x_rev_class_hierarchy_id := nvl(r.rev_class_hierarchy_id, -1);
50 x_set_of_books_id := r.set_of_books_id;
51 x_batch_size := nvl(r.system_batch_size, 5000);
52 x_transfer_batch_size := nvl(r.transfer_batch_size, 5000);
53 x_clawback_grace_days := nvl(r.clawback_grace_days, 0);
54 x_transaction_batch_size := nvl(r.srp_batch_size, 0);
55 x_managerial_rollup := nvl(r.srp_rollup_flag, 'N');
56 x_latest_processed_date := r.latest_processed_date;
57 x_salesperson_batch_size := nvl(r.salesrep_batch_size, 0);
58 x_rule_batch_size := nvl(r.cls_package_size,0);
59 x_payables_flag := nvl(r.payables_flag, 'N');
60 x_payroll_flag := nvl(r.payroll_flag, 'N');
61 x_payables_ccid_level := r.payables_ccid_level;
62 x_usage_flag := nvl(r.usage_flag, 'A');
63 x_income_planner_disclaimer := r.income_planner_disclaimer;
64 x_object_version_number := r.object_version_number;
65 x_status_code := r.status;
66
67 -- call old forms API
68 CNSYSP_system_parameters_PKG.Populate_Fields
69 (x_set_of_books_id => r.set_of_books_id,
70 x_trx_rollup_method => null, -- not used
71 x_usage_flag => null, -- not used
72 x_status => r.status,
73 x_sob_name => x_sob_name,
74 x_sob_calendar => x_sob_calendar,
75 x_sob_period_type => x_sob_period_type,
76 x_sob_currency => x_sob_currency,
77 x_trx_rollup_method_string => junk,
78 x_usage_string => junk,
79 x_status_string => x_status);
80
81 END Get_Data;
82
83 PROCEDURE Update_Data
84 (p_api_version IN NUMBER ,
85 p_init_msg_list IN VARCHAR2 := FND_API.G_FALSE ,
86 p_commit IN VARCHAR2 := FND_API.G_FALSE ,
87 p_validation_level IN NUMBER := FND_API.G_VALID_LEVEL_FULL,
88 p_name IN VARCHAR2,
89 p_rev_class_hierarchy_id IN NUMBER,
90 p_set_of_books_id IN NUMBER,
91 p_batch_size IN NUMBER,
92 p_transfer_batch_size IN NUMBER,
93 p_clawback_grace_days IN NUMBER,
94 p_transaction_batch_size IN NUMBER,
95 p_managerial_rollup IN VARCHAR2,
96 p_salesperson_batch_size IN NUMBER,
97 p_rule_batch_size IN NUMBER,
98 p_payables_flag IN VARCHAR2,
99 p_payroll_flag IN VARCHAR2,
100 p_payables_ccid_level IN VARCHAR2,
101 p_income_planner_disclaimer IN VARCHAR2,
102 p_object_version_number IN NUMBER,
103 x_return_status OUT NOCOPY VARCHAR2 ,
104 x_msg_count OUT NOCOPY NUMBER ,
105 x_msg_data OUT NOCOPY VARCHAR2 ) IS
106
107 l_api_name CONSTANT VARCHAR2(30) := 'Update_Data';
108 l_api_version CONSTANT NUMBER := 1.0;
109
110 cursor c is
111 select object_version_number
112 from cn_repositories
113 where application_type = 'CN'
114 and repository_id > 0
115 for update of repository_id nowait;
116
117 tlinfo c%rowtype ;
118 BEGIN
119 -- Standard Start of API savepoint
120 SAVEPOINT Update_Data;
121 -- Standard call to check for call compatibility.
122 IF NOT FND_API.Compatible_API_Call
123 (l_api_version ,
124 p_api_version ,
125 l_api_name ,
126 G_PKG_NAME )
127 THEN
128 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
129 END IF;
130 -- Initialize message list if p_init_msg_list is set to TRUE.
131 IF FND_API.to_Boolean( p_init_msg_list ) THEN
132 FND_MSG_PUB.initialize;
136
133 END IF;
134 -- Initialize API return status to success
135 x_return_status := FND_API.G_RET_STS_SUCCESS;
137 -- API body
138 -- locking
139 open c;
140 fetch c into tlinfo;
141 if (c%notfound) then
142 close c;
143 fnd_message.set_name('CN', 'CN_RECORD_DELETED');
144 fnd_msg_pub.add;
145 raise fnd_api.g_exc_unexpected_error;
146 end if;
147 close c;
148
149 if (tlinfo.object_version_number <> p_object_version_number) then
150 fnd_message.set_name('CN', 'CN_RECORD_CHANGED');
151 fnd_msg_pub.add;
152 raise fnd_api.g_exc_unexpected_error;
153 end if;
154
155 -- updating
156 update cn_repositories
157 set name = p_name,
158 rev_class_hierarchy_id = p_rev_class_hierarchy_id,
159 set_of_books_id = p_set_of_books_id,
160 system_batch_size = p_batch_size,
161 transfer_batch_size = p_transfer_batch_size,
162 clawback_grace_days = p_clawback_grace_days,
163 srp_batch_size = p_transaction_batch_size,
164 srp_rollup_flag = p_managerial_rollup,
165 salesrep_batch_size = p_salesperson_batch_size,
166 cls_package_size = decode(p_rule_batch_size, 0, null,
167 p_rule_batch_size), -- 0 = null
168 payables_flag = p_payables_flag,
169 payroll_flag = p_payroll_flag,
170 payables_ccid_level = p_payables_ccid_level,
171 income_planner_disclaimer = p_income_planner_disclaimer,
172 last_update_date = sysdate,
173 last_updated_by = fnd_global.user_id,
174 last_update_login = fnd_global.login_id,
175 object_version_number = object_version_number + 1
176 where application_type = 'CN'
177 and repository_id > 0;
178
179 -- data fix for bug 1358579 built into original CNSYSP forms logic
180 insert into cn_period_sets
181 ( period_set_id,
182 period_set_name,
183 created_by,
184 creation_date )
185 select 0,
186 gl.period_set_name,
187 -1,
188 SYSDATE
189 from cn_repositories r,
190 gl_sets_of_books gl
191 where gl.set_of_books_id = r.set_of_books_id
192 and not exists
193 ( select 1 from cn_period_sets where period_set_id = 0 );
194
195
196 insert into cn_period_types
197 ( period_type_id,
198 period_type,
199 created_by,
200 creation_date )
201 select 0,
202 gl.accounted_period_type,
203 -1,
204 SYSDATE
205 from cn_repositories r,
206 gl_sets_of_books gl
207 where gl.set_of_books_id = r.set_of_books_id
208 and not exists
209 ( select 1 from cn_period_types where period_type_id = 0 );
210
211 update cn_repositories
212 set period_set_id = 0 ,
213 period_type_id = 0
214 where set_of_books_id is not null;
215
216 update cn_period_types
217 set period_type = 'Period'
218 where period_type_id = -1000
219 and period_type = 'Month';
220
221 -- End of API body.
222
223 -- Standard check of p_commit.
224 IF FND_API.To_Boolean( p_commit ) THEN
225 COMMIT WORK;
226 END IF;
227 -- Standard call to get message count and if count is 1, get message info.
228 FND_MSG_PUB.Count_And_Get
229 (p_count => x_msg_count ,
230 p_data => x_msg_data ,
231 p_encoded => FND_API.G_FALSE );
232 EXCEPTION
233 WHEN FND_API.G_EXC_ERROR THEN
234 ROLLBACK TO Update_Data;
235 x_return_status := FND_API.G_RET_STS_ERROR ;
236 FND_MSG_PUB.count_and_get
237 (p_count => x_msg_count ,
238 p_data => x_msg_data ,
239 p_encoded => FND_API.G_FALSE );
240 WHEN FND_API.G_EXC_UNEXPECTED_ERROR THEN
241 ROLLBACK TO Update_Data;
242
243 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
244 FND_MSG_PUB.count_and_get
245 (p_count => x_msg_count ,
246 p_data => x_msg_data ,
247 p_encoded => FND_API.G_FALSE );
248 WHEN OTHERS THEN
249 ROLLBACK TO Update_Data;
250 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR ;
251 IF FND_MSG_PUB.check_msg_level
252 (FND_MSG_PUB.G_MSG_LVL_UNEXP_ERROR)
253 THEN
254 FND_MSG_PUB.add_exc_msg
255 (G_PKG_NAME ,
256 l_api_name );
257 END IF;
258 FND_MSG_PUB.count_and_get
259 (p_count => x_msg_count ,
260 p_data => x_msg_data ,
261 p_encoded => FND_API.G_FALSE );
262 END Update_Data;
263 END CN_SYSTEM_PARAMETERS_PVT;