From f461b92f1f798f66997f84cefac3f97770c90215 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Mon, 24 Dec 2018 16:08:15 +0100 Subject: [PATCH] Fixes #152 --- Admin/Install/db.json | 118 ++++++++++++++++++++++++++++++++++++++ Admin/Installer.php | 96 +------------------------------ Models/Supplier.php | 6 +- Models/SupplierMapper.php | 2 +- 4 files changed, 123 insertions(+), 99 deletions(-) create mode 100644 Admin/Install/db.json diff --git a/Admin/Install/db.json b/Admin/Install/db.json new file mode 100644 index 0000000..3373395 --- /dev/null +++ b/Admin/Install/db.json @@ -0,0 +1,118 @@ +{ + "suppliermgmt_supplier": { + "name": "suppliermgmt_supplier", + "fields": { + "suppliermgmt_supplier_id": { + "name": "suppliermgmt_supplier_id", + "type": "INT", + "null": false, + "primary": true, + "autoincrement": true + }, + "suppliermgmt_supplier_no": { + "name": "suppliermgmt_supplier_no", + "type": "VARCHAR(255)", + "null": false + }, + "suppliermgmt_supplier_no_reverse": { + "name": "suppliermgmt_supplier_no_reverse", + "type": "VARCHAR(255)", + "null": false + }, + "suppliermgmt_supplier_status": { + "name": "suppliermgmt_supplier_status", + "type": "TINYINT", + "null": false + }, + "suppliermgmt_supplier_type": { + "name": "suppliermgmt_supplier_type", + "type": "TINYINT", + "null": false + }, + "suppliermgmt_supplier_taxid": { + "name": "suppliermgmt_supplier_taxid", + "type": "INT", + "null": false + }, + "suppliermgmt_supplier_info": { + "name": "suppliermgmt_supplier_info", + "type": "TEXT", + "null": false + }, + "suppliermgmt_supplier_created_at": { + "name": "suppliermgmt_supplier_created_at", + "type": "DATETIME", + "null": false + }, + "suppliermgmt_supplier_account": { + "name": "suppliermgmt_supplier_account", + "type": "INT", + "null": false, + "foreignTable": "account", + "foreignKey": "account_id" + } + } + }, + "suppliermgmt_supplier_contactelement": { + "name": "suppliermgmt_supplier_contactelement", + "fields": { + "suppliermgmt_supplier_contactelement_id": { + "name": "suppliermgmt_supplier_contactelement_id", + "type": "INT", + "null": false, + "primary": true, + "autoincrement": true + }, + "suppliermgmt_supplier_contactelement_dst": { + "name": "suppliermgmt_supplier_contactelement_dst", + "type": "INT", + "null": false, + "foreignTable": "profile_contactelement", + "foreignKey": "profile_contactelement_id" + }, + "suppliermgmt_supplier_contactelement_src": { + "name": "suppliermgmt_supplier_contactelement_src", + "type": "INT", + "null": false, + "foreignTable": "suppliermgmt_supplier", + "foreignKey": "suppliermgmt_supplier_id" + }, + "suppliermgmt_supplier_contactelement_type": { + "name": "suppliermgmt_supplier_contactelement_type", + "type": "TINYINT", + "null": false + } + } + }, + "suppliermgmt_supplier_media": { + "name": "suppliermgmt_supplier_media", + "fields": { + "suppliermgmt_supplier_media_id": { + "name": "suppliermgmt_supplier_media_id", + "type": "INT", + "null": false, + "primary": true, + "autoincrement": true + }, + "suppliermgmt_supplier_media_dst": { + "name": "suppliermgmt_supplier_media_dst", + "type": "INT", + "null": false, + "foreignTable": "media", + "foreignKey": "media_id" + }, + "suppliermgmt_supplier_media_src": { + "name": "suppliermgmt_supplier_media_src", + "type": "INT", + "null": false, + "foreignTable": "suppliermgmt_supplier", + "foreignKey": "suppliermgmt_supplier_id" + }, + "suppliermgmt_supplier_media_type": { + "name": "suppliermgmt_supplier_media_type", + "type": "TINYINT", + "null": false + } + } + } +} \ No newline at end of file diff --git a/Admin/Installer.php b/Admin/Installer.php index 76ce3df..31251b0 100644 --- a/Admin/Installer.php +++ b/Admin/Installer.php @@ -14,13 +14,10 @@ declare(strict_types=1); namespace Modules\SupplierManagement\Admin; -use phpOMS\DataStorage\Database\DatabasePool; -use phpOMS\DataStorage\Database\DatabaseType; -use phpOMS\Module\InfoManager; use phpOMS\Module\InstallerAbstract; /** - * Purchase install class. + * Installer class. * * @package Modules\SupplierManagement\Admin * @license OMS License 1.0 @@ -29,95 +26,4 @@ use phpOMS\Module\InstallerAbstract; */ class Installer extends InstallerAbstract { - - /** - * {@inheritdoc} - */ - public static function install(DatabasePool $dbPool, InfoManager $info) : void - { - parent::install($dbPool, $info); - - switch ($dbPool->get()->getType()) { - case DatabaseType::MYSQL: - $dbPool->get()->con->beginTransaction(); - - $dbPool->get()->con->prepare(/* todo: maybe add supplier logo? */ - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'suppliermgmt_supplier` ( - `suppliermgmt_supplier_id` int(11) NOT NULL AUTO_INCREMENT, - `suppliermgmt_supplier_no` int(11) NOT NULL, - `suppliermgmt_supplier_no_reverse` varchar(25) DEFAULT NULL, - `suppliermgmt_supplier_status` tinyint(2) NOT NULL, - `suppliermgmt_supplier_type` tinyint(2) NOT NULL, - `suppliermgmt_supplier_taxid` varchar(50) DEFAULT NULL, - `suppliermgmt_supplier_info` text DEFAULT NULL, - `suppliermgmt_supplier_created_at` datetime NOT NULL, - `suppliermgmt_supplier_account` int(11) NOT NULL, - PRIMARY KEY (`suppliermgmt_supplier_id`), - KEY `suppliermgmt_supplier_account` (`suppliermgmt_supplier_account`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - - $dbPool->get()->con->prepare( - 'ALTER TABLE `' . $dbPool->get()->prefix . 'suppliermgmt_supplier` - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'suppliermgmt_supplier_ibfk_1` FOREIGN KEY (`suppliermgmt_supplier_account`) REFERENCES `' . $dbPool->get()->prefix . 'profile_account` (`profile_account_id`);' - )->execute(); - - $dbPool->get()->con->prepare( - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'suppliermgmt_supplier_address` ( - `suppliermgmt_supplier_address_id` int(11) NOT NULL AUTO_INCREMENT, - `suppliermgmt_supplier_address_supplier` int(11) NOT NULL, - `suppliermgmt_supplier_address_address` int(11) NOT NULL, - `suppliermgmt_supplier_address_type` tinyint(2) NOT NULL, - PRIMARY KEY (`suppliermgmt_supplier_address_id`), - KEY `suppliermgmt_supplier_address_supplier` (`suppliermgmt_supplier_address_supplier`), - KEY `suppliermgmt_supplier_address_address` (`suppliermgmt_supplier_address_address`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - - $dbPool->get()->con->prepare( - 'ALTER TABLE `' . $dbPool->get()->prefix . 'suppliermgmt_supplier_address` - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'suppliermgmt_supplier_address_ibfk_1` FOREIGN KEY (`suppliermgmt_supplier_address_supplier`) REFERENCES `' . $dbPool->get()->prefix . 'suppliermgmt_supplier` (`suppliermgmt_supplier_id`), - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'suppliermgmt_supplier_address_ibfk_2` FOREIGN KEY (`suppliermgmt_supplier_address_address`) REFERENCES `' . $dbPool->get()->prefix . 'profile_address` (`profile_address_id`);' - )->execute(); - - $dbPool->get()->con->prepare( - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'suppliermgmt_supplier_contactelement` ( - `suppliermgmt_supplier_contactelement_id` int(11) NOT NULL AUTO_INCREMENT, - `suppliermgmt_supplier_contactelement_dst` int(11) NOT NULL, - `suppliermgmt_supplier_contactelement_src` int(11) NOT NULL, - `suppliermgmt_supplier_contactelement_type` tinyint(2) NOT NULL, - PRIMARY KEY (`suppliermgmt_supplier_contactelement_id`), - KEY `suppliermgmt_supplier_contactelement_dst` (`suppliermgmt_supplier_contactelement_dst`), - KEY `suppliermgmt_supplier_contactelement_src` (`suppliermgmt_supplier_contactelement_src`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - - $dbPool->get()->con->prepare( - 'ALTER TABLE `' . $dbPool->get()->prefix . 'suppliermgmt_supplier_contactelement` - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'suppliermgmt_supplier_contactelement_ibfk_1` FOREIGN KEY (`suppliermgmt_supplier_contactelement_src`) REFERENCES `' . $dbPool->get()->prefix . 'suppliermgmt_supplier` (`suppliermgmt_supplier_id`), - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'suppliermgmt_supplier_contactelement_ibfk_2` FOREIGN KEY (`suppliermgmt_supplier_contactelement_dst`) REFERENCES `' . $dbPool->get()->prefix . 'profile_contactelement` (`profile_contactelement_id`);' - )->execute(); - - $dbPool->get()->con->prepare( - 'CREATE TABLE if NOT EXISTS `' . $dbPool->get()->prefix . 'suppliermgmt_supplier_media` ( - `suppliermgmt_supplier_media_id` int(11) NOT NULL AUTO_INCREMENT, - `suppliermgmt_supplier_media_dst` int(11) NOT NULL, - `suppliermgmt_supplier_media_src` int(11) NOT NULL, - `suppliermgmt_supplier_media_type` tinyint(2) NOT NULL, - PRIMARY KEY (`suppliermgmt_supplier_media_id`), - KEY `suppliermgmt_supplier_media_dst` (`suppliermgmt_supplier_media_dst`), - KEY `suppliermgmt_supplier_media_src` (`suppliermgmt_supplier_media_src`) - ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;' - )->execute(); - - $dbPool->get()->con->prepare( - 'ALTER TABLE `' . $dbPool->get()->prefix . 'suppliermgmt_supplier_media` - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'suppliermgmt_supplier_media_ibfk_1` FOREIGN KEY (`suppliermgmt_supplier_media_src`) REFERENCES `' . $dbPool->get()->prefix . 'suppliermgmt_supplier` (`suppliermgmt_supplier_id`), - ADD CONSTRAINT `' . $dbPool->get()->prefix . 'suppliermgmt_supplier_media_ibfk_2` FOREIGN KEY (`suppliermgmt_supplier_media_dst`) REFERENCES `' . $dbPool->get()->prefix . 'media` (`media_id`);' - )->execute(); - - $dbPool->get()->con->commit(); - break; - } - } } diff --git a/Models/Supplier.php b/Models/Supplier.php index 73e3605..e4538fa 100644 --- a/Models/Supplier.php +++ b/Models/Supplier.php @@ -37,7 +37,7 @@ class Supplier private $type = 0; - private $taxId = ''; + private $taxId = 0; private $info = ''; @@ -106,12 +106,12 @@ class Supplier $this->type = $type; } - public function getTaxId() : string + public function getTaxId() : int { return $this->taxId; } - public function setTaxId(string $taxId) : void + public function setTaxId(int $taxId) : void { $this->taxId = $taxId; } diff --git a/Models/SupplierMapper.php b/Models/SupplierMapper.php index 7895d8a..31e6918 100644 --- a/Models/SupplierMapper.php +++ b/Models/SupplierMapper.php @@ -34,7 +34,7 @@ final class SupplierMapper extends DataMapperAbstract 'suppliermgmt_supplier_no_reverse' => ['name' => 'suppliermgmt_supplier_no_reverse', 'type' => 'string', 'internal' => 'numberReverse'], 'suppliermgmt_supplier_status' => ['name' => 'suppliermgmt_supplier_status', 'type' => 'int', 'internal' => 'status'], 'suppliermgmt_supplier_type' => ['name' => 'suppliermgmt_supplier_type', 'type' => 'int', 'internal' => 'type'], - 'suppliermgmt_supplier_taxid' => ['name' => 'suppliermgmt_supplier_taxid', 'type' => 'string', 'internal' => 'taxId'], + 'suppliermgmt_supplier_taxid' => ['name' => 'suppliermgmt_supplier_taxid', 'type' => 'int', 'internal' => 'taxId'], 'suppliermgmt_supplier_info' => ['name' => 'suppliermgmt_supplier_info', 'type' => 'string', 'internal' => 'info'], 'suppliermgmt_supplier_created_at' => ['name' => 'suppliermgmt_supplier_created_at', 'type' => 'DateTime', 'internal' => 'createdAt'], 'suppliermgmt_supplier_account' => ['name' => 'suppliermgmt_supplier_account', 'type' => 'int', 'internal' => 'profile'],