package cn.superdesk.uniorder.common.enums.accounting.customer;

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

/**
 * @Description: 对账单 对账状态 审核向
 * @Author: linjinyu
 * @CreateDate: 7/10/20 3:47 PM
 * @UpdateUser: linjinyu
 * @UpdateDate: 7/10/20 3:47 PM
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
public enum AccountingOrderCustomerAccountingStatusEnum {


//	对账单(结算单)状态,-1-已取消;0-未确认;1-已确认;2-已拒绝;3-待提交;
//
//	建单后 Init  3,待提交
//	动作 重新对账 取消对账 optAccountingCustomerActionCancel
//	|---- -1-已取消
//	动作 提交对账 optAccountingCustomerActionSubmit 只是修改对账单 对账状态而已 3-待提交 -> 0-未确认
//	0-未确认
//	|---- 动作 确认对账 optAccountingCustomerActionConfirm 只是修改对账单 对账状态而已 0-未确认 -> 1-已确认
//	|----|---- 1-已确认
//	|---- 动作 拒绝对账 optAccountingCustomerActionRefuse 把关联的原始订单数据 修正为 未对账 , 再是把这个对账单 对账状态 修正为 2-已拒绝
//	|----|---- 2-已拒绝

//	之前是两个人去处理这个事的,但后没有了

	已取消(-1, "已取消"),
	未确认(0, "未确认"), // 已提交
	已确认(1, "已确认"),
	已拒绝(2, "已拒绝"),
	待提交(3, "待提交"), // 相当于是个草稿 创建对账单 初始 状态
	;

	private Integer key;
	private String  desc;

	AccountingOrderCustomerAccountingStatusEnum(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 (AccountingOrderCustomerAccountingStatusEnum c : AccountingOrderCustomerAccountingStatusEnum.values()) {
			if (c.key.equals(key)) {
				return c.getDesc();
			}
		}
		return null;
	}

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

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

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

}
