Refactor project structure

This commit is contained in:
Thilina Hasantha
2018-04-29 17:46:42 +02:00
parent 889baf124c
commit e3a7e18d9c
5513 changed files with 32 additions and 27 deletions

View File

@@ -0,0 +1,30 @@
<?php
/**
* Created by PhpStorm.
* User: Thilina
* Date: 8/19/17
* Time: 5:53 PM
*/
namespace Projects\Common\Model;
use Model\BaseModel;
class Client extends BaseModel
{
public $table = 'Clients';
public function getAdminAccess()
{
return array("get","element","save","delete");
}
public function getManagerAccess()
{
return array("get","element","save","delete");
}
public function getUserAccess()
{
return array();
}
}

View File

@@ -0,0 +1,53 @@
<?php
/**
* Created by PhpStorm.
* User: Thilina
* Date: 8/19/17
* Time: 5:58 PM
*/
namespace Projects\Common\Model;
use Classes\IceResponse;
use Model\BaseModel;
class EmployeeProject extends BaseModel
{
public $table = 'EmployeeProjects';
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 executePreSaveActions($obj)
{
if (empty($obj->status)) {
$obj->status = "Current";
}
return new IceResponse(IceResponse::SUCCESS, $obj);
}
public function executePreUpdateActions($obj)
{
if (empty($obj->status)) {
$obj->status = "Current";
}
return new IceResponse(IceResponse::SUCCESS, $obj);
}
}

View File

@@ -0,0 +1,85 @@
<?php
/**
* Created by PhpStorm.
* User: Thilina
* Date: 8/19/17
* Time: 5:54 PM
*/
namespace Projects\Common\Model;
use Classes\BaseService;
use Classes\SettingsManager;
use Model\BaseModel;
class Project extends BaseModel
{
public $table = 'Projects';
public function getAdminAccess()
{
return array("get","element","save","delete");
}
public function getManagerAccess()
{
return array("get","element","save","delete");
}
public function getUserAccess()
{
return array("get","element");
}
public function getAllProjects()
{
$employeeProjects = [];
$project = new Project();
$projects = $project->Find("status = ?", 'Active');
foreach ($projects as $project) {
$client = new Client();
$client->Load("id = ?", array($project->client));
$project->name = $project->name." (".$client->name.")";
$employeeProjects[] = $project;
}
return $employeeProjects;
}
public function getEmployeeProjects()
{
$allowAllProjects = SettingsManager::getInstance()->getSetting(
"Projects: Make All Projects Available to Employees"
);
$employeeProjects = array();
if ($allowAllProjects == 0) {
$employeeProjectsTemp = new EmployeeProject();
$employeeProjectsTemp = $employeeProjectsTemp->Find(
"employee = ?",
array(BaseService::getInstance()->getCurrentProfileId())
);
foreach ($employeeProjectsTemp as $p) {
$project = new Project();
$project->Load("id = ?", array($p->project));
if ($project->status == 'Active') {
$client = new Client();
$client->Load("id = ?", array($project->client));
$project->name = $project->name." (".$client->name.")";
$employeeProjects[] = $project;
}
}
} else {
$project = new Project();
$projects = $project->Find("status = ?", array('Active'));
foreach ($projects as $project) {
$client = new Client();
$client->Load("id = ?", array($project->client));
$project->name = $project->name." (".$client->name.")";
$employeeProjects[] = $project;
}
}
return $employeeProjects;
}
}