package com.dxhy.common.enums;

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

    /**
     * 专票代码
     */
    ZP("10100","01", 1),

    /**
     * 货物运输专票
     */
    HWYSZP("22000","02", 22),

    /**
     * 机动车代码
     */
    JDC("10104","03", 2),
    /**
     * 普票代码
     */
    PP("10101","04", 3),
    /**
     * 电子票代码
     */
    DZP("10102","10", 4),
    /**
     * 卷式发票代码
     */
    JSP("10103","11", 5),
    /**
     * 通行费发票代码
     */
    TXF("32000","14", 6),

    /**
     * 二手车
     */
    ESC("10105","15", 7),

    /**
     * 电子专票
     */
    DZZP("33000","08", 8),

//    HGJKS("17", 9),

    /**
     * 全电专票
     */
    QDZP("10107","31",10),

    /**
     * 全电普票
     */
    QDPP("10108","32",11),

    /**
     * 定额发票
     */
    DEFP("10200","95",12),

    /**
     * 机打发票
     */
    JDFP("10400","97",13),

    /**
     * 出租车发票
     */
    CZCFP("10500","91",14),

    /**
     * 火车票
     */
    HCP("10503","92",15),

    /**
     * 客运汽车票
     */
    KYQCP("10505","89",16),

    /**
     * 航空运输电子客票行程单
     */
    JPXCD("10506","90",17),

    /**
     * 过路费发票
     */
    GLF("10507","101",18),

    /**
     * 船票
     */
    CP("10508","88",19),

    /**
     * 国际小票
     */
    GJXP("20100","99",20),

    /**
     * 可报销其他发票
     */
    QTFP("10900","00",21);

//    /**
//     * 纸质专票
//     */
//    ZZZZ("185",12),
//    /**
//     * 纸质普票
//     */
//    ZZZP("186",13);


    private final String[] FPLXMC = {"增值税专用发票", "机动车销售统一发票", "增值税普通发票", "增值税电子普通发票", "增值税普通发票（卷票）", "增值税电子普通发票（通行费）",
        "二手车销售统一发票", "增值税电子专用发票", "海关缴款书","电子发票（增值税专用发票）","电子发票（普通发票）"};

    private String snFplxDm;
    private String fplxDm;
    private int index;

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

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

    public static String getFplxDm(String snFplxDm) {
        for (SNFplxEnum fplx : SNFplxEnum.values()) {
            if (fplx.getSnFplxDm() == snFplxDm) {
                return fplx.fplxDm;
            }
        }
        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 String getSnFplxDm() {
        return snFplxDm;
    }

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

    public void setSnFplxDm(String snFplxDm) {
        this.snFplxDm = snFplxDm;
    }

    public int getIndex() {
        return index;
    }

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