function write($frm) { extract($_REQUEST); if ($frm->validate("write")) { return confirm($frm); } pglib_transaction("BEGIN"); db_conn('cubit'); $user = USER_NAME; $Sql = "SELECT * FROM assets WHERE (dep_month='yes' AND remaction IS NULL)"; $Rslt = db_exec($Sql) or errDie("Unable to access database."); $cc = ""; $todate = mkdate($date_year, $date_month, $date_day); $ttime = mktimefd($todate); $refnum = getrefnum($todate); while ($led = pg_fetch_array($Rslt)) { if (empty($led["autodepr_date"])) { $led["autodepr_date"] = $led["date"]; } explodeDate($led["autodepr_date"], $date_year, $date_month, $date_day); $ftime = mktime(0, 0, 0, $date_month, $date_day, $date_year); $depmonths = 0; while ($ftime < $ttime) { ++$depmonths; $ftime = mktime(0, 0, 0, $date_month + $depmonths, $date_day, $date_year); } if ($depmonths == 0) { continue; } $depperc = $led["dep_perc"]; $ml_perc = $depperc * ($depmonths % 12 / 12); $years = ($depmonths - $depmonths % 12) / 12; $baseamt = $led["amount"] - $led["accdep"]; $depamt = 0; /* yearly depreciations */ for ($i = 1; $i <= $years; ++$i) { $depamt += ($baseamt - $depamt) * ($depperc / 100); } /* monthly depreciation */ $depamt += ($baseamt - $depamt) * ($ml_perc / 100); $sql = "SELECT * FROM assetgrp WHERE grpid = '{$led['grpid']}' AND div = '" . USER_DIV . "'"; $grpRslt = db_exec($sql); $grp = pg_fetch_array($grpRslt); writetrans($grp['depacc'], $grp['accdacc'], $todate, $refnum, $depamt, "{$led['des']} Depreciation"); db_connect(); $sql = "UPDATE assets SET accdep = (accdep + '{$depamt}'), autodepr_date='{$todate}'\r\n\t\t\t\tWHERE (id='{$led['id']}' AND div = '" . USER_DIV . "')"; db_exec($sql) or errdie("Could not update assets table."); $snetval = $baseamt - $depamt; $sdate = date("Y-m-d"); $sql = "INSERT INTO assetledger(assetid, asset, date, depamt, netval, div) \r\n\t\t\t\tVALUES ('{$led['id']}', '{$led['des']}', '{$todate}', '{$depamt}', '{$snetval}', '" . USER_DIV . "')"; db_exec($sql) or errdie("Could not write to asset ledger."); $cc .= "CostCenter('ct', 'Asset Depreciation', '{$todate}', '{$led['des']} Depreciation', '{$depamt}', '');"; } pglib_transaction("COMMIT"); $write = "\r\n\t<script> \r\n\t{$cc}\r\n\t</script>\r\n\t<table " . TMPL_tblDflts . " width='50%'>\r\n\t\t<tr>\r\n\t\t\t<th>Auto Asset Depreciation</th>\r\n\t\t</tr>\r\n\t\t<tr class='datacell'>\r\n\t\t\t<td>Asset Depreciation has calculated and recorded.</td>\r\n\t\t</tr>\r\n\t</table>"; return $write; }
function enter($err = "") { extract($_REQUEST); $fields = array(); $fields["price"] = "0.00"; $fields["cust_id"] = 0; $fields["vatcode"] = "2"; $fields["vatinc"] = "inc"; if (!isset($date_year)) { explodeDate(DATE_STD, $date_year, $date_month, $date_day); } extract($fields, EXTR_SKIP); db_connect(); // Retrieve asset $sql = "SELECT * FROM cubit.assets WHERE id='{$asset_id}'"; $asset_rslt = db_exec($sql) or errDie("Unable to retrieve asset."); $asset_data = pg_fetch_array($asset_rslt); // Retrieve asset group $sql = "SELECT * FROM cubit.assetgrp WHERE grpid='{$asset_data['grpid']}'"; $asgrp_rslt = db_exec($sql) or errDie("Unable to retrieve asset group."); $asgrp_data = pg_fetch_array($asgrp_rslt); // Retrieve customer $sql = "SELECT * FROM cubit.customers ORDER BY surname ASC"; $cust_rslt = db_exec($sql) or errDie("Unable to retrieve customers."); $cust_sel = "<select name='cust_id' style='width: 100%'>"; $cust_sel .= "<option " . fsel($cust_id == "-1") . " value='-1'>Cash Sale</option>"; //$cust_sel.= "<option ".fsel($cust_id == "-2")." value='-2'>Ledger Account Sale</option>"; $cust_sel .= "<optgroup label='Customer Sale'>"; while ($cust_data = pg_fetch_array($cust_rslt)) { $sel = fsel($cust_id == $cust_data["cusnum"]); $cust_sel .= "\r\n\t\t<option {$sel} value='{$cust_data['cusnum']}'>\r\n\t\t\t{$cust_data['cusname']} {$cust_data['surname']}\r\n\t\t</option>"; } $cust_sel .= "</optgroup>"; $cust_sel .= "</select>"; $cds = qryVatcode(); $sel_vatcode = db_mksel($cds, "vatcode", $vatcode, "#id", "#code"); if ($asset_data["nonserial"] == "1") { if (!isset($qty)) { $qty = $asset_data["serial2"]; } $qtyinput = "\r\n\t\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t\t<td>Sell Units</td>\r\n\t\t\t\t\t\t\t<td><input type='text' size='4' name='qty' value='{$qty}' /></td>\r\n\t\t\t\t\t\t</tr>"; } else { $qtyinput = "<input type='hidden' name='qty' value='1' />"; } $OUTPUT = "\r\n\t\t\t\t<center>\r\n\t\t\t\t<h3>Asset Sale</h3>\r\n\t\t\t\t{$err}\r\n\t\t\t\t<form method='POST' action='" . SELF . "'>\r\n\t\t\t\t\t<input type='hidden' name='key' value='confirm' />\r\n\t\t\t\t\t<input type='hidden' name='asset_id' value='{$asset_id}' />\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 colspan='2'>Details</th>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t<td>Group</td>\r\n\t\t\t\t\t\t<td>{$asgrp_data['grpname']}</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t<td>Serial Number</td>\r\n\t\t\t\t\t\t<td>{$asset_data['serial']}</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t<td>2nd Serial Number/Qty</td>\r\n\t\t\t\t\t\t<td>{$asset_data['serial2']}</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t<td>Description</td>\r\n\t\t\t\t\t\t<td>{$asset_data['des']}</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t<td>Customer</td>\r\n\t\t\t\t\t\t<td>{$cust_sel}</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t<td>Date</td>\r\n\t\t\t\t\t\t<td>" . mkDateSelect("date", $date_year, $date_month, $date_day) . "</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t<td>Vat</td>\r\n\t\t\t\t\t\t<td>\r\n\t\t\t\t\t\t\t<input type='radio' name='vatinc' value='inc' " . fcheck($vatinc != "exc") . " /> Including\r\n\t\t\t\t\t\t\t<input type='radio' name='vatinc' value='exc' " . fcheck($vatinc == "exc") . " /> Excluding\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t<td>Vatcode</td>\r\n\t\t\t\t\t\t<td>{$sel_vatcode}</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t{$qtyinput}\r\n\t\t\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t\t\t<td>Selling Price/Asset Unit</td>\r\n\t\t\t\t\t\t<td nowrap='t'>\r\n\t\t\t\t\t\t\t" . CUR . " <input type='text' size='10' name='price' value='{$price}'>\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td colspan='2' align='right'>\r\n\t\t\t\t\t\t\t<input type='submit' value='Confirm »' />\r\n\t\t\t\t\t\t</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>\r\n\t\t\t\t</form>\r\n\t\t\t\t</center>"; return $OUTPUT; }
function slctacc($err = "") { extract($_POST); db_conn(PRD_DB); $refnum = getrefnum(); if (empty($jr_year)) { explodeDate(false, $jr_year, $jr_month, $jr_day); } if (empty($dtaccid)) { $dtaccid = false; } if (empty($ctaccid)) { $ctaccid = false; } /** REFNUM **/ $view = "\n\t\t\t\t<center>\n\t\t\t\t<h3> Journal transaction </h3>\n\t\t\t\t{$err}\n\t\t\t\t<form action='" . SELF . "' method='POST' name='form'>\n\t\t\t\t\t<input type='hidden' name='key' value='details' />\n\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th>Field</th>\n\t\t\t\t\t\t<th>Value</th>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Date</td>\n\t\t\t\t\t\t<td>" . mkDateSelect("jr", $jr_year, $jr_month, $jr_day) . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Reference Number</td>\n\t\t\t\t\t\t<td><input type='text' size='10' name='refnum' value='" . $refnum++ . "'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t" . TBL_BR . "\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td align='center'>\n\t\t\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<td><h4>Debit</h4></td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<th>Select Account</th>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t<td valign='center'>" . mkAccSelect("dtaccid", $dtaccid) . "</td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td align='center'>\n\t\t\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<td><h4>Credit</h4></td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<th>Select Account</th>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr bgcolor='" . bgcolorc(0) . "'>\n\t\t\t\t\t\t\t\t\t<td valign='center'>" . mkAccSelect("ctaccid", $ctaccid) . "</td>\n\t\t\t\t\t\t\t\t\t<td><input name='details' type='submit' value='Enter Details >'></td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>\n\t\t\t\t<br />\n\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td align='center'>\n\t\t\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<td><h4>Debit</h4></td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<th>Account number</th>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr bgcolor='" . bgcolorc(0) . "'>\n\t\t\t\t\t\t\t\t\t<td valign='center'><input type='text' name='dtaccnum' size='20'></td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td align='center'>\n\t\t\t\t\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<td><h4>Credit</h4></td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<th>Account number</th>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr bgcolor='" . bgcolorc(0) . "'>\n\t\t\t\t\t\t\t\t\t<td valign='center'><input type='text' name='ctaccnum' size='20'></td>\n\t\t\t\t\t\t\t\t\t<td><input type='submit' value='Enter Details >'></td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</table>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>\n\t\t\t\t<br />\n\t\t\t\t</form>" . mkQuickLinks(ql("../reporting/index-reports.php", "Financials"), ql("../core/acc-new2.php", "Add New Account"), ql("../core/trans-new.php", "Journal Transactions")); return $view; }
function enter($_GET, $err = "") { # get vars extract($_GET); $amount = sprint($amount); if (!isset($e_year)) { explodeDate($_GET["edate"], $e_year, $e_month, $e_day); } $edate = mkDateSelect("e", $e_year, $e_month, $e_day); db_connect(); $cc_list = ""; if (!isset($remids)) { $remids = array(); } $search_flag = FALSE; $search_val = ""; if (isset($search) and strlen($search) > 0) { unset($changeproject); $get_ccid = "SELECT ccid FROM costcenters WHERE centercode = '{$search}' LIMIT 1"; $run_ccid = db_exec($get_ccid) or errDie("Unable to get cost center information."); if (pg_numrows($run_ccid) > 0) { if (!isset($project1) or $project1 == "" or $project1 == "0") { unset($_GET["search"]); return enter($_GET, "<li class='err'>Please Select A Project First</li>"); } $temparr = pg_fetch_array($run_ccid); $get_link = "SELECT id FROM costcenters_links WHERE ccid = '{$temparr['ccid']}' AND project1 = '{$project1}' LIMIT 1"; $run_link = db_exec($get_link) or errDie("Unable to get cost center information."); if (pg_numrows($run_link) > 0) { $search_flag = TRUE; $val = pg_fetch_array($run_link); $search_val = $val['id']; } else { $search_flag = FALSE; } } } #compile list of selected centers if (isset($new_cc) and $new_cc != "0") { $ccids[] = $new_cc; } foreach ($remids as $each => $own) { if ($own == "yes") { unset($ccids[$each]); } } if (!isset($writeid)) { $writeid = ""; } if (!isset($ccids)) { $ccids = ""; } if (!isset($project1)) { $project1 = ""; } if (!isset($cdescrip)) { $cdescrip = ""; } $showedate = "{$e_year}-{$e_month}-{$e_day}"; if ((!isset($writeid) or strlen($writeid) < 1) and $writeid != "0") { #write all this information to safe location for future retrieval $ins_sql = "\n\t\t\t\t\t\tINSERT INTO cc_popup_data \n\t\t\t\t\t\t\t(type,typename,edate,descrip,amount,cdescrip,sdate) \n\t\t\t\t\t\tVALUES \n\t\t\t\t\t\t\t('{$type}','{$typename}','{$showedate}','{$descrip}','{$amount}','{$cdescrip}','now')\n\t\t\t\t\t"; $run_ins = db_exec($ins_sql) or errDie("Unable to save cost center information."); $writeid = pglib_lastid("cc_popup_data", "id"); } $project = ""; $showproject = "<tr>"; if (!isset($project1) or strlen($project1) < 1 or isset($changeproject)) { $showproject .= "<td><br></td></tr><tr><th colspan='3'>Select Project</th></tr><tr class='" . bg_class() . "'><td colspan='3'>"; $showproject .= "<select name='project1' onChange='javascript:document.form1.submit();'>"; $showproject .= "<option value='' disabled selected>Select Project</option>"; $get_pros = "SELECT * FROM projects WHERE id != '1'"; $run_pros = db_exec($get_pros) or errDie("Unable to get project information"); if (pg_numrows($run_pros) > 0) { while ($parr = pg_fetch_array($run_pros)) { $showproject .= "<option value='{$parr['id']}'>{$parr['project_name']}</option>"; } } $showproject .= "</select>"; $showproject . "</td>"; $prosearch = "0"; } else { #show current + offer to change $get_pro = "SELECT * FROM projects WHERE id = '{$project1}' LIMIT 1"; $run_pro = db_exec($get_pro) or errDie("Unable to get project information."); if (pg_numrows($run_pro) > 0) { $parr = pg_fetch_array($run_pro); $showproject .= "\n\t\t\t\t\t\t\t\t" . TBL_BR . "\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<th colspan='3'>Cost Centers For Project : {$parr['project_name']}</th>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t\t<input type='hidden' name='project1' value='{$project1}'>\n\t\t\t\t\t\t\t\t\t<td colspan='2'>{$parr['project_name']}</td>\n\t\t\t\t\t\t\t\t\t<td><input type='submit' name='changeproject' value='Change'></td>\n\t\t\t\t\t\t\t\t</tr>"; } $prosearch = "{$project1}"; } $showproject .= "</tr>"; #get ccids of all cost centers in this 'project' $get_ccids = "SELECT id,ccid FROM costcenters_links WHERE project1 = '{$prosearch}'"; $run_ccids = db_exec($get_ccids) or errDie("Unable to get cost center information."); if (pg_numrows($run_ccids) > 0) { $pccids = array(); while ($ccarr = pg_fetch_array($run_ccids)) { $pccids[] = $ccarr['id']; } } else { $pccids[] = ""; } #make the new dropdown $get_ccs = "SELECT * FROM costcenters_links"; $run_ccs = db_exec($get_ccs) or errDie("Unable to get cost center information."); $cc_drop = "<input type='text' size='5' name='search'><select name='new_cc' onChange='javascript:document.form1.submit();'>"; $cc_drop .= "<option value='0'>Select A Cost Center</option>"; while ($cc = pg_fetch_array($run_ccs)) { $get_cname = "SELECT centername FROM costcenters WHERE ccid = '{$cc['ccid']}' LIMIT 1"; $run_cname = db_exec($get_cname) or errDie("Unable to get cost center information."); if (pg_numrows($run_cname) == 1) { $varr = pg_fetch_array($run_cname); $cname = $varr['centername']; } else { $cname = ""; } #first check if this cost center is in the 'selected' project if (in_array($cc['id'], $pccids)) { if (!is_array($ccids) or !in_array($cc['id'], $ccids)) { if ($search_flag) { $ccids[] = $search_val; $search_flag = FALSE; } else { $cc_drop .= "<option value='{$cc['id']}'>{$cname}</option>"; } } } } $cc_drop .= "</select>"; if (is_array($ccids)) { $ccids = array_unique($ccids); } if (is_array($ccids)) { foreach ($ccids as $each => $own) { $get_cc = "SELECT ccid FROM costcenters_links WHERE id = '{$own}' LIMIT 1"; $run_cc = db_exec($get_cc) or errDie("Unable to get cost center information."); if (pg_numrows($run_cc) < 1) { #problem } $arr = pg_fetch_array($run_cc); if (!isset($ccperc[$each])) { $ccperc[$each] = ""; } if (!isset($ccidpro[$each])) { $ccidpro[$each] = $project1; } $get_cname = "SELECT centercode,centername FROM costcenters WHERE ccid = '{$arr['ccid']}' LIMIT 1"; $run_cname = db_exec($get_cname) or errDie("Unable to get cost center information."); if (pg_numrows($run_cname) == 1) { $varr = pg_fetch_array($run_cname); $cname = $varr['centername']; $ccode = $varr['centercode']; } else { $cname = ""; $ccode = ""; } $cc_list .= "\n\t\t\t\t\t\t\t<input type='hidden' name='ccids[{$each}]' value='{$own}'>\n\t\t\t\t\t\t\t<input type='hidden' name='ccidpro[{$each}]' value='{$ccidpro[$each]}'>\n\t\t\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t\t\t<td>({$ccode}) {$cname}</td>\n\t\t\t\t\t\t\t\t<td><input type='text' name='ccperc[{$each}]' size='8' value='{$ccperc[$each]}'></td>\n\t\t\t\t\t\t\t\t<td><input type='checkbox' name='remids[{$each}]' value='yes' onClick='javascript:document.form1.submit();'></td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t"; } } $enter = "\n\t\t\t<center>\n\t\t\t<h3>Allocate amount to Cost Centers</h3>\n\t\t\t<center>{$err}</center>\n\t\t\t<br>\n\t\t\t<form action='" . SELF . "' method='POST' name='form1'>\n\t\t\t\t<input type='hidden' name='key' value='confirm'>\n\t\t\t\t<input type='hidden' name='type' value='{$type}'>\n\t\t\t\t<input type='hidden' name='typename' value='{$typename}'>\n\t\t\t\t<input type='hidden' name='amount' value='{$amount}'>\n\t\t\t\t<input type='hidden' name='descrip' value='{$descrip}'>\n\t\t\t\t<input type='hidden' name='cdescrip' value='{$cdescrip}'>\n\t\t\t\t<input type='hidden' name='e_year' value='{$e_year}'>\n\t\t\t\t<input type='hidden' name='e_month' value='{$e_month}'>\n\t\t\t\t<input type='hidden' name='e_day' value='{$e_day}'>\n\t\t\t\t<input type='hidden' name='writeid' value='{$writeid}'>\n\t\t\t\t<input type='hidden' name='project1' value='{$project1}'>\n\t\t\t<table " . TMPL_tblDflts . " width='400'>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Field</th>\n\t\t\t\t\t<th colspan='2'>Value</th>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Type</td>\n\t\t\t\t\t<td colspan='2'>{$typename}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Date</td>\n\t\t\t\t\t<td colspan='2' nowrap>{$edate}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Total Amount</td>\n\t\t\t\t\t<td colspan='2'>{$amount}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Description</td>\n\t\t\t\t\t<td colspan='2'>{$descrip}</td>\n\t\t\t\t</tr>\n\t\t\t\t{$showproject}\n\t\t\t\t<tr><td><br></td></tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Cost Center</th>\n\t\t\t\t\t<th>% of Total Amount</th>\n\t\t\t\t\t<th>Remove</th>\n\t\t\t\t</tr>\n\t\t\t\t{$cc_list}\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td colspan='3'>{$cc_drop}</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr><td><br></td></tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan='2 align='center'><input type='submit' name='done' value='Confirm »'></td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\t</form>"; return $enter; }
function printInv() { extract($_REQUEST); if (isset($key)) { $key = strtolower($key); switch ($key) { case "export to spreadsheet": case "print": case "save": $pure = true; break; case "view": default: $pure = false; } } else { $pure = false; } if (!isset($from_year)) { explodeDate(false, $from_year, $from_month, $from_day); explodeDate(false, $to_year, $to_month, $to_day); explodeDate(date("Y-m-") . "01", $ncdate_from_year, $ncdate_from_month, $ncdate_from_day); explodeDate(false, $ncdate_to_year, $ncdate_to_month, $ncdate_to_day); } if (!isset($type)) { $type = "all"; } if (!isset($cust)) { $cust = ""; } if (!isset($ordnosearch)) { $ordnosearch = ""; } $sel_accepted = $type == "accepted" ? "checked='t'" : ""; $sel_notaccepted = $type == "notaccepted" ? "checked='t'" : ""; $sel_all = $type != "accepted" && $type != "notaccepted" ? "checked='t'" : ""; $printQuo = ""; if (isset($check_followon) and strlen($check_followon) > 0) { $checkfollowonbox = "checked='yes'"; } if (!$pure) { $printQuo .= "\n\t\t<form method='post' action='" . SELF . "'>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<th colspan='2'>View Options</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Begin Date:</td>\n\t\t\t\t<td>" . mkDateSelect("from", $from_year, $from_month, $from_day) . "</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>End Date:</td>\n\t\t\t\t<td>" . mkDateSelect("to", $to_year, $to_month, $to_day) . "</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Follow On Date From:</td>\n\t\t\t\t<td>" . mkDateSelect("ncdate_from", $ncdate_from_year, $ncdate_from_month, $ncdate_from_day) . "\n\t\t\t\tCheck Followon <input type='checkbox' name='check_followon' value='yes' {$checkfollowonbox}></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Follow On Date To:</td>\n\t\t\t\t<td>" . mkDateSelect("ncdate_to", $ncdate_to_year, $ncdate_to_month, $ncdate_to_day) . "</td>\n\t\t\t</tr>\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td>Type:</td>\n\t\t\t<td>\n\t\t\t\t<input type='radio' name='type' {$sel_accepted} value='accepted' /> Accepted\n\t\t\t\t<input type='radio' name='type' {$sel_notaccepted} value='notaccepted' /> Not Yet Accepted\n\t\t\t\t<input type='radio' name='type' {$sel_all} value='all' /> All\n\t\t\t</td>\n\t\t</tr>\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td>Customer:</td>\n\t\t\t<td><input type='text' size='20' name='cust' value='{$cust}'></td>\n\t\t</tr>\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td>Quote No:</td>\n\t\t\t<td><input type='text' size='6' name='ordnosearch' value='{$ordnosearch}'></td>\n\t\t</tr>\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td>View Other Quotes</td>\n\t\t\t<td>\n\t\t\t\t<input type='button' value='POS (Non Customers) Quotes' onClick=\"document.location='pos-quote-view.php'\">\n\t\t\t\t<input type='submit' name='button[nonsquote]' value='Non Stock Quotes'>\n\t\t\t</td>\n\t\t</tr>\n\t\t<tr>\n\t\t\t<td colspan='2' align='right'><input type='submit' name='key' value='Filter' /></td>\n\t\t</tr>\n\t\t</table>"; } if (!isset($key)) { $printQuo .= "</form>"; return $printQuo; } $filt = "odate >= '{$from_year}-{$from_month}-{$from_day}' AND odate <= '{$to_year}-{$to_month}-{$to_day}'"; if (isset($check_followon) and strlen($check_followon) > 0) { $filt .= " AND (ncdate >= '{$ncdate_from_year}-{$ncdate_from_month}-{$ncdate_from_day}' AND ncdate <= '{$ncdate_to_year}-{$ncdate_to_month}-{$ncdate_to_day}')"; } switch ($type) { case "accepted": $filt .= " AND accepted='y'"; break; case "notaccepted": $filt .= " AND accepted='n'"; break; case "all": default: } $filt .= " AND lower(surname) LIKE lower('%{$cust}%')"; $filt .= " AND ordno LIKE '%{$ordnosearch}%'"; db_conn("cubit"); $sql = "SELECT filename FROM template_settings WHERE template='invoices'"; $tsRslt = db_exec($sql) or errDie("Unable to retrieve template settings from Cubit."); $template = pg_fetch_result($tsRslt, 0); if ($template == "invoice-print.php") { $pdf = "pdf/quote-pdf-print.php?quoid="; } else { $pdf = "pdf/pdf-quote.php?quoid="; } # Set up table to display in $printQuo .= "\n\t\t<h3>View previous Quotes</h3>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<th>Department</th>\n\t\t\t\t<th>Sales Person</th>\n\t\t\t\t<th>Quote No.</th>\n\t\t\t\t<th>Quote Date</th>\n\t\t\t\t<th>Next Contact Date</th>\n\t\t\t\t<th>Customer Name</th>\n\t\t\t\t<th>Order No</th>\n\t\t\t\t<th>Grand Total</th>\n\t\t\t\t" . ($pure ? "" : "<th colspan='6'>Options</th><th>Email</th>") . "\n\t\t\t</tr>"; # connect to database db_connect(); # Query server $i = 0; $sql = "SELECT * FROM quotes WHERE accepted != 'c' AND done = 'y' AND div = '" . USER_DIV . "' AND ({$filt}) ORDER BY quoid DESC"; $quoRslt = db_exec($sql) or errDie("Unable to retrieve quotes from database."); if (pg_numrows($quoRslt) < 1) { $printQuo .= "\n\t\t\t<tr bgcolor='" . bgcolorc(0) . "'>\n\t\t\t\t<td colspan='14'>No Quotes matching criteria.</td>\n\t\t\t</tr>\n\t\t\t" . TBL_BR; } else { while ($quo = pg_fetch_array($quoRslt)) { # format date $quo['odate'] = explode("-", $quo['odate']); $quo['odate'] = $quo['odate'][2] . "-" . $quo['odate'][1] . "-" . $quo['odate'][0]; $printQuo .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>{$quo['deptname']}</td>\n\t\t\t\t\t<td>{$quo['salespn']}</td>\n\t\t\t\t\t<td>{$quo['quoid']}</td>\n\t\t\t\t\t<td align='center'>{$quo['odate']}</td>\n\t\t\t\t\t<td align='center'>{$quo['ncdate']}</td>\n\t\t\t\t\t<td>{$quo['cusname']} {$quo['surname']}</td>\n\t\t\t\t\t<td align='right'>{$quo['ordno']}</td>\n\t\t\t\t\t<td>" . CUR . " {$quo['total']}</td>"; //<td><a href='quote-email.php?evs=$quo[quoid]'>Email</a></td> if (!$pure) { $printQuo .= "\n\t\t\t\t\t<td><a href='quote-details.php?quoid={$quo['quoid']}'>Details</a></td>\n\t\t\t\t\t<td><a href='quote-new.php?quoid={$quo['quoid']}&cont=true&letters=&done='>Edit</a></td>"; if ($quo['accepted'] == 'n') { $printQuo .= "\n\t\t\t\t\t\t<td><a href='quote-cancel.php?quoid={$quo['quoid']}'>Cancel</a></td>\n\t\t\t\t\t\t<td><a href='quote-accept.php?quoid={$quo['quoid']}'>Accept</a></td>\n\t\t\t\t\t\t<td><a href='quote-print.php?quoid={$quo['quoid']}' target='_blank'>Print</a></td>\n\t\t\t\t\t\t<td><a href='{$pdf}{$quo['quoid']}' target='_blank'>Print in PDF</a></td>\n\t\t\t\t\t\t<td><input type='checkbox' name='evs[]' value='{$quo['quoid']}'></td>\n\t\t\t\t\t</tr>"; } else { $printQuo .= "\n\t\t\t\t\t\t<td colspan='2'>Accepted</td>\n\t\t\t\t\t\t<td><a href='quote-print.php?quoid={$quo['quoid']}' target='_blank'>Print</a></td>\n\t\t\t\t\t\t<td><a href='{$pdf}{$quo['quoid']}' target='_blank'>Print in PDF</a></td>\n\t\t\t\t\t\t<td><input type='checkbox' name='evs[]' value='{$quo['quoid']}'></td>\n\t\t\t\t\t</tr>"; } } } } if (!$pure) { $printQuo .= "\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan='13'>\n\t\t\t\t\t\t<input type='submit' name='key' value='Print'>\n\t\t\t\t\t\t| <input type='submit' name='key' value='Export to Spreadsheet'>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td colspan='2' align='right'><input type='submit' name='key' value='Send Emails'></td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\t</form>"; } else { $printQuo .= "\n\t\t\t</table>"; $OUTPUT = clean_html($printQuo); switch ($key) { case "export to spreadsheet": require_lib("xls"); StreamXLS("quotes", $OUTPUT); break; case "print": $OUTPUT = "<h3>Quotes</h3>{$OUTPUT}"; require "tmpl-print.php"; break; case "save": $pure = true; break; } } // Layout // $printQuo .= "</table>" // .mkQuickLinks( // ql("quote-new.php", "New Quote"), // ql("customers-new.php", "New Customer") // ); return $printQuo; }
function printSord() { extract($_REQUEST); if (isset($key)) { $key = strtolower($key); switch ($key) { case "export to spreadsheet": case "print": case "save": $pure = true; break; case "view": default: $pure = false; } } else { $pure = false; } if (!isset($from_year)) { explodeDate(false, $from_year, $from_month, $from_day); explodeDate(false, $to_year, $to_month, $to_day); } if (!isset($type)) { $type = "all"; } $sel_accepted = $type == "accepted" ? "checked='t'" : ""; $sel_notaccepted = $type == "notaccepted" ? "checked='t'" : ""; $sel_all = $type != "accepted" && $type != "notaccepted" ? "checked='t'" : ""; $printSord = ""; if (!$pure) { $printSord .= "\n\t\t\t<form method='POST' action='" . SELF . "'>\n\t\t\t<table " . TMPL_tblDflts . ">\n\t\t\t\t<tr>\n\t\t\t\t\t<th colspan='2'>View Options</th>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Begin Date:</td>\n\t\t\t\t\t<td>" . mkDateSelect("from", $from_year, $from_month, $from_day) . "</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>End Date:</td>\n\t\t\t\t\t<td>" . mkDateSelect("to", $to_year, $to_month, $to_day) . "</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>Type:</td>\n\t\t\t\t\t<td>\n\t\t\t\t\t\t<input type='radio' name='type' {$sel_accepted} value='accepted' /> Accepted/Invoiced\n\t\t\t\t\t\t<input type='radio' name='type' {$sel_notaccepted} value='notaccepted' /> Not Yet Accepted\n\t\t\t\t\t\t<input type='radio' name='type' {$sel_all} value='all' /> All\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan='2' align='right'><input type='submit' value='Filter' /></td>\n\t\t\t\t</tr>\n\t\t\t</table>"; } if (!isset($key)) { $printSord .= "</form>"; return $printSord; } /* build filter */ $filt = "odate>='{$from_year}-{$from_month}-{$from_day}' AND odate<='{$to_year}-{$to_month}-{$to_day}'"; switch ($type) { case "accepted": $filt .= " AND accepted='y'"; break; case "notaccepted": $filt .= " AND accepted='n'"; break; case "all": default: } $printSord .= "\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<th>Department</th>\n\t\t\t\t<th>Sales Person</th>\n\t\t\t\t<th>Sales Order No.</th>\n\t\t\t\t<th>Sales Order Date</th>\n\t\t\t\t<th>Customer Name</th>\n\t\t\t\t<th>Order No</th>\n\t\t\t\t<th>Grand Total</th>\n\t\t\t\t" . ($pure ? "" : "<th colspan='6'>Options</th>") . "\n\t\t\t</tr>"; $i = 0; $sql = "\n\t\tSELECT * FROM cubit.sorders \n\t\tWHERE accepted != 'c' AND done = 'y' AND div = '" . USER_DIV . "' AND ({$filt}) \n\t\tORDER BY sordid DESC"; $sordRslt = db_exec($sql) or errDie("Unable to retrieve Sales Orders from database."); if (pg_numrows($sordRslt) < 1) { $printSord .= "\n\t\t\t<tr bgcolor='" . bgcolorc(0) . "'>\n\t\t\t\t<td colspan='13'>No Sales Orders matching criteria.</td>\n\t\t\t</tr>"; } else { while ($sord = pg_fetch_array($sordRslt)) { # format date $sord['odate'] = explode("-", $sord['odate']); $sord['odate'] = $sord['odate'][2] . "-" . $sord['odate'][1] . "-" . $sord['odate'][0]; $det = "sorder-details.php"; $cancel = "sorder-cancel.php"; $accept = "sorder-accept.php"; $print = "sorder-print.php"; $edit = "sorder-new.php"; if ($sord['location'] == 'int') { $det = "intsorder-details.php"; $cancel = "intsorder-cancel.php"; $accept = "intsorder-accept.php"; $print = "intsorder-print.php"; $edit = "intsorder-new.php"; } $sp4 = " "; $bcurr = CUR; if ($sord['location'] == 'int') { $bcurr = $sord['currency']; } $printSord .= "\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>{$sord['deptname']}</td>\n\t\t\t\t\t<td>{$sord['salespn']}</td>\n\t\t\t\t\t<td>{$sord['sordid']}</td>\n\t\t\t\t\t<td align='center'>{$sord['odate']}</td>\n\t\t\t\t\t<td>{$sord['cusname']} {$sord['surname']}</td>\n\t\t\t\t\t<td align='right'>{$sord['ordno']}</td>\n\t\t\t\t\t<td align='right'>{$bcurr} {$sord['total']}</td>"; if (!$pure) { $printSord .= "\n\t\t\t\t\t<td><a href='{$det}?sordid={$sord['sordid']}'>Details</a></td>\n\t\t\t\t\t<td><a href='javascript: printer(\"{$print}?invid={$sord['sordid']}\");'>Print</a></td>"; if ($sord['accepted'] == 'n') { $printSord .= "\n\t\t\t\t\t\t\t<td><a href='{$edit}?sordid={$sord['sordid']}&cont=1'>Edit</a></td>\n\t\t\t\t\t\t\t<td><a href='{$cancel}?sordid={$sord['sordid']}'>Cancel</a></td>\n\t\t\t\t\t\t\t<td><a href='{$accept}?sordid={$sord['sordid']}'>Invoice</a></td>\n\t\t\t\t\t\t</tr>"; } else { $printSord .= "\n\t\t\t\t\t\t\t<td colspan='3' align='center'>Accepted</td>\n\t\t\t\t\t\t</tr>"; } } } } if (!$pure) { $printSord .= "\n\t\t\t\t<tr>\n\t\t\t\t\t<td colspan='13'>\n\t\t\t\t\t\t<input type='submit' name='key' value='Print'> | <input type='submit' name='key' value='Export to Spreadsheet'>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\t</form>"; } else { $printSord .= "</table>"; $OUTPUT = clean_html($printSord); switch ($key) { case "export to spreadsheet": require_lib("xls"); StreamXLS("sorders", $OUTPUT); break; case "print": $OUTPUT = "<h3>Sales Orders</h3>{$OUTPUT}"; require "tmpl-print.php"; break; case "save": $pure = true; break; } } return $printSord; }
function enter($_POST, $error = "") { # Get vars extract($_POST); if (!isset($number)) { $number = 1; } # validate input require_lib("validate"); $v = new validate(); $v->isOk($bankid, "num", 1, 20, "Invalid Bank ID."); $v->isOk($number, "num", 1, 3, "Invalid number of entries."); # display errors, if any if ($v->isError()) { $confirm = ""; $errors = $v->getErrors(); foreach ($errors as $e) { $confirm .= "<li class='err'>" . $e["msg"] . "</li>"; } $confirm .= "<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; return $confirm; } $jump_bot = ""; if (isset($another)) { $jump_bot = "\n\t\t\t<script>\n\t\t\t\twindow.location.hash='bottom';\n\t\t\t</script>"; $number++; } # Accounts Drop down core_connect(); $glacc = mkAccSelect("accinv[]", 1); // $glacc = "<select name='accinv[]'>"; // $sql = "SELECT * FROM accounts WHERE div = '".USER_DIV."'"; // $accRslt = db_exec($sql); // if(pg_numrows($accRslt) < 1){ // return "<li> There are no accounts yet in Cubit.</li>"; // } // while($acc = pg_fetch_array($accRslt)){ // # Check Disable // if(isDisabled($acc['accid'])) // continue; // $glacc .= "<option value='$acc[accid]'>$acc[accname]</option>"; // } // $glacc .= "</select>"; # Get bank acc details $bankRslt = get("cubit", "*", "bankacct", "bankid", $bankid); $bank = pg_fetch_array($bankRslt); $vatarr = array("nov" => "No VAT", "inc" => "Inclusive", "exc" => "Exclusive"); // Layout $enter = "\n\t\t<center>\n\t\t<h3>Type in Bank statement</h3>\n\t\t<form action='" . SELF . "' method='POST' name='form'>\n\t\t\t<input type='hidden' name='key' value='confirm'>\n\t\t\t<input type='hidden' name='bankid' value='{$bankid}'>\n\t\t\t<input type='hidden' name='number' value='{$number}'>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<td colspan='4'>{$error}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<th align='center' colspan='10'>Bank Account : <b>({$bank['accnum']}) {$bank['accname']}</b></th>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<th>Date</th>\n\t\t\t\t<th>Paid to/Received from</th>\n\t\t\t\t<th>Transaction type</th>\n\t\t\t\t<th>Transaction Description</th>\n\t\t\t\t<th>Reference</th>\n\t\t\t\t<th>Cheque Number</th>\n\t\t\t\t<th>Amount</th>\n\t\t\t\t<th>VAT</th>\n\t\t\t\t<th>VAT Code</th>\n\t\t\t\t<th>Contra Account <input align='right' type='button' onClick=\"window.open('../core/acc-new2.php?update_parent=yes','accounts','width=700, height=400');\" value='New Account'></th>\n\t\t\t</tr>"; for ($i = 0; $i < $number; $i++) { if (!isset($date[$i])) { $date[$i] = false; } if (strlen($date[$i]) < 1) { $trans_date_setting = getCSetting("USE_TRANSACTION_DATE"); if (isset($trans_date_setting) and $trans_date_setting == "yes") { $trans_date_value = getCSetting("TRANSACTION_DATE"); $date_arr = explode("-", $trans_date_value); $o_year[$i] = $date_arr[0]; $o_month[$i] = $date_arr[1]; $o_day[$i] = $date_arr[2]; $date[$i] = "{$o_year[$i]}-{$o_month[$i]}-{$o_day[$i]}-"; } else { if (!isset($o_day[$i]) or strlen($o_day[$i]) < 1) { if (isset($_SESSION["global_day"]) and strlen($_SESSION["global_day"]) > 0) { $o_day[$i] = $_SESSION["global_day"]; } else { $o_day[$i] = date("d"); } if (isset($_SESSION["global_month"]) and strlen($_SESSION["global_month"]) > 0) { $o_month[$i] = $_SESSION["global_month"]; } else { $o_month[$i] = date("m"); } if (isset($_SESSION["global_year"]) and strlen($_SESSION["global_year"]) > 0) { $o_year[$i] = $_SESSION["global_year"]; } else { $o_year[$i] = date("Y"); } } $date[$i] = "{$o_year[$i]}-{$o_month[$i]}-{$o_day[$i]}-"; } } explodeDate($date[$i], $o_year[$i], $o_month[$i], $o_day[$i]); if (!isset($to[$i])) { $to[$i] = ""; $trantype[$i] = ""; $descript[$i] = ""; $ref[$i] = ""; $cheqnum[$i] = ""; $amount[$i] = ""; $chrgvat[$i] = ""; $accinv[$i] = ""; } switch (strtolower($trantype[$i])) { case "deposit": $ch1 = "selected"; $ch2 = ""; break; case "withdrawal": $ch1 = ""; $ch2 = "selected"; break; default: $ch1 = ""; $ch2 = "selected"; break; } $vatsel = extlib_cpsel("chrgvat[]", $vatarr, $chrgvat[$i]); $glacc = mkAccSelect("accinv[]", $accinv[$i]); # Accounts Drop down // core_connect(); // $glacc = "<select name='accinv[]'>"; // $sql = "SELECT * FROM accounts WHERE div = '".USER_DIV."' ORDER BY accname"; // $accRslt = db_exec($sql); // if(pg_numrows($accRslt) < 1){ // return "<li> There are no accounts yet in Cubit.</li>"; // } // while($acc = pg_fetch_array($accRslt)){ // # Check Disable // if(isDisabled($acc['accid'])) // continue; // $sel = ""; // if($acc['accid'] == $accinv[$i]) $sel = "selected"; // $glacc .= "<option value='$acc[accid]' $sel>$acc[accname]</option>"; // } // $glacc .= "</select>"; db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("cant get vat data."); $vats = "<select name='vatcode[]'>"; while ($vd = pg_fetch_array($Ri)) { $vats .= "<option value='{$vd['id']}'>{$vd['code']}</option>"; } $vats .= "</select>"; $enter .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td align='center' nowrap='t'>" . mkDateSelectA("o", $i, $o_year[$i], $o_month[$i], $o_day[$i]) . "</td>\n\t\t\t\t<td align='center'><input type='text' name='to[]' value='{$to[$i]}'></td>\n\t\t\t\t<td align='center'>\n\t\t\t\t\t<select name='trantype[]'>\n\t\t\t\t\t\t<option value='Withdrawal' {$ch2}>Payment</option>\n\t\t\t\t\t\t<option value='Deposit' {$ch1}>Receipt</option>\n\t\t\t\t\t</select>\n\t\t\t\t</td>\n\t\t\t\t<td align='center'><input type='text' name='descript[]' value='{$descript[$i]}'></td>\n\t\t\t\t<td align='center'><input type='text' name='ref[]' value='{$ref[$i]}' size=7></td>\n\t\t\t\t<td align='center'><input type='text' name='cheqnum[]' value='{$cheqnum[$i]}' size='7'></td>\n\t\t\t\t<td align='center'>\n\t\t\t\t\t<table>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>" . CUR . "</td>\n\t\t\t\t\t\t\t<td><input type='text' name='amount[]' value='{$amount[$i]}' size='8'></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\t<td align='center'>{$vatsel}</td>\n\t\t\t\t<td align='center'>{$vats}</td>\n\t\t\t\t<td align='center'>{$glacc}</td>\n\t\t\t</tr>"; } $total_amount = 0; $payment_list = array_keys($trantype, "Deposit"); foreach ($payment_list as $each => $own) { $total_amount += $amount[$own]; } $receipt_list = array_keys($trantype, "Withdrawal"); foreach ($receipt_list as $each => $own) { $total_amount -= $amount[$own]; } $enter .= "\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td colspan='6' align='right'><b>Total:</b></td>\n\t\t\t<td align='right'>" . CUR . " " . sprint($total_amount) . "</td>\n\t\t\t<td colspan='3'></td>\n\t\t</tr>"; $enter .= "\n\t\t\t\t<tr>\n\t\t\t\t\t<td><input type='submit' name='back' value='« Correction'></td>\n\t\t\t\t\t<td><input type='submit' name='another' value='Add Another'></td>\n\t\t\t\t\t<td colspan='4' align='right'><input type='submit' value='Confirm »'></td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t\t</form>\n\t\t<p>\n\t\t<table " . TMPL_tblDflts . ">\n\t\t\t<tr>\n\t\t\t\t<th>Quick Links</th>\n\t\t\t</tr>\n\t\t\t<script>document.write(getQuicklinkSpecial());</script>\n\t\t</table>\n\t\t<a name='bottom'>\n\t\t{$jump_bot}"; return $enter; }
function printSord() { extract($_REQUEST); if (isset($key)) { $key = strtolower($key); switch ($key) { case "export to spreadsheet": case "print": case "save": $pure = true; break; case "view": default: $pure = false; } } else { $pure = false; } if (!isset($from_year)) { explodeDate(false, $from_year, $from_month, $from_day); explodeDate(false, $to_year, $to_month, $to_day); } $printSord = ""; if (!$pure) { $printSord .= "\n\t\t<form method='post' action='" . SELF . "'>\n\t <table " . TMPL_tblDflts . ">\n\t <tr>\n\t \t<th colspan='2'>View Options</th>\n\t </tr>\n\t <tr class='" . bg_class() . "'>\n\t \t<td>Begin Date:</td>\n\t \t<td>" . mkDateSelect("from", $from_year, $from_month, $from_day) . "</td>\n\t\t</tr>\n\t\t<tr class='" . bg_class() . "'>\n\t \t<td>End Date:</td>\n\t \t<td>" . mkDateSelect("to", $to_year, $to_month, $to_day) . "</td>\n\t </tr>\n\t <tr>\n\t \t<td colspan='2' align='right'><input type='submit' value='Filter' /></td>\n\t </tr>\n\t </table>"; } if (!isset($key)) { $printSord .= "</form>"; return $printSord; } $printSord .= "\n\t<table " . TMPL_tblDflts . ">\n\t<tr>\n\t\t<th>Department</th>\n\t\t<th>Sales Person</th>\n\t\t<th>Sales Order No.</th>\n\t\t<th>Sales Order Date</th>\n\t\t<th>Customer Name</th>\n\t\t<th>Order No</th>\n\t\t" . ($pure ? "" : "<th colspan=6>Options</th>") . "\n\t</tr>"; $i = 0; $sql = "SELECT * FROM cubit.sorders\n \t\tWHERE accepted = 'n' AND done = 'y' AND div = '" . USER_DIV . "' AND\n \t\t\todate BETWEEN '{$from_year}-{$from_month}-{$from_day}' AND \n \t\t\t\t'{$to_year}-{$to_month}-{$to_day}' AND slip_done='n'\n \t\tORDER BY sordid DESC"; $sordRslt = db_exec($sql) or errDie("Unable to retrieve Sales Orders."); if (pg_numrows($sordRslt) < 1) { $printSord .= "\n\t\t<tr bgcolor='" . bgcolorc(0) . "'>\n\t\t\t<td colspan='13'>No Sales Orders matching criteria.</td>\n\t\t</tr>"; } else { while ($sord = pg_fetch_array($sordRslt)) { # alternate bgcolor $bgColor = bgcolor($i); # format date $sord['odate'] = explode("-", $sord['odate']); $sord['odate'] = $sord['odate'][2] . "-" . $sord['odate'][1] . "-" . $sord['odate'][0]; $det = "sorder-details.php"; $cancel = "sorder-cancel.php"; $accept = "sorder-accept.php"; $print = "sorder-print.php"; $edit = "sorder-new.php"; if ($sord['location'] == 'int') { $det = "intsorder-details.php"; $cancel = "intsorder-cancel.php"; $accept = "intsorder-accept.php"; $print = "intsorder-print.php"; $edit = "intsorder-new.php"; } $sp4 = " "; $bcurr = CUR; if ($sord['location'] == 'int') { $bcurr = $sord['currency']; } if ($sord["username"] == USER_NAME || user_is_admin(USER_NAME)) { $done = "\n\t\t\t\t<a href='picking_slip_done.php?sordid={$sord['sordid']}'>\n\t\t\t\t\tCancel\n\t\t\t\t</a>"; } else { $done = ""; } $printSord .= "<tr class='" . bg_class() . "'>\n\t\t\t\t<td>{$sord['deptname']}</td>\n\t\t\t\t<td>{$sord['salespn']}</td>\n\t\t\t\t<td>{$sord['sordid']}</td>\n\t\t\t\t<td align=center>{$sord['odate']}</td>\n\t\t\t\t<td>{$sord['cusname']} {$sord['surname']}</td>\n\t\t\t\t<td align=right>{$sord['ordno']}</td>\n\t\t\t\t<td>\n\t\t\t\t\t<a href='javascript:printer(\"picking_slips/picking_slip_print.php?sordid={$sord['sordid']}\")'>\n\t\t\t\t\t\tPrint Picking Slip\n\t\t\t\t\t</a>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<a href='" . SELF . "?key=invoice&sordid={$sord['sordid']}'>\n\t\t\t\t\t\tInvoice\n\t\t\t\t\t</a>\n\t\t\t\t</td>\n\t\t\t\t<td>\n\t\t\t\t\t<a href='" . SELF . "?key=pos_invoice&sordid={$sord['sordid']}'>\n\t\t\t\t\t\tPOS Invoice\n\t\t\t\t\t</a>\n\t\t\t\t</td>\n\t\t\t\t<td>{$done}</td>"; } } if (!$pure) { $printSord .= "\n\t\t</table>\n\t\t</form>"; } else { $printSord .= "\n\t\t</table>"; $OUTPUT = clean_html($printSord); switch ($key) { case "export to spreadsheet": require_lib("xls"); StreamXLS("sorders", $OUTPUT); break; case "print": $OUTPUT = "<h3>Sales Orders</h3>{$OUTPUT}"; require "tmpl-print.php"; break; case "save": $pure = true; break; } } return $printSord; }
function add() { extract($_REQUEST); $id += 0; $Sl = "SELECT * FROM cubit.batch_cashbook WHERE cashid='{$id}'"; $Ri = db_exec($Sl); if (pg_num_rows($Ri) < 1) { return "Invalid"; } $bcb = pg_fetch_array($Ri); if ($bcb["chrgvat"] == "exc") { $bcb["amount"] -= $bcb["vat"]; } extract($bcb, EXTR_SKIP); # Accounts Drop down selections core_connect(); # Income accounts ($inc) $glacc = "<select name='accinv'>"; $sql = "SELECT * FROM accounts WHERE div = '" . USER_DIV . "' ORDER BY accname ASC"; $accRslt = db_exec($sql); $numrows = pg_numrows($accRslt); if (empty($numrows)) { $glacc = "<li class='err'>There are no Income accounts yet in Cubit.</li>"; } $account = $accinv; while ($acc = pg_fetch_array($accRslt)) { # Check Disable if (isDisabled($acc['accid'])) { continue; } if (isset($account) && $account == $acc['accid']) { $sel = "selected"; } else { $sel = ""; } $glacc .= "<option value='{$acc['accid']}' {$sel}>{$acc['accname']}</option>"; } $glacc .= "</select>"; db_connect(); $sql = "SELECT * FROM bankacct WHERE btype != 'int' AND div = '" . USER_DIV . "'"; $banks = db_exec($sql); if (pg_numrows($banks) < 1) { return "<li class='err'> There are no accounts held at the selected Bank.</li>\n\t\t<p><input type='button' onClick='JavaScript:history.back();' value='« Correct Selection'>"; } $bank = "<select name='bankid'>"; while ($acc = pg_fetch_array($banks)) { if (isset($bankid) && $bankid == $acc['bankid']) { $sel = "selected"; } else { $sel = ""; } $bank .= "<option value={$acc['bankid']} {$sel}>{$acc['accname']} - {$acc['bankname']} ({$acc['acctype']})</option>"; } $bank .= "</select>"; if (!isset($name)) { $name = ""; $descript = ""; $reference = ""; $cheqnum = ""; $amount = ""; $vatcodes = "2"; } db_conn('cubit'); $Sl = "SELECT * FROM vatcodes ORDER BY code"; $Ri = db_exec($Sl) or errDie("Unable to get vat codes"); $Vatcodes = "<select name=vatcode>\n\t<option value='0'>Select</option>"; while ($vd = pg_fetch_array($Ri)) { if ($vd['id'] == $vatcode) { $sel = "selected"; } else { $sel = ""; } $Vatcodes .= "<option value='{$vd['id']}' {$sel}>{$vd['code']}</option>"; } $Vatcodes .= "</select>"; explodeDate($date, $o_year, $o_month, $o_day); $sel1 = ""; $sel2 = ""; $sel3 = ""; if ($chrgvat == "inc") { $sel1 = "checked=yes"; } else { if ($chrgvat == "exc") { $sel2 = "checked=yes"; } else { if ($chrgvat == "nov") { $sel3 = "checked=yes"; } else { $sel1 = "checked=yes"; } } } # layout $add = "\n\t\t\t\t<h3>Edit Bank Payment</h3>\n\t\t\t\t<form action='" . SELF . "' method='POST' name='form'>\n\t\t\t\t\t<input type='hidden' name='key' value='confirm' />\n\t\t\t\t\t<input type='hidden' name='id' value='{$id}' />\n\t\t\t\t\t<input type='hidden' name='vat' value='{$bcb['vat']}' />\n\t\t\t\t\t<input type='hidden' name='orig_vatcode' value='{$bcb['vatcode']}' />\n\t\t\t\t\t<input type='hidden' name='orig_chrgvat' value='{$bcb['chrgvat']}' />\n\t\t\t\t\t<input type='hidden' name='orig_amount' value='{$bcb['amount']}' />\n\t\t\t\t<table " . TMPL_tblDflts . " width='80%'>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<th>Field</th>\n\t\t\t\t\t\t<th>Value</th>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Bank Account</td>\n\t\t\t\t\t\t<td valign='center'>{$bank}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Date</td>\n\t\t\t\t\t\t<td>" . mkDateSelect("o", $o_year, $o_month, $o_day) . "</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Paid to</td>\n\t\t\t\t\t\t<td valign='center'><input size='20' name='name' value='{$name}'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td valign='top'>Description</td>\n\t\t\t\t\t\t<td valign='center'><textarea col='18' rows='3' name='descript'>{$descript}</textarea></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td valign='top'>Reference</td>\n\t\t\t\t\t\t<td valign='center'><input size='20' name='reference' value='{$reference}'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Cheque Number</td>\n\t\t\t\t\t\t<td valign='center'><input size='20' name='cheqnum' value='{$cheqnum}'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>Amount</td>\n\t\t\t\t\t\t<td valign='center'>" . CUR . " <input type='text' size='10' name='amount' value='" . sprint($amount) . "'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>VAT </td>\n\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t<input type='radio' name='chrgvat' value='inc' {$sel1}>Inclusive \n\t\t\t\t\t\t\t<input type='radio' name='chrgvat' value='exc' {$sel2}>Exclusive \n\t\t\t\t\t\t\t<input type='radio' name='chrgvat' value='nov' {$sel3}>No VAT\n\t\t\t\t\t\t</td>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td>VAT Code</td>\n\t\t\t\t\t\t<td>{$Vatcodes}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t\t<td valign=top>Select Contra Account</td>\n\t\t\t\t\t\t<td>{$glacc}</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td> </td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td><input type='button' onClick='javascript:history.back();' value='« Correction'> </td>\n\t\t\t\t\t\t<td valign='center' align='right'><input type='submit' value='Confirm »'></td>\n\t\t\t\t\t</tr>\n\t\t\t\t</table>"; # main table (layout with menu) $OUTPUT = "\n\t\t\t\t\t<center>\n\t\t\t\t\t<table width=100%>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td width=65% align='left'>{$add}</td>\n\t\t\t\t\t\t\t<td valign='top' align='center'>" . mkQuickLinks() . "\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>"; return $OUTPUT; }
function genslip($empnum, $fromdate, $todate) { $Sl = "SELECT * FROM employees WHERE empnum='{$empnum}'"; $Ry = db_exec($Sl) or errDie("Unable to select employees from database."); if (pg_numrows($Ry) < 1) { $Sl = "SELECT * FROM lemployees WHERE empnum='{$empnum}'"; $Ry = db_exec($Sl) or errDie("Unable to select employees from database."); } $emp = pg_fetch_array($Ry); $pay['showex'] = "Yes"; $date = $todate; //$pw = "saldate>='$fromdate' AND saldate<='$todate'"; $from_month = extractMonth($fromdate); $to_month = extractMonth($todate); if ($to_month < $from_month) { $pw = "month::int>='{$from_month}' OR month::int <= '{$to_month}'"; } else { $pw = "month::int>='{$from_month}' AND month::int <= '{$to_month}'"; } $pw = "({$pw}) AND (saldate>='{$fromdate}' AND saldate<='{$todate}')"; /* paye balance */ $sql = "SELECT sum(paye) AS sum FROM salpaid WHERE ({$pw}) AND empnum='{$empnum}' AND cyear='" . EMP_YEAR . "'"; $Ry = db_exec($sql) or errDie("Unable to get paye"); $pdata = pg_fetch_array($Ry); $paid = $pdata['sum']; $sql = "SELECT sum(paye) AS sum FROM salr WHERE ({$pw}) AND empnum='{$empnum}' AND cyear='" . EMP_YEAR . "'"; $Ry = db_exec($sql) or errDie("Unable to get paye"); $pdata = pg_fetch_array($Ry); $upaid = $pdata['sum']; $tottax = sprint($paid - $upaid); /* salary balance */ $sql = "SELECT sum(salary) FROM salpaid WHERE ({$pw}) AND empnum='{$empnum}' AND cyear='" . EMP_YEAR . "'"; $Ry = db_exec($sql) or errDie("Unable to get paye"); $pdata = pg_fetch_array($Ry); $sql = "SELECT sum(salary) FROM salr WHERE ({$pw}) AND empnum='{$empnum}' AND cyear='" . EMP_YEAR . "'"; $Ry = db_exec($sql) or errDie("Unable to get paye"); $prdata = pg_fetch_array($Ry); $pay['salary'] = $pdata['sum'] - $prdata["sum"]; $emp['basic_sal'] = sprint($emp['basic_sal']); /* pay slip ids */ $psids = array(); $sql = "\n\t\tSELECT id, novert, hovert FROM cubit.salpaid WHERE ({$pw}) AND empnum='{$empnum}' AND cyear='" . EMP_YEAR . "' \n\t\tUNION \n\t\tSELECT -id, -novert, -hovert FROM cubit.salr WHERE ({$pw}) AND empnum='{$empnum}' AND cyear='" . EMP_YEAR . "'"; $rslt = db_exec($sql) or errDie("Error reading payslip ids"); $novert = 0; $hovert = 0; while ($row = pg_fetch_assoc($rslt)) { $psids[] = "payslip='{$row['id']}'"; $novert += $row["novert"]; $hovert += $row["hovert"]; } if (count($psids) <= 0) { $psids[] = "true"; } $pwc = "(" . implode(" OR ", $psids) . ")"; $dates = "\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<td width='50%'>Date</td>\n\t\t\t\t<td width='50%'>{$date}</td>\n\t\t\t</tr>\n\t\t</table>"; $i = 0; $epw = "date >= '{$fromdate}' AND date <= '{$todate}'"; $fepw = "fdate >= '{$fromdate}' AND fdate <= '{$todate}'"; $incomes = "\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<td width='80%' align='center'>Description</td>\n\t\t\t\t<td align='center'>Amount</td>\n\t\t\t</tr>"; db_conn('cubit'); $sql = "SELECT DISTINCT description, type FROM emp_inc WHERE ({$pwc}) AND emp='{$empnum}' AND ({$epw}) ORDER BY description"; $Ri = db_exec($sql) or errDie("Unable to get data."); $tot_incomes = 0; while ($data = pg_fetch_array($Ri)) { $sql = "SELECT sum(amount) FROM emp_inc WHERE description='{$data['description']}' AND ({$pwc}) AND emp='{$empnum}' AND ({$epw})"; $Rl = db_exec($sql) or errDie("Unable to get data."); $sdata = pg_fetch_array($Rl); $incomes .= "\n\t\t\t<tr>\n\t\t\t\t<td>{$data['description']}</td>\n\t\t\t\t<td align='right'>" . CUR . " {$sdata['sum']}</td>\n\t\t\t</tr>"; $i++; if ($data["description"] != "Fringe Benefits Total") { $tot_incomes = $tot_incomes + $sdata['sum']; } if ($data["type"] == "INCO") { if ($novert > 0) { $incomes .= "\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td colspan='2'> {$novert} Hours Normal Overtime</td>\n\t\t\t\t\t</tr>"; ++$i; } if ($hovert > 0) { $incomes .= "\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td colspan='2'> {$hovert} Hours Holiday Overtime</td>\n\t\t\t\t\t</tr>"; ++$i; } } } while ($i < 7) { $incomes .= "<tr><td><br></td></tr>"; $i++; } $incomes .= "</table>"; $i = 0; $benefits = "<table " . TMPL_tblDflts . " width='100%'>"; while ($i < 4) { $benefits .= "<tr><td><br></td></tr>"; $i++; } $benefits .= "</table>"; $i = 0; $comp_parts = "\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<td align='center'>Description</td>\n\t\t\t\t<td align='center'>Amount</td>\n\t\t\t</tr>"; $Sl = "SELECT DISTINCT(description) FROM emp_com WHERE ({$pwc}) AND emp='{$empnum}' AND description !='SDL' AND ({$epw}) ORDER BY description"; $Ri = db_exec($Sl) or errDie("Unable to get data."); while ($data = pg_fetch_array($Ri)) { $Sl = "SELECT SUM(amount) FROM emp_com WHERE description='{$data['description']}' AND ({$pwc}) AND emp='{$empnum}' AND description !='SDL' AND ({$epw})"; $Rl = db_exec($Sl) or errDie("Unable to get data."); $sdata = pg_fetch_array($Rl); $comp_parts .= "\n\t\t\t<tr>\n\t\t\t\t<td width='80%'>{$data['description']}</td>\n\t\t\t\t<td width='20%' align='right'>" . CUR . " {$sdata['sum']}</td>\n\t\t\t</tr>"; $i++; } while ($i < 7) { $comp_parts .= "<tr><td><br></td></tr>"; $i++; } $comp_parts .= "</table>"; $i = 0; $deductions = "\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<td width='90%' align='center'>Description</td>\n\t\t\t\t<td align='center'>Amount</td>\n\t\t\t</tr>"; $Sl = "SELECT DISTINCT(description),type FROM emp_ded WHERE ({$pwc}) AND emp='{$empnum}' AND ({$epw}) ORDER BY description"; $Ri = db_exec($Sl) or errDie("Unable to get data."); $tot_deductions = 0; while ($data = pg_fetch_array($Ri)) { $Sl = "SELECT SUM(amount) FROM emp_ded WHERE description='{$data['description']}' AND ({$pwc}) AND emp='{$empnum}' AND ({$epw})"; $Rl = db_exec($Sl) or errDie("Unable to get data."); $sdata = pg_fetch_array($Rl); if ($data["type"] == "PAYE" && $emp["basic_sal_annum"] <= 65000) { $data["description"] = "SITE"; } $deductions .= "\n\t\t\t<tr>\n\t\t\t\t<td>{$data['description']}</td>\n\t\t\t\t<td align='right' nowrap='t'>" . CUR . " {$sdata['sum']}</td>\n\t\t\t</tr>"; $i++; $tot_deductions = $tot_deductions + $sdata['sum']; } while ($i < 6) { $deductions .= TBL_BR; $i++; } $deductions .= "</table>"; $fringe = "\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<td width='90%' align=center>Description</td>\n\t\t\t\t<td align='center'>Amount</td>\n\t\t\t</tr>"; $sql = "SELECT description,SUM(amount) AS amount FROM emp_frin WHERE ({$pwc}) AND emp='{$empnum}' AND ({$fepw}) GROUP BY description ORDER BY description"; $rslt = db_exec($sql) or errDie("Unable to get data."); $i = 0; $tot_fringe = 0; while ($data = pg_fetch_array($rslt)) { $data["amount"] = sprint(abs($data["amount"])); $fringe .= "\n\t\t\t<tr>\n\t\t\t\t<td>{$data['description']}</td>\n\t\t\t\t<td align='right' nowrap='t'>" . CUR . " {$data['amount']}</td>\n\t\t\t</tr>"; $i++; $tot_fringe += $data['amount']; } while ($i < 6) { $fringe .= TBL_BR; $i++; } $fringe .= "</table>"; $exstras = "\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<td width='25%'>LEAVE DAYS DUE</td>\n\t\t\t\t<td width='25%'></td>\n\t\t\t\t<td width='25%'><b>NETT PAY</b></td>\n\t\t\t\t<td width='25%'><b>" . CUR . " " . sprint($pay["salary"]) . "</b></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td width='25%'>Total Employee's Tax</td>\n\t\t\t\t<td width='25%'>{$tottax}</td>\n\t\t\t\t<td width='25%'></td>\n\t\t\t\t<td width='25%'></td>\n\t\t\t</tr>\n\t\t</table>"; $pay["salary"] = sprint($pay["salary"]); db_conn('cubit'); $period = ""; $tot_incomes = sprint($tot_incomes); $tot_deductions = sprint($tot_deductions); vsprint($tot_fringe); $grossdata = "\n\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t<tr>\n\t\t\t\t<td width='50%' align='center'><b>GROSS EARNINGS</b></td>\n\t\t\t\t<td width='50%' align='right'>" . CUR . " {$tot_incomes}</td>\n\t\t\t</tr>\n\t\t</table>"; explodeDate($fromdate, $from_year, $from_month, $from_day); explodeDate($todate, $to_year, $to_month, $to_day); if ($from_year == $to_year && $from_month == $to_month) { $title = "Salary Advice"; if ($emp["payprd"] == "m") { $salprd = getMonthName($to_month) . " " . getYearOfEmpMon($to_month); } else { if ($emp["payprd"] == "d" && $fromdate == $todate) { $salprd = $pay["week"] . getMonthName($to_month) . " " . getYearOfEmpMon($to_month); } else { if ($emp["payprd"] == "w") { $stdate = mktime(0, 0, 0, $to_month, 1, getYearOfEmpMon($to_month)); $endate = mktime(0, 0, 0, $to_month + 1, -1, getYearOfEmpMon($to_month)); $paydate = mktimefd($todate); $i = 1; while ($stdate <= $endate) { if (date("w", $stdate) == 5) { if (date("W", $stdate) == date("W", $paydate_f) && date("W", $stdate) == date("W", $paydate_t)) { $salprd = date("j", $stdate) . " " . getMonthName($to_month) . " " . getYearOfEmpMon($to_month); break; } ++$i; } /* next day */ $stdate += 24 * 60 * 60; } } else { if ($emp["payprd"] == "f") { $stdate = mktime(0, 0, 0, $to_month, 1, getYearOfEmpMon($to_month)); $endate = mktime(0, 0, 0, $to_month + 1, -1, getYearOfEmpMon($to_month)); $paydate_f = mktimefd($fromdate); $paydate_t = mktimefd($todate); $c = 0; $fnd_week_f = 0; $fnd_week_t = 0; while ($stdate <= $endate) { //date("W", $stdate) == date("W", $paydate) if (date("w", $stdate) == 5) { if (date("W", $stdate) == date("W", $paydate_f)) { $fnd_week_f = 1; } if (date("W", $stdate) == date("W", $paydate_t)) { $fnd_week_t = 1; } if ((++$c % 2 == 0 || $c == 5) && ($fnd_week_f || $fnd_week_t)) { if ($fnd_week_f == 1 && $paydate_f <= $stdate + 48 * 3600) { $fnd_week_f = 2; $salprd_f = date("j", $stdate) . " " . getMonthName($from_month) . " " . getYearOfEmpMon($from_month); } if ($fnd_week_t == 1 && $paydate_t <= $stdate + 48 * 3600) { $fnd_week_t = 2; $salprd_t = date("j", $stdate) . " " . getMonthName($to_month) . " " . getYearOfEmpMon($to_month); } /* now check that they are the same, and if so set the display */ if ($fnd_week_f + ($fnd_week_t = 4)) { if ($salprd_f == $salprd_t) { $salprd = $salprd_f; } break; } } } /* next day */ $stdate += 24 * 60 * 60; } } } } } } if (!isset($salprd)) { $salprd = $title = "{$fromdate} TO {$todate}"; } $OUT = "\n\t\t<center>\n\t\t<h2>" . COMP_NAME . "<br>{$title}</h2>\n\t\t<table border=1 " . TMPL_tblDflts . " width='750'>\n\t\t\t<tr>\n\t\t\t\t<td width='50%' align='center'><b>Employee Details:</b></td>\n\t\t\t\t<td>{$dates}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td valign='top'>\n\t\t\t\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Name:</td>\n\t\t\t\t\t\t\t<td>{$emp['sname']}, {$emp['fnames']}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Number:</td>\n\t\t\t\t\t\t\t<td>{$emp['enum']}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>ID:</td>\n\t\t\t\t\t\t\t<td>{$emp['idnum']}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Tax No:</td>\n\t\t\t\t\t\t\t<td>{$emp['taxref']}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Rate:</td>\n\t\t\t\t\t\t\t<td>" . CUR . " {$emp['basic_sal']}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Designation:</td>\n\t\t\t\t\t\t\t<td>{$emp['designation']}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Gender:</td>\n\t\t\t\t\t\t\t<td>{$emp['sex']}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Marital Status:</td>\n\t\t\t\t\t\t\t<td>{$emp['marital']}</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\t<td valign='top'>\n \t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td width='50%'>Period</td>\n\t\t\t\t\t\t\t<td width='50%'>{$salprd}</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t\t<table border=1 " . TMPL_tblDflts . " width='100%'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td align='center' colspan='2'><b>Company Details:</b></td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Address:</td>\n\t\t\t\t\t\t\t<td>" . COMP_ADDRESS . "</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Tel:</td>\n\t\t\t\t\t\t\t<td>" . COMP_TEL . "</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Fax:</td>\n\t\t\t\t\t\t\t<td>" . COMP_FAX . "</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>Reg No:</td>\n\t\t\t\t\t\t\t<td>" . COMP_REGNO . "</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td>PAYE Ref:</td>\n\t\t\t\t\t\t\t<td>" . COMP_PAYE . "</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 align='center'><b>COMPANY CONTRIBUTIONS</b></td>\n\t\t\t\t<td align='center'><b>INCOME</b></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>{$comp_parts}</td>\n\t\t\t\t<td>{$incomes}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td align='center'></td>\n\t\t\t\t<td>{$grossdata}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td align='center'><b>DEDUCTIONS</b></td>\n\t\t\t\t<td align='center'><b>FRINGE BENEFITS</b></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>{$deductions}</td>\n\t\t\t\t<td>{$fringe}</td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td>\n\t\t\t\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td width='50%'><b>TOTAL DEDUCTIONS</b></td>\n\t\t\t\t\t\t\t<td width='50%' align='right'>" . CUR . " {$tot_deductions}</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\t<td>\n\t\t\t\t\t<table " . TMPL_tblDflts . " width='100%'>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td width='50%' nowrap='t'><b>TOTAL FRINGE BENEFITS</b></td>\n\t\t\t\t\t\t\t<td width='50%' align='right'>" . CUR . " {$tot_fringe}</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='2'>{$exstras}</td>\n\t\t\t</tr>\n\t\t</table>"; return $OUT; }
function details($stkid) { # validate input require_lib("validate"); $v = new validate(); $v->isOk($stkid, "num", 1, 50, "Invalid stock number."); # display errors, if any if ($v->isError()) { $confirm = ""; $errors = $v->getErrors(); foreach ($errors as $e) { $confirm .= "<li class='err'>-" . $e["msg"] . "</li>"; } return $confirm; } # Select Stock db_connect(); $sql = "SELECT * FROM stock WHERE stkid = '{$stkid}' AND div = '" . USER_DIV . "'"; $stkRslt = db_exec($sql) or errDie("Unable to access databse.", SELF); if (pg_numrows($stkRslt) < 1) { return "<li> Invalid Stock ID.</li>"; } else { $stk = pg_fetch_array($stkRslt); } # get stock vars extract($stk); db_conn("exten"); # get warehouse $sql = "SELECT whname FROM warehouses WHERE whid = '{$whid}' AND div = '" . USER_DIV . "'"; $whRslt = db_exec($sql); $wh = pg_fetch_array($whRslt); # Select the stock warehouse $sql = "SELECT whid,whname,whno FROM warehouses WHERE whid != '{$whid}' AND div = '" . USER_DIV . "' ORDER BY whname ASC"; $swhRslt = db_exec($sql); if (pg_numrows($swhRslt) < 1) { return "\n\t\t\t<li>There are no other stores in Cubit.</li>\n\t\t\t<p>\n\t\t\t<table " . TMPL_tblDflts . " width='15%'>\n\t\t\t\t" . TBL_BR . "\n\t\t\t\t<tr>\n\t\t\t\t\t<th>Quick Links</th>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td><a href='stock-transfer.php'>New Stock Transfer</a></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td><a href='stock-add.php'>Add Stock</a></td>\n\t\t\t\t</tr>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td><a href='main.php'>Main Menu</a></td>\n\t\t\t\t</tr>\n\t\t\t</table>"; } else { $whs = "<select name='whid'>"; while ($swh = pg_fetch_array($swhRslt)) { $whs .= "<option value='{$swh['whid']}'>({$swh['whno']}) {$swh['whname']}</option>"; } $whs .= "</select>"; } # available stock units $avstk = $units - $alloc; explodeDate(DATE_STD, $d_year, $d_month, $d_day); // Layout $details = "\n\t\t<center>\n\t\t<h3>Transfer Stock</h3>\n\t\t<h4>Stock Details</h4>\n\t\t<form action='" . SELF . "' method='POST' name='form'>\n\t\t\t<input type='hidden' name='key' value='confirm'>\n\t\t\t<input type='hidden' name='stkid' value='{$stkid}'>\n\t\t<table " . TMPL_tblDflts . " width='350'>\n\t\t\t<tr>\n\t\t\t\t<th width='40%'>Field</th>\n\t\t\t\t<th width='60%'>Value</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Warehouse</td>\n\t\t\t\t<td>{$wh['whname']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Category</td>\n\t\t\t\t<td>{$catname}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Stock code</td>\n\t\t\t\t<td>{$stkcod}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Stock description</td>\n\t\t\t\t<td>" . nl2br($stkdes) . "</pre></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>On Hand</td>\n\t\t\t\t<td>" . sprint3($units) . "</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Allocated</td>\n\t\t\t\t<td>" . sprint3($alloc) . "</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Available</td>\n\t\t\t\t<td>" . sprint3($avstk) . "</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>On Order</td>\n\t\t\t\t<td>" . sprint3($ordered) . "</td>\n\t\t\t</tr>\n\t\t\t" . TBL_BR . "\n\t\t\t<tr>\n\t\t\t\t<th colspan='2'>Transfer to</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Date</td>\n\t\t\t\t<td nowrap='t'>" . mkDateSelect("d", $d_year, $d_month, $d_day) . "</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>To Store </td>\n\t\t\t\t<td>{$whs}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Number of units</td>\n\t\t\t\t<td><input type='text' size='7' name='tunits' value='1'></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Remark</td>\n\t\t\t\t<td><textarea cols='35' rows='4' name='remark'>{$remark}</textarea></td>\n\t\t\t</tr>\n\t\t\t" . TBL_BR . "\n\t\t\t<tr>\n\t\t\t\t<td><input type='button' value='« Cancel' onClick='javascript:history.back();'></td>\n\t\t\t\t<td valign='center'><input type='submit' value='Continue »'></td>\n\t\t\t</tr>\n\t\t</table>\n\t\t<p>\n\t\t<table " . TMPL_tblDflts . " width='15%'>\n\t\t\t" . TBL_BR . "\n\t\t\t<tr>\n\t\t\t\t<th>Quick Links</th>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td><a href='stock-transfer.php'>New Stock Transfer</a></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td><a href='stock-add.php'>Add Stock</a></td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td><a href='main.php'>Main Menu</a></td>\n\t\t\t</tr>\n\t\t</table>"; return $details; }
/** * returns html for a date selection * * the form fields to update must have in id in the form of * ${idpfx}_day, ${idpfx}_month, ${idpfx}_year in the order day, month, year * respectively. * * @ignore * @param string idpfx prefix for form fields to update * @return string html */ function dateSelection($idpfx) { global $GWPP; /* all the different date parts with default values -> false */ $date_fields = array("day", "month", "year", "sday", "smonth", "syear"); foreach ($date_fields as $k) { if (!isset($_REQUEST[$k])) { ${$k} = false; } else { ${$k} = $_REQUEST[$k]; } } /* why check only date === false but set all of them to date() values? what if they have values you gonna overwrite? because I dont want bugs like day isset, month not, year isset causing some weird month to be shown */ if ($day === false) { $day = date("d"); $month = date("m"); $year = date("Y"); } if ($sday === false) { $sday = $day; $smonth = $month; $syear = $year; } /* forcibly fix the date */ explodeDate(date("Y-m-d", mktime(0, 0, 0, $smonth, $sday, $syear)), $syear, $smonth, $sday); /* previous year */ $pyear = extractYear(mkdatet($year - 1, $month, 1)); /* previous month */ $pmonth = extractMonth(mkdatet($year, $month - 1, 1)); $pmyear = extractYear(mkdatet($year, $month - 1, 1)); /* next month */ $nmonth = extractMonth(mkdatet($year, $month + 1, 1)); $nmyear = extractYear(mkdatet($year, $month + 1, 1)); /* next year */ $nyear = extractYear(mkdatet($year + 1, $month, 1)); /* month/year selections */ $dateselmove = "dateSelMoveBySelect(\"{$idpfx}\", \"{$day}\", \"{$sday}\", \"{$smonth}\", \"{$syear}\", \"{$GWPP}\");"; $move_month = mksel_month("datesel_move_month", $month, "onchange='{$dateselmove}'", true); $move_year = mksel_year("datesel_move_year", $year, "onchange='{$dateselmove}'"); $title_style = "onMouseUp='moveXLayer(false);' onMouseDown='moveXLayer(true);'"; $OUTPUT = "\n\t<div id='datesel_container' style='background: #fdeb89; border: 1px dashed black;' >\n\t<div id='datesel_loading' style='position: absolute; visibility: hidden;'>\n\t\t<p style='margin-left: 25px; margin-top: 60px;'>\n\t\t\t<strong>Loading. Please Wait...</strong>\n\t\t</p>\n\t</div>\n\t<div id='datesel_calender'>\n\t<table>\n\t<tr>\n\t\t<td nowrap='t' align='left'>\n\t\t\t{$move_month} {$move_year}\n\t\t\t<!--<input type='button' onclick='{$dateselmove}' value='Go'/>-->\n\t\t</td>\n\t\t<td align='right' nowrap='t' onMouseUp='moveXLayer(false);' onMouseDown='moveXLayer(true);'>\n\t\t\t<b><a id='xpopup_cls' href='javascript: XPopupHideAct()'>[X] </a></b>\n\t\t</td>\n\t</tr>\n\t<tr><td colspan='2'>\n\n\t<table width='190' cellspacing='0'>\n\t<tr>\n\t\t<td {$title_style} " . TMPL_calSmallMonthTitleStyleLeft . ">\n\t\t\t<a href='javascript: dateSelMove(\"{$idpfx}\", \"{$day}\", \"{$month}\", \"{$pyear}\", \"{$sday}\", \"{$smonth}\", \"{$syear}\", \"{$GWPP}\");'><img border='0' src='{$GWPP}/left_year.gif' /></a>\n\t\t\t<a href='javascript: dateSelMove(\"{$idpfx}\", \"{$day}\", \"{$pmonth}\", \"{$pmyear}\", \"{$sday}\", \"{$smonth}\", \"{$syear}\", \"{$GWPP}\");'><img border='0' src='{$GWPP}/left_month.gif' /></a>\n\t\t</td>\n\t\t<td {$title_style} " . TMPL_calSmallMonthTitleStyleCenter . ">\n\t\t\t" . getMonthName($month) . " {$year}\n\t\t</td>\n\t\t<td {$title_style} " . TMPL_calSmallMonthTitleStyleRight . ">\n\t\t\t<a href='javascript: dateSelMove(\"{$idpfx}\", \"{$day}\", \"{$nmonth}\", \"{$nmyear}\", \"{$sday}\", \"{$smonth}\", \"{$syear}\", \"{$GWPP}\");'><img border='0' src='{$GWPP}/right_month.gif' /></a>\n\t\t\t<a href='javascript: dateSelMove(\"{$idpfx}\", \"{$day}\", \"{$month}\", \"{$nyear}\", \"{$sday}\", \"{$smonth}\", \"{$syear}\", \"{$GWPP}\");'><img border='0' src='{$GWPP}/right_year.gif' /></a>\n\t\t</td>\n\t</tr>\n\t<tr>\n\t\t<td align='center' " . TMPL_calSmallMonthBodyStyle . " colspan='5'>"; // generate the titles of the weekdays $OUTPUT .= "\n\t\t<table width='184' cellspacing='0'>\n\t\t\t<tr>\n\t\t\t\t<td width='23'> </td>\n\t\t\t\t<td width='23' align='center'><b>M</b></td>\n\t\t\t\t<td width='23' align='center'><b>T</b></td>\n\t\t\t\t<td width='23' align='center'><b>W</b></td>\n\t\t\t\t<td width='23' align='center'><b>T</b></td>\n\t\t\t\t<td width='23' align='center'><b>F</b></td>\n\t\t\t\t<td width='23' align='center' bgcolor=" . TMPL_calFillSaturday . "><b>S</b></td>\n\t\t\t\t<td width='23' align='center' bgcolor=" . TMPL_calFillSunday . "><b>S</b></td>\n\t\t\t</tr>"; // get the weekday number of the first of this month $first_wd = getWeekdayNum(1, $month, $year); // the following code will generate the first entries on the calendar, which is for the previous month (if any) // month and year of previous month if ($month == 1) { $tmp_month = 12; $tmp_year = $year - 1; } else { $tmp_month = $month - 1; $tmp_year = $year; } // date of last monday in previous month (where the entries will start) if ($first_wd > 1) { $tmp_day = getDaysInMonth($tmp_month, $tmp_year) - ($first_wd - 2); } else { $tmp_day = 1; $tmp_month = $month; $tmp_year = $year; } // create a view variables $selected_month = $smonth; // create the previous month's entries $c_weeknum = getWeekNumber($tmp_day, $tmp_month, $tmp_year); $selected_weeknum = getWeekNumber($sday, $smonth, $syear); // if today's week number = the current generated week's number, hightlight the row, as so with the selected week, if ($c_weeknum == getTodayWeekNumber() && $tmp_year == date("Y") && $month == date("m") || getTodayWeekNumber() == 0 && $month == date("m") && $year == date("Y")) { // today's week $OUTPUT .= "<tr bgcolor='" . TMPL_calSmallMonthCurrentWeek . "'>"; $ROW_COLORED = 1; } else { if ($year == $syear && $month == $smonth && $c_weeknum == $selected_weeknum || $c_weeknum == 52 && $selected_weeknum == 0) { // selected week, the last check is for the first week in jan $OUTPUT .= "<tr bgcolor='" . TMPL_calSmallMonthSelectedWeek . "'>"; $ROW_COLORED = 1; } else { // other dates $OUTPUT .= "<tr>"; $ROW_COLORED = 0; } } if ($first_wd != 1) { // only if there is a day in this week of previous month, print the week number $OUTPUT .= "<td width='23' " . TMPL_calSmallMonthWeekNumberStyle . " align='center'>{$c_weeknum}</td>"; } for ($c_wd = 1; $c_wd < $first_wd; $c_wd++, $tmp_day++) { // fill differently for saturday and sunday (only when row wasn't already highlighted) if ($c_wd == 6 && !$ROW_COLORED) { $dayfill = "bgcolor='" . TMPL_calFillSaturday . "'"; } else { if ($c_wd == 7) { $dayfill = "bgcolor='" . TMPL_calFillSunday . "'"; } else { $dayfill = ""; } } $OUTPUT .= "\n\t\t\t<td {$dayfill} width='23' align='center'>\n\t\t\t\t<a id='calSmallMonthOMLink' href='javascript: dateSelUpdate(\"{$idpfx}\", \"{$tmp_day}\", \"{$tmp_month}\", \"{$tmp_year}\");'>{$tmp_day}</a>\n\t\t\t</td>"; } // start creating this month's entries $cm_days = getDaysInMonth($month, $year); for ($c_day = 1; $c_day <= $cm_days; $c_day++) { $c_weeknum = getWeekNumber($c_day, $month, $year); if ($c_wd == 1) { // start a new row (it's MONDAY!!!!!) // if today's week number = the current generated week's number, hightlight the row, as so with the selected week if ($c_weeknum == getTodayWeekNumber() && $year == date("Y") && $month == date("m")) { // today's week $OUTPUT .= "<tr bgcolor='" . TMPL_calSmallMonthCurrentWeek . "'>"; $ROW_COLORED = 1; } else { if ($year == $syear && $month == $smonth && $c_weeknum == $selected_weeknum) { // selected week $OUTPUT .= "<tr bgcolor='" . TMPL_calSmallMonthSelectedWeek . "'>"; $ROW_COLORED = 1; } else { // other dates $OUTPUT .= "<tr>"; $ROW_COLORED = 0; } } // attach the week number $OUTPUT .= "<td align='center' width='23' " . TMPL_calSmallMonthWeekNumberStyle . ">{$c_weeknum}</td>"; } /* change the fill color if it it 2day's date we are printing */ if ($c_day == $sday && $month == $smonth && $year == $syear) { // selected date $dayfill = "bgcolor=" . TMPL_calSmallMonthSelectedDay; $a_id = "calSmallMonthCMLinkSelected"; } else { if (date("d") == $c_day && date("m") == $month && date("Y") == $year) { // 2day's date $dayfill = "bgcolor='" . TMPL_calSmallMonthCurrentDay . "'"; $a_id = "calSmallMonthCMLinkToday"; } else { // other dates // fill differently for saturday and sunday (only when the row has not already been colored) if ($c_wd == 6 && !$ROW_COLORED) { $dayfill = "bgcolor='" . TMPL_calFillSaturday . "'"; } else { if ($c_wd == 7 && !$ROW_COLORED) { $dayfill = "bgcolor='" . TMPL_calFillSunday . "'"; } else { $dayfill = ""; } } $a_id = "calSmallMonthCMLink"; } } $OUTPUT .= "\n\t\t\t<td width='23' {$dayfill} align='center'>\n\t\t\t\t<a id='{$a_id}' href='javascript: dateSelUpdate(\"{$idpfx}\", \"{$c_day}\", \"{$month}\", \"{$year}\");'>{$c_day}</a>\n\t\t\t</td>"; /* end of output */ if ($c_wd == 7) { $OUTPUT .= "</tr>"; } $c_wd = $c_wd == 7 ? 1 : $c_wd + 1; } // next month variables if ($month == 12) { $tmp_month = 1; $tmp_year = $year + 1; } else { $tmp_month = $month + 1; $tmp_year = $year; } // finish with the next months entries for ($c_day = 1; $c_wd <= 7 && $c_wd > 1; $c_wd++, $c_day++) { // fill differently for saturday and sunday if ($c_wd == 6 && !$ROW_COLORED) { $dayfill = "bgcolor='" . TMPL_calFillSaturday . "'"; } else { if ($c_wd == 7 && !$ROW_COLORED) { $dayfill = "bgcolor='" . TMPL_calFillSunday . "'"; } else { $dayfill = ""; } } $OUTPUT .= "\n\t\t<td {$dayfill} width='23' align='center'>\n\t\t\t<a id='calSmallMonthOMLink' href='javascript: dateSelUpdate(\"{$idpfx}\", \"{$c_day}\", \"{$tmp_month}\", \"{$tmp_year}\");'>{$c_day}</a>\n\t\t</td>"; } /* finish the tables and return */ $OUTPUT .= "\n\t\t\t</tr>\n\t\t</table>\n\t\t</td>\n\t</tr>\n\t</table>\n\n\t</td></tr>\n\t</table>\n\t</div>\n\t</div>"; return $OUTPUT; }
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) { $_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; }
function process($_POST) { extract($_POST); if (isset($btn_correction)) { return slctEmployee(); } # validate input require_lib("validate"); $v = new validate(); $v->isOk($empnum, "num", 1, 20, "Invalid employee number."); $v->isOk($MON, "num", 1, 2, "Invalid month."); global $PRDMON, $MONPRD; $yr = getYearOfEmpMon($MON); $curyr = getActiveFinYear(); if ($yr > $curyr || $yr == $curyr && $MON > $PRDMON[12]) { $v->addError("", "Cannot do transaction in future financial year. You need\n\t\t\tto close your year first before you can continue."); } if ($v->isError()) { return slctEmployee($v->genErrors()); return $confirmCust; } # Get employee details 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["flag"] == "2.5EMP") { $OUTPUT = "\n\t\t\t<h3>Process Employee Salary</h3>\n\t\t\t<li class='err'>\n\t\t\t\tDue to the changes from Cubit 2.5 to Cubit 2.6.1 you should first update your employee's\n\t\t\t\tsalary/deduction/allowance information in the employee edit form.\n\t\t\t\tClick <a href='../admin-employee-edit.php?empnum={$empnum}'>here</a> to do so.\n\t\t\t</li>"; return $OUTPUT; } if (!empty($idnum)) { $bd_year = substr($myEmp["idnum"], 0, 2); $bd_month = substr($myEmp["idnum"], 2, 2); $bd_day = substr($myEmp["idnum"], 4, 2); if (!checkdate($bd_month, $bd_day, $bd_year)) { $OUTPUT = "\n\t\t\t\t<h3>Process Employee Salary</h3>\n\t\t\t\t<li class='err'>\n\t\t\t\t\tSelected employee does not have a valid id number and therefore his age cannot be\n\t\t\t\t\tcalculated.<br>\n\t\t\t\t\tPlease update this information in the employee <a href='../admin-employee-edit.php?empnum={$empnum}'>edit</a> form.\n\t\t\t\t</li>"; return $OUTPUT; } } if ($myEmp["paytype"] == "EFT" && (empty($myEmp["bankname"]) || empty($myEmp["bankaccno"]))) { return "Employee banking information not entered.<br>\n\t\t\tClick <a href='../admin-employee-edit.php?empnum={$empnum}'>here</a> employee banking information."; } $grossal = $myEmp["basic_sal"] + $myEmp["commission"] + $myEmp["bonus"]; $yy = date("Y"); $mm = $MON; $mm += 0; if ($myEmp['payprd'] == "m") { $Sl = "SELECT * FROM salpaid WHERE empnum='{$empnum}' AND month='{$mm}' AND cyear='" . EMP_YEAR . "'"; $Ri = db_exec($Sl); $paid = pg_num_rows($Ri); $Sl = "SELECT * FROM salr WHERE empnum='{$empnum}' AND month='{$mm}' AND cyear='" . EMP_YEAR . "'"; $Ri = db_exec($Sl); $upaid = pg_num_rows($Ri); $upaid += 0; $paid -= $upaid; } else { $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 (empty($paid)) { return slctPrd("<li class='err'>You have not processed a salary for that period.</li>"); } /* calculate basic salary divisors and multipliers * used for calculating deductions/allowances/etc. when the * salary type and payment period differs in length */ switch ($myEmp["saltyp"]) { case "h": $divisor = 1; switch ($myEmp["payprd"]) { case "d": $multiplier = $myEmp["hpweek"] / 5; break; case "w": $multiplier = $myEmp["hpweek"]; break; case "f": $multiplier = $myEmp["hpweek"] * 2; break; case "m": $multiplier = $myEmp["hpweek"] * 52 / 12; break; } break; case "m": $divisor = 1; switch ($myEmp["payprd"]) { case "d": $multiplier = 12 / (5 * 52); break; case "w": $multiplier = 12 / 52; break; case "f": $multiplier = 12 / 26; break; case "m": $multiplier = 1; break; } break; case "w": $divisor = 52 / 12; switch ($myEmp["payprd"]) { case "d": $multiplier = 1 / 5; break; case "w": $multiplier = 1; break; case "f": $multiplier = 2; break; case "m": $multiplier = 52 / 12; break; } break; case "f": $divisor = 26 / 12; switch ($myEmp["payprd"]) { case "d": $multiplier = 1 / 10; break; case "w": $multiplier = 1 / 2; break; case "f": $multiplier = 1; break; case "m": $multiplier = 26 / 12; break; } break; } /* BEGIN: retrieve/populate amounts to reverse */ switch ($myEmp["payprd"]) { case "m": $spw = "true"; break; case "d": $spw = "week='{$pday}'"; break; case "f": case "w": $spw = "week='{$week}'"; break; } /* previous salary entries in salpaid/salr */ $vals = array("paye", "hours", "salrate", "comm", "bonus", "novert", "hovert"); $prevsal = array(); /* FP: CALCULATE PREVIOUS */ /* previous salary entries in emp_(inc|com|ded|frin) */ foreach ($vals as $vn) { /* process */ $sql = "SELECT sum({$vn}) FROM salpaid WHERE empnum='{$empnum}' AND ({$spw}) AND month='{$MON}' and cyear='" . EMP_YEAR . "'"; $rslt = db_exec($sql) or errDie("Unable to get paye"); $prevsal[$vn] = pg_fetch_result($rslt, 0, 0); /* reverse */ $sql = "SELECT sum({$vn}) FROM salr WHERE empnum='{$empnum}' AND ({$spw}) AND month='{$MON}' and cyear='" . EMP_YEAR . "'"; $rslt = db_exec($sql) or errDie("Unable to get paye"); $prevsal[$vn] -= pg_fetch_result($rslt, 0, 0); vsprint($prevsal[$vn]); } //do we want to include overtime in the reversal? ... yes plz ... $h1 = $prevsal['novert']; $h2 = $prevsal['hovert']; //FP use this to go though tables and get info to reverse (bonus etc) $vals = array("emp_ded" => array("DEDP" => "emp_pension", "DEDV" => "emp_provident", "UIFE" => "emp_uif", "DEDR" => "emp_ret", "DEDA" => "myEmp[fringe_car1_contrib]", "DEDB" => "myEmp[fringe_car2_contrib]", "DEDM" => "emp_medical", "DEDO" => "emp_other"), "emp_com" => array("COMP" => "comp_pension", "COMV" => "comp_provident", "UIFC" => "comp_uif", "COMR" => "comp_ret", "COMM" => "comp_medical", "COMO" => "comp_other", "SDL" => "sdl"), "emp_frin" => array()); foreach ($vals as $table => $pd) { foreach ($pd as $code => $vn) { /* process */ $sql = "\n\t\t\t\tSELECT sum(amount) \n\t\t\t\tFROM {$table} \n\t\t\t\tWHERE emp='{$empnum}' AND type='{$code}' AND ({$spw}) AND period='{$MON}' AND year='" . EMP_YEAR . "' LIMIT 1"; $rslt = db_exec($sql) or errDie("Unable to get paye"); if (strlen(pg_fetch_result($rslt, 0, 0)) > 0) { $prevsal[$vn] = pg_fetch_result($rslt, 0, 0); } else { $prevsal[$vn] = "0.00"; } } } /* END: retrieve/populate amounts to reverse */ # fringe benefits $fringes = ""; $i = 0; $sql = "SELECT * FROM fringebens WHERE div = '" . USER_DIV . "' ORDER BY fringeben"; $rslt = db_exec($sql) or errDie("Unable to select allowances from database."); if (pg_num_rows($rslt) < 1) { $fringes = "\n\t\t\t<tr>\n\t\t\t\t<td class='" . bg_class() . "' colspan='2' align='center'>None found in database.</td>\n\t\t\t</tr>\n"; } else { while ($myFringe = pg_fetch_array($rslt)) { # check if employee has allowance $sql = "SELECT * FROM empfringe WHERE fringeid='{$myFringe['id']}' AND empnum='{$myEmp['empnum']}' AND div = '" . USER_DIV . "'"; $empRslt = db_exec($sql) or errDie("Unable to retrieve fringe benefit info from database."); if (pg_numrows($empRslt) > 0) { $empFringe = pg_fetch_array($empRslt); $sql = "SELECT sum(amount) FROM cubit.emp_frin WHERE emp='{$empnum}' AND type='{$myFringe['id']}' AND ({$spw}) AND period='{$MON}' AND year='" . EMP_YEAR . "'"; $amtRslt = db_exec($sql); $empFringe["amount"] = pg_fetch_result($amtRslt, 0, 0); // if ( substr($empFringe["type"], 0, 4) == "Perc" ) { // $empFringe["amount"] = sprint($myEmp["basic_sal"] * ($empFringe["amount"]/100) / $divisor); // } else { // $empFringe['amount'] = sprint($empFringe['amount'] / $divisor); // } $grossal += $empFringe["amount"]; $tmp_fringeaccs = $empFringe["accid"]; $tmp_fringebens = $empFringe["amount"]; } else { $tmp_fringeaccs = "0"; $tmp_fringebens = "0.00"; } $fringes .= "\n\t\t\t\t<input type='hidden' name='fringeid[]' value='{$myFringe['id']}'>\n\t\t\t\t<input type='hidden' name='fringename[]' value='{$myFringe['fringeben']}'>\n\t\t\t\t<input type='hidden' name='fringeaccs[]' value='{$tmp_fringeaccs}'>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>{$myFringe['fringeben']}</td>\n\t\t\t\t\t<td align='center'>\n\t\t\t\t\t\t" . CUR . " {$tmp_fringebens}\n\t\t\t\t\t\t<input type='hidden' size=10 name='fringebens[]' value='{$tmp_fringebens}'>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>"; $i++; } } # get allowances $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) < 1) { $allowances = "<tr><td class='" . bg_class() . "' colspan='2' align='center'>None found in database.</td></tr>\n"; } else { while ($myAllow = pg_fetch_array($allowRslt)) { # check if employee has allowance $sql = "SELECT * FROM empallow WHERE allowid='{$myAllow['id']}' AND empnum='{$myEmp['empnum']}' AND div = '" . USER_DIV . "'"; $empAllowRslt = db_exec($sql) or errDie("Unable to select allowance info from database."); if (pg_numrows($empAllowRslt) > 0) { $myEmpAllow = pg_fetch_array($empAllowRslt); $sql = "SELECT sum(amount) FROM cubit.emp_inc WHERE emp='{$empnum}' AND type='{$myAllow['id']}' AND ex != 'SUBS' AND ({$spw}) AND period='{$MON}' AND year='" . EMP_YEAR . "'"; $amtRslt = db_exec($sql); $myEmpAllow["amount"] = pg_fetch_result($amtRslt, 0, 0); // if ( substr($myEmpAllow["type"], 0, 4) == "Perc" ) { // $myEmpAllow["amount"] = sprint($myEmp["basic_sal"] * ($myEmpAllow["amount"]/100) / $divisor); // } else { // $myEmpAllow['amount'] = sprint($myEmpAllow['amount'] / $divisor); // } $grossal += $myEmpAllow["amount"]; $tmp_allowaccs = $myEmpAllow["accid"]; $tmp_allowances = $myEmpAllow["amount"]; } else { $tmp_allowaccs = $myAllow["accid"]; $tmp_allowances = "0.00"; } $allowances .= "\n\t\t\t\t<input type='hidden' size='10' name='allowid[]' value='{$myAllow['id']}'>\n\t\t\t\t<input type='hidden' size='30' name='allowname[]' value='{$myAllow['allowance']}'>\n\t\t\t\t<input type='hidden' size='10' name='allowtax[]' value='{$myAllow['add']}'>\n\t\t\t\t<input type='hidden' name='allowaccs[]' value='{$tmp_allowaccs}'>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>{$myAllow['allowance']}</td>\n\t\t\t\t\t<td align='center'>" . CUR . " {$tmp_allowances}<input type='hidden' size='10' name='allowances[]' value='{$tmp_allowances}'></td>\n\t\t\t\t</tr>"; $i++; } } $subsistence = ""; $subslst = new dbSelect("subsistence", "cubit", array("where" => "div='" . USER_DIV . "'", "order" => "name")); $subslst->run(); $subs_int = false; if ($subslst->num_rows() > 0) { $i = 0; $subsistence .= "\n\t\t\t<tr>\n\t\t\t\t<td colspan='10'>\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>"; $empsubs = new dbSelect("emp_subsistence", "cubit"); while ($subs = $subslst->fetch_array()) { $sid = $subs["id"]; $empsubs->setOpt(array("where" => "empnum='{$empnum}' AND subid='{$sid}'")); $empsubs->run(); if ($empsubs->num_rows() <= 0) { $si["amount"] = "0.00"; $si["days"] = "0"; $si["accid"] = $subs["accid"]; } else { $si = $empsubs->fetch_array(); } if ($subs["in_republic"] != "yes") { $subs_int = true; } $subsistence .= "\n\t\t\t\t<input type='hidden' name='subsname[{$sid}]' value='{$subs['name']}'>\n\t\t\t\t<input type='hidden' name='subsacc[{$sid}]' value='{$si['accid']}'>\n\t\t\t\t<input type='hidden' name='subsrep[{$sid}]' value='{$subs['in_republic']}'>\n\t\t\t\t<input type='hidden' name='subsmeal[{$sid}]' value='{$subs['meals']}'>\n\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t<td>{$subs['name']}</td>\n\t\t\t\t\t<td>" . CUR . " {$si['amount']}<input type='hidden' name='subsamt[{$sid}]' value='{$si['amount']}'></td>\n\t\t\t\t\t<td>{$si['days']}<input type='hidden' name='subsdays[{$sid}]' value='{$si['days']}'></td>\n\t\t\t\t</tr>"; } if ($subs_int) { $subsistence .= "\n\t\t\t\t<input type='hidden' name='subs_exch' value='1'>\n\t\t\t\t<tr bgcolor='" . bgcolor($i) . "'>\n\t\t\t\t\t<td colspan='3'><li class='err'>Please calculate the rand amount prior to completing the amount above.</li></td\n\t\t\t\t</tr>"; // <tr bgcolor='".bgcolor($i)."'> // <td colspan='2'>Exchange (ZAR-USD):</td> // <td>".xrate_get("USD")."<input type='hidden' name='subs_exch' value='".xrate_get("USD")."'></td> // </tr>"; } $subsistence .= "\n\t\t\t</table>\n\t\t\t</td></tr>"; } # Deductions $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) < 1) { $deductions = "\n\t\t\t<tr>\n\t\t\t\t<td class='" . bg_class() . "' colspan='2' align='center'>None found in database.</td>\n\t\t\t</tr>\n"; } else { while ($myDeduct = pg_fetch_array($deductRslt)) { # check if employee has deduction $sql = "SELECT * FROM empdeduct WHERE dedid='{$myDeduct['id']}' AND empnum='{$myEmp['empnum']}' AND div = '" . USER_DIV . "'"; $empDeductRslt = db_exec($sql) or errDie("Unable to select Deduction info from database."); if (pg_numrows($empDeductRslt) > 0) { $myEmpDeduct = pg_fetch_array($empDeductRslt); if ($myEmpDeduct["grosdeduct"] == "y") { $deductions_msg = "(Deducted from Gross Salary)"; $sal_calcfrom = $grossal; } else { $deductions_msg = ""; $sal_calcfrom = $myEmp['basic_sal']; } $sql = "SELECT sum(amount) FROM cubit.emp_ded WHERE emp='{$empnum}' AND type='{$myDeduct['id']}' AND ({$spw}) AND period='{$MON}' AND year='" . EMP_YEAR . "'"; $amtRslt = db_exec($sql); $myEmpDeduct['amount'] = pg_fetch_result($amtRslt, 0, 0); //if ($myEmpDeduct['type'] == "Amount") { // $myEmpDeduct['amount'] = sprint($myEmpDeduct['amount'] / $divisor); //} else { // $myEmpDeduct['amount'] = sprint($sal_calcfrom*$myEmpDeduct['amount']/100 / $divisor); //} // calculate employer contribution to deduction $sql = "SELECT sum(amount) FROM cubit.emp_com WHERE emp='{$empnum}' AND type='{$myDeduct['id']}' AND ({$spw}) AND period='{$MON}' AND year='" . EMP_YEAR . "'"; $amtRslt = db_exec($sql); $myEmpDeduct["employer_amount"] = pg_fetch_result($amtRslt, 0, 0); //if ( $myEmpDeduct["employer_type"] == "Amount" ) { // $myEmpDeduct["employer_amount"] = sprint($myEmpDeduct["employer_amount"] / $divisor); //} else { // $myEmpDeduct["employer_amount"] = sprint($myEmpDeduct["amount"] * $myEmpDeduct["employer_amount"] / 100 / $divisor); //} $tmp_deductions = $myEmpDeduct["amount"]; $tmp_dedaccs = $myEmpDeduct["accid"]; $tmp_emp_ded = $myEmpDeduct["employer_amount"]; $tmp_grosdeduct = $myEmpDeduct["grosdeduct"]; } else { #employee may have R0.00 entered into deduction fields .... #in which case no db entries will exist ... manually check these vars here ... $sql = "SELECT sum(amount) FROM cubit.emp_ded WHERE emp='{$empnum}' AND type='{$myDeduct['id']}' AND ({$spw}) AND period='{$MON}' AND year='" . EMP_YEAR . "'"; $runsql = db_exec($sql) or errDie("Unable to get employee deduction information."); if (pg_numrows($runsql) > 0) { $myEmpDeduct['amount'] = pg_fetch_result($runsql, 0, 0); $sql2 = "SELECT * FROM cubit.salded WHERE id = '{$myDeduct['id']}'"; $run_sql2 = db_exec($sql2) or errDie("Unable to get employee deductions information"); if (pg_numrows($run_sql2) > 0) { $darr = pg_fetch_array($run_sql2); $tmp_dedaccs = $darr["accid"]; } else { $tmp_dedaccs = $myEmpDeduct["accid"]; } $sql = "SELECT sum(amount) FROM cubit.emp_com WHERE emp='{$empnum}' AND type='{$myDeduct['id']}' AND ({$spw}) AND period='{$MON}' AND year='" . EMP_YEAR . "'"; $amtRslt = db_exec($sql); $myEmpDeduct["employer_amount"] = pg_fetch_result($amtRslt, 0, 0); $tmp_deductions = $myEmpDeduct["amount"]; $tmp_emp_ded = $myEmpDeduct["employer_amount"]; $tmp_grosdeduct = $myEmpDeduct["grosdeduct"]; } else { $tmp_deductions = "0.00"; $tmp_emp_ded = "0.00"; $tmp_dedaccs = $myDeduct["accid"] != 0 ? $myDeduct["accid"] : $myDeduct["expaccid"]; $tmp_grosdeduct = "n"; $deductions_msg = ""; } } $deductions .= "\n\t\t\t\t<input type='hidden' size='10' name='employer_deductions[]' value='{$tmp_emp_ded}'>\n\t\t\t\t<input type='hidden' size='10' name='deducttax[]' value='{$myDeduct['add']}'>\n\t\t\t\t<input type='hidden' name='grosdeduct[]' value='{$tmp_grosdeduct}'>\n\t\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t\t<td>{$myDeduct['deduction']} {$deductions_msg}</td>\n\t\t\t\t\t<td align='center'>\n\t\t\t\t\t\t" . CUR . " {$tmp_deductions}\n\t\t\t\t\t\t<input type='hidden' size='10' name='deductid[]' value='{$myDeduct['id']}'>\n\t\t\t\t\t\t<input type='hidden' size='30' name='deductname[]' value='{$myDeduct['deduction']}'>\n\t\t\t\t\t\t<input type='hidden' size='10' name='deductions[]' value='{$tmp_deductions}'>\n\t\t\t\t\t\t<input type='hidden' name='dedaccs[]' value='{$tmp_dedaccs}'>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>"; $i++; } } $deductions .= ""; /* get loan installment for applicable month */ db_conn("cubit"); $sql = "SELECT * FROM emp_loaninstallments WHERE empnum='{$empnum}' AND fmonth='{$mm}' AND fyear='" . EMP_YEAR . "' LIMIT 1"; $rslt = db_exec($sql) or errDie("Error reading possible loan installment information."); if (pg_num_rows($rslt) > 0) { $loandata = pg_fetch_array($rslt); $myEmp["loaninstall"] = $loandata["installment"]; $tm_loaninstall = $loandata["installment"]; $fringe_loan = $loandata["fringe"]; $loanint = $loandata["interest"]; $loaninstall_date = $loandata["fdate"]; $loaninstall_prd = $loandata["fperiod"]; } else { $myEmp['loaninstall'] = "0.00"; $tm_loaninstall = "0.00"; $fringe_loan = "0.00"; $loanint = "0.00"; $loaninstall_date = "0000-00-00"; $loaninstall_prd = "0"; } $salarr = array("m" => "Per Month", "w" => "Per Week", "f" => "Fortnightly", "h" => "Per Hour"); $salnarr = array("d" => "Day(s)", "h" => "Hour(s)"); $saltype = $salarr[$myEmp['saltyp']]; $multi = round($prevsal["hours"]); if ($myEmp['saltyp'] == 'd' || $myEmp['saltyp'] == 'h') { $salntype = $salnarr[$myEmp['saltyp']]; $multi_show = "x <input type='hidden' size='3' name='multi' value='{$multi}'>{$multi} {$salntype}"; } else { $multi_show = "<input type='hidden' name='multi' value='{$multi}'>"; $saltype = ""; } db_conn('cubit'); $Sl = "SELECT * FROM bankacct WHERE btype != 'int' AND div = '" . USER_DIV . "' ORDER BY accname ASC"; $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.</li>\n\t\t<p><input type='button' onClick='JavaScript:history.back();' value='« Correct Selection'>"; } $banks = "<select name='accid'>"; while ($acc = pg_fetch_array($Ry)) { $banks .= "<option value='{$acc['bankid']}'>{$acc['accname']} ({$acc['acctype']})</option>"; } $banks .= "</select>"; $myEmp['loaninstall'] += 0; if ($myEmp['paytype'] == "Cash") { $paydetails = "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td colspan='2'>Employee paid cash</td>\n\t\t\t</tr>\n\t\t\t<input type='hidden' name='accid' value='0'>"; } else { if ($myEmp['paytype'] == "Ledger Account") { db_conn('core'); $Sl = "SELECT accid,accname FROM accounts ORDER BY accname"; $Ri = db_exec($Sl); $accounts = "\n\t\t\t<select name='account'>\n\t\t\t\t<option value='#'>Select Account</option>"; while ($ad = pg_fetch_array($Ri)) { if (isset($account) && $account == $ad['accid']) { $sel = "selected"; } else { $sel = ""; } $accounts .= "<option value='{$ad['accid']}'>{$ad['accname']}</option>"; } $accounts .= "</select>"; $paydetails = "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Ledger Account for payment</td>\n\t\t\t\t<td>{$accounts}</td>\n\t\t\t</tr>\n\t\t\t<input type='hidden' name='accid' value='0'>"; } else { $paydetails = "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Bank Account</td>\n\t\t\t\t<td valign='center'>{$banks}</td>\n\t\t\t</tr>"; } } // $h1 = ""; // $h2 = ""; $db = array("comp_pension" => $myEmp["comp_pension"], "emp_pension" => $myEmp["emp_pension"], "comp_provident" => $myEmp["comp_provident"], "emp_provident" => $myEmp["emp_provident"], "comp_uif" => $myEmp["comp_uif"], "emp_uif" => $myEmp["emp_uif"], "comp_other" => $myEmp["comp_other"], "emp_other" => $myEmp["emp_other"]); if (isset($basic_sal)) { $myEmp['basic_sal'] = $basic_sal; $myEmp['all_travel'] = $all_travel; $myEmp['bonus'] = $bonus; $myEmp['commission'] = $commission; $myEmp['abonus'] = $abonus; $myEmp['loaninstall'] = $loaninstall; $myEmp['comp_pension'] = $comp_pension; $myEmp['emp_pension'] = $emp_pension; $myEmp["comp_provident"] = $comp_provident; $myEmp["emp_provident"] = $emp_provident; //$myEmp["comp_uif"] = $comp_uif; //$myEmp["emp_uif"] = $emp_uif; $myEmp["comp_other"] = $comp_other; $myEmp["emp_other"] = $emp_other; $myEmp['comp_medical'] = $comp_medical; $myEmp['emp_medical'] = $emp_medical; $myEmp['comp_ret'] = $comp_ret; $myEmp['emp_ret'] = $emp_ret; // $h1 = $novert; // $h2 = $hovert; } else { //$day = date("d"); //$mon = date("m"); //$year = date("Y"); if ($myEmp["payprd"] == "w" || $myEmp["payprd"] == "f") { $tmpmon = date("j"); $daycount = date("t"); $dayweek = date("D"); if (strtolower($dayweek) == $myEmp["payprd_day"] && $date_day + 7 > $daycount) { $process_comp_deductions = true; } else { $process_comp_deductions = false; } } else { $process_comp_deductions = true; } $effective_basicsal = $myEmp["basic_sal"] * $multiplier; /* we only changing basic sal for non hourly employees, because for hourly employees we change the hours ($mutli) */ if ($myEmp["saltyp"] != "h") { $myEmp["basic_sal"] *= $multiplier; } $myEmp["emp_pension"] = sprint($effective_basicsal * ($myEmp["emp_pension"] / 100)); $myEmp["comp_pension"] = sprint($effective_basicsal * ($myEmp["comp_pension"] / 100)); $myEmp["emp_provident"] = sprint($effective_basicsal * ($myEmp["emp_provident"] / 100)); $myEmp["comp_provident"] = sprint($effective_basicsal * ($myEmp["comp_provident"] / 100)); $myEmp["emp_medical"] = sprint($myEmp["emp_medical"] / $divisor); $myEmp["comp_medical"] = sprint($myEmp["comp_medical"] / $divisor); $myEmp["emp_ret"] = sprint($myEmp["emp_ret"] / $divisor); $myEmp["comp_ret"] = sprint($myEmp["comp_ret"] / $divisor); $myEmp["loaninstall"] = sprint($myEmp["loaninstall"] / $divisor); $myEmp["all_travel"] = sprint($myEmp["all_travel"] / $divisor); if (!isset($salyr)) { $salyr = ""; } explodeDate($myEmp["loandate"], $loana_year, $loana_month, $loana_day); if ($loana_year > $salyr || $loana_year == $salyr && $loana_month > $MON) { $myEmp["loanint"] = 0; $myEmp["loaninstall"] = 0; } } /* 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 ( $myEmp["emp_uif"] > $uifmax ) { $myEmp["emp_uif"] = $uifmax; } if ( $myEmp["comp_uif"] > $uifmax ) { $myEmp["comp_uif"] = $uifmax; } */ $rt = "<tr><th colspan='2'>Reimbursements</th></tr>"; $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']] = ""; } $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 . " " . $rbsa[$td['id']] . "<input type='hidden' size='10' name='rbsa[{$td['id']}]' value='" . $rbsa[$td['id']] . "' class=right></td>\n\t\t\t\t</tr>"; $i++; } } else { $rt .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td colspan='2' align='center'>There are no reimbursements</td>\n\t\t\t</tr>"; } if (!isset($annual) && $myEmp["sal_bonus_month"] == $MON) { $annual = $myEmp["sal_bonus"]; } else { if (!isset($annual)) { $annual = 0; } } if ($myEmp["payprd"] == "m" || $myEmp["payprd"] == "d") { // count the amount of weekdays in this month $workdays = 0; for ($i = 1; $i <= date("t", mktime(0, 0, 0, $MON, 1, date("Y"))); ++$i) { $wd = date("w", mktime(0, 0, 0, $MON, $i, date("Y"))); if ($wd != 0 && $wd != 6) { ++$workdays; } } // hours per day calculation $hpd = $myEmp["hpweek"] / 5; if (!isset($wh_total)) { $wh_total = $workdays * $hpd; } if (!isset($wh_actual)) { $wh_actual = $wh_total; } } if ($myEmp["payprd"] == "w") { if (!isset($wh_total)) { $wh_total = $myEmp["hpweek"]; } if (!isset($wh_actual)) { $wh_actual = $wh_total; } } if ($myEmp["payprd"] == "f") { if (!isset($wh_total)) { $wh_total = $myEmp["hpweek"] * 2; } if (!isset($wh_actual)) { $wh_actual = $wh_total; } } $js_workhours = "\n\t\t<script>\n\t\t\tsf = document.getElementById('salfrm');\n\n\t\t\tf_sal\t\t= sf.elements['basic_sal'];\n\t\t\tf_whtot\t\t= sf.elements['wh_total'];\n\t\t\tf_whact\t\t= sf.elements['wh_actual'];\n\t\t\tf_cpension\t= sf.elements['comp_pension'];\n\t\t\tf_epension \t= sf.elements['emp_pension'];\n\t\t\tf_cprov\t\t= sf.elements['comp_provident'];\n\t\t\tf_eprov\t\t= sf.elements['emp_provident'];\n\t\t\t//f_cuif\t= sf.elements['comp_uif'];\n\t\t\t//f_euif\t= sf.elements['emp_uif'];\n\t\t\tf_cother\t= sf.elements['comp_other'];\n\t\t\tf_eother\t= sf.elements['emp_other'];\n\n\t\t\tdb_cpension\t= " . $db["comp_pension"] . ";\n\t\t\tdb_epension\t= " . $db["emp_pension"] . ";\n\t\t\tdb_cprov\t= " . $db["comp_provident"] . ";\n\t\t\tdb_eprov\t= " . $db["emp_provident"] . ";\n\t\t\t//db_cuif\t= " . $db["comp_uif"] . ";\n\t\t\t//db_euif\t= " . $db["emp_uif"] . ";\n\t\t\tdb_cother\t= " . $db["comp_other"] . ";\n\t\t\tdb_eother\t= " . $db["emp_other"] . ";\n\n\t\t\tval_sal \t\t= -1;\n\n\t\t\t// changing the workhours\n\t\t\tfunction workhours() {\n\t\t\t\tif ( val_sal < 0 ) val_sal = parseFloat(f_sal.value);\n\n\t\t\t\tval_whtot\t= parseFloat(f_whtot.value);\n\t\t\t\tval_whact\t= parseFloat(f_whact.value);\n\n\t\t\t\tif ( val_whtot >= val_whact ) {\n\t\t\t\t\tp = val_whact / val_whtot;\n\n\t\t\t\t\t// calculate the new basic salary\n\t\t\t\t\tx = val_sal * p;\n\t\t\t\t\tx = x.toFixed(2);\n\t\t\t\t\tf_sal.value = x;\n\n\t\t\t\t\t// calculate the new values\n\t\t\t\t\tval_cpension \t\t= x * db_cpension / 100;\n\t\t\t\t\tval_epension \t\t= x * db_epension / 100;\n\t\t\t\t\tval_cprov\t\t= x * db_cprov / 100;\n\t\t\t\t\tval_eprov\t\t= x * db_eprov / 100;\n\t\t\t\t\t//val_cuif\t\t= x * db_cuif / 100;\n\t\t\t\t\t//val_euif\t\t= x * db_euif / 100;\n\t\t\t\t\tval_cother\t\t= x * db_cother / 100;\n\t\t\t\t\tval_eother\t\t= x * db_eother / 100;\n\n\t\t\t\t\tval_cpension \t\t= val_cpension.toFixed(2);\n\t\t\t\t\tval_epension \t\t= val_epension.toFixed(2);\n\t\t\t\t\tval_cprov \t\t= val_cprov.toFixed(2);\n\t\t\t\t\tval_eprov\t\t= val_eprov.toFixed(2);\n\t\t\t\t\t//val_cuif\t\t= val_cuif.toFixed(2);\n\t\t\t\t\t//val_euif\t\t= val_euif.toFixed(2);\n\t\t\t\t\tval_cother\t\t= val_cother.toFixed(2);\n\t\t\t\t\tval_eother\t\t= val_eother.toFixed(2);\n\n\t\t\t\t\tf_cpension.value\t= val_cpension;\n\t\t\t\t\tf_epension.value \t= val_epension;\n\t\t\t\t\tf_cprov.value \t\t= val_cprov;\n\t\t\t\t\tf_eprov.value\t\t= val_eprov;\n\t\t\t\t\t//f_cuif.value\t\t= val_cuif;\n\t\t\t\t\t//f_euif.value\t\t= val_euif;\n\t\t\t\t\tf_cother.value\t\t= val_cother;\n\t\t\t\t\tf_eother.value\t\t= val_eother;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction changedfield() {\n\t\t\t\tval_whtot\t= parseFloat(f_whtot.value);\n\t\t\t\tval_whact\t= parseFloat(f_whact.value);\n\n\t\t\t\tp = val_whtot / val_whact;\n\n\t\t\t\tval_sal = parseFloat(f_sal.value) * p;\n\t\t\t\tval_sal = val_sal.toFixed(2);\n\t\t\t}\n\t\t</script>"; $process = "\n\t\t<h3>Reverse Salary for {$myEmp['sname']}, {$myEmp['fnames']}</h3>\n\t\t<form action='" . SELF . "' method='POST' id='salfrm'>\n\t\t<table " . TMPL_tblDflts . ">\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='Confirm »'></td>\n\t\t\t</tr>\n\t\t\t<input type='hidden' name='key' value='confirm'>\n\t\t\t<input type='hidden' name='empnum' value='{$empnum}'>\n\t\t\t<input type='hidden' name='MON' value='{$MON}'>\n\t\t\t<input type='hidden' name='date_day' value='{$date_day}' />\n\t\t\t<input type='hidden' name='date_month' value='{$date_month}' />\n\t\t\t<input type='hidden' name='date_year' value='{$date_year}' />\n\t\t\t<input type='hidden' name='day' value='{$date_day}' />\n\t\t\t<input type='hidden' name='mon' value='{$date_month}' />\n\t\t\t<input type='hidden' name='year' value='{$date_year}' />\n\t\t\t<input type='hidden' name='saltyp' value='{$myEmp['saltyp']}'>\n\t\t\t<input type='hidden' name='process_comp_deductions' value='{$process_comp_deductions}'>\n\t\t\t<input type='hidden' name='divisor' value='{$divisor}'>"; if ($myEmp["saltyp"] == "h") { $process .= "<li class='err'>Please remember to enter the amount of hours you wish to reverse the salary for.</li>"; } vsprint($myEmp["basic_sal"]); if (!isset($week)) { $week = "0"; } if (!isset($pday)) { $pday = "0"; } $weekpday = "\n\t\t<input type='hidden' name='week' value='{$week}'/>\n\t\t<input type='hidden' name='pday' value='{$pday}' />"; $process .= "\n\t\t<tr>\n\t\t\t<th colspan='2'>Salary Details</th>\n\t\t</tr>\n\t\t<tr class='" . bg_class() . "'>\n\t\t\t<td nowrap>Basic salary</td>\n\t\t\t<td nowrap>" . CUR . " <input type='hidden' size='10' name='basic_sal' value='{$prevsal['salrate']}' class='right' onChange='changedfield();'> {$prevsal['salrate']} {$saltype} {$multi_show}</td>\n\t\t</tr>"; if ($myEmp["payprd"] == "d") { $process .= "\n\t\t\t<input type='hidden' name='wh_total' value='1'>\n\t\t\t<input type='hidden' name='wh_actual' value='1'>"; } else { $process .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Total Work Hours:</td>\n\t\t\t\t<td><input type='hidden' size='10' name='wh_total' value='{$wh_total}' class='right' onChange='workhours();'>{$wh_total}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Actual Hours Worked:</td>\n\t\t\t\t<td><input type='hidden' size='10' name='wh_actual' value='{$wh_actual}' class='right' onChange='workhours();'>{$wh_actual}</td>\n\t\t\t</tr>"; } $process .= "\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Normal Overtime</td>\n\t\t\t\t<td><input type='hidden' size='5' name='novert' value='{$h1}' class='right'>{$h1} Hrs</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Public Holiday Overtime</td>\n\t\t\t\t<td><input type='hidden' size='5' name='hovert' value='{$h2}' class='right'>{$h2} Hrs</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<!--<td>Special Bonus/Additional Salary</td>-->\n\t\t\t\t<td>Annual Bonus</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' name='bonus' value='0' class='right'><input type='hidden' name='abonus' value='{$prevsal['bonus']}' class='right'>{$prevsal['bonus']}</td>\n\t\t\t\t<!--<td rowspan='2' class='err'>An amount entered here (Special Bonus/Additional\n\t\t\t\t\tSalary) will be treated as a recurring bonus/payment per pay period for PAYE\n\t\t\t\t\tpurposes, the amount will not be treated as an annual payment. If the\n\t\t\t\t\tamount paid as a bonus is a once off/annual payment please use the\n\t\t\t\t\tBonus(Annual Payments) option. In other cases PAYE has to be manually\n\t\t\t\t\tadjusted <u>per directive</u> from SARS when processing salary.\n\t\t\t\t</td>-->\n\t\t\t</tr>\n\t\t\t<input type='hidden' name='annual' value='0' />\n\t\t\t<!--<tr class='" . bg_class() . "'>\n\t\t\t\t<td>Bonus(Annual/Once Off Payments)</td>\n\t\t\t\t<td nowrap>" . CUR . " <input type='text' size='10' name='annual' value='{$annual}' class='right'></td>\n\t\t\t</tr>-->\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Commission</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='commission' value='{$prevsal['comm']}' class='right'>{$prevsal['comm']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Low or interest-free loan</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size=10 name=loaninstall value='{$tm_loaninstall}' class=right>{$tm_loaninstall}</td>\n\t\t\t\t<input type='hidden' name='fringe_loan' value='{$fringe_loan}'>\n\t\t\t\t<input type='hidden' name='loanint' value='{$loanint}'>\n\t\t\t\t<input type='hidden' name='loaninstall_date' value='{$loaninstall_date}'>\n\t\t\t\t<input type='hidden' name='loaninstall_prd' value='{$loaninstall_prd}'>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Travel Allowance</td>\n\t\t\t\t<td>R <input type='hidden' size='10' name='all_travel' value='{$myEmp['all_travel']}' class='right'>{$myEmp['all_travel']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Pension: Company Contribution</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='comp_pension' value='{$prevsal['comp_pension']}' class='right'>{$prevsal['comp_pension']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Pension: Employee Deduction</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='emp_pension' value='{$prevsal['emp_pension']}' class='right'>{$prevsal['emp_pension']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Provident: Company Contribution</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='comp_provident' value='{$prevsal['comp_provident']}' class='right'>{$prevsal['comp_provident']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Provident: Employee Deduction</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='emp_provident' value='{$prevsal['emp_provident']}' class='right'>{$prevsal['emp_provident']}</td>\n\t\t\t</tr>\n\t\t\t<!--\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>UIF: Company Contribution</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='comp_uif' value='{$prevsal['comp_uif']}' class='right'>{$prevsal['comp_uif']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>UIF: Employee Deduction</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='emp_uif' value='{$prevsal['emp_uif']}' class='right'>{$prevsal['comp_uif']}</td>\n\t\t\t</tr>\n\t\t\t//-->\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Retirement Annuity: Company Contribution</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='comp_ret' value='{$prevsal['comp_ret']}' class='right'>{$prevsal['comp_ret']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Retirement Annuity: Employee Deduction</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='emp_ret' value='{$prevsal['emp_ret']}' class='right'>{$prevsal['emp_ret']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Medical Contribution: Company</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='comp_medical' value='{$prevsal['comp_medical']}' class='right'>{$prevsal['comp_medical']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Medical Contribution: Employee</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='emp_medical' value='{$prevsal['emp_medical']}' class='right'>{$prevsal['emp_medical']}</td>\n\t\t\t</tr>\n\t\t\t<input type='hidden' name='comp_other' value='0'>\n\t\t\t<input type='hidden' name='emp_other' value='0'>\n\t\t\t<!--\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Other: Company Contribution</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='comp_other' value='{$prevsal['comp_other']}' class='right'>{$prevsal['comp_other']}</td>\n\t\t\t</tr>\n\t\t\t<tr class='" . bg_class() . "'>\n\t\t\t\t<td nowrap>Other: Employee Deduction</td>\n\t\t\t\t<td>" . CUR . " <input type='hidden' size='10' name='emp_other' value='{$prevsal['emp_other']}' class='right'>{$prevsal['emp_other']}</td>\n\t\t\t</tr>\n\t\t\t//-->\n\t\t\t{$paydetails}\n\t\t\t<input type='hidden' name='mpaye' value='1' />\n\t\t\t<input type='hidden' size=10 value='" . sprint($prevsal["paye"]) . "' name='mpaye_amount' />\n\t\t\t<tr><th colspan='2'>Fringe Benefits</th></tr>\n\t\t\t{$fringes}\n\t\t\t<tr><th colspan='2'>Allowances</th></tr>\n\t\t\t{$allowances}\n\t\t\t<tr><th colspan='2'>Subsistence Allowances</th></tr>\n\t\t\t{$subsistence}\n\t\t\t<tr><th colspan='2'>Deductions</th></tr>\n\t\t\t{$deductions}\n\t\t\t<tr><th colspan='2'>Reimbursements</th></tr>\n\t\t\t{$rt}\n\t\t\t{$weekpday}\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='Confirm »'></td>\n\t\t\t</tr>\n\t\t\t{$js_workhours}\n\t\t</table>\n\t\t</form>"; return $process; }