shopToUser.xhtml 5.57 KB
<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
	xmlns:products="http://java.sun.com/jsf/composite/cditools/products" xmlns:p="http://primefaces.org/ui" xmlns:users="http://java.sun.com/jsf/composite/cditools/user"
	xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:body>
	<ui:composition template="/layout/#{sessionHandler.layout}/template.xhtml">
		<f:metadata>
			<f:viewParam name="userid" value="#{userView.userid}" />
			<f:event type="preRenderView" listener="#{userView.initView}" />
			<f:event type="preRenderView" listener="#{productShopView.initShopView}" />
		</f:metadata>

		<ui:define name="title">
			<h1>#{i18n['user.shop.title']}</h1>
			<users:usertabs tabId="shop" />
		</ui:define>
		<ui:define name="content">

			<h:form id="shoppingcartform">
				<h:panelGrid columns="2">

					<h:panelGroup>
						<div id="shopItems">
							<ui:repeat value="#{productShopView.shoppingcart}" var="cart">
								<h:commandLink styleClass="shopItem" action="#{productShopView.addOne}">
									<f:ajax render="@form" />

									<div>
										#{cart.product.name}<br />
										<h:outputText value="#{cart.product.price}">
											<f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
										</h:outputText>
										eur
									</div>
								</h:commandLink>
							</ui:repeat>
						</div>

					</h:panelGroup>

					<h:panelGroup>

						<h:outputLabel value="#{i18n['shop.barcode']}" />
						<h:inputText id="barcode" value="#{productShopView.barcode}" />
						<h:commandButton action="#{productShopView.readBarcode}" onclick="blip(); return true;" value="#{i18n['shop.readBarcode']}">
							<f:ajax render="@form" onevent="barcodeReadEvent" execute="@form" />
						</h:commandButton>
						<br />
						<p:dataTable id="prods" value="#{productShopView.boughtItems}" var="prods">


							<p:column>
								<f:facet name="header">
									<h:outputText value="#{i18n['shop.count']}" />
								</f:facet>
								<p:inplace>
									<p:inputText value="#{prods.count}" size="4">
										<f:ajax event="valueChange" render="@form" />
										<f:convertNumber minFractionDigits="0" maxFractionDigits="2" />
									</p:inputText>
								</p:inplace>
							</p:column>

							<p:column>
								<f:facet name="header">
									<h:outputText value="#{i18n['shop.product']}" />
								</f:facet>
								<h:outputText value="#{prods.getProduct().name}" />
							</p:column>
							<p:column>
								<f:facet name="header">
									<h:outputText value="#{i18n['shop.price']}" />
								</f:facet>
								<h:outputText value="#{prods.getProduct().price}">
									<f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
								</h:outputText>
							</p:column>
							<p:column>
								<f:facet name="header">
									<h:outputText value="#{i18n['shop.actions']}" />
								</f:facet>
								<h:commandButton action="#{productShopView.removeBought()}" value="Poista" />
							</p:column>
						</p:dataTable>

						<div style="font-weight: bold;">
							<h:outputText value="#{i18n['shop.cartPrice']}" />
							<h:outputText styleClass="shoptotal" value="#{productShopView.cartPrice}">
								<f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
							</h:outputText>
							 <br />
							<h:outputLabel value="#{i18n['shop.currentBalance']}" />
							<h:outputText styleClass="shoptotal" value="#{productShopView.accountCredits}">
								<f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
							</h:outputText>
							 <br />
							<h:outputLabel value="#{i18n['shop.transactionTotal']}" />
							<h:outputText styleClass="shoptotal" value="#{productShopView.transactionTotal}">
								<f:convertNumber maxFractionDigits="2" minFractionDigits="2" />
							</h:outputText>
						</div>

						<br />
						<br />
						<h:outputLabel value="#{i18n['shop.cash']}" />
						<!--   <h:inputText styleClass="inputval" size="5" onblur="calc()" value="#{productShopView.cash}">
							   <f:ajax render="@form" event="valueChange" />
						</h:inputText> -->
						<input type="text" class="inputval" value="" size="5" onblur="calc()" />

						<br />
						<h:outputLabel value="#{i18n['shop.cashback']}" />
						<input id="returnval" type="text" size="5" value="0" />
						<input type="button" value="#{i18n['shop.calcsubtotal']}" onclick="calc()" />
						<br />
						<h:outputLabel value="#{i18n['shop.']}" />
						<h:outputText value=" #{productShopView.accountBalance}">
							<f:convertNumber />
						</h:outputText>


						<h:commandButton action="#{productShopView.buyCash()}" value="#{i18n['shop.buyCash']}" />
						<h:commandButton action="#{productShopView.buyCredit()}" onclick="return confirm('#{i18n['shop.confirmCreditBuy']}');" value="#{i18n['shop.buyCredit']}" />

					</h:panelGroup>

				</h:panelGrid>

				<h:outputScript library="primefaces" name="jquery/jquery.js" />

			</h:form>
			<script>
				var blipSnd = new Audio(
						"#{request.contextPath}/resources/media/blip.mp3")

				$(function() {
					$("#shoppingcartform\\:barcode").focus();

				});
				
				function blip() {
					blipSnd.play();
				}

				function calc() {
					$("#returnval").val($(".inputval").val() - $(".shoptotal").text().replace(",","."));
				}

				function barcodeReadEvent(data) {
					if (data.status == "success") {
						$("#shoppingcartform\\:barcode").focus();
					}
				}
			</script>
		</ui:define>


	</ui:composition>

</h:body>
</html>