package com.tax.file.utils;

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

public class NationDic {

    public static Map<String, String> dic = null;
    public static Map<String, String> incomeDic = null;
    public static Map<String, String> incomeUploadDic = null;
    public static String fileDisable = "文件已过期";

    static {
        dic = new HashMap<String, String>();
        dic.put("增值税专用发票", "01");
        dic.put("机动车销售统一发票", "03");
        dic.put("增值税普通发票（电子）", "10");
        dic.put("增值税普通发票", "04");
        dic.put("增值税专用发票（电子）", "08");
        dic.put("增值税普通发票（卷票）", "11");
        dic.put("道路通行费电子普通发票", "14");
        dic.put("二手车销售统一发票", "15");
        dic.put("海关缴款书", "17");
        dic.put("进项票", "1");
        dic.put("销项票", "2");
        dic.put("正在处理", "2");
        dic.put("待处理", "2");
        dic.put("处理完成", "1");
        dic.put("不存在符合条件的发票", "1");


        incomeUploadDic = new HashMap<>();
        incomeUploadDic.put("02", "文件为空，请完善内容后再上传！");
        incomeUploadDic.put("03", "文件类型错误，请将文件另存为Excel 97-2003工作簿！");
        incomeUploadDic.put("21", "上传Excel文件首行不符合模板格式，请检查上传文件是否有空行或者空列，且确保至少保留‘发票代码’、‘发票号码’、‘开票日期’、‘是否入账’、‘入账所属期’字段，然后重新尝试！");
        incomeUploadDic.put("22", "上传Excel文件 第$行，内容不应为空，更新文件然后重新尝试！");
        incomeUploadDic.put("23", "上传Excel文件 第$行，发票代码不合法，增值税专用发票、机动车销售统一发票不能入账，请修改，更新文件然后重新尝试！");
        incomeUploadDic.put("24", "上传Excel文件 第$行，发票代码应为10位或12位数字，请修改，更新文件然后重新尝试！");
        incomeUploadDic.put("25", "上传Excel文件 第$行，发票号码应为8位数字，请修改，更新文件然后重新尝试！");
        incomeUploadDic.put("26", "上传Excel文件 第$行，开票日期格式错误，请修改为yyyy-mm-dd格式，更新文件然后重新尝试！");
        incomeUploadDic.put("27", "上传Excel文件 第$行，是否入账不应为“是”或“否”以外的值，请修改，更新文件然后重新尝试！");
        incomeUploadDic.put("28", "上传Excel文件 第$行，入账所属期格式错误，请修改为yyyyMM格式，更新文件然后重新尝试！");
        incomeUploadDic.put("29", "上传Excel文件 第$行，发票代码不合法不是可入账发票，请修改，更新文件然后重新尝试！");
        incomeUploadDic.put("30", "上传Excel文件 第$行，发票代码、发票号码重复，请修改，更新文件然后重新尝试！");
        incomeUploadDic.put("31", "上传Excel文件 第$行，入账月份大于当前自然月，请修改，更新文件然后重新尝试！");
        incomeUploadDic.put("32", "上传Excel文件 第$行，开票月份大于入账月份，请修改，更新文件然后重新尝试！");

        incomeDic = new HashMap<>();
        incomeDic.put("处理成功", "1");
        incomeDic.put("待处理", "2");
        incomeDic.put("未入账", "0");
        incomeDic.put("已入账", "1");
        incomeDic.put("入账", "1");
        incomeDic.put("撤销入账", "2");
    }

    public static String divideFlag = ",";
    public static int incomeDivide = 9;

    //进项
    public static String INVTYPE_INCOME = "1";
    //销项
    public static String INVTYPE_SALE = "2";

    //申请状态
    //未申请
    public static String APPLY_STATUS_NO = "0";
    //已申请
    public static String APPLY_STATUS_YES = "1";
    //申请失败
    public static String APPLY_STATUS_FAIL = "2";

    public static String transfer(String key) {
        return dic.get(key);
    }

    public static String transfer(Map<String, String> localDic, String key) {
        return localDic.get(key);
    }

    public static String transferFileName(String str) {
        int startIndex = str.indexOf("loadfp('");
        int endIndex = str.indexOf("');");
        return str.substring(startIndex + 8, endIndex);
    }

    public static String transferFileId(String str) {
        int startIndex = str.indexOf("xzrzmx('");
        int endIndex = str.indexOf("');");
        return str.substring(startIndex + 8, endIndex);
    }

    public static String[] transferInvType(String incomeInvType, String saleInvType, String invSpec) {
        String[] invTypes = new String[2];
        invTypes[0] = incomeInvType;
        invTypes[1] = saleInvType;

        if ("1".equals(invSpec)) {
            invTypes[1] = "";
        } else if ("2".equals(invSpec)) {
            invTypes[0] = "";
        }
        return invTypes;
    }

}