details: https://code.openbravo.com/erp/stable/2.50/rev/59de9c3ad920 changeset: 9682:59de9c3ad920 user: Mikel Irurita <mikel.irurita <at> openbravo.com> date: Fri Sep 23 14:38:48 2011 +0200 summary: Fixes issue 18606: Bank Statement document gets locked when trying to post
details: https://code.openbravo.com/erp/stable/2.50/rev/34255df416df changeset: 9683:34255df416df user: Mikel Irurita <mikel.irurita <at> openbravo.com> date: Wed Oct 05 17:04:41 2011 +0200 summary: Fixes issue 18656: Improve message when trying to create invoice using automatic PM not available diffstat: src-db/database/sourcedata/AD_MESSAGE.xml | 2 +- src/org/openbravo/erpCommon/ad_callouts/SE_Invoice_BPartner.java | 27 ++++++--- src/org/openbravo/erpCommon/ad_forms/DocFINBankStatement.java | 1 + 3 files changed, 20 insertions(+), 10 deletions(-) diffs (118 lines): diff -r 4ea4016ee815 -r 34255df416df src-db/database/sourcedata/AD_MESSAGE.xml --- a/src-db/database/sourcedata/AD_MESSAGE.xml Thu Oct 06 11:08:51 2011 +0200 +++ b/src-db/database/sourcedata/AD_MESSAGE.xml Wed Oct 05 17:04:41 2011 +0200 @@ -33252,7 +33252,7 @@ <!--B506C3346CDB44EEB33592003DCA14B2--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> <!--B506C3346CDB44EEB33592003DCA14B2--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> <!--B506C3346CDB44EEB33592003DCA14B2--> <VALUE><![CDATA[PaymentmethodNotbelongsFinAccount]]></VALUE> -<!--B506C3346CDB44EEB33592003DCA14B2--> <MSGTEXT><![CDATA[Automatic actions could not be performed: selected payment method does not belong to the business partner default financial account.]]></MSGTEXT> +<!--B506C3346CDB44EEB33592003DCA14B2--> <MSGTEXT><![CDATA[Automatic actions could not be performed: selected payment method does not belong to the business partner default financial account or the default financial account is not accessible for the invoice's organization.]]></MSGTEXT> <!--B506C3346CDB44EEB33592003DCA14B2--> <MSGTYPE><![CDATA[I]]></MSGTYPE> <!--B506C3346CDB44EEB33592003DCA14B2--> <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID> <!--B506C3346CDB44EEB33592003DCA14B2--></AD_MESSAGE> diff -r 4ea4016ee815 -r 34255df416df src/org/openbravo/erpCommon/ad_callouts/SE_Invoice_BPartner.java --- a/src/org/openbravo/erpCommon/ad_callouts/SE_Invoice_BPartner.java Thu Oct 06 11:08:51 2011 +0200 +++ b/src/org/openbravo/erpCommon/ad_callouts/SE_Invoice_BPartner.java Wed Oct 05 17:04:41 2011 +0200 @@ -28,6 +28,7 @@ import javax.servlet.http.HttpServletResponse; import org.hibernate.criterion.Expression; +import org.hibernate.criterion.Restrictions; import org.openbravo.base.secureApp.HttpSecureAppServlet; import org.openbravo.base.secureApp.VariablesSecureApp; import org.openbravo.dal.core.OBContext; @@ -71,13 +72,15 @@ String strIsSOTrx = Utility.getContext(this, vars, "isSOTrx", strWindowId); String strTabId = vars.getStringParameter("inpTabId"); String strfinPaymentmethodId = vars.getStringParameter("inpfinPaymentmethodId"); + String strOrgId = vars.getStringParameter("inpadOrgId"); try { if ("inpfinPaymentmethodId".equals(strChanged)) { // Payment Method changed - printPagePaymentMethod(response, vars, strBPartner, strIsSOTrx, strfinPaymentmethodId); + printPagePaymentMethod(response, vars, strBPartner, strIsSOTrx, strfinPaymentmethodId, + strOrgId); } else { printPage(response, vars, strBPartner, strDocType, strIsSOTrx, strWindowId, strLocation, - strContact, strProjectId, strTabId); + strContact, strProjectId, strTabId, strOrgId); } } catch (ServletException ex) { pageErrorCallOut(response); @@ -88,7 +91,8 @@ private void printPage(HttpServletResponse response, VariablesSecureApp vars, String strBPartner, String strDocType, String strIsSOTrx, String strWindowId, String strLocation, - String strContact, String strProjectId, String strTabId) throws IOException, ServletException { + String strContact, String strProjectId, String strTabId, String strOrgId) throws IOException, + ServletException { if (log4j.isDebugEnabled()) log4j.debug("Output: dataSheet"); XmlDocument xmlDocument = xmlEngine.readXmlTemplate( @@ -246,7 +250,7 @@ && strIsSOTrx.equals("Y")) { String creditLimitExceed = "" + Double.parseDouble(data[0].creditavailable) * -1; String automationPaymentMethod = isAutomaticCombination(vars, strBPartner, strIsSOTrx, - strFinPaymentMethodId); + strFinPaymentMethodId, strOrgId); resultado.append(", new Array('MESSAGE', \"" + Utility.messageBD(this, "CreditLimitOver", vars.getLanguage()) + creditLimitExceed + "<br/>" + automationPaymentMethod + "\")"); @@ -264,13 +268,14 @@ } private void printPagePaymentMethod(HttpServletResponse response, VariablesSecureApp vars, - String strBPartnerId, String strIsSOTrx, String strfinPaymentmethodId) throws IOException, - ServletException { + String strBPartnerId, String strIsSOTrx, String strfinPaymentmethodId, String strOrgId) + throws IOException, ServletException { XmlDocument xmlDocument = xmlEngine.readXmlTemplate( "org/openbravo/erpCommon/ad_callouts/CallOut").createXmlDocument(); StringBuilder result = new StringBuilder(); - String message = isAutomaticCombination(vars, strBPartnerId, strIsSOTrx, strfinPaymentmethodId); + String message = isAutomaticCombination(vars, strBPartnerId, strIsSOTrx, strfinPaymentmethodId, + strOrgId); result.append("var calloutName='SE_Invoice_BPartner';\n\n"); result.append("var respuesta = new Array(new Array(\"MESSAGE\", "); @@ -301,7 +306,7 @@ * financial account of the given business partner. */ private String isAutomaticCombination(VariablesSecureApp vars, String strBPartnerId, - String strIsSOTrx, String strfinPaymentmethodId) { + String strIsSOTrx, String strfinPaymentmethodId, String strOrgId) { BusinessPartner bpartner = OBDal.getInstance().get(BusinessPartner.class, strBPartnerId); FIN_PaymentMethod selectedPaymentMethod = OBDal.getInstance().get(FIN_PaymentMethod.class, strfinPaymentmethodId); @@ -313,14 +318,18 @@ // Only applies if the APRM module is installed if (isAlternativeFinancialFlow()) { - if (bpartner != null && selectedPaymentMethod != null) { + if (bpartner != null && selectedPaymentMethod != null && !"".equals(strOrgId)) { account = (isSales) ? bpartner.getAccount() : bpartner.getPOFinancialAccount(); if (account != null) { OBCriteria<FinAccPaymentMethod> obc = OBDal.getInstance().createCriteria( FinAccPaymentMethod.class); + obc.setFilterOnReadableOrganization(false); obc.add(Expression.eq(FinAccPaymentMethod.PROPERTY_ACCOUNT, account)); obc.add(Expression .eq(FinAccPaymentMethod.PROPERTY_PAYMENTMETHOD, selectedPaymentMethod)); + obc.add(Restrictions.in(FinAccPaymentMethod.PROPERTY_ORGANIZATION + ".id", OBContext + .getOBContext().getOrganizationStructureProvider().getNaturalTree(strOrgId))); + if (obc.list() == null || obc.list().size() == 0) { message = Utility.messageBD(this, "PaymentmethodNotbelongsFinAccount", vars .getLanguage()); diff -r 4ea4016ee815 -r 34255df416df src/org/openbravo/erpCommon/ad_forms/DocFINBankStatement.java --- a/src/org/openbravo/erpCommon/ad_forms/DocFINBankStatement.java Thu Oct 06 11:08:51 2011 +0200 +++ b/src/org/openbravo/erpCommon/ad_forms/DocFINBankStatement.java Wed Oct 05 17:04:41 2011 +0200 @@ -161,6 +161,7 @@ return true; } } + setStatus(STATUS_DocumentDisabled); return false; } ------------------------------------------------------------------------------ All the data continuously generated in your IT infrastructure contains a definitive record of customers, application performance, security threats, fraudulent activity and more. Splunk takes this data and makes sense of it. Business sense. IT sense. Common sense. http://p.sf.net/sfu/splunk-d2dcopy1 _______________________________________________ Openbravo-commits mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openbravo-commits
