public function init() { //Add Employee time sheets if it is not already created for current week $empId = $this->getCurrentEmployeeId(); if (date('w', strtotime("now")) == 0) { $start = date("Y-m-d", strtotime("now")); } else { $start = date("Y-m-d", strtotime("last Sunday")); } if (date('w', strtotime("now")) == 6) { $end = date("Y-m-d", strtotime("now")); } else { $end = date("Y-m-d", strtotime("next Saturday")); } $timeSheet = new EmployeeTimeSheet(); $timeSheet->Load("employee = ? and date_start = ? and date_end = ?", array($empId, $start, $end)); if ($timeSheet->date_start == $start && $timeSheet->employee == $empId) { } else { if (!empty($empId)) { $timeSheet->employee = $empId; $timeSheet->date_start = $start; $timeSheet->date_end = $end; $timeSheet->status = "Pending"; $ok = $timeSheet->Save(); if (!$ok) { error_log("Error creating time sheet : " . $timeSheet->ErrorMsg()); } } } //Generate missing timesheets }
private function getLastTimeSheetHours() { $timeSheet = new EmployeeTimeSheet(); $timeSheet->Load("employee = ? order by date_end desc limit 1", array(BaseService::getInstance()->getCurrentProfileId())); if (empty($timeSheet->employee)) { return new IceResponse(IceResponse::SUCCESS, "0:00"); } $timeSheetEntry = new EmployeeTimeEntry(); $list = $timeSheetEntry->Find("timesheet = ?", array($timeSheet->id)); $seconds = 0; foreach ($list as $entry) { $seconds += strtotime($entry->date_end) - strtotime($entry->date_start); } $minutes = (int) ($seconds / 60); $rem = $minutes % 60; $hours = ($minutes - $rem) / 60; if ($rem < 10) { $rem = "0" . $rem; } return new IceResponse(IceResponse::SUCCESS, $hours . ":" . $rem); }
public function getData($report, $request) { $employeeCache = array(); $employeeList = array(); if (!empty($request['employee'])) { $employeeList = json_decode($request['employee'], true); } if (in_array("NULL", $employeeList)) { $employeeList = array(); } $employee_query = ""; if (!empty($employeeList)) { $employee_query = "employee in (" . implode(",", $employeeList) . ") and "; } $timeSheet = new EmployeeTimeSheet(); if ($request['status'] != "NULL") { $timeSheets = $timeSheet->Find($employee_query . "status = ? and date_start >= ? and date_end <= ?", array($request['status'], $request['date_start'], $request['date_end'])); } else { $timeSheets = $timeSheet->Find($employee_query . "date_start >= ? and date_end <= ?", array($request['date_start'], $request['date_end'])); } if (!$timeSheets) { LogManager::getInstance()->info($timeSheet->ErrorMsg()); } $reportData = array(); $reportData[] = array("Employee ID", "Employee", "Name", "Start", "End", "Total Time", "Status"); foreach ($timeSheets as $ts) { $employee = $employeeCache[$ts->employee]; if (empty($employee)) { $employee = new Employee(); $employee->Load("id = ?", array($ts->employee)); if (empty($employee->id)) { continue; } $employeeCache[$employee->id] = $employee; } $reportData[] = array($employee->employee_id, $employee->first_name . " " . $employee->last_name, date("F j, Y", strtotime($ts->date_start)) . " - " . date("F j, Y", strtotime($ts->date_end)), $ts->date_start, $ts->date_end, $ts->getTotalTime(), $ts->status); } return $reportData; }
public function getSubEmployeeTimeSheets($req) { $employee = $this->baseService->getElement('Employee', $this->getCurrentProfileId(), null, true); $subordinate = new Employee(); $subordinates = $subordinate->Find("supervisor = ?", array($employee->id)); $subordinatesIds = ""; foreach ($subordinates as $sub) { if ($subordinatesIds != "") { $subordinatesIds .= ","; } $subordinatesIds .= $sub->id; } $subordinatesIds .= ""; $mappingStr = $req->sm; $map = json_decode($mappingStr); $timeSheet = new EmployeeTimeSheet(); $list = $timeSheet->Find("employee in (" . $subordinatesIds . ")", array()); if (!$list) { LogManager::getInstance()->info($timeSheet->ErrorMsg()); } if (!empty($mappingStr)) { $list = $this->baseService->populateMapping($list, $map); } return new IceResponse(IceResponse::SUCCESS, $list); }
EmployeeLanguage::SetDatabaseAdapter($dbLocal); EmergencyContact::SetDatabaseAdapter($dbLocal); EmployeeDependent::SetDatabaseAdapter($dbLocal); EmployeeImmigration::SetDatabaseAdapter($dbLocal); EmployeeSalary::SetDatabaseAdapter($dbLocal); LeaveType::SetDatabaseAdapter($dbLocal); LeavePeriod::SetDatabaseAdapter($dbLocal); WorkDay::SetDatabaseAdapter($dbLocal); HoliDay::SetDatabaseAdapter($dbLocal); LeaveRule::SetDatabaseAdapter($dbLocal); EmployeeLeave::SetDatabaseAdapter($dbLocal); EmployeeLeaveDay::SetDatabaseAdapter($dbLocal); File::SetDatabaseAdapter($dbLocal); Client::SetDatabaseAdapter($dbLocal); Project::SetDatabaseAdapter($dbLocal); EmployeeTimeSheet::SetDatabaseAdapter($dbLocal); EmployeeTimeEntry::SetDatabaseAdapter($dbLocal); EmployeeProject::SetDatabaseAdapter($dbLocal); Document::SetDatabaseAdapter($dbLocal); EmployeeDocument::SetDatabaseAdapter($dbLocal); CompanyLoan::SetDatabaseAdapter($dbLocal); EmployeeCompanyLoan::SetDatabaseAdapter($dbLocal); Setting::SetDatabaseAdapter($dbLocal); ChiNhanh::SetDatabaseAdapter($dbLocal); Ca::SetDatabaseAdapter($dbLocal); BoPhan::SetDatabaseAdapter($dbLocal); Nguon::SetDatabaseAdapter($dbLocal); LoaiNgay::SetDatabaseAdapter($dbLocal); NVState::SetDatabaseAdapter($dbLocal); NhanVien::SetDatabaseAdapter($dbLocal); NhuCauTuyenDung::SetDatabaseAdapter($dbLocal);