package cn.superdesk.uniorder.common.enums.thirdpart.szhtxx.electronicInvoice;

import java.util.EnumSet;
import java.util.HashMap;
import java.util.Map;

/**
 * @Description: 开具理由^_^规模纳税人(含转登记)、代开、委托代开企业，自 2022-01-01 至 2022-12-31 起 3%、1%、0.5%税率降为免税，此期间依旧开具 3% 或 1% 税率的，需要传入开具理由。; 引用 enum SzhtxxElectronicInvoiceFptxxInvReason
 * 0:无理由;
 * 1:政策出台前发生纳税义务;
 * 2:前期已开具相应征收率发票，发生销售折让、中止或者退回等情形需要开具红字发票，或者开票有误需要重新开具;
 * 3:因为实际经营业务需要，放弃享受免征增值税政策。
 * @Author: linjinyu
 * @CreateDate: 2022/3/23 11:36 上午
 * @UpdateUser: linjinyu
 * @UpdateDate: 2022/3/23 11:36 上午
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
public enum SzhtxxElectronicInvoiceFptxxInvReasonEnum {


    无理由(0, "无理由"),
    政策出台前发生纳税义务(1, "政策出台前发生纳税义务"),
    前期已开具相应征收率发票_发生销售折让_中止或者退回等情形需要开具红字发票_或者开票有误需要重新开具(2, "前期已开具相应征收率发票，发生销售折让、中止或者退回等情形需要开具红字发票，或者开票有误需要重新开具"),
    因为实际经营业务需要_放弃享受免征增值税政策(3, "因为实际经营业务需要，放弃享受免征增值税政策"),
    ;

    private Integer key;
    private String  desc;

    SzhtxxElectronicInvoiceFptxxInvReasonEnum(Integer key, String desc) {
        this.key = key;
        this.desc = desc;
    }

    public Integer getKey() {
        return key;
    }

    public String getDesc() {
        return desc;
    }

    public static String getDesc(Integer key) {
        for (SzhtxxElectronicInvoiceFptxxInvReasonEnum c : SzhtxxElectronicInvoiceFptxxInvReasonEnum.values()) {
            if (c.key.equals(key)) {
                return c.getDesc();
            }
        }
        return null;
    }

    private static final Map<Integer, SzhtxxElectronicInvoiceFptxxInvReasonEnum> LOOKUP = new HashMap<>();

    static {
        for (SzhtxxElectronicInvoiceFptxxInvReasonEnum s : EnumSet.allOf(SzhtxxElectronicInvoiceFptxxInvReasonEnum.class)) {
            LOOKUP.put(s.getKey(), s);
        }
    }

    public static SzhtxxElectronicInvoiceFptxxInvReasonEnum get(Integer key) {
        return LOOKUP.get(key);
    }
}
