2018-06-03 22:26:41 +08:00

59 lines
2.0 KiB
Java

package com.amarsoft.acct.accounting.web;
import com.amarsoft.app.accounting.cashflow.CashFlowHelper;
import com.amarsoft.app.base.businessobject.BusinessObject;
import com.amarsoft.app.base.businessobject.BusinessObjectManager;
import com.amarsoft.app.base.trans.TransactionHelper;
import com.amarsoft.app.base.util.DateHelper;
/**
* 一般还款测算
* @author Amarsoft核算团队
*
*/
public class PaymentCalculate{
private String transactionSerialNo;
public String getTransactionSerialNo() {
return transactionSerialNo;
}
public void setTransactionSerialNo(String transactionSerialNo) {
this.transactionSerialNo = transactionSerialNo;
}
public BusinessObject run() throws Exception
{
if(transactionSerialNo == null || "".equals(transactionSerialNo))
{
throw new Exception("交易流水为空!");
}
BusinessObjectManager bomanager = BusinessObjectManager.createBusinessObjectManager();
BusinessObject transaction = TransactionHelper.loadTransaction(transactionSerialNo, bomanager);
BusinessObject document = transaction.getBusinessObject(transaction.getString("DOCUMENTTYPE"));
BusinessObject loan = transaction.getBusinessObject(transaction.getString("RelativeObjectType"));
String payRuleType = CashFlowHelper.getPayRuleType(loan);
document.setAttributeValue("PayRuleType", payRuleType);
String transDate = transaction.getString("TransDate");
//对于生效日期不是在当天的进行换日交易的处理
while(loan.getString("BusinessDate").compareTo(transDate) < 0)
{
BusinessObject transaction1 = TransactionHelper.createTransaction("9090", null, loan, "", "", DateHelper.getBusinessDate(), bomanager);
transaction1 = TransactionHelper.executeTransaction(transaction1, bomanager);
}
TransactionHelper.executeTransaction(transaction, bomanager);
BusinessObject payment = transaction.getBusinessObject(transaction.getString("DocumentType"));
bomanager.clear();
bomanager.updateBusinessObject(payment);
bomanager.updateDB();
return payment;
}
}