diff --git a/ext/admin/reports/reportClasses/EmployeeLeavesReport.php b/ext/admin/reports/reportClasses/EmployeeLeavesReport.php deleted file mode 100644 index fa33924b..00000000 --- a/ext/admin/reports/reportClasses/EmployeeLeavesReport.php +++ /dev/null @@ -1,70 +0,0 @@ -= ? and date_end <= ? and status = ?;"; - $params = array( - $request['date_start'], - $request['date_end'], - $request['status'] - ); - }else if(!empty($employeeList)){ - $query = "where employee in (".implode(",", $employeeList).") and date_start >= ? and date_end <= ?;"; - $params = array( - $request['date_start'], - $request['date_end'] - ); - }else if(($request['status'] != "NULL" && !empty($request['status']))){ - $query = "where status = ? and date_start >= ? and date_end <= ?;"; - $params = array( - $request['status'], - $request['date_start'], - $request['date_end'] - ); - }else{ - $query = "where date_start >= ? and date_end <= ?;"; - $params = array( - $request['date_start'], - $request['date_end'] - ); - } - - LogManager::getInstance()->info("Query:".$query); - LogManager::getInstance()->info("Params:".json_encode($params)); - - return array($query, $params); - } -} \ No newline at end of file diff --git a/ext/admin/travel/api/TravelActionManager.php b/ext/admin/travel/api/TravelActionManager.php new file mode 100644 index 00000000..40d3a10e --- /dev/null +++ b/ext/admin/travel/api/TravelActionManager.php @@ -0,0 +1,19 @@ +addUserClass("EmployeeImmigration"); + $this->addUserClass("EmployeeTravelRecord"); + } + } + + public function initializeFieldMappings(){ + $this->addFileFieldMapping('EmployeeImmigration', 'attachment1', 'name'); + $this->addFileFieldMapping('EmployeeImmigration', 'attachment2', 'name'); + $this->addFileFieldMapping('EmployeeImmigration', 'attachment3', 'name'); + + $this->addFileFieldMapping('EmployeeTravelRecord', 'attachment1', 'name'); + $this->addFileFieldMapping('EmployeeTravelRecord', 'attachment2', 'name'); + $this->addFileFieldMapping('EmployeeTravelRecord', 'attachment3', 'name'); + } + + public function initializeDatabaseErrorMappings(){ + + } + + public function setupModuleClassDefinitions(){ + + $this->addModelClass('ImmigrationDocument'); + $this->addModelClass('EmployeeImmigration'); + $this->addModelClass('EmployeeTravelRecord'); + + } + + } +} + + +if (!class_exists('ImmigrationDocument')) { + class ImmigrationDocument extends ICEHRM_Record { + var $_table = 'ImmigrationDocuments'; + + public function getAdminAccess(){ + return array("get","element","save","delete"); + } + + public function getManagerAccess(){ + return array("get","element","save","delete"); + } + + public function getUserAccess(){ + return array("get"); + } + + public function getUserOnlyMeAccess(){ + return array("get","element"); + } + } +} + +if (!class_exists('EmployeeImmigration')) { + class EmployeeImmigration extends ICEHRM_Record { + var $_table = 'EmployeeImmigrations'; + + public function getAdminAccess(){ + return array("get","element","save","delete"); + } + + public function getManagerAccess(){ + return array("get","element","save","delete"); + } + + public function getUserAccess(){ + return array("get"); + } + + public function getUserOnlyMeAccess(){ + return array("element","save","delete"); + } + } +} + + +if (!class_exists('EmployeeTravelRecord')) { + class EmployeeTravelRecord extends ApproveModel + { + var $_table = 'EmployeeTravelRecords'; + + var $notificationModuleName = "Travel Management"; + var $notificationUnitName = "TravelRequest"; + var $notificationUnitPrefix = "A"; + var $notificationUnitAdminUrl = "g=admin&n=travel&m=admin_Employees"; + var $preApproveSettingName = "Travel: Pre-Approve Travel Request"; + + public function getAdminAccess() + { + return array("get", "element", "save", "delete"); + } + + public function getManagerAccess() + { + return array("get", "element", "save", "delete"); + } + + public function getUserAccess() + { + return array("get"); + } + + public function getUserOnlyMeAccess() + { + return array("element", "save", "delete"); + } + + public function fieldsNeedToBeApproved() + { + return array( + "travel_from", + "travel_to", + "travel_date", + "return_date", + "funding", + "currency" + ); + } + + } +} \ No newline at end of file diff --git a/ext/admin/travel/index.php b/ext/admin/travel/index.php new file mode 100644 index 00000000..62a033a8 --- /dev/null +++ b/ext/admin/travel/index.php @@ -0,0 +1,78 @@ +. + +------------------------------------------------------------------ + +Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd] +Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah) + */ + +$moduleName = 'travel'; +define('MODULE_PATH',dirname(__FILE__)); +include APP_BASE_PATH.'header.php'; +include APP_BASE_PATH.'modulejslibs.inc.php'; + +$options = array(); +$options['setRemoteTable'] = 'true'; + +$moduleBuilder = new ModuleBuilder(); +$moduleBuilder->addModuleOrGroup(new ModuleTab('EmployeeTravelRecord','EmployeeTravelRecord','Travel Requests','EmployeeTravelRecordAdapter','','',true,$options)); +echo UIManager::getInstance()->renderModule($moduleBuilder); + + +$itemName = 'TravelRequest'; +$moduleName = 'Travel Management'; +$itemNameLower = strtolower($itemName); + +$statuses = array("Approved","Pending","Rejected","Cancelled"); + +?>
+baseService->getElement('Employee',$this->getCurrentProfileId(),null,true); + + $employeeTravel = new EmployeeTravelRecord(); + $employeeTravel->Load("id = ?",array($req->id)); + if($employeeTravel->id != $req->id){ + return new IceResponse(IceResponse::ERROR,"Travel record not found"); + } + + + if($this->user->user_level != 'Admin' && $this->getCurrentProfileId() != $employeeTravel->employee){ + return new IceResponse(IceResponse::ERROR,"Only an admin or owner of the travel request can do this"); + } + + if($employeeTravel->status != 'Approved'){ + return new IceResponse(IceResponse::ERROR,"Only an approved travel request can be cancelled"); + } + + $employeeTravel->status = 'Cancellation Requested'; + $ok = $employeeTravel->Save(); + if(!$ok){ + LogManager::getInstance()->error("Error occured while cancelling the travel:".$employeeTravel->ErrorMsg()); + return new IceResponse(IceResponse::ERROR,"Error occurred while cancelling the travel request. Please contact admin."); + } + + + $this->baseService->audit(IceConstants::AUDIT_ACTION, "Travel cancellation \ start:".$employeeTravel->date_start."\ end:".$employeeTravel->date_end); + $notificationMsg = $employee->first_name." ".$employee->last_name." cancelled a travel. Visit travel management module to approve"; + + $this->baseService->notificationManager->addNotification($employee->supervisor,$notificationMsg,'{"type":"url","url":"g=admin&n=travel&m=admin_Employees#tabEmployeeTravelRecord"}', + "Travel Module", null, false, true); + return new IceResponse(IceResponse::SUCCESS,$employeeTravel); + } +} +*/ \ No newline at end of file diff --git a/ext/modules/travel/api/TravelModulesManager.php b/ext/modules/travel/api/TravelModulesManager.php new file mode 100644 index 00000000..a7729196 --- /dev/null +++ b/ext/modules/travel/api/TravelModulesManager.php @@ -0,0 +1,24 @@ +. + +------------------------------------------------------------------ + +Original work Copyright (c) 2012 [Gamonoid Media Pvt. Ltd] +Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilinah) + */ + +$moduleName = 'travel'; +$moduleMainName = "EmployeeTravelRecord"; +$moduleItemName = "Travel Request"; +define('MODULE_PATH',dirname(__FILE__)); +include APP_BASE_PATH.'header.php'; +include APP_BASE_PATH.'modulejslibs.inc.php'; +?>
';
+ var deleteButton = '
';
+ var requestCancellationButton = '
';
+
+ var html = '