package pwc.taxtech.atms.constant;

import java.io.File;
import java.util.UUID;

public final class Constant {
    public static final String Comma = ",";
    public static final String Other = "其他";
    public static final String ALL = "ALL";
    public static final int WholeYear = -1;

    /*     ----------------------------- kevin insert -----------------*/
    public static String  ebitRate = "1%";
        /*-----------------------------------------------------------------*/
    public static final int CREATE_DB_SUCCESS = 1;
    public static final int CREATE_DB_EXISTS = 0;
    public static final int CREATE_DB_FAILED = -1;

    public static final String DB_SCRIPT_FOLDER = "RuntimeDbScripts";
    public static final String DB_SCRIPT_SQL = "CreateProjectDB.sql";
    public static final String DB_MYSQL_TYPE = "MYSQL";
    public static final String DB_MYSQL_PATH = DB_SCRIPT_FOLDER + File.separator + DB_MYSQL_TYPE + File.separator + DB_SCRIPT_SQL;

    public static final boolean ACTIVE = true;

    public static final String DEFAULT_INDUSTRY_Id = "0";

    public static final UUID USER_Id_FOR_UPLOAD = UUID.fromString("64D39CF7-467E-4414-B334-AA4B55A4E2B3");

    public static final String UPLOAD_FOLDER_NAME = "Upload";
    public static final String CURRENT_USER_HOME = "~";
    public static final String CURRENT_USER_UPLOAD_FOLDER = CURRENT_USER_HOME + File.separator + UPLOAD_FOLDER_NAME;
    public static final String CURRENT_IMAGE_PATH = CURRENT_USER_HOME + File.separator + "Resource" + File.separator + "Images";
    public static final String IMAGE_PATH_INFORMATION = CURRENT_IMAGE_PATH + File.separator + "information.png";
    public static final String IMAGE_PATH_ERROR = CURRENT_IMAGE_PATH + File.separator + "error.png";
    public static final String IMAGE_PATH_SUCCESS = CURRENT_IMAGE_PATH + File.separator + "success.png";
    public static final String IMAGE_PATH_WARN = CURRENT_IMAGE_PATH + File.separator + "warning1.png";

    public static final String FILE_NAME = "filename";
    public static final String TEMP_FILE_NAME = "tempFileName";
    public static final String vatTemplateUrl = "vat_excel_template";


    public static final String citTemplateUrl = "cit_excel_template";
    public static final boolean DEFAULT_RESULT = true;

    public static final int FIRST_OR_DEFAULT = 0;

    public static final int HEADER_ROW_INDEX = 0;
    public static final boolean DEFAULT_HAS_HEADER = true;

    public static final String IMAGE_FORMART_ = "png";
    public static final String EMPTY = "";
    public static final String DateTimeFormate = "%d年%d月";

    public static final String INPUT_RZJG_SUCCESS="1";
    public static final String INPUT_RZJG_FAILED="2";

    public static final String INPUT_RZZT_NOT_BEGIN="0";
    public static final String INPUT_RZZT_BEGINNING="1";
    public static final String INPUT_RZZT_OVER="2";

    public static final String OUTPUT_KPZT_NO="0";
    public static final String OUTPUT_KPZT_YES="2";

    public static class HlFpzt{
        public static final String ZC = "0"; //正常
        public static final String ZF = "1"; //作废
        public static final String HC = "2"; //红冲(正常)
        public static final String SK = "3"; //失控(作废)
        public static final String YC = "4"; //异常(作废)
        public static final String TP = "6"; //退票
    }

    public static final String APPROVAL_COMMITTED="committed";
    public static final String APPROVAL_AGREED="agreed";
    public static final String APPROVAL_DISAGREED="disagreed";

    public static final String ASSIGNEE_MANAGER="manager";
    public static final String ASSIGNEE_TAX_BP="tax_bp";
    public static final String ASSIGNEE_COMPLIANCE_IA="compliance_ia";
    public static final String ASSIGNEE_COMPLIANCE_CHIEF ="compliance_chief";
    public static final String ASSIGNEE_ACCOUNTANT="accountant";
    //中文角色名
    public static final String ROLE_ACCOUNTANT="会计";
    public static final String ROLE_COMPLIANCE_CHIEF="合规负责人";
    public static final String ROLE_TAX_BP="税务BP";
    public static final String ROLE_COMPLIANCE_IA="合规IA";

    public static final String[] APPROVAL_ROLEAll={
            ROLE_ACCOUNTANT,
            ROLE_COMPLIANCE_CHIEF,
            ROLE_TAX_BP,
            ROLE_COMPLIANCE_IA};
    public static final String[] APPROVAL_ROLE2={
            ROLE_TAX_BP,
            ROLE_COMPLIANCE_IA};

    public static class DataSourceName {
        public static final String KeyValueDataSource = "KeyValueDataSource";
        public static final String InputInvoiceDataSource = "IncomeDataSource";
        public static final String InputDetailInvoiceDataSource = "IncomeDetailDataSource";
        public static final String OutputInvoiceDataSource = "OutputInvoiceDataSource";
        public static final String VoucherDataSource = "VoucherDataSource";
        public static final String ReportDataSource = "ReportDataSource";
        public static final String ConditionDataSource = "ConditionDataSource";
        public static final String MinConditionDataSource = "MinConditionDataSource";
        public static final String MaxConditionDataSource = "MaxConditionDataSource";
        public static final String SAPDataSource = "SAPDataSource";
        public static final String LandSellDataSource = "LandSellDataSource";
        public static final String UnbilledDataSource = "UnbilledDataSource";
        public static final String AssetListDataSource = "AssetListDataSource";
    }

    public static class IsDefault {
        public static final short Yes = 1;
        public static final short No = 0;
    }

    public static class InputInvoiceCertificationResult {
        public static String CheckPass = "勾选认证";
        public static String ScanPass = "扫描认证";
        public static String NotPass = "未认证";
    }

    public static class ReportBuildInStringFormat {
        public static final String TimeInterval = "税款所属时间: 自%d年%d月%d日至%d年%d月%d日";
        public static final String FillForm = "填表日期: %d年%d月%d日";
        public static final String FillFormStr = "填表日期: %s年%s月%s日";
        public static final String TaxPayer = "纳税人名称: %s";
    }

    /**
     * 报表替换关键字
     */
    public static class ReplaceKeyword {
        public static final String KEY_IN = "${KeyIn}"; //手工数据源
    }

    /**
     * SimpleDateFormat
     */
    public static class DateFormat {
        public static final String DEFAULT = "yyyy-MM-dd";
        public static final String YEAR_MONTH = "yyyy-MM";
        public static final String YYYYMM = "yyyyMM";
        public static final String YYYYMMDD = "yyyyMMdd";
        public static final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
    }

    public static String DECIMAL_FORMAT = "#,##0.00";
    public static String ZERO_STR = "0";
    public static final String DEFAULT_END_DATE = "9999-12";


    public static class ReportDataValidateLog{

          private String  segment3  = null;
          private String segment5 = null;
          private String segment6 = null;
          private static boolean status  = true;
          public  String  getResult(boolean status){

              if(status){
                  return  "校验结果失败: 科目代码: " + segment3 + ";利润中心:" +  segment5 + "; 产品编号: " + segment6;
              }

              return  "校验结果成功: 科目代码: " + segment3 + ";利润中心:" +  segment5 + "; 产品编号: " + segment6;
          }

        public  String  getResult(){
            return  getResult(status);
        }
        public ReportDataValidateLog(String segment3, String segment5, String segment6){
              this.segment3 = segment3;
              this.segment5 = segment5;
              this.segment6 = segment6;
        }
    }



}