webservices.factory('vatReportService', ['$q', '$log', '$http', '$translate', 'apiConfig', 'enums', 'SweetAlert', 'vatOperationLogService', 'vatSessionService', 'FileSaver', function ($q, $log, $http, $translate, apiConfig, enums, SweetAlert, vatOperationLogService, vatSessionService, FileSaver) { 'use strict'; $log.debug('vatReportService.ctor()...'); return { // 修改保存机制后,需要添加缓存机制的方法: // addCellManualData,并添加了一个日志参数 // deleteCellVoucher // deleteCellInvoice // deleteCellDatasource // addDataSource // addDataSourceItems // updateDataSourceAmount // 移除了CalculateSingleCellFormula // 新增了updateReportCellValue // For CIT: // 新增了citGenerateByType //CIT Remove(可以直接使用vat已有的): // citGetStdAccountByIndustryID: function (industryID) // citGenerate: function (projectId, templateId, param?, generator) // citGetReportData: function (reportId) // citGetCellVoucher: function (cellDataID) // citGetCellInvoice: function (cellDataID, invoiceType) // citAddCellManualData: function (mauanlData) // citAddDataSource: function (dataSource) // citAddDataSourceItems: function (dataSource) // citDeleteCellVoucher: function (voucherId, datasourceId) // citDeleteCellInvoice: function (invoiceId, datasourceId) // citDeleteCellDatasource: function(datasourceID,cellID) // citGetAllDataItems: function (dataSourceType) // citGetCellAccountRange: function (reportTemplateId, period, rowIndex, columnIndex) // citGetCellTemplateConfig: function (reportTemplateId, period, rowIndex, columnIndex) // citUpdateCellAccountRangeAndSummary: function (cellTemplateId, period?, value, operation) // citUpdateDataSourceAmount: function (datasourceId, amount) //CIT Update(带问号参数为修改的参数,目前对于申报表可以直接传null,对于BSPL如果调用到这些API需要传period): // citUpdateConfig: function (projectId, period?) // citGetTemplate: function (projectId, period?) updateConfig: function (projectId, ifDeleteManualDataSource, period, generator, isMergeManualDataSource) { return $http.post('/Report/updateConfig/' + projectId + '/' + ifDeleteManualDataSource + '/' + period + '?generator=' + generator + '&mergeManual=' + isMergeManualDataSource, {}, apiConfig.createVat({ignoreLoadingBar: true})); }, generate: function (projectId, templateId, ifDeleteManualDataSource, period, generator) { return $http.post('/Report/generate/' + projectId + '/' + templateId + '/' + ifDeleteManualDataSource + '/' + period + '?generator=' + generator, {}, apiConfig.createVat({ignoreLoadingBar: true})); }, generateAll: function (projectId, isMergeManualDataSource, period, generator) { return $http.post('/Report/generateByTotal/' + projectId + '/' + isMergeManualDataSource + '/' + period + '?generator=' + generator, {}, apiConfig.createVat({ignoreLoadingBar: true})); }, getRunningJob: function (projectId, period) { return $http.get('/Report/getRunningJob/' + projectId + '/' + period, apiConfig.createVat()); }, getJobStatus: function (projectId, period, jobId) { return $http.get('/Report/getJobStatus/' + projectId + '/' + period + '/' + jobId, apiConfig.createVat({ignoreLoadingBar: true})); }, getReportData: function (reportId) { return $http.get('/Report/reportData/' + reportId, apiConfig.createVat()); }, getReportEbitData: function (orgId, period) { var param = { period: period, orgId: orgId }; param = JSON.stringify(param); return $http.post('/Report/reportEbitData', param, apiConfig.createVat({contentType: "application/json"})); }, manyExport: function (param) { var toParam = JSON.stringify(param); return $http.post('/Report/manyExport', toParam, apiConfig.createVat({responseType: 'arraybuffer'})).then(function (response) { if(!response.result){ SweetAlert.error(response.resultMsg); } PWC.downloadCallBack(new Blob([response.data], {type: response.headers('Content-Type')}),null, null,param.period + "-汇总利润表.xlsx" ); }); } , saveAndRefresh: function (orgId, period, specialConsiderations, ebitRate) { var paramObj = { orgId: orgId, period: period, specialConsiderations: specialConsiderations, ebitRate: ebitRate }; return $http.post('/Report/saveAndRefresh', paramObj, apiConfig.createVat()); }, calculateKeyValue: function (projectId, period) { return $http.post('/Report/calculateKeyValue/' + projectId + '/' + period, {}, apiConfig.createVat({ignoreLoadingBar: true})); }, //CalculateSingleCellFormula: function (cellId) { // return $http.get('/Report/formulaDataSource/byCell/' + cellId, apiConfig.createVat()); //}, updateReportCellValue: function (cellDataList, reportId, generator) { return $http.post('/Report/updateReportCellValue/' + reportId + '?generator=' + generator, cellDataList, apiConfig.createVat()); }, getTemplate: function (projectId, serviceType, period) { if (!_.isNumber(period)) { period = 0; } return $http.get('/Report/template/' + projectId + '/' + serviceType + '/' + period, apiConfig.createVat()); }, getFilterTemplate: function (projectId, serviceType, period) { if (!_.isNumber(period)) { period = 0; } return $http.get('/Report/filterTemplate/' + projectId + '/' + serviceType + '/' + period, apiConfig.createVat()); }, getCellVoucher: function (cellDataID) { return $http.get('/Report/cellVoucher/' + cellDataID, apiConfig.createVat()); }, getCellInvoice: function (cellDataID, invoiceType) { return $http.get('/Report/cellInvoice/' + cellDataID + '/' + invoiceType, apiConfig.createVat()); }, addCellManualData: function (manualData, logInfo) { return $http.post('/Report/addCellManualData', manualData, apiConfig.createVat()).then(function (data) { logInfo.UpdateState = $translate.instant('ManualInputSuccess'); vatOperationLogService.addOperationLog(logInfo); data.dataSourceType = enums.cellDataSourceType.KeyIn; return $q.when(data); }, function (data) { logInfo.UpdateState = $translate.instant('ManualInputFail'); SweetAlert.error($translate.instant('PleaseContactAdministrator')); return vatOperationLogService.addOperationLog(logInfo); }); }, deleteCellVoucher: function (voucherId, datasourceId) { return $http.post('/Report/deleteCellVoucher/' + voucherId + '/' + datasourceId, {}, apiConfig.createVat()); }, deleteCellInvoice: function (invoiceId, datasourceId) { return $http.post('/Report/deleteCellInvoice/' + invoiceId + '/' + datasourceId, {}, apiConfig.createVat()); }, deleteCellDatasource: function (datasourceID, cellID) { return $http.post('/Report/deleteCellDatasource/' + datasourceID + '/' + cellID, {}, apiConfig.createVat()); }, getAllDataItems: function (dataSourceType) { return $http.get('/Report/getAllDataItems/' + dataSourceType, apiConfig.createVat()) }, addDataSource: function (dataSource) { return $http.post('/Report/addDataSource', dataSource, apiConfig.createVat()); }, addDataSourceItems: function (dataSource) { return $http.post('/Report/addDataSourceItems', dataSource, apiConfig.createVat()); }, getCellAccountRange: function (reportTemplateId, period, rowIndex, columnIndex) { if (!_.isNumber(period)) { period = 0; } return $http.get('/Report/getCellAccountRange/' + reportTemplateId + '/' + period + '/' + rowIndex + '/' + columnIndex, apiConfig.createVat()); }, getCellTemplateConfig: function (reportTemplateId, period, rowIndex, columnIndex) { if (!_.isNumber(period)) { period = 0; } return $http.get('/Report/getCellTemplateConfig/' + reportTemplateId + '/' + period + '/' + rowIndex + '/' + columnIndex, apiConfig.createVat()); }, updateCellAccountRangeAndSummary: function (cellTemplateId, period, value, operation) { if (!_.isNumber(period)) { period = 0; } return $http.post('/Report/updateCellAccountRangeAndSummary/' + cellTemplateId + '/' + period + '/' + value + '/' + operation, {}, apiConfig.createVat()); }, updateDataSourceAmount: function (datasourceId, amount) { return $http.post('/Report/updateDataSourceAmount/' + datasourceId + '/' + amount, {}, apiConfig.createVat()); }, getStdAccountByIndustryID: function (industryID) { return $http.get('/Report/getStdAccountByIndustry/' + industryID, apiConfig.createVat()); }, getTemplateReferences: function (period) { return $http.get('/Report/templateReferences/' + period, apiConfig.createVat()); }, citTryGenerateDocList: function (projectId, serviceType, generator) { return $http.post('/Report/citTryGenerateDocList/' + projectId + '/' + serviceType + '?generator=' + generator, {}, apiConfig.createVat()); }, citUpdateConfig: function (projectId, ifDeleteManualDataSource, period, generator) { if (!_.isNumber(period)) { period = 0; } return $http.post('/Report/citUpdateConfig/' + projectId + '/' + ifDeleteManualDataSource + '/' + period + '?generator=' + generator, {}, apiConfig.createVat({ignoreLoadingBar: true})); }, citGeneratePrepay: function (projectId, ifDeleteManualDataSource, period, generator) { return $http.post('/Report/citGenerate/byTotal/' + projectId + '/' + ifDeleteManualDataSource + '/' + 0 // 暂时将生成预缴表的period设置为0,等待完成新的预缴表生成逻辑 + period + '/' + enums.reportType.prepay + '?generator=' + generator, {}, apiConfig.createVat({ignoreLoadingBar: true})); }, citGenerateByType: function (projectId, ifDeleteManualDataSource, reportType, generator) { var paramStr = ''; if (_.isNumber(reportType)) { paramStr = '/' + reportType; } return $http.post('/Report/citGenerate/byTotal/' + projectId + '/' + ifDeleteManualDataSource + '/0' + paramStr + '?generator=' + generator, {}, apiConfig.createVat({ignoreLoadingBar: true})); }, citGetTemplate: function (projectId, period) { if (!_.isNumber(period)) { period = 0; } return $http.get('/Report/citTemplate/' + projectId + '/' + period, apiConfig.createVat()); }, citGetTemplateTree: function (projectId) { return $http.get('/Report/citTemplateTree/' + projectId, apiConfig.createVat()); }, vatGetTemplateTree: function (projectId, period, serviceType) { return $http.get('/Report/vatTemplateTree/' + projectId + '/' + period + '/' + serviceType, apiConfig.createVat()); }, citCalculateKeyValue: function (projectId, reportType) { var reportTypeParam = ''; if (_.isNumber(reportType)) { reportTypeParam = '/' + reportType; } return $http.post('/Report/citCalculateKeyValue/' + projectId + '/0' + reportTypeParam, {}, apiConfig.createVat({ignoreLoadingBar: true})); }, getReportByTemplateId: function (templateId, period) { if (!_.isNumber(period)) { period = 0; } return $http.get('/Report/report/' + templateId + '/' + period, apiConfig.createVat()); }, getReportByTemplateIdEbit: function (templateId, period, orgId) { if (!_.isNumber(period)) { period = 0; } var param = { templateId: templateId, period: period, orgId: orgId }; return $http.post("/Report/getReportByTemplateEbit", JSON.stringify(param), apiConfig.createVat()); }, getDataSourceDetailList: function (dataSourceId) { return $http.get('/Report/getDataSourceDetailList/' + dataSourceId, apiConfig.createVat()); }, hasManualDataSource: function (projectId, period) { return $http.get('/Report/hasManualDataSource/' + projectId + '/' + period, apiConfig.createVat()); }, loadAttachList: function (activeSheet) { return $http.post('/Report/loadAttachList', activeSheet, apiConfig.createVat()); }, deleteAttach: function (id) { var config = {isBusyRequest: true}; return $http.get('/Report/deleteAttach?id=' + id, apiConfig.create(config)); }, getOrgLists: function () { return $http.get('/Report/getOrgLists', apiConfig.createVat()); }, saveEbitModule: function () { }, downLoadAttach: function (id) { return $http.get('/Report/downLoadAttach?id=' + id, apiConfig.createVat()); } }; }]);