FastReport Reverse Charge auf Rechnung: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „Innerhalb der EU gibt es gewisse Formalitäten bei der Berechnung der Umsatzsteuer ("Mehrwert-Steuer"). == Reparaturen == Bei Reparaturen/Wartungen gilt, das…“) |
|||
Zeile 15: | Zeile 15: | ||
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. | 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. | + | 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: | ||
+ | [[Datei:FastReport_Rechnung_EU_Variable.png]] | ||
+ | |||
+ | Die Variable erscheint dann im Variable-Baum: | ||
+ | |||
+ | |||
+ | [[Datei:FastReport_Rechnung_EU_Variable2.png]] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === Im Code === | ||
+ | |||
+ | Im Code des Reports kann man dann die Variable abfragen und z.B. ein bestimmtes Memo-Feld 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; | ||
+ | |||
Version vom 10. Januar 2020, 09:19 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 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;