details: https://code.openbravo.com/erp/devel/pi/rev/8865bff7d417
changeset: 15186:8865bff7d417
user: Javier Etxarri <javier.echarri <at> openbravo.com>
date: Tue Jan 24 16:20:40 2012 +0100
summary: Fixes issue 19260: You can use credit generated from other
organization.
with this change the credit generated for BP is only available in the first
organization that it is a legal entity (first legal entity father) or her sons.
diffstat:
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java
| 6 +-
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromInvoice.java
| 19 +++-
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromTransaction.java
| 12 ++-
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/AdvPaymentMngtDao.java
| 38 +++++++++-
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java
| 4 +-
5 files changed, 67 insertions(+), 12 deletions(-)
diffs (172 lines):
diff -r a44439184a15 -r 8865bff7d417
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 Jan 24 15:22:56 2012 +0100
+++
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java
Tue Jan 24 16:20:40 2012 +0100
@@ -292,8 +292,10 @@
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()).toString());
+ 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());
diff -r a44439184a15 -r 8865bff7d417
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromInvoice.java
---
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromInvoice.java
Tue Jan 24 15:22:56 2012 +0100
+++
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromInvoice.java
Tue Jan 24 16:20:40 2012 +0100
@@ -298,7 +298,16 @@
xmlDocument.setParameter("orgId", strOrgId);
xmlDocument.setParameter("invoiceId", strInvoiceId);
xmlDocument.setParameter("isReceipt", (isReceipt ? "Y" : "N"));
- xmlDocument.setParameter("credit", dao.getCustomerCredit(bp,
isReceipt).toString());
+
+ try {
+ OBContext.setAdminMode(true);
+ xmlDocument.setParameter(
+ "credit",
+ dao.getCustomerCredit(bp, isReceipt,
+ OBDal.getInstance().get(Organization.class,
strOrgId)).toString());
+ } finally {
+ OBContext.restorePreviousMode();
+ }
// get DocumentNo
final List<Object> parameters = new ArrayList<Object>();
@@ -339,10 +348,10 @@
}
xmlDocument.setParameter("sectionDetailFinancialAccount",
finAccountComboHtml);
- if (account != null){
- if (!financialAccounts.contains(account)){
- strFinancialAccountId = financialAccounts.get(0).getId();
- }
+ if (account != null) {
+ if (!financialAccounts.contains(account)) {
+ strFinancialAccountId = financialAccounts.get(0).getId();
+ }
}
// Currency
xmlDocument.setParameter("CurrencyId", strCurrencyId);
diff -r a44439184a15 -r 8865bff7d417
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromTransaction.java
---
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromTransaction.java
Tue Jan 24 15:22:56 2012 +0100
+++
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddPaymentFromTransaction.java
Tue Jan 24 16:20:40 2012 +0100
@@ -128,8 +128,16 @@
} else if (vars.commandIn("LOADCREDIT")) {
final String strBusinessPartnerId =
vars.getRequiredStringParameter("inpcBpartnerId");
final boolean isReceipt =
"Y".equals(vars.getRequiredStringParameter("isReceipt"));
- BigDecimal customerCredit = dao.getCustomerCredit(
- OBDal.getInstance().get(BusinessPartner.class,
strBusinessPartnerId), isReceipt);
+ final String strOrgId = vars.getRequiredStringParameter("inpadOrgId");
+ BigDecimal customerCredit;
+ try {
+ OBContext.setAdminMode(true);
+ customerCredit = dao.getCustomerCredit(
+ OBDal.getInstance().get(BusinessPartner.class,
strBusinessPartnerId), isReceipt, OBDal
+ .getInstance().get(Organization.class, strOrgId));
+ } finally {
+ OBContext.restorePreviousMode();
+ }
response.setContentType("text/html; charset=UTF-8");
response.setHeader("Cache-Control", "no-cache");
PrintWriter out = response.getWriter();
diff -r a44439184a15 -r 8865bff7d417
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/AdvPaymentMngtDao.java
---
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/AdvPaymentMngtDao.java
Tue Jan 24 15:22:56 2012 +0100
+++
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/dao/AdvPaymentMngtDao.java
Tue Jan 24 16:20:40 2012 +0100
@@ -24,6 +24,7 @@
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.Set;
import org.apache.commons.lang.StringUtils;
import org.hibernate.criterion.Criterion;
@@ -1407,6 +1408,7 @@
return ppfiCriteria.list();
}
+ @Deprecated
public BigDecimal getCustomerCredit(BusinessPartner bp, boolean isReceipt) {
BigDecimal creditAmount = BigDecimal.ZERO;
for (FIN_Payment payment : getCustomerPaymentsWithCredit(bp, isReceipt))
@@ -1415,6 +1417,15 @@
return creditAmount;
}
+ public BigDecimal getCustomerCredit(BusinessPartner bp, boolean isReceipt,
Organization OrgId) {
+ BigDecimal creditAmount = BigDecimal.ZERO;
+ for (FIN_Payment payment : getCustomerPaymentsWithCredit(bp, isReceipt,
OrgId))
+ creditAmount = creditAmount.add(payment.getGeneratedCredit()).subtract(
+ payment.getUsedCredit());
+ return creditAmount;
+ }
+
+ @Deprecated
public List<FIN_Payment> getCustomerPaymentsWithCredit(BusinessPartner bp,
boolean isReceipt) {
OBCriteria<FIN_Payment> obcPayment =
OBDal.getInstance().createCriteria(FIN_Payment.class);
obcPayment.add(Restrictions.eq(FIN_Payment.PROPERTY_BUSINESSPARTNER, bp));
@@ -1429,6 +1440,27 @@
return obcPayment.list();
}
+ public List<FIN_Payment> getCustomerPaymentsWithCredit(BusinessPartner bp,
boolean isReceipt,
+ Organization OrgId) {
+
+ OBCriteria<FIN_Payment> obcPayment =
OBDal.getInstance().createCriteria(FIN_Payment.class);
+ obcPayment.add(Restrictions.eq(FIN_Payment.PROPERTY_BUSINESSPARTNER, bp));
+ obcPayment.add(Restrictions.eq(FIN_Payment.PROPERTY_RECEIPT, isReceipt));
+ obcPayment.add(Restrictions.ne(FIN_Payment.PROPERTY_GENERATEDCREDIT,
BigDecimal.ZERO));
+ obcPayment.add(Restrictions.ne(FIN_Payment.PROPERTY_STATUS, "RPAP"));
+ obcPayment.add(Restrictions.ne(FIN_Payment.PROPERTY_STATUS, "RPVOID"));
+ final Organization legalEntity = FIN_Utility.getLegalEntityOrg(OrgId);
+ Set<String> orgIds =
OBContext.getOBContext().getOrganizationStructureProvider()
+ .getChildOrg(legalEntity.getId());
+ orgIds.add(legalEntity.getId());
+ obcPayment.add(Restrictions.in("organization.id", orgIds));
+
obcPayment.add(Restrictions.neProperty(FIN_Payment.PROPERTY_GENERATEDCREDIT,
+ FIN_Payment.PROPERTY_USEDCREDIT));
+ obcPayment.addOrderBy(FIN_Payment.PROPERTY_PAYMENTDATE, true);
+ obcPayment.addOrderBy(FIN_Payment.PROPERTY_DOCUMENTNO, true);
+ return obcPayment.list();
+ }
+
/**
* Returns the list of credit payments for the selected business partner
that belongs to the legal
* entity's natural tree of the given organization
@@ -1451,8 +1483,10 @@
obcPayment.add(Restrictions.neProperty(FIN_Payment.PROPERTY_GENERATEDCREDIT,
FIN_Payment.PROPERTY_USEDCREDIT));
final Organization legalEntity = FIN_Utility.getLegalEntityOrg(org);
- obcPayment.add(Restrictions.in("organization.id",
OBContext.getOBContext()
-
.getOrganizationStructureProvider().getNaturalTree(legalEntity.getId())));
+ Set<String> orgIds =
OBContext.getOBContext().getOrganizationStructureProvider()
+ .getChildOrg(legalEntity.getId());
+ orgIds.add(legalEntity.getId());
+ obcPayment.add(Restrictions.in("organization.id", orgIds));
obcPayment.addOrderBy(FIN_Payment.PROPERTY_PAYMENTDATE, true);
obcPayment.addOrderBy(FIN_Payment.PROPERTY_DOCUMENTNO, true);
return obcPayment.list();
diff -r a44439184a15 -r 8865bff7d417
modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java
---
a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java
Tue Jan 24 15:22:56 2012 +0100
+++
b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_PaymentProcess.java
Tue Jan 24 16:20:40 2012 +0100
@@ -41,6 +41,7 @@
import org.openbravo.erpCommon.utility.Utility;
import org.openbravo.model.common.businesspartner.BusinessPartner;
import org.openbravo.model.common.currency.ConversionRateDoc;
+import org.openbravo.model.common.enterprise.Organization;
import org.openbravo.model.common.invoice.Invoice;
import org.openbravo.model.financialmgmt.payment.FIN_FinaccTransaction;
import org.openbravo.model.financialmgmt.payment.FIN_Payment;
@@ -733,8 +734,9 @@
final BigDecimal usedAmount = newPayment.getUsedCredit();
final BusinessPartner bp = newPayment.getBusinessPartner();
final boolean isReceipt = newPayment.isReceipt();
+ final Organization OrgId = newPayment.getOrganization();
- List<FIN_Payment> creditPayments = dao.getCustomerPaymentsWithCredit(bp,
isReceipt);
+ List<FIN_Payment> creditPayments = dao.getCustomerPaymentsWithCredit(bp,
isReceipt, OrgId);
BigDecimal pendingToAllocateAmount = usedAmount;
for (FIN_Payment creditPayment : creditPayments) {
BigDecimal availableAmount =
creditPayment.getGeneratedCredit().subtract(
------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits