X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=inventory%2Fincludes%2Fdb%2Fitems_transfer_db.inc;h=c9a845f9b3e6613d28f2c23b21687896acbe7811;hb=523b8c69689f9ceb978b422b3e65a7eb9c089b6f;hp=f537e491dafecaa33f7dd99c26ec8c1e9be11c56;hpb=5b8f4c4b4aa8cf996bc071f116bfce1273200fa2;p=fa-stable.git diff --git a/inventory/includes/db/items_transfer_db.inc b/inventory/includes/db/items_transfer_db.inc index f537e491..c9a845f9 100644 --- a/inventory/includes/db/items_transfer_db.inc +++ b/inventory/includes/db/items_transfer_db.inc @@ -11,14 +11,14 @@ ***********************************************************************/ //------------------------------------------------------------------------------------------------------------- -function add_stock_transfer($Items, $location_from, $location_to, $date_, $type, $reference, $memo_) +function add_stock_transfer($Items, $location_from, $location_to, $date_, $reference, $memo_) { global $SysPrefs, $path_to_root, $Refs; begin_transaction(); $args = func_get_args(); $args = (object)array_combine(array('Items', 'location_from', 'location_to', - 'date_', 'type', 'reference', 'memo_'), $args); + 'date_', 'reference', 'memo_'), $args); $args->trans_no = 0; hook_db_prewrite($args, ST_LOCTRANSFER); @@ -37,7 +37,7 @@ function add_stock_transfer($Items, $location_from, $location_to, $date_, $type, if ($SysPrefs->loc_notification() == 1) $loc = calculate_reorder_level($location_from, $line_item, $st_ids, $st_names, $st_num, $st_reorder); add_stock_transfer_item($transfer_id, $line_item->stock_id, $location_from, - $location_to, $date_, $type, $reference, $line_item->quantity); + $location_to, $date_, $reference, $line_item->quantity); } add_comments(ST_LOCTRANSFER, $transfer_id, $date_, $memo_); @@ -64,7 +64,7 @@ function add_stock_transfer($Items, $location_from, $location_to, $date_, $type, // it seems the standard_cost field is not used at all function add_stock_transfer_item($transfer_id, $stock_id, $location_from, $location_to, - $date_, $type, $reference, $quantity) + $date_, $reference, $quantity) { add_stock_move(ST_LOCTRANSFER, $stock_id, $transfer_id, $location_from, $date_, $reference, -$quantity, 0); @@ -75,26 +75,29 @@ function add_stock_transfer_item($transfer_id, $stock_id, $location_from, $locat } //------------------------------------------------------------------------------------------------------------- - +// +// Get inventory transfer common data (currently this is still stored in stock_moves table). +// function get_stock_transfer($trans_no) { - $result = get_stock_transfer_items($trans_no); - if (db_num_rows($result) < 2) - { - display_db_error("transfer with less than 2 items : $trans_no", ""); - } + // retrieve common data from any two from/to move records + $sql = "SELECT loc_from.*, loc_to.* + FROM + (SELECT trans_no, type, tran_date, reference, move.loc_code as from_loc, loc.location_name as from_name + FROM ".TB_PREF."stock_moves move + LEFT JOIN ".TB_PREF."locations loc ON loc.loc_code=move.loc_code + WHERE type=".ST_LOCTRANSFER." AND trans_no=".db_escape($trans_no). " AND qty<0 LIMIT 1) loc_from, + + (SELECT move.loc_code as to_loc, loc.location_name as to_name + FROM ".TB_PREF."stock_moves move + LEFT JOIN ".TB_PREF."locations loc ON loc.loc_code=move.loc_code + WHERE type=".ST_LOCTRANSFER." AND trans_no=".db_escape($trans_no). " AND qty>0 LIMIT 1) loc_to"; + + $result = db_query($sql, "Could not get transfer common data"); + + $data = db_fetch($result); - // this function is very bad that it assumes that 1st record and 2nd record contain the - // from and to locations - if get_stock_moves uses a different ordering than trans_no then - // it will bomb - $move1 = db_fetch($result); - $move2 = db_fetch($result); - - // return an array of (From, To) - if ($move1['qty'] < 0) - return array($move1, $move2); - else - return array($move2, $move1); + return $data; } //-------------------------------------------------------------------------------------------------------------