layout update
This commit is contained in:
parent
2742379b37
commit
038d9478bf
2 changed files with 124 additions and 20 deletions
|
|
@ -26,6 +26,7 @@ import org.imixs.workflow.ItemCollection;
|
||||||
import org.imixs.workflow.engine.DocumentService;
|
import org.imixs.workflow.engine.DocumentService;
|
||||||
import org.imixs.workflow.exceptions.QueryException;
|
import org.imixs.workflow.exceptions.QueryException;
|
||||||
import org.imixs.workflow.faces.data.WorkflowController;
|
import org.imixs.workflow.faces.data.WorkflowController;
|
||||||
|
import org.imixs.workflow.office.views.SearchController;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Der InvoiceAnalyseController dient zur Auswertung der Sachprüfungs WOrklfow
|
* Der InvoiceAnalyseController dient zur Auswertung der Sachprüfungs WOrklfow
|
||||||
|
|
@ -49,14 +50,23 @@ public class DebitorStatistikController implements Serializable {
|
||||||
@Inject
|
@Inject
|
||||||
protected WorkflowController workflowController;
|
protected WorkflowController workflowController;
|
||||||
|
|
||||||
public int getZahlungsmoral() {
|
@Inject
|
||||||
|
protected SearchController searchController;
|
||||||
|
|
||||||
|
public int getZahlungsmoral() {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Gesamt
|
||||||
|
*/
|
||||||
|
public String getQueryRechnungen() {
|
||||||
|
String query = "(type:workitem OR type:workitemarchive) AND dbtr.number:" + getDbtNr()
|
||||||
|
+ " AND $workflowgroup:\"Rechnungsausgang\"";
|
||||||
|
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " gesamt&query=" + query;
|
||||||
|
}
|
||||||
public int getRechnungen() {
|
public int getRechnungen() {
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
result = documentService
|
result = documentService
|
||||||
.count("(type:workitem OR type:workitemarchive) AND dbtr.number:" + getDbtNr()
|
.count("(type:workitem OR type:workitemarchive) AND dbtr.number:" + getDbtNr()
|
||||||
|
|
@ -67,19 +77,35 @@ public class DebitorStatistikController implements Serializable {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Bezahlt
|
||||||
|
*/
|
||||||
|
public String getQueryRechnungenBezahlt() {
|
||||||
|
String query = "(type:workitem OR type:workitemarchive) AND dbtr.number:" + getDbtNr()
|
||||||
|
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5900 TO 5999])";
|
||||||
|
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " bezahlt&query=" + query;
|
||||||
|
}
|
||||||
public int getRechnungenBezahlt() {
|
public int getRechnungenBezahlt() {
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
result = documentService
|
result = documentService
|
||||||
.count("(type:workitem OR type:workitemarchive) AND dbtr.number:" + getDbtNr()
|
.count("(type:workitem OR type:workitemarchive) AND dbtr.number:" + getDbtNr()
|
||||||
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5900 TO 5999])");
|
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5900 TO 5999])");
|
||||||
} catch (QueryException e) {
|
} catch (QueryException e) {
|
||||||
logger.severe("Failed to get statistic: " + e.getMessage());
|
logger.severe("Failed to get statistic: " + e.getMessage());
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Offen
|
||||||
|
*/
|
||||||
|
public String getQueryRechnungenOffen() {
|
||||||
|
String query = "(type:workitem) AND dbtr.number:" + getDbtNr()
|
||||||
|
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5000 TO 5099])";
|
||||||
|
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " offen&query=" + query;
|
||||||
|
}
|
||||||
public int getRechnungenOffen() {
|
public int getRechnungenOffen() {
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
|
|
@ -93,9 +119,16 @@ public class DebitorStatistikController implements Serializable {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Fällig
|
||||||
|
*/
|
||||||
|
public String getQueryRechnungenFaellig() {
|
||||||
|
String query = "(type:workitem) AND dbtr.number:" + getDbtNr()
|
||||||
|
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5100 TO 5199])";
|
||||||
|
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " fällig&query=" + query;
|
||||||
|
}
|
||||||
public int getRechnungenFaellig() {
|
public int getRechnungenFaellig() {
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
result = documentService
|
result = documentService
|
||||||
.count("(type:workitem) AND dbtr.number:" + getDbtNr()
|
.count("(type:workitem) AND dbtr.number:" + getDbtNr()
|
||||||
|
|
@ -106,9 +139,16 @@ public class DebitorStatistikController implements Serializable {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* In Mahnung
|
||||||
|
*/
|
||||||
|
public String getQueryRechnungenGemahnt() {
|
||||||
|
String query = "(type:workitem) AND dbtr.number:" + getDbtNr()
|
||||||
|
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5200 TO 5299])";
|
||||||
|
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " in Mahnung&query=" + query;
|
||||||
|
}
|
||||||
public int getRechnungenGemahnt() {
|
public int getRechnungenGemahnt() {
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
result = documentService
|
result = documentService
|
||||||
.count("(type:workitem ) AND dbtr.number:" + getDbtNr()
|
.count("(type:workitem ) AND dbtr.number:" + getDbtNr()
|
||||||
|
|
@ -119,6 +159,14 @@ public class DebitorStatistikController implements Serializable {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Inkasso
|
||||||
|
*/
|
||||||
|
public String getQueryRechnungenInkasso() {
|
||||||
|
String query = "(type:workitem) AND dbtr.number:" + getDbtNr()
|
||||||
|
+ " AND $workflowgroup:\"Rechnungsausgang\" AND ($taskid:[5300 TO 5399])";
|
||||||
|
return "/pages/workitems/worklist?title=Rechnungen " + getDbtNr() + " in Inkasso&query=" + query;
|
||||||
|
}
|
||||||
public int getRechnungenInkasso() {
|
public int getRechnungenInkasso() {
|
||||||
int result = 0;
|
int result = 0;
|
||||||
|
|
||||||
|
|
@ -145,6 +193,34 @@ public class DebitorStatistikController implements Serializable {
|
||||||
return dbtNr;
|
return dbtNr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public long getDurchschnittZahlungsziel() {
|
||||||
|
getStats();
|
||||||
|
int count = 0;
|
||||||
|
long gesamt = 0;
|
||||||
|
for (Map.Entry<String, DebitorStatistikData> entry : stats.entrySet()) {
|
||||||
|
DebitorStatistikData statData = entry.getValue();
|
||||||
|
if (statData.count > 0) {
|
||||||
|
gesamt = gesamt + statData.getAverageDueDays();
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Math.round((double) gesamt / count);
|
||||||
|
}
|
||||||
|
|
||||||
|
public long getDurchschnittZahlungsdauer() {
|
||||||
|
getStats();
|
||||||
|
int count = 0;
|
||||||
|
long gesamt = 0;
|
||||||
|
for (Map.Entry<String, DebitorStatistikData> entry : stats.entrySet()) {
|
||||||
|
DebitorStatistikData statData = entry.getValue();
|
||||||
|
if (statData.count > 0) {
|
||||||
|
gesamt = gesamt + statData.getAveragePaymentDays();
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return Math.round((double) gesamt / count);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sucht alle Rechnugnen aus einem Zeitraum und sammelt Zahlungsziel und
|
* Sucht alle Rechnugnen aus einem Zeitraum und sammelt Zahlungsziel und
|
||||||
* Zahlungszeitspanne gruppiert nach monaten
|
* Zahlungszeitspanne gruppiert nach monaten
|
||||||
|
|
@ -409,7 +485,8 @@ public class DebitorStatistikController implements Serializable {
|
||||||
|
|
||||||
// Datasets 1
|
// Datasets 1
|
||||||
result = result + "{label: 'Zahlungsziel',borderWidth: 1,";
|
result = result + "{label: 'Zahlungsziel',borderWidth: 1,";
|
||||||
result = result + " \"backgroundColor\" : [\"#3B6B82\"],";
|
result = result + " borderColor: [\"#3B6B82\"],";
|
||||||
|
result = result + " \"backgroundColor\" : [\"#CFE9F5\"], fill: true,tension: 0.5,";
|
||||||
|
|
||||||
result = result + "data: [";
|
result = result + "data: [";
|
||||||
for (Map.Entry<String, DebitorStatistikData> entry : stats.entrySet()) {
|
for (Map.Entry<String, DebitorStatistikData> entry : stats.entrySet()) {
|
||||||
|
|
@ -422,14 +499,11 @@ public class DebitorStatistikController implements Serializable {
|
||||||
|
|
||||||
// Datasets 2
|
// Datasets 2
|
||||||
result = result + "{label: 'Zahldauer',borderWidth: 1,";
|
result = result + "{label: 'Zahldauer',borderWidth: 1,";
|
||||||
result = result + " \"backgroundColor\" : [\"#CFE9F5\" ],";
|
result = result + " borderColor: [\"#E73B65\"],\"backgroundColor\" : [\"#70B088\" ], tension: 0.5,fill: true,";
|
||||||
|
|
||||||
result = result
|
result = result
|
||||||
+ " trendlineLinear: { colorMin: \"red\", colorMax: \"green\", lineStyle: \"dotted\", width: 2 , projection: true },";
|
+ " trendlineLinear: { colorMin: \"red\", colorMax: \"green\", lineStyle: \"dotted\", width: 2 , projection: true },";
|
||||||
|
|
||||||
// result = result
|
|
||||||
// + "trendlineLinear: {colorMin: \"red\",colorMax: \"green\", lineStyle:
|
|
||||||
// \"dotted\",width: 2,projection: true},";
|
|
||||||
|
|
||||||
result = result + "data: [";
|
result = result + "data: [";
|
||||||
for (Map.Entry<String, DebitorStatistikData> entry : stats.entrySet()) {
|
for (Map.Entry<String, DebitorStatistikData> entry : stats.entrySet()) {
|
||||||
|
|
|
||||||
|
|
@ -11,50 +11,80 @@
|
||||||
|
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
<dt>Anzahl Rechnungen</dt>
|
<dt>
|
||||||
|
<h:link outcome="#{debitorStatistikController.queryRechnungen}">Anzahl Rechnungen gesamt <span
|
||||||
|
class="typcn typcn-zoom" style="font-size: 1.2em;" /></h:link>
|
||||||
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
#{debitorStatistikController.rechnungen}
|
#{debitorStatistikController.rechnungen}
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
<dt>Anzahl Offen</dt>
|
<dt>
|
||||||
|
<h:link outcome="#{debitorStatistikController.queryRechnungenOffen}">Anzahl Rechnungen offen <span
|
||||||
|
class="typcn typcn-zoom" style="font-size: 1.2em;" /></h:link>
|
||||||
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
#{debitorStatistikController.rechnungenOffen}
|
#{debitorStatistikController.rechnungenOffen}
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>Anzahl Offen</dt>
|
<dt>
|
||||||
|
<h:link outcome="#{debitorStatistikController.queryRechnungenFaellig}">Anzahl Rechnungen fällig <span
|
||||||
|
class="typcn typcn-zoom" style="font-size: 1.2em;" /></h:link>
|
||||||
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
#{debitorStatistikController.rechnungenFaellig}
|
#{debitorStatistikController.rechnungenFaellig}
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>Anzahl Rechnungen in Mahnung</dt>
|
<dt>
|
||||||
|
<h:link outcome="#{debitorStatistikController.queryRechnungenGemahnt}">Anzahl Rechnungen in Mahnung <span
|
||||||
|
class="typcn typcn-zoom" style="font-size: 1.2em;" /></h:link>
|
||||||
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
#{debitorStatistikController.rechnungenGemahnt}
|
#{debitorStatistikController.rechnungenGemahnt}
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
<dl>
|
<dl>
|
||||||
<dt>Anzahl Rechnungen in Inkasso</dt>
|
<dt>
|
||||||
|
<h:link outcome="#{debitorStatistikController.queryRechnungenInkasso}">Anzahl Rechnungen in Inkasso <span
|
||||||
|
class="typcn typcn-zoom" style="font-size: 1.2em;" /></h:link>
|
||||||
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
#{debitorStatistikController.rechnungenInkasso}
|
#{debitorStatistikController.rechnungenInkasso}
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
<dl>
|
<dl>
|
||||||
<dt>Anzahl Rechnungen Bezahlt</dt>
|
<dt>
|
||||||
|
<h:link outcome="#{debitorStatistikController.queryRechnungenBezahlt}">Anzahl Rechnungen bezahlt <span
|
||||||
|
class="typcn typcn-zoom" style="font-size: 1.2em;" /></h:link>
|
||||||
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
#{debitorStatistikController.rechnungenBezahlt}
|
#{debitorStatistikController.rechnungenBezahlt}
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
|
<dl>
|
||||||
|
<dt>Durchschnitt Zahlungsziel</dt>
|
||||||
|
<dd>
|
||||||
|
#{debitorStatistikController.durchschnittZahlungsziel}
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<dl>
|
||||||
|
<dt>Durchschnitt Zahlungsdauer</dt>
|
||||||
|
<dd>
|
||||||
|
#{debitorStatistikController.durchschnittZahlungsdauer}
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
</h:panelGroup>
|
</h:panelGroup>
|
||||||
|
|
||||||
|
|
||||||
<!-- Chart Diagramm -->
|
<!-- Chart Diagramm -->
|
||||||
<div id="container" style="width: 75%;">
|
<div id="container" style="width: 75%;">
|
||||||
<canvas id="canvas"></canvas>
|
asdf <canvas id="canvas"></canvas>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script type="text/javascript"
|
<script type="text/javascript"
|
||||||
|
|
@ -71,7 +101,7 @@
|
||||||
// update the diagram
|
// update the diagram
|
||||||
var ctx = document.getElementById("canvas").getContext("2d");
|
var ctx = document.getElementById("canvas").getContext("2d");
|
||||||
window.myBar = new Chart(ctx, {
|
window.myBar = new Chart(ctx, {
|
||||||
type: 'bar',
|
type: 'line',
|
||||||
data: barChartData,
|
data: barChartData,
|
||||||
options: {
|
options: {
|
||||||
responsive: true,
|
responsive: true,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue