Anonymous | Login
Project:
RSS
  
News | My View | View Issues | Roadmap | Summary

View Issue DetailsJump to Notes ] Issue History ] Print ]
ID
0046542
TypeCategorySeverityReproducibilityDate SubmittedLast Update
defect[Openbravo Localizations] Localization Portugalmajoralways2021-05-06 10:112021-09-15 18:11
ReporterlmonrealView Statuspublic 
Assigned Topsanjuan 
PrioritynormalResolutionopenFixed in Version
StatusscheduledFix in branchFixed in SCM revision
ProjectionnoneETAnoneTarget Version
OSAnyDatabaseAnyJava version
OS VersionDatabase versionAnt version
Product VersionSCM revision 
Regression date
Regression introduced by commit
Regression level
Regression introduced in release
Summary

0046542: EWI when the Is Portuguese flag is selcted but there is no SAFT T Configured

DescriptionIf the cashier of a country that is not Portugal creates a Business Partner and selects by mistake the flag is Portuguese, the sales order associated generates an Error While Importing in back office.

This is happening when Is Portuguese flag is selected and there is no SAFT T.
From WEBPOS this is correct because the flow is not stopped but in back office the behaviour is not correct. No EWIS should be generated

EWI:

org.openbravo.base.exception.OBException: The indicated Tax ID doesn't have a correct Portuguese format.
    at com.practicsbs.saftpt.handler.SaftBPartnerFieldsHandler.onUpdate(SaftBPartnerFieldsHandler.java:56)
    at jdk.internal.reflect.GeneratedMethodAccessor314.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:95)
    at org.jboss.weld.injection.StaticMethodInjectionPoint.invoke(StaticMethodInjectionPoint.java:85)
    at org.jboss.weld.injection.MethodInvocationStrategy$SimpleMethodInvocationStrategy.invoke(MethodInvocationStrategy.java:168)
    at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:330)
    at org.jboss.weld.event.ObserverMethodImpl.sendEvent(ObserverMethodImpl.java:308)
    at org.jboss.weld.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:286)
    at javax.enterprise.inject.spi.ObserverMethod.notify(ObserverMethod.java:124)
    at org.jboss.weld.util.Observers.notify(Observers.java:166)
    at org.jboss.weld.event.ObserverNotifier.notifySyncObservers(ObserverNotifier.java:285)
    at org.jboss.weld.event.ObserverNotifier.notify(ObserverNotifier.java:273)
    at org.jboss.weld.event.EventImpl.fire(EventImpl.java:96)
    at org.openbravo.client.kernel.event.PersistenceEventOBInterceptor.sendUpdateEvent(PersistenceEventOBInterceptor.java:107)
    at org.openbravo.client.kernel.event.PersistenceEventOBInterceptor.onFlushDirty(PersistenceEventOBInterceptor.java:76)
    at org.openbravo.client.kernel.event.PersistenceEventOBInterceptor$Proxy$_$$_WeldClientProxy.onFlushDirty(Unknown Source)
    at org.openbravo.dal.core.OBInterceptor.onFlushDirty(OBInterceptor.java:194)
    at org.hibernate.event.internal.DefaultFlushEntityEventListener.invokeInterceptor(DefaultFlushEntityEventListener.java:355)
    at org.hibernate.event.internal.DefaultFlushEntityEventListener.handleInterception(DefaultFlushEntityEventListener.java:332)
    at org.hibernate.event.internal.DefaultFlushEntityEventListener.scheduleUpdate(DefaultFlushEntityEventListener.java:283)
    at org.hibernate.event.internal.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:154)
    at org.hibernate.event.internal.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:235)
    at org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:94)
    at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:38)
    at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1484)
    at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1470)
    at org.openbravo.dal.service.OBDal.flush(OBDal.java:265)
    at org.openbravo.retail.posterminal.CustomerLoader.saveRecord(CustomerLoader.java:102)
    at org.openbravo.mobile.core.process.DataSynchronizationProcess.saveRecord(DataSynchronizationProcess.java:200)
    at org.openbravo.mobile.core.process.DataSynchronizationProcess.exec(DataSynchronizationProcess.java:155)
    at org.openbravo.mobile.core.process.DataSynchronizationProcess.exec(DataSynchronizationProcess.java:87)
    at org.openbravo.mobile.core.process.MobileImportEntryProcessorRunnable.processEntry(MobileImportEntryProcessorRunnable.java:54)
    at org.openbravo.service.importprocess.ImportEntryProcessor$ImportEntryProcessRunnable.doRunCycle(ImportEntryProcessor.java:372)
    at org.openbravo.service.importprocess.ImportEntryProcessor$ImportEntryProcessRunnable.run(ImportEntryProcessor.java:293)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
