function confirm($_POST) { # get vars $_POST = var_makesafe($_POST); extract($_POST); if (isset($back)) { return slctEmployee(); } $annual += 0; $bonus = 0; $abonus += 0; $mpaye_amount += 0; # validate input require_lib("validate"); $v = new validate(); if (isset($account)) { $v->isOk($account, "num", 1, 9, "Invalid ledger account."); } $v->isOk($empnum, "num", 1, 9, "Invalid employee number."); $v->isOk($accid, "num", 1, 9, "Invalid bank number."); $v->isOk($MON, "num", 1, 2, "Invalid month."); $v->isOk($abonus, "float", 1, 11, "Invalid bonus."); $v->isOk($mpaye_amount, "float", 1, 40, "Invalid manual PAYE amount."); $v->isOk($all_travel, "float", 1, 11, "Invalid travel allowance."); $v->isOk($comp_pension, "float", 1, 11, "Invalid company pension."); $v->isOk($comp_medical, "float", 1, 11, "Invalid company medical."); $v->isOk($emp_pension, "float", 1, 11, "Invalid employee pension."); $v->isOk($emp_medical, "float", 1, 11, "Invalid employee medical."); $v->isOk($comp_provident, "float", 1, 11, "Invalid company provident."); $v->isOk($emp_provident, "float", 1, 11, "Invalid employee provident."); //$v->isOk ($comp_uif, "float", 1, 11, "Invalid company uif."); //$v->isOk ($emp_uif, "float", 1, 11, "Invalid employee uif."); $v->isOk($comp_other, "float", 1, 11, "Invalid company other."); $v->isOk($emp_other, "float", 1, 11, "Invalid employee other."); $v->isOk($comp_ret, "float", 1, 11, "Invalid company ret."); $v->isOk($emp_ret, "float", 1, 11, "Invalid employee ret."); $v->isOk($basic_sal, "float", 1, 11, "Invalid basic salary."); $v->isOk($commission, "float", 0, 11, "Invalid commision."); $v->isOk($loaninstall, "float", 0, 11, "Invalid loan installment."); $v->isOk($loanint, "float", 0, 11, "Invalid loan interest."); if ($divisor != 1 && round($divisor, 2) != round(52 / 12, 2) && round($divisor) != round(26 / 12, 2)) { //$v->addError("", "Invalid pay period (DIVIS)."); } if ($saltyp == 'd' || $saltyp == 'h') { $salnarr = array("d" => "Days", "h" => "Hours"); $salntype = $salnarr[$saltyp]; $v->isOk($multi, "float", 1, 5, "Invalid number of {$salntype}."); if ($multi < 1) { $v->addError("", "Error : Employee cannot be paid for {$multi} {$salntype}."); } } if (isset($allowances)) { foreach ($allowances as $key => $value) { $v->isOk($allowances[$key], "float", 0, 11, "Invalid allowance amount " . ($key + 1) . "."); } } if (isset($deductid)) { foreach ($deductid as $key => $value) { $v->isOk($deductid[$key], "num", 1, 9, "Invalid deductions ID."); } } if (isset($deductions)) { foreach ($deductions as $key => $value) { $v->isOk($deductions[$key], "float", 0, 11, "Invalid deduction amount" . ($key + 1) . "."); } } if (isset($allowid)) { foreach ($allowid as $key => $value) { $v->isOk($allowid[$key], "num", 1, 9, "Invalid allowance ID."); } } if (isset($allowtax)) { foreach ($allowtax as $key => $value) { $v->isOk($allowtax[$key], "string", 1, 3, "Invalid allowance tax option" . ($key + 1) . "."); } } if (!isset($pday)) { $pday = ""; } $date = $year . "-" . $mon . "-" . $day; $pdate = mkdate($year, $MON, $pday); if (!checkdate($mon, $day, $year)) { $v->isOk($date, "num", 1, 1, "Invalid date ."); } # display errors, if any if ($v->isError()) { $confirmCust = ""; $errors = $v->getErrors(); foreach ($errors as $e) { $confirmCust .= "<li class='err'>" . $e["msg"] . "</li>"; } return $confirmCust . process($_POST); } $basic_sal_save = $basic_sal; global $global_empnum; $global_empnum = $empnum; db_conn('cubit'); $sql = "SELECT * FROM employees WHERE empnum='{$empnum}' AND div = '" . USER_DIV . "'"; $empRslt = db_exec($sql) or errDie("Unable to select employees from database."); if (pg_numrows($empRslt) < 1) { return "Invalid employee ID."; } $myEmp = pg_fetch_array($empRslt); if ($myEmp['payprd'] == "d") { $Sl = "SELECT * FROM salpaid WHERE empnum='{$empnum}' AND month='{$mm}' AND week='{$pday}' AND cyear='" . EMP_YEAR . "'"; $Ri = db_exec($Sl); $paid = pg_num_rows($Ri); $Sl = "SELECT * FROM salr WHERE empnum='{$empnum}' AND month='{$mm}' AND week='{$pday}' AND cyear='" . EMP_YEAR . "'"; $Ri = db_exec($Sl); $upaid = pg_num_rows($Ri); $upaid += 0; $paid -= $upaid; } elseif ($myEmp['payprd'] == "w") { $yy = date("Y"); $mm = $MON; $mm += 0; $Sl = "SELECT * FROM salpaid WHERE empnum='{$empnum}' AND month='{$mm}' AND week='{$week}' AND cyear='" . EMP_YEAR . "'"; $Ri = db_exec($Sl); $paid = pg_num_rows($Ri); $Sl = "SELECT * FROM salr WHERE empnum='{$empnum}' AND month='{$mm}' AND week='{$week}' AND cyear='" . EMP_YEAR . "'"; $Ri = db_exec($Sl); $upaid = pg_num_rows($Ri); $upaid += 0; $paid -= $upaid; } else { if ($myEmp['payprd'] == "f") { $yy = date("Y"); $mm = $MON; $mm += 0; $Sl = "SELECT * FROM salpaid WHERE empnum='{$empnum}' AND month='{$mm}' AND week='{$week}' AND cyear='" . EMP_YEAR . "'"; $Ri = db_exec($Sl); $paid = pg_num_rows($Ri); $Sl = "SELECT * FROM salr WHERE empnum='{$empnum}' AND month='{$mm}' AND week='{$week}' AND cyear='" . EMP_YEAR . "'"; $Ri = db_exec($Sl); $upaid = pg_num_rows($Ri); $upaid += 0; $paid -= $upaid; } } if (isset($paid) && $paid > 0) { return process($_POST, "<li class='err'>You have already processed a salary for that period.</li>"); } $salconacc = gethook("accnum", "salacc", "name", "salaries control"); $salconacc_orig = gethook("accnum", "salacc", "name", "salaries control original"); if ($salconacc != $salconacc_orig) { block_check($salconacc); } block_check($uifbal = gethook("accnum", "salacc", "name", "uifbal")); block_check($intrec = gethook("accnum", "salacc", "name", "interestreceived")); block_check($sdlbal = gethook("accnum", "salacc", "name", "sdlbal")); block_check($pa = gethook("accnum", "salacc", "name", "pension")); block_check($ma = gethook("accnum", "salacc", "name", "medical")); block_check($cash_account = gethook("accnum", "salacc", "name", "cash")); block_check($retire = gethook("accnum", "salacc", "name", "retire")); block_check($provident = gethook("accnum", "salacc", "name", "provident")); block_check($commacc = gethook("accnum", "salacc", "name", "Commission")); block_check($abonusacc = gethook("accnum", "salacc", "name", "Bonus")); block_check($payeacc = gethook("accnum", "salacc", "name", "PAYE")); block_check($uifacc = gethook("accnum", "salacc", "name", "UIF")); block_check($providente = $myEmp["expacc_provident"]); block_check($retiree = $myEmp["expacc_ret"]); block_check($pax = $myEmp["expacc_pension"]); block_check($uifexp = $myEmp["expacc_uif"]); block_check($max = $myEmp["expacc_medical"]); block_check($dedgenerale = $myEmp["expacc_other"]); block_check($sdlexp = $myEmp["expacc_sdl"]); block_check($salacc = $myEmp["expacc_salwages"]); block_check($reimbursexp = $myEmp["expacc_reimburs"]); if (($loanexp = $myEmp["expacc_loan"]) > 0) { block_check($loanexp); } if (isset($allowaccs)) { foreach ($allowaccs as $checkacc) { block_check($checkacc); } } if (isset($dedaccs)) { foreach ($dedaccs as $k => $checkacc) { block_check($checkacc); } } finish_block_check(); /* check if hire date before pay date */ explodeDate($myEmp["hiredate"], $hd_year, $hd_month, $hd_day); $MONempyear = getYearOfEmpMon($MON); switch ($myEmp["payprd"]) { case "m": $extra = false; break; case "d": $extra = $hd_year == $MONempyear && $hd_month == $MON && $pday < $hd_day; break; case "w": case "f": $extra = $hd_year == $MONempyear && $hd_month == $MON && $weekends[$week] < $hd_day; break; } if ($hd_year > $MONempyear || $hd_year == $MONempyear && $hd_month > $MON || $extra) { return process($_POST, "<li class='err'>Employee was not employed in the period\n\t\t\trequested.</li>"); } # The Paye $tyear = 12; switch ($myEmp["payprd"]) { case 'm': $tyear = 12; break; case 'w': $tyear = 52; break; case 'f': $tyear = 26; break; case 'd': $tyear = 5 * 52; break; } if ($myEmp["saltyp"] != "h") { if ($myEmp["saltyp"] == "w") { $perhr = sprint($basic_sal / $wh_actual); } else { $perhr = sprint($basic_sal * $tyear / ($myEmp['hpweek'] * 52)); } } else { $perhr = $basic_sal; } $overamt = $novert * ($perhr * $myEmp['novert']); $overamt += $hovert * ($perhr * $myEmp['hovert']); $overamt = sprint($overamt); # Multiply basic_sal add overtime if (isset($multi)) { $basic_sal = sprint($basic_sal * $multi); //$tyear = ($tyear/$multi); } else { $basic_sal = $basic_sal; } # Zero if not specified $commission = $commission + 0; $loaninstall = $loaninstall + 0; //$basic_sal=$basic_sal+$commission; $all_before = ""; $all_after = ""; $all_beforeamount = 0; $all_afteramount = 0; if (isset($allowtax)) { foreach ($allowtax as $key => $perc) { if ($perc == "Yes" and $allowances[$key] > 0) { $all_before .= "<tr class='" . bg_class() . "'><td>{$allowname[$key]}</td><td>" . CUR . " {$allowances[$key]}</td></tr>"; $all_beforeamount = $all_beforeamount + $allowances[$key]; } elseif ($allowances[$key] > 0) { $all_after .= "<tr class='" . bg_class() . "'><td>{$allowname[$key]}</td><td>" . CUR . " {$allowances[$key]}</td></tr>"; $all_afteramount = $all_afteramount + $allowances[$key]; } } } $subsistence = ""; $subs_taxable = 0; $subs_total = 0; $i = 0; if (isset($subsname)) { if (isset($subs_exch) && $subs_exch == 0) { $subs_exch = 1; } foreach ($subsname as $sid => $sn) { if ($subsrep[$sid] == "yes") { //2012 $nontax = $subsdays[$sid] * ($subsmeal[$sid] == "yes" ? 303 : 93); $subs_total += $subsamt[$sid]; } else { //2012 //TODO // outside republic, 215 dollars $nontax = $subsdays[$sid] * (215 / $subs_exch); $subs_total += $subsamt[$sid] * $subs_exch; } $tmp = $subsamt[$sid] - $nontax; if ($tmp > 0) { $subs_taxable += $tmp / $divisor; } $subsistence .= "\n\t\t\t\t<input type='hidden' name='subsname[{$sid}]' value='{$subsname[$sid]}'>\n\t\t\t\t<input type='hidden' name='subsacc[{$sid}]' value='{$subsacc[$sid]}'>\n\t\t\t\t<input type='hidden' name='subsamt[{$sid}]' value='{$subsamt[$sid]}'>\n\t\t\t\t<input type='hidden' name='subsrep[{$sid}]' value='{$subsrep[$sid]}'>\n\t\t\t\t<input type='hidden' name='subsmeal[{$sid}]' value='{$subsmeal[$sid]}'>\n\t\t\t\t<input type='hidden' name='subsdays[{$sid}]' value='{$subsdays[$sid]}'>\n\t\t\t\t<!--<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t<td>{$subsname[$sid]}</td>\n\t\t\t\t\t<td>" . CUR . " {$subsamt[$sid]}</td>\n\t\t\t\t\t<td>{$subsdays[$sid]}</td>\n\t\t\t\t</tr>-->"; } if (false && !empty($subsistence)) { $subsistence = "\n\t\t\t<tr><td colspan='20'>\n\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<th colspan='3'>Subsistence Allowances</th>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<th>Name</th>\n\t\t\t\t<th>Amount</th>\n\t\t\t\t<th>Days</th>\n\t\t\t</tr>\n\t\t\t{$subsistence}\n\t\t\t</table>\n\t\t\t</td></tr>"; } } $de_before = ""; $de_after = ""; $de_beforeamount = 0; $de_afteramount = 0; $de_beforeamount_emp = 0; $de_afteramount_emp = 0; if (isset($deducttax)) { foreach ($deducttax as $key => $perc) { if ($perc == "Yes" and $deductions[$key] > 0) { $de_before .= "\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>{$deductname[$key]}</td>\n\t\t\t\t\t\t<td>" . CUR . " {$deductions[$key]}</td>\n\t\t\t\t\t\t<!--<td>" . CUR . " {$employer_deductions[$key]}</td>//-->\n\t\t\t\t\t</tr>"; $de_beforeamount = $de_beforeamount + $deductions[$key] + $employer_deductions[$key]; $de_beforeamount_emp += $employer_deductions[$key]; } elseif ($deductions[$key] > 0) { $de_after .= "\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>{$deductname[$key]}</td>\n\t\t\t\t\t\t<td>" . CUR . " {$deductions[$key]}</td>\n\t\t\t\t\t\t<!--<td>" . CUR . " {$employer_deductions[$key]}</td>//-->\n\t\t\t\t\t</tr>"; $de_afteramount = $de_afteramount + $deductions[$key] + $employer_deductions[$key]; $de_afteramount_emp += $employer_deductions[$key]; } } } $de_before .= ""; $de_after .= ""; if ($all_beforeamount > 0) { $all_before = "<tr><th colspan='2'>Allowances</th></tr>" . $all_before; } if ($all_afteramount > 0) { $all_after = "<tr><th colspan='2'>Allowances</th></tr>" . $all_after; } if ($de_beforeamount > 0) { $de_before = "<tr><th colspan='2'>Deductions</th></tr>" . $de_before; } else { $de_before = ""; } if ($de_afteramount > 0) { $de_after = "<tr><th colspan='2'>Deductions</th></tr>" . $de_after; } else { $de_after = ""; } // calculate age of employee (if intl., ie has passport num only), act asif under 65 if (!empty($myEmp["idnum"])) { $bd_year = 1900 + substr($myEmp["idnum"], 0, 2); $bd_month = substr($myEmp["idnum"], 2, 2); $bd_day = substr($myEmp["idnum"], 4, 2); /* get the current financial year */ db_conn("core"); $sql = "SELECT yrname FROM active"; $rslt = db_exec($sql) or errDie("Error fetching financial year."); if (pg_num_rows($rslt) < 1) { return "Please run quick setup first."; } $fin_year = substr(pg_fetch_result($rslt, 0, 0), 1); if (!checkdate($bd_month, $bd_day, $bd_year)) { return "<li class='err'>Please <a href='../admin-employee-edit.php?empnum={$myEmp['empnum']}'>change</a> employees ID Number to valid ID Number</li>" . process($_POST); } $sql = "SELECT EXTRACT('year' FROM AGE('{$fin_year}-02-28', '{$bd_year}-{$bd_month}-{$bd_day}'))"; $rslt = db_exec($sql) or errDie("Error calculating age at financial year end."); $age = pg_fetch_result($rslt, 0, 0); } else { $age = 1; } // calculate loan fringe benefit amount for this month if (!empty($myEmp["loanamt"]) && $myEmp["gotloan"] == "t" && $myEmp["loanamt"] > 0) { $loanpart = $loaninstall / $myEmp["loanamt"]; $fringe_loan = sprint($myEmp["loanfringe"] * $loanpart); } else { $fringe_loan = "0.00"; } payedbg("sal/annum: {$myEmp['basic_sal_annum']}<br />", false); payedbg("divisor: {$divisor}<br />", false); //2012 // calculate motor car fringe benefit if ($myEmp["fringe_car1"] > 0) { $deduct_perc = 0; // Employee has travel allowance? if ($myEmp["all_travel"] > 0) { $deduct_perc = 0.0325; } else { $deduct_perc = 0.035; } $fringe_car1 = $myEmp["fringe_car1"] * $deduct_perc; } // Second fringe car will always be 3.25% if ($myEmp["fringe_car2"] > 0) { $fringe_car2 = $myEmp["fringe_car2"] * 0.0325; } $fringe_car1 = sprint($fringe_car1); $fringe_car2 = sprint($fringe_car2); payedbg("fringe_car1: {$fringe_car1}<br />", false); payedbg("fringe_car2: {$fringe_car2}<br />", false); // calc medical fringe benefits if ($comp_medical > 0) { // calculate dependants after first one $tmp_deps = $myEmp["emp_meddeps"] - 2; if ($tmp_deps < 0) { $tmp_deps = 0; } //2009 // calculate paragraph 12A amount //first 2 dependants are 530 each (1060) rest is 320 each. //$p12A_amt = ($myEmp["emp_meddeps"] > 1 ? 1060 : 530) + ($tmp_deps * 320); //2010 // calculate paragraph 12A amount //first 2 dependants are 625 each (1250) rest is 380 each. //$p12A_amt = ($myEmp["emp_meddeps"] > 1 ? 1250 : 625) + ($tmp_deps * 380); //2011 // calculate paragraph 12A amount //first 2 dependants are 670 each (1340) rest is 410 each. //$p12A_amt = ($myEmp["emp_meddeps"] > 1 ? 1340 : 820) + ($tmp_deps * 410); //2012 // calculate paragraph 12A amount //first 2 dependants are 230 each (460) rest is 154 each. $p12A_amt = ($myEmp["emp_meddeps"] > 1 ? 460 : 230) + $tmp_deps * 154; // calculate taxable fringe benefit amount $fringe_medical = sprint($comp_medical - $p12A_amt / $divisor); if ($fringe_medical < 0) { $fringe_medical = 0; } } else { $fringe_medical = 0; } payedbg("medical fringe: {$fringe_medical}<br />", false); // calculate total fringe benefits $tot_fringe = $fringe_medical + $fringe_car1 + $fringe_car2 + $fringe_loan + $comp_other + $comp_ret + $de_beforeamount_emp + $de_afteramount_emp + $subs_taxable; // subsistance if (isset($fringeid)) { foreach ($fringeid as $key => $value) { $fringebens[$key] = sprint($fringebens[$key]); $tot_fringe += $fringebens[$key]; } } vsprint($tot_fringe); payedbg("total fringe: {$tot_fringe}<br />", false); if ($emp_pension > $basic_sal * 7.5 / 100) { $emp_mpension = $basic_sal * 7.5 / 100; } else { $emp_mpension = $emp_pension; } $max_ret = $myEmp["basic_sal_annum"] * 7.5 / 100 > 1750 ? $myEmp["basic_sal_annum"] * 7.5 / 100 : 1750; // calculate total gross salary $grossal = $basic_sal + $commission + $abonus + $overamt + $bonus + $annual + $all_beforeamount + $all_travel * 0.8 - $de_beforeamount; // deductions deducted before paye (non taxible) $grossal_2 = $grossal; $taxed_all = $all_afteramount + $all_travel * 0.8; $grossal_nodedall = $basic_sal + $overamt + $bonus + $annual + $all_travel; #UIF HAX $uif_grosssal = $grossal; // pension/provident/ra: calculate deduction amounts, limiting them to maximum amount and only deducting // ONE of them for taxable income if ($comp_pension + $emp_pension > 0) { $tmp = ($grossal_2 + $tot_fringe) * $tyear; $maxallowed = $tmp * 0.075 > 1750 ? $tmp * 0.075 : 1750; if ($emp_mpension > $maxallowed) { $tmp_ded = $maxallowed; } else { $tmp_ded = $emp_mpension; } $grossal -= $tmp_ded; payedbg("pension maxded (-gross): {$tmp_ded}<br />", false); } if ($comp_ret + $emp_ret > 0) { $tmp = ($grossal_2 + $tot_fringe) * $tyear; // if their is a pension contributions the percentage is 0 if ($comp_pension + $emp_pension + $comp_provident + $emp_provident > 0) { $PERC = 0; } else { $PERC = 0.15; } $maxallowed = $tmp * $PERC > 1750 ? $tmp * $PERC : 1750; $maxallowed = $maxallowed > 3500 - $emp_pension * $divisor * 12 ? $maxallowed : 3500 - $emp_pension * 12; if (($emp_ret + $comp_ret) * $divisor > $maxallowed / 12) { $tmp_ded = $maxallowed / 12 / $divisor; } else { $tmp_ded = $emp_ret + $comp_ret; } $grossal -= $tmp_ded; payedbg("retfund maxded (-gross): {$tmp_ded}<br />", false); } // calculate total paye salary // just remove annual this month, and add annual divided by 12 // because paye is calculate for full twelve months and therefore // paye salary is average received each month $paye_salary = $grossal - $annual + $tot_fringe; // total fringe benefits; //print "--------- $uif_grossal - $annual + $tot_fringe;----------<br>"; #UIF HAX $uif_paye_salary = $uif_grosssal - $annual + $tot_fringe; /* calculate uif */ $tmp_remun = $paye_salary + $annual - $commission - $abonus; #UIF HAX $uif_tmp_remun = $uif_paye_salary + $annual - $commission - $abonus; // $comp_uif = sprint($tmp_remun * ($myEmp["comp_uif"] / 100)); // $emp_uif = sprint($tmp_remun * ($myEmp["emp_uif"] / 100)); #UIF HAX $comp_uif = sprint($uif_tmp_remun * ($myEmp["comp_uif"] / 100)); $emp_uif = sprint($uif_tmp_remun * ($myEmp["emp_uif"] / 100)); $uifmax = getCSetting("UIF_MAX"); if ($emp_uif > $uifmax) { $emp_uif = sprint($uifmax); } if ($comp_uif > $uifmax) { $comp_uif = sprint($uifmax); } /* calculate sdl */ $tmp_remun = $paye_salary + $annual; if (getCSetting("SDLPAYABLE") == "y") { $tmp_sdl = $tmp_remun; if ($age > 65) { $tmp_sdl -= $comp_medical; } $comp_sdl = $tmp_sdl * ($myEmp["comp_sdl"] / 100); } else { $comp_sdl = 0; } // a little hack, apparently the grossal is displayed wrong, in a strictly opinion based evodamion $grossal += $comp_ret; // add rest of travel allowance $grossal += $all_travel * 0.2; if (isset($mpaye)) { $paye = $mpaye_amount; } else { // calculate paye (take age of 65+ threshold into account) //2008 // if ( ($age >= 65 && ($paye_salary * $tyear) < 69000) || ($paye_salary * $tyear) < 43000 ) { //2009 // if ( ($age >= 65 && ($paye_salary * $tyear) < 74000) || ($paye_salary * $tyear) < 46000 ) { //2010 // if ( ($age >= 65 && ($paye_salary * $tyear) < 84200) || ($paye_salary * $tyear) < 54200 ) { //2011 // if ( ($age >= 65 && ($paye_salary * $tyear) < 88528) || ($paye_salary * $tyear) < 57000 ) { //2012 if ($age >= 65 && $age < 75 && $paye_salary * $tyear < 99056 || $age >= 75 && $paye_salary * $tyear < 110889 || $paye_salary * $tyear < 63556) { $paye = "0.00"; } else { if ($myEmp["payprd"] == "w" || $myEmp["payprd"] == "f") { $paye_prd = "{$MON}:{$week}"; } else { if ($myEmp["payprd"] == "d") { $paye_prd = "{$MON}:{$pday}"; } else { $paye_prd = "{$MON}"; } } payedbg("paye salary: {$paye_salary}<br />", false); $paye = calculate_paye($myEmp, $paye_prd, $paye_salary, $tyear, $age); if ($annual > 0) { $tmp_bonpaye = calculate_paye($myEmp, $paye_prd, $paye_salary + $annual / 12, $tyear, $age); $paye += $tmp_bonpaye * $tyear - $paye * $tyear; } } } // fringe benefits $i = 0; $fringes = ""; $fringes_desc = ""; if (isset($fringebens)) { foreach ($fringebens as $key => $value) { if ($fringebens[$key] > 0) { $fringes_desc .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>{$fringename[$key]}</td>\n\t\t\t\t\t<td>" . CUR . " {$fringebens[$key]}</td>\n\t\t\t\t</tr>"; $fringes .= "\n\t\t\t\t\t<input type='hidden' name='fringebens[]' value='{$fringebens[$key]}'>\n\t\t\t\t\t<input type='hidden' name='fringeid[]' value='{$fringeid[$key]}'>\n\t\t\t\t\t<input type='hidden' name='fringename[]' value='{$fringename[$key]}'>\n\t\t\t\t\t<input type='hidden' name='fringeaccs[]' value='{$fringeaccs[$key]}'>"; } } } if (!empty($fringes_desc)) { $fringes_desc = "<tr><th colspan='2'>Fringe Benefits</th></tr>{$fringes_desc}"; } $allow = ""; # Get allowances names and value from array if (isset($allowances)) { foreach ($allowances as $key => $value) { if ($allowances[$key] > 0) { $allow .= "\n\t\t\t\t\t<input type='hidden' size='10' name='allowname[]' value='{$allowname[$key]}'>\n\t\t\t\t\t<input type='hidden' size='10' name='allowid[]' value='{$allowid[$key]}'>\n\t\t\t\t\t<input type='hidden' size='10' name='allowances[]' value='{$allowances[$key]}'>\n\t\t\t\t\t<input type='hidden' size='10' name='allowtax[]' value='{$allowtax[$key]}'>\n\t\t\t\t\t<input type='hidden' name='allowaccs[]' value='{$allowaccs[$key]}'>"; } } } $deduct = ""; if (isset($deductions)) { foreach ($deductions as $key => $value) { if ($deductions[$key] > 0) { $deduct .= "\n\t\t\t\t\t<input type='hidden' size='10' name='deductname[]' value='{$deductname[$key]}'>\n\t\t\t\t\t<input type='hidden' size='10' name='deductid[]' value='{$deductid[$key]}'>\n\t\t\t\t\t<input type='hidden' size='10' name='deductions[]' value='{$deductions[$key]}'>\n\t\t\t\t\t<input type='hidden' size='10' name='employer_deductions[]' value='{$employer_deductions[$key]}'>\n\t\t\t\t\t<input type='hidden' size='10' name='deducttax[]' value='{$deducttax[$key]}'>\n\t\t\t\t\t<input type='hidden' name='dedaccs[]' value='{$dedaccs[$key]}'>"; } } } $nonretfunding = $basic_sal - $paye - $loaninstall - $de_afteramount + $de_afteramount_emp + $all_afteramount - $emp_pension - $emp_medical - $emp_uif - $emp_provident; /*$ret_max = (1800>($nonretfunding*0.15)) ? 1800 : ($nonretfunding*0.15); if ( $comp_ret + $emp_ret > $ret_max ) { $comp_ret = $ret_max - $emp_ret; if ( $comp_ret < 0 ) { $comp_ret = 0; $emp_ret = $ret_max; } }*/ $nettpay = $basic_sal + $overamt - $paye + $commission + $abonus - $loaninstall - $de_beforeamount - $de_afteramount + $all_afteramount + $all_beforeamount - $emp_pension - $emp_medical - $emp_ret - $emp_uif - $emp_provident - $emp_other + $annual + $bonus + $all_travel - $myEmp["fringe_car1_contrib"] - $myEmp["fringe_car2_contrib"] + $subs_total; $nettpay = sprint($nettpay); if (isset($rbsa)) { $nettpay += array_sum($rbsa); $nettpay = sprint($nettpay); } $rt = ""; db_conn("cubit"); $Sl = "SELECT * FROM cubit.rbs ORDER BY name"; $Ri = db_exec($Sl) or errDie("Unable to get data."); $i = 0; if (pg_num_rows($Ri) > 0) { while ($td = pg_fetch_array($Ri)) { if (!isset($rbsa[$td['id']]) || $rbsa[$td['id']] < 1) { continue; } $rbsa[$td['id']] = sprint($rbsa[$td['id']]); if ($i == 0) { $rt = "<tr><th colspan=2>Reimbursements</th></tr>"; } $rt .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td><input type='hidden' name='rbs[{$td['id']}]' value='{$td['id']}'>{$td['name']}</td>\n\t\t\t\t\t<td>" . CUR . " <input type='hidden' name='rbsa[{$td['id']}]' value='" . $rbsa[$td['id']] . "'>" . $rbsa[$td['id']] . "</td>\n\t\t\t\t</tr>"; $i++; } } else { $rt .= "<tr class='" . bg_class() . "'><td colspan='2'>There are no reimbursements</td></tr>"; } db_conn("cubit"); # Get bank account name $sql = "SELECT * FROM bankacct WHERE bankid = '{$accid}' AND div = '" . USER_DIV . "'"; $bankRslt = db_exec($sql); $bank = pg_fetch_array($bankRslt); $basic_sal = sprint($basic_sal); $commission = sprint($commission); $abonus = sprint($abonus); $overamt = sprint($overamt); $paye = sprint($paye); $nettpay = sprint($nettpay); if ($myEmp['paytype'] == "Cash") { $paydetails = "<tr class='" . bg_class() . "'><td colspan=2>Pay Salary Cash</td></tr>"; } else { $paydetails = "<tr class='" . bg_class() . "'><td>Bank Account</td><td>{$bank['accname']}</td></tr>"; } vsprint($bonus); vsprint($annual); vsprint($comp_pension); vsprint($emp_medical); vsprint($comp_medical); vsprint($comp_ret); vsprint($emp_ret); vsprint($loaninstall); vsprint($emp_pension); vsprint($fringe_medical); if (!isset($account)) { $account = 0; } else { db_conn('core'); $Sl = "SELECT * FROM accounts WHERE accid='{$account}'"; $Ri = db_exec($Sl); $ad = pg_fetch_array($Ri); $paydetails = "<tr class='" . bg_class() . "'><td>Ledger Account</td><td>{$ad['accname']}</td></tr>"; } if ($myEmp['payprd'] == "w") { $row = "\n\t\t\t<tr class='" . bg_class() . "'><td>Period</td><td>{$week}</td></tr>\n\t\t\t<input type='hidden' name='week' value='{$week}'>\n\t\t\t<input type='hidden' name='pday' value='0' />"; } else { if ($myEmp['payprd'] == "f") { $row = "\n\t\t\t<tr class='" . bg_class() . "'><td>Period</td><td>{$week}</td></tr>\n\t\t\t<input type='hidden' name='week' value='{$week}'>\n\t\t\t<input type='hidden' name='pday' value='0' />"; } else { if ($myEmp["payprd"] == "d") { $row = "\n\t\t\t<tr class='" . bg_class() . "'><td>Day of Payment</td><td>{$pday}</td></tr>\n\t\t\t<input type='hidden' name='week' value='0'>\n\t\t\t<input type='hidden' name='pday' value='{$pday}' />"; } else { $row = "\n\t\t\t<input type='hidden' name='week' value='0'>\n\t\t\t<input type='hidden' name='pday' value='0' />"; } } } $grossal = sprint($grossal); $OUTPUT = "\n\t <form action='" . SELF . "' method='POST'>\n\t <table " . TMPL_tblDflts . " width='300'>\n\t\t\t<tr>\n\t\t\t\t<td><input type='submit' name='back' value='« Correction' /></td>\n\t\t\t\t<td align='right'><input type='submit' value='Write »'></td>\n\t\t\t</tr>\n\t\t\t<input type='hidden' name='proc_day' value='{$day}' />\n\t\t\t<input type='hidden' name='proc_month' value='{$mon}' />\n\t\t\t<input type='hidden' name='proc_year' value='{$year}' />\n\t\t\t<input type='hidden' name='key' value='pack'>\n\t\t\t<input type='hidden' name='grossal' value='{$grossal}'>\n\t\t\t<input type='hidden' name='grossal_nodedall' value='{$grossal_nodedall}'>\n\t\t\t<input type='hidden' name='empnum' value='{$empnum}'>\n\t\t\t<input type='hidden' name='account' value='{$account}'>\n\t\t\t<input type='hidden' name='MON' value={$MON}>\n\t\t\t<input type='hidden' name='basic_sal' value='{$basic_sal_save}'>\n\t\t\t<input type='hidden' name='multi' value='{$multi}'>\n\t\t\t<input type='hidden' name='tyear' value='{$tyear}'>\n\t\t\t<input type='hidden' name='commission' value='{$commission}'>\n\t\t\t<input type='hidden' name='abonus' value='{$abonus}'>\n\t\t\t<input type='hidden' name='overamt' value='{$overamt}'>\n\t\t\t<input type='hidden' name='loaninstall' value='{$loaninstall}'>\n\t\t\t<input type='hidden' name='paye' value='{$paye}'>\n\t\t\t<input type='hidden' name='accid' value='{$accid}'>\n\t\t\t<input type='hidden' name='income' value='{$nettpay}'>\n\t\t\t<input type='hidden' name='bonus' value='{$bonus}'>\n\t\t\t<input type='hidden' name='all_travel' value='{$all_travel}'>\n\t\t\t<input type='hidden' name='comp_pension' value='{$comp_pension}'>\n\t\t\t<input type='hidden' name='emp_pension' value='{$emp_pension}'>\n\t\t\t<input type='hidden' name='comp_medical' value='{$comp_medical}'>\n\t\t\t<input type='hidden' name='emp_medical' value='{$emp_medical}'>\n\t\t\t<input type='hidden' name='comp_ret' value='{$comp_ret}'>\n\t\t\t<input type='hidden' name='emp_ret' value='{$emp_ret}'>\n\t\t\t<input type='hidden' name='comp_uif' value='{$comp_uif}'>\n\t\t\t<input type='hidden' name='emp_uif' value='{$emp_uif}'>\n\t\t\t<input type='hidden' name='comp_sdl' value='{$comp_sdl}'>\n\t\t\t<input type='hidden' name='comp_other' value='{$comp_other}'>\n\t\t\t<input type='hidden' name='emp_other' value='{$emp_other}'>\n\t\t\t<input type='hidden' name='comp_provident' value='{$comp_provident}'>\n\t\t\t<input type='hidden' name='emp_provident' value='{$emp_provident}'>\n\t\t\t<input type='hidden' name='paye_salary' value='{$paye_salary}'>\n\t\t\t<input type='hidden' name='day' value='{$day}'>\n\t\t\t<input type='hidden' name='mon' value='{$mon}'>\n\t\t\t<input type='hidden' name='year' value='{$year}'>\n\t\t\t<input type='hidden' name='novert' value='{$novert}'>\n\t\t\t<input type='hidden' name='hovert' value='{$hovert}'>\n\t\t\t<input type='hidden' name='annual' value='{$annual}'>\n\t\t\t<input type='hidden' name='week' value='{$week}'>\n\t\t\t<input type='hidden' name='fringe_medical' value='{$fringe_medical}'>\n\t\t\t<input type='hidden' name='fringe_tot' value='{$tot_fringe}'>\n\t\t\t<input type='hidden' name='fringe_car1' value='{$fringe_car1}'>\n\t\t\t<input type='hidden' name='fringe_car2' value='{$fringe_car2}'>\n\t\t\t<input type='hidden' name='fringe_loan' value='{$fringe_loan}'>\n\t\t\t<input type='hidden' name='process_comp_deductions' value='{$process_comp_deductions}'>\n\t\t\t<input type='hidden' name='taxed_all' value='{$taxed_all}' />\n\t\t\t<input type='hidden' name='printslip' value='{$printslip}' />\n\t\t\t" . (isset($subs_exch) ? "<input type='hidden' name='subs_exch' value='{$subs_exch}'>" : "") . "\n\t\t\t{$fringes}\n\t\t\t{$allow}\n\t\t\t{$deduct}\n\t\t\t<tr>\n\t\t\t\t<th colspan='2'>Salary Details</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Basic salary</td>\n\t\t\t\t<td>" . CUR . " {$basic_sal}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Annual Bonus</td>\n\t\t\t\t<!--<td>Special Bonus/Additional Salary</td>-->\n\t\t\t\t<td>" . CUR . " {$abonus}</td>\n\t\t\t</tr>\n\t\t\t<!--<tr class='bg-odd'>\n\t\t\t\t<td>Bonus(Annual Payments)</td>\n\t\t\t\t<td>" . CUR . " {$annual}</td>\n\t\t\t</tr>-->\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Commission</td>\n\t\t\t\t<td>" . CUR . " {$commission}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Travel Allowance</td>\n\t\t\t\t<td>" . CUR . " {$all_travel}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Pension: Company Contribution</td>\n\t\t\t\t<td>" . CUR . " {$comp_pension}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Pension: Employee Deduction</td>\n\t\t\t\t<td>" . CUR . " {$emp_pension}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Provident Fund: Company Contribution</td>\n\t\t\t\t<td>" . CUR . " {$comp_provident}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Provident Fund: Employee Deduction</td>\n\t\t\t\t<td>" . CUR . " {$emp_provident}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>UIF: Company Contribution</td>\n\t\t\t\t<td>" . CUR . " {$comp_uif}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>UIF: Employee Deduction</td>\n\t\t\t\t<td>" . CUR . " {$emp_uif}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Retirement Annuity: Company Contribution</td>\n\t\t\t\t<td>" . CUR . " {$comp_ret}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Retirement Annuity: Employee Deduction</td>\n\t\t\t\t<td>" . CUR . " {$emp_ret}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Medical Contribution: Company</td>\n\t\t\t\t<td>" . CUR . " {$comp_medical}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Medical Contribution: Employee</td>\n\t\t\t\t<td>" . CUR . " {$emp_medical}</td>\n\t\t\t</tr>\n\t\t\t<br />\n\t\t\t<!--\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Other: Company Contribution</td>\n\t\t\t\t<td>" . CUR . " {$comp_other}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Other: Employee Deduction</td>\n\t\t\t\t<td>" . CUR . " {$emp_other}</td>\n\t\t\t</tr>\n\t\t\t//-->\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Overtime</td>\n\t\t\t\t<td>" . CUR . " {$overamt}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Medical Fringe Benefit</td>\n\t\t\t\t<td>" . CUR . " {$fringe_medical}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Motorcar 1 Fringe Benefit</td>\n\t\t\t\t<td>" . CUR . " {$fringe_car1}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Motorcar 1 Contribution for Use</td>\n\t\t\t\t<td>" . CUR . " {$myEmp['fringe_car1_contrib']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Motorcar 2 Fringe Benefit</td>\n\t\t\t\t<td>" . CUR . " {$fringe_car2}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Motorcar 2 Contribution for Use</td>\n\t\t\t\t<td>" . CUR . " {$myEmp['fringe_car2_contrib']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Loan Interest Fringe Benefit</td>\n\t\t\t\t<td>" . CUR . " {$fringe_loan}</td>\n\t\t\t</tr>\n\t\t\t{$fringes_desc}\n\t\t\t{$all_before}\n\t\t\t{$de_before}\n\t\t\t<tr>\n\t\t\t\t<th colspan='2'>Gross Salary</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Gross Salary</td>\n\t\t\t\t<td>" . CUR . " {$grossal}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>SITE/PAYE</td>\n\t\t\t\t<td>" . CUR . " {$paye}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<th colspan='2'>Loans</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Loan Instalment</td>\n\t\t\t\t<td>" . CUR . " {$loaninstall}</td>\n\t\t\t</tr>\n\t\t\t{$all_after}\n\t\t\t{$subsistence}\n\t\t\t{$de_after}\n\t\t\t<tr>\n\t\t\t\t<th colspan='2'>Nett Pay</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Nett Pay + Reimbursements</td>\n\t\t\t\t<td>" . CUR . " {$nettpay}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Amount Paid now</td>\n\t\t\t\t<td><input type='text' size='10' name='paidamount' value='0'></td>\n\t\t\t</tr>\n\t\t\t{$paydetails}\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Date</td>\n\t\t\t\t<td>{$date}</td>\n\t\t\t</tr>\n\t\t\t{$row}\n\t\t\t{$rt}\n\t\t\t<tr>\n\t\t\t\t<td><input type='submit' name='back' value='« Correction' /></td>\n\t\t\t\t<td align='right'><input type='submit' value='Write »'></td>\n\t\t\t</tr>\n\t\t</table>\n\t\t</form>"; return $OUTPUT; }
function confirm($_POST) { # get vars $_POST = var_makesafe($_POST); extract($_POST); if (isset($back)) { return slctEmployee(); } $annual += 0; $bonus += 0; $mpaye_amount += 0; # validate input require_lib("validate"); $v = new validate(); if (isset($account)) { $v->isOk($account, "num", 1, 9, "Invalid ledger account."); } $v->isOk($empnum, "num", 1, 9, "Invalid employee number."); $v->isOk($accid, "num", 1, 9, "Invalid bank number."); $v->isOk($MON, "num", 1, 2, "Invalid month."); $v->isOk($bonus, "float", 1, 11, "Invalid bonus."); $v->isOk($mpaye_amount, "float", 1, 11, "Invalid manual PAYE amount."); $v->isOk($all_travel, "float", 1, 11, "Invalid travel allowance."); $v->isOk($comp_pension, "float", 1, 11, "Invalid company pension."); $v->isOk($comp_medical, "float", 1, 11, "Invalid company medical."); $v->isOk($emp_pension, "float", 1, 11, "Invalid employee pension."); $v->isOk($emp_medical, "float", 1, 11, "Invalid employee medical."); $v->isOk($comp_provident, "float", 1, 11, "Invalid company provident."); $v->isOk($emp_provident, "float", 1, 11, "Invalid employee provident."); //$v->isOk ($comp_uif, "float", 1, 11, "Invalid company uif."); //$v->isOk ($emp_uif, "float", 1, 11, "Invalid employee uif."); $v->isOk($comp_other, "float", 1, 11, "Invalid company other."); $v->isOk($emp_other, "float", 1, 11, "Invalid employee other."); $v->isOk($comp_ret, "float", 1, 11, "Invalid company ret."); $v->isOk($emp_ret, "float", 1, 11, "Invalid employee ret."); $v->isOk($basic_sal, "float", 1, 11, "Invalid basic salary."); $v->isOk($commission, "float", 0, 11, "Invalid commision."); $v->isOk($loaninstall, "float", 0, 11, "Invalid loan installment."); $v->isOk($loanint, "float", 0, 11, "Invalid loan interest."); if ($divisor != 1 && round($divisor, 2) != round(52 / 12, 2) && round($divisor) != round(26 / 12, 2)) { $v->addError("", "Invalid pay period (DIVIS)."); } if ($saltyp == 'd' || $saltyp == 'h') { $salnarr = array("d" => "Days", "h" => "Hours"); $salntype = $salnarr[$saltyp]; $v->isOk($multi, "float", 1, 5, "Invalid number of {$salntype}."); if ($multi < 1) { $v->isOk("##", "num", 1, 1, "Error : Employee cannot be paid for {$multi} {$salntype}."); } } if (isset($allowances)) { foreach ($allowances as $key => $value) { $v->isOk($allowances[$key], "float", 0, 11, "Invalid allowance amount " . ($key + 1) . "."); } } if (isset($deductid)) { foreach ($deductid as $key => $value) { $v->isOk($deductid[$key], "num", 1, 9, "Invalid deductions ID."); } } if (isset($deductions)) { foreach ($deductions as $key => $value) { $v->isOk($deductions[$key], "float", 0, 11, "Invalid deduction amount" . ($key + 1) . "."); } } if (isset($allowid)) { foreach ($allowid as $key => $value) { $v->isOk($allowid[$key], "num", 1, 9, "Invalid allowance ID."); } } if (isset($allowtax)) { foreach ($allowtax as $key => $value) { $v->isOk($allowtax[$key], "string", 1, 3, "Invalid allowance tax option" . ($key + 1) . "."); } } $date = $day . "-" . $mon . "-" . $year; $ydate = $year . "-" . $mon . "-" . $day; if (!checkdate($mon, $day, $year)) { $v->isOk($date, "num", 1, 1, "Invalid date."); } # display errors, if any if ($v->isError()) { $confirmCust = ""; $errors = $v->getErrors(); foreach ($errors as $e) { $confirmCust .= "<li class='err'>" . $e["msg"] . "</li>"; } return $confirmCust . process($_POST); } db_conn('cubit'); $sql = "SELECT * FROM employees WHERE empnum='{$empnum}' AND div = '" . USER_DIV . "'"; $empRslt = db_exec($sql) or errDie("Unable to select employees from database."); if (pg_numrows($empRslt) < 1) { return "Invalid employee ID."; } $myEmp = pg_fetch_array($empRslt); if ($myEmp['payprd'] == "d") { $Sl = "SELECT * FROM salpaid WHERE empnum='{$empnum}' AND saldate='{$ydate}'"; $Ri = db_exec($Sl); $paid = pg_num_rows($Ri); $Sl = "SELECT * FROM salr WHERE empnum='{$empnum}' AND saldate='{$ydate}'"; $Ri = db_exec($Sl); $upaid = pg_num_rows($Ri); $upaid += 0; $paid -= $upaid; } elseif ($myEmp['payprd'] == "w") { $yy = date("Y"); $mm = $MON; $mm += 0; $Sl = "SELECT * FROM salpaid WHERE empnum='{$empnum}' AND month='{$mm}' AND substr(saldate,1,4)='{$yy}' AND week='{$week}'"; $Ri = db_exec($Sl); $paid = pg_num_rows($Ri); $Sl = "SELECT * FROM salr WHERE empnum='{$empnum}' AND month='{$mm}' AND substr(saldate,1,4)='{$yy}' AND week='{$week}'"; $Ri = db_exec($Sl); $upaid = pg_num_rows($Ri); $upaid += 0; $paid -= $upaid; } elseif ($myEmp['payprd'] == "f") { $yy = date("Y"); $mm = $MON; $mm += 0; $Sl = "SELECT * FROM salpaid WHERE empnum='{$empnum}' AND month='{$mm}' AND substr(saldate,1,4)='{$yy}' AND week='{$week}'"; $Ri = db_exec($Sl); $paid = pg_num_rows($Ri); $Sl = "SELECT * FROM salr WHERE empnum='{$empnum}' AND month='{$mm}' AND substr(saldate,1,4)='{$yy}' AND week='{$week}'"; $Ri = db_exec($Sl); $upaid = pg_num_rows($Ri); $upaid += 0; $paid -= $upaid; } if (isset($paid) && $paid > 0) { return "<li class='err'>You have already processed a salary for that period</li>" . process($_POST); } $salconacc = gethook("accnum", "salacc", "name", "salaries control"); $salconacc_orig = gethook("accnum", "salacc", "name", "salaries control original"); if ($salconacc != $salconacc_orig) { block_check($salconacc); } block_check($uifbal = gethook("accnum", "salacc", "name", "uifbal")); block_check($intrec = gethook("accnum", "salacc", "name", "interestreceived")); block_check($sdlbal = gethook("accnum", "salacc", "name", "sdlbal")); block_check($pa = gethook("accnum", "salacc", "name", "pension")); block_check($ma = gethook("accnum", "salacc", "name", "medical")); block_check($cash_account = gethook("accnum", "salacc", "name", "cash")); block_check($retire = gethook("accnum", "salacc", "name", "retire")); block_check($provident = gethook("accnum", "salacc", "name", "provident")); block_check($commacc = gethook("accnum", "salacc", "name", "Commission")); block_check($payeacc = gethook("accnum", "salacc", "name", "PAYE")); block_check($uifacc = gethook("accnum", "salacc", "name", "UIF")); block_check($providente = $myEmp["expacc_provident"]); block_check($retiree = $myEmp["expacc_ret"]); block_check($pax = $myEmp["expacc_pension"]); block_check($uifexp = $myEmp["expacc_uif"]); block_check($max = $myEmp["expacc_medical"]); block_check($dedgenerale = $myEmp["expacc_other"]); block_check($sdlexp = $myEmp["expacc_sdl"]); block_check($salacc = $myEmp["expacc_salwages"]); if (($loanexp = $myEmp["expacc_loan"]) > 0) { block_check($loanexp); } if (isset($allowaccs)) { foreach ($allowaccs as $checkacc) { block_check($checkacc); } } if (isset($dedaccs)) { foreach ($dedaccs as $k => $checkacc) { block_check($checkacc); } } if (isset($bal_dedaccs)) { foreach ($bal_dedaccs as $checkacc) { if ($checkacc != 0) { block_check($checkacc); } } } finish_block_check(); # The Paye $tyear = 12; switch ($saltyp) { case 'm': $tyear = 12; $perhr = sprint($basic_sal / ($myEmp['hpweek'] * 52 / 12)); break; case 'w': $tyear = 52; $perhr = sprint($basic_sal / $myEmp['hpweek']); break; case 'f': $tyear = 26; $perhr = sprint($basic_sal / ($myEmp['hpweek'] * 2)); break; case 'd': $tyear = 5 * 52; $perhr = sprint($basic_sal / ($myEmp['hpweek'] / 5)); break; case 'h': $tyear = 45 * 52; $perhr = $basic_sal; break; } $overamt = $novert * ($perhr * $myEmp['novert']); $overamt += $hovert * ($perhr * $myEmp['hovert']); $overamt = sprint($overamt); # Multiply basic_sal add overtime if (isset($multi)) { $basic_sal = sprint($basic_sal * $multi); $tyear = $tyear / $multi; } # Zero if not specified $commission = $commission + 0; $loaninstall = $loaninstall + 0; //$basic_sal=$basic_sal+$commission; $all_before = ""; $all_after = ""; $all_beforeamount = 0; $all_afteramount = 0; if (isset($allowtax)) { foreach ($allowtax as $key => $perc) { if ($perc == "Yes" and $allowances[$key] > 0) { $all_before .= "\r\n\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t<td>{$allowname[$key]}</td>\r\n\t\t\t\t\t\t<td>" . CUR . " {$allowances[$key]}</td>\r\n\t\t\t\t\t</tr>"; $all_beforeamount = $all_beforeamount + $allowances[$key]; } elseif ($allowances[$key] > 0) { $all_after .= "\r\n\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t<td>{$allowname[$key]}</td>\r\n\t\t\t\t\t\t<td>" . CUR . " {$allowances[$key]}</td>\r\n\t\t\t\t\t</tr>"; $all_afteramount = $all_afteramount + $allowances[$key]; } } } $de_before = "\r\n\t\t<tr>\r\n\t\t\t<td colspan='2'>\r\n\t\t\t\t<table " . TMPL_tblDflts . ">\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<th>Details</th>\r\n\t\t\t\t\t\t<th>Employee Contribution</th>\r\n\t\t\t\t\t\t<!--<th>Employer Contribution</th>//-->\r\n\t\t\t\t\t</tr>"; $de_after = "\r\n\t\t<tr>\r\n\t\t\t<td colspan='2'>\r\n\t\t\t\t<table " . TMPL_tblDflts . ">\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<th>Details</th>\r\n\t\t\t\t\t\t<th>Employee Contribution</th>\r\n\t\t\t\t\t\t<!--<th>Employer Contribution</th>//-->\r\n\t\t\t\t\t</tr>"; $de_beforeamount = 0; $de_afteramount = 0; $de_beforeamount_emp = 0; $de_afteramount_emp = 0; if (isset($deducttax)) { foreach ($deducttax as $key => $perc) { if ($perc == "Yes" and $deductions[$key] > 0) { $de_before .= "\r\n\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t<td>{$deductname[$key]}</td>\r\n\t\t\t\t\t\t<td>" . CUR . " {$deductions[$key]}</td>\r\n\t\t\t\t\t\t<!--<td>" . CUR . " {$employer_deductions[$key]}</td>//-->\r\n\t\t\t\t\t</tr>"; $de_beforeamount = $de_beforeamount + $deductions[$key] + $employer_deductions[$key]; $de_beforeamount_emp += $employer_deductions[$key]; } elseif ($deductions[$key] > 0) { $de_after .= "\r\n\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t<td>{$deductname[$key]}</td>\r\n\t\t\t\t\t\t<td>" . CUR . " {$deductions[$key]}</td>\r\n\t\t\t\t\t\t<!--<td>" . CUR . " {$employer_deductions[$key]}</td>//-->\r\n\t\t\t\t\t</tr>"; $de_afteramount = $de_afteramount + $deductions[$key] + $employer_deductions[$key]; $de_afteramount_emp += $employer_deductions[$key]; } } } $de_before .= "</table></td></tr>"; $de_after .= "</table></td></tr>"; if ($all_beforeamount > 0) { $all_before = "<tr><th colspan='2'>Allowances</th></tr>" . $all_before; } if ($all_afteramount > 0) { $all_after = "<tr><th colspan='2'>Allowances</th></tr>" . $all_after; } if ($de_beforeamount > 0) { $de_before = "<tr><th colspan='2'>Deductions</th></tr>" . $de_before; } else { $de_before = ""; } if ($de_afteramount > 0) { $de_after = "<tr><th colspan='2'>Deductions</th></tr>" . $de_after; } else { $de_after = ""; } // calculate age of employee (if intl., ie has passport num only), act asif under 65 if (!empty($myEmp["idnum"])) { $bd_year = 1900 + substr($myEmp["idnum"], 0, 2); $bd_month = substr($myEmp["idnum"], 2, 2); $bd_day = substr($myEmp["idnum"], 4, 2); /* get the current financial year */ db_conn("core"); $sql = "SELECT yrname FROM active"; $rslt = db_exec($sql) or errDie("Error fetching financial year."); if (pg_num_rows($rslt) < 1) { return "Please run quick setup first."; } $fin_year = substr(pg_fetch_result($rslt, 0, 0), 1); $sql = "SELECT EXTRACT('year' FROM AGE('{$fin_year}-02-28', '{$bd_year}-{$bd_month}-{$bd_day}'))"; $rslt = db_exec($sql) or errDie("Error calculating age at financial year end."); $age = pg_fetch_result($rslt, 0, 0); } else { $age = 1; } /* calculate uif */ $tmp_uif = $basic_sal + $all_travel + $overamt + $comp_provident + $comp_pension + $comp_ret + $all_beforeamount + $all_afteramount + $comp_medical + $bonus; $comp_uif = sprint($tmp_uif * ($myEmp["comp_uif"] / 100)); $emp_uif = sprint($tmp_uif * ($myEmp["emp_uif"] / 100)); db_conn("cubit"); $sql = "SELECT value FROM settings WHERE constant='UIF_MAX'"; $percrslt = db_exec($sql); $perc = pg_fetch_array($percrslt); $uifmax = $perc['value']; if ($emp_uif > $uifmax) { $emp_uif = sprint($uifmax); } if ($comp_uif > $uifmax) { $comp_uif = sprint($uifmax); } /* calculate sdl */ $tmp_sdl = $basic_sal + $overamt + $commission + $comp_provident + $all_travel + $all_beforeamount + $all_afteramount + $comp_medical + $bonus; if ($age > 65) { $tmp_sdl -= $comp_medical; } $comp_sdl = $tmp_sdl * ($myEmp["comp_sdl"] / 100); // calculate loan fringe benefit amount for this month if (!empty($myEmp["loanamt"]) && $myEmp["gotloan"] == "t" && $myEmp["loanamt"] > 0) { $loanpart = $loaninstall / $myEmp["loanamt"]; $fringe_loan = sprint($myEmp["loanfringe"] * $loanpart); } else { $fringe_loan = "0.00"; } $car_count = ($myEmp["fringe_car1"] > 0 ? 1 : 0) + ($myEmp["fringe_car2"] > 0 ? 1 : 0); // if car count is one and employee gets a travel allowance, that car's fringe benefit is calculated // as if the second car, and ALSO: contribitions/fuel/service amounts are not deducted from benefit $car1_travelall = $car_count == 1 && $all_travel > 0; if ($car1_travelall) { $PERC1 = 0.04; } else { $PERC1 = 0.018; } // calculate motor car fringe benefit if ($myEmp["fringe_car1"] > 0) { $fringe_car1 = $myEmp["fringe_car1"] * ($myEmp["fringe_car1"] >= $myEmp["fringe_car2"] ? $PERC1 : 0.04); $fringe_car1 /= $divisor; if ($myEmp["fringe_car1_contrib"] > 0 && !$car1_travelall) { $fringe_car1 -= $myEmp["fringe_car1_contrib"] / $divisor; } if ($myEmp["fringe_car1_fuel"] == 1 && !$car1_travelall) { $fringe_car1 -= 120 / $divisor; } if ($myEmp["fringe_car1_service"] == 1 && !$car1_travelall) { $fringe_car1 -= 85 / $divisor; } if ($fringe_car1 < 0) { $fringe_car1 = 0; } } else { $fringe_car1 = 0; } if ($myEmp["fringe_car2"] > 0) { $fringe_car2 = $myEmp["fringe_car2"] * ($myEmp["fringe_car2"] > $myEmp["fringe_car1"] ? $PERC1 : 0.04); $fringe_car2 /= $divisor; if ($myEmp["fringe_car2_contrib"] > 0 && !$car1_travelall) { $fringe_car2 -= $myEmp["fringe_car2_contrib"] / $divisor; } if ($myEmp["fringe_car2_fuel"] == 1 && !$car1_travelall) { $fringe_car2 -= 120 / $divisor; } if ($myEmp["fringe_car2_service"] == 1 && !$car1_travelall) { $fringe_car2 -= 85 / $divisor; } if ($fringe_car2 < 0) { $fringe_car2 = 0; } } else { $fringe_car2 = 0; } $fringe_car1 = sprint($fringe_car1); $fringe_car2 = sprint($fringe_car2); // calc medical 1/3rd fringe benefits $tot_medical = sprint($emp_medical + $comp_medical); if ($comp_medical > $tot_medical / 3 * 2) { $fringe_medical = sprint($comp_medical - $tot_medical / 3 * 2); } else { $fringe_medical = 0; } // calculate total fringe benefits $tot_fringe = $fringe_medical + $fringe_car1 + $fringe_car2 + $fringe_loan + $comp_other + $comp_ret + $de_beforeamount_emp + $de_afteramount_emp; if (isset($fringeid)) { foreach ($fringeid as $key => $value) { $fringebens[$key] = sprint($fringebens[$key]); $tot_fringe += $fringebens[$key]; } } if ($emp_pension > $basic_sal * 7.5 / 100) { $emp_pension = $basic_sal * 7.5 / 100; } $max_ret = $myEmp["basic_sal_annum"] * 7.5 / 100 > 1750 ? $myEmp["basic_sal_annum"] * 7.5 / 100 : 1750; // calculate total gross salary $grossal = $basic_sal + $commission + $overamt + $bonus + $annual + $all_beforeamount + $all_travel * 0.5 - $de_beforeamount; // deductions deducted before paye (non taxible) $grossal_2 = $grossal; $grossal_nodedall = $basic_sal + $overamt + $bonus + $annual + $all_travel; // pension/provident/ra: calculate deduction amounts, limiting them to maximum amount and only deducting // ONE of them for taxable income if ($comp_pension + $emp_pension > 0) { $tmp = ($grossal_2 + $tot_fringe) * $tyear; $maxallowed = $tmp * 0.075 > 1750 ? $tmp * 0.075 : 1750; if ($emp_pension > $maxallowed) { $tmp_ded = $maxallowed; } else { $tmp_ded = $emp_pension; } $grossal -= $tmp_ded; } if ($comp_ret + $emp_ret > 0) { $tmp = ($grossal_2 + $tot_fringe) * $tyear; // if their is a pension contributions the percentage is 0 if ($comp_pension + $emp_pension + $comp_provident + $emp_provident > 0) { $PERC = 0; } else { $PERC = 0.15; } $maxallowed = $tmp * $PERC > 1750 ? $tmp * $PERC : 1750; $maxallowed = $maxallowed > 3500 - $emp_pension * 12 ? $maxallowed : 3500 - $emp_pension * 12; if ($emp_ret + $comp_ret > $maxallowed / 12) { $tmp_ded = $maxallowed / 12; } else { $tmp_ded = $emp_ret + $comp_ret; } $grossal -= $tmp_ded; } // calculate total paye salary // just remove annual this month, and add annual divided by 12 // because paye is calculate for full twelve months and therefore // paye salary is average received each month $paye_salary = $grossal - $annual + $tot_fringe; // total fringe benefits; // a little hack, apparently the grossal is displayed wrong, in a strictly antisocial.co.za opinion, // i think the person who thinks that must suck $grossal += $comp_ret; if (isset($mpaye)) { $paye = $mpaye_amount; } else { // calculate paye (take age of 65+ threshold into account) if ($age >= 65 && $paye_salary * $tyear < 60000 || $paye_salary * $tyear < 35000) { $paye = "0.00"; } else { $paye = calculate_paye($paye_salary, $tyear, $age); if ($annual > 0) { $tmp_bonpaye = calculate_paye($paye_salary + $annual / 12, $tyear, $age); $paye += $tmp_bonpaye * $tyear - $paye * $tyear; } } } // fringe benefits $i = 0; $fringes = ""; $fringes_desc = ""; if (isset($fringebens)) { foreach ($fringebens as $key => $value) { if ($fringebens[$key] > 0) { $fringes_desc .= "\r\n\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t<td>{$fringename[$key]}</td>\r\n\t\t\t\t\t<td>" . CUR . " {$fringebens[$key]}</td>\r\n\t\t\t\t</tr>"; $fringes .= "\r\n\t\t\t\t\t<input type=hidden name='fringebens[]' value='{$fringebens[$key]}'>\r\n\t\t\t\t\t<input type=hidden name='fringeid[]' value='{$fringeid[$key]}'>\r\n\t\t\t\t\t<input type=hidden name='fringename[]' value='{$fringename[$key]}'>\r\n\t\t\t\t\t<input type=hidden name='fringeaccs[]' value='{$fringeaccs[$key]}'>"; } } } if (!empty($fringes_desc)) { $fringes_desc = "<tr><th colspan=2>Fringe Benefits</th></tr>{$fringes_desc}"; } $allow = ""; # Get allowances names and value from array if (isset($allowances)) { foreach ($allowances as $key => $value) { if ($allowances[$key] > 0) { $allow .= "\r\n\t\t\t\t\t<input type='hidden' size='10' name='allowname[]' value='{$allowname[$key]}'>\r\n\t\t\t\t\t<input type='hidden' size='10' name='allowid[]' value='{$allowid[$key]}'>\r\n\t\t\t\t\t<input type='hidden' size='10' name='allowances[]' value='{$allowances[$key]}'>\r\n\t\t\t\t\t<input type='hidden' size='10' name='allowtax[]' value='{$allowtax[$key]}'>\r\n\t\t\t\t\t<input type='hidden' name='allowaccs[]' value='{$allowaccs[$key]}'>"; } } } $deduct = ""; if (isset($deductions)) { foreach ($deductions as $key => $value) { if ($deductions[$key] > 0) { $deduct .= "\r\n\t\t\t\t\t<input type='hidden' size='10' name='deductname[]' value='{$deductname[$key]}'>\r\n\t\t\t\t\t<input type='hidden' size='10' name='deductid[]' value='{$deductid[$key]}'>\r\n\t\t\t\t\t<input type='hidden' size='10' name='deductions[]' value='{$deductions[$key]}'>\r\n\t\t\t\t\t<input type='hidden' size='10' name='employer_deductions[]' value='{$employer_deductions[$key]}'>\r\n\t\t\t\t\t<input type='hidden' size='10' name='deducttax[]' value='{$deducttax[$key]}'>\r\n\t\t\t\t\t<input type='hidden' name='dedaccs[]' value='{$dedaccs[$key]}'>\r\n\t\t\t\t\t<input type='hidden' name='bal_dedaccs[]' value='{$bal_dedaccs[$key]}'>"; } } } $nonretfunding = $basic_sal - $paye - $loaninstall - $de_afteramount + $de_afteramount_emp + $all_afteramount - $emp_pension - $emp_medical - $emp_uif - $emp_provident; /*$ret_max = (1800>($nonretfunding*0.15)) ? 1800 : ($nonretfunding*0.15); if ( $comp_ret + $emp_ret > $ret_max ) { $comp_ret = $ret_max - $emp_ret; if ( $comp_ret < 0 ) { $comp_ret = 0; $emp_ret = $ret_max; } }*/ $nettpay = $basic_sal + $overamt - $paye - $loaninstall - $de_beforeamount - $de_afteramount + $all_afteramount + $all_beforeamount - $emp_pension - $emp_medical - $emp_ret - $emp_uif - $emp_provident - $emp_other + $all_travel + $annual + $bonus; $nettpay = sprint($nettpay); if (isset($rbsa)) { $nettpay += array_sum($rbsa); $nettpay = sprint($nettpay); } db_conn("cubit"); # Get bank account name $sql = "SELECT * FROM bankacct WHERE bankid = '{$accid}' AND div = '" . USER_DIV . "'"; $bankRslt = db_exec($sql); $bank = pg_fetch_array($bankRslt); $basic_sal = sprint($basic_sal); $commission = sprint($commission); $overamt = sprint($overamt); $paye = sprint($paye); $nettpay = sprint($nettpay); if ($myEmp['paytype'] == "Cash") { $paydetails = " <tr class='" . bg_class() . "'><td colspan=2>Pay Salary Cash</td></tr>"; } else { $paydetails = " <tr class='" . bg_class() . "'><td>Bank Account</td><td>{$bank['accname']}</td></tr>"; } $bonus = sprint($bonus); $annual = sprint($annual); $comp_pension = sprint($comp_pension); $emp_medical = sprint($emp_medical); $comp_ret = sprint($comp_ret); $emp_ret = sprint($emp_ret); $loaninstall = sprint($loaninstall); $emp_pension = sprint($emp_pension); if (!isset($account)) { $account = 0; } else { db_conn('core'); $Sl = "SELECT * FROM accounts WHERE accid='{$account}'"; $Ri = db_exec($Sl); $ad = pg_fetch_array($Ri); $paydetails = " <tr class='" . bg_class() . "'><td>Ledger Account</td><td>{$ad['accname']}</td></tr>"; } db_conn('cubit'); //$rt="<table border=0 cellpadding='".TMPL_tblCellPadding."' cellspacing='".TMPL_tblCellSpacing."'> $Sl = "SELECT * FROM rbs ORDER BY name"; $Ri = db_exec($Sl) or errDie("Unable to get data."); $i = 0; $rt = ""; if (pg_num_rows($Ri) > 0) { while ($td = pg_fetch_array($Ri)) { if (!isset($rbsa[$td['id']]) || $rbsa[$td['id']] < 1) { continue; } $rbsa[$td['id']] = sprint($rbsa[$td['id']]); if ($i == 0) { $rt = "<tr><th colspan='2'>Reimbursements</th></tr>"; } $rt .= "\r\n\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t<td><input type='hidden' name='rbs[{$td['id']}]' value='{$td['id']}'>{$td['name']}</td>\r\n\t\t\t\t\t<td>" . CUR . " <input type='hidden' name='rbsa[{$td['id']}]' value='" . $rbsa[$td['id']] . "'>" . $rbsa[$td['id']] . "</td>\r\n\t\t\t\t</tr>"; $i++; } } else { //$rt.="<tr class='bg-odd'><td colspan=2>There are no reimbursements</td></tr>"; } if ($myEmp['payprd'] == "w") { $row = "\r\n\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t<td>Period</td>\r\n\t\t\t\t<td>{$week}</td>\r\n\t\t\t</tr>\r\n\t\t\t<input type='hidden' name='week' value='{$week}'>"; } else { if ($myEmp['payprd'] == "f") { $row = "\r\n\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t<td>Period</td>\r\n\t\t\t\t<td>{$week}</td>\r\n\t\t\t</tr>\r\n\t\t\t<input type='hidden' name='week' value='{$week}'>"; } else { $row = "<input type='hidden' name='week' value='0'>"; } } $grossal = sprint($grossal); $confirm = "\r\n <table " . TMPL_tblDflts . " width='300'>\r\n <form action='" . SELF . "' method='POST'>\r\n\t\t\t<input type='hidden' name='key' value='pack'>\r\n\t\t\t<input type='hidden' name='grossal' value='{$grossal}'>\r\n\t\t\t<input type='hidden' name='grossal_nodedall' value='{$grossal_nodedall}'>\r\n\t\t\t<input type='hidden' name='empnum' value='{$empnum}'>\r\n\t\t\t<input type='hidden' name='account' value='{$account}'>\r\n\t\t\t<input type='hidden' name='MON' value={$MON}>\r\n\t\t\t<input type='hidden' name='basic_sal' value='{$basic_sal}'>\r\n\t\t\t<input type='hidden' name='commission' value='{$commission}'>\r\n\t\t\t<input type='hidden' name='overamt' value='{$overamt}'>\r\n\t\t\t<input type='hidden' name='loaninstall' value='{$loaninstall}'>\r\n\t\t\t<input type='hidden' name='paye' value='{$paye}'>\r\n\t\t\t<input type='hidden' name='accid' value='{$accid}'>\r\n\t\t\t<input type='hidden' name='income' value='{$nettpay}'>\r\n\t\t\t<input type='hidden' name='bonus' value='{$bonus}'>\r\n\t\t\t<input type='hidden' name='all_travel' value='{$all_travel}'>\r\n\t\t\t<input type='hidden' name='comp_pension' value='{$comp_pension}'>\r\n\t\t\t<input type='hidden' name='emp_pension' value='{$emp_pension}'>\r\n\t\t\t<input type='hidden' name='comp_medical' value='{$comp_medical}'>\r\n\t\t\t<input type='hidden' name='emp_medical' value='{$emp_medical}'>\r\n\t\t\t<input type='hidden' name='comp_ret' value='{$comp_ret}'>\r\n\t\t\t<input type='hidden' name='emp_ret' value='{$emp_ret}'>\r\n\t\t\t<input type='hidden' name='comp_uif' value='{$comp_uif}'>\r\n\t\t\t<input type='hidden' name='emp_uif' value='{$emp_uif}'>\r\n\t\t\t<input type='hidden' name='comp_sdl' value='{$comp_sdl}'>\r\n\t\t\t<input type='hidden' name='comp_other' value='{$comp_other}'>\r\n\t\t\t<input type='hidden' name='emp_other' value='{$emp_other}'>\r\n\t\t\t<input type='hidden' name='comp_provident' value='{$comp_provident}'>\r\n\t\t\t<input type='hidden' name='emp_provident' value='{$emp_provident}'>\r\n\t\t\t<input type='hidden' name='paye_salary' value='{$paye_salary}'>\r\n\t\t\t<input type='hidden' name='day' value='{$day}'>\r\n\t\t\t<input type='hidden' name='mon' value='{$mon}'>\r\n\t\t\t<input type='hidden' name='year' value='{$year}'>\r\n\t\t\t<input type='hidden' name='novert' value='{$novert}'>\r\n\t\t\t<input type='hidden' name='hovert' value='{$hovert}'>\r\n\t\t\t<input type='hidden' name='annual' value='{$annual}'>\r\n\t\t\t<input type='hidden' name='week' value='{$week}'>\r\n\t\t\t<input type='hidden' name='fringe_medical' value='{$fringe_medical}'>\r\n\t\t\t<input type='hidden' name='fringe_tot' value='{$tot_fringe}'>\r\n\t\t\t<input type='hidden' name='fringe_car1' value='{$fringe_car1}'>\r\n\t\t\t<input type='hidden' name='fringe_car2' value='{$fringe_car2}'>\r\n\t\t\t<input type='hidden' name='fringe_loan' value='{$fringe_loan}'>\r\n\t\t\t<input type='hidden' name='process_comp_deductions' value='{$process_comp_deductions}'>\r\n\t\t\t{$fringes}\r\n\t\t\t{$allow}\r\n\t\t\t{$deduct}\r\n\t\t\t<tr><th colspan='2'>Salary Details</th></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Basic salary</td><td>" . CUR . " {$basic_sal}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Special Bonus/Additional Salary</td><td>" . CUR . " {$bonus}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Bonus(Annual Payments)</td><td>" . CUR . " {$annual}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Commission</td><td>" . CUR . " {$commission}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Travel Allowance</td><td>" . CUR . " {$all_travel}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Pension: Company Contribution</td><td>" . CUR . " {$comp_pension}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Pension: Employee Deduction</td><td>" . CUR . " {$emp_pension}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Provident Fund: Company Contribution</td><td>" . CUR . " {$comp_provident}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Provident Fund: Employee Deduction</td><td>" . CUR . " {$emp_provident}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>UIF: Company Contribution</td><td>" . CUR . " {$comp_uif}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>UIF: Employee Deduction</td><td>" . CUR . " {$emp_uif}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Retirement Annuity: Company Contribution</td><td>" . CUR . " {$comp_ret}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Retirement Annuity: Employee Deduction</td><td>" . CUR . " {$emp_ret}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Medical Aid: Company Contribution</td><td>" . CUR . " {$comp_medical}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Medical Aid: Employee Deduction</td><td>" . CUR . " {$emp_medical}</td></tr>\r\n\t\t\t<!--\r\n\t\t\t<tr class='" . bg_class() . "'><td>Other: Company Contribution</td><td>" . CUR . " {$comp_other}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Other: Employee Deduction</td><td>" . CUR . " {$emp_other}</td></tr>\r\n\t\t\t//-->\r\n\t\t\t<tr class='" . bg_class() . "'><td>Overtime</td><td>" . CUR . " {$overamt}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Medical Fringe Benefit</td><td>" . CUR . " {$fringe_medical}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Motorcar 1 Fringe Benefit</td><td>" . CUR . " {$fringe_car1}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Motorcar 1 Contribution for Use</td><td>" . CUR . " {$myEmp['fringe_car1_contrib']}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Motorcar 2 Fringe Benefit</td><td>" . CUR . " {$fringe_car2}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Motorcar 2 Contribution for Use</td><td>" . CUR . " {$myEmp['fringe_car2_contrib']}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Loan Interest Fringe Benefit</td><td>" . CUR . " {$fringe_loan}</td></tr>\r\n\t\t\t{$fringes_desc}\r\n\t\t\t{$all_before}\r\n\t\t\t{$de_before}\r\n\t\t\t<tr><th colspan='2'>Gross Salary</th></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Gross Salary</td><td>" . CUR . " {$grossal}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>SITE/PAYE</td><td>" . CUR . " {$paye}</td></tr>\r\n\t\t\t<tr><th colspan='2'>Loans</th></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Loan Instalment</td><td>" . CUR . " {$loaninstall}</td></tr>\r\n\t\t\t{$all_after}\r\n\t\t\t{$de_after}\r\n\t\t\t<tr><th colspan='2'>Nett Pay</th></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Nett Pay + Reimbursements</td><td>" . CUR . " {$nettpay}</td></tr>\r\n\t\t\t<tr class='" . bg_class() . "'><td>Amount Paid now</td><td><input type='text' size='10' name='paidamount' value='0'></td></tr>\r\n\t\t\t{$paydetails}\r\n\t\t\t<tr class='" . bg_class() . "'><td>Date</td><td>{$date}</td></tr>\r\n\t\t\t{$row}\r\n\t\t\t{$rt}\r\n\t\t\t<tr><td><br></td></tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><input type='submit' name='back' value='« Correction'></td>\r\n\t\t\t\t<td align='right'><input type='submit' value='Write »'></td>\r\n\t\t\t</tr>\r\n\t\t</form>\r\n\t\t</table>\r\n\t\t<p>\r\n\t\t<table border=0 cellpadding='2' cellspacing='1'>\r\n\t\t\t<tr>\r\n\t\t\t\t<th>Quick Links</th>\r\n\t\t\t</tr>\r\n\t\t\t<script>document.write(getQuicklinkSpecial());</script>\r\n\t\t\t<tr bgcolor='#88BBFF'>\r\n\t\t\t\t<td><a href='../main.php'>Main Menu</a></td>\r\n\t\t\t</tr>\r\n </table>"; return $confirm; }
function confirm($_POST) { $_POST = var_makesafe($_POST); extract($_POST); if (!isset($date_day)) { exit; } if (isset($btn_back)) { header("Location: ../admin-employee-view.php?" . array2get($_POST)); exit; } $ydate = "{$date_year}-{$date_month}-{$date_day}"; # CHECK IF THIS DATE IS IN THE BLOCKED RANGE $blocked_date_from = getCSetting("BLOCKED_FROM"); $blocked_date_to = getCSetting("BLOCKED_TO"); if (strtotime($ydate) >= strtotime($blocked_date_from) and strtotime($ydate) <= strtotime($blocked_date_to) and !user_is_admin(USER_ID)) { return "<li class='err'>Period Range Is Blocked. Only an administrator can process entries within this period.</li>"; } $week += 0; /* check for blocked accounts */ $salconacc = gethook("accnum", "salacc", "name", "salaries control"); $salconacc_orig = gethook("accnum", "salacc", "name", "salaries control original"); if ($salconacc != $salconacc_orig) { block_check($salconacc); } block_check(gethook("accnum", "salacc", "name", "Commission")); block_check(gethook("accnum", "salacc", "name", "Bonus")); block_check(gethook("accnum", "salacc", "name", "interestreceived")); block_check(gethook("accnum", "salacc", "name", "PAYE")); block_check(gethook("accnum", "salacc", "name", "UIF")); block_check(gethook("accnum", "salacc", "name", "uifbal")); block_check(gethook("accnum", "salacc", "name", "sdlbal")); block_check(gethook("accnum", "salacc", "name", "pension")); block_check(gethook("accnum", "salacc", "name", "medical")); block_check(gethook("accnum", "salacc", "name", "cash")); block_check(gethook("accnum", "salacc", "name", "retire")); block_check(gethook("accnum", "salacc", "name", "provident")); global $global_empnum; db_conn('cubit'); $Sl = "SELECT * FROM employees WHERE div='" . USER_DIV . "' ORDER BY sname,fnames"; $Ri = db_exec($Sl) or errDie("Unable to get data."); while ($data = pg_fetch_array($Ri)) { if (!isset($emps[$data['empnum']])) { continue; } $global_empnum = $id = $data["empnum"]; $empname = "{$data['fnames']} {$data['sname']} ({$data['enum']})"; // check for employee exp accs blocks block_check($data["expacc_provident"], $empname); block_check($data["expacc_ret"], $empname); block_check($data["expacc_pension"], $empname); block_check($data["expacc_uif"], $empname); block_check($data["expacc_medical"], $empname); block_check($data["expacc_other"], $empname); block_check($data["expacc_sdl"], $empname); block_check($data["expacc_salwages"], $empname); if ($data["expacc_loan"] > 0) { block_check($data["expacc_loan"], $empname); } if (isset($dedaccs[$id])) { foreach ($dedaccs[$id] as $checkacc) { block_check($checkacc, $empname); } } if (isset($allowaccs[$id])) { foreach ($allowaccs[$id] as $checkacc) { block_check($checkacc, $empname); } } } finish_block_check(); /* check if hire date before pay date for any of the employees*/ $sql = "SELECT * FROM employees WHERE div='" . USER_DIV . "' ORDER BY sname,fnames"; $rslt = db_exec($sql) or errDie("Unable to get data."); $hderrs = array(); while ($data = pg_fetch_array($rslt)) { if (!isset($emps[$data['empnum']])) { continue; } explodeDate($data["hiredate"], $hd_year, $hd_month, $hd_day); $MONempyear = getYearOfEmpMon($month); switch ($data["payprd"]) { case "m": $extra = false; break; case "d": $extra = $hd_year == $MONempyear && $hd_month == $month && $pday < $hd_day; break; case "w": case "f": $extra = $hd_year == $MONempyear && $hd_month == $month && $weekends[$week] < $hd_day; break; } if ($hd_year > $MONempyear || $hd_year == $MONempyear && $hd_month > $month || $extra) { $hderrs[] = " - {$data['sname']}, {$data['fnames']}<br />"; } } if (count($hderrs) > 0) { $hderrs = "\n\t\t\t<li class='err'>\n\t\t\t\tThe following employees were not employed in the period requested.<br />\n\t\t\t\t" . implode("", $hderrs) . "\n\t\t\t</li>"; return enter($_POST, $hderrs); } global $eMONPRD; $out = "\n\t\t<form action='" . SELF . "' method='POST'>\n\t\t\t<input type='hidden' name='key' value='write'>\n\t\t\t<input type='hidden' name='month' value='{$month}'>\n\t\t\t<input type='hidden' name='week' value='{$week}'>\n\t\t\t<input type='hidden' name='printslip' value='{$printslip}' />\n\t\t\t" . (isset($pday) ? "<input type='hidden' name='pday' value='{$pday}' />" : "") . "\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<td colspan='4' valign='top'>\n\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td colspan='2'><h3>Processing Batch Salaries</h3></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<th>Salary Period:</th>\n\t\t\t\t\t\t\t<td>" . getMonthName($month) . " " . getYearOfEmpMon($month) . "</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t<th>Processing Date:</th>\n\t\t\t\t\t\t\t<td nowrap>\n\t\t\t\t\t\t\t\t<input type='hidden' name='date_day' value='{$date_day}'> {$date_day} -\n\t\t\t\t\t\t\t\t<input type='hidden' name='date_month' value='{$date_month}'> {$date_month} -\n\t\t\t\t\t\t\t\t<input type='hidden' name='date_year' value='{$date_year}'> {$date_year}\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td colspan='3'><input type='submit' value='« Correction'></td>\n\t\t\t\t<td colspan='5'><input type='button' value='Pay Selected Employees In Full After Processing' onClick='emp_payall();'></td>\n\t\t\t\t<td colspan='2' align=right><input type='submit' value='Process Salaries »' name='button'></td>\n\t\t\t\t<td colspan='10' align=right><input type='submit' value='Process Salaries »' name='button'></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<th>Nr.</th>\n\t\t\t\t<th>Name</th>\n\t\t\t\t<th>Remuneration</th>\n\t\t\t\t<th>Amount Paid After Processing</th>\n\t\t\t\t<th>Annual Bonus</th>\n\t\t\t\t<!--\n\t\t\t\t<th>Special Bonus/Additional Salary</th>\n\t\t\t\t<th>Annual Bonus</th>\n\t\t\t\t-->\n\t\t\t\t<th>Commission</th>\n\t\t\t\t<th>Travel Allowance</th>\n\t\t\t\t<th>Loan Repayment</th>\n\t\t\t\t<th>Pension: Company Contribution</th>\n\t\t\t\t<th>Pension: Employee Deduction</th>\n\t\t\t\t<th>Provident: Company Contribution</th>\n\t\t\t\t<th>Provident: Employee Deduction</th>\n\t\t\t\t<th>UIF: Company Contribution</th>\n\t\t\t\t<th>UIF: Employee Deduction</th>\n\t\t\t\t<th>Retirement Annuity: Company Contribution</th>\n\t\t\t\t<th>Retirement Annuity: Employee Deduction</th>\n\t\t\t\t<th>Medical Contribution: Company</th>\n\t\t\t\t<th>Medical Contribution: Employee</th>\n\t\t\t\t<!--\n\t\t\t\t<th>Other: Company Contribution</th>\n\t\t\t\t<th>Other: Employee Deduction</th>\n\t\t\t\t//-->\n\t\t\t\t<th>Normal Overtime</th>\n\t\t\t\t<th>Public Holiday Overtime</th>\n\t\t\t\t<th>Method of Payment</th>\n\t\t\t\t<th>Medical Fringe Ben.</th>\n\t\t\t\t<th>Car 1 Fringe</th>\n\t\t\t\t<th>Car 2 Fringe</th>\n\t\t\t\t<th>Loan Fringe</th>\n\t\t\t\t<th>Fringe Ben.</th>\n\t\t \t\t<th>Allowances</th>\n\t\t \t\t<th>Subsistence</th>\n\t\t \t\t<th>Deductions</th>\n\t\t \t\t<th>Reimbursements</th>\n\t\t \t\t<th>Gross Salary</th>\n\t\t\t\t<th>PAYE</th>\n\t\t\t\t<th>Nett Pay + Reimbursements</th>\n\t\t\t</tr>"; db_conn('cubit'); $i = 0; $Sl = "SELECT * FROM employees WHERE div='" . USER_DIV . "' ORDER BY sname,fnames"; $Ri = db_exec($Sl) or errDie("Unable to get data."); $errout = ""; $payall_js = ""; while ($data = pg_fetch_array($Ri)) { if (!isset($emps[$data['empnum']])) { continue; } $id = $data['empnum']; $basic_sal_save[$id] = $basic_sal[$id]; $send = ""; if (isset($b)) { $send = "<input type='hidden' name='b' value=''>"; if ($data["payprd"] != "f") { continue; } } elseif (isset($w)) { $send = "<input type='hidden' name='w' value=''>"; if ($data['payprd'] != "w") { continue; } } elseif (isset($m)) { $send = "<input type='hidden' name='m' value=''>"; if ($data['payprd'] != "m") { continue; } } elseif (isset($d)) { $send = "<input type='hidden' name='d' value=''>"; if ($data['payprd'] != "d") { continue; } } else { continue; } $yy = date("Y"); $mm = $month; $mm += 0; if (!isset($myEmp)) { $myEmp = array("payprd" => ""); } db_conn("cubit"); if ($data["payprd"] == "d") { $Sl = "SELECT * FROM salpaid WHERE empnum='{$data['empnum']}' AND month='{$mm}' AND week='{$pday}' AND cyear='" . EMP_YEAR . "'"; $Rq = db_exec($Sl); $paid = pg_num_rows($Rq); $Sl = "SELECT * FROM salr WHERE empnum='{$data['empnum']}' AND month='{$mm}' AND week='{$pday}' AND cyear='" . EMP_YEAR . "'"; $Rq = db_exec($Sl); $upaid = pg_num_rows($Rq); $upaid += 0; $paid -= $upaid; } else { if ($myEmp['payprd'] != "m") { $Sl = "SELECT * FROM salpaid WHERE empnum='{$data['empnum']}' AND month='{$mm}' AND week='{$week}' AND cyear='" . EMP_YEAR . "'"; $Rq = db_exec($Sl); $paid = pg_num_rows($Rq); $Sl = "SELECT * FROM salr WHERE empnum='{$data['empnum']}' AND month='{$mm}' AND week='{$week}' AND cyear='" . EMP_YEAR . "'"; $Rq = db_exec($Sl); $upaid = pg_num_rows($Rq); $upaid += 0; $paid -= $upaid; } } if (isset($paid) && $paid > 0) { $out .= "\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan='1000'>\n\t\t\t\t\t\t<li class='err'>You have already processed a salary for this period, for {$data['sname']}, {$data['fnames']}</li>\n\t\t\t\t\t\t<input type='hidden' name='emps[{$id}]' value='{$id}'>\n\t\t\t\t\t\t<input type='hidden' name='emps_already[{$id}]' value='{$id}'>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>"; continue; } if ($divisor[$id] != 1 && round($divisor[$id], 2) != round(52 / 12, 2) && round($divisor[$id], 2) != round(26 / 12, 2)) { /*$out .= "<tr><td colspan=1000> <li class=err>Error with pay period (DIVIS), for $data[sname], $data[fnames]</li> <input type=hidden name='emps[$id]' value='$id'> <input type=hidden name='emps_already[$id]' value='$id'> </td></tr>"; continue;*/ } if (isset($basic_sal[$id])) { } else { $annual[$id] = ""; $novert[$id] = ""; $hovert[$id] = ""; } if ($data['paytype'] == "Cash") { $paydetails = "Cash\n\t\t\t\t<input type='hidden' name='accid[{$id}]' value='0'>"; } elseif ($data['paytype'] == "Ledger Account") { db_conn('core'); $account[$id] += 0; $Sl = "SELECT accid,accname FROM accounts WHERE accid='{$account[$id]}'"; $Rl = db_exec($Sl); $accounts = "<input type='hidden' name='account[{$id}]' value='{$account[$id]}'>"; $ad = pg_fetch_array($Rl); $accounts .= "{$ad['accname']}"; $paydetails = "{$accounts}\n\t\t\t\t<input type='hidden' name='accid[{$id}]' value='0'>"; } else { $accid[$id] += 0; db_conn('cubit'); $Sl = "SELECT * FROM bankacct WHERE bankid='{$accid[$id]}'"; $Ry = db_exec($Sl) or errDie("Unable to get bank account."); if (pg_numrows($Ry) < 1) { return "<li class='err'> There are no bank accounts found in Cubit.\n\t\t\t\t<p><input type='button' onClick='JavaScript:history.back();' value='« Correct Selection'>"; } $banks = "<input type='hidden' name='accid[{$id}]' value='{$accid[$id]}'>"; $acc = pg_fetch_array($Ry); $banks .= "{$acc['accname']} ({$acc['acctype']})"; $paydetails = "{$banks}"; } // fringe benefits $fringe_tot[$id] = 0; $c = 0; $fringes = "<table " . TMPL_tblDflts . ">"; if (isset($fringeid[$id]) && is_array($fringeid[$id])) { foreach ($fringeid[$id] as $i => $fid) { $fringes .= "\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>" . $fringename[$id][$i] . "</td>\n\t\t\t\t\t\t<td>" . CUR . "</td>\n\t\t\t\t\t\t<td>" . $fringebens[$id][$i] . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<input type='hidden' name='fringeid[{$id}][{$i}]' value='" . $fringeid[$id][$i] . "'>\n\t\t\t\t\t<input type='hidden' name='fringebens[{$id}][{$i}]' value='" . $fringebens[$id][$i] . "'>\n\t\t\t\t\t<input type='hidden' name='fringename[{$id}][{$i}]' value='" . $fringename[$id][$i] . "'>\n\t\t\t\t\t<input type='hidden' name='fringeaccs[{$id}][{$i}]' value='" . $fringeaccs[$id][$i] . "'>"; $fringe_tot[$id] += $fringebens[$id][$i]; } } $fringes .= "</table>"; if ($fringe_tot[$id] == 0) { $fringes = ""; } $fringes .= "<input type='hidden' name='fringe_tot[{$id}]' value='{$fringe_tot[$id]}'>"; /* allowances */ $all_beforeamount[$id] = 0; $all_afteramount[$id] = 0; $Allowances = ""; /* db_conn('cubit'); $sql = "SELECT * FROM allowances WHERE div = '".USER_DIV."' ORDER BY allowance"; $allowRslt = db_exec ($sql) or errDie ("Unable to select allowances from database."); if (pg_numrows ($allowRslt) < 1) { $Allowances = "None"; } else { $Allowances = "<table border=0 cellpadding='".TMPL_tblCellPadding."' cellspacing='".TMPL_tblCellSpacing."'>"; while ($myAllow = pg_fetch_array ($allowRslt)) { # check if employee has allowance $sql = "SELECT * FROM empallow WHERE allowid='$myAllow[id]' AND empnum='$data[empnum]' AND div = '".USER_DIV."'"; $empAllowRslt = db_exec ($sql) or errDie ("Unable to select allowance info from database."); if (pg_numrows ($empAllowRslt) > 0) { $Allowances .= "<tr><td>$myAllow[allowance]</td>"; $dataAllow = pg_fetch_array ($empAllowRslt); $dataAllow['amount']=sprint($dataAllow['amount']); $allowances[$id][$i]=sprint($allowances[$id][$i]); $Allowances .= "<td>R</td><td align=right> <input type=hidden size=10 name='allowid[$id][]' value='$dataAllow[allowid]'> <input type=hidden size=30 name='allowname[$id][]' value='$myAllow[allowance]'> <input type=hidden size=10 name='allowtax[$id][]' value='$myAllow[add]'> <input type=hidden name='allowaccs[$id][]' value='".$allowaccs[$id][$i]."'> <input type=hidden name='allowances[$id][]' value='".$allowances[$id][$i]."'>".$allowances[$id][$i]."</td></tr>\n"; if($myAllow['add']=="Yes") { $all_beforeamount[$id] += $allowances[$id][$i]; } else { $all_afteramount[$id] += $allowances[$id][$i]; } } $i++; } $Allowances .= "</table>"; }*/ if (isset($allowid[$id]) && is_array($allowid[$id]) && count($allowid[$id]) > 0) { $Allowances = "<table border='0' cellpadding='" . TMPL_tblCellPadding . "' cellspacing='" . TMPL_tblCellSpacing . "'>"; foreach ($allowid[$id] as $k => $dummy) { $Allowances .= "\n\t\t\t\t\t\t<input type='hidden' size='10' name='allowid[{$id}][{$k}]' value='" . $allowid[$id][$k] . "'>\n\t\t\t\t\t\t<input type='hidden' size='30' name='allowname[{$id}][{$k}]' value='" . $allowname[$id][$k] . "'>\n\t\t\t\t\t\t<input type='hidden' size='10' name='allowtax[{$id}][{$k}]' value='" . $allowtax[$id][$k] . "'>\n\t\t\t\t\t\t<input type='hidden' name='allowaccs[{$id}][{$k}]' value='" . $allowaccs[$id][$k] . "'>\n\t\t\t\t\t\t<input type='hidden' name='allowances[{$id}][{$k}]' value='" . $allowances[$id][$k] . "'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>" . $allowname[$id][$k] . "</td>\n\t\t\t\t\t\t\t<td>" . CUR . "</td>\n\t\t\t\t\t\t\t<td align='right'>" . $allowances[$id][$k] . "</td>\n\t\t\t\t\t\t</tr>"; if ($allowtax[$id][$k] == "Yes") { $all_beforeamount[$id] += $allowances[$id][$k]; } else { $all_afteramount[$id] += $allowances[$id][$k]; } } $Allowances .= "</table>"; } else { $Allowances = ""; } $Allowances .= "\n\t\t\t<input type='hidden' name='all_beforeamount[{$id}]' value='{$all_beforeamount[$id]}'>\n\t\t\t<input type='hidden' name='all_afteramount[{$id}]' value='{$all_afteramount[$id]}'>"; $subsistence = ""; $subs_taxable[$id] = 0; $subs_total[$id] = 0; $i = 0; if (isset($subsname[$id])) { if (isset($subs_exch) && $subs_exch == 0) { $subs_exch = 1; } foreach ($subsname[$id] as $sid => $sn) { if ($subsrep[$id][$sid] == "yes") { //2012 $nontax = $subsdays[$id][$sid] * ($subsmeal[$id][$sid] == "yes" ? 303 : 93); $subs_total[$id] += $subsamt[$id][$sid]; } else { //TODO //2012 // outside republic, 196 dollars $nontax = $subsdays[$id][$sid] * (215 / $subs_exch); $subs_total[$id] += $subsamt[$id][$sid] * $subs_exch; } $tmp = $subsamt[$id][$sid] - $nontax; if ($tmp > 0) { $subs_taxable[$id] += $tmp / $divisor[$id]; } $subsistence .= "\n\t\t\t\t\t<input type='hidden' name='subsname[{$id}][{$sid}]' value='" . $subsname[$id][$sid] . "'>\n\t\t\t\t\t<input type='hidden' name='subsacc[{$id}][{$sid}]' value='" . $subsacc[$id][$sid] . "'>\n\t\t\t\t\t<input type='hidden' name='subsamt[{$id}][{$sid}]' value='" . $subsamt[$id][$sid] . "'>\n\t\t\t\t\t<input type='hidden' name='subsrep[{$id}][{$sid}]' value='" . $subsrep[$id][$sid] . "'>\n\t\t\t\t\t<input type='hidden' name='subsmeal[{$id}][{$sid}]' value='" . $subsmeal[$id][$sid] . "'>\n\t\t\t\t\t<input type='hidden' name='subsdays[{$id}][{$sid}]' value='" . $subsdays[$id][$sid] . "'>\n\t\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t\t<td nowrap>" . $subsname[$id][$sid] . "</td>\n\t\t\t\t\t\t<td nowrap>" . CUR . " " . $subsamt[$id][$sid] . "</td>\n\t\t\t\t\t\t<td>" . $subsdays[$id][$sid] . "</td>\n\t\t\t\t\t</tr>"; } if (!empty($subsistence)) { $subsistence = "\n\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<th>Name</th>\n\t\t\t\t\t\t\t<th>Amount</th>\n\t\t\t\t\t\t\t<th>Days</th>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t{$subsistence}\n\t\t\t\t\t</table>"; } } # Deductions $Deductions = ""; $de_beforeamount[$id] = 0; $de_afteramount[$id] = 0; $de_beforeamount_emp[$id] = 0; $de_afteramount_emp[$id] = 0; /* db_conn('cubit'); $sql = "SELECT * FROM salded WHERE div = '".USER_DIV."' ORDER BY deduction"; $deductRslt = db_exec ($sql) or errDie ("Unable to select deductions from database."); if (pg_numrows ($deductRslt) < 1) { $Deductions = "None"; } else { $Deductions = "<table border=0 cellpadding='".TMPL_tblCellPadding."' cellspacing='".TMPL_tblCellSpacing."'>"; while ($myDeduct = pg_fetch_array ($deductRslt)) { # check if employee has deduction $sql = "SELECT * FROM empdeduct WHERE dedid='$myDeduct[id]' AND empnum='$data[empnum]' AND div = '".USER_DIV."'"; $empDeductRslt = db_exec ($sql) or errDie ("Unable to select Deduction info from database."); if (pg_numrows ($empDeductRslt) > 0) { $Deductions .= "<tr><td>$myDeduct[deduction]</td>"; $dataDeduct = pg_fetch_array ($empDeductRslt); // if($dataDeduct['type']=="Amount") { // $dataDeduct['amount']=sprint($dataDeduct['amount']); // $deductions[$id][$i]=sprint($deductions[$id][$i]); // } else { // $deductions[$id][$i]=sprint($data['basic_sal']*$deductions[$id][$i]/100); // //$dataDeduct['amount']=sprint($data['basic_sal']*$dataDeduct['amount']/100); // } $Deductions .= " <td>".CUR."</td><td align=right> <input type=hidden size=10 name='deductid[$id][]' value='$myDeduct[id]'> <input type=hidden size=30 name='deductname[$id][]' value='$myDeduct[deduction]'> <input type=hidden name='deductions[$id][]' value='".$deductions[$id][$i]."'>".$deductions[$id][$i]." <input type=hidden name='dedaccs[$id][]' value='".$dedaccs[$id][$i]."'> </td> <!-- <td>".CUR."</td> //--> <td> <input type=hidden name='employer_deductions[$id][]' value='".$employer_deductions[$id][$i]."'> <input type=hidden size=10 name='deducttax[$id][]' value='$myDeduct[add]'></td></tr>\n"; if($myDeduct['add']=="Yes") { $de_beforeamount[$id] += $deductions[$id][$i]+$employer_deductions[$id][$i]; //$de_beforeamount_emp[$id] += $employer_deductions[$id][$i]; } else { $de_afteramount[$id] += $deductions[$id][$i]+$employer_deductions[$id][$i]; //$de_afteramount_emp[$id] += $employer_deductions[$id][$i]; } $i++; } } $Deductions .= "</table>"; }*/ if (isset($deductid[$id]) && is_array($deductid[$id]) && count($deductid[$id]) > 0) { $Deductions = "<table " . TMPL_tblDflts . ">"; foreach ($deductid[$id] as $k => $dummy) { $Deductions .= "\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<input type='hidden' name='deductid[{$id}][{$k}]' value='" . $deductid[$id][$k] . "'>\n\t\t\t\t\t\t<input type='hidden' name='deductname[{$id}][{$k}]' value='" . $deductname[$id][$k] . "'>\n\t\t\t\t\t\t<input type='hidden' name='deductions[{$id}][{$k}]' value='" . $deductions[$id][$k] . "'>\n\t\t\t\t\t\t<input type='hidden' name='dedaccs[{$id}][{$k}]' value='" . $dedaccs[$id][$k] . "'>\n\t\t\t\t\t\t<input type='hidden' name='employer_deductions[{$id}][{$k}]' value='" . $employer_deductions[$id][$k] . "'>\n\t\t\t\t\t\t<input type='hidden' name='deducttax[{$id}][{$k}]' value='" . $deducttax[$id][$k] . "'>\n\t\t\t\t\t\t<td>" . $deductname[$id][$k] . "</td>\n\t\t\t\t\t\t<td>" . CUR . "</td>\n\t\t\t\t\t\t<td>" . $deductions[$id][$k] . "</td>\n\t\t\t\t\t</tr>"; if ($deducttax[$id][$k] == "Yes") { $de_beforeamount[$id] += $deductions[$id][$k] + $employer_deductions[$id][$k]; //$de_beforeamount_emp[$id] += $employer_deductions[$id][$i]; } else { $de_afteramount[$id] += $deductions[$id][$k] + $employer_deductions[$id][$k]; //$de_afteramount_emp[$id] += $employer_deductions[$id][$i]; } } $Deductions .= "</table>"; } else { $Deductions = "None"; } $Deductions .= "\n\t\t\t<input type='hidden' name='de_beforeamount[{$id}]' value='{$de_beforeamount[$id]}'>\n\t\t\t<input type='hidden' name='de_beforeamount_emp[{$id}]' value='{$de_beforeamount_emp[$id]}'>\n\t\t\t<input type='hidden' name='de_afteramount[{$id}]' value='{$de_afteramount[$id]}'>\n\t\t\t<input type='hidden' name='de_afteramount_emp[{$id}]' value='{$de_afteramount[$id]}'>"; db_conn('cubit'); $Sl = "SELECT * FROM rbs ORDER BY name"; $Rl = db_exec($Sl) or errDie("Unable to get data."); $i = 0; if (pg_num_rows($Rl) > 0) { $rt = "<table " . TMPL_tblDflts . " width='100%'>"; while ($td = pg_fetch_array($Rl)) { if (!isset($rbsa[$id][$td['id']])) { $rbsa[$id][$td['id']] = ""; } $rbsa[$id][$td['id']] = sprint($rbsa[$id][$td['id']]); $rt .= "\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><input type='hidden' name='rbs[{$id}][{$td['id']}]' value='{$td['id']}'>{$td['name']}</td>\n\t\t\t\t\t\t<td>" . CUR . "</td>\n\t\t\t\t\t\t<td align='right'><input type='hidden' name='rbsa[{$id}][{$td['id']}]' value='" . $rbsa[$id][$td['id']] . "'>" . $rbsa[$id][$td['id']] . "</td>\n\t\t\t\t\t</tr>"; $i++; } $rt .= "</table>"; } else { $rt = "None"; } // calculate age of employee (if intl., ie has passport num only), act asif under 65 if (!empty($data["idnum"])) { // calculate age of employee $bd_year = 1900 + substr($data["idnum"], 0, 2); $bd_month = substr($data["idnum"], 2, 2); $bd_day = substr($data["idnum"], 4, 2); /* get the current financial year */ db_conn("core"); $sql = "SELECT yrname FROM active"; $rslt = db_exec($sql) or errDie("Error fetching financial year."); if (pg_num_rows($rslt) < 1) { return "Please run quick setup first."; } $fin_year = substr(pg_fetch_result($rslt, 0, 0), 1); $sql = "SELECT EXTRACT('year' FROM AGE('{$fin_year}-02-28', '{$bd_year}-{$bd_month}-{$bd_day}'))"; $rslt = db_exec($sql) or errDie("Error calculating age at financial year end."); $age[$id] = pg_fetch_result($rslt, 0, 0); } else { $age[$id] = 1; } # The Paye $tyear = 12; switch ($data["payprd"]) { case 'm': $tyear = 12; break; case 'w': $tyear = 52; break; case 'f': $tyear = 26; break; case 'd': $tyear = 5 * 52; break; } if ($data["saltyp"] != "h") { if ($myEmp["saltyp"] == "w") { $perhr = sprint($basic_sal / $wh_actual); } else { $perhr = sprint($basic_sal[$id] * $tyear / ($data['hpweek'] * 52)); } } else { $perhr = $basic_sal[$id]; } $overamt[$id] = $novert[$id] * ($perhr * $data['novert']); $overamt[$id] += sprint($hovert[$id] * ($perhr * $data['hovert'])); # Multiply basic_sal add overtime if (isset($multi[$id])) { $basic_sal[$id] = sprint($basic_sal[$id] * $multi[$id]); //$tyear = ($tyear/$multi[$id]); } // calculate loan fringe benefit amount for this month if (!empty($data["loanamt"]) && $data["gotloan"] == "t" && $data["loanamt"] > 0) { $loanpart = $loaninstall[$id] / $data["loanamt"]; $fringe_loan[$id] = sprint($data["loanfringe"] * $loanpart); } else { $fringe_loan[$id] = "0.00"; } $fringe_tot[$id] += $fringe_loan[$id]; $fringe_tot[$id] += $comp_other[$id]; $fringe_tot[$id] += $comp_ret[$id]; //2012 // calculate motor car fringe benefit if ($data["fringe_car1"] > 0) { $deduct_perc = 0; // Employee has travel allowance? if ($data["all_travel"] > 0) { $deduct_perc = 0.0325; } else { $deduct_perc = 0.035; } $fringe_car1 = $data["fringe_car1"] * $deduct_perc; } // Second fringe car will always be 3.25% if ($data["fringe_car2"] > 0) { $fringe_car2 = $data["fringe_car2"] * 0.0325; } vsprint($fringe_car1[$id]); vsprint($fringe_car2[$id]); $fringe_tot[$id] += $fringe_car1[$id] + $fringe_car2[$id]; $fringe_tot[$id] += $de_afteramount_emp[$id] + $de_beforeamount_emp[$id]; $fringe_tot[$id] += $subs_taxable[$id]; // calc medical fringe benefits if ($comp_medical[$id] > 0) { // calculate dependants after first one $tmp_deps = $data["emp_meddeps"] - 2; if ($tmp_deps < 0) { $tmp_deps = 0; } //2009 // calculate paragraph 12A amount //first 2 dependants are 530 each (1060) rest is 320 each. //$p12A_amt = ($data["emp_meddeps"] > 1 ? 1060 : 530) + ($tmp_deps * 320); //2010 // calculate paragraph 12A amount //first 2 dependants are 625 each (1250) rest is 380 each. //$p12A_amt = ($data["emp_meddeps"] > 1 ? 1250 : 625) + ($tmp_deps * 380); //2011 // calculate paragraph 12A amount //first 2 dependants are 670 each (1340) rest is 410 each. //$p12A_amt = ($myEmp["emp_meddeps"] > 1 ? 1340 : 820) + ($tmp_deps * 410); //2012 // calculate paragraph 12A amount //first 2 dependants are 230 each (460) rest is 154 each. $p12A_amt = ($myEmp["emp_meddeps"] > 1 ? 460 : 230) + $tmp_deps * 154; // calculate taxable fringe benefit amount $fringe_medical[$id] = sprint($comp_medical[$id] - $p12A_amt / $divisor[$id]); if ($fringe_medical[$id] < 0) { $fringe_medical[$id] = 0; } $fringe_tot[$id] += $fringe_medical[$id]; } else { $fringe_medical[$id] = 0; } if ($emp_pension[$id] > $basic_sal[$id] * 7.5 / 100) { $emp_mpension[$id] = $basic_sal[$id] * 7.5 / 100; } else { $emp_mpension[$id] = $emp_pension[$id]; } // calculate total gross salary $grossal[$id] = $basic_sal[$id] + $commission[$id] + $abonus[$id] + $overamt[$id] + $bonus[$id] + $annual[$id] + $all_beforeamount[$id] + $all_travel[$id] * 0.8 - $de_beforeamount[$id]; // deductions deducted before paye (non taxible) $grossal_2 = $grossal[$id]; $taxed_all[$id] = $all_afteramount[$id] + $all_travel[$id] * 0.8; $grossal_nodedall[$id] = $basic_sal[$id] + $overamt[$id] + $bonus[$id] + $annual[$id] + $all_travel[$id]; #UIF HAX $uif_grossal[$id] = $grossal[$id]; // pension/provident/ra: calculate deduction amounts, limiting them to maximum amount and only deducting // ONE of them for taxable income if ($comp_pension[$id] + $emp_pension[$id] > 0) { $tmp = ($grossal_2 + $fringe_tot[$id]) * $tyear; $maxallowed = $tmp * 0.075 > 1750 ? $tmp * 0.075 : 1750; if ($emp_mpension[$id] > $maxallowed) { $tmp_ded = $maxallowed; } else { $tmp_ded = $emp_mpension[$id]; } $grossal[$id] -= $tmp_ded; } if ($comp_ret[$id] + $emp_ret[$id] > 0) { $tmp = ($grossal_2 + $fringe_tot[$id]) * $tyear; // if their is a pension contributions the percentage is 0 if ($comp_pension[$id] + $emp_pension[$id] + $comp_provident[$id] + $emp_provident[$id] > 0) { $PERC = 0; } else { $PERC = 0.15; } $maxallowed = $tmp * $PERC > 1750 ? $tmp * $PERC : 1750; $maxallowed = $maxallowed > 3500 - $emp_pension[$id] * $divisor[$id] * 12 ? $maxallowed : 3500 - $emp_pension[$id] * 12; if (($emp_ret[$id] + $comp_ret[$id]) * $divisor[$id] > $maxallowed / 12) { $tmp_ded = $maxallowed / 12 / $divisor[$id]; } else { $tmp_ded = $emp_ret[$id] + $comp_ret[$id]; } $grossal[$id] -= $tmp_ded; } // calculate total paye salary // just remove annual this month, and add annual divided by 12 // because paye is calculate for full twelve months and therefore // paye salary is average received each month $paye_salary[$id] = $grossal[$id] - $annual[$id] + $fringe_tot[$id]; // total fringe benefits; #UIF HAX $uif_paye_salary[$id] = $uif_grossal[$id] - $annual[$id] + $fringe_tot[$id]; /* calculate uif */ $tmp_remun = $paye_salary[$id] + $annual[$id] - $commission[$id] - $abonus[$id]; #UIF HAX $uif_tmp_remun = $uif_paye_salary[$id] + $annual[$id] - $commission[$id] - $abonus[$id]; // $comp_uif[$id] = sprint($tmp_remun * ($data["comp_uif"] / 100)); // $emp_uif[$id] = sprint($tmp_remun * ($data["emp_uif"] / 100)); #UIF HAX $comp_uif[$id] = sprint($uif_tmp_remun * ($data["comp_uif"] / 100)); $emp_uif[$id] = sprint($uif_tmp_remun * ($data["emp_uif"] / 100)); $uifmax = getCSetting("UIF_MAX"); if ($emp_uif[$id] > $uifmax) { $emp_uif[$id] = sprint($uifmax); } if ($comp_uif[$id] > $uifmax) { $comp_uif[$id] = sprint($uifmax); } /* calculate sdl */ $tmp_remun = $paye_salary[$id] + $annual[$id]; if (getCSetting("SDLPAYABLE") == "y") { $tmp_sdl = $tmp_remun; if ($age > 65) { $tmp_sdl -= $comp_medical[$id]; } $comp_sdl[$id] = $tmp_sdl * ($data["comp_sdl"] / 100); } else { $comp_sdl[$id] = 0; } // a little hack, apparently the grossal is displayed wrong, in a strictly antisocial.co.za opinion, // i think the person who thinks that must suck $grossal[$id] += $comp_ret[$id]; // add rest of travel allowance $grossal[$id] += $all_travel[$id] * 0.2; if (isset($mpaye[$id])) { $paye[$id] = $mpaye_amount[$id]; } else { // calculate paye (take age of 65+ threshold into account) //2008 // if ( ($age[$id] >= 65 && ($paye_salary[$id] * $tyear) < 69000) || ($paye_salary[$id] * $tyear) < 43000 ) { //2009 // if ( ($age[$id] >= 65 && ($paye_salary[$id] * $tyear) < 74000) || ($paye_salary[$id] * $tyear) < 46000 ) { //2010 // if ( ($age[$id] >= 65 && ($paye_salary[$id] * $tyear) < 84200) || ($paye_salary[$id] * $tyear) < 54200 ) { //2011 //if ( ($age[$id] >= 65 && ($paye_salary[$id] * $tyear) < 88528) || ($paye_salary[$id] * $tyear) < 57000 ) { //2012 if ($age[$id] >= 65 && $age[$id] < 75 && $paye_salary[$id] * $tyear < 99056 || $age[$id] >= 75 && $paye_salary[$id] * $tyear < 110889 || $paye_salary[$id] * $tyear < 63556) { $paye[$id] = "0.00"; } else { if ($data["payprd"] == "w" || $data["payprd"] == "f") { $paye_prd = "{$month}:{$week}"; } else { if ($data["payprd"] == "d") { $paye_prd = "{$month}:{$pday}"; } else { $paye_prd = "{$month}"; } } $paye[$id] = calculate_paye($data, $paye_prd, $paye_salary[$id], $tyear, $age[$id]); if ($annual[$id] > 0) { $tmp_bonpaye = calculate_paye($data, $paye_prd, $paye_salary[$id] + $annual[$id] / 12, $tyear, $age[$id]); $paye[$id] += $tmp_bonpaye * $tyear - $paye[$id] * $tyear; } } } $nonretfunding = $grossal[$id] - $paye[$id] - $loaninstall[$id] - $de_afteramount[$id] + $de_afteramount_emp[$id] + $all_afteramount[$id] - $emp_pension[$id] - $emp_medical[$id] - $emp_provident[$id] - $emp_uif[$id] - $emp_other[$id]; /* $ret_max = (1800>($nonretfunding*0.15))?1800:($nonretfunding*0.15); if ( $comp_ret[$id] + $emp_ret[$id] > $ret_max ) { $comp_ret[$id] = $ret_max - $emp_ret[$id]; if ( $comp_ret[$id] < 0 ) { $comp_ret[$id] = 0; $emp_ret[$id] = $ret_max; } }*/ $nettpay[$id] = $basic_sal[$id] + $overamt[$id] - $paye[$id] + $commission[$id] + $abonus[$id] - $loaninstall[$id] - $de_afteramount[$id] - $de_beforeamount[$id] + $all_afteramount[$id] + $all_beforeamount[$id] - $emp_pension[$id] - $emp_medical[$id] - $emp_ret[$id] - $emp_uif[$id] - $emp_provident[$id] - $emp_other[$id] + $all_travel[$id] + $annual[$id] + $bonus[$id] - $data["fringe_car1_contrib"] - $data["fringe_car2_contrib"] + $subs_total[$id]; if (isset($rbsa[$id])) { $nettpay[$id] += array_sum($rbsa[$id]); } $nettpay[$id] = sprint($nettpay[$id]); //<td><table><tr><td><input type=checkbox name='mpaye[$id]'></td><td><input type=text size=8 name='mpaye_amount[$id]'></td></tr></table></td> $totded[$id] = sprint($de_beforeamount[$id] + $de_afteramount[$id] + $emp_pension[$id] + $emp_medical[$id] + $emp_provident[$id] + $emp_ret[$id] + $emp_other[$id]); $totded_employer[$id] = sprint($de_beforeamount_emp[$id] + $de_afteramount_emp[$id] + $comp_pension[$id] + $comp_medical[$id] + $comp_provident[$id] + $comp_ret[$id] + $comp_other[$id]); $totall[$id] = sprint($all_beforeamount[$id] + $all_afteramount[$id] + $all_travel[$id]); if (isset($mpaye[$id])) { $che = "<input type='hidden' name='mpaye[{$id}]' value=''>"; } else { $che = ""; } vsprint($grossal[$id]); vsprint($basic_sal[$id]); vsprint($bonus[$id]); vsprint($annual[$id]); vsprint($commission[$id]); vsprint($abonus[$id]); vsprint($all_travel[$id]); vsprint($loaninstall[$id]); vsprint($comp_pension[$id]); vsprint($emp_pension[$id]); vsprint($comp_provident[$id]); vsprint($emp_provident[$id]); vsprint($comp_ret[$id]); vsprint($emp_ret[$id]); vsprint($comp_medical[$id]); vsprint($emp_medical[$id]); vsprint($comp_other[$id]); vsprint($emp_other[$id]); vsprint($novert[$id]); vsprint($novert[$id]); vsprint($fringe_medical[$id]); vsprint($paye[$id]); $out .= "\n\t\t\t<input type='hidden' name='mpaye_amount[{$id}]' value='{$mpaye_amount[$id]}'>\n\t\t\t{$che}\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<input type='hidden' name='overamt[{$id}]' value='{$overamt[$id]}'>\n\t\t\t\t<input type='hidden' name='comp_sdl[{$id}]' value='{$comp_sdl[$id]}'>\n\t\t\t\t<input type='hidden' name='process_comp_deductions[{$id}]' value='{$process_comp_deductions[$id]}'>\n\t\t\t\t<input type='hidden' name='grossal[{$id}]' value='{$grossal[$id]}'>\n\t\t\t\t<input type='hidden' name='grossal_nodedall[{$id}]' value='{$grossal_nodedall[$id]}'>\n\t\t\t\t<input type='hidden' name='totded[{$id}]' value='{$totded[$id]}'>\n\t\t\t\t<input type='hidden' name='totded_employer[{$id}]' value='{$totded_employer[$id]}'>\n\t\t\t\t<input type='hidden' name='totall[{$id}]' value='{$totall[$id]}'>\n\t\t\t\t<input type='hidden' name='emps[{$id}]' value='{$id}'>\n\t\t\t\t<input type='hidden' name='fringe_tot[{$id}]' value='{$fringe_tot[$id]}'>\n\t\t\t\t<input type='hidden' name='paye_salary[{$id}]' value='{$paye_salary[$id]}' />\n\t\t\t\t<input type='hidden' name='multi[{$id}]' value='{$multi[$id]}'>\n\t\t\t\t<input type='hidden' name='tyear[{$id}]' value='{$tyear}'>\n\t\t\t\t<input type='hidden' name='taxed_all[{$id}]' value='{$taxed_all[$id]}' />\n\t\t\t\t<td>{$data['enum']}</td>\n\t\t\t\t<td>{$data['sname']}, {$data['fnames']}</td>\n\t\t\t\t<td><input type='hidden' name='basic_sal[{$id}]' value='{$basic_sal_save[$id]}' class='right'>{$basic_sal[$id]}</td>\n\t\t\t\t<td><input type='text' size='8' name='paidamount[{$id}]' id='paidamount[{$id}]' value='0.00'></td>\n\t\t\t\t<td><input type='hidden' name='bonus[{$id}]' value='{$bonus[$id]}' class='right'><input type='hidden' name='abonus[{$id}]' value='{$abonus[$id]}'>{$abonus[$id]}</td>\n\t\t\t\t<input type='hidden' name='annual[{$id}]' value='{$annual[$id]}' />\n\t\t\t\t<!--<td><input type='hidden' name='annual[{$id}]' value='{$annual[$id]}' class='right'>{$annual[$id]}</td>-->\n\t\t\t\t<td><input type='hidden' name='commission[{$id}]' value='{$commission[$id]}' class='right'>{$commission[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='all_travel[{$id}]' value='{$all_travel[$id]}' class='right'>{$all_travel[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='loaninstall[{$id}]' value='{$loaninstall[$id]}' class='right'>{$loaninstall[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='comp_pension[{$id}]' value='{$comp_pension[$id]}' class='right'>{$comp_pension[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='emp_pension[{$id}]' value='{$emp_pension[$id]}' class='right'>{$emp_pension[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='comp_provident[{$id}]' value='{$comp_provident[$id]}' class='right'>{$comp_provident[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='emp_provident[{$id}]' value='{$emp_provident[$id]}' class='right'>{$emp_provident[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='comp_uif[{$id}]' value='{$comp_uif[$id]}' class='right'>{$comp_uif[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='emp_uif[{$id}]' value='{$emp_uif[$id]}' class='right'>{$emp_uif[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='comp_ret[{$id}]' value='{$comp_ret[$id]}' class='right'>{$comp_ret[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='emp_ret[{$id}]' value='{$emp_ret[$id]}' class='right'>{$emp_ret[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='comp_medical[{$id}]' value='{$comp_medical[$id]}' class='right'>{$comp_medical[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='emp_medical[{$id}]' value='{$emp_medical[$id]}' class='right'>{$emp_medical[$id]}</td>\n\n\t\t\t\t<input type='hidden' name='comp_other[{$id}]' value='{$comp_other[$id]}' class='right'>\n\t\t\t\t<input type='hidden' name='emp_other[{$id}]' value='{$emp_other[$id]}' class='right'>\n\t\t\t\t<!--\n\t\t\t\t<td><input type='hidden' name='comp_other[{$id}]' value='{$comp_other[$id]}' class='right'>{$comp_other[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='emp_other[{$id}]' value='{$emp_other[$id]}' class='right'>{$emp_other[$id]}</td>\n\t\t\t\t//-->\n\n\t\t\t\t<td><input type='hidden' name='novert[{$id}]' value='{$novert[$id]}'>{$novert[$id]}</td>\n\t\t\t\t<td><input type='hidden' name='hovert[{$id}]' value='{$hovert[$id]}'>{$hovert[$id]}</td>\n\t\t\t\t<td>{$paydetails}</td>\n\t\t\t\t<td nowrap><input type='hidden' name='fringe_medical[{$id}]' value='{$fringe_medical[$id]}'>" . CUR . " {$fringe_medical[$id]}</td>\n\t\t\t\t<td nowrap><input type='hidden' name='fringe_car1[{$id}]' value='{$fringe_car1[$id]}'>" . CUR . " {$fringe_car1[$id]}</td>\n\t\t\t\t<td nowrap><input type='hidden' name='fringe_car2[{$id}]' value='{$fringe_car2[$id]}'>" . CUR . " {$fringe_car2[$id]}</td>\n\t\t\t\t<td nowrap><input type='hidden' name='fringe_loan[{$id}]' value='{$fringe_loan[$id]}'>" . CUR . " {$fringe_loan[$id]}</td>\n\t\t\t\t<td>{$fringes}</td>\n\t\t\t\t<td>{$Allowances}</td>\n\t\t\t\t<td>{$subsistence}</td>\n\t\t\t\t<td>{$Deductions}</td>\n\t\t\t\t<td>{$rt}</td>\n\t\t\t\t<td>{$grossal[$id]}<input type='hidden' name='grossal[{$id}]' value='{$grossal[$id]}'></td>\n\t\t\t\t<td>{$paye[$id]}<input type='hidden' name='paye[{$id}]' value='{$paye[$id]}'></td>\n\t\t\t\t<td>{$nettpay[$id]}<input type='hidden' id='nettpay[{$id}]' name='nettpay[{$id}]' value='{$nettpay[$id]}'></td>\n\t\t\t</tr>"; $payall_js .= "getObject('paidamount[{$id}]').value = getObject('nettpay[{$id}]').value;"; } $out .= "\n\t\t\t<tr><td><br></td></tr>{$send}\n\t\t\t<script>\n\t\t\t\tfunction emp_payall() {\n\t\t\t\t\t{$payall_js}\n\t\t\t\t}\n\t\t\t</script>\n\t\t\t<tr>\n\t\t\t\t<td colspan='3'><input type='submit' value='« Correction'></td>\n\t\t\t\t<td colspan='5'><input type='button' value='Pay Selected Employees In Full After Processing' onClick='emp_payall();'></td>\n\t\t\t\t<td colspan='2' align='right'><input type='submit' value='Process Salaries »' name='button'></td>\n\t\t\t\t<td colspan='10' align='right'><input type='submit' value='Process Salaries »' name='button'></td>\n\t\t\t</tr>\n\t\t</table>\n\t\t</form>"; return $out; }