vatModule.controller('vatGoodsMappingController', ['$scope', '$log', '$timeout', '$q', '$translate', 'loginContext', 'apiInterceptor', 'SweetAlert', 'vatSessionService', 'uiGridConstants', 'enums', 'vatReductionService', 'vatOperationLogService', function ($scope, $log, $timeout, $q, $translate, loginContext, apiInterceptor, SweetAlert, vatSessionService, uiGridConstants, enums, vatReductionService, vatOperationLogService) { 'use strict'; $log.debug('vatGoodsMappingController.ctor()...'); var isDouble = 0; var comment = vatSessionService.project.name + " " + vatSessionService.project.year + "年" + vatSessionService.month + "月"; //写日志 $scope.period = vatSessionService.month; $scope.moduleid = enums.vatModuleEnum.Import_GoodsMapping; var logDto = { ID: '', OperationName: '', ModuleID: $scope.moduleid, OperationObject: '', OperationType: '', OperationContent: '', OriginalState: '', UpdateState: '', CreatorID: vatSessionService.logUser.ID, Comment: comment, IP: '', Period: $scope.period, }; $scope.mappingList = []; $scope.stdGoodsList = [ { StdId: 1, StdName: $translate.instant('GP_TransportationService') }, { StdId: 2, StdName: $translate.instant('GP_TelecomService') }, { StdId: 3, StdName: $translate.instant('GP_BuildService') }, { StdId: 4, StdName: $translate.instant('GP_EstateLeasingService') }, { StdId: 5, StdName: $translate.instant('GP_LandUseRight') }, { StdId: 6, StdName: $translate.instant('GP_FinancialService') }, { StdId: 7, StdName: $translate.instant('GP_LifeService') }, { StdId: 8, StdName: $translate.instant('GP_InvisibleCapital') }, { StdId: 9, StdName: $translate.instant('GP_TangibleMovablesService') }, { StdId: 10, StdName: $translate.instant('GP_GoodsAndRepairService') }, { StdId: 11, StdName: $translate.instant('Other') } ]; //匹配结果 $scope.gridLeftOptions = { columns: [{ caption: $translate.instant('CustGoodsName'), dataField: "custGoodsName", alignment: 'left', }, { caption: $translate.instant('StdGoodsName'), dataField: "stdGoodsName", alignment: 'left', }, ], bindingOptions: { "dataSource.store.data": "mappingList", }, dataSource: { store: { type: "array", key: 'id' } }, selection: { mode: "multiple", showCheckBoxesMode: "always", }, hoverStateEnabled: true, scrolling: { mode: "virtual" }, noDataText: $translate.instant('AccountVoucher_DataGrid_NoDataText') //remoteOperations: { sorting: true, paging: false }, //onSelectionChanged: function (selectedItems) { // var data = selectedItems.selectedRowsData; // $scope.selectMappIds = []; // if (data.length > 0) { // data.forEach(function (v) { // $scope.selectMappIds.push(v.id); // }); // } //} } //标准货物名称 $scope.gridRightOptions = { columns: [{ caption: $translate.instant('StdGoodsNameList'), dataField: "StdName", alignment: 'left', }], bindingOptions: { "dataSource.store.data": "stdGoodsList" }, dataSource: { store: { type: "array", key: 'StdId' } }, remoteOperations: { sorting: true, paging: false }, hoverStateEnabled: true, onRowPrepared: function (e) { if (e.rowType == "header") { e.rowElement.css("display", 'none'); } }, onCellClick: function (e) { isDouble++; setTimeout(function () { if (isDouble == 2) { if ($scope.hasEditPermission) { doGoodsMapping(e.value); } } isDouble = 0; }, 500); } } var doGoodsMapping = function (value) { var dataGrid = $('#gridLeft').dxDataGrid("instance"); if (dataGrid.getSelectedRowsData().length > 0) { var modifyList = []; var customerList = []; var stdList = []; var originalList = []; dataGrid.getSelectedRowsData().forEach(function (m) { stdList.push(m.stdGoodsName); originalList.push(m.custGoodsName + "-" + m.stdGoodsName); customerList.push(m.custGoodsName); var mapp = m; mapp.stdGoodsName = value; modifyList.push(mapp); }); logDto.ID = PWC.newGuid(); logDto.CreateTime = new Date(); logDto.UpdateTime = new Date(); if (PWC.isNullOrEmpty(value)) { //取消对应 logDto.OperationObject = customerList.join(","); logDto.OperationContent = value; logDto.OperationName = $translate.instant('CancelMapping'); logDto.OperationType = enums.vatLogOperationTypeEnum.GM_CancelMapping; logDto.OriginalState = originalList.join(","); logDto.UpdateState = customerList.join(","); } else { //手动对应 logDto.OperationObject = customerList.join(","); logDto.OperationContent = stdList.join(","); logDto.OperationName = $translate.instant('HandleMapping'); logDto.OperationType = enums.vatLogOperationTypeEnum.GM_ManualMapping; logDto.OriginalState = customerList.join(","); logDto.UpdateState = customerList.join(",") + "-" + value; } vatReductionService.updateGoodsMapping(modifyList).success(function (result) { if (result) { vatOperationLogService.addOperationLog(logDto); initGoodsMappingFromDB(); dataGrid.refresh(); dataGrid.clearSelection(); } }).error(function () { SweetAlert.error($translate.instant('PleaseContactAdministrator')); }); } else { SweetAlert.warning($translate.instant('SelectMappTips')); } } var cancelGoodsMapping = function () { doGoodsMapping(""); } function initGoodsMappingFromDB() { vatReductionService.getGoodsMappingList().success(function (data) { if (data && data.length > 0) { $scope.mappingList = data; } }).error(function () { SweetAlert.error($translate.instant('PleaseContactAdministrator')); }); } //日志 $scope.showOperateLogPop = function () { $scope.isShowLog = true; }; var getUserPermission = function () { var list = []; var code = constant.vatPermission.dataManage.goodsMapping.saveCode; list.push(code); $scope.$root.checkUserOrganizationPermissionList(list).success(function (data) { $scope.hasEditPermission = data[code]; }); }; (function initialize() { $log.debug('vatGoodsMappingController.ctor()...'); getUserPermission(); $scope.cancelGoodsMapping = cancelGoodsMapping; initGoodsMappingFromDB(); })(); } ]);