新增概算,不含税金额由税率计算得出

master
hanbo 2021-12-30 16:54:16 +08:00
parent b939e750c1
commit 74bea04a16
7 changed files with 501 additions and 17 deletions

View File

@ -88,6 +88,110 @@ public abstract class IncomeCostBean {
*/
private BigDecimal costCompanyManageTaxExclude;
/**
*
*/
private String incomeDeviceSelect;
/**
*
*/
private String incomeEngineerSelect;
/**
*
*/
private String incomeServiceSelect;
/**
*
*/
private String costPurchaseDeviceSelect;
/**
*
*/
private String costPurchaseBuildSelect;
/**
*
*/
private String costPurchaseServiceSelect;
/**
*
*/
private String costPurchaseOtherSelect;
/**
*
*/
private String costOtherOtherSelect;
public String getIncomeDeviceSelect() {
return incomeDeviceSelect;
}
public void setIncomeDeviceSelect(String incomeDeviceSelect) {
this.incomeDeviceSelect = incomeDeviceSelect;
}
public String getIncomeEngineerSelect() {
return incomeEngineerSelect;
}
public void setIncomeEngineerSelect(String incomeEngineerSelect) {
this.incomeEngineerSelect = incomeEngineerSelect;
}
public String getIncomeServiceSelect() {
return incomeServiceSelect;
}
public void setIncomeServiceSelect(String incomeServiceSelect) {
this.incomeServiceSelect = incomeServiceSelect;
}
public String getCostPurchaseDeviceSelect() {
return costPurchaseDeviceSelect;
}
public void setCostPurchaseDeviceSelect(String costPurchaseDeviceSelect) {
this.costPurchaseDeviceSelect = costPurchaseDeviceSelect;
}
public String getCostPurchaseBuildSelect() {
return costPurchaseBuildSelect;
}
public void setCostPurchaseBuildSelect(String costPurchaseBuildSelect) {
this.costPurchaseBuildSelect = costPurchaseBuildSelect;
}
public String getCostPurchaseServiceSelect() {
return costPurchaseServiceSelect;
}
public void setCostPurchaseServiceSelect(String costPurchaseServiceSelect) {
this.costPurchaseServiceSelect = costPurchaseServiceSelect;
}
public String getCostPurchaseOtherSelect() {
return costPurchaseOtherSelect;
}
public void setCostPurchaseOtherSelect(String costPurchaseOtherSelect) {
this.costPurchaseOtherSelect = costPurchaseOtherSelect;
}
public String getCostOtherOtherSelect() {
return costOtherOtherSelect;
}
public void setCostOtherOtherSelect(String costOtherOtherSelect) {
this.costOtherOtherSelect = costOtherOtherSelect;
}
public BigDecimal getIncomeDeviceTaxInclude() {
return handleSpecial(incomeDeviceTaxInclude);
}

View File

@ -40,6 +40,9 @@ public class ProjectEstimateCost {
@Column(name = "cost_tax_exclude")
private BigDecimal costTaxExclude;
@Column(name = "tax_rate")
private String taxRate;
public Integer getId() {
return id;
}
@ -87,4 +90,12 @@ public class ProjectEstimateCost {
public void setCostTaxExclude(BigDecimal costTaxExclude) {
this.costTaxExclude = costTaxExclude;
}
public String getTaxRate() {
return taxRate;
}
public void setTaxRate(String taxRate) {
this.taxRate = taxRate;
}
}

View File

@ -33,6 +33,9 @@ public class ProjectEstimateIncome {
@Column(name = "income_tax_exclude")
private BigDecimal incomeTaxExclude;
@Column(name = "tax_rate")
private String taxRate;
public Integer getId() {
return id;
}
@ -72,4 +75,12 @@ public class ProjectEstimateIncome {
public void setIncomeTaxExclude(BigDecimal incomeTaxExclude) {
this.incomeTaxExclude = incomeTaxExclude;
}
public String getTaxRate() {
return taxRate;
}
public void setTaxRate(String taxRate) {
this.taxRate = taxRate;
}
}

View File

@ -79,6 +79,7 @@ public class ProjectEstimateService {
projectEstimateCostDevice.setType(ProjectEstimateCost.TYPE_DEVICE);
projectEstimateCostDevice.setCostTaxInclude(estimateBean.getCostPurchaseDeviceTaxInclude());
projectEstimateCostDevice.setCostTaxExclude(estimateBean.getCostPurchaseDeviceTaxExclude());
projectEstimateCostDevice.setTaxRate(estimateBean.getCostPurchaseDeviceSelect());
projectEstimateCostRepository.saveAndFlush(projectEstimateCostDevice);
@ -88,6 +89,7 @@ public class ProjectEstimateService {
projectEstimateCostBuild.setType(ProjectEstimateCost.TYPE_BUILDING);
projectEstimateCostBuild.setCostTaxInclude(estimateBean.getCostPurchaseBuildTaxInclude());
projectEstimateCostBuild.setCostTaxExclude(estimateBean.getCostPurchaseBuildTaxExclude());
projectEstimateCostBuild.setTaxRate(estimateBean.getCostPurchaseBuildSelect());
projectEstimateCostRepository.saveAndFlush(projectEstimateCostBuild);
ProjectEstimateCost projectEstimateCostService = new ProjectEstimateCost();
@ -96,6 +98,7 @@ public class ProjectEstimateService {
projectEstimateCostService.setType(ProjectEstimateCost.TYPE_SERVICE);
projectEstimateCostService.setCostTaxInclude(estimateBean.getCostPurchaseServiceTaxInclude());
projectEstimateCostService.setCostTaxExclude(estimateBean.getCostPurchaseServiceTaxExclude());
projectEstimateCostService.setTaxRate(estimateBean.getCostPurchaseServiceSelect());
projectEstimateCostRepository.saveAndFlush(projectEstimateCostService);
ProjectEstimateCost projectEstimateCostOther = new ProjectEstimateCost();
@ -104,6 +107,7 @@ public class ProjectEstimateService {
projectEstimateCostOther.setType(ProjectEstimateCost.TYPE_OTHER);
projectEstimateCostOther.setCostTaxInclude(estimateBean.getCostPurchaseOtherTaxInclude());
projectEstimateCostOther.setCostTaxExclude(estimateBean.getCostPurchaseOtherTaxExclude());
projectEstimateCostOther.setTaxRate(estimateBean.getCostPurchaseOtherSelect());
projectEstimateCostRepository.saveAndFlush(projectEstimateCostOther);
ProjectEstimateCost projectEstimateCostProject = new ProjectEstimateCost();
@ -120,6 +124,7 @@ public class ProjectEstimateService {
projectEstimateCostOtherOther.setType(ProjectEstimateCost.TYPE_OTHER_OTHER);
projectEstimateCostOtherOther.setCostTaxInclude(estimateBean.getCostOtherOtherTaxInclude());
projectEstimateCostOtherOther.setCostTaxExclude(estimateBean.getCostOtherOtherTaxExclude());
projectEstimateCostOtherOther.setTaxRate(estimateBean.getCostOtherOtherSelect());
projectEstimateCostRepository.saveAndFlush(projectEstimateCostOtherOther);
}
@ -142,6 +147,7 @@ public class ProjectEstimateService {
projectEstimateIncomeDevice.setType(ProjectEstimateIncome.TYPE_DEVICE);
projectEstimateIncomeDevice.setIncomeTaxInclude(estimateBean.getIncomeDeviceTaxInclude());
projectEstimateIncomeDevice.setIncomeTaxExclude(estimateBean.getIncomeDeviceTaxExclude());
projectEstimateIncomeDevice.setTaxRate(estimateBean.getIncomeDeviceSelect());
projectEstimateIncomeRepository.saveAndFlush(projectEstimateIncomeDevice);
ProjectEstimateIncome projectEstimateIncomeEngineer = new ProjectEstimateIncome();
@ -149,6 +155,7 @@ public class ProjectEstimateService {
projectEstimateIncomeEngineer.setType(ProjectEstimateIncome.TYPE_ENGINEER);
projectEstimateIncomeEngineer.setIncomeTaxInclude(estimateBean.getIncomeEngineerTaxInclude());
projectEstimateIncomeEngineer.setIncomeTaxExclude(estimateBean.getIncomeEngineerTaxExclude());
projectEstimateIncomeEngineer.setTaxRate(estimateBean.getIncomeEngineerSelect());
projectEstimateIncomeRepository.saveAndFlush(projectEstimateIncomeEngineer);
ProjectEstimateIncome projectEstimateIncomeService = new ProjectEstimateIncome();
@ -156,6 +163,7 @@ public class ProjectEstimateService {
projectEstimateIncomeService.setType(ProjectEstimateIncome.TYPE_SERVICE);
projectEstimateIncomeService.setIncomeTaxInclude(estimateBean.getIncomeServiceTaxInclude());
projectEstimateIncomeService.setIncomeTaxExclude(estimateBean.getIncomeServiceTaxExclude());
projectEstimateIncomeService.setTaxRate(estimateBean.getIncomeServiceSelect());
projectEstimateIncomeRepository.saveAndFlush(projectEstimateIncomeService);
}
@ -168,14 +176,17 @@ public class ProjectEstimateService {
ProjectEstimateIncome projectEstimateIncomeDevice = incomes.stream().filter(d -> d.getType() == ProjectEstimateIncome.TYPE_DEVICE).collect(Collectors.toList()).get(0);
estimateBean.setIncomeDeviceTaxInclude(projectEstimateIncomeDevice.getIncomeTaxInclude());
estimateBean.setIncomeDeviceTaxExclude(projectEstimateIncomeDevice.getIncomeTaxExclude());
estimateBean.setIncomeDeviceSelect(projectEstimateIncomeDevice.getTaxRate());
ProjectEstimateIncome projectEstimateIncomeEngineer = incomes.stream().filter(d -> d.getType() == ProjectEstimateIncome.TYPE_ENGINEER).collect(Collectors.toList()).get(0);
estimateBean.setIncomeEngineerTaxInclude(projectEstimateIncomeEngineer.getIncomeTaxInclude());
estimateBean.setIncomeEngineerTaxExclude(projectEstimateIncomeEngineer.getIncomeTaxExclude());
estimateBean.setIncomeEngineerSelect(projectEstimateIncomeEngineer.getTaxRate());
ProjectEstimateIncome projectEstimateIncomeService = incomes.stream().filter(d -> d.getType() == ProjectEstimateIncome.TYPE_SERVICE).collect(Collectors.toList()).get(0);
estimateBean.setIncomeServiceTaxInclude(projectEstimateIncomeService.getIncomeTaxInclude());
estimateBean.setIncomeServiceTaxExclude(projectEstimateIncomeService.getIncomeTaxExclude());
estimateBean.setIncomeServiceSelect(projectEstimateIncomeService.getTaxRate());
}
@ -185,18 +196,22 @@ public class ProjectEstimateService {
ProjectEstimateCost projectEstimateCostDevice = costs.stream().filter(d -> d.getType() == ProjectEstimateCost.TYPE_DEVICE).collect(Collectors.toList()).get(0);
estimateBean.setCostPurchaseDeviceTaxInclude(projectEstimateCostDevice.getCostTaxInclude());
estimateBean.setCostPurchaseDeviceTaxExclude(projectEstimateCostDevice.getCostTaxExclude());
estimateBean.setCostPurchaseDeviceSelect(projectEstimateCostDevice.getTaxRate());
ProjectEstimateCost projectEstimateCostBuild = costs.stream().filter(d -> d.getType() == ProjectEstimateCost.TYPE_BUILDING).collect(Collectors.toList()).get(0);
estimateBean.setCostPurchaseBuildTaxInclude(projectEstimateCostBuild.getCostTaxInclude());
estimateBean.setCostPurchaseBuildTaxExclude(projectEstimateCostBuild.getCostTaxExclude());
estimateBean.setCostPurchaseBuildSelect(projectEstimateCostBuild.getTaxRate());
ProjectEstimateCost projectEstimateCostService = costs.stream().filter(d -> d.getType() == ProjectEstimateCost.TYPE_SERVICE).collect(Collectors.toList()).get(0);
estimateBean.setCostPurchaseServiceTaxInclude(projectEstimateCostService.getCostTaxInclude());
estimateBean.setCostPurchaseServiceTaxExclude(projectEstimateCostService.getCostTaxExclude());
estimateBean.setCostPurchaseServiceSelect(projectEstimateCostService.getTaxRate());
ProjectEstimateCost projectEstimateCostOther = costs.stream().filter(d -> d.getType() == ProjectEstimateCost.TYPE_OTHER).collect(Collectors.toList()).get(0);
estimateBean.setCostPurchaseOtherTaxInclude(projectEstimateCostOther.getCostTaxInclude());
estimateBean.setCostPurchaseOtherTaxExclude(projectEstimateCostOther.getCostTaxExclude());
estimateBean.setCostPurchaseOtherSelect(projectEstimateCostOther.getTaxRate());
ProjectEstimateCost projectEstimateCostProjectManage = costs.stream().filter(d -> d.getType() == ProjectEstimateCost.TYPE_PROJECT_MANAGE).collect(Collectors.toList()).get(0);
/*estimateBean.setCostProjectManageTaxInclude(projectEstimateCostProjectManage.getCostTaxInclude());*/
@ -205,6 +220,7 @@ public class ProjectEstimateService {
ProjectEstimateCost projectEstimateCostOtherOther = costs.stream().filter(d -> d.getType() == ProjectEstimateCost.TYPE_OTHER_OTHER).collect(Collectors.toList()).get(0);
estimateBean.setCostOtherOtherTaxInclude(projectEstimateCostOtherOther.getCostTaxInclude());
estimateBean.setCostOtherOtherTaxExclude(projectEstimateCostOtherOther.getCostTaxExclude());
estimateBean.setCostOtherOtherSelect(projectEstimateCostOtherOther.getTaxRate());
}

View File

@ -83,13 +83,154 @@ function calIncomeAndCost() {
calIncomeCost();
});
$("input[name='costExpropriationTaxExclude']").change(function () {
calIncomeCost();
});
$("input[name='costCompanyManageTaxExclude']").change(function () {
calIncomeCost();
});
//设备类收入
$("select[name='incomeDeviceSelect']").change(function () {
let val = $('#incomeDeviceSelect option:selected').val();
var $incomeDeviceTaxExclude = $("input[name='incomeDeviceTaxExclude']");
if(val == "自定义"){
$("input[name='incomeDeviceTaxExclude']").attr('readonly',false);
$incomeDeviceTaxExclude.val("");
}else if(val == "请选择税率"){
$("input[name='incomeDeviceTaxExclude']").attr('readonly',true);
$incomeDeviceTaxExclude.val("");
} else {
$("input[name='incomeDeviceTaxExclude']").attr('readonly',true);
var incomeDeviceTaxInclude = inputVal("incomeDeviceTaxInclude");
$incomeDeviceTaxExclude.val(incomeDeviceTaxInclude-(incomeDeviceTaxInclude*val));
}
calIncomeExclude();
calIncomeCost();
});
//工程类收入
$("select[name='incomeEngineerSelect']").change(function () {
let val = $('#incomeEngineerSelect option:selected').val();
var $incomeEngineerTaxExclude = $("input[name='incomeEngineerTaxExclude']");
if(val == "自定义"){
$("input[name='incomeEngineerTaxExclude']").attr('readonly',false)
}else if(val == "请选择税率"){
$("input[name='incomeEngineerTaxExclude']").attr('readonly',true);
$incomeEngineerTaxExclude.val("");
} else {
$("input[name='incomeEngineerTaxExclude']").attr('readonly',true);
var incomeEngineerTaxInclude = inputVal("incomeEngineerTaxInclude");
$incomeEngineerTaxExclude.val(incomeEngineerTaxInclude-(incomeEngineerTaxInclude*val));
}
calIncomeExclude();
calIncomeCost();
});
//服务类收入
$("select[name='incomeServiceSelect']").change(function () {
let val = $('#incomeServiceSelect option:selected').val();
var $incomeServiceTaxExclude = $("input[name='incomeServiceTaxExclude']");
if(val == "自定义"){
$("input[name='incomeServiceTaxExclude']").attr('readonly',false)
}else if(val == "请选择税率"){
$("input[name='incomeServiceTaxExclude']").attr('readonly',true);
$incomeServiceTaxExclude.val("");
} else {
$("input[name='incomeServiceTaxExclude']").attr('readonly',true);
var incomeServiceTaxInclude = inputVal("incomeServiceTaxInclude");
$incomeServiceTaxExclude.val(incomeServiceTaxInclude-(incomeServiceTaxInclude*val));
}
calIncomeExclude();
calIncomeCost();
});
//设备类采购成本
$("select[name='costPurchaseDeviceSelect']").change(function () {
let val = $('#costPurchaseDeviceSelect option:selected').val();
var $costPurchaseDeviceTaxExclude = $("input[name='costPurchaseDeviceTaxExclude']");
if(val == "自定义"){
$("input[name='costPurchaseDeviceTaxExclude']").attr('readonly',false)
}else if(val == "请选择税率"){
$("input[name='costPurchaseDeviceTaxExclude']").attr('readonly',true);
$costPurchaseDeviceTaxExclude.val("");
} else {
$("input[name='costPurchaseDeviceTaxExclude']").attr('readonly',true);
var costPurchaseDeviceTaxInclude = inputVal("costPurchaseDeviceTaxInclude");
$costPurchaseDeviceTaxExclude.val(costPurchaseDeviceTaxInclude-(costPurchaseDeviceTaxInclude*val));
}
calCostExclude();
calIncomeCost();
});
//施工类采购成本
$("select[name='costPurchaseBuildSelect']").change(function () {
let val = $('#costPurchaseBuildSelect option:selected').val();
var $costPurchaseBuildTaxExclude = $("input[name='costPurchaseBuildTaxExclude']");
if(val == "自定义"){
$("input[name='costPurchaseBuildTaxExclude']").attr('readonly',false)
}else if(val == "请选择税率"){
$("input[name='costPurchaseBuildTaxExclude']").attr('readonly',true);
$costPurchaseBuildTaxExclude.val("");
} else {
$("input[name='costPurchaseBuildTaxExclude']").attr('readonly',true);
var costPurchaseBuildTaxInclude = inputVal("costPurchaseBuildTaxInclude");
$costPurchaseBuildTaxExclude.val(costPurchaseBuildTaxInclude-(costPurchaseBuildTaxInclude*val));
}
calCostExclude();
calIncomeCost();
});
//服务类采购成本
$("select[name='costPurchaseServiceSelect']").change(function () {
let val = $('#costPurchaseServiceSelect option:selected').val();
var $costPurchaseServiceTaxExclude = $("input[name='costPurchaseServiceTaxExclude']");
if(val == "自定义"){
$("input[name='costPurchaseServiceTaxExclude']").attr('readonly',false)
}else if(val == "请选择税率"){
$("input[name='costPurchaseServiceTaxExclude']").attr('readonly',true);
$costPurchaseServiceTaxExclude.val("");
} else {
$("input[name='costPurchaseServiceTaxExclude']").attr('readonly',true);
var costPurchaseServiceTaxInclude = inputVal("costPurchaseServiceTaxInclude");
$costPurchaseServiceTaxExclude.val(costPurchaseServiceTaxInclude-(costPurchaseServiceTaxInclude*val));
}
calCostExclude();
calIncomeCost();
});
//其他类采购成本
$("select[name='costOtherOtherSelect']").change(function () {
let val = $('#costOtherOtherSelect option:selected').val();
var $costOtherOtherTaxExclude = $("input[name='costOtherOtherTaxExclude']");
if(val == "自定义"){
$("input[name='costOtherOtherTaxExclude']").attr('readonly',false)
}else if(val == "请选择税率"){
$("input[name='costOtherOtherTaxExclude']").attr('readonly',true);
$costOtherOtherTaxExclude.val("");
} else {
$("input[name='costOtherOtherTaxExclude']").attr('readonly',true);
var costOtherOtherTaxInclude = inputVal("costOtherOtherTaxInclude");
$costOtherOtherTaxExclude.val(costOtherOtherTaxInclude-(costOtherOtherTaxInclude*val));
}
calCostExclude();
calIncomeCost();
});
//其他成本
$("select[name='costPurchaseOtherSelect']").change(function () {
let val = $('#costPurchaseOtherSelect option:selected').val();
var $costPurchaseOtherTaxExclude = $("input[name='costPurchaseOtherTaxExclude']");
if(val == "自定义"){
$("input[name='costPurchaseOtherTaxExclude']").attr('readonly',false)
}else if(val == "请选择税率"){
$("input[name='costPurchaseOtherTaxExclude']").attr('readonly',true);
$costPurchaseOtherTaxExclude.val("");
} else {
$("input[name='costPurchaseOtherTaxExclude']").attr('readonly',true);
var costPurchaseOtherTaxInclude = inputVal("costPurchaseOtherTaxInclude");
$costPurchaseOtherTaxExclude.val(costPurchaseOtherTaxInclude-(costPurchaseOtherTaxInclude*val));
}
calCostExclude();
calIncomeCost();
});
}
/**

View File

@ -194,30 +194,68 @@
<td>费用</td>
<td>含税金额(元)</td>
<td>不含税金额(元)</td>
<td>税率</td>
</tr>
<tr>
<td>收入</td>
<td>设备类</td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeDeviceTaxInclude" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeDeviceTaxExclude" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeDeviceTaxExclude" readonly required></td>
<td>
<select data-am-selected name="incomeDeviceSelect" id="incomeDeviceSelect">
<option value="请选择税率">请选择税率</option>
<option value="0">0%</option>
<option value="0.01">1%</option>
<option value="0.03">3%</option>
<option value="0.06">6%</option>
<option value="0.09">9%</option>
<option value="0.13">13%</option>
<option value="自定义">自定义</option>
</select>
</td>
</tr>
<tr>
<td>收入</td>
<td>工程类</td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeEngineerTaxInclude" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeEngineerTaxExclude" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeEngineerTaxExclude" readonly required></td>
<td>
<select data-am-selected name="incomeEngineerSelect" id="incomeEngineerSelect">
<option value="请选择税率">请选择税率</option>
<option value="0">0%</option>
<option value="0.01">1%</option>
<option value="0.03">3%</option>
<option value="0.06">6%</option>
<option value="0.09">9%</option>
<option value="0.13">13%</option>
<option value="自定义">自定义</option>
</select>
</td>
</tr>
<tr>
<td>收入</td>
<td>服务类</td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeServiceTaxInclude" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeServiceTaxExclude" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeServiceTaxExclude" readonly required></td>
<td>
<select data-am-selected name="incomeServiceSelect" id="incomeServiceSelect">
<option value="请选择税率">请选择税率</option>
<option value="0">0%</option>
<option value="0.01">1%</option>
<option value="0.03">3%</option>
<option value="0.06">6%</option>
<option value="0.09">9%</option>
<option value="0.13">13%</option>
<option value="自定义">自定义</option>
</select>
</td>
</tr>
<tr>
<td>合计</td>
<td></td>
<td><input type="number" name="incomeTotalTaxInclude" readonly title="此列累计"></td>
<td><input type="number" name="incomeTotalTaxExclude" readonly title="此列累计"></td>
<td>/</td>
</tr>
</tbody>
</table>
@ -230,34 +268,83 @@
<td>费用项目</td>
<td>含税金额(元)</td>
<td>不含税金额(元)</td>
<td>税率</td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>设备</td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseDeviceTaxInclude" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseDeviceTaxExclude" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseDeviceTaxExclude" readonly required></td>
<td>
<select data-am-selected name="costPurchaseDeviceSelect" id="costPurchaseDeviceSelect">
<option value="请选择税率">请选择税率</option>
<option value="0">0%</option>
<option value="0.01">1%</option>
<option value="0.03">3%</option>
<option value="0.06">6%</option>
<option value="0.09">9%</option>
<option value="0.13">13%</option>
<option value="自定义">自定义</option>
</select>
</td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>施工</td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseBuildTaxInclude" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseBuildTaxExclude" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseBuildTaxExclude" readonly required></td>
<td>
<select data-am-selected name="costPurchaseBuildSelect" id="costPurchaseBuildSelect">
<option value="请选择税率">请选择税率</option>
<option value="0">0%</option>
<option value="0.01">1%</option>
<option value="0.03">3%</option>
<option value="0.06">6%</option>
<option value="0.09">9%</option>
<option value="0.13">13%</option>
<option value="自定义">自定义</option>
</select>
</td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>服务</td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseServiceTaxInclude" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseServiceTaxExclude" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseServiceTaxExclude" readonly required></td>
<td>
<select data-am-selected name="costPurchaseServiceSelect" id="costPurchaseServiceSelect">
<option value="请选择税率">请选择税率</option>
<option value="0">0%</option>
<option value="0.01">1%</option>
<option value="0.03">3%</option>
<option value="0.06">6%</option>
<option value="0.09">9%</option>
<option value="0.13">13%</option>
<option value="自定义">自定义</option>
</select>
</td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>其他</td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseOtherTaxInclude" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseOtherTaxExclude" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseOtherTaxExclude" readonly required></td>
<td>
<select data-am-selected name="costPurchaseOtherSelect" id="costPurchaseOtherSelect">
<option value="请选择税率">请选择税率</option>
<option value="0">0%</option>
<option value="0.01">1%</option>
<option value="0.03">3%</option>
<option value="0.06">6%</option>
<option value="0.09">9%</option>
<option value="0.13">13%</option>
<option value="自定义">自定义</option>
</select>
</td>
</tr>
<tr>
<td>成本</td>
@ -265,6 +352,7 @@
<td>项目管理成本</td>
<td><input type="number" name="costProjectManageTaxInclude" required readonly></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costProjectManageTaxExclude" required></td>
<td>/</td>
</tr>
<tr>
<td>成本</td>
@ -272,7 +360,19 @@
<td><input type="text" id="otherName" maxlength="10" data-validate-async data-validation-message="请输入其他类的名称10字符以内"
value="" name="otherName" placeholder="请输入其他类的名称10字符以内" required/> </td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costOtherOtherTaxInclude" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costOtherOtherTaxExclude" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costOtherOtherTaxExclude" readonly required></td>
<td>
<select data-am-selected name="costOtherOtherSelect" id="costOtherOtherSelect">
<option value="请选择税率">请选择税率</option>
<option value="0">0%</option>
<option value="0.01">1%</option>
<option value="0.03">3%</option>
<option value="0.06">6%</option>
<option value="0.09">9%</option>
<option value="0.13">13%</option>
<option value="自定义">自定义</option>
</select>
</td>
</tr>
<tr>
<td>合计</td>
@ -280,6 +380,7 @@
<td></td>
<td><input type="number" name="costTotalTaxInclude" readonly title="此列累计"></td>
<td><input type="number" name="costTotalTaxExclude" readonly title="此列累计"></td>
<td>/</td>
</tr>
</tbody>
</table>

View File

@ -201,30 +201,68 @@
<td>费用</td>
<td>含税金额(元)</td>
<td>不含税金额(元)</td>
<td>税率</td>
</tr>
<tr>
<td>收入</td>
<td>设备类</td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeDeviceTaxInclude" value="${Utils.format(estimateBean.incomeDeviceTaxInclude)}" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeDeviceTaxExclude" value="${Utils.format(estimateBean.incomeDeviceTaxExclude)}" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeDeviceTaxExclude" value="${Utils.format(estimateBean.incomeDeviceTaxExclude)}" <#if estimateBean.incomeDeviceSelect! !="自定义">readonly</#if> required></td>
<td>
<select data-am-selected name="incomeDeviceSelect" id="incomeDeviceSelect">
<option value="请选择税率">请选择税率</option>
<option value="0" <#if estimateBean.incomeDeviceSelect! =="0">selected</#if>>0%</option>
<option value="0.01" <#if estimateBean.incomeDeviceSelect! =="0.01">selected</#if>>1%</option>
<option value="0.03" <#if estimateBean.incomeDeviceSelect! =="0.03">selected</#if>>3%</option>
<option value="0.06" <#if estimateBean.incomeDeviceSelect! =="0.06">selected</#if>>6%</option>
<option value="0.09" <#if estimateBean.incomeDeviceSelect! =="0.09">selected</#if>>9%</option>
<option value="0.13" <#if estimateBean.incomeDeviceSelect! =="0.13">selected</#if>>13%</option>
<option value="自定义" <#if estimateBean.incomeDeviceSelect! =="自定义">selected</#if>>自定义</option>
</select>
</td>
</tr>
<tr>
<td>收入</td>
<td>工程类</td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeEngineerTaxInclude" value="${Utils.format(estimateBean.incomeEngineerTaxInclude)}" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeEngineerTaxExclude" value="${Utils.format(estimateBean.incomeEngineerTaxExclude)}" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeEngineerTaxExclude" value="${Utils.format(estimateBean.incomeEngineerTaxExclude)}" <#if estimateBean.incomeEngineerSelect! !="自定义">readonly</#if> required></td>
<td>
<select data-am-selected name="incomeEngineerSelect" id="incomeEngineerSelect">
<option value="请选择税率">请选择税率</option>
<option value="0" <#if estimateBean.incomeEngineerSelect! =="0">selected</#if>>0%</option>
<option value="0.01" <#if estimateBean.incomeEngineerSelect! =="0.01">selected</#if>>1%</option>
<option value="0.03" <#if estimateBean.incomeEngineerSelect! =="0.03">selected</#if>>3%</option>
<option value="0.06" <#if estimateBean.incomeEngineerSelect! =="0.06">selected</#if>>6%</option>
<option value="0.09" <#if estimateBean.incomeEngineerSelect! =="0.09">selected</#if>>9%</option>
<option value="0.13" <#if estimateBean.incomeEngineerSelect! =="0.13">selected</#if>>13%</option>
<option value="自定义" <#if estimateBean.incomeEngineerSelect! =="自定义">selected</#if>>自定义</option>
</select>
</td>
</tr>
<tr>
<td>收入</td>
<td>服务类</td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeServiceTaxInclude" value="${Utils.format(estimateBean.incomeServiceTaxInclude)}" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeServiceTaxExclude" value="${Utils.format(estimateBean.incomeServiceTaxExclude)}" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeServiceTaxExclude" value="${Utils.format(estimateBean.incomeServiceTaxExclude)}" <#if estimateBean.incomeServiceSelect! !="自定义">readonly</#if> required></td>
<td>
<select data-am-selected name="incomeServiceSelect" id="incomeServiceSelect">
<option value="请选择税率">请选择税率</option>
<option value="0" <#if estimateBean.incomeServiceSelect! =="0">selected</#if>>0%</option>
<option value="0.01" <#if estimateBean.incomeServiceSelect! =="0.01">selected</#if>>1%</option>
<option value="0.03" <#if estimateBean.incomeServiceSelect! =="0.03">selected</#if>>3%</option>
<option value="0.06" <#if estimateBean.incomeServiceSelect! =="0.06">selected</#if>>6%</option>
<option value="0.09" <#if estimateBean.incomeServiceSelect! =="0.09">selected</#if>>9%</option>
<option value="0.13" <#if estimateBean.incomeServiceSelect! =="0.13">selected</#if>>13%</option>
<option value="自定义" <#if estimateBean.incomeServiceSelect! =="自定义">selected</#if>>自定义</option>
</select>
</td>
</tr>
<tr>
<td>合计</td>
<td></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeTotalTaxInclude" value="${Utils.format(estimateBean.incomeTotalTaxInclude)}" readonly title="此列累计"></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="incomeTotalTaxExclude" value="${Utils.format(estimateBean.incomeTotalTaxExclude)}" readonly title="此列累计"></td>
<td>/</td>
</tr>
</tbody>
</table>
@ -237,34 +275,83 @@
<td>费用项目</td>
<td>含税金额(元)</td>
<td>不含税金额(元)</td>
<td>税率</td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>设备</td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseDeviceTaxInclude" value="${Utils.format(estimateBean.costPurchaseDeviceTaxInclude)}" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseDeviceTaxExclude" value="${Utils.format(estimateBean.costPurchaseDeviceTaxExclude)}" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseDeviceTaxExclude" value="${Utils.format(estimateBean.costPurchaseDeviceTaxExclude)}" <#if estimateBean.costPurchaseDeviceSelect! !="自定义">readonly</#if> required></td>
<td>
<select data-am-selected name="costPurchaseDeviceSelect" id="costPurchaseDeviceSelect">
<option value="请选择税率">请选择税率</option>
<option value="0" <#if estimateBean.costPurchaseDeviceSelect! =="0">selected</#if>>0%</option>
<option value="0.01" <#if estimateBean.costPurchaseDeviceSelect! =="0.01">selected</#if>>1%</option>
<option value="0.03" <#if estimateBean.costPurchaseDeviceSelect! =="0.03">selected</#if>>3%</option>
<option value="0.06" <#if estimateBean.costPurchaseDeviceSelect! =="0.06">selected</#if>>6%</option>
<option value="0.09" <#if estimateBean.costPurchaseDeviceSelect! =="0.09">selected</#if>>9%</option>
<option value="0.13" <#if estimateBean.costPurchaseDeviceSelect! =="0.13">selected</#if>>13%</option>
<option value="自定义" <#if estimateBean.costPurchaseDeviceSelect! =="自定义">selected</#if>>自定义</option>
</select>
</td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>施工</td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseBuildTaxInclude" value="${Utils.format(estimateBean.costPurchaseBuildTaxInclude)}" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseBuildTaxExclude" value="${Utils.format(estimateBean.costPurchaseBuildTaxExclude)}" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseBuildTaxExclude" value="${Utils.format(estimateBean.costPurchaseBuildTaxExclude)}" <#if estimateBean.costPurchaseBuildSelect! !="自定义">readonly</#if> required></td>
<td>
<select data-am-selected name="costPurchaseBuildSelect" id="costPurchaseBuildSelect">
<option value="请选择税率">请选择税率</option>
<option value="0" <#if estimateBean.costPurchaseBuildSelect! =="0">selected</#if>>0%</option>
<option value="0.01" <#if estimateBean.costPurchaseBuildSelect! =="0.01">selected</#if>>1%</option>
<option value="0.03" <#if estimateBean.costPurchaseBuildSelect! =="0.03">selected</#if>>3%</option>
<option value="0.06" <#if estimateBean.costPurchaseBuildSelect! =="0.06">selected</#if>>6%</option>
<option value="0.09" <#if estimateBean.costPurchaseBuildSelect! =="0.09">selected</#if>>9%</option>
<option value="0.13" <#if estimateBean.costPurchaseBuildSelect! =="0.13">selected</#if>>13%</option>
<option value="自定义" <#if estimateBean.costPurchaseBuildSelect! =="自定义">selected</#if>>自定义</option>
</select>
</td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>服务</td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseServiceTaxInclude" value="${Utils.format(estimateBean.costPurchaseServiceTaxInclude)}" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseServiceTaxExclude" value="${Utils.format(estimateBean.costPurchaseServiceTaxExclude)}" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseServiceTaxExclude" value="${Utils.format(estimateBean.costPurchaseServiceTaxExclude)}" <#if estimateBean.costPurchaseServiceSelect! !="自定义">readonly</#if> required></td>
<td>
<select data-am-selected name="costPurchaseServiceSelect" id="costPurchaseServiceSelect">
<option value="请选择税率">请选择税率</option>
<option value="0" <#if estimateBean.costPurchaseServiceSelect! =="0">selected</#if>>0%</option>
<option value="0.01" <#if estimateBean.costPurchaseServiceSelect! =="0.01">selected</#if>>1%</option>
<option value="0.03" <#if estimateBean.costPurchaseServiceSelect! =="0.03">selected</#if>>3%</option>
<option value="0.06" <#if estimateBean.costPurchaseServiceSelect! =="0.06">selected</#if>>6%</option>
<option value="0.09" <#if estimateBean.costPurchaseServiceSelect! =="0.09">selected</#if>>9%</option>
<option value="0.13" <#if estimateBean.costPurchaseServiceSelect! =="0.13">selected</#if>>13%</option>
<option value="自定义" <#if estimateBean.costPurchaseServiceSelect! =="自定义">selected</#if>>自定义</option>
</select>
</td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>其他</td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseOtherTaxInclude" value="${Utils.format(estimateBean.costPurchaseOtherTaxInclude)}" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseOtherTaxExclude" value="${Utils.format(estimateBean.costPurchaseOtherTaxExclude)}" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costPurchaseOtherTaxExclude" value="${Utils.format(estimateBean.costPurchaseOtherTaxExclude)}" <#if estimateBean.costPurchaseOtherSelect! !="自定义">readonly</#if> required></td>
<td>
<select data-am-selected name="costPurchaseOtherSelect" id="costPurchaseOtherSelect">
<option value="请选择税率">请选择税率</option>
<option value="0" <#if estimateBean.costPurchaseOtherSelect! =="0">selected</#if>>0%</option>
<option value="0.01" <#if estimateBean.costPurchaseOtherSelect! =="0.01">selected</#if>>1%</option>
<option value="0.03" <#if estimateBean.costPurchaseOtherSelect! =="0.03">selected</#if>>3%</option>
<option value="0.06" <#if estimateBean.costPurchaseOtherSelect! =="0.06">selected</#if>>6%</option>
<option value="0.09" <#if estimateBean.costPurchaseOtherSelect! =="0.09">selected</#if>>9%</option>
<option value="0.13" <#if estimateBean.costPurchaseOtherSelect! =="0.13">selected</#if>>13%</option>
<option value="自定义" <#if estimateBean.costPurchaseOtherSelect! =="自定义">selected</#if>>自定义</option>
</select>
</td>
</tr>
<tr>
<td>成本</td>
@ -279,7 +366,19 @@
<td><input type="text" id="otherName" maxlength="10" data-validate-async data-validation-message="请输入其他类的名称10字符以内"
value="${project.otherName!}" name="otherName" placeholder="请输入其他类的名称10字符以内" required/> </td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costOtherOtherTaxInclude" value="${Utils.format(estimateBean.costOtherOtherTaxInclude)}" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costOtherOtherTaxExclude" value="${Utils.format(estimateBean.costOtherOtherTaxExclude)}" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costOtherOtherTaxExclude" value="${Utils.format(estimateBean.costOtherOtherTaxExclude)}" <#if estimateBean.costOtherOtherSelect! !="自定义">readonly</#if> required></td>
<td>
<select data-am-selected name="costOtherOtherSelect" id="costOtherOtherSelect">
<option value="请选择税率">请选择税率</option>
<option value="0" <#if estimateBean.costOtherOtherSelect! =="0">selected</#if>>0%</option>
<option value="0.01" <#if estimateBean.costOtherOtherSelect! =="0.01">selected</#if>>1%</option>
<option value="0.03" <#if estimateBean.costOtherOtherSelect! =="0.03">selected</#if>>3%</option>
<option value="0.06" <#if estimateBean.costOtherOtherSelect! =="0.06">selected</#if>>6%</option>
<option value="0.09" <#if estimateBean.costOtherOtherSelect! =="0.09">selected</#if>>9%</option>
<option value="0.13" <#if estimateBean.costOtherOtherSelect! =="0.13">selected</#if>>13%</option>
<option value="自定义" <#if estimateBean.costOtherOtherSelect! =="自定义">selected</#if>>自定义</option>
</select>
</td>
</tr>
<tr>
<td>合计</td>
@ -287,6 +386,7 @@
<td></td>
<td><input type="number" name="costTotalTaxInclude" value="${Utils.format(estimateBean.costTotalTaxInclude)}" readonly title="此列累计"></td>
<td><input type="number" name="costTotalTaxExclude" value="${Utils.format(estimateBean.costTotalTaxExclude)}" readonly title="此列累计"></td>
<td>/</td>
</tr>
</tbody>
</table>