From af9e628479b38b0cd7972044ab02902b020211e9 Mon Sep 17 00:00:00 2001 From: Joe Hunt Date: Fri, 12 May 2017 18:02:36 +0200 Subject: [PATCH] Added a small Arabic font file and improved the builtin DashBoard. --- config.default.php | 1 + includes/dashboard.inc | 22 +++++++++------------- reporting/fonts/zarnormal.ttf | Bin 0 -> 80036 bytes reporting/includes/class.graphic.inc | 8 +++++++- 4 files changed, 17 insertions(+), 14 deletions(-) create mode 100644 reporting/fonts/zarnormal.ttf diff --git a/config.default.php b/config.default.php index cdbb2d44..ba6eadcb 100644 --- a/config.default.php +++ b/config.default.php @@ -154,6 +154,7 @@ if (!isset($path_to_root) || isset($_GET['path_to_root']) || isset($_POST['path_ /* UTF-8 font for Business Graphics. Copy it to /reporting/fonts/ folder. */ $UTF8_fontfile = "FreeSans.ttf"; + //$UTF8_fontfile = "zarnormal.ttf"; // for Arabic Dashboard /* Display a dropdown select box for choosing Company to login if false. diff --git a/includes/dashboard.inc b/includes/dashboard.inc index d5c5b17d..af8219a9 100644 --- a/includes/dashboard.inc +++ b/includes/dashboard.inc @@ -408,17 +408,16 @@ function gl_performance($today, $width="33", $weeks=5) $begin = begin_fiscalyear(); $begin1 = date2sql($begin); $today1 = date2sql($today); - $sql = "SELECT CONCAT(YEAR(tran_date), '/', WEEK(tran_date)) AS week_name, - SUM(IF (c.ctype = 4, amount * -1, 0)) AS sales, - SUM(IF (c.ctype = 6, amount, 0)) AS costs - FROM + $sql = "SELECT week_name, sales, costs + FROM(SELECT DATE_FORMAT(tran_date, '%Y-%u') AS week_name, + SUM(IF(c.ctype = 4, amount * -1, 0)) AS sales, + SUM(IF(c.ctype = 6, amount, 0)) AS costs FROM ".TB_PREF."gl_trans, ".TB_PREF."chart_master AS a, ".TB_PREF."chart_types AS t, - ".TB_PREF."chart_class AS c WHERE (c.ctype = 4 OR c.ctype = 6) - AND account = a.account_code AND a.account_type = t.id AND t.class_id = c.cid - AND IF(c.ctype > 3, tran_date >= '$begin1', tran_date >= '0000-00-00') - AND tran_date <= '$today1' - GROUP BY week_name - ORDER BY YEAR(tran_date) DESC, WEEK(tran_date) DESC limit 0, $weeks"; + ".TB_PREF."chart_class AS c WHERE(c.ctype = 4 OR c.ctype = 6) + AND account = a.account_code AND a.account_type = t.id AND t.class_id = c.cid + AND tran_date >= '$begin1' AND tran_date <= '$today1' + GROUP BY week_name ORDER BY week_name DESC LIMIT 0, 5) b + GROUP BY week_name ORDER BY week_name ASC"; $result = db_query($sql, "Transactions could not be calculated"); $title = _("Last $weeks weeks Performance"); check_page_security('SA_GLANALYTIC'); @@ -430,9 +429,6 @@ function gl_performance($today, $width="33", $weeks=5) $pg->z[$i] = $myrow['costs']; $i++; } - $pg->x = array_reverse($pg->x); - $pg->y = array_reverse($pg->y); - $pg->z = array_reverse($pg->z); source_graphic($today, $title, _("Week"), $pg, _("Sales"), _("Costs"), 1); } diff --git a/reporting/fonts/zarnormal.ttf b/reporting/fonts/zarnormal.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0542a5c7b39b3b264418fc3f073408ac7cc425bc GIT binary patch literal 80036 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 = $this->encoding == 'UTF-8' ? (isset($SysPrefs->UTF8_fontfile) && $SysPrefs->UTF8_fontfile != "" ? $path.$SysPrefs->UTF8_fontfile : $path.'FreeSans.ttf') : $path.'LiberationSans-Regular.ttf'; - + $this->x = $this->y = $this->z = array(); $this->biggest_x = NULL; $this->biggest_y = NULL; @@ -1000,6 +1000,12 @@ class graph $size = 12; $y += $size + 3; $angle = 0; + + if ($this->encoding == 'UTF-8' && is_arabic($string)) + { + $size += 2; + $string = str_replace(" ", " ", $string); + } imagettftext($img, $size, $angle, $x, $y + $alt, $col, $this->fontfile, $string); } -- 2.30.2