package com.yifu.cloud.plus.v1.yifu.salary.util;

import java.math.BigDecimal;

public class SalaryConstants {
     //cellValueBig.setScale(2, BigDecimal.ROUND_HALF_UP); //四舍五入
     //在使用BigDecmial进行比较的时候不能使用equals与==比较了，需要使用compareTo()进行比较
     //if （ temp1.compareTo(temp2)==0）
     //结果是true比较大小可以用 temp2.compareTo(temp2) 返回值 -1 小于 0 等于 1 大于
     //例子：if （yearFinal != null && yearFinal.compareTo(SalaryConstants.B_ZERO) == SalaryConstants.MORE_THAN ）

     //加法 +	bigDecimal1.add(bigDecimal2)
     //减法 -	bigDecimal1.subtract(bigDecimal2)
     //乘法 x	bigDecimal1.multiply(bigDecimal2)
     //除法 /	bigDecimal1.divide(bigDecimal2)

     // 项目报销的 数据来源：0企业微信；1固资划转
     public static final Integer[] DATA_SOURCE = {0,1};

     // 保存类型：0:保存；1不保存
     public static final Integer[] SAVE_TYPE = {0,1};

     //应发工资、年终奖、薪资扣税、年终奖扣税、个人社保扣缴、代扣个人社保、个人公积金扣缴、代扣个人公积金、年个税个人代扣、企业年金、专项扣除、减除费用、实发工资
     public static final String[] ACCOUNT_SORT = {"应发工资", "年终奖", "个税", "年终奖单独扣税", "个人社保", "代扣个人社保"
             , "个人公积金", "代扣个人公积金", "免个税个人代扣", "企业（职业）年金", "累计专项扣除总额", "减除费用", "实发工资", "个人实发合计"};
     //通用身份证号长度
     public static final int idCardLength = 18;
     public static final String NON_TAX = "非扣税项";
     /*
      * @Description: 0待提交1待审核 3待发放4已发放5审核不通过6确认不通过7财务退回8：结算单调整待审核 9: 结算单调整待打印
      * @Author: hgw
      * @Date: 2019/10/10 14:55
      * @return:
      **/
     public static final Integer[] AUDIT_STATUS = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
     public static final String[] AUDIT_STATUS_STRING = {"待提交", "待审核", "-", "待发放", "已发放", "审核不通过", "确认不通过", "财务退回", "结算单调整待审核", "结算单调整待打印"};
     //发放失败-认领状态 0待认领1待出账2已发放3再次失败待认领
     public static final Integer[] LOST_STATUS = {0, 1, 2, 3};
     //申请垫付流程状态( 0：未申请 1已申请 2申请不通过 3申请已通过)
     public static final Integer[] ADVANCE_STATUS = {0, 1, 2, 3};

     //收入表（TIncomeTable）//来源类型（fromType）：（1工资结算单/2代理预估单/3商险结算单/4一次性业务结算单/5其他收入）/6工程工资结算单/7纯收入
     public static final Integer[] INCOME_TABLE_FROM_TYPE = {0, 1, 2, 3, 4, 5, 6, 7};

     //发放失败关联报账类型：0工资；1工程工资 2:非扣税项3暂停发 4自定义暂停发
     public static final Integer[] ACCOUNT_TYPE = {0, 1, 2, 3, 4};

     //开票关联结算单类型：0普通工资/1工程工资/2商险/3预估结算单/4一次性业务结算单
     public static final String[] INVOICE_TYPE = {"0", "1", "2", "3", "4"};
     //开票审核状态(0待提交/1待审核/2审核通过/3审核不通过)
     public static final String[] INVOICE_AUDITFLAG = {"0", "1", "2", "3"};
     //开票状态(0待开票/1已开票)
     public static final String[] INVOICE_STATUS = {"0", "1"};
     //附件类型：0工资；1工程工资；2暂停发；3自定义项暂停发；4薪资打印记录；5核准表打印记录;6：非扣税项 7发放失败 8自有员工附件 10换人换卡附件
     public static final Integer[] LINK_TYPE = {0, 1, 2, 3, 4, 5, 6, 7, 8, 10};
     //打印来源：0：工资结算单；1：工程结算单；2：暂停发发放记录；
     public static final Integer[] PRINT_FROM_TYPE = {0, 1, 2};
     //暂停发发放记录类型：0：工资暂停发；1：工程工资暂停发；2：普通自定义项暂停发 5：工程自定义项暂停发
     public static final Integer[] TYPE_OF_CHARGE = {0, 1, 2, 3, 4, 5};
     //工程文件类型：0三方协议；1委托付款函；2劳务费；3其他
     public static final Integer[] ENGINEER_TYPE = {0, 1, 2, 3};
     //发放状态 0: 未发放 1: 发放成功 2:发放失败
     public static final String[] DISTRIBUTION_FLAG = {"0", "1", "2"};
     //暂停发-发放状态 0: 待发放 1: 发放成功 2:发放失败;3：待审核4：审核退回 5失败待认领 6失败待发放 7失败已发放 8再次失败待认领9不发放
     public static final Integer[] CHARGE_STATUS = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
     public static final String[] SALARY_FORM_TYPE = {"工资", "绩效", "其他", "劳务费", "", "", "", "非扣税项"};
     //款项来源（0客户到款/1垫付）
     public static final Integer[] MONEY_FROM = {0, 1};
     //暂停发类型 0: 工资 1: 工程
     public static final Integer[] PAUSE_TYPE = {0, 1};
     //付款方式 0: 现金 1: 银行
     public static final Integer[] SALARY_PAY_TYPE = {0, 1};
     //所得税类型：0：工资；1：年终奖
     public static final Integer[] SALARY_TAX_TYPE = {0, 1};
     //小数位
     public static final int PLACES = 2;
     public static final int TAX_FEE_PLACES = 6;
     public static final BigDecimal B_ZERO = new BigDecimal("0");
     public static final BigDecimal B_ONE = new BigDecimal("1");
     public static final BigDecimal B_TWELVE = new BigDecimal("12");
     public static final BigDecimal B_ONEHUNDRED = new BigDecimal("100");
     //小于
     public static final int LESS_THAN = -1;
     //等于
     public static final int EQUAL = 0;
     //大于
     public static final int MORE_THAN = 1;
     //模板列必填
     public static final String IS_MUST = "1";
     public static final String EMP_NAME = "姓名";
     public static final String IF_NEW_EMPLOYEE = "是否新员工（默认否）";
     public static final String IS_NEW = "是";
     public static final String ID_NUMBER = "身份证号";
     public static final String CHECK_ID_NUMBER = "身份证号码";
     public static final String SALARY_GIVE_TIME = "暂停发";
     public static final String SOCIAL_CRATE_MONTH = "社保生成月份";
     public static final String SOCIAL_MONTH = "社保缴纳月份";
     public static final String FUND_CRATE_MONTH = "公积金生成月份";
     public static final String FUND_MONTH = "公积金缴纳月份";
     //结算主体-管理费项目
     public static final String MANAGE_SERVER_ITEM = "MANAGE_SERVER_ITEM";
     //结算主体-风险金项目
     public static final String RISK_SERVER_ITEM = "RISK_SERVER_ITEM";
     //暂停发
     public static final String SALARY_GIVE_TIME_VALUE = "1";
     //0：生成月；
     public static final String PRIORITY_ZERO = "0";
     //1：缴纳月
     public static final String PRIORITY_ONE = "1";
     //deleteFlag;  //0：未删除； 1：已删除
     public static final Integer NOT_DELETE = 0;
     //deleteFlag;  //0：未删除； 1：已删除
     public static final Integer DELETED = 1;
     //扣缴（社保、公积金）
     public static final String IS_DEDUCT_ONE = "1";
     //扣缴（社保、公积金）int
     public static final Integer IS_DEDUCT_ONE_INT = 1;
     //社保
     public static final Integer IS_SOCIAL_ZERO = 0;
     //公积金
     public static final Integer IS_FUND_ONE = 1;
     //正常扣缴社保
     public static final Integer NOT_IS_NO_SALARY_ZERO = 0;
     //无工资人员扣缴社保
     public static final Integer IS_NO_SALARY_ONE = 1;
     public static final String CASH = "现金";
     //工资发放方式-现金
     public static final String SALARY_STYLE_CASH = "0";
     //工资发放方式-银行
     public static final String SALARY_STYLE_BANK = "1";
     //工资发放方式-线下
     public static final Integer SALARY_STYLE_OFFLINE = 2;
     //发放方式 1: 银付 0.现金 2:线下
     public static final Integer[] CHARGE_TYPE = {0, 1, 2};

