Implementováno vyúčtování služební cesty.

closes #112
This commit is contained in:
2014-08-17 11:08:28 +02:00
parent f26e5e12c9
commit 8c26d3e430
12 changed files with 676 additions and 31 deletions
@@ -168,6 +168,42 @@ TravelOrdersGridFrom=Z
TravelOrdersGridTo=Do
TravelOrdersGridTotal=Celkem
TripBillTravelBegin=Počátek cesty
TripBillDate=Datum
TripBillTravelTarget=Místo jednání
TripBillPurpose=Účel cesty
TripBillTravelEnd=Konec cesty
TripBillResultMessage=Zpráva o výsledku pracovní cesty byla podána dne:
TripBillFreeMeals=Stravování bezplatně
TripBillFreeHousing=Ubytování bezplatně
TripBillFreeCarfare=Volná jízdenka
TripBillDepartureArrival=Odjezd - příjezd
TripBillUsed=Použitý dopravní
TripBillVehicle=prostředek
TripBillBeginEnd=Počátek a konec
TripBillWork=pracovního výkonu
TripBillTraveled=Ujeté
TripBillKm=Km
TripBillConsumption=Spotřeba
TripBillPHM=PHM
TripBillCarfare=Jízdné a
TripBillLocal=místní
TripBillTransportation=přeprava
TripBillHousing=Nocležné
TripBillNumber=Počet
TripBillMeals=jídel
TripBillFree=zdarma
TripBillMealExpenses=Stravné
TripBillNecessary=Nutné
TripBillOther=vedlejší
TripBillExpenses=výdaje
TripBillAdjusted=Upraveno
TripBillHourMin=hod:min
TripBillInKc=v Kč
TripBillTo=Tam
TripBillBack=Zpět
TripBillTotal=Celkem
CentresForRequirements=Střediska, pro která lze vkládat požadavky
WorkgroupMembership=Členství v komisích
LogedInUser=Přihlášený uživatel:
+15
View File
@@ -52,4 +52,19 @@ background: #ebebeb;
.bold {
font-weight: bold;
}
.vertikaal {
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
-ms-transform: rotate(-90deg);
-o-transform: rotate(-90deg);
transform: rotate(-90deg);
-webkit-transform-origin: 50% 50%;
-moz-transform-origin: 50% 50%;
-ms-transform-origin: 50% 50%;
-o-transform-origin: 50% 50%;
transform-origin: 50% 50%;
}
+290 -1
View File
@@ -1,4 +1,5 @@
<?page title="${labels.TravelOrdersFormTitle}" contentType="text/html;charset=UTF-8"?>
<zk>
<window
id="editWin"
@@ -12,7 +13,295 @@
zclass="form-caption"
label="${labels.TravelOrdersFormTitle}" />
<vlayout>
<grid>
<columns visible="false">
<column hflex="min"/>
<column hflex="min"/>
<column hflex="2"/>
<column hflex="2"/>
<column hflex="2"/>
</columns>
<auxhead>
<auxheader label="${labels.TripBillTravelBegin}" colspan="2"/>
<auxheader label="${labels.TripBillTravelTarget}"/>
<auxheader label="${labels.TripBillPurpose}"/>
<auxheader label="${labels.TripBillTravelEnd}"/>
</auxhead>
<rows>
<row>
<cell colspan="2">
<label value="@load(vm.dataBean.requirement.from)"/>
</cell>
<cell>
<label value="@load(vm.dataBean.requirement.to)"/>
</cell>
<cell>
<label value="@load(vm.dataBean.requirement.description)"/>
</cell>
<cell>
<label value="@load(vm.dataBean.requirement.end)"/>
</cell>
</row>
<row>
<label value="@load(vm.dataBean.requirement.tripDate) @converter('formatedDate', format=labels.DateFormat)"/>
<label value="@load(vm.dataBean.requirement.tripDate) @converter('formatedDate', format='hh:mm')"/>
<cell/>
<cell/>
<label value="@load(vm.dataBean.requirement.endDate) @converter('formatedDate', format=labels.DateFormat)"/>
</row>
</rows>
</grid>
<grid>
<columns>
<column/>
<column/>
</columns>
<rows>
<row>
<label value="${labels.TripBillResultMessage}"/>
<datebox value="@bind(vm.dataBean.resultMessageDate)"/>
</row>
<row>
<cell colspan="2">
<checkbox label="${labels.TripBillFreeMeals}" checked="@bind(vm.dataBean.freeMeals)" onCheck="@command('calculate')"/>
</cell>
</row>
<row>
<cell colspan="2">
<checkbox label="${labels.TripBillFreeHousing}" checked="@bind(vm.dataBean.freeHousing)"/>
</cell>
</row>
<row>
<cell colspan="2">
<checkbox label="${labels.TripBillFreeCarfare}" checked="@bind(vm.dataBean.freeCarfare)"/>
</cell>
</row>
</rows>
</grid>
<grid model="@load(vm.dataBean.billItems)">
<auxhead>
<auxheader rowspan="2">
<div sclass="vertikaal" height="50px">
<label value="${labels.TripBillDate}" sclass="bold"/>
</div>
</auxheader>
<auxheader colspan="2">
<label value=""/>
</auxheader>
<!-- <auxheader >
<label value=""/>
</auxheader> -->
<auxheader colspan="2" align="center">
<label value="${labels.TripBillDepartureArrival}" sclass="bold"/>
</auxheader>
<!-- <auxheader>
<label value=""/>
</auxheader> -->
<auxheader rowspan="2" valign="bottom" height="110px">
<div sclass="vertikaal" height="88px" width="88px">
<vbox>
<label value="${labels.TripBillUsed}" sclass="bold"/>
<label value="${labels.TripBillVehicle}" sclass="bold"/>
</vbox>
</div>
</auxheader>
<auxheader rowspan="2" valign="bottom" height="112px">
<div sclass="vertikaal" height="101px" width="90px">
<vbox>
<label value="${labels.TripBillBeginEnd}" sclass="bold"/>
<label value="${labels.TripBillWork}" sclass="bold"/>
</vbox>
</div>
</auxheader>
<auxheader>
<html>
<![CDATA[${labels.TripBillTraveled} <br /> ${labels.TripBillKm} ]]>
</html>
</auxheader>
<auxheader>
<html>
<![CDATA[${labels.TripBillConsumption} <br /> ${labels.TripBillPHM} ]]>
</html>
</auxheader>
<auxheader rowspan="2">
<html>
<![CDATA[${labels.TripBillCarfare} <br /> ${labels.TripBillLocal} <br /> ${labels.TripBillTransportation} ]]>
</html>
</auxheader>
<auxheader rowspan="2">
<label value="${labels.TripBillHousing}" sclass="bold"/>
</auxheader>
<auxheader rowspan="2">
<html>
<![CDATA[${labels.TripBillNumber} <br /> ${labels.TripBillMeals} <br /> ${labels.TripBillFree} ]]>
</html>
</auxheader>
<auxheader rowspan="2">
<label value="${labels.TripBillMealExpenses}" sclass="bold"/>
</auxheader>
<auxheader rowspan="2">
<html>
<![CDATA[${labels.TripBillNecessary} <br /> ${labels.TripBillOther} <br /> ${labels.TripBillExpenses} ]]>
</html>
</auxheader>
<auxheader rowspan="2">
<label value="${labels.TripBillTotal}" sclass="bold"/>
</auxheader>
<auxheader rowspan="2">
<label value="${labels.TripBillAdjusted}" sclass="bold"/>
</auxheader>
</auxhead>
<auxhead>
<!-- <auxheader>
<label value=""/>
</auxheader> -->
<auxheader colspan="2" align="center">
<label value="${labels.TripBillTravelTarget}" sclass="bold"/>
</auxheader>
<!-- <auxheader >
<label value=""/>
</auxheader> -->
<auxheader>
<label value="${labels.TripBillHourMin}" sclass="bold"/>
</auxheader>
<auxheader>
<label value="${labels.TripBillHourMin}" sclass="bold"/>
</auxheader>
<!-- <auxheader>
<label value=""/>
</auxheader>-->
<!-- <auxheader>
<label value=""/>
</auxheader> -->
<auxheader>
<html>
<![CDATA[<div> ${labels.TripBillTraveled} <br /> ${labels.TripBillKm} <br /> ${labels.TripBillInKc}</div> ]]>
</html>
</auxheader>
<auxheader>
<html>
<![CDATA[${labels.TripBillConsumption} <br /> ${labels.TripBillPHM} <br /> ${labels.TripBillInKc}]]>
</html>
</auxheader>
<!-- <auxheader>
<label value=""/>
</auxheader>
<auxheader>
<label value=""/>
</auxheader>
<auxheader>
<label value=""/>
</auxheader>
<auxheader>
<label value=""/>
</auxheader>
<auxheader>
<label value=""/>
</auxheader>
<auxheader>
<label value=""/>
</auxheader>-->
</auxhead>
<columns visible="false">
<column width="60px"/>
<column width="60px"/>
<column hflex="max"/>
<column width="70px"/>
<column width="70px"/>
<column width="70px"/>
<column width="70px"/>
<column width="70px"/>
<column width="70px"/>
<column width="70px"/>
<column width="70px"/>
<column width="70px"/>
<column width="70px"/>
<column width="70px"/>
<column width="70px"/>
<column width="70px"/>
</columns>
<rows>
<template name="model">
<row>
<label value="@load(each.date) @converter('formatedDate', format='dd.MM')"/>
<vbox>
<label value="${labels.TripBillTo}"/>
<label value="${labels.TripBillBack}"/>
</vbox>
<vbox hflex="max">
<textbox inplace="true"
value="@load(each.to)"
sclass="grid-textbox-max-left"/>
<textbox inplace="true"
value="@load(each.back)"
sclass="grid-textbox-max-left"/>
</vbox>
<vbox>
<timebox inplace="true" width="68px" value="@bind(each.toArrival)" onChange="@command('calculate')" format="short"/>
<timebox inplace="true" width="68px" value="@bind(each.backArrival)" onChange="@command('calculate')" format="short"/>
</vbox>
<vbox>
<timebox inplace="true" width="68px" value="@bind(each.toDeparture)" onChange="@command('calculate')" format="short"/>
<timebox inplace="true" width="68px" value="@bind(each.backDeparture)" onChange="@command('calculate')" format="short"/>
</vbox>
<vbox>
<combobox inplace="true"
model="@load(vm.vehicles)"
selectedItem="@bind(each.toVehicle)"
width="67px"
readonly="true">
<template name="model">
<comboitem label="@load(each.code)"/>
</template>
</combobox>
<combobox inplace="true"
model="@load(vm.vehicles)"
selectedItem="@bind(each.backVehicle)"
width="67px"
readonly="true">
<template name="model">
<comboitem label="@load(each.code)"/>
</template>
</combobox>
</vbox>
<vbox>
<timebox inplace="true" width="68px" value="@bind(each.beginWork)" format="short"/>
<timebox inplace="true" width="68px" value="@bind(each.endWork)" format="short"/>
</vbox>
<vbox>
<textbox inplace="true" width="68px" value="@bind(each.distance) @converter(vm.bigDecimalConverter)"/>
<textbox inplace="true" width="68px" value="@bind(each.distanceAmount) @converter(vm.bigDecimalConverter)" onChange="@command('calculate')"/>
</vbox>
<vbox>
<textbox inplace="true" width="68px" value="@bind(each.fuelConsumption) @converter(vm.bigDecimalConverter)"/>
<textbox inplace="true" width="68px" value="@bind(each.fuelAmount) @converter(vm.bigDecimalConverter)" onChange="@command('calculate')"/>
</vbox>
<textbox inplace="true" value="@bind(each.carefare) @converter(vm.bigDecimalConverter)" onChange="@command('calculate')"/>
<textbox inplace="true" value="@bind(each.housing) @converter(vm.bigDecimalConverter)" onChange="@command('calculate')"/>
<combobox inplace="true" selectedIndex="@bind(each.freeMealsCount)"
readonly="true"
width="60px"
disabled="@load(not vm.dataBean.freeMeals)"
onBlur="@command('calculate')">
<comboitem value="0" label="0"/>
<comboitem value="1" label="1"/>
<comboitem value="2" label="2"/>
<comboitem value="3" label="3"/>
</combobox>
<label value="@load(each.meals) @converter(vm.bigDecimalConverter)"/>
<textbox inplace="true" value="@bind(each.otherExpenses) @converter(vm.bigDecimalConverter)" onChange="@command('calculate')"/>
<label value="@load(each.total) @converter(vm.bigDecimalConverter)"/>
<label value="@load(each.adjustedTotal) @converter(vm.bigDecimalConverter)"/>
</row>
</template>
</rows>
</grid>
<div hflex="1" align="end" >
<label value="${labels.TripBillTotal}: " style="font-size: 14px; font-weight: bold;"/>
<label value="@load(vm.dataBean.total) @converter(vm.bigDecimalConverter)" style="font-size: 14px; font-weight: bold;"/>
</div>
<include src="/app/formButtons.zul" />
</vlayout>
</window>
+3 -3
View File
@@ -10,7 +10,7 @@
src="/img/pickup-032.png"
zclass="form-caption"
label="${labels.TravelOrders}" />
<include src="/requirements/toolbar.zul" />
<include src="/app/toolbar.zul" />
<listbox
vflex="1"
model="@load(vm.dataList)"
@@ -72,10 +72,10 @@
<template name="model">
<listitem>
<listcell label="@load(each.requirement.numser)" />
<listcell label="@load(each.requirement.reqDate)" />
<listcell label="@load(each.requirement.reqDate) @converter('formatedDate', format=labels.DateFormat)"/>
<listcell label="@load(each.requirement.from)" />
<listcell label="@load(each.requirement.to)" />
<listcell label="@load(each.total)"/>
<listcell label="@load(each.total) @converter(vm.converter)"/>
</listitem>
</template>
</listbox>