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