package com.uas.platform.b2b.mobile.enumeration;

public enum MobileStatus {

	/**
	 * {@code 1 请假单}
	 */
	VACATION(1, "请假单"),
	/**
	 * {@code 2 出差单}
	 */
	FEEPLEASE(2, "出差单"),
	/**
	 * {@code 3 加班单}
	 */
	WORKOVERTIME(3, "加班单"),
	/**
	 * {@code 4 工作日报}
	 */
	WORKDAILY(4, "工作日报"),
	/**
	 * {@code 5 申诉单}
	 */
	SIGNAPP(5, "申诉单"),
	/**
	 * {@code 101 在录入}
	 */
	ENTERING(101, "在录入"),

	/**
	 * {@code 102 已提交}
	 */
	COMMITED(102, "已提交"),

	/**
	 * {@code 103 已审核}
	 */
	AUDITED(103, "已审核"),

	/**
	 * {@code 201 待审批}
	 */
	UNAUDIT(201, "待审核"),

	/**
	 * {@code 202 同意}
	 */
	AGREED(202, "同意"),

	/**
	 * {@code 203已拒绝}
	 * 
	 * @param value
	 * @param phrase
	 */
	NOTAGREED(203, "不同意"),

	/**
	 * {@code 204 进行中}
	 * 
	 * @param value
	 * @param phrase
	 */
	start(204, "进行中"),

	/**
	 * {@code 205 待确认}
	 */
	unconfirmed(205, "待确认"),

	/**
	 * {@code 206 已完成}
	 */
	done(206, "已完成"),

	/**
	 * {@code 207 签退}
	 */
	CHECKOUT(207, "签退");

	private MobileStatus(int value, String phrase) {
		this.value = value;
		this.phrase = phrase;
	}

	private final int value;
	private final String phrase;

	public int getValue() {
		return this.value;
	}

	public String getPhrase() {
		return this.phrase;
	}

	/**
	 * @param statusCode
	 *            状态的编码
	 * @return 状态
	 * @throws IllegalArgumentException
	 *             如果statusCode不存在的话
	 */
	public static MobileStatus valueOf(int statusCode) {
		for (MobileStatus status : values()) {
			if (status.value == statusCode) {
				return status;
			}
		}
		throw new IllegalArgumentException("没有与编号 [" + statusCode + "]匹配的状态");
	}

	/**
	 * 返回状态的编号
	 */
	@Override
	public String toString() {
		return Integer.toString(value);
	}

}