SKR03Account.java

package com.tdmconsult.ete.accounting;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Getter;
import lombok.RequiredArgsConstructor;

@Getter
@RequiredArgsConstructor
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@SuppressWarnings("checkstyle:AbbreviationAsWordInName")
public enum SKR03Account {

    A1120(1120L, "Postbank Anlagenkonto (404 5042775 00)"),
    A1348(1348L, "Sonstige Wertpapiere"),
    // on daily transaction basis
    A2725(2725L, "Erträge aus dem Abgang von Gegenständen des Umlaufvermögens"),
    A2325(2325L, "Verluste aus Abgang von Umlaufvermögen"),
    A2654(2654L, "Erträge Wertpapiere/Ausleihungen Umlaufvermögen"),
    // end-of-year processing
    A9000(9000L, "Saldenvorträge Sachkonten"),
    A4875(4875L, "Abschreibungen Wertpapiere des Umlaufvermögens"),
    A2715(2715L, "Erträge aus Zuschreibungen des Umlaufvermögens (außer Vorräte)"),
    // Tax on Capital Gain
    A2213(2213L, "Kapitalertragssteuer 25%"),
    A2216(2216L, "SolZ auf Kapitalertragssteuer 25%"),
    A2219(2219L, "Anzurechnende ausländische Quellensteuer")

    ;

    private final long accountNumber;
    private final String displayName;

    @JsonInclude
    public String getName() {
        return name();
    }
}