DBA Data[Home] [Help]

PACKAGE BODY: APPS.FA_MASSADD_PREPARE_PKG

Source


1 package body FA_MASSADD_PREPARE_PKG as
2   /* $Header: FAMAPREPB.pls 120.6 2006/01/09 05:30:10 snarayan noship $ */
3 
4   -- Private type declarations
5 
6   -- Private constant declarations
7 
8   -- Private variable declarations
9   g_log_level_rec fa_api_types.log_level_rec_type;
10   -- Function and procedure implementations
11 
12   /*===============================End Of FUNCTION/PROCEDURE===============================*/
13   function update_mass_additions(p_mass_add_rec_tbl FA_MASSADD_PREPARE_PKG.mass_add_rec_tbl,
14                                  p_log_level_rec    IN FA_API_TYPES.log_level_rec_type default null)
15     return boolean is
16     TYPE mass_add_tbl IS TABLE OF fa_mass_additions%ROWTYPE INDEX BY PLS_INTEGER;
17     l_mass_add_tbl mass_add_tbl;
18     type num_tbl is table of number index by pls_integer;
19     l_mass_add_id_tbl num_tbl;
20     l_debug_str       varchar2(1000);
21     l_errors          NUMBER;
22     l_calling_fn      varchar2(40) := 'update_mass_additions';
23     dml_errors EXCEPTION;
24     PRAGMA exception_init(dml_errors, -24381);
25 
26   begin
27     l_debug_str := 'Updating Mass Addions';
28     if (p_log_level_rec.statement_level) then
29       fa_debug_pkg.add(l_calling_fn,
30                        l_debug_str,
31                        '',
32                        p_log_level_rec => p_log_level_rec);
33     end if;
34     for counter in 1 .. p_mass_add_rec_tbl.count loop
35 
36       l_mass_add_id_tbl(counter) := p_mass_add_rec_tbl(counter)
37                                    .mass_addition_id;
38       l_mass_add_tbl(counter).mass_addition_id := p_mass_add_rec_tbl(counter)
39                                                  .mass_addition_id;
40       l_mass_add_tbl(counter).ASSET_NUMBER := p_mass_add_rec_tbl(counter)
41                                              .ASSET_NUMBER;
42       l_mass_add_tbl(counter).TAG_NUMBER := p_mass_add_rec_tbl(counter)
43                                            .TAG_NUMBER;
44       l_mass_add_tbl(counter).DESCRIPTION := p_mass_add_rec_tbl(counter)
45                                             .DESCRIPTION;
46       l_mass_add_tbl(counter).ASSET_CATEGORY_ID := p_mass_add_rec_tbl(counter)
47                                                   .ASSET_CATEGORY_ID;
48       l_mass_add_tbl(counter).MANUFACTURER_NAME := p_mass_add_rec_tbl(counter)
49                                                   .MANUFACTURER_NAME;
50       l_mass_add_tbl(counter).SERIAL_NUMBER := p_mass_add_rec_tbl(counter)
51                                               .SERIAL_NUMBER;
52       l_mass_add_tbl(counter).MODEL_NUMBER := p_mass_add_rec_tbl(counter)
53                                              .MODEL_NUMBER;
54       l_mass_add_tbl(counter).BOOK_TYPE_CODE := p_mass_add_rec_tbl(counter)
55                                                .BOOK_TYPE_CODE;
56       l_mass_add_tbl(counter).DATE_PLACED_IN_SERVICE := p_mass_add_rec_tbl(counter)
57                                                        .DATE_PLACED_IN_SERVICE;
58       l_mass_add_tbl(counter).FIXED_ASSETS_COST := p_mass_add_rec_tbl(counter)
59                                                   .FIXED_ASSETS_COST;
60       l_mass_add_tbl(counter).PAYABLES_UNITS := p_mass_add_rec_tbl(counter)
61                                                .PAYABLES_UNITS;
62       l_mass_add_tbl(counter).FIXED_ASSETS_UNITS := p_mass_add_rec_tbl(counter)
63                                                    .FIXED_ASSETS_UNITS;
64       l_mass_add_tbl(counter).PAYABLES_CODE_COMBINATION_ID := p_mass_add_rec_tbl(counter)
65                                                              .PAYABLES_CODE_COMBINATION_ID;
66       l_mass_add_tbl(counter).EXPENSE_CODE_COMBINATION_ID := p_mass_add_rec_tbl(counter)
67                                                             .EXPENSE_CODE_COMBINATION_ID;
68       l_mass_add_tbl(counter).LOCATION_ID := p_mass_add_rec_tbl(counter)
69                                             .LOCATION_ID;
70       l_mass_add_tbl(counter).ASSIGNED_TO := p_mass_add_rec_tbl(counter)
71                                             .ASSIGNED_TO;
72       l_mass_add_tbl(counter).FEEDER_SYSTEM_NAME := p_mass_add_rec_tbl(counter)
73                                                    .FEEDER_SYSTEM_NAME;
74       l_mass_add_tbl(counter).CREATE_BATCH_DATE := p_mass_add_rec_tbl(counter)
75                                                   .CREATE_BATCH_DATE;
76       l_mass_add_tbl(counter).CREATE_BATCH_ID := p_mass_add_rec_tbl(counter)
77                                                 .CREATE_BATCH_ID;
78       l_mass_add_tbl(counter).LAST_UPDATE_DATE := p_mass_add_rec_tbl(counter)
79                                                  .LAST_UPDATE_DATE;
80       l_mass_add_tbl(counter).LAST_UPDATED_BY := p_mass_add_rec_tbl(counter)
81                                                 .LAST_UPDATED_BY;
82       l_mass_add_tbl(counter).REVIEWER_COMMENTS := p_mass_add_rec_tbl(counter)
83                                                   .REVIEWER_COMMENTS;
84       l_mass_add_tbl(counter).INVOICE_NUMBER := p_mass_add_rec_tbl(counter)
85                                                .INVOICE_NUMBER;
86       l_mass_add_tbl(counter).VENDOR_NUMBER := p_mass_add_rec_tbl(counter)
87                                               .VENDOR_NUMBER;
88       l_mass_add_tbl(counter).PO_VENDOR_ID := p_mass_add_rec_tbl(counter)
89                                              .PO_VENDOR_ID;
90       l_mass_add_tbl(counter).PO_NUMBER := p_mass_add_rec_tbl(counter)
91                                           .PO_NUMBER;
92       l_mass_add_tbl(counter).POSTING_STATUS := p_mass_add_rec_tbl(counter)
93                                                .POSTING_STATUS;
94       l_mass_add_tbl(counter).QUEUE_NAME := p_mass_add_rec_tbl(counter)
95                                            .QUEUE_NAME;
96       l_mass_add_tbl(counter).INVOICE_DATE := p_mass_add_rec_tbl(counter)
97                                              .INVOICE_DATE;
98       l_mass_add_tbl(counter).INVOICE_CREATED_BY := p_mass_add_rec_tbl(counter)
99                                                    .INVOICE_CREATED_BY;
100       l_mass_add_tbl(counter).INVOICE_UPDATED_BY := p_mass_add_rec_tbl(counter)
101                                                    .INVOICE_UPDATED_BY;
102       l_mass_add_tbl(counter).PAYABLES_COST := p_mass_add_rec_tbl(counter)
103                                               .PAYABLES_COST;
104       l_mass_add_tbl(counter).INVOICE_ID := p_mass_add_rec_tbl(counter)
105                                            .INVOICE_ID;
106       l_mass_add_tbl(counter).PAYABLES_BATCH_NAME := p_mass_add_rec_tbl(counter)
107                                                     .PAYABLES_BATCH_NAME;
108       l_mass_add_tbl(counter).DEPRECIATE_FLAG := p_mass_add_rec_tbl(counter)
109                                                 .DEPRECIATE_FLAG;
110       l_mass_add_tbl(counter).PARENT_MASS_ADDITION_ID := p_mass_add_rec_tbl(counter)
111                                                         .PARENT_MASS_ADDITION_ID;
112       l_mass_add_tbl(counter).PARENT_ASSET_ID := p_mass_add_rec_tbl(counter)
113                                                 .PARENT_ASSET_ID;
114       l_mass_add_tbl(counter).SPLIT_MERGED_CODE := p_mass_add_rec_tbl(counter)
115                                                   .SPLIT_MERGED_CODE;
116       l_mass_add_tbl(counter).AP_DISTRIBUTION_LINE_NUMBER := p_mass_add_rec_tbl(counter)
117                                                             .AP_DISTRIBUTION_LINE_NUMBER;
118       l_mass_add_tbl(counter).POST_BATCH_ID := p_mass_add_rec_tbl(counter)
119                                               .POST_BATCH_ID;
120       l_mass_add_tbl(counter).ADD_TO_ASSET_ID := p_mass_add_rec_tbl(counter)
121                                                 .ADD_TO_ASSET_ID;
122       l_mass_add_tbl(counter).AMORTIZE_FLAG := p_mass_add_rec_tbl(counter)
123                                               .AMORTIZE_FLAG;
124       l_mass_add_tbl(counter).NEW_MASTER_FLAG := p_mass_add_rec_tbl(counter)
125                                                 .NEW_MASTER_FLAG;
126       l_mass_add_tbl(counter).ASSET_KEY_CCID := p_mass_add_rec_tbl(counter)
127                                                .ASSET_KEY_CCID;
128       l_mass_add_tbl(counter).ASSET_TYPE := p_mass_add_rec_tbl(counter)
129                                            .ASSET_TYPE;
130       l_mass_add_tbl(counter).DEPRN_RESERVE := p_mass_add_rec_tbl(counter)
131                                               .DEPRN_RESERVE;
132       l_mass_add_tbl(counter).YTD_DEPRN := p_mass_add_rec_tbl(counter)
133                                           .YTD_DEPRN;
134       l_mass_add_tbl(counter).BEGINNING_NBV := p_mass_add_rec_tbl(counter)
135                                               .BEGINNING_NBV;
136       l_mass_add_tbl(counter).CREATED_BY := p_mass_add_rec_tbl(counter)
137                                            .CREATED_BY;
138       l_mass_add_tbl(counter).CREATION_DATE := p_mass_add_rec_tbl(counter)
139                                               .CREATION_DATE;
140       l_mass_add_tbl(counter).LAST_UPDATE_LOGIN := p_mass_add_rec_tbl(counter)
141                                                   .LAST_UPDATE_LOGIN;
142       l_mass_add_tbl(counter).SALVAGE_VALUE := p_mass_add_rec_tbl(counter)
143                                               .SALVAGE_VALUE;
144       l_mass_add_tbl(counter).ACCOUNTING_DATE := p_mass_add_rec_tbl(counter)
145                                                 .ACCOUNTING_DATE;
146       l_mass_add_tbl(counter).ATTRIBUTE1 := p_mass_add_rec_tbl(counter)
147                                            .ATTRIBUTE1;
148       l_mass_add_tbl(counter).ATTRIBUTE2 := p_mass_add_rec_tbl(counter)
149                                            .ATTRIBUTE2;
150       l_mass_add_tbl(counter).ATTRIBUTE3 := p_mass_add_rec_tbl(counter)
151                                            .ATTRIBUTE3;
152       l_mass_add_tbl(counter).ATTRIBUTE4 := p_mass_add_rec_tbl(counter)
153                                            .ATTRIBUTE4;
154       l_mass_add_tbl(counter).ATTRIBUTE5 := p_mass_add_rec_tbl(counter)
155                                            .ATTRIBUTE5;
156       l_mass_add_tbl(counter).ATTRIBUTE6 := p_mass_add_rec_tbl(counter)
157                                            .ATTRIBUTE6;
158       l_mass_add_tbl(counter).ATTRIBUTE7 := p_mass_add_rec_tbl(counter)
159                                            .ATTRIBUTE7;
160       l_mass_add_tbl(counter).ATTRIBUTE8 := p_mass_add_rec_tbl(counter)
161                                            .ATTRIBUTE8;
162       l_mass_add_tbl(counter).ATTRIBUTE9 := p_mass_add_rec_tbl(counter)
163                                            .ATTRIBUTE9;
164       l_mass_add_tbl(counter).ATTRIBUTE10 := p_mass_add_rec_tbl(counter)
165                                             .ATTRIBUTE10;
166       l_mass_add_tbl(counter).ATTRIBUTE11 := p_mass_add_rec_tbl(counter)
167                                             .ATTRIBUTE11;
168       l_mass_add_tbl(counter).ATTRIBUTE12 := p_mass_add_rec_tbl(counter)
169                                             .ATTRIBUTE12;
170       l_mass_add_tbl(counter).ATTRIBUTE13 := p_mass_add_rec_tbl(counter)
171                                             .ATTRIBUTE13;
172       l_mass_add_tbl(counter).ATTRIBUTE14 := p_mass_add_rec_tbl(counter)
173                                             .ATTRIBUTE14;
174       l_mass_add_tbl(counter).ATTRIBUTE15 := p_mass_add_rec_tbl(counter)
175                                             .ATTRIBUTE15;
176       l_mass_add_tbl(counter).ATTRIBUTE_CATEGORY_CODE := p_mass_add_rec_tbl(counter)
177                                                         .ATTRIBUTE_CATEGORY_CODE;
178       l_mass_add_tbl(counter).FULLY_RSVD_REVALS_COUNTER := p_mass_add_rec_tbl(counter)
179                                                           .FULLY_RSVD_REVALS_COUNTER;
180       l_mass_add_tbl(counter).MERGE_INVOICE_NUMBER := p_mass_add_rec_tbl(counter)
181                                                      .MERGE_INVOICE_NUMBER;
182       l_mass_add_tbl(counter).MERGE_VENDOR_NUMBER := p_mass_add_rec_tbl(counter)
183                                                     .MERGE_VENDOR_NUMBER;
184       l_mass_add_tbl(counter).PRODUCTION_CAPACITY := p_mass_add_rec_tbl(counter)
185                                                     .PRODUCTION_CAPACITY;
186       l_mass_add_tbl(counter).REVAL_AMORTIZATION_BASIS := p_mass_add_rec_tbl(counter)
187                                                          .REVAL_AMORTIZATION_BASIS;
188       l_mass_add_tbl(counter).REVAL_RESERVE := p_mass_add_rec_tbl(counter)
189                                               .REVAL_RESERVE;
190       l_mass_add_tbl(counter).UNIT_OF_MEASURE := p_mass_add_rec_tbl(counter)
191                                                 .UNIT_OF_MEASURE;
192       l_mass_add_tbl(counter).UNREVALUED_COST := p_mass_add_rec_tbl(counter)
193                                                 .UNREVALUED_COST;
194       l_mass_add_tbl(counter).YTD_REVAL_DEPRN_EXPENSE := p_mass_add_rec_tbl(counter)
195                                                         .YTD_REVAL_DEPRN_EXPENSE;
196       l_mass_add_tbl(counter).ATTRIBUTE16 := p_mass_add_rec_tbl(counter)
197                                             .ATTRIBUTE16;
198       l_mass_add_tbl(counter).ATTRIBUTE17 := p_mass_add_rec_tbl(counter)
199                                             .ATTRIBUTE17;
200       l_mass_add_tbl(counter).ATTRIBUTE18 := p_mass_add_rec_tbl(counter)
201                                             .ATTRIBUTE18;
202       l_mass_add_tbl(counter).ATTRIBUTE19 := p_mass_add_rec_tbl(counter)
203                                             .ATTRIBUTE19;
204       l_mass_add_tbl(counter).ATTRIBUTE20 := p_mass_add_rec_tbl(counter)
205                                             .ATTRIBUTE20;
206       l_mass_add_tbl(counter).ATTRIBUTE21 := p_mass_add_rec_tbl(counter)
207                                             .ATTRIBUTE21;
208       l_mass_add_tbl(counter).ATTRIBUTE22 := p_mass_add_rec_tbl(counter)
209                                             .ATTRIBUTE22;
210       l_mass_add_tbl(counter).ATTRIBUTE23 := p_mass_add_rec_tbl(counter)
211                                             .ATTRIBUTE23;
212       l_mass_add_tbl(counter).ATTRIBUTE24 := p_mass_add_rec_tbl(counter)
213                                             .ATTRIBUTE24;
214       l_mass_add_tbl(counter).ATTRIBUTE25 := p_mass_add_rec_tbl(counter)
215                                             .ATTRIBUTE25;
216       l_mass_add_tbl(counter).ATTRIBUTE26 := p_mass_add_rec_tbl(counter)
217                                             .ATTRIBUTE26;
218       l_mass_add_tbl(counter).ATTRIBUTE27 := p_mass_add_rec_tbl(counter)
219                                             .ATTRIBUTE27;
220       l_mass_add_tbl(counter).ATTRIBUTE28 := p_mass_add_rec_tbl(counter)
221                                             .ATTRIBUTE28;
222       l_mass_add_tbl(counter).ATTRIBUTE29 := p_mass_add_rec_tbl(counter)
223                                             .ATTRIBUTE29;
224       l_mass_add_tbl(counter).ATTRIBUTE30 := p_mass_add_rec_tbl(counter)
225                                             .ATTRIBUTE30;
226       l_mass_add_tbl(counter).MERGED_CODE := p_mass_add_rec_tbl(counter)
227                                             .MERGED_CODE;
228       l_mass_add_tbl(counter).SPLIT_CODE := p_mass_add_rec_tbl(counter)
229                                            .SPLIT_CODE;
230       l_mass_add_tbl(counter).MERGE_PARENT_MASS_ADDITIONS_ID := p_mass_add_rec_tbl(counter)
231                                                                .MERGE_PARENT_MASS_ADD_ID;
232       l_mass_add_tbl(counter).SPLIT_PARENT_MASS_ADDITIONS_ID := p_mass_add_rec_tbl(counter)
233                                                                .SPLIT_PARENT_MASS_ADD_ID;
234       l_mass_add_tbl(counter).PROJECT_ASSET_LINE_ID := p_mass_add_rec_tbl(counter)
235                                                       .PROJECT_ASSET_LINE_ID;
236       l_mass_add_tbl(counter).PROJECT_ID := p_mass_add_rec_tbl(counter)
237                                            .PROJECT_ID;
238       l_mass_add_tbl(counter).TASK_ID := p_mass_add_rec_tbl(counter)
239                                         .TASK_ID;
240       l_mass_add_tbl(counter).SUM_UNITS := p_mass_add_rec_tbl(counter)
241                                           .SUM_UNITS;
242       l_mass_add_tbl(counter).DIST_NAME := p_mass_add_rec_tbl(counter)
243                                           .DIST_NAME;
244       l_mass_add_tbl(counter).GLOBAL_ATTRIBUTE1 := p_mass_add_rec_tbl(counter)
245                                                   .GLOBAL_ATTRIBUTE1;
246       l_mass_add_tbl(counter).GLOBAL_ATTRIBUTE2 := p_mass_add_rec_tbl(counter)
247                                                   .GLOBAL_ATTRIBUTE2;
248       l_mass_add_tbl(counter).GLOBAL_ATTRIBUTE3 := p_mass_add_rec_tbl(counter)
249                                                   .GLOBAL_ATTRIBUTE3;
250       l_mass_add_tbl(counter).GLOBAL_ATTRIBUTE4 := p_mass_add_rec_tbl(counter)
251                                                   .GLOBAL_ATTRIBUTE4;
252       l_mass_add_tbl(counter).GLOBAL_ATTRIBUTE5 := p_mass_add_rec_tbl(counter)
253                                                   .GLOBAL_ATTRIBUTE5;
254       l_mass_add_tbl(counter).GLOBAL_ATTRIBUTE6 := p_mass_add_rec_tbl(counter)
255                                                   .GLOBAL_ATTRIBUTE6;
256       l_mass_add_tbl(counter).GLOBAL_ATTRIBUTE7 := p_mass_add_rec_tbl(counter)
257                                                   .GLOBAL_ATTRIBUTE7;
258       l_mass_add_tbl(counter).GLOBAL_ATTRIBUTE8 := p_mass_add_rec_tbl(counter)
259                                                   .GLOBAL_ATTRIBUTE8;
260       l_mass_add_tbl(counter).GLOBAL_ATTRIBUTE9 := p_mass_add_rec_tbl(counter)
261                                                   .GLOBAL_ATTRIBUTE9;
262       l_mass_add_tbl(counter).GLOBAL_ATTRIBUTE10 := p_mass_add_rec_tbl(counter)
263                                                    .GLOBAL_ATTRIBUTE10;
264       l_mass_add_tbl(counter).GLOBAL_ATTRIBUTE11 := p_mass_add_rec_tbl(counter)
265                                                    .GLOBAL_ATTRIBUTE11;
266       l_mass_add_tbl(counter).GLOBAL_ATTRIBUTE12 := p_mass_add_rec_tbl(counter)
267                                                    .GLOBAL_ATTRIBUTE12;
268       l_mass_add_tbl(counter).GLOBAL_ATTRIBUTE13 := p_mass_add_rec_tbl(counter)
269                                                    .GLOBAL_ATTRIBUTE13;
270       l_mass_add_tbl(counter).GLOBAL_ATTRIBUTE14 := p_mass_add_rec_tbl(counter)
271                                                    .GLOBAL_ATTRIBUTE14;
272       l_mass_add_tbl(counter).GLOBAL_ATTRIBUTE15 := p_mass_add_rec_tbl(counter)
273                                                    .GLOBAL_ATTRIBUTE15;
274       l_mass_add_tbl(counter).GLOBAL_ATTRIBUTE16 := p_mass_add_rec_tbl(counter)
275                                                    .GLOBAL_ATTRIBUTE16;
276       l_mass_add_tbl(counter).GLOBAL_ATTRIBUTE17 := p_mass_add_rec_tbl(counter)
277                                                    .GLOBAL_ATTRIBUTE17;
278       l_mass_add_tbl(counter).GLOBAL_ATTRIBUTE18 := p_mass_add_rec_tbl(counter)
279                                                    .GLOBAL_ATTRIBUTE18;
280       l_mass_add_tbl(counter).GLOBAL_ATTRIBUTE19 := p_mass_add_rec_tbl(counter)
281                                                    .GLOBAL_ATTRIBUTE19;
282       l_mass_add_tbl(counter).GLOBAL_ATTRIBUTE20 := p_mass_add_rec_tbl(counter)
283                                                    .GLOBAL_ATTRIBUTE20;
284       l_mass_add_tbl(counter).GLOBAL_ATTRIBUTE_CATEGORY := p_mass_add_rec_tbl(counter)
285                                                           .GLOBAL_ATTRIBUTE_CATEGORY;
286       l_mass_add_tbl(counter).CONTEXT := p_mass_add_rec_tbl(counter)
287                                         .CONTEXT;
288       l_mass_add_tbl(counter).INVENTORIAL := p_mass_add_rec_tbl(counter)
289                                             .INVENTORIAL;
290       l_mass_add_tbl(counter).SHORT_FISCAL_YEAR_FLAG := p_mass_add_rec_tbl(counter)
291                                                        .SHORT_FISCAL_YEAR_FLAG;
292       l_mass_add_tbl(counter).CONVERSION_DATE := p_mass_add_rec_tbl(counter)
293                                                 .CONVERSION_DATE;
294       l_mass_add_tbl(counter).ORIGINAL_DEPRN_START_DATE := p_mass_add_rec_tbl(counter)
295                                                           .ORIGINAL_DEPRN_START_DATE;
296       l_mass_add_tbl(counter).GROUP_ASSET_ID := p_mass_add_rec_tbl(counter)
297                                                .GROUP_ASSET_ID;
298       l_mass_add_tbl(counter).CUA_PARENT_HIERARCHY_ID := p_mass_add_rec_tbl(counter)
299                                                         .CUA_PARENT_HIERARCHY_ID;
300       l_mass_add_tbl(counter).UNITS_TO_ADJUST := p_mass_add_rec_tbl(counter)
301                                                 .UNITS_TO_ADJUST;
302       l_mass_add_tbl(counter).BONUS_YTD_DEPRN := p_mass_add_rec_tbl(counter)
303                                                 .BONUS_YTD_DEPRN;
304       l_mass_add_tbl(counter).BONUS_DEPRN_RESERVE := p_mass_add_rec_tbl(counter)
305                                                     .BONUS_DEPRN_RESERVE;
306       l_mass_add_tbl(counter).AMORTIZE_NBV_FLAG := p_mass_add_rec_tbl(counter)
307                                                   .AMORTIZE_NBV_FLAG;
308       l_mass_add_tbl(counter).AMORTIZATION_START_DATE := p_mass_add_rec_tbl(counter)
309                                                         .AMORTIZATION_START_DATE;
310       l_mass_add_tbl(counter).TRANSACTION_TYPE_CODE := p_mass_add_rec_tbl(counter)
311                                                       .TRANSACTION_TYPE_CODE;
312       l_mass_add_tbl(counter).TRANSACTION_DATE := p_mass_add_rec_tbl(counter)
313                                                  .TRANSACTION_DATE;
314       l_mass_add_tbl(counter).WARRANTY_ID := p_mass_add_rec_tbl(counter)
315                                             .WARRANTY_ID;
316       l_mass_add_tbl(counter).LEASE_ID := p_mass_add_rec_tbl(counter)
317                                          .LEASE_ID;
318       l_mass_add_tbl(counter).LESSOR_ID := p_mass_add_rec_tbl(counter)
319                                           .LESSOR_ID;
320       l_mass_add_tbl(counter).PROPERTY_TYPE_CODE := p_mass_add_rec_tbl(counter)
321                                                    .PROPERTY_TYPE_CODE;
322       l_mass_add_tbl(counter).PROPERTY_1245_1250_CODE := p_mass_add_rec_tbl(counter)
323                                                         .PROPERTY_1245_1250_CODE;
324       l_mass_add_tbl(counter).IN_USE_FLAG := p_mass_add_rec_tbl(counter)
325                                             .IN_USE_FLAG;
326       l_mass_add_tbl(counter).OWNED_LEASED := p_mass_add_rec_tbl(counter)
327                                              .OWNED_LEASED;
328       l_mass_add_tbl(counter).NEW_USED := p_mass_add_rec_tbl(counter)
329                                          .NEW_USED;
330       l_mass_add_tbl(counter).ASSET_ID := p_mass_add_rec_tbl(counter)
331                                          .ASSET_ID;
332       l_mass_add_tbl(counter).MATERIAL_INDICATOR_FLAG := p_mass_add_rec_tbl(counter)
333                                                         .MATERIAL_INDICATOR_FLAG;
334     end loop;
335 
336     forall i in 1 .. l_mass_add_tbl.count SAVE EXCEPTIONS
337       update fa_mass_additions
338          set ROW = l_mass_add_tbl(i)
339        where mass_addition_id = l_mass_add_id_tbl(i);
340     l_mass_add_id_tbl.delete;
341     commit;
342     return true;
343   exception
344     WHEN dml_errors THEN
345       l_errors := SQL%BULK_EXCEPTIONS.COUNT;
346       if (p_log_level_rec.statement_level) then
347         fa_debug_pkg.add(l_calling_fn,
348                          'Number of errors is ',
349                          l_errors,
350                          p_log_level_rec => p_log_level_rec);
351       end if;
352 
353       FOR i IN 1 .. l_errors LOOP
354 
355         if (p_log_level_rec.statement_level) then
356           fa_debug_pkg.add(l_calling_fn,
357                            'Error ' || i || ' occurred during ' ||
358                            'iteration ',
359                            SQL%BULK_EXCEPTIONS(i).ERROR_INDEX,
360                            p_log_level_rec => p_log_level_rec);
361         end if;
362         fa_debug_pkg.add(l_calling_fn,
363                          'Oracle error is ',
364                          SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE),
365                          p_log_level_rec => p_log_level_rec);
366         if (p_log_level_rec.statement_level) then
367           fa_debug_pkg.add(l_calling_fn,
368                            'Oracle error is ',
369                            SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE),
370                            p_log_level_rec => p_log_level_rec);
371         end if;
372 
373       END LOOP;
374       commit;
375       return false; /*need to check */
376   end;
377 
378   /*===============================End Of FUNCTION/PROCEDURE===============================*/
379   /*main procedure for concurrent program*/
380   procedure prepare_mass_additions(
381                 errbuf                  OUT NOCOPY VARCHAR2,
382                 retcode                 OUT NOCOPY NUMBER,
383                 p_book_type_code        IN varchar2) is
384 
385     l_mass_add_rec FA_MASSADD_PREPARE_PKG.mass_add_rec;
386 
387     l_procedure_name varchar2(4000);
388     l_label          varchar2(4000);
389     l_request_id     NUMBER;
390 
391     l_batch_size number := 500;
392     l_count      number;
393     l_debug_str  varchar2(1000);
394 
395     --type mass_add_dist_tbl is table of mass_add_dist_rec;
396 
397     TYPE v30_tbl IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
398     TYPE num_tbl IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
399     TYPE date_tbl IS TABLE OF DATE INDEX BY BINARY_INTEGER;
400     TYPE v100_tbl IS TABLE OF VARCHAR2(100) INDEX BY BINARY_INTEGER;
401 
402     l_mass_add_rec_tbl  FA_MASSADD_PREPARE_PKG.mass_add_rec_tbl;
403     --l_mass_add_dist_tbl mass_add_dist_tbl;
404 
405     status                    varchar2(15);
406     l_dist_MASSADD_DIST_ID    num_tbl;
407     l_dist_UNITS              num_tbl;
408     l_dist_DEPRN_EXPENSE_CCID num_tbl;
409     l_dist_LOCATION_ID        num_tbl;
410     l_dist_EMPLOYEE_ID        num_tbl;
411 
412     l_prev_category_id    number := -1;
413     l_prev_asset_key_ccid number := -1;
414     l_curr_category_id    number := 0;
415     l_curr_asset_key_ccid number := 0;
416     merge_cost            number;
417     --l_distributions_table fa_mass_add_dist_tbl;
418 
419     old_expense_ccid number := -1;
420     new_expense_ccid number := -1;
421 
422     l_lookup_rule_value varchar2(60);
423     l_status            number;
424     l_calling_fn        varchar2(40) := 'prepare_mass_additions';
425     mass_prepare EXCEPTION;
426     --Cursor to get all mass_addition lines
427     --check about the book_type_code
428     cursor get_mass_add(l_book_type_code varchar2) is
429       Select MASS_ADDITION_ID,
430              ASSET_NUMBER,
431              TAG_NUMBER,
432              DESCRIPTION,
433              ASSET_CATEGORY_ID,
434              MANUFACTURER_NAME,
435              SERIAL_NUMBER,
436              MODEL_NUMBER,
437              BOOK_TYPE_CODE,
438              DATE_PLACED_IN_SERVICE,
439              FIXED_ASSETS_COST,
440              PAYABLES_UNITS,
441              FIXED_ASSETS_UNITS,
442              PAYABLES_CODE_COMBINATION_ID,
443              EXPENSE_CODE_COMBINATION_ID,
444              LOCATION_ID,
445              ASSIGNED_TO,
446              FEEDER_SYSTEM_NAME,
447              CREATE_BATCH_DATE,
448              CREATE_BATCH_ID,
449              LAST_UPDATE_DATE,
450              LAST_UPDATED_BY,
451              REVIEWER_COMMENTS,
452              INVOICE_NUMBER,
453              VENDOR_NUMBER,
454              PO_VENDOR_ID,
455              PO_NUMBER,
456              POSTING_STATUS,
457              QUEUE_NAME,
458              INVOICE_DATE,
459              INVOICE_CREATED_BY,
460              INVOICE_UPDATED_BY,
461              PAYABLES_COST,
462              INVOICE_ID,
463              PAYABLES_BATCH_NAME,
464              DEPRECIATE_FLAG,
465              PARENT_MASS_ADDITION_ID,
466              PARENT_ASSET_ID,
467              SPLIT_MERGED_CODE,
468              AP_DISTRIBUTION_LINE_NUMBER,
469              POST_BATCH_ID,
470              ADD_TO_ASSET_ID,
471              AMORTIZE_FLAG,
472              NEW_MASTER_FLAG,
473              ASSET_KEY_CCID,
474              ASSET_TYPE,
475              DEPRN_RESERVE,
476              YTD_DEPRN,
477              BEGINNING_NBV,
478              CREATED_BY,
479              CREATION_DATE,
480              LAST_UPDATE_LOGIN,
481              SALVAGE_VALUE,
482              ACCOUNTING_DATE,
483              ATTRIBUTE1,
484              ATTRIBUTE2,
485              ATTRIBUTE3,
486              ATTRIBUTE4,
487              ATTRIBUTE5,
488              ATTRIBUTE6,
489              ATTRIBUTE7,
490              ATTRIBUTE8,
491              ATTRIBUTE9,
492              ATTRIBUTE10,
493              ATTRIBUTE11,
494              ATTRIBUTE12,
495              ATTRIBUTE13,
496              ATTRIBUTE14,
497              ATTRIBUTE15,
498              ATTRIBUTE_CATEGORY_CODE,
499              FULLY_RSVD_REVALS_COUNTER,
500              MERGE_INVOICE_NUMBER,
501              MERGE_VENDOR_NUMBER,
502              PRODUCTION_CAPACITY,
503              REVAL_AMORTIZATION_BASIS,
504              REVAL_RESERVE,
505              UNIT_OF_MEASURE,
506              UNREVALUED_COST,
507              YTD_REVAL_DEPRN_EXPENSE,
508              ATTRIBUTE16,
509              ATTRIBUTE17,
510              ATTRIBUTE18,
511              ATTRIBUTE19,
512              ATTRIBUTE20,
513              ATTRIBUTE21,
514              ATTRIBUTE22,
515              ATTRIBUTE23,
516              ATTRIBUTE24,
517              ATTRIBUTE25,
518              ATTRIBUTE26,
519              ATTRIBUTE27,
520              ATTRIBUTE28,
521              ATTRIBUTE29,
522              ATTRIBUTE30,
523              MERGED_CODE,
524              SPLIT_CODE,
525              MERGE_PARENT_MASS_ADDITIONS_ID,
526              SPLIT_PARENT_MASS_ADDITIONS_ID,
527              PROJECT_ASSET_LINE_ID,
528              PROJECT_ID,
529              TASK_ID,
530              SUM_UNITS,
531              DIST_NAME,
532              GLOBAL_ATTRIBUTE1,
533              GLOBAL_ATTRIBUTE2,
534              GLOBAL_ATTRIBUTE3,
535              GLOBAL_ATTRIBUTE4,
536              GLOBAL_ATTRIBUTE5,
537              GLOBAL_ATTRIBUTE6,
538              GLOBAL_ATTRIBUTE7,
539              GLOBAL_ATTRIBUTE8,
540              GLOBAL_ATTRIBUTE9,
541              GLOBAL_ATTRIBUTE10,
542              GLOBAL_ATTRIBUTE11,
543              GLOBAL_ATTRIBUTE12,
544              GLOBAL_ATTRIBUTE13,
545              GLOBAL_ATTRIBUTE14,
546              GLOBAL_ATTRIBUTE15,
547              GLOBAL_ATTRIBUTE16,
548              GLOBAL_ATTRIBUTE17,
549              GLOBAL_ATTRIBUTE18,
550              GLOBAL_ATTRIBUTE19,
551              GLOBAL_ATTRIBUTE20,
552              GLOBAL_ATTRIBUTE_CATEGORY,
553              CONTEXT,
554              INVENTORIAL,
555              SHORT_FISCAL_YEAR_FLAG,
556              CONVERSION_DATE,
557              ORIGINAL_DEPRN_START_DATE,
558              GROUP_ASSET_ID,
559              CUA_PARENT_HIERARCHY_ID,
560              UNITS_TO_ADJUST,
561              BONUS_YTD_DEPRN,
562              BONUS_DEPRN_RESERVE,
563              AMORTIZE_NBV_FLAG,
564              AMORTIZATION_START_DATE,
565              TRANSACTION_TYPE_CODE,
566              TRANSACTION_DATE,
567              WARRANTY_ID,
568              LEASE_ID,
569              LESSOR_ID,
570              PROPERTY_TYPE_CODE,
571              PROPERTY_1245_1250_CODE,
572              IN_USE_FLAG,
573              OWNED_LEASED,
574              NEW_USED,
575              ASSET_ID,
576              MATERIAL_INDICATOR_FLAG,
577              cast(multiset (select MASSADD_DIST_ID dist_id,
578                           MASS_ADDITION_ID mass_add_id,
579                           UNITS,
580                           DEPRN_EXPENSE_CCID,
581                           LOCATION_ID,
582                           EMPLOYEE_ID
583                      from FA_MASSADD_DISTRIBUTIONS mass_dist
584                     where mass_dist.mass_addition_id =
585                           mass_add.mass_addition_id) as
586                   fa_mass_add_dist_tbl) dists
587         FROM fa_mass_additions mass_add
588        where posting_status in ('NEW', 'ON HOLD', 'POST')
589          and book_type_code = l_book_type_code
590          and nvl(merged_code, '1') not in ('MC');
591 
592     CURSOR lookup_cur(c_lookup_type varchar2) IS
593       select lookup_code
594         from fa_lookups
595        where lookup_type = c_lookup_type
596          and enabled_flag = 'Y'
597          and nvl(end_date_active, sysdate) >= sysdate
598          and rownum = 1;
599 
600   begin
601 
602     l_procedure_name := 'fa.plsql.FA_AUTO_PREP_PKG.do_prepare_mass_addtions';
603     l_label          := 'fa.plsql.FA_AUTO_PREP_PKG.do_prepare_mass_addtions.';
604 
605     --Call log header
606     if (not g_log_level_rec.initialized) then
607       if (NOT
608           fa_util_pub.get_log_level_rec(x_log_level_rec => g_log_level_rec)) then
609         raise mass_prepare;
610       end if;
611     end if;
612 
613     Savepoint Work;
614     /*         ------------------------------------------------------------------------------
615               | Get the package type for all attributes. Assumption here is that it will    |
616               | return either DEFAULT or CUSTOM or ENERGY as lookup code                    |
617                ------------------------------------------------------------------------------
618     */
619 
620     FOR rec IN lookup_cur('MASS ADD PREPARE RULES') LOOP
621       l_lookup_rule_value := rec.lookup_code;
622     END LOOP;
623 
624     /*         ------------------------------------------------------------------------------
625               |  Call to prepare the asset key and category. The function will internally    |
626               |  call either the package for common customers which will be empty stubs for  |
627               |  now or will call the package for Energy Cutomers which will have code to    |
628               |  prepare Asset Key and Category_id.                                          |
629                ------------------------------------------------------------------------------
630     */
631 
632     l_debug_str := 'Calling prepare_asset_key_category';
633     if (g_log_level_rec.statement_level) then
634       fa_debug_pkg.add(l_calling_fn,
635                        l_debug_str,
636                        '',
637                        p_log_level_rec => g_log_level_rec);
638     end if;
639 
640       if (g_log_level_rec.statement_level) then
641           fa_debug_pkg.add(l_calling_fn,
642                            'l_lookup_rule_value',
643                            l_lookup_rule_value,
644                            p_log_level_rec => g_log_level_rec);
645         end if;
646 
647     /*call the asset key function deprneding upon the package*/
648     if (l_lookup_rule_value = 'CUSTOM ENERGY') then
649 
650       if not
651           FA_MASSADD_PREP_ENERGY_PKG.prep_asset_key_category(p_book_type_code,
652                                                              p_log_level_rec => g_log_level_rec) then
653         l_debug_str := 'Energy prepare asset key returned failure';
654 
655       end if;
656 
657       /*         ------------------------------------------------------------------------------
658                 |  Call to merge the mass additions lines. The functionw ill internally call   |
659                 |  either the package for common customers which will be standard merge code   |
660                 |  or will call the package for Energy Cutomers which will have code to merge  |
661                 |  to merge the lines with identical Asset Key and Category_id.                |
662                  ------------------------------------------------------------------------------
663       */
664       l_debug_str := 'Calling merge_mass_additions';
665       if (g_log_level_rec.statement_level) then
666         fa_debug_pkg.add(l_calling_fn,
667                          l_debug_str,
668                          '',
669                          p_log_level_rec => g_log_level_rec);
670       end if;
671 
672       if not
673           FA_MASSADD_PREP_ENERGY_PKG.merge_lines(p_book_type_code,
674                                                  p_log_level_rec => g_log_level_rec) then
675         l_debug_str := 'Energy merge_lines returned failure';
676       end if;
677     end if;
678 
679     /*         ------------------------------------------------------------------------------
680               |  Loop through all the mass additions lines and call the main attribute       |
681               |  fucntion which will process the all other attributes of the mass addition   |
682               |  lines. The fucntion will internally call either the package for the common  |
683               |  customers or the package for energy customers which will have an extra call |
684               |  to the group function which will further call the Create Summary Assets     |
685               |  fucntion to process Create Summary Asset.                                   |
686                ------------------------------------------------------------------------------
687     */
688     l_debug_str := 'Processing mass additons lines for other attributes';
689     --Open the cursor for the mass additions
690     open GET_MASS_ADD(p_book_type_code);
691 
692     -- Process all the records
693     while true loop
694 
695       l_debug_str := 'In Loop';
696       --fetch the records as per batch size
697       fetch GET_MASS_ADD BULK COLLECT
698         INTO l_mass_add_rec_tbl limit l_batch_size;
699 
700       --exit from the loop if no more records
701       if (GET_MASS_ADD%NOTFOUND) and (l_mass_add_rec_tbl.count < 1) then
702         exit;
703       end if;
704 
705       --Loop to get process each mass addition line
706       for l_count in 1 .. l_mass_add_rec_tbl.count loop
707         l_debug_str := 'Calling prepare_attributes';
708         if (g_log_level_rec.statement_level) then
709           fa_debug_pkg.add(l_calling_fn,
710                            l_debug_str,
711                            '',
712                            p_log_level_rec => g_log_level_rec);
713         end if;
714         if (l_lookup_rule_value = 'DEFAULT') then
715           if not
716               FA_MASSADD_PREP_DEFAULT_PKG.prepare_attributes(l_mass_add_rec_tbl(l_count),
717                                                              p_log_level_rec => g_log_level_rec) then
718             l_debug_str := 'Custom prepare attributes returned failure';
719 
720             if (g_log_level_rec.statement_level) then
721               fa_debug_pkg.add(l_calling_fn,
722                                l_debug_str,
723                                '',
724                                p_log_level_rec => g_log_level_rec);
725             end if;
726           end if;
727 
728         elsif (l_lookup_rule_value = 'CUSTOM') then
729           if not
730               FA_MASSADD_PREP_CUSTOM_PKG.prepare_attributes(l_mass_add_rec_tbl(l_count),
731                                                             p_log_level_rec => g_log_level_rec) then
732             l_debug_str := 'Custom prepare attributes returned failure';
733             if (g_log_level_rec.statement_level) then
734 
735               fa_debug_pkg.add(l_calling_fn,
736                                l_debug_str,
737                                '',
738                                p_log_level_rec => g_log_level_rec);
739             end if;
740           end if;
741         elsif (l_lookup_rule_value = 'CUSTOM ENERGY') then
742           if not
743               FA_MASSADD_PREP_ENERGY_PKG.prepare_attributes(l_mass_add_rec_tbl(l_count),
744                                                             p_log_level_rec => g_log_level_rec) then
745             l_debug_str := 'Energy prepare attributes returned failure';
746             if (g_log_level_rec.statement_level) then
747 
748               fa_debug_pkg.add(l_calling_fn,
749                                l_debug_str,
750                                '',
751                                p_log_level_rec => g_log_level_rec);
752             end if;
753           end if;
754         end if;
755       end loop;
756       l_debug_str := 'Calling update_mass_additions';
757       if (g_log_level_rec.statement_level) then
758 
759         fa_debug_pkg.add(l_calling_fn,
760                          l_debug_str,
761                          '',
762                          p_log_level_rec => g_log_level_rec);
763       end if;
764       if not update_mass_additions(l_mass_add_rec_tbl,
765                                    p_log_level_rec => g_log_level_rec) then
766         l_debug_str := 'error in update_mass_additions';
767         if (g_log_level_rec.statement_level) then
768 
769           fa_debug_pkg.add(l_calling_fn,
770                            l_debug_str,
771                            '',
772                            p_log_level_rec => g_log_level_rec);
773         end if;
774       end if;
775     end loop;
776     commit;
777     retcode := 0;
778 
779   exception
780     WHEN others THEN
781       retcode := 2;
782       rollback;
783       FA_SRVR_MSG.ADD_MESSAGE(CALLING_FN      => 'FA_MASSADD_PREPARE_PKG.prepare_mass_additions',
784                               p_log_level_rec => g_log_level_rec);
785 
786   end;
787   /*===============================End Of FUNCTION/PROCEDURE===============================*/
788 end FA_MASSADD_PREPARE_PKG;