DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_PLANNING_RESOURCE_PUB

Source


1 PACKAGE BODY Pa_Planning_Resource_Pub AS
2 /* $Header: PAPRESPB.pls 120.0 2005/05/30 10:13:59 appldev noship $*/
3 
4 /**************************************************************
5  * Procedure   : Create_Planning_Resource
6  * Description : The purpose of this procedure is to Validate
7  *               and create a new planning resource  for a
8  *               resource list.
9  *               It first checks for the uniqueness of the
10  *               p_resource_alias
11  * Calls Prog  : pa_planning_resource_utils.Validate_Planning_Resource,
12  *               pa_res_list_members_pkg.insert_row
13  *               pa_planning_resource_utils. Get_Plan_Res_Combination
14  ****************************************************************/
15 PROCEDURE Create_Planning_Resource(
16        p_commit                    IN    VARCHAR2 DEFAULT FND_API.G_FALSE,
17        p_init_msg_list             IN    VARCHAR2 DEFAULT FND_API.G_FALSE,
18        p_resource_list_id          IN    VARCHAR2,
19        P_planning_resource_in_tbl  IN           Planning_Resource_In_Tbl,
20        X_planning_resource_out_tbl OUT NOCOPY   Planning_Resource_Out_Tbl,
21        x_return_status             OUT NOCOPY  VARCHAR2,
22        x_msg_count                 OUT NOCOPY  NUMBER,
23        x_error_msg_data            OUT NOCOPY  VARCHAR2  )
24 IS
25 BEGIN
26 -- First clear the message stack.
27    IF FND_API.to_boolean( p_init_msg_list )
28    THEN
29            FND_MSG_PUB.initialize;
30    END IF;
31 
32    /***************************************************************
33     * For Loop. To loop through the table of records and
34     * Validate each one of them and insert accordingly.
35     **************************************************************/
36  FOR i IN 1..P_Planning_Resource_In_Tbl.COUNT
37  LOOP
38     /*************************************************
39     * Assigning Initial values for some of the elements.
40     *************************************************/
41      x_msg_count :=    0;
42      x_return_status   :=    FND_API.G_RET_STS_SUCCESS;
43      /******************************************************
44      * Call to pa_planning_resource_pvt.create_planning_resource
45      * which would take care of the validation and creation
46      * of the resource list members. The table elements are being passed as
47      * parameters.
48       ******************************************************/
49  Pa_Planning_Resource_Pvt.Create_Planning_Resource
50    (p_resource_list_id    => p_resource_list_id,
51    p_resource_list_member_id =>
52               P_planning_resource_in_tbl(i).p_resource_list_member_id,
53    p_resource_alias      => P_planning_resource_in_tbl(i).p_resource_alias,
54    p_person_id           => P_planning_resource_in_tbl(i).p_person_id,
55    p_person_name         => P_planning_resource_in_tbl(i).p_person_name,
56    p_job_id              => P_planning_resource_in_tbl(i).p_job_id,
57    p_job_name            => P_planning_resource_in_tbl(i).p_job_name,
58    p_organization_id     => P_planning_resource_in_tbl(i).p_organization_id,
59    p_organization_name   => P_planning_resource_in_tbl(i).p_organization_name,
60    p_vendor_id           => P_planning_resource_in_tbl(i).p_vendor_id,
61    p_vendor_name         => P_planning_resource_in_tbl(i).p_vendor_name,
62    p_fin_category_name   => P_planning_resource_in_tbl(i).p_fin_category_name,
63    p_non_labor_resource  => P_planning_resource_in_tbl(i).p_non_labor_resource,
64    p_project_role_id     => P_planning_resource_in_tbl(i).p_project_role_id,
65    p_project_role_name   => P_planning_resource_in_tbl(i).p_project_role_name,
66    p_resource_class_id   => P_planning_resource_in_tbl(i).p_resource_class_id,
67    p_resource_class_code => P_planning_resource_in_tbl(i).p_resource_class_code,
68    p_res_format_id       => P_planning_resource_in_tbl(i).p_res_format_id,
69    p_spread_curve_id     => P_planning_resource_in_tbl(i).p_spread_curve_id,
70    p_etc_method_code     => P_planning_resource_in_tbl(i).p_etc_method_code,
71    p_mfc_cost_type_id    => P_planning_resource_in_tbl(i).p_mfc_cost_type_id,
72    p_copy_from_rl_flag   => P_planning_resource_in_tbl(i).p_copy_from_rl_flag,
73    p_resource_class_flag => P_planning_resource_in_tbl(i).p_resource_class_flag,
74    p_fc_res_type_code    => P_planning_resource_in_tbl(i).p_fc_res_type_code,
75    p_inventory_item_id   => P_planning_resource_in_tbl(i).p_inventory_item_id,
76    p_inventory_item_name => P_planning_resource_in_tbl(i).p_inventory_item_name,
77    p_item_category_id    => P_planning_resource_in_tbl(i).p_item_category_id,
78    p_item_category_name  => P_planning_resource_in_tbl(i).p_item_category_name,
79    p_migration_code      => P_planning_resource_in_tbl(i).p_migration_code,
80    p_attribute_category  => P_planning_resource_in_tbl(i).p_attribute_category,
81    p_attribute1          => P_planning_resource_in_tbl(i).p_attribute1,
82    p_attribute2          => P_planning_resource_in_tbl(i).p_attribute2,
83    p_attribute3          => P_planning_resource_in_tbl(i).p_attribute3,
84    p_attribute4          => P_planning_resource_in_tbl(i).p_attribute4,
85    p_attribute5          => P_planning_resource_in_tbl(i).p_attribute5,
86    p_attribute6          => P_planning_resource_in_tbl(i).p_attribute6,
87    p_attribute7          => P_planning_resource_in_tbl(i).p_attribute7,
88    p_attribute8          => P_planning_resource_in_tbl(i).p_attribute8,
89    p_attribute9          => P_planning_resource_in_tbl(i).p_attribute9,
90    p_attribute10         => P_planning_resource_in_tbl(i).p_attribute10,
91    p_attribute11         => P_planning_resource_in_tbl(i).p_attribute11,
92    p_attribute12         => P_planning_resource_in_tbl(i).p_attribute12,
93    p_attribute13         => P_planning_resource_in_tbl(i).p_attribute13,
94    p_attribute14         => P_planning_resource_in_tbl(i).p_attribute14,
95    p_attribute15         => P_planning_resource_in_tbl(i).p_attribute15,
96    p_attribute16         => P_planning_resource_in_tbl(i).p_attribute16,
97    p_attribute17         => P_planning_resource_in_tbl(i).p_attribute17,
98    p_attribute18         => P_planning_resource_in_tbl(i).p_attribute18,
99    p_attribute19         => P_planning_resource_in_tbl(i).p_attribute19,
100    p_attribute20         => P_planning_resource_in_tbl(i).p_attribute20,
101    p_attribute21         => P_planning_resource_in_tbl(i).p_attribute21,
102    p_attribute22         => P_planning_resource_in_tbl(i).p_attribute22,
103    p_attribute23         => P_planning_resource_in_tbl(i).p_attribute23,
104    p_attribute24         => P_planning_resource_in_tbl(i).p_attribute24,
105    p_attribute25         => P_planning_resource_in_tbl(i).p_attribute25,
106    p_attribute26         => P_planning_resource_in_tbl(i).p_attribute26,
107    p_attribute27         => P_planning_resource_in_tbl(i).p_attribute27,
108    p_attribute28         => P_planning_resource_in_tbl(i).p_attribute28,
109    p_attribute29         => P_planning_resource_in_tbl(i).p_attribute29,
110    p_attribute30         => P_planning_resource_in_tbl(i).p_attribute30,
111    p_person_type_code    => P_planning_resource_in_tbl(i).p_person_type_code,
112    p_bom_resource_id     =>  P_planning_resource_in_tbl(i).p_bom_resource_id,
113    p_bom_resource_name   => P_planning_resource_in_tbl(i).p_bom_resource_name,
114    p_team_role           => P_planning_resource_in_tbl(i).p_team_role,
115    p_incur_by_res_code   => P_planning_resource_in_tbl(i).p_incur_by_res_code,
116    p_incur_by_res_type   => P_planning_resource_in_tbl(i).p_incur_by_res_type,
117    x_resource_list_member_id =>
118             x_planning_resource_out_tbl(i).x_resource_list_member_id,
119    x_record_version_number =>
120             x_planning_resource_out_tbl(i).x_record_version_number,
121    x_return_status       => x_return_status,
122    x_msg_count           => x_msg_count  ,
123    x_error_msg_data      => x_error_msg_data);
124 
125 END LOOP;
126 /************************************************
127  * Check the Commit flag. if it is true then Commit.
128  ***********************************************/
129    IF FND_API.to_boolean( p_commit )
130    THEN
131           COMMIT;
132    END IF;
133 /***************/
134 
135 /***************************************/
136 END Create_Planning_Resource;
137 /*****************************************************/
138 
139 /**************************************************************
140  * Procedure   : Create_Planning_Resource
141  * Description : The purpose of this procedure is to Validate
142  *               and create a new planning resource  for a
143  *               resource list.
144  * Calls Prog  : pa_Planning_resource_pvt.Create_Planning_Resource
145  ****************************************************************/
146 PROCEDURE Create_Planning_Resource(
147   p_resource_list_id       IN    VARCHAR2,
148   p_resource_list_member_id  IN  SYSTEM.PA_NUM_TBL_TYPE  DEFAULT NULL,
149   p_resource_alias         IN   SYSTEM.PA_VARCHAR2_80_TBL_TYPE  DEFAULT NULL,
150   p_person_id              IN   SYSTEM.PA_NUM_TBL_TYPE    DEFAULT NULL,
151   --Bug 3593613
152   p_person_name            IN   SYSTEM.PA_VARCHAR2_240_TBL_TYPE  DEFAULT NULL,
153   p_job_id                 IN   SYSTEM.PA_NUM_TBL_TYPE    DEFAULT NULL,
154   -- Bug 3593613
155   p_job_name               IN   SYSTEM.PA_VARCHAR2_240_TBL_TYPE  DEFAULT NULL,
156   p_organization_id        IN   SYSTEM.PA_NUM_TBL_TYPE    DEFAULT NULL,
157   p_organization_name      IN   SYSTEM.PA_VARCHAR2_240_TBL_TYPE  DEFAULT NULL,
158   p_vendor_id              IN   SYSTEM.PA_NUM_TBL_TYPE    DEFAULT NULL,
159   --Bug 3592496
160   p_vendor_name            IN   SYSTEM.PA_VARCHAR2_240_TBL_TYPE  DEFAULT NULL,
161   p_fin_category_name      IN   SYSTEM.PA_VARCHAR2_30_TBL_TYPE  DEFAULT NULL,
162   p_non_labor_resource     IN   SYSTEM.PA_VARCHAR2_30_TBL_TYPE  DEFAULT NULL,
163   p_project_role_id        IN   SYSTEM.PA_NUM_TBL_TYPE    DEFAULT NULL,
164   p_project_role_name      IN   SYSTEM.PA_VARCHAR2_80_TBL_TYPE  DEFAULT NULL,
165   p_resource_class_id      IN   SYSTEM.PA_NUM_TBL_TYPE    DEFAULT NULL,
166   p_resource_class_code    IN   SYSTEM.PA_VARCHAR2_30_TBL_TYPE  DEFAULT NULL,
167   p_res_format_id          IN   SYSTEM.PA_NUM_TBL_TYPE    ,
168   p_spread_curve_id        IN   SYSTEM.PA_NUM_TBL_TYPE    DEFAULT NULL,
169   p_etc_method_code        IN   SYSTEM.PA_VARCHAR2_30_TBL_TYPE  DEFAULT NULL,
170   p_mfc_cost_type_id       IN   SYSTEM.PA_NUM_TBL_TYPE    DEFAULT NULL,
171   p_copy_from_rl_flag      IN   SYSTEM.PA_VARCHAR2_1_TBL_TYPE  DEFAULT NULL,
172   p_resource_class_flag    IN   SYSTEM.PA_VARCHAR2_1_TBL_TYPE  DEFAULT NULL,
173   p_fc_res_type_code       IN   SYSTEM.PA_VARCHAR2_30_TBL_TYPE  DEFAULT NULL,
174   p_inventory_item_id      IN   SYSTEM.PA_NUM_TBL_TYPE    DEFAULT NULL,
175   p_inventory_item_name    IN   SYSTEM.PA_VARCHAR2_80_TBL_TYPE  DEFAULT NULL,
176   p_item_category_id       IN   SYSTEM.PA_NUM_TBL_TYPE    DEFAULT NULL,
177   p_item_category_name     IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
178   p_migration_code         IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE ,
179   p_attribute_category     IN   SYSTEM.PA_VARCHAR2_30_TBL_TYPE  DEFAULT NULL,
180   p_attribute1             IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
181   p_attribute2             IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
182   p_attribute3             IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
183   p_attribute4             IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
184   p_attribute5             IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
185   p_attribute6             IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
186   p_attribute7             IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
187   p_attribute8             IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
188   p_attribute9             IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
189   p_attribute10            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
190   p_attribute11            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
191   p_attribute12            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
192   p_attribute13            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
193   p_attribute14            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
194   p_attribute15            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
195   p_attribute16            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
196   p_attribute17            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
197   p_attribute18            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
198   p_attribute19            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
199   p_attribute20            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
200   p_attribute21            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
201   p_attribute22            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
202   p_attribute23            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
203   p_attribute24            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
204   p_attribute25            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
205   p_attribute26            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
206   p_attribute27            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
207   p_attribute28            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
208   p_attribute29            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
209   p_attribute30            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
210   p_person_type_code       IN   SYSTEM.PA_VARCHAR2_30_TBL_TYPE  DEFAULT NULL,
211   p_bom_resource_id        IN   SYSTEM.PA_NUM_TBL_TYPE    DEFAULT NULL,
212   p_bom_resource_name      IN   SYSTEM.PA_VARCHAR2_30_TBL_TYPE  DEFAULT NULL,
213   p_team_role              IN   SYSTEM.PA_VARCHAR2_80_TBL_TYPE  DEFAULT NULL,
214   p_incur_by_res_code      IN   SYSTEM.PA_VARCHAR2_30_TBL_TYPE  DEFAULT NULL,
215   p_incur_by_res_type      IN   SYSTEM.PA_VARCHAR2_30_TBL_TYPE  DEFAULT NULL,
216   p_commit                 IN    VARCHAR2 DEFAULT FND_API.G_FALSE,
217   p_init_msg_list          IN    VARCHAR2 DEFAULT FND_API.G_FALSE,
218   p_project_id             IN    NUMBER DEFAULT NULL,
219   x_resource_list_member_id OUT NOCOPY   SYSTEM.PA_NUM_TBL_TYPE  ,
220   x_record_version_number  OUT     NOCOPY   SYSTEM.PA_NUM_TBL_TYPE  ,
221   x_return_status          OUT     NOCOPY   VARCHAR2  ,
222   x_msg_count              OUT     NOCOPY   NUMBER    ,
223   x_error_msg_data         OUT     NOCOPY   VARCHAR2  )
224 IS
225 BEGIN
226     x_record_version_number := SYSTEM.PA_NUM_TBL_TYPE();
227     x_resource_list_member_id := SYSTEM.PA_NUM_TBL_TYPE();
228     x_record_version_number.extend(p_res_format_id.count) ;
229     x_resource_list_member_id.extend(p_res_format_id.count) ;
230 
231 -- First clear the message stack.
232    IF FND_API.to_boolean(p_init_msg_list)
233    THEN
234            FND_MSG_PUB.initialize;
235    END IF;
236 
237    /***************************************************************
238     * For Loop. To loop through the table of records and
239     * Validate each one of them and insert accordingly.
240     **************************************************************/
241     FOR i IN p_res_format_id.first..p_res_format_id.last
242     LOOP
243        /*************************************************
244        * Assigning Initial values for some of the elements.
245        *************************************************/
246         x_msg_count :=    0;
247         x_return_status   :=    FND_API.G_RET_STS_SUCCESS;
248         /******************************************************
249         * Call to pa_planning_resource_pvt.create_planning_resource
250         * which would take care of the validation and creation
251         * of the resource list members. The table elements are being passed as
252         * parameters.
253         ******************************************************/
254   Pa_Planning_Resource_Pvt.Create_Planning_Resource
255    (p_resource_list_id        => p_resource_list_id,
256     p_project_id              => p_project_id,
257     p_resource_list_member_id => p_resource_list_member_id(i),
258     p_resource_alias          => p_resource_alias(i),
259     p_person_id               => p_person_id(i),
260     p_person_name             => p_person_name(i),
261     p_job_id                  => p_job_id(i),
265     p_vendor_id               => p_vendor_id(i),
262     p_job_name                => p_job_name(i),
263     p_organization_id         => p_organization_id(i),
264     p_organization_name       => p_organization_name(i),
266     p_vendor_name             => p_vendor_name(i),
267     p_fin_category_name       => p_fin_category_name(i),
268     p_non_labor_resource      => p_non_labor_resource(i),
269     p_project_role_id         => p_project_role_id(i),
270     p_project_role_name       => p_project_role_name(i),
271     p_resource_class_id       => p_resource_class_id(i),
272     p_resource_class_code     => P_resource_class_code(i),
273     p_res_format_id           => p_res_format_id(i),
274     p_spread_curve_id         => p_spread_curve_id(i),
275     p_etc_method_code         => p_etc_method_code(i),
276     p_mfc_cost_type_id        => p_mfc_cost_type_id(i),
277     p_copy_from_rl_flag       => p_copy_from_rl_flag(i),
278     p_resource_class_flag     => p_resource_class_flag(i),
279     p_fc_res_type_code        => p_fc_res_type_code(i),
280     p_inventory_item_id       => p_inventory_item_id(i),
281     p_inventory_item_name     => p_inventory_item_name(i),
282     p_item_category_id        => p_item_category_id(i),
283     p_item_category_name      => p_item_category_name(i),
284     p_migration_code          => p_migration_code(i),
285     p_attribute_category      => p_attribute_category(i),
286     p_attribute1              => p_attribute1(i),
287     p_attribute2              => p_attribute2(i),
288     p_attribute3              => p_attribute3(i),
289     p_attribute4              => p_attribute4(i),
290     p_attribute5              => p_attribute5(i),
291     p_attribute6              => p_attribute6(i),
292     p_attribute7              => p_attribute7(i),
293     p_attribute8              => p_attribute8(i),
294     p_attribute9              => p_attribute9(i),
295     p_attribute10             => p_attribute10(i),
296     p_attribute11             => p_attribute11(i),
297     p_attribute12             => p_attribute12(i),
298     p_attribute13             => p_attribute13(i),
299     p_attribute14             => p_attribute14(i),
300     p_attribute15             => p_attribute15(i),
301     p_attribute16             => p_attribute16(i),
302     p_attribute17             => p_attribute17(i),
303     p_attribute18             => p_attribute18(i),
304     p_attribute19             => p_attribute19(i),
305     p_attribute20             => p_attribute20(i),
306     p_attribute21             => p_attribute21(i),
307     p_attribute22             => p_attribute22(i),
308     p_attribute23             => p_attribute23(i),
309     p_attribute24             => p_attribute24(i),
310     p_attribute25             => p_attribute25(i),
311     p_attribute26             => p_attribute26(i),
312     p_attribute27             => p_attribute27(i),
313     p_attribute28             => p_attribute28(i),
314     p_attribute29             => p_attribute29(i),
315     p_attribute30             => p_attribute30(i),
316     p_person_type_code        => p_person_type_code(i),
317     p_bom_resource_id         => p_bom_resource_id(i),
318     p_bom_resource_name       => p_bom_resource_name(i),
319     p_team_role               => p_team_role(i),
320     p_incur_by_res_code       => p_incur_by_res_code(i),
321     p_incur_by_res_type       => p_incur_by_res_type(i),
322     x_resource_list_member_id => x_resource_list_member_id(i),
323     x_record_version_number   => x_record_version_number(i),
324     x_return_status           => x_return_status,
325     x_msg_count               => x_msg_count,
326     x_error_msg_data          => x_error_msg_data);
327 
328     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
329        RETURN;
330     END IF;
331  END LOOP;
332 
333 /************************************************
334  * Check the Commit flag. if it is true then Commit.
335  ***********************************************/
336    IF FND_API.to_boolean( p_commit )
337    THEN
338           COMMIT;
339    END IF;
340 /***************/
341 
342 END Create_Planning_Resource;
343 
344 /***************************************************
345  * Procedure : Update_Planning_Resource
346  * Description : The purpose of this procedure is to
347  *               Validate and update attributes on an existing
348  *               planning resource for a resource list.
349  *               It first checks for the Uniqueness of the
350  *               resource list. If it is Unique then it updates
351  *               the table PA_RESOURCE_LIST_MEMBERS
352  *               with the values passed.
353  * Calls Prog : Pa_Planning_Resource_Utils.Get_Plan_Res_Combination
354  *              pa_res_list_members_pkg.update_row
355  ******************************************************/
356 PROCEDURE Update_Planning_Resource
357        (p_commit                    IN    VARCHAR2 DEFAULT FND_API.G_FALSE,
358        p_init_msg_list              IN    VARCHAR2 DEFAULT FND_API.G_FALSE,
359        p_resource_list_id           IN    NUMBER,
360        p_enabled_flag               IN    VARCHAR2,
361        P_planning_resource_in_tbl   IN            Planning_Resource_In_Tbl,
362        X_planning_resource_out_tbl  OUT NOCOPY    Planning_Resource_Out_Tbl,
363        x_return_status              OUT NOCOPY  VARCHAR2,
364        x_msg_count                  OUT NOCOPY  NUMBER,
365        x_error_msg_data             OUT NOCOPY  VARCHAR2  )
366 IS
367 BEGIN
368 
369 -- First clear the message stack.
370    IF FND_API.to_boolean( p_init_msg_list )
371    THEN
372            FND_MSG_PUB.initialize;
373    END IF;
374 
375    FOR i IN 1..P_Planning_Resource_In_Tbl.COUNT
376    LOOP
377       x_msg_count := 0;
378       x_return_status :=   FND_API.G_RET_STS_SUCCESS;
379 
380    pa_planning_resource_pvt.Update_Planning_Resource(
381        p_resource_list_id   => p_resource_list_id,
385        p_resource_alias     => P_planning_resource_in_tbl(i).p_resource_alias,
382        p_resource_list_member_id  =>
383                p_planning_resource_in_tbl(i).p_resource_list_member_id,
384        p_enabled_flag       =>p_enabled_flag,
386        p_spread_curve_id    => P_planning_resource_in_tbl(i).p_spread_curve_id,
387        p_etc_method_code    => P_planning_resource_in_tbl(i).p_etc_method_code,
388        p_mfc_cost_type_id   =>
389                P_planning_resource_in_tbl(i).p_mfc_cost_type_id,
390        p_attribute_category =>
391                P_planning_resource_in_tbl(i).p_attribute_category,
392        p_attribute1         => P_planning_resource_in_tbl(i).p_attribute1,
393        p_attribute2         => P_planning_resource_in_tbl(i).p_attribute2,
394        p_attribute3         => P_planning_resource_in_tbl(i).p_attribute3,
395        p_attribute4         => P_planning_resource_in_tbl(i).p_attribute4,
396        p_attribute5         => P_planning_resource_in_tbl(i).p_attribute5,
397        p_attribute6         => P_planning_resource_in_tbl(i).p_attribute6,
398        p_attribute7         => P_planning_resource_in_tbl(i).p_attribute7,
399        p_attribute8         => P_planning_resource_in_tbl(i).p_attribute8,
400        p_attribute9         => P_planning_resource_in_tbl(i).p_attribute9,
401        p_attribute10        => P_planning_resource_in_tbl(i).p_attribute10,
402        p_attribute11        => P_planning_resource_in_tbl(i).p_attribute11,
403        p_attribute12        => P_planning_resource_in_tbl(i).p_attribute12,
404        p_attribute13        => P_planning_resource_in_tbl(i).p_attribute13,
405        p_attribute14        => P_planning_resource_in_tbl(i).p_attribute14,
406        p_attribute15        => P_planning_resource_in_tbl(i).p_attribute15,
407        p_attribute16        => P_planning_resource_in_tbl(i).p_attribute16,
408        p_attribute17        => P_planning_resource_in_tbl(i).p_attribute17,
409        p_attribute18        => P_planning_resource_in_tbl(i).p_attribute18,
410        p_attribute19        => P_planning_resource_in_tbl(i).p_attribute19,
411        p_attribute20        => P_planning_resource_in_tbl(i).p_attribute20,
412        p_attribute21        => P_planning_resource_in_tbl(i).p_attribute21,
413        p_attribute22        => P_planning_resource_in_tbl(i).p_attribute22,
414        p_attribute23        => P_planning_resource_in_tbl(i).p_attribute23,
415        p_attribute24        => P_planning_resource_in_tbl(i).p_attribute24,
416        p_attribute25        => P_planning_resource_in_tbl(i).p_attribute25,
417        p_attribute26        => P_planning_resource_in_tbl(i).p_attribute26,
418        p_attribute27        => P_planning_resource_in_tbl(i).p_attribute27,
419        p_attribute28        => P_planning_resource_in_tbl(i).p_attribute28,
420        p_attribute29        => P_planning_resource_in_tbl(i).p_attribute29,
421        p_attribute30        => P_planning_resource_in_tbl(i).p_attribute30,
422        p_record_version_number =>
423               p_planning_resource_in_tbl(i).p_record_version_number,
424        x_record_version_number    =>
425           x_planning_resource_out_tbl(i).x_record_version_number,
426        x_return_status      => x_return_status,
427        x_msg_count          => x_msg_count  ,
428        x_error_msg_data     => x_error_msg_data);
429 
430 END LOOP;
431 
432 /************************************************
433  * Check the Commit flag. if it is true then Commit.
434  ***********************************************/
435    IF FND_API.to_boolean( p_commit )
436    THEN
437           COMMIT;
438    END IF;
439 /***************/
440 END Update_Planning_Resource;
441 /************************************/
442 
443 PROCEDURE Update_Planning_Resource(
444     p_resource_list_id       IN   NUMBER,
445     p_resource_list_member_id IN   SYSTEM.PA_NUM_TBL_TYPE,
446     p_enabled_flag           IN   VARCHAR2,
447     p_resource_alias         IN   SYSTEM.PA_VARCHAR2_80_TBL_TYPE  ,
448     p_spread_curve_id        IN   SYSTEM.PA_NUM_TBL_TYPE    DEFAULT NULL,
449     p_etc_method_code        IN   SYSTEM.PA_VARCHAR2_30_TBL_TYPE  DEFAULT NULL,
450     p_mfc_cost_type_id       IN   SYSTEM.PA_NUM_TBL_TYPE    DEFAULT NULL,
451     p_attribute_category     IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
452     p_attribute1             IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
453     p_attribute2             IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
454     p_attribute3             IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
455     p_attribute4             IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
456     p_attribute5             IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
457     p_attribute6             IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
458     p_attribute7             IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
459     p_attribute8             IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
460     p_attribute9             IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
461     p_attribute10            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
462     p_attribute11            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
463     p_attribute12            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
464     p_attribute13            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
465     p_attribute14            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
466     p_attribute15            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
467     p_attribute16            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
468     p_attribute17            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
469     p_attribute18            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
470     p_attribute19            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
471     p_attribute20            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
472     p_attribute21            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
473     p_attribute22            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
477     p_attribute26            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
474     p_attribute23            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
475     p_attribute24            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
476     p_attribute25            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
478     p_attribute27            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
479     p_attribute28            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
480     p_attribute29            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
481     p_attribute30            IN   SYSTEM.PA_VARCHAR2_150_TBL_TYPE  DEFAULT NULL,
482     p_record_version_number  IN    SYSTEM.PA_NUM_TBL_TYPE  ,
483     p_commit                 IN   VARCHAR2 DEFAULT FND_API.G_FALSE,
484     p_init_msg_list          IN   VARCHAR2 DEFAULT FND_API.G_FALSE,
485     x_record_version_number  OUT NOCOPY   SYSTEM.PA_NUM_TBL_TYPE  ,
486     x_return_status          OUT    NOCOPY   VARCHAR2  ,
487     x_msg_count              OUT    NOCOPY   NUMBER    ,
488     x_error_msg_data         OUT    NOCOPY   VARCHAR2  )
489 IS
490 BEGIN
491 -- First clear the message stack.
492    IF FND_API.to_boolean( p_init_msg_list )
493    THEN
494            FND_MSG_PUB.initialize;
495    END IF;
496     x_record_version_number := SYSTEM.PA_NUM_TBL_TYPE();
497     x_record_version_number.extend(p_resource_list_member_id.count) ;
498 
499    /***************************************************************
500     * For Loop. To loop through the table of records and
501     * Validate each one of them and insert accordingly.
502     **************************************************************/
503 
504    FOR i IN 1..p_resource_list_member_id.COUNT
505    LOOP
506       x_msg_count := 0;
507       x_return_status :=   FND_API.G_RET_STS_SUCCESS;
508 
509 Pa_Planning_Resource_Pvt.Update_Planning_Resource
510     (p_resource_list_id          =>p_resource_list_id,
511     p_resource_list_member_id    =>p_resource_list_member_id(i),
512     p_enabled_flag             => p_enabled_flag,
513     p_resource_alias           => p_resource_alias(i) ,
514     p_spread_curve_id          =>p_spread_curve_id(i),
515     p_etc_method_code          =>p_etc_method_code(i),
516     p_mfc_cost_type_id         =>p_mfc_cost_type_id(i),
517     p_attribute_category       =>p_attribute_category(i),
518     p_attribute1               =>p_attribute1(i),
519     p_attribute2               =>p_attribute2(i),
520     p_attribute3               =>p_attribute3(i),
521     p_attribute4               =>p_attribute4(i),
522     p_attribute5               =>p_attribute5(i),
523     p_attribute6               =>p_attribute6(i),
524     p_attribute7               =>p_attribute7(i),
525     p_attribute8               =>p_attribute8(i),
526     p_attribute9               =>p_attribute9(i),
527     p_attribute10              =>p_attribute10(i),
528     p_attribute11              =>p_attribute11(i),
529     p_attribute12              =>p_attribute12(i),
530     p_attribute13              =>p_attribute13(i),
531     p_attribute14              =>p_attribute14(i),
532     p_attribute15              =>p_attribute15(i),
533     p_attribute16              =>p_attribute16(i),
534     p_attribute17              =>p_attribute17(i),
535     p_attribute18              =>p_attribute18(i),
536     p_attribute19              =>p_attribute19(i),
537     p_attribute20              =>p_attribute20(i),
538     p_attribute21              =>p_attribute21(i),
539     p_attribute22              =>p_attribute22(i),
540     p_attribute23              =>p_attribute23(i),
541     p_attribute24              =>p_attribute24(i),
542     p_attribute25              =>p_attribute25(i),
543     p_attribute26              =>p_attribute26(i),
544     p_attribute27              =>p_attribute27(i),
545     p_attribute28              =>p_attribute28(i),
546     p_attribute29              =>p_attribute29(i),
547     p_attribute30              =>p_attribute30(i),
548     p_record_version_number     => p_record_version_number(i),
549     x_record_version_number    =>x_record_version_number(i),
550     x_return_status            =>x_return_status,
551     x_msg_count                => x_msg_count,
552     x_error_msg_data           => x_error_msg_data);
553 
554 END LOOP;
555 
556 /************************************************
557  * Check the Commit flag. if it is true then Commit.
558  ***********************************************/
559    IF FND_API.to_boolean( p_commit )
560    THEN
561           COMMIT;
562    END IF;
563 /***************/
564 
565 END Update_Planning_Resource;
566 
567 /*************************************************
568  * Procedure : Delete_Planning_Resource
569  * Description : The purpose of this procedure is to
570  *              delete a planning resource if it is not
571  *              being used, else disable it.
572  *              Further details in the Body.
573  * Calls prog : pa_planning_resource_pub.delete_row
574  ***************************************************/
575 PROCEDURE Delete_Planning_Resource(
576          p_resource_list_member_id  IN  SYSTEM.PA_NUM_TBL_TYPE,
577          p_commit                   IN  VARCHAR2,
578          p_init_msg_list            IN  VARCHAR2,
579          x_return_status            OUT NOCOPY  VARCHAR2,
580          x_msg_count                OUT NOCOPY  NUMBER,
581          x_error_msg_data           OUT NOCOPY  VARCHAR2)
582 
583 IS
584 BEGIN
585    -- First clear the message stack.
586    IF FND_API.to_boolean( p_init_msg_list )
587    THEN
588            FND_MSG_PUB.initialize;
589    END IF;
590   /********************************************
591   * To Check if resource_list member is currently being
592   * used in a planning transaction.
593   * We are checking from pa_resource_assignments table.
597   pa_planning_resource_pvt.delete_planning_resource
594   *************************************************/
595 FOR i in 1..p_resource_list_member_id.COUNT
596 LOOP
598          (p_resource_list_member_id =>p_resource_list_member_id(i),
599          x_return_status            =>x_return_status,
600          x_msg_count                =>x_msg_count,
601          x_error_msg_data           =>x_error_msg_data);
602 
603 
604 END LOOP;
605 /************************************************
606  * Check the Commit flag. if it is true then Commit.
607  ***********************************************/
608    IF FND_API.to_boolean( p_commit )
609    THEN
610           COMMIT;
611    END IF;
612 /***************/
613 END Delete_Planning_Resource;
614 
615 END Pa_Planning_Resource_Pub;