X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=purchasing%2Fincludes%2Fdb%2Fgrn_db.inc;h=62f29ed87d60766fe331530791281447ecc4f631;hb=7647c792901573c9a46a976e548cc367022a7d57;hp=d5efafdb21ca86d2fc6157cfa57af0830d908682;hpb=fc449c48a8d4ba23bfb18318dff08746340a440c;p=fa-stable.git diff --git a/purchasing/includes/db/grn_db.inc b/purchasing/includes/db/grn_db.inc index d5efafdb..62f29ed8 100644 --- a/purchasing/includes/db/grn_db.inc +++ b/purchasing/includes/db/grn_db.inc @@ -9,7 +9,9 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License here . ***********************************************************************/ -//------------------- update average material cost ---------------------------------------------- +/* + Update average inventory item cost. +*/ function update_average_material_cost($supplier, $stock_id, $price, $qty, $date, $adj_only=false) { // probably this function should be optimized @@ -40,20 +42,18 @@ function update_average_material_cost($supplier, $stock_id, $price, $qty, $date, // Skip negative inventory adjustment for case of adjust_only if (is_inventory_item($stock_id) && !$adj_only) handle_negative_inventory($stock_id, $qty, $price_in_home_currency, $date); - - $sql = "SELECT mb_flag, material_cost FROM ".TB_PREF."stock_master WHERE stock_id=".db_escape($stock_id); - $result = db_query($sql); - $myrow = db_fetch($result); - $material_cost = $myrow['material_cost']; - - $cost_adjust = false; + + $item = get_item($stock_id); + $avg_cost = $item['material_cost']; $qoh = get_qoh_on_date($stock_id); + $cost_adjust = false; + if ($adj_only) { if ($qoh > 0) - $material_cost = ($qoh * $material_cost + $qty * $price_in_home_currency) / $qoh; + $avg_cost = ($qoh * $avg_cost + $qty * $price_in_home_currency) / $qoh; } else { @@ -64,16 +64,17 @@ function update_average_material_cost($supplier, $stock_id, $price, $qty, $date, $qoh = 0; } if ($qoh + $qty > 0) - $material_cost = ($qoh * $material_cost + $qty * $price_in_home_currency) / ($qoh + $qty); + $avg_cost = ($qoh * $avg_cost + $qty * $price_in_home_currency) / ($qoh + $qty); } if ($cost_adjust) // Material_cost replaced with price adjust_deliveries($stock_id, $price_in_home_currency_, $date); - $sql = "UPDATE ".TB_PREF."stock_master SET material_cost=".db_escape($material_cost)." + + $sql = "UPDATE ".TB_PREF."stock_master SET material_cost=".db_escape($avg_cost)." WHERE stock_id=".db_escape($stock_id); db_query($sql,"The cost details for the inventory item could not be updated"); - return $material_cost; + return $avg_cost; } //------------------------------------------------------------------------------------------------------------- @@ -141,15 +142,15 @@ function add_grn(&$po) $po->line_items[$line_no]->grn_item_id = $grn_item; /* Update location stock records - NB a po cannot be entered for a service/kit parts done automatically */ add_stock_move(ST_SUPPRECEIVE, $order_line->stock_id, $grn, $po->Location, $date_, "", - $order_line->receive_qty, $order_line->standard_cost, - $po->supplier_id, 1, $order_line->taxfree_charge_value($po)/$order_line->receive_qty); + $order_line->receive_qty, $order_line->standard_cost, $order_line->taxfree_charge_value($po)/$order_line->receive_qty); } /*quantity received is != 0 */ } /*end of order_line loop */ if ($clearing_act && $total != 0.0) { + $accs = get_supplier_accounts($po->supplier_id); $total += add_gl_trans_supplier(ST_SUPPRECEIVE, $grn, $date_, $clearing_act, - 0, 0, -$total, null); + $accs['dimension_id'], $accs['dimension2_id'], -$total, null); } $Refs->save(ST_SUPPRECEIVE, $grn, $po->reference); @@ -255,7 +256,7 @@ function set_grn_item_credited(&$entered_grn, $supplier, $transno, $date) function get_grn_items($grn_batch_id=0, $supplier_id="", $outstanding_only=false, $is_invoiced_only=false, $invoice_no=0, $begin="", $end="") { - $sql = "SELECT grn.*, grn_item.*, + $sql = "SELECT grn.*, grn_item.*, po_item.delivery_date as req_del_date, grn_item.quantity_inv".($invoice_no ? "-invoice_item.quantity" : '')." quantity_inv, po_item.unit_price, po_item.act_price, @@ -346,7 +347,7 @@ function read_grn_items_to_order($grn_batch, &$order) $order->add_to_order($order->lines_on_order, $myrow["item_code"], $myrow["qty_recd"],$myrow["description"], $myrow["unit_price"],$units, - sql2date($myrow["delivery_date"]), $myrow["quantity_inv"], + sql2date($myrow["req_del_date"]), $myrow["quantity_inv"], $myrow["qty_recd"]); $order->line_items[$order->lines_on_order-1]->po_detail_rec = $myrow["po_detail_item"];