Commit ce3ea281 authored by chase's avatar chase

收入明细功能代码

parent 0ed8adc2
package pwc.taxtech.atms.controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import pwc.taxtech.atms.dto.input.CamelPagingResultDto;
import pwc.taxtech.atms.dto.revenueDetail.RevenueDetailParam;
import pwc.taxtech.atms.dto.revenueDetail.RevenueDetailResult;
import pwc.taxtech.atms.service.impl.RevenueDetailService;
import javax.annotation.Resource;
@RestController
@RequestMapping(value = "api/v1/revenueDetail")
public class RevenueDetailController extends BaseController {
@Resource
private RevenueDetailService revenueDetailService;
@PostMapping("queryPage")
public CamelPagingResultDto<RevenueDetailResult> queryPage(@RequestBody RevenueDetailParam param) {
return new CamelPagingResultDto<>(revenueDetailService.queryPage(param));
}
}
package pwc.taxtech.atms.dto.revenueDetail;
import pwc.taxtech.atms.dto.input.CamelPagingDto;
import java.io.Serializable;
public class RevenueDetailParam implements Serializable {
private static final long serialVersionUID = 6544829900689477447L;
private CamelPagingDto pageInfo;
private String accountCode;
private String accountName;
private String type;
private String profitCenterCode;
private String profitCenterName;
private Integer taxOn;
private String productCode;
private String productName;
private Integer category;
private String projectId;
private Integer period;
private String queryDate;
public String getQueryDate() {
return queryDate;
}
public void setQueryDate(String queryDate) {
this.queryDate = queryDate;
}
public String getAccountCode() {
return accountCode;
}
public void setAccountCode(String accountCode) {
this.accountCode = accountCode;
}
public String getAccountName() {
return accountName;
}
public void setAccountName(String accountName) {
this.accountName = accountName;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getProfitCenterCode() {
return profitCenterCode;
}
public void setProfitCenterCode(String profitCenterCode) {
this.profitCenterCode = profitCenterCode;
}
public String getProfitCenterName() {
return profitCenterName;
}
public void setProfitCenterName(String profitCenterName) {
this.profitCenterName = profitCenterName;
}
public Integer getTaxOn() {
return taxOn;
}
public void setTaxOn(Integer taxOn) {
this.taxOn = taxOn;
}
public String getProductCode() {
return productCode;
}
public void setProductCode(String productCode) {
this.productCode = productCode;
}
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public Integer getCategory() {
return category;
}
public void setCategory(Integer category) {
this.category = category;
}
public String getProjectId() {
return projectId;
}
public void setProjectId(String projectId) {
this.projectId = projectId;
}
public Integer getPeriod() {
return period;
}
public void setPeriod(Integer period) {
this.period = period;
}
public CamelPagingDto getPageInfo() {
return this.pageInfo;
}
public void setPageInfo(CamelPagingDto pageInfo) {
this.pageInfo = pageInfo;
}
}
package pwc.taxtech.atms.dto.revenueDetail;
import java.io.Serializable;
import java.math.BigDecimal;
public class RevenueDetailResult implements Serializable {
private static final long serialVersionUID = 8385521700489579616L;
private String subject;
private String account;
private String profitCenter;
private String product;
private String subjectExplain;
private String accountExplain;
private String profitCenterExplain;
private String productExplain;
private BigDecimal amount;
private String type;
private String category;
private String taxOn;
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getProfitCenter() {
return profitCenter;
}
public void setProfitCenter(String profitCenter) {
this.profitCenter = profitCenter;
}
public String getProduct() {
return product;
}
public void setProduct(String product) {
this.product = product;
}
public String getSubjectExplain() {
return subjectExplain;
}
public void setSubjectExplain(String subjectExplain) {
this.subjectExplain = subjectExplain;
}
public String getAccountExplain() {
return accountExplain;
}
public void setAccountExplain(String accountExplain) {
this.accountExplain = accountExplain;
}
public String getProfitCenterExplain() {
return profitCenterExplain;
}
public void setProfitCenterExplain(String profitCenterExplain) {
this.profitCenterExplain = profitCenterExplain;
}
public String getProductExplain() {
return productExplain;
}
public void setProductExplain(String productExplain) {
this.productExplain = productExplain;
}
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public String getTaxOn() {
return taxOn;
}
public void setTaxOn(String taxOn) {
this.taxOn = taxOn;
}
}
package pwc.taxtech.atms.service.impl;
import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;
import pwc.taxtech.atms.dpo.RevenueDetailDto;
import pwc.taxtech.atms.dto.revenueDetail.RevenueDetailParam;
import pwc.taxtech.atms.dto.revenueDetail.RevenueDetailResult;
import pwc.taxtech.atms.vat.dao.TrialBalanceFinalMapper;
import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class RevenueDetailService extends BaseService {
@Resource
private TrialBalanceFinalMapper trialBalanceFinalMapper;
/**
* @param param
* @return
*/
public PageInfo<RevenueDetailResult> queryPage(RevenueDetailParam param) {
Page page = PageHelper.startPage(param.getPageInfo().getPageIndex(), param.getPageInfo().getPageSize());
List<RevenueDetailDto> dataList = trialBalanceFinalMapper.queryBalanceWithRevenueConfig(param.getAccountCode(), param.getAccountName(), param.getType(), param.getProfitCenterCode(), param.getProfitCenterName(), param.getTaxOn(), param.getProductCode(), param.getProductName(), param.getCategory(), param.getProjectId(), param.getPeriod(), param.getQueryDate());
PageInfo<RevenueDetailResult> pageInfo = new PageInfo<>(dataList.stream()
.map(o -> beanUtil.copyProperties(o, new RevenueDetailResult())).collect(Collectors.toList()));
pageInfo.setTotal(page.getTotal());
return pageInfo;
}
}
package pwc.taxtech.atms.dpo;
import java.io.Serializable;
import java.math.BigDecimal;
public class RevenueDetailDto implements Serializable {
private static final long serialVersionUID = 3774022182707357862L;
private String subject;
private String account;
private String profitCenter;
private String product;
private String subjectExplain;
private String accountExplain;
private String profitCenterExplain;
private String productExplain;
private BigDecimal amount;
private String type;
private String category;
private String taxOn;
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getProfitCenter() {
return profitCenter;
}
public void setProfitCenter(String profitCenter) {
this.profitCenter = profitCenter;
}
public String getProduct() {
return product;
}
public void setProduct(String product) {
this.product = product;
}
public String getSubjectExplain() {
return subjectExplain;
}
public void setSubjectExplain(String subjectExplain) {
this.subjectExplain = subjectExplain;
}
public String getAccountExplain() {
return accountExplain;
}
public void setAccountExplain(String accountExplain) {
this.accountExplain = accountExplain;
}
public String getProfitCenterExplain() {
return profitCenterExplain;
}
public void setProfitCenterExplain(String profitCenterExplain) {
this.profitCenterExplain = profitCenterExplain;
}
public String getProductExplain() {
return productExplain;
}
public void setProductExplain(String productExplain) {
this.productExplain = productExplain;
}
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getCategory() {
return category;
}
public void setCategory(String category) {
this.category = category;
}
public String getTaxOn() {
return taxOn;
}
public void setTaxOn(String taxOn) {
this.taxOn = taxOn;
}
}
package pwc.taxtech.atms.vat.dao;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
import pwc.taxtech.atms.MyVatMapper;
import pwc.taxtech.atms.dpo.RevenueDetailDto;
import pwc.taxtech.atms.vat.entity.TrialBalanceFinal;
import pwc.taxtech.atms.vat.entity.TrialBalanceFinalExample;
import java.util.List;
@Mapper
public interface TrialBalanceFinalMapper extends MyVatMapper {
/**
......@@ -105,4 +107,18 @@ public interface TrialBalanceFinalMapper extends MyVatMapper {
* @mbg.generated
*/
int updateByPrimaryKey(TrialBalanceFinal record);
List<RevenueDetailDto> queryBalanceWithRevenueConfig(
@Param("accountCode") String accountCode,
@Param("accountName") String accountName,
@Param("type") String type,
@Param("profitCenterCode") String profitCenterCode,
@Param("profitCenterName") String profitCenterName,
@Param("taxOn") Integer taxOn,
@Param("productCode") String productCode,
@Param("productName") String productName,
@Param("category") Integer category,
@Param("projectId") String projectId,
@Param("period") Integer period,
@Param("queryDate") String queryDate);
}
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="pwc.taxtech.atms.vat.dao.TrialBalanceFinalMapper">
<select id="queryBalanceWithRevenueConfig" resultType="pwc.taxtech.atms.dpo.RevenueDetailDto">
select detail.*
from (
select tbf.segment1 as subject,
tbf.segment3 as account,
tbf.segment5 profitCenter,
tbf.segment6 product,
tbf.segment1_name subjectExplain,
tbf.segment3_name accountExplain,
tbf.segment5_name profitCenterExplain,
tbf.segment6_name productExplain,
tbf.period_dr amount,
rc.name type,
rc.revenue_type category,
rc.tax_type taxOn,
case
when tbf.segment3 like '4001%' and rc.id is null then 1
when tbf.segment3 like '4002%' and rc.id is null then 1
when tbf.segment3 like '4010%' and rc.id is null then 1
when tbf.segment3 like '8002%' and rc.id is null then 1
<![CDATA[WHEN rc.id IS NOT NULL and rc.start_date > #{queryDate} and rc.end_date < #{queryDate} then 1]]>
<![CDATA[WHEN rc.id IS NOT NULL and rc.start_date <= #{queryDate} and rc.end_date >= #{queryDate} THEN 2]]>
else 3 end as isEmpty
from trial_balance_final as tbf
left join
revenue_config as rc
on
rc.org_id = tbf.organization_id
and
rc.tb_segment3 = tbf.segment3
and
rc.tb_segment5 = tbf.segment5
and
rc.tb_segment6 = tbf.segment6
where
tbf.project_id = #{projectId}
and tbf.period = #{period}
<if test="accountCode != null and accountCode != ''">
and tbf.segment3 like concat('%',#{accountCode},'%')
</if>
<if test="accountName != null and accountName != ''">
and tbf.segment3_name like concat('%',#{accountName},'%')
</if>
<if test="profitCenterCode != null and profitCenterCode != ''">
and tbf.segment5 like concat('%',#{profitCenterCode},'%')
</if>
<if test="profitCenterName != null and profitCenterName != ''">
and tbf.segment5_name like concat('%',#{profitCenterName},'%')
</if>
<if test="productCode != null and productCode != ''">
and tbf.segment6 like concat('%',#{productCode},'%')
</if>
<if test="productName != null and productName != ''">
and tbf.segment6_name like concat('%',#{productName},'%')
</if>
<if test="type != null">
and rc.name = #{type}
</if>
<if test="category != null">
and rc.revenue_type = #{category}
</if>
<if test="taxOn != null">
and rc.tax_rate = #{taxOn}
</if>
) as detail
where
<![CDATA[detail.isEmpty < 3]]>
order by detail.isEmpty
</select>
</mapper>
\ No newline at end of file
......@@ -964,6 +964,22 @@ var vatModule = angular.module('app.vat', ['ui.grid', 'ui.grid.selection', 'ui.g
sticky: true
});
$stateProvider.state({
name: 'vat.reductionData.revenueDetail',
url: '/revenueDetail',
views: {
'@vat.reductionData': {
controller: ['$scope', '$stateParams', 'appTranslation',
function ($scope, $stateParams, appTranslation) {
appTranslation.load([appTranslation.vat]);
}],
template: '<vat-revenue-detail></vat-revenue-detail>',
}
},
resolve: scriptDependencyProvider.createDependenciesMap(scriptDependencyProvider.vat),
deepStateRedirect: true,
sticky: true
});
$stateProvider.state({
name: 'vat.reductionData.unbilledInvoice',
url: '/unbilledInvoice',
......
......@@ -1745,6 +1745,7 @@
"c_vatType": "增值税纳税类型",
"c_year": "申报年",
"caculateData": "数据处理",
"revenueDetail": "收入明细",
"cancelled": "已作废",
"caseNumberColon": "事件号",
"chartData": "数据",
......@@ -2105,5 +2106,30 @@
"RevenueAddSuccess": "添加成功",
"RevenueUpdateSuccess": "更新成功",
"RevDetail": "收入明细",
"RevSearchAccountCode": "科目代码",
"RevSearchAccountName": "科目名称",
"RevSearchProfitCenterCode": "利润中心代码",
"RevSearchProfitCenterName": "利润中心名称",
"RevSearchProductCode": "产品代码",
"RevSearchProductName": "产品名称",
"RevSearchType": "收入类型",
"RevSearchCategory": "收入类别",
"RevSearchTaxOn": "计税方法",
"RevDetailSearch": "查询",
"RevDetailReset": "重置",
"RevDetailColSerialNo": "序号",
"RevDetailColSubject": "主体",
"RevDetailColAccount": "科目",
"RevDetailColProfitCenter": "利润中心",
"RevDetailProduct": "产品",
"RevDetailColSubjectExp": "主体说明",
"RevDetailColAccountExp": "科目说明",
"RevDetailColProfitCenterExp": "利润中心说明",
"RevDetailProductExp": "产品说明",
"RevDetailAmount": "发生额",
"RevDetailType": "收入类型",
"RevDetailCategory": "收入类别",
"RevDetailTaxOn": "计税方法",
"~MustBeEndOneApp": "我必须是最后一个!"
}
\ No newline at end of file
......@@ -500,8 +500,9 @@ constant.vatPermission = {
saveCode: '02.003.002.002'
},
revenueDetailCode:'02.003.004',
caculateDataCode: '02.003.003',
unbilledInvoiceCode: '02.003.004',
},
reportView: {
......
citModule.controller('VatRevenueConfigController', ['$scope', '$log', '$translate', '$timeout', 'SweetAlert', '$q',
vatModule.controller('VatRevenueConfigController', ['$scope', '$log', '$translate', '$timeout', 'SweetAlert', '$q',
'$interval','dxDataGridService','$http','apiConfig',
function ($scope, $log, $translate, $timeout, SweetAlert, $q, $interval,dxDataGridService,$http,apiConfig) {
'use strict';
......
......@@ -946,7 +946,9 @@
// }
else if (data[constant.vatPermission.dataManage.caculateDataCode]) {
$state.go('vat.reductionData.caculateData');
} /*else if (data[constant.vatPermission.dataManage.unbilledInvoiceCode]) {
}else if (data[constant.vatPermission.dataManage.revenueDetailCode]){
$state.go('vat.reductionData.revenueDetail');
} /*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');
......
......@@ -103,6 +103,10 @@ function ($scope, $log, $translate, $location, loginContext, enums, vatSessionSe
name: 'caculateData', permission: constant.vatPermission.dataManage.caculateDataCode,
text: $translate.instant('caculateData'), icon: 'fa fa-random', show: true
},
{
name: 'revenueDetail', permission: constant.vatPermission.dataManage.revenueDetailCode,
text: $translate.instant('revenueDetail'), icon: 'fa fa-random', show: true
},
/*{
name: 'accountMapping', permission: constant.vatPermission.dataManage.accountMappingCode,
text: $translate.instant('accountMapping'), icon: 'fa fa-map', show: true
......
<div class="vat-revenue-detail">
<div class="header-title">
<div style="display:inline-block"><span class="title-name">{{'RevDetail' | translate }}</span></div>
</div>
<div class="content-container">
<div class="header">
<div class="search-panel">
<table class="table borderless table-bottom">
<tr>
<td><span class="lbl-name">{{'RevSearchAccountCode' | translate }}:</span></td>
<td>
<input class="form-control" name="name" ng-model="searchParam.accountCode" maxlength="20">
</td>
<td><span class="lbl-name">{{'RevSearchAccountName' | translate }}:</span>:</td>
<td>
<input class="form-control" name="name" ng-model="searchParam.accountName" maxlength="20">
</td>
<td><span class="lbl-name">{{'RevSearchType' | translate }}:</span></td>
<td>
<div dx-select-box="searchOptions.typeOptions"></div>
</td>
<td ng-show="!hasShowMoreSearchBox">
<button type="button" class="btn btn-primary invoice-btn"
ng-click="searchboxService.search()">查询
</button>
</td>
<td ng-show="!hasShowMoreSearchBox">
<button type="button" class="btn btn-primary invoice-btn"
ng-click="searchboxService.resetBox()">重置
</button>
</td>
<td ng-show="!hasShowMoreSearchBox">
<span class="lbl-name">
<a href="javacript:void(0)" ng-click="searchboxService.showOrHideSearchBox()"><span><i
class="fa fa-chevron-down" aria-hidden="true"></i><span
style="margin-left:3px;">更多查询</span></span></a>
</span>
</td>
</tr>
<tr ng-show="hasShowMoreSearchBox">
</td>
<td><span class="lbl-name">{{'RevSearchProfitCenterCode' | translate }}:</span></td>
<td>
<input class="form-control" name="name" ng-model="searchParam.profitCenterCode" maxlength="20">
</td>
<td><span class="lbl-name">{{'RevSearchProfitCenterName' | translate }}:</span></td>
<td>
<input class="form-control" name="name" ng-model="searchParam.centerName" maxlength="20">
</td>
<td><span class="lbl-name">{{'RevSearchTaxOn' | translate }}:</span></td>
<td>
<div dx-select-box="searchOptions.taxOnOptions"></div>
</td>
</tr>
<tr ng-show="hasShowMoreSearchBox">
<td><span class="lbl-name">{{'RevSearchProductCode' | translate }}:</span></td>
<td>
<input class="form-control" name="name" ng-model="searchParam.productCode" maxlength="20">
</td>
<td><span class="lbl-name">{{'RevSearchProductName' | translate }}:</span></td>
<td>
<input class="form-control" name="name" ng-model="searchParam.productName" maxlength="20">
</td>
<td><span class="lbl-name">{{'RevSearchCategory' | translate }}:</span></td>
<td>
<div dx-select-box="searchOptions.categoryOptions"></div>
</td>
<td>
<button type="button" class="btn btn-primary invoice-btn"
ng-click="searchboxService.search()">查询
</button>
</td>
<td>
<button type="button" class="btn btn-primary invoice-btn"
ng-click="searchboxService.resetBox()">重置
</button>
</td>
<td>
<a href="javascript:void(0);" ng-click="searchboxService.showOrHideSearchBox()">
<span><i class="fa fa-chevron-up" aria-hidden="true"></i><span
style="margin-left:3px;">收起</span></span></a>
</td>
</tr>
</table>
</div>
</div>
<div class="body">
<div class="grid-container">
<div id="invoiceGridContainer" dx-data-grid="revenueGridOptions">
<div data-options="dxTemplate:{ name:'editCellTemplate' }">
</div>
</div>
</div>
<div class="page-footer">
<ack-pagination page-options="pagingOptions"
refresh-table="refreshConfigGrid()"></ack-pagination>
</div>
</div>
</div>
</div>
vatModule.directive('vatRevenueDetail', ['$log', 'browserService', '$translate', 'region', '$timeout',
function ($log, browserService, $translate, region, $timeout) {
$log.debug('vatRevenueDetail.ctor()...');
return {
restrict: 'E',
templateUrl: '/app/vat/reduction/vat-revenue-detail/vat-revenue-detail.html' + '?_=' + Math.random(),
scope: {},
controller: 'vatRevenueDetailController'
}
}
]);
\ No newline at end of file

@border-color: #d4d4d4;
@margin-left: 60px;
@container-width: 970px;
@control-width: 120px;
//sharing
.header {
padding: 15px;
img {
margin-top: 3px;
}
.search-panel {
border: 1px solid #CDCDCD;
border-radius: 5px;
padding: 5px;
.row {
margin: 10px 0;
.filter-item {
display: inline-block;
vertical-align: middle;
height: 32px;
}
.fileter-label {
text-align: right;
height: 32px;
padding-top: 5px;
}
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
padding-left: 0;
}
.invoice-btn {
min-width: 90px;
height: 34px;
}
}
.table-bottom {
margin-bottom: 0px !important;
.lbl-name {
word-break: keep-all;
}
td {
vertical-align: middle;
}
}
}
}
.table-bottom {
margin-bottom: 0px !important;
.lbl-name {
word-break: keep-all;
}
td {
vertical-align: middle;
}
}
.red-color {
color: #d04a02;
/*vertical-align: middle;*/
}
.dx-widget {
font-size: 13px;
}
//share
.header-title {
padding: 10px;
.sub-title {
font-family: "Microsoft YaHei";
font-weight: 400;
font-size: 12px;
color: rgb(153, 153, 153);
}
.title-name {
font-family: "Microsoft YaHei Bold", "Microsoft YaHei Regular", "Microsoft YaHei";
font-weight: 700;
font-style: normal;
}
}
.inline-block {
display: inline-block;
.left-side {
display: inline-block;
}
.right-side {
float: right;
display: inline-block;
}
}
.invoice-btn {
min-width: 80px;
height: 28px;
margin-right: 10px;
font-weight: normal;
font-size: 13px;
font-family: 'Microsoft YaHei';
}
.invoice-card {
width: 120px;
height: 130px;
border: 1px dashed @border-color;
border: 1px dashed rgba(0, 0, 0, 0.2);
border-radius: 5px;
background-color: #fff; /*#fbfbfb;*/
text-align: center;
cursor: pointer;
float: left;
margin: 10px;
position: relative;
&:hover {
background-color: #fff !important;
box-shadow: #a06748 1px 1px;
}
//卡片顶部的绝对定位
.dx-checkbox-container {
position: absolute;
left: 59px;
top: -8px;
}
}
.span-btn {
color: #6699CC;
padding: 0px 4px;
cursor: pointer;
font-size: 12px;
}
.borderless td, .borderless th {
border: none !important;
vertical-align: middle !important;
}
.page-footer {
display: inline-block;
float: right;
/*padding-right: 20px;*/
}
.invoice-table-dialog {
.modal-dialog {
min-width: 650px;
.modal-title {
color: red;
}
}
}
.invoiceNumber-link {
cursor: pointer;
/*color:#6699cc;*/
}
.vat-revenue-detail {
height: 100% !important;
padding-top: 0px !important;
position: relative;
font-size: 13px;
.dx-datagrid-group-closed:before {
/* font-family: "ui-grid"; */
font-style: normal;
font-weight: normal;
speak: none;
display: inline-block;
text-decoration: inherit;
width: 1em;
margin-right: .2em;
text-align: center;
font-variant: normal;
text-transform: none;
line-height: 1em;
margin-left: .2em;
content: inherit!important;
}
.header-title {
padding: 10px;
.title-name {
font-family: "Microsoft YaHei Bold", "Microsoft YaHei Regular", "Microsoft YaHei";
font-weight: 700;
font-style: normal;
}
}
.custom-control {
width: @control-width !important;
height: 25px;
line-height: 25px;
}
.btn-search {
width: @control-width !important;
}
.content-container {
height: calc(~'100% - 40px');
position: relative;
.body {
.buttom-row {
padding: 15px;
display: inline-block;
width: 100%;
.left-side {
display: inline-block;
/*padding-left:5px;*/
.select-title {
margin-left: 20px;
}
.select-number {
padding: 0 1px;
color: red;
}
}
.right-side {
float: right;
display: inline-block;
/*padding-right:5px;*/
.btn {
margin-left: 20px;
}
}
}
.grid-container {
padding: 0px 15px;
/*height: 350px;*/
/*height:100%;*/
#invoiceGridContainer {
max-height: 100%;
}
.dx-datagrid-rowsview .dx-row > .dx-master-detail-cell {
padding: 0px !important;
}
.dx-datagrid-nowrap.dx-datagrid-headers .dx-header-row > td > .dx-datagrid-text-content {
white-space: normal !important;
}
.internal-grid-container {
padding: 10px 10px 10px 0;
& > div:first-child {
padding: 0 0 5px 10px;
font-size: 13px;
/*font-weight: bold;*/
}
}
}
}
}
.importVerifyInvoiceModal {
.modal-dialog {
height: 200px;
width: 610px;
}
.modal-footer {
text-align: left;
}
}
}
......@@ -142,6 +142,7 @@ function ($scope, $rootScope, $q, $log, $timeout, $state, $translate, projectSer
constant.vatPermission.dataPreview.inputInvoice.queryCode,
constant.vatPermission.dataManage.caculateDataCode,
constant.vatPermission.dataManage.revenueDetailCode,
// constant.vatPermission.dataManage.accountMappingCode,
// constant.vatPermission.dataManage.goodsMappingCode,
// constant.vatPermission.dataManage.unbilledInvoiceCode,
......@@ -331,6 +332,10 @@ function ($scope, $rootScope, $q, $log, $timeout, $state, $translate, projectSer
name: 'reductionData.caculateData', state: 'reductionData.caculateData', num: 3,
permission: constant.vatPermission.dataManage.caculateDataCode, url: '#/vat/reductionData/caculateData'
});
subMenus.push({
name: 'reductionData.revenueDetail', state: 'reductionData.revenueDetail', num: 3,
permission: constant.vatPermission.dataManage.revenueDetailCode, url: '#/vat/reductionData/revenueDetail'
});
}
else if (data[constant.vatPermission.dataManage.accountMappingCode]) {
$scope.menus.push({
......
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