package cokr.xit.fims.levy;

import java.util.ArrayList;
import java.util.List;
import java.util.function.BiConsumer;

import cokr.xit.foundation.AbstractEntity;
import lombok.Getter;
import lombok.Setter;

/**부과 대장
 * @author JoJH
 */
@Getter
@Setter
public class Levy extends AbstractEntity {
	/** 부과 ID */
	private String levyId;
	/** 시군구 코드 */
	private String sggCd;
	/** 업무 구분 코드 */
	private String taskSeCd;
	/** 단속 ID */
	private String crdnId;
	/** 기관 코드 */
	private String instCd;
	/** 부서 코드 */
	private String deptCd;
	/** 회계 연도 */
	private String fyr;
	/** 회계 구분 코드 */
	private String acntgSeCd;
	/** 세목 코드 */
	private String txitmCd;
	/** 운영 항목 코드 */
	private String operItemCd;
	/** 특별회계 사업 코드 */
	private String spclBizCd;
	/** 부과 번호 */
	private String levyNo;
	/** 분납 일련번호 */
	private String ispySn;
	/** 부과 구분 코드 */
	private String levySeCd;
	/** 통합 구분 코드 */
	private String untySeCd;
	/** 감경 구분 코드 */
	private String rdctSeCd;
	/** 분납 구분 명 */
	private String ispySeNm;
	/** 부과 일자 */
	private String levyYmd;
	/** 최초 납기 일자 */
	private String frstDudtYmd;
	/** 납기 일자 */
	private String dudtYmd;
	/** 과태료 금액 */
	private Integer ffnlgAmt;
	/** 부과 본세 */
	private Integer levyPcptax;
	/** 부과 가산금 */
	private Integer levyAdamt;
	/** 분납 이자 */
	private Integer ispyInt;
	/** 수납 본세 */
	private Integer rcvmtPcptax;
	/** 수납 가산금 */
	private Integer rcvmtAdamt;
	/** 감액 본세 */
	private Integer rdamtPcptax;
	/** 감액 가산금 */
	private Integer rdamtAdamt;
	/** 최종 금액 */
	private Integer lastAmt;
	/** 납기 후 일자 */
    private String dudtAftrYmd;
	/** 납기 후 금액 */
	private Integer dudtAftrAmt;
	/** 과세 물건 */
	private String txtnThing;
	/** 관리 아이템1 */
	private String mngItem1;
	/** 관리 아이템2 */
	private String mngItem2;
	/** 관리 아이템3 */
	private String mngItem3;
	/** 관리 아이템4 */
	private String mngItem4;
	/** 관리 아이템5 */
	private String mngItem5;
	/** 관리 아이템6 */
	private String mngItem6;
	/** 체납 사유 코드 */
	private String npmntRsnCd;
	/** 수납 일자 */
	private String rcvmtYmd;
	/** 납부 방법 구분 코드 */
	private String payMthdSeCd;
	/** 압류 일자 */
	private String szrYmd;
	/** 압류 물건 */
	private String szrThing;
	/** 대체 압류 자동차등록번호 */
	private String rpmSzrVhrno;
	/** 압류 해제 일자 */
	private String szrRmvYmd;
	/** 압류 해제 사유 */
	private String szrRmvRsn;
	/** 기타 내용 */
	private String etcCn;
	/** 전자납부번호 */
	private String epayno;
	/** 은행 명 */
	private String bankNm;
	/** 가상 계좌번호 */
	private String vrActno;
	/** 은행 명 2 */
	private String bankNm2;
	/** 가상 계좌번호 2 */
	private String vrActno2;
	/** 은행 명 3 */
	private String bankNm3;
	/** 가상 계좌번호 3 */
	private String vrActno3;
	/** 은행 명 4 */
	private String bankNm4;
	/** 가상 계좌번호 4 */
	private String vrActno4;
	/** 은행 명 5 */
	private String bankNm5;
	/** 가상 계좌번호 5 */
	private String vrActno5;
	/** 은행 명 6 */
	private String bankNm6;
	/** 가상 계좌번호 6 */
	private String vrActno6;
	/** 은행 명 7 */
	private String bankNm7;
	/** 가상 계좌번호 7 */
	private String vrActno7;
	/** 은행 명 8 */
	private String bankNm8;
	/** 가상 계좌번호 8 */
	private String vrActno8;
	/** 은행 명 9 */
	private String bankNm9;
	/** 가상 계좌번호 9 */
	private String vrActno9;
	/** 은행 명 10 */
	private String bankNm10;
	/** 가상 계좌번호 10 */
	private String vrActno10;
	/** 은행 명 11 */
	private String bankNm11;
	/** 가상 계좌번호 11 */
	private String vrActno11;
	/** 은행 명 12 */
	private String bankNm12;
	/** 가상 계좌번호 12 */
	private String vrActno12;
	/** 은행 명 13 */
	private String bankNm13;
	/** 가상 계좌번호 13 */
	private String vrActno13;
	/** 은행 명 14 */
	private String bankNm14;
	/** 가상 계좌번호 14 */
	private String vrActno14;
	/** 은행 명 15 */
	private String bankNm15;
	/** 가상 계좌번호 15 */
	private String vrActno15;
	/** 은행 명 16 */
	private String bankNm16;
	/** 가상 계좌번호 16 */
	private String vrActno16;
	/** 은행 명 17 */
	private String bankNm17;
	/** 가상 계좌번호 17 */
	private String vrActno17;
	/** 은행 명 18 */
	private String bankNm18;
	/** 가상 계좌번호 18 */
	private String vrActno18;
	/** 은행 명 19 */
	private String bankNm19;
	/** 가상 계좌번호 19 */
	private String vrActno19;
	/** 은행 명 20 */
	private String bankNm20;
	/** 가상 계좌번호 20 */
	private String vrActno20;
	/** 세외수입 부과 키 */
	private String nxrpLevyKey;
	/** 삭제 여부 */
	private String delYn;
	/** 삭제 사유 */
	private String delRsn;
	/** 단속 Ids */
	private String[] crdnIds;

