Liebe Leute,
wir hatten uns mit folgenden Problemen zu beschäftigen:
1. Wir verkaufen Artikel mit verschiedenen Steuersätzen (0 - 7 - 19%)
2. Wir drucken die Rechnungen erst zum Versand der Bestellung.
3. Die Aufträge sind teilweise Wochen oder Monate über den entsprechend anzumeldenden Zeitraum für die USt-VA offen.
4. Es erfolgen öfters noch Änderungen der Aufträge nach Zahlungsbuchung (Artikel werden hinzugefügt etc.).
Das ganze war mit vorgegebenen Schnittstellen nicht zu lösen.
Folgendes haben wir nun ausgearbeitet:
ZAHLUNGEN
Bei Zahlungen zu Waren in Aufträgen, die nicht dem Hauptsteuersatz (7%) entsprechen, werden eine Zahlung entsprechend der Steuersätze aufgeteilt. Bei allen abweichenden Steuersätzen entsprechend eine manuelle SKR angegeben (z.B. 8019 für 19 % und 8000 für 0 %).
Um für den entsprechenden Zeitraum nun die Umsätze aus der Datenbank zu holen, behilft man sich folgender Abfrage:
Wer noch gern eine schöne Excel-Liste zum Kopieren haben will, nutze folgende Abfrage für den Haupt-Steuersatz:
bzw. mit entsprechenden Nummer für abweichende Steuersätze:
Falls jemandem ein logischer Fehler auffällt, Verbesserungen anzubringen an -> Immer nur her damit!
wir hatten uns mit folgenden Problemen zu beschäftigen:
1. Wir verkaufen Artikel mit verschiedenen Steuersätzen (0 - 7 - 19%)
2. Wir drucken die Rechnungen erst zum Versand der Bestellung.
3. Die Aufträge sind teilweise Wochen oder Monate über den entsprechend anzumeldenden Zeitraum für die USt-VA offen.
4. Es erfolgen öfters noch Änderungen der Aufträge nach Zahlungsbuchung (Artikel werden hinzugefügt etc.).
Das ganze war mit vorgegebenen Schnittstellen nicht zu lösen.
Folgendes haben wir nun ausgearbeitet:
ZAHLUNGEN
Bei Zahlungen zu Waren in Aufträgen, die nicht dem Hauptsteuersatz (7%) entsprechen, werden eine Zahlung entsprechend der Steuersätze aufgeteilt. Bei allen abweichenden Steuersätzen entsprechend eine manuelle SKR angegeben (z.B. 8019 für 19 % und 8000 für 0 %).
Um für den entsprechenden Zeitraum nun die Umsätze aus der Datenbank zu holen, behilft man sich folgender Abfrage:
Code:
SELECT SUM(fBetrag) AS Brutto, (sum(fbetrag)/1.07*0.07) as ust, (sum(fbetrag)/1.07) as netto, cSKRManuell FROM tZahlung
WHERE cSKRManuell is NULL
AND (Convert(datetime,tZahlung.dDatum,104) >= '01.01.2013') AND (Convert(datetime,tZahlung.dDatum,104) <= '31.01.2013')
GROUP BY cSKRManuell
UNION
SELECT SUM(fBetrag) AS Brutto, (sum(fbetrag)/1.19*0.19) as ust, (sum(fbetrag)/1.19) as netto, cSKRManuell FROM tZahlung
WHERE cSKRManuell = '8019'
AND (Convert(datetime,tZahlung.dDatum,104) >= '01.01.2013') AND (Convert(datetime,tZahlung.dDatum,104) <= '31.01.2013')
GROUP BY cSKRManuell
UNION
SELECT SUM(fBetrag) AS Brutto, (sum(fbetrag)*0.00) as ust, (sum(fbetrag)) as netto, cSKRManuell FROM tZahlung
WHERE cSKRManuell = '8000'
AND (Convert(datetime,tZahlung.dDatum,104) >= '01.01.2013') AND (Convert(datetime,tZahlung.dDatum,104) <= '31.01.2013')
GROUP BY cSKRManuell
Wer noch gern eine schöne Excel-Liste zum Kopieren haben will, nutze folgende Abfrage für den Haupt-Steuersatz:
Code:
SELECT tZahlung.kZahlung, tZahlung.cName, tZahlung.dDatum, tbestellung.cBestellNr, tZahlung.fBetrag, tbestellung.cBestellNr, tkunde.cFirma, tkunde.cVorname, tkunde.cName AS cNachname
FROM tZahlung INNER JOIN
tbestellung ON tZahlung.kBestellung = tbestellung.kBestellung INNER JOIN
tkunde ON tbestellung.tKunde_kKunde = tkunde.kKunde
WHERE (tZahlung.cSKRManuell IS NULL) AND (CONVERT(datetime, tZahlung.dDatum, 104) >= '01.04.2013') AND (CONVERT(datetime, tZahlung.dDatum, 104) <= '30.04.2013')
ORDER BY dDatum ASC;
bzw. mit entsprechenden Nummer für abweichende Steuersätze:
Code:
SELECT tZahlung.kZahlung, tZahlung.cName, tZahlung.dDatum, tbestellung.cBestellNr, tZahlung.fBetrag, tbestellung.cBestellNr, tkunde.cFirma, tkunde.cVorname, tkunde.cName AS cNachname
FROM tZahlung INNER JOIN
tbestellung ON tZahlung.kBestellung = tbestellung.kBestellung INNER JOIN
tkunde ON tbestellung.tKunde_kKunde = tkunde.kKunde
WHERE (tZahlung.cSKRManuell ='8000 (bzw. SKR Kontennummer!!)') AND (CONVERT(datetime, tZahlung.dDatum, 104) >= '01.04.2013') AND (CONVERT(datetime, tZahlung.dDatum, 104) <= '30.04.2013')
ORDER BY dDatum ASC;
Falls jemandem ein logischer Fehler auffällt, Verbesserungen anzubringen an -> Immer nur her damit!