update inkasso workflow
This commit is contained in:
parent
8aca7ef7e3
commit
5918074f86
5 changed files with 424 additions and 672 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
Loading…
Reference in a new issue