|
@@ -569,7 +569,7 @@ public class SRMSynPayApiPlugin implements Serializable {
|
|
entry.set("srcbilltype", "er_prepaybill");//源单类型
|
|
entry.set("srcbilltype", "er_prepaybill");//源单类型
|
|
entry.set("seq", srmseq);
|
|
entry.set("seq", srmseq);
|
|
|
|
|
|
- //目标单标识
|
|
|
|
|
|
+ //记录对公报销与预付单的关联关系
|
|
String targetEntityNumber = "er_publicreimbursebill";//对公报销
|
|
String targetEntityNumber = "er_publicreimbursebill";//对公报销
|
|
String targetEntryKey = "writeoffmoney";//对公报销-冲预付、冲借款
|
|
String targetEntryKey = "writeoffmoney";//对公报销-冲预付、冲借款
|
|
String srcEntityNumber = "er_prepaybill";//预付单
|
|
String srcEntityNumber = "er_prepaybill";//预付单
|
|
@@ -581,24 +581,21 @@ public class SRMSynPayApiPlugin implements Serializable {
|
|
|
|
|
|
DynamicObjectCollection linkRows = entry.getDynamicObjectCollection("writeoffmoney_lk");
|
|
DynamicObjectCollection linkRows = entry.getDynamicObjectCollection("writeoffmoney_lk");
|
|
if (!linkRows.isEmpty()) {
|
|
if (!linkRows.isEmpty()) {
|
|
- // 已经有关联源单,无需再重建
|
|
|
|
- continue;
|
|
|
|
|
|
+ String lkEntryKey ="writeoffmoney_lk";
|
|
|
|
+ Long srcTableId = srcTableDefine.getTableId();
|
|
|
|
+
|
|
|
|
+ // 找到了匹配的行,创建一条_lk子实体上数据,记录源单内码
|
|
|
|
+ DynamicObject linkRow = new DynamicObject(linkRows.getDynamicObjectType());
|
|
|
|
+ linkRows.add(linkRow);
|
|
|
|
+ // 在lk行中,记录源单分录表格编码、源单内码、源单分录内码
|
|
|
|
+
|
|
|
|
+ linkRow.set("id", ID.genLongId());
|
|
|
|
+ linkRow.set("seq", 1);
|
|
|
|
+ linkRow.set(lkEntryKey + "_stableid", srcTableId); // 源单分录表格编码:以此标识源单类型及单据体
|
|
|
|
+ linkRow.set(lkEntryKey + "_sbillid", prepayBillInfo.getString("id")); // 源单内码
|
|
|
|
+ linkRow.set(lkEntryKey + "_sid", prepayEntry.getString("id")); // 源单分录行内码
|
|
}
|
|
}
|
|
|
|
|
|
- String lkEntryKey ="writeoffmoney_lk";
|
|
|
|
- Long srcTableId = srcTableDefine.getTableId();
|
|
|
|
-
|
|
|
|
- // 找到了匹配的行,创建一条_lk子实体上数据,记录源单内码
|
|
|
|
- DynamicObject linkRow = new DynamicObject(linkRows.getDynamicObjectType());
|
|
|
|
- linkRows.add(linkRow);
|
|
|
|
- // 在lk行中,记录源单分录表格编码、源单内码、源单分录内码
|
|
|
|
-
|
|
|
|
- linkRow.set("id", ID.genLongId());
|
|
|
|
- linkRow.set("seq", 1);
|
|
|
|
- linkRow.set(lkEntryKey + "_stableid", srcTableId); // 源单分录表格编码:以此标识源单类型及单据体
|
|
|
|
- linkRow.set(lkEntryKey + "_sbillid", prepayBillInfo.getString("id")); // 源单内码
|
|
|
|
- linkRow.set(lkEntryKey + "_sid", prepayEntry.getString("id")); // 源单分录行内码
|
|
|
|
-
|
|
|
|
writeoffmoney.add(entry);
|
|
writeoffmoney.add(entry);
|
|
|
|
|
|
totalLoanCheckAmount = totalLoanCheckAmount.add(checkAmountOri);
|
|
totalLoanCheckAmount = totalLoanCheckAmount.add(checkAmountOri);
|
|
@@ -847,6 +844,10 @@ public class SRMSynPayApiPlugin implements Serializable {
|
|
entry.set("contractparta", contractInfo.getDynamicObject("parta"));//甲方old
|
|
entry.set("contractparta", contractInfo.getDynamicObject("parta"));//甲方old
|
|
entry.set("contractpartbtype", "bd_supplier");//乙方类型
|
|
entry.set("contractpartbtype", "bd_supplier");//乙方类型
|
|
entry.set("contractpartb", contractparty);//乙方
|
|
entry.set("contractpartb", contractparty);//乙方
|
|
|
|
+ entry.set("contractpartatypenew", "bos_org");//甲方类型
|
|
|
|
+ entry.set("contractpartanew", costCompany);//甲方
|
|
|
|
+ entry.set("nckd_contractamt", contractAmount);//合同总额(初始)
|
|
|
|
+ entry.set("nckd_oriapplyamt", oriapplyAmount);//合同总额(变更后)
|
|
|
|
|
|
DynamicObjectCollection payplanEntrys = contractInfo.getDynamicObjectCollection("expenseentryentity");
|
|
DynamicObjectCollection payplanEntrys = contractInfo.getDynamicObjectCollection("expenseentryentity");
|
|
if(payplanEntrys.size() > 0){
|
|
if(payplanEntrys.size() > 0){
|
|
@@ -859,18 +860,54 @@ public class SRMSynPayApiPlugin implements Serializable {
|
|
entry.set("contractexpcurrency", planEntry.getDynamicObject("entrycurrency"));//币种
|
|
entry.set("contractexpcurrency", planEntry.getDynamicObject("entrycurrency"));//币种
|
|
entry.set("contractexpchangerate", planEntry.getBigDecimal("exchangerate"));//汇率
|
|
entry.set("contractexpchangerate", planEntry.getBigDecimal("exchangerate"));//汇率
|
|
entry.set("contractexpquotetype", "0");//换算方式
|
|
entry.set("contractexpquotetype", "0");//换算方式
|
|
|
|
+ entry.set("entryprepayedamount", planEntry.getBigDecimal("pushedamount"));//已预付金额
|
|
|
|
+ entry.set("entrycurrprepayedamount", planEntry.getBigDecimal("pushedcurramount"));//已预付金额本位币
|
|
|
|
+ entry.set("contractreimamount", planEntry.getBigDecimal("oriexppayedamount"));//已付金额
|
|
|
|
+ entry.set("contractcurrreimamhttount", planEntry.getBigDecimal("exppayedamount"));//已付金额本位币
|
|
|
|
+ entry.set("contractcanamount", planEntry.getBigDecimal("orgiexpebalanceamount"));//可报销金额
|
|
|
|
+ entry.set("contractcurrcanamount", planEntry.getBigDecimal("expebalanceamount"));//可报销金额本位币
|
|
|
|
+// entry.set("contractwriteoff", planEntry.getBigDecimal("canloanamount"));//冲销金额
|
|
|
|
+// entry.set("contractcurrwriteoff", planEntry.getBigDecimal("canloancurramount"));//冲销金额本位币
|
|
|
|
+ entry.set("oricontractnotpayamount", planEntry.getBigDecimal("oriexpnotpayamount"));//未付金额
|
|
entry.set("contractnotpayamount", planEntry.getBigDecimal("expnotpayamount"));//未付金额本位币
|
|
entry.set("contractnotpayamount", planEntry.getBigDecimal("expnotpayamount"));//未付金额本位币
|
|
- entry.set("contractcanloanamount", planEntry.getBigDecimal("canloanamount"));//可预付金额
|
|
|
|
- entry.set("concurrcanloanamount", planEntry.getBigDecimal("canloancurramount"));//可预付金额本位币
|
|
|
|
|
|
+
|
|
|
|
+ entry.set("contractsid", contractInfo.getLong("id"));//源单id
|
|
|
|
+ entry.set("contractsrcentryid", planEntry.getLong("id"));//关联合同分录id
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //记录对公报销与合同台账的
|
|
|
|
+ String targetEntityNumber = "er_publicreimbursebill";//对公报销
|
|
|
|
+ String targetEntryKey = "contractentry";//对公报销-冲预付、冲借款
|
|
|
|
+ String srcEntityNumber = "er_contractbill";//合同台账
|
|
|
|
+ String srcEntryKey = "expenseentryentity";//合同付款计划
|
|
|
|
+ // 获取目标单单据体的实体表格定义:主实体 + 单据体 -> 对应一个唯一的实体表格定义
|
|
|
|
+ TableDefine targetTableDefine = EntityMetadataCache.loadTableDefine(targetEntityNumber, targetEntryKey);
|
|
|
|
+ // 获取源单单据体的表格定义:记录关联关系时,需要用到此对象中的tableId值,用一个长整数值唯一标识源单及单据体
|
|
|
|
+ TableDefine srcTableDefine = EntityMetadataCache.loadTableDefine(srcEntityNumber, srcEntryKey);
|
|
|
|
+
|
|
|
|
+ DynamicObjectCollection linkRows = entry.getDynamicObjectCollection("contractentry_lk");
|
|
|
|
+ if (linkRows.isEmpty()) {
|
|
|
|
+ String lkEntryKey ="contractentry_lk";
|
|
|
|
+ Long srcTableId = srcTableDefine.getTableId();
|
|
|
|
+
|
|
|
|
+ // 找到了匹配的行,创建一条_lk子实体上数据,记录源单内码
|
|
|
|
+ DynamicObject linkRow = new DynamicObject(linkRows.getDynamicObjectType());
|
|
|
|
+ linkRows.add(linkRow);
|
|
|
|
+ // 在lk行中,记录源单分录表格编码、源单内码、源单分录内码
|
|
|
|
+
|
|
|
|
+ linkRow.set("id", ID.genLongId());
|
|
|
|
+ linkRow.set("seq", 1);
|
|
|
|
+ linkRow.set(lkEntryKey + "_stableid", srcTableId); // 源单分录表格编码:以此标识源单类型及单据体
|
|
|
|
+ linkRow.set(lkEntryKey + "_sbillid", contractInfo.getString("id")); // 源单内码
|
|
|
|
+ linkRow.set(lkEntryKey + "_sid", planEntry.getString("id")); // 源单分录行内码
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
- entry.set("contractpartatypenew", "bos_org");//甲方类型
|
|
|
|
- entry.set("contractpartanew", costCompany);//甲方
|
|
|
|
- entry.set("nckd_contractamt", contractAmount);//合同总额(初始)
|
|
|
|
- entry.set("nckd_oriapplyamt", oriapplyAmount);//合同总额(变更后)
|
|
|
|
|
|
|
|
contractEntry.add(entry);
|
|
contractEntry.add(entry);
|
|
|
|
|
|
|
|
+
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -1246,6 +1283,10 @@ public class SRMSynPayApiPlugin implements Serializable {
|
|
entry.set("contractparta", contractInfo.getDynamicObject("parta"));//甲方old
|
|
entry.set("contractparta", contractInfo.getDynamicObject("parta"));//甲方old
|
|
entry.set("contractpartbtype", "bd_supplier");//乙方类型
|
|
entry.set("contractpartbtype", "bd_supplier");//乙方类型
|
|
entry.set("contractpartb", contractparty);//乙方
|
|
entry.set("contractpartb", contractparty);//乙方
|
|
|
|
+ entry.set("contractpartatypenew", "bos_org");//甲方类型
|
|
|
|
+ entry.set("contractpartanew", costCompany);//甲方
|
|
|
|
+ entry.set("nckd_contractamt", contractAmount);//合同总额(初始)
|
|
|
|
+ entry.set("nckd_oriapplyamt", oriapplyAmount);//合同总额(变更后)
|
|
|
|
|
|
DynamicObjectCollection payplanEntrys = contractInfo.getDynamicObjectCollection("expenseentryentity");
|
|
DynamicObjectCollection payplanEntrys = contractInfo.getDynamicObjectCollection("expenseentryentity");
|
|
if(payplanEntrys.size() > 0){
|
|
if(payplanEntrys.size() > 0){
|
|
@@ -1258,15 +1299,51 @@ public class SRMSynPayApiPlugin implements Serializable {
|
|
entry.set("contractexpcurrency", planEntry.getDynamicObject("entrycurrency"));//币种
|
|
entry.set("contractexpcurrency", planEntry.getDynamicObject("entrycurrency"));//币种
|
|
entry.set("contractexpchangerate", planEntry.getBigDecimal("exchangerate"));//汇率
|
|
entry.set("contractexpchangerate", planEntry.getBigDecimal("exchangerate"));//汇率
|
|
entry.set("contractexpquotetype", "0");//换算方式
|
|
entry.set("contractexpquotetype", "0");//换算方式
|
|
- entry.set("contractnotpayamount", planEntry.getBigDecimal("expnotpayamount"));//未付金额本位币
|
|
|
|
- entry.set("contractcanloanamount", planEntry.getBigDecimal("canloanamount"));//可预付金额
|
|
|
|
|
|
+
|
|
|
|
+ entry.set("entryprepayedamount", planEntry.getBigDecimal("pushedamount"));//已预付金额
|
|
|
|
+ entry.set("entrycurrprepayedamount", planEntry.getBigDecimal("pushedcurramount"));//已预付金额本位币
|
|
|
|
+ entry.set("contractreimamount", planEntry.getBigDecimal("oriexppayedamount"));//已付金额
|
|
|
|
+ entry.set("contractcurrreimamhttount", planEntry.getBigDecimal("exppayedamount"));//已付金额本位币
|
|
|
|
+ entry.set("contractcanloanamount", planEntry.getBigDecimal("oriexppayedamount"));//可预付金额
|
|
entry.set("concurrcanloanamount", planEntry.getBigDecimal("canloancurramount"));//可预付金额本位币
|
|
entry.set("concurrcanloanamount", planEntry.getBigDecimal("canloancurramount"));//可预付金额本位币
|
|
|
|
+ entry.set("contractcanamount", planEntry.getBigDecimal("orgiexpebalanceamount"));//可报销金额
|
|
|
|
+ entry.set("contractcurrcanamount", planEntry.getBigDecimal("expebalanceamount"));//可报销金额本位币
|
|
|
|
+// entry.set("contractwriteoff", planEntry.getBigDecimal("canloanamount"));//冲销金额
|
|
|
|
+// entry.set("contractcurrwriteoff", planEntry.getBigDecimal("canloancurramount"));//冲销金额本位币
|
|
|
|
+ entry.set("contractnotpayamount", planEntry.getBigDecimal("oriexpnotpayamount"));//未付金额
|
|
|
|
+
|
|
|
|
+ entry.set("contractsid", contractInfo.getLong("id"));//源单id
|
|
|
|
+ entry.set("contractsrcentryid", planEntry.getLong("id"));//关联合同分录id
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //记录预付单与合同台账的
|
|
|
|
+ String targetEntityNumber = "er_prepaybill";//预付单
|
|
|
|
+ String targetEntryKey = "contractentry";//对公报销-合同分录
|
|
|
|
+ String srcEntityNumber = "er_contractbill";//合同台账
|
|
|
|
+ String srcEntryKey = "expenseentryentity";//合同台账-付款计划
|
|
|
|
+ // 获取目标单单据体的实体表格定义:主实体 + 单据体 -> 对应一个唯一的实体表格定义
|
|
|
|
+ TableDefine targetTableDefine = EntityMetadataCache.loadTableDefine(targetEntityNumber, targetEntryKey);
|
|
|
|
+ // 获取源单单据体的表格定义:记录关联关系时,需要用到此对象中的tableId值,用一个长整数值唯一标识源单及单据体
|
|
|
|
+ TableDefine srcTableDefine = EntityMetadataCache.loadTableDefine(srcEntityNumber, srcEntryKey);
|
|
|
|
+
|
|
|
|
+ DynamicObjectCollection linkRows = entry.getDynamicObjectCollection("contractentry_lk");
|
|
|
|
+ if (linkRows.isEmpty()) {
|
|
|
|
+ String lkEntryKey ="contractentry_lk";
|
|
|
|
+ Long srcTableId = srcTableDefine.getTableId();
|
|
|
|
+
|
|
|
|
+ // 找到了匹配的行,创建一条_lk子实体上数据,记录源单内码
|
|
|
|
+ DynamicObject linkRow = new DynamicObject(linkRows.getDynamicObjectType());
|
|
|
|
+ linkRows.add(linkRow);
|
|
|
|
+ // 在lk行中,记录源单分录表格编码、源单内码、源单分录内码
|
|
|
|
+
|
|
|
|
+ linkRow.set("id", ID.genLongId());
|
|
|
|
+ linkRow.set("seq", 1);
|
|
|
|
+ linkRow.set(lkEntryKey + "_stableid", srcTableId); // 源单分录表格编码:以此标识源单类型及单据体
|
|
|
|
+ linkRow.set(lkEntryKey + "_sbillid", contractInfo.getString("id")); // 源单内码
|
|
|
|
+ linkRow.set(lkEntryKey + "_sid", planEntry.getString("id")); // 源单分录行内码
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
- entry.set("contractpartatypenew", "bos_org");//甲方类型
|
|
|
|
- entry.set("contractpartanew", costCompany);//甲方
|
|
|
|
- entry.set("nckd_contractamt", contractAmount);//合同总额(初始)
|
|
|
|
- entry.set("nckd_oriapplyamt", oriapplyAmount);//合同总额(变更后)
|
|
|
|
|
|
|
|
contractEntry.add(entry);
|
|
contractEntry.add(entry);
|
|
|
|
|