Openbravo Issue Tracking System - POS2
View Issue Details
0057850POS2POSpublic2024-12-16 10:402025-02-10 16:23
jayala 
javierRodriguez 
normalmajorhave not tried
closedfixed 
5
 
25Q1 
No
0057850: Suggestions Engine use initial form values to make suggestions
In POS, if Suggestion Engine should suggest something, it's using the initial form values to make suggestions, instead the updated values.
1. Select a customer an edit any address.
2. Change Postal Code.
3. Type something into Address Line 1 to get suggestions.

This suggestions will be related to initial Postal Code, and not to the changed. Once you save the form, and opened again, data is saved, and the suggestions will be correctly generated.

This is also easily noticeable by using the network debugger, watching the network requests done to "getPropertySuggestion" endpoint (this is automatically requested when a the POS is going to show suggestions). Inside the request, the sent entity will contain the old data.

HOW TO REPRODUCE WITH SAMPLEBPINTEGRATION:
Having org.openbravo.retail.samplebpintegration module installed, and the CRM Dataset of this module imported and having CRM without coding enabled (at client window)
1. Select Arturo Montoro as customer an edit "Calle Estafeta 25" address.
2. Change Postal Code: Delete the input and type "310" to view some suggest, select "31010 - Baranain"
3. WITHOUT SAVE OR EXIT THE FORM, change again the Postal Code: Delete the input and type again "310" to watch some suggest, choose "31013 - Berriozar"
4. In network debbuger, the request to getPropertySuggestions, at payload, has entity.postalCode set to 31001. This is not correct because at UI the Postal Code have changed.
5. The infrastructure is using the old postalCode, and this is because the entity which is send to the server is not updated when is sent.
At CustomerFormHandlerUtils.js:
 1. Inside function "setFieldProperties", probably in payload.properties, another property is necessary >> valueChanged: true
 2. Inside function "propertyFormSuggestionSelected":
  2.1. Inside if "useSuggestionEngine" and "field.obAutoResolveSelection", the function "setFieldProperties" is executed with some arguments. Probably one of them is incorrect (probably field.data). If not, the call to this function is incorrect and some code will need to be developed inside these two if's.
  2.2. The variable "entityForSuggestions" is created using objectToValidate.getPlainObject(), which probably is not correct because this is using the old entity (not with the updated data). Probably this is not necessarily a bug and this code it's ok, because the real bug is in first point, and if it's solved, all be ok.

Take into account that this is some developer research after a debugging session, so this solutions/conclusions are not necessary correct.

HOW TO REPRODUCE WITH SAMPLEBPINTEGRATION:
Having org.openbravo.retail.samplebpintegration module installed, and the CRM Dataset of this module imported and having CRM without coding enabled (at client window)
1. Select Arturo Montoro as customer an edit "Calle Estafeta 25" address.
2. Change Postal Code: Delete the input and type "310" to view some suggest, select "31010 - Baranain"
3. WITHOUT SAVE OR EXIT THE FORM, change again the Postal Code: Delete the input and type again "310" to watch some suggest, choose "31013 - Berriozar"
4. In network debbuger, the request to getPropertySuggestions, at payload, has entity.postalCode set to 31001. This is not correct because at UI the Postal Code have changed.
5. The infrastructure is using the old postalCode, and this is because the entity which is send to the server is not updated when is sent.

* A video have been attached to clarify how to reproduce the error.
* The problem (probably) is not from suggest, it's because the infrastructure doesn't update internally the state of the form and later the entity is not correctly sent.

Have fun!
¯\_( ͡❛ ͜ʖ ͡❛)_/¯
No tags attached.
blocks defect 0057455 closed javierRodriguez Suggestions Engine use initial form values to make suggestions 
Issue History
2025-02-04 09:11guilleaerTypedefect => backport
2025-02-04 09:11guilleaerTarget Version => 25Q1
2025-02-06 12:40guilleaerSeverityminor => major
2025-02-10 16:23javierRodriguezNote Added: 0175424
2025-02-10 16:23javierRodriguezStatusscheduled => resolved
2025-02-10 16:23javierRodriguezResolutionopen => fixed
2025-02-10 16:23javierRodriguezStatusresolved => closed

Notes
(0175424)
javierRodriguez   
2025-02-10 16:23   
Fixed in commit : https://gitlab.com/orisha-group/bu-commerce/openbravo/product/pmods/org.openbravo.core2/-/commit/4363921a5f802b15a0dd10f6b9ccb272c5b3fefa [^]