$sql = "SELECT * FROM ".TB_PREF."stock_moves
WHERE stock_id=".db_escape($stock_id)."
- AND (type=".ST_INVADJUST." OR type=".ST_CUSTDELIVERY.")";
+ AND (type=".ST_INVADJUST." OR type=".ST_CUSTDELIVERY.")
+ ORDER BY tran_date DESC
+ LIMIT 1";
$result = db_query($sql, "cannot retrieve fixed asset move");
return $row;
}
-function get_fixed_asset_purchase($stock_id) {
-
- $sql = "SELECT *
- FROM ".TB_PREF."stock_master m, "
- .TB_PREF."supp_invoice_items i, "
- .TB_PREF."supp_trans t
- WHERE m.stock_id=".db_escape($stock_id)."
- AND i.supp_trans_no=t.trans_no
- AND m.stock_id=i.stock_id";
-
- $result = db_query($sql, "cannot retrieve fixed asset move");
-
- if (db_num_rows($result) == 0)
- return false;
-
- $row = db_fetch_assoc($result);
- return $row;
+function get_fixed_asset_purchase($stock_id)
+{
+ $sql = "SELECT *
+ FROM ".TB_PREF."stock_master m, "
+ .TB_PREF."supp_invoice_items i, "
+ .TB_PREF."supp_trans t
+ WHERE m.stock_id=".db_escape($stock_id)."
+ AND i.supp_trans_no=t.trans_no
+ AND m.stock_id=i.stock_id
+ ORDER BY t.tran_date DESC
+ LIMIT 1";
+
+ $result = db_query($sql, "cannot retrieve fixed asset move");
+
+ if (db_num_rows($result) == 0)
+ return false;
+
+ $row = db_fetch_assoc($result);
+ return $row;
}
//--------------------------------------------------------------------------------------------------
function get_sql_for_fixed_assets($show_inactive = false)
{
- $sql = "SELECT s.stock_id, c.description, s.units, s.description as name,
- s.depreciation_rate, s.depreciation_method, s.inactive, rcv.tran_date as purchase_date, rcv.trans_no as purchase_no,
- adj.tran_date as disposal_date, adj.type as disposal_type, adj.trans_no as disposal_no, s.material_cost, s.purchase_cost, s.depreciation_factor
+ $sql = "SELECT s.stock_id, c.description, s.units, s.description as name,
+ s.depreciation_rate, s.depreciation_method, s.inactive,
+ s.material_cost, s.purchase_cost, s.depreciation_factor
FROM ".TB_PREF."stock_master s"
- ." LEFT JOIN ".TB_PREF."stock_moves rcv ON rcv.stock_id=s.stock_id AND rcv.type=".ST_SUPPRECEIVE
- ." LEFT JOIN ".TB_PREF."stock_moves adj ON adj.stock_id=s.stock_id AND adj.type IN(".ST_INVADJUST.",".ST_CUSTDELIVERY.")"
." LEFT JOIN ".TB_PREF."stock_fa_class c ON s.fa_class_id=c.fa_class_id"
." WHERE s.mb_flag='F'";
- if (!$show_inactive)
- $sql .= " AND !s.inactive AND !ISNULL(rcv.tran_date) AND ISNULL(adj.tran_date)";
+ if (!$show_inactive)
+ $sql .= " AND !s.inactive ";
+
+ $sql .= " ORDER BY c.description ";
return $sql;
}
function gl_view($row)
{
- $row = get_fixed_asset_move($row['stock_id'], ST_JOURNAL);
+ $row = get_fixed_asset_move($row['stock_id'], ST_JOURNAL);
- //if ($row === false)
- //return "";
-
- //return get_journal_trans_view_str(ST_JOURNAL, $row["trans_no"], sql2date($row["tran_date"]));
return get_gl_view_str(ST_JOURNAL, $row["trans_no"]);
}
+function fa_prepare_row($row) {
+ $purchase = get_fixed_asset_purchase($row['stock_id']);
+ if ($purchase !== false) {
+ $row['purchase_date'] = $purchase['tran_date'];
+ $row['purchase_no'] = $purchase['trans_no'];
+ }
+ else {
+ $row['purchase_date'] = NULL;
+ $row['purchase_no'] = NULL;
+ }
+
+ $disposal = get_fixed_asset_disposal($row['stock_id']);
+ if ($disposal !== false) {
+ $row['disposal_date'] = $disposal['tran_date'];
+ $row['disposal_no'] = $disposal['trans_no'];
+ $row['disposal_type'] = $disposal['type'];
+ }
+ else {
+ $row['disposal_date'] = NULL;
+ $row['disposal_no'] = NULL;
+ $row['disposal_type'] = NULL;
+ }
+ return $row;
+}
+
function fa_link($row)
{
- $url = "inventory/manage/items.php?FixedAsset=1&stock_id=".$row['stock_id'];
+ $url = "inventory/manage/items.php?FixedAsset=1&stock_id=".$row['stock_id'];
- return viewer_link($row['stock_id'], $url);
+ return viewer_link($row['stock_id'], $url);
}
function depr_method_title($row) {
- global $depreciation_methods;
- return $depreciation_methods[$row['depreciation_method']];
+ global $depreciation_methods;
+ return $depreciation_methods[$row['depreciation_method']];
}
function depr_par($row) {
function status_title($row) {
- if ($row['inactive'] || ($row['disposal_date'] !== NULL))
+ if ($row['inactive'] || ($row['disposal_date'] !== NULL))
return _("Disposed"); // disposed or saled
elseif ($row['purchase_date'] === NULL)
return _("Purchasable"); // not yet purchased
function purchase_link($row)
{
- if ($row['purchase_date'] === null)
- return "";
+ if ($row['purchase_date'] === NULL)
+ return "";
- return get_supplier_trans_view_str(ST_SUPPRECEIVE, $row["purchase_no"], sql2date($row["purchase_date"]));
+ return get_supplier_trans_view_str(ST_SUPPRECEIVE, $row["purchase_no"], sql2date($row["purchase_date"]));
}
function disposal_link($row)
{
- switch ($row['disposal_type']) {
- case ST_INVADJUST:
- return get_inventory_trans_view_str(ST_INVADJUST, $row["disposal_no"], sql2date($row["disposal_date"]));
- case ST_CUSTDELIVERY:
- return get_customer_trans_view_str(ST_CUSTDELIVERY, $row["disposal_no"], sql2date($row["disposal_date"]));
- default:
- return "";
- }
+ if ($row['disposal_date'] === NULL)
+ return "";
+
+ switch ($row['disposal_type']) {
+ case ST_INVADJUST:
+ return get_inventory_trans_view_str(ST_INVADJUST, $row["disposal_no"], sql2date($row["disposal_date"]));
+ case ST_CUSTDELIVERY:
+ return get_customer_trans_view_str(ST_CUSTDELIVERY, $row["disposal_no"], sql2date($row["disposal_date"]));
+ default:
+ return "";
+ }
}
function amount_link($row)
$table =& new_db_pager('fixed_assets_tbl', $sql, $cols);
$table->width = "85%";
+$table->row_fun = "fa_prepare_row";
display_db_pager($table);
var $width; // table width (default '95%')
var $header_fun; // additional row between title and body
var $header_class;
+ var $row_fun; // Function for row preprocessing
var $footer_fun;
var $footer_class;
var $data = array();
$cc = 0; //row colour counter
foreach($pager->data as $line_no => $row) {
+ if ($pager->row_fun) {
+ if (function_exists($pager->row_fun)) {
+ $fn = $pager->row_fun;
+ $row = $fn($row);
+ }
+ }
+
$marker = $pager->marker;
if ($marker && $marker($row))
start_row("class='$pager->marker_class'");
$catt = '';
while ($trans=db_fetch($res))
{
- $d = sql2date($trans['purchase_date']);
+ $purchase = get_fixed_asset_purchase($trans['stock_id']);
+ $d = sql2date($purchase['tran_date']);
if (date1_greater_date2($d, $date))
continue;
if ($class != 0 && $cln != $trans['description'])