158: g_retro_fw_tax number;
159: /* start bug 9950136*/
160:
161: -- Defined_balance_IDs for Foregin Worker balances
162: p_fw_fbt_bal_type_tab pay_au_foreign_workers.tab_bal_type;
163: p_fw_balance_type_tab pay_au_foreign_workers.tab_bal_type;
164: p_fw_alw_balance_type_tab pay_au_foreign_workers.tab_bal_type;
165: g_fw_result_table pay_balance_pkg.t_detailed_bal_out_tab;
166: g_fw_input_alw_table pay_au_foreign_workers.tab_bal_type;
159: /* start bug 9950136*/
160:
161: -- Defined_balance_IDs for Foregin Worker balances
162: p_fw_fbt_bal_type_tab pay_au_foreign_workers.tab_bal_type;
163: p_fw_balance_type_tab pay_au_foreign_workers.tab_bal_type;
164: p_fw_alw_balance_type_tab pay_au_foreign_workers.tab_bal_type;
165: g_fw_result_table pay_balance_pkg.t_detailed_bal_out_tab;
166: g_fw_input_alw_table pay_au_foreign_workers.tab_bal_type;
167: g_fw_result_alw_table pay_balance_pkg.t_detailed_bal_out_tab;
160:
161: -- Defined_balance_IDs for Foregin Worker balances
162: p_fw_fbt_bal_type_tab pay_au_foreign_workers.tab_bal_type;
163: p_fw_balance_type_tab pay_au_foreign_workers.tab_bal_type;
164: p_fw_alw_balance_type_tab pay_au_foreign_workers.tab_bal_type;
165: g_fw_result_table pay_balance_pkg.t_detailed_bal_out_tab;
166: g_fw_input_alw_table pay_au_foreign_workers.tab_bal_type;
167: g_fw_result_alw_table pay_balance_pkg.t_detailed_bal_out_tab;
168:
162: p_fw_fbt_bal_type_tab pay_au_foreign_workers.tab_bal_type;
163: p_fw_balance_type_tab pay_au_foreign_workers.tab_bal_type;
164: p_fw_alw_balance_type_tab pay_au_foreign_workers.tab_bal_type;
165: g_fw_result_table pay_balance_pkg.t_detailed_bal_out_tab;
166: g_fw_input_alw_table pay_au_foreign_workers.tab_bal_type;
167: g_fw_result_alw_table pay_balance_pkg.t_detailed_bal_out_tab;
168:
169: -- Global variables for comparison
170: g_net_balance number ;
176: p_fw_alw_tab_sorted tab_allownace_balance;
177:
178: type fw_gross_type_table is table of varchar2(1) index by binary_integer;
179: t_fw_gross_type fw_gross_type_table;
180: f_fw_date_tab_g pay_au_foreign_workers.tab_fw_dates;
181: j_fw_date_tab_g pay_au_foreign_workers.tab_fw_dates;
182:
183: p_fw_allowance_tab pay_au_payment_summary.t_allowance_balance%type;
184: g_balance_type_id pay_balance_types.balance_type_id%type;
177:
178: type fw_gross_type_table is table of varchar2(1) index by binary_integer;
179: t_fw_gross_type fw_gross_type_table;
180: f_fw_date_tab_g pay_au_foreign_workers.tab_fw_dates;
181: j_fw_date_tab_g pay_au_foreign_workers.tab_fw_dates;
182:
183: p_fw_allowance_tab pay_au_payment_summary.t_allowance_balance%type;
184: g_balance_type_id pay_balance_types.balance_type_id%type;
185: p_fw_union_balance_type_tab pay_au_foreign_workers.tab_bal_type;
181: j_fw_date_tab_g pay_au_foreign_workers.tab_fw_dates;
182:
183: p_fw_allowance_tab pay_au_payment_summary.t_allowance_balance%type;
184: g_balance_type_id pay_balance_types.balance_type_id%type;
185: p_fw_union_balance_type_tab pay_au_foreign_workers.tab_bal_type;
186: l_fw_union_output_tab pay_balance_pkg.t_detailed_bal_out_tab;
187:
188:
189: /* Changes for 9147438 end */
1652:
1653: /* Changes for 9147438 start */
1654: if (to_number(to_char(g_start_date,'YYYY')) >= 2010) then
1655:
1656: g_fw_check := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, g_start_date, g_end_date);
1657:
1658: if g_debug then
1659: hr_utility.set_location('FW EMP check .. g_fw_check for assignment_id '||l_employee_details.assignment_id||' is '||g_fw_check, 2);
1660: end if;
1672:
1673: /* Changes for 9147438 start */
1674: if (to_number(to_char(g_start_date,'YYYY')) >= 2010) then
1675:
1676: l_fw_f_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, add_months(g_start_date,-3), (g_start_date - 1),
1677: pay_au_foreign_workers.g_fw_f_type);
1678: l_fw_j_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, add_months(g_start_date,-3), (g_start_date - 1),
1679: pay_au_foreign_workers.g_fw_j_type);
1680:
1673: /* Changes for 9147438 start */
1674: if (to_number(to_char(g_start_date,'YYYY')) >= 2010) then
1675:
1676: l_fw_f_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, add_months(g_start_date,-3), (g_start_date - 1),
1677: pay_au_foreign_workers.g_fw_f_type);
1678: l_fw_j_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, add_months(g_start_date,-3), (g_start_date - 1),
1679: pay_au_foreign_workers.g_fw_j_type);
1680:
1681: if l_fw_f_type = 'Y' then
1674: if (to_number(to_char(g_start_date,'YYYY')) >= 2010) then
1675:
1676: l_fw_f_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, add_months(g_start_date,-3), (g_start_date - 1),
1677: pay_au_foreign_workers.g_fw_f_type);
1678: l_fw_j_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, add_months(g_start_date,-3), (g_start_date - 1),
1679: pay_au_foreign_workers.g_fw_j_type);
1680:
1681: if l_fw_f_type = 'Y' then
1682: if l_fw_j_type = 'Y' then
1675:
1676: l_fw_f_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, add_months(g_start_date,-3), (g_start_date - 1),
1677: pay_au_foreign_workers.g_fw_f_type);
1678: l_fw_j_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, add_months(g_start_date,-3), (g_start_date - 1),
1679: pay_au_foreign_workers.g_fw_j_type);
1680:
1681: if l_fw_f_type = 'Y' then
1682: if l_fw_j_type = 'Y' then
1683: g_fw_fbt_term_check := 'YY';
1733: /* Changes for 9147438 start */
1734:
1735: if (to_number(to_char(g_start_date,'YYYY')) >= 2010) then
1736:
1737: l_fw_f_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, add_months(g_start_date,-3), (g_end_date - 3),
1738: pay_au_foreign_workers.g_fw_f_type);
1739: l_fw_j_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, add_months(g_start_date,-3), (g_end_date - 3),
1740: pay_au_foreign_workers.g_fw_j_type);
1741:
1734:
1735: if (to_number(to_char(g_start_date,'YYYY')) >= 2010) then
1736:
1737: l_fw_f_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, add_months(g_start_date,-3), (g_end_date - 3),
1738: pay_au_foreign_workers.g_fw_f_type);
1739: l_fw_j_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, add_months(g_start_date,-3), (g_end_date - 3),
1740: pay_au_foreign_workers.g_fw_j_type);
1741:
1742: if l_fw_f_type = 'Y' then
1735: if (to_number(to_char(g_start_date,'YYYY')) >= 2010) then
1736:
1737: l_fw_f_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, add_months(g_start_date,-3), (g_end_date - 3),
1738: pay_au_foreign_workers.g_fw_f_type);
1739: l_fw_j_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, add_months(g_start_date,-3), (g_end_date - 3),
1740: pay_au_foreign_workers.g_fw_j_type);
1741:
1742: if l_fw_f_type = 'Y' then
1743: if l_fw_j_type = 'Y' then
1736:
1737: l_fw_f_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, add_months(g_start_date,-3), (g_end_date - 3),
1738: pay_au_foreign_workers.g_fw_f_type);
1739: l_fw_j_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, add_months(g_start_date,-3), (g_end_date - 3),
1740: pay_au_foreign_workers.g_fw_j_type);
1741:
1742: if l_fw_f_type = 'Y' then
1743: if l_fw_j_type = 'Y' then
1744: g_fw_fbt_check := 'YY';
1840:
1841: f_fw_date_tab_g.delete;
1842: j_fw_date_tab_g.delete;
1843:
1844: l_fw_f_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, g_start_date, g_end_date, pay_au_foreign_workers.g_fw_f_type);
1845: l_fw_j_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, g_start_date, g_end_date, pay_au_foreign_workers.g_fw_j_type);
1846:
1847: if l_fw_f_type = 'Y' then
1848: pay_au_foreign_workers.get_foreign_worker_dates(l_employee_details.assignment_id, g_tax_unit_id, g_start_date, g_end_date, pay_au_foreign_workers.g_fw_f_type, f_fw_date_tab_g);
1841: f_fw_date_tab_g.delete;
1842: j_fw_date_tab_g.delete;
1843:
1844: l_fw_f_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, g_start_date, g_end_date, pay_au_foreign_workers.g_fw_f_type);
1845: l_fw_j_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, g_start_date, g_end_date, pay_au_foreign_workers.g_fw_j_type);
1846:
1847: if l_fw_f_type = 'Y' then
1848: pay_au_foreign_workers.get_foreign_worker_dates(l_employee_details.assignment_id, g_tax_unit_id, g_start_date, g_end_date, pay_au_foreign_workers.g_fw_f_type, f_fw_date_tab_g);
1849: end if;
1844: l_fw_f_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, g_start_date, g_end_date, pay_au_foreign_workers.g_fw_f_type);
1845: l_fw_j_type := pay_au_foreign_workers.check_foreign_worker(l_employee_details.assignment_id, g_tax_unit_id, g_start_date, g_end_date, pay_au_foreign_workers.g_fw_j_type);
1846:
1847: if l_fw_f_type = 'Y' then
1848: pay_au_foreign_workers.get_foreign_worker_dates(l_employee_details.assignment_id, g_tax_unit_id, g_start_date, g_end_date, pay_au_foreign_workers.g_fw_f_type, f_fw_date_tab_g);
1849: end if;
1850:
1851: if l_fw_j_type = 'Y' then
1852: pay_au_foreign_workers.get_foreign_worker_dates(l_employee_details.assignment_id, g_tax_unit_id, g_start_date, g_end_date, pay_au_foreign_workers.g_fw_j_type, j_fw_date_tab_g);
1848: pay_au_foreign_workers.get_foreign_worker_dates(l_employee_details.assignment_id, g_tax_unit_id, g_start_date, g_end_date, pay_au_foreign_workers.g_fw_f_type, f_fw_date_tab_g);
1849: end if;
1850:
1851: if l_fw_j_type = 'Y' then
1852: pay_au_foreign_workers.get_foreign_worker_dates(l_employee_details.assignment_id, g_tax_unit_id, g_start_date, g_end_date, pay_au_foreign_workers.g_fw_j_type, j_fw_date_tab_g);
1853: end if;
1854:
1855: if f_fw_date_tab_g.count > 0 then
1856: t_fw_gross_type(1) := 'F';
1876: end if;
1877:
1878: g_fw_result_table.delete;
1879: IF t_fw_gross_type(i_idx) = 'F' THEN
1880: pay_au_foreign_workers.get_foreign_payment_amounts(l_employee_details.assignment_id,
1881: g_tax_unit_id,
1882: f_fw_date_tab_g,
1883: g_start_date,
1884: g_end_date,
1881: g_tax_unit_id,
1882: f_fw_date_tab_g,
1883: g_start_date,
1884: g_end_date,
1885: pay_au_foreign_workers.g_fw_f_type,
1886: p_fw_balance_type_tab,
1887: g_fw_result_table) ;
1888: ELSIF t_fw_gross_type(i_idx) = 'J' THEN
1889: pay_au_foreign_workers.get_foreign_payment_amounts(l_employee_details.assignment_id,
1885: pay_au_foreign_workers.g_fw_f_type,
1886: p_fw_balance_type_tab,
1887: g_fw_result_table) ;
1888: ELSIF t_fw_gross_type(i_idx) = 'J' THEN
1889: pay_au_foreign_workers.get_foreign_payment_amounts(l_employee_details.assignment_id,
1890: g_tax_unit_id,
1891: j_fw_date_tab_g,
1892: g_start_date,
1893: g_end_date,
1890: g_tax_unit_id,
1891: j_fw_date_tab_g,
1892: g_start_date,
1893: g_end_date,
1894: pay_au_foreign_workers.g_fw_j_type,
1895: p_fw_balance_type_tab,
1896: g_fw_result_table) ;
1897: END IF;
1898:
1995: n := pay_au_payment_summary.adjust_retro_fw(l_employee_details.assignment_id
1996: ,g_tax_unit_id
1997: ,g_start_date
1998: ,g_end_date
1999: ,pay_au_foreign_workers.g_fw_f_type
2000: ,l_retro_fw_gross
2001: ,l_retro_fw_tax);
2002: ELSIF t_fw_gross_type(i_idx) = 'J' THEN
2003: n := pay_au_payment_summary.adjust_retro_fw(l_employee_details.assignment_id
2003: n := pay_au_payment_summary.adjust_retro_fw(l_employee_details.assignment_id
2004: ,g_tax_unit_id
2005: ,g_start_date
2006: ,g_end_date
2007: ,pay_au_foreign_workers.g_fw_j_type
2008: ,l_retro_fw_gross
2009: ,l_retro_fw_tax);
2010: END IF;
2011:
2226: /* Changes for 9147438 start */
2227: l_fw_fbt_output_tab pay_balance_pkg.t_detailed_bal_out_tab;
2228: l_fw_f_type varchar2(1);
2229: l_fw_j_type varchar2(1);
2230: f_fw_date_tab pay_au_foreign_workers.tab_fw_dates;
2231: j_fw_date_tab pay_au_foreign_workers.tab_fw_dates;
2232: /* Changes for 9147438 end */
2233:
2234: begin
2227: l_fw_fbt_output_tab pay_balance_pkg.t_detailed_bal_out_tab;
2228: l_fw_f_type varchar2(1);
2229: l_fw_j_type varchar2(1);
2230: f_fw_date_tab pay_au_foreign_workers.tab_fw_dates;
2231: j_fw_date_tab pay_au_foreign_workers.tab_fw_dates;
2232: /* Changes for 9147438 end */
2233:
2234: begin
2235: g_fw_reporting_fbt:=0;
2301:
2302: if g_fw_fbt_term_check <> 'NN' then -- Case for terminated employee with FB before the financial year start
2303:
2304: if g_fw_fbt_term_check = 'YY' or g_fw_fbt_term_check = 'YN' then
2305: pay_au_foreign_workers.get_foreign_worker_dates(p_assignment_id, g_tax_unit_id, add_months(g_start_date,-3), (g_start_date - 1),
2306: pay_au_foreign_workers.g_fw_f_type, f_fw_date_tab);
2307: end if;
2308:
2309: if g_fw_fbt_term_check = 'YY' or g_fw_fbt_term_check = 'NY' then
2302: if g_fw_fbt_term_check <> 'NN' then -- Case for terminated employee with FB before the financial year start
2303:
2304: if g_fw_fbt_term_check = 'YY' or g_fw_fbt_term_check = 'YN' then
2305: pay_au_foreign_workers.get_foreign_worker_dates(p_assignment_id, g_tax_unit_id, add_months(g_start_date,-3), (g_start_date - 1),
2306: pay_au_foreign_workers.g_fw_f_type, f_fw_date_tab);
2307: end if;
2308:
2309: if g_fw_fbt_term_check = 'YY' or g_fw_fbt_term_check = 'NY' then
2310: pay_au_foreign_workers.get_foreign_worker_dates(p_assignment_id, g_tax_unit_id, add_months(g_start_date,-3), (g_start_date - 1),
2306: pay_au_foreign_workers.g_fw_f_type, f_fw_date_tab);
2307: end if;
2308:
2309: if g_fw_fbt_term_check = 'YY' or g_fw_fbt_term_check = 'NY' then
2310: pay_au_foreign_workers.get_foreign_worker_dates(p_assignment_id, g_tax_unit_id, add_months(g_start_date,-3), (g_start_date - 1),
2311: pay_au_foreign_workers.g_fw_j_type, j_fw_date_tab);
2312: end if;
2313:
2314: if f_fw_date_tab.count > 0 then
2307: end if;
2308:
2309: if g_fw_fbt_term_check = 'YY' or g_fw_fbt_term_check = 'NY' then
2310: pay_au_foreign_workers.get_foreign_worker_dates(p_assignment_id, g_tax_unit_id, add_months(g_start_date,-3), (g_start_date - 1),
2311: pay_au_foreign_workers.g_fw_j_type, j_fw_date_tab);
2312: end if;
2313:
2314: if f_fw_date_tab.count > 0 then
2315: t_fw_gross_type(1) := 'F';
2323: for i_idx in t_fw_gross_type.first .. t_fw_gross_type.last loop
2324:
2325: IF t_fw_gross_type(i_idx) = 'F' THEN
2326:
2327: pay_au_foreign_workers.get_foreign_payment_amounts(p_assignment_id,
2328: g_tax_unit_id,
2329: f_fw_date_tab,
2330: add_months(g_start_date,-3),
2331: (g_start_date - 1),
2328: g_tax_unit_id,
2329: f_fw_date_tab,
2330: add_months(g_start_date,-3),
2331: (g_start_date - 1),
2332: pay_au_foreign_workers.g_fw_f_type,
2333: p_fw_fbt_bal_type_tab,
2334: l_fw_fbt_output_tab) ;
2335:
2336: ELSIF t_fw_gross_type(i_idx) = 'J' THEN
2333: p_fw_fbt_bal_type_tab,
2334: l_fw_fbt_output_tab) ;
2335:
2336: ELSIF t_fw_gross_type(i_idx) = 'J' THEN
2337: pay_au_foreign_workers.get_foreign_payment_amounts(p_assignment_id,
2338: g_tax_unit_id,
2339: j_fw_date_tab,
2340: add_months(g_start_date,-3),
2341: (g_start_date - 1),
2338: g_tax_unit_id,
2339: j_fw_date_tab,
2340: add_months(g_start_date,-3),
2341: (g_start_date - 1),
2342: pay_au_foreign_workers.g_fw_j_type,
2343: p_fw_fbt_bal_type_tab,
2344: l_fw_fbt_output_tab) ;
2345: END IF;
2346:
2355: END IF;
2356: elsif g_fw_fbt_check <> 'NN' then -- Case for employees in normal FB year
2357:
2358: if g_fw_fbt_check = 'YY' or g_fw_fbt_check = 'YN' then
2359: pay_au_foreign_workers.get_foreign_worker_dates(p_assignment_id, g_tax_unit_id, add_months(g_start_date,-3), add_months(g_end_date,-3),
2360: pay_au_foreign_workers.g_fw_f_type, f_fw_date_tab);
2361: end if;
2362: if g_fw_fbt_check = 'YY' or g_fw_fbt_check = 'NY' then
2363: pay_au_foreign_workers.get_foreign_worker_dates(p_assignment_id, g_tax_unit_id, add_months(g_start_date,-3), add_months(g_end_date,-3),
2356: elsif g_fw_fbt_check <> 'NN' then -- Case for employees in normal FB year
2357:
2358: if g_fw_fbt_check = 'YY' or g_fw_fbt_check = 'YN' then
2359: pay_au_foreign_workers.get_foreign_worker_dates(p_assignment_id, g_tax_unit_id, add_months(g_start_date,-3), add_months(g_end_date,-3),
2360: pay_au_foreign_workers.g_fw_f_type, f_fw_date_tab);
2361: end if;
2362: if g_fw_fbt_check = 'YY' or g_fw_fbt_check = 'NY' then
2363: pay_au_foreign_workers.get_foreign_worker_dates(p_assignment_id, g_tax_unit_id, add_months(g_start_date,-3), add_months(g_end_date,-3),
2364: pay_au_foreign_workers.g_fw_j_type, j_fw_date_tab);
2359: pay_au_foreign_workers.get_foreign_worker_dates(p_assignment_id, g_tax_unit_id, add_months(g_start_date,-3), add_months(g_end_date,-3),
2360: pay_au_foreign_workers.g_fw_f_type, f_fw_date_tab);
2361: end if;
2362: if g_fw_fbt_check = 'YY' or g_fw_fbt_check = 'NY' then
2363: pay_au_foreign_workers.get_foreign_worker_dates(p_assignment_id, g_tax_unit_id, add_months(g_start_date,-3), add_months(g_end_date,-3),
2364: pay_au_foreign_workers.g_fw_j_type, j_fw_date_tab);
2365: end if;
2366:
2367: if f_fw_date_tab.count > 0 then
2360: pay_au_foreign_workers.g_fw_f_type, f_fw_date_tab);
2361: end if;
2362: if g_fw_fbt_check = 'YY' or g_fw_fbt_check = 'NY' then
2363: pay_au_foreign_workers.get_foreign_worker_dates(p_assignment_id, g_tax_unit_id, add_months(g_start_date,-3), add_months(g_end_date,-3),
2364: pay_au_foreign_workers.g_fw_j_type, j_fw_date_tab);
2365: end if;
2366:
2367: if f_fw_date_tab.count > 0 then
2368: t_fw_gross_type(1) := 'F';
2376: for i_idx in t_fw_gross_type.first .. t_fw_gross_type.last loop
2377:
2378: IF t_fw_gross_type(i_idx) = 'F' THEN
2379:
2380: pay_au_foreign_workers.get_foreign_payment_amounts(p_assignment_id,
2381: g_tax_unit_id,
2382: f_fw_date_tab,
2383: add_months(g_start_date,-3),
2384: add_months(g_end_date,-3),
2381: g_tax_unit_id,
2382: f_fw_date_tab,
2383: add_months(g_start_date,-3),
2384: add_months(g_end_date,-3),
2385: pay_au_foreign_workers.g_fw_f_type,
2386: p_fw_fbt_bal_type_tab,
2387: l_fw_fbt_output_tab) ;
2388:
2389: ELSIF t_fw_gross_type(i_idx) = 'J' THEN
2386: p_fw_fbt_bal_type_tab,
2387: l_fw_fbt_output_tab) ;
2388:
2389: ELSIF t_fw_gross_type(i_idx) = 'J' THEN
2390: pay_au_foreign_workers.get_foreign_payment_amounts(p_assignment_id,
2391: g_tax_unit_id,
2392: j_fw_date_tab,
2393: add_months(g_start_date,-3),
2394: add_months(g_end_date,-3),
2391: g_tax_unit_id,
2392: j_fw_date_tab,
2393: add_months(g_start_date,-3),
2394: add_months(g_end_date,-3),
2395: pay_au_foreign_workers.g_fw_j_type,
2396: p_fw_fbt_bal_type_tab,
2397: l_fw_fbt_output_tab) ;
2398: END IF;
2399:
3090:
3091: f_fw_date_tab_g.delete;
3092: j_fw_date_tab_g.delete;
3093:
3094: l_fw_f_type := pay_au_foreign_workers.check_foreign_worker(p_assignment_id
3095: ,g_tax_unit_id
3096: ,g_start_date
3097: ,g_end_date
3098: ,pay_au_foreign_workers.g_fw_f_type);
3094: l_fw_f_type := pay_au_foreign_workers.check_foreign_worker(p_assignment_id
3095: ,g_tax_unit_id
3096: ,g_start_date
3097: ,g_end_date
3098: ,pay_au_foreign_workers.g_fw_f_type);
3099: l_fw_j_type := pay_au_foreign_workers.check_foreign_worker(p_assignment_id
3100: ,g_tax_unit_id
3101: ,g_start_date
3102: ,g_end_date
3095: ,g_tax_unit_id
3096: ,g_start_date
3097: ,g_end_date
3098: ,pay_au_foreign_workers.g_fw_f_type);
3099: l_fw_j_type := pay_au_foreign_workers.check_foreign_worker(p_assignment_id
3100: ,g_tax_unit_id
3101: ,g_start_date
3102: ,g_end_date
3103: ,pay_au_foreign_workers.g_fw_j_type);
3099: l_fw_j_type := pay_au_foreign_workers.check_foreign_worker(p_assignment_id
3100: ,g_tax_unit_id
3101: ,g_start_date
3102: ,g_end_date
3103: ,pay_au_foreign_workers.g_fw_j_type);
3104:
3105: if l_fw_f_type = 'Y' then
3106: pay_au_foreign_workers.get_foreign_worker_dates(p_assignment_id
3107: ,g_tax_unit_id
3102: ,g_end_date
3103: ,pay_au_foreign_workers.g_fw_j_type);
3104:
3105: if l_fw_f_type = 'Y' then
3106: pay_au_foreign_workers.get_foreign_worker_dates(p_assignment_id
3107: ,g_tax_unit_id
3108: ,g_start_date
3109: ,g_end_date
3110: ,pay_au_foreign_workers.g_fw_f_type
3106: pay_au_foreign_workers.get_foreign_worker_dates(p_assignment_id
3107: ,g_tax_unit_id
3108: ,g_start_date
3109: ,g_end_date
3110: ,pay_au_foreign_workers.g_fw_f_type
3111: ,f_fw_date_tab_g);
3112: end if;
3113:
3114: if l_fw_j_type = 'Y' then
3111: ,f_fw_date_tab_g);
3112: end if;
3113:
3114: if l_fw_j_type = 'Y' then
3115: pay_au_foreign_workers.get_foreign_worker_dates(p_assignment_id
3116: ,g_tax_unit_id
3117: ,g_start_date
3118: ,g_end_date
3119: ,pay_au_foreign_workers.g_fw_j_type
3115: pay_au_foreign_workers.get_foreign_worker_dates(p_assignment_id
3116: ,g_tax_unit_id
3117: ,g_start_date
3118: ,g_end_date
3119: ,pay_au_foreign_workers.g_fw_j_type
3120: ,j_fw_date_tab_g);
3121: end if;
3122:
3123: if f_fw_date_tab_g.count > 0 then
3132: For i_idx in t_fw_gross_type.first .. t_fw_gross_type.last loop
3133:
3134: g_fw_result_alw_table.delete;
3135: IF t_fw_gross_type(i_idx) = 'F' THEN
3136: pay_au_foreign_workers.get_foreign_payment_amounts(p_assignment_id,
3137: g_tax_unit_id,
3138: f_fw_date_tab_g,
3139: g_start_date,
3140: g_end_date,
3137: g_tax_unit_id,
3138: f_fw_date_tab_g,
3139: g_start_date,
3140: g_end_date,
3141: pay_au_foreign_workers.g_fw_f_type,
3142: g_fw_input_alw_table,
3143: g_fw_result_alw_table) ;
3144: ELSIF t_fw_gross_type(i_idx) = 'J' THEN
3145: pay_au_foreign_workers.get_foreign_payment_amounts(p_assignment_id,
3141: pay_au_foreign_workers.g_fw_f_type,
3142: g_fw_input_alw_table,
3143: g_fw_result_alw_table) ;
3144: ELSIF t_fw_gross_type(i_idx) = 'J' THEN
3145: pay_au_foreign_workers.get_foreign_payment_amounts(p_assignment_id,
3146: g_tax_unit_id,
3147: j_fw_date_tab_g,
3148: g_start_date,
3149: g_end_date,
3146: g_tax_unit_id,
3147: j_fw_date_tab_g,
3148: g_start_date,
3149: g_end_date,
3150: pay_au_foreign_workers.g_fw_j_type,
3151: g_fw_input_alw_table,
3152: g_fw_result_alw_table) ;
3153: END IF;
3154: