improvements mahnlauf

This commit is contained in:
Ralph Soika 2023-02-01 11:55:38 +01:00
parent 5bc6225765
commit 146ad9a17b
5 changed files with 37 additions and 48 deletions

View file

@ -64,7 +64,7 @@ public class OPListController implements Serializable {
/**
* Diese Methode wird für Zahlungseingänge und Mahnläufe verwendet.
* <p>
* Die Metho liefert die Rechnungen zur gegebenen dbtrNumber. Die Methode nutzt
* Die Methoe 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
@ -75,8 +75,9 @@ public class OPListController implements Serializable {
* <p>
* Bei verwendung im Mahnlauf werden zusätzlich auch alle diese Rechnungen
* vorselektiert (Anforderung von Mary Mwangi). D.h. es werden alle Checkboxen
* in der Maske 'selection_opliste_Mahnluaf' angewählt. D.h auch man muss ggf.
* Rechnungen manuell delselktieren wenn man diese nicht im Mahnlauf haben will.
* 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.
*
*
* @param _dbtrNumber
@ -121,7 +122,11 @@ public class OPListController implements Serializable {
logger.severe("Failed to get op liste:" + e.getMessage());
}
// Zahlugnseingang?
/*
* Zahlugnseingang?
*
* Wir berechnen den saldo.
*/
if (workflowController.getWorkitem().getModelVersion().startsWith("zahlungseingang")) {
// berechnung des Basisumsatzes bei Fremdwährungen
for (ItemCollection invoice : invoiceList) {
@ -131,18 +136,24 @@ public class OPListController implements Serializable {
maxSaldo = maxSaldo / rate;
invoice.setItemValue("invoice.saldo.byrate", maxSaldo);
}
}
}
// Mahnlauf ?
/*
* Mahnlauf ?
*
* Bei einem Mahnlauf selektieren wir alle Rechnungne immer vor. Das ist eine
* Anforderung von AGL Der Benutzer kann dann einzelne Rechnungen wieder
* abwählen.
*
* Eine Ausnahme ist hier nur wenn jemand auf Speichern oder mahnen drückt
* (Event = 10|20). Dann ändern wir die Liste nicht!
*/
if (workflowController.getWorkitem().getModelVersion().startsWith("mahnlauf")) {
// wir selektieren hier alle fälligen Rechnungen vor, falls der Mahnlauf gerade
// erstellt wird.
if (workflowController.getWorkitem().getItemValueInteger("$version") == 0
|| (workflowController.getWorkitem().getItemValueInteger("$version") == 1
&& workflowController.getWorkitem().getItemValueInteger("$lastevent") == 100)) {
// wir selektieren hier immer alle fälligen Rechnungen vor falls wir aus
// dem Event 100 (Mahnlauf erstellen) kommen.
// Falls aber
if (workflowController.getWorkitem().getItemValueInteger("$lastevent") == 100) {
List<String> intialSelection = new ArrayList<String>();
for (ItemCollection invoice : invoiceList) {
// ist die Rechnung fällig?
@ -187,28 +198,6 @@ public class OPListController implements Serializable {
return invoiceList;
}
// /**
// * Liefert die Payments die mit diesem workitem verbunden sind...
// * @return
// */
// public List<ItemCollection> getPayments() {
// List<ItemCollection> result=new ArrayList();
//
//
// result=workitemLinkController.getExternalReferences("($WorkflowGroup:Zahlungseingang");
//// if (workflowController.getWorkitem()!=null) {
//// List<ItemCollection> liste = workflowService.getWorkListByRef(workflowController.getWorkitem().getUniqueID());
////
//// for (ItemCollection refWorkitem: liste) {
//// if (refWorkitem.getItemValueString(WorkflowKernel.WORKFLOWGROUP).startsWith("Zahlungseingang")) {
//// result.add(refWorkitem);
//// }
//// }
//// }
////
// return result;
// }
/**
* On Before Process we store the selected invoices in $worktiemRef
*
@ -327,10 +316,10 @@ public class OPListController implements Serializable {
public double calculatePaymentDifference() {
double paymentAmount = workflowController.getWorkitem().getItemValueDouble("payment.amount");
double paymentDifference = workflowController.getWorkitem().getItemValueDouble("payment.difference");
double paymentTotal = workflowController.getWorkitem().getItemValueDouble("payment.total");
// paymentAmount - calculateInvoiceSaldo();
double result = (paymentAmount+paymentDifference) - paymentTotal;
double result = (paymentAmount + paymentDifference) - paymentTotal;
logger.fine("...new PaymentDifference=" + result);
// rond with 2 digits
@ -352,13 +341,11 @@ public class OPListController implements Serializable {
result = result + pay / rate;
} else {
result = result + pay;
}
}
}
// rond with 2 digits
return Math.round(result * 100.0) / 100.0;
}
/**

View file

@ -10,15 +10,13 @@
<h:panelGroup layout="block" styleClass="imixs-form-section"
id="paymentlist">
<table class="imixsdatatable ">
<tr>
<th style="">Mahnungen</th>
<th style="">Mahnung</th>
<th style="width: 100px;">Status</th>
<th style="">#{message.modified}</th>
</tr>
<ui:param name="dunnings"
@ -32,8 +30,12 @@
#{dunning.item['$workflowsummary']}
<f:param name="id" value="#{dunning.item['$uniqueid']}" />
</h:link></td>
<td>#{dunning.item['$workflowstatus']}</td>
<td><h:outputText value="#{dunning.item['$lastEventDate']}">
<f:convertDateTime pattern="#{message.datePatternShort}"
timeZone="#{message.timeZone}" />
</h:outputText> #{message.by} #{userController.getUserName(dunning.item['$editor'])}</td>
</tr>
</ui:repeat>

View file

@ -1,4 +1,4 @@
package com.alexanderlogistics;
package com.alexanderlogistics.migration;
import java.io.BufferedReader;
import java.io.BufferedWriter;

View file

@ -1,4 +1,4 @@
package com.alexanderlogistics;
package com.alexanderlogistics.migration;
import java.io.BufferedReader;
import java.io.BufferedWriter;

View file

@ -589,7 +589,7 @@ Debitor: <itemvalue>dbtr.name</itemvalue> (<itemvalue>dbtr.number</itemvalue>)
<imixs:value><![CDATA[0]]></imixs:value>
</imixs:item>
<imixs:item name="rtfresultlog" type="xs:string">
<imixs:value><![CDATA[Rechnung hinzugefügt]]></imixs:value>
<imixs:value><![CDATA[]]></imixs:value>
</imixs:item>
<imixs:item name="keyupdateacl" type="xs:boolean">
<imixs:value>false</imixs:value>