package com.brilliance.isc.common.register.liaall.common;

import com.brilliance.isc.common.liaall.service.LiaallService;
import com.brilliance.isc.common.liaall.vo.LiaallVo;
import com.brilliance.isc.common.register.liaall.ILiaallRegister;
import com.brilliance.isc.common.vo.SimpleModuleVo;
import com.brilliance.isc.vo.component.dftcre.DftcreVo;
import com.brilliance.isc.vo.model.DfdgrpVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class DftcreLiaallRegister implements ILiaallRegister {

    @Autowired
    private LiaallService liaallService;

    @Override
    public void liaallSetTransaction(LiaallVo liaallVo) {
        DftcreVo dftcreVo = liaallVo.getRec().getDftcreVo();
        if (dftcreVo != null && "X".equalsIgnoreCase(dftcreVo.getDfflag())) {
            String trntyp = dftcreVo.getTrntyp();
            if ("C".equalsIgnoreCase(trntyp) || "D".equalsIgnoreCase(trntyp)) {
                DfdgrpVo dfdgrpVo = dftcreVo.getDfdgrp();
                SimpleModuleVo linkModule = SimpleModuleVo.buildModule(dfdgrpVo.getRec().getInr(), "DFD");
                liaallService.liaallSetCbeAmount("APL", 3, dfdgrpVo.getCbs().getMax().getCur(), dfdgrpVo.getCbs().getMax().getAmt(), "DFU", linkModule);
                // set maturity date to engagement
                liaallService.liaallSetDefaultMaturity( "DFU", linkModule, dfdgrpVo.getRec().getMatdat() );
                liaallService.liaallSetValdat(dfdgrpVo.getRec().getStttendat(), "DFU");
            }
        }
    }
}
