Openbravo Issue Tracking System - Retail Modules
View Issue Details
0037349Retail ModulesWeb POSpublic2017-11-22 08:202017-12-05 18:06
guillermogil 
ranjith_qualiantech_com 
normalmajoralways
closedfixed 
5
 
RR18Q1 
marvintm
No
0037349: If the Business Partner has no Payment terms the error message is not descriptive enough
If the Business Partner has no Payment terms the error message is not descriptive enough to troubleshoot the issue.
The same happens if the Document Type is not defined.
It seems to be related to the unhandled cases of constraint at database level.

The error is like the following:
org.openbravo.base.exception.OBException: Couldn't disable triggers:
    at org.openbravo.dal.core.TriggerHandler.enable(TriggerHandler.java:111)
    at org.openbravo.retail.posterminal.ProcessCashClose.doReconciliationAndInvoices(ProcessCashClose.java:277)
    at org.openbravo.retail.posterminal.ProcessCashClose.saveRecord(ProcessCashClose.java:143)
    at org.openbravo.mobile.core.process.DataSynchronizationProcess.saveRecord(DataSynchronizationProcess.java:196)
    at org.openbravo.mobile.core.process.DataSynchronizationProcess.exec(DataSynchronizationProcess.java:153)
    at org.openbravo.retail.posterminal.SaveDataActionHandler.execute(SaveDataActionHandler.java:86)
    at org.openbravo.client.kernel.BaseActionHandler.execute(BaseActionHandler.java:73)
    at org.openbravo.retail.posterminal.SaveDataActionHandler$Proxy$_$$_WeldClientProxy.execute(SaveDataActionHandler$Proxy$_$$_WeldClientProxy.java)
    at org.openbravo.client.kernel.KernelServlet.processActionRequest(KernelServlet.java:314)
    at org.openbravo.client.kernel.KernelServlet.doGet(KernelServlet.java:206)
    at org.openbravo.client.kernel.KernelServlet.doPost(KernelServlet.java:287)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    at org.openbravo.base.HttpBaseServlet.serviceInitialized(HttpBaseServlet.java:228)
    at org.openbravo.base.secureApp.HttpSecureAppServlet.service(HttpSecureAppServlet.java:452)
    at org.openbravo.client.kernel.BaseKernelServlet.callServiceInSuper(BaseKernelServlet.java:87)
    at org.openbravo.client.kernel.BaseKernelServlet.service(BaseKernelServlet.java:58)
    at org.openbravo.client.kernel.KernelServlet.service(KernelServlet.java:168)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.openbravo.utils.SessionExpirationFilter.doFilter(SessionExpirationFilter.java:66)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.openbravo.utils.CharsetFilter.doFilter(CharsetFilter.java:35)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.openbravo.client.kernel.KernelFilter$1.doAction(KernelFilter.java:62)
    at org.openbravo.dal.core.ThreadHandler.run(ThreadHandler.java:46)
    at org.openbravo.client.kernel.KernelFilter.doFilter(KernelFilter.java:71)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.openbravo.dal.core.DalRequestFilter$1.doAction(DalRequestFilter.java:81)
    at org.openbravo.dal.core.ThreadHandler.run(ThreadHandler.java:46)
    at org.openbravo.dal.core.DalRequestFilter.doFilter(DalRequestFilter.java:103)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2182)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1911)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:173)
    at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:622)
    at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:472)
    at org.postgresql.jdbc.PgStatement.executeUpdate(PgStatement.java:429)
    at org.openbravo.dal.core.TriggerHandler.enable(TriggerHandler.java:109)
    ... 52 more

But the reality is that it should show:
Exception:org.postgresql.util.PSQLException: ERROR: null value in column "c_doctype_id" violates not-null constraint
  Detail: Failing row contains (34F545F38F8E494B82B0865DFA609C07, E458618056C24D0088568C7F4E7AABD5, F12573C4279D4225973A7EE7D5EFF60B, Y, 2017-11-22 08:11:08.280403, E294E34A5D42494C947465AD2569B5CE, 2017-11-22 08:11:08.280403, E294E34A5D42494C947465AD2569B5CE, Y, WebPOS_CashUp_571678, CO, RE, N, Y, N, null, null, 1CC53971AC78ABB7937C8F525F213BDF, Created by cash up Chi ZHANG - 22-11-2017 05:55:44. Order No. 12..., N, null, 2017-11-22 05:55:44, null, 2017-11-22 05:55:44, 9F263861237F49BD9941A996D7F4BF2F, 1A4024EE436A465A839FC0C351472CBE, null, Y, 2017-11-22 00:00:00, 332, null, 52842356BE564D06818F4938EB3353E0, null, 0, 212.82, 249.00, 80E0B089A16B4FB2A17AF8EA426E12D0, N, null, null, null, null, null, null, null, N, null, null, null, null, null, null, Y, 249.00, 0, 0, 0, null, N, 835F3879DF82409AA9918866FE3069D8, null, null, null, null, null, null, null, N, 0, Y, RE).
