/**
 *  柏美 施工合同申请js
 *  明细表自动添加5行 不允许增删 并校验付款比例是否等于100% 自动计算付款日期
 *  @author xuanran.wang
 */
// 明细表
const detailTable = "detail_2";
// 主表合同签订日期
const contractSignDateId = WfForm.convertFieldNameToId("htqdrq");
// 明细2付款比例字段
const detail2PayProportionId = WfForm.convertFieldNameToId("fkbl",detailTable);
// 明细2款项类型
const detail2PaymentTypeId = WfForm.convertFieldNameToId("kxlx",detailTable);
// 明细2前后字段
const detail2AroundId = WfForm.convertFieldNameToId("qh",detailTable);
// 明细2天数字段
const detail2DayId = WfForm.convertFieldNameToId("ts",detailTable);
// 明细2预计付款日期
const detail2ComPayDateId = WfForm.convertFieldNameToId("yjfkrq",detailTable);
// 对应日期
const detail2TempDateField = WfForm.convertFieldNameToId("dyrq", detailTable);
// 需要计算的款项类型集合
const computeDatePayType = ['0'];
const DETAIL_MAX_SIZE = 5;
const readOnlyArr = ['0'];
// 款项类型预计对应日期取值
const paymentTypeGetValue = {
    0: (index)=>{
        WfForm.changeFieldValue(`${detail2TempDateField}_${index}`,{value : WfForm.getFieldValue(contractSignDateId)});
    }
}
jQuery().ready(function(){
    let configObj = {
        'detailPaymentTypeId':detail2PaymentTypeId,
        'detailTempDateId': detail2TempDateField,
        'around': detail2AroundId,
        'detailComPayDateId': detail2ComPayDateId,
        'dayId': detail2DayId,
        'computeDatePayType': computeDatePayType,
        'paymentTypeGetValue': paymentTypeGetValue,
        'readOnlyArr': readOnlyArr
    }
    let rowArr = WfForm.getDetailAllRowIndexStr(detailTable).split(",");

    if(rowArr.length !== DETAIL_MAX_SIZE){
        // 默认增加5条
        for (let i = 0; i < 5; i++) {
            WfForm.addDetailRow(detailTable,{ [detail2PaymentTypeId]: {value: i}});
        }
    }

    addRowBack(2, configObj);

    changeDetailFieldReadOnly(detailTable, detail2ComPayDateId, detail2PaymentTypeId, readOnlyArr)

    // 主表字段发生变化
    mainFieldChangeDetailCom(contractSignDateId, detailTable, configObj);

    // 明细的款项类型字段变化绑定
    detailFieldChangeDetailCom(`${detail2PaymentTypeId},${detail2AroundId},${detail2DayId}`, configObj);

    submitCallback(detailTable, detail2PayProportionId);

});