     public static final String COST_REDUCTION = "减除费用";
     //减除费用
     public static final String COST_REDUCTION_JAVA = "costReduction";
     //代扣个人社保
     public static final String WITHHOLIDING_PERSON_SOCIAL = "withholidingPersonSocial";
     //代扣个人公积金
     public static final String WITHHOLIDING_PERSON_FUND = "withholidingPersonFund";
     //代扣单位社保"
     public static final String WITHHOLIDING_UNIT_SOCIAL = "withholidingUnitSocial";
     //代扣单位公积金
     public static final String WITHHOLIDING_UNIT_FUND = "withholidingUnitFund";

     public static final String PERSONAL_SOCIAL = "个人社保";
     public static final String PERSONAL_FUND = "个人公积金";
     public static final String UNIT_SOCIAL = "单位社保";
     public static final String UNIT_FUND = "单位公积金";
     public static final String PERSONAL_DEBT = "个人社保、公积金欠款";
     public static final String PERSONAL_DEBT_JAVA = "personalDebt";
     // 工程工资的叫法
     public static final String ENG_SALARY_RELAY = "工资应发";
     public static final String RELAY_SALARY = "应发工资";
     //工资应发
     public static final String RELAY_SALARY_JAVA = "relaySalary";
     //个人社保
     public static final String PERSONAL_SOCIAL_JAVA = "personalSocial";
     //个人公积金
     public static final String PERSONAL_FUND_JAVA = "personalFund";
     //单位社保
     public static final String UNIT_SOCIAL_JAVA = "unitSocial";
     //单位公积金
     public static final String UNIT_FUND_JAVA = "unitFund";
     //商险
     public static final String TAKING_RISKS_JAVA = "takingRisks";
     //单位待补足——报账表，计算的是个人社保、公积金欠款——PERSONAL_DEBT_JAVA
     public static final String UNIT_SUPPLEMENT_JAVA = "unitSupplement";
     //个人待补足
     public static final String CURRENT_SUPPLY_JAVA = "currentSupply";
     //年终奖
     public static final String ANNUAL_BONUS_JAVA = "annualBonus";
     public static final String PRE_CURRENT_SUPPLY = "前次个人待补足";
     //前次个人待补足
     public static final String PRE_CURRENT_SUPPLY_JAVA = "preCurrentSupply";

