package shkd.repc.recon.formplugin;

import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.form.events.AfterDoOperationEventArgs;
import kd.bos.form.events.ClosedCallBackEvent;
import kd.sdk.plugin.Plugin;

import java.math.BigDecimal;
import java.util.EventObject;

/**
 * 费用登记和付款申请的发票分录合计行表单插件
 */
public class SumInvoiceEntryPlugin extends AbstractBillPlugIn implements Plugin {

    @Override
    public void afterBindData(EventObject e) {
        super.afterBindData(e);
        updateAmt();
    }

    private void updateAmt(){
        DynamicObject dataEntity = this.getModel().getDataEntity();
        DynamicObjectCollection invoiceentry = dataEntity.getDynamicObjectCollection("invoiceentry");
        if (invoiceentry!=null) {
            for (int i = 0; i < invoiceentry.size(); i++) {
                DynamicObject dynamicObject = invoiceentry.get(i);
                DynamicObject inventry_invoicebill = dynamicObject.getDynamicObject("inventry_invoicebill");
                BigDecimal notaxamt = inventry_invoicebill.getBigDecimal("notaxamt");
                BigDecimal tax = inventry_invoicebill.getBigDecimal("tax");
                BigDecimal amount = inventry_invoicebill.getBigDecimal("amount");
                dynamicObject.set("qeug_notaxamt",notaxamt);
                dynamicObject.set("qeug_tax",tax);
                dynamicObject.set("qeug_amount",amount);
            }
            this.getView().updateView("invoiceentry");
        }
    }

    @Override
    public void afterDoOperation(AfterDoOperationEventArgs args) {
        super.afterDoOperation(args);
        updateAmt();
    }

    @Override
    public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
        super.closedCallBack(closedCallBackEvent);
        updateAmt();
    }
}