function add_stock_adjustment($items, $location, $date_, $type, $increase, $reference, $memo_)
{
- global $Refs;
+ global $loc_notification, $path_to_root, $Refs;
begin_transaction();
+ $args = func_get_args();
+ $args = (object)array_combine(array('items', 'location', 'date_', 'type', 'increase',
+ 'reference', 'memo_'), $args);
+ $args->trans_no = 0;
+ hook_db_prewrite($args, ST_INVADJUST);
$adj_id = get_next_trans_no(ST_INVADJUST);
+ if ($loc_notification == 1 && !$increase)
+ {
+ include_once($path_to_root . "/inventory/includes/inventory_db.inc");
+ $st_ids = array();
+ $st_names = array();
+ $st_num = array();
+ $st_reorder = array();
+ }
foreach ($items as $line_item)
{
+ if ($loc_notification == 1 && !$increase)
+ $loc = calculate_reorder_level($location, $line_item, $st_ids, $st_names, $st_num, $st_reorder);
+
if (!$increase)
$line_item->quantity = -$line_item->quantity;
$Refs->save(ST_INVADJUST, $adj_id, $reference);
add_audit_trail(ST_INVADJUST, $adj_id, $date_);
+ $args->trans_no = $adj_id;
+ hook_db_postwrite($args, ST_INVADJUST);
commit_transaction();
+ if ($loc_notification == 1 && !$increase && count($st_ids) > 0)
+ send_reorder_email($loc, $st_ids, $st_names, $st_num, $st_reorder);
return $adj_id;
}
function void_stock_adjustment($type_no)
{
+ hook_db_prevoid(ST_INVADJUST, $type_no);
void_gl_trans(ST_INVADJUST, $type_no);
void_stock_move(ST_INVADJUST, $type_no);
}
display_db_error("Cannot do inventory adjustment for Service item : $stock_id", "");
}
+ /* Logic shifted to function update_average_material_cost
+ //Chaitanya : If negative adjustment result in negative or zero inventory
+ //then difference should be adjusted
+ $qoh = get_qoh_on_date($stock_id);
+ if ($qoh + $quantity <= 0 && $qoh > 0) //Positive inventory turning zero/negative
+ {
+ global $Refs;
+
+ $id = get_next_trans_no(ST_JOURNAL);
+ $ref = $Refs->get_next(ST_JOURNAL);
+ $diff = get_standard_cost($stock_id) - $standard_cost;
+
+ if ($diff !=0)
+ {
+ $stock_gl_code = get_stock_gl_code($stock_id);
+ $memo = _("For zero inventory of ").$stock_id." INVADJ REF: ".$reference;
+ //Reverse the inventory effect if $qoh <=0
+ add_gl_trans_std_cost(ST_JOURNAL, $id, $date_,
+ $stock_gl_code["inventory_account"],
+ $stock_gl_code['dimension_id'], $stock_gl_code['dimension2_id'], $memo,
+ -$qoh * $diff);
+ //GL Posting to inventory adjustment account
+ add_gl_trans_std_cost(ST_JOURNAL, $id, $date_,
+ $stock_gl_code["adjustment_account"],
+ $stock_gl_code['dimension_id'], $stock_gl_code['dimension2_id'], $memo,
+ $qoh * $diff);
+
+ add_audit_trail(ST_JOURNAL, $id, $date_);
+ add_comments(ST_JOURNAL, $id, $date_, $memo);
+ $Refs->save(ST_JOURNAL, $id, $ref);
+ }
+ }*/
+
update_average_material_cost(null, $stock_id, $standard_cost, $quantity, $date_);
add_stock_move(ST_INVADJUST, $stock_id, $adj_id, $location,