Communicate
Mitglied
Hallo und Guten Morgen,
ich hätte da mal wieder ein Problem:
Ich habe zwei Tabellen:
Rechnung und Rechnung_historie. In der Tabelle Rechnung steht immer der
"Ausgangswert" in der Tabelle Rechnung_historie werden sämtliche Veränderungen
dokumentiert.
In der Tabelle Rechnung sind folgende Felder relevant:
Tabellen_Name
Rechnung_ID
Rechnung_Betrag
Rechnung_Nummer
In der Tabelle Rechnung_historie sind folgende Felder relevant:
Tabellen_Name
Rechnung_ID
Rechnung_Betrag_offen
Rechnung_Betrag_offen_Dif
Rechnung_Datum
So, was will ich eigentlich?
Gejoint werden die beiden Tabellen über die Spalten "Tabellen_Name" und "Rechnung_ID".
Sobald mit einer Rechnungsnummer irgendwas passiert, wird die Veränderung in der Tabelle Rechnung_historie durch die Spalte Rechnung_Betrag_offen_Dif dokumentiert.
Das ganze sieht an einem Beispiel dann so aus:
1. Rechnung wird erfasst: Rechnung.Rechnung_Betrag erhält einen Wert (z.B. 5.000,00)
2. Automatisch wird in der Tabelle Rechnung_historie die Spalte Rechnung_Betrag_offen_Dif mit dem Wert 5.000,00 als Veränderung gefüllt (vorher war der Wert dann 0).
3. Kunde bezahlt seine Rechnung teilweise . Das Feld Rechnung.Rechnung_Betrag bleibt konstant beim Wert (im Beispiel 5.000,00). Das Feld Rechnung.historie.Rechnung_Betrag_offen_Dif bekommt als Veränderung den Wert -3.000,00.
Somit ist die Rechnung ersteinmal auf 2.000,00 geschrumpft und das Endergebnis zur jeweiligen Beleg-Nr. ist 2000,00.
Ich kann jetzt natürlich jede Rechnung einzeln auflisten und mir den Verlauf ansehen, dass ist nicht weiter schwierig:
Aber ich möchte eigentlich gleich die aggregierte Fassung.
Sprich, das Ziel soll es sein, dass mir im oben angeführten Beispiel alle Rechungs-Nummern angezeigt werden und dazu deren derzeit aktueller Stand. Rechnungen, die komplett bezahlt sind, sollen gar nicht erst ausgwiesen werden.
Ich steh wirklich auf dem Schlauch und bin für jede Hilfe dankbar!
Viele Grüße
Communicate
ich hätte da mal wieder ein Problem:
Ich habe zwei Tabellen:
Rechnung und Rechnung_historie. In der Tabelle Rechnung steht immer der
"Ausgangswert" in der Tabelle Rechnung_historie werden sämtliche Veränderungen
dokumentiert.
In der Tabelle Rechnung sind folgende Felder relevant:
Tabellen_Name
Rechnung_ID
Rechnung_Betrag
Rechnung_Nummer
In der Tabelle Rechnung_historie sind folgende Felder relevant:
Tabellen_Name
Rechnung_ID
Rechnung_Betrag_offen
Rechnung_Betrag_offen_Dif
Rechnung_Datum
So, was will ich eigentlich?
Gejoint werden die beiden Tabellen über die Spalten "Tabellen_Name" und "Rechnung_ID".
Sobald mit einer Rechnungsnummer irgendwas passiert, wird die Veränderung in der Tabelle Rechnung_historie durch die Spalte Rechnung_Betrag_offen_Dif dokumentiert.
Das ganze sieht an einem Beispiel dann so aus:
1. Rechnung wird erfasst: Rechnung.Rechnung_Betrag erhält einen Wert (z.B. 5.000,00)
2. Automatisch wird in der Tabelle Rechnung_historie die Spalte Rechnung_Betrag_offen_Dif mit dem Wert 5.000,00 als Veränderung gefüllt (vorher war der Wert dann 0).
3. Kunde bezahlt seine Rechnung teilweise . Das Feld Rechnung.Rechnung_Betrag bleibt konstant beim Wert (im Beispiel 5.000,00). Das Feld Rechnung.historie.Rechnung_Betrag_offen_Dif bekommt als Veränderung den Wert -3.000,00.
Somit ist die Rechnung ersteinmal auf 2.000,00 geschrumpft und das Endergebnis zur jeweiligen Beleg-Nr. ist 2000,00.
Ich kann jetzt natürlich jede Rechnung einzeln auflisten und mir den Verlauf ansehen, dass ist nicht weiter schwierig:
PHP:
SELECT rechnung.table_name,
rechnung_historie.rechnung_betrag_offen,
rechnung.beleg_nr,
rechnung_historie.buchungsdatum,
rechnung_historie.rechnung_betrag_offen_dif_hw_fir,
rechnung.rechnung_betrag_hw_fir
FROM beleg,
beleg_historie
WHERE rechnung_historie.table_name = rechnung.table_name and
rechnung_historie.beleg_id = rechnung.beleg_id
Aber ich möchte eigentlich gleich die aggregierte Fassung.
Sprich, das Ziel soll es sein, dass mir im oben angeführten Beispiel alle Rechungs-Nummern angezeigt werden und dazu deren derzeit aktueller Stand. Rechnungen, die komplett bezahlt sind, sollen gar nicht erst ausgwiesen werden.
Ich steh wirklich auf dem Schlauch und bin für jede Hilfe dankbar!
Viele Grüße
Communicate