AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi aktuelles Mwst.-Problem [SQL]
Thema durchsuchen
Ansicht
Themen-Optionen

aktuelles Mwst.-Problem [SQL]

Ein Thema von Hansa · begonnen am 12. Aug 2005 · letzter Beitrag vom 8. Sep 2005
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#1

aktuelles Mwst.-Problem [SQL]

  Alt 12. Aug 2005, 01:59
Datenbank: FB 1.5 • Zugriff über: egal
Hi,

die Mwst. wird wohl erhöht (egal von wem) und das ergibt bei mir ein Problem. Und zwar speichere ich die Umsätze aus verschiedenen Gründen netto. Die zugehörige Mwst. wird im Atikel hinterlegt (0,7,16% aktuell). Die Netto-Umsätze werden hierbei in einer separaten Tabelle gespeichert (netto). Nun muß ich eine Auswertung über mehrere Monate erstellen. Das bedeutet
  • für jeden Artikel seine Mwst. aufaddieren.
  • den Änderungszeitraum der Mwst. berücksichtigen.

Hierbei ist das Problem aufgetaucht, daß der Zeitraum mitten im Jahr liegen kann. 1998 wurde so was ähnliches zum 1.4. durchgeführt. Dies bedeutet, daß selbst bei Einschränkung auf ein Kalenderjahr das hier nicht möglich ist :

SQL-Code:
SELECT A.ID, A.NR, A.BEZ,
A.MWSTSATZ,');
SUM(K.UMSATZ) AS MONATSUMSATZ,
FROM ART A RIGHT JOIN KUARTSTAT K ON (A.ID = K.ID_ART)
');
WHERE (MONAT >= :VONMONAT) AND (MONAT <= :BISMONAT) AND (JAHR = :JAHR)
GROUP BY A.ID, A.Nr, A.BEZ, A.MWSTSATZ...
Das ist jetzt stark verkürzt. Wie kann ich nun da in Abhängigkeit vom Artikel und dem Zeitraum die korrekte (sich ändernde) Mwst. ermitteln ? Programmseitig könnte ich Monat für Monat genau ausrechnen, aber das müßte doch auch die DB packen ?

P.S.: das Ergebnis soll der Brutto-Umsatz sein ! Und zwar unabhängig von der gerade in dem Monat gültigen Mwst.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: aktuelles Mwst.-Problem [SQL]

  Alt 12. Aug 2005, 03:50
Was mir auf die Schnelle einfiele:
- Eine separate Tabelle die die Mehrwertssteuersätze auflistet incl. ihrem Gültigkeitszeitraum (z.B. 2 Date-Werte)
- Programmseitig für jeden Umsatz prüfen in welchen Raum er gehört, und mit dem entspr. Satz verrechnet in eine temp. Tabelle scheiben
- Einträge der temp. Tabelle summieren

Das ist allerdings ab einer größeren Menge an Umsatzdaten nicht mehr allzu performant . Mir ist aber auch keine built-in Funktion bekannt die das leisten kann. U.U. wäre hier der Einsatz einer Stored Procedure möglich/hilfreich, damit kenne ich mich aber leider nicht aus. Es würde, wenn möglich, aber die Zahl der Zugriffe auf die DB immens senken im Vergleich zu oben genanntem.

Gruss,
Fabian

\\edit: Oder mit der o.g. Mwst.-Tabelle den SELECT aufteilen, so dass du für jeden in der Tabelle befindlichen Zeitraum einen eigenen SELECT machst, der die Daten gleich mit dem zugehörigen Satz verrechnet. Das alles dann in eine Zieltabelle, und fertig.
Ist nur im Anfang etwas mehr Arbeit, da du erst die Anzahl der existierenden Zeiträume aus der DB ermitteln, und dann mit einer Schleife die SELECTs schön variabel raushauen musst.
Das wäre aber weit besser als die erste Idee, und (zumindest für jemanden wie mich der davon keine Ahnung hat) einfacher als eine Stored Procedure .
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
merlin17

Registriert seit: 15. Dez 2002
Ort: Mittelfranken
980 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

Re: aktuelles Mwst.-Problem [SQL]

  Alt 12. Aug 2005, 06:17
Schau' dir einmal die Union-Option bei SQL an.


thomas
- TeamNevrona cannot respond to questions received via email -
http://rave-notes.blogspot.com
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#4

Re: aktuelles Mwst.-Problem [SQL]

  Alt 12. Aug 2005, 06:45
Zitat von Hansa:
Hi,

die Mwst. wird wohl erhöht (egal von wem) und das ergibt bei mir ein Problem. Und zwar speichere ich die Umsätze aus verschiedenen Gründen netto. Die zugehörige Mwst. wird im Atikel hinterlegt (0,7,16% aktuell). Die Netto-Umsätze werden hierbei in einer separaten Tabelle gespeichert (netto).
Ist zwar jetzt eventuell zu spät, aber denke mal drüber nach, ob Du den Mehrwert-Steuersatz zusätzlich bei den Positionen sprich Umsätzen speicherst. Ich weiß, das ist eine etwas höhere Redundanz aber bei MwSt-Änderungen sehr hilfreich.
  Mit Zitat antworten Zitat
