<?php
include_once($path_to_root . "/admin/db/voiding_db.inc");
+include_once($path_to_root . "/includes/types.inc");
//--------------------------------------------------------------------------------------
function get_supplier_trans_view_str($type, $trans_no, $label="")
{
- global $path_to_root, $use_popup_windows;
+ global $path_to_root;
$viewer = "";
if ($type == systypes::po())
if ($viewer != "")
{
- 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
- $preview_str = "<a target='_blank' href='$path_to_root/purchasing/view/$viewer?trans_no=$trans_no'>$label</a>";
+ $pars = access_string($label);
+ $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;\"$pars[1]>$pars[0]</a>";
}
else
$preview_str = $label;
function get_gl_view_str($type, $trans_no, $label="", $force=false)
{
- global $path_to_root, $use_popup_windows;
+ global $path_to_root;
if (!$force && !user_show_gl_info())
return "";
if ($label == "")
$label = _("GL");
- if ($use_popup_windows)
- $gl_view = "<a target='_blank' href='$path_to_root/gl/view/gl_trans_view.php?type_id=$type&trans_no=$trans_no' onclick=\"javascript:openWindow(this.href,this.target); return false;\" >$label</a>";
- else
- $gl_view = "<a target='_blank' href='$path_to_root/gl/view/gl_trans_view.php?type_id=$type&trans_no=$trans_no'>$label</a>";
+ $pars = access_string($label);
+ $gl_view = "<a target='_blank' href='$path_to_root/gl/view/gl_trans_view.php?type_id=$type&trans_no=$trans_no' onclick=\"javascript:openWindow(this.href,this.target); return false;\"$pars[1]>$pars[0]</a>";
return $gl_view;
}
function get_customer_trans_view_str($type, $trans_no, $label="")
{
- global $path_to_root, $use_popup_windows;
+ global $path_to_root;
$viewer = "";
if ($type == 10)
$lbl = $label;
$preview_str = '';
+
foreach($trans_no as $trans) {
if ($label == "")
$lbl = $trans;
if ($viewer != "")
{
- if ($use_popup_windows)
- $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>";
+ $pars = access_string($lbl);
+ $preview_str .= "<a target='_blank' href='$path_to_root/sales/view/$viewer?trans_no=$trans' onclick=\"javascript:openWindow(this.href,this.target); return false;\" $pars[1]>$pars[0]</a>";
}
else
$preview_str .= $lbl;
function get_banking_trans_view_str($type, $trans_no, $label="")
{
- global $path_to_root, $use_popup_windows;
+ global $path_to_root;
$viewer = "";
if ($viewer != "")
{
- 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
- $preview_str = "<a target='_blank' href='$path_to_root/gl/view/$viewer?trans_no=$trans_no'>$label</a>";
+ $pars = access_string($label);
+ $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;\"$pars[1]>$pars[0]</a>";
}
else
$preview_str = $label;
function get_inventory_trans_view_str($type, $trans_no, $label="")
{
- global $path_to_root, $use_popup_windows;
+ global $path_to_root;
$viewer = "";
if ($viewer != "")
{
- 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
- $preview_str = "<a target='_blank' href='$path_to_root/inventory/view/$viewer?trans_no=$trans_no'>$label</a>";
+ $pars = access_string($label);
+ $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;\"$pars[1]>$pars[0]</a>";
}
else
$preview_str = $label;
function get_manufacturing_trans_view_str($type, $trans_no, $label="")
{
- global $path_to_root, $use_popup_windows;
+ global $path_to_root;
$viewer = "";
if ($viewer != "")
{
- 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
- $preview_str = "<a target='_blank' href='$path_to_root/manufacturing/view/$viewer?trans_no=$trans_no'>$label</a>";
+ $pars = access_string($label);
+ $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;\"$pars[1]>$pars[0]</a>";
}
else
$preview_str = $label;
function get_dimensions_trans_view_str($type, $trans_no, $label="")
{
- global $path_to_root, $use_popup_windows;
+ global $path_to_root;
$viewer = "";
if ($viewer != "")
{
- 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
- $preview_str = "<a target='_blank' href='$path_to_root/dimensions/view/$viewer?trans_no=$trans_no'>$label</a>";
+ $pars = access_string($label);
+ $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;\"$pars[1]>$pars[0]</a>";
}
else
$preview_str = $label;
}
//--------------------------------------------------------------------------------------
-
-function exchange_rate_display($from_currency, $to_currency, $date_, $buttons=true)
+// Displays currency exchange rate for given date.
+// When there is no exrate for today,
+// gets it form ECB and stores in local database.
+//
+function exchange_rate_display($from_currency, $to_currency, $date_)
{
+ global $Ajax;
+
if ($from_currency != $to_currency)
{
- if ($buttons && isset($_POST['get_rate']))
- {
- $comp_currency = get_company_currency();
- if ($from_currency == $comp_currency)
- $currency = $to_currency;
- else
- $currency = $from_currency;
- $rate = get_ecb_rate($currency);
- if (get_date_exchange_rate($currency, $date_))
- update_exchange_rate($currency, $date_, $rate, $rate);
- else
- add_exchange_rate($currency, $date_, $rate, $rate);
- if ($from_currency == $comp_currency)
- $rate = 1 / $rate;
- }
+ $comp_currency = get_company_currency();
+ if ($from_currency == $comp_currency)
+ $currency = $to_currency;
else
+ $currency = $from_currency;
+ $rate = 0;
+ if ($date_ == Today()) {
+ $rate = get_date_exchange_rate($currency, $date_);
+ if (!$rate) {
+ $rate = get_ecb_rate($currency);
+ if ($rate)
+ add_exchange_rate($currency, $date_, $rate, $rate);
+ }
+ }
+ if (!$rate)
$rate = get_exchange_rate_from_to($to_currency, $from_currency, $date_);
+
+ if ($from_currency == $comp_currency)
+ $rate = 1 / $rate;
+
$rate = number_format2($rate, user_exrate_dec());
- label_row(_("Exchange Rate:"),"1 " . $from_currency . " = " . $rate . " " . $to_currency .
- ($buttons?" " . submit('get_rate',_("Get"), false):""));
+ label_row(_("Exchange Rate:"),"1 " . $from_currency
+ . " = <span id='_ex_rate'>" . $rate . "</span> " . $to_currency );
+ $Ajax->addUpdate('_ex_rate','_ex_rate', $rate);
}
}
echo "<tr><td align=center><font color=red>$label</font><br>";
echo "<font color=red>" . _("Date Voided:") . " " . sql2date($void_entry["date_"]) . "</font><br>";
if (strlen($void_entry["memo_"]) > 0)
- echo "<center><font color=red>" . _("Memo:") . " " . $void_entry["memo_"] . "</font><br>";
+ echo "<center><font color=red>" . _("Memo:") . " " . $void_entry["memo_"] . "</font></center><br>";
echo "</td></tr>";
end_table(1);
function display_footer_exit()
{
- global $path_to_root;
br(2);
end_page();
exit;
}
}
-function get_js_go_back()
-{
- $js = "\n<script type=\"text/javascript\">\n"
- . "<!--\n"
- . "function goBack()\n"
- . "{\n"
- . " if (window.history.length <= 1)\n"
- . " window.close();\n"
- . " else\n"
- . " window.history.go(-1);\n"
- . "}\n"
- . "-->\n"
- . "</script>\n";
- return $js;
-}
-
function get_js_open_window($width, $height)
{
$js = "\n<script type=\"text/javascript\">\n"
. "{\n"
. " var left = (screen.width - $width) / 2;\n"
. " var top = (screen.height - $height) / 2;\n"
- . " window.open(url, title, 'width=$width,height=$height,left='+left+',top='+top+',screenX='+left+',screenY='+top+',status=no,scrollbars=yes');\n"
+ . " return window.open(url, title, 'width=$width,height=$height,left='+left+',top='+top+',screenX='+left+',screenY='+top+',status=no,scrollbars=yes');\n"
. "}\n"
. "-->\n"
. "</script>\n";
return $js;
}
-function get_js_form_entry($edit_name, $sel_name, $next_name)
-{
- global $comp_path;
- $fpath = $comp_path.'/'.user_company().'/js_cache/form_entry.js';
-
- if (!file_exists($fpath)) {
-
-
- $js = "\n<script type=\"text/javascript\">\n"
- . "<!--\n"
- . "function recalcAccounts()\n"
- . "{\n"
- . " var myForm = document.forms[0];\n"
- . " var len = myForm.$sel_name.length;\n"
- . " var txt;\n"
- . " var ac = myForm.$edit_name.value;\n"
- . " var i;\n"
- . " myForm.$sel_name.options[myForm.$sel_name.selectedIndex].selected = false;\n"
- . " for (i = 0; i < len; i++)\n"
- . " {\n"
- . " txt = myForm.$sel_name.options[i].text;\n"
- . " if (txt.indexOf(ac) == 0)\n"
- . " {\n"
- . " myForm.$sel_name.options[i].selected = true;\n"
- . " break;\n"
- . " }\n"
- . " }\n"
- . "}\n"
- . "function setAccount(p, s)\n"
- . "{\n"
- . " var myForm = document.forms[0];\n"
- . " if (p == 0 && myForm.$edit_name.value == \"\")\n"
- . " return true;\n"
- . " myForm.$edit_name.value = myForm.$sel_name.options[myForm.$sel_name.selectedIndex].value;\n"
- . " if (s)\n"
- . " myForm.submit();\n"
- . " myForm.$next_name.focus();\n"
- . " return true;\n"
- . "}\n"
- . "-->\n"
- . "</script>\n";
- cache_js_file($fpath, $js);
- }
- add_js_ufile($fpath);
-
- return '';
+/*
+ Setting focus on element $name in $form.
+ If $form<0 $name is element id.
+*/
+function set_focus($name, $form_no=0) {
+ global $Ajax;
+ $Ajax->addFocus(true, $name);
+ $_POST['_focus'] = $name;
}
-
-function get_js_set_focus($name)
-{
- $js = "\n<script type=\"text/javascript\">\n"
- . "<!--\n"
- . "function setFocus()\n"
- . "{\n"
- . " document.forms[0].$name.focus();\n"
- . "}\n"
- . "-->\n"
- . "</script>\n";
- return $js;
+//
+// Set default focus on first field $name if not set yet
+//
+function default_focus($name, $form_no=0) {
+ if (!isset($_POST['_focus'])) {
+ set_focus($name);
+ }
}
function get_js_png_fix()
function get_js_date_picker()
{
- global $comp_path;
+ global $comp_path, $go_debug;
$fpath = $comp_path.'/'.user_company().'/js_cache/'.'date_picker.js';
$js = "<style>
-#CCIFrame { display: none; left: 0px; position: absolute; top: 0px; height: 250px; width: 250px; z-index: 99;}
+#CCIframe { display: none; left: 0px; position: absolute; top: 0px; height: 250px; width: 270px; z-index: 99;}
#CC { position:absolute; background-color:#FFF; margin:0; padding:0; display:none; z-index: 100;}
#CC table { font-family: arial, verdana, helvetica, sans-serif;font-size: 8pt; border-left: 1px solid #336; border-right: 1px solid #336;}
-#CC th { font-weight: normal;}
+#CC th { font-weight: normal; text-align: center;}
#CC th a { font-weight: normal; text-decoration: none; color: #FFF; padding: 1px;}
#CC td { text-align: center;}
#CC .header { background-color: #336;}
#CC .weekday { background-color: #DDD; color: #000;}
#CC .weekend { background-color: #FFC; color: #000;}
+#CC .weekno { background-color: #c0daf8; color: #555;}
#CC .current { border: 1px solid #339; background-color: #336; color: #FFF;}
#CC .weekday,#CC .weekend,#CC .current { display: block; text-decoration: none; border: 1px solid #FFF; width: 2em;}
#CC .weekday:hover,#CC .weekend:hover,#CC .current:hover { color: #FFF; background-color: #336; border: 1px solid #999;}
</style>
";
add_js_source($js);
-
- if (!file_exists($fpath)) {
-
+
+ if (!file_exists($fpath) || $go_debug) {
+
global $dateseps, $date_system;
$how = user_date_format(); // 0 = us/ca, 1 = eu, au, nz, 2 = jp, sw
$wstart = (($date_system == 1 || $date_system == 2) ? 6 : ($how == 0 ? 0 : 1)); // weekstart (sun = 0, mon = 1)
$months = array(_("January"),_("February"),_("March"),_("April"),_("May"),_("June"),_("July"),_("August"),_("September"),_("October"),_("November"),_("December"));
$wdays = array(_("Su"),_("Mo"),_("Tu"),_("We"),_("Th"),_("Fr"),_("Sa"));
+ $wno = _("W"); // week no
$back = _("Back");
if ($date_system == 1)
list($cyear, $cmon, $cday) = gregorian_to_jalali(date("Y"), date("n"), date("j"));
dateField.value = '';
hide();
}
+ this.getWeek = getWeek;
+ function getWeek(year, month, day) {
+";
+ if ($how == 0)
+ $js .= " day++;";
+ $js .= "
+ var date = new Date(year,month-1,day);
+ var D = date.getDay();
+ if(D == 0) D = 7;
+ date.setDate(date.getDate() + (4 - D));
+ var YN = date.getFullYear();
+ var ZBDoCY = Math.floor((date.getTime() - new Date(YN, 0, 1, -6)) / 86400000);
+ var WN = 1 + Math.floor(ZBDoCY / 7);
+ return WN;
+ }
this.setDate = setDate;
function setDate(year, month, day) {
if (dateField) {
";
$js .= "
dateField.value = dateString;
+ setFocus(dateField.name);
+ if (dateField.className=='searchbox')
+ dateField.onblur();
hide();
}
return;
function calendarDrawTable() {
var dayOfMonth = 1;
var wstart = $wstart;
+ var wno = ' $wno ';
var validDay = 0;
var startDayOfWeek = getDayOfWeek(currentYear, currentMonth, dayOfMonth);
var daysInMonth = getDaysInMonth(currentYear, currentMonth);
var table = \"<table cellspacing='0' cellpadding='0' border='0'>\";
table += \"<tr class='header'>\";
table += \" <td colspan='2' class='previous'><a href='javascript:changeCCMonth(-1);'><</a><br><a href='javascript:changeCCYear(-1);'>«</a></td>\";
- table += \" <td colspan='3' class='title'>\" + months[currentMonth-1] + \"<br>\" + currentYear + \"</td>\";
+ table += \" <td colspan='4' class='title'>\" + months[currentMonth-1] + \"<br>\" + currentYear + \"</td>\";
table += \" <td colspan='2' class='next'><a href='javascript:changeCCMonth(1);'>></a><br><a href='javascript:changeCCYear(1);'>»</a></td>\";
table += \"</tr>\";
table += \"<tr>\";
+ table += \"<th class='weekno'>\"+wno+\"</th>\";
for (var n=0; n<7; n++)
table += \"<th>\" + wdays[(wstart+n)%7]+\"</th>\";
table += \"</tr>\";
} else if (validDay == 1 && dayOfMonth > daysInMonth) {
validDay = 0;
}
+ if (n==0)
+ {
+ if (dayOfMonth > daysInMonth)
+ table += \"<td class='empty'> </td>\";
+ else
+ table += \"<td class='weekno'>\"+getWeek(currentYear, currentMonth, dayOfMonth)+\"</td>\";
+ }
if(validDay) {
if (dayOfMonth == selectedDay && currentYear == selectedYear && currentMonth == selectedMonth) {
css_class = 'current';
}
table += \"</tr>\";
}
- table += \"<tr class='header'><th colspan='7' style='padding: 3px;'><a href='javascript:hideCC();'>$back</a></td></tr>\";
+ table += \"<tr class='header'><th colspan='8' style='padding: 3px;text-align:center;'><a href='javascript:hideCC();'>$back</a></td></tr>\";
table += \"</table>\";
return table;
}
if(document.getElementById){
calendar = document.getElementById(calendarId);
calendar.innerHTML = calendarDrawTable(currentYear, currentMonth);
- setProperty('display', 'block');
var fieldPos = new positionInfo(dateField);
var calendarPos = new positionInfo(calendarId);
var x = fieldPos.getElementLeft();
var y = fieldPos.getElementBottom();
setProperty('left', x + 'px');
setProperty('top', y + 'px');
+ setProperty('display', 'block');
if (document.all) {
- setElementProperty('display', 'block', 'CCIframe');
setElementProperty('left', x + 'px', 'CCIframe');
setElementProperty('top', y + 'px', 'CCIframe');
setElementProperty('width', calendarPos.getElementWidth() + 'px', 'CCIframe');
setElementProperty('height', calendarPos.getElementHeight() + 'px', 'CCIframe');
+ setElementProperty('display', 'block', 'CCIframe');
}
}
}
document.write(\"<div id='CC'></div>\");";
cache_js_file($fpath, $js);
- }
+ }
add_js_ufile($fpath);
return '';
}
-//
-// Javascript conversions to/from user numeric format.
-//
-function add_js_user_num() {
-
- global $comp_path;
- $fpath = $comp_path.'/'.user_company().'/js_cache/'.'user_num.js';
-
- if (!file_exists($fpath)) {
-
- global $thoseps, $decseps;
- $ts = $thoseps[user_tho_sep()];
- $ds = $decseps[user_dec_sep()];
-
- $js = "function price_format(post, num, dec, label) {
- //num = num.toString().replace(/\\$|\\,/g,'');
- if(isNaN(num))
- num = \"0\";
- sign = (num == (num = Math.abs(num)));
- if(dec<0) dec = 2;
- decsize = Math.pow(10, dec);
- num = Math.floor(num*decsize+0.50000000001);
- cents = num%decsize;
- num = Math.floor(num/decsize).toString();
- for( i=cents.toString().length; i<dec; i++){
- cents = \"0\" + cents;
- }
- for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
- num = num.substring(0,num.length-(4*i+3))+'".$ts."'+
- num.substring(num.length-(4*i+3));
- num = ((sign)?'':'-') + num;
- if(dec!=0) num = num + '".$ds."' + cents;
- if(label)
- document.getElementById(post).innerHTML = num;
- else
- document.getElementsByName(post)[0].value = num;
- }
- function get_amount(doc, label) {
- if(label)
- var val = document.getElementById(doc).innerHTML;
- else
- var val = document.getElementsByName(doc)[0].value;
- val = val.replace(/\\".$ts."/g,'');
- val = val.replace(/\\".$ds."/g,'.');
- return 1*val;
- }
- ";
-
- cache_js_file($fpath, $js);
- }
- add_js_ufile($fpath);
-}
-
-function add_js_allocate() {
- global $comp_path;
- $fpath = $comp_path.'/'.user_company().'/js_cache/'.'allocate.js';
-
- if (!file_exists($fpath)) {
-
- $js =
- "function allocate_all(doc) {
- var amount = get_amount('amount'+doc);
- var unallocated = get_amount('un_allocated'+doc);
- var total = get_amount('total_allocated', 1);
- var left = get_amount('left_to_allocate', 1);
-
- if(unallocated<amount) amount = unallocated;
- if((unallocated-amount)<=left){
- left-=unallocated-amount;
- total+=unallocated-amount;
- amount=unallocated;
- }else{
- total+=left;
- amount+=left;
- left=0;
- }
- price_format('amount'+doc, amount, ".user_price_dec().");
- price_format('left_to_allocate', left, ".user_price_dec().", 1);
- price_format('total_allocated', total, ".user_price_dec().", 1);
- }
- function allocate_none(doc) {
- amount = get_amount('amount'+doc);
- left = get_amount('left_to_allocate', 1);
- total = get_amount('total_allocated', 1);
- price_format('left_to_allocate',amount+left, ".user_price_dec().", 1);
- price_format('amount'+doc, 0, ".user_price_dec().");
- price_format('total_allocated', total-amount, ".user_price_dec().", 1);
- }";
-
- cache_js_file($fpath, $js);
- }
- add_js_ufile($fpath);
- add_js_user_num();
-}
-
function alert($msg)
{
echo "\n<script type=\"text/javascript\">\n"