You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2009/10/30 15:35:21 UTC
svn commit: r831314 - in /ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos:
PosTransaction.java device/impl/Receipt.java
Author: jleroux
Date: Fri Oct 30 14:35:20 2009
New Revision: 831314
URL: http://svn.apache.org/viewvc?rev=831314&view=rev
Log:
Some generics
+ fix a bug reported by Akash Jain on dev ML (in r831262)
+ improvements in PosTransaction.editClientProfile
Modified:
ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java
ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/device/impl/Receipt.java
Modified: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java?rev=831314&r1=831313&r2=831314&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java (original)
+++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.java Fri Oct 30 14:35:20 2009
@@ -811,7 +811,7 @@
// validate payment methods
output.print(UtilProperties.getMessage(resource, "PosValidating", locale));
- Map valRes = ch.validatePaymentMethods();
+ Map<String, Object> valRes = ch.validatePaymentMethods();
if (valRes != null && ServiceUtil.isError(valRes)) {
throw new GeneralException(ServiceUtil.getErrorMessage(valRes));
}
@@ -819,7 +819,7 @@
// store the "order"
if (UtilValidate.isEmpty(this.orderId)) { // if order does not exist
output.print(UtilProperties.getMessage(resource, "PosSaving", locale));
- Map orderRes = ch.createOrder(session.getUserLogin());
+ Map<String, Object> orderRes = ch.createOrder(session.getUserLogin());
//Debug.log("Create Order Resp : " + orderRes, module);
if (orderRes != null && ServiceUtil.isError(orderRes)) {
@@ -830,17 +830,16 @@
} else { // if the order has already been created
Map changeMap = UtilMisc.toMap("itemReasonMap",
UtilMisc.toMap("reasonEnumId", "EnumIdHere"), // TODO: where does this come from?
- "itemCommentMap",
- UtilMisc.toMap("changeComments", "change Comments here")); //TODO
+ "itemCommentMap", UtilMisc.toMap("changeComments", "change Comments here")); //TODO
- Map svcCtx = FastMap.newInstance();
+ Map<String, Object> svcCtx = FastMap.newInstance();
svcCtx.put("userLogin", session.getUserLogin());
svcCtx.put("orderId", orderId);
svcCtx.put("shoppingCart", cart);
svcCtx.put("locale", locale);
svcCtx.put("changeMap", changeMap);
- Map svcRes = null;
+ Map<String, Object> svcRes = null;
try {
LocalDispatcher dispatcher = session.getDispatcher();
svcRes = dispatcher.runSync("saveUpdatedCartToOrder", svcCtx);
@@ -853,9 +852,9 @@
// process the payment(s)
output.print(UtilProperties.getMessage(resource, "PosProcessing", locale));
- Map payRes = null;
+ Map<String, Object> payRes = null;
try {
- payRes = ch.processPayment(ProductStoreWorker.getProductStore(productStoreId, session.getDelegator()), session.getUserLogin(), true);
+ payRes = (Map<String, Object>) ch.processPayment(ProductStoreWorker.getProductStore(productStoreId, session.getDelegator()), session.getUserLogin(), true);
} catch (GeneralException e) {
Debug.logError(e, module);
throw e;
@@ -956,10 +955,8 @@
// product = delegator.findByPrimaryKeyCache("Product", UtilMisc.toMap("productId", productId));
// pcw = new ProductConfigWrapper(delegator, session.getDispatcher(), productId, null, null, null, null, null, null);
pcw = item.getConfigWrapper();
- List selected = pcw.getSelectedOptions();
- Iterator iter = selected.iterator();
- while (iter.hasNext()) {
- ConfigOption configoption = (ConfigOption)iter.next();
+ List<ConfigOption> selected = pcw.getSelectedOptions();
+ for (ConfigOption configoption : selected) {
if (configoption.isSelected()) {
XModel option = Journal.appendNode(model, "tr", ""+cart.getItemIndex(item), "");
Journal.appendNode(option, "td", "sku", "");
@@ -987,9 +984,9 @@
if (cart != null) {
BigDecimal taxAmount = cart.getTotalSalesTax();
BigDecimal total = cart.getGrandTotal();
- List adjustments = cart.getAdjustments();
+ List<GenericValue> adjustments = cart.getAdjustments();
BigDecimal itemsAdjustmentsAmount = BigDecimal.ZERO;
-
+
Iterator i = cart.iterator();
while (i.hasNext()) {
ShoppingCartItem item = (ShoppingCartItem) i.next();
@@ -999,33 +996,23 @@
}
}
- if (UtilValidate.isNotEmpty(adjustments)) {
- Iterator iter = adjustments.iterator();
- while (iter.hasNext()) {
- GenericValue orderAdjustment = (GenericValue) iter.next();
- BigDecimal amount = orderAdjustment.getBigDecimal("amount");
- }
-
- iter = adjustments.iterator();
- while (iter.hasNext()) {
- GenericValue orderAdjustment = (GenericValue) iter.next();
- BigDecimal amount = orderAdjustment.getBigDecimal("amount");
- BigDecimal sourcePercentage = orderAdjustment.getBigDecimal("sourcePercentage");
- XModel adjustmentLine = Journal.appendNode(model, "tr", "adjustment", "");
- Journal.appendNode(adjustmentLine, "td", "sku", "");
- Journal.appendNode(adjustmentLine, "td", "desc",
- UtilProperties.getMessage(resource, "PosSalesDiscount", locale));
- if (UtilValidate.isNotEmpty(amount)) {
- Journal.appendNode(adjustmentLine, "td", "qty", "");
- Journal.appendNode(adjustmentLine, "td", "price", UtilFormatOut.formatPrice(amount));
- } else if (UtilValidate.isNotEmpty(sourcePercentage)) {
- BigDecimal percentage = sourcePercentage.movePointLeft(2).negate(); // sourcePercentage is negative and must be show as a positive value (it's a discount not an amount)
- Journal.appendNode(adjustmentLine, "td", "qty", UtilFormatOut.formatPercentage(percentage));
- amount = cart.getItemTotal().add(itemsAdjustmentsAmount).multiply(percentage); // itemsAdjustmentsAmount is negative
- Journal.appendNode(adjustmentLine, "td", "price", UtilFormatOut.formatPrice(amount.negate())); // amount must be shown as a negative value
- }
- Journal.appendNode(adjustmentLine, "td", "index", "-1");
+ for (GenericValue orderAdjustment : adjustments) {
+ BigDecimal amount = orderAdjustment.getBigDecimal("amount");
+ BigDecimal sourcePercentage = orderAdjustment.getBigDecimal("sourcePercentage");
+ XModel adjustmentLine = Journal.appendNode(model, "tr", "adjustment", "");
+ Journal.appendNode(adjustmentLine, "td", "sku", "");
+ Journal.appendNode(adjustmentLine, "td", "desc",
+ UtilProperties.getMessage(resource, "PosSalesDiscount", locale));
+ if (UtilValidate.isNotEmpty(amount)) {
+ Journal.appendNode(adjustmentLine, "td", "qty", "");
+ Journal.appendNode(adjustmentLine, "td", "price", UtilFormatOut.formatPrice(amount));
+ } else if (UtilValidate.isNotEmpty(sourcePercentage)) {
+ BigDecimal percentage = sourcePercentage.movePointLeft(2).negate(); // sourcePercentage is negative and must be show as a positive value (it's a discount not an amount)
+ Journal.appendNode(adjustmentLine, "td", "qty", UtilFormatOut.formatPercentage(percentage));
+ amount = cart.getItemTotal().add(itemsAdjustmentsAmount).multiply(percentage); // itemsAdjustmentsAmount is negative
+ Journal.appendNode(adjustmentLine, "td", "price", UtilFormatOut.formatPrice(amount.negate())); // amount must be shown as a negative value
}
+ Journal.appendNode(adjustmentLine, "td", "index", "-1");
}
XModel taxLine = Journal.appendNode(model, "tr", "tax", "");
@@ -1106,7 +1093,7 @@
expYear = "20" + expYear;
}
- Map svcCtx = FastMap.newInstance();
+ Map<String, Object> svcCtx = FastMap.newInstance();
svcCtx.put("userLogin", session.getUserLogin());
svcCtx.put("partyId", partyId);
svcCtx.put("cardNumber", cardNumber);
@@ -1117,7 +1104,7 @@
svcCtx.put("cardType", UtilValidate.getCardType(cardNumber));
//Debug.log("Create CC : " + svcCtx, module);
- Map svcRes = null;
+ Map<String, Object> svcRes = null;
try {
svcRes = dispatcher.runSync("createCreditCard", svcCtx);
} catch (GenericServiceException e) {
@@ -1134,7 +1121,7 @@
public GenericValue getTerminalState() {
Delegator delegator = session.getDelegator();
- List states = null;
+ List<GenericValue> states = null;
try {
states = delegator.findByAnd("PosTerminalState", UtilMisc.toMap("posTerminalId", this.getTerminalId()));
} catch (GenericEntityException e) {
@@ -1187,9 +1174,9 @@
public void loadSale(PosScreen pos) {
trace("Load a sale");
- List shoppingLists = createShoppingLists();
+ List<GenericValue> shoppingLists = createShoppingLists();
if (!shoppingLists.isEmpty()) {
- Hashtable salesMap = createSalesMap(shoppingLists);
+ Map<String, String> salesMap = createSalesMap(shoppingLists);
if (!salesMap.isEmpty()) {
LoadSale loadSale = new LoadSale(salesMap, this, pos);
loadSale.openDlg();
@@ -1215,17 +1202,17 @@
private List<GenericValue> findOrders() {
LocalDispatcher dispatcher = session.getDispatcher();
- Map svcCtx = FastMap.newInstance();
+ Map<String, Object> svcCtx = FastMap.newInstance();
svcCtx.put("userLogin", session.getUserLogin());
svcCtx.put("partyId", partyId);
- List orderStatusIds = new ArrayList();
+ List<String> orderStatusIds = FastList.newInstance();
orderStatusIds.add("ORDER_CREATED");
svcCtx.put("orderStatusId", orderStatusIds);
svcCtx.put("viewIndex", 1);
svcCtx.put("viewSize", 25);
svcCtx.put("showAll", "Y");
- Map svcRes = null;
+ Map<String, Object> svcRes = null;
try {
svcRes = dispatcher.runSync("findOrders", svcCtx);
} catch (GenericServiceException e) {
@@ -1239,7 +1226,7 @@
} else{
Integer orderListSize = (Integer) svcRes.get("orderListSize");
if (orderListSize > 0) {
- List orderList = (List) svcRes.get("orderList");
+ List<GenericValue> orderList = (List<GenericValue>) svcRes.get("orderList");
return orderList;
}
}
@@ -1267,8 +1254,8 @@
}
} */
- public List createShoppingLists() {
- List shoppingLists = null;
+ public List<GenericValue> createShoppingLists() {
+ List<GenericValue> shoppingLists = null;
Delegator delegator = this.session.getDelegator();
try {
shoppingLists = delegator.findList("ShoppingList", null, null, null, null, false);
@@ -1283,12 +1270,10 @@
return shoppingLists;
}
- public Hashtable createSalesMap(List shoppingLists) {
- Hashtable salesMap = new Hashtable();
- Iterator i = shoppingLists.iterator();
- while (i.hasNext()) {
- GenericValue shoppingList = (GenericValue) i.next();
- List items = null;
+ public Map<String, String> createSalesMap(List<GenericValue> shoppingLists) {
+ Map<String, String> salesMap = FastMap.newInstance();
+ for (GenericValue shoppingList : shoppingLists) {
+ List<GenericValue> items = null;
try {
items = shoppingList.getRelated("ShoppingListItem", UtilMisc.toList("shoppingListItemSeqId"));
} catch (GenericEntityException e) {
@@ -1337,13 +1322,13 @@
Delegator delegator = session.getDelegator();
LocalDispatcher dispatcher = session.getDispatcher();
- Map svcCtx = FastMap.newInstance();
+ Map<String, Object> svcCtx = FastMap.newInstance();
svcCtx.put("userLogin", session.getUserLogin());
svcCtx.put("orderId", orderId);
svcCtx.put("skipInventoryChecks", Boolean.TRUE);
svcCtx.put("skipProductChecks", Boolean.TRUE);
- Map svcRes = null;
+ Map<String, Object> svcRes = null;
try {
svcRes = dispatcher.runSync("loadCartFromOrder", svcCtx);
} catch (GenericServiceException e) {
@@ -1418,7 +1403,7 @@
//cart.setExternalId(shoppingListName);
//cart.setInternalCode("Internal Code");
//ch.setCheckOutOptions(null, null, null, null, null, "shipping instructions", null, null, null, "InternalId", null, null, null);
- Map orderRes = ch.createOrder(session.getUserLogin());
+ Map<String, Object> orderRes = ch.createOrder(session.getUserLogin());
if (orderRes != null && ServiceUtil.isError(orderRes)) {
Debug.logError(ServiceUtil.getErrorMessage(orderRes), module);
@@ -1442,11 +1427,11 @@
if (!UtilValidate.isEmpty(shoppingListName)) {
// create a new shopping list with partyId = user connected (POS clerk, etc.) and not buyer (_NA_ in POS)
- Map serviceCtx = UtilMisc.toMap("userLogin", session.getUserLogin(), "partyId", session.getUserPartyId(),
+ Map<String, Object> serviceCtx = UtilMisc.toMap("userLogin", session.getUserLogin(), "partyId", session.getUserPartyId(),
"productStoreId", productStoreId, "listName", shoppingListName);
serviceCtx.put("shoppingListTypeId", "SLT_SPEC_PURP");
- Map newListResult = null;
+ Map<String, Object> newListResult = null;
try {
newListResult = dispatcher.runSync("createShoppingList", serviceCtx);
@@ -1522,7 +1507,7 @@
party.put(key, keyTypeValue);
partyListIt.set(party);
} else {
- Map partyClone = FastMap.newInstance();
+ Map<String, String> partyClone = FastMap.newInstance();
partyClone.putAll(party);
partyClone.put(key, keyTypeValue);
partyListIt.add(partyClone);
@@ -1663,7 +1648,7 @@
if (partyList != null) {
resultList = FastList.newInstance();
for (GenericValue party : partyList) {
- Map partyMap = FastMap.newInstance();
+ Map<String, String> partyMap = FastMap.newInstance();
partyMap.put("partyId", party.getString("partyId"));
partyMap.put("lastName", party.getString("lastName"));
partyMap.put("cardId", party.getString("cardId"));
@@ -1700,14 +1685,13 @@
// We use the 1st party's login (it may change and be multiple since it depends on email and card)
// We suppose only one email address (should be ok anyway because of the contactMechPurposeTypeId == "PRIMARY_EMAIL")
// we suppose only one phone number (should be ok anyway because of the contactMechPurposeTypeId == "PHONE_HOME")
- Delegator delegator = session.getDelegator();
LocalDispatcher dispatcher = session.getDispatcher();
GenericValue userLogin = session.getUserLogin();
GenericValue partyUserLogin = null;
String result = null;
Map<String, Object> svcCtx = FastMap.newInstance();
- Map svcRes = null;
+ Map<String, Object> svcRes = null;
// Create
if ("create".equals(editType)) {
@@ -1910,9 +1894,9 @@
passwordAcceptEncryptedAndPlain = UtilProperties.getPropertyValue("security.properties", "password.accept.encrypted.and.plain");
UtilProperties.setPropertyValueInMemory("security.properties", "password.accept.encrypted.and.plain", "true");
svcRes = dispatcher.runSync("updatePassword",
- UtilMisc.toMap("userLogin", partyUserLogin,
- "userLoginId", partyUserLogin.getString("userLoginId"),
- "currentPassword", partyUserLogin.getString("currentPassword"),
+ UtilMisc.toMap("userLogin", userLogin,
+ "userLoginId", userLogin.getString("userLoginId"),
+ "currentPassword", userLogin.getString("currentPassword"),
"newPassword", phone,
"newPasswordVerify", phone));
} catch (GenericServiceException e) {
@@ -1934,19 +1918,19 @@
}
if (UtilValidate.isNotEmpty(email)) {
- // Update email
+ // Update email
+ String infoString = null;
svcCtx.clear();
svcCtx.put("partyId", partyId);
svcCtx.put("thruDate", null); // last one
svcCtx.put("contactMechTypeId", "EMAIL_ADDRESS");
- String infoString = null;
String contactMechId = null;
try {
List<GenericValue> PartyEmails = session.getDelegator().findByAnd("PartyAndContactMech", svcCtx);
if (UtilValidate.isNotEmpty(PartyEmails)) {
GenericValue PartyEmail = PartyEmails.get(0); // There is only one email address (contactMechPurposeTypeId == "PRIMARY_EMAIL")
- infoString = PartyEmail.getString("infoString");
contactMechId = PartyEmail.getString("contactMechId");
+ infoString = PartyEmail.getString("infoString");
}
} catch (GenericEntityException e) {
Debug.logError(e, module);
@@ -1962,22 +1946,25 @@
if (UtilValidate.isNotEmpty(contactMechId)) {
svcCtx.put("contactMechId", contactMechId);
}
- // Create or update email
- trace("createUpdatePartyEmailAddress");
- try {
- svcRes = dispatcher.runSync("createUpdatePartyEmailAddress", svcCtx);
- } catch (GenericServiceException e) {
- Debug.logError(e, module);
- pos.showDialog("dialog/error/exception", e.getMessage());
- return null;
- }
- if (ServiceUtil.isError(svcRes)) {
- pos.showDialog("dialog/error/exception", ServiceUtil.getErrorMessage(svcRes));
- return null;
+ if (UtilValidate.isNotEmpty(infoString) && !email.equals(infoString)
+ || UtilValidate.isEmpty(infoString)) {
+ // Create or update email
+ trace("createUpdatePartyEmailAddress");
+ try {
+ svcRes = dispatcher.runSync("createUpdatePartyEmailAddress", svcCtx);
+ } catch (GenericServiceException e) {
+ Debug.logError(e, module);
+ pos.showDialog("dialog/error/exception", e.getMessage());
+ return null;
+ }
+ if (ServiceUtil.isError(svcRes)) {
+ pos.showDialog("dialog/error/exception", ServiceUtil.getErrorMessage(svcRes));
+ return null;
+ }
}
- if (!newLogin) {
+ if (!newLogin && UtilValidate.isNotEmpty(infoString) && !email.equals(infoString)) {
// create a new UserLogin (Update a UserLoginId by creating a new one and expiring the old one). Keep the same password possibly changed just above if phone has also changed.
trace("updateUserLoginId");
try {
Modified: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/device/impl/Receipt.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/device/impl/Receipt.java?rev=831314&r1=831313&r2=831314&view=diff
==============================================================================
--- ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/device/impl/Receipt.java (original)
+++ ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/device/impl/Receipt.java Fri Oct 30 14:35:20 2009
@@ -111,7 +111,7 @@
}
}
- public synchronized void printReport(PosTransaction trans, String resource, Map<String, Object> context) {
+ public synchronized void printReport(PosTransaction trans, String resource, Map<String, String> context) {
try {
((POSPrinter) control).transactionPrint(POSPrinterConst.PTR_S_RECEIPT, POSPrinterConst.PTR_TP_TRANSACTION);
} catch (Exception e) {
@@ -343,7 +343,7 @@
return dateFormat[type];
}
- private void printInfo(String template, Map<String, Object> context, PosTransaction trans, int type) {
+ private void printInfo(String template, Map<String, String> context, PosTransaction trans, int type) {
Map<String, Object> expandMap = this.makeCodeExpandMap(trans, type);
if (context != null) {
expandMap.putAll(context); // context overrides