+ if (!is_inventory_item($entered_grn->item_code))
+ $total += add_gl_trans_supplier($trans_type, $invoice_id, $date_, $iv_act,
+ $dim, $dim2, $entered_grn->this_quantity_inv * $line_taxfree, $supp_trans->supplier_id);
+ else
+ {
+ $currency = get_supplier_currency($supp_trans->supplier_id);
+ $ex_rate = get_exchange_rate_from_home_currency($currency, $old_date);
+ $total += add_gl_trans_supplier($trans_type, $invoice_id, $date_, $iv_act,
+ $dim, $dim2, $entered_grn->this_quantity_inv * $old_price, $supp_trans->supplier_id, "", $ex_rate);
+ $diff = get_diff_in_home_currency($supp_trans->supplier_id, $old_date, $date_, $old_price,
+ $line_taxfree);
+
+ // always return due to change in currency.
+ /*$mat_cost = update_average_material_cost(null, $entered_grn->item_code,
+ $diff, $entered_grn->this_quantity_inv, $old_date, true); */
+ $mat_cost = update_average_material_cost(null, $entered_grn->item_code,
+ $diff, $entered_grn->this_quantity_inv, null, true);
+
+ //Add GL transaction for GRN Provision in case of difference
+ if (($diff * $entered_grn->this_quantity_inv) != 0 )
+ {
+ $diff_amt = $diff * $entered_grn->this_quantity_inv;
+ $total += add_gl_trans($trans_type, $invoice_id, $date_, $stock_gl_code["inventory_account"],
+ $dim, $dim2, 'GRN Provision', $diff_amt, null, null, null,
+ "The general ledger transaction could not be added for the GRN of the inventory item");
+
+ //Chaitanya
+ //If QOH is 0 or negative then update_average_material_cost will be skipped
+ //Thus difference in PO and Supp Invoice should be handled separately
+
+ $qoh = get_qoh_on_date($entered_grn->item_code);
+ if ($qoh <= 0)
+ {
+ global $Refs;
+
+ //Chaitanya : Post a journal entry
+ $id = get_next_trans_no(ST_JOURNAL);
+ $ref = $Refs->get_next(ST_JOURNAL);
+ $stock_id = $entered_grn->item_code;
+ $stock_gl_code = get_stock_gl_code($stock_id);
+ $memo = _("Supplier invoice adjustment for zero inventory of ").$stock_id." "._("Invoice")." ".$supp_trans->reference;
+ //Reverse the inventory effect if $qoh <=0
+ add_gl_trans_std_cost(ST_JOURNAL, $id, $date_,
+ $stock_gl_code["inventory_account"],
+ $dim, $dim2, $memo, -$entered_grn->this_quantity_inv * $diff);
+ //GL Posting to inventory adjustment account
+ add_gl_trans_std_cost(ST_JOURNAL, $id, $date_,
+ $stock_gl_code["adjustment_account"],
+ $dim, $dim2, $memo, $entered_grn->this_quantity_inv * $diff);
+
+ add_audit_trail(ST_JOURNAL, $id, $date_);
+ add_comments(ST_JOURNAL, $id, $date_, $memo);
+ $Refs->save(ST_JOURNAL, $id, $ref);
+ }
+
+ /*$qoh = get_qoh_on_date($entered_grn->item_code);
+ if ($qoh <= 0)
+ {
+ $memo = "Diff. in cost: ".$diff;
+ //Reverse the inventory effect if $qoh <=0
+ add_gl_trans_supplier($trans_type, $invoice_id, $date_,
+ $stock_gl_code["inventory_account"],
+ $dim, $dim2, -$entered_grn->this_quantity_inv * $diff, $supp_trans->supplier_id, "", null, $memo);
+ //GL Posting to inventory adjustment account
+ add_gl_trans_supplier($trans_type, $invoice_id, $date_,
+ $stock_gl_code["adjustment_account"],
+ $dim, $dim2, $entered_grn->this_quantity_inv * $diff, $supp_trans->supplier_id, "", null, $memo);
+ }*/
+
+ //add_gl_trans($trans_type, $invoice_id, $date_, $stock_gl_code["cogs_account"],
+ // 0, 0, 'GRN Provision', -$diff_amt, null, null, null,
+ // "The general ledger transaction could not be added for the GRN of the inventory item");
+ }
+ }