posaune
[timetracker.git] / timesheet_view.php
index e6368a3..c8d7048 100644 (file)
@@ -51,6 +51,7 @@ if (!$timesheet) {
 
 if ($request->isPost()) {
   $cl_comment = trim($request->getParameter('comment'));
+  $approver_id = $request->getParameter('approver');
 }
 
 $options = ttTimesheetHelper::getReportOptions($timesheet);
@@ -60,7 +61,7 @@ $totals = ttReportHelper::getTotals($options);
 // Determine which controls to show and obtain date for them.
 $showSubmit = !$timesheet['submit_status'];
 if ($showSubmit) {
-  $approvers = ttTimesheetHelper::getApprovers($timesheet['user_id']);
+  $approvers = ttTimesheetHelper::getApprovers();
   $showApprovers = count($approvers) >= 1;
 }
 $canApprove = $user->can('approve_timesheets') || $user->can('approve_own_timesheets');
@@ -76,7 +77,7 @@ if ($showSubmit) {
       'name'=>'approver',
       'style'=>'width: 200px;',
       'data'=>$approvers,
-      'datakeys'=>array('id','name')));
+      'datakeys'=>array('id','name','email')));
   }
   $form->addInput(array('type'=>'submit','name'=>'btn_submit','value'=>$i18n->get('button.submit')));
 }
@@ -91,35 +92,51 @@ if ($showApprove) {
 if ($request->isPost()) {
   if ($request->getParameter('btn_submit')) {
     $fields = array('timesheet_id' => $timesheet['id'],
-      'approver_id' => $approver_id); // TODO: obtain (and check) approver id above during access checks.
-    if (ttTimesheetHelper::submitTimesheet($fields)) {
+      'approver_id' => $approver_id);
+    if (!ttTimesheetHelper::markSubmitted($fields))
+      $err->add($i18n->get('error.db'));
+    if ($err->no() && !ttTimesheetHelper::sendSubmitEmail($fields)) {
+      $err->add($i18n->get('error.mail_send'));
+    }
+    if ($err->no()) {
       // Redirect to self.
       header('Location: timesheet_view.php?id='.$timesheet['id']);
       exit();
-    } else
-      $err->add($i18n->get('error.db'));
+    }
   }
 
   if ($request->getParameter('btn_approve')) {
     $fields = array('timesheet_id' => $timesheet['id'],
+      'name' => $timesheet['name'],
+      'user_id' => $timesheet['user_id'],
       'comment' => $cl_comment);
-    if (ttTimesheetHelper::approveTimesheet($fields)) {
+    if (!ttTimesheetHelper::markApproved($fields))
+      $err->add($i18n->get('error.db'));
+    if ($err->no() && !ttTimesheetHelper::sendApprovedEmail($fields)) {
+      $err->add($i18n->get('error.mail_send'));
+    }
+    if ($err->no()) {
       // Redirect to self.
       header('Location: timesheet_view.php?id='.$timesheet['id']);
       exit();
-    } else
-      $err->add($i18n->get('error.db'));
+    }
   }
 
   if ($request->getParameter('btn_disapprove')) {
     $fields = array('timesheet_id' => $timesheet['id'],
+      'name' => $timesheet['name'],
+      'user_id' => $timesheet['user_id'],
       'comment' => $cl_comment);
-    if (ttTimesheetHelper::disapproveTimesheet($fields)) {
+    if (!ttTimesheetHelper::markDisapproved($fields))
+      $err->add($i18n->get('error.db'));
+    if ($err->no() && !ttTimesheetHelper::sendDisapprovedEmail($fields)) {
+      $err->add($i18n->get('error.mail_send'));
+    }
+    if ($err->no()) {
       // Redirect to self.
       header('Location: timesheet_view.php?id='.$timesheet['id']);
       exit();
-    } else
-      $err->add($i18n->get('error.db'));
+    }
   }
 }