X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Fui%2Fui_view.inc;h=7b472fcdf182208f8a94e4ba2dc88e6a80a4383d;hb=a963f2e4749169cd8f919db48cfdf5529aff5db9;hp=8c6bf63bcad55fdbd02f5ae9202cdc112076d8ad;hpb=ebc600101ceab69c06eac4b1bd4d1782af45de05;p=fa-stable.git diff --git a/includes/ui/ui_view.inc b/includes/ui/ui_view.inc index 8c6bf63b..7b472fcd 100644 --- a/includes/ui/ui_view.inc +++ b/includes/ui/ui_view.inc @@ -201,6 +201,19 @@ function get_journal_trans_view_str($type, $trans_no, $label="", $icon=false, return viewer_link($label, $viewer, $class, $id, $icon); } +//-------------------------------------------------------------------------------------- + +function get_package_view_str($pkg, $label="", $icon=false, $class='', $id='') +{ + if ($label == "") + { + $label = _("Info"); +// $icon = ICON_GL; + } + return viewer_link($label, "includes/ui/view_package.php?id=$pkg", $class, $id, $icon); +} + + //-------------------------------------------------------------------------------------- function get_trans_view_str($type, $trans_no, $label="", $icon=false, @@ -283,13 +296,12 @@ function exchange_rate_display($from_currency, $to_currency, $date_, $edit_rate= function is_voided_display($type, $id, $label) { - global $table_style; $void_entry = get_voided_entry($type, $id); if ($void_entry == null) return false; - start_table("width=50% $table_style"); + start_table(TABLESTYLE, "width=50%"); echo "$label
"; echo "" . _("Date Voided:") . " " . sql2date($void_entry["date_"]) . "
"; if (strlen($void_entry["memo_"]) > 0) @@ -356,18 +368,18 @@ function view_stock_status_cell($stock_id, $description=null) //-------------------------------------------------------------------------------------- -function display_debit_or_credit_cells($value) +function display_debit_or_credit_cells($value, $bold=false) { $value = round2($value, user_price_dec()); if ($value >= 0) { - amount_cell($value); + amount_cell($value, $bold); label_cell(""); } elseif ($value < 0) { label_cell(""); - amount_cell(abs($value)); + amount_cell(abs($value), $bold); } } @@ -375,15 +387,31 @@ function display_debit_or_credit_cells($value) function display_customer_trans_tax_details($tax_items, $columns) { + global $alternative_tax_include_on_docs, $suppress_tax_rates; + $first = true; while ($tax_item = db_fetch($tax_items)) { $tax = number_format2($tax_item['amount'],user_price_dec()); + if (isset($suppress_tax_rates) && $suppress_tax_rates == 1) + $tax_type_name = $tax_item['tax_type_name']; + else + $tax_type_name = $tax_item['tax_type_name']." (".$tax_item['rate']."%) "; if ($tax_item['included_in_price']) - label_row(_("Included") . " " . $tax_item['tax_type_name'] . " (" . $tax_item['rate'] . "%) " . - _("Amount") . ": $tax", "", "colspan=$columns align=right", "align=right"); + { + if (isset($alternative_tax_include_on_docs) && $alternative_tax_include_on_docs == 1) + { + if ($first) + label_row(_("Total Tax Excluded"), number_format2($tax_item['net_amount'], user_price_dec()), + "colspan=$columns align=right", "align=right"); + label_row($tax_type_name, $tax, "colspan=$columns align=right", "align=right"); + $first = false; + } + else + label_row(_("Included") . " " . $tax_type_name + . ": $tax", "", "colspan=$columns align=right", "align=right"); + } else - label_row($tax_item['tax_type_name'] . " (" . $tax_item['rate'] . "%)", - $tax, "colspan=$columns align=right", "align=right"); + label_row($tax_type_name, $tax, "colspan=$columns align=right", "align=right"); } } @@ -395,8 +423,8 @@ function display_supp_trans_tax_details($tax_items, $columns) { $tax = number_format2(abs($tax_item['amount']),user_price_dec()); if ($tax_item['included_in_price']) - label_row(_("Included") . " " . $tax_item['tax_type_name'] . " (" . $tax_item['rate'] . "%) " . - _("Amount") . ": $tax", "colspan=$columns align=right", "align=right"); + label_row(_("Included") . " " . $tax_item['tax_type_name'] . " (" . $tax_item['rate'] . "%) " + . ": $tax", '', "colspan=$columns align=right", "align=right"); else label_row($tax_item['tax_type_name'] . " (" . $tax_item['rate'] . "%)", $tax, "colspan=$columns align=right", "align=right"); @@ -413,8 +441,8 @@ function display_edit_tax_items($taxes, $columns, $tax_included, $leftspan=0) { 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",$leftspan); + label_row(_("Included") . " " . $taxitem['tax_type_name'] . " (" . $taxitem['rate'] . "%) " + . " " . number_format2($taxitem['Value'],user_price_dec()), "", "colspan=$columns align=right", "align=right",$leftspan); } else { @@ -432,7 +460,7 @@ function display_edit_tax_items($taxes, $columns, $tax_included, $leftspan=0) function display_footer_exit() { br(2); - end_page(); + end_page(false, false, true); exit; } @@ -440,14 +468,14 @@ function display_footer_exit() function display_allocations($alloc_result, $total) { - global $table_style, $systypes_array; + global $systypes_array; if (!$alloc_result || db_num_rows($alloc_result) == 0) return; display_heading2(_("Allocations")); - start_table("$table_style width=80%"); + start_table(TABLESTYLE, "width=80%"); $th = array( _("Type"), _("Number"), _("Date"), _("Total Amount"), _("Left to Allocate"), _("This Allocation")); @@ -523,8 +551,28 @@ function display_quick_entries(&$cart, $id, $base, $type, $descr='') if ($type != QE_SUPPINV) // only one quick entry on journal/bank transaction $cart->clear_items(); $qe = get_quick_entry($id); + if ($qe['bal_type'] == 1) + { + if ($qe['base_amount'] == 1.0) // monthly + $begin = begin_month($cart->tran_date); + else + { + if (is_account_balancesheet($qe['base_desc'])) // total + $begin = ""; + else + $begin = begin_fiscalyear(); // from fiscalyear begin + } + $base = get_gl_trans_from_to($begin, $cart->tran_date, $qe['base_desc']); + + } if ($descr != '') $qe['description'] .= ': '.$descr; $result = get_quick_entry_lines($id); + if (db_num_rows($result) == 0) + { + display_error( _("No Quick Entry lines are defined.")); + set_focus('totamount'); + return 0; + } $totrate = 0; while ($row = db_fetch($result)) { @@ -578,9 +626,10 @@ function display_quick_entries(&$cart, $id, $base, $type, $descr='') if (substr($qe_line['action'],0,1) != 'T') $part = $taxbase; else - $part = $base; + $part = $base/100; $item_tax = get_tax_type($qe_line['dest_id']); - if ($type == QE_SUPPINV && substr($qe_line['action'],0,1) != 'T') + //if ($type == QE_SUPPINV && substr($qe_line['action'],0,1) != 'T') + if ($type == QE_SUPPINV) { $taxgroup = $cart->tax_group_id; $rates = 0; @@ -630,6 +679,85 @@ function display_quick_entries(&$cart, $id, $base, $type, $descr='') return $bank_amount; } +//-------------------------------------------------------------------------------------- +// +// Simple English version of number to words conversion. +// +function _number_to_words($number) +{ + $Bn = floor($number / 1000000000); /* Billions (giga) */ + $number -= $Bn * 1000000000; + $Gn = floor($number / 1000000); /* Millions (mega) */ + $number -= $Gn * 1000000; + $kn = floor($number / 1000); /* Thousands (kilo) */ + $number -= $kn * 1000; + $Hn = floor($number / 100); /* Hundreds (hecto) */ + $number -= $Hn * 100; + $Dn = floor($number / 10); /* Tens (deca) */ + $n = $number % 10; /* Ones */ + + $res = ""; + + if ($Bn) + $res .= _number_to_words($Bn) . " Billion"; + if ($Gn) + $res .= (empty($res) ? "" : " ") . _number_to_words($Gn) . " Million"; + if ($kn) + $res .= (empty($res) ? "" : " ") . _number_to_words($kn) . " Thousand"; + if ($Hn) + $res .= (empty($res) ? "" : " ") . _number_to_words($Hn) . " Hundred"; + + $ones = array("", "One", "Two", "Three", "Four", "Five", "Six", + "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", + "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eightteen", + "Nineteen"); + $tens = array("", "", "Twenty", "Thirty", "Fourty", "Fifty", "Sixty", + "Seventy", "Eigthy", "Ninety"); + + if ($Dn || $n) + { + if (!empty($res)) + $res .= " and "; + if ($Dn < 2) + $res .= $ones[$Dn * 10 + $n]; + else + { + $res .= $tens[$Dn]; + if ($n) + $res .= "-" . $ones[$n]; + } + } + + if (empty($res)) + $res = "zero"; + return $res; +} + +function price_in_words($amount, $document=0) +{ + // use local price_in_words() if the hook is defined + $price = hook_price_in_words($amount, $document); + if ($price) + return $price; + + // Only usefor Remittance and Receipts as default + if (!($document == ST_SUPPAYMENT || $document == ST_CUSTPAYMENT || $document == ST_CHEQUE)) + return ""; + if ($amount < 0 || $amount > 999999999999) + return ""; + $dec = user_price_dec(); + if ($dec > 0) + { + $divisor = pow(10, $dec); + $frac = round2($amount - floor($amount), $dec) * $divisor; + $frac = sprintf("%0{$dec}d", $frac); + $and = _("and"); + $frac = " $and $frac/$divisor"; + } + else + $frac = ""; + return _number_to_words(intval($amount)) . $frac; +} function get_js_open_window($width, $height) { @@ -699,8 +827,8 @@ function get_js_png_fix() function get_js_date_picker() { - global $comp_path, $go_debug; - $fpath = $comp_path.'/'.user_company().'/js_cache/'.'date_picker.js'; + global $go_debug; + $fpath = company_path().'/js_cache/'.'date_picker.js'; if (!file_exists($fpath) || $go_debug) { @@ -1162,53 +1290,64 @@ if (!function_exists('_vd')) { function _vd($mixed, $title = '', $exit = false) { - // Only the site admin is able to proceed here. $str = (!empty($title) ? ($title .':') : '') .'
';
     	$str .= print_r($mixed, true); //var_dump($mixed);
     	$str .= "
\n"; - display_error('
'.$str.'
'); + display_notification('
'.$str.'
'); if ($exit) exit; } } -function display_backtrace($cond=true, $msg='') { +function _vl($mixed, $title = '', $exit = false) +{ + error_log((!empty($title) ? ($title .':') : '') . var_export($mixed, true)); + if ($exit) + exit; +} +function display_backtrace($cond=true, $msg='') { if ($cond) { if ($msg) $str = "
$msg
\n"; else $str = ''; - $str .= ''; - $trace = debug_backtrace(); - foreach($trace as $trn => $tr) { - if (!$trn) continue; - $str .= ''; } -} + if ($html) $str .= '
'; - $str .= $tr['file'].':'.$tr['line'].': '; - $str .= ''; - if (isset($tr['type'])) { - if($tr['type'] == '::') { - $str .= $tr['class'].'::'; - } else if($tr['type'] == '->') { - $str .= '('.$tr['class'].' Object)'.'->'; - } - } - foreach($tr['args'] as $n=>$a) { - if (is_object($tr['args'][$n])) - $tr['args'][$n] = "(".get_class($tr['args'][$n])." Object)"; - if (is_array($tr['args'][$n])) - $tr['args'][$n] = "(Array[".count($tr['args'][$n])."])"; - else - $tr['args'][$n] = "'".$tr['args'][$n]."'"; + $str .= get_backtrace(true); + display_error($str); + } +} + +function get_backtrace($html = false) +{ + $str = ''; + if ($html) $str .= ''; + $trace = debug_backtrace(); + + foreach($trace as $trn => $tr) { + if (!$trn) continue; + if ($html) $str .= ''; + } - $str .= ''; + foreach($tr['args'] as $n=>$a) { + if (is_object($tr['args'][$n])) + $tr['args'][$n] = "(".get_class($tr['args'][$n])." Object)"; + if (is_array($tr['args'][$n])) + $tr['args'][$n] = "(Array[".count($tr['args'][$n])."])"; + else + $tr['args'][$n] = "'".$tr['args'][$n]."'"; } - - $str .= '
'; + $str .= $tr['file'].':'.$tr['line'].': '; + if ($html) $str .= ''; + if (isset($tr['type'])) { + if($tr['type'] == '::') { + $str .= $tr['class'].'::'; + } else if($tr['type'] == '->') { + $str .= '('.$tr['class'].' Object)'.'->'; } - $str .= $tr['function'].'('. implode(',',$tr['args']).')
'; - display_error($str); + $str .= $tr['function'].'('. implode(',',$tr['args']).')
'; + return $str; +} ?> \ No newline at end of file