     //专项扣除-专区
     public static final String SPECIAL_DEDU_MONEY_SUM = "累计专项扣除总额";
     //累计专项扣除总额
     public static final String SPECIAL_DEDU_MONEY_SUM_JAVA = "specialDeduMoney";
     public static final String SUM_CHILD_EDU_MONEY = "累计子女教育";
     //累计子女教育
     public static final String SUM_CHILD_EDU_MONEY_JAVA = "sumChildEduMoney";
     public static final String SUM_HOUSING_LOAN_MONEY = "累计住房贷款利息";
     //累计住房贷款利息
     public static final String SUM_HOUSING_LOAN_MONEY_JAVA = "sumHousingLoanMoney";
     public static final String SUM_HOUSING_RENT_MONEY = "累计住房租金";
     //累计住房租金
     public static final String SUM_HOUSING_RENT_MONEY_JAVA = "sumHousingRentMoney";
     public static final String SUM_SUPPORT_ELDERLY_MONEY = "累计赡养老人";
     //累计赡养老人
     public static final String SUM_SUPPORT_ELDERLY_MONEY_JAVA = "sumSupportElderlyMoney";
     public static final String SUM_CONTINUING_EDUCATION_MONEY = "累计继续教育";
     //累计继续教育
     public static final String SUM_CONTINUING_EDUCATION_MONEY_JAVA = "sumContinuingEducationMoney";

     //累计婴幼儿照护费用
     public static final String SUM_BABY_MONEY = "累计婴幼儿照护费用";
     public static final String SUM_BABY_MONEY_JAVA = "sumBabyMoney";

     public static final String ANNUAL_BONUS_TAX = "年终奖单独扣税";
     //年终奖扣税
     public static final String ANNUAL_BONUS_TAX_JAVA = "annualBonusTax";
     //薪资扣税
     public static final String SALARY_TAX = "个税";
     //薪资扣税
     public static final String SALARY_TAX_JAVA = "salaryTax";
     public static final String ACTUAL_SALARY_SUM = "个人实发合计";
     //个人实发合计
     public static final String ACTUAL_SALARY_SUM_JAVA = "actualSalarySum";

     //个人代扣
     public static final String PDEDUCTION_JAVA = "pdeduction";
     //单位代扣
     public static final String UDEDUCTION_JAVA = "udeduction";
     //免个税个人代扣
     public static final String EXEMPTION_PERSION_TAX_JAVA = "exemptionPersionTax";
     //企业（职业）年金
     public static final String ENTERPRISE_ANNUITY_JAVA = "enterpriseAnnuity";
     //独保费
     public static final String ONLY_CHILD_JAVA = "onlyChild";
     //风险抵押金
     public static final String RISK_MORTGAGE_MONEY_JAVA = "riskMortgageMoney";
     //单位补足扣返
     public static final String UNIT_SUPPLY_JAVA = "unitSupply";
     //其他费用1
     public static final String OTHER_MONEY_ONE_JAVA = "otherMoneyOne";
     //其他费用2
     public static final String OTHER_MONEY_TWO_JAVA = "otherMoneyTwo";
     //其他费用3
     public static final String OTHER_MONEY_THREE_JAVA = "otherMoneyThree";
     //个人社保卡费
     public static final String PERSONAL_SOCIAL_CARD_JAVA = "personalSocialCard";
     //单位社保卡费
     public static final String UNIT_SOCIAL_CARD_JAVA = "unitSocialCard";

     //工程类设置：
     //应发工资
     public static final String SALARY_SUM_JAVA = "relaySalary";
     /**
      * 未找到工资表
      **/
     public static final String NO_SALARY = "未找到工资表";
     /**
      * 未找到工程工资表
      **/
     public static final String NO_ENGINEER_SALARY = "未找到工程工资表";

     //标记发放失败
     public static final String FAILUE_MARK = "标记“发放失败”";

     //发放失败重新发放
     public static final String FAILUE_RESENDER = "重新发放";

     //发放失败出账
     public static final String FAILUE_SENDER = "“发放失败”出账";

     //发放失败出账退回
     public static final String FAILUE_SENDER_BACK = "“发放失败”出账退回";

     //员工姓名/收款单位
     public static final String FILE_EMPNAME_ORGNAME = "员工姓名/收款单位";

     //银行账号
     public static final String FILE_BANK_NO = "银行账号";

     //派单限制统计表更新类型（0认领更新/1撤销认领更新/2匹配更新/3取消匹配更新）
     public static final Integer[] DISPATCH_UPDTYPE= {0, 1, 2, 3};
}
