Core adjustments for pending issues

This commit is contained in:
Dennis Eichhorn 2016-10-02 12:07:05 +02:00
parent e028a20338
commit d37db29c10
3 changed files with 48 additions and 44 deletions

View File

@ -46,23 +46,24 @@ class Installer extends InstallerAbstract
$dbPool->get('core')->con->prepare(
'CREATE TABLE if NOT EXISTS `' . $dbPool->get('core')->prefix . 'eventmanagement_event` (
`eventmanagement_event_id` int(11) NOT NULL AUTO_INCREMENT,
`eventmanagement_event_name` varchar(255) NOT NULL,
`eventmanagement_event_type` tinyint(2) NOT NULL,
`eventmanagement_event_event` int(11) NOT NULL,
`eventmanagement_event_calendar` int(11) NOT NULL,
`eventmanagement_event_costs` int(11) NOT NULL,
`eventmanagement_event_budget` int(11) NOT NULL,
`eventmanagement_event_earnings` int(11) NOT NULL,
`eventmanagement_event_created_by` int(11) NOT NULL,
`eventmanagement_event_created_at` datetime NOT NULL,
PRIMARY KEY (`eventmanagement_event_id`),
KEY `eventmanagement_event_event` (`eventmanagement_event_event`),
KEY `eventmanagement_event_calendar` (`eventmanagement_event_calendar`),
KEY `eventmanagement_event_created_by` (`eventmanagement_event_created_by`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;'
)->execute();
$dbPool->get('core')->con->prepare(
'ALTER TABLE `' . $dbPool->get('core')->prefix . 'eventmanagement_event`
ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'eventmanagement_event_ibfk_1` FOREIGN KEY (`eventmanagement_event_event`) REFERENCES `' . $dbPool->get('core')->prefix . 'calendar_event` (`calendar_event_id`),
ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'eventmanagement_event_ibfk_2` FOREIGN KEY (`eventmanagement_event_created_by`) REFERENCES `' . $dbPool->get('core')->prefix . 'account_id` (`calendar_event_created_by`);'
ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'eventmanagement_event_ibfk_1` FOREIGN KEY (`eventmanagement_event_calendar`) REFERENCES `' . $dbPool->get('core')->prefix . 'calendar` (`calendar_id`),
ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'eventmanagement_event_ibfk_2` FOREIGN KEY (`eventmanagement_event_created_by`) REFERENCES `' . $dbPool->get('core')->prefix . 'account` (`account_id`);'
)->execute();
$dbPool->get('core')->con->prepare(

View File

@ -15,7 +15,7 @@
*/
namespace Modules\EventManagement\Models;
use Modules\Calendar\Models\Event as CalendarEvent;
use Modules\Calendar\Models\Calendar;
use Modules\Tasks\Models\Task;
use phpOMS\Datatypes\Exception\InvalidEnumValue;
use phpOMS\Localization\Money;
@ -44,7 +44,9 @@ class Event
private $type = EventType::DEFAULT;
private $event = null;
private $name = '';
private $calendar = null;
private $costs = null;
@ -72,33 +74,33 @@ class Event
public function __construct(string $name = '')
{
$this->event = new CalendarEvent();
$this->costs = new Money();
$this->budget = new Money();
$this->earnings = new Money();
$this->calendar = new Calendar();
$this->costs = new Money();
$this->budget = new Money();
$this->earnings = new Money();
$this->createdAt = new \DateTime('now');
$this->setName($name);
}
public function getEvent() : CalendarEvent
public function getCalendar() : Calendar
{
return $this->event;
return $this->calendar;
}
public function setName(string $name)
public function setName(string $name)
{
$this->event->setName($name);
$this->name = $name;
}
public function getName() : string
{
return $this->event->getName();
return $this->name;
}
public function addTask(Task $task)
{
if($task->getId() !== 0) {
if ($task->getId() !== 0) {
$this->tasks[$task->getId()] = $task;
} else {
$this->tasks[] = $task;
@ -107,7 +109,7 @@ class Event
public function removeTask(int $id) : bool
{
if(isset($this->tasks[$id])) {
if (isset($this->tasks[$id])) {
unset($this->tasks[$id]);
return true;
@ -121,12 +123,12 @@ class Event
return $this->tasks[$id] ?? new Task();
}
public function getTasks() : array
public function getTasks() : array
{
return $this->tasks;
}
public function countTasks() : int
public function countTasks() : int
{
return count($this->tasks);
}
@ -138,7 +140,7 @@ class Event
public function setType(int $type)
{
if(!EventType::isValidValue($type)) {
if (!EventType::isValidValue($type)) {
throw new InvalidEnumValue($type);
}
@ -150,32 +152,32 @@ class Event
return $this->type;
}
public function getCosts() : Money
public function getCosts() : Money
{
return $this->costs;
}
public function getBudget() : Money
public function getBudget() : Money
{
return $this->budget;
}
public function getEarnings() : Money
public function getEarnings() : Money
{
return $this->earnings;
}
public function setCosts(Money $costs)
public function setCosts(Money $costs)
{
$this->costs = $costs;
}
public function setBudget(Money $budget)
public function setBudget(Money $budget)
{
$this->budget = $budget;
}
public function setEarnings(Money $earnings)
public function setEarnings(Money $earnings)
{
$this->earnings = $earnings;
}
@ -200,7 +202,7 @@ class Event
public function setCreatedAt(\DateTime $createdAt)
{
$this->createdAt = $createdAt;
$this->event->setCreatedAt($this->createdAt);
$this->calendar->setCreatedAt($this->createdAt);
}
/**
@ -223,6 +225,6 @@ class Event
public function setCreatedBy(int $createdBy)
{
$this->createdBy = $createdBy;
$this->event->setCreatedBy($this->createdBy);
$this->calendar->setCreatedBy($this->createdBy);
}
}

View File

@ -41,14 +41,15 @@ class EventMapper extends DataMapperAbstract
* @since 1.0.0
*/
protected static $columns = [
'eventmanagement_event_id' => ['name' => 'eventmanagement_event_id', 'type' => 'int', 'internal' => 'id'],
'eventmanagement_event_type' => ['name' => 'eventmanagement_event_type', 'type' => 'int', 'internal' => 'type'],
'eventmanagement_event_event' => ['name' => 'eventmanagement_event_event', 'type' => 'int', 'internal' => 'event'],
'eventmanagement_event_costs' => ['name' => 'eventmanagement_event_costs', 'type' => 'Serializable', 'internal' => 'costs'],
'eventmanagement_event_budget' => ['name' => 'eventmanagement_event_budget', 'type' => 'Serializable', 'internal' => 'budget'],
'eventmanagement_event_earnings' => ['name' => 'eventmanagement_event_earnings', 'type' => 'Serializable', 'internal' => 'earnings'],
'eventmanagement_event_created_by' => ['name' => 'eventmanagement_event_created_by', 'type' => 'int', 'internal' => 'createdBy'],
'eventmanagement_event_created_at' => ['name' => 'eventmanagement_event_created_at', 'type' => 'DateTime', 'internal' => 'createdAt'],
'eventmanagement_event_id' => ['name' => 'eventmanagement_event_id', 'type' => 'int', 'internal' => 'id'],
'eventmanagement_event_name' => ['name' => 'eventmanagement_event_name', 'type' => 'string', 'internal' => 'name'],
'eventmanagement_event_type' => ['name' => 'eventmanagement_event_type', 'type' => 'int', 'internal' => 'type'],
'eventmanagement_event_calendar' => ['name' => 'eventmanagement_event_calendar', 'type' => 'int', 'internal' => 'calendar'],
'eventmanagement_event_costs' => ['name' => 'eventmanagement_event_costs', 'type' => 'Serializable', 'internal' => 'costs'],
'eventmanagement_event_budget' => ['name' => 'eventmanagement_event_budget', 'type' => 'Serializable', 'internal' => 'budget'],
'eventmanagement_event_earnings' => ['name' => 'eventmanagement_event_earnings', 'type' => 'Serializable', 'internal' => 'earnings'],
'eventmanagement_event_created_by' => ['name' => 'eventmanagement_event_created_by', 'type' => 'int', 'internal' => 'createdBy'],
'eventmanagement_event_created_at' => ['name' => 'eventmanagement_event_created_at', 'type' => 'DateTime', 'internal' => 'createdAt'],
];
/**
@ -57,10 +58,10 @@ class EventMapper extends DataMapperAbstract
* @var array<string, array>
* @since 1.0.0
*/
protected static $hasOne = [
'event' => [
'mapper' => \Modules\Calendar\Models\EventMapper::class,
'src' => 'eventmanagement_event_event',
protected static $ownsOne = [
'calendar' => [
'mapper' => \Modules\Calendar\Models\CalendarMapper::class,
'src' => 'eventmanagement_event_calendar',
],
];
@ -153,9 +154,9 @@ class EventMapper extends DataMapperAbstract
public static function find(...$columns) : Builder
{
return parent::find(...$columns)->from('account_permission')
->where('account_permission.account_permission_for', '=', 'calendar_event')
->where('account_permission.account_permission_id1', '=', 1)
->where('calendar_event.calendar_event_id', '=', new Column('account_permission.account_permission_id2'))
->where('account_permission.account_permission_r', '=', 1);
->where('account_permission.account_permission_for', '=', 'calendar_event')
->where('account_permission.account_permission_id1', '=', 1)
->where('calendar_event.calendar_event_id', '=', new Column('account_permission.account_permission_id2'))
->where('account_permission.account_permission_r', '=', 1);
}
}