DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGF_AW_RULE

Source


1 PACKAGE BODY IGF_AW_RULE AS
2 /* $Header: IGFAW04B.pls 120.1 2006/02/08 23:39:01 ridas noship $ */
3 --
4 -- History :
5 -- ridas       29-Nov-04      Bug # 3021287 Skip the student if award is locked at the student level
6 --
7 -- svuppala    14-Oct-04      Bug # 3416936 Modified TBH call to addeded field
8 --                            Eligible for Additional Unsubsidized Loans
9 -- ugummall            26-SEP-2003     FA 126 - Multiple FA Offices
10 --                                     added new parameter assoc_org_num to TBH call
11 --                                     igf_ap_fa_base_rec_pkg.update_row  w.r.t. FA 126
12 --
13 --
14 -- Bug ID   :2613546
15 -- adhawan             28-OCT-2002    The Run procedure has been modified with the new parameters
16 --                                    p_grp_code for  Target Group assignment
17 --                                    p_pergrp_id for processing of all students belonging to the Person ID Group
18 --                                    p_base_id has been removed
19 --                                    The process RUN would be used for Assignment of Target Groups and not Cost of attendace groups
20 --                                    The process tgroup_rule has been modified to have p_pergrp_id instead of p_base_id and p_grp_code added
21 --                                    All the processing associated with the Rules has been obsoleted.
22 
23 -- Bug ID  : 1818617
24 -- who                 when            what
25 --
26 -- masehgal            25-Sep-2002     FA 104 - To Do Enhancements
27 --                                     Added manual_disb_hold in FA Base update
28 ------------------------------------------------------------------------
29 
30 -- sjadhav             24-jul-2001     added parameter p_get_recent_info
31 -- adhawan
32 -- 2313791             22-apr-2002    Added messages when the Group or the Cost of Attendance is assigned to the Student
33 -- | gvarapra   14-sep-2004         FA138 - ISIR Enhancements                    |
34 -- |                                Changed arguments in call to                 |
35 -- |                                IGF_AP_FA_BASE_RECORD_PKG.                   |
36 ------------------------------------------------------------------------
37 --
38 
39 
40 lv_get_recent_info VARCHAR2(10) := 'N';
41 l_ci_cal_type        igf_aw_target_grp.cal_type%TYPE ;
42 l_ci_sequence_number igf_aw_target_grp.sequence_number%TYPE ;
43 
44 
45 --This process would assign the Award Group to the students for an award year or the students belonging to Person ID Group
46 PROCEDURE run   ( errbuf              OUT NOCOPY VARCHAR2,
47                  retcode              OUT NOCOPY NUMBER,
48                  l_award_year         IN  VARCHAR2 ,
49                  p_grp_code           IN  igf_aw_target_grp.group_cd%TYPE,
50                  p_pergrp_id          IN  igs_pe_prsid_grp_mem_all.group_id%TYPE,
51                  p_org_id             IN  NUMBER
52                        )
53 
54 IS
55   /*
56   ||  Created By : cdcruz
57   ||  Created On : 14-NOV-2000
58   ||  Purpose :
59   ||  Known limitations, enhancements or remarks :
60   ||  Change History :
61   ||  Who             When            What
62   ||  (reverse chronological order - newest change first)
63   */
64 
65 
66     --Cursor to find the User Parameter Award Year (which is same as Alternate Code) to display in the Log
67    CURSOR c_alternate_code(cp_ci_cal_type    igs_ca_inst.cal_type%TYPE,
68                            cp_ci_sequence_NUMBER  igs_ca_inst.sequence_NUMBER%TYPE)   IS
69    SELECT  alternate_code
70    FROM    igs_ca_inst
71    WHERE   cal_type        = cp_ci_cal_type    AND
72            sequence_NUMBER = cp_ci_sequence_NUMBER;
73 
74    CURSOR c_get_parameters IS
75    SELECT meaning, lookup_code FROM igf_lookups_view
76    WHERE lookup_type='IGF_GE_PARAMETERS' AND
77    lookup_code IN ('AWARD_YEAR','PERSON_ID_GROUP','PARAMETER_PASS');
78 
79    --get person group description
80    CURSOR get_grp_desc(lp_per_id igs_pe_persid_group_all.group_id%TYPE) IS
81       SELECT description
82         FROM igs_pe_persid_group_all
83        WHERE group_id = lp_per_id;
84 
85     lv_desc    igs_pe_persid_group_all.description%TYPE;
86 
87 
88    parameter_rec c_get_parameters%ROWTYPE;
89    l_award_years    igf_lookups_view.meaning%TYPE;
90    l1_person_number igf_lookups_view.meaning%TYPE;
91    l_run_types     igf_lookups_view.meaning%TYPE;
92    l_para_pass     igf_lookups_view.meaning%TYPE;
93    l_alternate_code igs_ca_inst.alternate_code%TYPE;
94 
95 BEGIN
96 
97      igf_aw_gen.set_org_id(p_org_id);
98 
99      lv_get_recent_info   := 'N';
100 
101      --Get the Award Year
102      l_ci_cal_type        := ltrim(rtrim(substr(l_award_year,1,10))) ;
103      l_ci_sequence_number := TO_NUMBER(substr(l_award_year,11)) ;
104 
105     --Get the Alternate code for the award year
106     OPEN        c_alternate_code(l_ci_cal_type,l_ci_sequence_NUMBER);
107     FETCH       c_alternate_code INTO  l_alternate_code;
108     CLOSE       c_alternate_code;
109 
110 
111 
112 
113     --Preparing the variables for the Parameters passed
114      OPEN c_get_parameters;
115      LOOP
116      FETCH c_get_parameters INTO  parameter_rec;
117      EXIT WHEN c_get_parameters%NOTFOUND;
118        IF parameter_rec.lookup_code ='AWARD_YEAR' THEN
119             l_award_years := parameter_rec.meaning;
120        ELSIF parameter_rec.lookup_code ='PERSON_ID_GROUP' THEN
121             l1_person_number := parameter_rec.meaning;
122        ELSIF parameter_rec.lookup_code ='PARAMETER_PASS' THEN
123           l_para_pass := parameter_rec.meaning;
124        END IF;
125       END LOOP;
126       CLOSE c_get_parameters;
127 
128     --get group description
129      OPEN get_grp_desc(p_pergrp_id);
130      FETCH get_grp_desc INTO lv_desc;
131      CLOSE get_grp_desc;
132 
133 
134     /* Print the Parameters Passed */
135 
136       FND_FILE.PUT_LINE(FND_FILE.LOG,' ');
137       FND_FILE.PUT_LINE(FND_FILE.LOG,l_para_pass);-- -----------Parameters Passed--------------
138       FND_FILE.PUT_LINE(FND_FILE.LOG,RPAD(l_award_years,35)    || '                         :'||l_alternate_code);
139       FND_FILE.PUT_LINE(FND_FILE.LOG,RPAD(igf_aw_gen.lookup_desc('IGF_GE_PARAMETERS','AWD_GRP'),35)    || '                         :'||p_grp_code);
140       FND_FILE.PUT_LINE(FND_FILE.LOG,RPAD(l1_person_number,35) || '                         :'||lv_desc);
141       FND_FILE.PUT_LINE(FND_FILE.LOG,'');
142 
143       FND_MESSAGE.SET_NAME('IGF','IGF_AW_PROC_AWD');
144       FND_MESSAGE.SET_TOKEN('AWD_YR',l_alternate_code);
145       FND_FILE.PUT_LINE(FND_FILE.LOG,FND_MESSAGE.GET);
146 
147           tgroup_rule(l_ci_cal_type        ,
148                       l_ci_sequence_NUMBER ,
149                       p_pergrp_id  ,
150                       p_grp_code) ;
151 END run;
152 
153  PROCEDURE tgroup_rule(   p_ci_cal_type         in igf_aw_target_grp.cal_type%TYPE  ,
154                           p_ci_sequence_NUMBER  in igf_aw_target_grp.sequence_number%TYPE,
155                           p_pergrp_id           in igs_pe_prsid_grp_mem_all.group_id%TYPE,
156                           p_grp_code           IN  igf_aw_target_grp.group_cd%TYPE)
157 
158  IS
159   /*
160   ||  Created By : cdcruz
161   ||  Created On : 14-NOV-2000
162   ||  Purpose :
163   ||  Known limitations, enhancements or remarks :
164   ||  Change History :
165   ||  Who             When            What
166   ||  (reverse chronological order - newest change first)
167   ||  ridas           08-FEB-2006     Bug #5021084. Added new parameter 'lv_group_type' in
168   ||                                  call to igf_ap_ss_pkg.get_pid
169   ||  rasahoo         17-NOV-2003     FA 128 - ISIR update 2004-05
170   ||                                  added new parameter award_fmly_contribution_type to
171   ||                                  igf_ap_fa_base_rec_pkg.update_row
172   ||  ugummall        26-SEP-2003     FA 126 - Multiple FA Offices
173   ||                                  added new parameter assoc_org_num to TBH call
174   ||                                  igf_ap_fa_base_rec_pkg.update_row  w.r.t. FA 126
175   ||
176   ||  rasahoo         27-aug-2003     Removed the call to IGF_AP_OSS_PROCESS.GET_OSS_DETAILS
177   ||                                  as part of obsoletion of FA base record history
178   ||  masehgal        11-Nov-2002     FA 101 - SAP Obsoletion
179   ||                                  removed packaging hold
180   */
181     --Cursor to find the User Parameter Award Year (which is same as Alternate Code) to display in the Log
182    CURSOR c_alternate_code(cp_ci_cal_type    igs_ca_inst.cal_type%TYPE,
183                            cp_ci_sequence_NUMBER  igs_ca_inst.sequence_NUMBER%TYPE)   IS
184    SELECT  alternate_code
185    FROM    igs_ca_inst
186    WHERE   cal_type        = cp_ci_cal_type    AND
187            sequence_NUMBER = cp_ci_sequence_NUMBER;
188    l_alternate_code igs_ca_inst.alternate_code%TYPE;
189 
190   CURSOR c_year ( x_ci_cal_type          igf_ap_fa_base_rec.ci_cal_type%type ,
191                   x_ci_sequence_NUMBER   igf_ap_fa_base_rec.ci_sequence_NUMBER%type )
192   IS
193   SELECT
194    fa.base_id ,
195    fa.person_id,
196    hz.party_number
197   FROM
198    igf_ap_fa_base_rec fa,
199    hz_parties         hz
200   WHERE
201    fa.ci_cal_type        = x_ci_cal_type        AND
202    fa.ci_sequence_NUMBER = x_ci_sequence_NUMBER AND
203    hz.party_id           = fa.person_id;
204 
205   l_year c_year%rowtype ;
206 
207    CURSOR c_rule_cd(cp_cal_type igf_aw_target_grp.cal_type%TYPE ,
208                     cp_sequence_number igf_aw_target_grp.sequence_number%TYPE,
209                     cp_group_cd igf_aw_target_grp.group_cd%TYPE)
210 
211    IS
212    SELECT
213    tgrp.group_cd  R_code
214    FROM
215    igf_aw_target_grp tgrp
216    WHERE cal_type =cp_cal_type AND
217    sequence_number =cp_sequence_number AND
218    group_cd = cp_group_cd;
219 
220   l_rule_cd c_rule_cd%rowtype ;
221 
222    CURSOR c_fabase ( x_base_id igf_ap_fa_base_rec.base_id%type )
223    IS
224    SELECT
225      fabase.*
226    FROM
227      igf_ap_fa_base_rec fabase
228    WHERE
229      fabase.base_id = x_base_id ;
230 
231 --Cursor below retrieves all the person belonging to a person id group
232 
233  /* Variables for the dynamic person id group */
234     lv_status       VARCHAR2(1) := 'S';  /*Defaulted to 'S' and the function will return 'F' in case of failure */
235     lv_group_type   igs_pe_persid_group_v.group_type%TYPE;
236     lv_sql_stmt     VARCHAR(32767) := igf_ap_ss_pkg.get_pid(p_pergrp_id,lv_status,lv_group_type);
237 
238 
239    TYPE CstudCurTyp IS REF CURSOR ;
240      c_stud CstudCurTyp ;
241    TYPE CstudTyp IS RECORD (  party_id hz_parties.party_id%TYPE,  party_number hz_parties.party_number%TYPE);
242      l_stud CstudTyp ;
243 
244 
245      CURSOR c_check_group(p_base_id igf_ap_fa_base_rec.base_id%type ) IS
246      SELECT target_group  from igf_ap_fa_base_rec
247      WHERE base_id=p_base_id;
248      l_check_group         c_check_group%ROWTYPE;
249 
250 
251     l_fabase c_fabase%rowtype ;
252 
253     l_stud_proc   BOOLEAN ;
254     l_curr_base_id igf_ap_fa_base_rec.base_id%type ;
255 
256     ln_person_id            igs_ad_ps_appl_inst.person_id%TYPE;
257     l_person_NUMBER         igf_ap_fa_con_v.person_NUMBER%TYPE;
258 
259   -- Get
260   CURSOR get_grp_desc(lp_per_id igs_pe_persid_group_all.group_id%TYPE) IS
261     SELECT description
262       FROM igs_pe_persid_group_all
263      WHERE group_id = lp_per_id;
264     lv_desc    igs_pe_persid_group_all.description%TYPE;
265 
266   -- Get
267   CURSOR c_get_base_id(lp_ci_cal_type igf_ap_fa_base_rec.ci_cal_type%TYPE, lp_ci_seq_num igf_ap_fa_base_rec.ci_sequence_number%TYPE, lp_person_id igf_ap_fa_base_rec.person_id%TYPE) IS
268     SELECT fa.base_id
269       FROM igf_ap_fa_base_rec fa
270      WHERE fa.ci_cal_type        =  lp_ci_cal_type
271        AND fa.ci_sequence_number =  lp_ci_seq_num
272        AND fa.person_id          =  lp_person_id;
273   l_get_base_id c_get_base_id%ROWTYPE;
274 
275   ln_counter    NUMBER := 0;
276 
277  BEGIN
278   IF p_pergrp_id is NULL THEN
279     l_stud_proc := FALSE ;
280   ELSE
281     l_stud_proc := TRUE ;
282     OPEN get_grp_desc(p_pergrp_id);
283     FETCH get_grp_desc into lv_desc;
284     FND_MESSAGE.SET_NAME('IGF','IGF_AW_PERSON_ID_GROUP');
285     FND_MESSAGE.SET_TOKEN('P_PER_GRP',lv_desc);
286     FND_FILE.PUT_LINE(FND_FILE.LOG,FND_MESSAGE.GET);
287     FND_FILE.PUT_LINE(FND_FILE.LOG,'');
288     CLOSE get_grp_desc;
289   END IF;
290 
291 
292   IF l_stud_proc THEN
293      --Bug #5021084. Passing Group ID if the group type is STATIC.
294      IF lv_group_type = 'STATIC' THEN
295        OPEN  c_stud FOR 'SELECT hz.party_id , hz.party_number FROM
296                                      hz_parties hz
297                                      WHERE
298                                      hz.party_id          in ( '||lv_sql_stmt||' ) ' USING p_pergrp_id;
299      ELSIF lv_group_type = 'DYNAMIC' THEN
300        OPEN  c_stud FOR 'SELECT hz.party_id , hz.party_number FROM
301                                      hz_parties hz
302                                      WHERE
303                                      hz.party_id          in ( '||lv_sql_stmt||' ) ';
304      END IF;
305 
306   ELSE
307      OPEN c_year ( l_ci_cal_type,
308                    l_ci_sequence_NUMBER ) ;
309   END IF;
310 
311   LOOP
312 
313     IF l_stud_proc THEN
314 
315         FETCH c_stud INTO l_stud ;
316                 IF c_stud%NOTFOUND AND c_stud%ROWCOUNT = 0  THEN
317                    FND_MESSAGE.SET_NAME('IGF','IGF_DB_NO_PER_GRP');
318                    FND_FILE.PUT_LINE(fnd_file.log,fnd_message.get());
319                    FND_FILE.PUT_LINE(FND_FILE.LOG,'');
320                  CLOSE   c_stud;
321                    RETURN ;
322                 ELSE
323                    EXIT WHEN c_stud%notfound ;
324                 END IF;
325 
326         OPEN c_get_base_id(p_ci_cal_type, p_ci_sequence_number, l_stud.party_id);
327         FETCH c_get_base_id INTO l_get_base_id;
328                 IF c_get_base_id%NOTFOUND THEN
329 
330                    --Get the Alternate code for the award year
331                     OPEN        c_alternate_code(p_ci_cal_type,p_ci_sequence_number);
332                     FETCH       c_alternate_code INTO  l_alternate_code;
333                     CLOSE       c_alternate_code;
334 
335                    FND_MESSAGE.SET_NAME('IGF','IGF_GR_LI_PER_INVALID');
336                    FND_MESSAGE.SET_TOKEN('PERSON_NUMBER',l_stud.party_number);
337                    FND_MESSAGE.SET_TOKEN('AWD_YR',l_alternate_code);
338                    FND_FILE.PUT_LINE(fnd_file.log,fnd_message.get());
339                    FND_FILE.PUT_LINE(FND_FILE.LOG,'');
340 
341                    ln_counter  := 1;
342                  END IF;
343         CLOSE c_get_base_id;
344 
345         l_curr_base_id  := l_get_base_id.base_id ;
346         ln_person_id    := l_stud.party_id ;
347         l_person_number := l_stud.party_number ;
348 
349     ELSE
350 
351       FETCH c_year INTO l_year ;
352       EXIT WHEN c_year%notfound ;
353 
354       l_curr_base_id  := l_year.base_id ;
355       ln_person_id    := l_year.person_id ;
356       l_person_number := l_year.party_number;
357 
358     END IF;
359 
360 
361     IF ln_counter = 0 THEN
362     -- Process Target Group Code
363 
364       OPEN c_rule_cd(l_ci_cal_type,
365                      l_ci_sequence_NUMBER,
366                      p_grp_code);
367       LOOP
368 
369 
370          FETCH c_rule_cd INTO l_rule_cd ;
371          EXIT WHEN c_rule_cd%notfound ;
372 
373            OPEN  c_fabase(l_curr_base_id);
374            FETCH c_fabase INTO l_fabase ;
375            CLOSE c_fabase ;
376 
377            OPEN c_check_group(l_curr_base_id);
378            FETCH c_check_group INTO l_check_group;
379            CLOSE c_check_group;
380 
381             IF l_check_group.target_group = p_grp_code THEN
382               FND_MESSAGE.SET_NAME('IGF','IGF_AW_PROC_GRP_CD_ALRDY_ASGND');
383               FND_MESSAGE.SET_TOKEN('GRP_CODE',p_grp_code);
384               FND_MESSAGE.SET_TOKEN('PERSON_NUMBER',l_person_number);
385               FND_FILE.PUT_LINE(FND_FILE.LOG,FND_MESSAGE.GET);
386               FND_FILE.PUT_LINE(FND_FILE.LOG,'');
387             ELSE
388              FND_MESSAGE.SET_NAME('IGF','IGF_AW_PROCESS_GRP_CODE');
389              FND_MESSAGE.SET_TOKEN('PERSON_NUMBER',l_person_number);
390              FND_FILE.PUT_LINE(FND_FILE.LOG,FND_MESSAGE.GET);
391 
392              IF NVL(l_fabase.lock_awd_flag,'N') = 'N' THEN
393                 igf_ap_fa_base_rec_pkg.update_row(
394                      x_rowid                          =>  l_fabase.row_id,
395                      x_base_id                        =>  l_fabase.base_id,
396                      x_ci_cal_type                    =>  l_fabase.ci_cal_type,
397                      x_person_id                      =>  l_fabase.person_id,
398                      x_ci_sequence_NUMBER             =>  l_fabase.ci_sequence_NUMBER,
399                      x_org_id                         =>  l_fabase.org_id,
400                      x_coa_pending                    =>  l_fabase.coa_pending,
401                      x_verification_process_run       =>  l_fabase.verification_process_run,
402                      x_inst_verif_status_date         =>  l_fabase.inst_verif_status_date,
403                      x_manual_verif_flag              =>  l_fabase.manual_verif_flag,
404                      x_fed_verif_status               =>  l_fabase.fed_verif_status,
405                      x_fed_verif_status_date          =>  l_fabase.fed_verif_status_date,
406                      x_inst_verif_status              =>  l_fabase.inst_verif_status,
407                      x_nslds_eligible                 =>  l_fabase.nslds_eligible,
408                      x_ede_correction_batch_id        =>  l_fabase.ede_correction_batch_id,
409                      x_fa_process_status_date         =>  l_fabase.fa_process_status_date,
410                      x_isir_corr_status               =>  l_fabase.isir_corr_status,
411                      x_isir_corr_status_date          =>  l_fabase.isir_corr_status_date,
412                      x_isir_status                    =>  l_fabase.isir_status,
413                      x_isir_status_date               =>  l_fabase.isir_status_date,
414                      x_coa_code_f                     =>  l_fabase.coa_code_f,
415                      x_coa_code_i                     =>  l_fabase.coa_code_i,
416                      x_coa_f                          =>  l_fabase.coa_f,
417                      x_coa_i                          =>  l_fabase.coa_i,
418                      x_disbursement_hold              =>  l_fabase.disbursement_hold,
419                      x_fa_process_status              =>  l_fabase.fa_process_status,
420                      x_notification_status            =>  l_fabase.notification_status,
421                      x_notification_status_date       =>  l_fabase.notification_status_date,
422                      x_packaging_status               =>  l_fabase.packaging_status,
423                      x_packaging_status_date          =>  l_fabase.packaging_status_date,
424                      x_total_package_accepted         =>  l_fabase.total_package_accepted,
425                      x_total_package_offered          =>  l_fabase.total_package_offered,
426                      x_admstruct_id                   =>  l_fabase.admstruct_id,
427                      x_admsegment_1                   =>  l_fabase.admsegment_1,
428                      x_admsegment_2                   =>  l_fabase.admsegment_2,
429                      x_admsegment_3                   =>  l_fabase.admsegment_3,
430                      x_admsegment_4                   =>  l_fabase.admsegment_4,
431                      x_admsegment_5                   =>  l_fabase.admsegment_5,
432                      x_admsegment_6                   =>  l_fabase.admsegment_6,
433                      x_admsegment_7                   =>  l_fabase.admsegment_7,
434                      x_admsegment_8                   =>  l_fabase.admsegment_8,
435                      x_admsegment_9                   =>  l_fabase.admsegment_9,
436                      x_admsegment_10                  =>  l_fabase.admsegment_10,
437                      x_admsegment_11                  =>  l_fabase.admsegment_11,
438                      x_admsegment_12                  =>  l_fabase.admsegment_12,
439                      x_admsegment_13                  =>  l_fabase.admsegment_13,
440                      x_admsegment_14                  =>  l_fabase.admsegment_14,
441                      x_admsegment_15                  =>  l_fabase.admsegment_15,
442                      x_admsegment_16                  =>  l_fabase.admsegment_16,
443                      x_admsegment_17                  =>  l_fabase.admsegment_17,
444                      x_admsegment_18                  =>  l_fabase.admsegment_18,
445                      x_admsegment_19                  =>  l_fabase.admsegment_19,
446                      x_admsegment_20                  =>  l_fabase.admsegment_20,
447                      x_packstruct_id                  =>  l_fabase.packstruct_id,
448                      x_packsegment_1                  =>  l_fabase.packsegment_1,
449                      x_packsegment_2                  =>  l_fabase.packsegment_2,
450                      x_packsegment_3                  =>  l_fabase.packsegment_3,
451                      x_packsegment_4                  =>  l_fabase.packsegment_4,
452                      x_packsegment_5                  =>  l_fabase.packsegment_5,
453                      x_packsegment_6                  =>  l_fabase.packsegment_6,
454                      x_packsegment_7                  =>  l_fabase.packsegment_7,
455                      x_packsegment_8                  =>  l_fabase.packsegment_8,
456                      x_packsegment_9                  =>  l_fabase.packsegment_9,
457                      x_packsegment_10                 =>  l_fabase.packsegment_10,
458                      x_packsegment_11                 =>  l_fabase.packsegment_11,
459                      x_packsegment_12                 =>  l_fabase.packsegment_12,
460                      x_packsegment_13                 =>  l_fabase.packsegment_13,
461                      x_packsegment_14                 =>  l_fabase.packsegment_14,
462                      x_packsegment_15                 =>  l_fabase.packsegment_15,
463                      x_packsegment_16                 =>  l_fabase.packsegment_16,
464                      x_packsegment_17                 =>  l_fabase.packsegment_17,
465                      x_packsegment_18                 =>  l_fabase.packsegment_18,
466                      x_packsegment_19                 =>  l_fabase.packsegment_19,
467                      x_packsegment_20                 =>  l_fabase.packsegment_20,
468                      x_miscstruct_id                  =>  l_fabase.miscstruct_id,
469                      x_miscsegment_1                  =>  l_fabase.miscsegment_1,
470                      x_miscsegment_2                  =>  l_fabase.miscsegment_2,
471                      x_miscsegment_3                  =>  l_fabase.miscsegment_3,
472                      x_miscsegment_4                  =>  l_fabase.miscsegment_4,
473                      x_miscsegment_5                  =>  l_fabase.miscsegment_5,
474                      x_miscsegment_6                  =>  l_fabase.miscsegment_6,
475                      x_miscsegment_7                  =>  l_fabase.miscsegment_7,
476                      x_miscsegment_8                  =>  l_fabase.miscsegment_8,
477                      x_miscsegment_9                  =>  l_fabase.miscsegment_9,
478                      x_miscsegment_10                 =>  l_fabase.miscsegment_10,
479                      x_miscsegment_11                 =>  l_fabase.miscsegment_11,
480                      x_miscsegment_12                 =>  l_fabase.miscsegment_12,
481                      x_miscsegment_13                 =>  l_fabase.miscsegment_13,
482                      x_miscsegment_14                 =>  l_fabase.miscsegment_14,
483                      x_miscsegment_15                 =>  l_fabase.miscsegment_15,
484                      x_miscsegment_16                 =>  l_fabase.miscsegment_16,
485                      x_miscsegment_17                 =>  l_fabase.miscsegment_17,
486                      x_miscsegment_18                 =>  l_fabase.miscsegment_18,
487                      x_miscsegment_19                 =>  l_fabase.miscsegment_19,
488                      x_miscsegment_20                 =>  l_fabase.miscsegment_20,
489                      x_prof_judgement_flg             =>  l_fabase.prof_judgement_flg,
490                      x_nslds_data_override_flg        =>  l_fabase.nslds_data_override_flg ,
491                      x_target_group                   =>  p_grp_code,
492                      x_coa_fixed                      =>  l_fabase.coa_fixed,
493                      x_coa_pell                       =>  l_fabase.coa_pell,
494                      x_profile_status                 =>  l_fabase.profile_status,
495                      x_profile_status_date            =>  l_fabase.profile_status_date,
496                      x_profile_fc                     =>  l_fabase.profile_fc,
497                      x_manual_disb_hold               =>  l_fabase.manual_disb_hold,
498                      x_tolerance_amount               =>  l_fabase.tolerance_amount,
499                      x_pell_alt_expense               =>  l_fabase.pell_alt_expense,
500                      x_mode                           =>  'R',
501                      x_assoc_org_num                  =>  l_fabase.assoc_org_num,
502                      x_award_fmly_contribution_type   =>  l_fabase.award_fmly_contribution_type,
503                      x_isir_locked_by                 =>  l_fabase.isir_locked_by,
504                      x_adnl_unsub_loan_elig_flag      =>  l_fabase.adnl_unsub_loan_elig_flag,
505                      x_lock_awd_flag                  =>  l_fabase.lock_awd_flag,
506                      x_lock_coa_flag                  =>  l_fabase.lock_coa_flag
507                     );
508 
509                     FND_MESSAGE.SET_NAME('IGF','IGF_AW_GRP_ASSIGN_STUD');
510                     FND_MESSAGE.SET_TOKEN('GRP_CODE',p_grp_code);
511                     FND_MESSAGE.SET_TOKEN('PERSON',l_person_number);
512                     FND_FILE.PUT_LINE(FND_FILE.LOG,FND_MESSAGE.GET);
513 
514                     FND_MESSAGE.SET_NAME('IGF','IGF_AW_GRP_ASSIGN_COMP');
515                     FND_MESSAGE.SET_TOKEN('PERSON_NUMBER',l_person_number);
516                     FND_FILE.PUT_LINE(FND_FILE.LOG,FND_MESSAGE.GET);
517                     FND_FILE.PUT_LINE(FND_FILE.LOG,'');
518                   ELSE
519                     FND_MESSAGE.SET_NAME('IGF','IGF_AW_LOCK');
520                     FND_FILE.PUT_LINE(FND_FILE.LOG,FND_MESSAGE.GET);
521                     FND_FILE.PUT_LINE(FND_FILE.LOG,'');
522                   END IF;
523               END IF;
524 
525            EXIT ;
526 
527       END LOOP ;
528       CLOSE c_rule_cd ;
529     END IF;
530 
531     ln_counter := 0;
532 
533   END LOOP ;
534 
535   IF l_stud_proc THEN
536       CLOSE c_stud ;
537   ELSE
538       CLOSE c_year ;
539   END IF;
540 
541   EXCEPTION
542     WHEN OTHERS THEN
543       FND_MESSAGE.SET_NAME('IGS','IGS_GE_UNHANDLED_EXP');
544       FND_MESSAGE.SET_TOKEN('NAME','IGF_AW_RULE.tgroup_rule' || SQLERRM);
545       IF fnd_log.level_exception >= fnd_log.g_current_runtime_level THEN
546         fnd_log.string(fnd_log.level_exception,'igf.plsql.igf_aw_rule.tgroup_rule.exception','sql error:'||SQLERRM);
547       END IF;
548     FND_FILE.PUT_LINE(FND_FILE.LOG,FND_MESSAGE.GET);
549 
550  END tgroup_rule ;
551 END IGF_AW_RULE;