30:
31: g_b_non_zero_credits_flag BOOLEAN;
32: g_b_chg_crd_found BOOLEAN;
33:
34: g_v_validation_status igs_fi_1098t_data.status_code%TYPE;
35:
36: g_v_label_name_control igs_lookup_values.meaning%TYPE;
37: g_v_label_tin igs_lookup_values.meaning%TYPE;
38: g_v_label_val_status igs_lookup_values.meaning%TYPE;
110: g_v_validation_status := p_v_validation_status;
111: END IF;
112: END set_validation_status;
113:
114: FUNCTION validate_namecontrol(p_v_name_control igs_fi_1098t_data.stu_name_control%TYPE) RETURN VARCHAR2 AS
115: /******************************************************************
116: Created By : Amit Gairola
117: Date Created By : 06-May-2005
118: Purpose : Function for validating Name Control
1854:
1855: l_v_att_type igs_en_atd_type.attendance_type%TYPE;
1856: l_n_cp igs_fi_invln_int_all.credit_points%TYPE;
1857: l_n_fte igs_fi_invln_int_all.eftsu%TYPE;
1858: l_v_half_time_flag igs_fi_1098t_data.half_time_flag%TYPE;
1859: l_var VARCHAR2(1);
1860: BEGIN
1861: l_v_half_time_flag := 'N';
1862:
1983:
1984: PROCEDURE insert_1098t_data(p_v_tax_year_name igs_fi_1098t_setup.tax_year_name%TYPE,
1985: p_n_person_id igs_pe_person_base_v.person_id%TYPE,
1986: p_v_full_name igs_pe_person_base_v.full_name%TYPE,
1987: p_n_box2 igs_fi_1098t_data.billed_amt%TYPE,
1988: p_n_box3 igs_fi_1098t_data.adj_amt%TYPE,
1989: p_n_box4 igs_fi_1098t_data.fin_aid_amt%TYPE,
1990: p_n_box5 igs_fi_1098t_data.fin_aid_adj_amt%TYPE,
1991: p_v_box6 igs_fi_1098t_data.next_acad_flag%TYPE,
1984: PROCEDURE insert_1098t_data(p_v_tax_year_name igs_fi_1098t_setup.tax_year_name%TYPE,
1985: p_n_person_id igs_pe_person_base_v.person_id%TYPE,
1986: p_v_full_name igs_pe_person_base_v.full_name%TYPE,
1987: p_n_box2 igs_fi_1098t_data.billed_amt%TYPE,
1988: p_n_box3 igs_fi_1098t_data.adj_amt%TYPE,
1989: p_n_box4 igs_fi_1098t_data.fin_aid_amt%TYPE,
1990: p_n_box5 igs_fi_1098t_data.fin_aid_adj_amt%TYPE,
1991: p_v_box6 igs_fi_1098t_data.next_acad_flag%TYPE,
1992: p_v_box8 igs_fi_1098t_data.half_time_flag%TYPE,
1985: p_n_person_id igs_pe_person_base_v.person_id%TYPE,
1986: p_v_full_name igs_pe_person_base_v.full_name%TYPE,
1987: p_n_box2 igs_fi_1098t_data.billed_amt%TYPE,
1988: p_n_box3 igs_fi_1098t_data.adj_amt%TYPE,
1989: p_n_box4 igs_fi_1098t_data.fin_aid_amt%TYPE,
1990: p_n_box5 igs_fi_1098t_data.fin_aid_adj_amt%TYPE,
1991: p_v_box6 igs_fi_1098t_data.next_acad_flag%TYPE,
1992: p_v_box8 igs_fi_1098t_data.half_time_flag%TYPE,
1993: p_v_box9 igs_fi_1098t_data.grad_flag%TYPE,
1986: p_v_full_name igs_pe_person_base_v.full_name%TYPE,
1987: p_n_box2 igs_fi_1098t_data.billed_amt%TYPE,
1988: p_n_box3 igs_fi_1098t_data.adj_amt%TYPE,
1989: p_n_box4 igs_fi_1098t_data.fin_aid_amt%TYPE,
1990: p_n_box5 igs_fi_1098t_data.fin_aid_adj_amt%TYPE,
1991: p_v_box6 igs_fi_1098t_data.next_acad_flag%TYPE,
1992: p_v_box8 igs_fi_1098t_data.half_time_flag%TYPE,
1993: p_v_box9 igs_fi_1098t_data.grad_flag%TYPE,
1994: p_v_file_addr_correction VARCHAR2) AS
1987: p_n_box2 igs_fi_1098t_data.billed_amt%TYPE,
1988: p_n_box3 igs_fi_1098t_data.adj_amt%TYPE,
1989: p_n_box4 igs_fi_1098t_data.fin_aid_amt%TYPE,
1990: p_n_box5 igs_fi_1098t_data.fin_aid_adj_amt%TYPE,
1991: p_v_box6 igs_fi_1098t_data.next_acad_flag%TYPE,
1992: p_v_box8 igs_fi_1098t_data.half_time_flag%TYPE,
1993: p_v_box9 igs_fi_1098t_data.grad_flag%TYPE,
1994: p_v_file_addr_correction VARCHAR2) AS
1995: /******************************************************************
1988: p_n_box3 igs_fi_1098t_data.adj_amt%TYPE,
1989: p_n_box4 igs_fi_1098t_data.fin_aid_amt%TYPE,
1990: p_n_box5 igs_fi_1098t_data.fin_aid_adj_amt%TYPE,
1991: p_v_box6 igs_fi_1098t_data.next_acad_flag%TYPE,
1992: p_v_box8 igs_fi_1098t_data.half_time_flag%TYPE,
1993: p_v_box9 igs_fi_1098t_data.grad_flag%TYPE,
1994: p_v_file_addr_correction VARCHAR2) AS
1995: /******************************************************************
1996: Created By : Amit Gairola
1989: p_n_box4 igs_fi_1098t_data.fin_aid_amt%TYPE,
1990: p_n_box5 igs_fi_1098t_data.fin_aid_adj_amt%TYPE,
1991: p_v_box6 igs_fi_1098t_data.next_acad_flag%TYPE,
1992: p_v_box8 igs_fi_1098t_data.half_time_flag%TYPE,
1993: p_v_box9 igs_fi_1098t_data.grad_flag%TYPE,
1994: p_v_file_addr_correction VARCHAR2) AS
1995: /******************************************************************
1996: Created By : Amit Gairola
1997: Date Created By : 06-May-2005
2009:
2010: CURSOR cur_data_exists(cp_v_tax_year_name igs_fi_1098t_setup.tax_year_name%TYPE,
2011: cp_n_person_id igs_pe_person_base_v.person_id%TYPE) IS
2012: SELECT tdata.rowid row_id, tdata.*
2013: FROM igs_fi_1098t_data tdata
2014: WHERE tdata.party_id = cp_n_person_id
2015: AND tdata.tax_year_name = cp_v_tax_year_name
2016: AND tdata.status_code <> 'DNT_RPT'
2017: ORDER BY tdata.stu_1098t_id desc
2060:
2061: l_n_perm_cntr PLS_INTEGER;
2062: l_n_temp_cntr PLS_INTEGER;
2063: l_n_location_id hz_locations.location_id%TYPE;
2064: l_v_error_code igs_fi_1098t_data.error_code%TYPE;
2065:
2066: l_b_rec_exists BOOLEAN;
2067:
2068: CURSOR cur_1098t_dtl(cp_n_stu_1098t_id igs_fi_1098t_data.stu_1098t_id%TYPE) IS
2064: l_v_error_code igs_fi_1098t_data.error_code%TYPE;
2065:
2066: l_b_rec_exists BOOLEAN;
2067:
2068: CURSOR cur_1098t_dtl(cp_n_stu_1098t_id igs_fi_1098t_data.stu_1098t_id%TYPE) IS
2069: SELECT rowid
2070: FROM igs_fi_1098t_dtls
2071: WHERE stu_1098t_id = cp_n_stu_1098t_id;
2072:
2070: FROM igs_fi_1098t_dtls
2071: WHERE stu_1098t_id = cp_n_stu_1098t_id;
2072:
2073: CURSOR cur_1098t_data_lat(cp_n_person_id igs_pe_person_base_v.person_id%TYPE,
2074: cp_v_tax_year_name igs_fi_1098t_data.tax_year_name%TYPE) IS
2075: SELECT dat.*, dat.rowid row_id
2076: FROM igs_fi_1098t_data dat
2077: WHERE party_id = cp_n_person_id
2078: AND tax_year_name = cp_v_tax_year_name
2072:
2073: CURSOR cur_1098t_data_lat(cp_n_person_id igs_pe_person_base_v.person_id%TYPE,
2074: cp_v_tax_year_name igs_fi_1098t_data.tax_year_name%TYPE) IS
2075: SELECT dat.*, dat.rowid row_id
2076: FROM igs_fi_1098t_data dat
2077: WHERE party_id = cp_n_person_id
2078: AND tax_year_name = cp_v_tax_year_name
2079: AND irs_filed_flag = 'Y'
2080: AND status_code <> 'DNT_RPT'
2086: l_b_temp_addr BOOLEAN;
2087: l_v_name_control igs_pe_alt_pers_id.api_person_id%TYPE;
2088: l_v_name_control_uf igs_pe_alt_pers_id.api_person_id_uf%TYPE;
2089: l_b_correction_record BOOLEAN;
2090: l_v_correction_flag igs_fi_1098t_data.correction_flag%TYPE;
2091: l_v_correction_code igs_fi_1098t_data.correction_type_code%TYPE;
2092: l_n_stu_1098t_id igs_fi_1098t_data.stu_1098t_id%TYPE;
2093: l_b_txn BOOLEAN;
2094:
2087: l_v_name_control igs_pe_alt_pers_id.api_person_id%TYPE;
2088: l_v_name_control_uf igs_pe_alt_pers_id.api_person_id_uf%TYPE;
2089: l_b_correction_record BOOLEAN;
2090: l_v_correction_flag igs_fi_1098t_data.correction_flag%TYPE;
2091: l_v_correction_code igs_fi_1098t_data.correction_type_code%TYPE;
2092: l_n_stu_1098t_id igs_fi_1098t_data.stu_1098t_id%TYPE;
2093: l_b_txn BOOLEAN;
2094:
2095: l_v_val_name_ctrl VARCHAR2(1);
2088: l_v_name_control_uf igs_pe_alt_pers_id.api_person_id_uf%TYPE;
2089: l_b_correction_record BOOLEAN;
2090: l_v_correction_flag igs_fi_1098t_data.correction_flag%TYPE;
2091: l_v_correction_code igs_fi_1098t_data.correction_type_code%TYPE;
2092: l_n_stu_1098t_id igs_fi_1098t_data.stu_1098t_id%TYPE;
2093: l_b_txn BOOLEAN;
2094:
2095: l_v_val_name_ctrl VARCHAR2(1);
2096:
2268:
2269: l_v_rowid := null;
2270: l_n_stu_1098t_id := null;
2271: l_b_txn := TRUE;
2272: igs_fi_1098t_data_pkg.insert_row( x_rowid => l_v_rowid,
2273: x_stu_1098t_id => l_n_stu_1098t_id,
2274: x_tax_year_name => p_v_tax_year_name,
2275: x_party_id => p_n_person_id,
2276: x_extract_date => trunc(sysdate),
2419: log_to_fnd(p_v_module => 'insert_1098t_data',
2420: p_v_string => 'Creating a new correction record');
2421:
2422: -- Creating a new record as the original has already been filed to IRS
2423: igs_fi_1098t_data_pkg.insert_row( x_rowid => l_v_rowid,
2424: x_stu_1098t_id => l_n_stu_1098t_id,
2425: x_tax_year_name => p_v_tax_year_name,
2426: x_party_id => p_n_person_id,
2427: x_extract_date => trunc(sysdate),
2495: log_to_fnd(p_v_module => 'insert_1098t_data',
2496: p_v_string => 'Update the 1098T Transaction record');
2497:
2498: -- Update the 1098T record and create new records in the details table
2499: igs_fi_1098t_data_pkg.update_row(x_rowid => l_rec_1098t_data.row_id,
2500: x_stu_1098t_id => l_rec_1098t_data.stu_1098t_id,
2501: x_tax_year_name => p_v_tax_year_name,
2502: x_party_id => l_rec_1098t_data.party_id,
2503: x_extract_date => trunc(sysdate),
2636:
2637: g_v_validation_status := 'DNT_RPT';
2638:
2639: -- If there is no change, then update the record with status as DNT_RPT
2640: igs_fi_1098t_data_pkg.update_row(x_rowid => l_rec_1098t_data.row_id,
2641: x_stu_1098t_id => l_rec_1098t_data.stu_1098t_id,
2642: x_tax_year_name => l_rec_1098t_data.tax_year_name,
2643: x_party_id => l_rec_1098t_data.party_id,
2644: x_extract_date => l_rec_1098t_data.extract_date,
2690: log_to_fnd(p_v_module => 'insert_1098t_data',
2691: p_v_string => 'Updating the 1098T record');
2692:
2693: -- Update the 1098T table and create new detail records
2694: igs_fi_1098t_data_pkg.update_row(x_rowid => l_rec_1098t_data.row_id,
2695: x_stu_1098t_id => l_rec_1098t_data.stu_1098t_id,
2696: x_tax_year_name => p_v_tax_year_name,
2697: x_party_id => l_rec_1098t_data.party_id,
2698: x_extract_date => trunc(sysdate),
2815: l_rec_pers_dtl cur_pers_dtl%ROWTYPE;
2816:
2817: CURSOR cur_chk_rec_exists(cp_n_person_id igs_pe_person_base_v.person_id%TYPE,
2818: cp_v_tax_year_name igs_fi_1098t_setup.tax_year_name%TYPE,
2819: cp_v_status igs_fi_1098t_data.status_code%TYPE) IS
2820: SELECT dat.override_flag, dat.irs_filed_flag
2821: FROM igs_fi_1098t_data dat
2822: WHERE dat.party_id = cp_n_person_id
2823: AND dat.tax_year_name = cp_v_tax_year_name
2817: CURSOR cur_chk_rec_exists(cp_n_person_id igs_pe_person_base_v.person_id%TYPE,
2818: cp_v_tax_year_name igs_fi_1098t_setup.tax_year_name%TYPE,
2819: cp_v_status igs_fi_1098t_data.status_code%TYPE) IS
2820: SELECT dat.override_flag, dat.irs_filed_flag
2821: FROM igs_fi_1098t_data dat
2822: WHERE dat.party_id = cp_n_person_id
2823: AND dat.tax_year_name = cp_v_tax_year_name
2824: AND dat.status_code <> cp_v_status
2825: ORDER BY stu_1098t_id DESC;
2838: AND TRUNC(ptyp.start_date) <= TRUNC(cp_d_start_date)
2839: AND ((TRUNC(ptyp.end_date) >= TRUNC(cp_d_end_date)) OR (ptyp.end_date IS NULL));
2840:
2841: l_b_new_run BOOLEAN;
2842: l_n_box2 igs_fi_1098t_data.billed_amt%TYPE;
2843: l_n_box3 igs_fi_1098t_data.adj_amt%TYPE;
2844: l_n_box4 igs_fi_1098t_data.fin_aid_amt%TYPE;
2845: l_n_box5 igs_fi_1098t_data.fin_aid_adj_amt%TYPE;
2846: l_v_box6 igs_fi_1098t_data.next_acad_flag%TYPE;
2839: AND ((TRUNC(ptyp.end_date) >= TRUNC(cp_d_end_date)) OR (ptyp.end_date IS NULL));
2840:
2841: l_b_new_run BOOLEAN;
2842: l_n_box2 igs_fi_1098t_data.billed_amt%TYPE;
2843: l_n_box3 igs_fi_1098t_data.adj_amt%TYPE;
2844: l_n_box4 igs_fi_1098t_data.fin_aid_amt%TYPE;
2845: l_n_box5 igs_fi_1098t_data.fin_aid_adj_amt%TYPE;
2846: l_v_box6 igs_fi_1098t_data.next_acad_flag%TYPE;
2847: l_v_box8 igs_fi_1098t_data.half_time_flag%TYPE;
2840:
2841: l_b_new_run BOOLEAN;
2842: l_n_box2 igs_fi_1098t_data.billed_amt%TYPE;
2843: l_n_box3 igs_fi_1098t_data.adj_amt%TYPE;
2844: l_n_box4 igs_fi_1098t_data.fin_aid_amt%TYPE;
2845: l_n_box5 igs_fi_1098t_data.fin_aid_adj_amt%TYPE;
2846: l_v_box6 igs_fi_1098t_data.next_acad_flag%TYPE;
2847: l_v_box8 igs_fi_1098t_data.half_time_flag%TYPE;
2848: l_v_box9 igs_fi_1098t_data.grad_flag%TYPE;
2841: l_b_new_run BOOLEAN;
2842: l_n_box2 igs_fi_1098t_data.billed_amt%TYPE;
2843: l_n_box3 igs_fi_1098t_data.adj_amt%TYPE;
2844: l_n_box4 igs_fi_1098t_data.fin_aid_amt%TYPE;
2845: l_n_box5 igs_fi_1098t_data.fin_aid_adj_amt%TYPE;
2846: l_v_box6 igs_fi_1098t_data.next_acad_flag%TYPE;
2847: l_v_box8 igs_fi_1098t_data.half_time_flag%TYPE;
2848: l_v_box9 igs_fi_1098t_data.grad_flag%TYPE;
2849: l_var VARCHAR2(1);
2842: l_n_box2 igs_fi_1098t_data.billed_amt%TYPE;
2843: l_n_box3 igs_fi_1098t_data.adj_amt%TYPE;
2844: l_n_box4 igs_fi_1098t_data.fin_aid_amt%TYPE;
2845: l_n_box5 igs_fi_1098t_data.fin_aid_adj_amt%TYPE;
2846: l_v_box6 igs_fi_1098t_data.next_acad_flag%TYPE;
2847: l_v_box8 igs_fi_1098t_data.half_time_flag%TYPE;
2848: l_v_box9 igs_fi_1098t_data.grad_flag%TYPE;
2849: l_var VARCHAR2(1);
2850: l_n_orig_credit NUMBER;
2843: l_n_box3 igs_fi_1098t_data.adj_amt%TYPE;
2844: l_n_box4 igs_fi_1098t_data.fin_aid_amt%TYPE;
2845: l_n_box5 igs_fi_1098t_data.fin_aid_adj_amt%TYPE;
2846: l_v_box6 igs_fi_1098t_data.next_acad_flag%TYPE;
2847: l_v_box8 igs_fi_1098t_data.half_time_flag%TYPE;
2848: l_v_box9 igs_fi_1098t_data.grad_flag%TYPE;
2849: l_var VARCHAR2(1);
2850: l_n_orig_credit NUMBER;
2851: l_n_adj_credit NUMBER;
2844: l_n_box4 igs_fi_1098t_data.fin_aid_amt%TYPE;
2845: l_n_box5 igs_fi_1098t_data.fin_aid_adj_amt%TYPE;
2846: l_v_box6 igs_fi_1098t_data.next_acad_flag%TYPE;
2847: l_v_box8 igs_fi_1098t_data.half_time_flag%TYPE;
2848: l_v_box9 igs_fi_1098t_data.grad_flag%TYPE;
2849: l_var VARCHAR2(1);
2850: l_n_orig_credit NUMBER;
2851: l_n_adj_credit NUMBER;
2852: l_n_orig_charge NUMBER;
2850: l_n_orig_credit NUMBER;
2851: l_n_adj_credit NUMBER;
2852: l_n_orig_charge NUMBER;
2853: l_n_adj_charge NUMBER;
2854: l_v_next_acad_flag igs_fi_1098t_data.next_acad_flag%TYPE;
2855:
2856: l_n_orig_billed_amt NUMBER;
2857: l_n_adj_billed_amt NUMBER;
2858: l_n_aid_orig_credit NUMBER;
2860: l_n_aid_orig_charge NUMBER;
2861: l_n_aid_adj_charge NUMBER;
2862: l_n_orig_spgrant_amt NUMBER;
2863: l_n_adj_spgrant_amt NUMBER;
2864: l_v_full_name igs_fi_1098t_data.party_name%TYPE;
2865:
2866: BEGIN
2867: l_b_new_run := FALSE;
2868: set_validation_status('PASSED');