67:
68:
69: begin
70:
71: --hr_utility.trace_on(null,'FOT');
72:
73: hr_utility.trace('ENTERING: pay_gb_paye_calc.free_pay');
74:
75: hr_utility.trace('***********************');
69: begin
70:
71: --hr_utility.trace_on(null,'FOT');
72:
73: hr_utility.trace('ENTERING: pay_gb_paye_calc.free_pay');
74:
75: hr_utility.trace('***********************');
76: hr_utility.trace('INPUT values: ');
77: hr_utility.trace('Amount: '||p_amount);
71: --hr_utility.trace_on(null,'FOT');
72:
73: hr_utility.trace('ENTERING: pay_gb_paye_calc.free_pay');
74:
75: hr_utility.trace('***********************');
76: hr_utility.trace('INPUT values: ');
77: hr_utility.trace('Amount: '||p_amount);
78: hr_utility.trace('Tax code: '||p_tax_code);
79: hr_utility.trace('Tax basis: '||p_tax_basis);
72:
73: hr_utility.trace('ENTERING: pay_gb_paye_calc.free_pay');
74:
75: hr_utility.trace('***********************');
76: hr_utility.trace('INPUT values: ');
77: hr_utility.trace('Amount: '||p_amount);
78: hr_utility.trace('Tax code: '||p_tax_code);
79: hr_utility.trace('Tax basis: '||p_tax_basis);
80: hr_utility.trace('Stat annual periods: '||p_stat_annual_periods);
73: hr_utility.trace('ENTERING: pay_gb_paye_calc.free_pay');
74:
75: hr_utility.trace('***********************');
76: hr_utility.trace('INPUT values: ');
77: hr_utility.trace('Amount: '||p_amount);
78: hr_utility.trace('Tax code: '||p_tax_code);
79: hr_utility.trace('Tax basis: '||p_tax_basis);
80: hr_utility.trace('Stat annual periods: '||p_stat_annual_periods);
81: hr_utility.trace('Current pay period: '||p_current_period);
74:
75: hr_utility.trace('***********************');
76: hr_utility.trace('INPUT values: ');
77: hr_utility.trace('Amount: '||p_amount);
78: hr_utility.trace('Tax code: '||p_tax_code);
79: hr_utility.trace('Tax basis: '||p_tax_basis);
80: hr_utility.trace('Stat annual periods: '||p_stat_annual_periods);
81: hr_utility.trace('Current pay period: '||p_current_period);
82: hr_utility.trace('***********************');
75: hr_utility.trace('***********************');
76: hr_utility.trace('INPUT values: ');
77: hr_utility.trace('Amount: '||p_amount);
78: hr_utility.trace('Tax code: '||p_tax_code);
79: hr_utility.trace('Tax basis: '||p_tax_basis);
80: hr_utility.trace('Stat annual periods: '||p_stat_annual_periods);
81: hr_utility.trace('Current pay period: '||p_current_period);
82: hr_utility.trace('***********************');
83:
76: hr_utility.trace('INPUT values: ');
77: hr_utility.trace('Amount: '||p_amount);
78: hr_utility.trace('Tax code: '||p_tax_code);
79: hr_utility.trace('Tax basis: '||p_tax_basis);
80: hr_utility.trace('Stat annual periods: '||p_stat_annual_periods);
81: hr_utility.trace('Current pay period: '||p_current_period);
82: hr_utility.trace('***********************');
83:
84: l_amount := p_amount;
77: hr_utility.trace('Amount: '||p_amount);
78: hr_utility.trace('Tax code: '||p_tax_code);
79: hr_utility.trace('Tax basis: '||p_tax_basis);
80: hr_utility.trace('Stat annual periods: '||p_stat_annual_periods);
81: hr_utility.trace('Current pay period: '||p_current_period);
82: hr_utility.trace('***********************');
83:
84: l_amount := p_amount;
85:
78: hr_utility.trace('Tax code: '||p_tax_code);
79: hr_utility.trace('Tax basis: '||p_tax_basis);
80: hr_utility.trace('Stat annual periods: '||p_stat_annual_periods);
81: hr_utility.trace('Current pay period: '||p_current_period);
82: hr_utility.trace('***********************');
83:
84: l_amount := p_amount;
85:
86: /* Check for Scottish tax code, S prefix, strip off S prefix if present */
111: l_num_code := to_number(substrb(l_tax_code,1,length(l_tax_code) -1 ));
112:
113: end if;
114:
115: hr_utility.trace('Numeric component: '||l_num_code);
116:
117:
118: /* Check if numeric component > 500 */
119: if l_num_code > 500
129: l_ann_value := (l_num_code * 10) + 9;
130:
131: end if;
132:
133: hr_utility.trace('Annual free/additional pay: '||l_ann_value);
134:
135:
136:
137: /* Calculate free/additional pay for period 1, apply rounding rules*/
147:
148: end if;
149:
150:
151: hr_utility.trace('Free/additional pay for period 1: '||l_period1_pay);
152:
153:
154: /* If tax basis is cumulative, find free/additional pay for year to date */
155: /* else just use free/additional pay for period 1 */
169:
170: end if;
171:
172:
173: hr_utility.trace('Free/additional pay : '||l_free_or_add_pay);
174:
175:
176:
177: /* Now calculate the taxable pay to date by subtracting/adding free/additional pay */
183:
184: if (l_k_code)
185: then
186:
187: hr_utility.trace('K code is TRUE');
188: l_taxable_pay := l_amount + l_free_or_add_pay;
189:
190: else
191:
188: l_taxable_pay := l_amount + l_free_or_add_pay;
189:
190: else
191:
192: hr_utility.trace('K code is FALSE');
193:
194: if (l_free_or_add_pay >= l_amount)
195: then
196:
193:
194: if (l_free_or_add_pay >= l_amount)
195: then
196:
197: hr_utility.trace('Free pay exceeds taxable pay for this period - setting taxable pay to 0');
198: l_taxable_pay := 0;
199:
200: else
201:
204: end if;
205:
206: end if;
207:
208: hr_utility.trace('********************');
209: hr_utility.trace('OUTPUT values: ');
210: hr_utility.trace('Taxable pay: '||l_taxable_pay);
211: hr_utility.trace('********************');
212:
205:
206: end if;
207:
208: hr_utility.trace('********************');
209: hr_utility.trace('OUTPUT values: ');
210: hr_utility.trace('Taxable pay: '||l_taxable_pay);
211: hr_utility.trace('********************');
212:
213: hr_utility.trace('LEAVING: pay_gb_paye_calc.free_pay');
206: end if;
207:
208: hr_utility.trace('********************');
209: hr_utility.trace('OUTPUT values: ');
210: hr_utility.trace('Taxable pay: '||l_taxable_pay);
211: hr_utility.trace('********************');
212:
213: hr_utility.trace('LEAVING: pay_gb_paye_calc.free_pay');
214:
207:
208: hr_utility.trace('********************');
209: hr_utility.trace('OUTPUT values: ');
210: hr_utility.trace('Taxable pay: '||l_taxable_pay);
211: hr_utility.trace('********************');
212:
213: hr_utility.trace('LEAVING: pay_gb_paye_calc.free_pay');
214:
215: --hr_utility.trace_off;
209: hr_utility.trace('OUTPUT values: ');
210: hr_utility.trace('Taxable pay: '||l_taxable_pay);
211: hr_utility.trace('********************');
212:
213: hr_utility.trace('LEAVING: pay_gb_paye_calc.free_pay');
214:
215: --hr_utility.trace_off;
216:
217: return l_taxable_pay;
211: hr_utility.trace('********************');
212:
213: hr_utility.trace('LEAVING: pay_gb_paye_calc.free_pay');
214:
215: --hr_utility.trace_off;
216:
217: return l_taxable_pay;
218:
219: exception
293:
294:
295: begin
296:
297: --hr_utility.trace_on(null,'FOT');
298:
299: hr_utility.trace('ENTERING: pay_gb_paye_calc.tax_to_date');
300:
301: hr_utility.trace('*********************');
295: begin
296:
297: --hr_utility.trace_on(null,'FOT');
298:
299: hr_utility.trace('ENTERING: pay_gb_paye_calc.tax_to_date');
300:
301: hr_utility.trace('*********************');
302: hr_utility.trace('INPUT values: ');
303: hr_utility.trace('Session date: '||to_char(p_session_date,'DD/MM/YYYY'));
297: --hr_utility.trace_on(null,'FOT');
298:
299: hr_utility.trace('ENTERING: pay_gb_paye_calc.tax_to_date');
300:
301: hr_utility.trace('*********************');
302: hr_utility.trace('INPUT values: ');
303: hr_utility.trace('Session date: '||to_char(p_session_date,'DD/MM/YYYY'));
304: hr_utility.trace('Taxable Pay: '||p_taxable_pay);
305: hr_utility.trace('Tax code: '||p_tax_code);
298:
299: hr_utility.trace('ENTERING: pay_gb_paye_calc.tax_to_date');
300:
301: hr_utility.trace('*********************');
302: hr_utility.trace('INPUT values: ');
303: hr_utility.trace('Session date: '||to_char(p_session_date,'DD/MM/YYYY'));
304: hr_utility.trace('Taxable Pay: '||p_taxable_pay);
305: hr_utility.trace('Tax code: '||p_tax_code);
306: hr_utility.trace('Tax basis: '||p_tax_basis);
299: hr_utility.trace('ENTERING: pay_gb_paye_calc.tax_to_date');
300:
301: hr_utility.trace('*********************');
302: hr_utility.trace('INPUT values: ');
303: hr_utility.trace('Session date: '||to_char(p_session_date,'DD/MM/YYYY'));
304: hr_utility.trace('Taxable Pay: '||p_taxable_pay);
305: hr_utility.trace('Tax code: '||p_tax_code);
306: hr_utility.trace('Tax basis: '||p_tax_basis);
307: hr_utility.trace('Stat annual periods: '||p_stat_annual_periods);
300:
301: hr_utility.trace('*********************');
302: hr_utility.trace('INPUT values: ');
303: hr_utility.trace('Session date: '||to_char(p_session_date,'DD/MM/YYYY'));
304: hr_utility.trace('Taxable Pay: '||p_taxable_pay);
305: hr_utility.trace('Tax code: '||p_tax_code);
306: hr_utility.trace('Tax basis: '||p_tax_basis);
307: hr_utility.trace('Stat annual periods: '||p_stat_annual_periods);
308: hr_utility.trace('Current pay period: '||p_current_period);
301: hr_utility.trace('*********************');
302: hr_utility.trace('INPUT values: ');
303: hr_utility.trace('Session date: '||to_char(p_session_date,'DD/MM/YYYY'));
304: hr_utility.trace('Taxable Pay: '||p_taxable_pay);
305: hr_utility.trace('Tax code: '||p_tax_code);
306: hr_utility.trace('Tax basis: '||p_tax_basis);
307: hr_utility.trace('Stat annual periods: '||p_stat_annual_periods);
308: hr_utility.trace('Current pay period: '||p_current_period);
309: hr_utility.trace('*********************');
302: hr_utility.trace('INPUT values: ');
303: hr_utility.trace('Session date: '||to_char(p_session_date,'DD/MM/YYYY'));
304: hr_utility.trace('Taxable Pay: '||p_taxable_pay);
305: hr_utility.trace('Tax code: '||p_tax_code);
306: hr_utility.trace('Tax basis: '||p_tax_basis);
307: hr_utility.trace('Stat annual periods: '||p_stat_annual_periods);
308: hr_utility.trace('Current pay period: '||p_current_period);
309: hr_utility.trace('*********************');
310:
303: hr_utility.trace('Session date: '||to_char(p_session_date,'DD/MM/YYYY'));
304: hr_utility.trace('Taxable Pay: '||p_taxable_pay);
305: hr_utility.trace('Tax code: '||p_tax_code);
306: hr_utility.trace('Tax basis: '||p_tax_basis);
307: hr_utility.trace('Stat annual periods: '||p_stat_annual_periods);
308: hr_utility.trace('Current pay period: '||p_current_period);
309: hr_utility.trace('*********************');
310:
311: l_taxable_pay := p_taxable_pay;
304: hr_utility.trace('Taxable Pay: '||p_taxable_pay);
305: hr_utility.trace('Tax code: '||p_tax_code);
306: hr_utility.trace('Tax basis: '||p_tax_basis);
307: hr_utility.trace('Stat annual periods: '||p_stat_annual_periods);
308: hr_utility.trace('Current pay period: '||p_current_period);
309: hr_utility.trace('*********************');
310:
311: l_taxable_pay := p_taxable_pay;
312:
305: hr_utility.trace('Tax code: '||p_tax_code);
306: hr_utility.trace('Tax basis: '||p_tax_basis);
307: hr_utility.trace('Stat annual periods: '||p_stat_annual_periods);
308: hr_utility.trace('Current pay period: '||p_current_period);
309: hr_utility.trace('*********************');
310:
311: l_taxable_pay := p_taxable_pay;
312:
313:
314: /* Convert down to nearest pound */
315:
316: l_taxable_pay := floor(l_taxable_pay);
317:
318: hr_utility.trace('Rounded taxable pay: '||l_taxable_pay);
319:
320:
321: /* Check for Scottish tax code, S prefix */
322:
329:
330: if not g_table_inited
331: then
332:
333: hr_utility.trace('Initing PAYE table...');
334:
335: for r_paye in csr_paye loop
336:
337: l_row_num := l_row_num + 1;
394:
395: for loop_count in 1..tbl_paye_table.count loop
396:
397:
398: hr_utility.trace('*************************');
399: hr_utility.trace('Tax band '||loop_count);
400: hr_utility.trace('*************************');
401: hr_utility.trace('Gross low: '||tbl_paye_table(loop_count).g_gross_low_value||' Gross high: '||tbl_paye_table(loop_count).g_gross_high_value);
402: hr_utility.trace('Rate: '||tbl_paye_table(loop_count).g_rate);
395: for loop_count in 1..tbl_paye_table.count loop
396:
397:
398: hr_utility.trace('*************************');
399: hr_utility.trace('Tax band '||loop_count);
400: hr_utility.trace('*************************');
401: hr_utility.trace('Gross low: '||tbl_paye_table(loop_count).g_gross_low_value||' Gross high: '||tbl_paye_table(loop_count).g_gross_high_value);
402: hr_utility.trace('Rate: '||tbl_paye_table(loop_count).g_rate);
403: hr_utility.trace('Gross denominator: '||tbl_paye_table(loop_count).g_gross_denom);
396:
397:
398: hr_utility.trace('*************************');
399: hr_utility.trace('Tax band '||loop_count);
400: hr_utility.trace('*************************');
401: hr_utility.trace('Gross low: '||tbl_paye_table(loop_count).g_gross_low_value||' Gross high: '||tbl_paye_table(loop_count).g_gross_high_value);
402: hr_utility.trace('Rate: '||tbl_paye_table(loop_count).g_rate);
403: hr_utility.trace('Gross denominator: '||tbl_paye_table(loop_count).g_gross_denom);
404: hr_utility.trace('Net low: '||tbl_paye_table(loop_count).g_net_low_value||' Net high: '||tbl_paye_table(loop_count).g_net_high_value);
397:
398: hr_utility.trace('*************************');
399: hr_utility.trace('Tax band '||loop_count);
400: hr_utility.trace('*************************');
401: hr_utility.trace('Gross low: '||tbl_paye_table(loop_count).g_gross_low_value||' Gross high: '||tbl_paye_table(loop_count).g_gross_high_value);
402: hr_utility.trace('Rate: '||tbl_paye_table(loop_count).g_rate);
403: hr_utility.trace('Gross denominator: '||tbl_paye_table(loop_count).g_gross_denom);
404: hr_utility.trace('Net low: '||tbl_paye_table(loop_count).g_net_low_value||' Net high: '||tbl_paye_table(loop_count).g_net_high_value);
405: hr_utility.trace('Tax deduct: '||tbl_paye_table(loop_count).g_tax_deduct);
398: hr_utility.trace('*************************');
399: hr_utility.trace('Tax band '||loop_count);
400: hr_utility.trace('*************************');
401: hr_utility.trace('Gross low: '||tbl_paye_table(loop_count).g_gross_low_value||' Gross high: '||tbl_paye_table(loop_count).g_gross_high_value);
402: hr_utility.trace('Rate: '||tbl_paye_table(loop_count).g_rate);
403: hr_utility.trace('Gross denominator: '||tbl_paye_table(loop_count).g_gross_denom);
404: hr_utility.trace('Net low: '||tbl_paye_table(loop_count).g_net_low_value||' Net high: '||tbl_paye_table(loop_count).g_net_high_value);
405: hr_utility.trace('Tax deduct: '||tbl_paye_table(loop_count).g_tax_deduct);
406: hr_utility.trace('Tax column: '||tbl_paye_table(loop_count).g_tax_column);
399: hr_utility.trace('Tax band '||loop_count);
400: hr_utility.trace('*************************');
401: hr_utility.trace('Gross low: '||tbl_paye_table(loop_count).g_gross_low_value||' Gross high: '||tbl_paye_table(loop_count).g_gross_high_value);
402: hr_utility.trace('Rate: '||tbl_paye_table(loop_count).g_rate);
403: hr_utility.trace('Gross denominator: '||tbl_paye_table(loop_count).g_gross_denom);
404: hr_utility.trace('Net low: '||tbl_paye_table(loop_count).g_net_low_value||' Net high: '||tbl_paye_table(loop_count).g_net_high_value);
405: hr_utility.trace('Tax deduct: '||tbl_paye_table(loop_count).g_tax_deduct);
406: hr_utility.trace('Tax column: '||tbl_paye_table(loop_count).g_tax_column);
407: hr_utility.trace('************************');
400: hr_utility.trace('*************************');
401: hr_utility.trace('Gross low: '||tbl_paye_table(loop_count).g_gross_low_value||' Gross high: '||tbl_paye_table(loop_count).g_gross_high_value);
402: hr_utility.trace('Rate: '||tbl_paye_table(loop_count).g_rate);
403: hr_utility.trace('Gross denominator: '||tbl_paye_table(loop_count).g_gross_denom);
404: hr_utility.trace('Net low: '||tbl_paye_table(loop_count).g_net_low_value||' Net high: '||tbl_paye_table(loop_count).g_net_high_value);
405: hr_utility.trace('Tax deduct: '||tbl_paye_table(loop_count).g_tax_deduct);
406: hr_utility.trace('Tax column: '||tbl_paye_table(loop_count).g_tax_column);
407: hr_utility.trace('************************');
408:
401: hr_utility.trace('Gross low: '||tbl_paye_table(loop_count).g_gross_low_value||' Gross high: '||tbl_paye_table(loop_count).g_gross_high_value);
402: hr_utility.trace('Rate: '||tbl_paye_table(loop_count).g_rate);
403: hr_utility.trace('Gross denominator: '||tbl_paye_table(loop_count).g_gross_denom);
404: hr_utility.trace('Net low: '||tbl_paye_table(loop_count).g_net_low_value||' Net high: '||tbl_paye_table(loop_count).g_net_high_value);
405: hr_utility.trace('Tax deduct: '||tbl_paye_table(loop_count).g_tax_deduct);
406: hr_utility.trace('Tax column: '||tbl_paye_table(loop_count).g_tax_column);
407: hr_utility.trace('************************');
408:
409:
402: hr_utility.trace('Rate: '||tbl_paye_table(loop_count).g_rate);
403: hr_utility.trace('Gross denominator: '||tbl_paye_table(loop_count).g_gross_denom);
404: hr_utility.trace('Net low: '||tbl_paye_table(loop_count).g_net_low_value||' Net high: '||tbl_paye_table(loop_count).g_net_high_value);
405: hr_utility.trace('Tax deduct: '||tbl_paye_table(loop_count).g_tax_deduct);
406: hr_utility.trace('Tax column: '||tbl_paye_table(loop_count).g_tax_column);
407: hr_utility.trace('************************');
408:
409:
410: if p_tax_basis = 'C'
403: hr_utility.trace('Gross denominator: '||tbl_paye_table(loop_count).g_gross_denom);
404: hr_utility.trace('Net low: '||tbl_paye_table(loop_count).g_net_low_value||' Net high: '||tbl_paye_table(loop_count).g_net_high_value);
405: hr_utility.trace('Tax deduct: '||tbl_paye_table(loop_count).g_tax_deduct);
406: hr_utility.trace('Tax column: '||tbl_paye_table(loop_count).g_tax_column);
407: hr_utility.trace('************************');
408:
409:
410: if p_tax_basis = 'C'
411: then
428: if (l_taxable_pay <= ceil(l_td_net_high)
429: AND l_taxable_pay >= ceil(l_td_net_low))
430: then
431:
432: hr_utility.trace('Band/loop count: '||loop_count);
433: hr_utility.trace('TD NL: '||l_td_net_low);
434: hr_utility.trace('TD NH: '||l_td_net_high);
435: hr_utility.trace('TD TC: '||l_td_tax_col);
436:
429: AND l_taxable_pay >= ceil(l_td_net_low))
430: then
431:
432: hr_utility.trace('Band/loop count: '||loop_count);
433: hr_utility.trace('TD NL: '||l_td_net_low);
434: hr_utility.trace('TD NH: '||l_td_net_high);
435: hr_utility.trace('TD TC: '||l_td_tax_col);
436:
437: l_tax_liable := l_td_tax_col +
430: then
431:
432: hr_utility.trace('Band/loop count: '||loop_count);
433: hr_utility.trace('TD NL: '||l_td_net_low);
434: hr_utility.trace('TD NH: '||l_td_net_high);
435: hr_utility.trace('TD TC: '||l_td_tax_col);
436:
437: l_tax_liable := l_td_tax_col +
438: (((l_taxable_pay - l_td_net_low) * (tbl_paye_table(loop_count).g_rate/100))
431:
432: hr_utility.trace('Band/loop count: '||loop_count);
433: hr_utility.trace('TD NL: '||l_td_net_low);
434: hr_utility.trace('TD NH: '||l_td_net_high);
435: hr_utility.trace('TD TC: '||l_td_tax_col);
436:
437: l_tax_liable := l_td_tax_col +
438: (((l_taxable_pay - l_td_net_low) * (tbl_paye_table(loop_count).g_rate/100))
439: * (100/tbl_paye_table(loop_count).g_gross_denom));
457:
458: if not g_table_inited
459: then
460:
461: hr_utility.trace('Initing PAYE table...');
462:
463: for r_scot_paye in csr_scot_paye loop
464:
465: l_row_num := l_row_num + 1;
523:
524: for loop_count in 1..tbl_paye_table.count loop
525:
526:
527: hr_utility.trace('*************************');
528: hr_utility.trace('Tax band '||loop_count);
529: hr_utility.trace('*************************');
530: hr_utility.trace('Gross low: '||tbl_paye_table(loop_count).g_gross_low_value||' Gross high: '||tbl_paye_table(loop_count).g_gross_high_value);
531: hr_utility.trace('Rate: '||tbl_paye_table(loop_count).g_rate);
524: for loop_count in 1..tbl_paye_table.count loop
525:
526:
527: hr_utility.trace('*************************');
528: hr_utility.trace('Tax band '||loop_count);
529: hr_utility.trace('*************************');
530: hr_utility.trace('Gross low: '||tbl_paye_table(loop_count).g_gross_low_value||' Gross high: '||tbl_paye_table(loop_count).g_gross_high_value);
531: hr_utility.trace('Rate: '||tbl_paye_table(loop_count).g_rate);
532: hr_utility.trace('Gross denominator: '||tbl_paye_table(loop_count).g_gross_denom);
525:
526:
527: hr_utility.trace('*************************');
528: hr_utility.trace('Tax band '||loop_count);
529: hr_utility.trace('*************************');
530: hr_utility.trace('Gross low: '||tbl_paye_table(loop_count).g_gross_low_value||' Gross high: '||tbl_paye_table(loop_count).g_gross_high_value);
531: hr_utility.trace('Rate: '||tbl_paye_table(loop_count).g_rate);
532: hr_utility.trace('Gross denominator: '||tbl_paye_table(loop_count).g_gross_denom);
533: hr_utility.trace('Net low: '||tbl_paye_table(loop_count).g_net_low_value||' Net high: '||tbl_paye_table(loop_count).g_net_high_value);
526:
527: hr_utility.trace('*************************');
528: hr_utility.trace('Tax band '||loop_count);
529: hr_utility.trace('*************************');
530: hr_utility.trace('Gross low: '||tbl_paye_table(loop_count).g_gross_low_value||' Gross high: '||tbl_paye_table(loop_count).g_gross_high_value);
531: hr_utility.trace('Rate: '||tbl_paye_table(loop_count).g_rate);
532: hr_utility.trace('Gross denominator: '||tbl_paye_table(loop_count).g_gross_denom);
533: hr_utility.trace('Net low: '||tbl_paye_table(loop_count).g_net_low_value||' Net high: '||tbl_paye_table(loop_count).g_net_high_value);
534: hr_utility.trace('Tax deduct: '||tbl_paye_table(loop_count).g_tax_deduct);
527: hr_utility.trace('*************************');
528: hr_utility.trace('Tax band '||loop_count);
529: hr_utility.trace('*************************');
530: hr_utility.trace('Gross low: '||tbl_paye_table(loop_count).g_gross_low_value||' Gross high: '||tbl_paye_table(loop_count).g_gross_high_value);
531: hr_utility.trace('Rate: '||tbl_paye_table(loop_count).g_rate);
532: hr_utility.trace('Gross denominator: '||tbl_paye_table(loop_count).g_gross_denom);
533: hr_utility.trace('Net low: '||tbl_paye_table(loop_count).g_net_low_value||' Net high: '||tbl_paye_table(loop_count).g_net_high_value);
534: hr_utility.trace('Tax deduct: '||tbl_paye_table(loop_count).g_tax_deduct);
535: hr_utility.trace('Tax column: '||tbl_paye_table(loop_count).g_tax_column);
528: hr_utility.trace('Tax band '||loop_count);
529: hr_utility.trace('*************************');
530: hr_utility.trace('Gross low: '||tbl_paye_table(loop_count).g_gross_low_value||' Gross high: '||tbl_paye_table(loop_count).g_gross_high_value);
531: hr_utility.trace('Rate: '||tbl_paye_table(loop_count).g_rate);
532: hr_utility.trace('Gross denominator: '||tbl_paye_table(loop_count).g_gross_denom);
533: hr_utility.trace('Net low: '||tbl_paye_table(loop_count).g_net_low_value||' Net high: '||tbl_paye_table(loop_count).g_net_high_value);
534: hr_utility.trace('Tax deduct: '||tbl_paye_table(loop_count).g_tax_deduct);
535: hr_utility.trace('Tax column: '||tbl_paye_table(loop_count).g_tax_column);
536: hr_utility.trace('************************');
529: hr_utility.trace('*************************');
530: hr_utility.trace('Gross low: '||tbl_paye_table(loop_count).g_gross_low_value||' Gross high: '||tbl_paye_table(loop_count).g_gross_high_value);
531: hr_utility.trace('Rate: '||tbl_paye_table(loop_count).g_rate);
532: hr_utility.trace('Gross denominator: '||tbl_paye_table(loop_count).g_gross_denom);
533: hr_utility.trace('Net low: '||tbl_paye_table(loop_count).g_net_low_value||' Net high: '||tbl_paye_table(loop_count).g_net_high_value);
534: hr_utility.trace('Tax deduct: '||tbl_paye_table(loop_count).g_tax_deduct);
535: hr_utility.trace('Tax column: '||tbl_paye_table(loop_count).g_tax_column);
536: hr_utility.trace('************************');
537:
530: hr_utility.trace('Gross low: '||tbl_paye_table(loop_count).g_gross_low_value||' Gross high: '||tbl_paye_table(loop_count).g_gross_high_value);
531: hr_utility.trace('Rate: '||tbl_paye_table(loop_count).g_rate);
532: hr_utility.trace('Gross denominator: '||tbl_paye_table(loop_count).g_gross_denom);
533: hr_utility.trace('Net low: '||tbl_paye_table(loop_count).g_net_low_value||' Net high: '||tbl_paye_table(loop_count).g_net_high_value);
534: hr_utility.trace('Tax deduct: '||tbl_paye_table(loop_count).g_tax_deduct);
535: hr_utility.trace('Tax column: '||tbl_paye_table(loop_count).g_tax_column);
536: hr_utility.trace('************************');
537:
538:
531: hr_utility.trace('Rate: '||tbl_paye_table(loop_count).g_rate);
532: hr_utility.trace('Gross denominator: '||tbl_paye_table(loop_count).g_gross_denom);
533: hr_utility.trace('Net low: '||tbl_paye_table(loop_count).g_net_low_value||' Net high: '||tbl_paye_table(loop_count).g_net_high_value);
534: hr_utility.trace('Tax deduct: '||tbl_paye_table(loop_count).g_tax_deduct);
535: hr_utility.trace('Tax column: '||tbl_paye_table(loop_count).g_tax_column);
536: hr_utility.trace('************************');
537:
538:
539:
532: hr_utility.trace('Gross denominator: '||tbl_paye_table(loop_count).g_gross_denom);
533: hr_utility.trace('Net low: '||tbl_paye_table(loop_count).g_net_low_value||' Net high: '||tbl_paye_table(loop_count).g_net_high_value);
534: hr_utility.trace('Tax deduct: '||tbl_paye_table(loop_count).g_tax_deduct);
535: hr_utility.trace('Tax column: '||tbl_paye_table(loop_count).g_tax_column);
536: hr_utility.trace('************************');
537:
538:
539:
540: if p_tax_basis = 'C'
557: if (l_taxable_pay <= ceil(l_td_net_high)
558: AND l_taxable_pay >= ceil(l_td_net_low))
559: then
560:
561: hr_utility.trace('Band/loop count: '||loop_count);
562: hr_utility.trace('TD NL: '||l_td_net_low);
563: hr_utility.trace('TD NH: '||l_td_net_high);
564: hr_utility.trace('TD TC: '||l_td_tax_col);
565:
558: AND l_taxable_pay >= ceil(l_td_net_low))
559: then
560:
561: hr_utility.trace('Band/loop count: '||loop_count);
562: hr_utility.trace('TD NL: '||l_td_net_low);
563: hr_utility.trace('TD NH: '||l_td_net_high);
564: hr_utility.trace('TD TC: '||l_td_tax_col);
565:
566: l_tax_liable := l_td_tax_col +
559: then
560:
561: hr_utility.trace('Band/loop count: '||loop_count);
562: hr_utility.trace('TD NL: '||l_td_net_low);
563: hr_utility.trace('TD NH: '||l_td_net_high);
564: hr_utility.trace('TD TC: '||l_td_tax_col);
565:
566: l_tax_liable := l_td_tax_col +
567: (((l_taxable_pay - l_td_net_low) * (tbl_paye_table(loop_count).g_rate/100))
560:
561: hr_utility.trace('Band/loop count: '||loop_count);
562: hr_utility.trace('TD NL: '||l_td_net_low);
563: hr_utility.trace('TD NH: '||l_td_net_high);
564: hr_utility.trace('TD TC: '||l_td_tax_col);
565:
566: l_tax_liable := l_td_tax_col +
567: (((l_taxable_pay - l_td_net_low) * (tbl_paye_table(loop_count).g_rate/100))
568: * (100/tbl_paye_table(loop_count).g_gross_denom));
584: l_tax_liable := round(l_tax_liable,4);
585:
586: l_tax_liable := trunc(l_tax_liable,2);
587:
588: hr_utility.trace('Tax liability: '||l_tax_liable);
589:
590:
591: if (l_scots_code)
592: then
590:
591: if (l_scots_code)
592: then
593:
594: hr_utility.trace('Scots code : TRUE');
595:
596: else
597:
598: hr_utility.trace('Scots code : FALSE');
594: hr_utility.trace('Scots code : TRUE');
595:
596: else
597:
598: hr_utility.trace('Scots code : FALSE');
599:
600: end if;
601:
602:
599:
600: end if;
601:
602:
603: hr_utility.trace('********************');
604: hr_utility.trace('OUTPUT values: ');
605: hr_utility.trace('Tax liability to date: '||l_tax_liable);
606: hr_utility.trace('********************');
607:
600: end if;
601:
602:
603: hr_utility.trace('********************');
604: hr_utility.trace('OUTPUT values: ');
605: hr_utility.trace('Tax liability to date: '||l_tax_liable);
606: hr_utility.trace('********************');
607:
608: hr_utility.trace('LEAVING: pay_gb_paye_calc.tax_to_date');
601:
602:
603: hr_utility.trace('********************');
604: hr_utility.trace('OUTPUT values: ');
605: hr_utility.trace('Tax liability to date: '||l_tax_liable);
606: hr_utility.trace('********************');
607:
608: hr_utility.trace('LEAVING: pay_gb_paye_calc.tax_to_date');
609:
602:
603: hr_utility.trace('********************');
604: hr_utility.trace('OUTPUT values: ');
605: hr_utility.trace('Tax liability to date: '||l_tax_liable);
606: hr_utility.trace('********************');
607:
608: hr_utility.trace('LEAVING: pay_gb_paye_calc.tax_to_date');
609:
610: --hr_utility.trace_off;
604: hr_utility.trace('OUTPUT values: ');
605: hr_utility.trace('Tax liability to date: '||l_tax_liable);
606: hr_utility.trace('********************');
607:
608: hr_utility.trace('LEAVING: pay_gb_paye_calc.tax_to_date');
609:
610: --hr_utility.trace_off;
611:
612: return l_tax_liable;
606: hr_utility.trace('********************');
607:
608: hr_utility.trace('LEAVING: pay_gb_paye_calc.tax_to_date');
609:
610: --hr_utility.trace_off;
611:
612: return l_tax_liable;
613:
614: exception
806: begin
807: l_return:=0;
808:
809:
810: hr_utility.set_location('Enter CHECK_TAX_REF',10);
811:
812:
813: /*PAYE Details check for bug 6018309*/
814:
848: from pay_payroll_actions ppa
849: where ppa.payroll_action_id=p_payroll_action_id;
850:
851:
852: hr_utility.set_location('effetive date:'||to_char(l_effective_date),12);
853:
854: If l_effective_date >=to_date('06-04-'||substr(to_char(l_effective_date,'YYYY/MON/DD'),1,4),'DD-MM-YYYY' ) Then
855: l_date_soy := to_date('06-04-'||substr(to_char(l_effective_date,'YYYY/MON/DD'),1,4),'DD-MM-YYYY' ) ;
856: l_date_eoy := to_date('05-04-'||to_char(to_number(substr(to_char(l_effective_date,'YYYY/MON/DD'),1,4))+1 ),'DD-MM-YYYY') ;
858: l_date_soy := to_date('06-04-'||to_char(to_number(substr(to_char(l_effective_date,'YYYY/MON/DD'),1,4))-1 ),'DD-MM-YYYY') ;
859: l_date_eoy := to_date('05-04-'||substr(to_char(l_effective_date,'YYYY/MON/DD'),1,4),'DD-MM-YYYY') ;
860: End If;
861:
862: hr_utility.set_location('effetive date:'||to_char(l_effective_date)||'l_date_soy'||to_char(l_date_soy)||'l_date_eoy'||to_char(l_date_eoy),12);
863:
864: open cur_assgt_first_eff_start_date(p_assignment_id);
865: fetch cur_assgt_first_eff_start_date into l_assgt_creation_date;
866:
863:
864: open cur_assgt_first_eff_start_date(p_assignment_id);
865: fetch cur_assgt_first_eff_start_date into l_assgt_creation_date;
866:
867: hr_utility.set_location('Payroll_id'||to_char(p_payroll_id)||'Assignment_id:'||to_char(p_assignment_id),13);
868:
869: open cur_check_aggregated_asg(p_assignment_id);
870: fetch cur_check_aggregated_asg into l_cur_check_aggregated_asg;
871:
875: close cur_check_aggregated_asg;
876:
877: for l_cur_chk_pay_actions in cur_chk_pay_actions(p_payroll_action_id,p_assignment_id)
878: loop
879: hr_utility.set_location('Old payroll Id:'||to_char(l_cur_chk_pay_actions.old_payroll_id)||' New payroll:'||to_char(p_payroll_id)||'l_return:'||to_char(l_return)||'Rows'||to_char(cur_chk_pay_actions%ROWCOUNT),13);
880: exit when l_return<>0;
881:
882: for l_cur_check_payroll_tax_ref in cur_check_payroll_tax_ref(l_cur_chk_pay_actions.old_payroll_id , p_payroll_id)
883: loop
891:
892: end loop;
893:
894:
895: hr_utility.set_location('L_return '||to_char(l_return)||'l_date_soy:'||to_char(l_date_soy)||'l_date_eoy:'||to_char(l_date_eoy),13);
896:
897: hr_utility.set_location('Exit CHECK_TAX_REF',15);
898:
899: close cur_assgt_first_eff_start_date;
893:
894:
895: hr_utility.set_location('L_return '||to_char(l_return)||'l_date_soy:'||to_char(l_date_soy)||'l_date_eoy:'||to_char(l_date_eoy),13);
896:
897: hr_utility.set_location('Exit CHECK_TAX_REF',15);
898:
899: close cur_assgt_first_eff_start_date;
900:
901: return l_return;
942:
943:
944: BEGIN
945:
946: hr_utility.set_location('tax_year_of_pensioners_death',0);
947:
948: l_pay_date := to_number( to_char( p_pay_run_date ,'DD' ) ) ;
949: l_pay_month := to_number( to_char( p_pay_run_date ,'MM' ) ) ;
950:
973: else
974: l_return :=0;
975: end if;
976:
977: hr_utility.set_location('tax_year_of_pensioners_death',99);
978: return(l_return);
979:
980: END tax_year_of_pensioners_death;
981: