-付款单和收款单(携带生单规则分录的业务大类,业务小类,成本中心,利润中心到收款处理单头)__改成操作

s
This commit is contained in:
weiyunlong 2025-05-07 18:16:12 +08:00
parent dde5c07008
commit 5dd99ab60c
2 changed files with 95 additions and 0 deletions

View File

@ -32,6 +32,11 @@ public class PayBillSaveOperation extends AbstractOperationServicePlugIn impleme
//付款单保存之后 付款标识为被动付款,并且资金计划科目为空,从配置表(shjh_pay_account)携带资金计划科目
DynamicObject[] dataEntities = e.getDataEntities();
for (DynamicObject bill : dataEntities) {
//携带生单规则分录的业务大类,业务小类,成本中心,利润中心到收款处理单头
carryCustomer(bill);
SaveServiceHelper.save(new DynamicObject[]{bill});
// bill = BusinessDataServiceHelper.loadSingle(bill.getPkValue(),"cas_paybill");
DynamicObject paymentidentify = bill.getDynamicObject("paymentidentify");
DynamicObject shjhMembersubject = bill.getDynamicObject("shjh_membersubject");
@ -47,6 +52,49 @@ public class PayBillSaveOperation extends AbstractOperationServicePlugIn impleme
}
}
private void carryCustomer(DynamicObject bill){
String sourcebilltypes = (String) bill.get("sourcebilltype");//源单类型:被动付款入账(bei_intelpay)
if (!"bei_intelpay".equals(sourcebilltypes)) {
return;
}
String sourcebillnumber = (String)bill.get("sourcebillnumber");//源单编码:被动付款单号(bei_intelpay)
QFilter q1 = new QFilter("billno", QCP.equals, sourcebillnumber);
DynamicObject beiIntelpay = BusinessDataServiceHelper.loadSingle("bei_intelpay", q1.toArray());
if (null != beiIntelpay) {
String rulename = beiIntelpay.getString("rulename");//适配规则名称
//根据适配规则名称查询适配规则 (cas_recpayrule)
// 单据:生单/通知规则(shjh_cas_recpayrule_ext) 单据体:入账规则(entryentity) 字段:规则项名称(e_rulesname)
QFilter q2 = new QFilter("entryentity.e_rulesname", QCP.equals, rulename);
DynamicObject rule = BusinessDataServiceHelper.loadSingle("cas_recpayrule",q2.toArray());
if (null != rule) {
//根据适配规则携带对应分录的业务大类,业务小类,成本中心,利润中心
DynamicObjectCollection collection = rule.getDynamicObjectCollection("entryentity");
for (DynamicObject entry : collection) {
if (rulename.equals(entry.getString("e_rulesname"))) {
DynamicObject shjhBizbig = (DynamicObject)bill.get("shjh_bizbig");
if (null == shjhBizbig) {
bill.set("shjh_bizbig", entry.getDynamicObject("shjh_e_bizbig"));
}
DynamicObject shjhBizsmall = (DynamicObject)bill.get("shjh_bizsmall");
if (null == shjhBizsmall) {
bill.set("shjh_bizsmall", entry.getDynamicObject("shjh_e_bizsmall"));
}
DynamicObject shjhCostcenter = (DynamicObject)bill.get("shjh_costcenter");
if (null == shjhCostcenter) {
bill.set("shjh_costcenter", entry.getDynamicObject("shjh_e_cc"));
}
DynamicObject shjhPc = (DynamicObject)bill.get("shjh_pc");
if (null == shjhPc) {
bill.set("shjh_pc", entry.getDynamicObject("shjh_e_pc"));
}
return;
}
}
}
}
}
private DynamicObject xdMembersubject(DynamicObject bill){
//付款单系统自动根据配置表(shjh_pay_account)带出资金计划科目
QFilter qFilter = new QFilter("shjh_biztype", QCP.equals,"A");//业务类型:付款

View File

@ -43,6 +43,53 @@ public class RecBillSaveOperation extends AbstractOperationServicePlugIn impleme
bill.set("shjh_planclass", xdMembersubject(bill));
SaveServiceHelper.save(new DynamicObject[]{bill});
// }
//携带生单规则分录的业务大类,业务小类,成本中心,利润中心到收款处理单头
carryCustomer(bill);
SaveServiceHelper.save(new DynamicObject[]{bill});
}
}
private void carryCustomer(DynamicObject bill) {
String sourcebilltype = (String) bill.get("sourcebilltype");//源单类型:被动付款入账(bei_intelpay)
if (!"bei_intelrec".equals(sourcebilltype)) {
return;
}
String sourcebillnumber = (String) bill.get("sourcebillnumber");//源单编码:被动付款单号(bei_intelpay)
QFilter q1 = new QFilter("billno", QCP.equals, sourcebillnumber);
DynamicObject beiIntelpay = BusinessDataServiceHelper.loadSingle("bei_intelrec", q1.toArray());
if (null != beiIntelpay) {
String rulename = beiIntelpay.getString("rulename");//适配规则名称
//根据适配规则名称查询适配规则 (cas_recpayrule)
// 单据:生单/通知规则(shjh_cas_recpayrule_ext) 单据体:入账规则(entryentity) 字段:规则项名称(e_rulesname)
QFilter q2 = new QFilter("entryentity.e_rulesname", QCP.equals, rulename);
DynamicObject rule = BusinessDataServiceHelper.loadSingle("cas_recpayrule", q2.toArray());
if (null != rule) {
//根据适配规则携带对应分录的业务大类,业务小类,成本中心,利润中心
DynamicObjectCollection collection = rule.getDynamicObjectCollection("entryentity");
for (DynamicObject entry : collection) {
if (rulename.equals(entry.getString("e_rulesname"))) {
DynamicObject shjhBizbig = (DynamicObject) bill.get("shjh_bizebig");
if (null == shjhBizbig) {
bill.set("shjh_bizebig", entry.getDynamicObject("shjh_e_bizbig"));
}
DynamicObject shjhBizsmall = (DynamicObject) bill.get("shjh_bizsmall");
if (null == shjhBizsmall) {
bill.set("shjh_bizsmall", entry.getDynamicObject("shjh_e_bizsmall"));
}
DynamicObject shjhCostcenter = (DynamicObject) bill.get("shjh_costcenter");
if (null == shjhCostcenter) {
bill.set("shjh_costcenter", entry.getDynamicObject("shjh_e_cc"));
}
DynamicObject shjhPc = (DynamicObject) bill.get("shjh_profitcenter");
if (null == shjhPc) {
bill.set("shjh_profitcenter", entry.getDynamicObject("shjh_e_pc"));
}
return;
}
}
}
}
}