FastReport Reverse Charge auf Rechnung: Unterschied zwischen den Versionen
(→Im Code) |
|||
Zeile 61: | Zeile 61: | ||
... | ... | ||
end; | end; | ||
− | |||
+ | Wenn beim Ausführen des Reports die Fehlermeldung | ||
+ | |||
+ | Unbekannte Variable oder Datenfeld: IsEuState | ||
+ | |||
+ | ...angezeigt wird, hat mat die Variable nicht (richtig) deklariert, siehe oben! | ||
== Links == | == Links == |
Aktuelle Version vom 10. Januar 2020, 09:26 Uhr
Innerhalb der EU gibt es gewisse Formalitäten bei der Berechnung der Umsatzsteuer ("Mehrwert-Steuer").
Inhaltsverzeichnis
1 Reparaturen
Bei Reparaturen/Wartungen gilt, dass der Text...
Steuerschuldnerschaft des Leistungsempfängers (Reverse Charge)
...gedruckt werden muss, wenn der Anteil der Dienstleistungen/Arbeitszeit größer oder gleich 50 % des Rechnungsbetrags ist.
Hier wird beschrieben, wie man das in einem FastReport©-Formular lösen kann.
1.1 Variable IsEuState
Das Druckprogramm GevitasFormPrint stellt eine interne Variable "IsEuState" zur Verfügung. Die ist True, wenn das Land in der Rechnung ein EU-Staat ist bzw. False, wenn nicht.
Gesteuert wird das über einen Parameter, der in den Stammdaten der Ursprungsländer angegeben werden kann. Siehe Landescodes und Bezeichnungen.
Im Report muss man diese Variable erst einmal deklarieren:
Die Variable erscheint dann im Variable-Baum:
1.2 Im Code
Im Code des Reports kann man dann die Variable abfragen und z.B. ein bestimmtes Memo-Feld (hier "MemoParagraph") mit einem Text füllen.
// Ansteuerung der Bereiche im Kopf und Fuss. // Festlegung der variablen Texte, z.B. Ausland, EU-Staaten usw. // Wird hier zentral gemacht. procedure MasterRechnungsKopfOnBeforePrint(Sender: TfrxComponent); begin ...
// Wenn in einer Reparatur-Rechnung der Arbeitszeit- + Dienstleistungs-Betrag größer ist als das Material, // muss "xxx (Reverse Charge" gedruckt werden, wenn der Staat ein EU-Staat ist: if ( <RechnungsKopf."StatusText"> = 'RRE' ) then begin if ( <IsEuState> = True ) then begin if ( <RechnungsFuss."SummeDienstlstg"> + <RechnungsFuss."SummeArbzeit"> ) > ( <RechnungsFuss."SummeMiete"> + <RechnungsFuss."SummeVerkauf"> ) then MemoParagraph.Lines.Text := 'Steuerschuldnerschaft des Leistungsempfängers (Reverse Charge)'; end; end;
// Band nur zeigen, wenn ein Text im Memo steht: if MemoParagraph.Lines.Text > then FussPositionenParagraph.Visible := True else FussPositionenParagraph.Visible := False;
... end;
Wenn beim Ausführen des Reports die Fehlermeldung
Unbekannte Variable oder Datenfeld: IsEuState
...angezeigt wird, hat mat die Variable nicht (richtig) deklariert, siehe oben!