details: https://code.openbravo.com/erp/devel/pi/rev/299348a02b22
changeset: 23080:299348a02b22
user: Atul Gaware <atul.gaware <at> openbravo.com>
date: Wed May 21 11:38:47 2014 +0530
summary: Fixes Issue 25867:PaymentDate can't be blank prior add details in
Payment In/Out
diffstat:
modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml
| 12 +
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java
| 475 +++++----
2 files changed, 255 insertions(+), 232 deletions(-)
diffs (truncated from 515 to 300 lines):
diff -r 016a009f0d6c -r 299348a02b22
modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml
---
a/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml
Tue May 20 16:15:53 2014 +0200
+++
b/modules/org.openbravo.advpaymentmngt/src-db/database/sourcedata/AD_MESSAGE.xml
Wed May 21 11:38:47 2014 +0530
@@ -577,6 +577,18 @@
<!--7DEF5C1A3377434AA34149E9777DE4D6-->
<ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
<!--7DEF5C1A3377434AA34149E9777DE4D6--></AD_MESSAGE>
+<!--7E4B7FD8E75E4C28B6A35DDC350B36AE--><AD_MESSAGE>
+<!--7E4B7FD8E75E4C28B6A35DDC350B36AE-->
<AD_MESSAGE_ID><![CDATA[7E4B7FD8E75E4C28B6A35DDC350B36AE]]></AD_MESSAGE_ID>
+<!--7E4B7FD8E75E4C28B6A35DDC350B36AE-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--7E4B7FD8E75E4C28B6A35DDC350B36AE--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--7E4B7FD8E75E4C28B6A35DDC350B36AE--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--7E4B7FD8E75E4C28B6A35DDC350B36AE-->
<VALUE><![CDATA[APRM_PaymentDateMandatory]]></VALUE>
+<!--7E4B7FD8E75E4C28B6A35DDC350B36AE--> <MSGTEXT><![CDATA[Payment date field
cannot be left blank.]]></MSGTEXT>
+<!--7E4B7FD8E75E4C28B6A35DDC350B36AE--> <MSGTYPE><![CDATA[E]]></MSGTYPE>
+<!--7E4B7FD8E75E4C28B6A35DDC350B36AE-->
<AD_MODULE_ID><![CDATA[A918E3331C404B889D69AA9BFAFB23AC]]></AD_MODULE_ID>
+<!--7E4B7FD8E75E4C28B6A35DDC350B36AE-->
<ISINCLUDEINI18N><![CDATA[N]]></ISINCLUDEINI18N>
+<!--7E4B7FD8E75E4C28B6A35DDC350B36AE--></AD_MESSAGE>
+
<!--7EF14E73C8EB4C33B302885E2FBDD0EE--><AD_MESSAGE>
<!--7EF14E73C8EB4C33B302885E2FBDD0EE-->
<AD_MESSAGE_ID><![CDATA[7EF14E73C8EB4C33B302885E2FBDD0EE]]></AD_MESSAGE_ID>
<!--7EF14E73C8EB4C33B302885E2FBDD0EE-->
<AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff -r 016a009f0d6c -r 299348a02b22
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java
---
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java
Tue May 20 16:15:53 2014 +0200
+++
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java
Wed May 21 11:38:47 2014 +0530
@@ -11,7 +11,7 @@
* under the License.
* The Original Code is Openbravo ERP.
* The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2010-2013 Openbravo SLU
+ * All portions are Copyright (C) 2010-2014 Openbravo SLU
* All Rights Reserved.
* Contributor(s): ______________________________________.
*************************************************************************
@@ -400,238 +400,249 @@
OBContext.setAdminMode(true);
try {
FIN_Payment payment = new
AdvPaymentMngtDao().getObject(FIN_Payment.class, strPaymentId);
- String[] discard = { "discard" };
- if (payment.getBusinessPartner() != null) {
- discard[0] = "bpGridColumn";
+ if (payment.getPaymentDate() == null) {
+ OBError message = new OBError();
+ message.setType("Error");
+ message.setTitle(Utility.messageBD(this, "Error", vars.getLanguage()));
+ message
+ .setMessage(Utility.messageBD(this, "APRM_PaymentDateMandatory",
vars.getLanguage()));
+ vars.setMessage(strTabId, message);
+ printPageClosePopUpAndRefreshParent(response, vars);
+ } else {
+ String[] discard = { "discard" };
+ if (payment.getBusinessPartner() != null) {
+ discard[0] = "bpGridColumn";
+ }
+ XmlDocument xmlDocument = xmlEngine.readXmlTemplate(
+ "org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice",
discard)
+ .createXmlDocument();
+
+ xmlDocument.setParameter("directory", "var baseDirectory = \"" +
strReplaceWith + "/\";\n");
+ xmlDocument.setParameter("language", "defaultLang=\"" +
vars.getLanguage() + "\";");
+ xmlDocument.setParameter("theme", vars.getTheme());
+
+ if (payment.isReceipt())
+ xmlDocument.setParameter("title",
+ Utility.messageBD(this, "APRM_AddPaymentIn",
vars.getLanguage()));
+ else
+ xmlDocument.setParameter("title",
+ Utility.messageBD(this, "APRM_AddPaymentOut",
vars.getLanguage()));
+ xmlDocument.setParameter("dateDisplayFormat",
vars.getSessionValue("#AD_SqlDateFormat"));
+ if (payment.getBusinessPartner() != null) {
+ xmlDocument.setParameter("businessPartner",
payment.getBusinessPartner().getIdentifier());
+ xmlDocument.setParameter("businessPartnerId",
payment.getBusinessPartner().getId());
+ xmlDocument.setParameter(
+ "credit",
+ dao.getCustomerCredit(payment.getBusinessPartner(),
payment.isReceipt(),
+ payment.getOrganization()).toString());
+ xmlDocument.setParameter("customerBalance",
+ payment.getBusinessPartner().getCreditUsed() != null ?
payment.getBusinessPartner()
+ .getCreditUsed().toString() : BigDecimal.ZERO.toString());
+ } else {
+ xmlDocument.setParameter("businessPartner", "");
+ xmlDocument.setParameter("businessPartnerId", "");
+ xmlDocument.setParameter("credit", "");
+ xmlDocument.setParameter("customerBalance", "");
+
+ }
+ xmlDocument.setParameter("windowId", strWindowId);
+ xmlDocument.setParameter("tabId", strTabId);
+ xmlDocument.setParameter("orgId", payment.getOrganization().getId());
+ xmlDocument.setParameter("paymentId", strPaymentId);
+ xmlDocument.setParameter("actualPayment",
payment.getAmount().toString());
+ xmlDocument.setParameter("headerAmount",
payment.getAmount().toString());
+ xmlDocument.setParameter("isReceipt", (payment.isReceipt() ? "Y" :
"N"));
+ xmlDocument.setParameter("isSoTrx", (payment.isReceipt()) ? "Y" : "N");
+ if (payment.getBusinessPartner() == null
+ && (payment.getGeneratedCredit() == null ||
BigDecimal.ZERO.compareTo(payment
+ .getGeneratedCredit()) != 0)) {
+ payment.setGeneratedCredit(BigDecimal.ZERO);
+ OBDal.getInstance().save(payment);
+ OBDal.getInstance().flush();
+ }
+ xmlDocument.setParameter("generatedCredit",
payment.getGeneratedCredit() != null ? payment
+ .getGeneratedCredit().toString() : BigDecimal.ZERO.toString());
+
+ final Currency financialAccountCurrency =
payment.getAccount().getCurrency();
+ if (financialAccountCurrency != null) {
+ xmlDocument.setParameter("financialAccountCurrencyId",
financialAccountCurrency.getId());
+ xmlDocument.setParameter("financialAccountCurrencyName",
+ financialAccountCurrency.getISOCode());
+ xmlDocument.setParameter("financialAccountCurrencyPrecision",
financialAccountCurrency
+ .getStandardPrecision().toString());
+ }
+ xmlDocument.setParameter("exchangeRate",
+ payment.getFinancialTransactionConvertRate() == null ? "" : payment
+ .getFinancialTransactionConvertRate().toPlainString());
+ xmlDocument.setParameter("actualConverted",
+ payment.getFinancialTransactionAmount() == null ? "" : payment
+ .getFinancialTransactionAmount().toString());
+ xmlDocument.setParameter("expectedConverted",
+ payment.getFinancialTransactionAmount() == null ? "" : payment
+ .getFinancialTransactionAmount().toPlainString());
+ xmlDocument.setParameter("currencyId", payment.getCurrency().getId());
+ xmlDocument.setParameter("currencyName",
payment.getCurrency().getISOCode());
+
+ boolean forcedFinancialAccountTransaction = false;
+ forcedFinancialAccountTransaction = FIN_AddPayment
+ .isForcedFinancialAccountTransaction(payment);
+ // Action Regarding Document
+ xmlDocument.setParameter("ActionDocument", (payment.isReceipt() ?
"PRP" : "PPP"));
+ try {
+ ComboTableData comboTableData = new ComboTableData(vars, this,
"LIST", "",
+ (payment.isReceipt() ? "F903F726B41A49D3860243101CEEBA25"
+ : "F15C13A199A748F1B0B00E985A64C036"),
+ forcedFinancialAccountTransaction ?
"29010995FD39439D97A5C0CE8CE27D70" : "",
+ Utility.getContext(this, vars, "#AccessibleOrgTree",
"AddPaymentFromInvoice"),
+ Utility.getContext(this, vars, "#User_Client",
"AddPaymentFromInvoice"), 0);
+ Utility.fillSQLParameters(this, vars, null, comboTableData,
"AddOrderOrInvoice", "");
+ xmlDocument
+ .setData("reportActionDocument", "liststructure",
comboTableData.select(false));
+ comboTableData = null;
+ } catch (Exception ex) {
+ throw new ServletException(ex);
+ }
+
+ // Accounting Dimensions
+ String doctype;
+ if (payment.isReceipt()) {
+ doctype = AcctServer.DOCTYPE_ARReceipt;
+ } else {
+ doctype = AcctServer.DOCTYPE_APPayment;
+ }
+ final String strCentrally = Utility.getContext(this, vars,
+ DimensionDisplayUtility.IsAcctDimCentrally, strWindowId);
+ final String strElement_BP = Utility.getContext(this, vars,
DimensionDisplayUtility
+ .displayAcctDimensions(strCentrally,
DimensionDisplayUtility.DIM_BPartner, doctype,
+ DimensionDisplayUtility.DIM_Header), strWindowId);
+ final String strElement_PR = Utility.getContext(this, vars,
DimensionDisplayUtility
+ .displayAcctDimensions(strCentrally,
DimensionDisplayUtility.DIM_Product, doctype,
+ DimensionDisplayUtility.DIM_Header), strWindowId);
+ final String strElement_PJ = Utility.getContext(this, vars,
DimensionDisplayUtility
+ .displayAcctDimensions(strCentrally,
DimensionDisplayUtility.DIM_Project, doctype,
+ DimensionDisplayUtility.DIM_Header), strWindowId);
+ final String strElement_AY = Utility.getContext(this, vars,
"$Element_AY", strWindowId);
+ final String strElement_CC = Utility.getContext(this, vars,
DimensionDisplayUtility
+ .displayAcctDimensions(strCentrally,
DimensionDisplayUtility.DIM_CostCenter, doctype,
+ DimensionDisplayUtility.DIM_Header), strWindowId);
+ final String strElement_MC = Utility.getContext(this, vars,
"$Element_MC", strWindowId);
+ final String strElement_U1 = Utility.getContext(this, vars,
DimensionDisplayUtility
+ .displayAcctDimensions(strCentrally,
DimensionDisplayUtility.DIM_User1, doctype,
+ DimensionDisplayUtility.DIM_Header), strWindowId);
+ final String strElement_U2 = Utility.getContext(this, vars,
DimensionDisplayUtility
+ .displayAcctDimensions(strCentrally,
DimensionDisplayUtility.DIM_User2, doctype,
+ DimensionDisplayUtility.DIM_Header), strWindowId);
+ xmlDocument.setParameter("strElement_BP", strElement_BP);
+ xmlDocument.setParameter("strElement_PR", strElement_PR);
+ xmlDocument.setParameter("strElement_PJ", strElement_PJ);
+ xmlDocument.setParameter("strElement_AY", strElement_AY);
+ xmlDocument.setParameter("strElement_CC", strElement_CC);
+ xmlDocument.setParameter("strElement_MC", strElement_MC);
+ xmlDocument.setParameter("strElement_U1", strElement_U1);
+ xmlDocument.setParameter("strElement_U2", strElement_U2);
+
+ // Add GL Items
+ JSONArray addedGLITemsArray = new JSONArray();
+ List<FIN_PaymentScheduleDetail> gLItemScheduleDetailLines =
FIN_AddPayment
+ .getGLItemScheduleDetails(payment);
+ for (FIN_PaymentScheduleDetail psdGLItem : gLItemScheduleDetailLines) {
+ try {
+ JSONObject glItem = new JSONObject();
+ glItem.put("glitemId",
psdGLItem.getPaymentDetails().getGLItem().getId());
+ glItem.put("glitemDesc",
psdGLItem.getPaymentDetails().getGLItem().getIdentifier());
+ glItem.put("finPaymentScheduleDetailId", psdGLItem.getId());
+ // Amounts
+ if (payment.isReceipt()) {
+ glItem.put("glitemPaidOutAmt", psdGLItem.getAmount().signum() <
0 ? psdGLItem
+ .getAmount().abs() : BigDecimal.ZERO);
+ glItem.put("glitemReceivedInAmt",
+ psdGLItem.getAmount().signum() > 0 ? psdGLItem.getAmount() :
BigDecimal.ZERO);
+ } else {
+ glItem.put("glitemReceivedInAmt", psdGLItem.getAmount().signum()
< 0 ? psdGLItem
+ .getAmount().abs() : BigDecimal.ZERO);
+ glItem.put("glitemPaidOutAmt",
+ psdGLItem.getAmount().signum() > 0 ? psdGLItem.getAmount() :
BigDecimal.ZERO);
+ }
+ // Accounting Dimensions
+ glItem.put("cBpartnerDim", psdGLItem.getBusinessPartner() != null
? psdGLItem
+ .getBusinessPartner().getId() : "");
+ glItem.put("cBpartnerDimDesc", psdGLItem.getBusinessPartner() !=
null ? psdGLItem
+ .getBusinessPartner().getIdentifier() : "");
+ glItem.put("mProductDim", psdGLItem.getProduct() != null ?
psdGLItem.getProduct()
+ .getId() : "");
+ glItem.put("mProductDimDesc", psdGLItem.getProduct() != null ?
psdGLItem.getProduct()
+ .getIdentifier() : "");
+ glItem.put("cProjectDim", psdGLItem.getProject() != null ?
psdGLItem.getProject()
+ .getId() : "");
+ glItem.put("cProjectDimDesc", psdGLItem.getProject() != null ?
psdGLItem.getProject()
+ .getIdentifier() : "");
+ glItem.put("cActivityDim", psdGLItem.getActivity() != null ?
psdGLItem.getActivity()
+ .getId() : "");
+ glItem.put("cActivityDimDesc", psdGLItem.getActivity() != null ?
psdGLItem
+ .getActivity().getIdentifier() : "");
+ glItem.put("cCostcenterDim", psdGLItem.getCostCenter() != null ?
psdGLItem
+ .getCostCenter().getId() : "");
+ glItem.put("cCostcenterDimDesc", psdGLItem.getCostCenter() != null
? psdGLItem
+ .getCostCenter().getIdentifier() : "");
+ glItem.put("cCampaignDim", psdGLItem.getSalesCampaign() != null ?
psdGLItem
+ .getSalesCampaign().getId() : "");
+ glItem.put("cCampaignDimDesc", psdGLItem.getSalesCampaign() !=
null ? psdGLItem
+ .getSalesCampaign().getIdentifier() : "");
+ glItem.put("user1Dim", psdGLItem.getStDimension() != null ?
psdGLItem.getStDimension()
+ .getId() : "");
+ glItem.put("user1DimDesc", psdGLItem.getStDimension() != null ?
psdGLItem
+ .getStDimension().getIdentifier() : "");
+ glItem.put("user2Dim", psdGLItem.getNdDimension() != null ?
psdGLItem.getNdDimension()
+ .getId() : "");
+ glItem.put("user2DimDesc", psdGLItem.getNdDimension() != null ?
psdGLItem
+ .getNdDimension().getIdentifier() : "");
+ // DisplayLogics
+ glItem.put("cBpartnerDimDisplayed", strElement_BP);
+ glItem.put("mProductDimDisplayed", strElement_PR);
+ glItem.put("cProjectDimDisplayed", strElement_PJ);
+ glItem.put("cActivityDimDisplayed", strElement_AY);
+ glItem.put("cCostcenterDimDisplayed", strElement_CC);
+ glItem.put("cCampaignDimDisplayed", strElement_MC);
+ glItem.put("user1DimDisplayed", strElement_U1);
+ glItem.put("user2DimDisplayed", strElement_U2);
+ addedGLITemsArray.put(glItem);
+ } catch (JSONException e) {
+ log4j.error(e);
+ }
+ }
+ xmlDocument.setParameter("glItems",
addedGLITemsArray.toString().replace("'", "")
+ .replaceAll("\"", "'"));
+ // If UsedCredit is not equal zero, check Use available credit
+ xmlDocument.setParameter("useCredit", payment.getUsedCredit().signum()
!= 0 ? "Y" : "N");
+
+ // Not allow to change exchange rate and amount
+ final String strNotAllowExchange = Utility.getContext(this, vars,
"NotAllowChangeExchange",
+ strWindowId);
+ xmlDocument.setParameter("strNotAllowExchange", strNotAllowExchange);
+
+ dao = new AdvPaymentMngtDao();
+ FIN_FinancialAccount financialAccount =
dao.getObject(FIN_FinancialAccount.class,
+ strFinancialAccountId);
+
+ if (financialAccount.getWriteofflimit() != null) {
+ final String strtypewriteoff;
+ final String strAmountwriteoff;
+
+ strtypewriteoff = financialAccount.getTypewriteoff();
+ strAmountwriteoff = financialAccount.getWriteofflimit().toString();
+ xmlDocument.setParameter("strtypewriteoff", strtypewriteoff);
+ xmlDocument.setParameter("strAmountwriteoff", strAmountwriteoff);
+
+ // Not allow to write off
+ final String strWriteOffLimit = Utility.getContext(this, vars,
"WriteOffLimitPreference",
+ strWindowId);
+ xmlDocument.setParameter("strWriteOffLimit", strWriteOffLimit);
+ }
+ response.setContentType("text/html; charset=UTF-8");
+ PrintWriter out = response.getWriter();
+ out.println(xmlDocument.print());
+ out.close();
}
- XmlDocument xmlDocument = xmlEngine.readXmlTemplate(
- "org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice",
discard)
- .createXmlDocument();
-
- xmlDocument.setParameter("directory", "var baseDirectory = \"" +
strReplaceWith + "/\";\n");
- xmlDocument.setParameter("language", "defaultLang=\"" +
vars.getLanguage() + "\";");
- xmlDocument.setParameter("theme", vars.getTheme());
-
- if (payment.isReceipt())
- xmlDocument.setParameter("title",
- Utility.messageBD(this, "APRM_AddPaymentIn", vars.getLanguage()));
- else
- xmlDocument.setParameter("title",
- Utility.messageBD(this, "APRM_AddPaymentOut", vars.getLanguage()));
- xmlDocument.setParameter("dateDisplayFormat",
vars.getSessionValue("#AD_SqlDateFormat"));
- if (payment.getBusinessPartner() != null) {
------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits