From 796b9e17473ca045e448b7876472bb73015247e9 Mon Sep 17 00:00:00 2001 From: Nik Okuntseff Date: Sun, 2 Dec 2018 20:30:27 +0000 Subject: [PATCH] Refactored and renamed ttSysConfig class. --- WEB-INF/lib/ttInvoiceHelper.class.php | 26 +++++++++------- ...onfig.class.php => ttUserConfig.class.php} | 31 +++++++++++-------- WEB-INF/templates/footer.tpl | 2 +- charts.php | 22 ++++++------- invoice_send.php | 12 +++---- report_send.php | 12 +++---- 6 files changed, 56 insertions(+), 49 deletions(-) rename WEB-INF/lib/{ttSysConfig.class.php => ttUserConfig.class.php} (71%) diff --git a/WEB-INF/lib/ttInvoiceHelper.class.php b/WEB-INF/lib/ttInvoiceHelper.class.php index 13e784d0..042acd82 100644 --- a/WEB-INF/lib/ttInvoiceHelper.class.php +++ b/WEB-INF/lib/ttInvoiceHelper.class.php @@ -257,18 +257,20 @@ class ttInvoiceHelper { } } - // sql part for project id. - if ($project_id) $project_part = " and ei.project_id = $project_id"; - - $sql = "select count(*) as num from tt_expense_items ei - where ei.client_id = $client_id $project_part and ei.invoice_id is NULL - and ei.date >= ".$mdb2->quote($start)." and ei.date <= ".$mdb2->quote($end)." - and ei.cost <> 0 and ei.status = 1"; - $res = $mdb2->query($sql); - if (!is_a($res, 'PEAR_Error')) { - $val = $res->fetchRow(); - if ($val['num']) { - return true; + if ($user->isPluginEnabled('ex')) { + // sql part for project id. + if ($project_id) $project_part = " and ei.project_id = $project_id"; + + $sql = "select count(*) as num from tt_expense_items ei + where ei.client_id = $client_id $project_part and ei.invoice_id is NULL + and ei.date >= ".$mdb2->quote($start)." and ei.date <= ".$mdb2->quote($end)." + and ei.cost <> 0 and ei.status = 1"; + $res = $mdb2->query($sql); + if (!is_a($res, 'PEAR_Error')) { + $val = $res->fetchRow(); + if ($val['num']) { + return true; + } } } diff --git a/WEB-INF/lib/ttSysConfig.class.php b/WEB-INF/lib/ttUserConfig.class.php similarity index 71% rename from WEB-INF/lib/ttSysConfig.class.php rename to WEB-INF/lib/ttUserConfig.class.php index 4cc5f8c2..b9269944 100644 --- a/WEB-INF/lib/ttSysConfig.class.php +++ b/WEB-INF/lib/ttUserConfig.class.php @@ -33,25 +33,28 @@ define('SYSC_LAST_REPORT_CC', 'last_report_cc'); define('SYSC_LAST_INVOICE_EMAIL', 'last_invoice_email'); define('SYSC_LAST_INVOICE_CC', 'last_invoice_cc'); -// Class ttSysConfig is used for storing and retrieving named values associated with users. -class ttSysConfig { +// Class ttUserConfig is used for storing and retrieving named values associated with users. +// When user is working on behalf of someone else, this class is still associated with a user. +class ttUserConfig { var $user_id = null; var $group_id = null; var $org_id = null; var $mdb2 = null; // Constructor. - function __construct($user_id) { + function __construct() { global $user; - $this->user_id = $user_id; // TODO: review "on behalf" situation and refactor if necessary. - $this->group_id = $user->getGroup(); + $this->user_id = $user->id; // Not behalf id by design. + $this->group_id = $user->group_id; $this->org_id = $user->org_id; $this->mdb2 = getConnection(); } // The getValue retrieves a value identified by name. function getValue($name) { - $res = $this->mdb2->query("select param_value from tt_config where user_id = ".$this->user_id." and param_name=".$this->mdb2->quote($name)); + $res = $this->mdb2->query("select param_value from tt_config". + " where user_id = $this->user_id and group_id = $this->group_id and org_id = $this->org_id". + " and param_name=".$this->mdb2->quote($name)); if (!is_a($res, 'PEAR_Error')) { $val = $res->fetchRow(); return $val['param_value']; @@ -61,15 +64,17 @@ class ttSysConfig { // The setValue sets a value identified by name. function setValue($name, $value) { - $rcnt = 0; - $res = $this->mdb2->query("select count(*) as rcnt from tt_config where user_id = ".$this->user_id." and param_name = ".$this->mdb2->quote($name)); - if ($val = $res->fetchRow()) $rcnt = $val['rcnt']; - - if ($rcnt > 0) { - $affected = $this->mdb2->exec("update tt_config set param_value = ".$this->mdb2->quote($value)." where user_id = ".$this->user_id." and param_name=".$this->mdb2->quote($name)); + $count = 0; + $res = $this->mdb2->query("select count(*) as count from tt_config where user_id = ".$this->user_id." and param_name = ".$this->mdb2->quote($name)); + if ($val = $res->fetchRow()) $count = $val['count']; + + if ($count > 0) { + $affected = $this->mdb2->exec("update tt_config set param_value = ".$this->mdb2->quote($value). + " where user_id = $this->user_id and group_id = $this->group_id and org_id = $this->org_id". + " and param_name=".$this->mdb2->quote($name)); } else { $sql = "insert into tt_config set param_value = ".$this->mdb2->quote($value). - ", param_name = ".$this->mdb2->quote($name).", user_id = ".$this->user_id.", group_id = ".$this->group_id.", org_id = ".$this->org_id; + ", param_name = ".$this->mdb2->quote($name).", user_id = $this->user_id, group_id = $this->group_id, org_id = ".$this->org_id; $affected = $this->mdb2->exec($sql); } return (!is_a($affected, 'PEAR_Error')); diff --git a/WEB-INF/templates/footer.tpl b/WEB-INF/templates/footer.tpl index fab52975..dbbcb63f 100644 --- a/WEB-INF/templates/footer.tpl +++ b/WEB-INF/templates/footer.tpl @@ -12,7 +12,7 @@
-
 Anuko Time Tracker 1.18.29.4571 | Copyright © Anuko | +  Anuko Time Tracker 1.18.29.4572 | Copyright © Anuko | {$i18n.footer.credits} | {$i18n.footer.license} | {$i18n.footer.improve} diff --git a/charts.php b/charts.php index d6707038..3923d9a0 100644 --- a/charts.php +++ b/charts.php @@ -32,7 +32,7 @@ require_once('initialize.php'); import('form.Form'); import('DateAndTime'); import('ttChartHelper'); -import('ttSysConfig'); +import('ttUserConfig'); import('PieChartEx'); import('ttUserHelper'); import('ttTeamHelper'); @@ -66,8 +66,8 @@ $_SESSION['date'] = $cl_date; // Initialize chart interval. $cl_interval = $_SESSION['chart_interval']; if (!$cl_interval) { - $sc = new ttSysConfig($user->id); - $cl_interval = $sc->getValue(SYSC_CHART_INTERVAL); + $uc = new ttUserConfig(); + $cl_interval = $uc->getValue(SYSC_CHART_INTERVAL); } if (!$cl_interval) $cl_interval = INTERVAL_THIS_MONTH; $_SESSION['chart_interval'] = $cl_interval; @@ -75,10 +75,10 @@ $_SESSION['chart_interval'] = $cl_interval; // Initialize chart type. $cl_type = $_SESSION['chart_type']; if (!$cl_type) { - $sc = new ttSysConfig($user->id); - $cl_type = $sc->getValue(SYSC_CHART_TYPE); + $uc = new ttUserConfig(); + $cl_type = $uc->getValue(SYSC_CHART_TYPE); } -if (MODE_TIME == $user->tracking_mode) { +if (MODE_TIME == $user->getTrackingMode()) { if ($user->isPluginEnabled('cl')) $cl_type = CHART_CLIENTS; } else { @@ -86,7 +86,7 @@ if (MODE_TIME == $user->tracking_mode) { if (!$user->isPluginEnabled('cl')) $cl_type = CHART_PROJECTS; } elseif ($cl_type == CHART_TASKS) { - if (MODE_PROJECTS_AND_TASKS != $user->tracking_mode) + if (MODE_PROJECTS_AND_TASKS != $user->getTrackingMode()) $cl_type = CHART_PROJECTS; } } @@ -103,8 +103,8 @@ if ($request->isPost()) { // Save in the session $_SESSION['chart_interval'] = $cl_interval; // and permanently. - $sc = new ttSysConfig($user->id); - $sc->setValue(SYSC_CHART_INTERVAL, $cl_interval); + $uc = new ttUserConfig(); + $uc->setValue(SYSC_CHART_INTERVAL, $cl_interval); } // If chart type changed - save it. $cl_type = $request->getParameter('type'); @@ -112,8 +112,8 @@ if ($request->isPost()) { // Save in the session $_SESSION['chart_type'] = $cl_type; // and permanently. - $sc = new ttSysConfig($user->id); - $sc->setValue(SYSC_CHART_TYPE, $cl_type); + $uc = new ttUserConfig(); + $uc->setValue(SYSC_CHART_TYPE, $cl_type); } // If user has changed - set behalf_id accordingly in the session. if ($request->getParameter('onBehalfUser')) { diff --git a/invoice_send.php b/invoice_send.php index 135453b5..c86cebb5 100644 --- a/invoice_send.php +++ b/invoice_send.php @@ -29,7 +29,7 @@ require_once('initialize.php'); import('form.Form'); import('ttInvoiceHelper'); -import('ttSysConfig'); +import('ttUserConfig'); // Access checks. if (!(ttAccessAllowed('manage_invoices') || ttAccessAllowed('view_own_invoices'))) { @@ -48,7 +48,7 @@ if (!$invoice) { } // End of access checks. -$sc = new ttSysConfig($user->id); +$uc = new ttUserConfig(); if ($request->isPost()) { $cl_receiver = trim($request->getParameter('receiver')); @@ -56,8 +56,8 @@ if ($request->isPost()) { $cl_subject = trim($request->getParameter('subject')); $cl_comment = trim($request->getParameter('comment')); } else { - $cl_receiver = $sc->getValue(SYSC_LAST_INVOICE_EMAIL); - $cl_cc = $sc->getValue(SYSC_LAST_INVOICE_CC); + $cl_receiver = $uc->getValue(SYSC_LAST_INVOICE_EMAIL); + $cl_cc = $uc->getValue(SYSC_LAST_INVOICE_CC); $cl_subject = $i18n->get('title.invoice').' '.$invoice['name'].', '.$user->group_name; } @@ -78,8 +78,8 @@ if ($request->isPost()) { if ($err->no()) { // Save last invoice emails for future use. - $sc->setValue(SYSC_LAST_INVOICE_EMAIL, $cl_receiver); - $sc->setValue(SYSC_LAST_INVOICE_CC, $cl_cc); + $uc->setValue(SYSC_LAST_INVOICE_EMAIL, $cl_receiver); + $uc->setValue(SYSC_LAST_INVOICE_CC, $cl_cc); $body = ttInvoiceHelper::prepareInvoiceBody($cl_invoice_id, $cl_comment); diff --git a/report_send.php b/report_send.php index 9bbf9f51..526457bf 100644 --- a/report_send.php +++ b/report_send.php @@ -29,7 +29,7 @@ require_once('initialize.php'); import('form.Form'); import('form.ActionForm'); -import('ttSysConfig'); +import('ttUserConfig'); import('ttReportHelper'); // Access check. @@ -38,7 +38,7 @@ if (!(ttAccessAllowed('view_own_reports') || ttAccessAllowed('view_reports'))) { exit(); } -$sc = new ttSysConfig($user->id); +$uc = new ttUserConfig(); if ($request->isPost()) { $cl_receiver = trim($request->getParameter('receiver')); @@ -46,8 +46,8 @@ if ($request->isPost()) { $cl_subject = trim($request->getParameter('subject')); $cl_comment = trim($request->getParameter('comment')); } else { - $cl_receiver = $sc->getValue(SYSC_LAST_REPORT_EMAIL); - $cl_cc = $sc->getValue(SYSC_LAST_REPORT_CC); + $cl_receiver = $uc->getValue(SYSC_LAST_REPORT_EMAIL); + $cl_cc = $uc->getValue(SYSC_LAST_REPORT_CC); $cl_subject = $i18n->get('form.mail.report_subject'); } @@ -67,8 +67,8 @@ if ($request->isPost()) { if ($err->no()) { // Save last report emails for future use. - $sc->setValue(SYSC_LAST_REPORT_EMAIL, $cl_receiver); - $sc->setValue(SYSC_LAST_REPORT_CC, $cl_cc); + $uc->setValue(SYSC_LAST_REPORT_EMAIL, $cl_receiver); + $uc->setValue(SYSC_LAST_REPORT_CC, $cl_cc); // Obtain session bean with report attributes. $bean = new ActionForm('reportBean', new Form('reportForm')); -- 2.20.1