function package($_POST) { $_POST = var_makesafe($_POST); extract($_POST); $week += 0; if (isset($back)) { return process($_POST); } $annual += 0; $bonus += 0; $paye_salary += 0; # validate input require_lib("validate"); $v = new validate(); $v->isOk($empnum, "num", 1, 20, "Invalid employee number."); $v->isOk($accid, "num", 1, 20, "Invalid bank number."); $v->isOk($MON, "num", 1, 2, "Invalid month."); $v->isOk($basic_sal, "float", 1, 40, "Invalid basic salary."); $v->isOk($overamt, "float", 1, 40, "Invalid overtime amount."); $v->isOk($income, "float", 1, 40, "Invalid income."); $v->isOk($commission, "float", 0, 40, "Invalid commision."); $v->isOk($abonus, "float", 0, 40, "Invalid Bonus."); $v->isOk($loaninstall, "float", 0, 40, "Invalid loan installment."); $v->isOk($paidamount, "float", 1, 40, "Invalid paid amount."); if (isset($allowances)) { foreach ($allowances as $key => $value) { $v->isOk($allowances[$key], "float", 0, 20, "Invalid allowance amount " . ($key + 1) . "."); } } if (isset($deductid)) { foreach ($deductid as $key => $value) { $v->isOk($deductid[$key], "num", 1, 20, "Invalid deductions ID."); } } if (isset($deductions)) { foreach ($deductions as $key => $value) { $v->isOk($deductions[$key], "float", 0, 20, "Invalid deduction amount" . ($key + 1) . "."); } } if (isset($allowid)) { foreach ($allowid as $key => $value) { $v->isOk($allowid[$key], "num", 1, 20, "Invalid allowance ID."); } } if (isset($allowtax)) { foreach ($allowtax as $key => $value) { $v->isOk($allowtax[$key], "string", 2, 20, "Invalid allowance tax " . ($key + 1) . "."); } } $date = mkdate($year, $mon, $day); $pdate = mkdate($year, $MON, $pday); if (!checkdate($mon, $day, $year)) { $v->isOk($date, "num", 1, 1, "Invalid date."); } $mon = $MON; # display errors, if any if ($v->isError()) { $write = ""; $errors = $v->getErrors(); foreach ($errors as $e) { $write .= "<li class='err'>" . $e["msg"] . "</li>"; } $write .= "<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; return $write; } $basic_sal_save = $basic_sal; if (isset($multi)) { $basic_sal = sprint($basic_sal * $multi); $tyear = $tyear / $multi; } else { $basic_sal = $basic_sal; } db_conn('cubit'); $nettpay = $income; $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."; } $ecost = 0; $myEmp = pg_fetch_array($empRslt); // 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>\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>"; } } } if (!empty($fringes_desc)) { $fringes_desc = "<tr><th colspan='2'>Fringe Benefits</th></tr>{$fringes_desc}"; } $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><td>{$allowname[$key]}</td><td align='right'>" . CUR . " {$allowances[$key]}</td></tr>"; $all_beforeamount = $all_beforeamount + $allowances[$key]; } elseif ($allowances[$key] > 0) { $all_after .= "<tr><td>{$allowname[$key]}</td><td align='right'>" . CUR . " {$allowances[$key]}</td></tr>"; $all_afteramount = $all_afteramount + $allowances[$key]; } } } $de_before = "\n\t\t<tr>\n\t\t\t<td colspan='2'>\n\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th>Details</th>\n\t\t\t\t\t\t<th>Employee aContribution</th>\n\t\t\t\t\t\t<!--<th>Employer Contribution</th>//-->\n\t\t\t\t\t</tr>"; $de_after = "\n\t\t<tr>\n\t\t\t<td colspan='2'>\n\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th>Details</th>\n\t\t\t\t\t\t<th>Employee Contribution</th>\n\t\t\t\t\t\t<!--<th>Employer Contribution</th>//-->\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 .= "\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td>{$deductname[$key]}</td>\n\t\t\t\t\t\t<td align='right'>" . CUR . " {$deductions[$key]}</td>\n<!--\t\t\t\t\t\t<td align='right'>" . 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>\n\t\t\t\t\t\t<td>{$deductname[$key]}</td>\n\t\t\t\t\t\t<td align='right'>" . CUR . " {$deductions[$key]}</td>\n<!--\t\t\t\t\t\t<td align='right'>" . 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 .= "</table></td></tr>"; $de_after .= "</table></td></tr>"; if ($all_beforeamount > 0) { $all_before = "<tr><td colspan='2'>Allowances</td></tr>" . $all_before; } if ($all_afteramount > 0) { $all_after = "<tr><td colspan='2'>Allowances</td></tr>" . $all_after; } if ($de_beforeamount > 0) { $de_before = "<tr><td colspan='2'>Deductions</td></tr>" . $de_before; } if ($de_afteramount > 0) { $de_after = "<tr><td colspan='2'>Deductions</td></tr>" . $de_after; } $gros_sal = sprint($grossal); pglib_transaction("BEGIN") or errDie("Unable to start a database transaction.", SELF); core_connect(); $sql = "SELECT * FROM bankacc WHERE accid = '{$accid}' AND div = '" . USER_DIV . "'"; $rslt = db_exec($sql) or errDie("Unable to retrieve bank account link from Cubit", SELF); # check if link exists if (pg_numrows($rslt) < 1) { return "<li class='err'> ERROR : The bank account that you selected doesn't appear to have an account linked to it.</li>"; } $bank = pg_fetch_array($rslt); $bankacc = $bank["accnum"]; $basic_sal = sprint($basic_sal); $commission = sprint($commission); $abonus = sprint($abonus); $overamt = sprint($overamt); $paye = sprint($paye); $nettpay = sprint($nettpay); $sdl = sprint($comp_sdl); $amount = sprint($gros_sal + $comp_pension + $comp_provident + $comp_medical + $comp_other + $comp_uif + $comp_ret + $sdl); $loaninstall = sprint($loaninstall); //Original CC //$cc = "<script> CostCenter('ct', 'Salaries', '$date', 'Salary Payment for employee, $myEmp[fnames] $myEmp[sname]', '$amount', '../'); </script>"; //New CC $cc = "CostCenter('ct', 'Salaries', '{$date}', 'Salary Payment for employee, {$myEmp['fnames']} {$myEmp['sname']}', '{$amount}', '../'); "; $ecost = $amount; if ($commission > 0) { $comDis = "<tr><td>Commission</td><td align='right'>" . CUR . " {$commission}</td></tr>"; } else { $comDis = ""; } if ($abonus > 0) { $aboDis = "<tr><td>Annual Bonus</td><td align='right'>" . CUR . " {$abonus}</td></tr>"; } else { $aboDis = ""; } if ($overamt > 0) { $oveDis = "<tr><td>Overtime</td><td align='right'>" . CUR . " {$overamt}</td></tr>"; } else { $oveDis = ""; } if ($loaninstall > 0) { $loaDis = "<tr><td>Loan Instalment</td><td align='right'>" . CUR . " {$loaninstall}</td></tr>"; } else { $loaDis = ""; } if ($basic_sal != $gros_sal) { $groDis = "<tr><td>Gross Salary</td><td align='right'>" . CUR . " {$gros_sal}</td></tr>"; } else { $groDis = ""; } if ($all_travel > 0) { $talDis = "<tr><td>Travel Allowance</td><td align='right'>" . CUR . " {$all_travel}</td></tr>"; } else { $talDis = ""; } db_connect(); $Sl = "SELECT * FROM salset"; $Ri = db_exec($Sl); if (pg_num_rows($Ri) > 0) { $con = true; } else { $con = false; } $intrec = gethook("accnum", "salacc", "name", "interestreceived"); $uifbal = gethook("accnum", "salacc", "name", "uifbal"); $sdlbal = gethook("accnum", "salacc", "name", "sdlbal"); $pa = gethook("accnum", "salacc", "name", "pension"); $ma = gethook("accnum", "salacc", "name", "medical"); $cash_account = gethook("accnum", "salacc", "name", "cash"); $retire = gethook("accnum", "salacc", "name", "retire"); $provident = gethook("accnum", "salacc", "name", "provident"); $salconacc = gethook("accnum", "salacc", "name", "salaries control"); $commacc = gethook("accnum", "salacc", "name", "Commission"); $abonusacc = gethook("accnum", "salacc", "name", "Bonus"); $payeacc = gethook("accnum", "salacc", "name", "PAYE"); $uifacc = gethook("accnum", "salacc", "name", "UIF"); $providente = $myEmp["expacc_provident"]; $retiree = $myEmp["expacc_ret"]; $pax = $myEmp["expacc_pension"]; $uifexp = $myEmp["expacc_uif"]; $max = $myEmp["expacc_medical"]; $dedgenerale = $myEmp["expacc_other"]; $sdlexp = $myEmp["expacc_sdl"]; $salacc = $myEmp["expacc_salwages"]; $loanexp = $myEmp["expacc_loan"]; $reimbursexp = $myEmp["expacc_reimburs"]; if ($con) { $uifexp = $salacc; $sdlexp = $salacc; $pax = $salacc; $max = $salacc; $retiree = $salacc; } // Get Bank account [the traditional way re: hook of hook] core_connect(); $sql = "SELECT * FROM bankacc WHERE accid = '{$accid}' AND div = '" . USER_DIV . "'"; $Rslt = db_exec($sql) or errDie("Unable to retrieve bank account link from Cubit", SELF); # check if link exists if (pg_numrows($Rslt) < 1) { return "<li class='err'> ERROR : The bank account that you selected doesn't appear to have an account linked to it."; } $bank = pg_fetch_array($Rslt); $refnum = getrefnum($date); # Debit uif acc and credit uif control acc if ($comp_uif > 0) { writetrans($uifexp, $uifbal, $date, $refnum, $comp_uif, "Company UIF Contribution, {$myEmp['fnames']} {$myEmp['sname']}."); } if ($emp_uif > 0) { db_conn("cubit"); $Sl = "UPDATE employees SET balance=balance-({$emp_uif}) WHERE empnum = '{$empnum}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($empnum, $uifacc, $date, $refnum, "UIF", $emp_uif, "d"); writetrans($salconacc, $uifbal, $date, $refnum, $emp_uif, "Employee UIF Contribution, {$myEmp['fnames']} {$myEmp['sname']}."); } # Debit uif sdl and credit sdl control acc writetrans($sdlexp, $sdlbal, $date, $refnum, $sdl, "SDL, {$myEmp['fnames']} {$myEmp['sname']}."); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance+({$grossal_nodedall}) WHERE empnum = '{$empnum}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($empnum, $salacc, $date, $refnum, "Gross Salary", $grossal_nodedall, "c"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// # Debit salaries acc and credit salaries control acc writetrans($salacc, $salconacc, $date, $refnum, $grossal_nodedall, "Gross Salary proccessing for employee, {$myEmp['fnames']} {$myEmp['sname']}."); if ($commission > 0) { if ($con) { $commacc = $salacc; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance+({$commission}) WHERE empnum = '{$empnum}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($empnum, $commacc, $date, $refnum, "Commission", $commission, "c"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// # Debit commission acc and credit salaries control acc writetrans($commacc, $salconacc, $date, $refnum, $commission, "Commission for employee, {$myEmp['fnames']} {$myEmp['sname']}."); } if ($abonus > 0) { if ($con) { $abonusacc = $salacc; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance+({$abonus}) WHERE empnum = '{$empnum}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($empnum, $abonusacc, $date, $refnum, "Bonus", $abonus, "c"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// # Debit bonus acc and credit salaries control acc writetrans($abonusacc, $salconacc, $date, $refnum, $abonus, "Bonus for employee, {$myEmp['fnames']} {$myEmp['sname']}."); } if ($paye > 0) { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$paye}) WHERE empnum = '{$empnum}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($empnum, $payeacc, $date, $refnum, "PAYE", $paye, "d"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// # Debit salaries control acc and credit PAYE control acc writetrans($salconacc, $payeacc, $date, $refnum, $paye, "PAYE for employee, {$myEmp['fnames']} {$myEmp['sname']}."); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); # Pay allowances accounts if (isset($allowid)) { foreach ($allowid as $i => $id) { # Debit allowances acc and credit salaries control acc if ($con) { $allowaccs[$i] = $salacc; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance+({$allowances[$i]}) WHERE empnum = '{$empnum}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($empnum, $allowaccs[$i], $date, $refnum, "Allowance", $allowances[$i], "c"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// writetrans($allowaccs[$i], $salconacc, $date, $refnum, $allowances[$i], "Allowances for employee, {$myEmp['fnames']} {$myEmp['sname']}."); } } # Pay Deductions accounts if (isset($deductid)) { foreach ($deductid as $i => $id) { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$deductions[$i]}) WHERE empnum = '{$empnum}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($empnum, $dedaccs[$i], $date, $refnum, "Deduction", $deductions[$i], "d"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// # Debit salaries control acc and credit acc // salcon acc - ded balance acc writetrans($salconacc, $dedaccs[$i], $date, $refnum, $deductions[$i], "Deductions for employee, {$myEmp['fnames']} {$myEmp['sname']}."); db_conn("cubit"); $sql = "SELECT * FROM salded WHERE id='{$id}'"; $rslt = db_exec($sql) or errDie("Error reading deduction information."); $dedinfo = pg_fetch_array($rslt); } } if ($comp_pension > 0) { writetrans($pax, $pa, $date, $refnum, $comp_pension, "Company Pension Contribution, {$myEmp['fnames']} {$myEmp['sname']}."); } if ($emp_pension > 0) { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$emp_pension}) WHERE empnum = '{$empnum}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($empnum, $pa, $date, $refnum, "Pension Contribution", $emp_pension, "d"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// writetrans($salconacc, $pa, $date, $refnum, $emp_pension, "Pension Contribution, {$myEmp['fnames']} {$myEmp['sname']}."); } if ($comp_medical > 0) { writetrans($max, $ma, $date, $refnum, $comp_medical, "Company Medical Contribution, {$myEmp['fnames']} {$myEmp['sname']}."); } if ($emp_medical > 0) { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$emp_medical}) WHERE empnum = '{$empnum}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($empnum, $ma, $date, $refnum, "Medical Contribution", $emp_medical, "d"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// writetrans($salconacc, $ma, $date, $refnum, $emp_medical, "Employee Medical Contribution, {$myEmp['fnames']} {$myEmp['sname']}."); } if ($comp_provident > 0) { writetrans($providente, $provident, $date, $refnum, $comp_provident, "Company Provident Fund Contribution, {$myEmp['fnames']} {$myEmp['sname']}."); } if ($emp_provident > 0) { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$emp_provident}) WHERE empnum = '{$empnum}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($empnum, $provident, $date, $refnum, "Provident Fund Contribution", $emp_provident, "d"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// writetrans($salconacc, $provident, $date, $refnum, $emp_provident, "Provident Fund Contribution, {$myEmp['fnames']} {$myEmp['sname']}."); } if (false && $comp_other > 0) { writetrans($dedgenerale, $dedgeneral, $date, $refnum, $comp_other, "Company Contribution to Other Deductions, {$myEmp['fnames']} {$myEmp['sname']}."); } if (false && $emp_other > 0) { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$emp_other}) WHERE empnum = '{$empnum}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($empnum, $dedgeneral, $date, $refnum, "Other Deductions Contribution", $emp_other, "d"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// writetrans($salconacc, $dedgeneral, $date, $refnum, $emp_other, "Other Deductions Contribution, {$myEmp['fnames']} {$myEmp['sname']}."); } if ($emp_ret > 0) { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$emp_ret}) WHERE empnum = '{$empnum}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($empnum, $retire, $date, $refnum, "Retirement Annuity Contribution", $emp_ret, "d"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// writetrans($salconacc, $retire, $date, $refnum, $emp_ret, "Employee Retirement Annuity Contribution, {$myEmp['fnames']} {$myEmp['sname']}."); } if ($comp_ret > 0) { writetrans($retiree, $retire, $date, $refnum, $comp_ret, "Company Retirement Annuity Contribution, {$myEmp['fnames']} {$myEmp['sname']}."); } db_conn('cubit'); $mons = "{$mon};"; $due = sprint($nettpay - $paidamount); //, balance=balance+'$due $sql = "\n\t\tUPDATE employees \n\t\tSET lastpay = '{$mons}', loanamt = (loanamt - cast(float '{$loaninstall}' as numeric)), \n\t\t\tloanfringe = (loanfringe - cast(float '{$fringe_loan}' as numeric)) \n\t\tWHERE empnum = '{$empnum}' AND div = '" . USER_DIV . "'"; $rslt = db_exec($sql) or errDie("Unable to get employee details."); // check if loan is 0, then unmark loan as active, and store in archive $sql = "SELECT loanid FROM employees WHERE loanamt=0 AND empnum='{$empnum}' AND gotloan='t'::bool"; $rslt = db_exec($sql) or errDie("Error reading employee details for loan."); if (pg_num_rows($rslt) > 0) { $loanid = pg_fetch_result($rslt, 0, 0); $sql = "UPDATE employees SET gotloan='f'::bool, loaninstall='0' WHERE empnum='{$empnum}'"; $rslt = db_exec($sql) or errDie("Unable to update employee loan status."); $sql = "UPDATE emp_loanarchive SET donedata=CURRENT_DATE WHERE id='{$loanid}'"; $rslt = db_exec($sql) or errDie("Unable to archive loan."); $sql = "SELECT loanint_unpaid FROM employees WHERE empnum='{$empnum}'"; $rslt = db_exec($sql) or errDie("Error reading loan interest for installment."); $loanint = sprint(pg_fetch_result($rslt, 0, 0)); } else { if ($loaninstall > 0) { $sql = "SELECT loanamt_tot, loanint_amt FROM employees WHERE empnum='{$empnum}'"; $rslt = db_exec($sql) or errDie("Error reading loan interest for installment."); $loan_tot = pg_fetch_result($rslt, 0, 0); $loan_totint = pg_fetch_result($rslt, 0, 1); $loanint = sprint($loaninstall / $loan_tot * $loan_totint); } else { $loanint = 0; } } $sql = "\n\t\tUPDATE employees \n\t\tSET loanint_unpaid = (loanint_unpaid - cast(float '{$loanint}' as numeric)) \n\t\tWHERE empnum = '{$empnum}' AND div = '" . USER_DIV . "'"; $rslt = db_exec($sql) or errDie("Unable to update employee interest."); if ($loaninstall > 0 && !empty($loanexp)) { $loaninstall += 0; db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$loaninstall}) WHERE empnum = '{$empnum}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($empnum, $loanexp, $date, $refnum, "Loan Instalment", $loaninstall, "d"); # Debit salaries control acc and credit loan control acc writetrans($salconacc, $loanexp, $date, $refnum, $loaninstall - $loanint, "Loan Installment for employee, {$myEmp['fnames']} {$myEmp['sname']}."); writetrans($salconacc, $intrec, $date, $refnum, $loanint, "Loan Interest for employee, {$myEmp['fnames']} {$myEmp['sname']}."); /* record this month's loan amounts (for reversal purposes) */ // determine the salary period switch ($myEmp["payprd"]) { case "d": $lprd = date_part($pdate, DP_DAY); break; case "m": case "f": case "w": default: $lprd = $week; break; } // record it! db_conn("cubit"); $sql = "\n\t\t\tINSERT INTO emp_loaninstallments (\n\t\t\t\tempnum, fdate, fperiod, fmonth, fyear, installment, interest, fringe\n\t\t\t) VALUES (\n\t\t\t\t'{$empnum}', '{$date}', '{$lprd}', '{$mon}', '" . EMP_YEAR . "', '{$loaninstall}', '{$loanint}', '{$fringe_loan}'\n\t\t\t)"; $rslt = db_exec($sql) or errDie("Error record loan fringe benefit."); } $loaninstall = $loaninstall + 0; $totded = sprint($de_beforeamount + $de_afteramount + $emp_pension + $emp_medical + $emp_provident + $emp_ret + $emp_other); $totded_employer = sprint($de_beforeamount_emp + $de_afteramount_emp + $comp_pension + $comp_medical + $comp_provident + $comp_ret + $comp_other); $totall = sprint($all_beforeamount + $all_afteramount + $all_travel); $parkage = "\n\t\t<br><br>\n\t\t<center>\n\t\t{$cc}\n\t\t<table border=2 cellpadding='4' cellspacing='0' width='750' bordercolor='#000000'>\n\t\t\t<tr>\n\t\t\t\t<td align='center'><b>Description</b></td>\n\t\t\t\t<td width='100' align='center'><b>Amount</b></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>Basic salary</td>\n\t\t\t\t<td align='right'>" . CUR . " {$basic_sal}</td>\n\t\t\t</tr>\n\t\t\t{$comDis}\n\t\t\t{$aboDis}\n\t\t\t{$fringes_desc}\n\t\t\t{$all_before}\n\t\t\t{$de_before}\n\t\t\t{$groDis}\n\t\t\t{$talDis}\n\t\t\t<tr>\n\t\t\t\t<td>UIF</td>\n\t\t\t\t<td align='right'>" . CUR . " {$emp_uif}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>PAYE</td>\n\t\t\t\t<td align='right'>" . CUR . " {$paye}</td>\n\t\t\t</tr>\n\t\t\t{$loaDis}\n\t\t\t{$all_after}\n\t\t\t{$de_after}\n\t\t\t<tr>\n\t\t\t\t<td><b>Nett Pay</b></td>\n\t\t\t\t<td align='right'><b>" . CUR . " {$nettpay}</b></td>\n\t\t\t</tr>\n\t\t</form>\n\t\t</table>\n\t\t</center>"; $parkagesave = "\n\t\t<br><br>\n\t\t<center>\n\t\t<table border='2' width='750' border=2 cellpadding='4' cellspacing='0' bordercolor='#000000'>\n\t\t\t<tr>\n\t\t\t\t<td align='center'><b>Description</b></td>\n\t\t\t\t<td width='100' align='center'><b>Amount</b></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>Basic salary</td>\n\t\t\t\t<td align='right'>" . CUR . " {$basic_sal}</td>\n\t\t\t</tr>\n\t\t\t{$comDis}\n\t\t\t{$aboDis}\n\t\t\t{$fringes_desc}\n\t\t\t{$all_before}\n\t\t\t{$de_before}\n\t\t\t{$groDis}\n\t\t\t{$talDis}\n\t\t\t<tr>\n\t\t\t\t<td>UIF</td>\n\t\t\t\t<td align='right'>" . CUR . " {$emp_uif}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>PAYE</td>\n\t\t\t\t<td align='right'>" . CUR . " {$paye}</td>\n\t\t\t</tr>\n\t\t\t{$loaDis}\n\t\t\t{$all_after}\n\t\t\t{$de_after}\n\t\t\t<tr>\n\t\t\t\t<td><b>Nett Pay</b></td>\n\t\t\t\t<td align='right'><b>" . CUR . " {$nettpay}</b></td>\n\t\t\t</tr>\n\t\t</form>\n\t\t</table>\n\t\t</center>"; $OUTPUT = $parkage; $save = base64_encode($parkagesave); $Date = $date; $np = $nettpay; if (isset($rbsa)) { $np = sprint($np - array_sum($rbsa)); } /* hack to store the pay date for dailies */ if ($myEmp["payprd"] == "d") { $week = $pday; } if (empty($novert)) { $novert = "0"; } if (empty($hovert)) { $hovert = "0"; } db_conn("cubit"); $sql = "\n \t\tINSERT INTO cubit.salpaid (\n \t\t\tempnum, month, bankid, salary, comm, uifperc, uif, payeperc, paye, totded, totded_employer, \n\t\t\ttotallow, loanins, tot_fringe, div, display, saldate, week, cyear, novert, \n \t\t\thovert, taxed_sal, hours, salrate, bonus\n \t\t) VALUES (\n \t\t\t'{$empnum}', '{$mon}', '{$accid}', '{$np}', '{$commission}', '0', '{$emp_uif}', '0', '{$paye}', '{$totded}', '{$totded_employer}', \n\t\t\t'{$totall}', '{$loaninstall}', '{$fringe_tot}', '" . USER_DIV . "', '{$save}', '{$Date}', '{$week}', '" . EMP_YEAR . "', '{$novert}', \n \t\t\t'{$hovert}', '{$paye_salary}', '{$multi}', '{$basic_sal_save}', '{$abonus}'\n \t\t)"; $Ry = db_exec($sql) or errDie("Unable to insert record."); $id = pglib_lastid("salpaid", "id"); $year = $year; $payslip_id = $id; 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; } $rb = sprint($rbsa[$td['id']]); db_conn("cubit"); $sql = "\n\t\t\t\tINSERT INTO emp_inc (\n\t\t\t\t\temp, year, period, date, week, payslip, type, code, description, \n\t\t\t\t\tqty, rate, amount, ex\n\t\t\t\t) VALUES (\n\t\t\t\t\t'{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$Date}', '{$week}', '{$payslip_id}', '{$td['id']}', '', '{$td['name']}', \n\t\t\t\t\t'1', '0', '{$rb}', 'RBS'\n\t\t\t\t)"; db_exec($sql) or errDie("unable to insert data."); $sql = "UPDATE employees SET balance=balance+({$rb}) WHERE empnum = '{$empnum}'"; db_exec($sql) or errDie("Unable to get employee details."); empledger($empnum, $td['account'], $date, $refnum, "Reimbursement", $rb, "c"); writetrans($td['account'], $salconacc, $date, $refnum, $rb, "Reimbursement for employee, {$myEmp['fnames']} {$myEmp['sname']}."); } } if (isset($subsname)) { foreach ($subsname as $sid => $sn) { if (empty($subsamt[$sid]) || $subsamt[$sid] <= 0) { continue; } $samt = sprint($subsamt[$sid]); $i++; db_conn('cubit'); $cols = grp(m("emp", $empnum), m("year", EMP_YEAR), m("period", $mon), m("week", $week), m("date", $Date), m("payslip", $payslip_id), m("type", $sid), m("code", ""), m("description", $subsname[$sid]), m("qty", 1), m("rate", 0), m("amount", $samt), m("ex", "SUBS")); $subin = new dbUpdate("emp_inc", "cubit", $cols); $subin->run(DB_INSERT); $cols = grp(m("balance", raw("balance+({$samt})"))); $subin->setTable("employees"); $subin->setOpt($cols, wgrp(m("empnum", $empnum))); $subin->run(DB_UPDATE); empledger($empnum, $subsacc[$sid], $date, $refnum, "Subsistence Allowance: {$subsname[$sid]}", $samt, "c"); writetrans($subsacc[$sid], $salconacc, $date, $refnum, $samt, "Subsistence Allownace ({$subsname[$sid]}) for employee, {$myEmp['fnames']} {$myEmp['sname']}."); } } if ($myEmp['paytype'] == "Cash") { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$paidamount}) WHERE empnum = '{$empnum}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($empnum, $cash_account, $date, $refnum, "Payment(Cash)", $paidamount, "d"); writetrans($salconacc, $cash_account, $date, $refnum, $paidamount, "Salary Payment(Cash) for employee, {$myEmp['fnames']} {$myEmp['sname']}."); } elseif ($myEmp['paytype'] == "Ledger Account") { db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$paidamount}) WHERE empnum = '{$empnum}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($empnum, $account, $date, $refnum, "Payment(Ledger Account)", $paidamount, "d"); writetrans($salconacc, $account, $date, $refnum, $paidamount, "Salary Payment(Ledger Account) for employee, {$myEmp['fnames']} {$myEmp['sname']}."); } else { db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$paidamount}) WHERE empnum = '{$empnum}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($empnum, $bankacc, $date, $refnum, "Payment(Bank)", $paidamount, "d"); writetrans($salconacc, $bankacc, $date, $refnum, $paidamount, "Salary Payment for employee(Bank), {$myEmp['fnames']} {$myEmp['sname']}."); # issue bank record banktrans($accid, "withdrawal", $date, "{$myEmp['fnames']} {$myEmp['sname']}", "Salary Payment for employee, {$myEmp['fnames']} {$myEmp['sname']}", 0, $paidamount, $salconacc, $myEmp['empnum']); } db_conn('cubit'); /* writetrans($uifexp,$uifbal , $date, $refnum, $uif, "Company UIF Contribution, $myEmp[fnames] $myEmp[sname]."); */ # Debit uif sdl and credit sdl control acc // writetrans($sdlexp,$sdlbal , $date, $refnum, $sdl, "SDL, $myEmp[fnames] $myEmp[sname]."); db_conn("cubit"); if ($comp_uif > 0) { $Sl = "\n\t\t\tINSERT INTO emp_com (emp, year, period, week, date, payslip, type, code, description, qty, rate, amount) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'UIFC', '', 'UIF', '1', '0','{$comp_uif}')"; $Ri = db_exec($Sl) or errDie("unable to insert data1."); } if ($emp_uif > 0) { $Sl = "\n\t\t\tINSERT INTO emp_ded (emp, year, period, week, date, payslip, type, code, description, qty, rate, amount) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'UIFE', '', 'UIF', '1', '0', '{$emp_uif}')"; $Ri = db_exec($Sl) or errDie("unable to insert data3."); } if ($sdl > 0) { $Sl = "\n\t\t\tINSERT INTO emp_com (emp, year, period, week, date, payslip, type, code, description, qty, rate, amount) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'SDL', '', 'SDL', '1', '0', '{$sdl}')"; $Ri = db_exec($Sl) or errDie("unable to insert data2."); } if ($paye > 0) { $Sl = "\n\t\t\tINSERT INTO emp_ded (emp, year, period, week, date, payslip, type, code, description, qty, rate, amount) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'PAYE', '', 'PAYE', '1', '0', '{$paye}')"; $Ri = db_exec($Sl) or errDie("unable to insert data3."); } if ($basic_sal > 0) { $Sl = "\n\t\t\tINSERT INTO emp_inc (emp, year, period, week, date, payslip, type, code, description, pension, qty, rate, amount, ex) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'INC', '', 'Basic Salary', '', '1', '0', '{$basic_sal}', '')"; $Ri = db_exec($Sl) or errDie("unable to insert data4."); } if ($myEmp["loanpayslip"] > 0) { $Sl = "\n\t\t\tINSERT INTO emp_inc (emp, year, period, week, date, payslip, type, code, description, pension, qty, rate, amount, ex) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'LOAN', '', 'Employee Loan', '', '1', '0', '{$myEmp['loanpayslip']}', '')"; $Ri = db_exec($Sl) or errDie("unable to insert loan data for employee income on payslip."); $sql = "UPDATE employees SET loanpayslip='0' WHERE empnum='{$empnum}'"; $rslt = db_exec($sql) or errDie("Error updating loan information for payslip."); } if ($bonus > 0 && $myEmp["payprd"] != "f" && $myEmp["payprd"] != "w") { $Sl = "\n\t\t\tINSERT INTO emp_inc (emp, year, period, week, date, payslip, type, code, description, pension, qty, rate, amount, ex) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'INCB', '', 'Bonus', '', '1', '0', '{$bonus}', '')"; $Ri = db_exec($Sl) or errDie("unable to insert data5."); } else { if ($bonus > 0) { $Sl = "\n\t\t\tINSERT INTO emp_inc (emp, year, period, week, date, payslip, type, code, description, pension, qty, rate, amount, ex) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'INCB', '', 'Special Bonus/Additional Salary', '', '1', '0', '{$bonus}', '')"; $Ri = db_exec($Sl) or errDie("unable to insert data5."); } } if ($annual > 0) { $Sl = "\n\t\t\tINSERT INTO emp_inc (emp, year, period, week, date, payslip, type, code, description, pension, qty, rate, amount, ex) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'INCAB', '', 'Annual Bonus', '', '1', '0', '{$annual}', '')"; $Ri = db_exec($Sl) or errDie("unable to insert data5."); } if ($commission > 0) { $Sl = "\n\t\t\tINSERT INTO emp_inc (emp, year, period, week, date, payslip, type, code, description, pension, qty, rate, amount, ex) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'INCC', '', 'Commission', '', '1', '0', '{$commission}', '')"; $Ri = db_exec($Sl) or errDie("unable to insert data6."); } if ($abonus > 0) { $Sl = "\n\t\t\tINSERT INTO emp_inc (emp, year, period, week, date, payslip, type, code, description, pension, qty, rate, amount, ex) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'INCAB', '', 'Bonus', '', '1', '0', '{$abonus}', '')"; $Ri = db_exec($Sl) or errDie("unable to insert data6."); } if ($all_travel > 0) { $Sl = "\n\t\t\tINSERT INTO emp_inc (emp, year, period, week, date, payslip, type, code, description, pension, qty, rate, amount, ex) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'INCT', '', 'Travel Allowance', '', '1', '0', '{$all_travel}', '')"; $Ri = db_exec($Sl) or errDie("unable to insert data7."); } if ($loaninstall > 0) { $Sl = "\n\t\t\tINSERT INTO emp_ded (emp, year, period, week, date, payslip, type, code, description, qty, rate, amount) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'DEDL', '', 'Loan Repayment', '1', '0', '{$loaninstall}')"; $Ri = db_exec($Sl) or errDie("unable to insert data8."); } if ($comp_pension > 0) { $Sl = "\n\t\t\tINSERT INTO emp_com (emp, year, period, week, date, payslip, type, code, description, qty, rate, amount) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'COMP', '', 'Pension', '1', '0', '{$comp_pension}')"; $Ri = db_exec($Sl) or errDie("unable to insert data9."); } if ($emp_pension > 0) { $Sl = "\n\t\t\tINSERT INTO emp_ded (emp, year, period, week, date, payslip, type, code, description, qty, rate, amount) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'DEDP', '', 'Pension', '1', '0', '{$emp_pension}')"; $Ri = db_exec($Sl) or errDie("unable to insert data10."); } if ($comp_ret > 0) { $Sl = "\n\t\t\tINSERT INTO emp_com (emp, year, period, week, date, payslip, type, code, description, qty, rate, amount) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'COMR', '', 'Retirement Annuity Fund', '1', '0', '{$comp_ret}')"; $Ri = db_exec($Sl) or errDie("unable to insert data9."); } if ($emp_ret > 0) { $Sl = "\n \tINSERT INTO emp_ded (emp, year, period, week, date, payslip, type, code, description, qty, rate, amount) \n \tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'DEDR', '', 'Retirement Annuity Fund', '1', '0', '{$emp_ret}')"; $Ri = db_exec($Sl) or errDie("unable to insert data10."); } if ($myEmp["fringe_car1_contrib"] > 0) { $Sl = "\n \tINSERT INTO emp_ded (emp, year, period, week, date, payslip, type, code, description, qty, rate, amount) \n \tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'DEDA', '', 'Motorcar 1 Contribution for Use', '1', '0', '{$myEmp['fringe_car1_contrib']}')"; $Ri = db_exec($Sl) or errDie("unable to insert data10."); } if ($myEmp["fringe_car2_contrib"] > 0) { $Sl = "\n \tINSERT INTO emp_ded (emp, year, period, week, date, payslip, type, code, description, qty, rate, amount) \n \tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'DEDB', '', 'Motorcar 2 Contribution for Use', '1', '0', '{$myEmp['fringe_car2_contrib']}')"; $Ri = db_exec($Sl) or errDie("unable to insert data10."); } if ($comp_medical > 0) { $Sl = "\n\t\t\tINSERT INTO emp_com (emp, year, period, week, date, payslip, type, code, description, qty, rate, amount) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'COMM', '', 'Medical Contribution', '1', '0', '{$comp_medical}')"; $Ri = db_exec($Sl) or errDie("unable to insert data.11"); } if ($emp_medical > 0) { $Sl = "\n\t\t\tINSERT INTO emp_ded (emp, year, period, week, date, payslip, type, code, description, qty, rate, amount) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'DEDM', '', 'Medical Contribution', '1', '0', '{$emp_medical}')"; $Ri = db_exec($Sl) or errDie("unable to insert data.12"); } if ($comp_provident > 0) { $Sl = "\n\t\t\tINSERT INTO emp_com (emp, year, period, week, date, payslip, type, code, description, qty, rate, amount) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'COMV', '', 'Provident', '1', '0', '{$comp_provident}')"; $Ri = db_exec($Sl) or errDie("unable to insert data9."); } if ($emp_provident > 0) { $Sl = "\n\t\t\tINSERT INTO emp_ded (emp, year, period, week, date, payslip, type, code, description, qty, rate, amount) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'DEDV', '', 'Provident', '1', '0', '{$emp_provident}')"; $Ri = db_exec($Sl) or errDie("unable to insert data10."); } if ($comp_other > 0) { $Sl = "\n\t\t\tINSERT INTO emp_com (emp, year, period, week, date, payslip, type, code, description, qty, rate, amount) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'COMO', '', 'Other Deductions', '1', '0', '{$comp_other}')"; $Ri = db_exec($Sl) or errDie("unable to insert data9."); } if ($emp_other > 0) { $Sl = "\n\t\t\tINSERT INTO emp_ded (emp, year, period, week, date, payslip, type, code, description, qty, rate, amount) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'DEDO', '', 'Other Deductions', '1', '0', '{$emp_other}')"; $Ri = db_exec($Sl) or errDie("unable to insert data10."); } if ($overamt > 0) { $Sl = "\n\t\t\tINSERT INTO emp_inc (emp, year, period, week, date, payslip, type, code, description, qty, rate, amount, ex) \n\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$id}', 'INCO', '', 'Over Time', '1', '0', '{$overamt}', '')"; $Ri = db_exec($Sl) or errDie("unable to insert data.13"); } $payslip_id = $id; // fringe benefits $frinupd = new dbUpdate("emp_frin", "cubit"); if (isset($fringebens)) { foreach ($fringebens as $key => $value) { $cols = grp(m("emp", $empnum), m("year", EMP_YEAR), m("period", $mon), m("week", $week), m("fdate", $Date), m("payslip", $payslip_id), m("code", $key), m("description", $fringename[$key]), m("qty", 1), m("amount", sprint($fringebens[$key]))); $frinupd->setCols($cols); $frinupd->run(DB_INSERT); } } if ($fringe_loan > 0) { $cols = grp(m("emp", $empnum), m("year", $year), m("period", $mon), m("fdate", $Date), m("payslip", $payslip_id), m("code", "FRINLOAN"), m("description", "Loan Fringe Benefit"), m("qty", 1), m("amount", $fringe_loan)); $frinupd->setCols($cols); $frinupd->run(DB_INSERT); } if ($fringe_medical > 0) { $cols = grp(m("emp", $empnum), m("year", $year), m("period", $mon), m("fdate", $Date), m("payslip", $payslip_id), m("code", "FRINMED"), m("description", "Medical Fringe Benefit"), m("qty", 1), m("amount", $fringe_medical)); $frinupd->setCols($cols); $frinupd->run(DB_INSERT); } if ($fringe_car1 > 0) { $cols = grp(m("emp", $empnum), m("year", $year), m("period", $mon), m("fdate", $Date), m("payslip", $payslip_id), m("code", "FRINCAR1"), m("description", "Fringe Benefit: Vehicle 1"), m("qty", 1), m("amount", $fringe_car1)); $frinupd->setCols($cols); $frinupd->run(DB_INSERT); } if ($fringe_car2 > 0) { $cols = grp(m("emp", $empnum), m("year", $year), m("period", $mon), m("fdate", $Date), m("payslip", $payslip_id), m("code", "FRINCAR2"), m("description", "Fringe Benefit: Vehicle 2"), m("qty", 1), m("amount", $fringe_car2)); $frinupd->setCols($cols); $frinupd->run(DB_INSERT); } if (isset($allowid)) { $Sl = "SELECT id,allowance FROM allowances"; $Ri = db_exec($Sl) or errDie("Unable to get allowances."); while ($data = pg_fetch_array($Ri)) { $allname[$data['id']] = $data['allowance']; } foreach ($allowid as $i => $id) { $aname = $allname[$allowid[$i]]; if (($allowances[$i] = sprint($allowances[$i])) <= 0) { continue; } $Sl = "\n\t\t\t\tINSERT INTO emp_inc (emp, year, period, week, date, payslip, type, code, description, qty, rate, amount, ex)\n\t\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$payslip_id}', '{$allowid[$i]}', '', '{$aname}', '1', '0', '{$allowances[$i]}', '')"; $Ri = db_exec($Sl) or errDie("unable to insert data."); } } # Pay Deductions accounts if (isset($deductid)) { $Sl = "SELECT id,deduction FROM salded"; $Ri = db_exec($Sl) or errDie("Unabel to get get dat."); while ($data = pg_fetch_array($Ri)) { $dnames[$data['id']] = $data['deduction']; } foreach ($deductid as $i => $id) { $dname = $dnames[$deductid[$i]]; # Debit salaries control acc and credit acc if (($deductions[$i] = sprint($deductions[$i])) > 0) { $Sl = "\n\t\t\t\t\tINSERT INTO emp_ded (emp, year, period, week, date, payslip, type, code, description, qty, rate, amount) \n\t\t\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$payslip_id}', '{$deductid[$i]}', '', '{$dname}', '1', '0', '{$deductions[$i]}')"; $Ri = db_exec($Sl) or errDie("unable to insert data."); } if (($employer_deductions[$i] = sprint($employer_deductions[$i])) > 0) { $Sl = "\n\t\t\t\t\tINSERT INTO emp_com (emp, year, period, week, date, payslip, type, code, description, qty, rate, amount) \n\t\t\t\t\tVALUES ('{$empnum}', '" . EMP_YEAR . "', '{$mon}', '{$week}', '{$Date}', '{$payslip_id}', '{$deductid[$i]}', '', '{$dname}', '1', '0', '{$employer_deductions[$i]}')"; //$Ri=db_exec($Sl) or errDie("unable to insert data1."); } } } $id = $payslip_id; $ecost += 0; db_conn('cubit'); $Sl = "SELECT * FROM empc WHERE emp='{$empnum}'"; $Ri = db_exec($Sl); if (pg_num_rows($Ri) > 0) { while ($data = pg_fetch_array($Ri)) { db_conn('cubit'); $sql = "SELECT * FROM costcenters WHERE ccid = '{$data['cid']}'"; $ccRslt = db_exec($sql) or errDie("Unable to retrieve Cost centers from database."); $cc = pg_fetch_array($ccRslt); $amount = sprint($ecost * $data['amount'] / 100); db_conn(PRD_DB); $sql = "\n\t\t\t\tINSERT INTO cctran (\n\t\t\t\t\tccid, trantype, typename, edate, \n\t\t\t\t\tdescription, amount, username, div\n\t\t\t\t) VALUES (\n\t\t\t\t\t'{$cc['ccid']}', 'ct', 'Salary', '{$Date}', \n\t\t\t\t\t'Salary for employee, {$myEmp['fnames']} {$myEmp['sname']}', '{$amount}', '" . USER_NAME . "', '" . USER_DIV . "'\n\t\t\t\t)"; $insRslt = db_exec($sql) or errDie("Unable to retrieve insert Cost center amounts into database."); } } /* update printslip setting */ setCSetting("EMP_PRINTSLIP", $printslip); pglib_transaction("COMMIT") or errDie("Unable to commit a database transaction.", SELF); if ($printslip != "n") { $OUTPUT = "<script>printer('salwages/payslip-print.php?id={$id}');spmove('../main.php');</script>"; } else { $OUTPUT = "\n\t\t\t<h3>Process Employee Salary</h3>\n\t\t\tSuccessfully processed salary.<br /><br />" . mkQuickLinks(ql("salaries-staff.php", "Process Employee Salary"), ql("../admin-employee-view.php", "View Employees/Process Salaries by Batch"), ql("../admin-employee-add.php", "Add New Employee"), ql("settings-acc-edit.php", "Salary Settings")); } //$OUTPUT .= "<script>move('../index-salaries.php');</script>"; require "../template.php"; }
function write($_POST) { $_POST = var_makesafe($_POST); extract($_POST); $week += 0; if (!isset($button)) { return enter($_POST); } if (!isset($date_day)) { exit; } require_lib("validate"); $v = new validate(); //$v->isOk ($empnum, "num", 1, 20, "Invalid employee number."); if (!checkdate($date_month, $date_day, $date_year)) { $v->isOk($date_day, "num", 10, 1, "Invalid date."); } # display errors, if any if ($v->isError()) { $write = ""; $errors = $v->getErrors(); foreach ($errors as $e) { $write .= "<li class='err'>" . $e["msg"] . "</li>"; } $write .= "<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; return $write; } $date = $date_year . "-" . $date_month . "-" . $date_day; $salconacc = gethook("accnum", "salacc", "name", "salaries control"); $intrec = gethook("accnum", "salacc", "name", "interestreceived"); $commacc = gethook("accnum", "salacc", "name", "Commission"); $abonusacc = gethook("accnum", "salacc", "name", "Bonus"); $payeacc = gethook("accnum", "salacc", "name", "PAYE"); $uifacc = gethook("accnum", "salacc", "name", "UIF"); $uifbal = gethook("accnum", "salacc", "name", "uifbal"); $sdlbal = gethook("accnum", "salacc", "name", "sdlbal"); $pa = gethook("accnum", "salacc", "name", "pension"); $ma = gethook("accnum", "salacc", "name", "medical"); $cash_account = gethook("accnum", "salacc", "name", "cash"); $retire = gethook("accnum", "salacc", "name", "retire"); $provident = gethook("accnum", "salacc", "name", "provident"); $refnum = getrefnum($date); pglib_transaction("BEGIN") or errDie("Unable to start a database transaction.", SELF); db_conn('cubit'); $i = 0; $Sl = "SELECT * FROM salset"; $Ri = db_exec($Sl); if (pg_num_rows($Ri) > 0) { $con = true; } else { $con = false; } if ($con) { $uifexp = $salacc; $sdlexp = $salacc; $pax = $salacc; $max = $salacc; $retiree = $salacc; } $Sl = "SELECT * FROM employees WHERE div='" . USER_DIV . "' ORDER BY sname,fnames"; $Rr = db_exec($Sl) or errDie("Unable to get data."); $out = "<script>"; $batch_setting = getCSetting("PRINT_PSLIPS_BATCH"); if (isset($batch_setting) and $batch_setting == "yes") { if ($printslip != "n") { $out .= "nhprinter('salwages/payslip-print.php?batch="; } } while ($data = pg_fetch_array($Rr)) { if (!isset($emps[$data['empnum']]) || isset($emps_already[$data["empnum"]])) { continue; } $providente = $data["expacc_provident"]; $retiree = $data["expacc_ret"]; $pax = $data["expacc_pension"]; $uifexp = $data["expacc_uif"]; $max = $data["expacc_medical"]; $dedgenerale = $data["expacc_other"]; $sdlexp = $data["expacc_sdl"]; $salacc = $data["expacc_salwages"]; $loanexp = $data["expacc_loan"]; $id = $data['empnum']; $basic_sal_save[$id] = $basic_sal[$id]; # Multiply basic_sal add overtime if (isset($multi[$id])) { $basic_sal[$id] = sprint($basic_sal[$id] * $multi[$id]); } $basic_sal[$id] = sprint($basic_sal[$id]); $bonus[$id] = sprint($bonus[$id]); $annual[$id] = sprint($annual[$id]); $abonus[$id] = sprint($abonus[$id]); $commission[$id] = sprint($commission[$id]); $all_travel[$id] = sprint($all_travel[$id]); $loaninstall[$id] = sprint($loaninstall[$id]); $comp_pension[$id] = sprint($comp_pension[$id]); $emp_pension[$id] = sprint($emp_pension[$id]); $comp_provident[$id] = sprint($comp_provident[$id]); $emp_provident[$id] = sprint($emp_provident[$id]); $comp_uif[$id] = sprint($comp_uif[$id]); $emp_uif[$id] = sprint($emp_uif[$id]); $comp_ret[$id] = sprint($comp_ret[$id]); $emp_ret[$id] = sprint($emp_ret[$id]); $comp_medical[$id] = sprint($comp_medical[$id]); $emp_medical[$id] = sprint($emp_medical[$id]); $comp_other[$id] = sprint($comp_other[$id]); $emp_other[$id] = sprint($emp_other[$id]); $novert[$id] += 0; $hovert[$id] += 0; $overamt[$id] = sprint($overamt[$id]); $sdl[$id] = sprint($comp_sdl[$id]); $ecost = $basic_sal[$id] + $overamt[$id] + $all_travel[$id] + $bonus[$id] + $annual[$id] + $sdl[$id] + $all_beforeamount[$id] + $all_afteramount[$id] + $comp_pension[$id] + $comp_uif[$id] + $comp_ret[$id] + $comp_medical[$id] + $comp_provident[$id] + $comp_other[$id] + $all_beforeamount[$id] + $all_afteramount[$id]; $ecost = sprint($ecost); // writetrans($uifexp,$uifbal , $date, $refnum, $comp_uif[$id], "Company UIF Contribution, $data[fnames] $data[sname]."); writetrans($sdlexp, $sdlbal, $date, $refnum, $sdl[$id], "SDL, {$data['fnames']} {$data['sname']}."); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance+({$grossal_nodedall[$id]}) WHERE empnum = '{$data['empnum']}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($data['empnum'], $salacc, $date, $refnum, "Gross Salary", $grossal_nodedall[$id], "c"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// writetrans($salacc, $salconacc, $date, $refnum, $grossal_nodedall[$id], "Gross Salary proccessing for employee, {$data['fnames']} {$data['sname']}."); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ($emp_uif[$id] > 0) { db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$emp_uif[$id]}) WHERE empnum = '{$data['empnum']}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($data['empnum'], $uifacc, $date, $refnum, "UIF", $emp_uif[$id], "d"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// writetrans($salconacc, $uifbal, $date, $refnum, $emp_uif[$id], "UIF for employee, {$data['fnames']} {$data['sname']}."); } if ($comp_uif[$id] > 0) { writetrans($uifexp, $uifbal, $date, $refnum, $emp_uif[$id], "UIF for employee, {$data['fnames']} {$data['sname']}."); } if ($commission[$id] > 0) { if ($con) { $commacc = $salacc; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance+({$commission[$id]}) WHERE empnum = '{$data['empnum']}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($data['empnum'], $commacc, $date, $refnum, "Commission", $commission[$id], "c"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// writetrans($commacc, $salconacc, $date, $refnum, $commission[$id], "Commission for employee, {$data['fnames']} {$data['sname']}."); } if ($abonus[$id] > 0) { if ($con) { $abonusacc = $salacc; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance+({$abonus[$id]}) WHERE empnum = '{$data['empnum']}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($data['empnum'], $abonusacc, $date, $refnum, "Bonus", $abonus[$id], "c"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// writetrans($abonusacc, $salconacc, $date, $refnum, $abonus[$id], "Bonus for employee, {$data['fnames']} {$data['sname']}."); } if ($paye[$id] > 0) { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$paye[$id]}) WHERE empnum = '{$data['empnum']}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($data['empnum'], $payeacc, $date, $refnum, "PAYE", $paye[$id], "d"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// writetrans($salconacc, $payeacc, $date, $refnum, $paye[$id], "PAYE for employee, {$data['fnames']} {$data['sname']}."); } if ($comp_pension[$id] > 0) { writetrans($pax, $pa, $date, $refnum, $comp_pension[$id], "Company Pension Contribution, {$data['fnames']} {$data['sname']}."); } if ($comp_medical[$id] > 0) { writetrans($max, $ma, $date, $refnum, $comp_medical[$id], "Company Medical Contribution, {$data['fnames']} {$data['sname']}."); } if ($emp_pension[$id] > 0) { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$emp_pension[$id]}) WHERE empnum = '{$data['empnum']}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($data['empnum'], $pa, $date, $refnum, "Pension Contribution", $emp_pension[$id], "d"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// writetrans($salconacc, $pa, $date, $refnum, $emp_pension[$id], "Employee Pension Contribution, {$data['fnames']} {$data['sname']}."); } if ($emp_medical[$id] > 0) { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$emp_medical[$id]}) WHERE empnum = '{$data['empnum']}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($data['empnum'], $ma, $date, $refnum, "Medical Contribution", $emp_medical[$id], "d"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// writetrans($salconacc, $ma, $date, $refnum, $emp_medical[$id], "Employee Medical Contribution, {$data['fnames']} {$data['sname']}."); } if ($comp_provident[$id] > 0) { writetrans($providente, $provident, $date, $refnum, $comp_provident[$id], "Company Provident Fund Contribution, {$data['fnames']} {$data['sname']}."); } if ($emp_provident[$id] > 0) { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$emp_provident[$id]}) WHERE empnum = '{$data['empnum']}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($data['empnum'], $provident, $date, $refnum, "Provident Fund Contribution", $emp_provident[$id], "d"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// writetrans($salconacc, $provident, $date, $refnum, $emp_provident[$id], "Provident Fund Contribution, {$data['fnames']} {$data['sname']}."); } if (false && $comp_other[$id] > 0) { writetrans($dedgenerale, $dedgeneral, $date, $refnum, $comp_other[$id], "Company Contribution to Other Deductions, {$data['fnames']} {$data['sname']}."); } if (false && $emp_other[$id] > 0) { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$emp_other[$id]}) WHERE empnum = '{$data['empnum']}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($data['empnum'], $dedgeneral, $date, $refnum, "Other Deductions Contribution", $emp_other[$id], "d"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// writetrans($salconacc, $dedgeneral, $date, $refnum, $emp_other[$id], "Other Deductions Contribution, {$data['fnames']} {$data['sname']}."); } if ($emp_ret[$id] > 0) { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$emp_ret[$id]}) WHERE empnum = '{$data['empnum']}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($data['empnum'], $retire, $date, $refnum, "Retirement Annuity Contribution", $emp_ret[$id], "d"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// writetrans($salconacc, $retire, $date, $refnum, $emp_ret[$id], "Employee Retirement Annuity Contribution, {$data['fnames']} {$data['sname']}."); } if ($comp_ret[$id] > 0) { writetrans($retiree, $retire, $date, $refnum, $comp_ret[$id], "Company Retirement Annuity Contribution, {$data['fnames']} {$data['sname']}."); } $paidamount[$id] += 0; db_conn('cubit'); $mons = "{$month};"; $due = sprint($nettpay[$id] - $paidamount[$id]); //, balance=balance+'$due' $sql = "\n\t\t\tUPDATE employees \n\t\t\tSET lastpay = '{$mons}', loanamt = (loanamt - cast(float '{$loaninstall[$id]}' as numeric)), \n\t\t\t\tloanfringe = (loanfringe - cast(float '{$fringe_loan[$id]}' as numeric)) \n\t\t\tWHERE empnum = '{$data['empnum']}' AND div = '" . USER_DIV . "'"; $rslt = db_exec($sql) or errDie("Unable to get employee details."); // check if loan is 0, then unmark loan as active, and store in archive $sql = "SELECT loanid FROM employees WHERE loanamt=0 AND empnum='{$data['empnum']}' AND gotloan='t'::bool"; $rslt = db_exec($sql) or errDie("Error reading employee details for loan."); if (pg_num_rows($rslt) > 0) { $loanid = pg_fetch_result($rslt, 0, 0); $sql = "UPDATE employees SET gotloan='f'::bool, loaninstall='0' WHERE empnum='{$data['empnum']}'"; $rslt = db_exec($sql) or errDie("Unable to update employee loan status."); $sql = "UPDATE emp_loanarchive SET donedata=CURRENT_DATE WHERE id='{$loanid}'"; $rslt = db_exec($sql) or errDie("Unable to archive loan."); $sql = "SELECT loanint_unpaid FROM employees WHERE empnum='{$data['empnum']}'"; $rslt = db_exec($sql) or errDie("Error reading loan interest for installment."); $loanint[$id] = sprint(pg_fetch_result($rslt, 0, 0)); } else { if ($loaninstall[$id] > 0) { $sql = "SELECT loanamt_tot, loanint_amt FROM employees WHERE empnum='{$data['empnum']}'"; $rslt = db_exec($sql) or errDie("Error reading loan interest for installment."); $loan_tot = pg_fetch_result($rslt, 0, 0); $loan_totint = pg_fetch_result($rslt, 0, 1); $loanint[$id] = sprint($loaninstall[$id] / $loan_tot * $loan_totint); } else { $loanint[$id] = 0; } } $sql = "\n\t\t\tUPDATE employees \n\t\t\tSET loanint_unpaid = (loanint_unpaid - cast(float '{$loanint[$id]}' as numeric)) \n\t\t\tWHERE empnum = '{$data['empnum']}' AND div = '" . USER_DIV . "'"; $rslt = db_exec($sql) or errDie("Unable to update employee interest."); if ($loaninstall[$id] > 0 && !empty($loanexp)) { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$loaninstall[$id]}) WHERE empnum = '{$data['empnum']}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($data['empnum'], $loanexp, $date, $refnum, "Loan Instalment", $loaninstall[$id], "d"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// writetrans($salconacc, $loanexp, $date, $refnum, $loaninstall[$id] - $loanint[$id], "Loan Installment for employee, {$data['fnames']} {$data['sname']}."); writetrans($salconacc, $intrec, $date, $refnum, $loanint[$id], "Loan Interest for employee, {$data['fnames']} {$data['sname']}."); /* record this month's loan amounts (for reversal purposes) */ // determine the salary period switch ($data["payprd"]) { case "d": $lprd = date_part($date, DP_DAY); break; case "m": case "f": case "w": default: $lprd = $week; break; } // record it! db_conn("cubit"); $sql = "\n\t\t\t\tINSERT INTO cubit.emp_loaninstallments (\n\t\t\t\t\tempnum, fdate, fperiod, fmonth, fyear, installment, interest, \n\t\t\t\t\tfringe\n\t\t\t\t) VALUES (\n\t\t\t\t\t'{$data['empnum']}', '{$date}', '{$lprd}', '{$month}', '" . EMP_YEAR . "', '{$loaninstall[$id]}', '{$loanint[$id]}', \n\t\t\t\t\t'{$fringe_loan[$id]}'\n\t\t\t\t)"; $rslt = db_exec($sql) or errDie("Error record loan fringe benefit."); } if (!isset($accid[$id])) { $accid[$id] = 0; } $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($totall[$id]); $np = $nettpay[$id]; if (isset($rbsa[$id])) { $np = sprint($np - array_sum($rbsa[$id])); } if ($data["payprd"] == "d") { $week = $pday; } if (empty($novert[$id])) { $novert[$id] = "0"; } if (empty($hovert[$id])) { $hovert[$id] = "0"; } db_conn("cubit"); $Sl = "\n\t\t\tINSERT INTO cubit.salpaid (\n\t\t\t\tempnum, month, bankid, salary, comm, uifperc, uif, payeperc, \n\t\t\t\tpaye, totded, totded_employer, totallow, loanins, \n\t\t\t\ttot_fringe, div, display, saldate, week, cyear, novert, \n\t\t\t\thovert, taxed_sal, hours, salrate, bonus\n\t\t\t) VALUES (\n\t\t\t\t'{$data['empnum']}', '{$month}', '{$accid[$id]}', '{$np}', '{$commission[$id]}', '0', '{$emp_uif[$id]}', '0', \n\t\t\t\t'{$paye[$id]}', '{$totded[$id]}', '{$totded_employer[$id]}', '{$totall[$id]}', '{$loaninstall[$id]}', \n\t\t\t\t'{$fringe_tot[$id]}', '" . USER_DIV . "', '','{$date}','{$week}', '" . EMP_YEAR . "', '{$novert[$id]}', \n\t\t\t\t'{$hovert[$id]}', '{$paye_salary[$id]}', '{$multi[$id]}','{$basic_sal_save[$id]}', '{$abonus[$id]}'\n\t\t\t)"; $Ry = db_exec($Sl) or errDie("Unable to insert record."); $pid = pglib_lastid("salpaid", "id"); // fringe benefits if (isset($fringeid[$id])) { foreach ($fringeid[$id] as $i => $fid) { // empledger($data["empnum"], $fringeaccs[$id][$i], $date, $refnum,"Fringe Benefit, ".$fringename[$id][$i], $fringebens[$id][$i], "d"); // writetrans($salconacc, $fringeaccs[$id][$i], $date, $refnum, $fringebens[$id][$i], "Fringe Benefit for employee, $data[fnames] $data[sname]."); } } /* db_conn('cubit'); // allowances $i = 0; $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) > 0) { while ($myAllow = pg_fetch_array ($allowRslt)) { db_conn('cubit'); # 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) { $dataAllow = pg_fetch_array ($empAllowRslt); if ( ($allowances[$id][$i]=sprint($allowances[$id][$i])) <= 0 ) continue; $Sl="INSERT INTO emp_inc(emp,year,period,date,payslip,type,code,description,qty,rate,amount,ex) VALUES ('$data[empnum]','$year','$month','$date','$pid','$myAllow[id]','','$myAllow[allowance]','1','0','".$allowances[$id][$i]."','')"; $Ri=db_exec($Sl) or errDie("unable to insert data.1"); if($con) { $myAllow['accid']=$salacc; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance+(".$allowances[$id][$i].") WHERE empnum = '$data[empnum]'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($data['empnum'], $allowaccs[$id][$i], $date, $refnum,"Allowance" , $allowances[$id][$i] , "c"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// writetrans($allowaccs[$id][$i], $salconacc, $date, $refnum, $allowances[$id][$i], "Allowances for employee, $data[fnames] $data[sname]."); } $i++; } }*/ $frinupd = new dbUpdate("emp_frin", "cubit"); if (isset($fringebens[$id])) { foreach ($fringebens[$id] as $key => $value) { $cols = grp(m("emp", $data["empnum"]), m("year", EMP_YEAR), m("period", $month), m("week", $week), m("fdate", $date), m("payslip", $pid), m("code", $key), m("description", sprint($fringename[$id][$key])), m("qty", 1), m("amount", $fringebens[$id][$key])); $frinupd->setCols($cols); $frinupd->run(DB_INSERT); } } if ($fringe_loan[$id] > 0) { $cols = grp(m("emp", $data["empnum"]), m("year", EMP_YEAR), m("period", $month), m("fdate", $date), m("payslip", $pid), m("code", "FRINLOAN"), m("description", "Loan Fringe Benefit"), m("qty", 1), m("amount", $fringe_loan[$id])); $frinupd->setCols($cols); $frinupd->run(DB_INSERT); } if ($fringe_medical[$id] > 0) { $cols = grp(m("emp", $data["empnum"]), m("year", EMP_YEAR), m("period", $month), m("fdate", $date), m("payslip", $pid), m("code", "FRINMED"), m("description", "Medical Fringe Benefit"), m("qty", 1), m("amount", $fringe_medical[$id])); $frinupd->setCols($cols); $frinupd->run(DB_INSERT); } if ($fringe_car1[$id] > 0) { $cols = grp(m("emp", $data["empnum"]), m("year", EMP_YEAR), m("period", $month), m("fdate", $date), m("payslip", $pid), m("code", "FRINCAR1"), m("description", "Fringe Benefit: Vehicle 1"), m("qty", 1), m("amount", $fringe_car1[$id])); $frinupd->setCols($cols); $frinupd->run(DB_INSERT); } if ($fringe_car2[$id] > 0) { $cols = grp(m("emp", $data["empnum"]), m("year", EMP_YEAR), m("period", $month), m("fdate", $date), m("payslip", $pid), m("code", "FRINCAR2"), m("description", "Fringe Benefit: Vehicle 2"), m("qty", 1), m("amount", $fringe_car2[$id])); $frinupd->setCols($cols); $frinupd->run(DB_INSERT); } // allowances if (isset($allowid[$id]) && is_array($allowid[$id]) && count($allowid[$id]) > 0) { foreach ($allowid[$id] as $k => $dummy) { if (($allowances[$id][$k] = sprint($allowances[$id][$k])) <= 0) { continue; } db_conn('cubit'); $sql = "\n\t\t\t\t\tINSERT INTO emp_inc (\n\t\t\t\t\t\temp, year, period, week, date, payslip, type, code, \n\t\t\t\t\t\tdescription, qty, rate, amount, ex\n\t\t\t\t\t) VALUES (\n\t\t\t\t\t\t'{$data['empnum']}', '" . EMP_YEAR . "', '{$month}', '{$week}', '{$date}', '{$pid}', '" . $allowid[$id][$k] . "', '', \n\t\t\t\t\t\t'" . $allowname[$id][$k] . "', '1', '0', '" . $allowances[$id][$k] . "', ''\n\t\t\t\t\t)"; $rslt = db_exec($sql) or errDie("unable to insert data.1"); if ($con) { $allowaccs[$id][$k] = $salacc; } $Sl = "UPDATE employees SET balance=balance+(" . $allowances[$id][$k] . ") WHERE empnum = '{$data['empnum']}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($data['empnum'], $allowaccs[$id][$k], $date, $refnum, "Allowance", $allowances[$id][$i], "c"); writetrans($allowaccs[$id][$k], $salconacc, $date, $refnum, $allowances[$id][$k], "Allowances for employee, {$data['fnames']} {$data['sname']}."); } } /* db_conn('cubit'); # Deductions $i = 0; $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) >0) { while ($myDeduct = pg_fetch_array ($deductRslt)) { db_conn('cubit'); # 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) { $dataDeduct = pg_fetch_array ($empDeductRslt); if ( ($deductions[$id][$i]=sprint($deductions[$id][$i])) > 0 ) { # Debit salaries control acc and credit acc $Sl="INSERT INTO emp_ded(emp,year,period,date,payslip,type,code,description,qty,rate,amount) VALUES ('$data[empnum]','$year','$month','$date','$pid','$myDeduct[id]','','$myDeduct[deduction]','1','0','".$deductions[$id][$i]."')"; $Ri=db_exec($Sl) or errDie("unable to insert data.2"); } if ( ($employer_deductions[$id][$i]=sprint($employer_deductions[$id][$i])) > 0 ) { $Sl="INSERT INTO emp_com(emp,year,period,date,payslip,type,code,description,qty,rate,amount) VALUES ('$data[empnum]','$year','$month','$date','$pid','$myDeduct[id]','','$myDeduct[deduction]','1','0','".$employer_deductions[$id][$i]."')"; //$Ri=db_exec($Sl) or errDie("unable to insert data1."); } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-(".$deductions[$id][$i].") WHERE empnum = '$data[empnum]'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($data['empnum'], $myDeduct['accid'], $date, $refnum,"Deduction" , $deductions[$id][$i], "d"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// writetrans($salconacc, $dedaccs[$id][$i], $date, $refnum, $deductions[$id][$i], "Deductions for employee, $data[fnames] $data[sname]."); $i++; } } }*/ # Deductions if (isset($deductid[$id]) && is_array($deductid[$id]) && count($deductid[$id]) > 0) { foreach ($deductid[$id] as $k => $dummy) { if (($deductions[$id][$k] = sprint($deductions[$id][$k])) <= 0) { continue; } db_conn('cubit'); # Debit salaries control acc and credit acc $sql = "\n\t\t\t\t\tINSERT INTO emp_ded (\n\t\t\t\t\t\temp, year, period, week, date, payslip, type, code, \n\t\t\t\t\t\tdescription, qty, rate, amount\n\t\t\t\t\t) VALUES (\n\t\t\t\t\t\t'{$data['empnum']}', '" . EMP_YEAR . "', '{$month}', '{$week}', '{$date}', '{$pid}', '" . $deductid[$id][$k] . "', '', \n\t\t\t\t\t\t'" . $deductname[$id][$k] . "', '1', '0', '" . $deductions[$id][$k] . "'\n\t\t\t\t\t)"; $rslt = db_exec($sql) or errDie("unable to insert data.2"); $sql = "UPDATE employees SET balance=balance-(" . $deductions[$id][$k] . ") WHERE empnum = '{$data['empnum']}'"; $rslt = db_exec($sql) or errDie("Unable to get employee details."); empledger($data['empnum'], $dedaccs[$id][$k], $date, $refnum, "Deduction", $deductions[$id][$k], "d"); writetrans($salconacc, $dedaccs[$id][$k], $date, $refnum, $deductions[$id][$k], "Deductions for employee, {$data['fnames']} {$data['sname']}."); } } db_conn('cubit'); $Sl = "SELECT * FROM rbs ORDER BY name"; $Rl = db_exec($Sl) or errDie("Unable to get data."); if (pg_num_rows($Rl) > 0) { while ($td = pg_fetch_array($Rl)) { $rbsa[$id][$td['id']] = sprint($rbsa[$id][$td['id']]); db_conn('cubit'); $sql = "\n\t\t\t\t\tINSERT INTO emp_inc (\n\t\t\t\t\t\temp, year, period, week, date, payslip, type, code, description, \n\t\t\t\t\t\tqty, rate, amount, ex\n\t\t\t\t\t) VALUES (\n\t\t\t\t\t\t'{$data['empnum']}', '" . EMP_YEAR . "', '{$month}', '{$week}', '{$date}', '{$pid}', '{$td['id']}', '', '{$td['name']}', \n\t\t\t\t\t\t'1', '0', '" . $rbsa[$id][$td['id']] . "', 'RBS'\n\t\t\t\t\t)"; db_exec($sql) or errDie("unable to insert data.3"); $sql = "UPDATE employees SET balance=balance+(" . $rbsa[$id][$td['id']] . ") WHERE empnum = '{$data['empnum']}'"; db_exec($sql) or errDie("Unable to get employee details."); empledger($data['empnum'], $td['account'], $date, $refnum, "Reimbursement", $rbsa[$id][$td['id']], "c"); writetrans($td['account'], $salconacc, $date, $refnum, $rbsa[$id][$td['id']], "Reimbursement for employee, {$data['fnames']} {$data['sname']}."); } } if (isset($subsname)) { foreach ($subsname[$id] as $sid => $sn) { if (empty($subsamt[$id][$sid]) || $subsamt[$id][$sid] <= 0) { continue; } $samt = sprint($subsamt[$id][$sid]); $i++; db_conn('cubit'); $cols = grp(m("emp", $data["empnum"]), m("year", EMP_YEAR), m("period", $month), m("week", $week), m("date", $date), m("payslip", $pid), m("type", $sid), m("code", ""), m("description", $subsname[$id][$sid]), m("qty", 1), m("rate", 0), m("amount", $samt), m("ex", "SUBS")); $subin = new dbUpdate("emp_inc", "cubit", $cols); $subin->run(DB_INSERT); $cols = grp(m("balance", raw("balance+({$samt})"))); $subin->setTable("employees"); $subin->setOpt($cols, wgrp(m("empnum", $data["empnum"]))); $subin->run(DB_UPDATE); empledger($data["empnum"], $subsacc[$id][$sid], $date, $refnum, "Subsistence Allowance: " . $subsname[$id][$sid], $samt, "c"); writetrans($subsacc[$id][$sid], $salconacc, $date, $refnum, $samt, "Subsistence Allownace (" . $subsname[$id][$sid] . ") for employee, {$data['fnames']} {$data['sname']}."); } } if ($paidamount[$id] > 0) { if ($data['paytype'] == "Cash") { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$paidamount[$id]}) WHERE empnum = '{$data['empnum']}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($data['empnum'], $cash_account, $date, $refnum, "Payment(Cash)", $paidamount[$id], "d"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// writetrans($salconacc, $cash_account, $date, $refnum, $paidamount[$id], "Salary Payment(Cash) for employee, {$data['fnames']} {$data['sname']}."); } elseif ($data['paytype'] == "Ledger Account") { /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$paidamount[$id]}) WHERE empnum = '{$data['empnum']}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($data['empnum'], $account[$id], $date, $refnum, "Payment(Ledger Account)", $paidamount[$id], "d"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// writetrans($salconacc, $account[$id], $date, $refnum, $paidamount[$id], "Salary Payment(Ledger Account) for employee, {$data['fnames']} {$data['sname']}."); } else { $accid[$id] += 0; core_connect(); $sql = "SELECT * FROM bankacc WHERE accid = '{$accid[$id]}' AND div = '" . USER_DIV . "'"; $rslt = db_exec($sql) or errDie("Unable to retrieve bank account link from Cubit", SELF); # check if link exists if (pg_numrows($rslt) < 1) { return "<li class='err'> ERROR : The bank account that you selected doesn't appear to have an account linked to it."; } $bank = pg_fetch_array($rslt); $bankacc = $bank["accnum"]; /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// db_conn('cubit'); $Sl = "UPDATE employees SET balance=balance-({$paidamount[$id]}) WHERE empnum = '{$data['empnum']}'"; $Rp = db_exec($Sl) or errDie("Unable to get employee details."); empledger($data['empnum'], $bankacc, $date, $refnum, "Payment(Bank)", $paidamount[$id], "d"); /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if ($paidamount[$id] > 0) { writetrans($salconacc, $bankacc, $date, $refnum, $paidamount[$id], "Salary Payment for employee(Bank), {$data['fnames']} {$data['sname']}."); banktrans($accid[$id], "withdrawal", $date, "{$data['fnames']} {$data['sname']}", "Salary Payment for employee, {$data['fnames']} {$data['sname']}", 0, $paidamount[$id], $salconacc, $data['empnum']); } } } db_conn('cubit'); if ($comp_uif[$id] > 0) { $Sl = "INSERT INTO emp_com(emp,year,period,week,date,payslip,type,code,description,qty,rate,amount) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','UIFC','','UIF','1','0','{$comp_uif[$id]}')"; $Ri = db_exec($Sl) or errDie("unable to insert data1."); } if ($emp_uif[$id] > 0) { $Sl = "INSERT INTO emp_ded(emp,year,period,week,date,payslip,type,code,description,qty,rate,amount) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','UIFE','','UIF','1','0','{$emp_uif[$id]}')"; $Ri = db_exec($Sl) or errDie("unable to insert data3."); } if ($sdl[$id] > 0) { $Sl = "INSERT INTO emp_com(emp,year,period,week,date,payslip,type,code,description,qty,rate,amount) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','SDL','','SDL','1','0','{$sdl[$id]}')"; $Ri = db_exec($Sl) or errDie("unable to insert data2."); } if ($paye[$id] > 0) { $Sl = "INSERT INTO emp_ded(emp,year,period,week,date,payslip,type,code,description,qty,rate,amount) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','PAYE','','PAYE','1','0','{$paye[$id]}')"; $Ri = db_exec($Sl) or errDie("unable to insert data3."); } if ($basic_sal[$id] > 0) { $Sl = "INSERT INTO emp_inc(emp,year,period,week,date,payslip,type,code,description,pension,qty,rate,amount,ex) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','INC','','Basic Salary','','1','0','{$basic_sal[$id]}','')"; $Ri = db_exec($Sl) or errDie("unable to insert data4."); } if ($data["loanpayslip"] > 0) { $Sl = "INSERT INTO emp_inc(emp,year,period,week,date,payslip,type,code,description,pension,qty,rate,amount,ex) VALUES\n\t\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','LOAN','','Employee Loan','','1','0','{$data['loanpayslip']}','')"; $Ri = db_exec($Sl) or errDie("unable to insert loan data for employee income on payslip."); $sql = "UPDATE employees SET loanpayslip='0' WHERE empnum='{$data['empnum']}'"; $rslt = db_exec($sql) or errDie("Error updating loan information for payslip."); } if ($bonus[$id] > 0 && $data["payprd"] != "f" && $data["payprd"] != "w") { $Sl = "INSERT INTO emp_inc(emp,year,period,week,date,payslip,type,code,description,pension,qty,rate,amount,ex) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','INCB','','Bonus','','1','0','{$bonus[$id]}','')"; $Ri = db_exec($Sl) or errDie("unable to insert data5."); } else { if ($bonus[$id] > 0) { $Sl = "INSERT INTO emp_inc(emp,year,period,week,date,payslip,type,code,description,pension,qty,rate,amount,ex) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','INCB','','Special Bonus/Additional Salary','','1','0','{$bonus[$id]}','')"; $Ri = db_exec($Sl) or errDie("unable to insert data5."); } } if ($annual[$id] > 0) { $Sl = "INSERT INTO emp_inc(emp,year,period,week,date,payslip,type,code,description,pension,qty,rate,amount,ex) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','INCAB','','Annual Bonus','','1','0','{$annual[$id]}','')"; $Ri = db_exec($Sl) or errDie("unable to insert data5."); } if ($commission[$id] > 0) { $Sl = "INSERT INTO emp_inc(emp,year,period,week,date,payslip,type,code,description,pension,qty,rate,amount,ex) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','INCC','','Commission','','1','0','{$commission[$id]}','')"; $Ri = db_exec($Sl) or errDie("unable to insert data6."); } if ($abonus[$id] > 0) { $Sl = "INSERT INTO emp_inc(emp,year,period,week,date,payslip,type,code,description,pension,qty,rate,amount,ex) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','INCAB','','Bonus','','1','0','{$abonus[$id]}','')"; $Ri = db_exec($Sl) or errDie("unable to insert data6a."); } if ($all_travel[$id] > 0) { $Sl = "INSERT INTO emp_inc(emp,year,period,week,date,payslip,type,code,description,pension,qty,rate,amount,ex) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','INCT','','Travel Allowance','','1','0','{$all_travel[$id]}','')"; $Ri = db_exec($Sl) or errDie("unable to insert data7."); } if ($loaninstall[$id] > 0) { $Sl = "INSERT INTO emp_ded(emp,year,period,week,date,payslip,type,code,description,qty,rate,amount) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','DEDL','','Loan Repayment','1','0','{$loaninstall[$id]}')"; $Ri = db_exec($Sl) or errDie("unable to insert data8."); } if ($comp_pension[$id] > 0) { $Sl = "INSERT INTO emp_com(emp,year,period,week,date,payslip,type,code,description,qty,rate,amount) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','COMP','','Pension','1','0','{$comp_pension[$id]}')"; $Ri = db_exec($Sl) or errDie("unable to insert data9."); } if ($emp_pension[$id] > 0) { $Sl = "INSERT INTO emp_ded(emp,year,period,week,date,payslip,type,code,description,qty,rate,amount) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','DEDP','','Pension','1','0','{$emp_pension[$id]}')"; $Ri = db_exec($Sl) or errDie("unable to insert data10."); } if ($comp_provident[$id] > 0) { $Sl = "INSERT INTO emp_com(emp,year,period,week,date,payslip,type,code,description,qty,rate,amount) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','COMV','','Provident','1','0','{$comp_provident[$id]}')"; $Ri = db_exec($Sl) or errDie("unable to insert data9."); } if ($emp_provident[$id] > 0) { $Sl = "INSERT INTO emp_ded(emp,year,period,week,date,payslip,type,code,description,qty,rate,amount) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','DEDV','','Provident','1','0','{$emp_provident[$id]}')"; $Ri = db_exec($Sl) or errDie("unable to insert data10."); } if ($comp_other[$id] > 0) { $Sl = "INSERT INTO emp_com(emp,year,period,week,date,payslip,type,code,description,qty,rate,amount) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','COMO','','Other Deductions','1','0','{$comp_other[$id]}')"; $Ri = db_exec($Sl) or errDie("unable to insert data9."); } if ($emp_other[$id] > 0) { $Sl = "INSERT INTO emp_ded(emp,year,period,week,date,payslip,type,code,description,qty,rate,amount) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','DEDO','','Other Deductions','1','0','{$emp_other[$id]}')"; $Ri = db_exec($Sl) or errDie("unable to insert data10."); } if ($comp_ret[$id] > 0) { $Sl = "INSERT INTO emp_com(emp,year,period,week,date,payslip,type,code,description,qty,rate,amount) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','COMR','','Retirement Annuity Fund','1','0','{$comp_ret[$id]}')"; $Ri = db_exec($Sl) or errDie("unable to insert data9."); } if ($emp_ret[$id] > 0) { $Sl = "INSERT INTO emp_ded(emp,year,period,week,date,payslip,type,code,description,qty,rate,amount) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','DEDR','','Retirement Annuity Fund','1','0','{$emp_ret[$id]}')"; $Ri = db_exec($Sl) or errDie("unable to insert data10."); } if ($data["fringe_car1_contrib"] > 0) { $Sl = "INSERT INTO emp_ded(emp,year,period,week,date,payslip,type,code,description,qty,rate,amount) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','DEDR','','Motorcar 1 Contribution for Use','1','0','{$data['fringe_car1_contrib']}')"; $Ri = db_exec($Sl) or errDie("unable to insert data10."); } if ($data["fringe_car2_contrib"] > 0) { $Sl = "INSERT INTO emp_ded(emp,year,period,week,date,payslip,type,code,description,qty,rate,amount) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','DEDR','','Motorcar 2 Contribution for Use','1','0','{$data['fringe_car2_contrib']}')"; $Ri = db_exec($Sl) or errDie("unable to insert data10."); } if ($comp_medical[$id] > 0) { $Sl = "INSERT INTO emp_com(emp,year,period,week,date,payslip,type,code,description,qty,rate,amount) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','COMM','','Medical Contribution','1','0','{$comp_medical[$id]}')"; $Ri = db_exec($Sl) or errDie("unable to insert data.11"); } if ($emp_medical[$id] > 0) { $Sl = "INSERT INTO emp_ded(emp,year,period,week,date,payslip,type,code,description,qty,rate,amount) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','DEDM','','Medical Contribution','1','0','{$emp_medical[$id]}')"; $Ri = db_exec($Sl) or errDie("unable to insert data.12"); } if ($overamt[$id] > 0) { $Sl = "INSERT INTO emp_inc(emp,year,period,week,date,payslip,type,code,description,qty,rate,amount,ex) VALUES\n\t\t\t('{$data['empnum']}','" . EMP_YEAR . "','{$month}','{$week}','{$date}','{$pid}','INCO','','Over Time','1','0','{$overamt[$id]}','')"; $Ri = db_exec($Sl) or errDie("unable to insert data.13"); } $ecost += 0; db_conn('cubit'); $Sl = "SELECT * FROM empc WHERE emp='{$data['empnum']}'"; $Ri = db_exec($Sl); if (pg_num_rows($Ri) > 0) { while ($cdata = pg_fetch_array($Ri)) { db_conn('cubit'); $sql = "SELECT * FROM costcenters WHERE ccid = '{$cdata['cid']}'"; $ccRslt = db_exec($sql) or errDie("Unable to retrieve Cost centers from database."); $cc = pg_fetch_array($ccRslt); $amount = sprint($ecost * $cdata['amount'] / 100); db_conn(PRD_DB); $sql = "\n\t\t\t\t\tINSERT INTO cctran (\n\t\t\t\t\t\tccid, trantype, typename, edate, description, \n\t\t\t\t\t\tamount, username, div\n\t\t\t\t\t) VALUES (\n\t\t\t\t\t\t'{$cc['ccid']}', 'ct', 'Salary', '{$date}', 'Salary for employee, {$data['fnames']} {$data['sname']}', \n\t\t\t\t\t\t'{$amount}', '" . USER_NAME . "', '" . USER_DIV . "'\n\t\t\t\t\t)"; $insRslt = db_exec($sql) or errDie("Unable to retrieve insert Cost center amounts into database."); } } $batch_setting = getCSetting("PRINT_PSLIPS_BATCH"); if (isset($batch_setting) and $batch_setting == "yes") { if ($printslip != "n") { $out .= "{$pid}|"; } } else { if ($printslip != "n") { $out .= "nhprinter('salwages/payslip-print.php?id={$pid}',{$pid});"; } } } $batch_setting = getCSetting("PRINT_PSLIPS_BATCH"); if (isset($batch_setting) and $batch_setting == "yes") { $out .= "',{$pid});</script>"; } else { if ($printslip != "n") { $out .= "</script>"; //spmove('../main.php');</script>"; } } if ($printslip == "n") { $out = "\n\t\t<h3>Process Employee Salaries</h3>\n\t\tSuccessfully processed salaries for selected employees.<br /><br />"; } /* update printslip setting */ setCSetting("EMP_PRINTSLIP", $printslip); pglib_transaction("COMMIT") or errDie("Unable to commit a database transaction.", SELF); //$out=""; return $out; }