Hi
TaxAuthorityServices.getTaxAdjustments(....) takes *BigDecimal itemAmount *as one of its parameters and sets it as a condition for delegator.findList("TaxAuthorityRateProduct", ......, however minPurchase is defined as a currency-amount (java Double) and as such fails with the error below. Any idea's ? Cheers Grant Edwards =-=-=-=-=-=-=-=-= DATABASE TYPE ERROR in EntityExpr =-=-=-=-=-=-=-=-= In entity field [*TaxAuthorityRateProduct.minPurchase*] set the value *passed in [java.math.BigDecimal]* is not compatible with the Java type of the field* [Double]* Exception: java.lang.Exception Message: Location of database type error ---- stack trace --------------------------------------------------------------- java.lang.Exception: Location of database type error org.ofbiz.entity.condition.EntityExpr.checkRhsType(EntityExpr.java:267) org.ofbiz.entity.condition.EntityExpr.makeWhereString(EntityExpr.java:167) org.ofbiz.entity.condition.EntityJoinOperator.addSqlValue(EntityJoinOperator.java:54) org.ofbiz.entity.condition.EntityExpr.makeWhereString(EntityExpr.java:170) org.ofbiz.entity.condition.EntityJoinOperator.addSqlValue(EntityJoinOperator.java:67) org.ofbiz.entity.condition.EntityConditionListBase.makeWhereString(EntityConditionListBase.java:89) org.ofbiz.entity.datasource.GenericDAO.selectListIteratorByCondition(GenericDAO.java:676) org.ofbiz.entity.datasource.GenericHelperDAO.findListIteratorByCondition(GenericHelperDAO.java:140) org.ofbiz.entity.GenericDelegator.find(GenericDelegator.java:2273) org.ofbiz.entity.GenericDelegator.findList(GenericDelegator.java:2314) org.ofbiz.accounting.tax.TaxAuthorityServices.getTaxAdjustments(TaxAuthorityServices.java:312) org.ofbiz.accounting.tax.TaxAuthorityServices.rateProductTaxCalc(TaxAuthorityServices.java:185) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) <entity entity-name="TaxAuthorityRateProduct" package-name="org.ofbiz.accounting.tax" title="Tax Authority Rate Entity"> <field name="taxAuthorityRateSeqId" type="id-ne"></field> <field name="taxAuthGeoId" type="id-ne"></field> <field name="taxAuthPartyId" type="id-ne"></field> <field name="taxAuthorityRateTypeId" type="id-ne"></field> <field name="productStoreId" type="id-ne"></field> <field name="productCategoryId" type="id-ne"></field> <field name="titleTransferEnumId" type="id-ne"></field> <field name="minItemPrice" type="currency-amount"></field> <field name="*minPurchase*" type="*currency-amount*"></field> fieldtypepostgres.xml maps ofbiz to java types as follows: <field-type-def type="*currency-amount*" sql-type="NUMERIC(18,2)" java-type="*Double*"><validate method="isSignedDouble" /></field-type-def> private static List getTaxAdjustments(GenericDelegator delegator, GenericValue product, GenericValue productStore, String payToPartyId, String billToPartyId, Set taxAuthoritySet, BigDecimal itemPrice, *BigDecimal itemAmount*, BigDecimal shippingAmount, BigDecimal orderPromotionsAmount) { List mainExprs = UtilMisc.toList(storeCond, taxAuthoritiesCond, productCategoryCond); mainExprs.add(EntityCondition.makeCondition(EntityCondition.makeCondition("minItemPrice", EntityOperator.EQUALS, null), EntityOperator.OR, EntityCondition.makeCondition("minItemPrice", EntityOperator.LESS_THAN_EQUAL_TO, itemPrice))); mainExprs.add(EntityCondition.makeCondition(EntityCondition.makeCondition("minPurchase", EntityOperator.EQUALS, null), EntityOperator.OR, EntityCondition.makeCondition("*minPurchase*", EntityOperator.LESS_THAN_EQUAL_TO, *itemAmount*))); EntityCondition mainCondition = EntityCondition.makeCondition(mainExprs, EntityOperator.AND); // create the orderby clause List orderList = UtilMisc.toList("minItemPrice", "minPurchase", "fromDate"); // finally ready... do the rate query List lookupList = delegator.findList("TaxAuthorityRateProduct", mainCondition, null, orderList, null, false); |
Free forum by Nabble | Edit this page |