package com.dxhy.common.enums;

/**
 * @author jiaohongyang
 */
public enum FplxEnum {

    /**
     * 增值税专用发票
     */
    ZP("01", 1),
    /**
     * 机动车销售统一发票
     */
    JDC("03", 2),
    /**
     * 增值税普通发票
     */
    PP("04", 3),
    /**
     * 增值税电子专用发票
     */
    DZZP("08", 8),
    /**
     * 增值税电子普通发票
     */
    DZP("10", 4),
    /**
     * 增值税普通发票（卷票）
     */
    JSP("11", 5),
    /**
     * 增值税电子普通发票（通行费）
     */
    TXF("14", 6),

    /**
     * 二手车销售统一发票
     */
    ESC("15", 7),

    /**
     * 海关缴款书
     */
    HGJKS("17", 9),
    /**
     * 电子发票（增值税专用发票）
     */
    QDZZP("31", 10),
    /**
     * 电子发票（普通发票）
     */
    QDPP("32", 11),
    /**
     * 机动车销售电子统一发票(税控票)
     */
    JDCDZ("183", 12),
    /**
     * 数电票（二手车统一销售发票）
     */
    ESCDZ("184", 13),
    /**
     * 纸质发票(增值税专用发票)
     */
    ZZDZ("185", 14),
    /**
     * 纸质发票(普通发票)
     */
    ZZPP("186", 15),
    /**
     * 纸质发票（机动车销售统一发票）
     */
    ZZJDC("187", 16),
    /**
     * 纸质发票（二手车销售统一发票）
     */
    ZZESC("188", 17),
    /**
     * 电子发票（航空运输客票电子行程单）
     */
    HKDZFP("161", 19),
    /**
     * 增加电子发票（铁路电子客票）
     */
    TLKP("283", 18),
    /**
     * 货物运输业增值税专用发票
     */
    HWYH("02", 20),
    /**
     * 数电票（机动车统一销售发票）
     */
    SDFP_JDCTYXSFP("383", 21);

    private final String[] FPLXMC = {"增值税专用发票", "机动车销售统一发票", "增值税普通发票", "增值税电子普通发票", "增值税普通发票（卷票）", "增值税电子普通发票（通行费）",
            "二手车销售统一发票", "增值税电子专用发票", "海关缴款书", "电子发票（增值税专用发票）", "电子发票（普通发票）", "机动车销售电子统一发票", "数电票（二手车销售统一发票）",
            "纸质发票(增值税专用发票)", "纸质发票(普通发票)", "纸质发票（机动车销售统一发票）", "纸质发票（二手车销售统一发票）", "增加电子发票（铁路电子客票）",
            "电子发票（航空运输客票电子行程单）", "货物运输业增值税专用发票", "数电票（机动车销售统一发票）"};

    private String fplxDm;
    private int index;

    FplxEnum(String fplxDm, int index) {
        this.fplxDm = fplxDm;
        this.index = index;
    }

    public String getFplxDm(int index) {
        for (FplxEnum fplx : FplxEnum.values()) {
            if (fplx.getIndex() == index) {
                return fplx.fplxDm;
            }
        }
        return null;
    }

    public static FplxEnum getFplxEnumByFplxdm(String fplxDm) {
        for (FplxEnum fplx : FplxEnum.values()) {
            if (fplx.getFplxDm().equals(fplxDm)) {
                return fplx;
            }
        }
        return null;
    }

    public String getFplxMc(int index) {
        int length = FPLXMC.length;
        if (index <= length) {
            return FPLXMC[index - 1];
        }
        return null;
    }

    public String getFplxDm() {
        return fplxDm;
    }

    public void setFplxDm(String fplxDm) {
        this.fplxDm = fplxDm;
    }

    public int getIndex() {
        return index;
    }

    public void setIndex(int index) {
        this.index = index;
    }
}
