update workflow ausgangsrechnung

This commit is contained in:
Ralph Soika 2022-09-15 16:23:38 +02:00
parent 11be0b97b1
commit 5f26b76464
12 changed files with 73678 additions and 334 deletions

View file

@ -45,7 +45,6 @@ public class CargosoftController implements Serializable {
private static final long serialVersionUID = 1L;
private static Logger logger = Logger.getLogger(CargosoftController.class.getName());
@Inject
protected DocumentService documentService;
@ -53,7 +52,6 @@ public class CargosoftController implements Serializable {
private ItemCollection kreditor = null; // used for zahlungsziel (kreidtor.xhtml)
/**
* This method searches a text phrase within the list of cargosoft kreditor
* objects (type=cargosoftkreditor).
@ -96,8 +94,8 @@ public class CargosoftController implements Serializable {
// die cargosoft Kreditornummer beginnt seltsamerweise mit einem K
// und die Debitoren mit einem D.....
String query = "(type:" + KreditorDebitorService.TYPE_CARGOSOFTKREDITOR + ") AND ( (name:K" + phrase + "*) OR (name:D" + phrase
+ "*) OR (" + phrase.toLowerCase() + "*) )";
String query = "(type:" + KreditorDebitorService.TYPE_CARGOSOFTKREDITOR + ") AND ( (name:K" + phrase
+ "*) OR (name:D" + phrase + "*) OR (" + phrase.toLowerCase() + "*) )";
try {
List<ItemCollection> result = documentService.find(query, 20, 0, "$modified", true);
@ -188,8 +186,8 @@ public class CargosoftController implements Serializable {
// die cargosoft Kreditornummer beginnt seltsamerweise mit einem K
// und die Debitoren mit einem D.....
String query = "(type:" + KreditorDebitorService.TYPE_CARGOSOFTKREDITOR + ") AND (name:D*) AND ((name:D" + phrase
+ "*) OR (" + phrase.toLowerCase() + "*) )";
String query = "(type:" + KreditorDebitorService.TYPE_CARGOSOFTKREDITOR + ") AND (name:D*) AND ((name:D"
+ phrase + "*) OR (" + phrase.toLowerCase() + "*) )";
try {
List<ItemCollection> result = documentService.find(query, 20, 0, "$modified", true);
@ -208,6 +206,7 @@ public class CargosoftController implements Serializable {
e.printStackTrace();
}
}
/**
* Hilfsmethode die eine JSON Struktur mit einer IBAN/BIC kombinatuion erzeugt.
* Diese JSON Struktur wird von der Rechnungserfassungs Maske benötigt
@ -245,6 +244,7 @@ public class CargosoftController implements Serializable {
add("no", jsonVal(cdtr.getItemValueString("_VENDOR_NUM"))). //
add("name", jsonVal(cdtr.getItemValueString("_VENDOR_Name"))). //
add("creditperiod", jsonVal(cdtr.getItemValueString("cdtr.creditperiod"))). //
add("mail", jsonVal(cdtr.getItemValueString("cdtr.mail"))). //
add("iban", jsonVal(cdtr.getItemValueString("cdtr.iban"))). //
add("bic", jsonVal(cdtr.getItemValueString("cdtr.bic"))). //
// add ibans für kreditoren verwaltung
@ -269,6 +269,7 @@ public class CargosoftController implements Serializable {
/**
* Helper method to remove " and ' characters - causing problems
*
* @param val
* @return
*/
@ -308,8 +309,8 @@ public class CargosoftController implements Serializable {
}
/**
* Diese Method überträgt die geänderten Daten in das Kreidtoren Objekt
* (cdtr.creditperiod,cdtr.iban,cdtr.bic)
* Diese Method überträgt die geänderten Daten in das Kreidtoren/Debitoren
* Objekt (cdtr.creditperiod,cdtr.iban,cdtr.bic)
*/
public void updateZahlungsziel() {
@ -330,6 +331,7 @@ public class CargosoftController implements Serializable {
} catch (NumberFormatException nfe) {
// no op
}
cargoCreditor.setItemValue("cdtr.mail", kreditor.getItemValueString("cdtr.mail"));
cargoCreditor.setItemValue("cdtr.iban", kreditor.getItemValueString("cdtr.iban"));
cargoCreditor.setItemValue("cdtr.bic", kreditor.getItemValueString("cdtr.bic"));
cargoCreditor.setItemValue("cdtr.iban2", kreditor.getItemValueString("cdtr.iban2"));

View file

@ -0,0 +1,37 @@
package com.alexanderlogistics;
import javax.inject.Inject;
import org.imixs.workflow.ItemCollection;
import org.imixs.workflow.engine.plugins.AbstractPlugin;
import org.imixs.workflow.exceptions.PluginException;
/**
* Das InvoiceOutgoingPlugin aktualisiert die Debitor E-Mail Adresse
*
*
* @author rsoika
* @version 1.0
*
*/
public class InvoiceOutgoingPlugin extends AbstractPlugin {
@Inject
KreditorDebitorService kreditorService;
/**
*
* @throws PluginException - if data is missing
*
**/
@Override
public ItemCollection run(ItemCollection workitem, ItemCollection event) throws PluginException {
String dbtrNumber = workitem.getItemValueString("dbtr.number");
ItemCollection debitor = kreditorService.findDebitor(dbtrNumber);
// update mail
workitem.setItemValue("dbtr.mail", debitor.getItemValueString("cdtr.mail"));
return workitem;
}
}

View file

@ -63,6 +63,11 @@ public class ZahlungseingangSaldoAdapter implements SignalAdapter {
List<ItemCollection> paymentDetails = zahlungseingangService.loadPaymentDetails(document);
if (paymentDetails.size()==0) {
throw new PluginException(PluginException.class.getName(),ZahlungseingangService.ERROR_PAYMENT_BOOKING_FAILED,
"Bitte wählen Sie die zugeordneten Rechnungen aus.");
}
logger.info("......Updating " + paymentDetails.size() + " outgoing invoices....");
for (ItemCollection payment : paymentDetails) {

View file

@ -8,7 +8,7 @@
<li><h:link outcome="/pages/admin/sepa_config">SEPA</h:link></li>
<li><h:link outcome="/pages/admin/cargosoft_export">Cargosoft Export</h:link></li>
<li><h:link outcome="/pages/admin/analyse_invoicing">Analyse Rechnungseingang</h:link></li>
<li><h:link outcome="/pages/admin/kreditor">Kreditoren Zahlungsziele</h:link></li>
<li><h:link outcome="/pages/admin/kreditor">Kreditoren/Debitoren</h:link></li>
</ul>
</f:subview>

View file

@ -25,7 +25,7 @@
<div class="imixs-form">
<div class="imixs-header">
<h1>
<h:outputText value="Kreditoren Zahlungsziele " />
<h:outputText value="Kreditoren / Debitoren " />
</h1>
</div>
@ -39,7 +39,7 @@
<div class="imixs-form-section-2">
<dl>
<dt>Kreditor:</dt>
<dt>Kreditor/Debitor:</dt>
<dd>
<h:inputText
@ -50,8 +50,16 @@
</div>
<h:panelGroup layout="block" styleClass="imixs-form-section"
<h:panelGroup layout="block" styleClass="imixs-form-section-2"
id="contentIputID">
<dl>
<dt>E-Mail:</dt>
<dd><h:inputText pt:data-item="cdtr.mail"
value="#{cargosoftController.kreditor.item['cdtr.mail']}" /></dd>
</dl>
<dl>
<dt>Zahlungsziel:</dt>
<dd><h:inputText style="width:5em;"
@ -60,6 +68,7 @@
/> Tage</dd>
</dl>
</h:panelGroup>

View file

@ -60,9 +60,10 @@
var inputElementZahlungsziel=$("input[data-item='cdtr.creditperiod']");
var inputElementZahlungszielCdtr=$("input[id$='cdtr_creditperiod']");
var inputElementInvoiceDate=$("input[id$='date_invoice']");
var inputElementMail=$("input[data-item='cdtr.mail']");
var inputElementIban=$("input[data-item='cdtr.iban']");
var inputElementBic=$("input[data-item='cdtr.bic']");
if (inputElementZahlungszielCdtr && cdtrData.creditperiod!='') {
if (inputElementZahlungszielCdtr) {
inputElementZahlungszielCdtr.val(cdtrData.creditperiod);
}
// nur wenn ein Rechnugnsdatum eingegeben wurde
@ -74,12 +75,15 @@
}
// update iban/bic
if (inputElementIban && cdtrData.iban!='') {
if (inputElementIban) {
inputElementIban.val(cdtrData.iban);
}
if (inputElementBic && cdtrData.bic!='') {
if (inputElementBic) {
inputElementBic.val(cdtrData.bic);
}
if (inputElementMail) {
inputElementMail.val(cdtrData.mail);
}
// update all possible data fields von kredorenverwaltung
if ($("input[data-item='cdtr.iban']")) {

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff