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
|
||||
BusinessPartnerService businessPartnerService;
|
||||
|
||||
private List<ItemCollection> searchResult = null;
|
||||
private List<BusinessPartnerSearchEntry> searchResult = null;
|
||||
|
||||
private static Logger logger = Logger.getLogger(BusinessPartnerController.class.getName());
|
||||
|
||||
|
|
@ -88,7 +88,7 @@ public class BusinessPartnerController implements Serializable {
|
|||
*/
|
||||
public void search(String regexPattern) {
|
||||
List<ItemCollection> resultList = null;
|
||||
searchResult = new ArrayList<ItemCollection>();
|
||||
searchResult = new ArrayList<BusinessPartnerSearchEntry>();
|
||||
// get the param from faces context....
|
||||
FacesContext fc = FacesContext.getCurrentInstance();
|
||||
String phrase = fc.getExternalContext().getRequestParameterMap().get("phrase");
|
||||
|
|
@ -110,6 +110,7 @@ public class BusinessPartnerController implements Serializable {
|
|||
pattern = Pattern.compile(regexPattern);
|
||||
}
|
||||
|
||||
// Filter by Regex and convert ItemCollection into a BusinessPartnerSearchEntry
|
||||
for (ItemCollection businessPartner : resultList) {
|
||||
String name = businessPartner.getItemValueString("name");
|
||||
// Prüfen, ob der name der Regex entspricht
|
||||
|
|
@ -121,10 +122,12 @@ public class BusinessPartnerController implements Serializable {
|
|||
}
|
||||
}
|
||||
String display = businessPartner.getItemValueString("$workflowsummary");
|
||||
;
|
||||
|
||||
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
|
||||
*/
|
||||
public List<ItemCollection> getSearchResult() {
|
||||
public List<BusinessPartnerSearchEntry> getSearchResult() {
|
||||
return searchResult;
|
||||
}
|
||||
|
||||
|
|
@ -262,7 +265,7 @@ public class BusinessPartnerController implements Serializable {
|
|||
add("name", jsonVal(businessPartner.getItemValueString("name"))). //
|
||||
add("cdtr.number", jsonVal(businessPartner.getItemValueString("cdtr.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
|
||||
// {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: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.
|
||||
|
||||
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.
|
||||
See imixs-office.autocompletion.js
|
||||
|
|
@ -23,9 +23,9 @@
|
|||
<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}" />
|
||||
<br />
|
||||
<span id='datev-konto-id' class='small'>#{workitem.item[item_konto_name]}</span>
|
||||
<h:commandScript name="datevSearch" action="#{businessPartnerController.search(options)}"
|
||||
render="autocomplete-resultlist-datev-debkredkonto" onevent="autocompleteShowResult" />
|
||||
<span id='businsspartner-konto-id' class='small'>#{workitem.item[item_konto_name]}</span>
|
||||
<h:commandScript name="businsspartnerSearch" action="#{businessPartnerController.search(options)}"
|
||||
render="autocomplete-resultlist-businsspartner" onevent="autocompleteShowResult" />
|
||||
|
||||
<script type="text/javascript">
|
||||
/*<![CDATA[*/
|
||||
|
|
@ -36,7 +36,7 @@
|
|||
var creditorField = $("input[data-item='#{item.name}']");
|
||||
$(creditorField).each(function () {
|
||||
$(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....
|
||||
var inputElementKonto = $("input[data-item='#{item.name}']");
|
||||
var inputElementKreditor = $("input[data-item='#{item_konto_name}']");
|
||||
inputElementKonto.val(kontoData.konto);
|
||||
inputElementKreditor.val(kontoData.name);
|
||||
inputElementKonto.val(kontoData.name);
|
||||
inputElementKreditor.val(kontoData['partner.name']);
|
||||
// remove old konto name
|
||||
$('#datev-konto-id').remove();
|
||||
$('#businsspartner-konto-id').remove();
|
||||
// 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>
|
||||
|
||||
<!-- datev debkredkonto suggest list -->
|
||||
<h:panelGroup id="autocomplete-resultlist-datev-debkredkonto" layout="block" class="autocomplete-resultlist">
|
||||
<ui:repeat var="suggest" value="#{datevSearchController.searchResult}">
|
||||
<!-- businsspartner suggest list -->
|
||||
<h:panelGroup id="autocomplete-resultlist-businsspartner" layout="block" class="autocomplete-resultlist">
|
||||
<ui:repeat var="suggest" value="#{businessPartnerController.searchResult}">
|
||||
<div class="autocomplete-resultlist-element" onclick="autocompleteSelectElement('#{suggest.data}')">
|
||||
<a href="#">
|
||||
<h:outputText value="#{suggest.display}" escape="false" />
|
||||
|
|
|
|||
|
|
@ -5535,7 +5535,7 @@ result.isValid=true;
|
|||
<imixs-form-section columns="2" label="Rechnungsdaten">
|
||||
<item name="cdtr.name" type="text" label="Kreditor:"/>
|
||||
<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 columns="3">
|
||||
<item name="invoice.number" type="text" label="Rechnungsnummer:" />
|
||||
|
|
|
|||
Loading…
Reference in a new issue