📄 listnotappliedpayments.bsh
字号:
/* * $Id: $ * * Copyright 2001-2006 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. *//* *@author Hans Bakker h.bakker@antwebsystems.com */ import java.util.*;import org.ofbiz.entity.*;import org.ofbiz.base.util.*;import org.ofbiz.base.util.collections.*;import org.ofbiz.accounting.invoice.*;import org.ofbiz.accounting.payment.*;import org.ofbiz.accounting.util.UtilAccounting;import java.text.DateFormat;import java.math.*;invoiceId = parameters.get("invoiceId");invoice = delegator.findByPrimaryKey("Invoice", UtilMisc.toMap("invoiceId", invoiceId));int decimals = UtilNumber.getBigDecimalScale("invoice.decimals");int rounding = UtilNumber.getBigDecimalRoundingMode("invoice.rounding");// get the party to look forArrayList paymentsMapList = new ArrayList(); // to pass back to the screeen list of unapplied payments// retrieve payments for the related parties which have not been (fully) applied yetList payments = null;GenericValue payment = null;payments = delegator.findByAnd("Payment", UtilMisc.toMap("partyIdTo", invoice.getString("partyIdFrom"), "partyIdFrom", invoice.getString("partyId")), UtilMisc.toList("effectiveDate")); if (payments != null && payments.size() > 0) { List paymentApplications = null; GenericValue paymentApplication = null; BigDecimal invoiceApplied = InvoiceWorker.getInvoiceAppliedBd(invoice); BigDecimal invoiceAmount = InvoiceWorker.getInvoiceTotalBd(invoice); BigDecimal invoiceToApply = invoiceAmount.subtract(invoiceApplied); Iterator p = payments.iterator(); while(p.hasNext()) { payment = p.next(); BigDecimal paymentApplied = PaymentWorker.getPaymentAppliedBd(payment).setScale(decimals,rounding); if (!(payment.getBigDecimal("amount").setScale(decimals,rounding).equals(paymentApplied))) { // put in the map Map paymentMap = new HashMap(); paymentMap.put("paymentId", payment.getString("paymentId")); paymentMap.put("effectiveDate", payment.getString("effectiveDate").substring(0,10)); // list as YYYY-MM-DD paymentMap.put("amount", payment.getBigDecimal("amount").setScale(decimals,rounding).toString()); paymentMap.put("currencyUomId", payment.getString("currencyUomId")); paymentMap.put("paymentApplied", paymentApplied.toString()); BigDecimal paymentToApply = payment.getBigDecimal("amount").setScale(decimals,rounding).subtract(paymentApplied); if (paymentToApply.compareTo(invoiceToApply) < 0 ) { paymentMap.put("amountToApply",paymentToApply.toString()); } else { paymentMap.put("amountToApply", invoiceToApply.toString()); } paymentsMapList.add(paymentMap); } }} context.put("payments", paymentsMapList);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -