TaxAuthorityRateProduct.minPurchase DB Type Error (r718913)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

TaxAuthorityRateProduct.minPurchase DB Type Error (r718913)

Grant Edwards-2
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);