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

76 lines
2.6 KiB
Java

/**
* 会计凭证打印对象
*/
package com.amarsoft.app.accounting.print;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.amarsoft.app.base.businessobject.BusinessObject;
import com.amarsoft.app.base.businessobject.BusinessObjectManager;
import com.amarsoft.app.base.config.impl.TransactionConfig;
import com.amarsoft.app.base.trans.TransactionHelper;
import com.amarsoft.app.base.util.BUSINESSOBJECT_CONSTANTS;
import com.amarsoft.are.util.DataConvert;
import com.amarsoft.awe.util.Transaction;
/**
* @author xjzhao
* @date 2011-03-24
*
*
*/
public class PrintObject {
/*
* 生成数据对象
*/
public ArrayList<PrintTemplete> createData(Transaction Sqlca,String sTransCode,String DocumentType,String DocumentSerialNo,String TransSerialNo) throws Exception
{
ArrayList<PrintTemplete> data = new ArrayList<PrintTemplete>();
BusinessObjectManager bom = BusinessObjectManager.createBusinessObjectManager();
BusinessObject transaction = bom.keyLoadBusinessObject("jbo.acct.ACCT_TRANSACTION", TransSerialNo);
String sql = "";
if("1".equals(transaction.getString("TransStatus")) || "2".equals(transaction.getString("TransStatus"))){
//已执行的交易从数据库中取
sql = "select direction,exaccountcodeno,amount from acct_subledger_detail where transserialno='"+TransSerialNo+"' and status='1' and exbooktype='B' order by sortno";
PreparedStatement ps = Sqlca.getConnection().prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while(rs.next())
{
PrintTemplete pt = new PrintTemplete();
pt.setSystemID("CORE");
pt.setDirection(DataConvert.toString(rs.getString(1)));
pt.setSubjectno(DataConvert.toString(rs.getString(2)));
pt.setAmount(DataConvert.toMoney(rs.getDouble(3)));
pt.setDirectionAccNo("");
pt.setDirectionAccName("");
data.add(pt);
}
ps.close();
rs.close();
}else{
//未执行的预执行
TransactionHelper.loadTransaction(transaction, bom);
transaction = TransactionHelper.executeTransaction(transaction, bom);
List<BusinessObject> detailList = transaction.getBusinessObjectsBySql(BUSINESSOBJECT_CONSTANTS.subledger_detail, "status='1' and exbooktype='B' order by sortno");
for(BusinessObject detail : detailList){
PrintTemplete pt = new PrintTemplete();
pt.setSystemID("CORE");
pt.setDirection(detail.getString("Direction"));
pt.setSubjectno(detail.getString("ExAccountCodeNo"));
pt.setAmount(detail.getString("Amount"));
pt.setDirectionAccNo("");
pt.setDirectionAccName("");
data.add(pt);
}
}
return data;
}
}