]> wagnertech.de Git - timetracker.git/commitdiff
Allowed including items with 0 cost in invoices.
authoranuko <support@anuko.com>
Mon, 1 Jan 2018 19:34:37 +0000 (19:34 +0000)
committeranuko <support@anuko.com>
Mon, 1 Jan 2018 19:34:37 +0000 (19:34 +0000)
WEB-INF/lib/ttInvoiceHelper.class.php
WEB-INF/templates/footer.tpl

index 3980b8fb5425dfcc0c23b73821d715ff8cb104a2..b7d2cc280e8577e00364a59e765fb8b94f6d845b 100644 (file)
@@ -211,8 +211,8 @@ class ttInvoiceHelper {
       $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.billable * u.rate * time_to_sec(l.duration)/3600 > 0
-        and l.user_id = u.id";
+        and l.user_id = u.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";
@@ -221,8 +221,14 @@ class ttInvoiceHelper {
       $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.billable * upb.rate * time_to_sec(l.duration)/3600 > 0
-        and upb.user_id = l.user_id and upb.project_id = l.project_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
+        // the problem becomes obvious.
+
+        // TODO: If the above turns out useful, rework the query to simplify it by removing left join.
     }
     $res = $mdb2->query($sql);
     if (!is_a($res, 'PEAR_Error')) {
@@ -293,7 +299,7 @@ class ttInvoiceHelper {
         set l.invoice_id = $last_id
         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.billable * u.rate * time_to_sec(l.duration)/3600 > 0";
+        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";
@@ -304,7 +310,13 @@ class ttInvoiceHelper {
         set l.invoice_id = $last_id
         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.billable * upb.rate * time_to_sec(l.duration)/3600 > 0";
+        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
+        // the problem becomes obvious.
+
+        // TODO: If the above turns out useful, rework the query to simplify it by removing left join.
     }
     $affected = $mdb2->exec($sql);
     if (is_a($affected, 'PEAR_Error'))
index 27f2f4b0e03af1ed6de4fd93a01abb97214d65ac..7321b8789fdbd3267383f362c7f9813253cf2b7d 100644 (file)
@@ -12,7 +12,7 @@
       <br>
       <table cellspacing="0" cellpadding="4" width="100%" border="0">
         <tr>
-          <td align="center">&nbsp;Anuko Time Tracker 1.13.4.3713 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
+          <td align="center">&nbsp;Anuko Time Tracker 1.13.5.3714 | Copyright &copy; <a href="https://www.anuko.com/lp/tt_3.htm" target="_blank">Anuko</a> |
             <a href="https://www.anuko.com/lp/tt_4.htm" target="_blank">{$i18n.footer.credits}</a> |
             <a href="https://www.anuko.com/lp/tt_5.htm" target="_blank">{$i18n.footer.license}</a> |
             <a href="https://www.anuko.com/lp/tt_7.htm" target="_blank">{$i18n.footer.improve}</a>