parent
9a2de4f745
commit
15d773ced1
|
|
@ -27,6 +27,32 @@ public class LpzConverPlugin extends AbstractConvertPlugIn implements Plugin {
|
|||
@Override
|
||||
public void afterFieldMapping(AfterFieldMappingEventArgs e) {
|
||||
super.afterFieldMapping(e);
|
||||
|
||||
// 币种
|
||||
DynamicObject cuscurrency;
|
||||
// 源单分录
|
||||
DynamicObjectCollection entrys;
|
||||
// 账户名称
|
||||
String accountbankName;
|
||||
|
||||
DynamicObject dynamicObject;
|
||||
|
||||
// 贷方
|
||||
DynamicObject lendersAddNew;
|
||||
// 借方
|
||||
DynamicObject debitAddNew;
|
||||
|
||||
// 记账期间
|
||||
DynamicObject[] bdPeriods;
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
|
||||
String yearMonth;
|
||||
|
||||
// 目标单据 → 记账日期
|
||||
Date bookdate;
|
||||
|
||||
// 类凭证的分录
|
||||
DynamicObjectCollection tallyentryentity;
|
||||
|
||||
BillEntityType srcMainType = this.getSrcMainType();//源单标识
|
||||
String srcMainTypeName = srcMainType.getName();//源单名称
|
||||
BillEntityType tgtMainType = this.getTgtMainType();//目标单标识
|
||||
|
|
@ -38,74 +64,153 @@ public class LpzConverPlugin extends AbstractConvertPlugIn implements Plugin {
|
|||
DynamicObject srcRow = srcRows.get(0);
|
||||
Object srcId = e.getFldProperties().get("id").getValue(srcRow);//获取源单id
|
||||
DynamicObject souData = BusinessDataServiceHelper.loadSingle(srcId, srcMainTypeName);//查询源单数据
|
||||
Date bookdate = tarData.getDate("bookdate");
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
|
||||
String yearMonth = sdf.format(bookdate);
|
||||
DynamicObject[] bdPeriods = BusinessDataServiceHelper.load("bd_period", "id,number", new QFilter("number", QCP.equals, yearMonth).toArray());
|
||||
|
||||
bookdate = tarData.getDate("bookdate");
|
||||
yearMonth = sdf.format(bookdate);
|
||||
bdPeriods = BusinessDataServiceHelper.load("bd_period", "id,number", new QFilter("number", QCP.equals, yearMonth).toArray());
|
||||
if (bdPeriods != null && bdPeriods.length > 0) {
|
||||
// 记账期间 字段赋值
|
||||
tarData.set("period", bdPeriods[0]);
|
||||
}
|
||||
DynamicObjectCollection tallyentryentity = tarData.getDynamicObjectCollection("tallyentryentity");
|
||||
DynamicObject dynamicObject = tallyentryentity.get(0);
|
||||
// 摘要 字段赋值
|
||||
DynamicObject accountbank = souData.getDynamicObject("accountbank");
|
||||
String accountbankName = accountbank.getString("name");
|
||||
dynamicObject.set("tallyabstract", accountbankName);
|
||||
// 科目 字段赋值
|
||||
DynamicObject bank = accountbank.getDynamicObject("bank");
|
||||
String bank_number = bank.getString("number");
|
||||
DynamicObject[] bd_finorginfo = BusinessDataServiceHelper.load("bd_finorginfo", "id,number,bank_cate", new QFilter("number", QCP.equals, bank_number).toArray());
|
||||
DynamicObject bank_cate = bd_finorginfo[0].getDynamicObject("bank_cate");
|
||||
String bankName = bank_cate.getString("name");//银行类别
|
||||
DynamicObject[] bdAccountviews1 = BusinessDataServiceHelper.load("bd_accountview", "id,number,name", new QFilter("number", QCP.like, "1002.%")
|
||||
.and("name", QCP.equals, bankName).toArray());
|
||||
dynamicObject.set("account", bdAccountviews1[0]);
|
||||
// 核算维度 字段赋值
|
||||
String yhhswd = "银行账户:" + accountbank.getString("bankaccountnumber");
|
||||
dynamicObject.set("shkd_hswd", yhhswd);
|
||||
// 币种
|
||||
DynamicObject cuscurrency = dynamicObject.getDynamicObject("cuscurrency");
|
||||
// 汇率
|
||||
Object exrate = dynamicObject.get("exrate");
|
||||
// 汇率日期
|
||||
dynamicObject.set("ratedate", bookdate);
|
||||
|
||||
tallyentryentity = tarData.getDynamicObjectCollection("tallyentryentity");
|
||||
|
||||
DynamicObject addNew = tallyentryentity.addNew();
|
||||
// 摘要 字段赋值
|
||||
DynamicObjectCollection entrys = souData.getDynamicObjectCollection("entrys");
|
||||
DynamicObject entry = entrys.get(0);
|
||||
DynamicObject subacctCompany = entry.getDynamicObject("subacct_company");
|
||||
String subacctCompanyName = subacctCompany.getString("name");
|
||||
addNew.set("tallyabstract", subacctCompanyName);
|
||||
// 科目 字段赋值
|
||||
DynamicObject[] bdAccountviews2 = BusinessDataServiceHelper.load("bd_accountview", "id,number,name", new QFilter("number", QCP.equals, "2241.02.01.01").toArray());
|
||||
addNew.set("account", bdAccountviews2[0]);
|
||||
// 核算维度 字段赋值
|
||||
String gyshswd = "供应商:" + subacctCompanyName;
|
||||
addNew.set("shkd_hswd", gyshswd);
|
||||
// 原币贷方金额 字段赋值
|
||||
BigDecimal transamt = entry.getBigDecimal("transamt");
|
||||
addNew.set("loanamount", transamt);
|
||||
// 贷方金额 字段赋值
|
||||
addNew.set("loanstanamount", transamt);
|
||||
// 原币金额 字段赋值
|
||||
addNew.set("oriamount", transamt);
|
||||
// 主表项目 字段赋值
|
||||
DynamicObject[] glCashflowitems = BusinessDataServiceHelper.load("gl_cashflowitem", "id.number,name", new QFilter("number", QCP.equals, "CI01.01.03").toArray());
|
||||
addNew.set("maincfitem", glCashflowitems[0]);
|
||||
// 主表核算维度 字段赋值
|
||||
String zbhswd = "组织机构:" + subacctCompanyName;
|
||||
addNew.set("shkd_zbhswd", zbhswd);
|
||||
// 主表项目金额 字段赋值
|
||||
addNew.set("maincfamount", transamt);
|
||||
// 币种 字段赋值
|
||||
addNew.set("cuscurrency", cuscurrency);
|
||||
// 汇率 字段赋值
|
||||
addNew.set("exrate", exrate);
|
||||
// 汇率日期 字段赋值
|
||||
addNew.set("ratedate", bookdate);
|
||||
lendersAddNew = tallyentryentity.addNew();
|
||||
debitAddNew = tallyentryentity.addNew();
|
||||
|
||||
switch (srcMainTypeName) {
|
||||
case "fca_transupbill"://上划
|
||||
case "fca_transdownbill"://下拨
|
||||
// 币种
|
||||
cuscurrency = souData.getDynamicObject("currency");
|
||||
entrys = souData.getDynamicObjectCollection("entrys");
|
||||
DynamicObject entry = entrys.get(0);
|
||||
DynamicObject subacctCompany = entry.getDynamicObject("subacct_company");
|
||||
String subacctCompanyName = subacctCompany.getString("name");
|
||||
BigDecimal transamt = entry.getBigDecimal("transamt");
|
||||
|
||||
DynamicObject accountbank = souData.getDynamicObject("accountbank");
|
||||
accountbankName = accountbank.getString("name");
|
||||
|
||||
if ("fca_transupbill".equals(srcMainTypeName)) {
|
||||
// 摘要 字段赋值
|
||||
lendersAddNew.set("tallyabstract", "归集:" + subacctCompanyName);
|
||||
// 科目 字段赋值
|
||||
DynamicObject[] bdAccountviews2 = BusinessDataServiceHelper.load("bd_accountview", "id,number,name", new QFilter("number", QCP.equals, "2241.02.01.01").toArray());
|
||||
lendersAddNew.set("account", bdAccountviews2[0]);
|
||||
// 核算维度 字段赋值
|
||||
String gyshswd = "供应商:" + subacctCompanyName;
|
||||
lendersAddNew.set("shkd_hswd", gyshswd);
|
||||
// 原币贷方金额 字段赋值
|
||||
lendersAddNew.set("loanamount", transamt);
|
||||
// 贷方金额 字段赋值
|
||||
lendersAddNew.set("loanstanamount", transamt);
|
||||
// 原币金额 字段赋值
|
||||
lendersAddNew.set("oriamount", transamt);
|
||||
// 主表项目 字段赋值
|
||||
DynamicObject[] glCashflowitems = BusinessDataServiceHelper.load("gl_cashflowitem", "id.number,name", new QFilter("number", QCP.equals, "CI01.01.03").toArray());
|
||||
lendersAddNew.set("maincfitem", glCashflowitems[0]);
|
||||
// 主表核算维度 字段赋值
|
||||
String zbhswd = "组织机构:" + subacctCompanyName;
|
||||
lendersAddNew.set("shkd_zbhswd", zbhswd);
|
||||
// 主表项目金额 字段赋值
|
||||
lendersAddNew.set("maincfamount", transamt);
|
||||
// 币种 字段赋值
|
||||
lendersAddNew.set("cuscurrency", cuscurrency);
|
||||
// 汇率 字段赋值
|
||||
lendersAddNew.set("exrate", 1);
|
||||
// 汇率日期 字段赋值
|
||||
lendersAddNew.set("ratedate", bookdate);
|
||||
|
||||
// 摘要 字段赋值
|
||||
debitAddNew.set("tallyabstract", accountbankName + "账户资金明细");
|
||||
// 科目 字段赋值
|
||||
DynamicObject bank = accountbank.getDynamicObject("bank");
|
||||
String bank_number = bank.getString("number");
|
||||
DynamicObject[] bd_finorginfo = BusinessDataServiceHelper.load("bd_finorginfo", "id,number,bank_cate", new QFilter("number", QCP.equals, bank_number).toArray());
|
||||
DynamicObject bank_cate = bd_finorginfo[0].getDynamicObject("bank_cate");
|
||||
String bankName = bank_cate.getString("name");//银行类别
|
||||
DynamicObject[] bdAccountviews1 = BusinessDataServiceHelper.load("bd_accountview", "id,number,name", new QFilter("number", QCP.like, "1002.%")
|
||||
.and("name", QCP.equals, bankName).toArray());
|
||||
debitAddNew.set("account", bdAccountviews1[0]);
|
||||
// 核算维度 字段赋值
|
||||
String yhhswd = "银行账户:" + accountbank.getString("bankaccountnumber");
|
||||
debitAddNew.set("shkd_hswd", yhhswd);
|
||||
// 原币借方金额 字段赋值
|
||||
debitAddNew.set("tallyamount", transamt);
|
||||
// 借方金额 字段赋值
|
||||
debitAddNew.set("standardamount", transamt);
|
||||
// 原币金额 字段赋值
|
||||
debitAddNew.set("oriamount", transamt);
|
||||
// 币种 字段赋值
|
||||
debitAddNew.set("cuscurrency", cuscurrency);
|
||||
// 汇率 字段赋值
|
||||
debitAddNew.set("exrate", 1);
|
||||
// 汇率日期 字段赋值
|
||||
debitAddNew.set("ratedate", bookdate);
|
||||
}
|
||||
|
||||
if ("fca_transdownbill".equals(srcMainTypeName)) {
|
||||
// 摘要 字段赋值
|
||||
lendersAddNew.set("tallyabstract", accountbankName + "账户资金明细");
|
||||
// 科目 字段赋值
|
||||
DynamicObject bank = accountbank.getDynamicObject("bank");
|
||||
String bank_number = bank.getString("number");
|
||||
DynamicObject[] bd_finorginfo = BusinessDataServiceHelper.load("bd_finorginfo", "id,number,bank_cate", new QFilter("number", QCP.equals, bank_number).toArray());
|
||||
DynamicObject bank_cate = bd_finorginfo[0].getDynamicObject("bank_cate");
|
||||
String bankName = bank_cate.getString("name");//银行类别
|
||||
DynamicObject[] bdAccountviews1 = BusinessDataServiceHelper.load("bd_accountview", "id,number,name", new QFilter("number", QCP.like, "1002.%")
|
||||
.and("name", QCP.equals, bankName).toArray());
|
||||
lendersAddNew.set("account", bdAccountviews1[0]);
|
||||
// 核算维度 字段赋值
|
||||
String yhhswd = "银行账户:" + accountbank.getString("bankaccountnumber");
|
||||
lendersAddNew.set("shkd_hswd", yhhswd);
|
||||
|
||||
// 原币贷方金额 字段赋值
|
||||
lendersAddNew.set("loanamount", transamt);
|
||||
// 贷方金额 字段赋值
|
||||
lendersAddNew.set("loanstanamount", transamt);
|
||||
// 原币金额 字段赋值
|
||||
lendersAddNew.set("oriamount", transamt);
|
||||
// 币种 字段赋值
|
||||
lendersAddNew.set("cuscurrency", cuscurrency);
|
||||
// 汇率 字段赋值
|
||||
lendersAddNew.set("exrate", 1);
|
||||
// 汇率日期 字段赋值
|
||||
lendersAddNew.set("ratedate", bookdate);
|
||||
|
||||
// 摘要 字段赋值
|
||||
debitAddNew.set("tallyabstract", "下拨:" + subacctCompanyName);
|
||||
// 科目 字段赋值
|
||||
DynamicObject[] bdAccountviews2 = BusinessDataServiceHelper.load("bd_accountview",
|
||||
"id,number,name", new QFilter("number", QCP.equals, "2241.02.01.01").toArray());
|
||||
debitAddNew.set("account", bdAccountviews2[0]);
|
||||
// 核算维度 字段赋值
|
||||
String gyshswd = "供应商:" + subacctCompanyName;
|
||||
debitAddNew.set("shkd_hswd", gyshswd);
|
||||
// 原币借方金额 字段赋值
|
||||
debitAddNew.set("tallyamount", transamt);
|
||||
// 借方金额 字段赋值
|
||||
debitAddNew.set("standardamount", transamt);
|
||||
// 原币金额 字段赋值
|
||||
debitAddNew.set("oriamount", transamt);
|
||||
// 主表项目 字段赋值
|
||||
DynamicObject[] glCashflowitems = BusinessDataServiceHelper.load("gl_cashflowitem",
|
||||
"id.number,name", new QFilter("number", QCP.equals, "CI01.02.04").toArray());
|
||||
debitAddNew.set("maincfitem", glCashflowitems[0]);
|
||||
// 主表核算维度 字段赋值
|
||||
String zbhswd = "组织机构:" + subacctCompanyName;
|
||||
debitAddNew.set("shkd_zbhswd", zbhswd);
|
||||
// 主表项目金额 字段赋值
|
||||
debitAddNew.set("maincfamount", transamt);
|
||||
// 币种 字段赋值
|
||||
debitAddNew.set("cuscurrency", cuscurrency);
|
||||
// 汇率 字段赋值
|
||||
debitAddNew.set("exrate", 1);
|
||||
// 汇率日期 字段赋值
|
||||
debitAddNew.set("ratedate", bookdate);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue