X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/timetracker.git/blobdiff_plain/05b0f8e4762b8a2ca2002a8f7545b7ff68cc3925..0056678b5dda50f9664753a8134c558c7583dce9:/WEB-INF/lib/ttReportHelper.class.php
diff --git a/WEB-INF/lib/ttReportHelper.class.php b/WEB-INF/lib/ttReportHelper.class.php
index ae90374c..2e2113df 100644
--- a/WEB-INF/lib/ttReportHelper.class.php
+++ b/WEB-INF/lib/ttReportHelper.class.php
@@ -53,6 +53,8 @@ class ttReportHelper {
if ($bean->getAttribute('include_records')=='2') $dropdown_parts .= ' and l.billable = 0';
if ($bean->getAttribute('invoice')=='1') $dropdown_parts .= ' and l.invoice_id is not NULL';
if ($bean->getAttribute('invoice')=='2') $dropdown_parts .= ' and l.invoice_id is NULL';
+ if ($bean->getAttribute('paid_status')=='1') $dropdown_parts .= ' and l.paid = 1';
+ if ($bean->getAttribute('paid_status')=='2') $dropdown_parts .= ' and l.paid = 0';
// Prepare user list part.
$userlist = -1;
@@ -74,7 +76,7 @@ class ttReportHelper {
new DateAndTime($user->date_format, $bean->getAttribute('start_date')),
new DateAndTime($user->date_format, $bean->getAttribute('end_date')));
}
- $where = " where l.status = 1 and l.date >= '".$period->getBeginDate(DB_DATEFORMAT)."' and l.date <= '".$period->getEndDate(DB_DATEFORMAT)."'".
+ $where = " where l.status = 1 and l.date >= '".$period->getStartDate(DB_DATEFORMAT)."' and l.date <= '".$period->getEndDate(DB_DATEFORMAT)."'".
" $user_list_part $dropdown_parts";
return $where;
}
@@ -96,6 +98,8 @@ class ttReportHelper {
if ($report['billable']=='2') $dropdown_parts .= ' and l.billable = 0';
if ($report['invoice']=='1') $dropdown_parts .= ' and l.invoice_id is not NULL';
if ($report['invoice']=='2') $dropdown_parts .= ' and l.invoice_id is NULL';
+ if ($report['paid_status']=='1') $dropdown_parts .= ' and l.paid = 1';
+ if ($report['paid_status']=='2') $dropdown_parts .= ' and l.paid = 0';
// Prepare user list part.
$userlist = -1;
@@ -125,7 +129,7 @@ class ttReportHelper {
new DateAndTime($user->date_format, $report['period_start']),
new DateAndTime($user->date_format, $report['period_end']));
}
- $where = " where l.status = 1 and l.date >= '".$period->getBeginDate(DB_DATEFORMAT)."' and l.date <= '".$period->getEndDate(DB_DATEFORMAT)."'".
+ $where = " where l.status = 1 and l.date >= '".$period->getStartDate(DB_DATEFORMAT)."' and l.date <= '".$period->getEndDate(DB_DATEFORMAT)."'".
" $user_list_part $dropdown_parts";
return $where;
}
@@ -164,7 +168,7 @@ class ttReportHelper {
new DateAndTime($user->date_format, $bean->getAttribute('start_date')),
new DateAndTime($user->date_format, $bean->getAttribute('end_date')));
}
- $where = " where ei.status = 1 and ei.date >= '".$period->getBeginDate(DB_DATEFORMAT)."' and ei.date <= '".$period->getEndDate(DB_DATEFORMAT)."'".
+ $where = " where ei.status = 1 and ei.date >= '".$period->getStartDate(DB_DATEFORMAT)."' and ei.date <= '".$period->getEndDate(DB_DATEFORMAT)."'".
" $user_list_part $dropdown_parts";
return $where;
}
@@ -211,7 +215,7 @@ class ttReportHelper {
new DateAndTime($user->date_format, $report['period_start']),
new DateAndTime($user->date_format, $report['period_end']));
}
- $where = " where ei.status = 1 and ei.date >= '".$period->getBeginDate(DB_DATEFORMAT)."' and ei.date <= '".$period->getEndDate(DB_DATEFORMAT)."'".
+ $where = " where ei.status = 1 and ei.date >= '".$period->getStartDate(DB_DATEFORMAT)."' and ei.date <= '".$period->getEndDate(DB_DATEFORMAT)."'".
" $user_list_part $dropdown_parts";
return $where;
}
@@ -276,6 +280,10 @@ class ttReportHelper {
array_push($fields, "cast(l.billable * coalesce(upb.rate, 0) * time_to_sec(l.duration)/3600 as decimal(10,2)) as cost"); // Use project rate for user.
array_push($fields, "null as expense");
}
+ // Add paid status.
+ if ($user->canManageTeam() && $bean->getAttribute('chpaid'))
+ array_push($fields, 'l.paid as paid');
+
// Add invoice name if it is selected.
if (($user->canManageTeam() || $user->isClient()) && $bean->getAttribute('chinvoice'))
array_push($fields, 'i.name as invoice');
@@ -945,7 +953,7 @@ class ttReportHelper {
new DateAndTime($user->date_format, $bean->getAttribute('end_date')));
}
- $totals['start_date'] = $period->getBeginDate();
+ $totals['start_date'] = $period->getStartDate();
$totals['end_date'] = $period->getEndDate();
$totals['time'] = $total_time;
$totals['cost'] = $total_cost;
@@ -1015,7 +1023,7 @@ class ttReportHelper {
new DateAndTime($user->date_format, $report['period_end']));
}
- $totals['start_date'] = $period->getBeginDate();
+ $totals['start_date'] = $period->getStartDate();
$totals['end_date'] = $period->getEndDate();
$totals['time'] = $total_time;
$totals['cost'] = $total_cost;
@@ -1062,7 +1070,7 @@ class ttReportHelper {
$style_title = 'text-align: center; font-size: 15pt; font-family: Arial, Helvetica, sans-serif;';
$tableHeader = 'font-weight: bold; background-color: #a6ccf7; text-align: left;';
$tableHeaderCentered = 'font-weight: bold; background-color: #a6ccf7; text-align: center;';
- $rowItem = 'background-color: #ccccce;';
+ $rowItem = 'background-color: #ffffff;';
$rowItemAlt = 'background-color: #f5f5f5;';
$rowSubtotal = 'background-color: #e0e0e0;';
$cellLeftAligned = 'text-align: left; vertical-align: top;';
@@ -1160,6 +1168,8 @@ class ttReportHelper {
$body .= '
'.$i18n->getKey('label.note').' | ';
if ($bean->getAttribute('chcost'))
$body .= ''.$i18n->getKey('label.cost').' | ';
+ if ($bean->getAttribute('chpaid'))
+ $body .= ''.$i18n->getKey('label.paid').' | ';
if ($bean->getAttribute('chinvoice'))
$body .= ''.$i18n->getKey('label.invoice').' | ';
$body .= '';
@@ -1201,6 +1211,7 @@ class ttReportHelper {
$body .= ($user->canManageTeam() || $user->isClient()) ? $subtotals[$prev_grouped_by]['cost'] : $subtotals[$prev_grouped_by]['expenses'];
$body .= '';
}
+ if ($bean->getAttribute('chpaid')) $body .= ' | ';
if ($bean->getAttribute('chinvoice')) $body .= ' | ';
$body .= '';
$body .= '| |
';
@@ -1233,6 +1244,11 @@ class ttReportHelper {
$body .= ''.htmlspecialchars($record['note']).' | ';
if ($bean->getAttribute('chcost'))
$body .= ''.$record['cost'].' | ';
+ if ($bean->getAttribute('chpaid')) {
+ $body .= '';
+ $body .= $record['paid'] == 1 ? $i18n->getKey('label.yes') : $i18n->getKey('label.no');
+ $body .= ' | ';
+ }
if ($bean->getAttribute('chinvoice'))
$body .= ''.htmlspecialchars($record['invoice']).' | ';
$body .= '';
@@ -1262,6 +1278,7 @@ class ttReportHelper {
$body .= ($user->canManageTeam() || $user->isClient()) ? $subtotals[$cur_grouped_by]['cost'] : $subtotals[$cur_grouped_by]['expenses'];
$body .= '';
}
+ if ($bean->getAttribute('chpaid')) $body .= ' | ';
if ($bean->getAttribute('chinvoice')) $body .= ' | ';
$body .= '';
}
@@ -1284,6 +1301,7 @@ class ttReportHelper {
$body .= ($user->canManageTeam() || $user->isClient()) ? $totals['cost'] : $totals['expenses'];
$body .= '';
}
+ if ($bean->getAttribute('chpaid')) $body .= ' | ';
if ($bean->getAttribute('chinvoice')) $body .= ' | ';
$body .= '';
@@ -1300,6 +1318,20 @@ class ttReportHelper {
return $body;
}
+ // checkFavReportCondition - checks whether it is okay to send fav report.
+ static function checkFavReportCondition($report, $condition)
+ {
+ $items = ttReportHelper::getFavItems($report);
+
+ $condition = str_replace('count', '', $condition);
+ $count_required = intval(trim(str_replace('>', '', $condition)));
+
+ if (count($items) > $count_required)
+ return true; // Condition ok.
+
+ return false;
+ }
+
// prepareFavReportBody - prepares an email body for a favorite report.
static function prepareFavReportBody($report)
{
@@ -1320,7 +1352,7 @@ class ttReportHelper {
$style_title = 'text-align: center; font-size: 15pt; font-family: Arial, Helvetica, sans-serif;';
$tableHeader = 'font-weight: bold; background-color: #a6ccf7; text-align: left;';
$tableHeaderCentered = 'font-weight: bold; background-color: #a6ccf7; text-align: center;';
- $rowItem = 'background-color: #ccccce;';
+ $rowItem = 'background-color: #ffffff;';
$rowItemAlt = 'background-color: #f5f5f5;';
$rowSubtotal = 'background-color: #e0e0e0;';
$cellLeftAligned = 'text-align: left; vertical-align: top;';
@@ -1418,6 +1450,8 @@ class ttReportHelper {
$body .= ''.$i18n->getKey('label.note').' | ';
if ($report['show_cost'])
$body .= ''.$i18n->getKey('label.cost').' | ';
+ if ($report['show_paid'])
+ $body .= ''.$i18n->getKey('label.paid').' | ';
if ($report['show_invoice'])
$body .= ''.$i18n->getKey('label.invoice').' | ';
$body .= '';
@@ -1459,6 +1493,7 @@ class ttReportHelper {
$body .= ($user->canManageTeam() || $user->isClient()) ? $subtotals[$prev_grouped_by]['cost'] : $subtotals[$prev_grouped_by]['expenses'];
$body .= '';
}
+ if ($report['show_paid']) $body .= ' | ';
if ($report['show_invoice']) $body .= ' | ';
$body .= '';
$body .= '| |
';
@@ -1491,6 +1526,11 @@ class ttReportHelper {
$body .= ''.htmlspecialchars($record['note']).' | ';
if ($report['show_cost'])
$body .= ''.$record['cost'].' | ';
+ if ($report['show_paid']) {
+ $body .= '';
+ $body .= $record['paid'] == 1 ? $i18n->getKey('label.yes') : $i18n->getKey('label.no');
+ $body .= ' | ';
+ }
if ($report['show_invoice'])
$body .= ''.htmlspecialchars($record['invoice']).' | ';
$body .= '';
@@ -1520,6 +1560,7 @@ class ttReportHelper {
$body .= ($user->canManageTeam() || $user->isClient()) ? $subtotals[$cur_grouped_by]['cost'] : $subtotals[$cur_grouped_by]['expenses'];
$body .= '';
}
+ if ($report['show_paid']) $body .= ' | ';
if ($report['show_invoice']) $body .= ' | ';
$body .= '';
}
@@ -1542,6 +1583,7 @@ class ttReportHelper {
$body .= ($user->canManageTeam() || $user->isClient()) ? $totals['cost'] : $totals['expenses'];
$body .= '';
}
+ if ($report['show_paid']) $body .= ' | ';
if ($report['show_invoice']) $body .= ' | ';
$body .= '';
@@ -1559,9 +1601,9 @@ class ttReportHelper {
}
// sendFavReport - sends a favorite report to a specified email, called from cron.php
- static function sendFavReport($report, $email) {
+ static function sendFavReport($report, $subject, $email, $cc) {
// We are called from cron.php, we have no $bean in session.
- // cron.php set global $user and $i18n objects to match our favorite report user.
+ // cron.php sets global $user and $i18n objects to match our favorite report user.
global $user;
global $i18n;
@@ -1573,9 +1615,14 @@ class ttReportHelper {
$mailer->setCharSet(CHARSET);
$mailer->setContentType('text/html');
$mailer->setSender(SENDER);
+ if (!empty($cc))
+ $mailer->setReceiverCC($cc);
+ if (!empty($user->bcc_email))
+ $mailer->setReceiverBCC($user->bcc_email);
$mailer->setReceiver($email);
- $mailer->setSendType(MAIL_MODE);
- if (!$mailer->send($report['name'], $body))
+ $mailer->setMailMode(MAIL_MODE);
+ if (empty($subject)) $subject = $report['name'];
+ if (!$mailer->send($subject, $body))
return false;
return true;