function select() { global $ePRDMON; pglib_transaction("BEGIN"); $sql = "SELECT * FROM cubit.employees"; mdbg($sql); $rslt = db_exec($sql); print "<xmp>"; print "employees to process: " . pg_num_rows($rslt) . "\n"; $empnum = 0; while ($emp = pg_fetch_assoc($rslt)) { print "processing employee number: " . ++$empnum . "\n"; flush(); ob_flush(); $sql = "SELECT * FROM \"3\".empledger WHERE empid='{$emp['empnum']}'"; mdbg($sql); $ybrslt = db_exec($sql); if (pg_num_rows($ybrslt) > 0) { $yb = pg_fetch_assoc($ybrslt); $p_dbal = $yb["dbalance"]; $p_cbal = $yb["cbalance"]; } else { $p_dbal = 0; $p_cbal = 0; } /* create the balance transactions */ for ($i = 1; $i <= 12; ++$i) { $month = $ePRDMON[$i]; $sql = "SELECT * FROM \"{$month}\".empledger \n\t\t\t\t\tWHERE empid='{$emp['empnum']}'\n\t\t\t\t\tORDER BY edate,id"; $elrslt = db_exec($sql); if (pg_num_rows($elrslt) <= 0) { $sql = "INSERT INTO \"{$month}\".empledger (empid, contra, edate, ref, des,\n\t\t\t\t\t\t\tdebit, credit, dbalance, cbalance, sdate, div)\n\t\t\t\t\t\tVALUES('{$emp['empnum']}', '0', CURRENT_DATE, 0, 'Balance', '0', '0', \n\t\t\t\t\t\t\t'{$p_dbal}', '{$p_cbal}', CURRENT_DATE, 2)"; db_exec($sql); } else { while ($row = pg_fetch_assoc($elrslt)) { $p_dbal += $row["debit"]; $p_cbal += $row["credit"]; if ($p_dbal >= $p_cbal) { $p_dbal = $p_dbal - $p_cbal; $p_cbal = 0; } else { $p_cbal = $p_cbal - $p_dbal; $p_dbal = 0; } } } } } print "\nDone."; print "</xmp>"; mdbg(false); pglib_transaction("COMMIT"); }
function reorder2() { global $PRDMON, $accwh; // $accwh = "WHERE accid='5'"; $sql = "SELECT * FROM core.accounts {$accwh}"; mdbg($sql); $rslt = db_exec($sql); print "<xmp>"; print "accounts to reorder: " . pg_num_rows($rslt) . "\n"; $touched5 = false; $accnum = 0; while ($acc = pg_fetch_assoc($rslt)) { print "reordering account number: " . ++$accnum . " ({$acc['accid']})\n"; flush(); ob_flush(); /* reorder by date,id */ for ($i = 1; $i <= 12; ++$i) { //print "."; flush(); ob_flush(); $month = $PRDMON[$i]; $sql = "SELECT id\n\t\t\t\t\tFROM \"{$month}\".ledger \n\t\t\t\t\tWHERE acc='{$acc['accid']}'\n\t\t\t\t\tORDER BY edate ASC,id ASC"; mdbg($sql); $wmrslt = db_exec($sql); while ($rc = pg_fetch_assoc($wmrslt)) { print "ordering: {$acc['accid']}-{$month}-{$rc['id']}\n"; $sql = "UPDATE \"{$month}\".ledger SET id=id \n\t\t\t\t\t\tWHERE id='{$rc['id']}' AND acc='{$acc['accid']}'"; mdbg($sql); db_exec($sql); } /* check sales account period 9 ordering */ if ($touched5) { $sql = "SELECT descript FROM \"9\".ledger WHERE acc='5' LIMIT 1"; $aaa = pg_fetch_result(db_exec($sql), 0, 0); if ($aaa != "Balance") { print "</xmp>"; errDie("F****d at {$acc['accid']} period "); } } } if ($acc["accid"] == "5") { $touched5 = true; } print "\n"; } print "Done."; print "</xmp>"; }