function calculateEntry($id) { $sql = "\n SELECT * FROM timeEntries WHERE id = '" . $this->db->real_escape_string($id) . "';\n "; $query = $this->db->query($sql); $result = $query->fetch_assoc(); //Set inTime $inTime = new DateTime(); $inTime->setTimestamp($result['inTime']); $roundedInTime = $this->nearestQuarterHour($result['inTime']); $inTimeRaw = $result['inTime']; $inTimeDate = date("Y-m-d", $result['inTime']); //Out Time $outTime = new DateTime(); $outTime->setTimestamp($result['outTime']); $roundedOutTime = $this->nearestQuarterHour($result['outTime']); $outTimeRaw = $result['outTime']; $roundedOutTime = $this->nearestQuarterHour($result['outTime']); $outTimeDate = date("Y-m-d", $result['outTime']); $lessTime = $result['lessTime']; $timestamp = $result['timestamp']; $note = $result['note']; //Calculate Time Worked switch ($result['lessTime']) { case 60: $lessTime = 1; break; case 30: $lessTime = 0.5; break; case 15: $lessTime = 0.25; break; default: $lessTime = 0; } //Total Worked Time $dateTime1 = new DateTime($roundedInTime); $dateTime1->setDate(date('Y', strtotime($inTimeDate)), date('m', strtotime($inTimeDate)), date('d', strtotime($inTimeDate))); $dateTime2 = new DateTime($roundedOutTime); $dateTime2->setDate(date('Y', strtotime($outTimeDate)), date('m', strtotime($outTimeDate)), date('d', strtotime($outTimeDate))); $interval = $dateTime1->diff($dateTime2); $timeWorked = $this->timeToDecimal($interval->h . ":" . $interval->i) - $lessTime; if ($timeWorked !== 0) { $timeWorked = $timeWorked; } else { $timeWorked = 0; } //Get Code Information $code = new codeModel(); $codeId = $result['codeId']; $code->load($result['codeId']); $codeName = $code->getName(); $data['date'] = date('Y-m-d', $inTimeRaw); $data['inTime'] = $inTimeRaw; $data['outTime'] = $outTimeRaw; $data['lessTime'] = $lessTime; $data['timeWorked'] = $timeWorked; $data['code'] = $codeName; $data['timestamp'] = $timestamp; $data['note'] = $note; //Get the user of the entry. $entry = new timeEntryModel($id); if ($entry->validated($id, $result['userId'])) { $data['validated'] = 0; } else { $data['validated'] = 1; } return $data; }
function remove($id) { $this->db = Staple_DB::get(); if ($id !== null) { $auth = Staple_Auth::get(); $user = new userModel($auth->getAuthId()); $userId = $user->getId(); $accountLevel = $user->getAuthLevel(); $entry = new timeEntryModel($id); $fullDate = $entry->getFullDate(); $inTime = $entry->getInTime(); $outTime = $entry->getOutTime(); $effectedUserId = $entry->getUserId(); $effectedUser = new userModel(); $account = $effectedUser->userInfo($effectedUserId); //Check for admin account delete if ($accountLevel >= 900) { $sql = "DELETE FROM timeEntries WHERE id = '" . $this->db->real_escape_string($id) . "'"; //AND userId <> '".$this->db->real_escape_string($userId)."' if ($this->db->query($sql)) { $audit = new auditModel(); $audit->setUserId($account['id']); $audit->setAction('Admin Entry Remove'); $audit->setItem($user->getUsername() . " removed entry for " . $fullDate . " In Time: " . $inTime . " Out Time: " . $outTime . ""); $audit->save(); return true; } } else { //Check if validated if ($this->validated($id)) { $sql = "DELETE FROM timeEntries WHERE id = '" . $this->db->real_escape_string($id) . "' AND userId = '" . $this->db->real_escape_string($userId) . "'"; if ($this->db->query($sql)) { return true; } } } } }
public function admininsert() { if ($this->accountLevel >= 900) { $form = new insertTimeForm(); $form->admin(1); if ($form->wasSubmitted()) { $form->addData($_POST); if ($form->validate()) { $data = $form->exportFormData(); //Create a new entry object and set properties $entry = new timeEntryModel(); $entry->setDate($data['date']); $entry->setInTime($data['inTime']); $entry->setOutTime($data['outTime']); $entry->setLessTime($data['lessTime']); $entry->setCodeId($data['code']); $entry->setUserId($data['account']); $entry->setNote($data['note']); //Save entry data to table. if ($entry->adminSave()) { //Return a new time form with success message $form = new insertTimeForm(); $form->admin(1); $form->successMessage = array("<i class=\"fa fa-check\"></i> Entry saved for " . $data['date'] . ""); $this->view->form = $form; } else { //Return the same form with a warning message $message = "<i class=\"fa fa-warning\"></i> Administrative action not allowed on your own timesheet."; $form->errorMessage = array($message); $this->view->form = $form; } } else { $this->view->form = $form; } } else { $this->view->form = $form; } } else { header("location: " . $this->_link(array('index')) . ""); } }