You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ofbiz.apache.org by gopalbi <go...@hytechpro.com> on 2008/08/18 13:20:20 UTC

I need help in Invertory seaction in facility tab.

Hello friends,

  please help me.

When i go to Facility-->Facilities-->Inventoy Search option form. if i am
putting productId like (WG-1111) then it show the exception like
-------------------------------------****************------------------------
:ERROR MESSAGE: 
org.ofbiz.widget.screen.ScreenRenderException: Error rendering screen
[component://product/widget/facility/FacilityScreens.xml#ViewFacilityInventoryByProduct]:
groovy.lang.MissingMethodException: No signature of method: static
org.ofbiz.entity.condition.EntityCondition.makeCondition() is applicable for
argument types: (java.lang.String, java.lang.Boolean,
org.ofbiz.entity.condition.EntityOperator$8, java.lang.String,
java.lang.Boolean) values: {"productId", true, LIKE, "WG-1111%", true} (No
signature of method: static
org.ofbiz.entity.condition.EntityCondition.makeCondition() is applicable for
argument types: (java.lang.String, java.lang.Boolean,
org.ofbiz.entity.condition.EntityOperator$8, java.lang.String,
java.lang.Boolean) values: {"productId", true, LIKE, "WG-1111%", true}) 

-------------------------------------*******************-------------------------------------

I am sending you the groovy file which i am using. I am unable to find where
is actual problem.But if i am trying with blank productId and then click to
the Find button then it show the result.




---------------------------------------ViewFacilityInventoryByProduct.groovy-----------------

import java.util.*
import java.sql.Timestamp
import org.ofbiz.base.util.*
import org.ofbiz.entity.*
import org.ofbiz.entity.condition.*
import org.ofbiz.entity.transaction.*
import org.ofbiz.entity.model.DynamicViewEntity
import org.ofbiz.entity.model.ModelKeyMap
import org.ofbiz.entity.util.EntityFindOptions
import org.ofbiz.product.inventory.*

action = request.getParameter("action");

searchParameterString = "";
searchParameterString = "action=Y&facilityId=" + facilityId;

offsetQOH = -1;
offsetATP = -1;
hasOffsetQOH = false;
hasOffsetATP = false;

rows = [] as ArrayList;

if (action) {
    // ------------------------------
    prodView = new DynamicViewEntity();
    conditionMap = [facilityId : facilityId];

    if (offsetQOHQty) {
        try {
            offsetQOH = Integer.parseInt(offsetQOHQty);
            hasOffsetQOH = true;
            searchParameterString = searchParameterString + "&offsetQOHQty="
+ offsetQOH;
        } catch(NumberFormatException nfe) {
        }
    }
    if (offsetATPQty) {
        try {
            offsetATP = Integer.parseInt(offsetATPQty);
            hasOffsetATP = true;
            searchParameterString = searchParameterString + "&offsetATPQty="
+ offsetATP;
        } catch(NumberFormatException nfe) {
        }
    }

    prodView.addMemberEntity("PRFA", "ProductFacility");
    prodView.addAliasAll("PRFA", null);

    prodView.addMemberEntity("PROD", "Product");
    prodView.addViewLink("PROD", "PRFA", Boolean.FALSE,
ModelKeyMap.makeKeyMapList("productId"));
    prodView.addAlias("PROD", "internalName");
    prodView.addAlias("PROD", "isVirtual");
    prodView.addAlias("PROD", "salesDiscontinuationDate");
    if (productTypeId) {
        prodView.addAlias("PROD", "productTypeId");
        conditionMap.productTypeId = productTypeId;
        searchParameterString = searchParameterString + "&productTypeId=" +
productTypeId;
    }
    if (searchInProductCategoryId) {
        prodView.addMemberEntity("PRCA", "ProductCategoryMember");
        prodView.addViewLink("PRFA", "PRCA", Boolean.FALSE,
ModelKeyMap.makeKeyMapList("productId"));
        prodView.addAlias("PRCA", "productCategoryId");
        conditionMap.productCategoryId = searchInProductCategoryId;
        searchParameterString = searchParameterString +
"&searchInProductCategoryId=" + searchInProductCategoryId;
    }

    if (productSupplierId) {
        prodView.addMemberEntity("SPPR", "SupplierProduct");
        prodView.addViewLink("PRFA", "SPPR", Boolean.FALSE,
ModelKeyMap.makeKeyMapList("productId"));
        prodView.addAlias("SPPR", "partyId");
        conditionMap.partyId = productSupplierId;
        searchParameterString = searchParameterString +
"&productSupplierId=" + productSupplierId;
    }
    
    // set distinct on so we only get one row per product
    findOpts = new EntityFindOptions(true,
EntityFindOptions.TYPE_SCROLL_INSENSITIVE,
EntityFindOptions.CONCUR_READ_ONLY, true);
    searchCondition = EntityCondition.makeCondition(conditionMap,
EntityOperator.AND);
    notVirtualCondition =
EntityCondition.makeCondition(EntityCondition.makeCondition("isVirtual",
EntityOperator.EQUALS, null),
                                                         EntityOperator.OR,
                                                        
EntityCondition.makeCondition("isVirtual", EntityOperator.NOT_EQUAL, "Y"));

    whereConditionsList = [searchCondition, notVirtualCondition];
    // add the discontinuation date condition
    if (productsSoldThruTimestamp) {
        discontinuationDateCondition = EntityCondition.makeCondition(
               [
                EntityCondition.makeCondition("salesDiscontinuationDate",
EntityOperator.EQUALS, null),
                EntityCondition.makeCondition("salesDiscontinuationDate",
EntityOperator.GREATER_THAN, productsSoldThruTimestamp)
               ],
               EntityOperator.OR);
        whereConditionsList.add(discontinuationDateCondition);
        searchParameterString = searchParameterString +
"&productsSoldThruTimestamp=" + productsSoldThruTimestamp;
    }

    // add search on internal name
    if (internalName) {
       
whereConditionsList.add(EntityCondition.makeCondition("internalName", true,
EntityOperator.LIKE, "%" + internalName + "%", true));
        searchParameterString = searchParameterString + "&internalName=" +
internalName;
    }
    
    // add search on productId 
    if (productId) {
        whereConditionsList.add(EntityCondition.makeCondition("productId",
true, EntityOperator.LIKE, productId + "%", true));
        searchParameterString = searchParameterString + "&productId=" +
productId;
    }
    whereCondition = EntityCondition.makeCondition(whereConditionsList,
EntityOperator.AND);

    beganTransaction = false;
    List prods = null;
    try {
        beganTransaction = TransactionUtil.begin();
        prodsEli = delegator.findListIteratorByCondition(prodView,
whereCondition, null, null, ['productId'], findOpts);
        prods = prodsEli.getCompleteList();
        prodsEli.close();
    } catch (GenericEntityException e) {
        errMsg = "Failure in operation, rolling back transaction";
        Debug.logError(e, errMsg, "ViewFacilityInventoryByProduct");
        try {
            // only rollback the transaction if we started one...
            TransactionUtil.rollback(beganTransaction, errMsg, e);
        } catch (GenericEntityException e2) {
            Debug.logError(e2, "Could not rollback transaction: " +
e2.toString(), "ViewFacilityInventoryByProduct");
        }
        // after rolling back, rethrow the exception
        throw e;
    } finally {
        // only commit the transaction if we started one... this will throw
an exception if it fails
        TransactionUtil.commit(beganTransaction);
    }

    // If the user has specified a number of months over which to sum usage
quantities, define the correct timestamp
    Timestamp checkTime = null;
    monthsInPastLimitStr = request.getParameter("monthsInPastLimit");
    if (monthsInPastLimitStr) {
        try {
            monthsInPastLimit = Integer.parseInt(monthsInPastLimitStr);
            cal = UtilDateTime.toCalendar(null);
            cal.add(Calendar.MONTH, 0 - monthsInPastLimit);
            checkTime = UtilDateTime.toTimestamp(cal.getTime());
            searchParameterString += "&monthsInPastLimit=" +
monthsInPastLimitStr;
        } catch (Exception e) {
            // Ignore
        }
    }

    prods.each { oneProd ->
        oneInventory = [:];
        oneInventory.checkTime = checkTime;
        oneInventory.facilityId = facilityId;
        oneInventory.productId = oneProd.productId;
        oneInventory.minimumStock = oneProd.minimumStock as String;
        oneInventory.reorderQuantity = oneProd.reorderQuantity;
        oneInventory.daysToShip = oneProd.daysToShip;
        rows.add(oneInventory);
    }

}
context.inventoryByProduct = rows;
context.searchParameterString = searchParameterString;

-----------------------------------------END--------------------------------------------


-- 
View this message in context: http://www.nabble.com/I-need-help-in-Invertory-seaction-in-facility-tab.-tp19029623p19029623.html
Sent from the OFBiz - User mailing list archive at Nabble.com.


Re: I need help in Invertory seaction in facility tab.

Posted by BJ Freeman <bj...@free-man.net>.
followed your instructions on demo server
https://demo.hotwaxmedia.com/facility/control/ViewFacilityInventoryByProduct
no error.
display info.

gopalbi sent the following on 8/18/2008 4:20 AM:
> Hello friends,
> 
>   please help me.
> 
> When i go to Facility-->Facilities-->Inventoy Search option form. if i am
> putting productId like (WG-1111) then it show the exception like
> -------------------------------------****************------------------------
> :ERROR MESSAGE: 
> org.ofbiz.widget.screen.ScreenRenderException: Error rendering screen
> [component://product/widget/facility/FacilityScreens.xml#ViewFacilityInventoryByProduct]:
> groovy.lang.MissingMethodException: No signature of method: static
> org.ofbiz.entity.condition.EntityCondition.makeCondition() is applicable for
> argument types: (java.lang.String, java.lang.Boolean,
> org.ofbiz.entity.condition.EntityOperator$8, java.lang.String,
> java.lang.Boolean) values: {"productId", true, LIKE, "WG-1111%", true} (No
> signature of method: static
> org.ofbiz.entity.condition.EntityCondition.makeCondition() is applicable for
> argument types: (java.lang.String, java.lang.Boolean,
> org.ofbiz.entity.condition.EntityOperator$8, java.lang.String,
> java.lang.Boolean) values: {"productId", true, LIKE, "WG-1111%", true}) 
> 
> -------------------------------------*******************-------------------------------------
> 
> I am sending you the groovy file which i am using. I am unable to find where
> is actual problem.But if i am trying with blank productId and then click to
> the Find button then it show the result.
> 
> 
> 
> 
> ---------------------------------------ViewFacilityInventoryByProduct.groovy-----------------
> 
> import java.util.*
> import java.sql.Timestamp
> import org.ofbiz.base.util.*
> import org.ofbiz.entity.*
> import org.ofbiz.entity.condition.*
> import org.ofbiz.entity.transaction.*
> import org.ofbiz.entity.model.DynamicViewEntity
> import org.ofbiz.entity.model.ModelKeyMap
> import org.ofbiz.entity.util.EntityFindOptions
> import org.ofbiz.product.inventory.*
> 
> action = request.getParameter("action");
> 
> searchParameterString = "";
> searchParameterString = "action=Y&facilityId=" + facilityId;
> 
> offsetQOH = -1;
> offsetATP = -1;
> hasOffsetQOH = false;
> hasOffsetATP = false;
> 
> rows = [] as ArrayList;
> 
> if (action) {
>     // ------------------------------
>     prodView = new DynamicViewEntity();
>     conditionMap = [facilityId : facilityId];
> 
>     if (offsetQOHQty) {
>         try {
>             offsetQOH = Integer.parseInt(offsetQOHQty);
>             hasOffsetQOH = true;
>             searchParameterString = searchParameterString + "&offsetQOHQty="
> + offsetQOH;
>         } catch(NumberFormatException nfe) {
>         }
>     }
>     if (offsetATPQty) {
>         try {
>             offsetATP = Integer.parseInt(offsetATPQty);
>             hasOffsetATP = true;
>             searchParameterString = searchParameterString + "&offsetATPQty="
> + offsetATP;
>         } catch(NumberFormatException nfe) {
>         }
>     }
> 
>     prodView.addMemberEntity("PRFA", "ProductFacility");
>     prodView.addAliasAll("PRFA", null);
> 
>     prodView.addMemberEntity("PROD", "Product");
>     prodView.addViewLink("PROD", "PRFA", Boolean.FALSE,
> ModelKeyMap.makeKeyMapList("productId"));
>     prodView.addAlias("PROD", "internalName");
>     prodView.addAlias("PROD", "isVirtual");
>     prodView.addAlias("PROD", "salesDiscontinuationDate");
>     if (productTypeId) {
>         prodView.addAlias("PROD", "productTypeId");
>         conditionMap.productTypeId = productTypeId;
>         searchParameterString = searchParameterString + "&productTypeId=" +
> productTypeId;
>     }
>     if (searchInProductCategoryId) {
>         prodView.addMemberEntity("PRCA", "ProductCategoryMember");
>         prodView.addViewLink("PRFA", "PRCA", Boolean.FALSE,
> ModelKeyMap.makeKeyMapList("productId"));
>         prodView.addAlias("PRCA", "productCategoryId");
>         conditionMap.productCategoryId = searchInProductCategoryId;
>         searchParameterString = searchParameterString +
> "&searchInProductCategoryId=" + searchInProductCategoryId;
>     }
> 
>     if (productSupplierId) {
>         prodView.addMemberEntity("SPPR", "SupplierProduct");
>         prodView.addViewLink("PRFA", "SPPR", Boolean.FALSE,
> ModelKeyMap.makeKeyMapList("productId"));
>         prodView.addAlias("SPPR", "partyId");
>         conditionMap.partyId = productSupplierId;
>         searchParameterString = searchParameterString +
> "&productSupplierId=" + productSupplierId;
>     }
>     
>     // set distinct on so we only get one row per product
>     findOpts = new EntityFindOptions(true,
> EntityFindOptions.TYPE_SCROLL_INSENSITIVE,
> EntityFindOptions.CONCUR_READ_ONLY, true);
>     searchCondition = EntityCondition.makeCondition(conditionMap,
> EntityOperator.AND);
>     notVirtualCondition =
> EntityCondition.makeCondition(EntityCondition.makeCondition("isVirtual",
> EntityOperator.EQUALS, null),
>                                                          EntityOperator.OR,
>                                                         
> EntityCondition.makeCondition("isVirtual", EntityOperator.NOT_EQUAL, "Y"));
> 
>     whereConditionsList = [searchCondition, notVirtualCondition];
>     // add the discontinuation date condition
>     if (productsSoldThruTimestamp) {
>         discontinuationDateCondition = EntityCondition.makeCondition(
>                [
>                 EntityCondition.makeCondition("salesDiscontinuationDate",
> EntityOperator.EQUALS, null),
>                 EntityCondition.makeCondition("salesDiscontinuationDate",
> EntityOperator.GREATER_THAN, productsSoldThruTimestamp)
>                ],
>                EntityOperator.OR);
>         whereConditionsList.add(discontinuationDateCondition);
>         searchParameterString = searchParameterString +
> "&productsSoldThruTimestamp=" + productsSoldThruTimestamp;
>     }
> 
>     // add search on internal name
>     if (internalName) {
>        
> whereConditionsList.add(EntityCondition.makeCondition("internalName", true,
> EntityOperator.LIKE, "%" + internalName + "%", true));
>         searchParameterString = searchParameterString + "&internalName=" +
> internalName;
>     }
>     
>     // add search on productId 
>     if (productId) {
>         whereConditionsList.add(EntityCondition.makeCondition("productId",
> true, EntityOperator.LIKE, productId + "%", true));
>         searchParameterString = searchParameterString + "&productId=" +
> productId;
>     }
>     whereCondition = EntityCondition.makeCondition(whereConditionsList,
> EntityOperator.AND);
> 
>     beganTransaction = false;
>     List prods = null;
>     try {
>         beganTransaction = TransactionUtil.begin();
>         prodsEli = delegator.findListIteratorByCondition(prodView,
> whereCondition, null, null, ['productId'], findOpts);
>         prods = prodsEli.getCompleteList();
>         prodsEli.close();
>     } catch (GenericEntityException e) {
>         errMsg = "Failure in operation, rolling back transaction";
>         Debug.logError(e, errMsg, "ViewFacilityInventoryByProduct");
>         try {
>             // only rollback the transaction if we started one...
>             TransactionUtil.rollback(beganTransaction, errMsg, e);
>         } catch (GenericEntityException e2) {
>             Debug.logError(e2, "Could not rollback transaction: " +
> e2.toString(), "ViewFacilityInventoryByProduct");
>         }
>         // after rolling back, rethrow the exception
>         throw e;
>     } finally {
>         // only commit the transaction if we started one... this will throw
> an exception if it fails
>         TransactionUtil.commit(beganTransaction);
>     }
> 
>     // If the user has specified a number of months over which to sum usage
> quantities, define the correct timestamp
>     Timestamp checkTime = null;
>     monthsInPastLimitStr = request.getParameter("monthsInPastLimit");
>     if (monthsInPastLimitStr) {
>         try {
>             monthsInPastLimit = Integer.parseInt(monthsInPastLimitStr);
>             cal = UtilDateTime.toCalendar(null);
>             cal.add(Calendar.MONTH, 0 - monthsInPastLimit);
>             checkTime = UtilDateTime.toTimestamp(cal.getTime());
>             searchParameterString += "&monthsInPastLimit=" +
> monthsInPastLimitStr;
>         } catch (Exception e) {
>             // Ignore
>         }
>     }
> 
>     prods.each { oneProd ->
>         oneInventory = [:];
>         oneInventory.checkTime = checkTime;
>         oneInventory.facilityId = facilityId;
>         oneInventory.productId = oneProd.productId;
>         oneInventory.minimumStock = oneProd.minimumStock as String;
>         oneInventory.reorderQuantity = oneProd.reorderQuantity;
>         oneInventory.daysToShip = oneProd.daysToShip;
>         rows.add(oneInventory);
>     }
> 
> }
> context.inventoryByProduct = rows;
> context.searchParameterString = searchParameterString;
> 
> -----------------------------------------END--------------------------------------------
> 
>