From: Joe Hunt Date: Wed, 17 May 2017 21:47:26 +0000 (+0200) Subject: 0003871: [Fixed Assets] new patch fix for: 0003866, 0003869 X-Git-Tag: v2.4.2~19^2~9 X-Git-Url: https://delta.frontaccounting.com/gitweb/?p=fa-stable.git;a=commitdiff_plain;h=3539962a4e524de683d8c5e851c482ad99a97267 0003871: [Fixed Assets] new patch fix for: 0003866, 0003869 --- diff --git a/fixed_assets/includes/fixed_assets_db.inc b/fixed_assets/includes/fixed_assets_db.inc index 911cdddf..11c9c027 100644 --- a/fixed_assets/includes/fixed_assets_db.inc +++ b/fixed_assets/includes/fixed_assets_db.inc @@ -85,7 +85,9 @@ function get_fixed_asset_disposal($stock_id) { $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"); @@ -96,23 +98,25 @@ function get_fixed_asset_disposal($stock_id) { 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; } //-------------------------------------------------------------------------------------------------- @@ -130,17 +134,17 @@ function get_fixed_asset_class($id) 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; } diff --git a/fixed_assets/inquiry/stock_inquiry.php b/fixed_assets/inquiry/stock_inquiry.php index c456d792..424c9703 100644 --- a/fixed_assets/inquiry/stock_inquiry.php +++ b/fixed_assets/inquiry/stock_inquiry.php @@ -52,25 +52,46 @@ if(get_post('RefreshInquiry')) 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) { @@ -85,7 +106,7 @@ 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 @@ -97,22 +118,25 @@ function status_title($row) { 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) @@ -162,6 +186,7 @@ $cols = array( $table =& new_db_pager('fixed_assets_tbl', $sql, $cols); $table->width = "85%"; +$table->row_fun = "fa_prepare_row"; display_db_pager($table); diff --git a/includes/db_pager.inc b/includes/db_pager.inc index ff31c1df..416773ac 100644 --- a/includes/db_pager.inc +++ b/includes/db_pager.inc @@ -29,6 +29,7 @@ class db_pager { 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(); diff --git a/includes/ui/db_pager_view.inc b/includes/ui/db_pager_view.inc index 28c2b38d..8245d77b 100644 --- a/includes/ui/db_pager_view.inc +++ b/includes/ui/db_pager_view.inc @@ -83,6 +83,13 @@ function display_db_pager(&$pager) { $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'"); diff --git a/reporting/rep451.php b/reporting/rep451.php index da0f06d4..2a9d3cb0 100644 --- a/reporting/rep451.php +++ b/reporting/rep451.php @@ -91,7 +91,8 @@ function print_fixed_assets_valuation_report() $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'])