Skip to content

Commit

Permalink
fix(Lexoffice.BusinessRules): Alle relevanten Felder nach steuerliche…
Browse files Browse the repository at this point in the history
…m Hinweis absuchen
  • Loading branch information
JKamue committed Aug 22, 2024
1 parent 335ac1f commit d287e59
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 6 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System.Collections.Immutable;
using System.Globalization;
using System.Text.RegularExpressions;
using coIT.Libraries.Datengrundlagen.Konten;
using coIT.Libraries.LexOffice;
using coIT.Libraries.LexOffice.DataContracts.Invoice;
Expand All @@ -25,16 +26,27 @@ public Result Prüfen(Invoice rechnung)
_konten.FirstOrDefault(k => k.KontoNummer == kontoNummer)?.SteuerlicherHinweis
?? string.Empty
)
.Map(steuerlicherHinweis => new Regex(steuerlicherHinweis))
.Ensure(
steuerlicherHinweis =>
CultureInfo.InvariantCulture.CompareInfo.IndexOf(
rechnung.PaymentConditions.PaymentTermLabel,
steuerlicherHinweis,
CompareOptions.IgnoreCase
) >= 0,
steuerlicherHinweis => HinweisTextIstGesetzt(rechnung, steuerlicherHinweis),
steuerlicherHinweis =>
$"Aktualisiere die Rechnung mit dem korrekten angedruckten Text. Er muss '{steuerlicherHinweis}' enthalten."
);
}

private bool HinweisTextIstGesetzt(Invoice rechnung, Regex text)
{
return EnthältString(rechnung.PaymentConditions.PaymentTermLabel, text)
|| EnthältString(rechnung.Remark, text);
}

private bool EnthältString(string? heuhaufen, Regex regex)
{
if (heuhaufen is null)
return false;

var heuhaufenLower = heuhaufen.ToLowerInvariant();
return regex.IsMatch(heuhaufenLower);
}
}
}
2 changes: 2 additions & 0 deletions src/coIT.Libraries.Lexoffice/DataContracts/Invoice/Invoice.cs
Original file line number Diff line number Diff line change
Expand Up @@ -49,4 +49,6 @@ public class Invoice
public InvoicePaymentConditions PaymentConditions { get; set; }

public List<InvoiceTaxAmount> TaxAmounts { get; set; }

public string? Remark { get; set; }
}

0 comments on commit d287e59

Please sign in to comment.