Author: jleroux
Date: Fri Oct 9 12:39:25 2009 New Revision: 823530 URL: http://svn.apache.org/viewvc?rev=823530&view=rev Log: Fix some issues in POS client profile screen when used OOTB Modified: ofbiz/trunk/specialpurpose/pos/src/org/ofbiz/pos/PosTransaction.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=823530&r1=823529&r2=823530&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 9 12:39:25 2009 @@ -1554,30 +1554,33 @@ dynamicView.addAlias("PT", "partyId"); dynamicView.addAlias("PT", "statusId"); dynamicView.addAlias("PT", "partyTypeId"); + dynamicView.addMemberEntity("PUL", "PartyAndUserLogin"); + dynamicView.addAlias("PUL", "userLoginId"); dynamicView.addMemberEntity("PE", "Person"); dynamicView.addAlias("PE", "partyId"); dynamicView.addAlias("PE", "lastName"); dynamicView.addAlias("PE", "memberId"); dynamicView.addAlias("PE", "lastNameLocal"); dynamicView.addViewLink("PT", "PE", Boolean.FALSE, ModelKeyMap.makeKeyMapList("partyId")); + dynamicView.addViewLink("PT", "PUL", Boolean.FALSE, ModelKeyMap.makeKeyMapList("partyId")); Boolean onlyPhone = UtilValidate.isEmpty(name) && UtilValidate.isEmpty(email) && UtilValidate.isNotEmpty(phone) && UtilValidate.isEmpty(card); if (!onlyPhone) { // ContactMech (email) dynamicView.addMemberEntity("PM", "PartyContactMechPurpose"); - dynamicView.addMemberEntity("CM", "ContactMech"); dynamicView.addAlias("PM", "contactMechId"); dynamicView.addAlias("PM", "contactMechPurposeTypeId"); dynamicView.addAlias("PM", "thruDate"); + dynamicView.addMemberEntity("CM", "ContactMech"); dynamicView.addAlias("CM", "infoString"); dynamicView.addViewLink("PT", "PM", Boolean.FALSE, ModelKeyMap.makeKeyMapList("partyId")); dynamicView.addViewLink("PM", "CM", Boolean.FALSE, ModelKeyMap.makeKeyMapList("contactMechId")); } else { dynamicView.addMemberEntity("PM", "PartyContactMechPurpose"); - dynamicView.addMemberEntity("TN", "TelecomNumber"); dynamicView.addAlias("PM", "contactMechId"); dynamicView.addAlias("PM", "thruDate"); dynamicView.addAlias("PM", "contactMechPurposeTypeId"); + dynamicView.addMemberEntity("TN", "TelecomNumber"); dynamicView.addAlias("TN", "contactNumber"); dynamicView.addViewLink("PT", "PM", Boolean.FALSE, ModelKeyMap.makeKeyMapList("partyId")); dynamicView.addViewLink("PM", "TN", Boolean.FALSE, ModelKeyMap.makeKeyMapList("contactMechId")); @@ -1603,6 +1606,8 @@ // This allows to get all clients when any informations has been entered andExprs.add(EntityCondition.makeCondition(EntityCondition.makeCondition("statusId", EntityOperator.EQUALS, null), EntityOperator.OR, EntityCondition.makeCondition("statusId", EntityOperator.NOT_EQUAL, "PARTY_DISABLED"))); andExprs.add(EntityCondition.makeCondition("partyTypeId", EntityOperator.EQUALS, "PERSON")); // Only persons for now... + andExprs.add(EntityCondition.makeCondition("userLoginId", EntityOperator.NOT_EQUAL, null)); // Should have a login + andExprs.add(EntityCondition.makeCondition("memberId", EntityOperator.NOT_EQUAL, null)); // Should have a card Id (we take into account only the person created here) if (UtilValidate.isNotEmpty(name)) { andExprs.add(EntityCondition.makeCondition("lastName", EntityOperator.EQUALS, name)); } @@ -1781,7 +1786,7 @@ pos.showDialog("dialog/error/exception", e.getMessage()); return result; } - GenericValue partyLogin = userLogins.get(0); // We need at least a party's login ... + GenericValue partyLogin = userLogins.get(0); // We need at least a party's login, we are sure there is one as we keep only users with at least one login GenericValue person = null; try { person = session.getDelegator().findByPrimaryKey("Person", UtilMisc.toMap("partyId", partyId)); @@ -1792,7 +1797,7 @@ } if (UtilValidate.isNotEmpty(name) && !person.getString("lastName").equals(name) - || UtilValidate.isNotEmpty(card) && !person.getString("memberId").equals(card)) { + || UtilValidate.isNotEmpty(card) && !card.equals(person.getString("memberId"))) { svcCtx.put("partyId", partyId); svcCtx.put("firstName", ""); // Needed by service updatePerson svcCtx.put("userLogin", partyLogin); @@ -1801,7 +1806,7 @@ } if (UtilValidate.isNotEmpty(card)) { svcCtx.put("memberId", card); - if (!person.getString("memberId").equals(card)) { + if (!card.equals(person.getString("memberId"))) { // Update password UtilProperties.setPropertyValue("security.properties", "password.accept.encrypted.and.plain", "true"); try { @@ -1907,27 +1912,29 @@ return result; } GenericValue PartyTelecomNumber = PartyTelecomNumbers.get(0); // we suppose only one phone number (should be ok anyway because of the contactMechPurposeTypeId == "PHONE_HOME") - String contactNumber = PartyTelecomNumber.getString("contactNumber"); - if (!contactNumber.equals(phone)) { - String newContactMechId = PartyTelecomNumber.getString("contactMechId"); - - svcCtx.put("userLogin", partyLogin); - svcCtx.put("contactNumber", phone); - svcCtx.put("contactMechPurposeTypeId", "PHONE_HOME"); - if (UtilValidate.isNotEmpty(PartyTelecomNumbers)) { - svcCtx.put("contactMechId", newContactMechId); - } - - try { - svcRes = dispatcher.runSync("createUpdatePartyTelecomNumber", svcCtx); - } catch (GenericServiceException e) { - Debug.logError(e, module); - pos.showDialog("dialog/error/exception", e.getMessage()); - return result; - } - if (ServiceUtil.isError(svcRes)) { - pos.showDialog("dialog/error/exception", ServiceUtil.getErrorMessage(svcRes)); - return result; + if (UtilValidate.isNotEmpty(PartyTelecomNumber)) { // Should not be needed but in case memberId has been used for another purpose avoid an NPE (we test memberId not null initially to keep only POS created users) + String contactNumber = PartyTelecomNumber.getString("contactNumber"); + if (!phone.equals(contactNumber)) { + String newContactMechId = PartyTelecomNumber.getString("contactMechId"); + + svcCtx.put("userLogin", partyLogin); + svcCtx.put("contactNumber", phone); + svcCtx.put("contactMechPurposeTypeId", "PHONE_HOME"); + if (UtilValidate.isNotEmpty(PartyTelecomNumbers)) { + svcCtx.put("contactMechId", newContactMechId); + } + + try { + svcRes = dispatcher.runSync("createUpdatePartyTelecomNumber", svcCtx); + } catch (GenericServiceException e) { + Debug.logError(e, module); + pos.showDialog("dialog/error/exception", e.getMessage()); + return result; + } + if (ServiceUtil.isError(svcRes)) { + pos.showDialog("dialog/error/exception", ServiceUtil.getErrorMessage(svcRes)); + return result; + } } } } |
Free forum by Nabble | Edit this page |