|
@@ -74,14 +74,22 @@ public class SyncSapFIUtils {
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
|
|
|
|
|
|
//账套代码
|
|
|
- String ZZTM = "FDZT"; //法定账套
|
|
|
+ //String ZZTM = "FDZT"; //法定账套
|
|
|
//公司代码
|
|
|
- String BUKRS = voucher.getString("org.number");
|
|
|
+ //String BUKRS = voucher.getString("org.number");
|
|
|
//币制代码
|
|
|
String WAERS = StringUtils.isEmpty(voucher.getString("entries.currency.number")) ? "" : voucher.getString("entries.currency.number");
|
|
|
- //凭证摘要
|
|
|
- String BKTXT = StringUtils.isEmpty(voucher.getString("description")) ? "" : voucher.getString("description");
|
|
|
-
|
|
|
+ //上游单据编号
|
|
|
+ String BKTXT = "";
|
|
|
+ String ZUONR = "";
|
|
|
+ String billtype = voucher.getString("sourcebilltype");
|
|
|
+ if(StringUtils.isNotEmpty(billtype)) {
|
|
|
+ String sourcebill = voucher.getString("sourcebill");
|
|
|
+ //上游单据编号
|
|
|
+ DynamicObject sourcebillDyn = BusinessDataServiceHelper.loadSingle(sourcebill, billtype);
|
|
|
+ BKTXT = sourcebillDyn.getString("billno");
|
|
|
+ ZUONR = BKTXT;
|
|
|
+ }
|
|
|
String BUZEI = voucher.getString("entries.seq"); //凭证条目
|
|
|
String HKONT = voucher.getString("entries.account.number"); //科目
|
|
|
int entrydc = voucher.getInt("entries.entrydc"); //凭证方向 1 借贷方 -1 贷方
|
|
@@ -92,7 +100,10 @@ public class SyncSapFIUtils {
|
|
|
DMBTR = voucher.getBigDecimal("entries.debitlocal"); //本币金额
|
|
|
}else if((entrydc == -1)){
|
|
|
WRBTR = voucher.getBigDecimal("entries.creditori"); //原币金额
|
|
|
- DMBTR = voucher.getBigDecimal("entries.creditlocal"); //本币金额
|
|
|
+ DMBTR = voucher.getBigDecimal("entries.creditlocal"); //本币金额
|
|
|
+ }
|
|
|
+ if(WRBTR.compareTo(BigDecimal.ZERO) == 0){
|
|
|
+ WRBTR = DMBTR;
|
|
|
}
|
|
|
|
|
|
String SGTXT = StringUtils.isEmpty(voucher.getString("entries.edescription")) ? "" : voucher.getString("entries.edescription"); //凭证行项目文本
|
|
@@ -103,11 +114,8 @@ public class SyncSapFIUtils {
|
|
|
String RSTGR = ""; //现金流量项目
|
|
|
String LIFNR = ""; //供应商
|
|
|
String VBUND = "";
|
|
|
- String ZFBDT = "";
|
|
|
- Date expiredate = voucher.getDate("entries.expiredate");
|
|
|
- if(expiredate != null){
|
|
|
- ZFBDT = sdf.format(expiredate); //到期日
|
|
|
- }
|
|
|
+ String ZFBDT = sdf.format(voucher.getDate(GlVoucherConstantInfo.BOOKEDDATE)); //到期日 取记账日期
|
|
|
+
|
|
|
String XREF1 = getXREF1(HKONT); //凭证辅助项1
|
|
|
String XREF2 = "";
|
|
|
String XREF3 = "";
|
|
@@ -140,8 +148,8 @@ public class SyncSapFIUtils {
|
|
|
|
|
|
JSONObject ENTRYITEMINFO = new JSONObject();
|
|
|
|
|
|
- ENTRYITEMINFO.put("BKTXT", BKTXT); //凭证摘要
|
|
|
- ENTRYITEMINFO.put("ZZTM", ZZTM); //账套代码
|
|
|
+ ENTRYITEMINFO.put("BKTXT", BKTXT); //上游单据编号
|
|
|
+ ENTRYITEMINFO.put("ZUONR", ZUONR); //凭证参考号
|
|
|
ENTRYITEMINFO.put("BUZEI", BUZEI); //凭证条目
|
|
|
ENTRYITEMINFO.put("HKONT", HKONT); //科目
|
|
|
ENTRYITEMINFO.put("PRCTR", PRCTR); //成本中心
|
|
@@ -186,23 +194,25 @@ public class SyncSapFIUtils {
|
|
|
String BLDAT = sdf.format(voucher.getDate(GlVoucherConstantInfo.BIZDATE));
|
|
|
//凭证日期
|
|
|
String BUDAT = sdf.format(voucher.getDate(GlVoucherConstantInfo.BOOKEDDATE));
|
|
|
- //凭证摘要
|
|
|
- //String BKTXT = StringUtils.isEmpty(voucher.getString("description")) ? "" : voucher.getString("description");
|
|
|
//业务类型
|
|
|
String BLART = "";
|
|
|
+ String BKTXT = "";
|
|
|
+ String sourcebill = "";
|
|
|
String billtype = voucher.getString("sourcebilltype");
|
|
|
- switch (billtype) {
|
|
|
- case "er_publicreimbursebill":
|
|
|
- BLART = "BX";
|
|
|
- break;
|
|
|
- default:
|
|
|
- BLART = "BX";
|
|
|
- break;
|
|
|
+ if(StringUtils.isNotEmpty(billtype)) {
|
|
|
+ switch (billtype) {
|
|
|
+ case "er_publicreimbursebill":
|
|
|
+ BLART = "BX";
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ BLART = "BX";
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ sourcebill = voucher.getString("sourcebill");
|
|
|
+ //上游单据编号
|
|
|
+ DynamicObject sourcebillDyn = BusinessDataServiceHelper.loadSingle(sourcebill, billtype);
|
|
|
+ BKTXT = sourcebillDyn.getString("billno");
|
|
|
}
|
|
|
- String sourcebill = voucher.getString("sourcebill");
|
|
|
-
|
|
|
- DynamicObject sourcebillDyn = BusinessDataServiceHelper.loadSingle(sourcebill, billtype);
|
|
|
- String BKTXT = sourcebillDyn.getString("billno");
|
|
|
|
|
|
String XBLNR = StringUtils.isEmpty(voucher.getString("entries.edescription")) ? "" : voucher.getString("entries.edescription"); //凭证行项目文本
|
|
|
|
|
@@ -213,7 +223,7 @@ public class SyncSapFIUtils {
|
|
|
HEADERITEMINFO.put(SAPParamHelper.WAERS, WAERS); //币种
|
|
|
HEADERITEMINFO.put(SAPParamHelper.BLDAT, BLDAT); //业务日期
|
|
|
HEADERITEMINFO.put(SAPParamHelper.BUDAT, BUDAT); //凭证日期
|
|
|
- HEADERITEMINFO.put(SAPParamHelper.BKTXT, BKTXT); //凭证摘要
|
|
|
+ HEADERITEMINFO.put(SAPParamHelper.BKTXT, BKTXT); //上游单据编号
|
|
|
HEADERITEMINFO.put(SAPParamHelper.USNAM, USNAM); //创建人
|
|
|
HEADERITEMINFO.put(SAPParamHelper.BLART, BLART); //业务类型
|
|
|
HEADERITEMINFO.put(SAPParamHelper.XBLNR, XBLNR); //外部凭证编号
|