diff --git a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/InvoicePlugin.java b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/InvoicePlugin.java index 6b4168d..aadca3d 100644 --- a/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/InvoicePlugin.java +++ b/office-alexander-logistics-app/src/main/java/com/alexanderlogistics/InvoicePlugin.java @@ -104,7 +104,7 @@ public class InvoicePlugin extends AbstractPlugin { if (isPublicEvent) { // validate Partner id.... - if (businessPartner == null) { + if (businessPartner == null && isCargoRechnung(workitem)) { String message = resourceBundleHandler.findMessage("ERROR_MISSING_BUSINESSPARTNER"); throw new PluginException(InvoicePlugin.class.getName(), ERROR_MISSING_DATA, message); } @@ -424,4 +424,22 @@ public class InvoicePlugin extends AbstractPlugin { // Überprüfen, ob das Muster übereinstimmt return matcher.matches(); } + + /** + * This method returns true if the current workitem is a Sachrechnung. + * + * This can be based on different model versions e.g. rechnungseingang-de-1.2, + * rechnungseingang-pl-1.0, rechnungseingang-dwc-1.0, ... + * + * @param workitem + * @return + */ + public static boolean isSachrechnungRechnung(ItemCollection workitem) { + String REGEX_PATTERN = "rechnungseingang-sachrechnung-([a-z]{2}|[a-z]{3})-\\d.\\d"; + // Erstellen Sie ein Pattern-Objekt + Pattern pattern = Pattern.compile(REGEX_PATTERN); + Matcher matcher = pattern.matcher(workitem.getModelVersion()); + // Überprüfen, ob das Muster übereinstimmt + return matcher.matches(); + } }