Re: svn commit: r927276 - /ofbiz/trunk/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java

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

Re: svn commit: r927276 - /ofbiz/trunk/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java

Scott Gray-2
Hi Ashish,

What will happen if I want to override the ProductStore setting using the Product setting?
If the ProductStore is set to PRODRQM_AUTO and the product is set to something else then both requirements methods will be in effect.

It would be better to check something like this (pseudo-code):
if (product.method != auto OR (product.method == null && productStore.method != auto)) continue;

Regards
Scott

HotWax Media
http://www.hotwaxmedia.com

On 24/03/2010, at 11:47 PM, [hidden email] wrote:

> Author: ashish
> Date: Thu Mar 25 05:47:33 2010
> New Revision: 927276
>
> URL: http://svn.apache.org/viewvc?rev=927276&view=rev
> Log:
> The code was not working if you set flag on ProductStore for Requirement enum id.
> I have put conditional check so that it will first check in product store and then in product for the existence of requirementEnumId if found then it will run the code in if block. Conditional if existed in past is transferred into else block.
>
> Modified:
>    ofbiz/trunk/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java
>
> Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java?rev=927276&r1=927275&r2=927276&view=diff
> ==============================================================================
> --- ofbiz/trunk/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java (original)
> +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java Thu Mar 25 05:47:33 2010
> @@ -215,21 +215,23 @@ public class RequirementServices {
>                 GenericValue item = (GenericValue) iter.next();
>                 GenericValue product = item.getRelatedOne("Product");
>                 if (product == null) continue;
> -                if (! "PRODRQM_AUTO".equals(product.get("requirementMethodEnumId"))) continue;
> -
> -                BigDecimal quantity = item.getBigDecimal("quantity");
> -                BigDecimal cancelQuantity = item.getBigDecimal("cancelQuantity");
> -                BigDecimal required = quantity.subtract(cancelQuantity == null ? BigDecimal.ZERO : cancelQuantity);
> -                if (required.compareTo(BigDecimal.ZERO) <= 0) continue;
> -
> -                Map input = UtilMisc.toMap("userLogin", userLogin, "facilityId", facilityId, "productId", product.get("productId"), "quantity", required, "requirementTypeId", "PRODUCT_REQUIREMENT");
> -                Map results = dispatcher.runSync("createRequirement", input);
> -                if (ServiceUtil.isError(results)) return results;
> -                String requirementId = (String) results.get("requirementId");
> -
> -                input = UtilMisc.toMap("userLogin", userLogin, "orderId", order.get("orderId"), "orderItemSeqId", item.get("orderItemSeqId"), "requirementId", requirementId, "quantity", required);
> -                results = dispatcher.runSync("createOrderRequirementCommitment", input);
> -                if (ServiceUtil.isError(results)) return results;
> +                if ("PRODRQM_AUTO".equals(productStore.get("requirementMethodEnumId")) || "PRODRQM_AUTO".equals(product.get("requirementMethodEnumId"))) {
> +                    BigDecimal quantity = item.getBigDecimal("quantity");
> +                    BigDecimal cancelQuantity = item.getBigDecimal("cancelQuantity");
> +                    BigDecimal required = quantity.subtract(cancelQuantity == null ? BigDecimal.ZERO : cancelQuantity);
> +                    if (required.compareTo(BigDecimal.ZERO) <= 0) continue;
> +    
> +                    Map input = UtilMisc.toMap("userLogin", userLogin, "facilityId", facilityId, "productId", product.get("productId"), "quantity", required, "requirementTypeId", "PRODUCT_REQUIREMENT");
> +                    Map results = dispatcher.runSync("createRequirement", input);
> +                    if (ServiceUtil.isError(results)) return results;
> +                    String requirementId = (String) results.get("requirementId");
> +    
> +                    input = UtilMisc.toMap("userLogin", userLogin, "orderId", order.get("orderId"), "orderItemSeqId", item.get("orderItemSeqId"), "requirementId", requirementId, "quantity", required);
> +                    results = dispatcher.runSync("createOrderRequirementCommitment", input);
> +                    if (ServiceUtil.isError(results)) return results;
> +                } else if (! "PRODRQM_AUTO".equals(product.get("requirementMethodEnumId"))) {
> +                    continue;
> +                }
>             }
>         } catch (GenericEntityException e) {
>             Debug.logError(e, module);
>
>


smime.p7s (3K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: svn commit: r927276 - /ofbiz/trunk/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java

Ashish Vijaywargiya
Yes, you are correct. Will take care of it shortly.
Thanks for your comment on this Scott!

--
Ashish

On Thu, Mar 25, 2010 at 11:35 AM, Scott Gray <[hidden email]> wrote:

> Hi Ashish,
>
> What will happen if I want to override the ProductStore setting using the Product setting?
> If the ProductStore is set to PRODRQM_AUTO and the product is set to something else then both requirements methods will be in effect.
>
> It would be better to check something like this (pseudo-code):
> if (product.method != auto OR (product.method == null && productStore.method != auto)) continue;
>
> Regards
> Scott
>
> HotWax Media
> http://www.hotwaxmedia.com
>
> On 24/03/2010, at 11:47 PM, [hidden email] wrote:
>
>> Author: ashish
>> Date: Thu Mar 25 05:47:33 2010
>> New Revision: 927276
>>
>> URL: http://svn.apache.org/viewvc?rev=927276&view=rev
>> Log:
>> The code was not working if you set flag on ProductStore for Requirement enum id.
>> I have put conditional check so that it will first check in product store and then in product for the existence of requirementEnumId if found then it will run the code in if block. Conditional if existed in past is transferred into else block.
>>
>> Modified:
>>    ofbiz/trunk/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java
>>
>> Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java?rev=927276&r1=927275&r2=927276&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java (original)
>> +++ ofbiz/trunk/applications/order/src/org/ofbiz/order/requirement/RequirementServices.java Thu Mar 25 05:47:33 2010
>> @@ -215,21 +215,23 @@ public class RequirementServices {
>>                 GenericValue item = (GenericValue) iter.next();
>>                 GenericValue product = item.getRelatedOne("Product");
>>                 if (product == null) continue;
>> -                if (! "PRODRQM_AUTO".equals(product.get("requirementMethodEnumId"))) continue;
>> -
>> -                BigDecimal quantity = item.getBigDecimal("quantity");
>> -                BigDecimal cancelQuantity = item.getBigDecimal("cancelQuantity");
>> -                BigDecimal required = quantity.subtract(cancelQuantity == null ? BigDecimal.ZERO : cancelQuantity);
>> -                if (required.compareTo(BigDecimal.ZERO) <= 0) continue;
>> -
>> -                Map input = UtilMisc.toMap("userLogin", userLogin, "facilityId", facilityId, "productId", product.get("productId"), "quantity", required, "requirementTypeId", "PRODUCT_REQUIREMENT");
>> -                Map results = dispatcher.runSync("createRequirement", input);
>> -                if (ServiceUtil.isError(results)) return results;
>> -                String requirementId = (String) results.get("requirementId");
>> -
>> -                input = UtilMisc.toMap("userLogin", userLogin, "orderId", order.get("orderId"), "orderItemSeqId", item.get("orderItemSeqId"), "requirementId", requirementId, "quantity", required);
>> -                results = dispatcher.runSync("createOrderRequirementCommitment", input);
>> -                if (ServiceUtil.isError(results)) return results;
>> +                if ("PRODRQM_AUTO".equals(productStore.get("requirementMethodEnumId")) || "PRODRQM_AUTO".equals(product.get("requirementMethodEnumId"))) {
>> +                    BigDecimal quantity = item.getBigDecimal("quantity");
>> +                    BigDecimal cancelQuantity = item.getBigDecimal("cancelQuantity");
>> +                    BigDecimal required = quantity.subtract(cancelQuantity == null ? BigDecimal.ZERO : cancelQuantity);
>> +                    if (required.compareTo(BigDecimal.ZERO) <= 0) continue;
>> +
>> +                    Map input = UtilMisc.toMap("userLogin", userLogin, "facilityId", facilityId, "productId", product.get("productId"), "quantity", required, "requirementTypeId", "PRODUCT_REQUIREMENT");
>> +                    Map results = dispatcher.runSync("createRequirement", input);
>> +                    if (ServiceUtil.isError(results)) return results;
>> +                    String requirementId = (String) results.get("requirementId");
>> +
>> +                    input = UtilMisc.toMap("userLogin", userLogin, "orderId", order.get("orderId"), "orderItemSeqId", item.get("orderItemSeqId"), "requirementId", requirementId, "quantity", required);
>> +                    results = dispatcher.runSync("createOrderRequirementCommitment", input);
>> +                    if (ServiceUtil.isError(results)) return results;
>> +                } else if (! "PRODRQM_AUTO".equals(product.get("requirementMethodEnumId"))) {
>> +                    continue;
>> +                }
>>             }
>>         } catch (GenericEntityException e) {
>>             Debug.logError(e, module);
>>
>>
>
>