76 lines
2.6 KiB
Java
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;
|
|
}
|
|
|
|
}
|