X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=inventory%2Fincludes%2Fdb%2Fitems_trans_db.inc;h=58d7722ddb70f1b8c2d23222dd15fa02d451d182;hb=df660a601cabb0afe7f3246884f16207b9a0c314;hp=3d364a446407afcf16c71afabbf2e2b41ef89455;hpb=d69e655cbe282e2dbb261e207fcfacc5c3b8b246;p=fa-stable.git diff --git a/inventory/includes/db/items_trans_db.inc b/inventory/includes/db/items_trans_db.inc index 3d364a44..58d7722d 100644 --- a/inventory/includes/db/items_trans_db.inc +++ b/inventory/includes/db/items_trans_db.inc @@ -12,61 +12,70 @@ //------------------------------------------------------------------------------------------------------------- function stock_cost_update($stock_id, $material_cost, $labour_cost, $overhead_cost, - $last_cost) + $last_cost, $refline, $memo_) { $mb_flag = get_mb_flag($stock_id); - - $update_no = -1; - + + $update_no = -1; + if (is_service($mb_flag)) { - //display_db_error("Cannot do cost update for Service item : $stock_id", ""); - - //Chaitanya - $sql = "UPDATE ".TB_PREF."stock_master SET material_cost=".db_escape($material_cost)." - WHERE stock_id=".db_escape($stock_id); - - db_query($sql,"The cost details for the inventory item could not be updated"); - - return $update_no; - - } - + $sql = "UPDATE ".TB_PREF."stock_master SET material_cost=".db_escape($material_cost)." + WHERE stock_id=".db_escape($stock_id); + + db_query($sql,"The cost details for the inventory item could not be updated"); + + return $update_no; + } + begin_transaction(); - + $sql = "UPDATE ".TB_PREF."stock_master SET material_cost=".db_escape($material_cost).", - labour_cost=".db_escape($labour_cost).", - overhead_cost=".db_escape($overhead_cost).", - last_cost=".db_escape($last_cost)." + labour_cost=".db_escape($labour_cost).", + overhead_cost=".db_escape($overhead_cost)." WHERE stock_id=".db_escape($stock_id); db_query($sql,"The cost details for the inventory item could not be updated"); - $qoh = get_qoh_on_date($_POST['stock_id']); - + $qoh = get_qoh_on_date($stock_id); + $date_ = Today(); - if (!is_date_in_fiscalyear($date_)) - $date_ = end_fiscalyear(); - + if (!is_date_in_fiscalyear($date_)) + $date_ = end_fiscalyear(); + if ($qoh > 0) { $new_cost = $material_cost + $labour_cost + $overhead_cost; $value_of_change = round2($qoh * ($new_cost - $last_cost), user_price_dec()); - + if ($value_of_change != 0) - { - $stock_gl_code = get_stock_gl_code($stock_id); - $update_no = get_next_trans_no(ST_COSTUPDATE); - $memo_ = "Cost was " . $last_cost . " changed to " . $new_cost . " x quantity on hand of $qoh"; - add_gl_trans_std_cost(ST_COSTUPDATE, $update_no, $date_, $stock_gl_code["adjustment_account"], - $stock_gl_code["dimension_id"], $stock_gl_code["dimension2_id"], $memo_, (-$value_of_change)); - - add_gl_trans_std_cost(ST_COSTUPDATE, $update_no, $date_, $stock_gl_code["inventory_account"], 0, 0, $memo_, - $value_of_change); - } + { + global $Refs; + $stock_gl_code = get_stock_gl_code($stock_id); + + $cart = new items_cart(ST_COSTUPDATE); + $cart->tran_date = $cart->doc_date = $cart->event_date = $date_; + if (!is_date_in_fiscalyear($cart->tran_date)) + $cart->tran_date = end_fiscalyear(); + $cart->reference = $Refs->get_next(ST_COSTUPDATE, $refline, $cart->tran_date, $date_); + + if (empty($memo_)) + $cart->memo_ = sprintf(_("Cost was %s changed to %s x quantity on hand of %s"), + number_format2($last_cost, 2), number_format2($new_cost), $qoh); + else + $cart->memo_ = $memo_; + + $cart->add_gl_item($stock_gl_code["adjustment_account"], + $stock_gl_code["dimension_id"], $stock_gl_code["dimension2_id"], -$value_of_change); + $cart->add_gl_item($stock_gl_code["inventory_account"], 0, 0, $value_of_change); + + write_journal_entries($cart); + change_stock_moves_std_cost($stock_id, $date_, $new_cost - $last_cost); + } } - add_audit_trail(ST_COSTUPDATE, $update_no, $date_); + if ($update_no != -1) + add_audit_trail(ST_COSTUPDATE, $update_no, $date_); commit_transaction(); return $update_no; @@ -74,4 +83,10 @@ function stock_cost_update($stock_id, $material_cost, $labour_cost, $overhead_co //------------------------------------------------------------------------------------------------------------- -?> \ No newline at end of file +function change_stock_moves_std_cost($stock_id, $date, $diff_cost) +{ + $date = date2sql($date); + $sql = "UPDATE ".TB_PREF."stock_moves SET standard_cost = standard_cost + ".db_escape($diff_cost). " WHERE stock_id = " + .db_escape($stock_id)." AND tran_date <= '$date' AND qty <> 0 AND standard_cost > 0.001 AND type <> ".ST_LOCTRANSFER; + db_query($sql,"The stock moves cost details for the inventory item could not be updated"); +}