Openbravo Issue Tracking System - Openbravo ERP
View Issue Details
0036399Openbravo ERP09. Financial managementpublic2017-07-04 08:332017-07-11 10:12
0036399: Avoid casting to Object when adding numeric results from a SimpleCallout
Avoid casting to Object when adding numeric values from a SimpleCallout. Before the callout refactor project (see 0032366), to set the value of a quantity it was possible to do the following:

String strHasSecondaryUOM = SLOrderProductData.hasSecondaryUOM(this, strMProductID);
info.addResult("inphasseconduom", (Object) strHasSecondaryUOM);

With the previous API, this avoided to send the value of a String surrounded by quotes. Thus, the value was finally being interpreted as a numeric value.

With the changes introduced in the mentioned project the API is more compact and it is not necessary to surround the strings between quotes to specify a string value. Therefore such castings should not be done as the type of the values is managed internally with a JSONObject.

The callouts affected by this internal change are:

- src/org/openbravo/erpCommon/ad_callouts/
- src/org/openbravo/erpCommon/ad_callouts/
- src/org/openbravo/erpCommon/ad_callouts/
- Login as System Admin Role
- Mark as displayed = Yes fields
  - Window: Goods Receipt/ Shipment, Tab: Lines, Fields: Order Quantity, Order Uom
  - Window: Goods Movement, Tab: Lines, Fields: Order Quantity, Order Uom
- Window: Physical Inventory, Tab: Lines, Fields: Order Quantity, Order Uom
- Logout
- Login as QA Testing Admin.
- Create a new Product "Test Product".
- Assign second UOM as Kilogram to "Test Product" in the UOM Tab
- Create a Goods Receipt
- Add a line and select the Test Product, enter Movement Quantity 1
- Realize that Order Uom and Order Quantity fields are not displayed.
- Save Record and Refresh (as Display Logic does not work)
- Realize that Order Uom and Order Quantity fields are displayed.

Note that the display logic is not working because of the fact that the display logic condition is expecting a numeric value. But a string is being sent:

info.addResult("inphasseconduom", (Object) strHasSecondaryUOM);
Replace the castings to Object in the mentioned callouts by sending the corresponding numeric value when it applies. For example

Instead of:

info.addResult("inphasseconduom", (Object) strHasSecondaryUOM);


info.addResult("inphasseconduom", Integer.parseInt(strHasSecondaryUOM));
No tags attached.
blocks defect 0036392 closed collazoandy4 Avoid casting to Object when adding numeric results from a SimpleCallout 
Issue History
2017-07-04 12:15aferrazTypedefect => backport
2017-07-04 12:15aferrazTarget Version => 3.0PR17Q1.3
2017-07-10 13:34hgbotCheckin
2017-07-10 13:34hgbotNote Added: 0097978
2017-07-10 13:34hgbotStatusscheduled => resolved
2017-07-10 13:34hgbotResolutionopen => fixed
2017-07-10 13:34hgbotFixed in SCM revision => [^]
2017-07-11 10:11hgbotCheckin
2017-07-11 10:11hgbotNote Added: 0098003
2017-07-11 10:12aferrazReview Assigned To => aferraz
2017-07-11 10:12aferrazNote Added: 0098005
2017-07-11 10:12aferrazStatusresolved => closed
2017-07-11 10:12aferrazFixed in Version => 3.0PR17Q1.3

2017-07-10 13:34   
Repository: erp/backports/3.0PR17Q1.3
Changeset: 7e6814346805992e9c14c27507450ae09fc4b44f
Author: Armaignac <collazoandy4 <at>>
Date: Mon Jul 10 12:49:45 2017 +0200
URL: [^]

Fixes issue 36399: Avoid casting when adding numeric results in SimpleCallout

The casting to Object was replace by a integer conversion, sending the
corresponding numeric value when it applies.

M src/org/openbravo/erpCommon/ad_callouts/
M src/org/openbravo/erpCommon/ad_callouts/
M src/org/openbravo/erpCommon/ad_callouts/
2017-07-11 10:11   
Repository: erp/backports/3.0PR17Q1.3
Changeset: 9766745887a24c04a29180e01c47613f8c4dcefb
Author: Armaignac <collazoandy4 <at>>
Date: Mon Jul 10 15:08:05 2017 -0400
URL: [^]

Related to issue 36399: Hide secondUOM fields if product doesn't have secondUOM

When a product with a second UOM was selected the associated fields are shown,
but not hidden when the product is change and doesn't have a second UOM because
the has_second_uom var is not updated with the corresponding value according
to the product selection.

The value of has_second_uom var is updated according to the product selection
in the result for a correct use in display logic function.

M src/org/openbravo/erpCommon/ad_callouts/
2017-07-11 10:12   
Code review + Testing OK