自动收款;费用支付公司带动费用承担
This commit is contained in:
		
							parent
							
								
									d90d9c64a2
								
							
						
					
					
						commit
						4bb5f6f8ec
					
				| 
						 | 
				
			
			@ -0,0 +1,105 @@
 | 
			
		|||
package kd.fi.er.botp;
 | 
			
		||||
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
 | 
			
		||||
import kd.bos.entity.ExtendedDataEntity;
 | 
			
		||||
import kd.bos.entity.ExtendedDataEntitySet;
 | 
			
		||||
import kd.bos.entity.botp.plugin.AbstractConvertPlugIn;
 | 
			
		||||
import kd.bos.entity.botp.plugin.args.AfterConvertEventArgs;
 | 
			
		||||
import kd.bos.entity.botp.runtime.ConvertConst;
 | 
			
		||||
import kd.bos.orm.query.QFilter;
 | 
			
		||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
 | 
			
		||||
import kd.scm.pds.common.util.TemplateUtil;
 | 
			
		||||
import kd.sdk.plugin.Plugin;
 | 
			
		||||
 | 
			
		||||
import java.math.BigDecimal;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 单据转换插件
 | 
			
		||||
 */
 | 
			
		||||
public class ConvertBillPlugln extends AbstractConvertPlugIn implements Plugin {
 | 
			
		||||
    @Override
 | 
			
