/** * does an employee ledger transaction * * @param int $empid employee id seq * @param int $contra account id seq * @param string $date * @param int $ref reference number * @param string $details description of transaction * @param float $amount * @param char $type D/C - debit/credit employee ledger */ function empledger($empid, $contra, $date, $ref, $details, $amount, $type) { $amount = abs($amount); if (floatval($amount) == 0) { return; } $edate = date("Y-m-d"); list($PRD_DB, $PRD_NAME) = getPRD($date); list($CUR_PRD_DB, $CUR_PRD_NAME) = getPRD($edate); db_conn($PRD_DB); if ($type == "d") { $damount = $amount; $camount = 0; # Get balances $idRs = get($PRD_DB, "max(id)", "empledger", "empid", $empid); $id = pg_fetch_array($idRs); if ($id['max'] != 0) { $balRs = get($PRD_DB, "cbalance,dbalance", "empledger", "id", $id['max']); $bal = pg_fetch_array($balRs); $bal['cbalance'] += 0; $bal['dbalance'] += $amount; } else { $balRs = get("cubit", "balance", "employees", "empnum", $empid); $bal = pg_fetch_array($balRs); $bal['balance'] += 0; if ($bal['balance'] < 0) { $bal['dbalance'] = $bal['balance'] * -1; $bal['cbalance'] = 0; } else { $bal['cbalance'] = $bal['balance']; $bal['dbalance'] = 0; } //$bal['dbalance'] += $amount; } # Total balance changes if ($bal['dbalance'] >= $bal['cbalance']) { $bal['dbalance'] = $bal['dbalance'] - $bal['cbalance']; $bal['cbalance'] = 0; } elseif ($bal['cbalance'] > $bal['dbalance']) { $bal['cbalance'] = $bal['cbalance'] - $bal['dbalance']; $bal['dbalance'] = 0; } db_conn($PRD_DB); $sql = "\n\t\t\tINSERT INTO empledger (\n\t\t\t\tempid, contra, edate,sdate, ref, des, debit, dbalance, cbalance, div\n\t\t\t) VALUES (\n\t\t\t\t'{$empid}', '{$contra}', '{$date}','{$edate}', '{$ref}', '{$details}', '{$amount}', {$bal['dbalance']}, '{$bal['cbalance']}', '" . USER_DIV . "'\n\t\t\t)"; } else { $camount = $amount; $damount = 0; # Get balances $idRs = get($PRD_DB, "max(id)", "empledger", "empid", $empid); $id = pg_fetch_array($idRs); if ($id['max'] != 0) { $balRs = get($PRD_DB, "cbalance,dbalance", "empledger", "id", $id['max']); $bal = pg_fetch_array($balRs); $bal['cbalance'] += 0; $bal['dbalance'] += 0; $bal['cbalance'] += $amount; } else { $balRs = get("cubit", "balance", "employees", "empnum", $empid); $bal = pg_fetch_array($balRs); $bal['balance'] += 0; if ($bal['balance'] < 0) { $bal['dbalance'] = $bal['balance'] * -1; $bal['cbalance'] = 0; } else { $bal['cbalance'] = $bal['balance']; $bal['dbalance'] = 0; } } # Total balance changes if ($bal['dbalance'] > $bal['cbalance']) { $bal['dbalance'] = $bal['dbalance'] - $bal['cbalance']; $bal['cbalance'] = 0; } elseif ($bal['cbalance'] > $bal['dbalance']) { $bal['cbalance'] = $bal['cbalance'] - $bal['dbalance']; $bal['dbalance'] = 0; } else { $bal['cbalance'] = 0; $bal['dbalance'] = 0; } db_conn($PRD_DB); $sql = "INSERT INTO empledger(empid, contra, edate,sdate, ref, des, credit, dbalance, cbalance, div)\n\t\tVALUES('{$empid}', '{$contra}', '{$date}','{$edate}', '{$ref}', '{$details}', '{$amount}', '{$bal['dbalance']}', '{$bal['cbalance']}', '" . USER_DIV . "')"; } $rs = db_exec($sql) or errdie("Unable to insert ledger entry to the Database."); db_conn('cubit'); $Sl = "SELECT * FROM users WHERE username='******' AND div='" . USER_DIV . "' AND state='p'"; $Ri = db_exec($Sl); //if(pg_num_rows($Ri)>0) { $data = pg_fetch_array($Ri); // db_conn('core'); // // $Sl="SELECT * FROM active"; // $Ri=db_exec($Sl) or errDie("Unablet to get data."); // // $data=pg_fetch_array($Ri); global $PRDMON, $MONPRD; if (true || $MONPRD[$PRD_DB] < $MONPRD[$CUR_PRD_DB]) { for ($iPRD = $MONPRD[$PRD_DB] + 1; $iPRD <= 12; ++$iPRD) { if ($type == "d") { $d_extra = $amount; $c_extra = 0; } else { $d_extra = 0; $c_extra = $amount; } $d_extra = $c_extra = 0; db_conn($PRDMON[$iPRD]); $sql = "UPDATE empledger SET dbalance=dbalance+'{$damount}',cbalance=cbalance+'{$camount}'\n\t\t\t\tWHERE empid='{$empid}'"; $Ri = db_exec($sql) or errDie("Unable to update suppledeger."); if (pg_affected_rows($Ri) <= 0) { $sql = "INSERT INTO empledger(empid, contra, edate,sdate, ref, des,\n\t\t\t\t\t\tcredit, dbalance, cbalance, div)\n\t\t\t\t\tVALUES('{$empid}', '0', '{$date}','{$edate}', '{$ref}', 'Balance',\n\t\t\t\t\t\t'0', '{$bal['dbalance']}', '{$bal['cbalance']}', '" . USER_DIV . "')"; db_exec($sql) or errDie("Error updating employee ledger (PINS)."); } else { //$Sl="SELECT * FROM empledger WHERE empid='$empid'"; //$Rl=db_exec($Sl) or errDie("Unable to get ledger."); //while($cdata=pg_fetch_array($Rl)) { // if($cdata['dbalance']>=$cdata['cbalance']) { $sql = "UPDATE empledger SET dbalance=dbalance-cbalance,cbalance=0\n\t\t\t\t\tWHERE empid='{$empid}' AND dbalance>=cbalance"; db_exec($sql) or errDie("Unable to update emp ledger."); // } elseif($cdata['cbalance']>$cdata['dbalance']) { $sql = "UPDATE empledger SET cbalance=cbalance-dbalance,dbalance=0\n\t\t\t\t\tWHERE empid='{$empid}' AND cbalance>dbalance"; db_exec($sql) or errDie("Unable to update emp ledger."); // } //} } } } if (PRD_STATE == "py") { $audit_db = YR_NAME . "_audit"; $actyear = PYR_NAME; } else { $audit_db = "audit"; $actyear = YR_NAME; } db_conn($audit_db); if ($type == "d") { $sql = "INSERT INTO " . $PRD_NAME . "_empledger(empid, contra, edate,sdate, ref, descript, debit,\n\t\t\t\tdbalance, cbalance, div, actyear)\n\t\t\tVALUES('{$empid}', '{$contra}', '{$date}','{$edate}', '{$ref}', '{$details}', '{$amount}',\n\t\t\t\t'{$bal['dbalance']}', '{$bal['cbalance']}', '" . USER_DIV . "', '{$actyear}')"; } else { $sql = "INSERT INTO " . $PRD_NAME . "_empledger(empid, contra, edate,sdate, ref, descript, credit,\n\t\t\t\tdbalance, cbalance, div, actyear)\n\t\t\tVALUES('{$empid}', '{$contra}', '{$date}','{$edate}', '{$ref}', '{$details}', '{$amount}',\n\t\t\t\t'{$bal['dbalance']}', '{$bal['cbalance']}', '" . USER_DIV . "', '{$actyear}')"; } db_exec($sql) or errDie("Unable to insert aduit"); }
/** * creates an inventory ledger entry * * @param int $stkid stock id * @param string $stkcod stock code * @param string $stkdes stock description * @param char $trantype value must be "d" | "c" - debit/credit * @param string $edate * @param int $qty * @param float $csamt cost amount * @param string $details entry details */ function stockrec($stkid, $stkcod, $stkdes, $trantype, $edate, $qty, $csamt, $details, $dobal = TRUE) { list($PRD_DB, $PRD_NAME) = getPRD($edate); list($CUR_PRD_DB, $CUR_PRD_NAME) = getPRD(); if ($trantype != 'dt') { $csamt = $csamt * -1; $qty = $qty * -1; } # Get balances $idRs = get($PRD_DB, "max(id)", "stkledger", "stkid", $stkid); $id = pg_fetch_array($idRs); if ($id['max'] != 0) { $balRs = get($PRD_DB, "balance,bqty", "stkledger", "id", $id['max']); $bal = pg_fetch_array($balRs); $bal['balance'] += $csamt; $bal['bqty'] += $qty; } else { $balRs = get("cubit", "csamt as balance, units as bqty", "stock", "stkid", $stkid); $bal = pg_fetch_array($balRs); } db_conn($PRD_DB); $sql = "INSERT INTO stkledger(stkid, stkcod, stkdes, trantype, edate, qty, csamt, balance,\n\t\t\tbqty, details, div,yrdb)\n\t\tVALUES('{$stkid}', '{$stkcod}', '{$stkdes}', '{$trantype}', '{$edate}', '{$qty}', '{$csamt}',\n\t\t\t'{$bal['balance']}', '{$bal['bqty']}', '{$details}', '" . USER_DIV . "', '" . YR_DB . "')"; $recRslt = db_exec($sql); global $PRDMON, $MONPRD; for ($iPRD = $MONPRD[$PRD_DB] + 1; $iPRD <= 12; ++$iPRD) { db_conn($PRDMON[$iPRD]); $sql = "UPDATE stkledger SET balance=balance+'{$csamt}',bqty=bqty+'{$qty}'\n\t\t \t \tWHERE stkid='{$stkid}' AND yrdb='" . YR_DB . "'"; $Ri = db_exec($sql) or errDie("Unable to update stockledeger."); if ($dobal) { if (pg_affected_rows($Ri) <= 0) { $sql = "INSERT INTO stkledger(stkid, stkcod, stkdes, trantype, edate, qty,\n\t\t\t\t\t\tcsamt, balance, bqty, details, div,yrdb)\n\t\t\t\t\tVALUES('{$stkid}', '{$stkcod}', 'Balance', '{$trantype}', '{$edate}', '{$qty}',\n\t\t\t\t\t\t'{$csamt}', '{$bal['balance']}', '{$bal['bqty']}', '{$details}',\n\t\t\t\t\t\t'" . USER_DIV . "', '" . YR_DB . "')"; $recRslt = db_exec($sql); } } } }