{
if ($use_popup_windows)
$preview_str = "<a target='_blank' href='$path_to_root/purchasing/view/$viewer?trans_no=$trans_no' onclick=\"javascript:openWindow(this.href,this.target); return false;\" >$label</a>";
- else
+ else
$preview_str = "<a target='_blank' href='$path_to_root/purchasing/view/$viewer?trans_no=$trans_no'>$label</a>";
- }
+ }
else
$preview_str = $label;
$viewer = "view_sales_order.php";
else
return null;
-
+
if(!is_array($trans_no)) $trans_no = array($trans_no);
$lbl = $label;
$preview_str .= "<a target='_blank' href='$path_to_root/sales/view/$viewer?trans_no=$trans' onclick=\"javascript:openWindow(this.href,this.target); return false;\" >$lbl</a>";
else
$preview_str .= "<a target='_blank' href='$path_to_root/sales/view/$viewer?trans_no=$trans'>$lbl</a>";
- }
+ }
else
$preview_str .= $lbl;
}
-
+
return $preview_str;
}
{
if ($use_popup_windows)
$preview_str = "<a target='_blank' href='$path_to_root/gl/view/$viewer?trans_no=$trans_no' onclick=\"javascript:openWindow(this.href,this.target); return false;\" >$label</a>";
- else
+ else
$preview_str = "<a target='_blank' href='$path_to_root/gl/view/$viewer?trans_no=$trans_no'>$label</a>";
- }
+ }
else
$preview_str = $label;
{
if ($use_popup_windows)
$preview_str = "<a target='_blank' href='$path_to_root/inventory/view/$viewer?trans_no=$trans_no' onclick=\"javascript:openWindow(this.href,this.target); return false;\" >$label</a>";
- else
+ else
$preview_str = "<a target='_blank' href='$path_to_root/inventory/view/$viewer?trans_no=$trans_no'>$label</a>";
- }
+ }
else
$preview_str = $label;
{
if ($use_popup_windows)
$preview_str = "<a target='_blank' href='$path_to_root/manufacturing/view/$viewer?trans_no=$trans_no' onclick=\"javascript:openWindow(this.href,this.target); return false;\" >$label</a>";
- else
+ else
$preview_str = "<a target='_blank' href='$path_to_root/manufacturing/view/$viewer?trans_no=$trans_no'>$label</a>";
}
else
{
if ($use_popup_windows)
$preview_str = "<a target='_blank' href='$path_to_root/dimensions/view/$viewer?trans_no=$trans_no' onclick=\"javascript:openWindow(this.href,this.target); return false;\" >$label</a>";
- else
+ else
$preview_str = "<a target='_blank' href='$path_to_root/dimensions/view/$viewer?trans_no=$trans_no'>$label</a>";
- }
+ }
else
$preview_str = $label;
{
if ($from_currency != $to_currency)
{
- if ($buttons && isset($_POST['get_rate']))
+ if ($buttons && isset($_POST['get_rate']))
{
$comp_currency = get_company_currency();
if ($from_currency == $comp_currency)
$rate = get_ecb_rate($currency);
if (get_date_exchange_rate($currency, $date_))
update_exchange_rate($currency, $date_, $rate, $rate);
- else
+ else
add_exchange_rate($currency, $date_, $rate, $rate);
if ($from_currency == $comp_currency)
$rate = 1 / $rate;
- }
+ }
else
$rate = get_exchange_rate_from_to($to_currency, $from_currency, $date_);
$rate = number_format2($rate, user_exrate_dec());
function comments_display_row($type, $id)
{
$comments = get_comments($type, $id);
- if ($comments and db_num_rows($comments))
+ if ($comments and db_num_rows($comments))
{
echo "<tr><td colspan=15>";
- while ($comment = db_fetch($comments))
+ while ($comment = db_fetch($comments))
{
echo $comment["memo_"] . "<br>";
}
{
$str_return = "";
$result = get_comments($type, $type_no);
- while ($comment = db_fetch($result))
+ while ($comment = db_fetch($result))
{
if (strlen($str_return))
$str_return = $str_return . " \n";
else
//hyperlink_params_separate($path_to_root . "/inventory/inquiry/stock_status.php", $stock_id, "stock_id=$stock_id");
$preview_str = "<a target='_blank' href='$path_to_root/inventory/inquiry/stock_status.php?stock_id=$stock_id' onclick=\"javascript:openWindow(this.href,this.target); return false;\" >$stock_id</a>";
- echo $preview_str;
+ echo $preview_str;
}
function view_stock_status_cell($stock_id, $description=null)
{
amount_cell($value);
label_cell("");
- }
+ }
elseif ($value < 0)
{
label_cell("");
amount_cell(abs($value));
- }
+ }
else
{
//label_cell("");
function display_customer_trans_tax_details($tax_items, $columns)
{
- while ($tax_item = db_fetch($tax_items))
+ while ($tax_item = db_fetch($tax_items))
{
$tax = number_format2($tax_item['amount'],user_price_dec());
if ($tax_item['included_in_price'])
function display_supp_trans_tax_details($tax_items, $columns)
{
- while ($tax_item = db_fetch($tax_items))
+ while ($tax_item = db_fetch($tax_items))
{
$tax = number_format2(abs($tax_item['amount']),user_price_dec());
if ($tax_item['included_in_price'])
//--------------------------------------------------------------------------------------
-function display_edit_tax_items($taxes, $columns)
+function display_edit_tax_items($taxes, $columns, $tax_included, $leftspan=0)
{
$total = 0;
- foreach ($taxes as $taxitem)
+ foreach ($taxes as $taxitem)
{
- if ($taxitem['included_in_price'])
+ if ($tax_included)
{
label_row(_("Included") . " " . $taxitem['tax_type_name'] . " (" . $taxitem['rate'] . "%) " .
- _("Amount:") . " " . number_format2($taxitem['Value'],user_price_dec()), "", "colspan=$columns align=right", "align=right");
- }
- else
+ _("Amount:") . " " . number_format2($taxitem['Value'],user_price_dec()), "", "colspan=$columns align=right", "align=right",$leftspan);
+ }
+ else
{
label_row($taxitem['tax_type_name'] . " (" . $taxitem['rate'] . "%)",
- number_format2($taxitem['Value'],user_price_dec()), "colspan=$columns align=right", "align=right");
+ number_format2($taxitem['Value'],user_price_dec()), "colspan=$columns align=right", "align=right",$leftspan);
$total += $taxitem['Value'];
}
}
display_heading2(_("Allocations"));
start_table("$table_style width=80%");
-
+
$th = array( _("Type"), _("Number"), _("Date"), _("Total Amount"),
_("Left to Allocate"), _("This Allocation"));
table_header($th);
function display_allocations_from($person_type, $person_id, $type, $type_no, $total)
{
- switch ($person_type)
+ switch ($person_type)
{
case payment_person_types::customer() :
$alloc_result = get_allocatable_to_cust_transactions($person_id, $type_no, $type);
. "{\n"
. " if (window.history.length <= 1)\n"
. " window.close();\n"
- . " else\n"
- . " window.history.go(-1);\n"
+ . " else\n"
+ . " window.history.go(-1);\n"
. "}\n"
. "-->\n"
. "</script>\n";
return $js;
-}
+}
function get_js_open_window($width, $height)
{
. "}\n"
. "-->\n"
. "</script>\n";
- return $js;
+ return $js;
}
function get_js_set_focus($name)
. "}\n"
. "-->\n"
. "</script>\n";
- return $js;
+ return $js;
}
function get_js_png_fix()
{
$js = "<script type=\"text/javascript\">\n"
- . "function fixPNG(myImage)\n"
+ . "function fixPNG(myImage)\n"
. "{\n"
. " var arVersion = navigator.appVersion.split(\"MSIE\")\n"
. " var version = parseFloat(arVersion[1])\n"
- . " if ((version >= 5.5) && (version < 7) && (document.body.filters))\n"
+ . " if ((version >= 5.5) && (version < 7) && (document.body.filters))\n"
. " {\n"
. " var imgID = (myImage.id) ? \"id='\" + myImage.id + \"' \" : \"\"\n"
. " var imgClass = (myImage.className) ? \"class='\" + myImage.className + \"' \" : \"\"\n"
- . " var imgTitle = (myImage.title) ?\n"
+ . " var imgTitle = (myImage.title) ?\n"
. " \"title='\" + myImage.title + \"' \" : \"title='\" + myImage.alt + \"' \"\n"
. " var imgStyle = \"display:inline-block;\" + myImage.style.cssText\n"
. " var strNewHTML = \"<span \" + imgID + imgClass + imgTitle\n"
- . " + \" style=\\\"\" + \"width:\" + myImage.width\n"
- . " + \"px; height:\" + myImage.height\n"
+ . " + \" style=\\\"\" + \"width:\" + myImage.width\n"
+ . " + \"px; height:\" + myImage.height\n"
. " + \"px;\" + imgStyle + \";\"\n"
. " + \"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader\"\n"
. " + \"(src=\'\" + myImage.src + \"\', sizingMethod='scale');\\\"></span>\"\n"
- . " myImage.outerHTML = strNewHTML\n"
+ . " myImage.outerHTML = strNewHTML\n"
. " }\n"
. "}\n"
. "</script>\n";
return $js;
-}
+}
function get_js_date_picker()
{
epbase = year - ((year >= 0) ? 474 : 473);
epyear = 474 + mod(epbase, 2820);
t = day + ((month <= 7) ? ((month - 1) * 31) : (((month - 1) * 30) + 6)) +
- Math.floor(((epyear * 682) - 110) / 2816) + (epyear - 1) * 365 +
+ Math.floor(((epyear * 682) - 110) / 2816) + (epyear - 1) * 365 +
Math.floor(epbase / 2820) * 1029983 + (1948320.5 - 1);
";
else if ($date_system == 2)
$js .= "
- var t;
- t = Math.floor((11 * year + 3) / 30) + 354 * year + 30 * month -
+ var t;
+ t = Math.floor((11 * year + 3) / 30) + 354 * year + 30 * month -
Math.floor((month - 1) / 2) + day + 1948440 - 385;
";
$js .= "
- return jwday(t);
+ return jwday(t);
";
}
else
$js .= "
var dateString = month+'$sep'+day+'$sep'+year;
";
- else if ($how == 1)
+ else if ($how == 1)
$js .= "
var dateString = day+'$sep'+month+'$sep'+year;
";
}
function getCurrentMonth() {
return new Date().getMonth() + 1;
- }
+ }
function getCurrentDay() {
return new Date().getDate();
}
-->
</script>
";
- return $js;
+ return $js;
}
-
+
+function get_js_allocate() {
+ return "<script>function allocate_all(doc) {
+ var alloc = 1*document.getElementsByName('left_to_allocate')[0].value;
+ var amount = 1*document.getElementsByName('amount'+doc)[0].value;
+ var unallocated = 1*document.getElementsByName('un_allocated'+doc)[0].value;
+ if(unallocated<amount) amount = unallocated;
+ if( (unallocated-amount)<=alloc){
+ alloc-=unallocated-amount;
+ amount=unallocated;
+ }else{
+ amount=amount+alloc;
+ alloc=0;
+ }
+ document.getElementsByName('amount'+doc)[0].value = amount;
+ document.getElementsByName('left_to_allocate')[0].value = alloc;
+ }
+ function allocate_none(doc) {
+ amount = document.getElementsByName('amount'+doc)[0];
+ document.getElementsByName('left_to_allocate')[0].value +=
+ amount.value;
+ amount.value=0; }
+ </script>";
+}
+
function alert($msg)
{
echo "\n<script type=\"text/javascript\">\n"
. "alert('$msg');\n"
. "-->\n"
. "</script>\n";
-}
+}
-if (!function_exists('_vd'))
+if (!function_exists('_vd'))
{
- function _vd($mixed, $title = '', $exit = false)
+ function _vd($mixed, $title = '', $exit = false)
{
// Only the site admin is able to proceed here.
echo (!empty($title) ? ($title .':') : '') .'<pre>';
var_dump($mixed);
echo "</pre>\n";
- if ($exit)
+ if ($exit)
exit;
}
}
<?php
-function add_tax_group($name, $tax_shipping, $taxes, $rates, $included)
+function clear_shipping_tax_group() {
+ $sql = "UPDATE ".TB_PREF."tax_groups SET tax_shipping=0 WHERE 1";
+ db_query($sql, "could not update tax_shipping fields");
+}
+
+function add_tax_group($name, $tax_shipping, $taxes, $rates)
{
begin_transaction();
+
+ if($tax_shipping) // only one tax group for shipping
+ clear_shipping_tax_group();
- $sql = "INSERT INTO ".TB_PREF."tax_groups (name, tax_shipping) VALUES ('$name', $tax_shipping)";
+ $sql = "INSERT INTO ".TB_PREF."tax_groups (name, tax_shipping) VALUES ('$name', $tax_shipping)";
db_query($sql, "could not add tax group");
$id = db_insert_id();
- add_tax_group_items($id, $taxes, $rates, $included);
+ add_tax_group_items($id, $taxes, $rates);
commit_transaction();
}
-function update_tax_group($id, $name, $tax_shipping, $taxes, $rates, $included)
+function update_tax_group($id, $name, $tax_shipping, $taxes, $rates)
{
begin_transaction();
-
- $sql = "UPDATE ".TB_PREF."tax_groups SET name='$name',tax_shipping=$tax_shipping WHERE id=$id";
+
+ if($tax_shipping) // only one tax group for shipping
+ clear_shipping_tax_group();
+ $sql = "UPDATE ".TB_PREF."tax_groups SET name='$name',tax_shipping=$tax_shipping WHERE id=$id";
db_query($sql, "could not update tax group");
delete_tax_group_items($id);
- add_tax_group_items($id, $taxes, $rates, $included);
+ add_tax_group_items($id, $taxes, $rates);
commit_transaction();
}
commit_transaction();
}
-function add_tax_group_items($id, $items, $rates, $included)
+function add_tax_group_items($id, $items, $rates)
{
for ($i=0; $i < count($items); $i++)
{
- $sql = "INSERT INTO ".TB_PREF."tax_group_items (tax_group_id, tax_type_id, rate, included_in_price)
- VALUES ($id, " . $items[$i] . ", " . $rates[$i] . ", " . $included[$i] .")";
+ $sql = "INSERT INTO ".TB_PREF."tax_group_items (tax_group_id, tax_type_id, rate)
+ VALUES ($id, " . $items[$i] . ", " . $rates[$i] .")";
db_query($sql, "could not add item tax group item");
}
}
$ret_tax_array[$index]['sales_gl_code'] = $tax_group_item['sales_gl_code'];
$ret_tax_array[$index]['purchasing_gl_code'] = $tax_group_item['purchasing_gl_code'];
$ret_tax_array[$index]['rate'] = $tax_group_item['rate'];
- $ret_tax_array[$index]['included_in_price'] = $tax_group_item['included_in_price'];
$ret_tax_array[$index]['Value'] = 0;
}
$sql = "SELECT ".TB_PREF."tax_group_items.*, ".TB_PREF."tax_types.name AS tax_type_name,
".TB_PREF."tax_types.sales_gl_code, ".TB_PREF."tax_types.purchasing_gl_code
FROM " .TB_PREF."tax_group_items, ".TB_PREF."tax_types, ".TB_PREF."tax_groups
- WHERE tax_groups.tax_shipping=1
- AND tax_groups.id=tax_group_id
- AND ".TB_PREF."tax_types.id=tax_type_id";
+ WHERE " .TB_PREF."tax_groups.tax_shipping=1
+ AND " .TB_PREF."tax_groups.id=tax_group_id
+ AND ".TB_PREF."tax_types.id=tax_type_id";
return db_query($sql, "could not get shipping tax group items");
}
$ret_tax_array[$index]['sales_gl_code'] = $tax_group_item['sales_gl_code'];
$ret_tax_array[$index]['purchasing_gl_code'] = $tax_group_item['purchasing_gl_code'];
$ret_tax_array[$index]['rate'] = $tax_group_item['rate'];
- $ret_tax_array[$index]['included_in_price'] = $tax_group_item['included_in_price'];
$ret_tax_array[$index]['Value'] = 0;
}
//---------------------------------------------------------------------------------
// returns the tax cost for a given item
-
-/*function get_tax_value_for_item($stock_id, $price, $tax_group)
+/*
+function get_tax_value_for_item($stock_id, $price, $tax_group)
{
// if price is zero, then can't be taxed
if ($price == 0)
}
return $price * ($tax_multiplier / 100);
-}*/
-
+}
+*/
//---------------------------------------------------------------------------------
// returns the price of a given item minus any included taxes
+// for item $stock_id with line price $price,
+// with applicable tax rates $tax_group_array or group id $tax_group
+//
-function get_tax_free_price_for_item($stock_id, $price, $tax_group, $tax_group_array=null)
+function get_tax_free_price_for_item($stock_id, $price, $tax_group, $tax_included, $tax_group_array=null)
{
// if price is zero, then can't be taxed !
if ($price == 0)
return 0;
+ if ($tax_included==0) return $price;
+
// if array already read, then make a copy and use that
if ($tax_group_array)
$ret_tax_array = $tax_group_array;
foreach ($tax_array as $taxitem)
{
- if ($taxitem["included_in_price"])
$tax_multiplier += $taxitem["rate"];
}
return $price / (1 + ($tax_multiplier / 100));
}
+//
+// Full price (incl. VAT) for item $stock_id with line price $price,
+// with tax rates $tax_group_array or applicable group $tax_group
+//
+function get_full_price_for_item($stock_id, $price, $tax_group, $tax_included, $tax_group_array=null)
+{
+ // if price is zero, then can't be taxed !
+ if ($price == 0)
+ return 0;
-//---------------------------------------------------------------------------------
+ if ($tax_included==1) return $price;
+
+ // if array already read, then make a copy and use that
+ if ($tax_group_array)
+ $ret_tax_array = $tax_group_array;
+ else
+ $ret_tax_array = get_tax_group_items_as_array($tax_group);
+
+ //print_r($ret_tax_array);
+
+ $tax_array = get_taxes_for_item($stock_id, $ret_tax_array);
+ // if no exemptions or taxgroup is empty, then no included/excluded taxes
+ if ($tax_array == null)
+ return $price;
+
+ $tax_multiplier = 0;
+
+ // loop for all items
+ foreach ($tax_array as $taxitem)
+ {
+ $tax_multiplier += $taxitem["rate"];
+ }
+
+ return $price * (1 + ($tax_multiplier / 100));
+}
+//---------------------------------------------------------------------------------
// return an array of (tax_type_id, tax_type_name, sales_gl_code, purchasing_gl_code, rate)
function get_taxes_for_item($stock_id, $tax_group_items_array)
return $ret_tax_array;
}
-
//-----------------------------------------------------------------------------------
-
// return an array of (tax_type_id, tax_type_name, sales_gl_code, purchasing_gl_code, rate, included_in_price, Value)
-function get_tax_for_items($items, $prices, $shipping_cost, $tax_group)
+function get_tax_for_items($items, $prices, $shipping_cost, $tax_group, $tax_included=null, $tax_items_array=null)
{
// first create and set an array with all the tax types of the tax group
- $ret_tax_array = get_tax_group_items_as_array($tax_group);
+ if($tax_items_array!=null)
+ $ret_tax_array = $tax_items_array;
+ else
+ $ret_tax_array = get_tax_group_items_as_array($tax_group);
// loop for all items
for ($i = 0; $i < count($items); $i++)
foreach ($item_taxes as $item_tax)
{
$index = $item_tax['tax_type_id'];
- $ret_tax_array[$index]['Value'] += $prices[$i] * $item_tax['rate'] / 100;
+ if($tax_included==1)
+ $ret_tax_array[$index]['Value'] += $prices[$i] * $item_tax['rate']
+ / ($item_tax['rate'] + 100);
+ else
+ $ret_tax_array[$index]['Value'] += $prices[$i] * $item_tax['rate'] / 100;
}
}
}
foreach ($item_taxes as $item_tax)
{
$index = $item_tax['tax_type_id'];
- if(!isset($ret_tax_array[$index]))
- $ret_tax_array[$index] = $item_tax;
- $ret_tax_array[$index]['Value'] += $shipping_cost * $item_tax['rate'] / 100;
+ if(isset($ret_tax_array[$index])) {
+ if($tax_included==1)
+ $ret_tax_array[$index]['Value'] += $shipping_cost * $item_tax['rate']
+ / ($item_tax['rate'] + 100);
+ else
+ $ret_tax_array[$index]['Value'] += $shipping_cost * $item_tax['rate'] / 100;
+ }
}
}
}
// create an array of the taxes and array of rates
$taxes = array();
$rates = array();
- $included = array();
for ($i = 0; $i < 5; $i++)
{
{
$taxes[] = $_POST['tax_type_id' . $i];
$rates[] = $_POST['rate' . $i];
- if (isset($_POST['included' . $i]))
- $included[] = 1;
- else
- $included[] = 0;
}
}
{
update_tax_group($selected_id, $_POST['name'], $_POST['tax_shipping'], $taxes,
- $rates, $included);
+ $rates);
}
else
{
- add_tax_group($_POST['name'], $_POST['tax_shipping'], $taxes, $rates, $included);
+ add_tax_group($_POST['name'], $_POST['tax_shipping'], $taxes, $rates);
}
meta_forward($_SERVER['PHP_SELF']);
{
$_POST['tax_type_id' . $i] = $tax_item["tax_type_id"];
$_POST['rate' . $i] = $tax_item["rate"];
- $_POST['included' . $i] = $tax_item["included_in_price"];
$i ++;
}
}
display_note(_("Select the taxes that are included in this group."), 1);
start_table($table_style2);
-$th = array(_("Tax"), _("Default Rate (%)"), _("Rate (%)"), _("Include in Price"));
+$th = array(_("Tax"), _("Default Rate (%)"), _("Rate (%)"));
table_header($th);
for ($i = 0; $i < 5; $i++)
{
start_row();
if (!isset($_POST['tax_type_id' . $i]))
$_POST['tax_type_id' . $i] = 0;
- if (!isset($_POST['included' . $i]))
- $_POST['included' . $i] = 0;
tax_types_list_cells(null, 'tax_type_id' . $i, $_POST['tax_type_id' . $i], true, _("None"), true);
if ($_POST['tax_type_id' . $i] != 0 && $_POST['tax_type_id' . $i] != reserved_words::get_all_numeric())
if (!isset($_POST['rate' . $i]) || $_POST['rate' . $i] == "")
$_POST['rate' . $i] = $default_rate;
text_cells(null, 'rate' . $i, $_POST['rate' . $i], 10, 10);
- check_cells(null, 'included' . $i, $_POST['included' . $i]);
}
end_row();
}