Latest updates from IceHrmPro
This commit is contained in:
34
core/src/Documents/Admin/Api/DocumentsAdminManager.php
Normal file
34
core/src/Documents/Admin/Api/DocumentsAdminManager.php
Normal file
@@ -0,0 +1,34 @@
|
||||
<?php
|
||||
namespace Documents\Admin\Api;
|
||||
|
||||
use Classes\AbstractModuleManager;
|
||||
|
||||
class DocumentsAdminManager extends AbstractModuleManager
|
||||
{
|
||||
|
||||
public function initializeUserClasses()
|
||||
{
|
||||
}
|
||||
|
||||
public function initializeFieldMappings()
|
||||
{
|
||||
$this->addFileFieldMapping('EmployeeDocument', 'attachment', 'name');
|
||||
}
|
||||
|
||||
public function initializeDatabaseErrorMappings()
|
||||
{
|
||||
$this->addDatabaseErrorMapping(
|
||||
'CONSTRAINT `Fk_EmployeeDocuments_Documents` FOREIGN KEY',
|
||||
'Can not delete Document Type, users have already uploaded these types of documents'
|
||||
);
|
||||
}
|
||||
|
||||
public function setupModuleClassDefinitions()
|
||||
{
|
||||
|
||||
$this->addModelClass('Document');
|
||||
$this->addModelClass('CompanyDocument');
|
||||
$this->addModelClass('EmployeeDocument');
|
||||
$this->addModelClass('EmployeeDocumentNotification');
|
||||
}
|
||||
}
|
||||
103
core/src/Documents/Common/Model/CompanyDocument.php
Normal file
103
core/src/Documents/Common/Model/CompanyDocument.php
Normal file
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: Thilina
|
||||
* Date: 8/19/17
|
||||
* Time: 8:25 AM
|
||||
*/
|
||||
|
||||
namespace Documents\Common\Model;
|
||||
|
||||
use Classes\BaseService;
|
||||
use Classes\FileService;
|
||||
use Classes\IceResponse;
|
||||
use Classes\ModuleAccess;
|
||||
use Employees\Common\Model\Employee;
|
||||
use Model\BaseModel;
|
||||
|
||||
class CompanyDocument extends BaseModel
|
||||
{
|
||||
public $table = 'CompanyDocuments';
|
||||
|
||||
public function getAdminAccess()
|
||||
{
|
||||
return array("get","element","save","delete");
|
||||
}
|
||||
|
||||
public function getManagerAccess()
|
||||
{
|
||||
return array("get","element");
|
||||
}
|
||||
|
||||
public function getUserAccess()
|
||||
{
|
||||
return array("get","element");
|
||||
}
|
||||
|
||||
public function getModuleAccess()
|
||||
{
|
||||
return [
|
||||
new ModuleAccess('employees', 'admin'),
|
||||
new ModuleAccess('documents', 'admin'),
|
||||
new ModuleAccess('documents', 'user'),
|
||||
];
|
||||
}
|
||||
|
||||
// @codingStandardsIgnoreStart
|
||||
public function Find($whereOrderBy, $bindarr = false, $pkeysArr = false, $extra = array())
|
||||
{
|
||||
// @codingStandardsIgnoreEnd
|
||||
$res = parent::Find($whereOrderBy, $bindarr, $pkeysArr, $extra);
|
||||
|
||||
$user = BaseService::getInstance()->getCurrentUser();
|
||||
if ($user->user_level == 'Admin') {
|
||||
foreach ($res as $entry) {
|
||||
$file = FileService::getInstance()->getFileData($entry->attachment);
|
||||
$entry->type = $file->type;
|
||||
$entry->size = $file->size_text;
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
$emp = BaseService::getInstance()->getCurrentProfileId();
|
||||
$employee = new Employee();
|
||||
$employee->Load("id = ?", array($emp));
|
||||
|
||||
$data = array();
|
||||
|
||||
foreach ($res as $entry) {
|
||||
if ($entry->status != 'Active') {
|
||||
continue;
|
||||
}
|
||||
|
||||
$file = FileService::getInstance()->getFileData($entry->attachment);
|
||||
$entry->type = $file->type;
|
||||
$entry->size = $file->size_text;
|
||||
|
||||
if (!empty($entry->share_departments)) {
|
||||
$shareDepartments = json_decode($entry->share_departments, true);
|
||||
if (count($shareDepartments) == 1 && $shareDepartments[0] == "NULL") {
|
||||
//Shared with All Departments
|
||||
$data[] = $entry;
|
||||
continue;
|
||||
} else {
|
||||
if (in_array($employee->department, $shareDepartments)) {
|
||||
//Document is shared with employee's department
|
||||
$data[] = $entry;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($entry->share_employees)) {
|
||||
$shareEmployees = json_decode($entry->share_employees, true);
|
||||
if (in_array($employee->id, $shareEmployees)) {
|
||||
//Document is shared with the employee
|
||||
$data[] = $entry;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
29
core/src/Documents/Common/Model/Document.php
Normal file
29
core/src/Documents/Common/Model/Document.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
namespace Documents\Common\Model;
|
||||
|
||||
use Classes\ModuleAccess;
|
||||
use Model\BaseModel;
|
||||
|
||||
class Document extends BaseModel
|
||||
{
|
||||
public $table = 'Documents';
|
||||
|
||||
public function getAdminAccess()
|
||||
{
|
||||
return array("get","element","save","delete");
|
||||
}
|
||||
|
||||
public function getManagerAccess()
|
||||
{
|
||||
return array("get","element","save","delete");
|
||||
}
|
||||
|
||||
public function getModuleAccess()
|
||||
{
|
||||
return [
|
||||
new ModuleAccess('employees', 'admin'),
|
||||
new ModuleAccess('documents', 'admin'),
|
||||
new ModuleAccess('documents', 'user'),
|
||||
];
|
||||
}
|
||||
}
|
||||
69
core/src/Documents/Common/Model/EmployeeDocument.php
Normal file
69
core/src/Documents/Common/Model/EmployeeDocument.php
Normal file
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
/**
|
||||
* Created by PhpStorm.
|
||||
* User: Thilina
|
||||
* Date: 8/19/17
|
||||
* Time: 8:26 AM
|
||||
*/
|
||||
|
||||
namespace Documents\Common\Model;
|
||||
|
||||
use Classes\IceResponse;
|
||||
use Classes\ModuleAccess;
|
||||
use Model\BaseModel;
|
||||
|
||||
class EmployeeDocument extends BaseModel
|
||||
{
|
||||
public $table = 'EmployeeDocuments';
|
||||
|
||||
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");
|
||||
}
|
||||
// @codingStandardsIgnoreStart
|
||||
public function Insert()
|
||||
{
|
||||
// @codingStandardsIgnoreEnd
|
||||
if (empty($this->date_added)) {
|
||||
$this->date_added = date("Y-m-d H:i:s");
|
||||
}
|
||||
return parent::Insert();
|
||||
}
|
||||
|
||||
public function executePreSaveActions($obj)
|
||||
{
|
||||
$obj->expire_notification_last = -1;
|
||||
return new IceResponse(IceResponse::SUCCESS, $obj);
|
||||
}
|
||||
|
||||
public function executePreUpdateActions($obj)
|
||||
{
|
||||
$obj->expire_notification_last = -1;
|
||||
return new IceResponse(IceResponse::SUCCESS, $obj);
|
||||
}
|
||||
|
||||
public function getModuleAccess()
|
||||
{
|
||||
return [
|
||||
new ModuleAccess('employees', 'admin'),
|
||||
new ModuleAccess('employees', 'user'),
|
||||
new ModuleAccess('documents', 'admin'),
|
||||
new ModuleAccess('documents', 'user'),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
namespace Documents\Common\Model;
|
||||
|
||||
use Classes\ModuleAccess;
|
||||
use Model\BaseModel;
|
||||
|
||||
class EmployeeDocumentNotification extends BaseModel
|
||||
{
|
||||
public $table = 'EmployeeDocumentNotifications';
|
||||
|
||||
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 getModuleAccess()
|
||||
{
|
||||
return [
|
||||
new ModuleAccess('employees', 'admin'),
|
||||
new ModuleAccess('employees', 'user'),
|
||||
new ModuleAccess('documents', 'admin'),
|
||||
new ModuleAccess('documents', 'user'),
|
||||
];
|
||||
}
|
||||
}
|
||||
27
core/src/Documents/User/Api/DocumentsModulesManager.php
Normal file
27
core/src/Documents/User/Api/DocumentsModulesManager.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
namespace Documents\User\Api;
|
||||
|
||||
use Classes\AbstractModuleManager;
|
||||
|
||||
class DocumentsModulesManager extends AbstractModuleManager
|
||||
{
|
||||
|
||||
public function initializeUserClasses()
|
||||
{
|
||||
if (defined('MODULE_TYPE') && MODULE_TYPE != 'admin') {
|
||||
$this->addUserClass("EmployeeDocument");
|
||||
}
|
||||
}
|
||||
|
||||
public function initializeFieldMappings()
|
||||
{
|
||||
}
|
||||
|
||||
public function initializeDatabaseErrorMappings()
|
||||
{
|
||||
}
|
||||
|
||||
public function setupModuleClassDefinitions()
|
||||
{
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user