Currency(int val) {
this.val = val;
}
+
}
package hu.user.lis.ui.converter;
+import lombok.extern.log4j.Log4j2;
import org.zkoss.bind.BindContext;
import org.zkoss.bind.Converter;
import org.zkoss.zk.ui.Component;
import java.math.RoundingMode;
import java.text.NumberFormat;
import java.util.Locale;
+import java.util.Objects;
+@Log4j2
public class DoubleToStringConverter implements Converter<String, Double, Component> {
- static private NumberFormat nf = NumberFormat.getInstance(new Locale("hu", "HU"));
+ static private final NumberFormat nf = NumberFormat.getInstance(new Locale("hu", "HU"));
static {
nf.setMaximumFractionDigits(2);
- nf.setMinimumFractionDigits(2);
+ nf.setMinimumFractionDigits(0);
nf.setRoundingMode(RoundingMode.CEILING);
}
@Override
public Double coerceToBean(String data, Component listCell, BindContext bindContext) {
- return null;
+ Double result = null;
+ try {
+ if (Objects.nonNull(data)) {
+ result = (Double) nf.parse(data.replace(" ", ""));
+ }
+ } catch (Exception e) {
+ log.error("Can't parse {} to double type", data);
+ }
+ return result;
}
}
if (Objects.isNull(profile)) {
return null;
}
- try {
- savedColumns = entityDataService.fromJSON(profile.getSetting(), ColDef[].class);
- } catch (Exception e) {
- log.warn(e.getMessage());
- return null;
- }
-
+ savedColumns = entityDataService.fromJSON(profile.getSetting(), ColDef[].class);
if (Objects.isNull(savedColumns)) {
return null;
}
-
Set<String> savedColumnNames = Arrays.stream(savedColumns).map(ColDef::getName).collect(Collectors.toSet());
Set<String> currentColumnNames = columns.stream().map(ColDef::getName).collect(Collectors.toSet());
if (!currentColumnNames.equals(savedColumnNames)) {
return null;
}
-
return savedColumns;
}
<?import hu.user.lis.workflow.invoice.data.InvoiceImportStatus?>
-<?link rel="stylesheet" type="text/css" href="~./static/css/skeleton.css" ?>
-<?link rel="stylesheet" type="text/css" href="~./static/css/webclient.css" ?>
<?component name="entity-selector" inline="true" class="hu.user.lis.ui.editor.widget.EntitySelector"?>
-<zk>
+<zk xmlns:c="client/attribute" xmlns:w="client">
<zscript>
import hu.user.lis.db.Currency;
ListModelList currencies = new ListModelList(Currency.values());
</vlayout>
<vlayout>
<label value="Nettó összeg"/>
- <doublebox readonly="false"
- value="@bind(vm.formDocument.netAmount) @validator(vm)"
- format="#,###.##" locale="hu"
- forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
+ <textbox style="text-align: right" instant="true"
+ value="@bind(vm.formDocument.netAmount) @validator(vm) @converter('hu.user.lis.ui.converter.DoubleToStringConverter')"
+ onChange="@command('onNetAmountChange')"
+ forward="onOK=submit.onClick, onCancel=cancel.onClick"
+ w:onBind="configureFloat(this.$n())"
+ c:onPaste="preventPastingNonDigit(event)"/>
</vlayout>
<vlayout>
<label value="Bruttó összeg"/>
- <doublebox readonly="false"
- value="@bind(vm.formDocument.grossAmount) @validator(vm)"
- format="#,###.##" locale="hu"
- forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
+ <textbox style="text-align: right" instant="true"
+ value="@bind(vm.formDocument.grossAmount) @validator(vm) @converter('hu.user.lis.ui.converter.DoubleToStringConverter')"
+ forward="onOK=submit.onClick, onCancel=cancel.onClick"
+ w:onBind="configureFloat(this.$n())"
+ c:onPaste="preventPastingNonDigit(event)"/>
</vlayout>
<vlayout>
- <label value="ÁFA"/>
- <doublebox readonly="false"
- value="@bind(vm.formDocument.vatAmount) @validator(vm)"
- format="#,###.##" locale="hu"
- forward="onOK=submit.onClick, onCancel=cancel.onClick"/>
+ <label value="ÁFA (HUF)"/>
+ <textbox style="text-align: right" instant="true"
+ value="@bind(vm.formDocument.vatAmount) @validator(vm) @converter('hu.user.lis.ui.converter.DoubleToStringConverter')"
+ forward="onOK=submit.onClick, onCancel=cancel.onClick"
+ w:onBind="configureFloat(this.$n())"
+ c:onPaste="preventPastingNonDigit(event)"/>
</vlayout>
</hlayout>
<hlayout>
+++ /dev/null
-<!--<?component name="dropupload" inline="true" class="hu.user.lis.ui.editor.widget.Dropupload"?>-->
-<zk>
- <script><![CDATA[
- zk.afterMount(function () {
- initListeners();
- return false;
- });
-
- function initListeners() {
- console.log("Init listeners");
- var dropZone = document.getElementById('dropzone');
- dropZone.addEventListener("dragenter", dragenter, false);
- dropZone.addEventListener("dragover", dragover, false);
- dropZone.addEventListener("drop", dropInvoice, false);
- }
-
- function dragenter(e) {
- //console.log("dragenter");
- e.stopPropagation();
- e.preventDefault();
- }
-
- function dragover(e) {
- //console.log("dragover");
- e.stopPropagation();
- e.preventDefault();
- }
-
- function drop(e, eventSource, otherUploadButton) {
- //console.log("drop event:");
- e.stopPropagation();
- e.preventDefault();
-
- var data = e.dataTransfer;
- var files = data.files;
-
- callUploadCommand(files, eventSource, otherUploadButton);
- }
-
- function callUploadCommand(files, eventSource, otherUploadButton) {
- var uploadButton = zk.Widget.$(jq('$' + eventSource));
- var otherButton = zk.Widget.$(jq('$' + otherUploadButton));
-
- var desktopId = uploadButton.desktop.uuid;
- var prothost = location.protocol + "//" + location.host;
- var actionURL = prothost + "/pdfinvoice/zkau/upload?uuid=" + uploadButton.uuid + "&dtid=" + desktopId + "&sid=0";
-
- var uploadButtonCounter = uploadButton._uplder.sid;
- var globalUploadCounter = uploadButtonCounter + otherButton._uplder.sid;
- uploadButton._uplder.sid = uploadButtonCounter+1;
-
- var xhr = new XMLHttpRequest();
- xhr.open("POST", actionURL, true);
- xhr.setRequestHeader("Upgrade-Insecure-Requests", "1");
- var formData = new FormData();
- formData.append("file", files[0]);
-
- xhr.onreadystatechange = function(e) {
- if ( 4 == this.readyState ) {
- zul.Upload.sendResult(uploadButton.uuid, 'z__ul_' + globalUploadCounter, "'" + uploadButtonCounter + "'");
- }
- };
- xhr.send(formData);
- }
-
- ]]>
- </script>
- <borderlayout>
- <north flex="true">
- <toolbar>
- <toolbarbutton label="Feltöltés" iconSclass="z-icon-plus" upload="true"
- onUpload="@command('onUploadFile')"/>
- <toolbarbutton label="Törlés" iconSclass="z-icon-remove"
- onClick="@command('onRemoveFile')"
- disabled="@load(empty vm.entityDocumentDataModel.selectedDocument)"/>
- </toolbar>
- </north>
- <west title="Fájlok" size="160px" flex="true" border="none" splittable="true" collapsible="true">
- <vlayout hflex="true" vflex="true">
- <listbox vflex="true" hflex="true" model="@load(vm.entityDocumentDataModel)" multiple="false"
- sizedByContent="true" onSelect="@command(vm.entityDocumentDataModel.onSelectionChanged())">
- <listhead visible="false">
- <listheader hflex="true" align="center"/>
- </listhead>
- <template name="model">
- <listitem>
- <listcell iconSclass="z-icon-file-pdf-o" style="font-size: 1.5em">
- <vlayout>
- <label value="@load(each.name)"/>
- </vlayout>
- </listcell>
- </listitem>
- </template>
- </listbox>
- <!--Robi hack-->
- <div id="listenerDiv" onFileUpload="@command('onFileUpload')"/>
- <h:div xmlns:h="http://www.w3.org/1999/xhtml" id="dropzone"
- style="width: 99%; height: 50px; background-color: lightgray" align="center">
- <h:div>
- <h:ul id="image_bar">Drag And Drop Számla</h:ul>
- </h:div>
- </h:div>
-
- <!-- custom komponens-->
- <dropfile hflex="true" height="100px" text="aaaaaaaaaaa"/>
-
- </vlayout>
- </west>
- <center border="none" hflex="true" vflex="true">
- <iframe hflex="true" vflex="true"
- content="@load(vm.entityDocumentDataModel.selectedDocument.file) @converter('hu.user.lis.ui.converter.ByteArrayToAMediaConverter')"/>
- </center>
-
-
- </borderlayout>
-</zk>
\ No newline at end of file
<?component name="entity-selector" inline="true" class="hu.user.lis.ui.editor.widget.EntitySelector"?>
-<zk xmlns:c="client/attribute">
+<zk xmlns:c="client/attribute" xmlns:w="client">
<script src="~./static/js/clipboard.utils.js"/>
<zscript>
import hu.user.lis.db.Currency;
</vlayout>
<vlayout>
<label value="Nettó összeg"/>
- <doublebox value="@bind(vm.formDocument.netAmount) @validator(vm)"
- format="#,###.##" locale="hu" instant="true"
- onChange="@command('onNetAmountChange')"
- forward="onOK=submit.onClick, onCancel=cancel.onClick"
- disabled="@bind(vm.readonlyForm)"
- c:onPaste="preventPastingNonDigit(event)"/>
+ <textbox style="text-align: right" instant="true"
+ value="@bind(vm.formDocument.netAmount) @validator(vm) @converter('hu.user.lis.ui.converter.DoubleToStringConverter')"
+ onChange="@command('onNetAmountChange')"
+ forward="onOK=submit.onClick, onCancel=cancel.onClick"
+ disabled="@bind(vm.readonlyForm)"
+ w:onBind="configureFloat(this.$n())"
+ c:onPaste="preventPastingNonDigit(event)"/>
</vlayout>
<vlayout>
<label value="Bruttó összeg"/>
- <doublebox value="@bind(vm.formDocument.grossAmount) @validator(vm)"
- format="#,###.##" locale="hu" instant="true"
- forward="onOK=submit.onClick, onCancel=cancel.onClick"
- disabled="@bind(vm.readonlyForm)"
- c:onPaste="preventPastingNonDigit(event)"/>
+ <textbox style="text-align: right" instant="true"
+ value="@bind(vm.formDocument.grossAmount) @validator(vm) @converter('hu.user.lis.ui.converter.DoubleToStringConverter')"
+ forward="onOK=submit.onClick, onCancel=cancel.onClick"
+ disabled="@bind(vm.readonlyForm)"
+ w:onBind="configureFloat(this.$n())"
+ c:onPaste="preventPastingNonDigit(event)"/>
</vlayout>
<vlayout>
<label value="ÁFA (HUF)"/>
- <doublebox value="@bind(vm.formDocument.vatAmount) @validator(vm)"
- format="#,###.##" locale="hu" instant="true"
- forward="onOK=submit.onClick, onCancel=cancel.onClick"
- disabled="@bind(vm.readonlyForm)"
- c:onPaste="preventPastingNonDigit(event)"/>
+ <textbox style="text-align: right" instant="true"
+ value="@bind(vm.formDocument.vatAmount) @validator(vm) @converter('hu.user.lis.ui.converter.DoubleToStringConverter')"
+ forward="onOK=submit.onClick, onCancel=cancel.onClick"
+ disabled="@bind(vm.readonlyForm)"
+ w:onBind="configureFloat(this.$n())"
+ c:onPaste="preventPastingNonDigit(event)"/>
</vlayout>
</hlayout>
<hlayout>
<?component name="entity-selector" inline="true" class="hu.user.lis.ui.editor.widget.EntitySelector"?>
-<zk xmlns:c="client/attribute">
- <script src="~./static/js/clipboard.utils.js"/>
+<zk xmlns:c="client/attribute" xmlns:w="client">
<zscript>
import hu.user.lis.db.Currency;
ListModelList currencies = new ListModelList(Currency.values());
</vlayout>
<vlayout>
<label value="Nettó összeg"/>
- <doublebox value="@bind(vm.formDocument.netAmount) @validator(vm)"
- format="#,###.##" locale="hu" instant="true"
- onChange="@command('onNetAmountChange')"
- forward="onOK=submit.onClick, onCancel=cancel.onClick"
- disabled="@bind(vm.readonlyForm)"
- c:onPaste="preventPastingNonDigit(event)"/>
+ <textbox style="text-align: right" instant="true"
+ value="@bind(vm.formDocument.netAmount) @validator(vm) @converter('hu.user.lis.ui.converter.DoubleToStringConverter')"
+ onChange="@command('onNetAmountChange')"
+ forward="onOK=submit.onClick, onCancel=cancel.onClick"
+ disabled="@bind(vm.readonlyForm)"
+ w:onBind="configureFloat(this.$n())"
+ c:onPaste="preventPastingNonDigit(event)"/>
</vlayout>
<vlayout>
<label value="Bruttó összeg"/>
- <doublebox value="@bind(vm.formDocument.grossAmount) @validator(vm)"
- format="#,###.##" locale="hu" instant="true"
- forward="onOK=submit.onClick, onCancel=cancel.onClick"
- disabled="@bind(vm.readonlyForm)"
- c:onPaste="preventPastingNonDigit(event)"/>
+ <textbox style="text-align: right" instant="true"
+ value="@bind(vm.formDocument.grossAmount) @validator(vm) @converter('hu.user.lis.ui.converter.DoubleToStringConverter')"
+ forward="onOK=submit.onClick, onCancel=cancel.onClick"
+ disabled="@bind(vm.readonlyForm)"
+ w:onBind="configureFloat(this.$n())"
+ c:onPaste="preventPastingNonDigit(event)"/>
</vlayout>
<vlayout>
<label value="ÁFA (HUF)"/>
- <doublebox value="@bind(vm.formDocument.vatAmount) @validator(vm)"
- format="#,###.##" locale="hu" instant="true"
- forward="onOK=submit.onClick, onCancel=cancel.onClick"
- disabled="@bind(vm.readonlyForm)"
- c:onPaste="preventPastingNonDigit(event)"/>
+ <textbox style="text-align: right" instant="true"
+ value="@bind(vm.formDocument.vatAmount) @validator(vm) @converter('hu.user.lis.ui.converter.DoubleToStringConverter')"
+ forward="onOK=submit.onClick, onCancel=cancel.onClick"
+ disabled="@bind(vm.readonlyForm)"
+ w:onBind="configureFloat(this.$n())"
+ c:onPaste="preventPastingNonDigit(event)"/>
</vlayout>
</hlayout>
<hlayout>
<?link rel="stylesheet" type="text/css" href="~./static/css/skeleton.css" ?>
<?link rel="stylesheet" type="text/css" href="~./static/css/webclient.css" ?>
<zk>
- <!-- <script type="text/javascript" src="~./static/js/cleave.min.js"/>-->
+ <script type="text/javascript" src="~./static/js/cleave.min.js"/>
+ <script type="text/javascript" src="~./static/js/clipboard.utils.js"/>
+ <script type="text/javascript" src="~./static/js/numberbox.utils.js"/>
<style>
.header > .z-caption-content {
width: 100%;
<label value="@load(vm.buildInformation.name)"/>
<separator orient="vertical"/>
<label style="font-size: 0.8em" value="@load(vm.buildInformation.buildVersion)"/>
-
- <!-- <textbox id="nr" width='150px' style="text-align: right" placeholder="1 234,56"-->
- <!-- w:onBind="new Cleave(this.$n(), {numeral: true, numeralDecimalMark:',', delimiter: ' '});"/>-->
- <!-- <numberbox value="111222"/>-->
</hlayout>
</div>
<div style="display: inline; float: right">
--- /dev/null
+function configureFloat(widget) {
+ new Cleave(widget, {
+ numeral: true,
+ numeralDecimalMark:',',
+ delimiter: ' '
+ });
+}