From 9b0d1252c6862023cc7c3d1fe2f202902f2540c1 Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sun, 29 Nov 2015 21:57:18 +0100 Subject: [PATCH] Init --- Admin/Install/Navigation.php | 38 ++++++ Admin/Install/nav.install.json | 109 +++++++++++++++++ Admin/Installer.php | 49 ++++++++ Controller.php | 170 ++++++++++++++++++++++++++ Theme/backend/supplier-create.tpl.php | 163 ++++++++++++++++++++++++ Theme/backend/supplier-list.tpl.php | 19 +++ Theme/backend/supplier-single.tpl.php | 19 +++ Theme/lang/backend.en.lang.php | 53 ++++++++ Theme/lang/nav.backend.en.lang.php | 20 +++ info.json | 51 ++++++++ 10 files changed, 691 insertions(+) create mode 100644 Admin/Install/Navigation.php create mode 100644 Admin/Install/nav.install.json create mode 100644 Admin/Installer.php create mode 100644 Controller.php create mode 100644 Theme/backend/supplier-create.tpl.php create mode 100644 Theme/backend/supplier-list.tpl.php create mode 100644 Theme/backend/supplier-single.tpl.php create mode 100644 Theme/lang/backend.en.lang.php create mode 100644 Theme/lang/nav.backend.en.lang.php create mode 100644 info.json diff --git a/Admin/Install/Navigation.php b/Admin/Install/Navigation.php new file mode 100644 index 0000000..e32f2f7 --- /dev/null +++ b/Admin/Install/Navigation.php @@ -0,0 +1,38 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\SupplierManagement\Admin\Install; + +/** + * Navigation class. + * + * @category Modules + * @package Modules\Admin + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class Navigation +{ + public static function install($dbPool) + { + $navData = json_decode(file_get_contents(__DIR__ . '/nav.install.json'), true); + + $class = '\\Modules\\Navigation\\Admin\\Installer'; + $class::installExternal($dbPool, $navData); + } +} diff --git a/Admin/Install/nav.install.json b/Admin/Install/nav.install.json new file mode 100644 index 0000000..fb23fa7 --- /dev/null +++ b/Admin/Install/nav.install.json @@ -0,0 +1,109 @@ +[ + { + "id": 1003202001, + "pid": "754a08ddf8bcb1cf22f310f09206dd783d42f7dd", + "type": 2, + "subtype": 1, + "name": "Suppliers", + "uri": "/{/lang}/backend/purchase/supplier/list", + "target": "self", + "icon": null, + "order": 1, + "from": 1003200000, + "permission": null, + "parent": 1002101001, + "children": [ + { + "id": 1003202101, + "pid": "520f00a1a583e4936dc01665781e0dfafd699613", + "type": 3, + "subtype": 1, + "name": "List", + "uri": "/{/lang}/backend/purchase/supplier/list", + "target": "self", + "icon": null, + "order": 1, + "from": 1003200000, + "permission": null, + "parent": 1003202001, + "children": [ + { + "id": 1003203101, + "pid": "8cb9bb8ac30a3372db74b90f4c847bdb48da45ce", + "type": 3, + "subtype": 1, + "name": "Profile", + "uri": "/{/lang}/backend/purchase/supplier/profile", + "target": "self", + "icon": null, + "order": 1, + "from": 1003200000, + "permission": null, + "parent": 1003202101, + "children": [] + }, + { + "id": 1003203201, + "pid": "8cb9bb8ac30a3372db74b90f4c847bdb48da45ce", + "type": 3, + "subtype": 1, + "name": "Invoices", + "uri": "/{/lang}/backend/purchase/supplier/invoice/list", + "target": "self", + "icon": null, + "order": 1, + "from": 1003200000, + "permission": null, + "parent": 1003202101, + "children": [] + }, + { + "id": 1003203301, + "pid": "8cb9bb8ac30a3372db74b90f4c847bdb48da45ce", + "type": 3, + "subtype": 1, + "name": "Articles", + "uri": "/{/lang}/backend/purchase/supplier/article/list", + "target": "self", + "icon": null, + "order": 1, + "from": 1003200000, + "permission": null, + "parent": 1003202101, + "children": [] + }, + { + "id": 1003203401, + "pid": "8cb9bb8ac30a3372db74b90f4c847bdb48da45ce", + "type": 3, + "subtype": 1, + "name": "Analysis", + "uri": "/{/lang}/backend/purchase/supplier/analysis", + "target": "self", + "icon": null, + "order": 1, + "from": 1003200000, + "permission": null, + "parent": 1003202101, + "children": [] + } + ] + }, + { + "id": 1003202201, + "pid": "520f00a1a583e4936dc01665781e0dfafd699613", + "type": 3, + "subtype": 1, + "name": "Create", + "uri": "/{/lang}/backend/purchase/supplier/create", + "target": "self", + "icon": null, + "order": 5, + "from": 1003200000, + "permission": null, + "parent": 1003202001, + "children": [] + } + ] + } +] diff --git a/Admin/Installer.php b/Admin/Installer.php new file mode 100644 index 0000000..0560e20 --- /dev/null +++ b/Admin/Installer.php @@ -0,0 +1,49 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\SupplierManagement\Admin; + +use phpOMS\DataStorage\Database\DatabaseType; +use phpOMS\DataStorage\Database\Pool; +use phpOMS\Module\InstallerAbstract; + +/** + * Purchase install class. + * + * @category Modules + * @package Modules\Purchase + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class Installer extends InstallerAbstract +{ + + /** + * {@inheritdoc} + */ + public static function install(Pool $dbPool, array $info) + { + parent::install($dbPool, $info); + + switch ($dbPool->get('core')->getType()) { + case DatabaseType::MYSQL: + + break; + } + } +} diff --git a/Controller.php b/Controller.php new file mode 100644 index 0000000..65aa128 --- /dev/null +++ b/Controller.php @@ -0,0 +1,170 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\SupplierManagement; + +use Modules\Navigation\Models\Navigation; +use Modules\Navigation\Views\NavigationView; +use phpOMS\Contract\RenderableInterface; +use phpOMS\Message\RequestAbstract; +use phpOMS\Message\RequestDestination; +use phpOMS\Message\ResponseAbstract; +use phpOMS\Module\ModuleAbstract; +use phpOMS\Module\WebInterface; +use phpOMS\Views\View; +use phpOMS\Views\ViewLayout; + +/** + * SupplierManagement controller class. + * + * @category Modules + * @package Modules\SupplierManagement + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class Controller extends ModuleAbstract implements WebInterface +{ + + /** + * Module name. + * + * @var \string + * @since 1.0.0 + */ + protected static $module = 'SupplierManagement'; + + /** + * Localization files. + * + * @var \string + * @since 1.0.0 + */ + protected static $localization = [ + RequestDestination::BACKEND => ['backend'], + ]; + + /** + * Providing. + * + * @var \string + * @since 1.0.0 + */ + protected static $providing = [ + 'Content', + ]; + + /** + * Dependencies. + * + * @var \string + * @since 1.0.0 + */ + protected static $dependencies = []; + + /** + * Routing elements. + * + * @var array + * @since 1.0.0 + */ + protected static $routes = [ + '^.*/backend/purchase/supplier/list.*$' => [['dest' => '\Modules\SupplierManagement\Controller:viewSupplierManagementSupplierList', 'method' => 'GET', 'type' => ViewLayout::MAIN],], + '^.*/backend/purchase/supplier/create.*$' => [['dest' => '\Modules\SupplierManagement\Controller:viewSupplierManagementSupplierCreate', 'method' => 'GET', 'type' => ViewLayout::MAIN],], + '^.*/backend/purchase/supplier/profile.*$' => [['dest' => '\Modules\SupplierManagement\Controller:viewSupplierManagementSupplierProfile', 'method' => 'GET', 'type' => ViewLayout::MAIN],], + '^.*/backend/purchase/supplier/analysis.*$' => [['dest' => '\Modules\SupplierManagement\Controller:viewSupplierManagementSupplierAnalysis', 'method' => 'GET', 'type' => ViewLayout::MAIN],], + ]; + + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return RenderableInterface + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function viewSupplierManagementSupplierList(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/SupplierManagement/Theme/backend/supplier-list'); + $view->addData('nav', $this->createNavigation(1003202001, $request, $response)); + + return $view; + } + + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return RenderableInterface + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function viewSupplierManagementSupplierCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/SupplierManagement/Theme/backend/supplier-create'); + $view->addData('nav', $this->createNavigation(1003202001, $request, $response)); + + return $view; + } + + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return RenderableInterface + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function viewSupplierManagementSupplierProfile(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/SupplierManagement/Theme/backend/supplier-profile'); + $view->addData('nav', $this->createNavigation(1003202001, $request, $response)); + + return $view; + } + + /** + * @param int $pageId Page/parent Id for navigation + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * + * @return RenderableInterface + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + private function createNavigation(\int $pageId, RequestAbstract $request, ResponseAbstract $response) + { + $nav = Navigation::getInstance($request, $this->app->dbPool); + $navView = new NavigationView($this->app, $request, $response); + $navView->setTemplate('/Modules/Navigation/Theme/backend/mid'); + $navView->setNav($nav->getNav()); + $navView->setLanguage($request->getL11n()->language); + $navView->setParent($pageId); + + return $navView; + } +} diff --git a/Theme/backend/supplier-create.tpl.php b/Theme/backend/supplier-create.tpl.php new file mode 100644 index 0000000..c18dc34 --- /dev/null +++ b/Theme/backend/supplier-create.tpl.php @@ -0,0 +1,163 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +/** + * @var \phpOMS\Views\View $this + */ +echo $this->getData('nav')->render(); ?> + +
+
+ +
+
+ +
+
+

l11n->lang['SupplierManagement']['Supplier'] ?>

+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+

l11n->lang['SupplierManagement']['Contact'] ?>

+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+

l11n->lang['SupplierManagement']['Address'] ?>

+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+

l11n->lang['SupplierManagement']['PaymentTerm'] ?>

+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+

l11n->lang['SupplierManagement']['Payment'] ?>

+
+
+ +
+
+
+
+
+
+
+
+ +
+
+
+
diff --git a/Theme/backend/supplier-list.tpl.php b/Theme/backend/supplier-list.tpl.php new file mode 100644 index 0000000..9dd9c79 --- /dev/null +++ b/Theme/backend/supplier-list.tpl.php @@ -0,0 +1,19 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +/** + * @var \phpOMS\Views\View $this + */ +echo $this->getData('nav')->render(); ?> diff --git a/Theme/backend/supplier-single.tpl.php b/Theme/backend/supplier-single.tpl.php new file mode 100644 index 0000000..9dd9c79 --- /dev/null +++ b/Theme/backend/supplier-single.tpl.php @@ -0,0 +1,19 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +/** + * @var \phpOMS\Views\View $this + */ +echo $this->getData('nav')->render(); ?> diff --git a/Theme/lang/backend.en.lang.php b/Theme/lang/backend.en.lang.php new file mode 100644 index 0000000..3599bcd --- /dev/null +++ b/Theme/lang/backend.en.lang.php @@ -0,0 +1,53 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +$MODLANG['SupplierManagement'] = [ + 'Accounting' => 'Accounting', + 'Address' => 'Address', + 'Addresses' => 'Addresses', + 'Articlegroup' => 'Articlegroup', + 'Contact' => 'Contact', + 'Country' => 'Country', + 'Creditcard' => 'Creditcard', + 'Default' => 'Default', + 'Delivery' => 'Delivery', + 'Email' => 'Email', + 'Fax' => 'Fax', + 'Files' => 'Files', + 'Freightage' => 'Freightage', + 'Group' => 'Group', + 'Info' => 'Info', + 'Invoice' => 'Invoice', + 'IsDefault' => 'Is default', + 'Master' => 'Master', + 'Name' => 'Name', + 'Name1' => 'Name1', + 'Name2' => 'Name2', + 'Name3' => 'Name3', + 'Office' => 'Office', + 'PaymentTerm' => 'Payment Term', + 'Payment' => 'Payment', + 'Phone' => 'Phone', + 'Productgroup' => 'Productgroup', + 'Purchase' => 'Purchase', + 'Sales' => 'Sales', + 'Segment' => 'Segment', + 'Subtype' => 'Subtype', + 'Support' => 'Support', + 'Supplier' => 'Supplier', + 'Type' => 'Type', + 'Wire' => 'Wire', + 'Zip' => 'Zip', +]; diff --git a/Theme/lang/nav.backend.en.lang.php b/Theme/lang/nav.backend.en.lang.php new file mode 100644 index 0000000..196c9b0 --- /dev/null +++ b/Theme/lang/nav.backend.en.lang.php @@ -0,0 +1,20 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +$MODLANG['Navigation'] = [ + 'Create' => 'Create', + 'List' => 'List', + 'Suppliers' => 'Suppliers', +]; diff --git a/info.json b/info.json new file mode 100644 index 0000000..5892c80 --- /dev/null +++ b/info.json @@ -0,0 +1,51 @@ +{ + "name": { + "id": 1003200000, + "internal": "SupplierManagement", + "external": "OMS Purchase" + }, + "version": "1.0.0", + "requirements": { + "phpOMS": "1.0.0", + "phpOMS-db": "1.0.0" + }, + "creator": { + "name": "Orange Management", + "website": "www.spl1nes.com" + }, + "description": "Supplier management module.", + "directory": "SupplierManagement", + "dependencies": {}, + "providing": { + "Navigation": "*" + }, + "load": [ + { + "pid": [ + "520f00a1a583e4936dc01665781e0dfafd699613" + ], + "type": 4, + "for": 0, + "from": "SupplierManagement", + "file": "SupplierManagement" + }, + { + "pid": [ + "754a08ddf8bcb1cf22f310f09206dd783d42f7dd" + ], + "type": 5, + "from": "SupplierManagement", + "for": "Navigation", + "file": "nav.backend" + }, + { + "pid": [ + "520f00a1a583e4936dc01665781e0dfafd699613" + ], + "type": 5, + "for": "Content", + "file": "backend", + "from": "SupplierManagement" + } + ] +}