	public List<BiConsumer<String, String>> bankAccountSetters() {
		ArrayList<BiConsumer<String, String>> setters = new ArrayList<>();
		setters.add((bankNm, accountNo) -> {setBankNm(bankNm); setVrActno(accountNo);});
		setters.add((bankNm, accountNo) -> {setBankNm2(bankNm); setVrActno2(accountNo);});
		setters.add((bankNm, accountNo) -> {setBankNm3(bankNm); setVrActno3(accountNo);});
		setters.add((bankNm, accountNo) -> {setBankNm4(bankNm); setVrActno4(accountNo);});
		setters.add((bankNm, accountNo) -> {setBankNm5(bankNm); setVrActno5(accountNo);});
		setters.add((bankNm, accountNo) -> {setBankNm6(bankNm); setVrActno6(accountNo);});
		setters.add((bankNm, accountNo) -> {setBankNm7(bankNm); setVrActno7(accountNo);});
		setters.add((bankNm, accountNo) -> {setBankNm8(bankNm); setVrActno8(accountNo);});
		setters.add((bankNm, accountNo) -> {setBankNm9(bankNm); setVrActno9(accountNo);});
		setters.add((bankNm, accountNo) -> {setBankNm10(bankNm); setVrActno10(accountNo);});
		setters.add((bankNm, accountNo) -> {setBankNm11(bankNm); setVrActno11(accountNo);});
		setters.add((bankNm, accountNo) -> {setBankNm12(bankNm); setVrActno12(accountNo);});
		setters.add((bankNm, accountNo) -> {setBankNm13(bankNm); setVrActno13(accountNo);});
		setters.add((bankNm, accountNo) -> {setBankNm14(bankNm); setVrActno14(accountNo);});
		setters.add((bankNm, accountNo) -> {setBankNm15(bankNm); setVrActno15(accountNo);});
		setters.add((bankNm, accountNo) -> {setBankNm16(bankNm); setVrActno16(accountNo);});
		setters.add((bankNm, accountNo) -> {setBankNm17(bankNm); setVrActno17(accountNo);});
		setters.add((bankNm, accountNo) -> {setBankNm18(bankNm); setVrActno18(accountNo);});
		setters.add((bankNm, accountNo) -> {setBankNm19(bankNm); setVrActno19(accountNo);});
		setters.add((bankNm, accountNo) -> {setBankNm20(bankNm); setVrActno20(accountNo);});
		return setters;
	}
}