neuer Zahlungsavis workflow auch für sepa

This commit is contained in:
Ralph Soika 2022-10-18 15:55:36 +02:00
parent eff6aa2f42
commit 1a603847f3
3 changed files with 7894 additions and 7 deletions

View file

@ -4,7 +4,10 @@
Neue KI Version
Rechnungasausgangsworkflow
Rechnungasausgangsworkflow + Mahnwesen + OP
Zalungsavis für SEPA Rechnungen freigeschaltet
### 1.2.7

View file

@ -64,15 +64,18 @@ public class ZahlungsavisAppendAdapter implements SignalAdapter {
*/
private void appendInvoice(ItemCollection document) throws PluginException {
String cdtrNumber = document.getItemValueString(ITEM_CDTR_NUMBER);
String currency = document.getItemValueString("invoice.currency");
if (cdtrNumber == null || cdtrNumber.isEmpty()) {
throw new PluginException(PluginException.class.getName(), ERROR_MISSING_DATA,
"Zahlungsavis kann nicht erzeugt werden. Bitte wählen Sie zuerst einen Kreditor aus.");
}
logger.info("......Seach Zahlungsavis or creditor '" + cdtrNumber + "'...");
logger.info("......Search Zahlungsavis or creditor '" + cdtrNumber + "'...");
ItemCollection zahlungsAvis;
try {
zahlungsAvis = findZahlungsavis(cdtrNumber);
zahlungsAvis = findZahlungsavis(cdtrNumber,currency);
if (zahlungsAvis == null) {
// create a new one
zahlungsAvis = new ItemCollection().workflowGroup("Zahlungsavis").task(1000).event(100);
@ -80,6 +83,7 @@ public class ZahlungsavisAppendAdapter implements SignalAdapter {
zahlungsAvis.setItemValue(ITEM_CDTR_NAME, document.getItemValue(ITEM_CDTR_NAME));
zahlungsAvis.setItemValue(ITEM_CDTR_NUMBER, document.getItemValue(ITEM_CDTR_NUMBER));
zahlungsAvis.setItemValue(ITEM_CDTR_NAME_CARGOSOFT, document.getItemValue(ITEM_CDTR_NAME_CARGOSOFT));
zahlungsAvis.setItemValue("invoice.currency", currency);
} else {
// zahlungsavis speichern
zahlungsAvis.event(100);
@ -103,13 +107,15 @@ public class ZahlungsavisAppendAdapter implements SignalAdapter {
* @return
* @throws QueryException
*/
private ItemCollection findZahlungsavis(String cdtrNumber) throws QueryException {
private ItemCollection findZahlungsavis(String cdtrNumber,String currency) throws QueryException {
String query = "(type:workitem) AND ($modelversion:zahlungsavis*) ";
List<ItemCollection> resultList = workflowService.getDocumentService().find(query, 999, 0, "$modified", true);
for (ItemCollection invoice : resultList) {
if (cdtrNumber.equals(invoice.getItemValueString(ITEM_CDTR_NUMBER))) {
return invoice;
for (ItemCollection zahlungsavis : resultList) {
if (cdtrNumber.equals(zahlungsavis.getItemValueString(ITEM_CDTR_NUMBER))
&& currency.equals(zahlungsavis.getItemValueString("invoice.currency"))
) {
return zahlungsavis;
}
}

File diff suppressed because it is too large Load diff