Openbravo Issue Tracking System - Openbravo ERP
View Issue Details
0036397Openbravo ERP09. Financial managementpublic2017-07-04 08:332017-07-11 10:15
caristu 
collazoandy4 
highminorN/A
closedfixed 
5
 
3.0PR17Q33.0PR17Q3 
aferraz
Core
No
0036397: 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/SL_InOutLine_Product.java
- src/org/openbravo/erpCommon/ad_callouts/SL_Movement_Product.java
- src/org/openbravo/erpCommon/ad_callouts/SL_Inventory_Product.java
- 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);

Use:

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.0PR17Q3
2017-07-10 13:32hgbotCheckin
2017-07-10 13:32hgbotNote Added: 0097976
2017-07-10 13:32hgbotStatusscheduled => resolved
2017-07-10 13:32hgbotResolutionopen => fixed
2017-07-10 13:32hgbotFixed in SCM revision => http://code.openbravo.com/erp/backports/3.0PR17Q3/rev/cd7822ad1e55aae6205a615192e6a38508bbca3c [^]
2017-07-11 10:14hgbotCheckin
2017-07-11 10:14hgbotNote Added: 0098008
2017-07-11 10:15aferrazReview Assigned To => aferraz
2017-07-11 10:15aferrazNote Added: 0098010
2017-07-11 10:15aferrazStatusresolved => closed
2017-07-11 10:15aferrazFixed in Version => 3.0PR17Q3

Notes
(0097976)
hgbot   
2017-07-10 13:32   
Repository: erp/backports/3.0PR17Q3
Changeset: cd7822ad1e55aae6205a615192e6a38508bbca3c
Author: Armaignac <collazoandy4 <at> gmail.com>
Date: Mon Jul 10 12:49:45 2017 +0200
URL: http://code.openbravo.com/erp/backports/3.0PR17Q3/rev/cd7822ad1e55aae6205a615192e6a38508bbca3c [^]

Fixes issue 36397: 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/SL_InOutLine_Product.java
M src/org/openbravo/erpCommon/ad_callouts/SL_Inventory_Product.java
M src/org/openbravo/erpCommon/ad_callouts/SL_Movement_Product.java
---
(0098008)
hgbot   
2017-07-11 10:14   
Repository: erp/backports/3.0PR17Q3
Changeset: e925840e8cc20c823b59dcc9c700fa3c0d67dbff
Author: Armaignac <collazoandy4 <at> gmail.com>
Date: Mon Jul 10 15:08:05 2017 -0400
URL: http://code.openbravo.com/erp/backports/3.0PR17Q3/rev/e925840e8cc20c823b59dcc9c700fa3c0d67dbff [^]

Related to issue 36397: 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/SL_InOutLine_Product.java
---
(0098010)
aferraz   
2017-07-11 10:15   
Code review + Testing OK