details: /erp/devel/pi/rev/55a03a19eeda
changeset: 13108:55a03a19eeda
user: Víctor Martínez Romanos <victor.martinez <at> openbravo.com>
date: Tue Jul 05 17:21:55 2011 +0200
summary: Applies code review feedback:
- Use setMaxResults(1) for improving performance
- Check invoice's payment method belongs to bp default financial account for
processing the new payment
details: /erp/devel/pi/rev/5d2c7a3478c6
changeset: 13109:5d2c7a3478c6
user: Víctor Martínez Romanos <victor.martinez <at> openbravo.com>
date: Tue Jul 05 18:23:24 2011 +0200
summary: Fixed bug 17877: FIN_Utility.getDocumentType() not filtering by
client
diffstat:
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/ProcessInvoice.java
| 30 +++++++--
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/AdvPaymentMngtDao.java
| 1 +
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/utility/FIN_Utility.java
| 12 ++++
3 files changed, 35 insertions(+), 8 deletions(-)
diffs (91 lines):
diff -r 90cac17acba3 -r 5d2c7a3478c6
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/ProcessInvoice.java
---
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/ProcessInvoice.java
Wed Jul 06 02:39:41 2011 +0200
+++
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/ProcessInvoice.java
Tue Jul 05 18:23:24 2011 +0200
@@ -46,9 +46,11 @@
import org.openbravo.model.ad.ui.Process;
import org.openbravo.model.common.enterprise.DocumentType;
import org.openbravo.model.common.invoice.Invoice;
+import org.openbravo.model.financialmgmt.payment.FIN_FinancialAccount;
import org.openbravo.model.financialmgmt.payment.FIN_Payment;
import org.openbravo.model.financialmgmt.payment.FIN_PaymentSchedule;
import org.openbravo.model.financialmgmt.payment.FIN_PaymentScheduleDetail;
+import org.openbravo.model.financialmgmt.payment.FinAccPaymentMethod;
import org.openbravo.service.db.CallProcess;
import org.openbravo.xmlEngine.XmlDocument;
@@ -193,18 +195,30 @@
isSalesTransaction ? "ARR" : "APP");
final String strPaymentDocumentNo =
FIN_Utility.getDocumentNo(docType,
docType.getTable() != null ?
docType.getTable().getDBTableName() : "");
+ final FIN_FinancialAccount bpFinAccount = isSalesTransaction ?
invoice
+ .getBusinessPartner().getAccount() :
invoice.getBusinessPartner()
+ .getPOFinancialAccount();
final FIN_Payment newPayment = FIN_AddPayment.savePayment(null,
isSalesTransaction,
- docType, strPaymentDocumentNo, invoice.getBusinessPartner(),
invoice
- .getPaymentMethod(), isSalesTransaction ?
invoice.getBusinessPartner()
- .getAccount() :
invoice.getBusinessPartner().getPOFinancialAccount(), "0",
- creditPayment.getPaymentDate(), invoice.getOrganization(),
invoice
- .getDocumentNo(), paymentScheduleDetails,
paymentScheduleDetailsAmounts,
- false, false);
+ docType, strPaymentDocumentNo, invoice.getBusinessPartner(),
+ invoice.getPaymentMethod(), bpFinAccount, "0",
creditPayment.getPaymentDate(),
+ invoice.getOrganization(), invoice.getDocumentNo(),
paymentScheduleDetails,
+ paymentScheduleDetailsAmounts, false, false);
newPayment.setAmount(BigDecimal.ZERO);
newPayment.setGeneratedCredit(BigDecimal.ZERO);
newPayment.setUsedCredit(invoice.getGrandTotalAmount());
- // Process the new payment
- FIN_AddPayment.processPayment(vars, this, "P", newPayment);
+
+ // Process the new payment if invoice's payment method is inside
BP's financial
+ // account
+ boolean process = false;
+ for (final FinAccPaymentMethod bpFinAccPaymentMethod :
bpFinAccount
+ .getFinancialMgmtFinAccPaymentMethodList()) {
+ if
(bpFinAccPaymentMethod.getPaymentMethod().equals(invoice.getPaymentMethod())) {
+ process = true;
+ break;
+ }
+ }
+ if (process)
+ FIN_AddPayment.processPayment(vars, this, "P", newPayment);
}
}
} catch (final Exception e) {
diff -r 90cac17acba3 -r 5d2c7a3478c6
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/AdvPaymentMngtDao.java
---
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/AdvPaymentMngtDao.java
Wed Jul 06 02:39:41 2011 +0200
+++
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/AdvPaymentMngtDao.java
Tue Jul 05 18:23:24 2011 +0200
@@ -1456,6 +1456,7 @@
obcFinPayment.add(Restrictions.in("organization.id",
OBContext.getOBContext()
.getOrganizationStructureProvider().getNaturalTree(organization.getId())));
obcFinPayment.addOrderBy(FIN_Payment.PROPERTY_PAYMENTDATE, true);
+ obcFinPayment.setMaxResults(1);
final List<FIN_Payment> finPayments = obcFinPayment.list();
if (finPayments.size() > 0) {
diff -r 90cac17acba3 -r 5d2c7a3478c6
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/utility/FIN_Utility.java
---
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/utility/FIN_Utility.java
Wed Jul 06 02:39:41 2011 +0200
+++
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/utility/FIN_Utility.java
Tue Jul 05 18:23:24 2011 +0200
@@ -300,10 +300,22 @@
*/
public static DocumentType getDocumentType(Organization org, String
docCategory) {
DocumentType outDocType = null;
+ Client client = null;
+
OBCriteria<DocumentType> obcDoc =
OBDal.getInstance().createCriteria(DocumentType.class);
obcDoc.setFilterOnReadableClients(false);
obcDoc.setFilterOnReadableOrganization(false);
+ if ("0".equals(org.getId())) {
+ client = OBContext.getOBContext().getCurrentClient();
+ if ("0".equals(client.getId())) {
+ return null;
+ }
+ } else {
+ client = org.getClient();
+ }
+ obcDoc.add(Restrictions.eq(DocumentType.PROPERTY_CLIENT, client));
+
obcDoc
.add(Restrictions.in("organization.id",
OBContext.getOBContext().getOrganizationStructureProvider(org.getClient().getId())
------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits