// enum for object model
commonModule.factory('enums', ['$translate', function ($translate) {
    'use strict';

    return {
        tabType: {
            main: 0,
            dashboard: 1,
            chartEdit: 2,
            commonUrl: 3
        },

        keyCode: {
            backspace: 8,
            tab: 9,
            enter: 13,
            shift: 16,
            ctrl: 17,
            alt: 18,
            esc: 27,
            space: 32,
            left: 37,
            up: 38,
            right: 39,
            down: 40,
            select: 41,
            delete: 46,
            number0: 48,
            at: 64,
            letterz: 90,
            padmin: 96,
            padmax: 111,
            semicolon: 186,
            graveaccent: 192,
            openbracket: 219,
            singlequote: 222
        },

        domNodeType: {
            element: 1,
            attr: 2,
            text: 3
        },

        userStatus: {
            active: 1,
            inActive: -1,
            disabled: 0,
            locked: -2
        },

        adminEvent: {
            layoutChanged: 'admin:layoutChanged'
        },

        standardAccountDirection: {
            '1': 'StandardAccountDebit',
            '-1': 'StandardAccountCredit'
        },

        standardAccountAcctProp: {
            1: 'Asset',
            2: 'Debt',
            3: 'Joint',
            4: 'Equity',
            5: 'Cost',
            6: 'Loss'
        },

        modelType: {
            1: 'SystemCommonModel',
            2: 'OrgCommonModel',
            3: 'OrgCustomModel'
        },

        modelFeature: {
            1: 'IndexAnalysis',
            2: 'EntriesCheck'
        },

        /*************************************vat enum start************************************/

        vatImportType: {
            erp: 1,             //财务数据导入
            incomeInvoice: 2,   //进项发票导入
            journalEntry: 3,    //序时账导入
            outputInvoice: 4,   //销项发票导入
            tb: 5,              //TB导入
            mapping: 6          //Mapping关系导入
        },


        vatDataImportStatus: {
            UnImported: 0,      //未导入
            TbImported: 1,      //TB数据已导入
            ErpImported: 2      //财务数据已导入
        },

        validationType: {
            TrialBalance: 0,        //试算平衡表
            InputVoice: 1,          //进项发票
            OutputVoice: 2,         //销项发票
            ErpDuplicate: 3,        //重复数据
            ErpBasicCheck: 4,       //基础数据校验
            ErpCorrect: 5,          //数据正确性
            JournalEntry: 6,        //序时账验证错误
            InputInvoiceItem: 7     //进项发票明细
        },

        vatMenuStates: {
            expanded: 0,
            collapsing: 1,
            expanding: 2,
            collapsed: 3
        },

        vatEvent: {
            layoutChanged: 'vat:layoutChanged'
        },

        serviceType:
        {
            VAT: "2",
            FDD: "4",
            CIT: "6",
            TaxAudit: "8",
            RPT: "9",
            DTA: "10",
            CF: "11",
            AssetsManage: "12"
        },

        //发票类型
        invoiceType: {
            VATInvoice: 1,
            FreightTransport: 2,
            MotorVehicle: 3,
            AgriculturalProduct: 4,
            Other: 5
        },

        cellDataType:
        {
            Accounting: 1,
            Percentage: 2,
            Boolean: 3,
            String: 4,
            Integer: 5
        },

        //销项发票类型
        outputInvoiceType: {
            Normal: 0,
            Special: 1,
        },

        cellDataSourceType:
        {
            /// <summary>
            /// 公式(包含KeyValue)
            /// </summary>
            Formula: 1,

            /// <summary>
            /// 凭证
            /// </summary>
            Voucher: 2,

            /// <summary>
            /// 销项发票
            /// </summary>
            OutputInvoice: 3,

            /// <summary>
            /// 进项发票
            /// </summary>
            InputInvoice: 4,

            /// <summary>
            /// 海关发票
            /// </summary>
            CustomInvoice: 5,

            /// <summary>
            /// 手工录入
            /// </summary>
            KeyIn: 6,

            /// <summary>
            /// 关联模型
            /// </summary>
            RelatedModel: 7,

            /// <summary>
            /// SAP日报
            /// </summary>
            SapDaily: 8
        },

        //vat导入按钮类型
        vatImportBtnType: {
            Import: 0,          //导入
            CoverImport: 1,     //覆盖导入
            AddImport: 2        //追加导入
        },

        vatCompareStatus: {
            None: 0,
            UnBilled: 10,
            PartBilled: 20,
            Billed: 30,
            UnAccounted: 40,
            PartAccounted: 50,
            Accounted: 60
        },

        //科目重对应类型
        vatReMapType: {
            ReMapVoucher: 1,
            ReMapCust: 2
        },

        vatModuleEnum:
        {
            //[Display(Name = "试算平衡表导入")]
            Import_TrialBalance: 1,
            //[Display(Name = "序时账导入")]
            Import_JournalEntry: 2,
            //[Display(Name = "财务数据导入")]
            Import_Erpdata: 3,
            //[Display(Name = "销项发票导入")]
            Import_OutputInvoice: 4,
            //[Display(Name = "进项发票导入")]
            Import_InputInvoice: 5,
            //[Display(Name = "海关清单导入")]
            Import_CustomInvoice: 6,
            //[Display(Name = "凭证对应关系导入")]
            Import_VoucherMapping: 7,
            //[Display(Name = "发票对应关系导入")]
            Import_InvoiceMapping: 8,
            //[Display(Name = "审计调整")]
            Import_AuditAdjust: 9,
            //[Display(Name = "科目对应")]
            Import_AccountMapping: 20,
            //[Display(Name = "数据处理")]
            Import_CalculateData: 21,
            //[Display(Name = "货物名称匹配")]
            Import_GoodsMapping: 22,
            // [Display(Name = "未开票销售")]
            Import_UnbilledInvoice: 23,
            //[Description("模型分析")]
            Result_ModelAnalysisResult: 26,

            //[Description("纳税申报表")]
            Report_TaxDeclaration: 60,

            //[Description("增值说纳税申报表")]
            Report_VatTaxReturn: 61,

            //[Description("本期销售情况明细(附表一)")]
            Report_CurrentSalesDetailOne: 62,

            //[Description("本期销售情况明细(附表二)")]
            Report_CurrentSalesDetailTwo: 63,

            //[Description("服务,不动产和无形资产扣除项目明细(附表三)")]
            Report_ServiceAssets: 64,

            //[Description("税额抵减情况表(附表四)")]
            Report_TaxOffset: 65,

            //[Description("不动产分期抵扣表(附表五)")]
            Report_AssetsDeducted: 66,

            //[Description("固定资产")]
            Report_Assets: 67,

            //[Description("抵扣进项税额结构明细表")]
            Report_IncomeTaxDeducted: 68,

            //[Description("增值说减免税申报明细表")]
            Report_VatTaxRelief: 69,

            //[Description("附加税报表")]
            Report_AdditionalTax: 70,

            // [Description("报表生成-财务报表")]
            Report_BSPL: 100
        },

        vatModuleNameDic:
      {
          //[Display(Name = "试算平衡表导入")]
          '1': 'Import_TrialBalance',
          //[Display(Name = "序时账导入")]
          '2': 'Import_JournalEntry',
          //[Display(Name = "财务数据导入")]
          '3': 'Import_Erpdata',
          //[Display(Name = "销项发票导入")]
          '4': 'Import_OutputInvoice',
          //[Display(Name = "进项发票导入")]
          '5': 'Import_InputInvoice',
          //[Display(Name = "海关清单导入")]
          '6': 'Import_CustomInvoice',
          //[Display(Name = "凭证对应关系导入")]
          '7': 'Import_VoucherMapping',
          //[Display(Name = "发票对应关系导入")]
          '8': 'Import_InvoiceMapping',
          //[Display(Name = "审计调整")]
          '9': 'Import_AuditAdjust',
          //[Display(Name = "科目对应")]
          '20': 'Import_AccountMapping',
          //[Display(Name = "数据处理")]
          '21': 'Import_CalculateData',
          //[Display(Name = "货物名称匹配")]
          '22': 'Import_GoodsMapping',
          // [Display(Name = "未开票销售")]
          '23': 'Import_UnbilledInvoice',
          '100': 'FinancialReturn',
          '26': 'Result_ModelAnalysisResult',
          '60': 'TaxReturn'
      },

        vatLogOperationTypeEnum:
        {
            //[Display(Name = "添加")]
            AddData: 1,

            //[Display(Name = "删除")]
            DeleteData: 2,

            //[Display(Name = "导入")]
            Import: 10,

            //[Display(Name = "覆盖导入")]
            CoverImport: 11,

            //[Display(Name = "追加导入")]
            AddImport: 12,

            //[Display(Name = "清空")]
            ClearData: 13,

            //[Display(Name = "删除重复记录")]
            DeleteDuplicate: 14,

            //[Display(Name = "刷新校验")]
            Refresh: 15,

            //[Display(Name = "手工对应")]
            GM_ManualMapping: 20,

            // [Display(Name = "取消对应")]
            GM_CancelMapping: 21,

            //[Display(Name = "自动对应")]
            AM_AutoMapping: 30,

            // [Display(Name = "手工对应")]
            AM_ManualMapping: 31,

            //[Display(Name = "取消对应")]
            AM_CancelMapping: 32,

            //[Display(Name = "新增手工重分类")]
            AM_AddManualClass: 33,

            //[Display(Name = "删除手工重分类")]
            AM_DeleteManualClass: 34,

            //[Display(Name = "编辑手工重分类")]
            AM_EditManualClass: 35,

            //[Display(Name = "新增凭证重分类")]
            AM_AddVoucherClass: 36,

            //[Display(Name = "删除凭证重分类")]
            AM_DeleteVoucherClass: 37,

            //[Display(Name = "编辑凭证重分类")]
            AM_EditVoucherClass: 38,

            //[Display(Name = "数据处理")]
            CalculateData: 40,

            //[Display(Name = "自动数据处理")]
            AutoCalculateData: 41,

            //[Description("财务报表生成")]
            Generate_BSPL: 42,

            //[Description("提交报表")]
            SubmitReport: 43,

            //[Description("撤销报表")]
            WithdrawReport: 44,

            //[Description("审核通过报表")]
            ApproveReport: 45,

            //[Description("拒绝审核")]
            RejectReport: 46,

            //[Description("完成申报")]
            DeclarationComplete: 47,

            //[Description("上传凭证")]
            UploadCertificate: 48,

            //[Description("疑点筛选")]
            DoubtFilter: 53,
        },
        formulaDataSourceType:
        {
            // 其他数据源,如公式中的税率、数字部分
            Other: 0,

            // 进项数据源
            InputInvoice: 1,

            // 进项明细数据源
            InputInvoiceDetail: 2,

            // 销项数据源
            OutputInvoice: 3,

            // 凭证数据源
            Voucher: 4,

            // 报表数据源
            Report: 5,

            // 条件判断数据源
            Judgment: 6,

            //// Sap日报数据源
            //SapDaily: 7,

            //// 土地出让金数据源
            //LandSell: 8,

            ////未开票数据源
            //Unbilled: 9,
            KeyInSource: 10,
            QCYESource: 11,
            QMYESource: 12,
            ModelSource: 13,
            FSESource: 14,
            RuleSource: 15,

            //凭证筛选
            VoucherFilter: 16,
            //发票筛选
            InvoiceFilter: 17,
            //模型数据源
            ModelDatasource: 18,
            // 用于存放特殊逻辑中获取的数据源数值与备注等信息,如未开票视同销售等
            Special: 19,
            BSPL: 20
        },

        VatImportSubStatus: {
            isAdjustImport: 1, //审计调整
            isCustomInvoiceImport: 2, //海关清单
            isEntryImport: 3, //序时账
            isErpImport: 4, //财务数据
            isInputInvoiceImport: 5, //进项发票
            isInvoiceMapImport: 6, //发票对应
            isOutputInvoiceImport: 7,//销项发票
            isTbImport: 8,//试算平衡表
            isVoucherMapImport: 9 //凭证对应
        },


        ReportTemplateCode: {

            TaxDeclarationCategory: "TaxDeclaration", //纳税申报表(不是具体的template,是一个类别)
            VAT000: 'VAT000', //增值税纳税申报表
            VAT001: 'VAT001', //本期销售情况明细(附表一)
            VAT002: 'VAT002', //本期进项税额明细(附表二)
            VAT003: 'VAT003', //服务,不动产和无形资产扣除项目明细(附表三)
            VAT004: 'VAT004', //税额抵减情况表(附表四)
            VAT005: 'VAT005', //不动产分期抵扣表(附表五)
            VAT006: 'VAT006', //固定资产
            VAT007: 'VAT007', //抵扣进项税额结构明细表
            VAT008: 'VAT008', //增值税减免税申报明细表
            VAT009: 'VAT009', //附加税报表
            VAT010: 'VAT010', //增值税预缴税款表
            VAT011: 'VAT011' //营改增税负分析测算明细表
        },

        FinishStatusEnum: {
            NotFinished: 0,
            Finished: 1
        },

        paramDataType: {
            undefined: -1,
            string: 0,
            number: 1
        },

        paramType: {
            input: 0,
            dropdown: 1,
            accountCode: 2,
            dropdownNumber: 3
        },

        sqlBitEnum: {
            asFalse: 0,
            asTrue: 1
        },

        linkShort: {
            PreviewData: 'previewData',
            ReductionData: 'reductionData',
            ImportData: 'importData'
        },

        //Workflow Task的DictionayKey和vat-import-layout.ctrl.js中$scope.menus中name之间的mapping关系
        dictionaryKeyMenusMap: {
            WFImportErpData: 'erpData',
            WFImportBalanceTable: 'balanceSheet',
            WFImportJournalEntry: 'journalEntry',
            WFImportOutputInvoice: 'outputInvoice',
            WFImportIncomeInvoice: 'inputInvoice',
            WFImportCustomInvoice: 'customInvoice',
            WFImportVoucherMap: 'voucherMapping',
            WFImportInvoiceMap: 'invoiceMapping',
            WFImportAuditAdjust: 'auditAdjust',
            WFUnBilledInvoice: 'unbilledInvoice',
            WFDataProcess: 'caculateData',
            WFAccountMap: 'accountMapping',
            WFCargoNameMatch: 'goodsMapping'
        },

        projectImportType: {
            UnImported: 0,
            TbImported: 1,
            ErpImported: 2
        },

        processType: {
            UnDefined: -1,
            Add: 1,
            Edit: 2,
            Delete: 3
        },

        optionType :{
            Add: "Add",
            Edit: "Edit",
            DeleteDuplicate: "DeleteDuplicate",
            Refresh: "Refresh",
            Clear: "Clear",
            Import: "Import"
        },

        /*************************************vat enum end**************************************/

        //发票发生类型
        invoiceAmountType: {
            amount: 1,      //金额
            taxAmount: 2,   //税额
            quntity: 3      //份数
        },

        //项目服务类型
        projectServiceType: {
            VAT: 2,
            CIT: 6,
        },

        /*************************************cit enum start**************************************/

        erpCheckTypeId: {
            Tb_NoAcctCode: 30,//Tb验证 科目不在科目表中
            Tb_PeriodBalance: 31,//本月期初 = 上月期末      
            Tb_BegBalDebitAndCreditBanlace: 32,//期初余额借贷平衡
            Tb_BegBalUpAndDownBanlace: 33,//期初余额上下级平衡
            Tb_CurentDebitAndCreditBanlace: 34,//发生额借贷平衡
            Tb_CurrentUpAndDownBanlace: 35,//发生额上下级平衡
            Tb_EndBalDebitAndCreditBanlace: 36,//期末借贷平衡     
            Tb_EndBalUpAndDownBanlace: 37,//期末上下级平衡 
            Tb_CurrentBalance: 38,//期末:期初+(借-贷)*方向
            Tb_DuplicatedData: 39//重复数据 
        },

        ImageType:
        {
            Success: 1, //成功
            Alert: 2, //提示
            Warning: 3,//警告
            Error: 4 //错误
        },

        //对应PwC.Tax.Tech.Atms.Globals.Utils:ErpCheckType
        ErpCheckTypeEnum:
        {
            Success: 0,
            ComBalanceAcctUnValidate: 1,
            VoucherAcctValidate: 2,
            VSingleDebitCreditUnValidate: 3,
            VEmptyCheckUnValidateItemID: 4,
            VEmptyCheckUnValidateGroup: 5,
            VEmptyCheckUnValidateAcctCode: 6,
            VEmptyCheckUnValidateSummary: 7,
            AcctBegBalAcctLevelUnValidate: 8,
            BegBalUnValidate: 9,
            CompCustEndBalUnValidate: 10,
            CompCustAmountUnValidate: 11,
            CompCustBegBalUnValidate: 12,
            BegEndBalUnValidate: 13,
            DuplicatedVoucher: 14,
            DuplicatedTb: 15
        },

        ValidateCategoryEnum:
        {
            Basic: 1,
            Correctness: 2,
            Duplicate: 3
        },

        TbImportTypeEnum:
        {
            UnImported: 0,
            TbImported: 1,
            ErpImported: 2
        },

        //上传文件有效后缀名
        ValidFileExtension:
        {
            CSV: "csv",
            XLS: "xls",
            XLSX: "xlsx"
        },
        BDStatusEnum: {
            NormalStatus: 1,
            Duplicated: 2,
            Matched: 3,
            Unmatched: 4,
            Cancelled: 5,
            RedLettered: 6
        },

        IssuanceType: {
            SalesForce: 1,
            SmartTax: 2,
            Local: 3
        },
        //针对GD-BD车辆的状态
        GDBDStatusEnum: {
            issued: 1,
            redLettered: 2,
            readyToIssue: 3,
            needRedLetter: 4,
            cancelled: 5,
            pendingForApproval: 6
        },
        //针对GD发票的状态
        GDInvoiceStatusEnum: {
            issued: 1,
            redLettered: 2,
            partialRedLettered: 3,
            //needRedLetter: 4,
            cancelled: 5,
            // pendingForApproval: 6
        },
        // 发车清单比较状态
        ShipmentCheckStatusEnum: {
            Normal: 1,
            Unbalance: 2,
            CantFind: 3
        },
        EditValueTypeEnum: {
            Warranty14: 1,
            FaPiao17: 2,
            FaPiao6: 3
        },
        IsNeedSendEmailEnum: {
            Need: 1,
            NotNeed: 2
        }

        /*************************************cit enum end**************************************/



    }
}]);