		||||
    public void afterConvert(AfterConvertEventArgs e) {
 | 
			
		||||
        super.afterConvert(e);
 | 
			
		||||
        //采购合同
 | 
			
		||||
        ExtendedDataEntitySet targetExtDataEntitySet = e.getTargetExtDataEntitySet();
 | 
			
		||||
        ExtendedDataEntity[] entities = targetExtDataEntitySet.FindByEntityKey(getTgtMainType().getName());
 | 
			
		||||
        for (ExtendedDataEntity entity : entities) {
 | 
			
		||||
            List<DynamicObject> srcRows = (List<DynamicObject>) entity.getValue(ConvertConst.ConvExtDataKey_SourceRows);
 | 
			
		||||
            DynamicObject srcRow = srcRows.get(0);
 | 
			
		||||
            Object sourceBillPK = e.getFldProperties().get("id").getValue(srcRow);
 | 
			
		||||
            ////付款处理单据
 | 
			
		||||
            DynamicObject contract = entity.getDataEntity();
 | 
			
		||||
            //对公报销
 | 
			
		||||
            DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(sourceBillPK, getSrcMainType().getName());
 | 
			
		||||
            DynamicObjectCollection accountentry = dynamicObject.getDynamicObjectCollection("accountentry");
 | 
			
		||||
            BigDecimal orireceiveamount = accountentry.get(0).getBigDecimal("orireceiveamount"); //实付金额
 | 
			
		||||
 | 
			
		||||
            DynamicObjectCollection writeoffmoney = dynamicObject.getDynamicObjectCollection("writeoffmoney"); //预付
 | 
			
		||||
            DynamicObjectCollection expenseentryentity = dynamicObject.getDynamicObjectCollection("expenseentryentity"); //预付
 | 
			
		||||
 | 
			
		||||
            BigDecimal yuf = BigDecimal.ZERO; //预付金额
 | 
			
		||||
            for(int i=0;i<writeoffmoney.size();i++){
 | 
			
		||||
                DynamicObject enry = writeoffmoney.get(i);
 | 
			
		||||
                BigDecimal loanamount = enry.getBigDecimal("loanamount");
 | 
			
		||||
                yuf = yuf.add(loanamount);
 | 
			
		||||
            }
 | 
			
		||||
            if(yuf.compareTo(BigDecimal.ZERO) ==0){
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            BigDecimal feiy = BigDecimal.ZERO; //报销金额的合计
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
            for(int i=0;i<expenseentryentity.size();i++){
 | 
			
		||||
                DynamicObject enry = expenseentryentity.get(i);
 | 
			
		||||
                BigDecimal loanamount = enry.getBigDecimal("expenseamount");
 | 
			
		||||
                feiy = feiy.add(loanamount);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
//            BigDecimal proportion = yuf.divide(feiy, 4, 4); // 预付/报销金额 = 已付比例
 | 
			
		||||
//            BigDecimal supro = one.subtract(proportion); // 1-已付比例 = 未付比例
 | 
			
		||||
 | 
			
		||||
            BigDecimal sfTatalo = BigDecimal.ZERO;
 | 
			
		||||
            BigDecimal zft = BigDecimal.ZERO;
 | 
			
		||||
            for(int i=0;i<expenseentryentity.size();i++){
 | 
			
		||||
 | 
			
		||||
                DynamicObject enry = expenseentryentity.get(i);
 | 
			
		||||
                BigDecimal loanamount = enry.getBigDecimal("expenseamount"); //报销金额
 | 
			
		||||
                BigDecimal supro = loanamount.divide(feiy,4,4);
 | 
			
		||||
                BigDecimal multiply = orireceiveamount.multiply(supro);
 | 
			
		||||
 | 
			
		||||
                if(i==expenseentryentity.size()-1){
 | 
			
		||||
                    multiply =  orireceiveamount.subtract(zft);
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                zft =zft.add(multiply);
 | 
			
		||||
                DynamicObjectCollection entry = contract.getDynamicObjectCollection("entry");
 | 
			
		||||
                entry.get(i).set("e_actamt",multiply); //付款单实付
 | 
			
		||||
                entry.get(i).set("e_payableamt",loanamount); //应付
 | 
			
		||||
 | 
			
		||||
                entry.get(i).set("e_unsettledlocalamt", multiply);
 | 
			
		||||
                entry.get(i).set("e_unlockamt", multiply);
 | 
			
		||||
                entry.get(i).set("e_unsettledamt", multiply);
 | 
			
		||||
                entry.get(i).set("e_payableamt", multiply);
 | 
			
		||||
                entry.get(i).set("e_payablelocamt", multiply);
 | 
			
		||||
                entry.get(i).set("e_localamt", multiply);
 | 
			
		||||
 | 
			
		||||
                sfTatalo =  sfTatalo.add(multiply);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            DynamicObjectCollection entry = contract.getDynamicObjectCollection("entry");
 | 
			
		||||
//            entry.get(0).set("e_actamt",new BigDecimal(10) );
 | 
			
		||||
 | 
			
		||||
            //签约单id
 | 
			
		||||
            Object pkValue = dynamicObject.getPkValue();
 | 
			
		||||
            //根据id找采购实施
 | 
			
		||||
            contract.set("actpayamt",sfTatalo);
 | 
			
		||||
            contract.set("localamt",sfTatalo);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -173,9 +173,9 @@ public class CommonCostCenterBillFormPlugin extends AbstractBillPlugIn implement
 | 
			
		|||
                if("costcompany".equals(name)){
 | 
			
		||||
                DynamicObject applier = (DynamicObject) this.getModel().getValue("applier");
 | 
			
		||||
                if (applier != null){
 | 
			
		||||
                    DynamicObject bos_user = BusinessDataServiceHelper.loadSingle(applier.getPkValue(), "bos_user");
 | 
			
		||||
                    DynamicObject shkd_labororg = bos_user.getDynamicObject("shkd_labororg");
 | 
			
		||||
                    this.getModel().setValue("paycompany",shkd_labororg);//设置支付公司为申请人员上的劳动主体
 | 
			
		||||
//                    DynamicObject bos_user = BusinessDataServiceHelper.loadSingle(applier.getPkValue(), "bos_user");
 | 
			
		||||
//                    DynamicObject shkd_labororg = bos_user.getDynamicObject("shkd_labororg");
 | 
			
		||||
//                    this.getModel().setValue("paycompany",shkd_labororg);//设置支付公司为申请人员上的劳动主体
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,43 @@
 | 
			
		|||
package shkd.fi.er.plugin.formplugin;
 | 
			
		||||
 | 
			
		||||
import kd.bos.bill.AbstractBillPlugIn;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.entity.datamodel.events.ChangeData;
 | 
			
		||||
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
 | 
			
		||||
import kd.sdk.plugin.Plugin;
 | 
			
		||||
 | 
			
		||||
import java.util.EventObject;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 单据界面插件,费用承担公司根据支付公司做变化
 | 
			
		||||
 */
 | 
			
		||||
public class CommonCostCompanyPlugin extends AbstractBillPlugIn implements Plugin {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void registerListener(EventObject e) {
 | 
			
		||||
        super.registerListener(e);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void propertyChanged(PropertyChangedArgs e) {
 | 
			
		||||
        super.propertyChanged(e);
 | 
			
		||||
        String name = e.getProperty().getName();
 | 
			
		||||
        ChangeData[] changeSet = e.getChangeSet();
 | 
			
		||||
        ChangeData changeData = changeSet[0];
 | 
			
		||||
        if("paycompany".equals(name)){
 | 
			
		||||
            DynamicObject newValue = (DynamicObject)changeData.getNewValue();
 | 
			
		||||
 | 
			
		||||
            this.getModel().setValue("costcompany",newValue);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void afterCreateNewData(EventObject e) {
 | 
			
		||||
        super.afterCreateNewData(e);
 | 
			
		||||
        Object paycompany = this.getModel().getValue("paycompany");
 | 
			
		||||
        if(paycompany!=null){
 | 
			
		||||
            DynamicObject value = (DynamicObject)paycompany;
 | 
			
		||||
            this.getModel().setValue("costcompany",value);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,51 @@
 | 
			
		|||
package shkd.fi.er.plugin.formplugin;
 | 
			
		||||
 | 
			
		||||
import kd.bos.bill.AbstractBillPlugIn;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObject;
 | 
			
		||||
import kd.bos.dataentity.entity.DynamicObjectCollection;
 | 
			
		||||
import kd.bos.form.control.events.ItemClickEvent;
 | 
			
		||||
import kd.sdk.plugin.Plugin;
 | 
			
		||||
 | 
			
		||||
import java.util.EventObject;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 单据界面插件
 | 
			
		||||
 * 收款信息生成
 | 
			
		||||
 */
 | 
			
		||||
public class GenerateSKClickPlugln extends AbstractBillPlugIn implements Plugin {
 | 
			
		||||
 | 
			
		||||
    private final static String KEY_sku = "shkd_generatesku";
 | 
			
		||||
    private final static String bar_save = "bar_save";
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void registerListener(EventObject e) {
 | 
			
		||||
        super.registerListener(e);
 | 
			
		||||
        this.addItemClickListeners(KEY_sku);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void itemClick(ItemClickEvent evt) {
 | 
			
		||||
        super.itemClick(evt);
 | 
			
		||||
        System.out.println();
 | 
			
		||||
        DynamicObjectCollection expenseentryentity = this.getModel().getEntryEntity("expenseentryentity");
 | 
			
		||||
        DynamicObjectCollection entryEntity = this.getModel().getEntryEntity("");
 | 
			
		||||
        entryEntity.clear();
 | 
			
		||||
        for(int i= 0;i<expenseentryentity.size();i++){
 | 
			
		||||
            DynamicObject fymx = expenseentryentity.get(0);
 | 
			
		||||
            DynamicObject shkd_entrypaycompany = fymx.getDynamicObject("shkd_entrypaycompany");
 | 
			
		||||
            DynamicObject std_entrycostcenter = fymx.getDynamicObject("std_entrycostcenter");
 | 
			
		||||
            DynamicObject dynamicObject = fymx.getDynamicObject("expenseitem");
 | 
			
		||||
 | 
			
		||||
//            DynamicObject dynamicObject = entryEntity.addNew();
 | 
			
		||||
//            dynamicObject.set("","");
 | 
			
		||||
//            dynamicObject.set("","");
 | 
			
		||||
//            dynamicObject.set("","");
 | 
			
		||||
//            dynamicObject.set("","");
 | 
			
		||||
//            dynamicObject.set("","");
 | 
			
		||||
//            dynamicObject.set("","");
 | 
			
		||||
//            dynamicObject.set("","");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        this.getView().updateView("");
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue