taxDocumentManageModule.controller('DocumentManageController', ['$scope', '$log', 'loginContext', '$translate', 'region', '$cookies' , 'apiInterceptor', 'Upload', 'dataImportService', 'SweetAlert', 'vatImportService' , '$timeout', '$q', 'enums', 'uiGridConstants', '$interval', 'vatSessionService', 'citSessionService', 'vatOperationLogService' , 'projectService', 'vatCommonService', 'productService', '$state', '$stateParams', function ($scope, $log, loginContext, $translate, region, $cookies, apiInterceptor, Upload, dataImportService , SweetAlert, vatImportService, $timeout, $q, enums, uiGridConstants, $interval, vatSessionService, citSessionService , vatOperationLogService, projectService, vatCommonService, productService, $state, $stateParams) { 'use strict'; console.log("DocumentManageController start....."); $scope.monthList = [$translate.instant('Month01'), $translate.instant('Month02'), $translate.instant('Month03'), $translate.instant('Month04'), $translate.instant('Month05'), $translate.instant('Month06'), $translate.instant('Month07'), $translate.instant('Month08'), $translate.instant('Month09'), $translate.instant('Month10'), $translate.instant('Month11'), $translate.instant('Month12') ]; var taxTypeCode = { FinanceLost: '1100', //资产损失 ResearchCost: '1250', //研发费用 TaxAudit: '7050' //税务稽查 }; var taxCategoryCode = { CIT: '1000', //企业所得税申报 SpecialTaxIssue: '7000' //特殊税务事项 }; var taxDocumentCode = { PayTaxReport: '7051',//纳税提醒函报告 CheckNotification: '7052', //税务检查通知书 WorkingPaper: '7053', //税务稽查工作底稿 OriginalRecord: '7054' //税务稽查原始记录 }; var fileExtension = { TXT: "text/plain", CSV: "csv", XLS: "xls", XLSX: "xlsx", DOC: "doc", DOCX: "docx" }; var taxDocGridHeaderType = { ORG: 1, DocType: 2 }; //var setDate = [ // [vatSessionService.month, vatSessionService.project.year], // [vatSessionService.month, vatSessionService.project.year] //]; var setDate = [ [1, 2016], [12, 2016] ]; var taxDocTypeDto = { value: '', name: '', rowIndex: 0, columnIndex: 0 } // TODO: Remove the default org setting var DEFAULT_ORGID = 'fc3246a4-2158-4539-a4c0-a7d498a38098'; var DEFAULT_TotalMark = '-1'; //var minDate = [1, vatSessionService.project.year]; //var maxDate = [12, vatSessionService.project.year + 5]; var minDate = [1, 2016]; var maxDate = [12, 2016 + 5]; var selectedDocCategroyCode = '1000'; //概览: 文档类别Tab,选中的文档类别 var selectedDocTypeCode = ''; //概览: GridView点击cell,选择的文档类型 //var selectedDocNameCode = ''; var apiTokenObj = $cookies.getObject('AtmsApiToken'); var webHost = apiTokenObj.api_host; var uploadFileDtoList = []; //上传文件: DocumentManage数据的List $scope.periodId = -1; $scope.taxDocumentCategory = []; $scope.org = {}; $scope.taxCategoryNav = []; //文档类别,TaxDocumentCategory表中第一级 $scope.selectedDocType = {}; $scope.selectedDocName = {}; $scope.selectedOrges = []; //文件上传,选中的机构 $scope.orgTreeView = {}; $scope.selectedUploadFiles = []; //上传文件:右侧文件图标 $scope.fileUploadToServer = [];//上传文件:选中的上传文件 $scope.uploadFilesCards = []; $scope.documentDetail = [];//查看文档,详细数据 $scope.showProjectCode = true; $scope.showAmount = true; $scope.documentQueryDetail = [];//详细页面:GridView数据 $scope.detailSelectedDocCategory = [];//详细: 选中的文档类别 $scope.detailSelectedOrg = [];//详细:选中的机构 $scope.selectedMultiDocTypes = []; //上传文件,文档类型多选框 $scope.docViewDocTypeName = ''; //查看文档,上传文件的文档类型label $scope.taxDocTypeGridViewDataSource = { header: [], row: [] }; $scope.orgGridViewDataSource = { header: [], row: [] }; var fileCardConstructor = function (img, header) { this.img = img; this.header = header; }; //isHeader: 列头 //isRowHeader:行头 var taxDocGridRowConstructor = function (type, isHeader, isRowHeader, value) { var taxDocTypeDto = { value: '', name: '', rowIndex: 0, columnIndex: 0 }; var _name = ''; if (type === taxDocGridHeaderType.DocType) { if (isHeader) { if (value === "OrgId") { _name = $translate.instant('OrganizationDesc'); } else { var docType = _.where($scope.taxDocumentCategory, { codeLevel: 2, code: value })[0]; if (!_.isNull(docType) && !_.isUndefined(docType)) { _name = docType.name; } } } else { if (isRowHeader) { var getOrg = _.where($scope.org, { id: value })[0]; if (!_.isNull(getOrg) && !_.isUndefined(getOrg)) { _name = getOrg.name; } } else { _name = value; } } taxDocTypeDto.value = value; taxDocTypeDto.name = _name; return taxDocTypeDto; } if (type === taxDocGridHeaderType.ORG) { } } //code-->Code: 文档类型 TaxDocumentCategory中的二级 //nameCode-->nameCode: 文档名称类型 TaxDocumentCategory中的三级 var documentManageContructor = function (id, documentTypeId, code, fileId, serviceTypeId, projectId , periodId, organizationId, expiredFrom, expiredTo, nameCode, projectCode, amount) { this.id = id; this.documentTypeId = documentTypeId; this.code = code; this.fileId = fileId; this.serviceTypeId = serviceTypeId; this.projectId = projectId; this.periodId = periodId; this.organizationId = organizationId; this.expiredFrom = expiredFrom; this.expiredTo = expiredTo; this.nameCode = nameCode; this.projectCode = projectCode; this.amount = amount; } //跳转到CIT报表 var lintToItem = function (rowEntity) { if (selectedDocCategroyCode === taxCategoryCode.CIT) { var id = ''; var tempId = ''; var name = ''; var selectedReportCode = ''; var hasDocument = false; var docNum = 0; if (rowEntity.taxTypeCode === taxTypeCode.FinanceLost) { //资产损失信息表 id = 'd9dd4ee9-f89e-44d0-8c79-82b5e66a80ed'; tempId = 'e66814d4-afb6-4a6d-8a56-f5fb6a28598b'; name = '%E8%B5%84%E4%BA%A7%E6%8D%9F%E5%A4%B1%E4%BF%A1%E6%81%AF%E8%A1%A8'; selectedReportCode = constant.reportCode.FinanceLostReport; hasDocument = true; docNum = 2; } if (rowEntity.taxTypeCode === taxTypeCode.ResearchCost) { //本年度研发费用信息表 id = '71aff095-53e1-44e7-b7eb-9dd05984b47a'; tempId = '38781660-4d77-4fc1-ae33-a9ffee246310'; name = '%E6%9C%AC%E5%B9%B4%E5%8F%91%E7%94%9F%E7%A0%94%E5%8F%91%E8%B4%B9%E7%94%A8%E4%BF%A1%E6%81%AF%E8%A1%A8'; selectedReportCode = constant.reportCode.ResearchCost; hasDocument = true; docNum = 3; } if (!PWC.isNullOrEmpty(id) && !PWC.isNullOrEmpty(tempId) && !PWC.isNullOrEmpty(name)) { $('#modalDocumentDetail').modal('hide'); $timeout(function () { $state.go('cit.importData.documentList', { docId: id, docTemplateId: tempId, docName: name, treeTypeCode: rowEntity.taxTypeCode, selectedReportCode: selectedReportCode, hasDocument: hasDocument, docNum: docNum }); }, 1000); } } if (selectedDocCategroyCode === taxCategoryCode.SpecialTaxIssue) { } }; //跳转到任务事项 var linkToTaxTaskIssue = function (rowEntity) { var codeValue = null; if (rowEntity.taxDocumentCode === taxDocumentCode.PayTaxReport || rowEntity.taxDocumentCode === taxDocumentCode.CheckNotification) { codeValue = '001'; } if (rowEntity.taxDocumentCode === taxDocumentCode.WorkingPaper || rowEntity.taxDocumentCode === taxDocumentCode.OriginalRecord) { codeValue = '002'; } $('#modalDocumentDetail').modal('hide'); setTimeout(function () { $state.go('taxTaskManage', { code: codeValue }); }, 1000); }; //删除文档 var deleteDocument = function (rowEntity) { dataImportService.deleteDocument(rowEntity.documentId).success(function (re) { if (re.result) { $('#modalDocumentDetail').modal('hide'); getTaxDocumentsPivot(selectedDocCategroyCode); } }); }; var deleteDocumentQueryDetail = function (rowEntity) { dataImportService.deleteDocument(rowEntity.documentId).success(function (re) { if (re.result) { onClickSearchDetail(); } }); } //初始化各类GridView var initTaxGridView = { initGridDocumentDetail: function () { var columns = []; //var actionTemplate = "<div class='document-detail-action'>" // + " <span ng-click='grid.appScope.lintToItem(row.entity)'>关联事项</span>" // + " <span ng-click='grid.appScope.deleteDocument(row.entity)'>删除</span>" // + " </div>"; columns.push({ name: $translate.instant('Number'), cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.index}}</span></div>', width: '5%' }, { name: $translate.instant('DocumentName'), cellTemplate: '<div class="ui-grid-cell-contents"><a href="#" ng-click="grid.appScope.openDocumentFile(row.entity)">{{row.entity.taxDocumentName}}</a></div>', width: '20%' }, { name: $translate.instant('DocumentProjectCode'), cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.projectCode}}</span></div>', visible: false }, { name: $translate.instant('Amount'), cellTemplate: '<div class="ui-grid-cell-contents" style="text-align:right"><span>{{row.entity.amount}}</span></div>', visible: false }, { name: $translate.instant('DocumentExpiredDuration'), cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.expiredDuration}}</span></div>', width: '20%' }, { name: $translate.instant('UploadFileTime'), cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.uploadTimeString}}</span></div>' }, { name: $translate.instant('UploadUserName'), cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.uploadUserName}}</span></div>' }, { name: $translate.instant('LogComments'), cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.comments}}<span></div>' } //{ name: $translate.instant('Action'), cellTemplate: actionTemplate } ); $scope.gridDocumentDetailOptions = { enableColumnResizing: true, rowHeight: constant.UIGrid.rowHeight, selectionRowHeaderWidth: constant.UIGrid.rowHeight, enableSorting: false, enableColumnMenus: false, virtualizationThreshold: 50,//默认加载50条数据,避免在数据展示时,只显示前面4条 enableHorizontalScrollbar: uiGridConstants.scrollbars.NEVER, enableVerticalScrollbar: uiGridConstants.scrollbars.enableVerticalScrollbar, columnDefs: columns, onRegisterApi: function (gridApi) { $scope.gridDocumentApi = gridApi; // call resize every 500 ms for 5 s after modal finishes opening - usually only necessary on a bootstrap modal $interval(function () { $scope.gridDocumentApi.core.handleWindowResize(); }, 500, 60 * 60 * 8); } } $scope.documentDetail = []; }, initGridDocumentQuery: function () { var columns = []; var linkToIssueDesc = $translate.instant('LinkToIssue'); var deleteDesc = $translate.instant('Delete'); var actionTemplate = "<div class='document-detail-action'>" + " <span ng-click='grid.appScope.lintToItem(row.entity)'>" + linkToIssueDesc + "</span>" + " <span ng-click='grid.appScope.deleteDocumentQueryDetail(row.entity)'>" + deleteDesc + "</span>" + " </div>"; columns.push({ name: $translate.instant('OrgName'), cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.orgName}}<span></div>', width: '20%' }, { name: $translate.instant('DocumentName'), cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.taxDocumentName}}<span></div>', width: '10%' }, { name: $translate.instant('TaxTypeName'), cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.taxTypeName}}<span></div>', width: '10%' }, //{ name: $translate.instant('DocumentProjectCode'), cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.projectCode}}<span></div>' }, //{ name: $translate.instant('Amount'), cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.amount}}<span></div>' }, { name: $translate.instant('DocumentExpiredDuration'), cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.expiredDuration}}<span></div>', width: '15%' }, { name: $translate.instant('UploadFileTime'), cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.uploadTimeString}}<span></div>' }, { name: $translate.instant('UploadUserName'), cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.uploadUserName}}<span></div>' }, { name: $translate.instant('LogComments'), cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.comments}}<span></div>' }, { name: $translate.instant('Action'), cellTemplate: actionTemplate } ); $scope.gridDocumentQueryDetailOptions = { enableColumnResizing: true, rowHeight: constant.UIGrid.rowHeight, selectionRowHeaderWidth: constant.UIGrid.rowHeight, enableSorting: false, enableColumnMenus: false, virtualizationThreshold: 50,//默认加载50条数据,避免在数据展示时,只显示前面4条 enableHorizontalScrollbar: uiGridConstants.scrollbars.NEVER, enableVerticalScrollbar: uiGridConstants.scrollbars.enableVerticalScrollbar, columnDefs: columns, onRegisterApi: function (gridApi) { $scope.gridDocumentQueryApi = gridApi; // call resize every 500 ms for 5 s after modal finishes opening - usually only necessary on a bootstrap modal $interval(function () { $scope.gridDocumentQueryApi.core.handleWindowResize(); }, 500, 60 * 60 * 8); } } $scope.documentQueryDetail = []; } }; //初始化各类下拉框 var initDropDown = { //文档类型单选框 initDocType: function (categoryCode) { var docTypeDataSource = _.where($scope.taxDocumentCategory, { codeLevel: 2, parentCode: categoryCode }); $("#ddlDocType").dxSelectBox({ dataSource: docTypeDataSource, valueExpr: 'code', displayExpr: 'name', height: "35px", onValueChanged: function (e) { //initDropDown.initDocName(e.value); }, onSelectionChanged: function (e) { if (!_.isNull(e.selectedItem)) { $scope.selectedDocType = e.selectedItem; $scope.showProjectCode = e.selectedItem.code === taxTypeCode.ResearchCost ? true : false; $scope.showAmount = e.selectedItem.code === taxTypeCode.FinanceLost ? true : false; initDropDown.initDocName(e.selectedItem.code); } } }); //$('#ddlDocType').dxSelectBox('instance').option(docTypeDataSource); //$('#ddlDocType').dxSelectBox('instance').option('value', docTypeDataSource[0].code); }, //文档类型多选框 initDocTypeMulti:function(categoryCode){ var docTypeDataSource = _.where($scope.taxDocumentCategory, { codeLevel: 2, parentCode: categoryCode }); $scope.docTypeMultiOptions = { bindingOptions: { value: 'selectedMultiDocTypes', }, valueExpr: "code", displayExpr: "name", placeholder: "", showClearButton: false, dataSource: docTypeDataSource, treeView: { dataSource: docTypeDataSource, dataStructure: "plain", keyExpr: "code", displayExpr: "name", selectByClick: true, selectNodesRecursive: false, showCheckBoxesMode: "normal", selectionMode: "multiple", height: "200px", onContentReady: function (e) { $scope.docTypeMultiComponent = e.component; //if ($scope.docTypeMultiComponent) { // $scope.docTypeMultiComponent.unselectAll(); //} }, onItemSelectionChanged: function (args) { var value = args.component.getSelectedNodesKeys(); $scope.selectedMultiDocTypes = value; var getFinanceLost = _.find($scope.selectedMultiDocTypes, function (el) { return el === taxTypeCode.FinanceLost; }); var getResearchCost = _.find($scope.selectedMultiDocTypes, function (el) { return el === taxTypeCode.ResearchCost; }); $scope.showProjectCode = !_.isUndefined(getResearchCost) ? true : false; $scope.showAmount = !_.isUndefined(getFinanceLost) ? true : false; initDropDown.initDocName($scope.selectedMultiDocTypes); } } }; }, //文档名称单选框 initDocName: function (docTypeCode) { var docTypeDataSource = []; $scope.selectedMultiDocTypes.forEach(function (item, index) { var getDocument = _.where($scope.taxDocumentCategory, { codeLevel: 3, parentCode: item }); docTypeDataSource = docTypeDataSource.concat(getDocument); }); //if (docTypeCode !== '') { // docTypeDataSource = _.where($scope.taxDocumentCategory, { codeLevel: 3, parentCode: docTypeCode }); //} $("#ddlDocName").dxSelectBox({ dataSource: docTypeDataSource, valueExpr: 'code', displayExpr: 'name', height: "35px", onValueChanged: function (e) { }, onSelectionChanged: function (e) { $scope.selectedDocName = e.selectedItem; console.log("选中的文档名称:"); console.log($scope.selectedDocName); } }); //docNameDataSource = _.where($scope.taxDocumentCategory, { codeLevel: 3, parentCode: docTypeCode }); //$('#ddlDocName').dxSelectBox('instance').option('dataSource', docNameDataSource); }, //机构多选框 initOrg: function () { var initalYearTree = function () { if ($scope.orgTreeView) { $scope.fromSyncSelection = true; $scope.orgTreeView.unselectAll(); $scope.fromSyncSelection = false; } }; //$scope.selectedYears = [year]; $scope.orgFilterOptions = { bindingOptions: { value: 'selectedOrges', }, valueExpr: "id", displayExpr: "name", placeholder: "", showClearButton: false, dataSource: $scope.org, treeView: { dataSource: $scope.org, dataStructure: "plain", keyExpr: "id", displayExpr: "name", selectByClick: true, selectNodesRecursive: false, showCheckBoxesMode: "normal", selectionMode: "multiple", height: "200px", onContentReady: function (e) { $scope.orgTreeView = e.component; initalYearTree(); }, onItemSelectionChanged: function (args) { if (!$scope.fromSyncSelection) { var value = args.component.getSelectedNodesKeys(); $scope.selectedOrges = value; console.log("选中的机构:"); console.log($scope.selectedOrges); } } } }; }, //详细页面,文档类别多选框 initDetailDocCategory: function () { $scope.detailDocCategoryOption = { bindingOptions: { value: 'detailSelectedDocCategory', }, valueExpr: "id", displayExpr: "name", placeholder: "", showClearButton: false, dataSource: $scope.taxCategoryNav, treeView: { dataSource: $scope.taxCategoryNav, dataStructure: "plain", keyExpr: "id", displayExpr: "name", selectByClick: true, selectNodesRecursive: false, showCheckBoxesMode: "normal", selectionMode: "multiple", height: "200px", onContentReady: function (e) { //$scope.orgTreeView = e.component; // initalDetailDocCategoryTree(); }, onItemSelectionChanged: function (args) { if (!$scope.fromSyncSelection) { var value = args.component.getSelectedNodesKeys(); $scope.detailSelectedDocCategory = value; } } } }; }, //详细页面,机构类别多选框 initDetailOrg: function () { $scope.detailOrgOptions = { bindingOptions: { value: 'detailSelectedOrg', }, valueExpr: "id", displayExpr: "name", placeholder: "", showClearButton: false, dataSource: $scope.org, treeView: { dataSource: $scope.org, dataStructure: "plain", keyExpr: "id", displayExpr: "name", selectByClick: true, selectNodesRecursive: false, showCheckBoxesMode: "normal", selectionMode: "multiple", height: "200px", onContentReady: function (e) { }, onItemSelectionChanged: function (args) { var value = args.component.getSelectedNodesKeys(); $scope.detailSelectedOrg = value; } } }; } }; //清除下拉框、日期等数据 var clearData = { clearUploadWindowValue: function () { $scope.selectedUploadFiles = []; $scope.fileUploadToServer = []; $scope.selectedMultiDocTypes = []; uploadFileDtoList = []; $scope.showProjectCode = false; $scope.showAmount = false; $('#projecCode').val(''); $("#amount").val(''); $('#txtRemark').val(''); //$('#ddlDocType').dxSelectBox('instance').option('value', ''); $('#ddlDocName').dxSelectBox('instance').option('value', ''); }, cleareDetailPage: function () { $scope.detailSelectedDocCategory = []; $scope.detailSelectedOrg = []; $scope.gridDocumentQueryDetailOptions.data = []; $('#detailDateExpiredFrom').dxDateBox('instance').option('value', null); $('#detailDateExpiredTo').dxDateBox('instance').option('value', null); } }; //初始化各类日期选择框 var initDatePick = { initGridDatePick: function () { //初始化month-picker $('#period-picker').rangePicker({ minDate: minDate, maxDate: maxDate, setDate: setDate, months: $scope.monthList, ConfirmBtnText: $translate.instant('Confirm'), CancelBtnText: $translate.instant('ButtonCancel') }).on('datePicker.show', function (ev, picker) { console.log('datePicker.show'); }).on('datePicker.done', function (e, result) { //开始月份 var startMonth = result[0][0]; //结束月份 var endMonth = result[1][0]; console.log(startMonth + " " + endMonth); }); }, initUploadDatePick: function (id) { $('#' + id).dxDateBox({ type: "date", showClearButton: true, value: new Date() }); } }; var onClickTab = function (e) { console.log(e); //文档类型 if (e.currentTarget.id === "tabBtDoc") { //切换Tab样式 $("#tabBtDoc").removeClass("tab-inactive").addClass("tab-active"); $("#tabBtCompany").removeClass("tab-active").addClass("tab-inactive"); //切换内容样式 $("#tabDoc").removeClass('left-nav-hidden').addClass('left-nav-show'); $("#tabCompany").removeClass('left-nav-show').addClass('left-nav-hidden'); //选中第一个li $("#tabDoc>ul>li").removeClass("li-item-active"); $("#tabDoc>ul>li:first-child").addClass("li-item-active"); $("#contentTb").show(); $("#orgTb").hide(); } //机构 if (e.currentTarget.id === "tabBtCompany") { //切换Tab样式 $("#tabBtCompany").removeClass("tab-inactive").addClass("tab-active"); $("#tabBtDoc").removeClass("tab-active").addClass("tab-inactive"); //切换内容样式 $("#tabCompany").removeClass('left-nav-hidden').addClass('left-nav-show'); $("#tabDoc").removeClass('left-nav-show').addClass('left-nav-hidden'); //选中第一个li $("#tabCompany>ul>li").removeClass("li-item-active"); $("#tabCompany>ul>li:first-child").addClass("li-item-active"); $("#orgTb").show(); $("#contentTb").hide(); } }; var onClickDocCategory = function (e, category) { $("#tabDoc>ul>li").removeClass("li-item-active"); e.target.className = 'li-item-active'; selectedDocCategroyCode = category.code; if (selectedDocCategroyCode === taxCategoryCode.CIT || selectedDocCategroyCode === taxCategoryCode.SpecialTaxIssue) { if (selectedDocCategroyCode === taxCategoryCode.CIT) { $('#period-picker').rangePicker({ setDate: [ [1, 2016], [12, 2016] ] }) } else if (selectedDocCategroyCode === taxCategoryCode.SpecialTaxIssue) { $('#period-picker').rangePicker({ setDate: [ [1, 2018], [12, 2018] ] }) } getTaxDocumentsPivot(selectedDocCategroyCode); } } var getUploadFiles = function () { dataImportService.getAllUploadFiles().success(function (re) { if (re.result) { console.log("getAllUploadFiles success"); } }); }; var getTaxDocumentsPivot = function (docCategoryCode) { $scope.taxDocTypeGridViewDataSource = { header: [], row: [] }; dataImportService.getTaxDocumentsPivot(docCategoryCode).success(function (re) { if (re.result) { var header = re.data.header; var row = re.data.row; //初始化Header header.forEach(function (item, index) { var caption = item.caption; var itemHeader = taxDocGridRowConstructor(taxDocGridHeaderType.DocType, true, null, caption); $scope.taxDocTypeGridViewDataSource.header.push(itemHeader); }); row.forEach(function (item, index) { var rowIndex = index; var rowData = item.itemArray; var currentRow = []; rowData.forEach(function (colData, colIndex) { var itemColumn = colIndex === 0 ? taxDocGridRowConstructor(taxDocGridHeaderType.DocType, false, true, colData) : taxDocGridRowConstructor(taxDocGridHeaderType.DocType, false, false, colData); itemColumn.rowIndex = rowIndex itemColumn.columnIndex = colIndex; if (itemColumn.value === DEFAULT_TotalMark) { itemColumn.name = $translate.instant('TotalDocumentNumber'); } currentRow.push(itemColumn); }); $scope.taxDocTypeGridViewDataSource.row.push(currentRow); }) console.log("getTaxDocumentsPivot success"); } }); } var loadPageData = function () { dataImportService.getAllTaxDocumentCategory().success(function (re) { if (re.result) { $scope.taxDocumentCategory = re.data; $scope.taxCategoryNav = _.where($scope.taxDocumentCategory, { codeLevel: 1 }); dataImportService.getOrginaztionById(DEFAULT_ORGID).success(function (re) { if (re.result) { $scope.org = re.data; initDropDown.initDetailDocCategory(); initDropDown.initDetailOrg(); //加载页面时,默认选中文档类型的第一个li setTimeout(function () { if ($scope.selectID) { $('#' + $scope.selectID).trigger('click'); $('#' + $scope.selectID).addClass('li-item-active'); } else { $("#tabDoc>ul>li:first-child").trigger('click'); $("#tabDoc>ul>li:first-child").addClass('li-item-active'); } }, 500); //getTaxDocumentsPivot(selectedDocCategroyCode); } }); } }); } var showUpload = function (isFromDocView) { if (selectedDocCategroyCode === '') { selectedDocCategroyCode = _.where($scope.taxDocumentCategory, { codeLevel: 1 })[0].code; } $scope.selectedMultiDocTypes = []; initDropDown.initDocType(selectedDocCategroyCode); initDropDown.initDocTypeMulti(selectedDocCategroyCode); initDropDown.initDocName(''); initDropDown.initOrg(); clearData.clearUploadWindowValue(); initDatePick.initUploadDatePick('dateExpiredFrom'); initDatePick.initUploadDatePick('dateExpiredTo'); var docTypeMultiDropDownInstance = $("#docTypeMultiDropDown").dxTreeView('instance'); if (!_.isUndefined(docTypeMultiDropDownInstance)) { docTypeMultiDropDownInstance.unselectAll(); } if (isFromDocView) { $('#ddlMultiDocType').hide(); $('#docViewDocType').show(); $scope.showProjectCode = selectedDocTypeCode === taxTypeCode.ResearchCost ? true : false; $scope.showAmount = selectedDocTypeCode === taxTypeCode.FinanceLost ? true : false; //文档类型多选 var getDocViewTypeItem = _.where($scope.taxDocumentCategory, { code: selectedDocTypeCode })[0]; $scope.docViewDocTypeName = getDocViewTypeItem.name; $scope.selectedMultiDocTypes.push(getDocViewTypeItem.code); initDropDown.initDocName(getDocViewTypeItem.code); //文档类型单选框 //$('#ddlDocType').dxSelectBox('instance').option('value', selectedDocTypeCode); //$('#ddlDocType').dxSelectBox('instance').option('disabled', true); } else { //$('#ddlDocType').dxSelectBox('instance').option('disabled', false); $('#ddlMultiDocType').show(); $('#docViewDocType').hide(); } $('#modalUploadFile').modal('show'); }; var showDocumentDetail = function (typeCode, rogId) { //$scope.documentDetail = []; initTaxGridView.initGridDocumentDetail(); dataImportService.getDocumentManageList(typeCode, rogId).success(function (re) { if (re.result) { var data = re.data; var showDocDetailAmountColumn = false; var showDocDetailProjectCode = false; if (data[0]) { var firstTypeCode = data[0].taxTypeCode; if (firstTypeCode === taxTypeCode.FinanceLost) { showDocDetailAmountColumn = true; showDocDetailProjectCode = false; } if (firstTypeCode === taxTypeCode.ResearchCost) { showDocDetailProjectCode = true; showDocDetailAmountColumn = false; } } data.forEach(function (item, index) { var dtExpiredFrom = new Date(item.expiredFrom); var dtExpiredTo = new Date(item.expriedTo); var uploadTime = new Date(item.uploadTime); item.expiredDuration = dtExpiredFrom.formatDateTime('yyyy-MM-dd') + ' ' + $translate.instant('Duration') + ' ' + dtExpiredTo.formatDateTime('yyyy-MM-dd'); item.uploadTimeString = uploadTime.formatDateTime('yyyy-MM-dd'); item.amount = PWC.round(item.amount, 2); $scope.documentDetail.push(item); }); var linkName = ''; var linkMethod = ''; if (selectedDocCategroyCode === taxCategoryCode.CIT) { linkName = $translate.instant('LinkToProject'); linkMethod = 'lintToItem'; } if (selectedDocCategroyCode === taxCategoryCode.SpecialTaxIssue) { linkName = $translate.instant('LinkToIssue'); linkMethod = 'linkToTaxTaskIssue'; } var actionTemplate = "<div class='ui-grid-cell-contents document-detail-action'>" + " <span ng-click='grid.appScope." + linkMethod + "(row.entity)' title='" + linkName + "'><i class='fa fa-link'></i></span>" + " <span ng-click='grid.appScope.deleteDocument(row.entity)' title='" + $translate.instant('Delete') + "'><i class='fa fa-trash'></i></span>" + " </div>"; var projectColumn = _.where($scope.gridDocumentDetailOptions.columnDefs, { name: $translate.instant('DocumentProjectCode') })[0]; var amountColumn = _.where($scope.gridDocumentDetailOptions.columnDefs, { name: $translate.instant('Amount') })[0]; if (!_.isUndefined(projectColumn) && !_.isUndefined(amountColumn)) { projectColumn.visible = showDocDetailProjectCode; amountColumn.visible = showDocDetailAmountColumn; } $scope.gridDocumentDetailOptions.columnDefs.push({ name: $translate.instant('Action'), cellTemplate: actionTemplate }); $scope.gridDocumentDetailOptions.data = $scope.documentDetail; $('#modalDocumentDetail').modal('show'); } }); }; //点击浏览按钮 var uploadFiles = function (files) { $scope.selectedUploadFiles = []; $scope.f = files; if (files && files.length) { angular.forEach($scope.f, function (file) { $scope.fileUploadToServer.push(file); var fileType = file.name.substring(file.name.indexOf('.') + 1); var pic = ""; if (fileType === fileExtension.DOC || fileType === fileExtension.DOCX) { pic = "word.png"; } else if (fileType === fileExtension.XLSX || fileType === fileExtension.XLS) { pic = "excel.png"; } else { pic = "txt.png"; } var fileDto = new fileCardConstructor("/app-resources/images/docManage/" + pic, file.name); $scope.selectedUploadFiles.push(fileDto); }); } }; //上传文件到Server var uploadFileToServer = function (files) { //uploadFileDtoList = []; if (files.length === 0) { SweetAlert.warning($translate.instant('SelectUploadFileRequired')); return; } if (files && files.length) { var uploadUrl = webHost + '/api/v1/documentManage/uploadDocuments'; //var code = $("#ddlDocType").dxSelectBox("instance").option('value'); var code = $scope.selectedMultiDocTypes[0];//数据库不支持多个文档类型,只去选中的第一项内容 var nameCode = $("#ddlDocName").dxSelectBox("instance").option('value'); var expireFrom = $("#dateExpiredFrom").dxDateBox("instance").option('value'); var expireTo = $("#dateExpiredTo").dxDateBox("instance").option('value'); var projectCode = $('#projecCode').val(); var amount = $('#amount').val(); if (_.isNull(code) || _.isNull(nameCode)) { SweetAlert.warning($translate.instant('DocTypeDocNameRequired')); return; } for (var i = 0; i < files.length; i++) { var file = files[i]; if (!file.$error) { var fileGuid = PWC.newGuid(); var tempFileName = fileGuid + '.dat'; var token = $('input[name="__RequestVerificationToken"]').val(); var docDto = new documentManageContructor(PWC.newGuid(), 1, code, fileGuid, enums.serviceType.CIT, '' , $scope.periodId, DEFAULT_ORGID, expireFrom, expireTo, nameCode, projectCode, amount); uploadFileDtoList.push(docDto); Upload.upload({ url: uploadUrl, data: { cancel: false, filename: file.name, tempFileName: tempFileName, file: file, period: $scope.period, fileGuid: fileGuid, expireTo: expireTo }, resumeChunkSize: 100000, headers: { 'Access-Control-Allow-Origin': '*', Authorization: apiInterceptor.tokenType + ' ' + apiInterceptor.apiToken(), from: 'TaxAdmin' + '@cn.pwc.com' }, __RequestVerificationToken: token, withCredentials: true }).then(function (resp) { if (resp.data.result) { console.log("uploadDocumentSuccess"); uploadDocumentSuccess(uploadFileDtoList); } console.log(resp); }); } } } }; var uploadDocumentSuccess = function (uploadFileDtoList) { dataImportService.addDoucmentInfor(uploadFileDtoList).success(function (re) { if (re.result) { console.log("start to addDoucmentInfor"); $('#modalUploadFile').modal('hide'); getTaxDocumentsPivot(selectedDocCategroyCode); SweetAlert.success($translate.instant('UploadDocumentSuccess')); } }); }; //打开、下载文件 var openDocumentFile = function (rowEntity) { var filePath = rowEntity.fileFullPath; var fileName = rowEntity.fileName;//rowEntity.fileName; var queryParams = { filePath: filePath, fileName: fileName }; dataImportService.downloadDocuments(queryParams).success(function (data, status, headers) { var octetStreamMime = 'application/octet-stream'; var contentType = headers('content-type') || octetStreamMime; if (window.navigator.msSaveBlob) { var blob = new Blob([data], { type: contentType }); navigator.msSaveBlob(blob, fileName); } else { var urlCreator = window.URL || window.webkitURL || window.mozURL || window.msURL; if (urlCreator) { var a = document.createElement('a'); var blob = new Blob([data], { type: contentType }); var url = urlCreator.createObjectURL(blob); a.href = url; a.target = '_blank'; a.download = fileName;//"ddddd.xlsx";//fileName; document.body.appendChild(a); a.click(); } } }).error(function () { SweetAlert.error($translate.instant('PleaseContactAdministrator')); }); }; //概览: gridview点击cell var onClickDocTypeCell = function (e, obj) { //只有默认机构可以点击cell if ($scope.taxDocTypeGridViewDataSource.row[obj.rowIndex][0].value !== DEFAULT_ORGID) { return; } var header = $scope.taxDocTypeGridViewDataSource.header[obj.columnIndex]; selectedDocTypeCode = header.value; if (header.value === taxTypeCode.ResearchCost //研发费用 || header.value === taxTypeCode.FinanceLost //资产损失 || header.value === taxTypeCode.TaxAudit) {//税务稽查 showDocumentDetail(header.value, DEFAULT_ORGID); } }; //详细:查询 var onClickSearchDetail = function () { $scope.documentQueryDetail = []; var queryPara = { documentCategoryIds: $scope.detailSelectedDocCategory, orgIds: $scope.detailSelectedOrg, expiredFrom: $('#detailDateExpiredFrom').dxDateBox('instance').option('value'), expiredTo: $('#detailDateExpiredTo').dxDateBox('instance').option('value') }; dataImportService.queryDocumentManage(queryPara).success(function (re) { if (re.result) { console.log(re.data); var data = re.data; data.forEach(function (item, index) { var dtExpiredFrom = new Date(item.expiredFrom); var dtExpiredTo = new Date(item.expriedTo); var uploadTime = new Date(item.uploadTime); item.expiredDuration = dtExpiredFrom.formatDateTime('yyyy-MM-dd') + ' ' + $translate.instant('Duration') + ' ' + dtExpiredTo.formatDateTime('yyyy-MM-dd'); item.uploadTimeString = uploadTime.formatDateTime('yyyy-MM-dd'); $scope.documentQueryDetail.push(item); }); $scope.gridDocumentQueryDetailOptions.data = $scope.documentQueryDetail; } }); }; var showSummary = function () { $('#main').show(); $('#detailMain').hide(); $('#mainTab').removeClass('header-troggle-item-inactive').addClass('header-troggle-item-active'); $('#detailTab').removeClass('header-troggle-item-active').addClass('header-troggle-item-inactive'); }; var showDetail = function () { clearData.cleareDetailPage(); $('#detailMain').show(); $('#main').hide(); $('#detailTab').removeClass('header-troggle-item-inactive').addClass('header-troggle-item-active'); $('#mainTab').removeClass('header-troggle-item-active').addClass('header-troggle-item-inactive'); onClickSearchDetail(); }; //设置CitSessionService中的project对象,为跳转到CIT项目做准备 var setCitSessionServiceProject = function () { var logUser = { ID: "66933E7B-DA75-4B2E-B7D6-AB65DCA20D50", UserName: "Admin", }; var reset = function () { var date = new Date(); var m = date.getMonth(); if (m <= 0) { m = 1; } this.month = m; }; return { project: { "index": 24, "id": "896e96d6-4849-4a47-a1e8-f7424e645f26", "name": "XXX金融股份有限公司(深圳)分公司(2016)", "year": 2016, "code": "123456789441", "clientCode": "pwc", "isActive": true, "createTime": "2018-01-10T18:21:04.08+08:00", "updateTime": "2018-01-10T18:21:04.08+08:00", "regionID": "440300", "industryID": "14", "ruleType": 1, "organizationID": "5d17b9f2-d5d2-452c-ae67-8364b6e1e412", "dbName": "a1600003", "serviceTypeID": "6", "haveCreateProject": true, "yearDisplay": 2016, "projectStatusDisplay": "进行中", "serviceIcon": "fa fa-building", "color": "#a32020", "organizationName": "XXX银行股份有限公司总行", "serviceTypeName": "所得税", "industryName": "银行及其他金融服务业", "enterpriseAccountSetID": "bf4d4685-3c9d-4408-ab97-5b4dd780fdb8", "templateGroupID": "3A660A74-DBD7-4FE6-AC18-448962FA8954", "startPeriod": 1, "endPeriod": 12, "projectStatusList": { "1": 30, "6": 10, "12": 10 }, "importSubStatus": null, "workflow": null, "regionName": "深圳", "finalStatus": "../../../app-resources/images/overview/zh-CN/04.png", "taxAmount": "481278978.02", "prepadidTaxAmount": "1", "taxRate": 25, "periodDate": "2016", "modelAbnormal": false, "riskWarning": false, "reportAbnormal": false, "citDataProcessMockData": [ { "id": 1, "name": "更新标准科目余额表", "status": "toUpdate", "text": "需更新", "tasklevel": 1, "parentId": 0, "hasButton": true, "ngClassCol": "", "seqNo": 1 }, { "id": 2, "name": "生成报表", "status": "unstarted", "text": "未开始", "tasklevel": 1, "parentId": 0, "hasButton": false, "ngClassCol": "", "seqNo": 2 }, { "id": 3, "name": "- 财务报表", "status": "toUpdate", "text": "需更新", "tasklevel": 2, "parentId": 2, "hasButton": true, "ngClassCol": "", "seqNo": 3 }, { "id": 4, "name": "- 所得税季度预缴表", "status": "unstarted", "text": "未开始", "tasklevel": 2, "parentId": 2, "hasButton": false, "ngClassCol": "", "seqNo": 4 }, { "id": 5, "name": "· 第一季度预缴表", "status": "completed", "text": "已生成", "tasklevel": 3, "parentId": 4, "hasButton": true, "ngClassCol": "", "seqNo": 5 }, { "id": 6, "name": "· 第二季度预缴表", "status": "unstarted", "text": "未开始", "tasklevel": 3, "parentId": 4, "hasButton": true, "ngClassCol": "", "seqNo": 5 }, { "id": 7, "name": "· 第三季度预缴表", "status": "noData", "text": "无数据", "tasklevel": 3, "parentId": 4, "hasButton": true, "ngClassCol": "", "seqNo": 5 }, { "id": 8, "name": "· 第四季度预缴表", "status": "noData", "text": "无数据", "tasklevel": 3, "parentId": 4, "hasButton": true, "ngClassCol": "", "seqNo": 5 }, { "id": 9, "name": "-年度工作底稿", "status": "unstarted", "text": "未开始", "tasklevel": 2, "parentId": 2, "hasButton": true, "ngClassCol": "", "seqNo": 6 }, { "id": 10, "name": "-年度汇算清缴", "status": "unstarted", "text": "未开始", "tasklevel": 2, "parentId": 2, "hasButton": true, "ngClassCol": "", "seqNo": 7 }, { "id": 11, "name": "模型分析", "status": "completed", "text": "已生成", "tasklevel": 1, "parentId": 0, "hasButton": true, "ngClassCol": "", "seqNo": 8 } ], "hasWarning": true }, projects: [], dataChanged: false, logUser: logUser, year: 2016, month: 1, reset: reset } }; (function initialize() { $scope.selectID = null; if ($stateParams && $stateParams.id) { $scope.selectID = $stateParams.id; } $scope.onClickTab = onClickTab; $scope.showUpload = showUpload; $scope.onClickDocCategory = onClickDocCategory; $scope.uploadFiles = uploadFiles; $scope.onClickDocTypeCell = onClickDocTypeCell; $scope.uploadFileToServer = uploadFileToServer; $scope.openDocumentFile = openDocumentFile; $scope.showDocumentDetail = showDocumentDetail; $scope.lintToItem = lintToItem; $scope.deleteDocument = deleteDocument; $scope.showDetail = showDetail; $scope.showSummary = showSummary; $scope.onClickSearchDetail = onClickSearchDetail; $scope.deleteDocumentQueryDetail = deleteDocumentQueryDetail; $scope.linkToTaxTaskIssue = linkToTaxTaskIssue; initDatePick.initUploadDatePick('detailDateExpiredFrom'); initDatePick.initUploadDatePick('detailDateExpiredTo'); initTaxGridView.initGridDocumentDetail(); initTaxGridView.initGridDocumentQuery(); initDatePick.initGridDatePick(); loadPageData(); var citSessionProjectData = setCitSessionServiceProject(); citSessionService.project = citSessionProjectData.project; citSessionService.logUser = citSessionProjectData.logUser; citSessionService.year = citSessionProjectData.year; citSessionService.month = citSessionProjectData.month; citSessionService.isCRBankDemo = false; //修复多个modal依次弹出时叠加的问题 $(document).on('show.bs.modal', '.modal', function () { var zIndex = 1040 + (10 * $('.modal:visible').length); $(this).css('z-index', zIndex); setTimeout(function () { $('.modal-backdrop').not('.modal-stack').css('z-index', zIndex - 1).addClass('modal-stack'); }, 0); }); })(); }]);