parent
585d18afd8
commit
da79adb2d3
|
|
@ -97,23 +97,20 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl
|
|||
JSONObject data = new JSONObject();
|
||||
//抬头
|
||||
JSONObject isHeader = getIS_HEADER(bill);
|
||||
data.put("IS_HEADER", isHeader);
|
||||
//金蝶生成的凭证信息
|
||||
data.put("IT_ITEM", getIT_ITEM(bill, isHeader));
|
||||
Boolean isqingdan = true;
|
||||
//来源系统SAP时,清账(SAP凭证数据)
|
||||
if ("A".equals(shjhSourcesystem)) {
|
||||
// 票据信息
|
||||
DynamicObjectCollection casDraftinfos = bill.getDynamicObjectCollection("cas_draftinfo");
|
||||
if (!casDraftinfos.isEmpty()) {
|
||||
data.put("IT_ITEM", null);
|
||||
isqingdan = false;
|
||||
}
|
||||
//清账数据,参考《IT_CLEAR》,仅清账需要输入
|
||||
data.put("IT_CLEAR", getIT_CLEAR(bill));
|
||||
}
|
||||
//不清却为空,校验
|
||||
if (isqingdan && data.getJSONArray("IT_ITEM").isEmpty()) {
|
||||
|
||||
// 前提:若无凭证,校验
|
||||
// 票:
|
||||
// 1.遍历付款单明细分录,若任意一行中存在SAP凭证号:组装明细XX,拿号调方法(W);遍历票据分录,拿票据号,查收款单(将表头凭证信息)_无行编号,SAP会计科目(从收款单对应凭证取借方),清张金额取票据(转让金额)
|
||||
// 2.若无SAP凭证号:联查凭证(遍历,借方iteam{SGTXT:凭证行摘要},遍历票_查收款单(将表头凭证信息):行没有)
|
||||
// 非票:
|
||||
// 1.来源SAP :(iteam{})
|
||||
// 2.else
|
||||
QFilter q1 = new QFilter("sourcebill", QCP.equals, bill.getPkValue());
|
||||
QFilter q2 = new QFilter("billstatus",QCP.equals,"C");
|
||||
DynamicObject gl_voucher = BusinessDataServiceHelper.loadSingle("gl_voucher",
|
||||
"id,description,shjh_fjz,sourcebill,entries,entries.account,entries.debitlocal,entries.creditlocal,entries.entrydc,entries.edescription,vouchertype,entries.assgrp",
|
||||
new QFilter[]{q1, q2});
|
||||
if (null == gl_voucher) {
|
||||
OperateErrorInfo operateErrorInfo = new OperateErrorInfo();
|
||||
operateErrorInfo.setMessage("推送SAP凭证接口失败,原因:金蝶凭证未生成或未审核");
|
||||
operateErrorInfo.setErrorLevel(ErrorLevel.Error.name());
|
||||
|
|
@ -121,6 +118,601 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl
|
|||
this.operationResult.addErrorInfo(operateErrorInfo);
|
||||
return;
|
||||
}
|
||||
JSONArray IT_CLEAR = new JSONArray();//清账数据,参考《IT_CLEAR》,仅清账需要输入
|
||||
JSONArray IT_ITEM = new JSONArray();
|
||||
// 票据信息
|
||||
DynamicObjectCollection casDraftinfos = bill.getDynamicObjectCollection("cas_draftinfo");
|
||||
if (!casDraftinfos.isEmpty()) {
|
||||
isHeader.put("BLART", gl_voucher.getString("vouchertype.number"));//凭证类型-从金蝶凭证中获取
|
||||
boolean isSAP = false;
|
||||
//明细
|
||||
DynamicObjectCollection entrys = bill.getDynamicObjectCollection("entry");
|
||||
for (DynamicObject entry : entrys) {
|
||||
String shjhVouchernums = entry.getString("shjh_vouchernums");
|
||||
if (StringUtils.isNotEmpty(shjhVouchernums)) {
|
||||
isSAP = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
//若任意一行中存在SAP凭证号:clear:遍历明细,拿号调方法(W);遍历票据分录,拿票据号,查收款单(将表头凭证信息)_无行编号,
|
||||
// SAP会计科目(从收款单对应凭证取借方),清张金额取票据(转让金额)
|
||||
|
||||
if (isSAP) {
|
||||
//1.遍历明细
|
||||
for (DynamicObject entry : entrys) {
|
||||
String BUKRS = "";
|
||||
if (null != bill.getDynamicObject("openorg")) {
|
||||
BUKRS = bill.getDynamicObject("openorg").getString("number");
|
||||
}
|
||||
if (StringUtils.isEmpty(BUKRS)) {
|
||||
BUKRS = bill.getDynamicObject("org").getString("number");
|
||||
}
|
||||
//客户(bd_customer)||供应商(bd_supplier) 收款人id:payee
|
||||
String payeetype = bill.getString("payeetype");//收款人类型
|
||||
AtomicReference<String> customerOrsupnum = new AtomicReference<>(getCustomerOrSupplierNumber(payeetype, bill, "payee"));
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("BUKRS", BUKRS);//公司代码
|
||||
jsonObject.put("BELNR", entry.getString("shjh_vouchernums"));//会计凭证编号
|
||||
jsonObject.put("GJAHR", entry.getString("shjh_voucheryear"));//会计年度
|
||||
jsonObject.put("BUZEI", entry.getString("shjh_voucherentrynum"));//行编号
|
||||
switch (payeetype) {
|
||||
case "bd_customer":
|
||||
jsonObject.put("KUNNR", customerOrsupnum); // 客户编号_收款人id(付款单payee)
|
||||
break;
|
||||
case "bd_supplier":
|
||||
jsonObject.put("LIFNR", customerOrsupnum); // 供应商编号_收款人id(付款单payee)
|
||||
break;
|
||||
}
|
||||
String HKONT = "";
|
||||
DynamicObject shjhSapkjkm = entry.getDynamicObject("shjh_sapkjkm");//sap会计科目
|
||||
if (null != shjhSapkjkm) {
|
||||
HKONT = shjhSapkjkm.getString("number");//SAP会计科目
|
||||
}
|
||||
jsonObject.put("HKONT", HKONT);//总账科目
|
||||
jsonObject.put("UMSKZ", JhzjUtils.getUMSKZ(HKONT));//特殊总账标识
|
||||
jsonObject.put("DMBTR1", entry.getBigDecimal("e_actamt"));//清账金额_实付金额
|
||||
IT_CLEAR.add(jsonObject);
|
||||
}
|
||||
//2.遍历票
|
||||
for (DynamicObject casDraftinfo : casDraftinfos) {
|
||||
DynamicObject draftbillinfo = casDraftinfo.getDynamicObject("draftbillinfo");//结算号
|
||||
QFilter qFilter = new QFilter("cas_draftinfo.draftbillinfo.id", QCP.equals, draftbillinfo.getLong("id"));
|
||||
//根据票据号过滤收款单
|
||||
DynamicObject casRecbill = BusinessDataServiceHelper.loadSingle("cas_recbill", qFilter.toArray());
|
||||
if (null != casRecbill) {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
String BUKRS = "";
|
||||
if (null != bill.getDynamicObject("openorg")) {
|
||||
BUKRS = bill.getDynamicObject("openorg").getString("number");
|
||||
}
|
||||
if (StringUtils.isEmpty(BUKRS)) {
|
||||
BUKRS = bill.getDynamicObject("org").getString("number");
|
||||
jsonObject.put("BUKRS", BUKRS);//公司代码
|
||||
jsonObject.put("BELNR", casRecbill.getString("shjh_vouchernum"));//会计凭证编号
|
||||
jsonObject.put("GJAHR", casRecbill.getString("shjh_sapfiscalyear"));//会计年度
|
||||
|
||||
//客户(bd_customer)||供应商(bd_supplier) 收款人id:payee
|
||||
String payeetype = bill.getString("payeetype");//收款人类型
|
||||
AtomicReference<String> customerOrsupnum = new AtomicReference<>(getCustomerOrSupplierNumber(payeetype, bill, "payee"));
|
||||
switch (payeetype) {
|
||||
case "bd_customer":
|
||||
jsonObject.put("KUNNR", customerOrsupnum); // 客户编号_收款人id(付款单payee)
|
||||
break;
|
||||
// case "bd_supplier":
|
||||
// jsonObject.put("LIFNR", customerOrsupnum); // 供应商编号_收款人id(付款单payee)
|
||||
// break;
|
||||
}
|
||||
//查收款对应凭证
|
||||
QFilter q3 = new QFilter("sourcebill", QCP.equals, casRecbill.getPkValue());
|
||||
QFilter q4 = new QFilter("billstatus",QCP.equals,"C");
|
||||
DynamicObject gl_vouchers = BusinessDataServiceHelper.loadSingle("gl_voucher",
|
||||
"id,description,shjh_fjz,sourcebill,entries,entries.account,entries.debitlocal,entries.creditlocal,entries.entrydc,entries.edescription,vouchertype,entries.assgrp",
|
||||
new QFilter[]{q3, q4});
|
||||
//SAP会计科目(从收款单对应凭证取借方)
|
||||
if (null != gl_vouchers) {
|
||||
DynamicObjectCollection entries = gl_vouchers.getDynamicObjectCollection("entries");
|
||||
for (int i = 0; i < entries.size(); i++) {
|
||||
DynamicObject entry = entries.get(i);
|
||||
String entrydc = (String) entry.get("entrydc");//分录方向(1.借方,-1.贷方)
|
||||
if ("1".equals(entrydc)) {
|
||||
//判断完借方,然后判断I下标,i==0,Hang ->001 i==1,Hang ->002
|
||||
// if (i == 0) {
|
||||
// jsonObject.put("BUZEI", "001");//todo:行编号_凭证明细序号0001
|
||||
// } else if (i == 1) {
|
||||
// jsonObject.put("BUZEI", "002");
|
||||
// }
|
||||
jsonObject.put("BUZEI", "001");//todo:行编号_凭证明细序号0001
|
||||
DynamicObject account = entry.getDynamicObject("account");//科目
|
||||
//核算维度(弹性域)_客户
|
||||
if (null != account) {
|
||||
jsonObject.put("HKONT", account.getString("number")); // 总账科目_科目(凭证分录account)
|
||||
jsonObject.put("UMSKZ", JhzjUtils.getUMSKZ(account.getString("number")));//特殊总账标识
|
||||
}
|
||||
DynamicObject assgrpinfo = entry.getDynamicObject("assgrp");//核算维度(弹性域)
|
||||
if(assgrpinfo != null){
|
||||
DynamicObjectCollection gl_assist_bd = QueryServiceHelper.query("gl_assist_bd", "asstype,assval",
|
||||
new QFilter[]{new QFilter("hg.id", QCP.equals, assgrpinfo.getPkValue())});
|
||||
String asstype;
|
||||
DynamicObject glassistbd;
|
||||
DynamicObject hsxminfo;
|
||||
for (int j = 0; j < gl_assist_bd.size(); j++) {
|
||||
glassistbd = gl_assist_bd.get(j);
|
||||
asstype = glassistbd.getString("asstype");//核算项目类型-对应核算维度的字段名
|
||||
if("f000057".equals(asstype) || "f0001".equals(asstype)){
|
||||
//t_bas_flex_property 表中获取对应编号 客户-获利段 f0001 客户编码 f000057
|
||||
hsxminfo = QueryServiceHelper.queryOne("bd_customer", "id,name,number",
|
||||
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||
jsonObject.put("KUNNR", hsxminfo.getString("number"));//客户
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//清张金额取票据(转让金额)
|
||||
jsonObject.put("DMBTR1",casDraftinfo.getBigDecimal("transamount"));//清账金额
|
||||
}
|
||||
IT_CLEAR.add(jsonObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
//若无SAP凭证号:联查凭证(遍历,借方iteam{SGTXT:凭证行摘要},遍历票_查收款单(将表头凭证信息):行没有)
|
||||
else {
|
||||
|
||||
DynamicObjectCollection entries = gl_voucher.getDynamicObjectCollection("entries");
|
||||
for (DynamicObject entry : entries) {
|
||||
String entrydc = (String) entry.get("entrydc");//分录方向(1.借方,-1.贷方)
|
||||
if ("1".equals(entrydc)) {
|
||||
//iteam
|
||||
//todo:对header 凭证类型重新赋值
|
||||
isHeader.put("BLART", gl_voucher.getString("vouchertype.number"));//凭证类型-从金蝶凭证中获取
|
||||
if(!JhzjUtils.isEmpty(gl_voucher.getString("description"))){
|
||||
isHeader.put("BKTXT", gl_voucher.getString("description"));//凭证抬头文本-从金蝶凭证中获取
|
||||
}
|
||||
DynamicObject assgrpinfo;
|
||||
String asstype;
|
||||
DynamicObject glassistbd;
|
||||
DynamicObject hsxminfo;
|
||||
JSONObject IT_ITEMS = new JSONObject();
|
||||
DynamicObject account = entry.getDynamicObject("account");//科目
|
||||
if (null != account) {
|
||||
IT_ITEMS.put("HKONT", account.getString("number")); // 总账科目_科目(凭证分录account)
|
||||
IT_ITEMS.put("UMSKZ", JhzjUtils.getUMSKZ(account.getString("number")));//特殊总账标识
|
||||
}
|
||||
IT_ITEMS.put("SGTXT", entry.getString("edescription"));//SAP凭证行摘要
|
||||
//凭证反记账标识判断,如果凭证上已勾选,则传X给sap
|
||||
if(gl_voucher.getBoolean("shjh_fjz")){
|
||||
IT_ITEMS.put("XNEGP", "X");
|
||||
}
|
||||
|
||||
assgrpinfo = entry.getDynamicObject("assgrp");//核算维度(弹性域)
|
||||
if(assgrpinfo != null){
|
||||
DynamicObjectCollection gl_assist_bd = QueryServiceHelper.query("gl_assist_bd", "asstype,assval",
|
||||
new QFilter[]{new QFilter("hg.id", QCP.equals, assgrpinfo.getPkValue())});
|
||||
|
||||
for (int j = 0; j < gl_assist_bd.size(); j++) {
|
||||
glassistbd = gl_assist_bd.get(j);
|
||||
asstype = glassistbd.getString("asstype");//核算项目类型-对应核算维度的字段名
|
||||
if("f000057".equals(asstype) || "f0001".equals(asstype)){
|
||||
//t_bas_flex_property 表中获取对应编号 客户-获利段 f0001 客户编码 f000057
|
||||
hsxminfo = QueryServiceHelper.queryOne("bd_customer", "id,name,number",
|
||||
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||
IT_ITEMS.put("KUNNR",hsxminfo.getString("number"));//客户
|
||||
}else if("f000005".equals(asstype)){
|
||||
//供应商 f000005
|
||||
hsxminfo = QueryServiceHelper.queryOne("bd_supplier", "id,name,number",
|
||||
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||
IT_ITEMS.put("LIFNR",hsxminfo.getString("number"));//供应商
|
||||
}else if("f000012".equals(asstype)){
|
||||
//利润中心 f000012
|
||||
hsxminfo = QueryServiceHelper.queryOne("shjh_pc", "id,name,number",
|
||||
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||
IT_ITEMS.put("PRCTR",hsxminfo.getString("number"));//利润中心_利润中心
|
||||
}else if("f000011".equals(asstype)){
|
||||
//成本中心 f000011
|
||||
hsxminfo = QueryServiceHelper.queryOne("bos_costcenter", "id,name,number",
|
||||
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||
IT_ITEMS.put("KOSTL",hsxminfo.getString("number"));//成本中心_成本中心
|
||||
}else if("f000054".equals(asstype) || "f000014".equals(asstype)){
|
||||
//原因码 f000014
|
||||
//付款原因代码 f000054
|
||||
hsxminfo = QueryServiceHelper.queryOne("gl_cashflowitem", "id,name,number",
|
||||
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||
IT_ITEMS.put("RSTGR",hsxminfo.getString("number"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
gl_assist_bd = QueryServiceHelper.query("gl_assist_txt", "asstype,assval",
|
||||
new QFilter[]{new QFilter("hg.id", QCP.equals, assgrpinfo.getPkValue())});//核算项目组合纵表-文本
|
||||
for (int j = 0; j < gl_assist_bd.size(); j++) {
|
||||
glassistbd = gl_assist_bd.get(j);
|
||||
asstype = glassistbd.getString("asstype");//核算项目类型-对应核算维度的字段名
|
||||
if("f000054".equals(asstype)){
|
||||
//原因码 f000054
|
||||
IT_ITEMS.put("RSTGR",glassistbd.getString("assval"));
|
||||
}else if("f000056".equals(asstype)){
|
||||
//分配编号 f000056
|
||||
IT_ITEMS.put("ZUONR",glassistbd.getString("assval"));
|
||||
}else if("f000023".equals(asstype)){
|
||||
//税码 f000023
|
||||
IT_ITEMS.put("MWSKZ",glassistbd.getString("assval"));
|
||||
}else if("f000031".equals(asstype)){
|
||||
//税基 f000031
|
||||
IT_ITEMS.put("FWBAS",glassistbd.getString("assval"));
|
||||
}else if("f000060".equals(asstype)){
|
||||
//行项目的参考码
|
||||
IT_ITEMS.put("XREF3",glassistbd.getString("assval"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 获取借方金额
|
||||
BigDecimal debitlocal = (BigDecimal) entry.get("debitlocal");//借方
|
||||
// 获取贷方金额
|
||||
BigDecimal creditlocal = (BigDecimal) entry.get("creditlocal");//贷方
|
||||
|
||||
entrydc = (String) entry.get("entrydc");//分录方向(1.借方,-1.贷方)
|
||||
// 进行空值检查
|
||||
if (debitlocal != null && creditlocal != null && entrydc != null) {
|
||||
BigDecimal amountToPut = BigDecimal.ZERO;
|
||||
// 获取分录方向 若A,只拿一方,当前拿的借方
|
||||
boolean isEntryDC1 = "1".equals(entrydc);
|
||||
boolean isEntryDCNegative1 = "-1".equals(entrydc);
|
||||
if (isEntryDC1) {
|
||||
amountToPut = debitlocal;
|
||||
} else if (isEntryDCNegative1) {
|
||||
amountToPut = creditlocal.negate();//相反
|
||||
}
|
||||
IT_ITEMS.put("DMBTR", String.valueOf(amountToPut));
|
||||
}
|
||||
|
||||
IT_ITEM.add(IT_ITEMS);
|
||||
}
|
||||
}
|
||||
//2.遍历票
|
||||
for (DynamicObject casDraftinfo : casDraftinfos) {
|
||||
DynamicObject draftbillinfo = casDraftinfo.getDynamicObject("draftbillinfo");//结算号
|
||||
QFilter qFilter = new QFilter("cas_draftinfo.draftbillinfo.id", QCP.equals, draftbillinfo.getLong("id"));
|
||||
//根据票据号过滤收款单
|
||||
DynamicObject casRecbill = BusinessDataServiceHelper.loadSingle("cas_recbill", qFilter.toArray());
|
||||
if (null != casRecbill) {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
String BUKRS = "";
|
||||
if (null != bill.getDynamicObject("openorg")) {
|
||||
BUKRS = bill.getDynamicObject("openorg").getString("number");
|
||||
}
|
||||
if (StringUtils.isEmpty(BUKRS)) {
|
||||
BUKRS = bill.getDynamicObject("org").getString("number");
|
||||
}
|
||||
jsonObject.put("BUKRS", BUKRS);//公司代码
|
||||
jsonObject.put("BELNR", casRecbill.getString("shjh_vouchernum"));//会计凭证编号
|
||||
jsonObject.put("GJAHR", casRecbill.getString("shjh_sapfiscalyear"));//会计年度
|
||||
|
||||
//客户(bd_customer)||供应商(bd_supplier) 收款人id:payee
|
||||
String payeetype = bill.getString("payeetype");//收款人类型
|
||||
AtomicReference<String> customerOrsupnum = new AtomicReference<>(getCustomerOrSupplierNumber(payeetype, bill, "payee"));
|
||||
switch (payeetype) {
|
||||
case "bd_customer":
|
||||
jsonObject.put("KUNNR", customerOrsupnum); // 客户编号_收款人id(付款单payee)
|
||||
break;
|
||||
case "bd_supplier":
|
||||
jsonObject.put("LIFNR", customerOrsupnum); // 供应商编号_收款人id(付款单payee)
|
||||
break;
|
||||
}
|
||||
//查收款对应凭证
|
||||
QFilter q3 = new QFilter("sourcebill", QCP.equals, casRecbill.getPkValue());
|
||||
QFilter q4 = new QFilter("billstatus",QCP.equals,"C");
|
||||
DynamicObject gl_vouchers = BusinessDataServiceHelper.loadSingle("gl_voucher",
|
||||
"id,description,shjh_fjz,sourcebill,entries,entries.account," +
|
||||
"entries.debitlocal,entries.creditlocal,entries.entrydc,entries.edescription," +
|
||||
"vouchertype,entries.assgrp,entries.seq",
|
||||
new QFilter[]{q3, q4});
|
||||
//SAP会计科目(从收款单对应凭证取借方)
|
||||
if (null != gl_vouchers) {
|
||||
DynamicObjectCollection entriess = gl_vouchers.getDynamicObjectCollection("entries");
|
||||
for (DynamicObject entry : entriess) {
|
||||
String entrydc = (String) entry.get("entrydc");//分录方向(1.借方,-1.贷方)
|
||||
if ("1".equals(entrydc)) {
|
||||
DynamicObject account = entry.getDynamicObject("account");//科目
|
||||
if (null != account) {
|
||||
// jsonObject.put("BUZEI", entry.get("seq"));//行编号_凭证明细序号
|
||||
jsonObject.put("BUZEI", "001");//行编号_凭证明细序号
|
||||
jsonObject.put("HKONT", account.getString("number")); // 总账科目_科目(凭证分录account)
|
||||
jsonObject.put("UMSKZ", JhzjUtils.getUMSKZ(account.getString("number")));//特殊总账标识
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//清张金额取票据(转让金额)
|
||||
jsonObject.put("DMBTR1",casDraftinfo.getBigDecimal("transamount"));//清账金额
|
||||
IT_CLEAR.add(jsonObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
}else {
|
||||
// 非票:
|
||||
// 1.来源SAP :(付款单查凭证:遍历分录:if贷iteam{钱取贷方} 遍历明细clear{})
|
||||
// 2.else(item:付款单联查凭证:遍历分录{原逻辑})
|
||||
|
||||
isHeader.put("BLART", gl_voucher.getString("vouchertype.number"));//凭证类型-从金蝶凭证中获取
|
||||
boolean isSAP = false;
|
||||
//明细
|
||||
DynamicObjectCollection entrys = bill.getDynamicObjectCollection("entry");
|
||||
for (DynamicObject entry : entrys) {
|
||||
String shjhVouchernums = entry.getString("shjh_vouchernums");
|
||||
if (StringUtils.isNotEmpty(shjhVouchernums)) {
|
||||
isSAP = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (isSAP) {
|
||||
//付款单查凭证:遍历分录:if贷iteam{钱取贷方} 遍历明细clear{}
|
||||
DynamicObjectCollection entries = gl_voucher.getDynamicObjectCollection("entries");
|
||||
for (DynamicObject entry : entries) {
|
||||
String entrydc = (String) entry.get("entrydc");//分录方向(1.借方,-1.贷方)
|
||||
if ("-1".equals(entrydc)) {
|
||||
//iteam
|
||||
//todo:对header 凭证类型重新赋值
|
||||
isHeader.put("BLART", gl_voucher.getString("vouchertype.number"));//凭证类型-从金蝶凭证中获取
|
||||
if(!JhzjUtils.isEmpty(gl_voucher.getString("description"))){
|
||||
isHeader.put("BKTXT", gl_voucher.getString("description"));//凭证抬头文本-从金蝶凭证中获取
|
||||
}
|
||||
DynamicObject assgrpinfo;
|
||||
String asstype;
|
||||
DynamicObject glassistbd;
|
||||
DynamicObject hsxminfo;
|
||||
JSONObject IT_ITEMS = new JSONObject();
|
||||
DynamicObject account = entry.getDynamicObject("account");//科目
|
||||
if (null != account) {
|
||||
IT_ITEMS.put("HKONT", account.getString("number")); // 总账科目_科目(凭证分录account)
|
||||
IT_ITEMS.put("UMSKZ", JhzjUtils.getUMSKZ(account.getString("number")));//特殊总账标识
|
||||
}
|
||||
IT_ITEMS.put("SGTXT", entry.getString("edescription"));//SAP凭证行摘要
|
||||
//凭证反记账标识判断,如果凭证上已勾选,则传X给sap
|
||||
if(gl_voucher.getBoolean("shjh_fjz")){
|
||||
IT_ITEMS.put("XNEGP", "X");
|
||||
}
|
||||
|
||||
assgrpinfo = entry.getDynamicObject("assgrp");//核算维度(弹性域)
|
||||
if(assgrpinfo != null){
|
||||
DynamicObjectCollection gl_assist_bd = QueryServiceHelper.query("gl_assist_bd", "asstype,assval",
|
||||
new QFilter[]{new QFilter("hg.id", QCP.equals, assgrpinfo.getPkValue())});
|
||||
|
||||
for (int j = 0; j < gl_assist_bd.size(); j++) {
|
||||
glassistbd = gl_assist_bd.get(j);
|
||||
asstype = glassistbd.getString("asstype");//核算项目类型-对应核算维度的字段名
|
||||
if("f000057".equals(asstype) || "f0001".equals(asstype)){
|
||||
//t_bas_flex_property 表中获取对应编号 客户-获利段 f0001 客户编码 f000057
|
||||
hsxminfo = QueryServiceHelper.queryOne("bd_customer", "id,name,number",
|
||||
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||
IT_ITEMS.put("KUNNR",hsxminfo.getString("number"));//客户
|
||||
}else if("f000005".equals(asstype)){
|
||||
//供应商 f000005
|
||||
hsxminfo = QueryServiceHelper.queryOne("bd_supplier", "id,name,number",
|
||||
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||
IT_ITEMS.put("LIFNR",hsxminfo.getString("number"));//供应商
|
||||
}else if("f000012".equals(asstype)){
|
||||
//利润中心 f000012
|
||||
hsxminfo = QueryServiceHelper.queryOne("shjh_pc", "id,name,number",
|
||||
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||
IT_ITEMS.put("PRCTR",hsxminfo.getString("number"));//利润中心_利润中心
|
||||
}else if("f000011".equals(asstype)){
|
||||
//成本中心 f000011
|
||||
hsxminfo = QueryServiceHelper.queryOne("bos_costcenter", "id,name,number",
|
||||
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||
IT_ITEMS.put("KOSTL",hsxminfo.getString("number"));//成本中心_成本中心
|
||||
}else if("f000054".equals(asstype) || "f000014".equals(asstype)){
|
||||
//原因码 f000014
|
||||
//付款原因代码 f000054
|
||||
hsxminfo = QueryServiceHelper.queryOne("gl_cashflowitem", "id,name,number",
|
||||
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||
IT_ITEMS.put("RSTGR",hsxminfo.getString("number"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
gl_assist_bd = QueryServiceHelper.query("gl_assist_txt", "asstype,assval",
|
||||
new QFilter[]{new QFilter("hg.id", QCP.equals, assgrpinfo.getPkValue())});//核算项目组合纵表-文本
|
||||
for (int j = 0; j < gl_assist_bd.size(); j++) {
|
||||
glassistbd = gl_assist_bd.get(j);
|
||||
asstype = glassistbd.getString("asstype");//核算项目类型-对应核算维度的字段名
|
||||
if("f000054".equals(asstype)){
|
||||
//原因码 f000054
|
||||
IT_ITEMS.put("RSTGR",glassistbd.getString("assval"));
|
||||
}else if("f000056".equals(asstype)){
|
||||
//分配编号 f000056
|
||||
IT_ITEMS.put("ZUONR",glassistbd.getString("assval"));
|
||||
}else if("f000023".equals(asstype)){
|
||||
//税码 f000023
|
||||
IT_ITEMS.put("MWSKZ",glassistbd.getString("assval"));
|
||||
}else if("f000031".equals(asstype)){
|
||||
//税基 f000031
|
||||
IT_ITEMS.put("FWBAS",glassistbd.getString("assval"));
|
||||
}else if("f000060".equals(asstype)){
|
||||
//行项目的参考码
|
||||
IT_ITEMS.put("XREF3",glassistbd.getString("assval"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 获取借方金额
|
||||
BigDecimal debitlocal = (BigDecimal) entry.get("debitlocal");//借方
|
||||
// 获取贷方金额
|
||||
BigDecimal creditlocal = (BigDecimal) entry.get("creditlocal");//贷方
|
||||
|
||||
entrydc = (String) entry.get("entrydc");//分录方向(1.借方,-1.贷方)
|
||||
// 进行空值检查
|
||||
if (debitlocal != null && creditlocal != null && entrydc != null) {
|
||||
BigDecimal amountToPut = BigDecimal.ZERO;
|
||||
// 获取分录方向 若A,只拿一方,当前拿的借方
|
||||
boolean isEntryDC1 = "1".equals(entrydc);
|
||||
boolean isEntryDCNegative1 = "-1".equals(entrydc);
|
||||
if (isEntryDC1) {
|
||||
amountToPut = debitlocal;
|
||||
} else if (isEntryDCNegative1) {
|
||||
amountToPut = creditlocal.negate();//相反
|
||||
}
|
||||
IT_ITEMS.put("DMBTR", String.valueOf(amountToPut));
|
||||
}
|
||||
IT_ITEM.add(IT_ITEMS);
|
||||
}
|
||||
}
|
||||
//遍历明细clear{}
|
||||
for (DynamicObject entry : entrys) {
|
||||
String BUKRS = "";
|
||||
if (null != bill.getDynamicObject("openorg")) {
|
||||
BUKRS = bill.getDynamicObject("openorg").getString("number");
|
||||
}
|
||||
if (StringUtils.isEmpty(BUKRS)) {
|
||||
BUKRS = bill.getDynamicObject("org").getString("number");
|
||||
}
|
||||
//客户(bd_customer)||供应商(bd_supplier) 收款人id:payee
|
||||
String payeetype = bill.getString("payeetype");//收款人类型
|
||||
AtomicReference<String> customerOrsupnum = new AtomicReference<>(getCustomerOrSupplierNumber(payeetype, bill, "payee"));
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("BUKRS", BUKRS);//公司代码
|
||||
jsonObject.put("BELNR", entry.getString("shjh_vouchernums"));//会计凭证编号
|
||||
jsonObject.put("GJAHR", entry.getString("shjh_voucheryear"));//会计年度
|
||||
jsonObject.put("BUZEI", entry.getString("shjh_voucherentrynum"));//行编号
|
||||
switch (payeetype) {
|
||||
case "bd_customer":
|
||||
jsonObject.put("KUNNR", customerOrsupnum); // 客户编号_收款人id(付款单payee)
|
||||
break;
|
||||
case "bd_supplier":
|
||||
jsonObject.put("LIFNR", customerOrsupnum); // 供应商编号_收款人id(付款单payee)
|
||||
break;
|
||||
}
|
||||
String HKONT = "";
|
||||
DynamicObject shjhSapkjkm = entry.getDynamicObject("shjh_sapkjkm");//sap会计科目
|
||||
if (null != shjhSapkjkm) {
|
||||
HKONT = shjhSapkjkm.getString("number");//SAP会计科目
|
||||
}
|
||||
jsonObject.put("HKONT", HKONT);//总账科目
|
||||
jsonObject.put("UMSKZ", JhzjUtils.getUMSKZ(HKONT));//特殊总账标识
|
||||
jsonObject.put("DMBTR1", entry.getBigDecimal("e_actamt"));//清账金额_实付金额
|
||||
IT_CLEAR.add(jsonObject);
|
||||
}
|
||||
}else {
|
||||
//else(item:付款单联查凭证:遍历分录{原逻辑})
|
||||
DynamicObjectCollection entries = gl_voucher.getDynamicObjectCollection("entries");
|
||||
for (DynamicObject entry : entries) {
|
||||
String entrydc = (String) entry.get("entrydc");//分录方向(1.借方,-1.贷方)
|
||||
// if ("-1".equals(entrydc)) {
|
||||
//iteam
|
||||
//todo:对header 凭证类型重新赋值
|
||||
isHeader.put("BLART", gl_voucher.getString("vouchertype.number"));//凭证类型-从金蝶凭证中获取
|
||||
if(!JhzjUtils.isEmpty(gl_voucher.getString("description"))){
|
||||
isHeader.put("BKTXT", gl_voucher.getString("description"));//凭证抬头文本-从金蝶凭证中获取
|
||||
}
|
||||
DynamicObject assgrpinfo;
|
||||
String asstype;
|
||||
DynamicObject glassistbd;
|
||||
DynamicObject hsxminfo;
|
||||
JSONObject IT_ITEMS = new JSONObject();
|
||||
DynamicObject account = entry.getDynamicObject("account");//科目
|
||||
if (null != account) {
|
||||
IT_ITEMS.put("HKONT", account.getString("number")); // 总账科目_科目(凭证分录account)
|
||||
IT_ITEMS.put("UMSKZ", JhzjUtils.getUMSKZ(account.getString("number")));//特殊总账标识
|
||||
}
|
||||
IT_ITEMS.put("SGTXT", entry.getString("edescription"));//SAP凭证行摘要
|
||||
//凭证反记账标识判断,如果凭证上已勾选,则传X给sap
|
||||
if(gl_voucher.getBoolean("shjh_fjz")){
|
||||
IT_ITEMS.put("XNEGP", "X");
|
||||
}
|
||||
|
||||
assgrpinfo = entry.getDynamicObject("assgrp");//核算维度(弹性域)
|
||||
if(assgrpinfo != null){
|
||||
DynamicObjectCollection gl_assist_bd = QueryServiceHelper.query("gl_assist_bd", "asstype,assval",
|
||||
new QFilter[]{new QFilter("hg.id", QCP.equals, assgrpinfo.getPkValue())});
|
||||
|
||||
for (int j = 0; j < gl_assist_bd.size(); j++) {
|
||||
glassistbd = gl_assist_bd.get(j);
|
||||
asstype = glassistbd.getString("asstype");//核算项目类型-对应核算维度的字段名
|
||||
if("f000057".equals(asstype) || "f0001".equals(asstype)){
|
||||
//t_bas_flex_property 表中获取对应编号 客户-获利段 f0001 客户编码 f000057
|
||||
hsxminfo = QueryServiceHelper.queryOne("bd_customer", "id,name,number",
|
||||
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||
IT_ITEMS.put("KUNNR",hsxminfo.getString("number"));//客户
|
||||
}else if("f000005".equals(asstype)){
|
||||
//供应商 f000005
|
||||
hsxminfo = QueryServiceHelper.queryOne("bd_supplier", "id,name,number",
|
||||
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||
IT_ITEMS.put("LIFNR",hsxminfo.getString("number"));//供应商
|
||||
}else if("f000012".equals(asstype)){
|
||||
//利润中心 f000012
|
||||
hsxminfo = QueryServiceHelper.queryOne("shjh_pc", "id,name,number",
|
||||
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||
IT_ITEMS.put("PRCTR",hsxminfo.getString("number"));//利润中心_利润中心
|
||||
}else if("f000011".equals(asstype)){
|
||||
//成本中心 f000011
|
||||
hsxminfo = QueryServiceHelper.queryOne("bos_costcenter", "id,name,number",
|
||||
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||
IT_ITEMS.put("KOSTL",hsxminfo.getString("number"));//成本中心_成本中心
|
||||
}else if("f000054".equals(asstype) || "f000014".equals(asstype)){
|
||||
//原因码 f000014
|
||||
//付款原因代码 f000054
|
||||
hsxminfo = QueryServiceHelper.queryOne("gl_cashflowitem", "id,name,number",
|
||||
new QFilter[]{new QFilter("id", QCP.equals, glassistbd.getLong("assval"))});//维度值
|
||||
IT_ITEMS.put("RSTGR",hsxminfo.getString("number"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
gl_assist_bd = QueryServiceHelper.query("gl_assist_txt", "asstype,assval",
|
||||
new QFilter[]{new QFilter("hg.id", QCP.equals, assgrpinfo.getPkValue())});//核算项目组合纵表-文本
|
||||
for (int j = 0; j < gl_assist_bd.size(); j++) {
|
||||
glassistbd = gl_assist_bd.get(j);
|
||||
asstype = glassistbd.getString("asstype");//核算项目类型-对应核算维度的字段名
|
||||
if("f000054".equals(asstype)){
|
||||
//原因码 f000054
|
||||
IT_ITEMS.put("RSTGR",glassistbd.getString("assval"));
|
||||
}else if("f000056".equals(asstype)){
|
||||
//分配编号 f000056
|
||||
IT_ITEMS.put("ZUONR",glassistbd.getString("assval"));
|
||||
}else if("f000023".equals(asstype)){
|
||||
//税码 f000023
|
||||
IT_ITEMS.put("MWSKZ",glassistbd.getString("assval"));
|
||||
}else if("f000031".equals(asstype)){
|
||||
//税基 f000031
|
||||
IT_ITEMS.put("FWBAS",glassistbd.getString("assval"));
|
||||
}else if("f000060".equals(asstype)){
|
||||
//行项目的参考码
|
||||
IT_ITEMS.put("XREF3",glassistbd.getString("assval"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 获取借方金额
|
||||
BigDecimal debitlocal = (BigDecimal) entry.get("debitlocal");//借方
|
||||
// 获取贷方金额
|
||||
BigDecimal creditlocal = (BigDecimal) entry.get("creditlocal");//贷方
|
||||
|
||||
entrydc = (String) entry.get("entrydc");//分录方向(1.借方,-1.贷方)
|
||||
// 进行空值检查
|
||||
if (debitlocal != null && creditlocal != null && entrydc != null) {
|
||||
BigDecimal amountToPut = BigDecimal.ZERO;
|
||||
// 获取分录方向 若A,只拿一方,当前拿的借方
|
||||
boolean isEntryDC1 = "1".equals(entrydc);
|
||||
boolean isEntryDCNegative1 = "-1".equals(entrydc);
|
||||
if (isEntryDC1) {
|
||||
amountToPut = debitlocal;
|
||||
} else if (isEntryDCNegative1) {
|
||||
amountToPut = creditlocal.negate();//相反
|
||||
}
|
||||
IT_ITEMS.put("DMBTR", String.valueOf(amountToPut));
|
||||
}
|
||||
IT_ITEM.add(IT_ITEMS);
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
data.put("IS_HEADER", isHeader);
|
||||
//金蝶生成的凭证信息
|
||||
data.put("IT_ITEM", IT_ITEM);
|
||||
//清账(SAP凭证数据)
|
||||
data.put("IT_CLEAR",IT_CLEAR);
|
||||
|
||||
//一次性供应商或客户信息(仅需要填写)
|
||||
String type = bill.getString("payeetype");
|
||||
long id = Long.parseLong(bill.getString("payee"));
|
||||
|
|
@ -220,6 +812,7 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl
|
|||
|
||||
private JSONArray getIT_ITEM(DynamicObject bill , JSONObject IS_HEADER) {
|
||||
String shjhSourcesystem = bill.getString("shjh_sourcesystem");//来源系统
|
||||
//跨主体调拨
|
||||
//客户(bd_customer)||供应商(bd_supplier) 收款人id:payee
|
||||
// String payeetype = bill.getString("payeetype");//收款人类型
|
||||
// String customerOrsupnum = getCustomerOrSupplierNumber(payeetype, bill,"payee");
|
||||
|
|
@ -265,7 +858,7 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl
|
|||
//todo:对header 凭证类型重新赋值
|
||||
IS_HEADER.put("BLART", gl_voucher.getString("vouchertype.number"));//凭证类型-从金蝶凭证中获取
|
||||
if(!JhzjUtils.isEmpty(gl_voucher.getString("description"))){
|
||||
IS_HEADER.put("BKTXT", gl_voucher.getString("description"));//凭证抬头文本-从金蝶凭证中获取
|
||||
IS_HEADER.put("BKTXT", gl_voucher.getString("description"));//凭证抬头文本-从金蝶凭证中L获取
|
||||
}
|
||||
DynamicObjectCollection entries = gl_voucher.getDynamicObjectCollection("entries");
|
||||
if (!entries.isEmpty()) {
|
||||
|
|
@ -351,6 +944,9 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl
|
|||
}else if("f000031".equals(asstype)){
|
||||
//税基 f000031
|
||||
IT_ITEMS.put("FWBAS",glassistbd.getString("assval"));
|
||||
}else if("f000060".equals(asstype)){
|
||||
//行项目的参考码
|
||||
IT_ITEMS.put("XREF3",glassistbd.getString("assval"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -374,6 +970,7 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl
|
|||
}
|
||||
IT_ITEMS.put("DMBTR", String.valueOf(amountToPut));
|
||||
}
|
||||
|
||||
IT_ITEM.add(IT_ITEMS);
|
||||
}
|
||||
}
|
||||
|
|
@ -419,57 +1016,56 @@ public class PaybillPushSapOperation extends AbstractOperationServicePlugIn impl
|
|||
IT_CLEAR.add(jsonObject);
|
||||
}
|
||||
|
||||
// 票据信息
|
||||
DynamicObjectCollection casDraftinfos = bill.getDynamicObjectCollection("cas_draftinfo");
|
||||
if (!casDraftinfos.isEmpty()) {
|
||||
// 缓存所有票据号码:draftbillno
|
||||
List<String> draftbillnos = new ArrayList<>();
|
||||
for (DynamicObject casDraftinfo : casDraftinfos) {
|
||||
draftbillnos.add(casDraftinfo.getString("draftbillno"));//票据号码
|
||||
}
|
||||
// 批量查询收款单:casRecbills
|
||||
QFilter q2 = new QFilter("openorg.number", QCP.equals, BUKRS);
|
||||
List<QFilter> allFilters = new ArrayList<>();
|
||||
for (String d : draftbillnos) {
|
||||
allFilters.add(new QFilter("cas_draftinfo.draftbillno", QCP.equals, d));
|
||||
}
|
||||
allFilters.add(q2);
|
||||
QFilter[] filtersArray = allFilters.toArray(new QFilter[0]);
|
||||
DynamicObject[] casRecbills = BusinessDataServiceHelper.load("cas_recbill",
|
||||
"id,cas_draftinfo,cas_draftinfo.draftbillno,openorg,shjh_vouchernum,shjh_sapfiscalyear,shjh_sapline" +
|
||||
"payertype,payer,entry,entry.shjh_accountsap,entry.e_actamt", filtersArray);
|
||||
// 1. 过滤出收款单, 2. 遍历收款单明细, 3. 组装IT_CLEAR数据
|
||||
for (DynamicObject casRecbill : casRecbills) {
|
||||
DynamicObjectCollection entryss = casRecbill.getDynamicObjectCollection("entry");
|
||||
for (DynamicObject entr : entryss) {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
String payertype = casRecbill.getString("payertype");
|
||||
customerOrsupnum.set(getCustomerOrSupplierNumber(payertype, casRecbill, "payer"));
|
||||
jsonObject.put("BUKRS", BUKRS);
|
||||
jsonObject.put("BELNR", casRecbill.getString("shjh_vouchernum"));
|
||||
jsonObject.put("GJAHR", casRecbill.getString("shjh_sapfiscalyear"));
|
||||
jsonObject.put("BUZEI", casRecbill.getString("shjh_sapline"));
|
||||
switch (payertype) {
|
||||
case "bd_customer":
|
||||
jsonObject.put("KUNNR", customerOrsupnum);
|
||||
break;
|
||||
case "bd_supplier":
|
||||
jsonObject.put("LIFNR", customerOrsupnum);
|
||||
break;
|
||||
}
|
||||
String HKONT = "";
|
||||
DynamicObject shjhSapkjkm = entr.getDynamicObject("shjh_accountsap");
|
||||
if (shjhSapkjkm != null) {
|
||||
HKONT = shjhSapkjkm.getString("number");
|
||||
}
|
||||
jsonObject.put("HKONT", HKONT);//科目编号
|
||||
jsonObject.put("UMSKZ", JhzjUtils.getUMSKZ(HKONT));//特殊总账标识
|
||||
jsonObject.put("DMBTR", entr.getBigDecimal("e_actamt"));
|
||||
IT_CLEAR.add(jsonObject);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
// // 票据信息
|
||||
// DynamicObjectCollection casDraftinfos = bill.getDynamicObjectCollection("cas_draftinfo");
|
||||
// if (!casDraftinfos.isEmpty()) {
|
||||
// // 缓存所有票据号码:draftbillno
|
||||
// List<String> draftbillnos = new ArrayList<>();
|
||||
// for (DynamicObject casDraftinfo : casDraftinfos) {
|
||||
// draftbillnos.add(casDraftinfo.getString("draftbillno"));//票据号码
|
||||
// }
|
||||
// // 批量查询收款单:casRecbills
|
||||
// QFilter q2 = new QFilter("openorg.number", QCP.equals, BUKRS);
|
||||
// List<QFilter> allFilters = new ArrayList<>();
|
||||
// for (String d : draftbillnos) {
|
||||
// allFilters.add(new QFilter("cas_draftinfo.draftbillno", QCP.equals, d));
|
||||
// }
|
||||
// allFilters.add(q2);
|
||||
// QFilter[] filtersArray = allFilters.toArray(new QFilter[0]);
|
||||
// DynamicObject[] casRecbills = BusinessDataServiceHelper.load("cas_recbill",
|
||||
// "id,cas_draftinfo,cas_draftinfo.draftbillno,openorg,shjh_vouchernum,shjh_sapfiscalyear,shjh_sapline" +
|
||||
// "payertype,payer,entry,entry.shjh_accountsap,entry.e_actamt", filtersArray);
|
||||
// // 1. 过滤出收款单, 2. 遍历收款单明细, 3. 组装IT_CLEAR数据
|
||||
// for (DynamicObject casRecbill : casRecbills) {
|
||||
// DynamicObjectCollection entryss = casRecbill.getDynamicObjectCollection("entry");
|
||||
// for (DynamicObject entr : entryss) {
|
||||
// JSONObject jsonObject = new JSONObject();
|
||||
// String payertype = casRecbill.getString("payertype");
|
||||
// customerOrsupnum.set(getCustomerOrSupplierNumber(payertype, casRecbill, "payer"));
|
||||
// jsonObject.put("BUKRS", BUKRS);
|
||||
// jsonObject.put("BELNR", casRecbill.getString("shjh_vouchernum"));
|
||||
// jsonObject.put("GJAHR", casRecbill.getString("shjh_sapfiscalyear"));
|
||||
// jsonObject.put("BUZEI", casRecbill.getString("shjh_sapline"));
|
||||
// switch (payertype) {
|
||||
// case "bd_customer":
|
||||
// jsonObject.put("KUNNR", customerOrsupnum);
|
||||
// break;
|
||||
// case "bd_supplier":
|
||||
// jsonObject.put("LIFNR", customerOrsupnum);
|
||||
// break;
|
||||
// }
|
||||
// String HKONT = "";
|
||||
// DynamicObject shjhSapkjkm = entr.getDynamicObject("shjh_accountsap");
|
||||
// if (shjhSapkjkm != null) {
|
||||
// HKONT = shjhSapkjkm.getString("number");
|
||||
// }
|
||||
// jsonObject.put("HKONT", HKONT);//科目编号
|
||||
// jsonObject.put("UMSKZ", JhzjUtils.getUMSKZ(HKONT));//特殊总账标识
|
||||
// jsonObject.put("DMBTR", entr.getBigDecimal("e_actamt"));
|
||||
// IT_CLEAR.add(jsonObject);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
return IT_CLEAR;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -464,6 +464,9 @@ public class RecPushVoucherOperation extends AbstractOperationServicePlugIn impl
|
|||
}else if("f000031".equals(asstype)){
|
||||
//税基 f000031
|
||||
IT_ITEMS.put("FWBAS",glassistbd.getString("assval"));
|
||||
}else if("f000060".equals(asstype)){
|
||||
//行项目的参考码 f000031
|
||||
IT_ITEMS.put("XREF3",glassistbd.getString("assval"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue