update inkasso workflow

This commit is contained in:
Ralph Soika 2023-03-06 14:19:39 +01:00
parent 8aca7ef7e3
commit 5918074f86
5 changed files with 424 additions and 672 deletions

View file

@ -43,6 +43,7 @@ public class OPListController implements Serializable {
private static final long serialVersionUID = 1L;
public static final int TASK_ERSTELLUNG = 1000;
private static Logger logger = Logger.getLogger(OPListController.class.getName());
private String lastDbtrNumber = null;
@ -64,7 +65,7 @@ public class OPListController implements Serializable {
/**
* Diese Methode wird für Zahlungseingänge und Mahnläufe verwendet.
* <p>
* Die Methoe liefert die Rechnungen zur gegebenen dbtrNumber. Die Methode nutzt
* Die Methode liefert die Rechnungen zur gegebenen dbtrNumber. Die Methode nutzt
* einen lokalen cache um die Zugriffe zu beschleunigen.
* <p>
* Befindet sich ein Zahlungseingang in Erstellung (Task=1000) werden alle
@ -78,6 +79,8 @@ public class OPListController implements Serializable {
* in der Maske 'selection_opliste_Mahnluaf' angewählt. D.h auch, dass man ggf.
* Rechnungen manuell delselktieren muss, wenn man diese nicht im Mahnlauf haben
* will.
* <p>
* Beim Mahnlauf werden Inkasso Rechnungen ausgenommen.
*
*
* @param _dbtrNumber
@ -148,8 +151,12 @@ public class OPListController implements Serializable {
*
* Eine Ausnahme ist hier nur wenn jemand auf Speichern oder mahnen drückt
* (Event = 10|20). Dann ändern wir die Liste nicht!
*
* Hinweis: in der Liste befinden sich keine Inkasso Rechnungen, da man diese
* nicht anwählen kann.
*/
if (workflowController.getWorkitem().getModelVersion().startsWith("mahnlauf")) {
// wir selektieren hier immer alle fälligen Rechnungen vor falls wir aus
// einer Rechnung mit dem Event 100 (Mahnlauf erstellen) kommen, oder
// wenn der Mahnlauf von außen gerate eben neu erzeugt wurde

View file

@ -52,6 +52,8 @@ import org.imixs.workflow.exceptions.QueryException;
* The OPListExportScheduler erzeugt für jeden Berich ein neues Workitem mit
* einer Excel Datei mit allen offenen Rechnungen.
* <p>
* bei den OP Listen für die Abteilungen dürfen nur Rechnungen aktiviert werden, wo die 2. Mahnung bereits versandt wurde bzw. wo die Fälligkeit der Rechnungen 21 Tage übersteigt.
* <p>
* The class implements the interface
* _org.imixs.workflow.engine.scheduler.Scheduler_ and can be used in
* combination with the Imxis-Workflow Scheduler Service.

View file

@ -52,7 +52,7 @@ import org.imixs.workflow.exceptions.QueryException;
/**
* The CargosoftExportScheduler exportiert eine csv Datei auf eine FTP Laufwerk
* mit allen noch offenen Rechnungen. Diese Datei wird von Cargosoft ann
* mit allen noch offenen Rechnungen. Diese Datei wird von Cargosoft dann
* verwendet um den Kreditramen für einen kunden zu ermitteln. Es werden
* praktisch von Cargosoft nur die offenen Salen aus unserer CSV Datei pro
* Kreditor ermittelt. (Wir könnten sozusagen auch direkt das ergeniss liefern,

View file

@ -50,18 +50,21 @@ public class InkassoAppendAdapter implements SignalAdapter {
public ItemCollection execute(ItemCollection document, ItemCollection event)
throws AdapterException, PluginException {
appendInvoice(document);
ItemCollection inkassoWorkitem=appendInvoice(document);
document.setItemValue("debtcollection.ref", inkassoWorkitem.getUniqueID());
return document;
}
/**
* Diese method hängt eine referenz der aktuellen Rechnung an den Inkasso
* Diese method hängt eine referenz der aktuellen Rechnung an den Inkasso Workflow an. Gibt es noch keinen, wird einer erzeugt.
* Die method liefert das Inkasso Workitem zurück.
*
* @param document
* @throws PluginException
*/
private void appendInvoice(ItemCollection document) throws PluginException {
private ItemCollection appendInvoice(ItemCollection document) throws PluginException {
String dbtrNumber = document.getItemValueString(ITEM_DBTR_NUMBER);
String currency = document.getItemValueString("invoice.currency");
@ -88,7 +91,7 @@ public class InkassoAppendAdapter implements SignalAdapter {
}
// Invoice mit Inkasso verknüpften (falls noch nicht verknüpft)
inkasso.appendItemValueUnique("$workitemref", document.getUniqueID());
workflowService.processWorkItem(inkasso);
return workflowService.processWorkItem(inkasso);
} catch (QueryException | AccessDeniedException | ProcessingErrorException | ModelException e1) {
throw new PluginException(PluginException.class.getName(), ERROR_MISSING_DATA,

File diff suppressed because it is too large Load diff