partkeepr

fork of partkeepr
git clone https://git.e1e0.net/partkeepr.git
Log | Files | Refs | Submodules | README | LICENSE

commit 0430b8168c5c7b535f02388d12deb9ecfd0b5bfd
parent fb1967b3b962e6284ce9b3c750af72b9b8e90d34
Author: Felicitus <privat@timohummel.com>
Date:   Mon, 23 May 2011 02:20:40 +0200

Added part details, increase and decrease stock level

Diffstat:
Mfrontend/index.html | 1+
Mfrontend/js/de.RaumZeitLabor.PartDB2/PartsManager/PartsManagerListGrid.js | 38++++++++++++++++++++++++++++++++++++--
Afrontend/js/de.RaumZeitLabor.PartDB2/PartsManager/PartsManagerPartDetail.js | 120+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Mfrontend/js/de.RaumZeitLabor.PartDB2/PartsManager/PartsManagerTree.js | 25++++++++++++++++++++++---
Mfrontend/js/de.RaumZeitLabor.PartDB2/PartsManager/PartsManagerWindow.js | 43++++++++++++++++++++++++++++++++++++-------
Msrc/de/RaumZeitLabor/PartDB2/Auth/User.php | 9++++++++-
Msrc/de/RaumZeitLabor/PartDB2/Part/Part.php | 52+++++++++++++++++++++++++++++++++++++++++++++++++++-
Msrc/de/RaumZeitLabor/PartDB2/Part/PartManager.php | 49++++++++++++++++++++++++++++++++++++++++++-------
Msrc/de/RaumZeitLabor/PartDB2/Part/PartManagerService.php | 54+++++++++++++++++++++++++++++++++++++++++++++++++++---
Msrc/de/RaumZeitLabor/PartDB2/PartDB2.php | 7++++++-
Msrc/de/RaumZeitLabor/PartDB2/Session/Session.php | 1-
Msrc/de/RaumZeitLabor/PartDB2/Session/SessionManager.php | 10+++++++++-
Asrc/de/RaumZeitLabor/PartDB2/Stock/StockEntry.php | 51+++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/de/RaumZeitLabor/PartDB2/StorageLocation/StorageLocation.php | 28++++++++++++++++++++++++++++
Atesting/SetupData/storagelocations.php | 464+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Atesting/SetupData/suppliers.php | 21+++++++++++++++++++++
Mtesting/SetupDatabase.php | 28++++++++++++++++++++++++----
17 files changed, 970 insertions(+), 31 deletions(-)