Steps To Reproduce1. Have a client that does not have SAFT T configured
2. Create a business partner in WEBPOS and add products
3. Complete transaction
4. Check EWI in back office:

org.openbravo.base.exception.OBException: The indicated Tax ID doesn't have a correct Portuguese format.

I think these steps to reproduce must include the fact that IS Portuguese flag is set to Yes. To confirm.
TagsNo tags attached.
Attached Files

- Relationships Relation Graph ] Dependency Graph ]
related to defect 0046014 scheduledpsanjuan Unexpected 'Is Portuguese' field on the customer creation popup 

-  Notes
(0127929)
psanjuan (manager)
2021-05-10 09:37

This issue will be handle with Practics.
(0127962)
psanjuan (manager)
2021-05-10 16:42

See http://practicsbs.zendesk.com/hc/requests/8821 [^]
(0131802)
psanjuan (manager)
2021-09-15 09:43

Respuesta de Practics:
Buenas tardes Patricia,

Resume los detalles del Issue indicado para estar situados:

1. Se crea un Tercero en un Terminal NO portugués y por error se marca la casilla "Is Portuguese" en la ficha del Tercero, añadiendo un NIF NO portugués.

2. Se realiza una venta desde el TPV y se le asigna este nuevo Tercero.

3. Cuando la venta llega al BackOffice se queda en EWI debido a que el check indica que el NIF debe ser portugués pero realmente no lo es.

Dicho esto, os confirmo que este funcionamiento es correcto y está hecho así a propósito para controlar la siguiente situación:

Inicialmente, validábamos si el NIF era portugués o no en función de si la Dirección del Tercero tenía como país Portugal, pero más adelante nos dimos cuenta de que podía ser que alguien viviera en Portugal y tuviera un NIF español, o viceversa, que alguien viva actualmente en España pero tenga un NIF de Portugal.

A raíz de esto, creamos el campo "Es portugués" para indicar si el formato del NIF introducido debía ser validado o no según el formato portugués.

¿Qué sentido tiene que en un terminal NO portugués se aplique esta validación? --> Bien, puede darse el caso de que un cliente portugués vaya a comprar una tienda en España y le den de alta en el sistema por primera vez.
Dicha venta no aparecerá en el SAF-T debido a que la Org. del Terminal no es portuguesa, tampoco lo hará el Tercero.
Pasado un tiempo, el mismo cliente va a una Tienda portuguesa y realiza otra compra, en esta ocasión la compra sí que aparecerá en el fichero SAF-T y la información del Tercero también. De forma que si inicialmente el Tercero se creó con un NIF incorrecto, si no se hubiera validado inicialmente, aparecería la información errónea en el fichero.

Es por este motivo que realizamos la validación sin importar el terminal desde el que se emite la venta.

Si os parece correcto, podemos realizar esta validación en el POS tanto si el TPV es portugués como si no lo es, para que en el mismo momento lo puedan solucionar.

Pendientes de vuestra opinión.
(0131803)
psanjuan (manager)
2021-09-15 09:54

Respuesta Openbravo

Hola Jordi,

Gracias por tu respuesta.

En base a tu explicación, entiendo que la solución a este issue sería que si el tercero NO es Portugues, pero por error se marca la casilla "Is Portuguese", que el sistema avise de que eso no es correcto.

Es decir:

    si el tercero que se está creando tiene dirección de España y un NIF no Portugues, no tiene sentido que se pueda marcar la casilla de "Is Portuguese", no? El sistema no debería permitir que se marque por error.
    si el tercero que se está creando tiene dirección de PT y NIF de PT, entonces se debería marcar
    si el tercero que se está creando tiene dirección de ES y NIF de PT, entonces de debería marcar para que el NIF se pueda validar.

