Businesspartner search
This commit is contained in:
parent
dfa089ba31
commit
4f0f4aefd8
4 changed files with 71 additions and 20 deletions
|
|
@ -71,7 +71,7 @@ public class BusinessPartnerController implements Serializable {
|
||||||
@Inject
|
@Inject
|
||||||
BusinessPartnerService businessPartnerService;
|
BusinessPartnerService businessPartnerService;
|
||||||
|
|
||||||
private List<ItemCollection> searchResult = null;
|
private List<BusinessPartnerSearchEntry> searchResult = null;
|
||||||
|
|
||||||
private static Logger logger = Logger.getLogger(BusinessPartnerController.class.getName());
|
private static Logger logger = Logger.getLogger(BusinessPartnerController.class.getName());
|
||||||
|
|
||||||
|
|
@ -88,7 +88,7 @@ public class BusinessPartnerController implements Serializable {
|
||||||
*/
|
*/
|
||||||
public void search(String regexPattern) {
|
public void search(String regexPattern) {
|
||||||
List<ItemCollection> resultList = null;
|
List<ItemCollection> resultList = null;
|
||||||
searchResult = new ArrayList<ItemCollection>();
|
searchResult = new ArrayList<BusinessPartnerSearchEntry>();
|
||||||
// get the param from faces context....
|
// get the param from faces context....
|
||||||
FacesContext fc = FacesContext.getCurrentInstance();
|
FacesContext fc = FacesContext.getCurrentInstance();
|
||||||
String phrase = fc.getExternalContext().getRequestParameterMap().get("phrase");
|
String phrase = fc.getExternalContext().getRequestParameterMap().get("phrase");
|
||||||
|
|
@ -110,6 +110,7 @@ public class BusinessPartnerController implements Serializable {
|
||||||
pattern = Pattern.compile(regexPattern);
|
pattern = Pattern.compile(regexPattern);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Filter by Regex and convert ItemCollection into a BusinessPartnerSearchEntry
|
||||||
for (ItemCollection businessPartner : resultList) {
|
for (ItemCollection businessPartner : resultList) {
|
||||||
String name = businessPartner.getItemValueString("name");
|
String name = businessPartner.getItemValueString("name");
|
||||||
// Prüfen, ob der name der Regex entspricht
|
// Prüfen, ob der name der Regex entspricht
|
||||||
|
|
@ -121,10 +122,12 @@ public class BusinessPartnerController implements Serializable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
String display = businessPartner.getItemValueString("$workflowsummary");
|
String display = businessPartner.getItemValueString("$workflowsummary");
|
||||||
;
|
|
||||||
display = display.replace("\"", "");
|
display = display.replace("\"", "");
|
||||||
display = display.replace("'", "");
|
display = display.replace("'", "");
|
||||||
searchResult.add(businessPartner);
|
|
||||||
|
searchResult.add(new BusinessPartnerSearchEntry(name, display, buildJsonData(businessPartner)));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -134,7 +137,7 @@ public class BusinessPartnerController implements Serializable {
|
||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public List<ItemCollection> getSearchResult() {
|
public List<BusinessPartnerSearchEntry> getSearchResult() {
|
||||||
return searchResult;
|
return searchResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -262,7 +265,7 @@ public class BusinessPartnerController implements Serializable {
|
||||||
add("name", jsonVal(businessPartner.getItemValueString("name"))). //
|
add("name", jsonVal(businessPartner.getItemValueString("name"))). //
|
||||||
add("cdtr.number", jsonVal(businessPartner.getItemValueString("cdtr.number"))). //
|
add("cdtr.number", jsonVal(businessPartner.getItemValueString("cdtr.number"))). //
|
||||||
add("dbtr.number", jsonVal(businessPartner.getItemValueString("dbtr.number"))). //
|
add("dbtr.number", jsonVal(businessPartner.getItemValueString("dbtr.number"))). //
|
||||||
add("name", jsonVal(businessPartner.getItemValueString("partner.name")));
|
add("partner.name", jsonVal(businessPartner.getItemValueString("partner.name")));
|
||||||
|
|
||||||
// get iban list
|
// get iban list
|
||||||
// {iban=[Dxxxxxx1], name=[Bank 1], id=[bank1], bic=[CITIDEFF]}
|
// {iban=[Dxxxxxx1], name=[Bank 1], id=[bank1], bic=[CITIDEFF]}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,48 @@
|
||||||
|
package com.alexanderlogistics;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Diese Kleine Hilfsklasse dient als DTO für die Übertragugn eines
|
||||||
|
* Sucheregenisses nach kreditoren an das Frontend. Die Klasse besteht aus einem
|
||||||
|
* Key, einer DisplayZeile für die Darstellung und einen JSON String der
|
||||||
|
* beliebige Daten enthalten kann.
|
||||||
|
*
|
||||||
|
* @author rsoika
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class BusinessPartnerSearchEntry {
|
||||||
|
|
||||||
|
private String key;
|
||||||
|
private String display;
|
||||||
|
private String data;
|
||||||
|
|
||||||
|
public BusinessPartnerSearchEntry(String key, String display, String data) {
|
||||||
|
super();
|
||||||
|
this.key = key;
|
||||||
|
this.display = display;
|
||||||
|
this.data = data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getKey() {
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setKey(String key) {
|
||||||
|
this.key = key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDisplay() {
|
||||||
|
return display;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDisplay(String display) {
|
||||||
|
this.display = display;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getData() {
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setData(String data) {
|
||||||
|
this.data = data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -3,11 +3,11 @@
|
||||||
xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"
|
xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"
|
||||||
xmlns:marty="http://xmlns.jcp.org/jsf/composite/marty" xmlns:i="http://xmlns.jcp.org/jsf/composite/imixs">
|
xmlns:marty="http://xmlns.jcp.org/jsf/composite/marty" xmlns:i="http://xmlns.jcp.org/jsf/composite/imixs">
|
||||||
|
|
||||||
<!-- DATEV Kreditor/Debitor Search integration
|
<!-- businsspartner Search integration
|
||||||
|
|
||||||
This subform is a custom form part.
|
This subform is a custom form part.
|
||||||
|
|
||||||
The subform provides a jsf commandScript which calls the datevSearchController.search method in the backend.
|
The subform provides a jsf commandScript which calls the businessPartnerController.search method in the backend.
|
||||||
|
|
||||||
The script below inits a autocompletion feature for the input field.
|
The script below inits a autocompletion feature for the input field.
|
||||||
See imixs-office.autocompletion.js
|
See imixs-office.autocompletion.js
|
||||||
|
|
@ -23,9 +23,9 @@
|
||||||
<h:inputText value="#{workitem.item[item.name]}" pt:data-item="#{item.name}" />
|
<h:inputText value="#{workitem.item[item.name]}" pt:data-item="#{item.name}" />
|
||||||
<h:inputHidden value="#{workitem.item[item_konto_name]}" pt:data-item="#{item_konto_name}" />
|
<h:inputHidden value="#{workitem.item[item_konto_name]}" pt:data-item="#{item_konto_name}" />
|
||||||
<br />
|
<br />
|
||||||
<span id='datev-konto-id' class='small'>#{workitem.item[item_konto_name]}</span>
|
<span id='businsspartner-konto-id' class='small'>#{workitem.item[item_konto_name]}</span>
|
||||||
<h:commandScript name="datevSearch" action="#{businessPartnerController.search(options)}"
|
<h:commandScript name="businsspartnerSearch" action="#{businessPartnerController.search(options)}"
|
||||||
render="autocomplete-resultlist-datev-debkredkonto" onevent="autocompleteShowResult" />
|
render="autocomplete-resultlist-businsspartner" onevent="autocompleteShowResult" />
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
/*<![CDATA[*/
|
/*<![CDATA[*/
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
var creditorField = $("input[data-item='#{item.name}']");
|
var creditorField = $("input[data-item='#{item.name}']");
|
||||||
$(creditorField).each(function () {
|
$(creditorField).each(function () {
|
||||||
$(this).addClass("imixs-ml");
|
$(this).addClass("imixs-ml");
|
||||||
autocompleteInitInput(this, datevSearch, 'autocomplete-resultlist-datev-debkredkonto', selectDebitorCreditorCallback);
|
autocompleteInitInput(this, businsspartnerSearch, 'autocomplete-resultlist-businsspartner', selectDebitorCreditorCallback);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -47,20 +47,20 @@
|
||||||
// fill data into the fields....
|
// fill data into the fields....
|
||||||
var inputElementKonto = $("input[data-item='#{item.name}']");
|
var inputElementKonto = $("input[data-item='#{item.name}']");
|
||||||
var inputElementKreditor = $("input[data-item='#{item_konto_name}']");
|
var inputElementKreditor = $("input[data-item='#{item_konto_name}']");
|
||||||
inputElementKonto.val(kontoData.konto);
|
inputElementKonto.val(kontoData.name);
|
||||||
inputElementKreditor.val(kontoData.name);
|
inputElementKreditor.val(kontoData['partner.name']);
|
||||||
// remove old konto name
|
// remove old konto name
|
||||||
$('#datev-konto-id').remove();
|
$('#businsspartner-konto-id').remove();
|
||||||
// append span with konto name....
|
// append span with konto name....
|
||||||
inputElementKonto.after("<span id='datev-konto-id' class='small'>" + kontoData.name + "</span>");
|
inputElementKonto.after("<span id='businsspartner-konto-id' class='small'>" + kontoData['partner.name'] + "</span>");
|
||||||
}
|
}
|
||||||
|
|
||||||
/*]]>*/
|
/*]]>*/
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<!-- datev debkredkonto suggest list -->
|
<!-- businsspartner suggest list -->
|
||||||
<h:panelGroup id="autocomplete-resultlist-datev-debkredkonto" layout="block" class="autocomplete-resultlist">
|
<h:panelGroup id="autocomplete-resultlist-businsspartner" layout="block" class="autocomplete-resultlist">
|
||||||
<ui:repeat var="suggest" value="#{datevSearchController.searchResult}">
|
<ui:repeat var="suggest" value="#{businessPartnerController.searchResult}">
|
||||||
<div class="autocomplete-resultlist-element" onclick="autocompleteSelectElement('#{suggest.data}')">
|
<div class="autocomplete-resultlist-element" onclick="autocompleteSelectElement('#{suggest.data}')">
|
||||||
<a href="#">
|
<a href="#">
|
||||||
<h:outputText value="#{suggest.display}" escape="false" />
|
<h:outputText value="#{suggest.display}" escape="false" />
|
||||||
|
|
|
||||||
|
|
@ -5535,7 +5535,7 @@ result.isValid=true;
|
||||||
<imixs-form-section columns="2" label="Rechnungsdaten">
|
<imixs-form-section columns="2" label="Rechnungsdaten">
|
||||||
<item name="cdtr.name" type="text" label="Kreditor:"/>
|
<item name="cdtr.name" type="text" label="Kreditor:"/>
|
||||||
<item name="cdtr.number" type="custom" path="alexander/cdtreingabe" required="true" label="Kreditorennummer:" />
|
<item name="cdtr.number" type="custom" path="alexander/cdtreingabe" required="true" label="Kreditorennummer:" />
|
||||||
<item name="bp.number" type="custom" path="alexander/businesspartner_search" required="true" label="Partnernummer:" />
|
<item name="bpid" type="custom" path="alexander/businesspartner_search" required="true" label="Businesspartner:" />
|
||||||
</imixs-form-section>
|
</imixs-form-section>
|
||||||
<imixs-form-section columns="3">
|
<imixs-form-section columns="3">
|
||||||
<item name="invoice.number" type="text" label="Rechnungsnummer:" />
|
<item name="invoice.number" type="text" label="Rechnungsnummer:" />
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue