function display() { extract($_REQUEST); $fields = array(); $fields["from_year"] = date("Y"); $fields["from_month"] = date("m"); $fields["from_day"] = date("d"); $fields["to_year"] = date("Y"); $fields["to_month"] = date("m"); $fields["to_day"] = date("d"); extract($fields, EXTR_SKIP); $OUTPUT = "<center>\r\n\t<h3>Equipment to be Returned</h3>\r\n\t<table " . TMPL_tblDflts . ">\r\n\t\t<tr>\r\n\t\t\t<th colspan='4'>Date Range</th>\r\n\t\t</tr>\r\n\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t<td>" . mkDateSelect("from", $from_year, $from_month, $from_day) . "</td>\r\n\t\t\t<td><b> To </b></td>\r\n\t\t\t<td>" . mkDateSelect("to", $to_year, $to_month, $to_day) . "</td>\r\n\t\t\t<td>\r\n\t\t\t\t<input type='submit' value='Continue' style='text-weight: bold' />\r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t</table>"; // Retrieve equipment to be returned $sql = "SELECT *,\r\n\t\t\t\t(SELECT des FROM cubit.assets WHERE id=asset_id) AS des,\r\n\t\t\t\t(SELECT serial FROM cubit.assets WHERE id=asset_id) AS serial\r\n\t\t\tFROM hire.hire_invitems\r\n\t\t\tORDER BY des ASC"; $items_rslt = db_exec($sql) or errDie("Unable to retrieve items."); $items_out = ""; while ($items_data = pg_fetch_array($items_rslt)) { $sql = "SELECT * FROM hire.hire_invoices WHERE invid='{$items_data['invid']}'"; $inv_rslt = db_exec($sql) or errDie("Unable to retrieve invoice."); $inv_data = pg_fetch_array($inv_rslt); $sql = "SELECT * FROM cubit.customers WHERE cusnum='{$inv_data['cusnum']}'"; $cust_rslt = db_exec($sql) or errDie("Unable to retrieve customer."); $cust_data = pg_fetch_array($cust_rslt); if (!hiredDate($items_data["id"])) { continue; } $items_out .= "<tr class='" . bg_class() . "'>\r\n\t\t\t<td>" . hiredDate($items_data["id"]) . "</td>\r\n\t\t\t<td>" . returnDate($items_data["id"]) . "</td>\r\n\t\t\t<td>{$items_data['des']}</td>\r\n\t\t\t<td>" . getSerial($items_data["asset_id"]) . "</td>\r\n\t\t\t<td>{$items_data['qty']}</td>\r\n\t\t\t<td>{$cust_data['surname']} {$cust_data['cusname']}</td>\r\n\t\t\t<td>\r\n\t\t\t\t<a href='hire-invoice-new.php?invid={$items_data['invid']}'>\r\n\t\t\t\t\tView Hire\r\n\t\t\t\t</a>\r\n\t\t\t</td>\r\n\t\t</tr>"; } $OUTPUT .= "<p></p>\r\n\t<table " . TMPL_tblDflts . ">\r\n\t\t<tr>\r\n\t\t\t<th>Hired</th>\r\n\t\t\t<th>To Be Returned</th>\r\n\t\t\t<th>Plant</th>\r\n\t\t\t<th>Serial</th>\r\n\t\t\t<th>Qty</th>\r\n\t\t\t<th>Customer</th>\r\n\t\t\t<th>Options</th>\r\n\t\t</tr>\r\n\t\t{$items_out}\r\n\t</table>\r\n\t</center>"; return $OUTPUT; }
function display() { extract($_REQUEST); $fields = array(); $fields["search"] = ""; $fields["type_id"] = 0; $fields["from_year"] = date("Y"); $fields["from_month"] = date("m"); $fields["from_day"] = date("d"); $fields["to_year"] = date("Y"); $fields["to_month"] = date("m"); $fields["to_day"] = date("t"); extract($fields, EXTR_SKIP); if ($type_id) { $type_sql = "AND assets.type_id='{$type_id}'"; } else { $type_sql = ""; } $sql = "SELECT qty, des, serial, customers.cusnum, customers.cusname,\r\n\t\t\t\tcustomers.surname, to_date, invnum, hire_invitems.invid,\r\n\t\t\t\thire_invitems.id, done, printed, grpname, name\r\n\t\t\t\tFROM hire.hire_invitems\r\n\t\t\t\t\tLEFT JOIN cubit.assets\r\n\t\t\t\t\t\tON hire_invitems.asset_id = assets.id\r\n\t\t\t\t\tLEFT JOIN hire.hire_invoices\r\n\t\t\t\t\t\tON hire_invitems.invid = hire_invoices.invid\r\n\t\t\t\t\tLEFT JOIN cubit.customers\r\n\t\t\t\t\t\tON hire_invoices.cusnum = customers.cusnum\r\n\t\t\t\t\tLEFT JOIN cubit.assetgrp\r\n\t\t\t\t\t\tON assets.grpid=assetgrp.grpid\r\n\t\t\t\t\tLEFT JOIN cubit.asset_types\r\n\t\t\t\t\t\tON assets.type_id=asset_types.id\r\n\t\t\t\tWHERE done='y' {$type_sql} AND remaction IS NULL AND\r\n\t\t\t\t\tprinted='y' AND (cast(qty as text) ILIKE '%{$search}%' OR\r\n\t\t\t\t\tserial ILIKE '%{$search}%' OR\r\n\t\t\t\t\tcustomers.cusname ILIKE '{$search}%' OR\r\n\t\t\t\t\tcustomers.surname ILIKE '{$search}%' OR\r\n\t\t\t\t\tcast(to_date as text) ILIKE '%{$search}%' OR\r\n\t\t\t\t\tcast(invnum as text) ILIKE '%{$search}%'\r\n\t\t\t\t\tOR grpname ILIKE '%{$search}%' OR name ILIKE '%{$search}%')\r\n\t\t\t\tORDER BY des ASC"; $asset_rslt = db_exec($sql) or errDie("Unable to retrieve assets."); $sql = "SELECT id, name FROM cubit.asset_types"; $type_rslt = db_exec($sql) or errDie("Unable to retrieve asset types."); $type_sel = "<select name='type_id' onchange='javascript:document.form.submit()'\r\n\t\t\t\t style='width: 100%'>"; $type_sel .= "<option value='0'>[All]</option>"; while ($type_data = pg_fetch_array($type_rslt)) { if ($type_data["id"] == $type_id) { $sel = "selected='t'"; } else { $sel = ""; } $type_sel .= "\r\n\t\t<option value='{$type_data['id']}' {$sel}>\r\n\t\t\t{$type_data['name']}\r\n\t\t</option>"; } $type_sel .= "</select>"; $hired_out = ""; while ($asset_data = pg_fetch_array($asset_rslt)) { $hired_out .= "<tr class='" . bg_class() . "'>\r\n\t\t\t<td align='center'>\r\n\t\t\t\t<a href='javascript:popupOpen" . "(\"hire-invoice-new.php?invid={$asset_data['invid']}\")'>\r\n\t\t\t\t\tH" . getHirenum($asset_data["invid"], 1) . "\r\n\t\t\t\t</a>\r\n\t\t\t</td>\r\n\t\t\t<td>{$asset_data['grpname']}</td>\r\n\t\t\t<td>{$asset_data['name']}</td>\r\n\t\t\t<td>{$asset_data['des']}</td>\r\n\t\t\t<td>{$asset_data['serial']}</td>\r\n\t\t\t<td align='center'>{$asset_data['qty']}</td>\r\n\t\t\t<td>{$asset_data['cusname']} {$asset_data['surname']}</td>\r\n\t\t\t<td align='center'>" . returnDate($asset_data["id"]) . "</td>\r\n\t\t</tr>"; } // Display something atleast, even though we've got no results. if (empty($hired_out)) { $hired_out = "<tr class='" . bg_class() . "'>\r\n\t\t\t<td colspan='8'><li>No results found.</li></td>\r\n\t\t</tr>"; } // Available assets ------------------------------------------------------- $sql = "SELECT grpname, name, des, assets.id, serial2\r\n\t\t\tFROM cubit.assets\r\n\t\t\t\tLEFT JOIN cubit.assetgrp ON assets.grpid=assetgrp.grpid\r\n\t\t\t\tLEFT JOIN cubit.asset_types ON assets.type_id=asset_types.id\r\n\t\t\tWHERE remaction is NULL AND (grpname ILIKE '%{$search}%' OR\r\n\t\t\t\tname ILIKE '%{$search}%' OR des ILIKE '%{$search}%') {$type_sql}\r\n\t\t\tORDER BY des ASC"; $asset_rslt = db_exec($sql) or errDie("Unable to retrieve assets."); $available_out = ""; while ($asset_data = pg_fetch_array($asset_rslt)) { if (isHired($asset_data["id"])) { continue; } $available_out .= "\r\n\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t<td>{$asset_data['grpname']}</td>\r\n\t\t\t<td>{$asset_data['name']}</td>\r\n\t\t\t<td>{$asset_data['des']}</td>\r\n\t\t\t<td>" . getSerial($asset_data["id"]) . "</td>\r\n\t\t\t<td>" . getUnits($asset_data["id"]) . "</td>\r\n\t\t</tr>"; } if (empty($available_out)) { $available_out = "<tr class='" . bg_class() . "'>\r\n\t\t\t<td colspan='5'><li>No results found.</li></td>\r\n\t\t</tr>"; } $OUTPUT = "<center>\r\n\t<h3>Asset Report</th>\r\n\t<br /><br />\r\n\t<form method='post' action='" . SELF . "' name='form'>\r\n\t<table " . TMPL_tblDflts . ">\r\n\t\t<tr>\r\n\t\t\t<th colspan='4'>Date Range</th>\r\n\t\t</tr>\r\n\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t<td>" . mkDateSelect("from", $from_year, $from_month, $from_day) . "</td>\r\n\t\t\t<td> <b>To</b> </td>\r\n\t\t\t<td>" . mkDateSelect("to", $to_year, $to_month, $to_day) . "</td>\r\n\t\t\t<td><input type='submit' value='Select' /></td>\r\n\t\t</tr>\r\n\t\t<tr class='" . bg_class() . "'><td colspan='4' align='center'>\r\n\t\t<table " . TMPL_tblDflts . ">\r\n\t\t\t<tr>\r\n\t\t\t\t<th colspan='2'>Search</th>\r\n\t\t\t\t<th>Asset Type</th>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><input type='text' name='search' value='{$search}' /></td>\r\n\t\t\t\t<td><input type='submit' value='Search' /></td>\r\n\t\t\t\t<td>{$type_sel}</td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</td></tr>\r\n\t</table>\r\n\t</form>\r\n\t<h3>Hired Out</h3>\r\n\t<table " . TMPL_tblDflts . ">\r\n\t\t<tr>\r\n\t\t\t<th>Hire No</th>\r\n\t\t\t<th>Asset Group</th>\r\n\t\t\t<th>Asset Type</th>\r\n\t\t\t<th>Asset</th>\r\n\t\t\t<th>Serial</th>\r\n\t\t\t<th>Qty</th>\r\n\t\t\t<th>Customer</th>\r\n\t\t\t<th>Expected Return</th>\r\n\t\t</tr>\r\n\t\t{$hired_out}\r\n\t</table>\r\n\t<h3>Available</h3>\r\n\t<table " . TMPL_tblDflts . ">\r\n\t\t<tr>\r\n\t\t\t<th>Asset Group</th>\r\n\t\t\t<th>Asset Type</th>\r\n\t\t\t<th>Asset</th>\r\n\t\t\t<th>Serial</th>\r\n\t\t\t<th>Qty</th>\r\n\t\t</tr>\r\n\t\t{$available_out}\r\n\t</table>"; return $OUTPUT; }
function display() { extract($_REQUEST); $fields = array(); $fields["search"] = ""; extract($fields, EXTR_SKIP); $sql = "SELECT accno, customers.surname, bustel, invnum, des,\r\n\t\t\t\thire_invitems.id, hire_invitems.invid\r\n\t\t\tFROM hire.hire_invitems\r\n\t\t\t\tLEFT JOIN hire.hire_invoices\r\n\t\t\t\t\tON hire_invitems.invid=hire_invoices.invid\r\n\t\t\t\tLEFT JOIN cubit.customers\r\n\t\t\t\t\tON hire_invoices.cusnum=customers.cusnum\r\n\t\t\t\tLEFT JOIN cubit.assets\r\n\t\t\t\t\tON hire_invitems.asset_id=assets.id\r\n\t\t\tWHERE customers.surname ILIKE '%{$search}%' OR\r\n\t\t\t\tbustel ILIKE '%{$search}%' OR\tdes ILIKE '%{$search}%'"; $overdue_rslt = db_exec($sql) or errDie("Unable to retrieve hires."); $overdue_out = ""; $i = 0; while ($overdue_data = pg_fetch_array($overdue_rslt)) { if (!isOverdue($overdue_data["id"])) { continue; } $overdue_out .= "\r\n\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t<td>{$overdue_data['accno']}</td>\r\n\t\t\t<td>{$overdue_data['surname']}</td>\r\n\t\t\t<td>{$overdue_data['bustel']}</td>\r\n\t\t\t<td>H{$overdue_data['invnum']}" . rev($overdue_data["invid"]) . "</td>\r\n\t\t\t<td>{$overdue_data['des']}</td>\r\n\t\t\t<td>" . returnDate($overdue_data["id"]) . "</td>\r\n\t\t</tr>"; } if (empty($overdue_out)) { $overdue_out = "<tr class='" . bg_class() . "'>\r\n\t\t\t<td colspan='6'><li>No results found.</li></td>\r\n\t\t</tr>"; } $OUTPUT = "<center>\r\n\t<h3>Overdue Hires Report</h3>\r\n\t<form method='post' action='" . SELF . "'>\r\n\t<table " . TMPL_tblDflts . ">\r\n\t\t<tr><th colspan='2'>Search</th></tr>\r\n\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t<td><input type='text' name='search' value='{$search}' /></td>\r\n\t\t\t<td>\r\n\t\t\t\t<input type='submit' value='Search' style='font-weight: bold' />\r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t</table>\r\n\t</form>\r\n\t<table " . TMPL_tblDflts . ">\r\n\t\t<tr>\r\n\t\t\t<th>Acc No</th>\r\n\t\t\t<th>Company / Name</th>\r\n\t\t\t<th>Telephone</th>\r\n\t\t\t<th>Hire No</th>\r\n\t\t\t<th>Product Code</th>\r\n\t\t\t<th>Return Date</th>\r\n\t\t</tr>\r\n\t\t{$overdue_out}\r\n\t</table>"; return $OUTPUT; }
function display() { extract($_REQUEST); define("HOUR", 60 * 60); define("DAY", HOUR * 24); define("WEEK", DAY * 7); define("TOMMOROW", time() + DAY); $fields = array(); $fields["from_year"] = date("Y"); $fields["from_month"] = date("m"); $fields["from_day"] = date("d") <= 7 ? "01" : date("d") - 7; $fields["to_year"] = date("Y"); $fields["to_month"] = date("m"); $fields["to_day"] = date("d"); $fields["total_invoiced"] = 0; $fields["total_not_invoiced"] = 0; extract($fields, EXTR_SKIP); $from_time = mktime(0, 0, 0, $from_month, $from_day, $from_year); $to_time = mktime(0, 0, 0, $to_month, $to_day, $to_year); $from_date = date("Y-m-d", $from_time); $to_date = date("Y-m-d", $to_time); // Make sure the date selection is not the same if ($from_date == $to_date) { $to_date = date("Y-m-d", TOMMOROW); } $OUTPUT = "\r\n\t\t<center>\r\n\t\t<style>\r\n\t\t\ttd, th { font-size: 0.7em; }\r\n\t\t</style>\r\n\t\t<h3>Hire by Period Detail Report</h3>\r\n\t\t<form method='POST' action='" . SELF . "'>\r\n\t\t<table " . TMPL_tblDflts . ">\r\n\t\t\t<tr>\r\n\t\t\t\t<th colspan='4'>Date Range</th>\r\n\t\t\t</tr>\r\n\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t<td>" . mkDateSelect("from", $from_year, $from_month, $from_day) . "</td>\r\n\t\t\t\t<td> <b>To</b> </td>\r\n\t\t\t\t<td>" . mkDateSelect("to", $to_year, $to_month, $to_day) . "</td>\r\n\t\t\t\t<td><input type='submit' value='Select' style='font-weight: bold' /></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t</form>"; $sql = "SELECT assets_hired.id, invnum, assets.id AS asset_id, des, surname,\r\n\t\t\t\thired_time, return_time, inv_invnum, value, item_id, cust_id,\r\n\t\t\t\tassets.grpid, grpname, assets_hired.invid, qty, basis, weekends,\r\n\t\t\t\textract('epoch' FROM hired_time) AS e_hired,\r\n\t\t\t\textract('epoch' FROM return_time) AS e_return\r\n\t\t\tFROM hire.assets_hired\r\n\t\t\t\tLEFT JOIN cubit.assets ON assets_hired.asset_id=assets.id\r\n\t\t\t\tLEFT JOIN cubit.customers ON assets_hired.cust_id=customers.cusnum\r\n\t\t\t\tLEFT JOIN cubit.assetgrp ON assets.grpid=assetgrp.grpid\r\n\t\t\tWHERE\r\n\t\t\t\thired_time BETWEEN '{$from_date} 0:00:00' AND '{$to_date} 23:59:59'\r\n\t\t\t\tOR return_time BETWEEN '{$from_date} 0:00:00' AND '{$to_date} 23:59:59'\r\n\t\t\t\tOR (hired_time BETWEEN '{$from_date} 0:00:00' AND '{$to_date} 23:59:59'\r\n\t\t\t\t\tAND return_time IS NULL)\r\n\t\t\tORDER BY invid ASC"; $details_rslt = db_exec($sql) or errDie("Unable to retrieve details."); $items_out = array(); while ($details_data = pg_fetch_array($details_rslt)) { // Is this within one of the valid asset hire groups if (!preg_match("/(Equipment|Plant)/", $details_data["grpname"])) { continue; } if (!$details_data["inv_invnum"]) { $sql = "SELECT amt, basis, extract('epoch' FROM to_date) AS e_to\r\n\t\t\t\t\tFROM hire.hire_invitems\r\n\t\t\t\t\tWHERE id='{$details_data['item_id']}'"; $item_rslt = db_exec($sql) or errDie("Unable to retrieve amount."); list($value, $basis, $e_to) = pg_fetch_array($item_rslt); $expected_disp = ""; // Calculate the amounts for items not yet returned switch ($basis) { case "per_hour": $hours_beyond_expected = ($to_time - $e_to) / HOUR; if ($hours_beyond_expected) { $basis_per_hour = basisPrice($details_data["cust_id"], $details_data["id"], $basis); $value_beyond = $basis_per_day * $days_beyond_expected; $details_data["value"] = $value + $value_beyond; } else { $details_data["value"] = $value; } case "per_day": $days_beyond_expected = $to_time - $e_to; $sundays = 0; for ($i = $details_data["e_hired"]; $i <= $days_beyond_expected; $i += 60 * 60 * 24) { if (date("w", $i) == 0) { $sundays++; } } if ($details_data["weekends"]) { $show_sundays = $sundays + 0.6 * $sundays; } else { $show_sundays = 0; } $days_beyond_expected /= DAY - $show_sundays; if ($days_beyond_expected) { $basis_per_day = basisPrice($details_data["cust_id"], $details_data["id"], $basis); $value_beyond = $basis_per_day * $days_beyond_expected; $details_data["value"] = $value + $value_beyond; } else { $details_data["value"] = $value; } break; case "per_week": $weeks_beyond_expected = ($to_time - $e_to) / WEEK; if ($weeks_beyond_expected) { $basis_per_week = basis_price($details_data["cust_id"], $details_data["id"], $basis); $value_beyond = $basis_per_day * $days_beyond_expected; $details_data["value"] = $value + $value_beyond; } else { $details_data["value"] = $value; } break; } $total_not_invoiced += $details_data["value"]; } else { $total_invoiced += $details_data["value"]; } $total_hire = $total_invoiced + $total_not_invoiced; if (empty($details_data["return_time"])) { $return_disp = "\r\n\t\t\t<span style='color: #f00'>\r\n\t\t\t\t(Still on Hire) " . date("d-m-Y", $to_time) . "\r\n\t\t\t</span>"; } else { $return_disp = date("d-m-Y G:i:s", $details_data["e_return"]); } // Units Days / Hours $days_hours = ""; if ($details_data["basis"] == "per_day" || $details_data["basis"] == "per_week") { $days_hours = "DAY"; } else { $days_hours = "HOUR"; } // Invoiced / Forecasted if (!isset($totals[$details_data["grpid"]]["forecast"])) { $totals[$details_data["grpid"]]["forecast"] = 0.0; } if (!isset($totals[$details_data["grpid"]]["invoiced"])) { $totals[$details_data["grpid"]]["invoiced"] = 0.0; } if (empty($details_data["return_time"])) { $forecast_value = $details_data["value"]; $invoiced_value = ""; $totals[$details_data["grpid"]]["forecast"] += $details_data["value"]; } else { $forecast_value = ""; $invoiced_value = $details_data["value"]; $totals[$details_data["grpid"]]["invoiced"] += $details_data["value"]; } // Weekends if ($details_data["weekends"]) { $weekends = "w/e charge"; } else { $weekends = ""; } $sql = "\r\n\t\tSELECT qty FROM hire.hire_nons_inv_items\r\n\t\tWHERE invid='{$details_data['inv_invnum']}' AND\r\n\t\t\tasset_id='{$details_data['asset_id']}'"; $invqty_rslt = db_exec($sql) or errDie("Unable to retrieve items."); $invqty = pg_fetch_result($invqty_rslt, 0); if (empty($invqty)) { $invqty = 0; } $items_out[$details_data["grpid"]][] = "\r\n\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t<td align='center'>H" . getHirenum($details_data["invid"], 1) . "</td>\r\n\t\t\t\t<td align='center'>{$details_data['inv_invnum']}</td>\r\n\t\t\t\t<td align='center'>{$details_data['surname']}</td>\r\n\t\t\t\t<td>" . getSerial($details_data["asset_id"], 1) . " {$details_data['des']}</td>\r\n\t\t\t\t<td align='center'>{$days_hours}</td>\r\n\t\t\t\t<td>" . date("d-m-Y", $details_data["e_hired"]) . "</td>\r\n\t\t\t\t<td>" . returnDate($details_data["item_id"]) . "</td>\r\n\t\t\t\t<td align='right'>" . sprint($invoiced_value) . "</td>\r\n\t\t\t\t<td>{$weekends}</td>\r\n\t\t\t\t<td align='right'>" . sprint($forecast_value) . "</td>\r\n\t\t\t\t<!--\r\n\t\t\t\t<td align='center'>" . detailsHoursHired($details_data["id"]) . "</td>\r\n\t\t\t\t<td align='center'>" . detailsDaysHired($details_data["id"]) . "</td>\r\n\t\t\t\t<td align='center'>" . detailsWeeksHired($details_data["id"]) . "</td>\r\n\t\t\t\t<td align='center'>" . date("d-m-Y G:i:s", $details_data["e_hired"]) . "</td>\r\n\t\t\t\t<td align='center'>{$return_disp}</td>\r\n\t\t\t\t<td align='right'>" . sprint($details_data["value"]) . "</td>\r\n\t\t\t\t-->\r\n\t\t\t</tr>"; } if (!count($items_out)) { $details_out = "\r\n\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t<td colspan='7'><li>No results found.</li></td>\r\n\t\t</tr>"; } if (!isset($total_hire)) { $total_hire = 0; } $OUTPUT .= "\r\n\t\t<table " . TMPL_tblDflts . ">\r\n\t\t\t<tr>\r\n\t\t\t\t<th style='padding-right: 10px'>Total Invoiced Hire</th>\r\n\t\t\t\t<th style='padding-left: 10px'>Total Non Invoiced Hire</th>\r\n\t\t\t</tr>\r\n\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t<td align='center'>" . sprint($total_invoiced) . "</td>\r\n\t\t\t\t<td align='center'>" . sprint($total_not_invoiced) . "</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<th colspan='2'>Total Hire</th>\r\n\t\t\t</tr>\r\n\t\t\t<tr class='" . bg_class() . "'>\r\n\t\t\t\t<td align='center' colspan='2'><b>" . sprint($total_hire) . "</b></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t\t<br />"; foreach ($items_out as $grpid => $lv2) { $sql = "SELECT grpname FROM cubit.assetgrp WHERE grpid='{$grpid}'"; $group_rslt = db_exec($sql) or errDie("Unable to retrieve asset groups."); $group_name = pg_fetch_result($group_rslt, 0); $OUTPUT .= "<h3>{$group_name} Hire Revenue</h3>\r\n\t\t\t<table " . TMPL_tblDflts . " width='100%'>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<th>Hire Number</th>\r\n\t\t\t\t\t<th>Invoice Number</th>\r\n\t\t\t\t\t<th>Customer</th>\r\n\t\t\t\t\t<th>Asset</th>\r\n\t\t\t\t\t<th>Units Days / Hours</th>\r\n\t\t\t\t\t<th>Date Out</th>\r\n\t\t\t\t\t<th>Expect / Actual</th>\r\n\t\t\t\t\t<th>Rand (Ex VAT) Invoiced\r\n\t\t\t\t\t<th> </th>\r\n\t\t\t\t\t<th>Rand (Ex VAT) Forecast</th>\r\n\t\t\t\t\t<!--\r\n\t\t\t\t\t<th>Hours Hired</th>\r\n\t\t\t\t\t<th>Days Hired</th>\r\n\t\t\t\t\t<th>Weeks Hired</th>\r\n\t\t\t\t\t<th>Date Hired</th>\r\n\t\t\t\t\t<th>Date Returned</th>\r\n\t\t\t\t\t<th>Value (Ex VAT)</th>\r\n\t\t\t\t\t-->\r\n\t\t\t\t</tr>"; foreach ($items_out[$grpid] as $line_disp) { $OUTPUT .= $line_disp; } $OUTPUT .= "</table>"; } return $OUTPUT; }
* * @TODO dodaj v bazo tudi izravnavo izrednega dopusta */ $CurrAnnSpecLeavStat = $CurrAnnSpecLeavDeci - $specialLeave; $CheckYearSpecialLeaveStatus = $CurrAnnSpecLeavDeci - $CurrAnnSpecLeavStat; if ($CheckYearSpecialLeaveStatus < 0) { $LastYearSprecialLeaveStatus = $CheckYearSpecialLeaveStatus * -1; $ThisYearSpecialLeaveStatus = $CurrAnnSpecLeavDeci; } elseif ($CheckYearSpecialLeaveStatus >= 0) { $ThisYearSpecialLeaveStatus = $CurrAnnSpecLeavStat; $LastYearSprecialLeaveStatus = 0; } //echo "$CurrentLeaveStatus"; die; $tem = str_replace('##THISYEAR##', $ThisYearLeaveStatus, $tem); $tem = str_replace('##LASTYEAR##', $LastYearLeaveStatus, $tem); $tem = str_replace('##THISSPECIAL##', $ThisYearSpecialLeaveStatus, $tem); $tem = str_replace('##LASTSPECIAL##', $LastYearSprecialLeaveStatus, $tem); $tem = str_replace('##THISSABBA##', $LastYearSabbaticalStatus, $tem); $tem = str_replace('##LASTSABBA##', $ThisYearSabbaticalStatus, $tem); $tem = str_replace('##HOUR##', $HourResult, $tem); $tem = str_replace("##DATE##", " " . returnDate(date("N"), "day") . ", " . date("j") . " " . returnDate(date("n"), "month") . " " . date("Y"), $tem); //v header sem dal zraven naslova izpis meseca za katerega je izpis $tem = str_replace("##DATEYEARNOW##", date("Y", time()), $tem); $tem = str_replace("##DATELASTYEAR##", date("Y", time()) - 1, $tem); $tem = str_replace('##TITLE##', $TITLE, $tem); $tem = str_replace('##USER##', $identity, $tem); $tem = str_replace("##LOGS##", $table, $tem); $tem = str_replace("##LOGS2##", $table2, $tem); $tem = str_replace("##MESSAGE##", $message, $tem); $tem = template_clean_up_tags($tem, "##"); echo $tem;
<?php } } ?> <a href="people_profile.php?user=<?php echo $name; ?> "><?php echo $name; ?> </a> <div id="laston"> <?php echo returnDate($last_logged); ?> </div> <div id="about_people"> <?php echo $about; ?> </div> </li> </ul> <?php } } $number = mysql_num_rows(mysql_query("SELECT * FROM users WHERE class = 'kid'")); if ($number > $per_page) {
function details($_GET) { $showvat = TRUE; # get vars extract($_GET); # validate input require_lib("validate"); $v = new validate(); $v->isOk($invid, "num", 1, 20, "Invalid invoice number."); # display errors, if any if ($v->isError()) { $err = ""; $errors = $v->getErrors(); foreach ($errors as $e) { $err .= "<li class='err'>{$e['msg']}</li>"; } $confirm .= "<p><input type='button' onClick='JavaScript:history.back();' value='« Correct submission'>"; return $confirm; } updateTotals($invid); # Get invoice info $sql = "SELECT *, extract('epoch' from timestamp) AS e_time\r\n\t\t\t\tFROM hire.reprint_invoices\r\n\t\t\t\tWHERE invid = '{$invid}' AND div = '" . USER_DIV . "'"; $invRslt = db_exec($sql) or errDie("Unable to get invoice information"); if (pg_numrows($invRslt) < 1) { return "<i class='err'>Not Found[1]</i>"; } $inv = pg_fetch_array($invRslt); # get department db_conn("exten"); $sql = "SELECT * FROM departments WHERE deptid = '{$inv['deptid']}' AND div = '" . USER_DIV . "'"; $deptRslt = db_exec($sql); if (pg_numrows($deptRslt) < 1) { $dept['deptname'] = "<i class='err'>Not Found[2]</i>"; } else { $dept = pg_fetch_array($deptRslt); } /* --- Start some checks --- */ # check if stock was selected(yes = put done button) $sql = "SELECT asset_id FROM hire.reprint_invitems WHERE invid = '{$inv['invid']}'"; $crslt = db_exec($sql); if (pg_numrows($crslt) < 1) { $error = "<li class='err'> Error : Invoice number <b>{$invid}</b> has no items.</li>"; return $error; } /* --- End some checks --- */ /* --- Start Products Display --- */ # Products layout $products = ""; $disc = 0; # get selected stock in this invoice $sql = "SELECT * FROM hire.reprint_invitems WHERE invid = '{$invid}'"; $stkdRslt = db_exec($sql); $tcosamt = 0; while ($stkd = pg_fetch_array($stkdRslt)) { # get selected stock in this warehouse db_connect(); $sql = "SELECT * FROM assets WHERE id = '{$stkd['asset_id']}'"; $stkRslt = db_exec($sql); $stk = pg_fetch_array($stkRslt); $sp = " "; # keep track of discounts $disc += $stkd['disc']; if ($stkd['account'] != 0) { $stk['stkcod'] = $stkd['description']; $stk['stkdes'] = ""; } $Sl = "SELECT * FROM vatcodes WHERE id='{$stkd['vatcode']}'"; $Ri = db_exec($Sl); $vd = pg_fetch_array($Ri); if (TAX_VAT != $vd['vat_amount'] and $vd['vat_amount'] != "0.00") { $showvat = FALSE; } # put in product $stkd['unitcost'] = $stkd['unitcost'] - $stkd['disc']; $return = returnDate($stkd["item_id"]); $hired = hiredDate($stkd["item_id"]); $products .= "\r\n\t\t\t\t<tr valign=top>\r\n\t\t\t\t\t<td>" . getSerial($stk["id"], 1) . " {$stk['des']} ({$stkd['collection']})</td>\r\n\t\t\t\t\t<td>{$stkd['qty']}</td>\r\n\t\t\t\t\t<td>{$hired}</td>\r\n\t\t\t\t\t<td>{$return}</td>\r\n\t\t\t\t\t<td align=right>" . sprint($stkd["amt"]) . "</td>\r\n\t\t\t\t</tr>"; $client_collect = 0; $collect = 0; $deliver = 0; if (preg_match("/(Client Collect|collect)/", $stkd["collection"])) { $client_collect = 1; } if (preg_match("/(^Collect|, Collect)/", $stkd["collection"])) { $collect = 1; } if (preg_match("/Deliver/", $stkd["collection"])) { $deliver = 1; } } /* --- Start Some calculations --- */ # subtotal $SUBTOT = sprint($inv['subtot']); # Calculate tradediscm $traddiscm = $inv["discount"]; // if(strlen($inv['traddisc']) > 0){ // $traddiscm = sprint((($inv['traddisc']/100) * $SUBTOT)); // }else{ // $traddiscm = "0.00"; // } # Calculate subtotal $VATP = TAX_VAT; $SUBTOT = sprint($inv['subtot']); $VAT = sprint($inv['vat']); $TOTAL = sprint($inv['total']); $inv['delchrg'] = sprint($inv['delchrg']); # Update number of prints // $inv['prints']++; // db_conn($prd); // $Sql = "UPDATE hire.reprint_invitems SET prints = '$inv[prints]' WHERE invid = '$invid' AND div = '".USER_DIV."'"; // $upRslt = db_exec($Sql) or errDie ("Unable to update invoice information"); # todays date $date = date("d-m-Y"); $sdate = date("Y-m-d"); if (strlen($inv['comm']) > 0) { $Com = "\r\n\t\t\t\t<table>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td>" . nl2br($inv['comm']) . "</td>\r\n\t\t\t\t\t</tr>\r\n\t\t\t\t</table>"; } else { $Com = ""; } $time = date("G:i:s", $inv["e_time"]); if (isset($cccc)) { $cc = "<script> sCostCenter('dt', 'Sales', '{$date}', 'Invoice No.{$inv['invnum']} for Customer {$inv['cusname']} {$inv['surname']}', '" . ($TOTAL - $VAT) . "', 'Cost Of Sales for Invoice No.{$inv['invnum']}', '{$tcosamt}', ''); </script>"; } else { $cc = ""; } db_conn('cubit'); $Sl = "SELECT * FROM settings WHERE constant='PSALES'"; $Ri = db_exec($Sl) or errDie("Unable to get settings."); $data = pg_fetch_array($Ri); if ($data['value'] == "Yes") { $sp = "<tr><td>Sales Person</td><td>{$inv['salespn']}</td></tr>"; } else { $sp = ""; } $Sl = "SELECT * FROM pc WHERE inv='{$inv['invnum']}'"; $Ri = db_exec($Sl) or errDie("Unable to get data."); if (pg_num_rows($Ri) > 0) { $pd = pg_fetch_array($Ri); //$pc="<tr><td>Change</td><td align=right><b>".CUR." $pd[amount]</b></td></tr>"; $pc = ""; $change = $pd['amount']; } else { $pc = ""; $change = 0; } $Sl = "SELECT * FROM payrec WHERE inv='{$inv['invnum']}' AND method='Cash'"; $Ri = db_exec($Sl) or errDie("Unable to get data."); if (pg_num_rows($Ri) > 0) { $pd = pg_fetch_array($Ri); $pd['amount'] = sprint($pd['amount'] + $change); $pcash = "<!--<tr><td>Paid Cash</td><td align=right><b>" . CUR . " {$pd['amount']}</b></td></tr>-->"; } else { $pcash = ""; } $Sl = "SELECT * FROM payrec WHERE inv='{$inv['invnum']}' AND method='Cheque'"; $Ri = db_exec($Sl) or errDie("Unable to get data."); if (pg_num_rows($Ri) > 0) { $pd = pg_fetch_array($Ri); $pcheque = "<tr><td>Paid Cheque</td><td align=right><b>" . CUR . " {$pd['amount']}</b></td></tr>"; } else { $pcheque = ""; } $Sl = "SELECT * FROM payrec WHERE inv='{$inv['invnum']}' AND method='Credit Card'"; $Ri = db_exec($Sl) or errDie("Unable to get data."); if (pg_num_rows($Ri) > 0) { $pd = pg_fetch_array($Ri); $pcc = "<tr><td>Paid Credit Card</td><td align=right><b>" . CUR . " {$pd['amount']}</b></td></tr>"; } else { $pcc = ""; } $Sl = "SELECT * FROM payrec WHERE inv='{$inv['invnum']}' AND method='Credit'"; $Ri = db_exec($Sl) or errDie("Unable to get data."); if (pg_num_rows($Ri) > 0) { $pd = pg_fetch_array($Ri); $pcc .= "<tr><td>On Credit</td><td align=right><b>" . CUR . " {$pd['amount']}</b></td></tr>"; } else { $pcc .= ""; } // $Sl="SELECT * FROM varrec WHERE inv='$inv[invnum]'"; // $Ri=db_exec($Sl); // // if(pg_num_rows($Ri)>0) { // $rd=pg_fetch_array($Ri); // // $rounding="<tr><td>Rounding</td><td align=right>".CUR." $rd[amount]</td></tr>"; // } else { // $rounding=""; // } // if ($inv['rounding'] > 0) { $due = sprint($inv['total'] - $inv['rounding']); $rounding = "\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td>Rounding</td>\r\n\t\t\t\t\t<td align='right'>" . CUR . " {$inv['rounding']}</td>\r\n\t\t\t\t</tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td>Amount Due</td>\r\n\t\t\t\t\t<td align='right'>" . CUR . " {$due}</td>\r\n\t\t\t\t</tr>"; } else { $rounding = ""; } $cusinfo = ""; if ($inv['cusnum'] > 0) { db_conn('cubit'); $Sl = "SELECT * FROM customers WHERE cusnum='{$inv['cusnum']}'"; $Ri = db_exec($Sl) or errDie("Unable to get data."); $cd = pg_fetch_array($Ri); $inv['cusname'] = $cd['surname'] . " (VAT No. {$cd['vatnum']})"; $cusinfo .= "<p>" . hireAddress($inv["invid"]) . "</p>"; $cusinfo .= "Tel: {$cd['bustel']}<br />"; $cusinfo .= "Order No: {$inv['cordno']}"; } else { if (strlen($inv['vatnum']) > 1) { $inv['cusname'] = "{$inv['cusname']} (VAT No. {$inv['vatnum']})<br />"; $cusinfo .= "Order No: {$inv['cordno']}"; } } db_conn('cubit'); $Sl = "SELECT img2 FROM compinfo"; $Ri = db_exec($Sl); $id = pg_fetch_array($Ri); if (strlen($id['img2']) > 0) { $logo = "<tr>\r\n\t\t\t<td valign='top' width='100%' align=center><img src='compinfo/getimg2.php' width='230' height='47'></td>\r\n\t\t</tr>"; } else { $logo = ""; } $sql = "SELECT value FROM cubit.settings WHERE constant='CONTRACT_TEXT'"; $contract_rslt = db_exec($sql) or errDie("Unable to retrieve contract."); $contract_text = nl2br(base64_decode(pg_fetch_result($contract_rslt, 0))); if (!isset($showvat)) { $showvat = TRUE; } if ($showvat == TRUE) { $vat14 = AT14; } else { $vat14 = ""; } $sql = "SELECT text FROM hire.thanks_text"; $thanks_rslt = db_exec($sql) or errDie("Unable to retrieve thank you text."); $thank_you = pg_fetch_result($thanks_rslt, 0); $details = "<center>\r\n\t<style>\r\n\t\th2 {\r\n\t\t\tfont-size: 2em;\r\n\t\t\tpadding: 0;\r\n\t\t\tmargin: 0;\r\n\t\t}\r\n\t\tth {\r\n\t\t\tfont-weight: bold;\r\n\t\t\ttext-align: left;\r\n\t\t}\r\n\t\t.print_input {\r\n\t\t\tfont-family: monospace;\r\n\t\t\tfont-weight: bold;\r\n\t\t}\r\n\t</style>\r\n\t<table cellpadding='0' cellspacing='1' border=1 width='97%'>\r\n\t<tr><td>\r\n\t\t<table cellpadding='5' cellspacing='0' width='100%'>\r\n\t\t\t<tr>\r\n\t\t\t\t<td><img src='../compinfo/getimg.php' width='230' height='47' /></td>\r\n\t\t\t\t<td align='right'><h2>HIRE NOTE</h2></td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t</tr></td>\r\n\t<tr><td>\r\n\t\t<table border='1' width='100%'>\r\n\t\t<tr>\r\n\t\t\t<td valign=top width='50%'>\r\n\t\t\t\t" . COMP_NAME . "<br />\r\n\t\t\t\t" . COMP_ADDRESS . "<br />\r\n\t\t\t\tTEL: " . COMP_TEL . "<br />\r\n\t\t\t\tFAX: " . COMP_FAX . "<br />\r\n\t\t\t\tRegistration Number: " . COMP_REGNO . "<br />\r\n\t\t\t\tVAT Registration Number: " . COMP_VATNO . "<br />\r\n\t\t\t</td>\r\n\t\t\t<td valign='top' width='50%'>\r\n\t\t\t\t{$inv['cusname']}<br />\r\n\t\t\t\t{$cusinfo}\r\n\t\t\t</td>\r\n\t\t</tr>\r\n\t\t</table>\r\n\t</td></tr>\r\n\t<tr><td>\r\n\t\t<table " . TMPL_tblDflts . " width='100%'>\r\n\t\t\t<tr>\r\n\t\t\t\t<td align='left' width='25%'>\r\n\t\t\t\t\tNote: H{$inv['invnum']}" . rrev($inv["invid"]) . "\r\n\t\t\t\t</td>\r\n\t\t\t\t<td align='center' width='25%'>CASHIER: {$inv['username']}</td>\r\n\t\t\t\t<td width='25%' align='center'>Time: {$time}</td>\r\n\t\t\t\t<td width='25%' align='right'>{$inv['odate']}</td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t</td></tr>\r\n\t<tr><td>\r\n\t<table cellpadding='5' cellspacing='0' border='0' width='100%' bordercolor='#000000'>\r\n\t\t<tr>\r\n\t\t\t<th>CODE</th>\r\n\t\t\t<th>QTY</th>\r\n\t\t\t<th>HIRE DATE</th>\r\n\t\t\t<th>RETURN</th>\r\n\t\t\t<th style='text-align: right'>TOTAL</th>\r\n\t\t<tr>\r\n\t\t{$products}\r\n\t</table>\r\n\t</td></tr>\r\n\t<tr>\r\n\t\t<td valign='top'>\r\n\t\t<table width='100%'>\r\n\t\t<tr><td valign='top'>\r\n\t\t<table cellpadding='2' cellspacing='0' width='80%'>\r\n\t\t\t<tr><td colspan='2'>{$thank_you}</td></tr>\r\n\t\t\t<tr><td>{$Com}</td></tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td>\r\n\t\t\t\t<font style='font-size: 0.75em'>" . nl2br($inv["custom_txt"]) . "<br />\r\n\t\t\t\t</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr><td> </td></tr>\r\n\t\t</table>\r\n\t\t</td>\r\n\t\t<td align=right valign='top'>\r\n\t\t<table cellpadding='2' cellspacing='0' width='50%'>\r\n\t\t\t<tr>\r\n\t\t\t\t<td>Delivery Charge</td>\r\n\t\t\t\t<td align='right' nowrap>" . CUR . " {$inv['delchrg']}</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td>Trade Discount</td>\r\n\t\t\t\t<td align='right' nowrap>" . CUR . " {$traddiscm}</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td>SUBTOTAL</td>\r\n\t\t\t\t<td align='right' nowrap>" . CUR . " {$SUBTOT}</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td>VAT {$vat14}</td>\r\n\t\t\t\t<td align='right' nowrap>" . CUR . " {$VAT}</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td nowrap>GRAND TOTAL</td>\r\n\t\t\t\t<td align='right' nowrap><b>" . CUR . " {$TOTAL}</b></td>\r\n\t\t\t</tr>\r\n\t\t\t{$sp}\r\n\t\t</table>\r\n\t</td></tr>\r\n\t\t<table cellpadding='2' cellspacing='0' width='100%' border='1'>\r\n\t\t\t<tr><td colspan='2'>\r\n\t\t\t<div style='font-size: .80em;'>" . stripslashes($contract_text) . "</div></div>\r\n\t\t\t</td></tr>\r\n\t\t\t<tr><td colspan='2'> </td></tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td>Full Names (Print) ____________________________</td>\r\n\t\t\t\t<td>Identity Number ____________________________</td>\r\n\t\t\t</tr>\r\n\t\t\t<tr><td colspan='2'> </td></tr>\r\n\t\t\t<tr>\r\n\t\t\t\t<td>Signature - Customer ____________________________</td>\r\n\t\t\t\t<td>Signature - Authorized Agent ____________________________</td>\r\n\t\t\t</tr>\r\n\t\t</table>\r\n\t</td></tr>\r\n\t</td></tr>\r\n\t</table>\r\n\t</table>\r\n\t</center>"; $OUTPUT = $details; require "../tmpl-print.php"; }
function isOverdue($item_id) { $return_date = returnDate($item_id, "Y-m-d"); $e_return = getDTEpoch("{$return_date} 12:00:00"); if ($e_return < time()) { return true; } else { return false; } }