FastReport Reverse Charge auf Rechnung

Aus GEVITAS
Version vom 10. Januar 2020, 09:26 Uhr von Gevitas (Diskussion | Beiträge) (Im Code)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Innerhalb der EU gibt es gewisse Formalitäten bei der Berechnung der Umsatzsteuer ("Mehrwert-Steuer").

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:

FastReport Rechnung EU Variable.png

Die Variable erscheint dann im Variable-Baum:


FastReport Rechnung EU Variable2.png



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!

2 Links

FastReport Seitenformat FastReport Daten, Tabellen und Felder FastReport Tabellen der Reports Beispiele:
FastReport Bands FastReport Objekte und Elemente eines Reports FastReport: Abhängige Formatierung von Feldern Ladeliste/Packliste mit FastReport
Standard-Formular-Texte Steuerung des Report mit Auftragskennzeichen Summen im Report bilden Leasing-Liste
FastReport Farb-Konstanten Namensgebung der Datenbank-Tabellen und -Felder Tipps und Tricks Inventar-Liste
REFLEX Standard-Reports Etikettendruck Allgemeines Mehrsprachige Formulare mit FastReport Geräte-Liste
GEVITAS Label-Print Installation GEVITAS-Carnet Videos zu FastReport
FastReport Angebots-/Auftragsformular mit Terminen.