# Inventory tool for D120

## Planned: 
 - Webinterface using SQL to map inventory
 - OAuth as Authenticator to restrict access
 - pack it with Docker to ship and maintain it easier

## Current State
 - Frontpage created
 - MySQL Datenbank und generischer Nutzer erstellt

## Features

### Extern
 - Ausleihkatalog ansehen
 - Verfügbarkeit abfragen
   - ggfs. ab wann Verfügbar
   - bis wann kann ausgeliehen werden

### Intern
 - Inventur durchführen
 - Gegenstand suchen, Lagerort ausgeben
 - Gegenstand scannen um Soll-Lagerort zu erhalten
 - Gegenstand einlagern
 - Gegenstand auslagern
 - Gegenstand Lagerort anpassen/ändern
 - Gegenstand verleihen
 - verliehenen Gegenstand wieder entgegennehmen
 - Mängel vermerken
 - Details zu Gegenstand abfragen
   - gelagerte Anzahl, Mängel, Leihstatus, geplante Buchungen

### Abbildung des Inventars
 - Jeder Lagerraum, jedes Regal, jedes Fach und jeder Gegenstand ist eine Tabelle
 - Lagerraum:
   - Regale/Schränke mit NamensID
   - Kategorie Regal oder Schrank
   - Ort (Raumnummer)
 - Regal:
   - Fächer mit NamensID
   - Kategorie der Fächer
   - Gegenstände
   - Anzahl Gegenstände
   - Verliehen [ja,nein]
   - Reservierung vorhanden [ja,nein]
 - Gegenstände:
   - Name
   - Lagerort Regal
   - Lagerort Raum
   - Anzahl
   - Verleihstatus
   - Nutzer der Gegenstand zuletzt ein/ausgelagert hat

## Aufbau des Webinterfaces

## Bedienung
 - Benötigt werden Zugang zum Webtool (WLan und FS-Account) und ein Barcodescanner
   - Sollte jedes Smartphone von Haus aus können
   - Für Laptops gibts Barcodescanner die entweder per USB oder Bluetooth verbunden werden können

### Einlagerung
 - via SSO Einloggen
 - Auf den Reiter "Einlagerung" gehen
 - Gegenstand scannen
 - an den vorgesehenen Platz legen
 - Einlagerung bestätigen
 - ggfs ausloggen

---

## Inventur: Ablauf
 - Laptop mit Barcodescanner oder Smartphone bereit legen
 - Akkuladestand prüfen
 - Im Webtool via SSO einloggen und auf den Reiter "Inventur" gehen
 - "Start" auswählen
 - Nachfolgend wiederholen:
   - Raum auswählen
   - Anweisungen im Tool befolgen (Alles im genannten Regal/Schrank scannen)
   - Nachdem alles gescannt wurde die Eingabe bestätigen
 - Nachdem alle Schränke in allen Räumen gescannt wurden einmal "Bestätigen" auswählen
 - Nachfolgend werden 2 Listen erstellt:
   - Liste mit fehlenden Gegenständen
   - Liste mit falsch eingelagerten Gegenständen

Die Liste mit den flasch eingelagerten Gegenständen gibt euch den jetzigen (durch die Inventarisierung ermittelten) Ort, zusammen mit dem Soll-Ort an. Ihr könnt anschließend die Funktion "Option 1 korregieren" sowie "Option 2" nutzen. Beides ist ein vereinfachtes Umlagern. Bei ersterem scannt ihr einen Gegenstand auf der Liste und bestätigt anschließend, dass er jetzt an seinem Soll-Ort liegt. Bei zweiterem werden die ermittelten Lagerorte als neue Lagerorte für die Gegenstände verwendet und eine automatische "Umlagerung" aller aufgelisteten Gegenstände durchgeführt.

Tipp für gemischte Korrekturen:
Nutzt zuerst "Option 1" und bringt die "falsch" eingelagerten Gegenstände an ihren eigentlichen Ort zurück und verwendet anschließend für die übrige Liste "Option 2"

#### Test User
 - Name: inventory
 - PW: password

 - Database: Inventory

#### PHP Testserver
 - php -S localhost:8000