Commit 455e7f5d authored by eddie.woo's avatar eddie.woo

Merge branch 'dev_mysql' of http://code.tech.tax.asia.pwcinternal.com/root/atms into dev_mysql

parents 61a46681 8cf16608
......@@ -60,6 +60,8 @@ public class CellDataDto {
private Boolean isConfigured;
private String validationResult;
public String getCellId() {
return this.cellId;
}
......@@ -259,4 +261,12 @@ public class CellDataDto {
public void setIsConfigured(Boolean configured) {
this.isConfigured = configured;
}
public String getValidationResult() {
return validationResult;
}
public void setValidationResult(String validationResult) {
this.validationResult = validationResult;
}
}
......@@ -9,8 +9,10 @@ import com.google.common.collect.Sets;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.FormulaEvaluator;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
......@@ -25,7 +27,9 @@ import pwc.taxtech.atms.constant.Constant;
import pwc.taxtech.atms.constant.enums.*;
import pwc.taxtech.atms.dao.*;
import pwc.taxtech.atms.dpo.ReportDto;
import pwc.taxtech.atms.dto.*;
import pwc.taxtech.atms.dto.CitAssetsListDto;
import pwc.taxtech.atms.dto.CitDistributionDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.export.ExportDto;
import pwc.taxtech.atms.dto.vatdto.*;
import pwc.taxtech.atms.entity.*;
......@@ -35,6 +39,7 @@ import pwc.taxtech.atms.vat.dao.*;
import pwc.taxtech.atms.vat.dpo.DataSourceCellDataDto;
import pwc.taxtech.atms.vat.dpo.DataSourceExtendDto;
import pwc.taxtech.atms.vat.dpo.InputVATInvoiceItemExtendDto;
import pwc.taxtech.atms.vat.dpo.PeriodCellTemplateConfigDto;
import pwc.taxtech.atms.vat.entity.*;
import pwc.taxtech.atms.vat.service.impl.ReportGeneratorImpl;
import pwc.taxtech.atms.vat.service.impl.report.functions.FormulaHelper;
......@@ -219,6 +224,60 @@ public class CitReportServiceImpl extends BaseService {
periodJobMapper.updateByPrimaryKey(genJob);
reportGenerator.updateWorkbookCaclsValueToDb(projectId, periodParam, workbook, resources, isMergeManualData, genJob);
//===============================================start validation compute==========================================================
//todo: 1.get the data from workbook, then put the data into new workbook
Workbook workbook4Validate = reportGenerator.createWorkBookByPeriodTemplate(resources.getPeriodTemplates(), genJob);
copyDataToWorkbook4Validate(workbook, workbook4Validate);
//todo: 2.get the validate formula in the cell_template_config
List<PeriodCellTemplateConfig> periodCellTemplateConfigs = resources.getPeriodCellTemplateConfigs().stream()
.filter(a -> a.getDataSourceType().equals(CellDataSourceType.Validation.getCode())).collect(Collectors.toList());
List<PeriodCellTemplateConfigDto> periodCellTemplateConfigDtos = new ArrayList<>();
periodCellTemplateConfigs.forEach(a -> {
if (StringUtils.isNotBlank(a.getValidation())) {
Optional<Template> template = templates.stream().filter(t -> t.getId().equals(a.getReportTemplateId())).findFirst();
String templateCode = template.isPresent() ? template.get().getCode() : "";
Integer sheetNumber = template.isPresent() ? template.get().getOrderIndex() : null;
Optional<PeriodCellTemplate> periodCellTemplate = resources.getPeriodCellTemplates().stream().filter(c -> c.getCellTemplateId().equals(a.getCellTemplateId())).findFirst();
Integer rowNumber = periodCellTemplate.isPresent() ? periodCellTemplate.get().getRowIndex() : null;
Integer colNumber = periodCellTemplate.isPresent() ? periodCellTemplate.get().getColumnIndex() : null;
if (StringUtils.isNotBlank(templateCode) && rowNumber != null && colNumber != null) {
String replaceFormula = String.format("BB(\"%s\",%d,%d,0,0)", templateCode, colNumber, rowNumber);
a.setParsedValidation(a.getValidation().replace("aa()", replaceFormula));
PeriodCellTemplateConfigDto periodCellTemplateConfigDto = new PeriodCellTemplateConfigDto();
periodCellTemplateConfigDto.setSheetNumber(sheetNumber);
periodCellTemplateConfigDto.setRowNumber(rowNumber);
periodCellTemplateConfigDto.setColNumber(colNumber);
periodCellTemplateConfigDto.setValidation(a.getValidation());
periodCellTemplateConfigDto.setParsedValidation(a.getParsedValidation());
periodCellTemplateConfigDto.setCellTemplateId(periodCellTemplate.get().getCellTemplateId());
periodCellTemplateConfigDto.setProjectId(projectId);
periodCellTemplateConfigDto.setPeriodParam(periodParam);
periodCellTemplateConfigDtos.add(periodCellTemplateConfigDto);
}
}
});
//todo: 3.use the validate formula to recalculate the new workbook
periodCellTemplateConfigDtos.forEach(a -> {
workbook4Validate.getSheetAt(a.getSheetNumber() - 1).getRow(a.getRowNumber()).getCell(a.getColNumber()).setCellFormula(a.getParsedValidation());
});
reportGenerator.addFunctionsAndContext(workbook4Validate, functions, reportGenerator.initContext(resources, periodParam));
FormulaEvaluator validateEvaluator = workbook4Validate.getCreationHelper().createFormulaEvaluator();
validateEvaluator.evaluateAll();
//todo: 4.then save the validation result to cellData table
periodCellTemplateConfigDtos.forEach(a -> {
//todo: according to periodParam , projectId, cellTemplateId to update the cellData table
PeriodCellDataExample periodCellDataExample = new PeriodCellDataExample();
periodCellDataExample.createCriteria().andCellTemplateIdEqualTo(a.getCellTemplateId()).andProjectIdEqualTo(a.getProjectId()).andPeriodEqualTo(a.getPeriodParam());
Optional<PeriodCellData> cellData = periodCellDataMapper.selectByExample(periodCellDataExample).stream().findFirst();
if (cellData.isPresent()) {
cellData.get().setValidateFormulaExp(a.getParsedValidation());
Boolean result = workbook4Validate.getSheetAt(a.getSheetNumber() - 1).getRow(a.getRowNumber()).getCell(a.getColNumber()).getBooleanCellValue();
cellData.get().setValidateResult(result.toString());
periodCellDataMapper.updateByPrimaryKey(cellData.get());
}
});
//===============================================end validation compute==============================================================
setStatus(genJob, STATUS_END);
periodJobMapper.updateByPrimaryKey(genJob);
} catch (Exception e) {
......@@ -239,6 +298,42 @@ public class CitReportServiceImpl extends BaseService {
return operationResultDto;
}
private void copyDataToWorkbook4Validate(Workbook workbook, Workbook workbook4Validate) {
int sheetNumber = workbook.getNumberOfSheets();
for (int i = 0; i < sheetNumber; i++) {
Sheet sheet = workbook.getSheetAt(i);
for (Row row : sheet) {
for (Cell cell : row) {
String data;
String result;
data = ((XSSFCell) cell).getRawValue();
if (data != null && data.equals("#VALUE!")) {
FormulaEvaluator formulaEvaluator = new XSSFFormulaEvaluator((XSSFWorkbook) workbook);
try {
data = formulaEvaluator.evaluate(cell).getStringValue();
} catch (Exception e) {
logger.error(e.getStackTrace().toString());
data = "0.0";
}
}
if (StringUtils.isNotBlank(data)) {
Pattern pattern = Pattern.compile("[0-9.]*");
Matcher isNum = pattern.matcher(data);
if (isNum.matches()) {
result = new BigDecimal(data).toString();
} else {
result = data;
}
} else {
result = data;
}
workbook4Validate.getSheetAt(i).getRow(row.getRowNum()).getCell(cell.getColumnIndex()).setCellValue(result);
}
}
}
}
/**
* 根据projectId(卡片ID)获取模板
*
......
......@@ -313,7 +313,7 @@ public class ReportGeneratorImpl {
cellDataSource.setPeriod(period);
cellDataSource.setProjectId(projectId);
SpringContextUtil.periodCellDataSourceMapper.insertSelective(cellDataSource);
periodCellDataMapper.insert(cellData);
periodCellDataMapper.insertSelective(cellData);
} else {
logger.warn("should not be !!!");
}
......
package pwc.taxtech.atms.vat.dpo;
public class PeriodCellTemplateConfigDto {
private String validation;
private String parsedValidation;
private Integer sheetNumber;
private Integer rowNumber;
private Integer colNumber;
private Long cellTemplateId;
private String projectId;
private Integer periodParam;
public String getValidation() {
return validation;
}
public void setValidation(String validation) {
this.validation = validation;
}
public String getParsedValidation() {
return parsedValidation;
}
public void setParsedValidation(String parsedValidation) {
this.parsedValidation = parsedValidation;
}
public Integer getSheetNumber() {
return sheetNumber;
}
public void setSheetNumber(Integer sheetNumber) {
this.sheetNumber = sheetNumber;
}
public Integer getRowNumber() {
return rowNumber;
}
public void setRowNumber(Integer rowNumber) {
this.rowNumber = rowNumber;
}
public Integer getColNumber() {
return colNumber;
}
public void setColNumber(Integer colNumber) {
this.colNumber = colNumber;
}
public Long getCellTemplateId() {
return cellTemplateId;
}
public void setCellTemplateId(Long cellTemplateId) {
this.cellTemplateId = cellTemplateId;
}
public String getProjectId() {
return projectId;
}
public void setProjectId(String projectId) {
this.projectId = projectId;
}
public Integer getPeriodParam() {
return periodParam;
}
public void setPeriodParam(Integer periodParam) {
this.periodParam = periodParam;
}
}
......@@ -233,6 +233,8 @@ citModule.controller('citLayoutController', ['$scope', '$rootScope', '$location'
// });
// }
// else
// Data Preview
if (data[constant.citPermission.dataPreview.journalMerge.queryCode]) {
$scope.menus.push({
name: 'previewData', state: 'previewData', num: 2,
......@@ -307,6 +309,7 @@ citModule.controller('citLayoutController', ['$scope', '$rootScope', '$location'
});
}
// Data Manage
if (data[constant.citPermission.dataManage.caculateDataCode]) {
$scope.menus.push({
name: 'reductionData', state: 'reductionData', num: 3,
......@@ -319,18 +322,7 @@ citModule.controller('citLayoutController', ['$scope', '$rootScope', '$location'
permission: constant.citPermission.dataManage.caculateDataCode,
url: '#/cit/reductionData/caculateData'
});
} else if (data[constant.citPermission.dataManage.accountMappingCode]) {
$scope.menus.push({
name: 'reductionData', state: 'reductionData', num: 3,
permission: constant.citPermission.dataManage.dataManageCode, url: '#/cit/reductionData'
});
subMenus.push({
name: 'reductionData.accountMapping',
state: 'reductionData.accountMapping',
num: 3,
permission: constant.citPermission.dataManage.accountMappingCode,
url: '#/cit/reductionData/accountMapping'
});
} else if (data[constant.citPermission.dataManage.assetEamMapping]) {
$scope.menus.push({
name: 'reductionData', state: 'reductionData', num: 3,
......@@ -356,6 +348,20 @@ citModule.controller('citLayoutController', ['$scope', '$rootScope', '$location'
url: '#/cit/reductionData/distributionTable'
});
}
// } else if (data[constant.citPermission.dataManage.accountMappingCode]) {
// $scope.menus.push({
// name: 'reductionData', state: 'reductionData', num: 3,
// permission: constant.citPermission.dataManage.dataManageCode, url: '#/cit/reductionData'
// });
// subMenus.push({
// name: 'reductionData.accountMapping',
// state: 'reductionData.accountMapping',
// num: 3,
// permission: constant.citPermission.dataManage.accountMappingCode,
// url: '#/cit/reductionData/accountMapping'
// });
if (data[constant.citPermission.reportView.bsplCode]
|| data[constant.citPermission.reportView.quarterlyFilingReturnTypeCode]
......
......@@ -63,7 +63,7 @@
taxGroupType:''
};
$scope.refreshAssetResultListGrid = function () {
debugger;
$log.debug("refreshAssetResultListGrid");
getAssetResultList($scope.citAssetsListDto.assetType);
};
......@@ -265,7 +265,7 @@
$scope.TotalTaxCurrentYearDepreciationAmount = 0;
$scope.TotalYearDifferenceAmount = 0;
assetListService.getAssetResultListPage($scope.citAssetsListDto).success(function (assetListData) {
debugger;
var data = assetListData.data.list;
if (data) {
var index = 1;
......@@ -987,14 +987,14 @@
};
var doDataFilter = function () {
debugger;
// initParamFilter();
getAssetResultList($scope.citAssetsListDto.assetType);
}
var doDataFilterReset = function () {
debugger;
// initParamFilter();
$scope.citAssetsListDto.taxAccountCompare =2;
$scope.citAssetsListDto.assetGroupName = null;
......@@ -1007,7 +1007,7 @@
//开始
(function initialize() {
//分页的设置
debugger;
//分页的设置
$scope.pagingOptions = {
pageIndex: 1, //当前页码
......@@ -1024,14 +1024,14 @@
$scope.changeSheet = changeSheet;
$scope.doDataFilter = doDataFilter;
$scope.doDataFilterReset = doDataFilterReset;
debugger;
function init(){
initColumns();
initDxGrid();
initAssetResultDxGrid();
getAssetResultList(1);
debugger;
getGroupList();
getGroupDetailList();
getUserPermission();
......
......@@ -72,7 +72,7 @@ function ($scope, $q, $log, $translate, $location, loginContext, enums, vatSessi
else if ($location && $location.absUrl().indexOf('reductionData') > -1) {
$scope.nodeDicKey = constant.DictionaryDictKey.DataProcess;
$scope.linkShort = enums.linkShort.ReductionData;
debugger;
$scope.menus = [
{
name: 'caculateData', permission: constant.citPermission.dataManage.caculateDataCode,
......
......@@ -14,7 +14,7 @@
$scope.moduleid = enums.vatModuleEnum.Import_CalculateData;
var initTasks = function () {
debugger;
var task = function (id, status, name,code) {
this.id = id;
this.name = _.isEmpty(name) ? $translate.instant(id) : name;
......@@ -199,7 +199,7 @@ debugger;
task.prototype.code =null;
citReportService.getCitTemplate(vatSessionService.project.id, constant.serviceType.CIT).then(function (report) {
debugger;
var result = [];
// result.push({ name: $translate.instant('ProcessData'), items: [new task('GenerateStdTb', 'unstarted')] });
// result.push({ name: $translate.instant('ProcessData'), items: [new task('CompareUnbilled', 'unstarted')] });
......@@ -248,7 +248,7 @@ debugger;
i++;
taskList = taskList.concat(item.items);
});
debugger;
$scope.tasks = result;
getInitTaskStatus();
});
......@@ -289,16 +289,16 @@ debugger;
function doStartCaculate2(isMergeManualDataSource) {
citReportService.generateAllCitReport(vatSessionService.project.id, isMergeManualDataSource, vatSessionService.logUser.id ? vatSessionService.logUser.id : "").success(function (data) {
debugger;
$scope.readonly = true;
if(data && data.result)
updateTasksStatus(data.data);
if(data.data.jobStatus=='Begin'||data.data.jobStatus=='Running'){
if(!$scope.timer)
$scope.timer= $interval(function(){
debugger;
citReportService.getJobStatus(vatSessionService.project.id,0,data.data.id).then(function(result){
debugger;
if(result.data && result.status == 200){
updateTasksStatus(result.data);
}else{
......@@ -326,9 +326,9 @@ debugger;
}
var startCaculate = function () {
debugger;
var a = vatSessionService.project.projectStatusList;
debugger;
if (vatSessionService.project.projectStatusList[0] >= constant.ProjectStatusEnum.Generated) {
swal({
title: "warning!",
......@@ -379,9 +379,9 @@ debugger;
};
var startCaculate2 = function () {
debugger;
var a = vatSessionService.project.projectStatusList;
debugger;
if (vatSessionService.project.projectStatusList[vatSessionService.month] >= constant.ProjectStatusEnum.Generated) {
swal({
title: "warning!",
......@@ -576,17 +576,17 @@ debugger;
var updateTasksStatus = function(job){
var items = $scope.tasks;
var tasks = JSON.parse(job.status);
debugger;
if(job.jobStatus == 'End'){
debugger;
items.forEach(function(item,index){
debugger;
item.status = 'completed';
item.text = $translate.instant('completed');
item.items.forEach(function (_task, index) {
debugger;
tasks.forEach(function(task){
debugger;
if(task.code==_task.code){
_task.status = 'completed';
_task.text = $translate.instant(_task.status);
......@@ -628,13 +628,13 @@ debugger;
if($scope.timer)$interval.cancel($scope.timer);
}
}
debugger;
items.forEach(function(item,index){
debugger;
item.items.forEach(function (_task, index) {
debugger;
tasks.forEach(function(task){
debugger;
if(task.code==_task.code){
if(task.status == 'Error'){
_task.status = 'error';
......@@ -651,19 +651,19 @@ debugger;
}
var getInitTaskStatus = function(){
debugger;
citReportService.getRunningJob(vatSessionService.project.id,0).then(function (result) {
debugger;
if(result.data && result.status == 200){
updateTasksStatus(result.data);
if(result.data.jobStatus=='Begin'||result.data.jobStatus=='Running'){
if(!$scope.timer)
debugger;
$scope.timer= $interval(function(){
debugger;
citReportService.getJobStatus(vatSessionService.project.id,0,result.data.id)
.then(function(result){
debugger;
if(result.data && result.status == 200){
updateTasksStatus(result.data);
}else{
......
......@@ -83,7 +83,7 @@
exceptionMsg = $translate.instant('ModelException');
}
if (!_.isEmpty(cellData.validationErrorList)) {
if (!_.isEmpty(cellData.validationResult)) {
hasException = true;
if (_.isEmpty(exceptionMsg)) {
exceptionMsg = $translate.instant('ValidationException');
......@@ -94,13 +94,13 @@
}
if (hasException) {
cell.value(cell.text() + ' '); // Edmond TODO: Temp move cell value for CIT demo
//cell.value(cell.text() + ' '); // Edmond TODO: Temp move cell value for CIT demo
icons.push(hasExceptionImg);
infos.push(exceptionMsg);
}
try {
cell.cellType(new IconsCellType(icons, infos, tips));
cell.cellType(new IconsCellType(icons, infos, tips)).hAlign(0);
}
catch (e) {
}
......
......@@ -9,7 +9,6 @@ webservices.factory('assetListService', ['$http', 'apiConfig', function ($http,
return $http.get('/asset/getAssetResultList?assetType=' + assetType + '&projectId=' + projectId + '&taxAccountCompare=' + taxAccountCompare, apiConfig.create());
},
getAssetResultListPage: function (citAssetsListDto) {
debugger;
return $http.post('/asset/getAssetResultListPage', citAssetsListDto, apiConfig.create());
},
getAssetGroupResultData: function (projectId) {
......
......@@ -4,8 +4,8 @@
// AppNavBarController controller for the navigation bar of the application. This controller is responsible for
// manage the different types of the tabs and corresponding menus.
frameworkModule.controller('AppNavController', ['$rootScope', '$scope', '$log', '$state' ,'loginContext', 'application', 'userService', '$translate', 'vatSessionService', '$interval', 'workflowService',
function ($rootScope, $scope, $log, $state ,loginContext, application, userService, $translate, vatSessionService, $interval, workflowService) {
frameworkModule.controller('AppNavController', ['$rootScope', '$scope', '$log', '$state', 'loginContext', 'application', 'userService', '$translate', 'vatSessionService', '$interval', 'workflowService',
function ($rootScope, $scope, $log, $state, loginContext, application, userService, $translate, vatSessionService, $interval, workflowService) {
'use strict';
$log.debug('AppNavController.ctor()...');
......@@ -45,8 +45,8 @@ frameworkModule.controller('AppNavController', ['$rootScope', '$scope', '$log',
$rootScope.$on('notification-read', function () {
$scope.msgNum--;
});
var getNotificationInfo = function () {
var getNotificationInfo = function () {
$scope.notificationCriteriaX = {
isFirstTimeLoading: false,
filterType: "MAIN",
......@@ -116,39 +116,51 @@ frameworkModule.controller('AppNavController', ['$rootScope', '$scope', '$log',
// todo 增值税申报和报表审批菜单没有做权限管理,可以在这里一起加上
var list = [];
list.push(constant.adminPermission.WebAdmin);
list.push(constant.vatPermission.code);
list.push(constant.citPermission.code);
list.push(constant.analysisPermisson.code);
list.push(constant.menuRecordManagePermission.code);
list.push(constant.menuListApprovalPermission.code);
$scope.$root.checkUserPermissionList(list).success(function (data) {
$scope.adminSettingShow = data[constant.adminPermission.WebAdmin];
$scope.vatShow = data[constant.vatPermission.code];
$scope.citShow = data[constant.citPermission.code];
$scope.analysisShow = data[constant.analysisPermisson.code];
$scope.menuRecordManageShow = data[constant.menuRecordManagePermission.code];
$scope.menuListApprovalShow = data[constant.menuListApprovalPermission.code];
});
};
//设置 菜单选中状态
var initState = function(){
var initState = function () {
$($('.nav-container .nav-element-left a')[0]).addClass('active');
$rootScope.$on('$stateChangeStart', function (event, toState, toParams, fromState, fromParams) {
$log.debug("$stateChangeStart: toState="+toState.name);
$log.debug("$stateChangeStart: toState=" + toState.name);
// 这里没想好怎么搞,暂时先这样点击导入按钮更新下display,nav-bar里其他的按钮更新display,其他不做操作
var isNeedHide = angular.equals('notification',toState.name)||
angular.equals('summary',toState.name)||
angular.equals('taxDocumentManage',toState.name)||
angular.equals('overviewCit',toState.name)||
angular.equals('overviewAssetsManage',toState.name)||
angular.equals('listApproval',toState.name)||
angular.equals('overviewVat',toState.name)||
angular.equals('taxDocumentManage',toState.name)||
angular.equals('overview',toState.name);
if(isNeedHide){
var isNeedHide = angular.equals('notification', toState.name) ||
angular.equals('summary', toState.name) ||
angular.equals('taxDocumentManage', toState.name) ||
angular.equals('overviewCit', toState.name) ||
angular.equals('overviewAssetsManage', toState.name) ||
angular.equals('listApproval', toState.name) ||
angular.equals('overviewVat', toState.name) ||
angular.equals('taxDocumentManage', toState.name) ||
angular.equals('overview', toState.name);
if (isNeedHide) {
$('.data-import-contents')[0].style.display = "none";
$('.main-contents')[0].style.width = "";
$('.main-contents')[0].style.float = "";
$('.main-contents')[0].style.styleFloat = "";
$('.main-contents')[0].style.cssFloat = "";
// $('.data-import-contents').removeClass('data-import-contents');
}else if(angular.equals('overviewDataImp',toState.name)){
} else if (angular.equals('overviewDataImp', toState.name)) {
$('.data-import-contents')[0].style.display = "block";
}else if(angular.equals('overviewAnalysis',toState.name)){
} else if (angular.equals('overviewAnalysis', toState.name)) {
$('.data-import-contents')[0].style.display = "block";
}
/*$('.nav-container .nav-element-left a').removeClass('active');
......@@ -156,18 +168,25 @@ frameworkModule.controller('AppNavController', ['$rootScope', '$scope', '$log',
});
};
var getMenuIndex = function(name){
switch(name){
case 'GlobalSearch': return 0;
case 'summary': return 0;
case 'summaryDashboard': return 3;
case 'RiskPanel': return 3;
case 'DataSummary': return 3;
default: return 2;
};
var getMenuIndex = function (name) {
switch (name) {
case 'GlobalSearch':
return 0;
case 'summary':
return 0;
case 'summaryDashboard':
return 3;
case 'RiskPanel':
return 3;
case 'DataSummary':
return 3;
default:
return 2;
}
;
};
$scope.search = function(){
$scope.search = function () {
PWC.simulateProgress();
$state.go('GlobalSearch');
};
......
......@@ -16,26 +16,26 @@
<!--</a>-->
<!--</div>-->
<div class="nav-element-left">
<a ui-sref="overviewVat" hover-show="first">
<a ui-sref="overviewVat" hover-show="first" ng-if="vatShow">
<span class="nav-icon-color">{{'MenuVAT' | translate}}</span>
</a>
</div>
<div class="nav-element-left">
<div class="nav-element-left" ng-if="citShow">
<a ui-sref="overviewCit">
<span class="nav-icon-color">{{'MenuCIT' | translate}}</span>
</a>
</div>
<div class="nav-element-left">
<div class="nav-element-left" ng-if="analysisShow">
<a ui-sref="taxDocumentManage">
<span class="nav-icon-color">{{'MenuRecordManage' | translate}}</span>
</a>
</div>
<div class="nav-element-left">
<div class="nav-element-left" ng-if="menuRecordManageShow">
<a ui-sref="overviewAnalysis">
<span class="nav-icon-color">{{'MenuAnalysis' | translate}}</span>
</a>
</div>
<div class="nav-element-left">
<div class="nav-element-left" ng-if="menuListApprovalShow">
<a ui-sref="listApproval">
<span class="nav-icon-color">{{'MenuListApproval' | translate}}</span>
</a>
......
......@@ -16,8 +16,8 @@
<i class="fa fa-calendar vat-subheader red-color" style="font-size:20px;"></i>
<input type="text" id="vatDatepicker" class="datepicker vat-subheader" style="border-width:0;outline:none;" readonly="readonly" />
<div id="vat-menu-buttons" style="display:inline-block;">
<a ng-repeat="menu in menus" ui-sref-active="active" ng-click="setReportSession(menu.name);" ui-sref=".{{menu.name}}"
atms-permission permission-control-type="ngIf" permission-code="{{menu.permission}}">{{menu.state | translate}}</a>
<a ng-repeat="menu in menus" ui-sref-active="active" ng-click="setReportSession(menu.name);" ui-sref=".{{menu.state}}"
atms-permission permission-control-type="ngIf" permission-code="{{menu.permission}}">{{menu.name | translate}}</a>
</div>
<!--<button class="btn btn-vat-primary" translate="TriggerMessageSchedulerJob" ng-click="triggerSchedulerJob()"></button>-->
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment