All,

I am extending findOrders (OrderLookupServices) by adding OrderAttribute and Payment as searchable entities.

The OrderAttribute works as expected
       // search by child name
       if (UtilValidate.isNotEmpty(childName)) {
           dve.addMemberEntity("OA", "OrderAttribute");
           dve.addAlias("OA", "attrValue");
dve.addViewLink("OH", "OA", Boolean.FALSE, UtilMisc.toList(new ModelKeyMap("orderId", "orderId")));
           paramList.add("attrValue=" + childName);
           conditions.add(makeExpr("attrValue", childName));
       }

but

       // search by payment ref number
       if (UtilValidate.isNotEmpty(paymentRefNum)) {
           dve.addMemberEntity("PT", "Payment");
           dve.addAlias("PT", "paymentRefNum");
dve.addViewLink("OP", "PT", Boolean.FALSE, UtilMisc.toList(new ModelKeyMap("orderPaymentPreferenceId", "paymentPreferenceId")));
           paramList.add("paymentRefNum=" + paymentRefNum);
           conditions.add(makeExpr("paymentRefNum", paymentRefNum));
       }
returns message ..orderPaymentPreferenceId does not exist on the Payment entity.

Note: this is the case where fields with matching content (orderPaymentPreferenceId & paymentPreferenceId) have different names.

I am stuck with this otherwise piece of art code.

Please help.

Jacek

Reply via email to