|
@@ -22,7 +22,7 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
|
|
|
private final static String KEY_OK = "btnok";//页面取消按钮标识
|
|
|
private final static String KEY_CANCEL = "btncancel";//页面取消按钮标识
|
|
|
private final static String KEY_SEARCH = "search";//动态表单查询按钮操作
|
|
|
- private final static String FORMID_ENTRY = "nckd_cyfgzmxf7";//动态表单单据体标识
|
|
|
+ private final static String FORMID_ENTRY = "nckd_entryentity";//动态表单单据体标识
|
|
|
private static String nckd_agentparameter = "nckd_agentparameter";//动因参数基础资料
|
|
|
|
|
|
/**
|
|
@@ -84,54 +84,69 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
|
|
|
String payeenamev = (String) customParams.get("payeenamev");
|
|
|
String controls = (String) customParams.get("controls");
|
|
|
String billtype = (String) customParams.get("billtype");
|
|
|
- if (payeenamev == null) {
|
|
|
+ if (payeenamev == null || payeenamev.isEmpty()) {
|
|
|
throw new KDBizException("收款处理付款人为空!");
|
|
|
}
|
|
|
if("cysgzmx".equals(controls)) {
|
|
|
List<JSONObject> resdate = new ArrayList<>();
|
|
|
//历史数据清除
|
|
|
- this.getModel().deleteEntryData(billtype);
|
|
|
+ this.getModel().deleteEntryData("nckd_entryentity");
|
|
|
//构建查询应收挂账单参数
|
|
|
- QFilter nckd_orgamountFilter = new QFilter("payeenamev", QCP.like, payeenamev);
|
|
|
- nckd_orgamountFilter.and("status", QCP.equals, "C");
|
|
|
- nckd_orgamountFilter.and("unsettleamount", QCP.large_than, new BigDecimal(0));
|
|
|
+ QFilter nckd_orgamountFilter = new QFilter("unsettleamount", QCP.large_than, new BigDecimal(0));
|
|
|
+ nckd_orgamountFilter.and("billstatus", QCP.equals, "C");
|
|
|
+ nckd_orgamountFilter.and("payeename", QCP.like, payeenamev);
|
|
|
+ nckd_orgamountFilter.and("unsettleamount", QCP.is_notnull, "");
|
|
|
DynamicObject[] nckd_cas_arbill = BusinessDataServiceHelper.load("nckd_cas_arbill", "id", new QFilter[]{nckd_orgamountFilter});
|
|
|
for (int c = 0; c < nckd_cas_arbill.length; c++) {
|
|
|
//当前单头
|
|
|
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(nckd_cas_arbill[c].getPkValue(), nckd_cas_arbill[c].getDynamicObjectType().getName());
|
|
|
//单据编号
|
|
|
String billno = dynamicObject.getString("billno");
|
|
|
- //费用承担组织部门
|
|
|
- DynamicObject applyorg = dynamicObject.getDynamicObject("applyorg");
|
|
|
- //往来单位
|
|
|
- String wldw = dynamicObject.getString("payeenamev");
|
|
|
- QFilter wldwFilter = new QFilter("name", QCP.like, wldw);
|
|
|
- DynamicObject[] wldwDynamicObject = BusinessDataServiceHelper.load("nckd_cas_arbill", "id,number", new QFilter[]{wldwFilter});
|
|
|
- DynamicObject wldwDynamicObjects = BusinessDataServiceHelper.loadSingle(wldwDynamicObject[0].getPkValue(), wldwDynamicObject[0].getDynamicObjectType().getName());
|
|
|
- String wldwnumber = wldwDynamicObjects.getString("number");
|
|
|
//应收挂账日期
|
|
|
Date bizdate = dynamicObject.getDate("bizdate");
|
|
|
//应收挂账金额/冲销金额
|
|
|
BigDecimal settleamount = dynamicObject.getBigDecimal("settleamount");
|
|
|
- int rowIndex = this.getModel().createNewEntryRow(billtype);
|
|
|
- //赋值给新增分录
|
|
|
- this.getModel().setValue("nckd_cysnumber", billno, rowIndex);
|
|
|
- this.getModel().setValue("nckd_cysorg", applyorg, rowIndex);
|
|
|
- this.getModel().setValue("nckd_cyssection", applyorg, rowIndex);
|
|
|
- this.getModel().setValue("nckd_cyswldw", wldwDynamicObjects, rowIndex);
|
|
|
- this.getModel().setValue("nckd_cysdata", bizdate, rowIndex);
|
|
|
- this.getModel().setValue("nckd_cysgzbalance", settleamount, rowIndex);
|
|
|
- this.getModel().setValue("nckd_cyscxbalance", settleamount, rowIndex);
|
|
|
- //将选中的数据放到缓存中
|
|
|
- JSONObject obj = new JSONObject();
|
|
|
- obj.put("nckd_cysnumber", billno);
|
|
|
- obj.put("nckd_cysorg", applyorg.getString("number"));
|
|
|
- obj.put("nckd_cyswldw", wldwnumber);
|
|
|
- obj.put("nckd_cysdata", bizdate);
|
|
|
- obj.put("nckd_cysgzbalance", settleamount);
|
|
|
- obj.put("controls", controls);
|
|
|
- obj.put("billtype", billtype);
|
|
|
- resdate.add(obj);
|
|
|
+ for (DynamicObject entryentity : dynamicObject.getDynamicObjectCollection("entry")) {
|
|
|
+ DynamicObject eMaterial = entryentity.getDynamicObject("e_material");//物料
|
|
|
+ DynamicObject eExpenseitem = entryentity.getDynamicObject("e_expenseitem");//费用项目
|
|
|
+ DynamicObject settleorg = entryentity.getDynamicObject("settleorg");//结算组织
|
|
|
+ BigDecimal eActamt = entryentity.getBigDecimal("e_actamt");//实付金额
|
|
|
+ DynamicObject costcenter = entryentity.getDynamicObject("costcenter");//成本中心
|
|
|
+ DynamicObject productline = entryentity.getDynamicObject("productline");//产品线
|
|
|
+ BigDecimal eDiscountamt = entryentity.getBigDecimal("e_discountamt");//现金折扣
|
|
|
+ DynamicObject project = entryentity.getDynamicObject("project");//项目
|
|
|
+ DynamicObject eFundflowitem = entryentity.getDynamicObject("e_fundflowitem");//资金用途
|
|
|
+ String contractnumber = entryentity.getString("contractnumber");//合同
|
|
|
+ int rowIndex = this.getModel().createNewEntryRow("nckd_entryentity");
|
|
|
+ //赋值给新增分录
|
|
|
+ this.getModel().setValue("nckd_cysnumber", billno, rowIndex);
|
|
|
+ this.getModel().setValue("nckd_cysdata", bizdate, rowIndex);
|
|
|
+ this.getModel().setValue("nckd_cysgzbalance", settleamount, rowIndex);
|
|
|
+ this.getModel().setValue("nckd_cyscxbalance", settleamount, rowIndex);
|
|
|
+ //分录数据
|
|
|
+ if(eMaterial!=null){this.getModel().setValue("nckd_materielfield", eMaterial, rowIndex);}
|
|
|
+ if(eExpenseitem!=null){this.getModel().setValue("nckd_cysfyxm", eExpenseitem, rowIndex);}
|
|
|
+ if(settleorg!=null){this.getModel().setValue("nckd_cyssection", settleorg, rowIndex);}
|
|
|
+ if(eActamt!=null){this.getModel().setValue("nckd_cyssfje", eActamt, rowIndex);}
|
|
|
+ if(costcenter!=null){this.getModel().setValue("nckd_costcenter", costcenter, rowIndex);}
|
|
|
+ if(productline!=null){this.getModel().setValue("nckd_productline", productline, rowIndex);}
|
|
|
+ if(eDiscountamt!=null){this.getModel().setValue("nckd_e_discountamt", eDiscountamt, rowIndex);}
|
|
|
+ if(project!=null){this.getModel().setValue("nckd_project", project, rowIndex);}
|
|
|
+ if(eFundflowitem!=null){this.getModel().setValue("nckd_e_fundflowitem", eFundflowitem, rowIndex);}
|
|
|
+ if(contractnumber!=null){this.getModel().setValue("nckd_contractnumber", contractnumber, rowIndex);}
|
|
|
+ //将选中的数据放到缓存中
|
|
|
+ JSONObject obj = new JSONObject();
|
|
|
+ obj.put("nckd_cysnumber", billno);
|
|
|
+ obj.put("nckd_cysdata", bizdate);
|
|
|
+ if(eExpenseitem!=null){
|
|
|
+ obj.put("nckd_cysfyxm", eExpenseitem.getString("number"));
|
|
|
+ }else { obj.put("nckd_cysfyxm", "");}
|
|
|
+ obj.put("nckd_cysgzbalance", settleamount);
|
|
|
+ obj.put("controls", controls);
|
|
|
+ obj.put("billtype", billtype);
|
|
|
+ resdate.add(obj);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
String pageId = this.getView().getPageId();
|
|
@@ -140,45 +155,111 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
|
|
|
}else if("cyfgzmx".equals(controls)){
|
|
|
List<JSONObject> resdate = new ArrayList<>();
|
|
|
//历史数据清除
|
|
|
- this.getModel().deleteEntryData(billtype);
|
|
|
+ this.getModel().deleteEntryData("nckd_entryentity");
|
|
|
//构建查询应收挂账单参数
|
|
|
- QFilter nckd_orgamountFilter = new QFilter("billno", QCP.equals, payeenamev);
|
|
|
- nckd_orgamountFilter.and("status", QCP.equals, "C");
|
|
|
+ QFilter nckd_orgamountFilter = new QFilter("asstact.number", QCP.equals, payeenamev);
|
|
|
+ nckd_orgamountFilter.and("billstatus", QCP.equals, "C");
|
|
|
nckd_orgamountFilter.and("unsettleamount", QCP.large_than, new BigDecimal(0));
|
|
|
- DynamicObject[] nckd_cas_arbill = BusinessDataServiceHelper.load("nckd_ap_finapbill_gz", "id", new QFilter[]{nckd_orgamountFilter});
|
|
|
+ DynamicObject[] nckd_cas_arbill = BusinessDataServiceHelper.load("ap_finapbill", "id", new QFilter[]{nckd_orgamountFilter});
|
|
|
for (int c = 0; c < nckd_cas_arbill.length; c++) {
|
|
|
//当前单头
|
|
|
DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(nckd_cas_arbill[c].getPkValue(), nckd_cas_arbill[c].getDynamicObjectType().getName());
|
|
|
//单据编号
|
|
|
String billno = dynamicObject.getString("billno");
|
|
|
- //费用承担组织部门
|
|
|
- DynamicObject applyorg = dynamicObject.getDynamicObject("org");
|
|
|
- //往来单位
|
|
|
- String wldw = dynamicObject.getString("asstact");
|
|
|
- QFilter wldwFilter = new QFilter("name", QCP.like, wldw);
|
|
|
- DynamicObject[] wldwDynamicObject = BusinessDataServiceHelper.load("nckd_cas_arbill", "id,number", new QFilter[]{wldwFilter});
|
|
|
- DynamicObject wldwDynamicObjects = BusinessDataServiceHelper.loadSingle(wldwDynamicObject[0].getPkValue(), wldwDynamicObject[0].getDynamicObjectType().getName());
|
|
|
- String wldwnumber = wldwDynamicObjects.getString("number");
|
|
|
//应收挂账日期
|
|
|
Date bizdate = dynamicObject.getDate("bizdate");
|
|
|
//应收挂账金额/冲销金额
|
|
|
BigDecimal settleamount = dynamicObject.getBigDecimal("settleamount");
|
|
|
- int rowIndex = this.getModel().createNewEntryRow(billtype);
|
|
|
+ for (DynamicObject entryentity : dynamicObject.getDynamicObjectCollection("detailentry")) {
|
|
|
+ DynamicObject material = entryentity.getDynamicObject("material");
|
|
|
+ String spectype = entryentity.getString("spectype");
|
|
|
+ DynamicObject expenseitem = entryentity.getDynamicObject("expenseitem");
|
|
|
+ DynamicObject measureunit = entryentity.getDynamicObject("measureunit");
|
|
|
+ BigDecimal quantity = entryentity.getBigDecimal("quantity");
|
|
|
+ BigDecimal price = entryentity.getBigDecimal("price");
|
|
|
+ DynamicObject taxrateid = entryentity.getDynamicObject("taxrateid");
|
|
|
+ String discountmode = entryentity.getString("discountmode");
|
|
|
+ int rowIndex = this.getModel().createNewEntryRow("nckd_entryentity");
|
|
|
+ //赋值给新增分录
|
|
|
+ this.getModel().setValue("nckd_cyfnumber", billno, rowIndex);
|
|
|
+ this.getModel().setValue("nckd_cyfdata", bizdate, rowIndex);
|
|
|
+ this.getModel().setValue("nckd_cyfgzbalance", settleamount, rowIndex);
|
|
|
+ this.getModel().setValue("nckd_cyfcxbalance", settleamount, rowIndex);
|
|
|
+ //分录字段
|
|
|
+ if(material!=null){this.getModel().setValue("nckd_materielfield",material , rowIndex);}
|
|
|
+ this.getModel().setValue("nckd_spectype", spectype, rowIndex);
|
|
|
+ if(expenseitem!=null){this.getModel().setValue("nckd_expenseitem",expenseitem , rowIndex);}
|
|
|
+ if(measureunit!=null){this.getModel().setValue("nckd_measureunit",measureunit , rowIndex);}
|
|
|
+ this.getModel().setValue("nckd_quantity",quantity , rowIndex);
|
|
|
+ this.getModel().setValue("nckd_price",price , rowIndex);
|
|
|
+ if(taxrateid!=null){this.getModel().setValue("nckd_taxrateid",taxrateid , rowIndex);}
|
|
|
+ this.getModel().setValue("nckd_discountmode", discountmode, rowIndex);
|
|
|
+ //将选中的数据放到缓存中
|
|
|
+ JSONObject obj = new JSONObject();
|
|
|
+ obj.put("nckd_cyfnumber", billno);
|
|
|
+ obj.put("nckd_cyfwldw", "");
|
|
|
+ obj.put("nckd_cyfdata", bizdate);
|
|
|
+ obj.put("nckd_cyfgzbalance", settleamount);
|
|
|
+ if(expenseitem!=null){
|
|
|
+ obj.put("nckd_cyffyxm", expenseitem.getString("number"));
|
|
|
+ }else { obj.put("nckd_cyffyxm", "");}
|
|
|
+ obj.put("controls", controls);
|
|
|
+ obj.put("billtype", billtype);
|
|
|
+ resdate.add(obj);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ String pageId = this.getView().getPageId();
|
|
|
+ String listStr = SerializationUtils.toJsonString(resdate);
|
|
|
+ this.getPageCache().put(pageId, listStr);
|
|
|
+ }else if ("pzht".equals(controls)) {
|
|
|
+ List<JSONObject> resdate = new ArrayList<>();
|
|
|
+ //历史数据清除
|
|
|
+ this.getModel().deleteEntryData("nckd_entryentity");
|
|
|
+ //构建查询应收挂账单参数
|
|
|
+ QFilter nckd_orgamountFilter = new QFilter("org.number", QCP.equals, payeenamev);
|
|
|
+ nckd_orgamountFilter.and("status", QCP.equals, "C");
|
|
|
+ nckd_orgamountFilter.and("nckd_amountfield1", QCP.large_than, new BigDecimal(0));
|
|
|
+ nckd_orgamountFilter.and("nckd_amountfield1", QCP.is_notnull,"");
|
|
|
+ DynamicObject[] fa_lease_contract = BusinessDataServiceHelper.load("fa_lease_contract", "id", new QFilter[]{nckd_orgamountFilter});
|
|
|
+ for (int c = 0; c < fa_lease_contract.length; c++) {
|
|
|
+ //当前单头
|
|
|
+ DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(fa_lease_contract[c].getPkValue(), fa_lease_contract[c].getDynamicObjectType().getName());
|
|
|
+ //核算组织
|
|
|
+ DynamicObject org = dynamicObject.getDynamicObject("org");
|
|
|
+ //合同号
|
|
|
+ String number = dynamicObject.getString("number");
|
|
|
+ //合同名称
|
|
|
+ String name = dynamicObject.getString("name");
|
|
|
+ //承租方
|
|
|
+ DynamicObject leaser = dynamicObject.getDynamicObject("leaser");
|
|
|
+ //资产名称
|
|
|
+ String assetname = dynamicObject.getString("assetname");
|
|
|
+ //合同签订日期
|
|
|
+ Date contrsigndate = dynamicObject.getDate("contrsigndate");
|
|
|
+ //收款余额/冲销金额
|
|
|
+ BigDecimal nckdAmountfield1 = dynamicObject.getBigDecimal("nckd_amountfield1");
|
|
|
+ int rowIndex = this.getModel().createNewEntryRow("nckd_entryentity");
|
|
|
//赋值给新增分录
|
|
|
- this.getModel().setValue("nckd_cyfnumber", billno, rowIndex);
|
|
|
- this.getModel().setValue("nckd_cyforg", applyorg, rowIndex);
|
|
|
- this.getModel().setValue("nckd_cyffyxm", "", rowIndex);
|
|
|
- this.getModel().setValue("nckd_cyfwldw", wldwDynamicObjects, rowIndex);
|
|
|
- this.getModel().setValue("nckd_cyfdata", bizdate, rowIndex);
|
|
|
- this.getModel().setValue("nckd_cyfgzbalance", settleamount, rowIndex);
|
|
|
- this.getModel().setValue("nckd_cyfcxbalance", settleamount, rowIndex);
|
|
|
+ this.getModel().setValue("nckd_pzhtorg", org, rowIndex);
|
|
|
+ this.getModel().setValue("nckd_pzhthth", number, rowIndex);
|
|
|
+ this.getModel().setValue("nckd_pzhtname", name, rowIndex);
|
|
|
+ this.getModel().setValue("nckd_pzhtczf", leaser, rowIndex);
|
|
|
+ this.getModel().setValue("nckd_pzhtzcname", assetname, rowIndex);
|
|
|
+ this.getModel().setValue("nckd_ppzhtdata", contrsigndate, rowIndex);
|
|
|
+ this.getModel().setValue("nckd_pzhtskbalance", nckdAmountfield1, rowIndex);
|
|
|
+ this.getModel().setValue("nckd_pzhtcxbalance", nckdAmountfield1, rowIndex);
|
|
|
//将选中的数据放到缓存中
|
|
|
JSONObject obj = new JSONObject();
|
|
|
- obj.put("nckd_cyfnumber", billno);
|
|
|
- obj.put("nckd_cyforg", applyorg.getString("number"));
|
|
|
- obj.put("nckd_cyfwldw", wldwnumber);
|
|
|
- obj.put("nckd_cyfdata", bizdate);
|
|
|
- obj.put("nckd_cyfgzbalance", settleamount);
|
|
|
+ obj.put("nckd_pzhtorg", org.getString("number"));
|
|
|
+ obj.put("nckd_pzhthth", number);
|
|
|
+ obj.put("nckd_pzhtname", name);
|
|
|
+ obj.put("nckd_pzhtczf", leaser.getString("number"));
|
|
|
+ obj.put("nckd_pzhtzcname", assetname);
|
|
|
+ obj.put("nckd_ppzhtdata", contrsigndate);
|
|
|
+ obj.put("nckd_pzhtskbalance", nckdAmountfield1);
|
|
|
+ obj.put("nckd_pzhtcxbalance", nckdAmountfield1);
|
|
|
obj.put("controls", controls);
|
|
|
obj.put("billtype", billtype);
|
|
|
resdate.add(obj);
|
|
@@ -191,62 +272,5 @@ public class BusinessProcessingPlugin extends AbstractFormPlugin implements Plug
|
|
|
}
|
|
|
|
|
|
|
|
|
- @Override
|
|
|
- public void afterDoOperation(AfterDoOperationEventArgs e) {
|
|
|
- if (KEY_SEARCH.equals(e.getOperateKey())) {
|
|
|
- DynamicObject period = (DynamicObject) this.getModel().getValue("nckd_typeagent");
|
|
|
- //获取父页面传入数据
|
|
|
- Map<String, Object> customParams = this.getView().getFormShowParameter().getCustomParams();
|
|
|
- String orgnumber = (String) customParams.get("orgnumber");
|
|
|
- String orgid = (String) customParams.get("orgid");
|
|
|
- if (orgnumber == null){
|
|
|
- throw new KDBizException("付费承担公司为空!");
|
|
|
- }
|
|
|
- List<JSONObject> resdate = new ArrayList<>();
|
|
|
- //历史数据清除
|
|
|
- this.getModel().deleteEntryData(FORMID_ENTRY);
|
|
|
- //查询动因参数基础资料
|
|
|
- QFilter nckd_orgamountFilter = new QFilter("nckd_unappliedorg.number", QCP.equals,orgnumber);
|
|
|
- if(period !=null){
|
|
|
- period = BusinessDataServiceHelper.loadSingle(period.getPkValue(),period.getDynamicObjectType().getName());
|
|
|
- String name = period.getString("name");
|
|
|
- if(name!=null && !name.isEmpty()){
|
|
|
- nckd_orgamountFilter.and("nckd_typeagent.name", QCP.equals,name);
|
|
|
- }
|
|
|
- }
|
|
|
- nckd_orgamountFilter.and("status", QCP.equals,"C");
|
|
|
- DynamicObject[] nckd_orgamountaccount = BusinessDataServiceHelper.load(nckd_agentparameter,"id,number",new QFilter[] {nckd_orgamountFilter});
|
|
|
- //循环动因参数基础资料
|
|
|
- for (int c=0;c<nckd_orgamountaccount.length;c++){
|
|
|
- //当前行
|
|
|
- DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(nckd_orgamountaccount[c].getPkValue(), nckd_orgamountaccount[c].getDynamicObjectType().getName());
|
|
|
- //动因类型
|
|
|
- DynamicObject nckdTypeagent = dynamicObject.getDynamicObject("nckd_typeagent");
|
|
|
- //循环分录
|
|
|
- for (DynamicObject entryentity : dynamicObject.getDynamicObjectCollection("nckd_entryentity")) {
|
|
|
- //当前分录行分摊组织
|
|
|
- DynamicObject nckdShareorg = entryentity.getDynamicObject("nckd_shareorg");
|
|
|
- //当前分录行动因值
|
|
|
- BigDecimal nckdAgentvalue = entryentity.getBigDecimal("nckd_agentvalue");
|
|
|
- //新增动态单据分录行
|
|
|
- int rowIndex = this.getModel().createNewEntryRow(FORMID_ENTRY);
|
|
|
- //赋值给分录
|
|
|
- this.getModel().setValue("nckd_shareorg", nckdShareorg, rowIndex);
|
|
|
- this.getModel().setValue("nckd_agentvalue", nckdAgentvalue, rowIndex);
|
|
|
- this.getModel().setValue("nckd_agenttype", nckdTypeagent, rowIndex);
|
|
|
- //存放缓存
|
|
|
- JSONObject obj = new JSONObject();
|
|
|
- obj.put("nckd_shareorg",nckdShareorg.getString("number"));
|
|
|
- obj.put("nckd_agentvalue",nckdAgentvalue);
|
|
|
- resdate.add(obj);
|
|
|
- }
|
|
|
- }
|
|
|
- String pageId = this.getView().getPageId();
|
|
|
- String listStr = SerializationUtils.toJsonString(resdate);
|
|
|
- this.getPageCache().put(pageId, listStr);
|
|
|
-// initTable(isInform,isForce,startDate,endDate,null);
|
|
|
-
|
|
|
|
|
|
- }
|
|
|
- }
|
|
|
}
|