|
Added: ofbiz/trunk/specialpurpose/webpos/script/org/ofbiz/webpos/event/CartEvents.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/webpos/script/org/ofbiz/webpos/event/CartEvents.xml?rev=1125951&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/webpos/script/org/ofbiz/webpos/event/CartEvents.xml (added) +++ ofbiz/trunk/specialpurpose/webpos/script/org/ofbiz/webpos/event/CartEvents.xml Sun May 22 13:11:17 2011 @@ -0,0 +1,467 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> +<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd"> + <simple-method method-name="setPartyToCart" short-description="Set party to cart" login-required="true"> + <clear-field field="posTerminalId"/> + <call-class-method class-name="org.ofbiz.webpos.WebPosEvents" method-name="getWebPosSession" ret-field="webPosSession"> + <field field="request" type="javax.servlet.http.HttpServletRequest"/> + <field field="posTerminalId" type="String"/> + </call-class-method> + <if-not-empty field="webPosSession"> + <call-object-method obj-field="webPosSession" method-name="getCurrentTransaction" ret-field="webPosTransaction"/> + <check-errors/> + <call-object-method obj-field="webPosSession" method-name="getCart" ret-field="cart"/> + <check-errors/> + <clear-field field="contactMechId"/> + <if-not-empty field="cart"> + <set field="delegator" from-field="parameters.delegator"/> + <set field="partyId" from-field="parameters.partyId"/> + <set field="showOld" value="false" type="Boolean"/> + <call-class-method class-name="org.ofbiz.party.contact.ContactMechWorker" method-name="getPartyContactMechValueMaps" ret-field="partyContactMechValueMaps"> + <field field="delegator" type="org.ofbiz.entity.Delegator"/> + <field field="partyId" type="String"/> + <field field="showOld" type="boolean"/> + </call-class-method> + <if-not-empty field="partyContactMechValueMaps"> + <iterate list="partyContactMechValueMaps" entry="partyContactMechValueMap"> + <set field="contactMech" from-field="partyContactMechValueMap.contactMech"/> + <set field="partyContactMechPurposes" from-field="partyContactMechValueMap.partyContactMechPurposes"/> + <if-not-empty field="partyContactMechPurposes"> + <iterate list="partyContactMechPurposes" entry="partyContactMechPurpose"> + <if-compare-field field="partyContactMechPurpose.contactMechPurposeTypeId" operator="equals" to-field="parameters.contactMechPurposeTypeId" type="String"> + <if-compare-field field="partyContactMechPurpose.contactMechId" operator="equals" to-field="parameters.contactMechId" type="String"> + <set field="contactMechId" from-field="partyContactMechPurpose.contactMechId"/> + </if-compare-field> + </if-compare-field> + </iterate> + </if-not-empty> + </iterate> + </if-not-empty> + <if-empty field="contactMechId"> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosBillingOrShippingLocationMissing"/></add-error> + <check-errors/> + <else> + <call-object-method obj-field="webPosSession" method-name="getUserLogin" ret-field="userLogin"/> + <call-object-method obj-field="webPosSession" method-name="getDispatcher" ret-field="dispatcher"/> + <call-object-method obj-field="cart" method-name="setUserLogin"> + <field field="userLogin" type="org.ofbiz.entity.GenericValue"/> + <field field="dispatcher" type="org.ofbiz.service.LocalDispatcher"/> + </call-object-method> + <set field="contactMechPurposeTypeId" from-field="parameters.contactMechPurposeTypeId"/> + <call-object-method obj-field="cart" method-name="addContactMech"> + <field field="contactMechPurposeTypeId" type="String"/> + <field field="contactMechId" type="String"/> + </call-object-method> + <if-compare field="contactMechPurposeTypeId" operator="equals" value="SHIPPING_LOCATION"> + <call-object-method obj-field="cart" method-name="setShipToCustomerPartyId"> + <field field="partyId" type="String"/> + </call-object-method> + <else> + <call-object-method obj-field="cart" method-name="setBillToCustomerPartyId"> + <field field="partyId" type="String"/> + </call-object-method> + <call-object-method obj-field="cart" method-name="setPlacingCustomerPartyId"> + <field field="partyId" type="String"/> + </call-object-method> + </else> + </if-compare> + <call-object-method obj-field="webPosTransaction" method-name="calcTax"/> + <check-errors/> + </else> + </if-empty> + </if-not-empty> + <else> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotLoggedIn"/></add-error> + <check-errors/> + </else> + </if-not-empty> + </simple-method> + + <simple-method method-name="addCartItem" short-description="Add Cart Item" login-required="true"> + <clear-field field="posTerminalId"/> + <call-class-method class-name="org.ofbiz.webpos.WebPosEvents" method-name="getWebPosSession" ret-field="webPosSession"> + <field field="request" type="javax.servlet.http.HttpServletRequest"/> + <field field="posTerminalId" type="String"/> + </call-class-method> + <if-not-empty field="webPosSession"> + <call-object-method obj-field="webPosSession" method-name="getCurrentTransaction" ret-field="webPosTransaction"/> + <check-errors/> + <call-class-method class-name="org.ofbiz.order.shoppingcart.ShoppingCartEvents" method-name="addToCart"> + <field field="request" type="javax.servlet.http.HttpServletRequest"/> + <field field="response" type="javax.servlet.http.HttpServletResponse"/> + </call-class-method> + <call-object-method obj-field="webPosTransaction" method-name="calcTax"/> + <check-errors/> + </if-not-empty> + </simple-method> + + <simple-method method-name="updateCartItem" short-description="Update Cart Item" login-required="true"> + <clear-field field="posTerminalId"/> + <call-class-method class-name="org.ofbiz.webpos.WebPosEvents" method-name="getWebPosSession" ret-field="webPosSession"> + <field field="request" type="javax.servlet.http.HttpServletRequest"/> + <field field="posTerminalId" type="String"/> + </call-class-method> + <if-not-empty field="webPosSession"> + <call-object-method obj-field="webPosSession" method-name="getCurrentTransaction" ret-field="webPosTransaction"/> + <check-errors/> + <call-object-method obj-field="webPosSession" method-name="getCart" ret-field="cart"/> + <check-errors/> + <if-not-empty field="cart"> + <set field="cartLineIndex" from-field="parameters.cartLineIndex" type="Integer"/> + <call-object-method obj-field="cart" method-name="findCartItem" ret-field="cartItem"> + <field field="cartLineIndex" type="int"/> + </call-object-method> + <if-not-empty field="cartItem"> + <set field="quantity" from-field="parameters.quantity" type="BigDecimal"/> + <set field="dispatcher" from-field="parameters.dispatcher"/> + <set field="triggerExternalOps" value="true" type="Boolean"/> + <set field="resetShipGroup" value="true" type="Boolean"/> + <set field="updateProductPrice" value="false" type="Boolean"/> + <call-object-method obj-field="cartItem" method-name="setQuantity"> + <field field="quantity" type="BigDecimal"/> + <field field="dispatcher" type="org.ofbiz.service.LocalDispatcher"/> + <field field="cart" type="org.ofbiz.order.shoppingcart.ShoppingCart"/> + <field field="triggerExternalOps" type="boolean"/> + <field field="resetShipGroup" type="boolean"/> + <field field="updateProductPrice" type="boolean"/> + </call-object-method> + <call-object-method obj-field="webPosTransaction" method-name="calcTax"/> + <check-errors/> + </if-not-empty> + </if-not-empty> + <else> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotLoggedIn"/></add-error> + <check-errors/> + </else> + </if-not-empty> + </simple-method> + + <simple-method method-name="deleteCartItem" short-description="Delete Cart Item" login-required="true"> + <clear-field field="posTerminalId"/> + <call-class-method class-name="org.ofbiz.webpos.WebPosEvents" method-name="getWebPosSession" ret-field="webPosSession"> + <field field="request" type="javax.servlet.http.HttpServletRequest"/> + <field field="posTerminalId" type="String"/> + </call-class-method> + <if-not-empty field="webPosSession"> + <call-object-method obj-field="webPosSession" method-name="getCurrentTransaction" ret-field="webPosTransaction"/> + <check-errors/> + <call-object-method obj-field="webPosSession" method-name="getCart" ret-field="cart"/> + <check-errors/> + <if-not-empty field="cart"> + <set field="cartLineIndex" from-field="parameters.cartLineIndex" type="Integer"/> + <set field="dispatcher" from-field="parameters.dispatcher"/> + <call-object-method obj-field="cart" method-name="removeCartItem"> + <field field="cartLineIndex" type="int"/> + <field field="dispatcher" type="org.ofbiz.service.LocalDispatcher"/> + </call-object-method> + <call-object-method obj-field="webPosTransaction" method-name="calcTax"/> + <check-errors/> + </if-not-empty> + <else> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotLoggedIn"/></add-error> + <check-errors/> + </else> + </if-not-empty> + </simple-method> + + <simple-method method-name="getProductAndPrice" short-description="Get Product And Price" login-required="true"> + <entity-one entity-name="Product" value-field="product"> + <field-map field-name="productId" from-field="parameters.productId"/> + </entity-one> + <if-empty field="product"> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosCannotFindProduct"/></add-error> + <check-errors/> + <else> + <call-bsh> + <![CDATA[ + webPosSession = org.ofbiz.webpos.WebPosEvents.getWebPosSession(request, null); + if (webPosSession != null) { + parameters.put("webPosSession", webPosSession); + parameters.put("productStoreId", org.ofbiz.product.store.ProductStoreWorker.getProductStoreId(request)); + parameters.put("catalogId", org.ofbiz.product.catalog.CatalogWorker.getCurrentCatalogId(request)); + parameters.put("webSiteId", org.ofbiz.product.catalog.CatalogWorker.getWebSiteId(request)); + session = request.getSession(); + parameters.put("autoUserLogin", session.getAttribute("autoUserLogin")); + cart = webPosSession.getCart(); + if (cart != null) { + parameters.put("cart", cart); + parameters.put("currencyId", cart.getCurrency()); + parameters.put("agreementId", cart.getAgreementId()); + parameters.put("partyId", cart.getPartyId()); + } + } + ]]> + </call-bsh> + <if-not-empty field="parameters.webPosSession"> + <if-not-empty field="parameters.cart"> + <set field="priceContext.product" from-field="product"/> + <set field="priceContext.prodCatalogId" from-field="parameters.catalogId"/> + <set field="priceContext.currencyUomId" from-field="parameters.currencyId"/> + <set field="priceContext.autoUserLogin" from-field="parameters.autoUserLogin"/> + <set field="priceContext.webSiteId" from-field="parameters.webSiteId"/> + <set field="priceContext.productStoreId" from-field="parameters.productStoreId"/> + <set field="priceContext.checkIncludeVat" value="Y"/> + <set field="priceContext.agreementId" from-field="parameters.agreementId"/> + <set field="priceContext.partyId" from-field="parameters.partyId"/> + <call-service service-name="calculateProductPrice" in-map-name="priceContext"> + <result-to-field result-name="price" field="price"/> + </call-service> + <field-to-request field="price" request-name="price"/> + <field-to-request field="parameters.currencyId" request-name="currencyUomId"/> + <field-to-request field="product" request-name="product"/> + </if-not-empty> + </if-not-empty> + </else> + </if-empty> + </simple-method> + + <simple-method method-name="getFormattedAmount" short-description="Get Formatted Amount" login-required="true"> + <set field="amount" from-field="parameters.amount" type="BigDecimal" default-value="0"/> + <set field="isoCode" from-field="parameters.currencyId" type="String"/> + <set field="maximumFractionDigits" value="2" type="Integer"/> + <call-class-method class-name="org.ofbiz.base.util.UtilFormatOut" method-name="formatCurrency" ret-field="formattedAmount"> + <field field="amount" type="BigDecimal"/> + <field field="isoCode" type="String"/> + <field field="locale" type="Locale"/> + <field field="maximumFractionDigits" type="int"/> + </call-class-method> + <field-to-request field="formattedAmount" request-name="formattedAmount"/> + </simple-method> + + <simple-method method-name="getFormattedProductFeaturePrice" short-description="Get Formatted Product Feature Price" login-required="true"> + <entity-and entity-name="ProductFeaturePrice" list="productFeaturePrices" filter-by-date="true"> + <field-map field-name="productFeatureId" from-field="parameters.productFeatureId"/> + <field-map field-name="productPriceTypeId" from-field="parameters.productPriceTypeId"/> + <field-map field-name="currencyUomId" from-field="parameters.currencyUomId"/> + </entity-and> + <if-not-empty field="productFeaturePrices"> + <first-from-list entry="productFeaturePrice" list="productFeaturePrices"/> + <set field="amount" from-field="productFeaturePrice.price" type="BigDecimal" default-value="0"/> + <set field="isoCode" from-field="productFeaturePrice.currencyUomId" type="String"/> + <set field="maximumFractionDigits" value="2" type="Integer"/> + <call-class-method class-name="org.ofbiz.base.util.UtilFormatOut" method-name="formatCurrency" ret-field="formattedFeaturePrice"> + <field field="amount" type="BigDecimal"/> + <field field="isoCode" type="String"/> + <field field="locale" type="Locale"/> + <field field="maximumFractionDigits" type="int"/> + </call-class-method> + <field-to-request field="formattedFeaturePrice" request-name="formattedFeaturePrice"/> + </if-not-empty> + </simple-method> + + <simple-method method-name="removeSalesRep" short-description="Remove Sales Rep from cart" login-required="true"> + <clear-field field="posTerminalId"/> + <call-class-method class-name="org.ofbiz.webpos.WebPosEvents" method-name="getWebPosSession" ret-field="webPosSession"> + <field field="request" type="javax.servlet.http.HttpServletRequest"/> + <field field="posTerminalId" type="String"/> + </call-class-method> + <if-not-empty field="webPosSession"> + <call-object-method obj-field="webPosSession" method-name="getCart" ret-field="cart"/> + <check-errors/> + <if-not-empty field="cart"> + <call-object-method obj-field="cart" method-name="getAdditionalPartyRoleMap" ret-field="partyRoles"/> + <check-errors/> + <set field="roleTypeId" value="SALES_REP"/> + <call-object-method obj-field="partyRoles" method-name="get" ret-field="partyRole"> + <field field="roleTypeId" type="Object"/> + </call-object-method> + <check-errors/> + <call-object-method obj-field="partyRole" method-name="size" ret-field="partyRoleSize"/> + <check-errors/> + <if-compare field="partyRoleSize" operator="less-equals" value="1" type="Integer"> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosSelectOneSalesRep"/></add-error> + <check-errors/> + <else> + <set field="partyId" from-field="parameters.partyId"/> + <set field="roleTypeId" value="SALES_REP"/> + <call-object-method obj-field="cart" method-name="removeAdditionalPartyRole"> + <field field="partyId" type="String"/> + <field field="roleTypeId" type="String"/> + </call-object-method> + </else> + </if-compare> + </if-not-empty> + <else> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotLoggedIn"/></add-error> + <check-errors/> + </else> + </if-not-empty> + </simple-method> + + <simple-method method-name="addSalesRep" short-description="Add Sales Rep to cart" login-required="true"> + <clear-field field="posTerminalId"/> + <call-class-method class-name="org.ofbiz.webpos.WebPosEvents" method-name="getWebPosSession" ret-field="webPosSession"> + <field field="request" type="javax.servlet.http.HttpServletRequest"/> + <field field="posTerminalId" type="String"/> + </call-class-method> + <if-not-empty field="webPosSession"> + <call-object-method obj-field="webPosSession" method-name="getCart" ret-field="cart"/> + <check-errors/> + <if-not-empty field="cart"> + <set field="partyId" from-field="parameters.partyId"/> + <set field="roleTypeId" value="SALES_REP"/> + <call-object-method obj-field="cart" method-name="addAdditionalPartyRole"> + <field field="partyId" type="String"/> + <field field="roleTypeId" type="String"/> + </call-object-method> + </if-not-empty> + <else> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotLoggedIn"/></add-error> + <check-errors/> + </else> + </if-not-empty> + </simple-method> + + <simple-method method-name="getShipMethods" short-description="Get shipping methods" login-required="false"> + <clear-field field="posTerminalId"/> + <call-class-method class-name="org.ofbiz.webpos.WebPosEvents" method-name="getWebPosSession" ret-field="webPosSession"> + <field field="request" type="javax.servlet.http.HttpServletRequest"/> + <field field="posTerminalId" type="String"/> + </call-class-method> + <if-not-empty field="webPosSession"> + <call-object-method obj-field="webPosSession" method-name="getCart" ret-field="shoppingCart"/> + <check-errors/> + <set field="dispatcher" from-field="parameters.dispatcher" type="Object"/> + <call-bsh> + <![CDATA[ + import org.ofbiz.order.shoppingcart.shipping.ShippingEstimateWrapper; + shippingEstWpr = ShippingEstimateWrapper.getWrapper(dispatcher, shoppingCart, 0); + parameters.put("shippingEstWpr", shippingEstWpr); + ]]> + </call-bsh> + <set field="shippingEstWpr" from-field="parameters.shippingEstWpr"/> + <call-object-method obj-field="shippingEstWpr" method-name="getShippingMethods" ret-field="carrierShipmentMethodList"/> + <call-object-method obj-field="shoppingCart" method-name="getShipmentMethodTypeId" ret-field="shipmentMethodTypeId"/> + <call-object-method obj-field="shoppingCart" method-name="getCarrierPartyId" ret-field="carrierPartyId"/> + <call-object-method obj-field="shoppingCart" method-name="getCurrency" ret-field="currency"/> + <if-not-empty field="shipmentMethodTypeId"> + <if-not-empty field="carrierPartyId"> + <set field="chosenShippingMethod" value="${shipmentMethodTypeId}@${carrierPartyId}"/> + </if-not-empty> + </if-not-empty> + <iterate list="carrierShipmentMethodList" entry="carrierShipmentMethod"> + <call-object-method obj-field="shippingEstWpr" method-name="getShippingEstimate" ret-field="shippingEst"> + <field field="carrierShipmentMethod" type="org.ofbiz.entity.GenericValue"/> + </call-object-method> + <if-empty field="shippingEst"> + <set field="shippingEst" value="-1" type="Integer"/> + </if-empty> + <set field="negValue" value="-1" type="Integer"/> + <set field="shippingMethod" value="${carrierShipmentMethod.shipmentMethodTypeId}@${carrierShipmentMethod.partyId}"/> + <if-compare-field field="shippingEst" operator="greater" to-field="negValue"> + <set field="shippingDesc" value="${carrierShipmentMethod.partyId} ${carrierShipmentMethod.description} - ${shippingEst?currency(${currency})}"/> + <else> + <set field="shippingDesc" value="${carrierShipmentMethod.partyId} ${carrierShipmentMethod.description} - ${uiLabelMap.OrderCalculatedOffline}"/> + </else> + </if-compare-field> + <set field="shippingOptionMap.shippingMethod" from-field="shippingMethod"/> + <set field="shippingOptionMap.shippingDesc" from-field="shippingDesc"/> + <if-not-empty field="carrierShipmentMethod.productStoreShipMethId"> + <set field="shippingOptionMap.productStoreShipMethId" from-field="carrierShipmentMethod.productStoreShipMethId"/> + </if-not-empty> + <field-to-list field="shippingOptionMap" list="shippingOptions"/> + <clear-field field="shippingOptionMap"/> + </iterate> + <set field="parameters.shippingOptions" from-field="shippingOptions"/> + <field-to-request field="parameters.shippingOptions" request-name="shippingOptions"/> + </if-not-empty> + </simple-method> + + <simple-method method-name="setShipMethod" short-description="Set ship method" login-required="false"> + <clear-field field="posTerminalId"/> + <call-class-method class-name="org.ofbiz.webpos.WebPosEvents" method-name="getWebPosSession" ret-field="webPosSession"> + <field field="request" type="javax.servlet.http.HttpServletRequest"/> + <field field="posTerminalId" type="String"/> + </call-class-method> + <if-not-empty field="webPosSession"> + <call-object-method obj-field="webPosSession" method-name="getCart" ret-field="shoppingCart"/> + <check-errors/> + <call-object-method obj-field="webPosSession" method-name="getCurrentTransaction" ret-field="webPosTransaction"/> + <check-errors/> + <call-bsh> + <![CDATA[ + shippingMethod = parameters.get("shipMethod"); + if(shippingMethod != null) { + shipmentMethodTypeId = shippingMethod.substring(0, shippingMethod.indexOf("@")); + if (shippingMethod.indexOf(":") != -1) { + carrierPartyId = shippingMethod.substring(shippingMethod.indexOf("@")+1, shippingMethod.indexOf(":")); + productStoreShipMethId = shippingMethod.substring(shippingMethod.indexOf(":")+1); + parameters.put("productStoreShipMethId", productStoreShipMethId); + } else { + carrierPartyId = shippingMethod.substring(shippingMethod.indexOf("@")+1); + } + parameters.put("shipmentMethodTypeId", shipmentMethodTypeId); + parameters.put("carrierPartyId", carrierPartyId); + } + ]]> + </call-bsh> + <set field="shipmentMethodTypeId" from-field="parameters.shipmentMethodTypeId"/> + <set field="carrierPartyId" from-field="parameters.carrierPartyId"/> + <set field="productStoreShipMethId" from-field="parameters.productStoreShipMethId"/> + <entity-one entity-name="CarrierAndShipmentMethod" value-field="shipmentMethod"> + <field-map field-name="shipmentMethodTypeId" from-field="shipmentMethodTypeId"/> + <field-map field-name="partyId" from-field="carrierPartyId"/> + <field-map field-name="roleTypeId" value="CARRIER"/> + </entity-one> + <field-to-request field="shipmentMethod.description" request-name="shippingDescription"/> + <call-object-method obj-field="shoppingCart" method-name="setShipmentMethodTypeId"> + <field field="shipmentMethodTypeId"/> + </call-object-method> + <call-object-method obj-field="shoppingCart" method-name="setCarrierPartyId"> + <field field="carrierPartyId"/> + </call-object-method> + <call-object-method obj-field="shoppingCart" method-name="setProductStoreShipMethId"> + <field field="productStoreShipMethId"/> + </call-object-method> + <call-object-method obj-field="shoppingCart" method-name="getCurrency" ret-field="isoCode"/> + <set field="dispatcher" from-field="parameters.dispatcher" type="Object"/> + <set field="delegator" from-field="parameters.delegator" type="Object"/> + <set field="locale" from-field="parameters.locale" type="Object"/> + <call-bsh> + <![CDATA[ + Map shipCost = org.ofbiz.order.shoppingcart.shipping.ShippingEvents.getShipGroupEstimate(dispatcher, delegator, shoppingCart, 0); + shippingTotal = shipCost.get("shippingTotal"); + if (shippingTotal == null) { + shippingTotal = BigDecimal.ZERO; + } + shoppingCart.setItemShipGroupEstimate(shippingTotal, 0); + parameters.put("shippingTotal", org.ofbiz.base.util.UtilFormatOut.formatCurrency(shippingTotal, isoCode, locale)); + + // Calculate and add the tax adjustments + webPosTransaction.calcTax(); + + salesTax = shoppingCart.getTotalSalesTax(); + totalSalesTax = org.ofbiz.base.util.UtilFormatOut.formatCurrency(salesTax, isoCode, locale); + parameters.put("totalSalesTax", totalSalesTax); + + cartGrandTotal = org.ofbiz.base.util.UtilFormatOut.formatCurrency(shoppingCart.getGrandTotal(), isoCode, locale); + parameters.put("cartGrandTotal", cartGrandTotal); + ]]> + </call-bsh> + <call-class-method method-name="doPromotions" class-name="org.ofbiz.order.shoppingcart.product.ProductPromoWorker"> + <field field="shoppingCart" type="org.ofbiz.order.shoppingcart.ShoppingCart"/> + <field field="dispatcher" type="org.ofbiz.service.LocalDispatcher"/> + </call-class-method> + <field-to-request field="parameters.shippingTotal" request-name="shippingTotal"/> + <field-to-request field="parameters.cartGrandTotal" request-name="cartGrandTotal"/> + <field-to-request field="parameters.totalSalesTax" request-name="totalSalesTax"/> + </if-not-empty> + </simple-method> +</simple-methods> \ No newline at end of file Propchange: ofbiz/trunk/specialpurpose/webpos/script/org/ofbiz/webpos/event/CartEvents.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/specialpurpose/webpos/script/org/ofbiz/webpos/event/CartEvents.xml ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/trunk/specialpurpose/webpos/script/org/ofbiz/webpos/event/CartEvents.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: ofbiz/trunk/specialpurpose/webpos/script/org/ofbiz/webpos/event/CustomerEvents.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/webpos/script/org/ofbiz/webpos/event/CustomerEvents.xml?rev=1125951&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/webpos/script/org/ofbiz/webpos/event/CustomerEvents.xml (added) +++ ofbiz/trunk/specialpurpose/webpos/script/org/ofbiz/webpos/event/CustomerEvents.xml Sun May 22 13:11:17 2011 @@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. +--> +<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd"> + <simple-method method-name="createUpdateAddress" short-description="Create/Update party address" login-required="true"> + <set-service-fields service-name="createUpdatePerson" map="parameters" to-map="createUpdatePersonMap"/> + <call-service service-name="createUpdatePerson" in-map-name="createUpdatePersonMap"> + <result-to-field result-name="partyId" field="parameters.partyId"/> + </call-service> + <if-empty field="parameters.contactMechId"> + <set-service-fields service-name="createPostalAddressAndPurposes" map="parameters" to-map="createPostalAddressAndPurposesMap"/> + <call-service service-name="createPostalAddressAndPurposes" in-map-name="createPostalAddressAndPurposesMap"> + <result-to-field result-name="contactMechId" field="parameters.contactMechId"/> + </call-service> + <else> + <set-service-fields service-name="updatePostalAddressAndPurposes" map="parameters" to-map="updatePostalAddressAndPurposesMap"/> + <call-service service-name="updatePostalAddressAndPurposes" in-map-name="updatePostalAddressAndPurposesMap"/> + </else> + </if-empty> + </simple-method> +</simple-methods> \ No newline at end of file Propchange: ofbiz/trunk/specialpurpose/webpos/script/org/ofbiz/webpos/event/CustomerEvents.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/specialpurpose/webpos/script/org/ofbiz/webpos/event/CustomerEvents.xml ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/trunk/specialpurpose/webpos/script/org/ofbiz/webpos/event/CustomerEvents.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Modified: ofbiz/trunk/specialpurpose/webpos/script/org/ofbiz/webpos/event/ManagerEvents.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/webpos/script/org/ofbiz/webpos/event/ManagerEvents.xml?rev=1125951&r1=1125950&r2=1125951&view=diff ============================================================================== --- ofbiz/trunk/specialpurpose/webpos/script/org/ofbiz/webpos/event/ManagerEvents.xml (original) +++ ofbiz/trunk/specialpurpose/webpos/script/org/ofbiz/webpos/event/ManagerEvents.xml Sun May 22 13:11:17 2011 @@ -19,243 +19,223 @@ under the License. --> <simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd"> <simple-method method-name="openTerminal" short-description="Open Terminal" login-required="true"> - <if-not-empty field="parameters.confirm"> - <set field="posTerminalId" value="null"/> - <call-class-method class-name="org.ofbiz.webpos.WebPosEvents" method-name="getWebPosSession" ret-field="webPosSession"> - <field field="request" type="javax.servlet.http.HttpServletRequest"/> - <field field="posTerminalId" type="String"/> - </call-class-method> - <if-not-empty field="webPosSession"> - <call-object-method obj-field="webPosSession" method-name="isManagerLoggedIn" ret-field="mgrLoggedIn"/> - <if-compare field="mgrLoggedIn" operator="equals" value="true" type="String"> - <call-object-method obj-field="webPosSession" method-name="getCurrentTransaction" ret-field="webPosTransaction"/> - <check-errors/> - <call-object-method obj-field="webPosTransaction" method-name="isOpen" ret-field="isOpen"/> - <if-compare field="isOpen" operator="equals" value="false"> - <set field="startingDrawerAmount" from-field="parameters.startingDrawerAmount" type="String"/> - <set field="allowNegative" value="false" type="Boolean"/> - <set field="allowPositive" value="true" type="Boolean"/> - <set field="minDecimal" value="0" type="Integer"/> - <set field="maxDecimal" value="3" type="Integer"/> - <call-class-method class-name="org.ofbiz.base.util.UtilValidate" method-name="isDouble" ret-field="isDouble"> - <field field="startingDrawerAmount" type="String"/> - <field field="allowNegative" type="boolean"/> - <field field="allowPositive" type="boolean"/> - <field field="minDecimal" type="int"/> - <field field="maxDecimal" type="int"/> - </call-class-method> - <if-compare field="isDouble" operator="equals" value="true"> - <make-value value-field="terminalState" entity-name="PosTerminalState"/> - <call-object-method obj-field="webPosSession" method-name="getId" ret-field="terminalState.posTerminalId"/> - <call-class-method class-name="org.ofbiz.base.util.UtilDateTime" method-name="nowTimestamp" ret-field="terminalState.openedDate"/> - <call-object-method obj-field="webPosSession" method-name="getUserLoginId" ret-field="terminalState.openedByUserLoginId"/> - <call-object-method obj-field="webPosTransaction" method-name="getTransactionId" ret-field="terminalState.startingTxId"/> - <set from-field="parameters.startingDrawerAmount" field="terminalState.startingDrawerAmount"/> - <create-value value-field="terminalState"/> - <check-errors/> - <log level="info" message="Created PosTerminalState ${terminalState.startingTxId}"/> - <else> - <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerOpenTerminalDrawingAmountNotValid"/></add-error> - <check-errors/> - </else> - </if-compare> + <clear-field field="posTerminalId"/> + <call-class-method class-name="org.ofbiz.webpos.WebPosEvents" method-name="getWebPosSession" ret-field="webPosSession"> + <field field="request" type="javax.servlet.http.HttpServletRequest"/> + <field field="posTerminalId" type="String"/> + </call-class-method> + <if-not-empty field="webPosSession"> + <call-object-method obj-field="webPosSession" method-name="isManagerLoggedIn" ret-field="mgrLoggedIn"/> + <if-compare field="mgrLoggedIn" operator="equals" value="true" type="String"> + <call-object-method obj-field="webPosSession" method-name="getCurrentTransaction" ret-field="webPosTransaction"/> + <check-errors/> + <call-object-method obj-field="webPosTransaction" method-name="isOpen" ret-field="isOpen"/> + <if-compare field="isOpen" operator="equals" value="false"> + <set field="startingDrawerAmountStr" from-field="parameters.startingDrawerAmount" type="String"/> + <log message="startingDrawerAmountStr: ${startingDrawerAmountStr}" level="always"/> + <call-class-method class-name="org.ofbiz.base.util.UtilNumber" method-name="stringToBigDecimal" ret-field="startingDrawerAmount"> + <field field="startingDrawerAmountStr" type="String"/> + <field field="locale" type="java.util.Locale"/> + </call-class-method> + <if-not-empty field="startingDrawerAmount"> + <make-value value-field="terminalState" entity-name="PosTerminalState"/> + <call-object-method obj-field="webPosSession" method-name="getId" ret-field="terminalState.posTerminalId"/> + <call-class-method class-name="org.ofbiz.base.util.UtilDateTime" method-name="nowTimestamp" ret-field="terminalState.openedDate"/> + <call-object-method obj-field="webPosSession" method-name="getUserLoginId" ret-field="terminalState.openedByUserLoginId"/> + <call-object-method obj-field="webPosTransaction" method-name="getTransactionId" ret-field="terminalState.startingTxId"/> + <set from-field="startingDrawerAmount" field="terminalState.startingDrawerAmount" type="BigDecimal"/> + <create-value value-field="terminalState"/> + <check-errors/> + <log level="info" message="Created PosTerminalState ${terminalState.startingTxId}"/> <else> - <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerTerminalAlreadyOpened"/></add-error> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerOpenTerminalDrawingAmountNotValid"/></add-error> <check-errors/> </else> - </if-compare> + </if-not-empty> <else> - <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotManagerLoggedIn"/></add-error> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerTerminalAlreadyOpened"/></add-error> <check-errors/> </else> </if-compare> <else> - <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotLoggedIn"/></add-error> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotManagerLoggedIn"/></add-error> <check-errors/> </else> - </if-not-empty> + </if-compare> + <else> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotLoggedIn"/></add-error> + <check-errors/> + </else> </if-not-empty> </simple-method> - + <simple-method method-name="closeTerminal" short-description="Close Terminal" login-required="true"> - <if-not-empty field="parameters.confirm"> - <set field="posTerminalId" value="null"/> - <call-class-method class-name="org.ofbiz.webpos.WebPosEvents" method-name="getWebPosSession" ret-field="webPosSession"> - <field field="request" type="javax.servlet.http.HttpServletRequest"/> - <field field="posTerminalId" type="String"/> - </call-class-method> - <if-not-empty field="webPosSession"> - <call-object-method obj-field="webPosSession" method-name="isManagerLoggedIn" ret-field="mgrLoggedIn"/> - <if-compare field="mgrLoggedIn" operator="equals" value="true"> - <call-object-method obj-field="webPosSession" method-name="getCurrentTransaction" ret-field="webPosTransaction"/> - <check-errors/> - <call-object-method obj-field="webPosTransaction" method-name="getTerminalState" ret-field="terminalState"/> - <if-not-empty field="terminalState"> - <set field="amount" from-field="parameters.endingDrawerCashAmount" type="String"/> - <set field="allowNegative" value="false" type="Boolean"/> - <set field="allowPositive" value="true" type="Boolean"/> - <set field="minDecimal" value="0" type="Integer"/> - <set field="maxDecimal" value="3" type="Integer"/> - <call-class-method class-name="org.ofbiz.base.util.UtilValidate" method-name="isDouble" ret-field="isDouble"> - <field field="amount" type="String"/> - <field field="allowNegative" type="boolean"/> - <field field="allowPositive" type="boolean"/> - <field field="minDecimal" type="int"/> - <field field="maxDecimal" type="int"/> + <clear-field field="posTerminalId"/> + <call-class-method class-name="org.ofbiz.webpos.WebPosEvents" method-name="getWebPosSession" ret-field="webPosSession"> + <field field="request" type="javax.servlet.http.HttpServletRequest"/> + <field field="posTerminalId" type="String"/> + </call-class-method> + <if-not-empty field="webPosSession"> + <call-object-method obj-field="webPosSession" method-name="isManagerLoggedIn" ret-field="mgrLoggedIn"/> + <if-compare field="mgrLoggedIn" operator="equals" value="true"> + <call-object-method obj-field="webPosSession" method-name="getCurrentTransaction" ret-field="webPosTransaction"/> + <check-errors/> + <call-object-method obj-field="webPosTransaction" method-name="getTerminalState" ret-field="terminalState"/> + <if-not-empty field="terminalState"> + <set field="endingDrawerCashAmountStr" from-field="parameters.endingDrawerCashAmount" type="String"/> + <if-not-empty field="endingDrawerCashAmountStr"> + <call-class-method class-name="org.ofbiz.base.util.UtilNumber" method-name="stringToBigDecimal" ret-field="endingDrawerCashAmount"> + <field field="endingDrawerCashAmountStr" type="String"/> + <field field="locale" type="java.util.Locale"/> </call-class-method> - <if-compare field="isDouble" operator="equals" value="false"> + <if-empty field="endingDrawerCashAmount"> <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerCloseTerminalCashAmountNotValid"/></add-error> <check-errors/> - </if-compare> - <set field="amount" from-field="parameters.endingDrawerCheckAmount" type="String"/> - <call-class-method class-name="org.ofbiz.base.util.UtilValidate" method-name="isDouble" ret-field="isDouble"> - <field field="amount" type="String"/> - <field field="allowNegative" type="boolean"/> - <field field="allowPositive" type="boolean"/> - <field field="minDecimal" type="int"/> - <field field="maxDecimal" type="int"/> + </if-empty> + </if-not-empty> + <set field="endingDrawerCheckAmountStr" from-field="parameters.endingDrawerCheckAmount" type="String"/> + <if-not-empty field="endingDrawerCheckAmountStr"> + <call-class-method class-name="org.ofbiz.base.util.UtilNumber" method-name="stringToBigDecimal" ret-field="endingDrawerCheckAmount"> + <field field="endingDrawerCheckAmountStr" type="String"/> + <field field="locale" type="java.util.Locale"/> </call-class-method> - <if-compare field="isDouble" operator="equals" value="false"> + <if-empty field="endingDrawerCheckAmount"> <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerCloseTerminalCheckAmountNotValid"/></add-error> <check-errors/> - </if-compare> - <set field="amount" from-field="parameters.endingDrawerCcAmount" type="String"/> - <call-class-method class-name="org.ofbiz.base.util.UtilValidate" method-name="isDouble" ret-field="isDouble"> - <field field="amount" type="String"/> - <field field="allowNegative" type="boolean"/> - <field field="allowPositive" type="boolean"/> - <field field="minDecimal" type="int"/> - <field field="maxDecimal" type="int"/> + </if-empty> + </if-not-empty> + <set field="endingDrawerCcAmountStr" from-field="parameters.endingDrawerCcAmount" type="String"/> + <if-not-empty field="endingDrawerCcAmountStr"> + <call-class-method class-name="org.ofbiz.base.util.UtilNumber" method-name="stringToBigDecimal" ret-field="endingDrawerCcAmount"> + <field field="endingDrawerCcAmountStr" type="String"/> + <field field="locale" type="java.util.Locale"/> </call-class-method> - <if-compare field="isDouble" operator="equals" value="false"> + <if-empty field="endingDrawerCcAmount"> <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerCloseTerminalCcAmountNotValid"/></add-error> <check-errors/> - </if-compare> - <set field="amount" from-field="parameters.endingDrawerGcAmount" type="String"/> - <call-class-method class-name="org.ofbiz.base.util.UtilValidate" method-name="isDouble" ret-field="isDouble"> - <field field="amount" type="String"/> - <field field="allowNegative" type="boolean"/> - <field field="allowPositive" type="boolean"/> - <field field="minDecimal" type="int"/> - <field field="maxDecimal" type="int"/> + </if-empty> + </if-not-empty> + <set field="endingDrawerGcAmountStr" from-field="parameters.endingDrawerGcAmount" type="String"/> + <if-not-empty field="endingDrawerGcAmountStr"> + <call-class-method class-name="org.ofbiz.base.util.UtilNumber" method-name="stringToBigDecimal" ret-field="endingDrawerGcAmount"> + <field field="endingDrawerGcAmountStr" type="String"/> + <field field="locale" type="java.util.Locale"/> </call-class-method> - <if-compare field="isDouble" operator="equals" value="false"> + <if-empty field="endingDrawerGcAmount"> <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerCloseTerminalGcAmounNotValidt"/></add-error> <check-errors/> - </if-compare> - <set field="amount" from-field="parameters.endingDrawerOtherAmount" type="String"/> - <call-class-method class-name="org.ofbiz.base.util.UtilValidate" method-name="isDouble" ret-field="isDouble"> - <field field="amount" type="String"/> - <field field="allowNegative" type="boolean"/> - <field field="allowPositive" type="boolean"/> - <field field="minDecimal" type="int"/> - <field field="maxDecimal" type="int"/> + </if-empty> + </if-not-empty> + <set field="endingDrawerOtherAmountStr" from-field="parameters.endingDrawerOtherAmount" type="String"/> + <if-not-empty field="endingDrawerOtherAmountStr"> + <call-class-method class-name="org.ofbiz.base.util.UtilNumber" method-name="stringToBigDecimal" ret-field="endingDrawerOtherAmount"> + <field field="endingDrawerOtherAmountStr" type="String"/> + <field field="locale" type="java.util.Locale"/> </call-class-method> - <if-compare field="isDouble" operator="equals" value="false"> + <if-empty field="endingDrawerOtherAmount"> <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerCloseTerminalOtherAmountNotValid"/></add-error> <check-errors/> - </if-compare> - <call-object-method obj-field="webPosSession" method-name="getUserLoginId" ret-field="terminalState.closedByUserLoginId"/> - <set from-field="parameters.endingDrawerCashAmount" field="terminalState.actualEndingCash"/> - <set from-field="parameters.endingDrawerCheckAmount" field="terminalState.actualEndingCheck"/> - <set from-field="parameters.endingDrawerCcAmount" field="terminalState.actualEndingCc"/> - <set from-field="parameters.endingDrawerGcAmount" field="terminalState.actualEndingGc"/> - <set from-field="parameters.endingDrawerOtherAmount" field="terminalState.actualEndingOther"/> - <call-object-method obj-field="webPosTransaction" method-name="getTransactionId" ret-field="terminalState.endingTxId"/> - <store-value value-field="terminalState"/> - <check-errors/> - <log level="info" message="Close PosTerminalState ${terminalState.endingTxId}"/> - <else> - <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerTerminalAlreadyClosed"/></add-error> - <check-errors/> - </else> + </if-empty> </if-not-empty> + <call-object-method obj-field="webPosSession" method-name="getUserLoginId" ret-field="terminalState.closedByUserLoginId"/> + <set field="terminalState.actualEndingCash" from-field="endingDrawerCashAmount" type="BigDecimal"/> + <set field="terminalState.actualEndingCheck" from-field="endingDrawerCheckAmount" type="BigDecimal"/> + <set field="terminalState.actualEndingCc" from-field="endingDrawerCcAmount" type="BigDecimal"/> + <set field="terminalState.actualEndingGc" from-field="endingDrawerGcAmount" type="BigDecimal"/> + <set field="terminalState.actualEndingOther" from-field="endingDrawerOtherAmount" type="BigDecimal"/> + <call-class-method class-name="org.ofbiz.base.util.UtilDateTime" method-name="nowTimestamp" ret-field="terminalState.closedDate"/> + <call-object-method obj-field="webPosTransaction" method-name="getTransactionId" ret-field="terminalState.endingTxId"/> + <store-value value-field="terminalState"/> + <check-errors/> + <log level="info" message="Close PosTerminalState ${terminalState.endingTxId}"/> <else> - <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotManagerLoggedIn"/></add-error> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerTerminalAlreadyClosed"/></add-error> <check-errors/> </else> - </if-compare> + </if-not-empty> <else> - <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotLoggedIn"/></add-error> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotManagerLoggedIn"/></add-error> <check-errors/> </else> - </if-not-empty> - <!-- // TODO: missing to call the printTotals and SyncCallbackAdaptor and SecurityEvents.logout(pos) --> + </if-compare> + <else> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotLoggedIn"/></add-error> + <check-errors/> + </else> </if-not-empty> + <!-- // TODO: missing to call the printTotals and SyncCallbackAdaptor and SecurityEvents.logout(pos) --> </simple-method> - + <simple-method method-name="voidOrder" short-description="Void Order" login-required="true"> - <if-not-empty field="parameters.confirm"> - <set field="posTerminalId" value="null"/> - <call-class-method class-name="org.ofbiz.webpos.WebPosEvents" method-name="getWebPosSession" ret-field="webPosSession"> - <field field="request" type="javax.servlet.http.HttpServletRequest"/> - <field field="posTerminalId" type="String"/> - </call-class-method> - <if-not-empty field="webPosSession"> - <call-object-method obj-field="webPosSession" method-name="isManagerLoggedIn" ret-field="mgrLoggedIn"/> - <if-compare field="mgrLoggedIn" operator="equals" value="true"> - <call-object-method obj-field="webPosSession" method-name="getCurrentTransaction" ret-field="webPosTransaction"/> - <check-errors/> - <call-object-method obj-field="webPosTransaction" method-name="getTerminalState" ret-field="terminalState"/> - <if-not-empty field="terminalState"> - <set field="fieldName" value="openedDate" type="String"/> - <call-object-method obj-field="terminalState" method-name="getTimestamp" ret-field="openDate"> + <clear-field field="posTerminalId"/> + <call-class-method class-name="org.ofbiz.webpos.WebPosEvents" method-name="getWebPosSession" ret-field="webPosSession"> + <field field="request" type="javax.servlet.http.HttpServletRequest"/> + <field field="posTerminalId" type="String"/> + </call-class-method> + <if-not-empty field="webPosSession"> + <call-object-method obj-field="webPosSession" method-name="isManagerLoggedIn" ret-field="mgrLoggedIn"/> + <if-compare field="mgrLoggedIn" operator="equals" value="true"> + <call-object-method obj-field="webPosSession" method-name="getCurrentTransaction" ret-field="webPosTransaction"/> + <check-errors/> + <call-object-method obj-field="webPosTransaction" method-name="getTerminalState" ret-field="terminalState"/> + <if-not-empty field="terminalState"> + <set field="fieldName" value="openedDate" type="String"/> + <call-object-method obj-field="terminalState" method-name="getTimestamp" ret-field="openDate"> + <field field="fieldName" type="String"/> + </call-object-method> + <entity-one entity-name="OrderHeader" value-field="orderHeader"> + <field-map field-name="orderId" from-field="parameters.orderId"/> + </entity-one> + <if-not-empty field="orderHeader"> + <set field="fieldName" value="orderDate" type="String"/> + <call-object-method obj-field="orderHeader" method-name="getTimestamp" ret-field="orderDate"> <field field="fieldName" type="String"/> </call-object-method> - <entity-one entity-name="OrderHeader" value-field="orderHeader"> - <field-map field-name="orderId" from-field="parameters.orderId"/> - </entity-one> - <if-not-empty field="orderHeader"> - <set field="fieldName" value="orderDate" type="String"/> - <call-object-method obj-field="orderHeader" method-name="getTimestamp" ret-field="orderDate"> - <field field="fieldName" type="String"/> - </call-object-method> - <call-object-method obj-field="orderDate" method-name="after" ret-field="isAfter"> - <field field="openDate" type="Timestamp"/> + <call-object-method obj-field="orderDate" method-name="after" ret-field="isAfter"> + <field field="openDate" type="Timestamp"/> + </call-object-method> + <if-compare field="isAfter" operator="equals" value="true"> + <call-object-method obj-field="webPosSession" method-name="getDispatcher" ret-field="dispatcher"/> + <set field="returnOrder.orderId" from-field="parameters.orderId"/> + <set field="returnOrder.returnHeaderTypeId" value="CUSTOMER_RETURN"/> + <call-object-method obj-field="webPosSession" method-name="getUserLogin" ret-field="returnOrder.userLogin"/> + <set field="serviceName" value="quickReturnOrder"/> + <call-object-method obj-field="dispatcher" method-name="runSync" ret-field="returnResp"> + <field field="serviceName" type="String"/> + <field field="returnOrder" type="java.util.Map"/> </call-object-method> - <if-compare field="isAfter" operator="equals" value="true"> - <call-object-method obj-field="webPosSession" method-name="getDispatcher" ret-field="dispatcher"/> - <set field="returnOrder.orderId" from-field="parameters.orderId"/> - <set field="returnOrder.returnHeaderTypeId" value="CUSTOMER_RETURN"/> - <call-object-method obj-field="webPosSession" method-name="getUserLogin" ret-field="returnOrder.userLogin"/> - <set field="serviceName" value="quickReturnOrder"/> - <call-object-method obj-field="dispatcher" method-name="runSync" ret-field="returnResp"> - <field field="serviceName" type="String"/> - <field field="returnOrder" type="java.util.Map"/> - </call-object-method> - <check-errors/> - <log level="info" message="Void order ${returnResp}"/> - <else> - <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerVoidOrderNotValidDate"/></add-error> - <check-errors/> - </else> - </if-compare> + <check-errors/> + <log level="info" message="Void order ${returnResp}"/> <else> - <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerVoidOrderNotValidOrderId"/></add-error> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerVoidOrderNotValidDate"/></add-error> <check-errors/> </else> - </if-not-empty> + </if-compare> <else> - <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerVoidOrderTerminalNotOpened"/></add-error> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerVoidOrderNotValidOrderId"/></add-error> <check-errors/> </else> </if-not-empty> <else> - <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotManagerLoggedIn"/></add-error> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerVoidOrderTerminalNotOpened"/></add-error> <check-errors/> </else> - </if-compare> + </if-not-empty> <else> - <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotLoggedIn"/></add-error> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotManagerLoggedIn"/></add-error> <check-errors/> </else> - </if-not-empty> - <!-- // TODO: print void receipt --> + </if-compare> + <else> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotLoggedIn"/></add-error> + <check-errors/> + </else> </if-not-empty> + <!-- // TODO: print void receipt --> </simple-method> - + <simple-method method-name="shutdown" short-description="Shutdown" login-required="true"> - <set field="posTerminalId" value="null"/> + <clear-field field="posTerminalId"/> <call-class-method class-name="org.ofbiz.webpos.WebPosEvents" method-name="getWebPosSession" ret-field="webPosSession"> <field field="request" type="javax.servlet.http.HttpServletRequest"/> <field field="posTerminalId" type="String"/> @@ -276,110 +256,96 @@ under the License. </else> </if-not-empty> </simple-method> - + <simple-method method-name="paidOutAndIn" short-description="Paid Out and In" login-required="true"> - <if-not-empty field="parameters.confirm"> - <set field="posTerminalId" value="null"/> - <call-class-method class-name="org.ofbiz.webpos.WebPosEvents" method-name="getWebPosSession" ret-field="webPosSession"> - <field field="request" type="javax.servlet.http.HttpServletRequest"/> - <field field="posTerminalId" type="String"/> - </call-class-method> - <if-not-empty field="webPosSession"> - <call-object-method obj-field="webPosSession" method-name="isManagerLoggedIn" ret-field="mgrLoggedIn"/> - <if-compare field="mgrLoggedIn" operator="equals" value="true"> - <call-object-method obj-field="webPosSession" method-name="getCurrentTransaction" ret-field="webPosTransaction"/> - <check-errors/> - <call-object-method obj-field="webPosTransaction" method-name="isOpen" ret-field="isOpen"/> - <check-errors/> - <if-compare field="isOpen" operator="equals" value="true"> - <set field="amount" from-field="parameters.amountInOut" type="String"/> - <set field="allowNegative" value="false" type="Boolean"/> - <set field="allowPositive" value="true" type="Boolean"/> - <set field="minDecimal" value="0" type="Integer"/> - <set field="maxDecimal" value="3" type="Integer"/> - <call-class-method class-name="org.ofbiz.base.util.UtilValidate" method-name="isDouble" ret-field="isDouble"> - <field field="amount" type="String"/> - <field field="allowNegative" type="boolean"/> - <field field="allowPositive" type="boolean"/> - <field field="minDecimal" type="int"/> - <field field="maxDecimal" type="int"/> - </call-class-method> - <if-compare field="isDouble" operator="equals" value="true"> - <make-value value-field="internTx" entity-name="PosTerminalInternTx"/> - <call-object-method obj-field="webPosTransaction" method-name="getTerminalLogId" ret-field="internTx.posTerminalLogId"/> - <set field="internTx.paidAmount" from-field="parameters.amountInOut"/> - <set field="internTx.reasonComment" from-field="parameters.reasonCommentInOut"/> - <set field="internTx.reasonEnumId" from-field="parameters.reasonInOut"/> - <create-value value-field="internTx"/> - <set from-field="parameters.type" field="paidInOut"/> - <call-object-method obj-field="webPosTransaction" method-name="paidInOut"> - <field field="paidInOut" type="String"/> - </call-object-method> + <clear-field field="posTerminalId"/> + <call-class-method class-name="org.ofbiz.webpos.WebPosEvents" method-name="getWebPosSession" ret-field="webPosSession"> + <field field="request" type="javax.servlet.http.HttpServletRequest"/> + <field field="posTerminalId" type="String"/> + </call-class-method> + <if-not-empty field="webPosSession"> + <call-object-method obj-field="webPosSession" method-name="isManagerLoggedIn" ret-field="mgrLoggedIn"/> + <if-compare field="mgrLoggedIn" operator="equals" value="true"> + <call-object-method obj-field="webPosSession" method-name="getCurrentTransaction" ret-field="webPosTransaction"/> + <check-errors/> + <call-object-method obj-field="webPosTransaction" method-name="isOpen" ret-field="isOpen"/> + <check-errors/> + <if-compare field="isOpen" operator="equals" value="true"> + <set field="amountInOutStr" from-field="parameters.amountInOut" type="String"/> + <call-class-method class-name="org.ofbiz.base.util.UtilNumber" method-name="stringToBigDecimal" ret-field="amountInOut"> + <field field="amountInOutStr" type="String"/> + <field field="locale" type="java.util.Locale"/> + </call-class-method> + <if-not-empty field="amountInOut"> + <make-value value-field="internTx" entity-name="PosTerminalInternTx"/> + <call-object-method obj-field="webPosTransaction" method-name="getTerminalLogId" ret-field="internTx.posTerminalLogId"/> + <set field="internTx.paidAmount" from-field="amountInOut" type="BigDecimal"/> + <set field="internTx.reasonComment" from-field="parameters.reasonCommentInOut"/> + <if-compare field="parameters.type" operator="equals" value="IN"> + <set field="internTx.reasonEnumId" from-field="parameters.reasonIn"/> <else> - <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerPaidOutAndIndAmountNotValid"/></add-error> - <check-errors/> + <set field="internTx.reasonEnumId" from-field="parameters.reasonOut"/> </else> </if-compare> + <create-value value-field="internTx"/> + <set from-field="parameters.type" field="paidInOut"/> + <call-object-method obj-field="webPosTransaction" method-name="paidInOut"> + <field field="paidInOut" type="String"/> + </call-object-method> <else> - <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerPaidOutAndInWithoutOpenedTransaction"/></add-error> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerPaidOutAndIndAmountNotValid"/></add-error> <check-errors/> </else> - </if-compare> + </if-not-empty> <else> - <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotManagerLoggedIn"/></add-error> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerPaidOutAndInWithoutOpenedTransaction"/></add-error> <check-errors/> </else> </if-compare> <else> - <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotLoggedIn"/></add-error> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotManagerLoggedIn"/></add-error> <check-errors/> </else> - </if-not-empty> + </if-compare> + <else> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotLoggedIn"/></add-error> + <check-errors/> + </else> </if-not-empty> </simple-method> - + <simple-method method-name="modifyPrice" short-description="Modify Price" login-required="true"> - <if-not-empty field="parameters.confirm"> - <set field="posTerminalId" value="null"/> - <call-class-method class-name="org.ofbiz.webpos.WebPosEvents" method-name="getWebPosSession" ret-field="webPosSession"> - <field field="request" type="javax.servlet.http.HttpServletRequest"/> - <field field="posTerminalId" type="String"/> + <clear-field field="posTerminalId"/> + <call-class-method class-name="org.ofbiz.webpos.WebPosEvents" method-name="getWebPosSession" ret-field="webPosSession"> + <field field="request" type="javax.servlet.http.HttpServletRequest"/> + <field field="posTerminalId" type="String"/> + </call-class-method> + <if-not-empty field="webPosSession"> + <call-object-method obj-field="webPosSession" method-name="getCurrentTransaction" ret-field="webPosTransaction"/> + <check-errors/> + <set field="priceStr" from-field="parameters.price" type="String"/> + <call-class-method class-name="org.ofbiz.base.util.UtilNumber" method-name="stringToBigDecimal" ret-field="price"> + <field field="priceStr" type="String"/> + <field field="locale" type="java.util.Locale"/> </call-class-method> - <if-not-empty field="webPosSession"> - <call-object-method obj-field="webPosSession" method-name="getCurrentTransaction" ret-field="webPosTransaction"/> + <if-not-empty field="price"> + <set field="cartLineIdx" from-field="parameters.cartLineIdx" type="Integer"/> + <call-object-method obj-field="webPosTransaction" method-name="modifyPrice"> + <field field="cartLineIdx" type="int"/> + <field field="price" type="BigDecimal"/> + </call-object-method> + <check-errors/> + <call-object-method obj-field="webPosTransaction" method-name="calcTax"/> <check-errors/> - <set field="amount" from-field="parameters.price" type="String"/> - <set field="allowNegative" value="false" type="Boolean"/> - <set field="allowPositive" value="true" type="Boolean"/> - <set field="minDecimal" value="0" type="Integer"/> - <set field="maxDecimal" value="3" type="Integer"/> - <call-class-method class-name="org.ofbiz.base.util.UtilValidate" method-name="isDouble" ret-field="isDouble"> - <field field="amount" type="String"/> - <field field="allowNegative" type="boolean"/> - <field field="allowPositive" type="boolean"/> - <field field="minDecimal" type="int"/> - <field field="maxDecimal" type="int"/> - </call-class-method> - <if-compare field="isDouble" operator="equals" value="true"> - <set from-field="parameters.sku" field="sku" type="String"/> - <set from-field="parameters.price" field="price" type="BigDecimal"/> - <call-object-method obj-field="webPosTransaction" method-name="modifyPrice"> - <field field="sku" type="String"/> - <field field="price" type="BigDecimal"/> - </call-object-method> - <check-errors/> - <call-object-method obj-field="webPosTransaction" method-name="calcTax"/> - <check-errors/> - <else> - <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerModifyPriceNotValidPrice"/></add-error> - <check-errors/> - </else> - </if-compare> <else> - <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotLoggedIn"/></add-error> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosManagerModifyPriceNotValidPrice"/></add-error> <check-errors/> </else> </if-not-empty> + <else> + <add-error><fail-property resource="WebPosUiLabels" property="WebPosNotLoggedIn"/></add-error> + <check-errors/> + </else> </if-not-empty> </simple-method> </simple-methods> \ No newline at end of file |
| Free forum by Nabble | Edit this page |
