details: https://code.openbravo.com/erp/devel/pi/rev/004ee0b33251 changeset: 16844:004ee0b33251 user: Eduardo Argal Guibert <eduardo.argal <at> openbravo.com> date: Thu Jun 14 17:33:57 2012 +0200 summary: Fixes bug 20754
details: https://code.openbravo.com/erp/devel/pi/rev/ff291597ae13 changeset: 16845:ff291597ae13 user: Eduardo Argal Guibert <eduardo.argal <at> openbravo.com> date: Thu Jun 14 18:51:22 2012 +0200 summary: Fixes bug 20762 details: https://code.openbravo.com/erp/devel/pi/rev/12f711dbc48e changeset: 16846:12f711dbc48e user: Eduardo Argal Guibert <eduardo.argal <at> openbravo.com> date: Thu Jun 14 18:52:29 2012 +0200 summary: merge diffstat: modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java | 54 ++++--- modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_AddPayment.java | 14 +- src/org/openbravo/erpCommon/ad_callouts/SE_Invoice_BPartner.java | 28 +++- src/org/openbravo/erpCommon/ad_callouts/SE_Order_BPartner.java | 33 +++- src/org/openbravo/erpCommon/ad_callouts/SE_Project_BPartner.java | 65 ++++++++-- src/org/openbravo/erpCommon/ad_callouts/SE_Proposal_BPartner.java | 32 ++++- src/org/openbravo/erpCommon/ad_callouts/SL_InOut_BPartner.java | 36 ++++- 7 files changed, 193 insertions(+), 69 deletions(-) diffs (truncated from 394 to 300 lines): diff -r 066d746f200f -r 12f711dbc48e 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 Thu Jun 14 13:16:38 2012 +0200 +++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/ad_actionbutton/AddOrderOrInvoice.java Thu Jun 14 18:52:29 2012 +0200 @@ -216,9 +216,13 @@ if (strAction.equals("PRP") || strAction.equals("PPP") || strAction.equals("PRD") || strAction.equals("PPW")) { try { - // If Action PRP o PPW, Process payment but as well create a financial transaction - message = FIN_AddPayment.processPayment(vars, this, - (strAction.equals("PRP") || strAction.equals("PPP")) ? "P" : "D", payment); + // Process just in case there are lines, empty Refund payment does not need to call + // process + if (payment.getFINPaymentDetailList().size() > 0) { + // If Action PRP o PPW, Process payment but as well create a financial transaction + message = FIN_AddPayment.processPayment(vars, this, + (strAction.equals("PRP") || strAction.equals("PPP")) ? "P" : "D", payment); + } if (strDifferenceAction.equals("refund")) { Boolean newPayment = !payment.getFINPaymentDetailList().isEmpty(); FIN_Payment refundPayment = FIN_AddPayment.createRefundPayment(this, vars, payment, @@ -277,7 +281,6 @@ List<FIN_PaymentScheduleDetail> selectedPaymentDetails) { Set<String> toRemovePDs = new HashSet<String>(); for (FIN_PaymentDetail pd : payment.getFINPaymentDetailList()) { - for (FIN_PaymentScheduleDetail psd : pd.getFINPaymentScheduleDetailList()) { if (!selectedPaymentDetails.contains(psd)) { if (pd.getGLItem() != null) { @@ -287,6 +290,9 @@ // update outstanding amount List<FIN_PaymentScheduleDetail> outStandingPSDs = FIN_AddPayment.getOutstandingPSDs(psd); if (outStandingPSDs.size() == 0) { + psd.setPaymentDetails(null); + psd.setFINOrigPaymentScheduleDetailList(null); + OBDal.getInstance().save(psd); toRemovePDs.add(pd.getId()); } else { // First make sure outstanding amount is not equal zero @@ -305,25 +311,29 @@ } for (String pdID : toRemovePDs) { FIN_PaymentDetail pd = OBDal.getInstance().get(FIN_PaymentDetail.class, pdID); - FIN_PaymentScheduleDetail psd = OBDal.getInstance().get(FIN_PaymentScheduleDetail.class, - pd.getFINPaymentScheduleDetailList().get(0).getId()); - pd.getFINPaymentScheduleDetailList().remove(psd); - OBDal.getInstance().save(pd); - psd.setFINOrigPaymentScheduleDetailList(null); - OBDal.getInstance().save(psd); - ArrayList<String> opsdToRemove = new ArrayList<String>(); - OBCriteria<FIN_OrigPaymentScheduleDetail> opsds = OBDal.getInstance().createCriteria( - FIN_OrigPaymentScheduleDetail.class); - opsds.add(Restrictions.eq(FIN_OrigPaymentScheduleDetail.PROPERTY_PAYMENTSCHEDULEDETAIL, psd)); - for (FIN_OrigPaymentScheduleDetail opsd : opsds.list()) { - opsdToRemove.add(opsd.getId()); + boolean hasPSD = pd.getFINPaymentScheduleDetailList().size() > 0; + if (hasPSD) { + FIN_PaymentScheduleDetail psd = OBDal.getInstance().get(FIN_PaymentScheduleDetail.class, + pd.getFINPaymentScheduleDetailList().get(0).getId()); + pd.getFINPaymentScheduleDetailList().remove(psd); + OBDal.getInstance().save(pd); + psd.setFINOrigPaymentScheduleDetailList(null); + OBDal.getInstance().save(psd); + ArrayList<String> opsdToRemove = new ArrayList<String>(); + OBCriteria<FIN_OrigPaymentScheduleDetail> opsds = OBDal.getInstance().createCriteria( + FIN_OrigPaymentScheduleDetail.class); + opsds.add(Restrictions + .eq(FIN_OrigPaymentScheduleDetail.PROPERTY_PAYMENTSCHEDULEDETAIL, psd)); + for (FIN_OrigPaymentScheduleDetail opsd : opsds.list()) { + opsdToRemove.add(opsd.getId()); + } + for (String id : opsdToRemove) { + FIN_OrigPaymentScheduleDetail opsd = OBDal.getInstance().get( + FIN_OrigPaymentScheduleDetail.class, id); + OBDal.getInstance().remove(opsd); + } + OBDal.getInstance().remove(psd); } - for (String id : opsdToRemove) { - FIN_OrigPaymentScheduleDetail opsd = OBDal.getInstance().get( - FIN_OrigPaymentScheduleDetail.class, id); - OBDal.getInstance().remove(opsd); - } - OBDal.getInstance().remove(psd); payment.getFINPaymentDetailList().remove(pd); OBDal.getInstance().save(payment); OBDal.getInstance().remove(pd); diff -r 066d746f200f -r 12f711dbc48e modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_AddPayment.java --- a/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_AddPayment.java Thu Jun 14 13:16:38 2012 +0200 +++ b/modules/org.openbravo.advpaymentmngt/src/org/openbravo/advpaymentmngt/process/FIN_AddPayment.java Thu Jun 14 18:52:29 2012 +0200 @@ -225,12 +225,14 @@ OBDal.getInstance().save(paymentScheduleDetail.getPaymentDetails()); } else if (isWriteoff) { List<FIN_PaymentScheduleDetail> outStandingPSDs = getOutstandingPSDs(paymentScheduleDetail); - paymentScheduleDetail.setWriteoffAmount(outStandingPSDs.get(0).getAmount()); - OBDal.getInstance().save(paymentScheduleDetail); - paymentScheduleDetail.getPaymentDetails().setWriteoffAmount( - outStandingPSDs.get(0).getAmount()); - OBDal.getInstance().save(paymentScheduleDetail.getPaymentDetails()); - OBDal.getInstance().remove(outStandingPSDs.get(0)); + if (outStandingPSDs.size() > 0) { + paymentScheduleDetail.setWriteoffAmount(outStandingPSDs.get(0).getAmount()); + OBDal.getInstance().save(paymentScheduleDetail); + paymentScheduleDetail.getPaymentDetails().setWriteoffAmount( + outStandingPSDs.get(0).getAmount()); + OBDal.getInstance().save(paymentScheduleDetail.getPaymentDetails()); + OBDal.getInstance().remove(outStandingPSDs.get(0)); + } } } else { BigDecimal paymentDetailAmount = selectedPaymentScheduleDetailsAmounts diff -r 066d746f200f -r 12f711dbc48e src/org/openbravo/erpCommon/ad_callouts/SE_Invoice_BPartner.java --- a/src/org/openbravo/erpCommon/ad_callouts/SE_Invoice_BPartner.java Thu Jun 14 13:16:38 2012 +0200 +++ b/src/org/openbravo/erpCommon/ad_callouts/SE_Invoice_BPartner.java Thu Jun 14 18:52:29 2012 +0200 @@ -149,20 +149,38 @@ } resultado.append("new Array(\"inpcBpartnerLocationId\", "); + if (tdv != null && tdv.length > 0) { resultado.append("new Array("); - for (int i = 0; i < tdv.length; i++) { - resultado.append("new Array(\"" + tdv[i].getField("id") + "\", \"" - + FormatUtilities.replaceJS(tdv[i].getField("name")) + "\", \"" - + (tdv[i].getField("id").equalsIgnoreCase(strLocation) ? "true" : "false") + "\")"); - if (i < tdv.length - 1) { + if (strLocation.isEmpty()) { + // If no location is provided, the first one is selected + resultado.append("new Array(\"" + tdv[0].getField("id") + "\", \"" + + FormatUtilities.replaceJS(tdv[0].getField("name")) + "\", \"" + "true" + "\")"); + if (tdv.length > 1) { resultado.append(",\n"); } + for (int i = 1; i < tdv.length; i++) { + resultado.append("new Array(\"" + tdv[i].getField("id") + "\", \"" + + FormatUtilities.replaceJS(tdv[i].getField("name")) + "\", \"" + "false" + "\")"); + if (i < tdv.length - 1) + resultado.append(",\n"); + } + } else { + // If a location is provided, it is selected + for (int i = 0; i < tdv.length; i++) { + resultado.append("new Array(\"" + tdv[i].getField("id") + "\", \"" + + FormatUtilities.replaceJS(tdv[i].getField("name")) + "\", \"" + + (tdv[i].getField("id").equalsIgnoreCase(strLocation) ? "true" : "false") + "\")"); + if (i < tdv.length - 1) { + resultado.append(",\n"); + } + } } resultado.append("\n)"); } else { resultado.append("null"); } + resultado.append("\n),"); resultado.append("new Array(\"inpsalesrepId\", "); FieldProvider[] tld = null; diff -r 066d746f200f -r 12f711dbc48e src/org/openbravo/erpCommon/ad_callouts/SE_Order_BPartner.java --- a/src/org/openbravo/erpCommon/ad_callouts/SE_Order_BPartner.java Thu Jun 14 13:16:38 2012 +0200 +++ b/src/org/openbravo/erpCommon/ad_callouts/SE_Order_BPartner.java Thu Jun 14 18:52:29 2012 +0200 @@ -118,17 +118,22 @@ } String strLocation = info.vars.getStringParameter("inpcBpartnerId_LOC"); - if (!strLocation.isEmpty()) { - if (tdv != null && tdv.length > 0) { - info.addSelect("inpcBpartnerLocationId"); + if (tdv != null && tdv.length > 0) { + info.addSelect("inpcBpartnerLocationId"); + if (strLocation.isEmpty()) { + // If no location is provided, the first one is selected + info.addSelectResult(tdv[0].getField("id"), tdv[0].getField("name"), true); + for (int i = 1; i < tdv.length; i++) { + info.addSelectResult(tdv[i].getField("id"), tdv[i].getField("name"), false); + } + } else { + // If a location is provided, it is selected for (int i = 0; i < tdv.length; i++) { info.addSelectResult(tdv[i].getField("id"), tdv[i].getField("name"), tdv[i] .getField("id").equalsIgnoreCase(strLocation)); } - info.endSelect(); - } else { - info.addResult("inpcBpartnerLocationId", null); } + info.endSelect(); } // Warehouses @@ -246,11 +251,19 @@ if (tlv != null && tlv.length > 0) { info.addSelect("inpbilltoId"); - for (int i = 0; i < tlv.length; i++) { - info.addSelectResult(tlv[i].getField("id"), tlv[i].getField("name"), tlv[i].getField("id") - .equalsIgnoreCase(strLocation)); + if (strLocation.isEmpty()) { + // If no location is provided, the first one is selected + info.addSelectResult(tlv[0].getField("id"), tlv[0].getField("name"), true); + for (int i = 0; i < tlv.length; i++) { + info.addSelectResult(tlv[i].getField("id"), tlv[i].getField("name"), false); + } + } else { + // If a location is provided, it is selected + for (int i = 0; i < tlv.length; i++) { + info.addSelectResult(tlv[i].getField("id"), tlv[i].getField("name"), tlv[i] + .getField("id").equalsIgnoreCase(strLocation)); + } } - info.endSelect(); } else { info.addResult("inpbilltoId", null); diff -r 066d746f200f -r 12f711dbc48e src/org/openbravo/erpCommon/ad_callouts/SE_Project_BPartner.java --- a/src/org/openbravo/erpCommon/ad_callouts/SE_Project_BPartner.java Thu Jun 14 13:16:38 2012 +0200 +++ b/src/org/openbravo/erpCommon/ad_callouts/SE_Project_BPartner.java Thu Jun 14 18:52:29 2012 +0200 @@ -113,16 +113,38 @@ resultado.append("new Array(\"inpcBpartnerLocationId\", "); if (tdv != null && tdv.length > 0) { resultado.append("new Array("); - for (int i = 0; i < tdv.length; i++) { - resultado.append("new Array(\"" + tdv[i].getField("id") + "\", \"" - + FormatUtilities.replaceJS(tdv[i].getField("name")) + "\", \"" - + (tdv[i].getField("id").equalsIgnoreCase(strLocation) ? "true" : "false") + "\")"); - if (i < tdv.length - 1) - resultado.append(",\n"); + if (strLocation.isEmpty()) { + // If no location is provided, the first one is selected + if (tdv.length > 0) { + resultado.append("new Array(\"" + tdv[0].getField("id") + "\", \"" + + FormatUtilities.replaceJS(tdv[0].getField("name")) + "\", \"" + "true" + "\")"); + if (tdv.length > 1) { + resultado.append(",\n"); + } + } + for (int i = 1; i < tdv.length; i++) { + resultado.append("new Array(\"" + tdv[i].getField("id") + "\", \"" + + FormatUtilities.replaceJS(tdv[i].getField("name")) + "\", \"" + "false" + "\")"); + if (i < tdv.length - 1) { + resultado.append(",\n"); + } + } + } else { + // If a location is provided, it is selected + for (int i = 0; i < tdv.length; i++) { + resultado.append("new Array(\"" + tdv[i].getField("id") + "\", \"" + + FormatUtilities.replaceJS(tdv[i].getField("name")) + "\", \"" + + (tdv[i].getField("id").equalsIgnoreCase(strLocation) ? "true" : "false") + "\")"); + if (i < tdv.length - 1) { + resultado.append(",\n"); + } + } } resultado.append("\n)"); - } else + + } else { resultado.append("null"); + } resultado.append("\n),"); try { ComboTableData comboTableData = new ComboTableData(vars, this, "TABLEDIR", "AD_User_ID", "", @@ -183,12 +205,29 @@ resultado.append("new Array(\"inpbilltoId\", "); if (tlv != null && tlv.length > 0) { resultado.append("new Array("); - for (int i = 0; i < tlv.length; i++) { - resultado.append("new Array(\"" + tlv[i].getField("id") + "\", \"" - + FormatUtilities.replaceJS(tlv[i].getField("name")) + "\", \"" - + (tlv[i].getField("id").equalsIgnoreCase(strLocation) ? "true" : "false") + "\")"); - if (i < tlv.length - 1) - resultado.append(",\n"); + + if (strLocation.isEmpty()) { + if (tlv.length > 0) { + resultado.append("new Array(\"" + tlv[0].getField("id") + "\", \"" + + FormatUtilities.replaceJS(tlv[0].getField("name")) + "\", \"" + "true" + "\")"); + if (tlv.length > 1) { + resultado.append(",\n"); + } + } + for (int i = 1; i < tlv.length; i++) { + resultado.append("new Array(\"" + tlv[i].getField("id") + "\", \"" + + FormatUtilities.replaceJS(tlv[i].getField("name")) + "\", \"" + "false" + "\")"); + if (i < tlv.length - 1) + resultado.append(",\n"); + } + } else { + for (int i = 0; i < tlv.length; i++) { + resultado.append("new Array(\"" + tlv[i].getField("id") + "\", \"" + + FormatUtilities.replaceJS(tlv[i].getField("name")) + "\", \"" + + (tlv[i].getField("id").equalsIgnoreCase(strLocation) ? "true" : "false") + "\")"); + if (i < tlv.length - 1) + resultado.append(",\n"); + } } resultado.append("\n)"); } else diff -r 066d746f200f -r 12f711dbc48e src/org/openbravo/erpCommon/ad_callouts/SE_Proposal_BPartner.java --- a/src/org/openbravo/erpCommon/ad_callouts/SE_Proposal_BPartner.java Thu Jun 14 13:16:38 2012 +0200 ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Openbravo-commits mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openbravo-commits