muenster

Registriert seit: 9. Apr 2005
Ort: Hamburg
41 Beiträge
 
Delphi 2007 Professional
 
#5

Re: aktuelles Mwst.-Problem [SQL]

  Alt 12. Aug 2005, 07:24
Hi Hansa,
da ich sehr oft mit dieser Problematik zu tun habe kann ich den Tip von r_kerber bestätigen.
Da Du aber in Deinen Tabellen auch mit Umsätzen arbeitest denke auch an Gutschriften. Diese können auch später (manchmal Jahre) mit einem alten Steuersatz abzurechnen sein. Oder - als Beispiel - Lieferung am letzten vor Änderung, Rechnungsschreibung am ersten Tag danach = der alte Satz ist anzuwenden.
Wenn Änderung dann aber richtig. Also Datenbank aufbohren und die entsprechenden Felder ergänzen.
  Mit Zitat antworten Zitat
alex517

Registriert seit: 23. Nov 2004
Ort: Bernau b. Berlin
273 Beiträge
 
Delphi XE5 Enterprise
 
#6

Re: aktuelles Mwst.-Problem [SQL]

  Alt 12. Aug 2005, 07:27
Hallo,

ich würde eine MWSt-Tabelle mit den folgenden Felder

ID, Kz, Steuersatz, Gueltig_ab

erstellen.

Werte im Kz zB:
0 - keine Mwst
1 - volle Mwst
2 - halbe Mwst

Im Artikel wird nur das Kz gespeichert.
Die tatsächliche MWSt kann man dann über eine Stored Procedure
berechnen der man als Parameter das Kz und das Datum des
realisierten Umsatzes übergibt.

alex
Alexander
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#7

Re: aktuelles Mwst.-Problem [SQL]

  Alt 12. Aug 2005, 10:14
Uff, rege Beteiligung. Eine Mwst.-Tabelle ist natürlich vorhanden:

SQL-Code:
CREATE TABLE MWST (
    ID INTEGER NOT NULL,
    ABDATUM DATE,
    MWSTSATZ DECIMAL(15,2),
    ANGELEGT TIMESTAMP,
    LETZTEAENDERUNG TIMESTAMP
);
Den Mwst.-Satz gleich mitschleppen ? Gut, das ginge mit Sicherheit. Meine Überlegungen gehen allerdings mehr in die Richtung, eine SP sagen wir mal "BRUTTO" zu benutzen, um diesen Wert auszurechnen. Dann bräuchte ich den Rückgabewert aber in der Ergebnismenge. Würde das gehen ? Bzw. wie ? Ist da nicht das JOIN hinderlich ?
Gruß
Hansa
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#8

Re: aktuelles Mwst.-Problem [SQL]

  Alt 12. Aug 2005, 10:35
Kennt Firebird UDF's ?
Ich kann dir leider nur ein kleines Beispiel in MSSQL Syntax geben. Das bekommst du ja schnell angepasst ..

SQL-Code:
CREATE FUNCTION GetBrutto (
   @Vorgangsdatum DATE = NULL,
   @Netto NUMERIC = 0,
   @ID_STEUERSATZ INT = NULL )
RETURNS NUMERIC
BEGIN
  DECLARE @Steuersatz NUMERIC
  DECLARE @Brutto NUMERIC

  
  IF @Vorgangsdatum < 2006-01-01
  BEGIN
    SELECT @Steuersatz = Steuersatz FROM MWST_BIS_2006 WHERE ID = @ID_STEUERSATZ
  END
  ELSE BEGIN
    SELECT @Steuersatz = Steuersatz FROM MWST_AB_2006 WHERE ID = @ID_STEUERSATZ
  END

  SELECT @BRUTTO = @Netto + (@Netto *@Steuersatz / 100)

  RETURN @BRUTTO
END
Aufruf: (korrigiert)
SELECT P.NETTO,GetBrutto(P.Rechnungsdatum, P.Netto, P.ID_Steuersatz) AS [Brutto] FROM Postitionen P
  Mit Zitat antworten Zitat
Kompon Ente
(Gast)

n/a Beiträge
 
#9

Re: aktuelles Mwst.-Problem [SQL]

  Alt 12. Aug 2005, 10:37
Zitat von merlin17:
Schau' dir einmal die Union-Option bei SQL an.


thomas
Extra von der CDU entworfen oder was?
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#10

Re: aktuelles Mwst.-Problem [SQL]

  Alt 12. Aug 2005, 10:46
Genau wie Jens wollt ich irgendwas in Richtung UDF vorschlagen. Und um die Frage gleich zu beantworten,ja Firebird versteht UDFs.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz