diff --git a/Admin/Activate.php b/Admin/Activate.php new file mode 100644 index 0000000..82a61e2 --- /dev/null +++ b/Admin/Activate.php @@ -0,0 +1,44 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\SalesAnalysis\Admin; + + +use phpOMS\DataStorage\Database\Pool; +use phpOMS\Module\ActivateAbstract; +use phpOMS\Module\InfoManager; + +/** + * 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 Activate extends ActivateAbstract +{ + + /** + * {@inheritdoc} + */ + public static function activate(Pool $dbPool, InfoManager $info) + { + parent::activate($dbPool, $info); + } +} diff --git a/Admin/Deactivate.php b/Admin/Deactivate.php new file mode 100644 index 0000000..9112001 --- /dev/null +++ b/Admin/Deactivate.php @@ -0,0 +1,44 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\SalesAnalysis\Admin; + + +use phpOMS\DataStorage\Database\Pool; +use phpOMS\Module\DeactivateAbstract; +use phpOMS\Module\InfoManager; + +/** + * 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 Deactivate extends DeactivateAbstract +{ + + /** + * {@inheritdoc} + */ + public static function deactivate(Pool $dbPool, InfoManager $info) + { + parent::deactivate($dbPool, $info); + } +} diff --git a/Admin/Install/Navigation.install.json b/Admin/Install/Navigation.install.json new file mode 100644 index 0000000..4585dac --- /dev/null +++ b/Admin/Install/Navigation.install.json @@ -0,0 +1,138 @@ +[ + { + "id": 1005401001, + "pid": "754a08ddf8bcb1cf22f310f09206dd783d42f7dd", + "type": 2, + "subtype": 1, + "name": "Analysis", + "uri": "/{/lang}/backend/sales/analysis/overview/dashboard", + "target": "self", + "icon": null, + "order": 15, + "from": "Analysis", + "permission": null, + "parent": 1001601001, + "children": [ + { + "id": 1005401002, + "pid": "44cbe06dd734865b28c110fbbf91d78ccf8124ae", + "type": 3, + "subtype": 1, + "name": "Overview", + "uri": "/{/lang}/backend/sales/analysis/overview/dashboard", + "target": "self", + "icon": "fa fa-bar-chart", + "order": 1, + "from": "Analysis", + "permission": null, + "parent": 1005401001, + "children": [] + }, + { + "id": 1005401003, + "pid": "44cbe06dd734865b28c110fbbf91d78ccf8124ae", + "type": 3, + "subtype": 1, + "name": "Products", + "uri": "/{/lang}/backend/sales/analysis/product/dashboard", + "target": "self", + "icon": "fa fa-tag", + "order": 1, + "from": "Analysis", + "permission": null, + "parent": 1005401001, + "children": [] + }, + { + "id": 1005401004, + "pid": "44cbe06dd734865b28c110fbbf91d78ccf8124ae", + "type": 3, + "subtype": 1, + "name": "Customers", + "uri": "/{/lang}/backend/sales/analysis/customer/dashboard", + "target": "self", + "icon": "fa fa-users", + "order": 1, + "from": "Analysis", + "permission": null, + "parent": 1005401001, + "children": [] + }, + { + "id": 1005401005, + "pid": "44cbe06dd734865b28c110fbbf91d78ccf8124ae", + "type": 3, + "subtype": 1, + "name": "Regions", + "uri": "/{/lang}/backend/sales/analysis/region/dashboard", + "target": "self", + "icon": "fa fa-globe", + "order": 1, + "from": "Analysis", + "permission": null, + "parent": 1005401001, + "children": [] + }, + { + "id": 1005401006, + "pid": "44cbe06dd734865b28c110fbbf91d78ccf8124ae", + "type": 3, + "subtype": 1, + "name": "Marketing", + "uri": "/{/lang}/backend/sales/analysis/marketing/dashboard", + "target": "self", + "icon": "fa fa-paint-brush", + "order": 1, + "from": "Analysis", + "permission": null, + "parent": 1005401001, + "children": [] + }, + { + "id": 1005401007, + "pid": "44cbe06dd734865b28c110fbbf91d78ccf8124ae", + "type": 3, + "subtype": 1, + "name": "Employees", + "uri": "/{/lang}/backend/sales/analysis/employees/dashboard", + "target": "self", + "icon": "fa fa-building-o", + "order": 1, + "from": "Analysis", + "permission": null, + "parent": 1005401001, + "children": [] + }, + { + "id": 1005401008, + "pid": "44cbe06dd734865b28c110fbbf91d78ccf8124ae", + "type": 3, + "subtype": 1, + "name": "Invoices", + "uri": "/{/lang}/backend/sales/analysis/invoices/dashboard", + "target": "self", + "icon": "fa fa-envelope", + "order": 1, + "from": "Analysis", + "permission": null, + "parent": 1005401001, + "children": [] + }, + { + "id": 1005401009, + "pid": "44cbe06dd734865b28c110fbbf91d78ccf8124ae", + "type": 3, + "subtype": 1, + "name": "Database", + "uri": "/{/lang}/backend/sales/analysis/invoices/dashboard", + "target": "self", + "icon": "fa fa-database", + "order": 1, + "from": "Analysis", + "permission": null, + "parent": 1005401001, + "children": [] + } + ] + } +] diff --git a/Admin/Install/Navigation.php b/Admin/Install/Navigation.php new file mode 100644 index 0000000..28ad692 --- /dev/null +++ b/Admin/Install/Navigation.php @@ -0,0 +1,40 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\SalesAnalysis\Admin\Install; +use phpOMS\DataStorage\Database\Pool; + +/** + * 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(Pool $dbPool) + { + $navData = json_decode(file_get_contents(__DIR__ . '/Navigation.install.json'), true); + + $class = '\\Modules\\Navigation\\Admin\\Installer'; + /** @var $class \Modules\Navigation\Admin\Installer */ + $class::installExternal($dbPool, $navData); + } +} diff --git a/Admin/Installer.php b/Admin/Installer.php new file mode 100644 index 0000000..a6d9c02 --- /dev/null +++ b/Admin/Installer.php @@ -0,0 +1,50 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\SalesAnalysis\Admin; + +use phpOMS\DataStorage\Database\DatabaseType; +use phpOMS\DataStorage\Database\Pool; +use phpOMS\Module\InfoManager; +use phpOMS\Module\InstallerAbstract; + +/** + * Sales install class. + * + * @category Modules + * @package Modules\Sales + * @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, InfoManager $info) + { + parent::install($dbPool, $info); + + switch ($dbPool->get('core')->getType()) { + case DatabaseType::MYSQL: + + break; + } + } +} diff --git a/Admin/Routes/console.php b/Admin/Routes/console.php new file mode 100644 index 0000000..1ecbfac --- /dev/null +++ b/Admin/Routes/console.php @@ -0,0 +1,3 @@ + [ + [ + 'dest' => '\Modules\SalesAnalysis\Controller:viewBackendDashboard', + 'verb' => RouteVerb::GET, + ], + ], + + '^.*/backend/sales/analysis/overview/dashboard.*$' => [ + [ + 'dest' => '\Modules\SalesAnalysis\Controller:viewBackendOverviewDashboard', + 'verb' => RouteVerb::GET, + ], + ], +]; diff --git a/Admin/Routes/socket.php b/Admin/Routes/socket.php new file mode 100644 index 0000000..1ecbfac --- /dev/null +++ b/Admin/Routes/socket.php @@ -0,0 +1,3 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\SalesAnalysis\Admin; + + +use phpOMS\DataStorage\Database\Pool; +use phpOMS\Module\UninstallAbstract; + +/** + * 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 Uninstall extends UninstallAbstract +{ + + /** + * {@inheritdoc} + */ + public static function uninstall(Pool $dbPool, InfoManager $info) + { + parent::uninstall($dbPool, $info); + } +} diff --git a/Admin/Update.php b/Admin/Update.php new file mode 100644 index 0000000..8b45209 --- /dev/null +++ b/Admin/Update.php @@ -0,0 +1,46 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\SalesAnalysis\Admin; + + +use phpOMS\DataStorage\Database\Pool; +use phpOMS\Module\UpdateAbstract; +use phpOMS\System\File\Directory; + +/** + * 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 Update extends UpdateAbstract +{ + + /** + * {@inheritdoc} + */ + public static function update(Pool $dbPool, array $info) + { + Directory::deletePath(__DIR__ . '/Update'); + mkdir('Update'); + parent::update($dbPool, $info); + } +} diff --git a/Controller.php b/Controller.php new file mode 100644 index 0000000..f68ea24 --- /dev/null +++ b/Controller.php @@ -0,0 +1,120 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\SalesAnalysis; + +use Modules\Navigation\Models\Navigation; +use Modules\Navigation\Views\NavigationView; +use phpOMS\Contract\RenderableInterface; +use phpOMS\Message\RequestAbstract; +use phpOMS\Message\ResponseAbstract; +use phpOMS\Module\ModuleAbstract; +use phpOMS\Module\WebInterface; +use phpOMS\Views\View; +use phpOMS\Views\ViewLayout; + +/** + * Sales class. + * + * @category Modules + * @package Modules\Sales + * @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 path. + * + * @var string + * @since 1.0.0 + */ + const MODULE_PATH = __DIR__; + + /** + * Module version. + * + * @var string + * @since 1.0.0 + */ + const MODULE_VERSION = '1.0.0'; + + /** + * Module name. + * + * @var string + * @since 1.0.0 + */ + const MODULE_NAME = 'SalesAnalysis'; + + /** + * Providing. + * + * @var string + * @since 1.0.0 + */ + protected static $providing = []; + + /** + * Dependencies. + * + * @var string + * @since 1.0.0 + */ + protected static $dependencies = [ + ]; + + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return \Serializable + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function viewBackendDashboard(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/SalesAnalysis/Theme/Backend/analysis-dashboard'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationSplash(1005401001, $request, $response)); + + return $view; + } + + /** + * @param RequestAbstract $request Request + * @param ResponseAbstract $response Response + * @param mixed $data Generic data + * + * @return \Serializable + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function viewBackendOverviewDashboard(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable + { + $view = new View($this->app, $request, $response); + $view->setTemplate('/Modules/SalesAnalysis/Theme/Backend/analysis-overview-dashboard'); + $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005401001, $request, $response)); + + return $view; + } +} diff --git a/Models/Article.php b/Models/Article.php new file mode 100644 index 0000000..e69de29 diff --git a/Models/Client.php b/Models/Client.php new file mode 100644 index 0000000..e69de29 diff --git a/Models/Invoice.php b/Models/Invoice.php new file mode 100644 index 0000000..d7acc57 --- /dev/null +++ b/Models/Invoice.php @@ -0,0 +1,521 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Sales\Models; + +/** + * Sales invoice class. + * + * @category Modules + * @package Modules\Sales + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +class Invoice +{ + + /** + * Database instance. + * + * @var \phpOMS\DataStorage\Database\Database + * @since 1.0.0 + */ + private $dbPool = null; + + /** + * private $id = null;. + * + * private $referer = null; + * + * private $reference = null; + * + * private $orderer = null; + * + * private $ordered = null; + * + * private $creator = null; + * + * private $created = null; + * + * private $client = null; + * + * private $deliveryAddress = null; + * + * private $billingAddress = null; + * + * private $payment = null; + * + * private $delivery = null; + * + * private $freightage = null; + * + * private $invoiceItemList = []; + * + * private $info = ''; + * + * private $status = null; + * + * private $price = null; + * + * private $currency = null; + * + * /** + * Constructor + * + * @param \phpOMS\DataStorage\Database\Pool $dbPool Database pool instance + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function __construct($dbPool) + { + $this->dbPool = $dbPool; + } + + /** + * @return null + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function getId() + { + return $this->id; + } + + /** + * @param null $id + * + * @return void + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setId($id) + { + $this->id = $id; + } + + /** + * @return null + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function getReference() + { + return $this->reference; + } + + /** + * @param null $reference + * + * @return void + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setReference($reference) + { + $this->reference = $reference; + } + + /** + * @return null + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function getOrderer() + { + return $this->orderer; + } + + /** + * @param null $orderer + * + * @return void + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setOrderer($orderer) + { + $this->orderer = $orderer; + } + + /** + * @return null + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function getOrdered() + { + return $this->ordered; + } + + /** + * @param null $ordered + * + * @return void + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setOrdered($ordered) + { + $this->ordered = $ordered; + } + + /** + * @return null + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function getCreator() + { + return $this->creator; + } + + /** + * @param null $creator + * + * @return void + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setCreator($creator) + { + $this->creator = $creator; + } + + /** + * @return null + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function getCreated() + { + return $this->created; + } + + /** + * @param null $created + * + * @return void + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setCreated($created) + { + $this->created = $created; + } + + /** + * @return null + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function getClient() + { + return $this->client; + } + + /** + * @param null $client + * + * @return void + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setClient($client) + { + $this->client = $client; + } + + /** + * @return null + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function getDeliveryAddress() + { + return $this->deliveryAddress; + } + + /** + * @param null $deliveryAddress + * + * @return void + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setDeliveryAddress($deliveryAddress) + { + $this->deliveryAddress = $deliveryAddress; + } + + /** + * @return null + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function getBillingAddress() + { + return $this->billingAddress; + } + + /** + * @param null $billingAddress + * + * @return void + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setBillingAddress($billingAddress) + { + $this->billingAddress = $billingAddress; + } + + /** + * @return null + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function getPayment() + { + return $this->payment; + } + + /** + * @param null $payment + * + * @return void + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setPayment($payment) + { + $this->payment = $payment; + } + + /** + * @return null + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function getDelivery() + { + return $this->delivery; + } + + /** + * @param null $delivery + * + * @return void + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setDelivery($delivery) + { + $this->delivery = $delivery; + } + + /** + * @return null + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function getFreightage() + { + return $this->freightage; + } + + /** + * @param null $freightage + * + * @return void + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setFreightage($freightage) + { + $this->freightage = $freightage; + } + + /** + * @return array + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function getInvoiceItemList() + { + return $this->invoiceItemList; + } + + /** + * @param array $invoiceItemList + * + * @return void + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setInvoiceItemList($invoiceItemList) + { + $this->invoiceItemList = $invoiceItemList; + } + + /** + * {@inheritdoc} + */ + public function serialize() + { + // TODO: Implement serialize() method. + } + + /** + * {@inheritdoc} + */ + public function unserialize($serialized) + { + // TODO: Implement unserialize() method. + } + + /** + * {@inheritdoc} + */ + public function delete() + { + // TODO: Implement delete() method. + } + + /** + * {@inheritdoc} + */ + public function create() + { + // TODO: Implement create() method. + } + + /** + * {@inheritdoc} + */ + public function update() + { + // TODO: Implement update() method. + } + + /** + * {@inheritdoc} + */ + public function init($id) + { + // TODO: Implement init() method. + } + + public function getPrice() + { + } + + public function getDiscount() + { + } + + public function getDiscountP() + { + } + + public function getProfit() + { + } + + public function getGrossProfit() + { + } + + public function getPayed() + { + } + + /** + * @return string + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function getInfo() + { + return $this->info; + } + + /** + * @param string $info + * + * @return void + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setInfo($info) + { + $this->info = $info; + } + + /** + * @return null + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function getStatus() + { + return $this->status; + } + + /** + * @param null $status + * + * @return void + * + * @since 1.0.0 + * @author Dennis Eichhorn + */ + public function setStatus($status) + { + $this->status = $status; + } +} diff --git a/Models/InvoiceItem.php b/Models/InvoiceItem.php new file mode 100644 index 0000000..e69de29 diff --git a/Models/InvoiceStatus.php b/Models/InvoiceStatus.php new file mode 100644 index 0000000..4df34b0 --- /dev/null +++ b/Models/InvoiceStatus.php @@ -0,0 +1,44 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Sales\Models; + +use phpOMS\Datatypes\Enum; + +/** + * Invoice types enum. + * + * @category Modules + * @package Sales + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +abstract class InvoiceStatus extends Enum +{ + const BLOCKED = 0; /* Invoice needs approval */ + const DRAFT = 1; /* Invoice is still in draft */ + const READY = 2; /* Invoice is ready for accounting transfer */ + const UNPAID = 3; /* Invoice is not paid */ + const PAID_PARTIALLY = 4; /* Invoice is partially paid */ + const PAID = 5; /* Invoice is paid */ + const OFFSETTING = 6; /* This invoice may receive a credit */ + const OPEN = 7; /* offer & confirmation */ + const CHANGED = 8; /* offer & confirmation */ + const CLOSED = 9; /* offer & confirmation */ + const ACCEPTED = 10; /* offer & confirmation */ +} diff --git a/Models/InvoiceType.php b/Models/InvoiceType.php new file mode 100644 index 0000000..e5e517b --- /dev/null +++ b/Models/InvoiceType.php @@ -0,0 +1,40 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +namespace Modules\Sales\Models; + +use phpOMS\Datatypes\Enum; + +/** + * Invoice types enum. + * + * @category Modules + * @package Sales + * @author OMS Development Team + * @author Dennis Eichhorn + * @license OMS License 1.0 + * @link http://orange-management.com + * @since 1.0.0 + */ +abstract class InvoiceType extends Enum +{ + const OFFER = 0; + + const CONTRACT_NOTE = 1; + + const DELIVERY_NOTE = 2; + + const BILL = 3; +} diff --git a/Models/sales_price_names.php b/Models/sales_price_names.php new file mode 100644 index 0000000..ed174e0 --- /dev/null +++ b/Models/sales_price_names.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 + */ +$SalesPriceNames = [ + 0 => 'DefaultInternational', + 1 => 'DefaultNational', +]; diff --git a/Theme/Backend/Lang/Navigation.en.lang.php b/Theme/Backend/Lang/Navigation.en.lang.php new file mode 100644 index 0000000..93591c7 --- /dev/null +++ b/Theme/Backend/Lang/Navigation.en.lang.php @@ -0,0 +1,25 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +return ['Navigation' => [ + 'Analysis' => 'Analysis', + 'Customers' => 'Customers', + 'Database' => 'Database', + 'Invoices' => 'Invoices', + 'Marketing' => 'Marketing', + 'Overview' => 'Overview', + 'Products' => 'Products', + 'Regions' => 'Regions', +]]; diff --git a/Theme/Backend/Lang/api.en.lang.php b/Theme/Backend/Lang/api.en.lang.php new file mode 100644 index 0000000..eea62f6 --- /dev/null +++ b/Theme/Backend/Lang/api.en.lang.php @@ -0,0 +1,17 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +$MODLANG[1] = [ +]; diff --git a/Theme/Backend/Lang/en.lang.php b/Theme/Backend/Lang/en.lang.php new file mode 100644 index 0000000..dda581c --- /dev/null +++ b/Theme/Backend/Lang/en.lang.php @@ -0,0 +1,62 @@ + + * @author Dennis Eichhorn + * @copyright 2013 Dennis Eichhorn + * @license OMS License 1.0 + * @version 1.0.0 + * @link http://orange-management.com + */ +return ['SalesAnalysis' => [ + 'Africa' => 'Africa', + 'America' => 'America', + 'Analysis' => 'Analysis', + 'Asia' => 'Asia', + 'Change' => 'Change', + 'ChangeAcc' => 'Change Acc.', + 'Charts' => 'Charts', + 'Comparison' => 'Comparison', + 'Continents' => 'Continents', + 'CurrentMonth' => 'Current Month', + 'CurrentYear' => 'Current Year', + 'CurrentYearAcc' => 'Current Year Acc.', + 'Customers' => 'Customers', + 'Data' => 'Data', + 'Database' => 'Database', + 'Day' => 'Day', + 'Developed' => 'Developed', + 'Developed/Undeveloped' => 'Developed/Undeveloped', + 'Development' => 'Development', + 'Domestic/Export' => 'Domestic/Export', + 'Domestic' => 'Domestic', + 'Employees' => 'Employees', + 'Europe' => 'Europe', + 'Export' => 'Export', + 'Forecast' => 'Forecast', + 'Frequency' => 'Frequency', + 'Interval' => 'Interval', + 'Invoices' => 'Invoices', + 'LastMonth' => 'Last Month', + 'LastYear' => 'Last Year', + 'LastYearAcc' => 'Last Year Acc.', + 'Marketing' => 'Marketing', + 'Misc' => 'Misc', + 'Month' => 'Month', + 'Overview' => 'Overview', + 'Products' => 'Products', + 'Regions' => 'Regions', + 'To' => 'To', + 'Today' => 'Today', + 'Top10' => 'Top 10', + 'Total' => 'Total', + 'Type' => 'Type', + 'Undeveloped' => 'Undeveloped', + 'Year' => 'Year', + 'Yesterday' => 'Yesterday', +]]; diff --git a/Theme/Backend/analysis-overview-dashboard.tpl.php b/Theme/Backend/analysis-overview-dashboard.tpl.php new file mode 100644 index 0000000..4fd76b7 --- /dev/null +++ b/Theme/Backend/analysis-overview-dashboard.tpl.php @@ -0,0 +1,191 @@ + + * @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->getText('SalesAnalysis', 'Overview') ?>
l11n->getText('SalesAnalysis', 'Type'); ?> + l11n->getText('SalesAnalysis', 'LastMonth'); ?> + l11n->getText('SalesAnalysis', 'CurrentMonth'); ?> + l11n->getText('SalesAnalysis', 'Change'); ?> + l11n->getText('SalesAnalysis', 'LastYear'); ?> + l11n->getText('SalesAnalysis', 'CurrentYear'); ?> + l11n->getText('SalesAnalysis', 'Change'); ?> + l11n->getText('SalesAnalysis', 'LastYearAcc'); ?> + l11n->getText('SalesAnalysis', 'CurrentYearAcc'); ?> + l11n->getText('SalesAnalysis', 'Change'); ?> + l11n->getText('SalesAnalysis', 'LastYear'); ?> + l11n->getText('SalesAnalysis', 'Forecast'); ?> + l11n->getText('SalesAnalysis', 'Change'); ?> +
l11n->getText('SalesAnalysis', 'Domestic'); ?> +
l11n->getText('SalesAnalysis', 'Export'); ?> +
l11n->getText('SalesAnalysis', 'Developed'); ?> +
l11n->getText('SalesAnalysis', 'Undeveloped'); ?> +
l11n->getText('SalesAnalysis', 'Europe'); ?> +
l11n->getText('SalesAnalysis', 'America'); ?> +
l11n->getText('SalesAnalysis', 'Asia'); ?> +
l11n->getText('SalesAnalysis', 'Africa'); ?> +
l11n->getText('SalesAnalysis', 'Total'); ?> +
+
+ +
+ + + + + +
l11n->getText('SalesAnalysis', 'Misc') ?>
l11n->getText('SalesAnalysis', 'Type'); ?> + l11n->getText('SalesAnalysis', 'LastYear'); ?> + l11n->getText('SalesAnalysis', 'CurrentYear'); ?> + l11n->getText('SalesAnalysis', 'LastMonth'); ?> + l11n->getText('SalesAnalysis', 'CurrentMonth'); ?> + l11n->getText('SalesAnalysis', 'Yesterday'); ?> + l11n->getText('SalesAnalysis', 'Today'); ?> +
l11n->getText('SalesAnalysis', 'Customers'); ?> +
l11n->getText('SalesAnalysis', 'Invoices'); ?> +
+
+
+ +
+
+ + + + + +
l11n->getText('SalesAnalysis', 'Month') ?>
l11n->getText('SalesAnalysis', 'Day'); ?> + l11n->getText('SalesAnalysis', 'Day'); ?> + l11n->getText('SalesAnalysis', 'LastMonth'); ?> + l11n->getText('SalesAnalysis', 'CurrentMonth'); ?> + l11n->getText('SalesAnalysis', 'Change'); ?> + l11n->getText('SalesAnalysis', 'ChangeAcc'); ?> +
+
+
+
+ +
+
+ + + + + +
l11n->getText('SalesAnalysis', 'Year') ?>
l11n->getText('SalesAnalysis', 'Year'); ?> + l11n->getText('SalesAnalysis', 'January'); ?> + l11n->getText('SalesAnalysis', 'February'); ?> + l11n->getText('SalesAnalysis', 'March'); ?> + l11n->getText('SalesAnalysis', 'April'); ?> + l11n->getText('SalesAnalysis', 'May'); ?> + l11n->getText('SalesAnalysis', 'June'); ?> + l11n->getText('SalesAnalysis', 'July'); ?> + l11n->getText('SalesAnalysis', 'August'); ?> + l11n->getText('SalesAnalysis', 'September'); ?> + l11n->getText('SalesAnalysis', 'October'); ?> + l11n->getText('SalesAnalysis', 'November'); ?> + l11n->getText('SalesAnalysis', 'December'); ?> +
2013 +
2014 +
2015 +
CY 2016 +
2017 +
2018 +
2019 +
2020 +
2021 +
+
+
+ +
+
+
+

l11n->getText('SalesAnalysis', 'Customers'); ?>

+
+
+
+
+
+
+

l11n->getText('SalesAnalysis', 'Products'); ?>

+
+
+
+
+
+
+

l11n->getText('SalesAnalysis', 'Employees'); ?>

+
+
+
+
+
+ +
+
+
+

l11n->getText('SalesAnalysis', 'Domestic/Export'); ?>

+
+
+
+
+
+
+

l11n->getText('SalesAnalysis', 'Developed/Undeveloped'); ?>

+
+
+
+
+
+
+

l11n->getText('SalesAnalysis', 'Continents'); ?>

+
+
+
+
+
+
+

l11n->getText('SalesAnalysis', 'Development'); ?>

+
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/Theme/Backend/analysis-overview-data.tpl.php b/Theme/Backend/analysis-overview-data.tpl.php new file mode 100644 index 0000000..e69de29 diff --git a/Theme/Backend/analysis-products-dashboard.tpl.php b/Theme/Backend/analysis-products-dashboard.tpl.php new file mode 100644 index 0000000..e69de29 diff --git a/Theme/Backend/analysis-products-data.tpl.php b/Theme/Backend/analysis-products-data.tpl.php new file mode 100644 index 0000000..e69de29 diff --git a/img/module_teaser_small.png b/img/module_teaser_small.png new file mode 100644 index 0000000..f56e6ff Binary files /dev/null and b/img/module_teaser_small.png differ diff --git a/info.json b/info.json new file mode 100644 index 0000000..1899807 --- /dev/null +++ b/info.json @@ -0,0 +1,53 @@ +{ + "name": { + "id": 1005400000, + "internal": "SalesAnalysis", + "external": "OMS Sales Analysis" + }, + "version": "1.0.0", + "requirements": { + "phpOMS": "1.0.0", + "phpOMS-db": "1.0.0" + }, + "creator": { + "name": "Orange Management", + "website": "www.spl1nes.com" + }, + "description": "Sales module.", + "directory": "SalesAnalysis", + "dependencies": { + "Admin" : "1.0.0" + }, + "providing": { + "Navigation": "*" + }, + "load": [ + { + "pid": [ + "44cbe06dd734865b28c110fbbf91d78ccf8124ae" + ], + "type": 4, + "for": 0, + "from": "SalesAnalysis", + "file": "SalesAnalysis" + }, + { + "pid": [ + "754a08ddf8bcb1cf22f310f09206dd783d42f7dd" + ], + "type": 5, + "from": "SalesAnalysis", + "for": "Navigation", + "file": "Navigation" + }, + { + "pid": [ + "44cbe06dd734865b28c110fbbf91d78ccf8124ae" + ], + "type": 5, + "for": "Content", + "file": "", + "from": "SalesAnalysis" + } + ] +}