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