var $tax_info; // tax info for the GL transaction
+ var $fixed_asset;
+
function items_cart($type, $trans_no=0)
{
$this->trans_type = $type;
$low_stock = array();
- if (!$SysPrefs->allow_negative_stock())
+ if (!$SysPrefs->allow_negative_stock() || is_fixed_asset($line_item->mb_flag))
{
foreach ($this->line_items as $line_no => $line_item)
- if (has_stock_holding($line_item->mb_flag))
+ if (has_stock_holding($line_item->mb_flag) || is_fixed_asset($line_item->mb_flag))
{
$quantity = $line_item->quantity;
if ($reverse)
// ----------- GL item functions
- function add_gl_item($code_id, $dimension_id, $dimension2_id, $amount, $memo='', $act_descr=null, $person_id=null)
+ function add_gl_item($code_id, $dimension_id, $dimension2_id, $amount, $memo='', $act_descr=null, $person_id=null, $date=null)
{
if (isset($code_id) && $code_id != "" && isset($amount) && isset($dimension_id) &&
isset($dimension2_id))
{
- $this->gl_items[] = new gl_item($code_id, $dimension_id, $dimension2_id, $amount, $memo, $act_descr, $person_id);
+ $this->gl_items[] = new gl_item($code_id, $dimension_id, $dimension2_id, $amount, $memo, $act_descr, $person_id, $date);
return true;
}
else
$total_gl = 0;
foreach($this->gl_items as $gl)
{
- $total_gl += add_gl_trans($this->trans_type, $this->order_id, $this->tran_date, $gl->code_id, $gl->dimension_id, $gl->dimension2_id,
+ if (!isset($gl->date))
+ $gl->date = $this->tran_date;
+
+ $total_gl += add_gl_trans($this->trans_type, $this->order_id, $gl->date, $gl->code_id, $gl->dimension_id, $gl->dimension2_id,
$gl->reference, $gl->amount, $this->currency, $gl->person_type_id, $gl->person_id, "", $this->rate);
// post to first found bank account using given gl acount code.
// do not post exchange variations to AR/AP (journal in not customer/supplier currency)
if ($gl->person_type_id==PT_SUPPLIER && (get_supplier_currency($gl->person_id) == $this->currency || $this->currency != $home_currency))
$supp_trans[$gl->person_id] = @$supp_trans[$gl->person_id] + $gl->amount;
- else
- if ($gl->person_type_id==PT_CUSTOMER && (get_customer_currency(null, $gl->branch_id) == $this->currency || $this->currency != $home_currency))
+ elseif ($gl->person_type_id==PT_CUSTOMER && (get_customer_currency(null, $gl->branch_id) == $this->currency || $this->currency != $home_currency))
$cust_trans[$gl->branch_id] = @$cust_trans[$gl->branch_id] + $gl->amount;
}
foreach($cust_trans as $branch_id => $amount)
if (floatcmp($amount, 0))
write_cust_journal($this->trans_type, $this->order_id, $branch_id, $this->tran_date,
- $this->reference, -$amount, $this->rate);
+ $this->reference, $amount, $this->rate);
// update AP
foreach($supp_trans as $supp_id => $amount)
if (floatcmp($amount, 0))
$this->item_description = $description;
if ($standard_cost == null)
- $this->standard_cost = $item_row["actual_cost"];
+ $this->standard_cost = $item_row["purchase_cost"];
else
$this->standard_cost = $standard_cost;
var $person_type_id;
var $person_name;
var $branch_id;
+ var $date;
function gl_item($code_id=null, $dimension_id=0, $dimension2_id=0, $amount=0, $memo='',
- $act_descr=null, $person_id=null)
+ $act_descr=null, $person_id=null, $date=null)
{
//echo "adding $index, $code_id, $dimension_id, $amount, $reference<br>";
$this->dimension2_id = $dimension2_id;
$this->amount = round($amount, 2);
$this->reference = $memo;
+ $this->date = $date;
}
}