Die "part-db" Lagerverwaltung für Elektronikteile ist ein webbasierendes System zur Verwaltung elektronischer Bauteile. Man kann für jedes einzelne Teil einige Einträge vornehmen:
- Name
- Anzahl der vorrätigen Teile
- Minimaler Lagerbestand
- Footprint
- Lagerort
- Lieferant
- Bestell-Nr.
- Kommentar
- Bild/Bilder
- Preis
Funktionen:
- Speicherung der Lagerorte der verschiedenen Bauelemente
- Zusammenstellung einer Bestellliste (mit Auswahl des Lieferanten)
- Der Preis von Teilen, die bei Reichelt oder Bürklin bestellt werden, kann mit einem Perl Skript automatisch ausgelesen werden und wird alle 2 Wochen aktualisiert
- Suchfunktion über Bauteilename, Bestellnummer und Kommentar
- Bei allen Bauteilen können Links auf Datenblätter gespeichert werden
- wie bereits erwähnt ist es möglich, bei allen Bauteilen eines oder mehrere Bilder abzuspeichern. In der Listenansicht der Teile erscheint dann ein Thumbnail, welcher serverseitig erzeugt wird und vom Skript auf der Festplatte des Servers gespeichert wird.
Entwickelt wurde die part-db unter Linux. Ein PC mit Windows und WAMP (z.B. WAMP5 oder easyPHP) geht auch. WAMP5 besteht aus Windows, Apache, MySQL und PHP. An die Rechenleistung des Computers werden keine besonderen Anforderungen gestellt, es genügt eigentlich jeder Rechner, auf dem das gewünschte Betriebssystem läuft. Wenn man allerdings den Bilder-Support exzessiv nutzt, dann sollte man eventuell über eine Maschine mit 66 MHz Pentium oder so nachdenken, da das Generieren der Thumbnails doch ein wenig Power braucht (allerdings werden die Thumbnails einen Tag auf der Platte gespeichert, bevor er neue erzeugt): Mein Server (500 MHz Pentium III) erzeugt aus 50 JPG-Files mit ca. 30kByte durchschnittlicher Dateigröße binnen etwa 2 Sekunden die Thumbnails. Mit weniger Rechenleistung muss man halt länger warten, aber die Bilder werden ja nur erzeugt, wenn sie benötigt werden und außerdem nur einmal am Tag.
[bearbeiten] Wünsche und Anregungen
Anmerkung: Hier ist die
- mehrere Lagerorte für Bauteile (3 im Keller, 5 in der Bastelschublade, 10 im Auto) (1)...
- mehrere Lieferanten für Bauteile (dadurch dann auch Preisvergleich zum Bestellen möglich (1)
- "Projekte" -> Projekt anlegen mit Bauteilliste, dadurch direkt sichtbar, ob alle Teile da sind, evtl übernahme in Sollbestand, dann taucht es direkt bei den Bestelllisten auf (evtl mit Flag intern, das für Projekt, dann kann es danach wieder verschwinden, wenn gebaut wurde).
- Verwendung von CSS, damit das Design ein wenig anpassbar ist.
- Nicht mehr Datenblätter, sondern Dokumente, mit freiwählbarer Bezeichnung um Kommentar -- z.B. bei der Benutzung von mehreren Datenblättern verschiedener Hersteller für ein Bauteil. Oder häufig benutze AppNotes/User-Guides etc. pp.
- Kommentar für Lieferanten, z.B. Kundennummer.
- Preis, Dokumente (z.B. Datenblätter etc.), Bilder schon beim Anlegen speichern
- Es soll "User" (z.B. Suchmaschinen) geben, die kein JavaScript haben. Einsatz von <noscript> Tags, damit auch ohne JavaScript auf die Items zugegriffen werden kann
- Extra config-Datei für das Datenbankkonto, um nicht mit jeder neuen Version die Daten neu eintragen zu müssen. Dort könnten auch die folgenden Defaultwerte abgelegt werden:
- Anderung der Defaultwerte beim Anlegen neuer Bauteile (ist=1, soll=0)
- Kategorien sollten absteigend sortiert werden können.
- Kategorien als aufklappbare Baumstruktur darstellen.
Für Wünsche mit (1) wären allerdings interne Datenbankänderungen notwendig, daher nicht ganz so trivial.
Bereits "erfüllte" Wünsche landen unter
- Dialog Teile Hinzufügen / Andern in Popup verlagern
- Preise der Bauteile manuell hinzufügen
- Bei Bauteilen Bilder einfügen!
- Löschen von Kategorien
- Ripper für Datenblätter, d.h. Angabe einer Download-URL und dann lädt der Server das Datenblatt herunter. Würde (zumindest bei mir) die Hemmschwelle für das häufigere Einfügen von Datenblättern deutlich senken, da man nicht erst eine ssh-Verbindung zum Server aufbauen muss etc.
Die Erledigten Wünsche sind in der neuen Beta-Version enthalten! Wer die Verion ausprobieren möchte (README beachten!!!) bitte machen und das Feedback hier reinschreiben
Dieser Patch (showparts.php, Version 0.1d) liefert einen Button in der Teileliste, um Unterkategorien ausblenden zu können:
(Dieser Patch wurde mittlerweile in den internen Code eingefügt.)
65,78d64
<
< print "<form action=\"showparts.php\" methode=\"post\">";
< print "<input type=\"hidden\" name=\"cid\" value=\"".$_REQUEST["cid"]."\">";
< print "<input type=\"hidden\" name=\"type\" value=\"index\">";
< if (! isset($_REQUEST["nosubcat"]) )
< {
< print "<input type=\"hidden\" name=\"nosubcat\" value=\"1\">";
< print "<input type=\"submit\" name=\"s\" value=\"Unterkategorien ausblenden\">";
< }
< else
< print "<input type=\"submit\" name=\"s\" value=\"Unterkategorien einblenden\">";
< print "</form>";
<
<
117,123c103
< if (! isset($_REQUEST["nosubcat"]) )
< $catclause = findallsubcategories ($_REQUEST["cid"]);
< else
< $catclause = "id_category=".$_REQUEST["cid"];
<
< // debug
< // print "<b>$catclause</b>";
---
> $catclause = findallsubcategories ($_REQUEST["cid"]); |
Dieser Patch ermöglicht die Änderung der Kategorie eines Bauteils (editpartinfo.php, Version 0.1d):
52,57d51
< else if ( strcmp ($_REQUEST["action"], "edit_category") == 0 )
< {
< $query = "UPDATE parts SET id_category=". smart_escape($_REQUEST["p_category"]) ." WHERE id=". smart_escape($_REQUEST["pid"]) ." LIMIT 1;";
< debug_print ($query);
< mysql_query ($query);
< }
301,342d294
< <?
< function buildtree ($cid, $level, $select)
< {
< $query = "SELECT id,name FROM categories WHERE parentnode=". smart_escape($cid) .";";
< $r = mysql_query ($query);
< while ( $d = mysql_fetch_row ($r) )
< {
< if ($select == $d[0])
< print "<option selected value=\"". smart_unescape($d[0]) . "\">";
< else
< print "<option value=\"". smart_unescape($d[0]) . "\">";
< for ($i = 0; $i < $level; $i++) print " ";
< print smart_unescape($d[1]) ."</option>";
<
< // do the same for the next level.
< buildtree ($d[0], $level + 1, $select);
< }
< }
<
< // determine category
< $query = "SELECT id_category FROM parts WHERE id=". $_REQUEST["pid"] .";";
< $r = mysql_query($query);
< if (mysql_num_rows($r) > 0)
< {
< $d = mysql_fetch_row($r);
< $cat = $d[0];
< }
< else
< $cat = 0;
<
< ?><form action="editpartinfo.php" method="get">
< <table border="2">
< <tr><td>
< <h2>Kategorie</h2>
< <input type="hidden" name="pid" value="<? print $_REQUEST["pid"]; ?>">
< <td><select name='p_category'>
< <option value="0">root node</option>
< <? buildtree(0, 1, $cat); ?>
< </td></tr>
< <tr><td colspan="2"><input type="hidden" name="action" value="edit_category"><input type="submit" value="Ändern!"></td></tr>
< </table>
< </form> |
[bearbeiten] Feedback der Betaversion 0.1d-beta
- Noch ein Bug: Der IE kann noch immer keine Transparenz von PNG Files darstellen. Bei Items, die kein Thumbnail haben, erscheint folglich anstelle des transparenten Bildes eine weiße 32x32 Pixel große Fläche
- Super wäre noch wenn man verschiedene User anlegen könnte sodas nur bestimmte User was hinzufügen und entfernen können. Am besten ware es mit einem Login auf der Startseite. MFG Christoph (PS: Als anregung für folgende Versionen)
- Beim Download von Datenblättern mit dem Datenblatt Ripper von der Reichelt Seite kann es vorkommen, dass das Extrahieren der Erweiterung der Datei (also z.B. ".pdf") nicht richtig funktioniert. Als das Problem auftrat war die Reichelt.de Shop-SID im Dateinamen auf der Festplatte enthalten!
[bearbeiten] erledigte Fehler der Betaversion 0.1d-beta
- Wenn man eine Kategorie mit sehr vielen Bildern öffnet, dann werden die ersten zwei bis drei vom Browser angeforderten Thumbnails vom Skript nicht richtig erzeugt. Ggf. race situation zwischen dem Löschen alter DB-Einträge und dem Anzeigen von Bildern??? Die "kaputten" Bilder enthalten tatsächlich Fehlermeldungen von PHP: Der unlink-Aufruf schlägt fehl.
- wenn man eine Liste von Suchergebnissen hat, dann wird beim Firefox Browser (ggf. auch andere Browser mit Tabbing) beim Klick auf einen Link eine neue Tab geöffnet, die u.U. ein anderes Tab ersetzt. Mit javascript:popUp verbessern!
- mit neueren IE Versionen war es nicht möglich, die part-db Oberflaeche richtig zu benutzen, da die Pages nicht im richtigen Frame geoeffnet wurden
Die Screenshots zeigen jetzt endlich die Version 0.1d-beta.
Ein Suchergebnis (es wurde nach "HCT" gesucht) ... | Die automatisch generierte Bestellliste
|
Detailinfos über ein Bauteil | Dialog zum Ändern der Detailinfos (Teil 1 des Screenshots) | Dialog zum Ändern der Detailinfos (Teil 2 des Screenshots)
|
Die Homepage des Projektes finden Sie unter http://www.cl-projects.de/projects/part-db/.
siehe auch: Eine andere, sehr schlanke, Teileverwaltung von "Gutmensch":
Forums-Thread