Commit f7e25c79 authored by gary's avatar gary

1、数据抽取前端

2、模板下载
parent 31e382e2
......@@ -59,7 +59,7 @@ public class DataPreviewController extends BaseController {
public void downloadCFQueryData(@RequestBody CashFlowParam param, HttpServletResponse response) {
logger.debug("enter downloadCFQueryData");
String fileName="testFile";
dataPreviewSerivceImpl.exportCashFlowList(response, param, fileName);
// dataPreviewSerivceImpl.exportCashFlowList(response, param, fileName);
}
@RequestMapping(value = "exportTBData/get", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
......
......@@ -38,21 +38,4 @@ public class FileUploadController {
return fileUploadAdapter.upload(request);
}
public static void main(String[] args){
try{
String templatePath = "C:\\Users\\Gary J Li\\Documents\\PwcDoc\\DD2018\\vat notes\\导入数据模板-报表&科目余额表&日记账\\导入数据模板-报表&科目余额表&日记账\\Adjustmnet_template.xlsx";
File templateFile = new File(templatePath);
String netFilePath =FileUtils.getTempDirectory().getAbsolutePath() + File.separator + "didiTemplate" + File.separator
+ "Adjustmnet_template.xlsx";
InputStream inputStream = new FileInputStream(templateFile);
System.out.println(String.format("保存输入流到指定的路径, filePath:{}", templateFile));
Files.write(netFilePath, inputStream);
}catch (Exception e){
e.printStackTrace();
}
}
}
......@@ -21,7 +21,9 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.context.ServletContextAware;
import pwc.taxtech.atms.common.util.MyAsserts;
import pwc.taxtech.atms.constant.enums.EnumImportType;
import pwc.taxtech.atms.dpo.TemplateUniqDto;
import pwc.taxtech.atms.dto.*;
import pwc.taxtech.atms.dto.vatdto.TemplateByGroupDto;
......@@ -32,6 +34,8 @@ import pwc.taxtech.atms.exception.NotFoundException;
import pwc.taxtech.atms.service.impl.HttpFileService;
import pwc.taxtech.atms.service.impl.TemplateServiceImpl;
import javax.servlet.ServletContext;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URISyntaxException;
......@@ -40,8 +44,9 @@ import java.util.List;
@RestController
@RequestMapping(value = "api/v1/template")
public class TemplateController extends BaseController {
private static final Logger logger = LoggerFactory.getLogger(TemplateController.class);
public class TemplateController extends BaseController implements ServletContextAware {
private ServletContext servletContext;
@Autowired
TemplateServiceImpl templateService;
......@@ -231,4 +236,57 @@ public class TemplateController extends BaseController {
resultDto.setResult(true);
return resultDto;
}
@RequestMapping(value = "file/downloadTemplate", method = RequestMethod.GET)
public void fileDownload(@RequestParam Integer fileType,HttpServletResponse response){
//获取网站部署路径(通过ServletContext对象),用于确定下载文件位置,从而实现下载
String path = servletContext.getRealPath("/")+"\\WEB-INF\\classes";
String fileName = getFileName(fileType);
response.setContentType("multipart/form-data");
response.setHeader("Content-Disposition", "attachment;fileName="+fileName+".xlsx");
ServletOutputStream out;
File file = new File(path + "\\document\\DataImport\\" + fileName+".xlsx");
try {
FileInputStream inputStream = new FileInputStream(file);
out = response.getOutputStream();
int b = 0;
byte[] buffer = new byte[512];
while (b != -1){
b = inputStream.read(buffer);
out.write(buffer,0,b);
}
inputStream.close();
out.close();
out.flush();
} catch (Exception e){
logger.error(String.format("下载模板异常:%s",e.getMessage()));
}
}
private String getFileName(Integer fileType) {
if(EnumImportType.ProfitLoss.getCode().equals(fileType)){
return EnumImportType.ProfitLoss.name();
}else if(EnumImportType.BalanceSheet.getCode().equals(fileType)){
return EnumImportType.BalanceSheet.name();
}else if(EnumImportType.RedLetterInfoTable.getCode().equals(fileType)){
return EnumImportType.RedLetterInfoTable.name();
}else if(EnumImportType.AdjustmentTable.getCode().equals(fileType)){
return EnumImportType.AdjustmentTable.name();
}else if(EnumImportType.CashFlow.getCode().equals(fileType)){
return EnumImportType.CashFlow.name();
}else if(EnumImportType.CoupaPurchasingReport.getCode().equals(fileType)){
return EnumImportType.CoupaPurchasingReport.name();
}else if(EnumImportType.InvoiceData.getCode().equals(fileType)){
return EnumImportType.InvoiceData.name();
}else if(EnumImportType.Undefined.getCode().equals(fileType)){
return EnumImportType.Undefined.name();
}
return null;
}
@Override
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
}
}
......@@ -23,9 +23,9 @@ public class BaseService {
@Autowired
protected BeanUtil beanUtil;
@Autowired
protected RestTemplate restTemplate;
protected RestTemplate restTemplate;/*
@Autowired
protected CommonDocumentHelper commonDocumentHelper;
protected CommonDocumentHelper commonDocumentHelper;*/
@Autowired
protected ResponseMessageBuilder responseMessageBuilder;
......
package pwc.taxtech.atms.service.impl;
import org.jxls.common.Context;
import org.jxls.expression.JexlExpressionEvaluator;
import org.jxls.transform.Transformer;
import org.jxls.util.JxlsHelper;
import org.nutz.lang.Lang;
import org.nutz.lang.Streams;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component
public class CommonDocumentHelper {
private static final Logger logger = LoggerFactory.getLogger(CommonDocumentHelper.class);
public void toXlsxFileUsingJxls(List<?> list, String excelTemplatePathInClassPath, String outputFilePath) {
//InputStream is = Streams.fileIn(excelTemplatePathInClassPath);
InputStream is = this.getClass().getResourceAsStream(excelTemplatePathInClassPath);
OutputStream os = Streams.fileOut(outputFilePath);
Context context = new Context();
context.putVar("list", list);
context.putVar("REPORT_DATE", new Date());
JxlsHelper jxlsHelper = JxlsHelper.getInstance();
Transformer transformer = jxlsHelper.createTransformer(is, os);
JexlExpressionEvaluator evaluator = (JexlExpressionEvaluator) transformer.getTransformationConfig()
.getExpressionEvaluator();
// evaluator.getJexlEngine().setSilent(true); // 设置静默模式,不报警告
Map<String, Object> funcs = new HashMap<String, Object>();
funcs.put("myutils", new JxlsUtils());
evaluator.getJexlEngine().setFunctions(funcs);
// jxlsHelper.setUseFastFormulaProcessor(false); //与统计函数有关
try {
jxlsHelper.processTemplate(context, transformer);
} catch (IOException e) {
logger.error("error when calling processTemplate:" + e, e);
throw Lang.wrapThrow(e);
} finally {
Streams.safeClose(is);
Streams.safeClose(os);
}
}
public OutputStream toXlsxFileUsingJxls(Object header, List<?> list, String excelTemplatePathInClassPath) {
//InputStream is = Streams.fileIn(excelTemplatePathInClassPath);
InputStream is = this.getClass().getResourceAsStream(excelTemplatePathInClassPath);
OutputStream os = new ByteArrayOutputStream();
Context context = new Context();
context.putVar("header", header);
context.putVar("list", list);
context.putVar("REPORT_DATE", new Date());
JxlsHelper jxlsHelper = JxlsHelper.getInstance();
Transformer transformer = jxlsHelper.createTransformer(is, os);
JexlExpressionEvaluator evaluator = (JexlExpressionEvaluator) transformer.getTransformationConfig()
.getExpressionEvaluator();
// evaluator.getJexlEngine().setSilent(true); // 设置静默模式,不报警告
Map<String, Object> funcs = new HashMap<String, Object>();
funcs.put("myutils", new JxlsUtils());
evaluator.getJexlEngine().setFunctions(funcs);
// jxlsHelper.setUseFastFormulaProcessor(false); //与统计函数有关
try {
jxlsHelper.processTemplate(context, transformer);
} catch (IOException e) {
logger.error("error when calling processTemplate:" + e, e);
throw Lang.wrapThrow(e);
} finally {
Streams.safeClose(is);
Streams.safeClose(os);
}
return os;
}
}
/*
package pwc.taxtech.atms.service.impl;
import org.jxls.common.Context;
import org.jxls.expression.JexlExpressionEvaluator;
import org.jxls.transform.Transformer;
import org.jxls.util.JxlsHelper;
import org.nutz.lang.Lang;
import org.nutz.lang.Streams;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component
public class CommonDocumentHelper {
private static final Logger logger = LoggerFactory.getLogger(CommonDocumentHelper.class);
public void toXlsxFileUsingJxls(List<?> list, String excelTemplatePathInClassPath, String outputFilePath) {
//InputStream is = Streams.fileIn(excelTemplatePathInClassPath);
InputStream is = this.getClass().getResourceAsStream(excelTemplatePathInClassPath);
OutputStream os = Streams.fileOut(outputFilePath);
Context context = new Context();
context.putVar("list", list);
context.putVar("REPORT_DATE", new Date());
JxlsHelper jxlsHelper = JxlsHelper.getInstance();
Transformer transformer = jxlsHelper.createTransformer(is, os);
JexlExpressionEvaluator evaluator = (JexlExpressionEvaluator) transformer.getTransformationConfig()
.getExpressionEvaluator();
// evaluator.getJexlEngine().setSilent(true); // 设置静默模式,不报警告
Map<String, Object> funcs = new HashMap<String, Object>();
funcs.put("myutils", new JxlsUtils());
evaluator.getJexlEngine().setFunctions(funcs);
// jxlsHelper.setUseFastFormulaProcessor(false); //与统计函数有关
try {
jxlsHelper.processTemplate(context, transformer);
} catch (IOException e) {
logger.error("error when calling processTemplate:" + e, e);
throw Lang.wrapThrow(e);
} finally {
Streams.safeClose(is);
Streams.safeClose(os);
}
}
public OutputStream toXlsxFileUsingJxls(Object header, List<?> list, String excelTemplatePathInClassPath) {
//InputStream is = Streams.fileIn(excelTemplatePathInClassPath);
InputStream is = this.getClass().getResourceAsStream(excelTemplatePathInClassPath);
OutputStream os = new ByteArrayOutputStream();
Context context = new Context();
context.putVar("header", header);
context.putVar("list", list);
context.putVar("REPORT_DATE", new Date());
JxlsHelper jxlsHelper = JxlsHelper.getInstance();
Transformer transformer = jxlsHelper.createTransformer(is, os);
JexlExpressionEvaluator evaluator = (JexlExpressionEvaluator) transformer.getTransformationConfig()
.getExpressionEvaluator();
// evaluator.getJexlEngine().setSilent(true); // 设置静默模式,不报警告
Map<String, Object> funcs = new HashMap<String, Object>();
funcs.put("myutils", new JxlsUtils());
evaluator.getJexlEngine().setFunctions(funcs);
// jxlsHelper.setUseFastFormulaProcessor(false); //与统计函数有关
try {
jxlsHelper.processTemplate(context, transformer);
} catch (IOException e) {
logger.error("error when calling processTemplate:" + e, e);
throw Lang.wrapThrow(e);
} finally {
Streams.safeClose(is);
Streams.safeClose(os);
}
return os;
}
}
*/
......@@ -108,7 +108,7 @@ public class DataPreviewSerivceImpl extends BaseService {
return pageInfo;
}
public HttpServletResponse exportCashFlowList(HttpServletResponse response, CashFlowParam param, String fileName) {
/*public HttpServletResponse exportCashFlowList(HttpServletResponse response, CashFlowParam param, String fileName) {
//Boolean isEn = StringUtils.equals(language, "en-us");
logger.debug("start export input invoice list to excel");
//String excelTemplatePathInClassPath = "/vat_excel_template/cash_flow"+(isEn?"":"_cn") + ".xlsx";
......@@ -142,7 +142,7 @@ public class DataPreviewSerivceImpl extends BaseService {
logger.error(e.getMessage());
}
return null;
}
}*/
public PageInfo<JournalEntryDto> getJEDataForDisplay(JournalEntryParam param) {
......
......@@ -1101,7 +1101,25 @@ var dataImpModule = angular.module('app.dataImp', ['ui.grid', 'ui.router','ui.gr
$scope.state = $state;
appTranslation.load([appTranslation.appPart]);
}],
template: '<financial-data-extraction></financial-data-extraction>'
template: '<extract-financial-data></extract-financial-data>'
}
},
resolve: scriptDependencyProvider.createDependenciesMap(scriptDependencyProvider.dataImp),
sticky: true
});
$stateProvider.state({
name: 'invoiceDataExtraction',
url: "/dataExtraction/invoice",
dsr: true,
views: {
'importContent': {
controller: ['$scope', '$state','appTranslation',
function ($scope, $state, appTranslation) {
$scope.state = $state;
appTranslation.load([appTranslation.appPart]);
}],
template: '<extract-invoice-data></extract-invoice-data>'
}
},
resolve: scriptDependencyProvider.createDependenciesMap(scriptDependencyProvider.dataImp),
......
......@@ -398,7 +398,7 @@
"ConfirmationNumber": "Confirmation Number",
"ContactAdmin": "请联系管理员",
"ConverImportBtn": "Overwrite",
"CostCenter": "成本中心",
"CostCenter": "Cost Center",
"CoverImportInputInvoice": "Overwrite imported input VAT invoice summary",
"CoverImportInputInvoiceItem": "Overwrite imported input VAT invoice details",
"CoverImportJournalEntry": "Overwrite existing journal entry data import",
......@@ -1835,6 +1835,12 @@
"DataImportLog": "Data Import Log",
"DataImportLogTitle": "Data Import Log",
"SelectedOrganization": "Selected Organization",
"extractFinancialData": "Extract Financial Data",
"ExtractFinancialDataTitle": "Extract Financial Data",
"extractInvoiceData": "Extract Invoice Data",
"ExtractInvoiceDataTitle": "Extract Invoice Data",
"TBInterCompany": "Inter-Company",
"~MustBeEndOneApp": "I Must be the End One, please!"
......
......@@ -2080,5 +2080,10 @@
"DataImportLogTitle": "数据导入记录",
"SelectedOrganization": "选择机构",
"extractFinancialData": "财务数据抽取",
"ExtractFinancialDataTitle": "财务数据抽取",
"extractInvoiceData": "发票数据抽取",
"ExtractInvoiceDataTitle": "发票数据抽取",
"~MustBeEndOneApp": "我必须是最后一个!"
}
\ No newline at end of file
commonModule.controller('importATController', ['$scope', '$log', '$translate', '$timeout', '$q', '$interval'
, 'apiInterceptor', 'Upload', 'vatImportService', 'SweetAlert', 'uiGridConstants', '$uibModal'
, 'vatSessionService', 'enums', 'vatOperationLogService'
, 'projectService', 'vatCommonService','orgService',
, 'projectService', 'vatCommonService','orgService','templateService',
function ($scope, $log, $translate, $timeout, $q, $interval
, apiInterceptor, Upload, vatImportService, SweetAlert, uiGridConstants, $uibModal
, vatSessionService, enums, vatOperationLogService
, projectService, vatCommonService , orgService) {
, projectService, vatCommonService , orgService,templateService) {
'use strict';
var successCount = 0;
......@@ -673,7 +673,38 @@
return filterData;
};
//导入事件
var downloadTemplate = function () {
$('#busy-indicator-container').show();
templateService.downloadTemplate(constant.importFileType.adjustmentTable).success(function (data, status, headers) {
var octetStreamMime = 'application/octet-stream';
var contentType = headers('content-type') || octetStreamMime;
if (window.navigator.msSaveBlob) {
var blob = new Blob([data], {
type: contentType
});
navigator.msSaveBlob(blob, "AdjustmentTable");
} else {
var urlCreator = window.URL || window.webkitURL || window.mozURL || window.msURL;
if (urlCreator) {
var a = document.createElement('a');
var blob = new Blob([data], {
type: contentType
});
var url = urlCreator.createObjectURL(blob);
a.href = url;
a.target = '_blank';
a.download = "AdjustmentTable.xlsx";
document.body.appendChild(a);
a.click();
}
}
}).error(function () {
SweetAlert.error($translate.instant('PleaseContactAdministrator'));
});
$('#busy-indicator-container').hide();
};
//导入事件
var doUploadPL = function (importType) {
var impExl = $scope.importExcelFile;
var deferred = $q.defer();
......@@ -1207,6 +1238,7 @@
$log.debug('ImportTBController.ctor()...');
checkUserOrganizationPermissionList();
$scope.doUploadPL = doUploadPL;
$scope.downloadTemplate = downloadTemplate;
$scope.refreshTbData = refreshTbData;
$scope.initPagingControl = initPagingControl;
$scope.setButtonWrapStyle = setButtonWrapStyle;
......
......@@ -786,6 +786,37 @@
refreshByService.callRefresh($scope.serviceTypeId, enums.optionType.Refresh);
};
var downloadTemplate = function () {
$('#busy-indicator-container').show();
templateService.downloadTemplate(constant.importFileType.balanceSheet).success(function (data, status, headers) {
var octetStreamMime = 'application/octet-stream';
var contentType = headers('content-type') || octetStreamMime;
if (window.navigator.msSaveBlob) {
var blob = new Blob([data], {
type: contentType
});
navigator.msSaveBlob(blob, "BalanceSheet");
} else {
var urlCreator = window.URL || window.webkitURL || window.mozURL || window.msURL;
if (urlCreator) {
var a = document.createElement('a');
var blob = new Blob([data], {
type: contentType
});
var url = urlCreator.createObjectURL(blob);
a.href = url;
a.target = '_blank';
a.download = "BalanceSheet.xlsx";
document.body.appendChild(a);
a.click();
}
}
}).error(function () {
SweetAlert.error($translate.instant('PleaseContactAdministrator'));
});
$('#busy-indicator-container').hide();
};
var getGridHeight = function () {
if ($scope.isLoadComplete) {
return { height: ($('.balance-ouput-grid-wrapper').height()) + "px" };
......@@ -1208,6 +1239,7 @@
$log.debug('ImportTBController.ctor()...');
checkUserOrganizationPermissionList();
$scope.doUploadPL = doUploadPL;
$scope.downloadTemplate = downloadTemplate;
$scope.refreshTbData = refreshTbData;
$scope.initPagingControl = initPagingControl;
$scope.setButtonWrapStyle = setButtonWrapStyle;
......
......@@ -667,8 +667,39 @@
return filterData;
};
var downloadTemplate = function () {
$('#busy-indicator-container').show();
templateService.downloadTemplate(constant.importFileType.cashFlow).success(function (data, status, headers) {
var octetStreamMime = 'application/octet-stream';
var contentType = headers('content-type') || octetStreamMime;
if (window.navigator.msSaveBlob) {
var blob = new Blob([data], {
type: contentType
});
navigator.msSaveBlob(blob, "CashFlow");
} else {
var urlCreator = window.URL || window.webkitURL || window.mozURL || window.msURL;
if (urlCreator) {
var a = document.createElement('a');
var blob = new Blob([data], {
type: contentType
});
var url = urlCreator.createObjectURL(blob);
a.href = url;
a.target = '_blank';
a.download = "CashFlow.xlsx";
document.body.appendChild(a);
a.click();
}
}
}).error(function () {
SweetAlert.error($translate.instant('PleaseContactAdministrator'));
});
$('#busy-indicator-container').hide();
};
//导入事件
var doUploadPL = function (importType) {
var doUploadCF = function (importType) {
var impExl = $scope.importExcelFile;
var deferred = $q.defer();
var token = $('input[name="__RequestVerificationToken"]').val();
......@@ -1203,7 +1234,8 @@
(function initialize() {
$log.debug('ImportTBController.ctor()...');
checkUserOrganizationPermissionList();
$scope.doUploadPL = doUploadPL;
$scope.doUploadCF = doUploadCF;
$scope.downloadTemplate = downloadTemplate;
$scope.refreshTbData = refreshTbData;
$scope.initPagingControl = initPagingControl;
$scope.setButtonWrapStyle = setButtonWrapStyle;
......
......@@ -671,6 +671,37 @@
return filterData;
};
var downloadTemplate = function () {
$('#busy-indicator-container').show();
templateService.downloadTemplate(constant.importFileType.coupaPurchasingReport).success(function (data, status, headers) {
var octetStreamMime = 'application/octet-stream';
var contentType = headers('content-type') || octetStreamMime;
if (window.navigator.msSaveBlob) {
var blob = new Blob([data], {
type: contentType
});
navigator.msSaveBlob(blob, "CoupaPurchasingReport");
} else {
var urlCreator = window.URL || window.webkitURL || window.mozURL || window.msURL;
if (urlCreator) {
var a = document.createElement('a');
var blob = new Blob([data], {
type: contentType
});
var url = urlCreator.createObjectURL(blob);
a.href = url;
a.target = '_blank';
a.download = "CoupaPurchasingReport.xlsx";
document.body.appendChild(a);
a.click();
}
}
}).error(function () {
SweetAlert.error($translate.instant('PleaseContactAdministrator'));
});
$('#busy-indicator-container').hide();
};
//导入事件
var doUploadPL = function (importType) {
var impExl = $scope.importExcelFile;
......@@ -1253,6 +1284,7 @@
$log.debug('ImportTBController.ctor()...');
checkUserOrganizationPermissionList();
$scope.doUploadPL = doUploadPL;
$scope.downloadTemplate = downloadTemplate;
$scope.refreshTbData = refreshTbData;
$scope.initPagingControl = initPagingControl;
$scope.setButtonWrapStyle = setButtonWrapStyle;
......
......@@ -671,7 +671,7 @@
};
//导入事件
var doUploadPL = function (importType) {
var doUploadID = function (importType) {
debugger;
var impExl = $scope.importExcelFile;
......@@ -761,6 +761,37 @@
});
};
var downloadTemplate = function () {
$('#busy-indicator-container').show();
templateService.downloadTemplate(constant.importFileType.invoiceData).success(function (data, status, headers) {
var octetStreamMime = 'application/octet-stream';
var contentType = headers('content-type') || octetStreamMime;
if (window.navigator.msSaveBlob) {
var blob = new Blob([data], {
type: contentType
});
navigator.msSaveBlob(blob, "InvoiceData");
} else {
var urlCreator = window.URL || window.webkitURL || window.mozURL || window.msURL;
if (urlCreator) {
var a = document.createElement('a');
var blob = new Blob([data], {
type: contentType
});
var url = urlCreator.createObjectURL(blob);
a.href = url;
a.target = '_blank';
a.download = "InvoiceData.xlsx";
document.body.appendChild(a);
a.click();
}
}
}).error(function () {
SweetAlert.error($translate.instant('PleaseContactAdministrator'));
});
$('#busy-indicator-container').hide();
};
//显示图标
var errorLevelToString = function (errorLevel) {
if (errorLevel === 0) {
......@@ -1209,7 +1240,8 @@
(function initialize() {
$log.debug('ImportTBController.ctor()...');
checkUserOrganizationPermissionList();
$scope.doUploadPL = doUploadPL;
$scope.doUploadID = doUploadID;
$scope.downloadTemplate = downloadTemplate;
$scope.refreshTbData = refreshTbData;
$scope.initPagingControl = initPagingControl;
$scope.setButtonWrapStyle = setButtonWrapStyle;
......
......@@ -670,6 +670,37 @@
return filterData;
};
var downloadTemplate = function () {
$('#busy-indicator-container').show();
templateService.downloadTemplate(constant.importFileType.profitLoss).success(function (data, status, headers) {
var octetStreamMime = 'application/octet-stream';
var contentType = headers('content-type') || octetStreamMime;
if (window.navigator.msSaveBlob) {
var blob = new Blob([data], {
type: contentType
});
navigator.msSaveBlob(blob, "ProfitLoss");
} else {
var urlCreator = window.URL || window.webkitURL || window.mozURL || window.msURL;
if (urlCreator) {
var a = document.createElement('a');
var blob = new Blob([data], {
type: contentType
});
var url = urlCreator.createObjectURL(blob);
a.href = url;
a.target = '_blank';
a.download = "ProfitLoss.xlsx";
document.body.appendChild(a);
a.click();
}
}
}).error(function () {
SweetAlert.error($translate.instant('PleaseContactAdministrator'));
});
$('#busy-indicator-container').hide();
};
//导入事件
var doUploadPL = function (importType) {
debugger;
......@@ -1210,6 +1241,7 @@
$log.debug('ImportTBController.ctor()...');
checkUserOrganizationPermissionList();
$scope.doUploadPL = doUploadPL;
$scope.downloadTemplate = downloadTemplate;
$scope.refreshTbData = refreshTbData;
$scope.initPagingControl = initPagingControl;
$scope.setButtonWrapStyle = setButtonWrapStyle;
......
......@@ -674,8 +674,39 @@
return filterData;
};
var downloadTemplate = function () {
$('#busy-indicator-container').show();
templateService.downloadTemplate(constant.importFileType.redLetterInfoTable).success(function (data, status, headers) {
var octetStreamMime = 'application/octet-stream';
var contentType = headers('content-type') || octetStreamMime;
if (window.navigator.msSaveBlob) {
var blob = new Blob([data], {
type: contentType
});
navigator.msSaveBlob(blob, "RedLetterInfoTable");
} else {
var urlCreator = window.URL || window.webkitURL || window.mozURL || window.msURL;
if (urlCreator) {
var a = document.createElement('a');
var blob = new Blob([data], {
type: contentType
});
var url = urlCreator.createObjectURL(blob);
a.href = url;
a.target = '_blank';
a.download = "RedLetterInfoTable.xlsx";
document.body.appendChild(a);
a.click();
}
}
}).error(function () {
SweetAlert.error($translate.instant('PleaseContactAdministrator'));
});
$('#busy-indicator-container').hide();
};
//导入事件
var doUploadPL = function (importType) {
var doUploadRLIT = function (importType) {
var impExl = $scope.importExcelFile;
var deferred = $q.defer();
var token = $('input[name="__RequestVerificationToken"]').val();
......@@ -1256,7 +1287,8 @@
(function initialize() {
$log.debug('ImportTBController.ctor()...');
checkUserOrganizationPermissionList();
$scope.doUploadPL = doUploadPL;
$scope.doUploadRLIT = doUploadRLIT;
$scope.downloadTemplate = downloadTemplate;
$scope.refreshTbData = refreshTbData;
$scope.initPagingControl = initPagingControl;
$scope.setButtonWrapStyle = setButtonWrapStyle;
......
......@@ -1422,6 +1422,17 @@ constant.importFileType = {
invoiceData: 7
};
constant.fileTypeList = [
{code:0,type:"月度科目余额表"},
{code:1,type:"日记账"},
{code:2,type:"资产负债表PRC"},
{code:2,type:"利润表PRC"},
{code:2,type:"资产负债表"},
{code:2,type:"利润表"},
{code:2,type:"直接法现金流量表"},
{code:2,type:"所有者权益变动表和汇率表"}
];
......
......@@ -125,6 +125,9 @@ webservices.factory('templateService', ['$log', '$http', '$q', 'apiConfig', 'htt
return {
renderSpreadExcelSimple: renderSpreadExcelSimple,
setRowColName: setRowColName,
getTemplateJson: getTemplateJson
getTemplateJson: getTemplateJson,
downloadTemplate: function (fileType) {
return $http.get('/template/file/downloadTemplate?fileType=' + fileType , apiConfig.create({ responseType: 'arraybuffer' }));
}
};
}]);
\ No newline at end of file
dataImpModule.directive('financialDataExtraction', ['$log', '$compile', '$timeout', '$interval',
function ($log, $compile, $timeout, $interval) {
dataImpModule.directive('extractInvoiceData', ['$log',
function ($log) {
'use strict';
$log.debug('financialDataExtraction.ctor()...');
return {
restrict: 'E',
templateUrl: '/app/dataImport/dataExtraction/financialDataExtraction/financial-data-extraction.html' + '?_=' + Math.random(),
scope: {},
replace: true,
controller: 'FinancialDataExtractionController',
templateUrl: '/app/dataImport/data-extraction/extract-invoice-data/extract-invoice-data.html' + '?_=' + Math.random(),
scope: {
serviceTypeId: "=?",
periodId: "=?"
},
controller: 'extractInvoiceDataController',
link: function (scope, element) {
$('.main-contents')[0].style.width = "260px";
$('.main-contents')[0].style.float = "left";
$('.main-contents')[0].style.styleFloat = "left";
$('.main-contents')[0].style.cssFloat = "left";
}//# end of link
}
}
};
}
]);
\ No newline at end of file
]);
\ No newline at end of file
@import "~/app-resources/less/theme.less";
.extract-financial-data {
/*background-color: @color-white;*/
padding-left: 20px;
/*min-height: 800px;*/
height: 96%;
.nav-wrapper {
/*padding-bottom: 5px;
border-bottom: 1px solid #DBD8D3;*/
.nav-header {
height: 54px;
line-height: 54px;
font-family: "Microsoft YaHei Bold", "Microsoft YaHei Regular", "Microsoft YaHei";
font-weight: 700;
font-style: normal;
font-size: 15px;
color: #333;
display: inline-block;
}
.nav-tab {
span {
display: inline-block;
height: 34px;
line-height: 34px;
padding: 0 10px;
background-color: #B90808;
color: #FFF;
font-family: "Microsoft YaHei";
font-weight: 400;
font-style: normal;
font-size: 14px;
cursor: pointer;
}
.active {
background-color: #F91000;
}
}
.alert-warning {
background-color: #FDE2DE;
cursor: pointer;
}
.alert {
color: #CF2D1B;
font-weight: bold;
display: inline-block;
padding: 5px;
margin-left: 60px;
margin-bottom: 0px;
i {
font-size: 20px;
vertical-align: middle;
margin-right: 5px;
}
}
.operation-wrapper {
margin: 15px 25px 10px 10px;
span {
cursor: pointer;
}
}
}
.dropdown-common() {
display: inline-block;
.select-button {
background-color: #F5F5F5;
padding: 6px 0;
width: 100px;
}
.caret {
margin-top: 8px;
}
.dropdown-menu {
min-width: 100px;
li {
text-align: center;
min-height: 0px;
height: 30px;
line-height: 30px;
color: #000;
font-weight: normal;
&:hover {
background-color: #F91000;
color: #FFF;
}
}
}
}
#tab_total {
display: block;
height: calc(~'100% - 40px');
position: relative;
.import-wrapper {
span {
margin-left: 10px;
color: #333;
font-family: "Microsoft YaHei";
font-style: normal;
font-size: 14px;
font-weight: bold;
}
.checkbox-custom {
float: left;
position: relative;
margin-top: 0;
display: inline-block;
}
.divider{
height: 1px;
margin: 9px 0;
overflow: hidden;
background-color: #e5e5e5;
}
.checkbox-custom input[type="checkbox"] {
cursor: pointer;
z-index: 2;
margin: -6px 0 0 0;
top: 50%;
left: 3px;
}
.checkbox-custom label:before {
content: '';
position: absolute;
top: 50%;
left: 0;
margin-top: -9px;
width: 19px;
height: 18px;
display: inline-block;
border-radius: 2px;
border: 1px solid #bbb;
background: #fff;
}
.checkbox-custom input[type="checkbox"]:checked +label:after {
position: absolute;
display: inline-block;
font-family: 'Glyphicons Halflings';
content: "\e013";
top: 42%;
left: 3px;
margin-top: -5px;
font-size: 11px;
line-height: 1;
width: 16px;
height: 16px;
color: #333;
}
.checkbox-custom label {
cursor: pointer;
line-height: 1.2;
font-weight: normal;
margin-bottom: 0;
text-align: left;
}
.period-picker {
width: 150px;
border: 1px solid #c7c5c0;
display: inline-block;
line-height: 20px;
margin-top: 7px;
}
.imp-subheader {
display: inline-block;
font-size: 15px;
height: 30px;
line-height: 30px;
vertical-align: middle;
border: none;
select {
appearance: none;
-moz-appearance: none;
-webkit-appearance: none;
background: transparent;
}
}
.dropdown {
.dropdown-common();
}
input {
width: 50px;
outline: none;
border-radius: 3px;
border: 1px solid #3c3a36;
padding: 2px;
text-align: center;
}
> button:last-child {
float: right;
margin-right: 20px;
}
.btn-wrapper {
border-radius: 5px;
background-color: #e0301e;
color: #FFF;
display: inline-block;
float: right;
margin-right: 10px;
.btn-vat-primary {
min-width: 80px;
}
}
}
.dt-init-wrapper {
margin: 60px 0;
max-width: 99%;
height: calc(~'100% - 25px');
position: relative;
.dropdown {
.dropdown-common();
i {
color: #F85550;
}
}
.importATStatusGridContainer {
height: calc(~'100% - 30px');
overflow: hidden;
position: absolute;
top: 0;
bottom: 136px; /* 130 + 6 */
left: 0;
right: 0;
background-color: #FFF;
}
}
.error-info-wrapper {
position: absolute;
height: 150px;
bottom: 0;
left: 0;
right: 0;
overflow: hidden;
background-color: #FFF;
margin-left: -40px;
}
#content-resizer {
width: 110%;
position: absolute;
height: 4px;
bottom: 150px;
left: 0;
right: 0;
background-color: red;
cursor: n-resize;
margin-left: -40px;
#topIcon {
cursor: pointer;
margin-top: -19px;
width: 38px;
margin-left: 46%;
z-index: 999;
bottom: -381px;
text-align: center;
display: block !important;
}
}
.dt-import-wrapper {
margin: 60px 0;
max-width: 99%;
overflow: auto;
height: calc(~"100% - 35px");
.dropdown {
.dropdown-common();
i {
color: #F85550;
}
}
}
}
.error-list-modal {
.modal-title {
color: #FF0000;
}
.modal-body {
max-height: 300px;
overflow-y: auto;
table {
border: 1px solid #CCC;
thead tr th {
height: 30px;
border: 1px solid #CCC;
}
tbody tr td {
height: 25px;
border: 1px solid #CCC;
}
}
}
.modal-footer {
text-align: center;
}
}
#tab_detail {
display: none;
}
/*覆写ack-pagination.less中:.page-size, .pagination 中的margin演示 */
.page-form-group{
float:right;
.page-size{
margin:0;
}
.pagination {
margin:0;
}
}
}
.tb-model-period-dropdow-popup {
width: 400px;
height: 500px;
position: fixed;
top: 25%;
left: 40%;
.modal-dialog {
width: 100%;
height: 90%;
margin: 20px auto;
.modal-content {
width: 100%;
.modal-body {
height: 90%;
}
}
}
}
#totalWrapper {
margin: 5px 10px 10px -10px;
width: 100%;
padding-left: 10px;
font-family: Microsoft YaHei;
font-size: 13px;
float:right;
.total_span{
color: #B4122A !important;
background-color:#ddd !important;
font-size: 12px !important;
font-weight:bold !important;
border-radius:10px !important;
padding-left: 8px !important;
padding-right: 8px !important;
}
.total-column{
width:15%;
float:left;
padding-left: 15px;
}
}
\ No newline at end of file
dataImpModule.directive('extractFinancialData', ['$log',
function ($log) {
'use strict';
return {
restrict: 'E',
templateUrl: '/app/dataImport/data-extraction/extract-financial-data/extract-financial-data.html' + '?_=' + Math.random(),
scope: {
serviceTypeId: "=?",
periodId: "=?"
},
controller: 'extractFinancialDataController',
link: function (scope, element) {
$('.main-contents')[0].style.width = "260px";
$('.main-contents')[0].style.float = "left";
$('.main-contents')[0].style.styleFloat = "left";
$('.main-contents')[0].style.cssFloat = "left";
}
};
}
]);
\ No newline at end of file
@import "~/app-resources/less/theme.less";
.extract-invoice-data {
/*background-color: @color-white;*/
padding-left: 20px;
/*min-height: 800px;*/
height: 96%;
.nav-wrapper {
/*padding-bottom: 5px;
border-bottom: 1px solid #DBD8D3;*/
.nav-header {
height: 54px;
line-height: 54px;
font-family: "Microsoft YaHei Bold", "Microsoft YaHei Regular", "Microsoft YaHei";
font-weight: 700;
font-style: normal;
font-size: 15px;
color: #333;
display: inline-block;
}
.nav-tab {
span {
display: inline-block;
height: 34px;
line-height: 34px;
padding: 0 10px;
background-color: #B90808;
color: #FFF;
font-family: "Microsoft YaHei";
font-weight: 400;
font-style: normal;
font-size: 14px;
cursor: pointer;
}
.active {
background-color: #F91000;
}
}
.alert-warning {
background-color: #FDE2DE;
cursor: pointer;
}
.alert {
color: #CF2D1B;
font-weight: bold;
display: inline-block;
padding: 5px;
margin-left: 60px;
margin-bottom: 0px;
i {
font-size: 20px;
vertical-align: middle;
margin-right: 5px;
}
}
.operation-wrapper {
margin: 15px 25px 10px 10px;
span {
cursor: pointer;
}
}
}
.dropdown-common() {
display: inline-block;
.select-button {
background-color: #F5F5F5;
padding: 6px 0;
width: 100px;
}
.caret {
margin-top: 8px;
}
.dropdown-menu {
min-width: 100px;
li {
text-align: center;
min-height: 0px;
height: 30px;
line-height: 30px;
color: #000;
font-weight: normal;
&:hover {
background-color: #F91000;
color: #FFF;
}
}
}
}
#tab_total {
display: block;
height: calc(~'100% - 40px');
position: relative;
.import-wrapper {
span {
margin-left: 10px;
color: #333;
font-family: "Microsoft YaHei";
font-style: normal;
font-size: 14px;
font-weight: bold;
}
.checkbox-custom {
float: left;
position: relative;
margin-top: 0;
display: inline-block;
}
.divider{
height: 1px;
margin: 9px 0;
overflow: hidden;
background-color: #e5e5e5;
}
.checkbox-custom input[type="checkbox"] {
cursor: pointer;
z-index: 2;
margin: -6px 0 0 0;
top: 50%;
left: 3px;
}
.checkbox-custom label:before {
content: '';
position: absolute;
top: 50%;
left: 0;
margin-top: -9px;
width: 19px;
height: 18px;
display: inline-block;
border-radius: 2px;
border: 1px solid #bbb;
background: #fff;
}
.checkbox-custom input[type="checkbox"]:checked +label:after {
position: absolute;
display: inline-block;
font-family: 'Glyphicons Halflings';
content: "\e013";
top: 42%;
left: 3px;
margin-top: -5px;
font-size: 11px;
line-height: 1;
width: 16px;
height: 16px;
color: #333;
}
.checkbox-custom label {
cursor: pointer;
line-height: 1.2;
font-weight: normal;
margin-bottom: 0;
text-align: left;
}
.period-picker {
width: 150px;
border: 1px solid #c7c5c0;
display: inline-block;
line-height: 20px;
margin-top: 7px;
}
.imp-subheader {
display: inline-block;
font-size: 15px;
height: 30px;
line-height: 30px;
vertical-align: middle;
border: none;
select {
appearance: none;
-moz-appearance: none;
-webkit-appearance: none;
background: transparent;
}
}
.dropdown {
.dropdown-common();
}
input {
width: 50px;
outline: none;
border-radius: 3px;
border: 1px solid #3c3a36;
padding: 2px;
text-align: center;
}
> button:last-child {
float: right;
margin-right: 20px;
}
.btn-wrapper {
border-radius: 5px;
background-color: #e0301e;
color: #FFF;
display: inline-block;
float: right;
margin-right: 10px;
.btn-vat-primary {
min-width: 80px;
}
}
}
.dt-init-wrapper {
margin: 60px 0;
max-width: 99%;
height: calc(~'100% - 25px');
position: relative;
.dropdown {
.dropdown-common();
i {
color: #F85550;
}
}
.importATStatusGridContainer {
height: calc(~'100% - 30px');
overflow: hidden;
position: absolute;
top: 0;
bottom: 136px; /* 130 + 6 */
left: 0;
right: 0;
background-color: #FFF;
}
}
.error-info-wrapper {
position: absolute;
height: 150px;
bottom: 0;
left: 0;
right: 0;
overflow: hidden;
background-color: #FFF;
margin-left: -40px;
}
#content-resizer {
width: 110%;
position: absolute;
height: 4px;
bottom: 150px;
left: 0;
right: 0;
background-color: red;
cursor: n-resize;
margin-left: -40px;
#topIcon {
cursor: pointer;
margin-top: -19px;
width: 38px;
margin-left: 46%;
z-index: 999;
bottom: -381px;
text-align: center;
display: block !important;
}
}
.dt-import-wrapper {
margin: 60px 0;
max-width: 99%;
overflow: auto;
height: calc(~"100% - 35px");
.dropdown {
.dropdown-common();
i {
color: #F85550;
}
}
}
}
.error-list-modal {
.modal-title {
color: #FF0000;
}
.modal-body {
max-height: 300px;
overflow-y: auto;
table {
border: 1px solid #CCC;
thead tr th {
height: 30px;
border: 1px solid #CCC;
}
tbody tr td {
height: 25px;
border: 1px solid #CCC;
}
}
}
.modal-footer {
text-align: center;
}
}
#tab_detail {
display: none;
}
/*覆写ack-pagination.less中:.page-size, .pagination 中的margin演示 */
.page-form-group{
float:right;
.page-size{
margin:0;
}
.pagination {
margin:0;
}
}
}
.tb-model-period-dropdow-popup {
width: 400px;
height: 500px;
position: fixed;
top: 25%;
left: 40%;
.modal-dialog {
width: 100%;
height: 90%;
margin: 20px auto;
.modal-content {
width: 100%;
.modal-body {
height: 90%;
}
}
}
}
#totalWrapper {
margin: 5px 10px 10px -10px;
width: 100%;
padding-left: 10px;
font-family: Microsoft YaHei;
font-size: 13px;
float:right;
.total_span{
color: #B4122A !important;
background-color:#ddd !important;
font-size: 12px !important;
font-weight:bold !important;
border-radius:10px !important;
padding-left: 8px !important;
padding-right: 8px !important;
}
.total-column{
width:15%;
float:left;
padding-left: 15px;
}
}
\ No newline at end of file
......@@ -5,7 +5,7 @@
console.log('dataImpLayoutctor');
return {
restrict: 'E',
templateUrl: '/app/dataImport/dataImport-layout/data-import-layout..html' + '?_=' + Math.random(),
templateUrl: '/app/dataImport/data-import-layout/data-import-layout..html' + '?_=' + Math.random(),
replace: true,
scope: {
},
......
<div class="financial-data-extraction">
<div class="menu-header">
<div class="menu-title">{{'OrganizationManage' | translate}}</div>
<div class="menu-log">
<button class="btn btn-not-important" ng-click="showOperateLogPop()"><i class="material-icons">description</i><span translate="log"></span></button>
</div>
</div>
<div class="content-container">
<div class="header">
<button type="button" style="margin-left: 13px;margin-top: 5px;" ng-if="hasAddPermission" class="btn btn-in-grid" ng-click="createOrg()">
<i class="material-icons middle icon-add">add_circle_outline</i> {{'CreateOrgButtonTitle' | translate }}
</button>
<button type="button" style="" ng-if="hasAddPermission && !expanded" class="btn btn-in-grid" ng-click="expandAll()">
<i class="fa fa-expand" aria-hidden="true" ng-if="!expanded" ng-click="expandAll()">&nbsp;<span>{{'ExpandAll' | translate }}</span></i>
</button>
<button type="button" style="" ng-if="hasAddPermission && expanded" class="btn btn-in-grid" ng-click="collapseAll()">
<i class="fa fa-compress" aria-hidden="true" ng-if="expanded" ng-click="collapseAll()">&nbsp;<span>{{'CollapseAll' | translate}}</span></i>
</button>
<div class="account-filter" style="display:inline-block;margin-left: 16px;">
<span style="height: 25px;display: inline-block;line-height: 25px;vertical-align: middle;">
{{'Filter' | translate }}
</span>
<span>
<i class="fa fa-filter" style="font-size: 16px;" aria-hidden="true" ng-click="showFilter()"></i>
</span>
<div class="filter-select" tabindex="-1" style="display:none">
<ul ng-repeat=" x in taxPayerFilterList">
<li>
<input type="radio" name="payernumber" checklist-model="filter.selected" checklist-value="x" ng-click="stateChanged($event,x)" ng-checked="isSelected(x.key)"> {{x.value}}
</li>
</ul>
</div>
</div>
<button type="button" style="" ng-if="hasAddPermission" class="btn btn-in-grid" ng-click="exportOrgList()">
<i class="fa fa-download" aria-hidden="true">&nbsp;<span>{{'Export' | translate}}</span></i>
</button>
<div class="right-operate ">
<!-- board展示 -->
<!--<a class="display-user" href="#/organizationViewInfrastructure/organizationBusinessUnitView" title="{{'ShowAsCard' | translate}}"><i class="fa fa-th" aria-hidden="true"></i></a>-->
<a class="display-user border-left active" title="{{'ShowAsList' | translate}}">
<!-- list展示 -->
<i class="fa fa-list-ul" aria-hidden="true"></i>
</a>
</div>
</div>
<div class="user-grid">
<span style="margin-left:30px; position: absolute;left: 249px;top: 132px;z-index: 999;">{{'TotalHave'| translate}}<span style="color:red; padding:0px 2px">{{totalCount}}</span>{{'Records'| translate}}</span>
<div class="dx-viewport grid-container">
<div id="orgGridContainer" dx-data-grid="orgUserGridOptions" dx-item-alias="orgInfo" style="margin-top: -9px;">
<div data-options="dxTemplate: {name: 'detail'}">
<div dx-data-grid="getDetailGridSettings(orgInfo)"></div>
</div>
</div>
<!--分页栏-->
</div>
<div class="form-group page-form-group">
<div class="page-footer">
<ack-pagination page-options="pagingOptions" refresh-table="pagingService.refreshOrgDataGrid()" hide-page-size-selector="true"></ack-pagination>
</div>
</div>
</div>
</div>
<operate-log is-show="isShowLog"></operate-log>
<!--编辑或者添加机构信息-->
<edit-organization-modal operate-type="orgOperateType" is-update="isOrgUpdate" selected-organization="selectedOrg" new-organization="organization"></edit-organization-modal>
</div>

.financial-data-extraction {
font-family: 'Microsoft YaHei';
height: 100%;
/*padding: 15px;*/
i span {
font-family: 'Microsoft YaHei';
font-style: normal;
font-size: 14px;
color: #333333;
}
.content-container {
background-color: #ffffff;
.header {
height: 60px;
.right-operate {
margin-right: 15px;
display: inline-block;
float: right;
border: 1px solid @color-light-gray-e4;
margin-top: 5px;
.display-user {
background-color: white;
padding: 6px 8px;
display: inline-block;
}
.active {
color: @color-orange2;
}
.deactive {
color: @color-light-gray-91;
}
.border-left {
border-left: 1px solid @color-light-gray-e4;
}
}
}
.account-filter {
display: inline-block;
margin-left: 30px;
.fa-filter {
margin-right: 30px;
}
.filter-select {
width: 180px;
line-height: 20px;
/*height: 180px;*/
display: inline-block;
/*font-family: 'Microsoft YaHei Bold', 'Microsoft YaHei Regular', 'Microsoft YaHei';
font-weight: 700;*/
color: #434343;
padding: 10px 20px 10px 5px;
border: 1px solid #bcbcbc;
-moz-box-shadow: 2px 2px 5px #adaaaa;
-webkit-box-shadow: 2px 2px 5px #adaaaa;
box-shadow: 2px 2px 5px #adaaaa;
position: absolute;
z-index: 999;
background-color: #fff;
border-radius: 3px;
}
.filter-select ul {
list-style-type: none;
padding: 0px 20px 0 10px;
line-height: 10px;
}
.fa-filter {
font-size: 25px;
vertical-align: sub;
}
}
.user-grid {
padding: 0px 15px;
/*margin-top: 20px;
border: 1px solid @color-light-gray-d4;
border-radius: 5px;*/
margin-bottom: 6px;
.master-detail-caption {
padding: 0 0 5px 10px;
font-size: 14px;
font-weight: bold;
}
.dx-viewport {
height: calc(~'100% - 60px');
}
#orgGridContainer {
/*height: 600px;*/
margin-bottom: 15px;
}
}
}
.page-footer {
display: inline-block;
float: right;
/*padding-right: 20px;*/
}
.page-form-group {
float: right;
margin-top:20px;
.page-size {
margin: 0;
}
.pagination {
margin: 0;
}
}
}
......@@ -311,12 +311,12 @@
{ name: $translate.instant('ApprovalStatus'), width: 200, cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.approvalStatus}}<span></div>' },
// { name: $translate.instant('InvoiceQJ'), width: '8%', cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.periodID}}<span></div>' },
{ name: $translate.instant('Posting'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.postedStatus}}<span></div>' },
{ name: $translate.instant('AccountingPeriod'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span title="{{row.entity.fpdm}}">{{row.entity.period}}</span></div>' },
{ name: $translate.instant('DocumentDate'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span title="{{row.entity.fphm}}">{{row.entity.accountingDate}}</span></div>' },
{ name: $translate.instant('JournalSource'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span title="{{row.entity.xfsh}}">{{row.entity.journalSource}}</span></div>' },
{ name: $translate.instant('JournalCategory'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span title="{{row.entity.fplx}}">{{row.entity.category}}</span></div>' },
{ name: $translate.instant('JournalName'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents right"><span style="float:right">{{row.entity.name}}</span></div>' },
{ name: $translate.instant('DocumentNo'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents right"><span style="float:right">{{row.entity.voucherNum}}</span></div>' },
{ name: $translate.instant('AccountingPeriod'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span >{{row.entity.period}}</span></div>' },
{ name: $translate.instant('DocumentDate'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span >{{row.entity.accountingDate}}</span></div>' },
{ name: $translate.instant('JournalSource'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span >{{row.entity.journalSource}}</span></div>' },
{ name: $translate.instant('JournalCategory'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span >{{row.entity.category}}</span></div>' },
{ name: $translate.instant('JournalName'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span >{{row.entity.name}}</span></div>' },
{ name: $translate.instant('DocumentNo'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span >{{row.entity.voucherNum}}</span></div>' },
{ name: $translate.instant('Summary'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.description}}</span></div>' },
{ name: $translate.instant('MainBodyDescription'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.segment1Name}}</span></div>' },
{ name: $translate.instant('CostCenterDescription'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.segment2Name}}</span></div>' },
......@@ -328,8 +328,8 @@
{ name: $translate.instant('InterCompanyDescription'),width: 200, cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.segment8Name}}</span></div>' },
{ name: $translate.instant('Alternate1Description'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.segment9Name}}</span></div>' },
{ name: $translate.instant('Alternate2Description'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.segment10Name}}</span></div>' },
{ name: $translate.instant('Currency'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.journal_currencyCode}}</span></div>' },
{ name: $translate.instant('LocalCurrency'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.sob_currencyCode}}</span></div>' },
{ name: $translate.instant('Currency'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.journalCurrencyCode}}</span></div>' },
{ name: $translate.instant('LocalCurrency'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.sobCurrencyCode}}</span></div>' },
{ name: $translate.instant('JournalDebitAmount'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.accountedDr}}</span></div>' },
{ name: $translate.instant('JournalCreditAmount'),width: 200, cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.accountedCr}}</span></div>' },
{ name: $translate.instant('Amount'),width: 200, cellTemplate: '<div class="ui-grid-cell-contents"><span></span></div>' },
......
......@@ -303,17 +303,17 @@
{ name: $translate.instant('AccountCategory'), width: 200, cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.accountCategory}}<span></div>' },
// { name: $translate.instant('InvoiceQJ'), width: '8%', cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.periodID}}<span></div>' },
{ name: $translate.instant('PrimarySubjectCode'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.acctCode1}}<span></div>' },
{ name: $translate.instant('FirstAccountDescription'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span title="{{row.entity.fpdm}}">{{row.entity.acctName1}}</span></div>' },
{ name: $translate.instant('SecondarySubjectDescription'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span title="{{row.entity.fphm}}">{{row.entity.acctName2}}</span></div>' },
{ name: $translate.instant('ThirdAccountDescription'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span title="{{row.entity.xfsh}}">{{row.entity.acctName3}}</span></div>' },
{ name: $translate.instant('FirstAccountDescription'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.acctName1}}</span></div>' },
{ name: $translate.instant('SecondarySubjectDescription'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.acctName2}}</span></div>' },
{ name: $translate.instant('ThirdAccountDescription'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.acctName3}}</span></div>' },
{ name: $translate.instant('MainBody'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span title="{{row.entity.fplx}}">{{row.entity.segment1}}</span></div>' },
{ name: $translate.instant('CostCenter'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents right"><span style="float:right">{{row.entity.sgement2}}</span></div>' },
{ name: $translate.instant('Subject'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents right"><span style="float:right">{{row.entity.segment3}}</span></div>' },
{ name: $translate.instant('CostCenter'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span >{{row.entity.segment2}}</span></div>' },
{ name: $translate.instant('Subject'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span >{{row.entity.segment3}}</span></div>' },
{ name: $translate.instant('AuxiliarySubject'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.segment4}}</span></div>' },
{ name: $translate.instant('ProfitCenter'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.segment5}}</span></div>' },
{ name: $translate.instant('Product'),width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.segment6}}</span></div>' },
{ name: $translate.instant('ProjectNameCol'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.segment7}}</span></div>' },
{ name: $translate.instant('InterCompany'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.segment8}}</span></div>' },
{ name: $translate.instant('TBInterCompany'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.segment8}}</span></div>' },
{ name: $translate.instant('Alternate1'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.segment9}}</span></div>' },
{ name: $translate.instant('Alternate2'), width: 200,cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.segment10}}</span></div>' },
{ name: $translate.instant('SubjectDescription'), width: 200, cellTemplate: '<div class="ui-grid-cell-contents"><span>{{row.entity.segment1Name}}</span></div>' },
......
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