diff --git a/Models/SupportStatus.php b/Models/SupportStatus.php index 84c01b3..a3fff1c 100644 --- a/Models/SupportStatus.php +++ b/Models/SupportStatus.php @@ -36,9 +36,11 @@ abstract class SupportStatus extends Enum const LIVE = 2; - const UNSOLVABLE = 3; + const HOLD = 3; - const SOLVED = 4; + const UNSOLVABLE = 4; - const CLOSED = 5; + const SOLVED = 5; + + const CLOSED = 6; } diff --git a/Models/Ticket.php b/Models/Ticket.php new file mode 100644 index 0000000..1525d1b --- /dev/null +++ b/Models/Ticket.php @@ -0,0 +1,58 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Support; + +use Modules\Tasks\Models\Task; + +/** + * Issue class. + * + * @category Support + * @package Framework + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class Ticket extends Task +{ + + private $id = 0; + private $task = 0; + + /** + * Assigned group. + * + * @var int + * @since 1.0.0 + */ + private $group = 0; + + /** + * Assigned person. + * + * @var int + * @since 1.0.0 + */ + private $person = 0; + + public function __construct() + { + parent::__construct(); + } + +} diff --git a/Models/TicketMapper.php b/Models/TicketMapper.php new file mode 100644 index 0000000..cbbc37a --- /dev/null +++ b/Models/TicketMapper.php @@ -0,0 +1,136 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Tasks\Models; + +use phpOMS\DataStorage\Database\DataMapperAbstract; +use phpOMS\DataStorage\Database\Query\Builder; +use phpOMS\DataStorage\Database\Query\Column; + +/** + * Mapper class. + * + * @category Tasks + * @package Modules + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class TicketMapper extends DataMapperAbstract +{ + + /** + * Columns. + * + * @var array + * @since 1.0.0 + */ + protected static $columns = [ + 'ticket_id' => ['name' => 'ticket_id', 'type' => 'int', 'internal' => 'id'], + 'ticket_task' => ['name' => 'ticket_task', 'type' => 'int', 'internal' => 'task'], + ]; + + /** + * Has one relation. + * + * @var array + * @since 1.0.0 + */ + protected static $isExtending = [ + 'task' => [ + 'mapper' => '\Modules\Tasks\Models\TaskMapper', + 'src' => 'ticket_task', + ], + ]; + + /** + * Primary table. + * + * @var string + * @since 1.0.0 + */ + protected static $table = 'ticket'; + + /** + * Primary field name. + * + * @var string + * @since 1.0.0 + */ + protected static $primaryField = 'ticket_id'; + + /** + * Create media. + * + * @param Task $obj Media + * + * @return bool + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function create($obj) + { + try { + $objId = parent::create($obj); + $query = new Builder($this->db); + + $query->prefix($this->db->getPrefix()) + ->insert( + 'account_permission_account', + 'account_permission_from', + 'account_permission_for', + 'account_permission_id1', + 'account_permission_id2', + 'account_permission_r', + 'account_permission_w', + 'account_permission_m', + 'account_permission_d', + 'account_permission_p' + ) + ->into('account_permission') + ->values($obj->getCreatedBy(), 'task', 'task', 1, $objId, 1, 1, 1, 1, 1); + + $this->db->con->prepare($query->toSql())->execute(); + } catch (\Exception $e) { + var_dump($e->getMessage()); + + return false; + } + + return $objId; + } + + /** + * Find. + * + * @param array $columns Columns to select + * + * @return Builder + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function find(...$columns) : Builder + { + return parent::find(...$columns)->from('account_permission') + ->where('account_permission.account_permission_for', '=', 'task') + ->where('account_permission.account_permission_id1', '=', 1) + ->where('task.task_id', '=', new Column('account_permission.account_permission_id2')) + ->where('account_permission.account_permission_r', '=', 1); + } +}