===== Verwaltungssoftware ===== ==== Anforderungen ==== * Verwaltung von * Einzelteilen * Datenblaettern * Bausaetzen * Benutzertypen * Verbraucher * Administrator * Use-cases * Verwaltete Objekte * Anlegen * Aendern * Loeschen * Einzelteile * Einchecken * Auschecken * Reservieren * Reservierungen aufheben * Bestand ausgeben * Bestandsliste erstellen * Einkaufsliste erstellen (basierend auf Bestand und aktuell reservierten Teilen/Saetzen) * High/Low Watermark triggert Warnung/Bestellung * Bausaetze * Anzahl baubarer Saetze bestimmen * Baussaetze reservieren / reservierungen aufheben * Bausaetze/Listen von Bausaetzen ("heute bauen wir 10x X und 20x Y, sind Teile da?") ==== Datenbank ==== === Table: Part === ^ Field ^ Type ^ Comment ^ | id | unique, pk, auto increment | | | name | | | | description | | | | image | | opt | | datasheet | | | | watermarkhigh | | if below, order if ordering anyway | | watermarklow | | if below, order required | | stock | | how much is currently in stock | === Table: Vendor === * add other address / contact related field ^ Field ^ Type ^ Comment ^ | id | unique, pk, auto increment | | | name | | | | website | | | | customerid | | our customer id for ordering | === Table: Assembly === ^ Field ^ Type ^ Comment ^ | id | unique, pk, auto increment | | | name | | | | description | | | === Table: LinkAssemblyPart === * link parts together to an assembly * does not allow for 'assemblies of assemblies' / baugruppen, would need one more layer ob abstraction ^ Field ^ Type ^ Comment ^ | assemblyid | fk | | | partid | fk | | | numrequired | | number of 'partid' required to build on 'assemblyid' | === Table: LinkVendorPart === * link parts to vendors so we know where to buy something. * not solved: prices for different mininum / recommended order quantities ^ Field ^ Type ^ Comment ^ | partid | fk | | | vendorid | fk | | | quantity | | minimum/recommended order quantity | | price | | | === other open issues === * how to track parts and assembly pre-allocations / reservations in a way that allows you to keep allocations separate and allow to cancel individuall allocations in a clean way. * now to store datasheets? blobs? * do we have to associate / track similar parts by different manufactureres? ("part X is out, but use Y instead"); possibly too complicated and overengineered * how to track part prices for resale? by part? fixed multiplicator? *