Bonjour,
Comme suite au message de Robin précédemment posté et résolu,
j’ai effectué la même manipulation et obtenu le même résultat positif (même si la recherche d’échéances en règlement manuel ne fonctionne toujours pas ):
le bouton « Enregistrer un paiement » est toujours visible dans la facture de vente
Si ce n’est pas le même cas pour vous, pour traiter ce problème de « pointeur nul », il faudrait avoir le log de sortie pour connaître l’instruction en cause.
Bonjour PakMax !
En effet, j’avais un premier souci que j’ai résolu grace au tips de Robin.
Mais après cette astuce, au moment de valider le paiement j’ai en effet un message d’erreur. Voici la trace :
TRACE
javax.persistence.PersistenceException: java.lang.NullPointerException
at com.axelor.apps.account.db.repo.InvoicePaymentManagementRepository.save(InvoicePaymentManagementRepository.java:35)
at com.axelor.apps.account.db.repo.InvoicePaymentManagementRepository.save(InvoicePaymentManagementRepository.java:26)
at com.axelor.apps.bankpayment.service.invoice.payment.InvoicePaymentValidateServiceBankPayImpl.validate(InvoicePaymentValidateServiceBankPayImpl.java:140)
at com.axelor.apps.businessproject.service.InvoicePaymentValidateProjectServiceImpl.validate(InvoicePaymentValidateProjectServiceImpl.java:77)
at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:56)
at com.axelor.apps.account.service.payment.invoice.payment.InvoicePaymentValidateServiceImpl.validate(InvoicePaymentValidateServiceImpl.java:129)
at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:56)
at com.axelor.apps.account.db.repo.InvoicePaymentManagementRepository.save(InvoicePaymentManagementRepository.java:31)
at com.axelor.apps.account.db.repo.InvoicePaymentManagementRepository.save(InvoicePaymentManagementRepository.java:26)
at com.axelor.rpc.Resource.save(Resource.java:1004)
at com.axelor.rpc.ResponseInterceptor.invoke(ResponseInterceptor.java:56)
at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:64)
at com.axelor.web.service.RestService.save(RestService.java:167)
at com.axelor.rpc.RequestFilter.invoke(RequestFilter.java:55)
at com.axelor.rpc.ResponseInterceptor.invoke(ResponseInterceptor.java:65)
at sun.reflect.GeneratedMethodAccessor803.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:742)
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:70)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at org.apache.shiro.guice.web.SimpleFilterChain.doFilter(SimpleFilterChain.java:44)
at io.buji.pac4j.filter.SecurityFilter.lambda$doFilter$0(SecurityFilter.java:86)
at org.pac4j.core.engine.DefaultSecurityLogic.perform(DefaultSecurityLogic.java:140)
at com.axelor.auth.pac4j.AuthPac4jModule$AxelorSecurityFilter$1.perform(AuthPac4jModule.java:479)
at com.axelor.auth.pac4j.AuthPac4jModule$AxelorSecurityFilter$1.perform(AuthPac4jModule.java:463)
at io.buji.pac4j.filter.SecurityFilter.doFilter(SecurityFilter.java:84)
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:94)
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:70)
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:82)
at com.axelor.web.servlet.CorsFilter.doFilter(CorsFilter.java:137)
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:493)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
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: java.lang.NullPointerException
at com.axelor.apps.bankpayment.service.invoice.payment.InvoicePaymentValidateServiceBankPayImpl.validate(InvoicePaymentValidateServiceBankPayImpl.java:95)
at com.axelor.apps.businessproject.service.InvoicePaymentValidateProjectServiceImpl.validate(InvoicePaymentValidateProjectServiceImpl.java:77)
at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:56)
at com.axelor.apps.account.service.payment.invoice.payment.InvoicePaymentValidateServiceImpl.validate(InvoicePaymentValidateServiceImpl.java:129)
at com.google.inject.persist.jpa.JpaLocalTxnInterceptor.invoke(JpaLocalTxnInterceptor.java:56)
at com.axelor.apps.account.db.repo.InvoicePaymentManagementRepository.save(InvoicePaymentManagementRepository.java:31)
… 79 more
En vous remerciant pour votre aide !
Excellente journée !
Comme il semblerait que vous soyez en mode découverte d’Axelor, il vaudrait mieux que vous utilisiez une des dernières versions, car un Bug relatif à ce point "Anomaly RM#41792 Invoice:NPE on paying" a été corrigé par Axelor le 29 septembre 2021
Bonsoir PakMax,
Merci pour cette information !
En revanche, je ne sais pas du tout comment faire la mise à jour…
La solution est installée via Docker chez un hébergeur, et j’ai paramétré 6 sociétés en exploitation, d’abord RH/Projet , puis facturation depuis le 1er Janvier.
Là je me sens coincé je ne peux pas suivre les règlements de mes factures !
Auriez vous une suggestion?
En vous remerciant,
L’erreur n’est pas simple à identifier uniquement au travers du Traceback. Il serait interessant d’avoir en visu l’écriture de vente ainsi que la configuration des comptes comptables associés (type, lettrable, …). L’erreur peut également venir de la configuration du mode de paiement.
Bonjour,
Problème solutionné !
En effet, le compte comptable tiers de la facture n’était pas correct (0_base PCG au lieu d’un 411…)
Et pour finir, j’ai désactiver le flag « Générer des écritures pour paiements directs sur factures » dans l’onglet facturation de la société, la comptabilité des règlements ne faisant pas partie de mon périmètre.
Merci de votre aide !