收款单插件提交
This commit is contained in:
parent
a8ae352a38
commit
1067da45c0
|
|
@ -0,0 +1,138 @@
|
|||
package shjh.jhzj7.fi.fi.plugin.form;
|
||||
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||
import kd.bos.dataentity.utils.StringUtils;
|
||||
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||
import kd.bos.form.plugin.AbstractFormPlugin;
|
||||
import kd.sdk.plugin.Plugin;
|
||||
import shjh.jhzj7.fi.fi.plugin.form.info.RecFieldsInfo;
|
||||
|
||||
import java.util.EventObject;
|
||||
|
||||
/**
|
||||
* 动态表单插件-【收款处理单】
|
||||
*
|
||||
* @author LiGuiQiang
|
||||
*/
|
||||
public class RecBillFromPlugin extends AbstractFormPlugin implements Plugin {
|
||||
|
||||
|
||||
@Override
|
||||
public void afterBindData(EventObject e) {
|
||||
super.afterBindData(e);
|
||||
this.getView().setVisible(false, RecFieldsInfo.ENTRY_CUSTOMER);
|
||||
DynamicObjectCollection entry = (DynamicObjectCollection) this.getModel().getValue("entry");
|
||||
if (null != entry && entry.size() != 0) {
|
||||
setClosingStatus(entry);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void propertyChanged(PropertyChangedArgs e) {
|
||||
super.propertyChanged(e);
|
||||
String fieldKey = e.getProperty().getName();
|
||||
if (StringUtils.equals(fieldKey, RecFieldsInfo.CUSTOMER_SPLIT)) {
|
||||
boolean result = (boolean) this.getModel().getValue(RecFieldsInfo.CUSTOMER_SPLIT);
|
||||
if (result) {
|
||||
handleCustomerSplitChange();
|
||||
}
|
||||
} else if (StringUtils.equals(fieldKey, RecFieldsInfo.ENTRY_CLOSING_STATUS)){
|
||||
DynamicObjectCollection entry = this.getModel().getEntryEntity("entry");
|
||||
if (null != entry && entry.size() != 0) {
|
||||
setClosingStatus(entry);
|
||||
}
|
||||
}else if (StringUtils.equals(fieldKey, "customerf7")){
|
||||
String type = (String) this.getModel().getValue(RecFieldsInfo.PAYER_TYPE);
|
||||
if ("bd_customer".equals(type)){
|
||||
DynamicObject customer = (DynamicObject) this.getModel().getValue(RecFieldsInfo.CUSTOMER_F7);
|
||||
if (null!=customer){
|
||||
//customer.getString("")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void handleCustomerSplitChange() {
|
||||
this.getView().setVisible(true, RecFieldsInfo.ENTRY_CUSTOMER);
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置表头清账状态
|
||||
*
|
||||
* @param entry 收款明细分录
|
||||
*/
|
||||
private void setClosingStatus(DynamicObjectCollection entry) {
|
||||
// 是否包含待清账
|
||||
boolean hasPendingClear = false;
|
||||
// 是否包含已清账
|
||||
boolean hasCleared = false;
|
||||
// 是否包含反清账
|
||||
boolean hasReversedClear = false;
|
||||
// 是否包含无需金蝶清账
|
||||
boolean hasNoClear = false;
|
||||
// 是否所有分录行都是已清账
|
||||
boolean allCleared = true;
|
||||
// 是否所有分录行都是反清账
|
||||
boolean allReversedCleared = true;
|
||||
|
||||
// 遍历分录行,判断清账状态
|
||||
for (int i = 0; i < entry.size(); i++) {
|
||||
String closingStatus = entry.get(i).getString("shjh_closingstatus");
|
||||
if (null!=closingStatus){
|
||||
switch (closingStatus) {
|
||||
case "A":
|
||||
hasNoClear = true;
|
||||
break;
|
||||
case "B":
|
||||
hasPendingClear = true;
|
||||
break;
|
||||
case "C":
|
||||
hasCleared = true;
|
||||
// 如果有不是“已清账”的,就说明不是全部“已清账”
|
||||
allCleared = false;
|
||||
break;
|
||||
case "D":
|
||||
hasReversedClear = true;
|
||||
// 如果有不是“反清账”的,就说明不是全部“反清账”
|
||||
allReversedCleared = false;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 判断部分清账的条件:包含已清账但不全是已清账,并且不包含反清账
|
||||
boolean isPartialCleared = hasCleared && !allCleared && !hasReversedClear;
|
||||
|
||||
// 判断部分反清账的条件:包含反清账但不全是反清账
|
||||
boolean isPartialReversedCleared = hasReversedClear && !allReversedCleared;
|
||||
|
||||
// 根据分录行状态来设置表头清账状态
|
||||
String headerStatus = "";
|
||||
|
||||
if (hasNoClear && !hasPendingClear && !hasCleared && !hasReversedClear) {
|
||||
headerStatus = "A";
|
||||
} else if (hasPendingClear && !hasCleared && !hasReversedClear) {
|
||||
headerStatus = "B";
|
||||
} else if (hasCleared && !hasReversedClear && !hasPendingClear) {
|
||||
headerStatus = "C";
|
||||
} else if (hasReversedClear && !hasPendingClear && !hasCleared) {
|
||||
headerStatus = "D";
|
||||
} else if (isPartialCleared) {
|
||||
// 部分清账的条件
|
||||
headerStatus = "E";
|
||||
} else if (isPartialReversedCleared) {
|
||||
// 部分反清账的条件
|
||||
headerStatus = "F";
|
||||
}else {
|
||||
headerStatus = null;
|
||||
}
|
||||
|
||||
// 设置表头清账状态
|
||||
this.getModel().setValue("shjh_qzzt", headerStatus);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue