IceHrm v18.0
This commit is contained in:
@@ -14,46 +14,6 @@ class TravelActionManager extends ApproveModuleActionManager{
|
||||
}
|
||||
|
||||
public function getModuleTabUrl(){
|
||||
return "g=admin&n=travel&m=admin_Employees#tabEmployeeTravelRecord";
|
||||
return "g=modules&n=travel&m=module_Travel_Management#tabSubordinateEmployeeTravelRecord";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
class TravelActionManager extends SubActionManager{
|
||||
public function cancelTravel($req){
|
||||
|
||||
$employee = $this->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);
|
||||
}
|
||||
}
|
||||
*/
|
||||
@@ -2,16 +2,16 @@
|
||||
<!-- small box -->
|
||||
<div class="small-box bg-aqua">
|
||||
<div class="inner">
|
||||
<h3>My Travel</h3>
|
||||
<h3><t>My Travel</t></h3>
|
||||
<p>
|
||||
Management
|
||||
<t>Management</t>
|
||||
</p>
|
||||
</div>
|
||||
<div class="icon">
|
||||
<i class="ion ion-plane"></i>
|
||||
</div>
|
||||
<a href="#_moduleLink_#" class="small-box-footer" id="mytravelLink">
|
||||
Travel Management <i class="fa fa-arrow-circle-right"></i>
|
||||
<t>Travel Management</t> <i class="fa fa-arrow-circle-right"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -22,15 +22,25 @@ Developer: Thilina Hasantha (thilina.hasantha[at]gmail.com / facebook.com/thilin
|
||||
*/
|
||||
|
||||
$moduleName = 'travel';
|
||||
$moduleMainName = "EmployeeTravelRecord";
|
||||
$moduleItemName = "Travel Request";
|
||||
$moduleMainName = "EmployeeTravelRecord"; // for creating module js lib
|
||||
$subModuleMainName = "SubordinateEmployeeTravelRecord";
|
||||
$moduleItemName = "Travel Request"; // For permissions
|
||||
|
||||
$itemName = $moduleItemName; // for status change popup
|
||||
$itemNameLower = strtolower($moduleMainName); // for status change popup
|
||||
$appModName = $moduleMainName.'Approval';
|
||||
|
||||
define('MODULE_PATH',dirname(__FILE__));
|
||||
include APP_BASE_PATH.'header.php';
|
||||
$additionalJs = array();
|
||||
$additionalJs[] = BASE_URL.'admin/travel/lib.js?v='.$jsVersion;
|
||||
include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||
?><div class="span9">
|
||||
|
||||
<ul class="nav nav-tabs" id="modTab" style="margin-bottom:0px;margin-left:5px;border-bottom: none;">
|
||||
<li class="active"><a id="tab<?=$moduleMainName?>" href="#tabPage<?=$moduleMainName?>">Travel Requests</a></li>
|
||||
<li class="active"><a id="tab<?=$moduleMainName?>" href="#tabPage<?=$moduleMainName?>"><?=LanguageManager::tran('Travel Requests')?></a></li>
|
||||
<li class=""><a id="tab<?=$subModuleMainName?>" href="#tabPage<?=$subModuleMainName?>"><?=LanguageManager::tran('Subordinate Travel Requests')?></a></li>
|
||||
<li class=""><a id="tab<?=$appModName?>" href="#tabPage<?=$appModName?>"><?=LanguageManager::tran('Travel Request Approval')?></a></li>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content">
|
||||
@@ -40,6 +50,22 @@ include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||
</div>
|
||||
<div id="<?=$moduleMainName?>Form" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane" id="tabPage<?=$subModuleMainName?>">
|
||||
<div id="<?=$subModuleMainName?>" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
||||
|
||||
</div>
|
||||
<div id="<?=$subModuleMainName?>Form" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab-pane" id="tabPage<?=$appModName?>">
|
||||
<div id="<?=$appModName?>" class="reviewBlock" data-content="List" style="padding-left:5px;">
|
||||
|
||||
</div>
|
||||
<div id="<?=$appModName?>Form" class="reviewBlock" data-content="Form" style="padding-left:5px;display:none;">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -60,7 +86,18 @@ include APP_BASE_PATH.'modulejslibs.inc.php';
|
||||
modJsList['tab<?=$moduleMainName?>'].setShowEdit(false);
|
||||
<?php }?>
|
||||
|
||||
modJsList['tab<?=$appModName?>'] = new <?=$moduleMainName?>ApproverAdapter('<?=$appModName?>', '<?=$appModName?>');
|
||||
modJsList['tab<?=$appModName?>'].setShowAddNew(false);
|
||||
modJsList['tab<?=$appModName?>'].setShowDelete(false);
|
||||
modJsList['tab<?=$appModName?>'].setShowEdit(false);
|
||||
|
||||
modJsList['tab<?=$subModuleMainName?>'] = new <?=$subModuleMainName?>Adapter('<?=$moduleMainName?>','<?=$subModuleMainName?>');
|
||||
modJsList['tab<?=$subModuleMainName?>'].setRemoteTable(true);
|
||||
modJsList['tab<?=$subModuleMainName?>'].setShowAddNew(false);
|
||||
modJsList['tab<?=$subModuleMainName?>'].setShowDelete(false);
|
||||
modJsList['tab<?=$subModuleMainName?>'].setShowEdit(true);
|
||||
|
||||
var modJs = modJsList['tab<?=$moduleMainName?>'];
|
||||
|
||||
</script>
|
||||
<?php include APP_BASE_PATH.'footer.php';?>
|
||||
<?php include APP_BASE_PATH.'footer.php';?>
|
||||
|
||||
@@ -51,11 +51,14 @@ EmployeeImmigrationAdapter.method('getFormFields', function() {
|
||||
|
||||
|
||||
|
||||
function EmployeeTravelRecordAdapter(endPoint) {
|
||||
this.initAdapter(endPoint);
|
||||
function EmployeeTravelRecordAdapter(endPoint,tab,filter,orderBy) {
|
||||
this.initAdapter(endPoint,tab,filter,orderBy);
|
||||
this.itemName = 'Travel';
|
||||
this.itemNameLower = 'employeetravelrecord';
|
||||
this.modulePathName = 'travel';
|
||||
}
|
||||
|
||||
EmployeeTravelRecordAdapter.inherits(AdapterBase);
|
||||
EmployeeTravelRecordAdapter.inherits(ApproveModuleAdapter);
|
||||
|
||||
|
||||
|
||||
@@ -103,6 +106,7 @@ EmployeeTravelRecordAdapter.method('getFormFields', function() {
|
||||
];
|
||||
});
|
||||
|
||||
/*
|
||||
EmployeeTravelRecordAdapter.method('getActionButtonsHtml', function(id,data) {
|
||||
var editButton = '<img class="tableActionButton" src="_BASE_images/edit.png" style="cursor:pointer;" rel="tooltip" title="Edit" onclick="modJs.edit(_id_);return false;"></img>';
|
||||
var deleteButton = '<img class="tableActionButton" src="_BASE_images/delete.png" style="margin-left:15px;cursor:pointer;" rel="tooltip" title="Delete" onclick="modJs.deleteRow(_id_);return false;"></img>';
|
||||
@@ -155,4 +159,72 @@ EmployeeTravelRecordAdapter.method('cancelSuccessCallBack', function(callBackDat
|
||||
EmployeeTravelRecordAdapter.method('cancelFailCallBack', function(callBackData) {
|
||||
this.showMessage("Error Occurred while cancelling Travel request", callBackData);
|
||||
});
|
||||
*/
|
||||
|
||||
/*
|
||||
EmployeeTravelRecordApproverAdapter
|
||||
*/
|
||||
|
||||
function EmployeeTravelRecordApproverAdapter(endPoint,tab,filter,orderBy) {
|
||||
this.initAdapter(endPoint,tab,filter,orderBy);
|
||||
this.itemName = 'Travel';
|
||||
this.itemNameLower = 'employeetravelrecord';
|
||||
this.modulePathName = 'travel';
|
||||
}
|
||||
|
||||
EmployeeTravelRecordApproverAdapter.inherits(EmployeeTravelRecordAdminAdapter);
|
||||
|
||||
EmployeeTravelRecordApproverAdapter.method('getActionButtonsHtml', function(id,data) {
|
||||
var statusChangeButton = '<img class="tableActionButton" src="_BASE_images/run.png" style="cursor:pointer;" rel="tooltip" title="Change Status" onclick="modJs.openStatus(_id_, \'_cstatus_\');return false;"></img>';
|
||||
var viewLogsButton = '<img class="tableActionButton" src="_BASE_images/log.png" style="margin-left:15px;cursor:pointer;" rel="tooltip" title="View Logs" onclick="modJs.getLogs(_id_);return false;"></img>';
|
||||
|
||||
var html = '<div style="width:80px;">_status__logs_</div>';
|
||||
|
||||
|
||||
html = html.replace('_logs_',viewLogsButton);
|
||||
|
||||
|
||||
if(data[this.getStatusFieldPosition()] == 'Processing'){
|
||||
html = html.replace('_status_',statusChangeButton);
|
||||
|
||||
}else{
|
||||
html = html.replace('_status_','');
|
||||
}
|
||||
|
||||
html = html.replace(/_id_/g,id);
|
||||
html = html.replace(/_BASE_/g,this.baseUrl);
|
||||
html = html.replace(/_cstatus_/g,data[this.getStatusFieldPosition()]);
|
||||
return html;
|
||||
});
|
||||
|
||||
EmployeeTravelRecordApproverAdapter.method('getStatusOptionsData', function(currentStatus) {
|
||||
var data = {};
|
||||
if(currentStatus != 'Processing'){
|
||||
|
||||
}else{
|
||||
data["Approved"] = "Approved";
|
||||
data["Rejected"] = "Rejected";
|
||||
|
||||
}
|
||||
|
||||
return data;
|
||||
});
|
||||
|
||||
EmployeeTravelRecordApproverAdapter.method('getStatusOptions', function(currentStatus) {
|
||||
return this.generateOptions(this.getStatusOptionsData(currentStatus));
|
||||
});
|
||||
|
||||
|
||||
/*
|
||||
SubordinateExpenseModuleAdapter
|
||||
*/
|
||||
|
||||
function SubordinateEmployeeTravelRecordAdapter(endPoint,tab,filter,orderBy) {
|
||||
this.initAdapter(endPoint,tab,filter,orderBy);
|
||||
this.itemName = 'Travel';
|
||||
this.itemNameLower = 'employeetravelrecord';
|
||||
this.modulePathName = 'travel';
|
||||
}
|
||||
|
||||
SubordinateEmployeeTravelRecordAdapter.inherits(EmployeeTravelRecordAdminAdapter);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user