#! /bin/gawk -f # Last edited on 2002-06-25 02:02:33 by stolfi BEGIN { # Tabulates the various proposals for the IC AIU - 2002/jun/26 # Revenue block names split("", block_name); block_name[0] = "MP"; block_name[1] = "EP"; block_name[2] = "CC"; # Names of AIU reduction proposals split("", red_name); red_name[0] = "NIL"; red_name[1] = "AVM"; red_name[2] = "FKM"; for (block = 0; block <= 2; block++) { print_aiu_header(block); print_aiu_dashes(); for (js1 = 0; js1 <= 1; js1++) { for (js2 = 0; js2 <= 1; js2++) { for (js3 = 0; js3 <= 1; js3++) { for (red = 0; red <= 2; red++) { print_aiu_line(block, red, js1, js2, js3); } } } } print_aiu_dashes(); printf "\n\n"; } } function make_line_name(red,js1,js2,js3, s) { s = red_name[red]; if (js1) { s = (s "+JS1"); } if (js2) { s = (s "+JS2"); } if (js3) { s = (s "+JS3"); } return s; } function print_aiu_header(block, k) { printf "\n"; printf "BLOCO = %s\n", block_name[block] printf "\n"; printf " %29s %29s", "bruto = 1000", "líquido = 1000"; printf "\n"; for (k=0; k<= 1; k++) { printf " -----------------------------"; } printf "\n"; for (k=0; k<= 1; k++) { printf " UEC FAP FAF AIU LIQ BRT"; } printf " "; printf "PROPOSTA"; printf "\n"; } function print_aiu_dashes( k) { for (k=0; k<= 1; k++) { printf " ---- ---- ---- ---- ---- ----"; } printf " "; printf "--------------------"; printf "\n"; } function print_aiu_line(block,red,js1,js2,js3, u,a_raw,a,p,f,q,b) { # Tax percentuals over the NET amount u = 0.17; # PIDS + FAEP + Funcamp; # Compute raw AIU tax without taking into account js1, js2: if (red == 0) { # Neither AVM-r nor FKM-r pass a_raw = 0.20; } else if (red == 1) { # Arnaldo's reduction a_raw = 0.15; } else if (red == 2) { # Flavio's reduction a_raw = (block == 2 ? 0.05 : 0.20); } # Compute FAPIC tax, deduct from AIU as appropriate a = a_raw; if (block == 0) { # Mestrado Profissional p = 0.13; } else if (block == 1) { # Other paid courses if (js3) { p = 0.13; } else if (js2) { p = 0.05*a_raw; a = a - p; } else { p = 0.00; } } else if (block == 2) { # Consulting and contracts if (js2) { p = 0.05*a_raw; a = a - p; } else { p = 0.00; } } # Compute FAPIF tax, deduct from AIU if (js1) { f = 0.15*a_raw; a = a - f; } else { f = 0.00; } # Print amounts for 1000 raw income: print_aiu_half_line(1000,1000/(1+u+p+f+a), u, p, f, a); print_aiu_half_line(1000*(1+u+p+f+a),1000, u, p, f, a); printf " %s", make_line_name(red,js1,js2,js3); printf "\n"; } function print_aiu_half_line(brut,net,u,p,f,a, uv,pv,fv,av,nv,bv) { bv = int(brut + 0.5); nv = int(net + 0.5); uv = int(net*u + 0.5); pv = int(net*p + 0.5); fv = int(net*f + 0.5); av = bv - (uv + pv + fv + nv); printf " %4d %4d %4d %4d %4d %4d", uv, pv, fv, av, nv, bv; }