From: Nik Okuntseff Date: Fri, 7 Dec 2018 13:41:43 +0000 (+0000) Subject: More refactoring. X-Git-Tag: timetracker_1.19-1~462 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=00b824b147ae7e63fcd8fc1c41e54c356d975a02;p=timetracker.git More refactoring. --- diff --git a/WEB-INF/lib/ttInvoiceHelper.class.php b/WEB-INF/lib/ttInvoiceHelper.class.php index 93d272b4..78987b40 100644 --- a/WEB-INF/lib/ttInvoiceHelper.class.php +++ b/WEB-INF/lib/ttInvoiceHelper.class.php @@ -238,9 +238,11 @@ class ttInvoiceHelper { // The invoiceableItemsExist determines whether invoiceable records exist in the specified period. static function invoiceableItemsExist($fields) { - - $mdb2 = getConnection(); global $user; + $mdb2 = getConnection(); + + $group_id = $user->getGroup(); + $org_id = $user->org_id; $client_id = (int) $fields['client_id']; @@ -255,21 +257,22 @@ class ttInvoiceHelper { // Our query is different depending on tracking mode. if (MODE_TIME == $user->getTrackingMode()) { // In "time only" tracking mode there is a single user rate. - $sql = "select count(*) as num from tt_log l, tt_users u - where l.status = 1 and l.client_id = $client_id and l.invoice_id is NULL - and l.date >= ".$mdb2->quote($start)." and l.date <= ".$mdb2->quote($end)." - and l.user_id = u.id - and l.billable = 1"; // l.billable * u.rate * time_to_sec(l.duration)/3600 > 0 // See explanation below. + $sql = "select count(*) as num from tt_log l, tt_users u". + " where l.status = 1 and l.client_id = $client_id and l.invoice_id is null". + " and l.date >= ".$mdb2->quote($start)." and l.date <= ".$mdb2->quote($end). + " and l.user_id = u.id and l.group_id = $group_id and l.org_id = $org_id". + " and l.billable = 1"; // l.billable * u.rate * time_to_sec(l.duration)/3600 > 0 // See explanation below. } else { // sql part for project id. if ($project_id) $project_part = " and l.project_id = $project_id"; // When we have projects, rates are defined for each project in tt_user_project_binds table. - $sql = "select count(*) as num from tt_log l, tt_user_project_binds upb - where l.status = 1 and l.client_id = $client_id $project_part and l.invoice_id is NULL - and l.date >= ".$mdb2->quote($start)." and l.date <= ".$mdb2->quote($end)." - and upb.user_id = l.user_id and upb.project_id = l.project_id - and l.billable = 1"; // l.billable * upb.rate * time_to_sec(l.duration)/3600 > 0 + $sql = "select count(*) as num from tt_log l, tt_user_project_binds upb". + " where l.status = 1 and l.client_id = $client_id $project_part and l.invoice_id is null". + " and l.date >= ".$mdb2->quote($start)." and l.date <= ".$mdb2->quote($end). + " and l.group_id = $group_id and l.org_id = $org_id". + " and upb.user_id = l.user_id and upb.project_id = l.project_id". + " and l.billable = 1"; // l.billable * upb.rate * time_to_sec(l.duration)/3600 > 0 // Users with a lot of clients and projects (Jaro) may forget to set user rates properly. // Specifically, user rate may be set to 0 on a project, by mistake. This leads to error.no_invoiceable_items // and increased support cost. Commenting out allows us to include 0 cost items in invoices so that @@ -289,10 +292,11 @@ 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"; + $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.group_id = $group_id and ei.org_id = $org_id". + " and ei.cost <> 0 and ei.status = 1"; $res = $mdb2->query($sql); if (!is_a($res, 'PEAR_Error')) { $val = $res->fetchRow(); diff --git a/WEB-INF/templates/footer.tpl b/WEB-INF/templates/footer.tpl index ffb82d9d..fafccace 100644 --- a/WEB-INF/templates/footer.tpl +++ b/WEB-INF/templates/footer.tpl @@ -12,7 +12,7 @@
-
 Anuko Time Tracker 1.18.29.4602 | Copyright © Anuko | +  Anuko Time Tracker 1.18.29.4603 | Copyright © Anuko | {$i18n.footer.credits} | {$i18n.footer.license} | {$i18n.footer.improve}