diff --git a/config/settings/inventory.local.php.dist b/config/settings/inventory.local.php.dist index 2a0605732cd99e3d304e9122bce76143544a5e65..516c5ed41265cff257058e4aed1d5e4f945884c1 100644 --- a/config/settings/inventory.local.php.dist +++ b/config/settings/inventory.local.php.dist @@ -1,5 +1,27 @@ [ 'base_uri' => '', + 'category_map' => [ + // form inventory => in database + 'ACCESS POINT' => 'ACCESS POINT', + 'LAPTOP' => 'LAPTOP', + 'MODEM / ROUTER' => 'MODEM / ROUTER', + 'PATCH PANEL' => 'PATCH PANEL', + 'PRINTER' => 'PRINTER', + 'RACK' => 'RACK', + 'SCANNER' => 'SCANNER', + 'SERVER' => 'SERVER', + 'SWITCH/ HUB' => 'SWITCH/ HUB', + 'TABLET' => 'TABLET', + 'WEBCAM' => 'WEBCAM', + 'WORKSTATION' => 'ΣΤΑΘΜΟΣ ΕΡΓΑΣΙΑΣ', + 'ΒΙΝΤΕΟΠΡΟΒΟΛΕΑΣ' => 'ΒΙΝΤΕΟΠΡΟΒΟΛΕΑΣ', + 'ΔΙΑΔΡΑΣΤΙΚΟ ΣΥΣΤΗΜΑ' => 'ΔΙΑΔΡΑΣΤΙΚΟ ΣΥΣΤΗΜΑ', + 'ΕΠΕΞΕΡΓΑΣΤΗΣ (CPU)' => 'ΕΠΕΞΕΡΓΑΣΤΗΣ (CPU)', + 'ΚΙΝΗΤΟ ΕΡΓΑΣΤΗΡΙΟ' => 'ΚΙΝΗΤΟ ΕΡΓΑΣΤΗΡΙΟ', + 'ΜΝΗΜΗ RAM' => 'ΜΝΗΜΗ RAM', + 'ΟΘΟΝΗ' => 'ΟΘΟΝΗ', + 'ΣΚΛΗΡΟΣ ΔΙΣΚΟΣ' => 'ΣΚΛΗΡΟΣ ΔΙΣΚΟΣ', + ], ], ]; \ No newline at end of file diff --git a/module/sch_sync/bootstrap.php b/module/sch_sync/bootstrap.php index ba6789838e762fb57a6297817131af0279bf28ab..b4382b17bf07f196aaea219489d42f03fcd98446 100644 --- a/module/sch_sync/bootstrap.php +++ b/module/sch_sync/bootstrap.php @@ -51,13 +51,18 @@ return function (App $app) { ); }; $container[CreateLabs::class] = function ($c) { + $settings = $c->get('settings'); + $categoryMap = isset($settings['inventory']['category_map']) + ? $settings['inventory']['category_map'] : []; + return new CreateLabs( $c->get(LabServiceInterface::class), $c->get(AssetServiceInterface::class), $c->get('SchInventory\\Service'), $c->get(SchoolServiceInterface::class), $c->get('authentication_service'), - $c->get('logger') + $c->get('logger'), + $categoryMap ); }; }); diff --git a/module/sch_sync/src/Middleware/CreateLabs.php b/module/sch_sync/src/Middleware/CreateLabs.php index bd37acd2c3c51ea316015970c6cb76f458dff381..5a85dffcd2b1dc65021c213b9a297e0dc8a0046a 100644 --- a/module/sch_sync/src/Middleware/CreateLabs.php +++ b/module/sch_sync/src/Middleware/CreateLabs.php @@ -58,13 +58,20 @@ class CreateLabs */ private $logger; + /** + * + * @var array + */ + private $categoryMap; + public function __construct( LabServiceInterface $labService, AssetServiceInterface $assetService, InventoryService $inventoryService, SchoolServiceInterface $schoolService, AuthenticationServiceInterface $authService, - LoggerInterface $logger + LoggerInterface $logger, + array $categoryMap = [] ) { $this->labService = $labService; $this->assetService = $assetService; @@ -72,6 +79,7 @@ class CreateLabs $this->schoolService = $schoolService; $this->authService = $authService; $this->logger = $logger; + $this->categoryMap = $categoryMap; } public function __invoke(Request $req, Response $res, callable $next) @@ -134,10 +142,10 @@ class CreateLabs $categoryName = $item['item_template.category.name']; - $type = reset(array_filter(array_keys($assetTypes), function ($type) use ($categoryName) { + $type = reset(array_filter(array_keys($this->categoryMap), function ($type) use ($categoryName) { return $type == $categoryName; })); - $type = ($type) ? $assetTypes[$type] : false; + $type = ($type) ? $assetTypes[$this->categoryMap[$type]] : false; if ($type !== false) { if (!isset($uniq[$item['location.id']]->ownSchoolAsset[$type])) { diff --git a/module/schools/data/schema.mysql.sql b/module/schools/data/schema.mysql.sql index ecdbaa9861c199e6b3654ed16c5661d5e1737eed..ad302c41880115c060a3c6f6865292519b644311 100644 --- a/module/schools/data/schema.mysql.sql +++ b/module/schools/data/schema.mysql.sql @@ -108,7 +108,7 @@ CREATE TABLE `itemcategory` ( LOCK TABLES `itemcategory` WRITE; /*!40000 ALTER TABLE `itemcategory` DISABLE KEYS */; -INSERT INTO `itemcategory` VALUES (8,'ACCESS POINT'),(26,'LAPTOP'),(6,'MODEM / ROUTER '),(5,'PATCH PANEL'),(14,'PRINTER'),(3,'RACK'),(13,'SCANNER'),(24,'SERVER'),(2,'SWITCH/ HUB'),(23,'TABLET'),(11,'WEBCAM'),(22,'WORKSTATION'),(41,'ΒΙΝΤΕΟΠΡΟΒΟΛΕΑΣ'),(40,'ΔΙΑΔΡΑΣΤΙΚΟ ΣΥΣΤΗΜΑ'),(38,'ΕΠΕΞΕΡΓΑΣΤΗΣ (CPU)'),(34,'ΚΙΝΗΤΟ ΕΡΓΑΣΤΗΡΙΟ'),(32,'ΜΝΗΜΗ RAM'),(30,'ΟΘΟΝΗ'),(29,'ΣΚΛΗΡΟΣ ΔΙΣΚΟΣ'); +INSERT INTO `itemcategory` VALUES (8,'ACCESS POINT'),(26,'LAPTOP'),(6,'MODEM / ROUTER '),(5,'PATCH PANEL'),(14,'PRINTER'),(3,'RACK'),(13,'SCANNER'),(24,'SERVER'),(2,'SWITCH/ HUB'),(23,'TABLET'),(11,'WEBCAM'),(22,'ΣΤΑΘΜΟΣ ΕΡΓΑΣΙΑΣ'),(41,'ΒΙΝΤΕΟΠΡΟΒΟΛΕΑΣ'),(40,'ΔΙΑΔΡΑΣΤΙΚΟ ΣΥΣΤΗΜΑ'),(38,'ΕΠΕΞΕΡΓΑΣΤΗΣ (CPU)'),(34,'ΚΙΝΗΤΟ ΕΡΓΑΣΤΗΡΙΟ'),(32,'ΜΝΗΜΗ RAM'),(30,'ΟΘΟΝΗ'),(29,'ΣΚΛΗΡΟΣ ΔΙΣΚΟΣ'),(42,'ΤΡΙΣΔΙΑΣΤΑΤΟΣ ΕΚΤΥΠΩΤΗΣ'),(43,'ΤΡΙΣΔΙΑΣΤΑΤΟΣ ΣΑΡΩΤΗΣ'),(44,'ΣΕΤ ΡΟΜΠΟΤΙΚΗΣ - ΑΙΣΘΗΤΗΡΩΝ'),(45,'ΔΟΜΗΜΕΝΗ ΚΑΛΩΔΙΩΣΗ'); /*!40000 ALTER TABLE `itemcategory` ENABLE KEYS */; UNLOCK TABLES;