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( $dbPool->get('core')->con->prepare(
'CREATE TABLE if NOT EXISTS `' . $dbPool->get('core')->prefix . 'eventmanagement_event` ( 'CREATE TABLE if NOT EXISTS `' . $dbPool->get('core')->prefix . 'eventmanagement_event` (
`eventmanagement_event_id` int(11) NOT NULL AUTO_INCREMENT, `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_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_costs` int(11) NOT NULL,
`eventmanagement_event_budget` int(11) NOT NULL, `eventmanagement_event_budget` int(11) NOT NULL,
`eventmanagement_event_earnings` int(11) NOT NULL, `eventmanagement_event_earnings` int(11) NOT NULL,
`eventmanagement_event_created_by` int(11) NOT NULL, `eventmanagement_event_created_by` int(11) NOT NULL,
`eventmanagement_event_created_at` datetime NOT NULL, `eventmanagement_event_created_at` datetime NOT NULL,
PRIMARY KEY (`eventmanagement_event_id`), 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`) KEY `eventmanagement_event_created_by` (`eventmanagement_event_created_by`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' )ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;'
)->execute(); )->execute();
$dbPool->get('core')->con->prepare( $dbPool->get('core')->con->prepare(
'ALTER TABLE `' . $dbPool->get('core')->prefix . 'eventmanagement_event` '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_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_id` (`calendar_event_created_by`);' 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(); )->execute();
$dbPool->get('core')->con->prepare( $dbPool->get('core')->con->prepare(

View File

@ -15,7 +15,7 @@
*/ */
namespace Modules\EventManagement\Models; namespace Modules\EventManagement\Models;
use Modules\Calendar\Models\Event as CalendarEvent; use Modules\Calendar\Models\Calendar;
use Modules\Tasks\Models\Task; use Modules\Tasks\Models\Task;
use phpOMS\Datatypes\Exception\InvalidEnumValue; use phpOMS\Datatypes\Exception\InvalidEnumValue;
use phpOMS\Localization\Money; use phpOMS\Localization\Money;
@ -44,7 +44,9 @@ class Event
private $type = EventType::DEFAULT; private $type = EventType::DEFAULT;
private $event = null; private $name = '';
private $calendar = null;
private $costs = null; private $costs = null;
@ -72,33 +74,33 @@ class Event
public function __construct(string $name = '') public function __construct(string $name = '')
{ {
$this->event = new CalendarEvent(); $this->calendar = new Calendar();
$this->costs = new Money(); $this->costs = new Money();
$this->budget = new Money(); $this->budget = new Money();
$this->earnings = new Money(); $this->earnings = new Money();
$this->createdAt = new \DateTime('now'); $this->createdAt = new \DateTime('now');
$this->setName($name); $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 public function getName() : string
{ {
return $this->event->getName(); return $this->name;
} }
public function addTask(Task $task) public function addTask(Task $task)
{ {
if($task->getId() !== 0) { if ($task->getId() !== 0) {
$this->tasks[$task->getId()] = $task; $this->tasks[$task->getId()] = $task;
} else { } else {
$this->tasks[] = $task; $this->tasks[] = $task;
@ -107,7 +109,7 @@ class Event
public function removeTask(int $id) : bool public function removeTask(int $id) : bool
{ {
if(isset($this->tasks[$id])) { if (isset($this->tasks[$id])) {
unset($this->tasks[$id]); unset($this->tasks[$id]);
return true; return true;
@ -138,7 +140,7 @@ class Event
public function setType(int $type) public function setType(int $type)
{ {
if(!EventType::isValidValue($type)) { if (!EventType::isValidValue($type)) {
throw new InvalidEnumValue($type); throw new InvalidEnumValue($type);
} }
@ -200,7 +202,7 @@ class Event
public function setCreatedAt(\DateTime $createdAt) public function setCreatedAt(\DateTime $createdAt)
{ {
$this->createdAt = $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) public function setCreatedBy(int $createdBy)
{ {
$this->createdBy = $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 * @since 1.0.0
*/ */
protected static $columns = [ protected static $columns = [
'eventmanagement_event_id' => ['name' => 'eventmanagement_event_id', 'type' => 'int', 'internal' => 'id'], 'eventmanagement_event_id' => ['name' => 'eventmanagement_event_id', 'type' => 'int', 'internal' => 'id'],
'eventmanagement_event_type' => ['name' => 'eventmanagement_event_type', 'type' => 'int', 'internal' => 'type'], 'eventmanagement_event_name' => ['name' => 'eventmanagement_event_name', 'type' => 'string', 'internal' => 'name'],
'eventmanagement_event_event' => ['name' => 'eventmanagement_event_event', 'type' => 'int', 'internal' => 'event'], 'eventmanagement_event_type' => ['name' => 'eventmanagement_event_type', 'type' => 'int', 'internal' => 'type'],
'eventmanagement_event_costs' => ['name' => 'eventmanagement_event_costs', 'type' => 'Serializable', 'internal' => 'costs'], 'eventmanagement_event_calendar' => ['name' => 'eventmanagement_event_calendar', 'type' => 'int', 'internal' => 'calendar'],
'eventmanagement_event_budget' => ['name' => 'eventmanagement_event_budget', 'type' => 'Serializable', 'internal' => 'budget'], 'eventmanagement_event_costs' => ['name' => 'eventmanagement_event_costs', 'type' => 'Serializable', 'internal' => 'costs'],
'eventmanagement_event_earnings' => ['name' => 'eventmanagement_event_earnings', 'type' => 'Serializable', 'internal' => 'earnings'], 'eventmanagement_event_budget' => ['name' => 'eventmanagement_event_budget', 'type' => 'Serializable', 'internal' => 'budget'],
'eventmanagement_event_created_by' => ['name' => 'eventmanagement_event_created_by', 'type' => 'int', 'internal' => 'createdBy'], 'eventmanagement_event_earnings' => ['name' => 'eventmanagement_event_earnings', 'type' => 'Serializable', 'internal' => 'earnings'],
'eventmanagement_event_created_at' => ['name' => 'eventmanagement_event_created_at', 'type' => 'DateTime', 'internal' => 'createdAt'], '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> * @var array<string, array>
* @since 1.0.0 * @since 1.0.0
*/ */
protected static $hasOne = [ protected static $ownsOne = [
'event' => [ 'calendar' => [
'mapper' => \Modules\Calendar\Models\EventMapper::class, 'mapper' => \Modules\Calendar\Models\CalendarMapper::class,
'src' => 'eventmanagement_event_event', 'src' => 'eventmanagement_event_calendar',
], ],
]; ];
@ -153,9 +154,9 @@ class EventMapper extends DataMapperAbstract
public static function find(...$columns) : Builder public static function find(...$columns) : Builder
{ {
return parent::find(...$columns)->from('account_permission') return parent::find(...$columns)->from('account_permission')
->where('account_permission.account_permission_for', '=', 'calendar_event') ->where('account_permission.account_permission_for', '=', 'calendar_event')
->where('account_permission.account_permission_id1', '=', 1) ->where('account_permission.account_permission_id1', '=', 1)
->where('calendar_event.calendar_event_id', '=', new Column('account_permission.account_permission_id2')) ->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_r', '=', 1);
} }
} }