On VBS Customer remove payment terms
Login on VBS-1 till
Create a ticket and then a cashup.Go to errors while importing window
No tags attached.
related to defect 0036579 closed ranjith_qualiantech_com Cash Up cannot be imported if the business partner does not have Payment Terms and Payment Method defined 
Issue History
2017-11-22 08:20guillermogilNew Issue
2017-11-22 08:20guillermogilAssigned To => Retail
2017-11-22 08:20guillermogilResolution time => 1513119600
2017-11-22 08:20guillermogilTriggers an Emergency Pack => No
2017-11-22 11:14ranjith_qualiantech_comRelationship addedrelated to 0036579
2017-11-23 07:54ranjith_qualiantech_comAssigned ToRetail => ranjith_qualiantech_com
2017-11-23 07:54ranjith_qualiantech_comStatusnew => scheduled
2017-11-28 10:24hgbotCheckin
2017-11-28 10:24hgbotNote Added: 0100756
2017-11-28 10:24hgbotStatusscheduled => resolved
2017-11-28 10:24hgbotResolutionopen => fixed
2017-11-28 10:24hgbotFixed in SCM revision => http://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/ded2906ab6fe0cfe83c679c75cec4527d1de1af1 [^]
2017-11-28 18:12marvintmNote Added: 0100796
2017-11-28 18:12marvintmStatusresolved => new
2017-11-28 18:12marvintmResolutionfixed => open
2017-11-29 09:11ranjith_qualiantech_comStatusnew => scheduled
2017-12-02 11:25hgbotCheckin
2017-12-02 11:25hgbotNote Added: 0100905
2017-12-02 11:25hgbotStatusscheduled => resolved
2017-12-02 11:25hgbotResolutionopen => fixed
2017-12-02 11:25hgbotFixed in SCM revisionhttp://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/ded2906ab6fe0cfe83c679c75cec4527d1de1af1 [^] => http://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/d19b0a7b162673f776e400a221f007d9ab3750f7 [^]
2017-12-02 12:55hgbotCheckin
2017-12-02 12:55hgbotNote Added: 0100906
2017-12-02 12:55hgbotFixed in SCM revisionhttp://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/d19b0a7b162673f776e400a221f007d9ab3750f7 [^] => http://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/cdc8adb3faaef837ce0820eb1ee43fd78f27b649 [^]
2017-12-05 18:06marvintmReview Assigned To => marvintm
2017-12-05 18:06marvintmStatusresolved => closed
2017-12-05 18:06marvintmFixed in Version => RR18Q1

Notes
(0100756)
hgbot   
2017-11-28 10:24   
Repository: erp/pmods/org.openbravo.retail.posterminal
Changeset: ded2906ab6fe0cfe83c679c75cec4527d1de1af1
Author: Ranjith S R <ranjith <at> qualiantech.com>
Date: Tue Nov 28 14:54:00 2017 +0530
URL: http://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/ded2906ab6fe0cfe83c679c75cec4527d1de1af1 [^]

Fixed issue 37349 : Validate Document type Invoice on cashup

---
M src-db/database/sourcedata/AD_MESSAGE.xml
M src/org/openbravo/retail/posterminal/OrderGroupingProcessor.java
M src/org/openbravo/retail/posterminal/OrderGroupingProcessor_data.xsql
---
(0100796)
marvintm   
2017-11-28 18:12   
The idea of the fix is correct, but the query should be simplified quite a bit. There is no need to join with the orders, the only thing that needs to be validated is that the document type for orders (and returns if needed), contains a valid document type for invoices.

So, in general, the only validation that needs to be done is something similar to this:
posTerminal.getObposTerminaltype().getDocumentType().getDocumentTypeForInvoice() != null

(and correspondingly, the same check would need to be done for the document type for returns, if the preference to generate separate invoices for returns is set).
(0100905)
hgbot   
2017-12-02 11:25   
Repository: erp/pmods/org.openbravo.retail.posterminal
Changeset: d19b0a7b162673f776e400a221f007d9ab3750f7
Author: Ranjith S R <ranjith <at> qualiantech.com>
Date: Wed Nov 29 13:42:27 2017 +0530
URL: http://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/d19b0a7b162673f776e400a221f007d9ab3750f7 [^]

Fixed issue 37349 : Validate Document type Invoice on cashup

Backed out changeset: ded2906ab6fe

---
M src-db/database/sourcedata/AD_MESSAGE.xml
M src/org/openbravo/retail/posterminal/OrderGroupingProcessor.java
M src/org/openbravo/retail/posterminal/OrderGroupingProcessor_data.xsql
---
(0100906)
hgbot   
2017-12-02 12:55   
Repository: erp/pmods/org.openbravo.retail.posterminal
Changeset: cdc8adb3faaef837ce0820eb1ee43fd78f27b649
Author: Ranjith S R <ranjith <at> qualiantech.com>
Date: Sat Dec 02 17:24:52 2017 +0530
URL: http://code.openbravo.com/erp/pmods/org.openbravo.retail.posterminal/rev/cdc8adb3faaef837ce0820eb1ee43fd78f27b649 [^]

Fixed issue 37349 : Validate Document type Invoice on cashup

Backed out changeset: ded2906ab6fe

---
M web/org.openbravo.retail.posterminal/js/login/model/login-model.js
---