Author: ashish
Date: Fri Nov 6 09:00:16 2009 New Revision: 833323 URL: http://svn.apache.org/viewvc?rev=833323&view=rev Log: Applied patch from jira issue: OFBIZ-3165 - Add additional screen for gift card certificate buying functionality by CSR in Order manager application in add item page. 1) Add additional screen for gift card certificate buying functionality by CSR in Order manager application in add item page 2) Also add feature to fill survey on same page. 3) Also if CSR selects "Create as new order" from Actions block for Gift card products then survey responses will be created automatically for the new order, which will be same as last order. Thanks Arun / Divesh for the contribution. Added: ofbiz/trunk/applications/order/webapp/ordermgr/order/GiftCertificates.ftl (with props) Modified: ofbiz/trunk/applications/order/config/OrderUiLabels.xml ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartServices.java ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml ofbiz/trunk/applications/order/webapp/ordermgr/entry/cart/showcart.ftl ofbiz/trunk/applications/order/webapp/ordermgr/entry/cart/showcartitems.ftl ofbiz/trunk/applications/order/widget/ordermgr/OrderEntryCartScreens.xml Modified: ofbiz/trunk/applications/order/config/OrderUiLabels.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/config/OrderUiLabels.xml?rev=833323&r1=833322&r2=833323&view=diff ============================================================================== --- ofbiz/trunk/applications/order/config/OrderUiLabels.xml (original) +++ ofbiz/trunk/applications/order/config/OrderUiLabels.xml Fri Nov 6 09:00:16 2009 @@ -1323,6 +1323,9 @@ <value xml:lang="en">Address Verification (AVS)</value> <value xml:lang="it">Verifica indirizzo (AVS)</value> </property> + <property key="OrderAddGiftCertificate"> + <value xml:lang="en">Add Gift Certificate</value> + </property> <property key="OrderAdjustment"> <value xml:lang="de">Anpassung</value> <value xml:lang="en">Adjustment</value> @@ -7233,6 +7236,12 @@ <value xml:lang="en">Received Quantity History</value> <value xml:lang="it">Storia quantità ricevuta</value> </property> + <property key="OrderRecipientName"> + <value xml:lang="en">Recipient's Name:</value> + </property> + <property key="OrderRecipientEmailAdd"> + <value xml:lang="en">Recipient's Email:</value> + </property> <property key="OrderReference"> <value xml:lang="de">Referenz</value> <value xml:lang="en">Reference</value> @@ -8381,6 +8390,9 @@ <value xml:lang="it">Importo selezionato</value> <value xml:lang="zh">éæ©æ°é</value> </property> + <property key="OrderSelectGiftAmount"> + <value xml:lang="en">Select The Gift Amount</value> + </property> <property key="OrderSelectAShippingAddress"> <value xml:lang="de">Wählen Sie eine Lieferadresse</value> <value xml:lang="en">Select A Shipping Address</value> @@ -8658,6 +8670,9 @@ <value xml:lang="zh">åéçµåé®ä»¶</value> <value xml:lang="zh_CN">åéçµåé®ä»¶</value> </property> + <property key="OrderSenderName"> + <value xml:lang="en">Sender's Name:</value> + </property> <property key="OrderSendMeThisEveryMonth"> <value xml:lang="de">Senden Sie mir dies jeden Monat</value> <value xml:lang="en">Send me this every month</value> Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java?rev=833323&r1=833322&r2=833323&view=diff ============================================================================== --- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java (original) +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java Fri Nov 6 09:00:16 2009 @@ -3711,21 +3711,29 @@ while (itemIter.hasNext()) { ShoppingCartItem item = (ShoppingCartItem) itemIter.next(); List responses = (List) item.getAttribute("surveyResponses"); + GenericValue response = null; if (responses != null) { Iterator ri = responses.iterator(); while (ri.hasNext()) { String responseId = (String) ri.next(); - GenericValue response = null; try { response = this.getDelegator().findByPrimaryKey("SurveyResponse", UtilMisc.toMap("surveyResponseId", responseId)); } catch (GenericEntityException e) { Debug.logError(e, "Unable to obtain SurveyResponse record for ID : " + responseId, module); } - if (response != null) { - response.set("orderItemSeqId", item.getOrderItemSeqId()); - allInfos.add(response); - } } + // this case is executed when user selects "Create as new Order" for Gift cards + } else { + String surveyResponseId = (String) item.getAttribute("surveyResponseId"); + try { + response = this.getDelegator().findOne("SurveyResponse", UtilMisc.toMap("surveyResponseId", surveyResponseId), false); + } catch (GenericEntityException e) { + Debug.logError(e, "Unable to obtain SurveyResponse record for ID : " + surveyResponseId, module); + } + } + if (response != null) { + response.set("orderItemSeqId", item.getOrderItemSeqId()); + allInfos.add(response); } } return allInfos; Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartServices.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartServices.java?rev=833323&r1=833322&r2=833323&view=diff ============================================================================== --- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartServices.java (original) +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartServices.java Fri Nov 6 09:00:16 2009 @@ -305,6 +305,34 @@ // get the next item sequence id String orderItemSeqId = item.getString("orderItemSeqId"); orderItemSeqId = orderItemSeqId.replaceAll("\\P{Digit}", ""); + // get product Id + String productId = item.getString("productId"); + GenericValue product = null; + // creates survey responses for Gift cards same as last Order created + Map surveyResponseResult = null; + try { + product = delegator.findOne("Product", UtilMisc.toMap("productId", productId), false); + if ("DIGITAL_GOOD".equals(product.getString("productTypeId"))) { + Map<String, Object> surveyResponseMap = FastMap.newInstance(); + Map<String, Object> answers = FastMap.newInstance(); + List<GenericValue> surveyResponseAndAnswers = delegator.findByAnd("SurveyResponseAndAnswer", UtilMisc.toMap("orderId", orderId, "orderItemSeqId", orderItemSeqId)); + if (UtilValidate.isNotEmpty(surveyResponseAndAnswers)) { + String surveyId = EntityUtil.getFirst(surveyResponseAndAnswers).getString("surveyId"); + for (GenericValue surveyResponseAndAnswer : surveyResponseAndAnswers) { + answers.put((surveyResponseAndAnswer.get("surveyQuestionId").toString()), surveyResponseAndAnswer.get("textResponse")); + } + surveyResponseMap.put("answers", answers); + surveyResponseMap.put("surveyId", surveyId); + surveyResponseResult = dispatcher.runSync("createSurveyResponse", surveyResponseMap); + } + } + } catch (GenericEntityException e) { + Debug.logError(e, module); + return ServiceUtil.returnError(e.getMessage()); + } catch (GenericServiceException e) { + Debug.logError(e.toString(), module); + return ServiceUtil.returnError(e.toString()); + } try { long seq = Long.parseLong(orderItemSeqId); if (seq > nextItemSeq) { @@ -350,7 +378,6 @@ } else { // product item String prodCatalogId = item.getString("prodCatalogId"); - String productId = item.getString("productId"); //prepare the rental data Timestamp reservStart = null; @@ -381,7 +408,7 @@ ProductConfigWrapper configWrapper = null; String configId = null; try { - GenericValue product = delegator.findByPrimaryKey("Product", UtilMisc.toMap("productId", productId)); + product = delegator.findByPrimaryKey("Product", UtilMisc.toMap("productId", productId)); if ("AGGREGATED_CONF".equals(product.getString("productTypeId"))) { List<GenericValue>productAssocs = delegator.findByAnd("ProductAssoc", UtilMisc.toMap("productAssocTypeId", "PRODUCT_CONF", "productIdTo", product.getString("productId"))); productAssocs = EntityUtil.filterByDate(productAssocs); @@ -411,7 +438,11 @@ // flag the item w/ the orderItemSeqId so we can reference it ShoppingCartItem cartItem = cart.findCartItem(itemIndex); cartItem.setOrderItemSeqId(item.getString("orderItemSeqId")); - + + // attach surveyResponseId for each item + if (UtilValidate.isNotEmpty(surveyResponseResult)){ + cartItem.setAttribute("surveyResponseId",surveyResponseResult.get("surveyResponseId")); + } // attach addition item information cartItem.setStatusId(item.getString("statusId")); cartItem.setItemType(item.getString("orderItemTypeId")); Modified: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml?rev=833323&r1=833322&r2=833323&view=diff ============================================================================== --- ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml (original) +++ ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/controller.xml Fri Nov 6 09:00:16 2009 @@ -521,7 +521,16 @@ <response name="success" type="view" value="showcart"/> <response name="error" type="view" value="showcart"/> </request-map> - + <request-map uri="AddGiftCertificate"> + <security https="true" auth="true"/> + <response name="success" type="view" value="AddGiftCertificate"/> + </request-map> + <request-map uri="addGiftCertificateSurvey"> + <security https="true" auth="false"/> + <event type="service" invoke="createSurveyResponse"/> + <response name="success" type="request" value="additem"/> + <response name="error" type="view" value="AddGiftCertificate"/> + </request-map> <!-- Create a replacement order from an existing order against a lost shipment etc. --> <request-map uri="loadCartForReplacementOrder"> <security https="true" auth="true"/> @@ -1719,6 +1728,7 @@ <view-map name="product" type="screen" page="component://order/widget/ordermgr/OrderEntryCatalogScreens.xml#product"/> <view-map name="compareProducts" type="screen" page="component://order/widget/ordermgr/OrderEntryCatalogScreens.xml#compareProducts"/> <view-map name="quickadd" type="screen" page="component://order/widget/ordermgr/OrderEntryCatalogScreens.xml#quickadd"/> + <view-map name="AddGiftCertificate" type="screen" page="component://order/widget/ordermgr/OrderEntryCartScreens.xml#AddGiftCertificate"/> <view-map name="custsetting" type="screen" page="component://order/widget/ordermgr/OrderEntryOrderScreens.xml#CustSettings"/> <view-map name="shipsetting" type="screen" page="component://order/widget/ordermgr/OrderEntryOrderScreens.xml#ShipSettings"/> Modified: ofbiz/trunk/applications/order/webapp/ordermgr/entry/cart/showcart.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/entry/cart/showcart.ftl?rev=833323&r1=833322&r2=833323&view=diff ============================================================================== --- ofbiz/trunk/applications/order/webapp/ordermgr/entry/cart/showcart.ftl (original) +++ ofbiz/trunk/applications/order/webapp/ordermgr/entry/cart/showcart.ftl Fri Nov 6 09:00:16 2009 @@ -22,6 +22,9 @@ document.qohAtpForm.productId.value = document.quickaddform.add_product_id.value; document.qohAtpForm.submit(); } + function quicklookupGiftCertificate() { + window.location='AddGiftCertificate'; + } </script> <#if shoppingCart.getOrderType() == "PURCHASE_ORDER"> <#assign target="productAvailabalityByFacility"> @@ -81,6 +84,7 @@ <a href="javascript:call_fieldlookup2(document.quickaddform.add_product_id,'<@ofbizUrl><#if orderType=="PURCHASE_ORDER">LookupSupplierProduct?partyId=${partyId?if_exists}<#else>LookupProduct</#if></@ofbizUrl>');"> <img src="<@ofbizContentUrl>/images/fieldlookup.gif</@ofbizContentUrl>" width="15" height="14" border="0" alt="${uiLabelMap.CommonClickHereForFieldLookup}"/> </a> + <a href="javascript:quicklookupGiftCertificate()" class="buttontext">${uiLabelMap.OrderAddGiftCertificate}</a> <#if "PURCHASE_ORDER" == shoppingCart.getOrderType()> <a href="javascript:showQohAtp()" class="buttontext">${uiLabelMap.ProductAtpQoh}</a> </#if> Modified: ofbiz/trunk/applications/order/webapp/ordermgr/entry/cart/showcartitems.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/entry/cart/showcartitems.ftl?rev=833323&r1=833322&r2=833323&view=diff ============================================================================== --- ofbiz/trunk/applications/order/webapp/ordermgr/entry/cart/showcartitems.ftl (original) +++ ofbiz/trunk/applications/order/webapp/ordermgr/entry/cart/showcartitems.ftl Fri Nov 6 09:00:16 2009 @@ -145,10 +145,10 @@ <#if Static["org.ofbiz.common.CommonWorkers"].hasParentType(delegator, "ProductType", "productTypeId", product.productTypeId, "parentTypeId", "MARKETING_PKG")> ${uiLabelMap.ProductMarketingPackageATP} = ${mktgPkgATPMap.get(productId)}, ${uiLabelMap.ProductMarketingPackageQOH} = ${mktgPkgQOHMap.get(productId)} </#if> - <#if (availableToPromiseMap.get(cartLine.getProductId()) <= 0) && (shoppingCart.getOrderType() == "SALES_ORDER")> + <#if (availableToPromiseMap.get(cartLine.getProductId()) <= 0) && (shoppingCart.getOrderType() == "SALES_ORDER" && product.productTypeId != "DIGITAL_GOOD")> <span style="color: red;">[${cartLine.getQuantity()} ${uiLabelMap.OrderBackOrdered}]</span> <#else> - <#if (availableToPromiseMap.get(cartLine.getProductId()) < cartLine.getQuantity()) && (shoppingCart.getOrderType() == "SALES_ORDER")> + <#if (availableToPromiseMap.get(cartLine.getProductId()) < cartLine.getQuantity()) && (shoppingCart.getOrderType() == "SALES_ORDER" && product.productTypeId != "DIGITAL_GOOD")> <#assign backOrdered = cartLine.getQuantity() - availableToPromiseMap.get(cartLine.getProductId())> <span style="color: red;">[${backOrdered?if_exists} ${uiLabelMap.OrderBackOrdered}]</span> </#if> Added: ofbiz/trunk/applications/order/webapp/ordermgr/order/GiftCertificates.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/order/GiftCertificates.ftl?rev=833323&view=auto ============================================================================== --- ofbiz/trunk/applications/order/webapp/ordermgr/order/GiftCertificates.ftl (added) +++ ofbiz/trunk/applications/order/webapp/ordermgr/order/GiftCertificates.ftl Fri Nov 6 09:00:16 2009 @@ -0,0 +1,41 @@ +<form id="addGiftCertificate" action="<@ofbizUrl>addGiftCertificateSurvey</@ofbizUrl>" method="post"> + <fieldset> + <input type="hidden" name="quantity" value="1" /> + <input type="hidden" name="surveyId" value="1000" /> + <label>${uiLabelMap.OrderSelectGiftAmount}</label> + <div> + <input type="radio" name="add_product_id" id="productId_10" value="GC-001-C10" checked="checked" /> + <label for="productId_10">$10</label> + </div> + <div> + <input type="radio" name="add_product_id" id="productId_25" value="GC-001-C25" /> + <label for="productId_25">$25</label> + </div> + <div> + <input type="radio" name="add_product_id" id="productId_50" value="GC-001-C50" /> + <label for="productId_50">$50</label> + </div> + <div> + <input type="radio" name="add_product_id" id="productId_100" value="GC-001-C100" /> + <label for="productId_100">$100</label> + </div> + <div> + <label for="emailAddress">${uiLabelMap.OrderRecipientEmailAdd}</label> + <input type="text" id="emailAddress" name="answers_1002" value="" /> + </div> + <div> + <label for="recipientName">${uiLabelMap.OrderRecipientName}</label> + <input type="text" id="recipientName" name="answers_1001" value="" /> + </div> + <div> + <label for="senderName">${uiLabelMap.OrderSenderName}</label> + <input type="text" id="senderName" name="answers_1000" value="" /> + <div> + <label for="message">${uiLabelMap.OrderGiftMessage}:</label> + <textarea id="message" name="answers_1003"></textarea> + </div> + <div> + <input type="submit" value="${uiLabelMap.CommonSubmit}" /> + </div> + </fieldset> +</form> Propchange: ofbiz/trunk/applications/order/webapp/ordermgr/order/GiftCertificates.ftl ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/applications/order/webapp/ordermgr/order/GiftCertificates.ftl ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/trunk/applications/order/webapp/ordermgr/order/GiftCertificates.ftl ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: ofbiz/trunk/applications/order/widget/ordermgr/OrderEntryCartScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/widget/ordermgr/OrderEntryCartScreens.xml?rev=833323&r1=833322&r2=833323&view=diff ============================================================================== --- ofbiz/trunk/applications/order/widget/ordermgr/OrderEntryCartScreens.xml (original) +++ ofbiz/trunk/applications/order/widget/ordermgr/OrderEntryCartScreens.xml Fri Nov 6 09:00:16 2009 @@ -197,4 +197,20 @@ </widgets> </section> </screen> + <screen name="AddGiftCertificate"> + <section> + <actions> + <set field="titleProperty" value="OrderAddGiftCertificate"/> + </actions> + <widgets> + <decorator-screen name="CommonOrderCatalogDecorator" location="component://order/widget/ordermgr/OrderEntryCommonScreens.xml"> + <decorator-section name="body"> + <platform-specific><html> + <html-template location="component://order/webapp/ordermgr/order/GiftCertificates.ftl"/></html> + </platform-specific> + </decorator-section> + </decorator-screen> + </widgets> + </section> + </screen> </screens> |
Free forum by Nabble | Edit this page |