Announcement

Collapse
No announcement yet.

Inventur: Lagerwert berechnen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Inventur: Lagerwert berechnen

    Verwendete Umgebung: Delphi 4 C/S, PostgreSQL unter Linux

    Guten Tach zusammen,

    ich bin (mal wieder) an die Grenze meines SQL-Verständnisses gestoßen und weiß bei dem folgenden Problem nicht weiter:

    Mittels SQL soll der aktuelle Lagerwert ermittelt werden.

    In der Tabelle 'material' sind alle Artikel mit Lagerbestand und Einkaufspreis (EK) verzeichnet. Also sieht eine einfache Abfrage so aus:
    <PRE>
    SELECT SUM(lagerbestand * ek) AS wert
    FROM material
    WHERE lagerbestand > 0
    </PRE>

    Nun gibt es aber zwei Sonderfälle zu beachten:

    1. Zusätzlich zum Feld 'EK' existiert auch noch ein Feld 'Inventurwert', das bei manchen Artikeln einen verminderten Wert für den Artikel enthält - z.B. bei Auslaufartikeln. Ist dort ein Wert eingetragen, soll zur Berechnung des Lagerwertes statt des EKs dieser Inventurwert verwendet werden.

    2. Das Feld 'Lagerbestand' der Tabelle 'material' enthält den aktuellen Bestand. Dieser Bestand wird beim Druck einer Rechnung entsprechend vermindert. Es gibt aber auch Projekte, die noch nicht abgerechnet sind. Der Projektbestand (also alle Artikel der noch nicht abgerechneten Projekte) soll für die Inventur vom Lagerbestand abgezogen werden.

    Diesen Projektbestand kann ich aus der Tabelle mit den Projektpositionen 'propos' so ermitteln:
    <PRE>
    SELECT SUM(menge) AS menge
    FROM propos
    WHERE artikelnr = :SuchNr
    AND rechnungdatum IS NULL
    </PRE>

    Die Bestandbewertung soll nach folgendem <b>Pseudocode</b> ablaufen:

    <b>
    Nimm alle Artikel mit (Lagerbestand - Projektbestand) > 0 und multipliziere diesen berechneten Bestand (wenn Inventurwert > 0) mit dem Inventurwert, sonst mit dem EK.
    </b>

    Ich könnte die Berechnung des Lagerwertes in Delphi auf dem Client durchführen. Lieber wäre mir aber natürlich eine Möglichkeit, den Server arbeiten zu lassen. Geht das in SQL?

    Danke für jeden Vorschlag!

    Ralph

  • #2
    Hat sich zunächst mal erledigt... ich berechne den Inventurwert jetzt eben doch clientseitig.

    Ralp

    Comment

    Working...
    X