diff --git a/frontend/index.html b/frontend/index.html @@ -55,6 +55,7 @@ <script type="text/javascript" src="js/de.RaumZeitLabor.PartDB2/PartsManager/PartsManagerTree.js"></script> <!-- <script type="text/javascript" src="js/de.RaumZeitLabor.PartDB2/PartsManager/FootPrintManagerDetails.js"></script> --> <script type="text/javascript" src="js/de.RaumZeitLabor.PartDB2/PartsManager/PartsManagerWindow.js"></script> + <script type="text/javascript" src="js/de.RaumZeitLabor.PartDB2/PartsManager/PartsManagerPartDetail.js"></script> <script type="text/javascript" src="js/de.RaumZeitLabor.PartDB2/PartsManager/PartsManagerListGrid.js"></script> <script type="text/javascript" src="js/de.RaumZeitLabor.PartDB2/CategoryEditor/CategoryEditor.js"></script> diff --git a/frontend/js/de.RaumZeitLabor.PartDB2/PartsManager/PartsManagerListGrid.js b/frontend/js/de.RaumZeitLabor.PartDB2/PartsManager/PartsManagerListGrid.js @@ -1,7 +1,7 @@ Ext.ns("de.RaumZeitLabor.PartDB2.PartsManagerListGrid"); de.RaumZeitLabor.PartDB2.PartsManagerListGrid = Ext.extend(Ext.grid.GridPanel, { - height: '100%', + layout: 'fit', initComponent: function () { this.colModel = new Ext.grid.ColumnModel({ @@ -11,6 +11,8 @@ de.RaumZeitLabor.PartDB2.PartsManagerListGrid = Ext.extend(Ext.grid.GridPanel, { }, columns: [ {header: 'Name', dataIndex: 'name', width: 300}, + {header: 'Lagerort', dataIndex: 'storagelocation', width: 100}, + {header: 'Stück', dataIndex: 'stockLevel', width: 100}, ], }); @@ -34,11 +36,42 @@ de.RaumZeitLabor.PartDB2.PartsManagerListGrid = Ext.extend(Ext.grid.GridPanel, { }, fields: [ 'id', - 'name' + 'name', + 'storagelocation', + 'stockLevel' ] }); + this.tbStockLevel = new Ext.form.ComboBox({ + store: new Ext.data.ArrayStore({ + id: 0, + fields: [ + 'id', + 'type' + ], + data: [['all', 'Alle'], ['zero', 'Nur Bestand = 0'], ['nonzero', 'Nur Bestand > 0']] + }), + valueField: "id", + displayField:"type", + mode: 'local', + triggerAction: 'all', + editable: false, + forceSelection: true, + value: 'all', + width: 100, + listeners: { + select: function () { + this.store.reload(); + }.createDelegate(this) + } + }); + + this.tbar = new Ext.Toolbar({ + items: [ + this.tbStockLevel + ] + }); this.bbar = new Ext.PagingToolbar( { "pageSize": pageSize, @@ -49,6 +82,7 @@ de.RaumZeitLabor.PartDB2.PartsManagerListGrid = Ext.extend(Ext.grid.GridPanel, { }, onBeforeLoad: function (store, options) { this.call.setParameter("category", this.limitCategory); + this.call.setParameter("stockmode", this.tbStockLevel.getValue()); }, setLimitCategory: function (category) { this.limitCategory = category; diff --git a/frontend/js/de.RaumZeitLabor.PartDB2/PartsManager/PartsManagerPartDetail.js b/frontend/js/de.RaumZeitLabor.PartDB2/PartsManager/PartsManagerPartDetail.js @@ -0,0 +1,120 @@ +Ext.ns("de.RaumZeitLabor.PartDB2.PartsManagerTree"); + +de.RaumZeitLabor.PartDB2.PartsManagerPartDetail = Ext.extend(Ext.TabPanel, { + frame: true, + border: false, + activeTab: 0, + initComponent: function () { + + this.partName = new Ext.form.DisplayField({ + fieldLabel: 'Name' + }); + + this.stockLevel = new Ext.form.DisplayField({ + fieldLabel: 'Bestand' + }); + + this.storageLocation = new Ext.form.DisplayField({ + fieldLabel: 'Lagerort' + }); + + this.footprint = new Ext.form.DisplayField({ + fieldLabel: 'Footprint' + }); + + this.comment = new Ext.form.DisplayField({ + fieldLabel: 'Kommentar' + }); + + this.minStockLevel = new Ext.form.DisplayField({ + fieldLabel: 'Min. Bestand' + }); + + this.items = [{ + xtype: 'form', + title: 'Grunddaten', + items: [ + this.partName, + this.stockLevel, + this.storageLocation, + this.footprint, + this.comment, + this.minStockLevel + ] + }]; + + this.addButton = new Ext.Button({ + text: "Bestand einlagern", + cls:'x-btn-text-icon', + icon: 'resources/silkicons/brick_add.png', + handler: this.addPartPrompt.createDelegate(this) + }); + + this.deleteButton = new Ext.Button({ + text: "Bestand entnehmen", + cls:'x-btn-text-icon', + icon: 'resources/silkicons/brick_delete.png', + handler: this.deletePartPrompt.createDelegate(this) + }); + + this.bbar = new Ext.Toolbar({ + items: [ + this.addButton, + this.deleteButton + ] + }); + + de.RaumZeitLabor.PartDB2.PartsManagerPartDetail.superclass.initComponent.call(this); + }, + addPartPrompt: function () { + Ext.Msg.prompt("Bestand hinzufügen", "Anzahl", this.addPartHandler.createDelegate(this)); + }, + addPartHandler: function (btn,a,c) { + if (btn == "ok") { + var call = new org.jerrymouse.service.Call( + "de.RaumZeitLabor.PartDB2.Part.PartManagerService", + "addStock"); + call.setParameter("stock", a); + call.setParameter("part", this.partId); + call.setLoadMessage('$[de.RaumZeitLabor.PartDB2.CategoryEditor.loadCategories]'); + call.setHandler(this.reloadPart.createDelegate(this)); + call.doCall(); + } + }, + deletePartPrompt: function () { + Ext.Msg.prompt("Bestand entfernen", "Anzahl", this.deletePartHandler.createDelegate(this)); + }, + deletePartHandler: function (btn,a,c) { + if (btn == "ok") { + var call = new org.jerrymouse.service.Call( + "de.RaumZeitLabor.PartDB2.Part.PartManagerService", + "deleteStock"); + call.setParameter("stock", a); + call.setParameter("part", this.partId); + call.setLoadMessage('$[de.RaumZeitLabor.PartDB2.CategoryEditor.loadCategories]'); + call.setHandler(this.reloadPart.createDelegate(this)); + call.doCall(); + } + }, + reloadPart: function () { + this.loadPart(this.partId); + }, + loadPart: function (id) { + var call = new org.jerrymouse.service.Call( + "de.RaumZeitLabor.PartDB2.Part.PartManagerService", + "getPart"); + call.setParameter("part", id); + call.setLoadMessage('$[de.RaumZeitLabor.PartDB2.CategoryEditor.loadCategories]'); + call.setHandler(this.onPartLoaded.createDelegate(this)) + call.doCall(); + }, + onPartLoaded: function (response) { + this.partName.setValue(response.name); + this.stockLevel.setValue(response.stockLevel); + this.storageLocation.setValue(response.storageLocation.name); + this.footprint.setValue(response.footprint.footprint); + this.comment.setValue(response.comment); + this.minStockLevel.setValue(response.minStockLevel); + this.partId = response.id; + } +}); diff --git a/frontend/js/de.RaumZeitLabor.PartDB2/PartsManager/PartsManagerTree.js b/frontend/js/de.RaumZeitLabor.PartDB2/PartsManager/PartsManagerTree.js @@ -11,8 +11,8 @@ de.RaumZeitLabor.PartDB2.PartsManagerTree = Ext.extend(Ext.tree.TreePanel, { Ext.apply(this, { - root: new Ext.tree.TreeNode({id: 0}), - rootVisible: false, + root: new Ext.tree.TreeNode({id: 0, expanded: true}), + rootVisible: true, animate: false, autoScroll: true, @@ -29,6 +29,18 @@ de.RaumZeitLabor.PartDB2.PartsManagerTree = Ext.extend(Ext.tree.TreePanel, { id: 'category-edit-button', handler: this.editCategory.createDelegate(this), disabled: true + }, + { + tooltip: '$[de.RaumZeitLabor.PartDB2.CategoryManager.edit]', + icon: 'resources/silkicons/bullet_toggle_minus.png', + id: 'category-collapse-button', + handler: this.onCollapse.createDelegate(this) + }, + { + tooltip: '$[de.RaumZeitLabor.PartDB2.CategoryManager.edit]', + icon: 'resources/silkicons/bullet_toggle_plus.png', + id: 'category-expand-button', + handler: this.onExpand.createDelegate(this) } /* { tooltip: '$[de.RaumZeitLabor.PartDB2.FootPrintManager.delete]', @@ -45,6 +57,12 @@ de.RaumZeitLabor.PartDB2.PartsManagerTree = Ext.extend(Ext.tree.TreePanel, { this.getSelectionModel().on("selectionchange", this.onSelectionChange.createDelegate(this)); this.loadTree(); }, + onCollapse: function () { + this.getRootNode().collapse(true); + }, + onExpand: function () { + this.getRootNode().expand(true); + }, addCategory: function () { Ext.getCmp("card-category-editor").createCategory(); @@ -57,7 +75,7 @@ de.RaumZeitLabor.PartDB2.PartsManagerTree = Ext.extend(Ext.tree.TreePanel, { Ext.getCmp("parts-manager-window").showPartsList(); Ext.getCmp("parts-list").setLimitCategory(node.attributes.id); - Ext.getCmp("parts-list").store.load(); + Ext.getCmp("parts-list").store.load({ params: { start: 0 }}); Ext.getCmp("parts-list").show(); } else { Ext.getCmp("category-edit-button").disable(); @@ -95,6 +113,7 @@ de.RaumZeitLabor.PartDB2.PartsManagerTree = Ext.extend(Ext.tree.TreePanel, { } } + this.getRootNode().expand(); }, buildCategoryTree: function (data) { var node = new Ext.tree.TreeNode({ diff --git a/frontend/js/de.RaumZeitLabor.PartDB2/PartsManager/PartsManagerWindow.js b/frontend/js/de.RaumZeitLabor.PartDB2/PartsManager/PartsManagerWindow.js @@ -1,7 +1,7 @@ Ext.ns("de.RaumZeitLabor.PartDB2.PartsManagerWindow"); de.RaumZeitLabor.PartDB2.PartsManagerWindow = Ext.extend(org.jerrymouse.gui.widgets.window, { - + renderHidden: true, initComponent: function () { this.partsManagerTree = new de.RaumZeitLabor.PartDB2.PartsManagerTree(); @@ -15,7 +15,33 @@ de.RaumZeitLabor.PartDB2.PartsManagerWindow = Ext.extend(org.jerrymouse.gui.widg }); this.categoryEditor = new de.RaumZeitLabor.PartDB2.CategoryEditor({ id: 'card-category-editor' }); - this.partsList = new de.RaumZeitLabor.PartDB2.PartsManagerListGrid({ layout: 'fit', id: 'parts-list'}); + + this.partsList = new de.RaumZeitLabor.PartDB2.PartsManagerListGrid({ flex: 1, id: 'parts-list'}); + + this.partsList.getSelectionModel().on("rowselect", this.onPartSelect.createDelegate(this)); + this.partsList.getSelectionModel().on("selectionchange", function (sm) { + if (sm.getCount() == 0) { + this.partsDetail.hide(); + } else { + this.partsDetail.show(); + } + + this.partsLayout.doLayout(); + }.createDelegate(this)); + + this.partsDetail = new de.RaumZeitLabor.PartDB2.PartsManagerPartDetail({ hidden: true }); + + this.partsLayout = new Ext.Panel({ + layout: 'vbox', + align : 'stretch', + pack : 'start', + id: 'parts-overview', + items: [ + this.partsList, + this.partsDetail + ] + }); + Ext.apply(this.partsManagerDetails, { region:'center', @@ -24,8 +50,8 @@ de.RaumZeitLabor.PartDB2.PartsManagerWindow = Ext.extend(org.jerrymouse.gui.widg }); Ext.apply(this, { - width: 600, - height: 400, + width: 800, + height: 600, title: "$[de.RaumZeitLabor.PartDB2.PartsManager.manage]", layout:'border', defaults: { @@ -40,15 +66,18 @@ de.RaumZeitLabor.PartDB2.PartsManagerWindow = Ext.extend(org.jerrymouse.gui.widg id: 'parts-mananger-window-card', items: [ this.categoryEditor, - this.partsList + this.partsLayout ] }] }); de.RaumZeitLabor.PartDB2.PartsManagerWindow.superclass.initComponent.call(this); }, + onPartSelect: function (grid, row, r) { + this.partsDetail.loadPart(r.get("id")); + }, showPartsList: function () { - Ext.getCmp("parts-mananger-window-card").getLayout().setActiveItem("parts-list"); - this.partsList.show(); + Ext.getCmp("parts-mananger-window-card").getLayout().setActiveItem("parts-overview"); + this.partsList.doLayout(); }, showCategoryEditor: function () { Ext.getCmp("parts-mananger-window-card").getLayout().setActiveItem("card-category-editor"); diff --git a/src/de/RaumZeitLabor/PartDB2/Auth/User.php b/src/de/RaumZeitLabor/PartDB2/Auth/User.php @@ -5,7 +5,14 @@ declare(encoding = 'UTF-8'); /** @Entity @Table(name="users") */ class User { - /** @Id @Column(length=50) */ + /** + * @Id @Column(type="integer") + * @GeneratedValue(strategy="AUTO") + * @var unknown_type + */ + private $id; + + /** @Column(length=50) */ private $username; /** @Column(length=32) */ diff --git a/src/de/RaumZeitLabor/PartDB2/Part/Part.php b/src/de/RaumZeitLabor/PartDB2/Part/Part.php @@ -2,6 +2,8 @@ namespace de\RaumZeitLabor\PartDB2\Part; declare(encoding = 'UTF-8'); +use de\RaumZeitLabor\PartDB2\PartDB2; + /** @Entity **/ class Part { @@ -28,14 +30,41 @@ class Part { private $footprint; /** + * @ManyToOne(targetEntity="de\RaumZeitLabor\PartDB2\StorageLocation\StorageLocation") + */ + private $storageLocation; + + /** * @Column(type="text") */ private $comment; - + + /** + * @Column(type="integer") + */ + private $stockLevel = 0; + + /** + * @Column(type="integer") + */ + private $minStockLevel; + + public function updateStockLevel () { + $this->stockLevel = $this->getStockLevel(); + } + + public function setMinStockLevel ($minStockLevel) { + $this->minStockLevel = $minStockLevel; + } + public function setCategory (\de\RaumZeitLabor\PartDB2\Category\Category $category) { $this->category = $category; } + public function setStorageLocation (\de\RaumZeitLabor\PartDB2\StorageLocation\StorageLocation $storageLocation) { + $this->storageLocation = $storageLocation; + } + public function setName ($name) { $this->name = $name; } @@ -47,4 +76,25 @@ class Part { public function setComment ($comment) { $this->comment = $comment; } + + public function getStockLevel () { + $query = PartDB2::getEM()->createQuery("SELECT SUM(s.stockLevel) FROM de\RaumZeitLabor\PartDB2\Stock\StockEntry s WHERE s.part = :part"); + $query->setParameter("part", $this); + + return $query->getSingleScalarResult(); + + } + public function serialize () { + return array( + "id" => $this->id, + "name" => $this->name, + "comment" => $this->comment, + "stockLevel" => $this->getStockLevel(), + "footprint" => is_object($this->footprint) ? $this->footprint->serialize() : null, + "minStockLevel" => $this->minStockLevel, + "storageLocation" => is_object($this->storageLocation) ? $this->storageLocation->serialize() : null + + + ); + } } \ No newline at end of file diff --git a/src/de/RaumZeitLabor/PartDB2/Part/PartManager.php b/src/de/RaumZeitLabor/PartDB2/Part/PartManager.php @@ -11,7 +11,7 @@ use de\RaumZeitLabor\PartDB2\Util\Singleton, class PartManager extends Singleton { public function getParts ($aParameters = array()) { $qb = PartDB2::getEM()->createQueryBuilder(); - $qb->select("COUNT(p)")->from("de\RaumZeitLabor\PartDB2\Part\Part","p"); + $qb->select("COUNT(p)")->from("de\RaumZeitLabor\PartDB2\Part\Part","p")->leftJoin('p.storageLocation', "st"); if (array_key_exists("limit", $aParameters)) { $limit = intval($aParameters["limit"]); @@ -35,17 +35,35 @@ class PartManager extends Singleton { $dir = "asc"; } - if (array_key_exists("sortby", $aParameters)) { - $sortby = $aParameters["sortby"]; + if (array_key_exists("stockmode", $aParameters)) { + switch (strtolower($aParameters["stockmode"])) { + case "all": + case "zero": + case "nonzero": + $stockmode = strtolower($aParameters["stockmode"]); + break; + default: + $stockmode = "all"; + } + } else { + $stockmode = "all"; + } + + if (array_key_exists("sort", $aParameters)) { + $sortby = $aParameters["sort"]; switch (strtolower($sortby)) { case "name": + $sortby = "p.name"; + break; + case "storagelocation": + $sortby = "st.name"; break; default: - $sortby = "name"; + $sortby = "p.name"; } } else { - $sortby = "name"; + $sortby = "p.name"; } if (array_key_exists("category", $aParameters)) { @@ -56,6 +74,16 @@ class PartManager extends Singleton { $qb->where("1=1"); + switch ($stockmode) { + case "all": + break; + case "zero": + $qb->andWhere("p.stockLevel = 0"); + break; + case "nonzero": + $qb->andWhere("p.stockLevel > 0"); + } + if ($category !== 0) { /* Fetch all children */ $childs = CategoryManager::getInstance()->getChildNodes($category); @@ -68,8 +96,9 @@ class PartManager extends Singleton { $qb->setMaxResults($limit); $qb->setFirstResult($start); - $qb->select("p.name"); - $qb->orderBy("p.".$sortby, $dir); + $qb->select("p.id, p.name, p.stockLevel, st.name AS storagelocation"); + + $qb->orderBy($sortby, $dir); $query = $qb->getQuery(); @@ -77,4 +106,10 @@ class PartManager extends Singleton { return array("parts" => $result, "totalCount" => $count); } + + public function getPart ($id) { + $part = PartDB2::getEM()->find("de\RaumZeitLabor\PartDB2\Part\Part", $id); + + return $part; + } } \ No newline at end of file diff --git a/src/de/RaumZeitLabor/PartDB2/Part/PartManagerService.php b/src/de/RaumZeitLabor/PartDB2/Part/PartManagerService.php @@ -3,17 +3,65 @@ namespace de\raumzeitlabor\PartDB2\Part; declare(encoding = 'UTF-8'); use de\RaumZeitLabor\PartDB2\Service\Service; -use de\RaumZeitLabor\PartDB2\Part\PartManager; +use de\RaumZeitLabor\PartDB2\Part\PartManager, + de\RaumZeitLabor\PartDB2\Stock\StockEntry, + de\RaumZeitLabor\PartDB2\PartDB2, + de\RaumZeitLabor\PartDB2\Session\SessionManager; class PartManagerService extends Service { public function getParts () { $aParameters = array( "start" => $this->getParameter("start", 0), - "sortby" => $this->getParameter("sortby", "name"), + "sort" => $this->getParameter("sort", "name"), "dir" => $this->getParameter("dir", "asc"), "filter" => $this->getParameter("filter", ""), - "category" => $this->getParameter("category", 0) + "category" => $this->getParameter("category", 0), + "stockmode" => $this->getParameter("stockmode", "all") ); return PartManager::getInstance()->getParts($aParameters); } + + public function addStock () { + $part = PartManager::getInstance()->getPart($this->getParameter("part")); + + $user = SessionManager::getCurrentSession()->getUser(); + + $stock = new StockEntry($part, intval($this->getParameter("stock")), $user); + + PartDB2::getEM()->persist($stock); + PartDB2::getEM()->flush(); + + $part->updateStockLevel(); + + PartDB2::getEM()->flush(); + + return true; + } + + public function deleteStock () { + $part = PartManager::getInstance()->getPart($this->getParameter("part")); + + $user = SessionManager::getCurrentSession()->getUser(); + + $stock = new StockEntry($part, 0-intval($this->getParameter("stock")), $user); + + PartDB2::getEM()->persist($stock); + PartDB2::getEM()->flush(); + + $part->updateStockLevel(); + + PartDB2::getEM()->flush(); + + return true; + } + + public function getPart () { + $part = PartManager::getInstance()->getPart($this->getParameter("part")); + + return $this->serializePart($part); + } + + private function serializePart ($part) { + return $part->serialize(); + } } \ No newline at end of file diff --git a/src/de/RaumZeitLabor/PartDB2/PartDB2.php b/src/de/RaumZeitLabor/PartDB2/PartDB2.php @@ -121,6 +121,9 @@ class PartDB2 { $config->setProxyNamespace('Proxies'); $config->setAutoGenerateProxyClasses(true); + $logger = new \Doctrine\DBAL\Logging\EchoSQLLogger(); + //$config->setSQLLogger($logger); + self::$entityManager = EntityManager::create($connectionOptions, $config); } @@ -151,7 +154,9 @@ class PartDB2 { PartDB2::getEM()->getClassMetadata('de\RaumZeitLabor\PartDB2\Session\Session'), PartDB2::getEM()->getClassMetadata('de\RaumZeitLabor\PartDB2\Footprint\Footprint'), PartDB2::getEM()->getClassMetadata('de\RaumZeitLabor\PartDB2\Category\Category'), - PartDB2::getEM()->getClassMetadata('de\RaumZeitLabor\PartDB2\Part\Part') + PartDB2::getEM()->getClassMetadata('de\RaumZeitLabor\PartDB2\Part\Part'), + PartDB2::getEM()->getClassMetadata('de\RaumZeitLabor\PartDB2\StorageLocation\StorageLocation'), + PartDB2::getEM()->getClassMetadata('de\RaumZeitLabor\PartDB2\Stock\StockEntry') ); return $classes; diff --git a/src/de/RaumZeitLabor/PartDB2/Session/Session.php b/src/de/RaumZeitLabor/PartDB2/Session/Session.php @@ -17,7 +17,6 @@ class Session { /** * @ManyToOne(targetEntity="de\RaumZeitLabor\PartDB2\Auth\User") - * @JoinColumn(name="user", referencedColumnName="username") */ private $user; diff --git a/src/de/RaumZeitLabor/PartDB2/Session/SessionManager.php b/src/de/RaumZeitLabor/PartDB2/Session/SessionManager.php @@ -30,8 +30,16 @@ class SessionManager extends Singleton { } public function resumeSession ($session) { - $result = PartDB2::getEM()->find("de\\RaumZeitLabor\\PartDB2\\Session\\Session", $session); + $query = PartDB2::getEM()->createQuery("SELECT s FROM de\\RaumZeitLabor\\PartDB2\\Session\\Session s WHERE s.sessionid = :session"); + $query->setParameter("session", $session); + $query->execute(); + $result = $query->getResult(); + if (is_object($result[0])) { + self::$currentSession = $result[0]; + } else { + die("FOO"); + } } } ?> \ No newline at end of file diff --git a/src/de/RaumZeitLabor/PartDB2/Stock/StockEntry.php b/src/de/RaumZeitLabor/PartDB2/Stock/StockEntry.php @@ -0,0 +1,50 @@ +<?php +namespace de\RaumZeitLabor\PartDB2\Stock; +declare(encoding = 'UTF-8'); + +use de\RaumZeitLabor\PartDB2\Part\Part; +use de\RaumZeitLabor\PartDB2\Auth\User; + +/** @Entity **/ +class StockEntry { + + /** + * @Id @Column(type="integer") + * @GeneratedValue(strategy="AUTO") + * @var unknown_type + */ + private $id; + + /** + * @Column(type="integer") + */ + private $stockLevel; + + /** + * @ManyToOne(targetEntity="de\RaumZeitLabor\PartDB2\Part\Part") + */ + private $part; + + /** + * @ManyToOne(targetEntity="de\RaumZeitLabor\PartDB2\Auth\User") + */ + private $user; + + public function __construct (Part $part, $stockLevel, User $user = null) { + $this->setPart($part); + $this->setStockLevel($stockLevel); + $this->setUser($user); + } + + public function setStockLevel($stockLevel) { + $this->stockLevel = $stockLevel; + } + + public function setPart (Part $part) { + $this->part = $part; + } + + public function setUser (User $user = null) { + $this->user = $user; + } +}+ \ No newline at end of file diff --git a/src/de/RaumZeitLabor/PartDB2/StorageLocation/StorageLocation.php b/src/de/RaumZeitLabor/PartDB2/StorageLocation/StorageLocation.php @@ -0,0 +1,27 @@ +<?php +namespace de\RaumZeitLabor\PartDB2\StorageLocation; +declare(encoding = 'UTF-8'); + +/** @Entity **/ +class StorageLocation { + + /** + * @Id @Column(type="integer") + * @GeneratedValue(strategy="AUTO") + * @var unknown_type + */ + private $id; + + /** + * @Column + */ + private $name; + + public function setName ($name) { + $this->name = $name; + } + + public function serialize () { + return array("id" => $this->id, "name" => $this->name); + } +}+ \ No newline at end of file diff --git a/testing/SetupData/storagelocations.php b/testing/SetupData/storagelocations.php @@ -0,0 +1,464 @@ +<?php +/** + * Export to PHP Array plugin for PHPMyAdmin + * @author Geoffray Warnants + * @version 0.2b + */ + +// +// Database "partdb" +// + +// partdb.storeloc +$storeloc = array( + array('id'=>1,'name'=>'A0001'), + array('id'=>2,'name'=>'A0002'), + array('id'=>3,'name'=>'A0003'), + array('id'=>4,'name'=>'A0004'), + array('id'=>5,'name'=>'A0005'), + array('id'=>6,'name'=>'A0006'), + array('id'=>7,'name'=>'A0007'), + array('id'=>8,'name'=>'A0008'), + array('id'=>9,'name'=>'B0001'), + array('id'=>10,'name'=>'B0002'), + array('id'=>11,'name'=>'B0003'), + array('id'=>12,'name'=>'B0004'), + array('id'=>13,'name'=>'B0005'), + array('id'=>14,'name'=>'B0006'), + array('id'=>15,'name'=>'B0007'), + array('id'=>16,'name'=>'B0008'), + array('id'=>17,'name'=>'B0009'), + array('id'=>18,'name'=>'A0009'), + array('id'=>19,'name'=>'A0010'), + array('id'=>20,'name'=>'A0011'), + array('id'=>21,'name'=>'A0012'), + array('id'=>22,'name'=>'A0013'), + array('id'=>23,'name'=>'A0014'), + array('id'=>24,'name'=>'A0015'), + array('id'=>25,'name'=>'A0016'), + array('id'=>26,'name'=>'A0017'), + array('id'=>27,'name'=>'A0018'), + array('id'=>28,'name'=>'A0019'), + array('id'=>29,'name'=>'A0020'), + array('id'=>30,'name'=>'A0021'), + array('id'=>31,'name'=>'A0022'), + array('id'=>32,'name'=>'A0023'), + array('id'=>33,'name'=>'A0024'), + array('id'=>34,'name'=>'A0025'), + array('id'=>35,'name'=>'A0026'), + array('id'=>36,'name'=>'A0027'), + array('id'=>37,'name'=>'A0028'), + array('id'=>38,'name'=>'A0029'), + array('id'=>39,'name'=>'A0030'), + array('id'=>40,'name'=>'A0031'), + array('id'=>41,'name'=>'A0032'), + array('id'=>42,'name'=>'A0033'), + array('id'=>43,'name'=>'A0034'), + array('id'=>44,'name'=>'A0035'), + array('id'=>45,'name'=>'A0036'), + array('id'=>46,'name'=>'A0037'), + array('id'=>47,'name'=>'A0038'), + array('id'=>48,'name'=>'A0039'), + array('id'=>49,'name'=>'A0040'), + array('id'=>50,'name'=>'A0041'), + array('id'=>51,'name'=>'A0042'), + array('id'=>52,'name'=>'A0043'), + array('id'=>53,'name'=>'A0044'), + array('id'=>54,'name'=>'A0045'), + array('id'=>55,'name'=>'A0046'), + array('id'=>56,'name'=>'A0047'), + array('id'=>57,'name'=>'A0048'), + array('id'=>58,'name'=>'A0049'), + array('id'=>59,'name'=>'A0050'), + array('id'=>60,'name'=>'B0010'), + array('id'=>61,'name'=>'B0011'), + array('id'=>62,'name'=>'B0012'), + array('id'=>63,'name'=>'B0013'), + array('id'=>64,'name'=>'B0014'), + array('id'=>65,'name'=>'B0015'), + array('id'=>66,'name'=>'B0016'), + array('id'=>67,'name'=>'B0017'), + array('id'=>68,'name'=>'B0018'), + array('id'=>69,'name'=>'B0019'), + array('id'=>70,'name'=>'B0020'), + array('id'=>71,'name'=>'B0021'), + array('id'=>72,'name'=>'B0022'), + array('id'=>73,'name'=>'B0023'), + array('id'=>74,'name'=>'B0024'), + array('id'=>75,'name'=>'B0025'), + array('id'=>76,'name'=>'B0026'), + array('id'=>77,'name'=>'B0027'), + array('id'=>78,'name'=>'B0028'), + array('id'=>79,'name'=>'B0029'), + array('id'=>80,'name'=>'B0030'), + array('id'=>81,'name'=>'B0031'), + array('id'=>82,'name'=>'B0032'), + array('id'=>83,'name'=>'B0033'), + array('id'=>84,'name'=>'B0034'), + array('id'=>85,'name'=>'B0035'), + array('id'=>86,'name'=>'B0036'), + array('id'=>87,'name'=>'B0037'), + array('id'=>88,'name'=>'B0038'), + array('id'=>89,'name'=>'B0039'), + array('id'=>90,'name'=>'B0040'), + array('id'=>91,'name'=>'B0041'), + array('id'=>92,'name'=>'B0042'), + array('id'=>93,'name'=>'B0043'), + array('id'=>94,'name'=>'B0044'), + array('id'=>95,'name'=>'B0045'), + array('id'=>96,'name'=>'B0046'), + array('id'=>97,'name'=>'B0047'), + array('id'=>98,'name'=>'B0048'), + array('id'=>99,'name'=>'B0049'), + array('id'=>100,'name'=>'B0050'), + array('id'=>101,'name'=>'C001'), + array('id'=>102,'name'=>'C002'), + array('id'=>103,'name'=>'C003'), + array('id'=>104,'name'=>'C004'), + array('id'=>105,'name'=>'C005'), + array('id'=>106,'name'=>'C006'), + array('id'=>107,'name'=>'C007'), + array('id'=>108,'name'=>'C008'), + array('id'=>109,'name'=>'C009'), + array('id'=>110,'name'=>'C010'), + array('id'=>111,'name'=>'D001'), + array('id'=>112,'name'=>'D002'), + array('id'=>113,'name'=>'D003'), + array('id'=>114,'name'=>'D004'), + array('id'=>115,'name'=>'D005'), + array('id'=>116,'name'=>'D006'), + array('id'=>117,'name'=>'D007'), + array('id'=>118,'name'=>'D008'), + array('id'=>119,'name'=>'D009'), + array('id'=>120,'name'=>'D010'), + array('id'=>121,'name'=>'E01'), + array('id'=>122,'name'=>'E02'), + array('id'=>123,'name'=>'E03'), + array('id'=>124,'name'=>'E04'), + array('id'=>125,'name'=>'E05'), + array('id'=>126,'name'=>'E06'), + array('id'=>127,'name'=>'E07'), + array('id'=>128,'name'=>'E08'), + array('id'=>129,'name'=>'E09'), + array('id'=>130,'name'=>'E10'), + array('id'=>131,'name'=>'F01'), + array('id'=>132,'name'=>'F02'), + array('id'=>133,'name'=>'F03'), + array('id'=>134,'name'=>'F04'), + array('id'=>135,'name'=>'F05'), + array('id'=>136,'name'=>'F06'), + array('id'=>137,'name'=>'F07'), + array('id'=>138,'name'=>'F08'), + array('id'=>139,'name'=>'F09'), + array('id'=>140,'name'=>'F10'), + array('id'=>141,'name'=>'G0001'), + array('id'=>142,'name'=>'G0000'), + array('id'=>143,'name'=>'G0002'), + array('id'=>144,'name'=>'G0003'), + array('id'=>145,'name'=>'G0004'), + array('id'=>146,'name'=>'G0004'), + array('id'=>147,'name'=>'G0005'), + array('id'=>148,'name'=>'E-Ecke Schrank 1'), + array('id'=>149,'name'=>'A0051'), + array('id'=>150,'name'=>'A0052'), + array('id'=>151,'name'=>'G0006'), + array('id'=>152,'name'=>'G0007'), + array('id'=>153,'name'=>'G0008'), + array('id'=>154,'name'=>'B0051'), + array('id'=>155,'name'=>'B0052'), + array('id'=>156,'name'=>'A0053'), + array('id'=>157,'name'=>'A0054'), + array('id'=>158,'name'=>'A0055'), + array('id'=>159,'name'=>'A0056'), + array('id'=>160,'name'=>'A0057'), + array('id'=>161,'name'=>'A0058'), + array('id'=>162,'name'=>'A0059'), + array('id'=>163,'name'=>'A0060'), + array('id'=>164,'name'=>'A0061'), + array('id'=>165,'name'=>'A0062'), + array('id'=>166,'name'=>'A0063'), + array('id'=>167,'name'=>'A0064'), + array('id'=>168,'name'=>'A0065'), + array('id'=>169,'name'=>'A0066'), + array('id'=>170,'name'=>'A0067'), + array('id'=>171,'name'=>'A0068'), + array('id'=>172,'name'=>'A0069'), + array('id'=>173,'name'=>'A0070'), + array('id'=>174,'name'=>'A0071'), + array('id'=>175,'name'=>'A0072'), + array('id'=>176,'name'=>'A0073'), + array('id'=>177,'name'=>'A0074'), + array('id'=>178,'name'=>'A0075'), + array('id'=>179,'name'=>'A0076'), + array('id'=>180,'name'=>'A0077'), + array('id'=>181,'name'=>'A0078'), + array('id'=>182,'name'=>'A0079'), + array('id'=>183,'name'=>'A0080'), + array('id'=>184,'name'=>'A0081'), + array('id'=>185,'name'=>'A0082'), + array('id'=>186,'name'=>'A0083'), + array('id'=>187,'name'=>'A0084'), + array('id'=>188,'name'=>'B0053'), + array('id'=>189,'name'=>'B0054'), + array('id'=>190,'name'=>'B0055'), + array('id'=>191,'name'=>'B0056'), + array('id'=>192,'name'=>'B0057'), + array('id'=>193,'name'=>'B0058'), + array('id'=>194,'name'=>'B0059'), + array('id'=>195,'name'=>'B0060'), + array('id'=>196,'name'=>'B0061'), + array('id'=>197,'name'=>'B0062'), + array('id'=>198,'name'=>'B0063'), + array('id'=>199,'name'=>'B0064'), + array('id'=>200,'name'=>'B0065'), + array('id'=>201,'name'=>'B0066'), + array('id'=>202,'name'=>'B0067'), + array('id'=>203,'name'=>'B0068'), + array('id'=>204,'name'=>'B0069'), + array('id'=>205,'name'=>'B0070'), + array('id'=>206,'name'=>'B0071'), + array('id'=>207,'name'=>'B0072'), + array('id'=>208,'name'=>'B0073'), + array('id'=>209,'name'=>'B0074'), + array('id'=>210,'name'=>'B0075'), + array('id'=>211,'name'=>'B0076'), + array('id'=>212,'name'=>'B0077'), + array('id'=>213,'name'=>'B0078'), + array('id'=>214,'name'=>'B0079'), + array('id'=>215,'name'=>'B0080'), + array('id'=>248,'name'=>'B0108'), + array('id'=>217,'name'=>'B0082'), + array('id'=>218,'name'=>'B0083'), + array('id'=>219,'name'=>'B0084'), + array('id'=>220,'name'=>'B0085'), + array('id'=>221,'name'=>'B0085'), + array('id'=>250,'name'=>'B0110'), + array('id'=>223,'name'=>'B0086'), + array('id'=>224,'name'=>'B0087'), + array('id'=>228,'name'=>'B0090'), + array('id'=>226,'name'=>'B0088'), + array('id'=>227,'name'=>'B0089'), + array('id'=>229,'name'=>'B0091'), + array('id'=>230,'name'=>'B0092'), + array('id'=>249,'name'=>'B0109'), + array('id'=>232,'name'=>'B0093'), + array('id'=>233,'name'=>'B0094'), + array('id'=>234,'name'=>'B0095'), + array('id'=>235,'name'=>'B0096'), + array('id'=>236,'name'=>'B0097'), + array('id'=>237,'name'=>'B0098'), + array('id'=>238,'name'=>'B0099'), + array('id'=>239,'name'=>'B0081'), + array('id'=>240,'name'=>'B0100'), + array('id'=>241,'name'=>'B0101'), + array('id'=>251,'name'=>'B0111'), + array('id'=>243,'name'=>'B0102'), + array('id'=>244,'name'=>'B0104'), + array('id'=>245,'name'=>'B0105'), + array('id'=>246,'name'=>'B0106'), + array('id'=>247,'name'=>'B0107'), + array('id'=>252,'name'=>'B0112'), + array('id'=>273,'name'=>'B0103'), + array('id'=>255,'name'=>'B0113'), + array('id'=>256,'name'=>'B0114'), + array('id'=>257,'name'=>'B0115'), + array('id'=>258,'name'=>'B0116'), + array('id'=>259,'name'=>'B0117'), + array('id'=>260,'name'=>'B0118'), + array('id'=>261,'name'=>'B0119'), + array('id'=>262,'name'=>'B0120'), + array('id'=>263,'name'=>'B0121'), + array('id'=>264,'name'=>'B0122'), + array('id'=>265,'name'=>'B0123'), + array('id'=>266,'name'=>'B0124'), + array('id'=>267,'name'=>'B0125'), + array('id'=>268,'name'=>'B0126'), + array('id'=>269,'name'=>'B0127'), + array('id'=>270,'name'=>'B0128'), + array('id'=>271,'name'=>'B0129'), + array('id'=>272,'name'=>'B0130'), + array('id'=>274,'name'=>'G0009'), + array('id'=>275,'name'=>'G0010'), + array('id'=>276,'name'=>'G0011'), + array('id'=>277,'name'=>'G0012'), + array('id'=>278,'name'=>'G0013'), + array('id'=>279,'name'=>'G0014'), + array('id'=>280,'name'=>'G0015'), + array('id'=>281,'name'=>'G0016'), + array('id'=>282,'name'=>'G0017'), + array('id'=>283,'name'=>'G0018'), + array('id'=>284,'name'=>'G0019'), + array('id'=>285,'name'=>'G0020'), + array('id'=>286,'name'=>'G0021'), + array('id'=>287,'name'=>'G0022'), + array('id'=>288,'name'=>'G0023'), + array('id'=>289,'name'=>'G0024'), + array('id'=>290,'name'=>'G0025'), + array('id'=>291,'name'=>'G0026'), + array('id'=>292,'name'=>'G0027'), + array('id'=>293,'name'=>'G0028'), + array('id'=>294,'name'=>'G0029'), + array('id'=>295,'name'=>'G0030'), + array('id'=>296,'name'=>'G0031'), + array('id'=>297,'name'=>'G0032'), + array('id'=>298,'name'=>'G0033'), + array('id'=>299,'name'=>'G0034'), + array('id'=>300,'name'=>'G0035'), + array('id'=>301,'name'=>'G0036'), + array('id'=>302,'name'=>'G0037'), + array('id'=>303,'name'=>'G0038'), + array('id'=>304,'name'=>'G0039'), + array('id'=>305,'name'=>'G0040'), + array('id'=>306,'name'=>'G0041'), + array('id'=>307,'name'=>'G0042'), + array('id'=>308,'name'=>'G0043'), + array('id'=>309,'name'=>'G0044'), + array('id'=>310,'name'=>'G0045'), + array('id'=>311,'name'=>'G0046'), + array('id'=>312,'name'=>'G0047'), + array('id'=>313,'name'=>'G0048'), + array('id'=>314,'name'=>'G0049'), + array('id'=>315,'name'=>'G0050'), + array('id'=>316,'name'=>'G0051'), + array('id'=>317,'name'=>'G0052'), + array('id'=>318,'name'=>'G0053'), + array('id'=>319,'name'=>'G0054'), + array('id'=>320,'name'=>'G0055'), + array('id'=>321,'name'=>'G0056'), + array('id'=>322,'name'=>'G0057'), + array('id'=>323,'name'=>'G0058'), + array('id'=>324,'name'=>'G0059'), + array('id'=>325,'name'=>'G0060'), + array('id'=>326,'name'=>'G0061'), + array('id'=>327,'name'=>'G0062'), + array('id'=>328,'name'=>'G0063'), + array('id'=>329,'name'=>'G0064'), + array('id'=>330,'name'=>'G0065'), + array('id'=>331,'name'=>'G0066'), + array('id'=>332,'name'=>'G0067'), + array('id'=>333,'name'=>'G0068'), + array('id'=>334,'name'=>'G0069'), + array('id'=>335,'name'=>'G0070'), + array('id'=>336,'name'=>'G0071'), + array('id'=>337,'name'=>'G0072'), + array('id'=>338,'name'=>'G0073'), + array('id'=>339,'name'=>'G0074'), + array('id'=>340,'name'=>'G0075'), + array('id'=>341,'name'=>'G0076'), + array('id'=>342,'name'=>'G0077'), + array('id'=>343,'name'=>'G0078'), + array('id'=>344,'name'=>'G0079'), + array('id'=>345,'name'=>'G0080'), + array('id'=>346,'name'=>'G0081'), + array('id'=>347,'name'=>'G0082'), + array('id'=>348,'name'=>'G0083'), + array('id'=>349,'name'=>'G0084'), + array('id'=>350,'name'=>'G0085'), + array('id'=>351,'name'=>'G0086'), + array('id'=>352,'name'=>'G0087'), + array('id'=>353,'name'=>'G0088'), + array('id'=>354,'name'=>'G0089'), + array('id'=>355,'name'=>'G0090'), + array('id'=>356,'name'=>'G0091'), + array('id'=>357,'name'=>'G0092'), + array('id'=>358,'name'=>'G0093'), + array('id'=>359,'name'=>'G0094'), + array('id'=>360,'name'=>'G0095'), + array('id'=>361,'name'=>'G0096'), + array('id'=>362,'name'=>'G0097'), + array('id'=>363,'name'=>'G0098'), + array('id'=>364,'name'=>'G0099'), + array('id'=>365,'name'=>'G0100'), + array('id'=>366,'name'=>'G0101'), + array('id'=>367,'name'=>'G0102'), + array('id'=>368,'name'=>'G0103'), + array('id'=>369,'name'=>'G0104'), + array('id'=>370,'name'=>'G0105'), + array('id'=>371,'name'=>'G0106'), + array('id'=>372,'name'=>'G0107'), + array('id'=>373,'name'=>'G0108'), + array('id'=>374,'name'=>'G0109'), + array('id'=>375,'name'=>'G0110'), + array('id'=>376,'name'=>'G0111'), + array('id'=>377,'name'=>'G0112'), + array('id'=>378,'name'=>'G0113'), + array('id'=>379,'name'=>'G0114'), + array('id'=>380,'name'=>'G0115'), + array('id'=>381,'name'=>'G0116'), + array('id'=>382,'name'=>'G0117'), + array('id'=>383,'name'=>'G0118'), + array('id'=>384,'name'=>'G0119'), + array('id'=>385,'name'=>'G0120'), + array('id'=>386,'name'=>'G0121'), + array('id'=>387,'name'=>'G0122'), + array('id'=>388,'name'=>'G0123'), + array('id'=>389,'name'=>'G0124'), + array('id'=>390,'name'=>'G0125'), + array('id'=>391,'name'=>'G0126'), + array('id'=>392,'name'=>'G0127'), + array('id'=>393,'name'=>'G0128'), + array('id'=>394,'name'=>'G0129'), + array('id'=>395,'name'=>'G0130'), + array('id'=>396,'name'=>'G0131'), + array('id'=>397,'name'=>'G0132'), + array('id'=>398,'name'=>'G0133'), + array('id'=>399,'name'=>'G0134'), + array('id'=>400,'name'=>'G0135'), + array('id'=>401,'name'=>'G0136'), + array('id'=>402,'name'=>'G0137'), + array('id'=>403,'name'=>'G0138'), + array('id'=>404,'name'=>'G0139'), + array('id'=>405,'name'=>'G0140'), + array('id'=>406,'name'=>'G0141'), + array('id'=>407,'name'=>'G0142'), + array('id'=>408,'name'=>'G0143'), + array('id'=>409,'name'=>'G0144'), + array('id'=>410,'name'=>'G0145'), + array('id'=>411,'name'=>'G0146'), + array('id'=>412,'name'=>'G0147'), + array('id'=>413,'name'=>'G0148'), + array('id'=>414,'name'=>'G0149'), + array('id'=>415,'name'=>'G0150'), + array('id'=>416,'name'=>'B0131'), + array('id'=>417,'name'=>'B0132'), + array('id'=>418,'name'=>'B0133'), + array('id'=>419,'name'=>'B0134'), + array('id'=>420,'name'=>'B0135'), + array('id'=>421,'name'=>'B0136'), + array('id'=>422,'name'=>'B0137'), + array('id'=>423,'name'=>'B0138'), + array('id'=>424,'name'=>'B0139'), + array('id'=>425,'name'=>'B0140'), + array('id'=>426,'name'=>'B0026 dup'), + array('id'=>427,'name'=>'B0027 dup'), + array('id'=>428,'name'=>'B0141'), + array('id'=>429,'name'=>'B0142'), + array('id'=>430,'name'=>'B0143'), + array('id'=>431,'name'=>'B0144'), + array('id'=>432,'name'=>'B0145'), + array('id'=>433,'name'=>'B0146'), + array('id'=>434,'name'=>'B0147'), + array('id'=>435,'name'=>'B0148'), + array('id'=>436,'name'=>'B0149'), + array('id'=>437,'name'=>'B0150'), + array('id'=>438,'name'=>'B0151'), + array('id'=>439,'name'=>'B0152'), + array('id'=>440,'name'=>'B0153'), + array('id'=>441,'name'=>'B0154'), + array('id'=>442,'name'=>'B0155'), + array('id'=>443,'name'=>'B0156'), + array('id'=>444,'name'=>'B0157'), + array('id'=>445,'name'=>'B0158'), + array('id'=>446,'name'=>'B0159'), + array('id'=>447,'name'=>'B0160'), + array('id'=>448,'name'=>'B0161'), + array('id'=>449,'name'=>'B0162'), + array('id'=>450,'name'=>'B0163'), + array('id'=>451,'name'=>'B0164'), + array('id'=>452,'name'=>'B0165'), + array('id'=>453,'name'=>'B0166'), + array('id'=>454,'name'=>'B0167'), + array('id'=>455,'name'=>'B0168'), + array('id'=>456,'name'=>'B0169'), + array('id'=>457,'name'=>'B0170') +); diff --git a/testing/SetupData/suppliers.php b/testing/SetupData/suppliers.php @@ -0,0 +1,21 @@ +<?php +/** + * Export to PHP Array plugin for PHPMyAdmin + * @author Geoffray Warnants + * @version 0.2b + */ + +// +// Database "partdb" +// + +// partdb.suppliers +$suppliers = array( + array('id'=>1,'name'=>'nessi'), + array('id'=>2,'name'=>'abrock'), + array('id'=>3,'name'=>'Felicitus'), + array('id'=>4,'name'=>'TabascoEye'), + array('id'=>5,'name'=>'unbekannt'), + array('id'=>6,'name'=>'RZL'), + array('id'=>7,'name'=>'DaFo') +); diff --git a/testing/SetupDatabase.php b/testing/SetupDatabase.php @@ -11,6 +11,8 @@ use de\RaumZeitLabor\PartDB2\PartDB2; use de\RaumZeitLabor\PartDB2\Category\Category; use de\RaumZeitLabor\PartDB2\Part\Part; +use de\RaumZeitLabor\PartDB2\StorageLocation\StorageLocation; +use de\RaumZeitLabor\PartDB2\Stock\StockEntry; use de\RaumZeitLabor\PartDB2\Category\CategoryManager; use de\RaumZeitLabor\PartDB2\Category\CategoryManagerService; @@ -58,6 +60,7 @@ PartDB2::getEM()->persist($user); include("SetupData/footprints.php"); include("SetupData/categories.php"); include("SetupData/parts.php"); +include("SetupData/storagelocations.php"); /* Create footprints */ $newFootprints = array(); @@ -66,7 +69,7 @@ $newCategories = array(); echo "Creating footprints from SetupData/footprints.php\n"; foreach ($footprints as $sFootprint) { $footprint = new Footprint(); - $footprint->setFootprint($sFootprint["name"]); + $footprint->setFootprint(stripslashes($sFootprint["name"])); echo " Adding footprint ".$sFootprint["name"]."\n"; PartDB2::getEM()->persist($footprint); @@ -90,7 +93,7 @@ function addCategoryRecursive ($aCategories, $currentId, $parent) { if ($aCategory["parentnode"] == $currentId) { echo "Adding ".$aCategory["name"]."\n"; $oCategory = new Category(); - $oCategory->setName($aCategory["name"]); + $oCategory->setName(stripslashes($aCategory["name"])); $oCategory->setDescription(""); $oCategory->setParent($parent->getId()); $category = CategoryManager::getInstance()->addCategory($oCategory); @@ -103,16 +106,33 @@ function addCategoryRecursive ($aCategories, $currentId, $parent) { } +echo "\n"; +foreach ($storeloc as $store) { + $oStorageLocation = new StorageLocation(); + $oStorageLocation->setName(stripslashes($store["name"])); + PartDB2::getEM()->persist($oStorageLocation); + echo "Migrating storage location ".sprintf("%-40s", $store["name"])."\r"; + $newStorageLocations[$store["id"]] = $oStorageLocation; +} + +echo "\n"; foreach ($parts as $part) { $oPart = new Part(); - $oPart->setName($part["name"]); - $oPart->setComment($part["comment"]); + $oPart->setName(stripslashes($part["name"])); + $oPart->setComment(stripslashes($part["comment"])); $oPart->setFootprint($newFootprints[$part["id_footprint"]]); $oPart->setCategory($newCategories[$part["id_category"]]); + $oPart->setStorageLocation($newStorageLocations[$part["id_storeloc"]]); + $oPart->setMinStockLevel($part["mininstock"]); echo "Migrating part ".sprintf("%-40s", $part["name"])."\r"; PartDB2::getEM()->persist($oPart); + + $oStock = new StockEntry($oPart, $part["instock"]); + PartDB2::getEM()->persist($oStock); } + + PartDB2::getEM()->flush(); echo "All done.\n";