Je n'est aucun mouvement de stock lors d'une réception fournisseur

Quand je génère un bon de réception sur une commande fournisseur j’ai ce message qui s’affiche :

“Il n’y a pas de mouvement de stock à générer pour cette commande fournisseur.”

je vous remercie de votre aide CDT Julien MAINGARD.

Bonjour,

J’ai souvent ce message quand je "re"valide une commande.

Allez dans stock -> Réception fournisseurs
et dites moi si vous avez un bon de reception.

Egalement faite le point sur vos configurations :
Config Applicative -> Gestion des applications -> Supply chain (-> Configuration de la chaîne logistique)
Notamment "gestion des BR, générer auto. les BR …

Excellente journée,

Après avoir mis en place la supply chain, normalement un bon de réception devrait être crée automatiquement mais rien, et m’as commande reste sur le statut non facturé et non reçue du coup.

J’ai pas assez d’éléments de votre côté pour comprendre ce qui pourraient bloquer.

Les paramètres sont nombreux, pour trouver une solution rapidement je vous conseille :

  • faites des tests ici : https://demo.axelor.com/open-suite-fr/login.jsp

  • L’erreur fait que ca avait déjà été validé. Créez une nouvelle commande fournisseur pour voir s’il y a une différence.

  • ne pas hésitez à mettre votre commande en annulée pour “revalider” afin que le processus se relance (mais vu votre situation cette solution semble peut probable). Pour annuler une commande, vérifier dans les paramètres que vous pouvez annulé une commande déjà validée.

  • vérfiez les différents paramètres de vente/achat et supply chaine, mais aussi les informations du produits en question, un produit qui n’a pas la configuration pour être acheté pourrai être le probleme à votre bon de reception.

  • créez un bon de livraison directement, vous aurez peut-être une erreur précise, et surtout différente mais impliquée dans celle de la transformation à partir du bon de commande. (Une erreur peut en cacher une autre :wink: )

  • Les erreurs sont affichés dans des rapports ici :

Config Applicatives > Maintenance technique > Traceback
S’il y en a, merci de nous indiquer les premières lignes de l’erreur

Bon courage

2 Likes

Bonjour,

Le système ne génère des bons de réceptions que si un article est sélectionné sur une ligne de commande, que la quantité restante à livrée est supérieure à 0, et que le type de cet article (prestation, article) est configuré comme donnant lieu à un bon de réception. Cette configuration est accessible dans les paramètres par sociétés de l’app Supplychain.

Cordialement

Merci, j’essaye de tester tout ça, en espérant que cela fonctionne.

C’est pas mal les messages d’erreurs mais ils ne sont pas très explicite, j’ai ce message quand je valide une commande ou quand j’essaye de ventiler une facture :

