Commit 20b6f4e0 authored by neo's avatar neo

[dev] add tree and blanc page for approval

parent 841c9a3e
......@@ -237,7 +237,7 @@ var frameworkModule = angular.module('app.framework', ['app.webservices', 'app.c
function ($scope, $stateParams, appTranslation) {
appTranslation.load([appTranslation.vat,appTranslation.appPart]);
}],
template: '<app-overview servicetypeid="2"></app-overview>',
template: '<app-approve servicetypeid="2"></app-overview>',
}
},
deepStateRedirect: true,
......
frameworkModule.controller('appApproveController', ['$rootScope', '$scope', '$timeout', '$q', '$log', '$translate', '$state', '$interval',
'uiGridConstants', 'projectService', 'vatSessionService', 'orgService', 'serviceTypeService', 'userService', 'loginContext', 'enums',
'citSessionService', 'region', 'SweetAlert', 'productService', 'localStorageService', 'assetsManageSessionService','serviceLogService',
'ackUibModal', 'Upload', 'apiInterceptor',
function ($rootScope, $scope, $timeout, $q, $log, $translate, $state, $interval, uiGridConstants, projectService, vatSessionService,
orgService, serviceTypeService, userService, loginContext, enums, citSessionService, region, SweetAlert, productService,
localStorageService, assetsManageSessionService, serviceLogService, ackUibModal, Upload, apiInterceptor) {
'use strict';
$log.debug('appOverviewController.ctor()...');
var uploadUrl = apiInterceptor.webApiHostUrl + '/product/NewFile';
var resumable = true;
$scope.chunkSize = 100000;
$scope.conditionChange = false;
var token = $('input[name="__RequestVerificationToken"]').val();
//$scope.randomDemoData = {
// projectId:null,
// taxAmount: 0,
// prepadidTaxAmount: 0,
// taxRate: 0
//};
//**********************************************************************************************
$scope.dateFormat = $translate.instant('dateFormat4Year');
//always select a month before current month: update the year if the current month is Jan.(1)
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth();
//$scope.selectedDate = new Date(year, month - 1, 1);
$scope.startDate = new Date(year - 20, 1, 1);
$scope.endDate = new Date(year + 20, 1, 1);
$scope.selectedDate = new Date(vatSessionService.year, vatSessionService.month - 1, 1);
$scope.selectedStartDate = new Date(vatSessionService.year, vatSessionService.month - 1, 1);
$scope.serviceTypeId = $scope.servicetypeid.toString();
$scope.ongoingNum = 0;
$scope.notBeginNum = 0;
$scope.completedNum = 0;
//*************************************************************************************************
$scope.randomCounter = 0;
$scope.allResults = [];
$scope.checkedOrgs = {};
$scope.orgList = [];
$scope.orderYear = true;
$scope.orderName = true;
$scope.orderStatus = true;
$scope.orderType = true;
$scope.isFirst = true;
$scope.haveVatPermission = false;
$scope.currentSelectedMonth = vatSessionService.month;
$scope.currentSelectedYear = vatSessionService.year;
var thisData = {
userPermission: {}
};
userService.getUserByName(loginContext.userName).success(function (userData) {
vatSessionService.logUser = userData;
});
$scope.doWorkflowSort = function (sortstr) {
$scope.randomCounter++;
$scope.sortString = sortstr + "_" + $scope.randomCounter;
};
//设置项目状态Title
function setLayoutStatusTitle(statusIds) {
var currentMonth = vatSessionService.month;
var statusId;
//(p.projectStatusList !== null && p.projectStatusList[1] !== undefined) ? setLayoutStatusTitle(p.projectStatusList[1]) : $scope.translateProjectStatus(p.haveCreateProject)
if (statusIds === null || (statusIds !== null && statusIds[currentMonth] === undefined))
statusId = 0;
else {
statusId = statusIds[currentMonth];
}
var status = "../../../app-resources/images/overview/";
if (region === 'zh-CN') {
status += 'zh-CN';
}
else {
status += 'en-US';
}
// $log.debug("setLayoutStatusTitle");
// $scope.statusTitle = $translate.instant('ProjectStatusTitle');
switch (statusId) {
case constant.ProjectStatusEnum.UnStarted:
status += "/01.png"; //$translate.instant('ProjectStatusUnStarted');
break;
case constant.ProjectStatusEnum.Imported:
status += "/02.png"; // $translate.instant('ProjectStatusImported');
break;
case constant.ProjectStatusEnum.AccountMapSubmitted:
status += "/03.png";// $translate.instant('ProjectStatusAcccountMapSubmitted');
break;
case constant.ProjectStatusEnum.Generated:
status += "/04.png";// $translate.instant('ProjectStatusGenerated');
break;
case constant.ProjectStatusEnum.ReportSubmitted:
status += "/05.png"; //$translate.instant('ProjectStatusReportSubmitted');
break;
case constant.ProjectStatusEnum.ReportApproved:
status += "/07.png"; //$translate.instant('ProjectStatusReportApproved');
break;
case constant.ProjectStatusEnum.ReportRejected:
status += "/06.png"; //$translate.instant('ProjectStatusReportRejected');
break;
case constant.ProjectStatusEnum.Completed:
status += "/08.png";// $translate.instant('ProejctStatusCompleted');
break;
default:
status += "/01.png";
}
return status;
}
function setLayoutStatusTitleForCIT(statusIds) {
var currentMonth = vatSessionService.month;
var statusId;
//(p.projectStatusList !== null && p.projectStatusList[1] !== undefined) ? setLayoutStatusTitle(p.projectStatusList[1]) : $scope.translateProjectStatus(p.haveCreateProject)
if (statusIds === null || (statusIds !== null && statusIds.length === 0))
statusId = 0;
else {
statusId = statusIds[Object.keys(statusIds)[Object.keys(statusIds).length - 1]]
// statusId = statusIds[currentMonth];
}
var status = "../../../app-resources/images/overview/";
if (region === 'zh-CN') {
status += 'zh-CN';
}
else {
status += 'en-US';
}
// $log.debug("setLayoutStatusTitle");
// $scope.statusTitle = $translate.instant('ProjectStatusTitle');
switch (statusId) {
case constant.ProjectStatusEnum.UnStarted:
status += "/01.png"; //$translate.instant('ProjectStatusUnStarted');
break;
case constant.ProjectStatusEnum.Imported:
status += "/02.png"; // $translate.instant('ProjectStatusImported');
break;
case constant.ProjectStatusEnum.AccountMapSubmitted:
status += "/03.png";// $translate.instant('ProjectStatusAcccountMapSubmitted');
break;
case constant.ProjectStatusEnum.Generated:
status += "/04.png";// $translate.instant('ProjectStatusGenerated');
break;
case constant.ProjectStatusEnum.ReportSubmitted:
status += "/05.png"; //$translate.instant('ProjectStatusReportSubmitted');
break;
case constant.ProjectStatusEnum.ReportApproved:
status += "/07.png"; //$translate.instant('ProjectStatusReportApproved');
break;
case constant.ProjectStatusEnum.ReportRejected:
status += "/06.png"; //$translate.instant('ProjectStatusReportRejected');
break;
case constant.ProjectStatusEnum.Completed:
status += "/08.png";// $translate.instant('ProejctStatusCompleted');
break;
default:
status += "/01.png";
}
return status;
}
function initListGrid() {
var listColumns = [
{ caption: $translate.instant('SequenceNo'), dataField: "index", width: 100, },
//{ caption: $translate.instant('SapDate'), dataField: "sapDate", dataType: "date", format: "yyyy-MM-dd", },
//{ caption: $translate.instant('ProjectNameCol'), dataField: "name", },
{ caption: $translate.instant('ProjectCompanyCol'), dataField: "organizationName", },
{ caption: $translate.instant('PIndustry'), dataField: "industryName", },
//{
// caption: $translate.instant('SapProductType'), dataField: "sapProductType",
// calculateCellValue: function (rowData) {
// return rowData.sapProductType ? convertProductTypeToStr(rowData.sapProductType) : null;
// },
//},
{ caption: $translate.instant('ProjectYearCol'), dataField: "year", width: 100, },
{ caption: $translate.instant('ProjectServiceCol'), dataField: "serviceTypeName", },
{ caption: $translate.instant('ProjectStatus'), dataField: "projectStatusDisplay", },
// {
// caption: $translate.instant('TotalBuildAmount'), dataField: "totalAmount",
// format: { type: 'fixedPoint', precision: 2 },
// },
];
$scope.deferStatus = true;
$scope.gridListOptions = {
columns: listColumns,
bindingOptions: {
"dataSource": "queryResults"
},
loadPanel: {
enabled: true
},
//scrolling: {
// mode: "virtual"
//},
hoverStateEnabled: true,
paging: { pageSize: 20 },
noDataText: $translate.instant('AccountVoucher_DataGrid_NoDataText'),
selection: { mode: "single" },
onRowClick: function (e) {
$scope.goToService(e.data);
}
}
};
// TODO: REAL Translation for Industry and Region
var initIndustryName = function (industryID, industryName) {
var industryKey = '';
switch (industryID) {
case '0':
industryKey = 'GeneralIndustry';
break;
case '1':
industryKey = 'IndustryIndustry';
break;
case '10':
industryKey = 'AssetManagement';
break;
case '13':
industryKey = 'MobileManufacturingIndustry';
break;
case '14':
industryKey = 'FinancialServiceIndustry';
break;
case '20':
industryKey = 'ManufacturingIndustry';
break;
case '23':
industryKey = 'EstateIndustry';
break;
default:
break;
}
if (!_.isEmpty(industryKey)) {
industryName = $translate.instant(industryKey);
}
return industryName;
};
var initRegionName = function (regionID, regionName) {
var regionKey = '';
switch (regionID) {
case '310000':
case '310100':
regionKey = 'Shanghai';
break;
case '110000':
case '110100':
regionKey = 'Beijing';
break;
case '440300':
regionKey = 'Shenzhen';
break;
default:
break;
}
if (!_.isEmpty(regionKey)) {
regionName = $translate.instant(regionKey);
}
return regionName;
};
$scope.initCitDataProcessMockData = function () {
var task = function (id, status, name, tasklevel, parentId, hasButton, seqNo) {
this.id = id;
this.name = _.isEmpty(name) ? $translate.instant(id) : name;
this.status = status;
this.text = $translate.instant(status);
this.tasklevel = tasklevel;
this.parentId = parentId;
this.hasButton = hasButton;
this.ngClassCol = '';
this.seqNo = seqNo;
};
var result = [];
result.push(new task(1, constant.DataProccessStatus.ToUpdate, 'DataProcessDataName_UpdateTB', 1, 0, true, 1));
result.push(new task(2, constant.DataProccessStatus.Unstarted, 'DataProcessDataName_GenerateReport', 1, 0, false, 2));
result.push(new task(3, constant.DataProccessStatus.ToUpdate, 'DataProcessDataName_UpdateReportConfig', 2, 2, true, 3));
result.push(new task(4, constant.DataProccessStatus.ToUpdate, 'DataProcessDataName_FinanceReport', 2, 2, true, 4));
result.push(new task(5, constant.DataProccessStatus.Unstarted, 'DataProcessDataName_CITQuarterly', 2, 2, false, 5));
result.push(new task(6, constant.DataProccessStatus.Completed,'DataProcessDataName_CITFirstQuarterly', 3, 5, true, 6));
result.push(new task(7, constant.DataProccessStatus.Unstarted,'DataProcessDataName_CITSecondQuarterly', 3, 5, true, 6));
result.push(new task(8, constant.DataProccessStatus.NoData, 'DataProcessDataName_CITThirdQuarterly', 3, 5, true, 6));
result.push(new task(9, constant.DataProccessStatus.NoData, 'DataProcessDataName_CITForthQuarterly', 3, 5, true, 6));
result.push(new task(10, constant.DataProccessStatus.Unstarted, 'DataProcessDataName_YearWorkPaper', 2, 2, true, 7));
result.push(new task(11, constant.DataProccessStatus.Unstarted, 'DataProcessDataName_AnnualSettlement', 2, 2, true, 8));
result.push(new task(12, constant.DataProccessStatus.Completed, 'DataProcessDataName_ModelAnalysis', 1, 0, true, 9));
return result;
}
$scope.initProjectList = function (orgID, serviceID, projectYear) {
$scope.currentView = 'cardView';
if (!orgID) {
orgID = '';
}
if (!serviceID) {
serviceID = '';
}
if (!projectYear) {
projectYear = null;
}
projectService.getAllProjectList(orgID, serviceID, projectYear).success(function (projectListData) {
if (projectListData && projectListData.length > 0) {
var index = 1;
$timeout(function () {
projectListData.forEach(function (p) {
//if (thisDataService.isHaveOrganizationPermission(p.organizationID)) {
if (PWC.isHavePermissionForOrg(p.organizationID, vatSessionService.userPermission))
// && $scope.haveVatPermission)
{
$scope.allResults.push({
index: index++,
id: p.id,
name: p.name,
year: p.year,
code: p.code,
clientCode: p.clientCode,
isActive: p.isActive,
createTime: p.createTime,
updateTime: p.updateTime,
regionID: p.regionID,
industryID: p.industryID,
ruleType: p.ruleType,
organizationID: p.organizationID,
dbName: p.dbName,
serviceTypeID: p.serviceTypeID,
region: p.region,
haveCreateProject: p.haveCreateProject,
yearDisplay: $scope.getYearDisplay(p),
projectStatusDisplay: $scope.translateProjectStatus(p.haveCreateProject),
serviceIcon: getServiceIcon(p.serviceTypeID),
color: getColor(p.serviceTypeID),
organizationName: p.organizationName,
serviceTypeName: getServiceTypeName(p.serviceTypeID),
industryName: initIndustryName(p.industryID, p.industryName), //p.industryName,
enterpriseAccountSetID: p.enterpriseAccountSetID,
templateGroupID: p.templateGroupID,
startPeriod: p.startPeriod,
endPeriod: p.endPeriod,
projectStatusList: p.projectStatusList, //Dictionary<int,int>类型,存放当前项目每个期间的状态的。第一个int:期间,第二个int:状态
importSubStatus: null, //当前项目,当前期间的子状态(是否导入Tb,序时账等等)
workflow: null, //当前项目workflow数据
regionName: initRegionName(p.regionID, p.regionName), //p.regionName,
finalStatus: setLayoutStatusTitle(null) //(p.projectStatusList !== null && p.projectStatusList[1] !== undefined) ? setLayoutStatusTitle(p.projectStatusList[1]) : $scope.translateProjectStatus(p.haveCreateProject)
, taxAmount: 0
, prepadidTaxAmount: 0
, taxRate: 0
, periodDate: getPeriodDate(p.serviceTypeID)
, modelAbnormal: false
, riskWarning: false
, reportAbnormal: false,
citDataProcessMockData: $scope.initCitDataProcessMockData()
});
}
});
vatSessionService.projects = _.clone($scope.allResults);
$scope.queryResults = _.clone($scope.allResults);
$scope.gridListOptions.bindingOptions = { "dataSource": "queryResults" };
//$scope.query();
goQueryState();
}, 300);
} else {
vatSessionService.projects = [];
$scope.queryResults = [];
$scope.gridListOptions.bindingOptions = [];
}
});
};
$scope.smartSearch = function (isReset) {
if (isReset) {
$scope.searchKeyword = "";
}
vatSessionService.queryDto.searchKeyword = $scope.searchKeyword;
if ($scope.serviceTypeId !== '12') {
$scope.query();
}
};
$scope.translateProjectStatus = function (isCreate) {
if (isCreate) {
return $translate.instant('OnGoing');
} else {
return $translate.instant('NotBegin');
}
}
$scope.getYearDisplay = function (p) {
if (p.serviceTypeID === enums.serviceType.VAT || p.serviceTypeID === enums.serviceType.AssetsManage) {
return p.year + "." + p.startPeriod + "-" + p.year + "." + p.endPeriod;
} else {
return p.year;
}
}
var getColor = function (serType) {
var color = "#e0301e";
switch (serType) {
case enums.serviceType.VAT:
color = "#e0301e";
break;
case enums.serviceType.FDD:
color = "#d04a02";
break;
case enums.serviceType.CIT:
color = "#a32020";
break;
case enums.serviceType.TaxAudit:
color = "#602320";
break;
case enums.serviceType.RPT:
color = "#d93954";
break;
}
return color;
};
var getServiceIcon = function (serType) {
var type = "fa fa-diamond";
switch (serType) {
case enums.serviceType.VAT:
type = "fa fa-diamond";
break;
case enums.serviceType.FDD:
type = "fa fa-credit-card";
break;
case enums.serviceType.CIT:
type = "fa fa-building";
break;
case enums.serviceType.TaxAudit:
type = "fa fa-money";
break;
case enums.serviceType.RPT:
type = "fa fa-globe";
break;
}
return type;
};
var getServiceTypeName = function (serType) {
var rtn;
switch (serType) {
case enums.serviceType.VAT:
rtn = $translate.instant("VATType");
break;
case enums.serviceType.CIT:
rtn = $translate.instant("CITType");
break;
default:
rtn = $translate.instant("VATType");
break;
}
return rtn;
};
var getPeriodDate = function (serType) {
var periodDate;
if (serType === enums.serviceType.CIT) {
periodDate = $scope.currentSelectedYear + "";
}
else {
periodDate = $scope.currentSelectedYear + "." + $scope.currentSelectedMonth;
}
return periodDate;
};
$scope.query = function () {
if (!$scope.allResults) return;
var temp = $scope.allResults;
if ($scope.checkedOrgs && _.keys($scope.checkedOrgs).length > 0) {
temp = _.filter(temp, function (i) {
return _.contains(_.values($scope.checkedOrgs), i.organizationName);
});
}
//if ($scope.checkedYears && $scope.checkedYears.length > 0) {
// temp = _.filter(temp, function (i) { return _.contains(_.pluck($scope.checkedYears, 'name'), i.year) })
//}
if ($scope.serviceTypeId) {
temp = _.filter(temp, function (i) {
return $scope.serviceTypeId == i.serviceTypeID;
});
}
if (vatSessionService.year) {
if ($scope.serviceTypeId === enums.serviceType.VAT) {
temp = _.filter(temp, function (i) {
if (i.startPeriod <= vatSessionService.month && i.endPeriod >= vatSessionService.month && i.year == vatSessionService.year) {
return i;
}
});
}
else if ($scope.serviceTypeId === enums.serviceType.CIT) {
temp = _.filter(temp, function (i) {
return vatSessionService.year == i.year;
});
}
}
if ($scope.checkedRegions && $scope.checkedRegions.length > 0) {
temp = _.filter(temp, function (i) {
return _.contains(_.pluck($scope.checkedRegions, 'name'), i.region);
});
}
if ($scope.checkedStatus && $scope.checkedStatus.length > 0) {
temp = _.filter(temp, function (i) {
return _.contains(_.pluck($scope.checkedStatus, 'name'), i.status);
});
}
if ($scope.searchKeyword !== undefined && $scope.searchKeyword.length > 0) {
temp = _.filter(temp, function (i) {
return (i.name.toUpperCase().indexOf($scope.searchKeyword.toUpperCase()) > -1 || i.organizationName.toUpperCase().indexOf($scope.searchKeyword.toUpperCase()) > -1);
// return $scope.selectedService.id == i.serviceTypeID
})
}
var demoData = $scope.demoDataWithStateSaved(temp);
var counter = 0;
var setWarningToTrue = false;
temp.forEach(function (project) {
setWarningToTrue = false;
project.finalStatus = (project.serviceTypeID === enums.serviceType.VAT) ? setLayoutStatusTitle(project.projectStatusList) : setLayoutStatusTitleForCIT(project.projectStatusList);
project.periodDate = (project.serviceTypeID === enums.serviceType.VAT) ? ($scope.currentSelectedYear + "." + $scope.currentSelectedMonth) : ($scope.currentSelectedYear + "");
var oneDemoData = _.find(demoData, function (one) { return one.id === project.id });
if (project.serviceTypeID === enums.serviceType.VAT) {
if (project.projectStatusList !== null && project.projectStatusList[vatSessionService.month] !== undefined && project.projectStatusList[vatSessionService.month] !== 10 && oneDemoData!==undefined) {
project.taxAmount = oneDemoData.taxAmount;
project.prepadidTaxAmount = oneDemoData.prepadidTaxAmount;
project.taxRate = oneDemoData.taxRate;
project.hasWarning = oneDemoData.hasWarning;
}
// START: For --->> Edmond Meng, CIT Demo
if (project.serviceTypeID === enums.serviceType.VAT && project.id === "8d8b13e7-07e1-4d84-8984-7b86e8ec6137" && project.code === "Demo111" && project.periodDate === '2017.1') {
project.taxAmount = "38669.27";
project.prepadidTaxAmount = "53866925.13";
project.taxRate = 15;
project.hasWarning = true;
}
// END: For --->> Edmond Meng, CIT Demo
}
else {
if (project.projectStatusList !== null && (Object.keys(project.projectStatusList).length > 0 && project.projectStatusList[Object.keys(project.projectStatusList)[Object.keys(project.projectStatusList).length - 1]] !== 10) && oneDemoData!==undefined) {
project.taxAmount = oneDemoData.taxAmount;
project.prepadidTaxAmount = oneDemoData.prepadidTaxAmount;
project.taxRate = oneDemoData.taxRate;
project.hasWarning = oneDemoData.hasWarning;
}
// START: For --->> Edmond Meng, CIT Demo
if (project.serviceTypeID !== enums.serviceType.VAT && project.id === "8d8b13e7-07e1-4d84-8984-7b86e8ec6137" && project.code === "Demo111") {
var status = "../../../app-resources/images/overview/";
if (region === 'zh-CN') {
status += 'zh-CN';
}
else {
status += 'en-US';
}
status += '/04.png';
project.finalStatus = status;
project.taxAmount = "38669.27";
project.prepadidTaxAmount = "53866925.13";
project.taxRate = 15;
project.hasWarning = true;
}
// END: For --->> Edmond Meng, CIT Demo
}
counter++;
});
$scope.queryResults = temp;
$scope.gridListOptions.data = $scope.queryResults;
$scope.projectMsg = $translate.instant('ProjectResultMsg').formatObj({ "ProjectNum": $scope.queryResults.length });
var notBeginTemp = _.filter(temp, function (i) {
if (i.serviceTypeID === enums.serviceType.VAT)
return ((i.projectStatusList === null || (i.projectStatusList !== null && i.projectStatusList[vatSessionService.month] === undefined) || (i.projectStatusList !== null && i.projectStatusList[vatSessionService.month] === 10)));
else
return ((i.projectStatusList === null || (i.projectStatusList !== null && Object.keys(i.projectStatusList).length === 0) || i.projectStatusList[Object.keys(i.projectStatusList)[Object.keys(i.projectStatusList).length - 1]] === 10));
});
if (notBeginTemp) {
$scope.notBeginNum = notBeginTemp.length;
}
var completedTemp = _.filter(temp, function (i) {
if (i.serviceTypeID === enums.serviceType.VAT) {
if (i.projectStatusList && i.projectStatusList[vatSessionService.month] != null) {
return i.projectStatusList[vatSessionService.month] === 100;
}
}
else {
if (i.projectStatusList && i.projectStatusList.length > 0) {
return i.projectStatusList[Object.keys(i.projectStatusList)[Object.keys(i.projectStatusList).length - 1]] === 100;
}
}
});
if (completedTemp) {
$scope.completedNum = completedTemp.length;
}
$scope.ongoingNum = $scope.queryResults.length - $scope.notBeginNum - $scope.completedNum;
};
$scope.demoDataWithStateSaved = function (temp) {
var demoData = [];
var data;
var demoDataComposedByLocalStorage = $scope.serviceTypeId + "_" + vatSessionService.year + "_" + vatSessionService.month;
data = localStorageService.get(demoDataComposedByLocalStorage);
if (data === null || data.length === 0) {
var counter = 0;
var everyXnumberToSetTrue = 3;
var dData;
// Set State:
temp.forEach(function (item) {
dData = new Object();
//generate random data
dData.id = item.id;
dData.taxAmount = randomXToY(10000, 99999999, 2);
dData.prepadidTaxAmount = randomXToY(10000, 99999999, 2);
dData.taxRate = randomXToY(1, 35, 0);
dData.hasWarning = false;
if (counter >= everyXnumberToSetTrue && (counter % everyXnumberToSetTrue === 0))
dData.hasWarning = true;
demoData.push(dData);
counter++;
});
localStorageService.set(demoDataComposedByLocalStorage, demoData);
}
else {
// Get from State:
demoData = localStorageService.get(demoDataComposedByLocalStorage);
}
return demoData;
};
$scope.fileSort = function (sortstr) {
if ($scope.queryResults.length > 0) {
if (sortstr == 'year') {
if ($scope.orderYear) {
$scope.orderYear = false;
var list = _.sortBy($scope.queryResults, 'year');
$scope.queryResults = list;
} else {
$scope.orderYear = true;
var list = _.sortBy($scope.queryResults, 'year');
$scope.queryResults = list.reverse();
}
}
if (sortstr == 'name') {
if ($scope.orderName) {
$scope.orderName = false;
var list = _.sortBy($scope.queryResults, 'name');
$scope.queryResults = list;
} else {
$scope.orderName = true;
var list = _.sortBy($scope.queryResults, 'name');
$scope.queryResults = list.reverse();
}
}
if (sortstr == 'status') {
if ($scope.orderStatus) {
$scope.orderStatus = false;
var list = _.sortBy($scope.queryResults, 'haveCreateProject');
$scope.queryResults = list;
} else {
$scope.orderStatus = true;
var list = _.sortBy($scope.queryResults, 'haveCreateProject');
$scope.queryResults = list.reverse();
}
}
if (sortstr == 'type') {
if ($scope.orderType) {
$scope.orderType = false;
var list = _.sortBy($scope.queryResults, 'serviceTypeID');
$scope.queryResults = list;
} else {
$scope.orderType = true;
var list = _.sortBy($scope.queryResults, 'serviceTypeID');
$scope.queryResults = list.reverse();
}
}
}
}
$scope.goToService = function (project) {
if (!project.clicked) {
project.clicked = true;
$log.debug('goToService()...');
serviceLogService.addEnterProjectLog(loginContext.displayUserName, 'Enter project (id: ' + project.id + ', serviceType: ' + project.serviceTypeID + ')').then(function () {
if (project.serviceTypeID === enums.serviceType.AssetsManage) {
$state.go('assetsManage.importData.productItem');
assetsManageSessionService.product.fSetCode = project.fSetCode;
assetsManageSessionService.product.productIDs = project.productIDs;
assetsManageSessionService.project.organizationName = project.fSetName;
assetsManageSessionService.project.id = project.id;
assetsManageSessionService.project.serviceTypeID = project.serviceTypeID;
//window.location.href = '/#/assetsManage/importData/productItem';
}
else if (project.serviceTypeID === enums.serviceType.VAT) {
if (project.haveCreateProject) {
if (_.isUndefined(project.projectStatusList[vatSessionService.month])) { //如果当前期间还没有导入任何数据的话,就添加一条未开始状态的记录
projectService.setProjectStatus(project.id, vatSessionService.month, constant.ProjectStatusEnum.UnStarted)
.success(function (or) {
if (or.result) {
//添加完成后,在vatSessionService.project中添加新加入的数据
project.projectStatusList[vatSessionService.month] = constant.ProjectStatusEnum.UnStarted;
vatSessionService.project = project;
goRightPath(project);
}
});
}
else {
vatSessionService.project = citSessionService.project = project;
goRightPath(project);
}
} else {
projectService.addProject(project).success(function (rsp) {
if (rsp && rsp.result) {
project.haveCreateProject = true;
project.dbName = rsp.dbname;
project.id = rsp.projectID;
if (_.isNull(project.projectStatusList)) { //如果当前期间还没有导入任何数据的话,就添加一条未开始状态的记录
projectService.setProjectStatus(project.id, vatSessionService.month, constant.ProjectStatusEnum.UnStarted)
.success(function (or) {
if (or.result) {
projectService.getProjectAllStatus(project.id).success(function (org) {
//添加完成后,在vatSessionService.project中添加新加入的数据
project.projectStatusList = org;
projectService.getProjectStatus( project.id, vatSessionService.month)
.success(function (or1) {
if (or1.result) {
project.importSubStatus = or1.data.importSubStatus;
vatSessionService.project = project;
goRightPath(project);
}
});
})
}
});
}
else {
vatSessionService.project = project;
goRightPath(project);
}
}
else {
SweetAlert.error($translate.instant('AddProjectFail'));
}
});
}
}
else { // project.serviceTypeID === enums.serviceType.CIT
if (project.haveCreateProject) {
if (_.isUndefined(project.projectStatusList[enums.wholeYearPeriod.import])) { //如果当前期间还没有导入任何数据的话,就添加一条未开始状态的记录
projectService.setProjectStatus(project.id, enums.wholeYearPeriod.import, constant.ProjectStatusEnum.UnStarted)
.success(function (or) {
if (or.result) {
//添加完成后,在vatSessionService.project中添加新加入的数据
project.projectStatusList[enums.wholeYearPeriod.import] = constant.ProjectStatusEnum.UnStarted;
vatSessionService.project = citSessionService.project = project;
citSessionService.year = $scope.currentSelectedYear;
goRightPath(project);
}
});
}
else {
vatSessionService.project = citSessionService.project = project;
citSessionService.year = $scope.currentSelectedYear;
goRightPath(project);
}
} else {
projectService.addProject(project).success(function (rsp) {
if (rsp && rsp.result) {
project.haveCreateProject = true;
project.dbName = rsp.dbname;
project.id = rsp.projectID;
if (_.isNull(project.projectStatusList)) { //如果当前期间还没有导入任何数据的话,就添加一条未开始状态的记录
projectService.setProjectStatus(project.id, enums.wholeYearPeriod.import, constant.ProjectStatusEnum.UnStarted)
.success(function (or) {
if (or.result) {
projectService.getProjectAllStatus(project.id).success(function (org) {
//添加完成后,在vatSessionService.project中添加新加入的数据
project.projectStatusList = org;
projectService.getProjectStatus(project.id, enums.wholeYearPeriod.import)
.success(function (or1) {
if (or1.result) {
project.importSubStatus = or1.data.importSubStatus;
vatSessionService.project = citSessionService.project = project;
citSessionService.year = $scope.currentSelectedYear;
goRightPath(project);
}
});
})
}
});
}
else {
vatSessionService.project = citSessionService.project = project;
citSessionService.year = $scope.currentSelectedYear;
goRightPath(project);
}
}
else {
SweetAlert.error($translate.instant('AddProjectFail'));
}
});
}
}
$timeout(function () {
project.clicked = false;
}, 1000);
});
}
};
$scope.toggleExpand = function (item) {
item.expand = !item.expand;
};
var goRightPath = function (project) {
// TODO: CIT 权限
if (project.serviceTypeID === enums.serviceType.CIT) {
$state.go('cit.importData.balanceSheet');
}
else {
var menuList = [
// constant.vatPermission.dataImport.balanceSheet.queryCode,
// constant.vatPermission.dataImport.journalEntry.queryCode,
// constant.vatPermission.dataImport.erpImport.queryCode,
// constant.vatPermission.dataImport.outputInvoice.queryCode,
// constant.vatPermission.dataImport.inputInvoice.queryCode,
// constant.vatPermission.dataImport.customInvoice.queryCode,
// constant.vatPermission.dataImport.voucherMapping.queryCode,
// constant.vatPermission.dataImport.invoiceMapping.queryCode,
// constant.vatPermission.dataImport.auditAdjust.queryCode,
// constant.vatPermission.dataPreview.balanceSheet.queryCode,
// constant.vatPermission.dataPreview.accountVoucher.queryCode,
// constant.vatPermission.dataPreview.customInvoice.queryCode,
constant.vatPermission.dataPreview.outputInvoice.queryCode,
constant.vatPermission.dataPreview.inputInvoice.queryCode,
// constant.vatPermission.dataManage.accountMappingCode,
// constant.vatPermission.dataManage.goodsMappingCode,
constant.vatPermission.dataManage.caculateDataCode,
// constant.vatPermission.dataManage.unbilledInvoiceCode,
constant.vatPermission.reportView.bsplCode,
constant.vatPermission.reportView.taxReturnCode,
constant.vatPermission.dataAnalysis.modelAnalysisCode,
constant.vatPermission.dataAnalysis.dashboard.dashboardCode,
//constant.vatPermission.dataAnalysis.vatTaxDifferenceCode,
];
$scope.$root.checkUserOrganizationPermissionList(menuList).success(function (data) {
if (data) {
// if (data[constant.vatPermission.dataImport.balanceSheet.queryCode]) {
// $state.go('vat.importData.balanceSheet');
// } else if (data[constant.vatPermission.dataImport.journalEntry.queryCode]) {
// $state.go('vat.importData.journalEntry');
// } else if (data[constant.vatPermission.dataImport.erpImport.queryCode]) {
// $state.go('vat.importData.erpData');
// } else if (data[constant.vatPermission.dataImport.auditAdjust.queryCode]) {
// $state.go('vat.importData.auditAdjust');
// } else if (data[constant.vatPermission.dataImport.outputInvoice.queryCode]) {
// $state.go('vat.importData.outputInvoice');
// } else if (data[constant.vatPermission.dataImport.inputInvoice.queryCode]) {
// $state.go('vat.importData.inputInvoice');
// } else if (data[constant.vatPermission.dataImport.customInvoice.queryCode]) {
// $state.go('vat.importData.customInvoice');
// } else if (data[constant.vatPermission.dataImport.voucherMapping.queryCode]) {
// $state.go('vat.importData.voucherMapping');
// } else if (data[constant.vatPermission.dataImport.invoiceMapping.queryCode]) {./
// $state.go('vat.importData.invoiceMapping');
// } else
// if (data[constant.vatPermission.dataPreview.balanceSheet.queryCode]) {
// $state.go('vat.previewData.balanceSheet');
// } else if (data[constant.vatPermission.dataPreview.accountVoucher.queryCode]) {
// $state.go('vat.previewData.accountVoucher');
// } else
if (data[constant.vatPermission.dataPreview.inputInvoice.queryCode]) {
$state.go('vat.previewData.inputInvoice');
} else if (data[constant.vatPermission.dataPreview.outputInvoice.queryCode]) {
$state.go('vat.previewData.outputInvoice');
}
// else if (data[constant.vatPermission.dataPreview.customInvoice.queryCode]) {
// $state.go('vat.previewData.customInvoice');
// }
// else if (data[constant.vatPermission.dataManage.accountMappingCode]) {
// $state.go('vat.reductionData.accountMapping');
// } else if (data[constant.vatPermission.dataManage.goodsMappingCode]) {
// $state.go('vat.reductionData.goodsMapping');
// }
else if (data[constant.vatPermission.dataManage.caculateDataCode]) {
$state.go('vat.reductionData.caculateData');
} /*else if (data[constant.vatPermission.dataManage.unbilledInvoiceCode]) {
$state.go('vat.reductionData.unbilledInvoice');
}*/ else if (data[constant.vatPermission.reportView.bsplCode] || data[constant.vatPermission.reportView.taxReturnCode]) {
$state.go('vat.generateReport');
} else if (data[constant.vatPermission.dataAnalysis.modelAnalysisCode]) {
$state.go('vat.analyzeLayout.analyzeReport');
} else if (data[constant.vatPermission.dataAnalysis.dashboard.dashboardCode]) {
$state.go('analyzeOrganizeDashboard');
}
//else if (data[constant.vatPermission.dataAnalysis.vatTaxDifferenceCode]) {
// $state.go('vat.analyzeLayout.vatTaxDifference');
//}
}
});
}
}
$scope.toggleItemSub = function (item, parent) {
// orgDisplay.showBusy();
if (item.isChecked) {
if (!item.dimensionId) {
$scope.checkedOrgs[item.id] = item.name;
} else {
item.subOrgs.forEach(function (org) {
$scope.checkedOrgs[org.id] = org.name;
org.isChecked = true;
});
}
} else {
if (!item.dimensionId) {
delete $scope.checkedOrgs[item.id];
} else {
item.subOrgs.forEach(function (org) {
org.isChecked = false;
delete $scope.checkedOrgs[org.id];
});
}
}
$scope.checkedIds = _.keys($scope.checkedOrgs);
vatSessionService.queryDto.checkedOrgs = $scope.checkedOrgs;
if ($scope.serviceTypeId !== enums.serviceType.AssetsManage) {
$scope.query();
}
// orgDisplay.hideBusy();
};
$scope.toggleItemSubSpan = function (item) {
if (item.isChecked) {
item.isChecked = false;
} else {
item.isChecked = true;
}
$scope.toggleItemSub(item, null);
};
$scope.toggleView = function (clickedView) {
if (clickedView == $scope.currentView) return;
$scope.currentView = clickedView;
};
var thisDataService = {
isHaveOrganizationPermission: function (orgID) {
var permission = thisData.userPermission;
var isShow = false;
if (permission) {
if (permission.isSuperAdmin || permission.isADUser) {
isShow = true;
} else {
// 查找机构
var findOrg = _.find(permission.organizationPermissionList, function (num) {
return num.id === orgID;
});
if (findOrg && findOrg.permissionList && findOrg.permissionList.length > 0) {
// 查看具体权限
isShow = true;
}
}
}
return isShow;
},
};
var initDatePickers = function () {
if ($scope.serviceTypeId === enums.serviceType.CIT) {
$scope.systemTitle = $translate.instant('CIT');
$scope.viewMode = 2;
$scope.dateFormat = $translate.instant('dateFormat4Year');
}
if ($scope.serviceTypeId === enums.serviceType.VAT) {
$scope.systemTitle = $translate.instant('增值税申报');
$scope.viewMode = 1;
$scope.dateFormat = $translate.instant(' yyyy 年 mm 月');
}
if ($scope.serviceTypeId === enums.serviceType.AssetsManage) {
$scope.systemTitle = $translate.instant('AssetTitle');
$scope.viewMode = 1;
$scope.dateFormat = $translate.instant('dateFormat4YearMonth');
}
var ele1 = $("#overviewDatepicker");
ele1.datepicker({
startDate: $scope.startDate,
endDate: $scope.endDate,
language: region,
viewMode: $scope.viewMode,
minViewMode: $scope.viewMode,
autoclose: true, //选中之后自动隐藏日期选择框
clearBtn: true, //清除按钮
todayBtn: false, //今日按钮
format: $scope.dateFormat //日期格式,详见 http://bootstrap-datepicker.readthedocs.org/en/release/options.html#format
}).on('changeDate', function (e) {
$scope.changeDate(e);
});
ele1.datepicker("setDate", $scope.selectedDate);
};
$scope.changeStartDate = function (e) {
if (e&&e.date) {
var tempYear = e.date.getFullYear();
var tempMonth = e.date.getMonth() + 1;
$scope.currentSelectedStartMonth = tempMonth;
$scope.currentSelectedStartYear = tempYear;
}
};
$scope.changeDate = function (e) {
if (e && e.date) {
var isDateUpdated = false;
var tempYear = e.date.getFullYear();
var tempMonth = e.date.getMonth() + 1;
if (tempYear !== vatSessionService.year || tempMonth !== vatSessionService.month) {
isDateUpdated = true;
}
vatSessionService.year = tempYear;
vatSessionService.month = tempMonth;
$scope.currentSelectedMonth = tempMonth;
$scope.currentSelectedYear = tempYear;
if (isDateUpdated) {
//$scope.$apply(function () {
// $scope.conditionChange = !$scope.conditionChange;
//});
$timeout(function () {
$scope.conditionChange = !$scope.conditionChange;
});
}
if ($scope.serviceTypeId !== enums.serviceType.AssetsManage) {
$scope.query();
}
}
};
var orgDisplay = {
orgList: [],
grayColorD9: '#d9d9d9',
currentIdcol: '',
currentNamecol: 'orgName',
activeColor: 'black',
activeBackgroundColor: '#fbf8f5',
whiteColor: 'white',
main: function () {
$scope.dimensionOrgShow = function (idcol, namecol) {
orgDisplay.showBusy();
vatSessionService.queryDto.fieldId = idcol;
vatSessionService.queryDto.filedName = namecol;
orgDisplay.currentIdcol = idcol;
orgDisplay.currentNamecol = namecol;
$('.operate-icon').css('background-color', orgDisplay.whiteColor);
$('.operate-icon i').css('color', orgDisplay.grayColorD9);
$scope.checkedOrgs = {};
//$scope.query();
var orgData = [];
if (idcol) {
orgData = orgDisplay.otherShow(idcol, namecol);
} else {
orgData = orgDisplay.orgShow();
}
$('.' + namecol).css('color', orgDisplay.activeColor);
$('.' + namecol).parent().css('background-color', orgDisplay.activeBackgroundColor);
$timeout(function () {
orgDisplay.hideBusy();
if ($scope.isFirst) {
$scope.setTreeChecked(orgData);
$scope.isFirst = false;
}
$scope.orgData = orgData;
}, 50);
};
orgDisplay.getOrgData();
},
getOrgData: function () {
orgService.getOrgListLevel().success(function (data) {
if (!data) {
data = [];
}
var result = [];
//如果是资产管理,则只获取资产管理类型的组织机构
if ($scope.serviceTypeId === enums.serviceType.AssetsManage) {
result = _.filter(data, function (item) {
return item.industryID == '10';
});
}
else {
for (var i = 0; i < data.length; i++) {
var item = data[i];
if (thisDataService.isHaveOrganizationPermission(item.id)) {
result.push(item);
}
}
}
orgDisplay.orgList = result;
//$scope.dimensionOrgShow('', 'orgName');
$scope.dimensionOrgShow(vatSessionService.queryDto.fieldId, vatSessionService.queryDto.filedName);
});
// orgDisplay.orgList = testOrgList;
},
orgShow: function () {
var showList = angular.copy(orgDisplay.orgList);
// 构造父子节点
for (var i = 0; i < showList.length; i++) {
var item = showList[i];
if (item.parentID === null) {
continue;
}
var parentNode = _.find(showList, function (num) {
return num.id === item.parentID
});
if (parentNode) {
continue;
}
item.parentID = orgDisplay.getParentID(item, orgDisplay.orgList, showList);
}
var idList = _.pluck(showList, 'id');
var topNodeList = _.filter(showList, function (org) {
return idList.indexOf(org.parentID) === -1;
});
var orgList = [];
topNodeList.forEach(function (org) {
var item = {
id: org.id,
name: org.name
};
var tempList = orgDisplay.getSubOrgDropDownList(org, showList);
item.subOrgs = tempList;
// 构造子节点
orgList.push(item);
// orgList = _.union(orgList, tempList);
});
return orgList;
},
// 获取父节点
getParentID: function (current, allList, orgDtoList) {
if (current.parentID === null) {
return null;
}
var findParent = _.find(allList, function (num) {
return num.id === current.parentID;
});
if (!findParent) {
return null;
}
var parent = _.find(orgDtoList, function (num) {
return num.id === findParent.id;
});
if (parent != null) {
return parent.id;
} else {
return orgDisplay.getParentID(findParent, allList, orgDtoList);
}
},
getSubOrgDropDownList: function (current, showList) {
var sublist = _.filter(showList, function (row) {
return row.parentID === current.id;
});
var list = [];
if (!sublist || sublist.length === 0) {
return list;
}
sublist.forEach(function (row) {
var item = {
id: row.id,
name: row.name,
parentID: current.id,
expanded: true,
};
var tempList = orgDisplay.getSubOrgDropDownList(row, showList);
item.subOrgs = tempList;
list.push(item);
});
return list;
},
otherShow: function (idcol, namecol) {
var showList = angular.copy(orgDisplay.orgList);
var otherList = orgDisplay.getMap(showList, idcol, namecol);
var list = [];
otherList.forEach(function (other) {
var item = other;
item.dimensionId = idcol;
item.subOrgs = _.filter(showList, function (t) {
return t[idcol] === other.id;
});
list.push(item);
});
return list;
},
getMap: function (data, idCol, nameCol) {
if (data && data.length > 0) {
var idList = _.uniq(_.pluck(data, idCol));
var list = [];
idList.forEach(function (row) {
if (row) {
var findOne = _.find(data, function (o) {
return o[idCol] === row;
});
if (findOne && findOne[nameCol]) {
list.push({
id: row,
name: findOne[nameCol],
selected: true,
});
}
}
});
return list;
} else {
return [];
}
},
showBusy: function () {
$('#busy-indicator-container').show();
},
hideBusy: function () {
$('#busy-indicator-container').hide();
}
};
$scope.setTreeChecked = function (dataList) {
if (dataList && dataList.length > 0 && _.keys(vatSessionService.queryDto.checkedOrgs).length > 0) {
dataList.forEach(function (v) {
if (vatSessionService.queryDto.checkedOrgs[v.id]) {
v.isChecked = true;
}
if (v.subOrgs && v.subOrgs.length > 0) {
$scope.setTreeChecked(v.subOrgs);
}
});
}
}
var goQueryState = function () {
$scope.searchKeyword = vatSessionService.queryDto.searchKeyword;
$scope.checkedOrgs = vatSessionService.queryDto.checkedOrgs;
if ($scope.serviceTypeId !== enums.serviceType.AssetsManage) {
$scope.query();
}
};
//function to get random number upto m
function randomXToY(minVal, maxVal, floatVal) {
var randVal = minVal + (Math.random() * (maxVal - minVal));
return typeof floatVal == 'undefined' ? Math.round(randVal) : randVal.toFixed(floatVal);
}
/**********************************资产配置*************************************/
//初始化产品列表
function initProductListGrid() {
var listColumns = [
{ caption: '年份', dataField: 'fYear' },
{ caption: '产品标识', dataField: "fSetID" },
{ caption: '产品编号', dataField: "fSetCode" },
{ caption: '产品描述(名称)', dataField: "fSetName" },
{ caption: '财务主管', dataField: "fManager" },
{ caption: '启用年份', dataField: "fStartYear" },
{ caption: '启用月份', dataField: "fStartMonth" },
{ caption: '所属机构', dataField: "accountDepartment" }
];
$scope.gridListOptions = {
showBorders: true,
columns: listColumns,
bindingOptions: {
"dataSource": "productListQueryResult"
},
loadPanel: {
enabled: true
},
hoverStateEnabled: true,
paging: { pageSize: 20 },
noDataText: $translate.instant('AccountVoucher_DataGrid_NoDataText'),
selection: { mode: "single" },
onRowClick: function (e) {
$scope.goToService(e.data);
},
onContentReady: function (e) {
$scope.productListGridInstance = e.component;
}
}
};
$scope.initProductList = function () {
productService.getProductList().success(function (data) {
$scope.productListQueryResult = data;
$scope.totolCount = data.length;
var index = 1;
data.forEach(function (v) {
v.index = index++;
v.serviceTypeID = enums.serviceType.AssetsManage;
});
});
};
//重新设置产品列表grid
$scope.updateProductList = function () {
$scope.updateStatus = true;
};
$scope.addNewProduct = function () {
$scope.modalService.newProductModal.open();
};
$scope.product = {
fYear: "",
fSetId: "",
fSetName: "",
fManager: ""
};
$scope.modalService = {
newProductModal: {
open: function () {
$scope.product = {
fYear: "",
fSetId: "",
fSetName: "",
fManager: ""
};
var treeView;
var syncTreeViewSelection = function (treeView) {
if (!treeView) return;
if (!$scope.treeBoxValue) {
treeView.unselectAll();
return;
}
$scope.treeBoxValue.forEach(function (key) {
treeView.selectItem(key);
});
};
$scope.treeBoxValue = [""];
$scope.treeDataSource = [];
$scope.treeBoxNameValue = [""];
productService.getProductList().success(function (data) {
data.forEach(function (v) {
if (!v.productIDs) {
var item = new Object;
item.name = v.fSetName;
item.content = { id: v.fSetCode, guid: v.id};
$scope.treeDataSource.push(item);
}
});
});
$scope.treeBoxOptions = {
bindingOptions: {
value: 'treeBoxNameValue'
},
valueExpr: "ID",
displayExpr: "name",
placeholder: "选择...",
showClearButton: false,
dataSource: $scope.treeDataSource,
onValueChanged: function () {
syncTreeViewSelection(treeView);
},
treeView: {
dataSource: $scope.treeDataSource,
dataStructure: "plain",
keyExpr: "ID",
parentIdExpr: "categoryId",
displayExpr: "name",
selectByClick: true,
selectNodesRecursive: false,
showCheckBoxesMode: "normal",
bindingOptions: {
selectionMode: "selectionMode"
},
onContentReady: function (e) {
treeView = e.component;
syncTreeViewSelection(treeView);
},
onItemSelectionChanged: function (args) {
var keyValue = args.component.getSelectedNodesKeys();
if (keyValue.length===0) {
keyValue = [""];
}
var value = [""];
var nodes = args.component.getNodes();
var newValue = [""];
var nameValue = [""];
keyValue.forEach(function (v) {
var findResult = _.find(nodes, function (node) {
return node.key === v;
});
if (findResult) {
newValue.push(findResult.itemData.content.guid);
value.push(findResult.itemData.content.id);
nameValue.push(findResult.itemData.name);
}
});
$scope.treeBoxValue = keyValue;
$scope.newNewtreeBoxValue = value;
$scope.newTreeBoxValue = newValue;
var tempArray = nameValue.length===1?nameValue:nameValue.shift();
$scope.treeBoxNameValue = nameValue;
}
}
};
$timeout(function () {
var ele2 = $("#productStartDate");
ele2.datepicker({
startDate: $scope.startDate,
endDate: $scope.endDate,
language: region,
viewMode: $scope.viewMode,
minViewMode: $scope.viewMode,
autoclose: true, //选中之后自动隐藏日期选择框
clearBtn: true, //清除按钮
todayBtn: false, //今日按钮
format: $scope.dateFormat //日期格式,详见 http://bootstrap-datepicker.readthedocs.org/en/release/options.html#format
}).on('changeDate', function (e) {
$scope.changeStartDate(e);
});
ele2.datepicker("setDate", $scope.selectedStartDate);
}, 100);
$scope.newProductModalInstance = ackUibModal($scope, 'addNewProduct.html', 'addNewProduct', '.app-overview ', 'static')
$scope.newProductModalInstance.open();
},
save: function (result) {
$scope.saveProduct();
$scope.newProductModalInstance.close();
},
cancel: function () {
$scope.newProductModalInstance.cancel();
}
}
};
$scope.changeWithZeroNumber = function (sourceNumber) {
if (sourceNumber.length > 1) {
if (sourceNumber < 10) {
return sourceNumber.replace(/0/g, '');
}
else {
return sourceNumber;
}
}
else {
return sourceNumber;
}
};
$scope.saveProduct = function () {
//$scope.product.fSetCode = $scope.treeBoxValue.toString();
$scope.product.fStartYear = $scope.currentSelectedStartYear;
$scope.product.fStartMonth = $scope.changeWithZeroNumber($scope.currentSelectedStartMonth);
$scope.product.productIDs = $scope.newTreeBoxValue.toString();
//调用service插入数据库
productService.addNewProduct($scope.product).success(function () {
$scope.initProductList();
})
};
var successCount = 0;
var doUploadProductFileName = function (file) {
if (file) {
var arr = file.name.split('.');
if (arr[arr.length - 1] !== 'xls' && arr[arr.length - 1] !== 'xlsx') {
SweetAlert.warning($translate.instant('ImportFileInvalidType'));
return;
}
//$scope.initJournalEntryList = [];
//$scope.gridOptionsJournalEntry.data = [];
successCount = 0;
if (!file.$error) {
var tempFileName = PWC.newGuid() + '.dat';
Upload.upload({
url: uploadUrl,
data: {
filename: file.name,
tempFileName: tempFileName,
file: file
},
resumeChunkSize: resumable ? $scope.chunkSize : null,
headers: {
'Access-Control-Allow-Origin': '*',
Authorization: apiInterceptor.tokenType + ' ' + apiInterceptor.apiToken()
},
__RequestVerificationToken: token,
withCredentials: true
}).then(uploadJournalEntrySuccess);
}
}
};
//上传成功后执行函数
var uploadJournalEntrySuccess = function (resp) {
console.log(resp);
successCount++;
if (successCount === 1) {
$scope.tempFileName = resp.data;
//初始化到excel文件的第一个sheet
getUploadFileContent(0);
}
};
var getUploadFileContent = function () {
if (_.isString($scope.tempFileName)) {
productService.getFileContent($scope.tempFileName, 0, 0).success(function (data) {
//将导入文件的sheet赋值到数组
$scope.sheetData = data;
//加入index序号
var index = 1;
data.dataList.forEach(function (v) {
v.index = index++;
});
//先将完整数据深拷贝存放到变量中
$scope.sheetData.excelSheetAllData = angular.copy(data.dataList);
var number = 1;
$scope.sheetData.excelSheetAllData.forEach(function (v) {
v.index = number++;
});
//将导入文件的sheet赋值到数组
//只赋值data的前500条到sheetData的dataList中,防止数据量太大渲染的时候卡死浏览器
$scope.sheetData.dataList = data.dataList.slice(0, 500);
if (data & data.result === false) {
SweetAlert.warning(data.resultMsg);
return;
}
//upload data to DB
saveProductDataToDatabase();
});
}
};
var saveProductDataToDatabase = function () {
//将需要导入的数据组装到list中
var importProductList = [];
var startRowNum = 3;
for (var i = startRowNum - 1; i < $scope.sheetData.dataList.length; i++) {
var productInfo = {
'Index': $scope.sheetData.dataList[i].index,
'FYear': $scope.sheetData.dataList[i][0],
'FSETID': $scope.sheetData.dataList[i][1],
'FSETCODE': $scope.sheetData.dataList[i][2],
'FSETNAME': $scope.sheetData.dataList[i][3],
'FMANAGER': $scope.sheetData.dataList[i][4],
'FSTARTYEAR': $scope.sheetData.dataList[i][5],
'FSTARTMONTH': $scope.changeWithZeroNumber($scope.sheetData.dataList[i][6]),
'FMONTH': $scope.changeWithZeroNumber($scope.sheetData.dataList[i][7]),
'ACCOUNTDEPARTMENT': $scope.sheetData.dataList[i][8]
};
importProductList.push(productInfo);
}
productService.importProductData(importProductList).success(function () {
//logDto.UpdateState = $translate.instant('ImportSuccess');
//vatOperationLogService.addOperationLog(logDto);
//vatCommonService.importSetProjectStatus(projectDbName, curPeriod
// , constant.DictionaryDictKey.WFImportJournalEntry
// , enums.FinishStatusEnum.Finished);
//vatCommonService.setImportSubStatus(enums.VatImportSubStatus.isEntryImport, true);
//$log.debug("import entry importJournalEntryData: " + vatSessionService.project.importSubStatus.isEntryImport);
SweetAlert.success($translate.instant('ImportSuccess'));
$scope.initProductList();
}).error(function () {
SweetAlert.error($translate.instant('PleaseContactAdministrator'));
//logDto.UpdateState = $translate.instant('ImportFail');
//vatOperationLogService.addOperationLog(logDto);
});
};
/**********************************资产配置*************************************/
(function initialize() {
if ($scope.serviceTypeId !== enums.serviceType.AssetsManage) {
initListGrid();
}
initDatePickers();
$scope.updateStatus = false;
userService.getUserPermission(loginContext.userName).success(function (userPermission) {
thisData.userPermission = userPermission;
userPermission.permissionList.forEach(function (p) {
if (p.code.startWith('02')) {
$scope.haveVatPermission = true;
return;
}
});
vatSessionService.userPermission = userPermission;
orgDisplay.main();
if ($scope.serviceTypeId === enums.serviceType.AssetsManage) {
$scope.projectMsg = $translate.instant('ProjectResultMsg').formatObj({ "ProjectNum": 66 });
initProductListGrid();
$scope.initProductList();
$scope.toggleView('listView');
}
else {
$scope.initProjectList();
}
});
$scope.$watch('productFileName', function (newValue, oldValue) {
if (newValue && newValue !== oldValue) {
doUploadProductFileName(newValue);
}
});
})();
}
]);
frameworkModule.factory('assetsManageSessionService', ['$log', function ($log) {
'use strict';
$log.debug('assetsManageSessionService.ctor()...');
var date = new Date();
var month = date.getMonth();
var projectyear = 2017;
if (month <= 0) {
month = 1;
}
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 {
month: 6,
year: projectyear,
project: {
year: projectyear,
projectStatusList: [30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30],
importSubStatus: 1,
dbName: 'AssetsManage',
id: '99999',
name: '阳光证券有限公司增值税申报项目',
organizationName: '阳光证券有限公司增值税申报项目'
},
projects: [],
dataChanged: false,
logUser: logUser,
reset: reset,
product: {
fSetCode: '11111111111111111111',
productIDs:'xxxxxxxxxxxxxxxxxxxx'
}
}
}]);
frameworkModule.factory("demoDataService", function ($window, $rootScope) {
'use strict';
return {
setData: function (val) {
$window.localStorage && $window.localStorage.setItem('overview-demo-data', val);
return this;
},
getData: function () {
return $window.localStorage && $window.localStorage.getItem('overview-demo-data');
}
};
});
<div id="app-approve" class="app-overview ">
<div class="app-overview-left">
<div class="group-operate-icon" style="margin-bottom: 5px;">
<span class="operate-icon left-first" title="机构" ng-click="dimensionOrgShow('','orgName')"><i class="fa fa-sitemap fa-2x orgName" aria-hidden="true"></i></span><span class="operate-icon" title="事业部" ng-click="dimensionOrgShow('businessUnitID','businessUnitName')">
<i class="fa fa-bank fa-2x businessUnitName" aria-hidden="true"></i>
</span><span class="operate-icon" title="区域" ng-click="dimensionOrgShow('areaID','areaName')">
<i class="material-icons areaName">place</i>
</span><span class="operate-icon" title="机构层级" ng-click="dimensionOrgShow('structureID','structureName')">
<i class="fa fa-mortar-board fa-2x structureName"></i>
</span><span class="operate-icon" title="行业" ng-click="dimensionOrgShow('industryID','industryName')">
<i class="fa fa-bars fa-2x industryName" aria-hidden="true"></i>
</span>
</div>
<perfect-scrollbar class="scroller" wheel-propagation="true" wheel-speed="1" min-scrollbar-length="20">
<div ui-tree data-drag-enabled="false">
<ul ui-tree-nodes="" ng-model="orgData">
<li ng-repeat="item in orgData track by $index" ui-tree-node ng-include="'tree_view_template'">
</li>
</ul>
</div>
</perfect-scrollbar>
</div>
<div class="app-overview-right">
<div class="head-row">报表审批</div>
<div>审批列表</div>
</div>
</div>
\ No newline at end of file
frameworkModule.directive('appApprove', ['$log', 'region', 'enums',
function ($log, region, enums) {
'use strict';
$log.debug('appOverview.ctor()...');
return {
restrict: 'E',
templateUrl: '/app/framework/app-approve/app-approve.html' + '?_=' + Math.random(),
replace: true,
scope: {
servicetypeid : '='
},
controller: 'appApproveController',
link: function ($scope, $element, $attr) {
var ele = $(".datepicker");
ele.datepicker({
startDate: $scope.startDate,
endDate: $scope.endDate,
language: region,
viewMode: 1,
minViewMode: 1,
autoclose: true,//选中之后自动隐藏日期选择框
clearBtn: false,//清除按钮
todayBtn: false,//今日按钮
format: $scope.dateFormat//日期格式,详见 http://bootstrap-datepicker.readthedocs.org/en/release/options.html#format
}).on('changeDate', function (e) {
$scope.changeDate(e);
});
ele.datepicker("setDate", $scope.selectedDate);
$scope.elePicker = ele;
}
};
}
]);
\ No newline at end of file
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