X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=inventory%2Finquiry%2Fstock_movements.php;h=d6fdce42646bec2abb3d9ea58f7aae8487eacbfa;hb=13fae1ba1d78cff66e326a006be2f538dd404248;hp=52b2aa1fb7dd75e76f197b8d4e5a21602d444d16;hpb=90ccfadd90aa37c22f88f7bc5628f0ebeec0b29f;p=fa-stable.git diff --git a/inventory/inquiry/stock_movements.php b/inventory/inquiry/stock_movements.php index 52b2aa1f..d6fdce42 100644 --- a/inventory/inquiry/stock_movements.php +++ b/inventory/inquiry/stock_movements.php @@ -1,9 +1,16 @@ . +***********************************************************************/ +$page_security = 'SA_ITEMSTRANSVIEW'; +$path_to_root = "../.."; include_once($path_to_root . "/includes/session.inc"); include_once($path_to_root . "/includes/date_functions.inc"); @@ -12,217 +19,175 @@ include_once($path_to_root . "/sales/includes/sales_db.inc"); include_once($path_to_root . "/includes/ui.inc"); $js = ""; -if ($use_popup_windows) +if ($SysPrefs->use_popup_windows) $js .= get_js_open_window(800, 500); -if ($use_date_picker) +if (user_use_date_picker()) $js .= get_js_date_picker(); -page(_("Inventory Item Movement"), false, false, "", $js); +if (isset($_GET['FixedAsset'])) { + $page_security = 'SA_ASSETSTRANSVIEW'; + $_POST['fixed_asset'] = 1; + $_SESSION['page_title'] = _($help_context = "Fixed Assets Movement"); +} else { + $_SESSION['page_title'] = _($help_context = "Inventory Item Movement"); +} + +page($_SESSION['page_title'], isset($_GET['stock_id']), false, "", $js); //------------------------------------------------------------------------------------------------ -check_db_has_stock_items(_("There are no items defined in the system.")); +if (get_post('fixed_asset') == 1) + check_db_has_fixed_assets(_("There are no fixed asset defined in the system.")); +else + check_db_has_stock_items(_("There are no items defined in the system.")); + +if(get_post('ShowMoves')) +{ + $Ajax->activate('doc_tbl'); +} if (isset($_GET['stock_id'])) { $_POST['stock_id'] = $_GET['stock_id']; } -start_form(false, true); +start_form(); + +hidden('fixed_asset'); if (!isset($_POST['stock_id'])) $_POST['stock_id'] = get_global_stock_item(); -start_table("class='tablestyle_noborder'"); +start_table(TABLESTYLE_NOBORDER); +start_row(); +if (!$page_nested) +{ + if (get_post('fixed_asset') == 1) { + stock_items_list_cells(_("Item:"), 'stock_id', $_POST['stock_id'], + false, false, check_value('show_inactive'), false, array('fixed_asset' => true)); + check_cells(_("Show inactive:"), 'show_inactive', null, true); + + if (get_post('_show_inactive_update')) { + $Ajax->activate('stock_id'); + set_focus('stock_id'); + } + } else + stock_costable_items_list_cells(_("Item:"), 'stock_id', $_POST['stock_id']); +} + +end_row(); +end_table(); -stock_items_list_cells(_("Item:"), 'stock_id', $_POST['stock_id']); +start_table(TABLESTYLE_NOBORDER); +start_row(); -locations_list_cells(_("From Location:"), 'StockLocation', null); +locations_list_cells(_("From Location:"), 'StockLocation', null, true, false, (get_post('fixed_asset') == 1)); -date_cells(_("From:"), 'AfterDate', '', null, -30); +date_cells(_("From:"), 'AfterDate', '', null, -user_transaction_days()); date_cells(_("To:"), 'BeforeDate'); -submit_cells('ShowMoves',_("Show Movements"),'',_('Refresh Inquiry'), true); +submit_cells('ShowMoves',_("Show Movements"),'',_('Refresh Inquiry'), 'default'); +end_row(); end_table(); end_form(); set_global_stock_item($_POST['stock_id']); -$item_dec = get_qty_dec($_POST['stock_id']); -// -// Get summary displayed in headewr and footer. -// -function get_summary(&$table) -{ - global $Ajax, $item_dec; - - $sql = "SELECT - Sum(qty) as sum, - Sum(IF(qty>0, qty, 0)) as in_qty, - Sum(IF(qty<0, -qty, 0)) as out_qty - FROM ".TB_PREF."stock_moves - WHERE loc_code='" . $_POST['StockLocation'] . "' - AND tran_date >= '". date2sql($_POST['AfterDate']) . "' - AND tran_date <= '" . date2sql($_POST['BeforeDate']) . "' - AND stock_id = '" . $_POST['stock_id'] . "'"; - " GROUP BY rec"; - $result = db_query($sql, "cannot retrieve stock moves"); - - $qty = db_fetch($result); - - $sum['beg'] = get_qoh_on_date($_POST['stock_id'], $_POST['StockLocation'], - add_days($_POST['AfterDate'], -1)); - $sum['in'] = $qty['in_qty']; - $sum['out'] = $qty['out_qty']; - $sum['end'] = $sum['beg'] + $qty['sum']; - $sum['dec'] = $item_dec = get_qty_dec($_POST['stock_id']); - - $table->sum = $sum; - $Ajax->activate('summary'); - } -//----------------------------------------------------------------------------- - -function systype_name($row) -{ - return systypes::name($row["type"]); -} -function trans_view($row) -{ - return get_trans_view_str($row["type"], $row["trans_no"]); -} +$before_date = date2sql($_POST['BeforeDate']); +$after_date = date2sql($_POST['AfterDate']); +$display_location = !$_POST['StockLocation']; -function show_details($row) -{ - $person = $row["person_id"]; - $gl_posting = ""; +$result = get_stock_movements($_POST['stock_id'], $_POST['StockLocation'], + $_POST['BeforeDate'], $_POST['AfterDate']); - if (($row["type"] == 13) || ($row["type"] == 11)) - { - $cust_row = get_customer_details_from_trans($row["type"], $row["trans_no"]); +div_start('doc_tbl'); +start_table(TABLESTYLE); +$th = array(_("Type"), _("#"), _("Reference")); - if (strlen($cust_row['name']) > 0) - $person = $cust_row['name'] . " (" . $cust_row['br_name'] . ")"; +if ($display_location) + array_push($th, _("Location")); - } - elseif ($row["type"] == 25 || $row['type'] == 21) - { - // get the supplier name - $sql = "SELECT supp_name FROM ".TB_PREF."suppliers WHERE supplier_id = '" . $row["person_id"] . "'"; - $supp_result = db_query($sql,"check failed"); +array_push($th, _("Date"), _("Detail"), _("Quantity In"), _("Quantity Out"), _("Quantity On Hand")); - $supp_row = db_fetch($supp_result); +table_header($th); - if (strlen($supp_row['supp_name']) > 0) - $person = $supp_row['supp_name']; - } - elseif ($row["type"] == systypes::location_transfer() || $row["type"] == systypes::inventory_adjustment()) +$before_qty = get_qoh_on_date($_POST['stock_id'], $_POST['StockLocation'], add_days($_POST['AfterDate'], -1)); + +$after_qty = $before_qty; + +start_row("class='inquirybg'"); +$header_span = $display_location ? 6 : 5; +label_cell(""._("Quantity on hand before") . " " . $_POST['AfterDate']."", "align=center colspan=$header_span"); +label_cell(" ", "colspan=2"); +$dec = get_qty_dec($_POST['stock_id']); +qty_cell($before_qty, false, $dec); +end_row(); + +$j = 1; +$k = 0; //row colour counter + +$total_in = 0; +$total_out = 0; + +while ($myrow = db_fetch($result)) +{ + + alt_table_row_color($k); + + $trandate = sql2date($myrow["tran_date"]); + + if (get_post('fixed_asset') == 1 && isset($fa_systypes_array[$myrow["type"]])) + $type_name = $fa_systypes_array[$myrow["type"]]; + else + $type_name = $systypes_array[$myrow["type"]]; + + if ($myrow["qty"] > 0) { - // get the adjustment type - $movement_type = get_movement_type($row["person_id"]); - $person = $movement_type["name"]; + $quantity_formatted = number_format2($myrow["qty"], $dec); + $total_in += $myrow["qty"]; } - elseif ($row["type"]==systypes::work_order() || $row["type"] == 28 || - $row["type"] == 29) + else { - $person = ""; + $quantity_formatted = number_format2(-$myrow["qty"], $dec); + $total_out += -$myrow["qty"]; } - return $person; -} + $after_qty += $myrow["qty"]; -$total_out = 0; -$total_in = 0; + label_cell($type_name); -function qty_in($row) -{ - $q = $row["qty"]; - return $q <= 0 ? '' : $q; -} + label_cell(get_trans_view_str($myrow["type"], $myrow["trans_no"]), "nowrap align='right'"); -function qty_out($row) -{ - $q = -$row["qty"]; - return $q <= 0 ? '' : $q; -} -/* -function show_qoh($row) -{ - $qoh =& $_SESSION['qoh']; - $qoh += $row['qty']; - return $qoh; -} -*/ -function before_status($pager) -{ - $r[] = - array( ""._("Quantity on hand before") . " " . $_POST['AfterDate'] - .':'."", "align='right' colspan=5"); - if($pager->sum['beg']>=0) { - $r[] = array (number_format2($pager->sum['beg'], $pager->sum['dec']), - "align='right'"); - $r[] = array(" "); - } else { - $r[] = array(" "); - $r[] = array (number_format2($pager->sum['beg'], $pager->sum['dec']), - "align='right'"); - } - return $r; -} + label_cell(get_trans_view_str($myrow["type"], $myrow["trans_no"], $myrow["reference"])); -function after_status($pager) -{ - $r[] = - array( ""._("Quantity on hand after") . " " . $_POST['BeforeDate'] - .':'."", "align='right' colspan=5"); - if($pager->sum['end']>=0) { - $r[] = array (number_format2($pager->sum['end'], $pager->sum['dec']), - "align='right'"); - $r[] = array(" ", "colspan=2"); - } else { - $r[] = array(" ", "colspan=2"); - $r[] = array (number_format2($pager->sum['end'], $pager->sum['dec']), - "align='right'"); + if($display_location) { + label_cell($myrow['loc_code']); } - return $r; -} -//----------------------------------------------------------------------------- + label_cell($trandate); -$before_date = date2sql($_POST['BeforeDate']); -$after_date = date2sql($_POST['AfterDate']); + $gl_posting = ""; -$sql = "SELECT - type, - trans_no, - reference, - tran_date, - person_id, - qty - FROM ".TB_PREF."stock_moves - WHERE loc_code='" . $_POST['StockLocation'] . "' - AND tran_date >= '". $after_date . "' - AND tran_date <= '" . $before_date . "' - AND stock_id = '" . $_POST['stock_id'] . "'"; - -$cols = array( - _("Type") => array('fun'=>'systype_name' ), - _("#") => array('fun'=>'trans_view' ), - _("Reference"), - _("Date") => array('date', 'ord'=>'desc'), - _("Detail") => array('fun'=>'show_details' ), - _("Quantity In") => array('type'=>'amount', 'dec'=> $item_dec, 'insert'=>true,'fun'=>'qty_in' ), - _("Quantity Out") => array('type'=>'amount', 'dec'=> $item_dec,'insert'=>true,'fun'=>'qty_out' ), -// _("Quantity On Hand") => array('insert'=>true,'type'=>'amount', 'fun'=>'show_qoh' ) -); - -$table =& new_db_pager('doc_tbl', $sql, $cols); -$table->set_header('before_status'); -$table->set_footer('after_status'); - -if (!$table->ready) // new sql query - update summary - get_summary(&$table); + label_cell($myrow['name']); -start_form(); + label_cell((($myrow["qty"] >= 0) ? $quantity_formatted : ""), "nowrap align=right"); + label_cell((($myrow["qty"] < 0) ? $quantity_formatted : ""), "nowrap align=right"); + qty_cell($after_qty, false, $dec); + end_row(); -display_db_pager($table); + $j++; + if ($j == 12) + { + $j = 1; + table_header($th); + } +} -end_form(); +start_row("class='inquirybg'"); +label_cell(""._("Quantity on hand after") . " " . $_POST['BeforeDate']."", "align=center colspan=$header_span"); +qty_cell($total_in, false, $dec); +qty_cell($total_out, false, $dec); +qty_cell($after_qty, false, $dec); +end_row(); + +end_table(1); +div_end(); end_page(); -?> +