return add_gl_trans($type, $type_no, $date_, $account, $dimension, $dimension2, "", $amount,
get_customer_currency($customer_id),
- payment_person_types::customer(), $customer_id, $err_msg, $rate);
+ PT_CUSTOMER, $customer_id, $err_msg, $rate);
}
//----------------------------------------------------------------------------------------
$factor = $myrow['factor'];
}
- $sql = "SELECT price
- FROM ".TB_PREF."prices
- WHERE stock_id = '" . $stock_id . "' "
- ." AND sales_type_id = " . $sales_type_id
- ." AND curr_abrev = '$currency'";
-
- $msg = "There was a problem retrieving the pricing information for the part $stock_id for customer";
- $result = db_query($sql, $msg);
-
$add_pct = get_company_pref('add_pct');
- $round_to = get_company_pref('round_to');
- $home_curr = get_company_currency();
-
- if (db_num_rows($result) != 0)
- {
- $myrow = db_fetch_row($result);
- return $myrow[0];
- }
- elseif ($add_pct != -1)
- {
- $price = get_calculated_price($stock_id, $add_pct);
- if ($currency == $home_curr)
- return round_to_nearest($price, $round_to);
- }
- if ($factor == 0) return false; // auto price calculations off
-
$base_id = get_base_sales_type();
- if ($base_id <= 0) return 0; // auto price calculations off
-
- // get all prices which we can use to guess the price.
- // alternative is make up to 2 additional sql queries
+ $home_curr = get_company_currency();
+ // AND (sales_type_id = $sales_type_id OR sales_type_id = $base_id)
$sql = "SELECT price, curr_abrev, sales_type_id
FROM ".TB_PREF."prices
- WHERE stock_id = '" . $stock_id . "' "
- ." AND (sales_type_id = " . $sales_type_id
- ." OR sales_type_id = " . $base_id.")"
- ." AND (curr_abrev = '$currency'"
- ." OR curr_abrev = '$home_curr')";
-
- $result = db_query($sql, $msg);
+ WHERE stock_id = '$stock_id'
+ AND (curr_abrev = '$currency' OR curr_abrev = '$home_curr')";
+ $result = db_query($sql, "There was a problem retrieving the pricing information for the part $stock_id for customer");
+ $num_rows = db_num_rows($result);
+ $rate = round2(get_exchange_rate_from_home_currency($currency, $date),
+ user_exrate_dec());
+ $round_to = get_company_pref('round_to');
$prices = array();
while($myrow = db_fetch($result))
{
$prices[$myrow['sales_type_id']][$myrow['curr_abrev']] = $myrow['price'];
}
- $rate = round(get_exchange_rate_from_home_currency($currency, $date),
- user_exrate_dec());
- if (db_num_rows($result) == 0 && $add_pct != -1)
- {
- if ($factor != 0)
- $price = $price * $factor / $rate;
- else
- $price /= $rate;
- return round_to_nearest($price, $round_to);
- }
-
$price = false;
if (isset($prices[$sales_type_id][$home_curr]))
{
{
$price = $prices[$base_id][$home_curr] * $factor / $rate;
}
+ elseif ($num_rows == 0 && $add_pct != -1)
+ {
+ $price = get_calculated_price($stock_id, $add_pct);
+ if ($currency != $home_curr)
+ $price /= $rate;
+ if ($factor != 0)
+ $price *= $factor;
+ }
if ($price === false)
- return false;
- else if ($round_to != 1)
+ return 0;
+ elseif ($round_to != 1)
return round_to_nearest($price, $round_to);
else
return round2($price, user_price_dec());
db_query($sql, 'Child document link cannot be updated');
}
- if ($cart->trans_type != 10)
+ if ($cart->trans_type != ST_SALESINVOICE)
return 0;
// the rest is batch invoice specific
//--------------------------------------------------------------------------------------------------
function get_parent_type($type)
{
- $parent_types = array( 11=>10, 10=>13, 13=>30 );
+ $parent_types = array( ST_CUSTCREDIT => ST_SALESINVOICE, ST_SALESINVOICE => ST_CUSTDELIVERY, ST_CUSTDELIVERY => ST_SALESORDER );
return isset($parent_types[$type]) ? $parent_types[$type] : 0;
}
if ($doc_type==0)
return false;
else {
- if ($doc_type==30)
+ if ($doc_type==ST_SALESORDER)
$sql = "UPDATE ".TB_PREF."sales_order_details
SET qty_sent = qty_sent + $qty_dispatched
WHERE id=$line_id";