예제 #1
0
        protected TaxOfficeInfo GetTaxOfficeInfo(int taxOfficeId, bool allowTest)
        {
            var result = OnTaxOfficeInfoQuery(taxOfficeId, allowTest)
                         ?? TaxOffices.Load(taxOfficeId).FirstOrDefault();

            if (result != null && result.IsTest && !allowTest)
            {
                result = null;
            }
            return(result);
        }
예제 #2
0
 private TaxNumber([NotNull] TaxOffices taxOffices, [NotNull] ParseResult parseResult)
 {
     if (taxOffices == null)
     {
         throw new ArgumentNullException(nameof(taxOffices));
     }
     TaxOffices = taxOffices;
     _province  = parseResult.Province;
     _status    = parseResult.Status;
     Number     = parseResult.TaxNumber;
 }
예제 #3
0
        private IReadOnlyList <int> GetProvinceCheckDigitFactors()
        {
            IReadOnlyList <int> result;

            switch (Province)
            {
            case Elster.Province.Bayern:
            case Elster.Province.Brandenburg:
            case Elster.Province.MecklenburgVorpommern:
            case Elster.Province.Saarland:
            case Elster.Province.Sachsen:
            case Elster.Province.SachsenAnhalt:
            case Elster.Province.Thueringen:
                result = _checkDigitFactorsVariant1;
                break;

            case Elster.Province.Berlin:
                result = TaxOffices.IsBerlinA(FederalTaxOfficeId, RegionId) ? _checkDigitFactorsBerlinA : _checkDigitFactorsBerlinB;

                break;

            case Elster.Province.RheinlandPfalz:
                result = _checkDigitFactorsVariant3;
                break;

            case Elster.Province.Bremen:
            case Elster.Province.Hamburg:
                result = _checkDigitFactorsVariant2;
                break;

            case Elster.Province.Niedersachsen:
                result = _checkDigitFactorsVariant4;
                break;

            case Elster.Province.NordrheinWestfalen:
                result = _checkDigitFactorsVariant5;
                break;

            case Elster.Province.BadenWuerttemberg:
            case Elster.Province.Hessen:
            case Elster.Province.SchleswigHolstein:
                result = _checkDigitFactorsVariant6;
                break;

            default:
                throw new NotSupportedException($"Das Bundesland {Province} wird nicht unterstützt.");
            }

            Debug.Assert(result == null || result.Count == 12, "Das Ergebnis muss entweder NULL sein oder 12 Elemente haben.");
            return(result);
        }
예제 #4
0
 static TaxOffices()
 {
     Active = new TaxOffices(new StaticTaxOfficeProvider());
     All    = new TaxOffices(new StaticTaxOfficeProvider(), null);
 }
예제 #5
0
 /// <summary>
 /// Überprüft ob die bundeslandspezifische Steuernummer gültig ist
 /// </summary>
 /// <param name="taxOffices">Die Finanzämter die zur Prüfung herangezogen werden</param>
 /// <param name="taxNumber">Die zu überprüfende bundeslandspezifische Steuernummer</param>
 /// <param name="province">Das Bundesland für die bundeslandspezifische Steuernummer</param>
 /// <returns><code>true</code> wenn die bundeslandspezifische Steuernummer gültig ist</returns>
 public static bool IsValid([NotNull] TaxOffices taxOffices, [NotNull] string taxNumber, Province province)
 {
     return(new TaxNumber(taxOffices, taxNumber, province).Valid);
 }
예제 #6
0
 /// <summary>
 /// Überprüft ob die ELSTER-Steuernummer gültig ist
 /// </summary>
 /// <param name="taxOffices">Die Finanzämter die zur Prüfung herangezogen werden</param>
 /// <param name="taxNumber">Die zu überprüfende ELSTER-Steuernummer</param>
 /// <returns><code>true</code> wenn die Steuernummer gültig ist</returns>
 /// <remarks>Dieser Aufruf funktioniert nur für die ELSTER-Steuernummer, nicht für die bundeslandspezifische Steuernummer</remarks>
 public static bool IsValid([NotNull] TaxOffices taxOffices, [NotNull] string taxNumber)
 {
     return(new TaxNumber(taxOffices, taxNumber, null).Valid);
 }
예제 #7
0
        public static TaxNumber Parse([NotNull] TaxOffices taxOffices, [NotNull] string taxNumber, Province province)
        {
            var parseResult = ParseNumber(taxNumber, province);

            return(new TaxNumber(taxOffices, parseResult));
        }
예제 #8
0
 private TaxNumber([NotNull] TaxOffices taxOffices, [NotNull] string number, Province?province)
     : this(taxOffices, TryParseNumber(number, province))
 {
 }
예제 #9
0
 /// <summary>
 /// Initialisiert eine neue Instanz der <see cref="TaxNumber"/> Klasse
 /// </summary>
 /// <param name="taxOffices">Die Finanzämter die zur Prüfung herangezogen werden</param>
 /// <param name="number">Die zu überprüfende Steuernummer</param>
 /// <param name="province">Das Bundesland für eine bundeslandspezifische Steuernummer</param>
 public TaxNumber([NotNull] TaxOffices taxOffices, [NotNull] string number, Province province)
     : this(taxOffices, number, (Province?)province)
 {
 }
예제 #10
0
 /// <summary>
 /// Initialisiert eine neue Instanz der <see cref="TaxNumber"/> Klasse
 /// </summary>
 /// <param name="taxOffices">Die Finanzämter die zur Prüfung herangezogen werden</param>
 /// <param name="number">Die zu überprüfende Steuernummer</param>
 public TaxNumber([NotNull] TaxOffices taxOffices, [NotNull] string number)
     : this(taxOffices, number, null)
 {
 }