Latest updates from IceHrmPro

This commit is contained in:
Thilina Pituwala
2020-05-20 18:47:29 +02:00
parent 60c92d7935
commit 7453a58aad
18012 changed files with 2089245 additions and 10173 deletions

View 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');
}
}

View 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;
}
}

View 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'),
];
}
}

View 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'),
];
}
}

View File

@@ -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'),
];
}
}

View 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()
{
}
}