diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSaveOperation.java b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSaveOperation.java index 72d63b6..58e7b40 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSaveOperation.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/operate/RecBillSaveOperation.java @@ -187,10 +187,30 @@ public class RecBillSaveOperation extends AbstractOperationServicePlugIn impleme } //根据业务小类的清账方式,设置分录和表头的清账方式,以及分录下推清账单标记 if ("qbjdqz".equals(shjhEBizsmall.getString("shjh_qzfs"))) { - //【业务小类】清账方式字段=全部金蝶清账 - entryss.set("shjh_needpushbill", true);//需要下推清账单 - entryss.set("shjh_closingstatus", "B");//待清账 - bill.set("shjh_qzzt", "B");//待清账 + //【业务小类】清账方式字段=全部金蝶清账,再判断是否为结构性清账客户 + //判断客户是否拆分,客户拆分为否时,以表头付款人来判断,否则以分录上的客户来判断 + boolean customerSplit = bill.getBoolean("shjh_customersplit"); + if(customerSplit){ + //以分录上客户来判断的话,先设置成不下推,由人为操作单子后系统判断 + entryss.set("shjh_needpushbill", false);//不需要下推清账单 + entryss.set("shjh_closingstatus", "A");//无需金蝶清账 + bill.set("shjh_qzzt", "A");//无需金蝶清账 + }else{ + //根据收款单付款人id判断,此时的付款类型是客户 + QFilter mapnumber = new QFilter("shjh_customer.id", QCP.equals, bill.getLong("payer")); + DynamicObject mappingObj = BusinessDataServiceHelper.loadSingle("shjh_jgqzcust", mapnumber.toArray()); + if(mappingObj != null){ + //结构性清账客户映射表中有值 + entryss.set("shjh_needpushbill", true);//需要下推清账单 + entryss.set("shjh_closingstatus", "B");//待清账 + bill.set("shjh_qzzt", "B");//待清账 + }else{ + entryss.set("shjh_needpushbill", false);//不需要下推清账单 + entryss.set("shjh_closingstatus", "A");//无需金蝶清账 + bill.set("shjh_qzzt", "A");//无需金蝶清账 + } + } + }else{ entryss.set("shjh_needpushbill", false);//不需要下推清账单 entryss.set("shjh_closingstatus", "A");//无需金蝶清账