javax.persistence.PersistenceException: javax.persistence.PersistenceException: org.hibernate.exception.ConstraintViolationException: could not execute statement
at com.axelor.apps.stock.db.repo.StockMoveManagementRepository.save(StockMoveManagementRepository.java:72)
at com.axelor.apps.stock.db.repo.StockMoveManagementRepository.save(StockMoveManagementRepository.java:33)
at com.axelor.apps.stock.service.StockMoveServiceImpl.setPlannedStatus(StockMoveServiceImpl.java:321)
at com.axelor.apps.stock.service.StockMoveServiceImpl.plan(StockMoveServiceImpl.java:300)
at com.axelor.apps.supplychain.service.StockMoveServiceSupplychainImpl.plan(StockMoveServiceSupplychainImpl.java:206)
at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:56)
at com.axelor.apps.supplychain.service.PurchaseOrderStockServiceImpl.createStockMove(PurchaseOrderStockServiceImpl.java:247)
at com.axelor.apps.supplychain.service.PurchaseOrderStockServiceImpl.createStockMoveFromPurchaseOrder(PurchaseOrderStockServiceImpl.java:140)
at com.axelor.apps.supplychain.service.PurchaseOrderServiceSupplychainImpl.validatePurchaseOrder(PurchaseOrderServiceSupplychainImpl.java:344)
at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:64)
at com.axelor.apps.purchase.web.PurchaseOrderController.validate(PurchaseOrderController.java:389)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.axelor.meta.ActionHandler.call(ActionHandler.java:185)
at com.axelor.meta.schema.actions.ActionMethod.evaluate(ActionMethod.java:76)
at com.axelor.meta.schema.actions.Action.execute(Action.java:98)
at com.axelor.meta.schema.actions.Action.wrap(Action.java:107)
at com.axelor.meta.schema.actions.ActionGroup.evaluate(ActionGroup.java:230)
at com.axelor.meta.schema.actions.Action.execute(Action.java:98)
at com.axelor.meta.schema.actions.Action.wrap(Action.java:107)
at com.axelor.meta.schema.actions.ActionGroup.evaluate(ActionGroup.java:230)
at com.axelor.meta.schema.actions.Action.execute(Action.java:95)
at com.axelor.meta.schema.actions.Action.wrap(Action.java:107)
at com.axelor.meta.ActionHandler.execute(ActionHandler.java:453)
at com.axelor.meta.ActionExecutor.execute(ActionExecutor.java:43)
at com.axelor.rpc.ResponseInterceptor.invoke(ResponseInterceptor.java:56)
at com.axelor.web.service.ActionService.execute(ActionService.java:96)
at com.axelor.rpc.RequestFilter.invoke(RequestFilter.java:55)
at com.axelor.rpc.ResponseInterceptor.invoke(ResponseInterceptor.java:65)
at sun.reflect.GeneratedMethodAccessor429.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:140)
at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:294)
at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:248)
at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:235)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:398)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:205)
at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:228)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:51)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:89)
at com.axelor.db.tenants.AbstractTenantFilter.doFilter(AbstractTenantFilter.java:67)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at org.apache.shiro.guice.web.SimpleFilterChain.doFilter(SimpleFilterChain.java:44)
at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
at com.axelor.auth.AuthFilter.doFilterInternal(AuthFilter.java:121)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
at org.apache.shiro.guice.web.SimpleFilterChain.doFilter(SimpleFilterChain.java:41)
at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)
at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at com.axelor.app.internal.AppFilter.doFilter(AppFilter.java:93)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at com.google.inject.persist.PersistFilter.doFilter(PersistFilter.java:94)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at com.axelor.db.tenants.AbstractTenantFilter.doFilter(AbstractTenantFilter.java:67)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at com.axelor.web.servlet.CorsFilter.doFilter(CorsFilter.java:132)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:121)
at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:133)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:609)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:810)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1623)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: javax.persistence.PersistenceException: org.hibernate.exception.ConstraintViolationException: could not execute statement
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:147)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:155)
at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:162)
at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1441)
at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1421)
at com.axelor.db.JPA.persist(JPA.java:128)
at com.axelor.db.JPA.save(JPA.java:159)
at com.axelor.db.JpaRepository.save(JpaRepository.java:85)
at com.axelor.apps.stock.db.repo.StockMoveManagementRepository.save(StockMoveManagementRepository.java:58)
… 93 more
Caused by: org.hibernate.exception.ConstraintViolationException: could not execute statement
at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:112)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:208)
at org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch.addToBatch(NonBatchingBatch.java:45)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3003)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3503)
at org.hibernate.action.internal.EntityInsertAction.execute(EntityInsertAction.java:89)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:589)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:463)
at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:337)
at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:39)
at org.hibernate.internal.SessionImpl.doFlush(SessionImpl.java:1435)
… 98 more
Caused by: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint “uk_7nehkpp5wsnh85m7a408d6hgi”
Détail : Key (stock_move_seq, company)=(001, 1) already exists.
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2412)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2125)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:297)
at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:428)
at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354)
at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:169)
at org.postgresql.jdbc.PgPreparedStatement.executeUpdate(PgPreparedStatement.java:136)
at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61)
at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java)
at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.executeUpdate(ResultSetReturnImpl.java:205)
… 107 more

Je suis pas sur de moi. Il me semble avoir déjà eu cette erreur.
Vou pouvez vérifier que dans la fiche produit, vous avez renseigné les informations du catalogue fournisseur dans les achats.

Oui, j’ai bien complété la fiche produit avec le catalogue fournisseur avec toutes les informations.

Ah :open_mouth:
Mais l’erreur est la meme ?

Quelle version d’Axelor avez vous ?

Votre produit est-il avec “gestion des numéros de lot ou série” ?

Oui Oui c’est la meme erreur, j’ai la version 5.2.2 et non j’ai enlever tout paramètre extérieur comme la gestion de numéro de série et les tests à la livraison pour localiser le problème.

Je me sens un peu inutile face à cette erreur (je suis pas dev et actif sur axelor que depuis Janvier).

Si vous n’avez aucune piste, voici mes propositions :

  • vérifier les séquences des élements à générer. Pour le maximum de documents et même les écritures comptables (probleme pour la ventilation ?)

Config Applicatives > Données générales > Séquences

  • Mettre à jour votre Axelor, entre votre 5.2.2 et la dernière version 5.3.8, il y a pas mal de changements et de correctifs.

Il y a un doublon dans la numérotation. C’est à dire que le système est configuré pour créer un mouvement de stock avec la séquence “001” alors que ce mouvement existe déjà pour la société concernée. Il faudrait donc changer la configuration des séquences pour incrémenter le compteur à la bonne valeur ou définir une nouvelle séquence.

Merci la solution était bien ça.
CDT Julien MAINGARD