¿Es correcto como lo entiendo?

A todo esto contamos que el entorno de Openbravo, tendrá instalados los módulos del SAFT que son los que incluyen esta funcionalidad, aunque la tienda donde se realicen estas operaciones no sea de PT, por lo que explicas. En el sentido de que ese tercero podría utilizarse después en una tienda de PT donde en esa sí es fundamental que sus datos sean correctos.

¿Qué opinas?

Gracias y saludos,

Patricia.
(0131808)
psanjuan (manager)
2021-09-15 10:55

Hola Jordi,

Puntualizo.
Proponeis validar en el POS directamente el formato de NIF portugues cuando se marca que el tercero es portugues.
Con la salvedad de que No te dejaría continuar la transacción en el POS hasta que el NIF sea válido (o se desmarque la casilla de "Es Portugues", si es que se ha seleccionado por error).
De esa forma el NIF siempre llegaría bien al BO.

Entendemos que esa validación la haceis ya en el POS cuando el terminal es portugues, correcto?
Vuestra propuesta es hacer esa validación siempre, independientemente del país del TPV.

¿es correcto?

Gracias,
Patricia.
(0131831)
hgbot (developer)
2021-09-15 17:35

Merge Request created: https://gitlab.com/openbravo/product/pmods/com.practicsbs.saftpt.retail/-/merge_requests/16 [^]
(0131832)
hgbot (developer)
2021-09-15 17:50

Merge Request created: https://gitlab.com/openbravo/product/pmods/com.practicsbs.saftpt.retail/-/merge_requests/17 [^]
(0131833)
hgbot (developer)
2021-09-15 17:55

Merge Request created: https://gitlab.com/openbravo/product/pmods/com.practicsbs.saftpt.retail/-/merge_requests/18 [^]
(0131834)
hgbot (developer)
2021-09-15 18:11

Merge Request created: https://gitlab.com/openbravo/product/pmods/com.practicsbs.saftpt.retail/-/merge_requests/19 [^]

- Issue History
Date Modified Username Field Change
2021-05-06 10:11 lmonreal New Issue
2021-05-06 10:11 lmonreal Assigned To => Retail
2021-05-06 10:11 lmonreal Resolution time => 1621461600
2021-05-06 10:11 lmonreal Triggers an Emergency Pack => No
2021-05-10 09:37 psanjuan Note Added: 0127929
2021-05-10 09:37 psanjuan Assigned To Retail => psanjuan
2021-05-10 16:42 psanjuan Note Added: 0127962
2021-07-02 13:40 psanjuan Steps to Reproduce Updated View Revisions
2021-07-02 13:43 psanjuan Relationship added related to 0046014
2021-08-23 09:53 aferraz Project Retail Modules => Openbravo Localizations
2021-08-23 09:53 aferraz Category Web POS => Localization Portugal
2021-08-24 09:00 vmromanos Status new => scheduled
2021-09-15 09:43 psanjuan Note Added: 0131802
2021-09-15 09:54 psanjuan Note Added: 0131803
2021-09-15 10:55 psanjuan Note Added: 0131808
2021-09-15 16:32 hgbot Note Added: 0131824
2021-09-15 16:34 hgbot Note Added: 0131825
2021-09-15 16:39 hgbot Note Added: 0131826
2021-09-15 16:41 hgbot Note Added: 0131827
2021-09-15 17:35 hgbot Note Added: 0131831
2021-09-15 17:50 hgbot Note Added: 0131832
2021-09-15 17:55 hgbot Note Added: 0131833
2021-09-15 18:11 hgbot Note Added: 0131834
2021-09-16 10:22 aferraz Note Deleted: 0131824
2021-09-16 10:23 aferraz Note Deleted: 0131825
2021-09-16 10:23 aferraz Note Deleted: 0131826
2021-09-16 10:23 aferraz Note Deleted: 0131827


Copyright © 2000 - 2009 MantisBT Group
Powered by Mantis Bugtracker