预算页面数据根据明细表生成,防止数据的不一致

master
xxssyyyyssxx 2021-11-05 14:52:54 +08:00
parent 1820563bb1
commit bdb3064ce8
2 changed files with 166 additions and 81 deletions

View File

@ -160,60 +160,145 @@ public class ProjectBudgetService {
public BudgetBean getBudget(Project project) { public BudgetBean getBudget(Project project) {
BudgetBean budgetBean = new BudgetBean(); BudgetBean budgetBean = new BudgetBean();
List<ProjectBudgetIncome> incomes = projectBudgetIncomeRepository.findAllByProjectIdEquals(project.getId()); List<ProjectBudgetIncomeDetail> incomeDetails = projectBudgetIncomeDetailRepository.findAllByProjectIdEquals(project.getId());
if(CollectionUtil.isNotEmpty(incomeDetails)){
List<ProjectBudgetIncome> collect = incomes.stream().filter(d -> d.getType() == ProjectBudgetIncome.TYPE_DEVICE).collect(Collectors.toList()); //设备类收入,含税和不含税
if(CollectionUtil.isEmpty(collect)){ List<ProjectBudgetIncomeDetail> collectDevice = incomeDetails.stream().filter(d -> d.getType() == ProjectBudgetIncomeDetail.TYPE_DEVICE).collect(Collectors.toList());
//要么全部,要么没有 budgetBean.setIncomeDeviceTaxInclude(getIncomeTotalTaxInclude(collectDevice));
return budgetBean; budgetBean.setIncomeDeviceTaxExclude(getIncomeTotalTaxExclude(collectDevice));
//工程类收入,含税和不含税
List<ProjectBudgetIncomeDetail> collectEngineer = incomeDetails.stream().filter(d -> d.getType() == ProjectBudgetIncomeDetail.TYPE_ENGINEER).collect(Collectors.toList());
budgetBean.setIncomeEngineerTaxInclude(getIncomeTotalTaxInclude(collectEngineer));
budgetBean.setIncomeEngineerTaxExclude(getIncomeTotalTaxExclude(collectEngineer));
//服务类收入,含税和不含税
List<ProjectBudgetIncomeDetail> collectService = incomeDetails.stream().filter(d -> d.getType() == ProjectBudgetIncomeDetail.TYPE_SERVICE).collect(Collectors.toList());
budgetBean.setIncomeServiceTaxInclude(getIncomeTotalTaxInclude(collectService));
budgetBean.setIncomeServiceTaxExclude(getIncomeTotalTaxExclude(collectService));
} }
ProjectBudgetIncome projectBudgetIncomeDevice = collect.get(0);
budgetBean.setIncomeDeviceTaxInclude(projectBudgetIncomeDevice.getIncomeTaxInclude());
budgetBean.setIncomeDeviceTaxExclude(projectBudgetIncomeDevice.getIncomeTaxExclude());
ProjectBudgetIncome projectBudgetIncomeEngineer = incomes.stream().filter(d -> d.getType() == ProjectBudgetIncome.TYPE_ENGINEER).collect(Collectors.toList()).get(0); List<ProjectBudgetCostDetail> projectBudgetCostDetails = projectBudgetCostDetailRepository.findAllByProjectIdEquals(project.getId());
budgetBean.setIncomeEngineerTaxInclude(projectBudgetIncomeEngineer.getIncomeTaxInclude()); if(CollectionUtil.isNotEmpty(projectBudgetCostDetails)){
budgetBean.setIncomeEngineerTaxExclude(projectBudgetIncomeEngineer.getIncomeTaxExclude()); //采购成本-设备,含税和不含税
List<ProjectBudgetCostDetail> collectDevice = projectBudgetCostDetails.stream().filter(d -> d.getType() == ProjectBudgetCostDetail.TYPE_DEVICE).collect(Collectors.toList());
budgetBean.setCostPurchaseDeviceTaxInclude(getCostTotalTaxInclude(collectDevice));
budgetBean.setCostPurchaseDeviceTaxExclude(getCostTotalTaxExclude(collectDevice));
//采购成本-施工,含税和不含税
List<ProjectBudgetCostDetail> collectBuild = projectBudgetCostDetails.stream().filter(d -> d.getType() == ProjectBudgetCostDetail.TYPE_BUILD).collect(Collectors.toList());
budgetBean.setCostPurchaseBuildTaxInclude(getCostTotalTaxInclude(collectBuild));
budgetBean.setCostPurchaseBuildTaxExclude(getCostTotalTaxExclude(collectBuild));
//采购成本-服务,含税和不含税
List<ProjectBudgetCostDetail> collectService = projectBudgetCostDetails.stream().filter(d -> d.getType() == ProjectBudgetCostDetail.TYPE_SERVICE).collect(Collectors.toList());
budgetBean.setCostPurchaseServiceTaxInclude(getCostTotalTaxInclude(collectService));
budgetBean.setCostPurchaseServiceTaxExclude(getCostTotalTaxExclude(collectService));
//采购成本-其他,含税和不含税
List<ProjectBudgetCostDetail> collectOther = projectBudgetCostDetails.stream().filter(d -> d.getType() == ProjectBudgetCostDetail.TYPE_OHTER).collect(Collectors.toList());
budgetBean.setCostPurchaseOtherTaxInclude(getCostTotalTaxInclude(collectOther));
budgetBean.setCostPurchaseOtherTaxExclude(getCostTotalTaxExclude(collectOther));
}
ProjectBudgetIncome projectBudgetIncomeService = incomes.stream().filter(d -> d.getType() == ProjectBudgetIncome.TYPE_SERVICE).collect(Collectors.toList()).get(0); //项目管理成本
budgetBean.setIncomeServiceTaxInclude(projectBudgetIncomeService.getIncomeTaxInclude()); List<ProjectBudgetCostProjectManageDetail> projectManageDetails = projectBudgetCostProjectManageDetailRepository.findAllByProjectIdEquals(project.getId());
budgetBean.setIncomeServiceTaxExclude(projectBudgetIncomeService.getIncomeTaxExclude()); if(CollectionUtil.isNotEmpty(projectManageDetails)){
budgetBean.setCostProjectManageTaxExclude(getCostProjectManageTotalTaxExclude(projectManageDetails));
}
//其他其他成本
List<ProjectBudgetCost> costs = projectBudgetCostRepository.findAllByProjectIdEquals(project.getId()); List<ProjectBudgetCost> costs = projectBudgetCostRepository.findAllByProjectIdEquals(project.getId());
if(CollectionUtil.isNotEmpty(costs)){
ProjectBudgetCost projectBudgetCostOtherOther = costs.stream().filter(d -> d.getType() == ProjectBudgetCost.TYPE_OTHER_OTHER).collect(Collectors.toList()).get(0);
budgetBean.setCostOtherOtherTaxInclude(projectBudgetCostOtherOther.getCostTaxInclude());
budgetBean.setCostOtherOtherTaxExclude(projectBudgetCostOtherOther.getCostTaxExclude());
}
ProjectBudgetCost projectBudgetCostDevice = costs.stream().filter(d -> d.getType() == ProjectBudgetCost.TYPE_DEVICE).collect(Collectors.toList()).get(0);
budgetBean.setCostPurchaseDeviceTaxInclude(projectBudgetCostDevice.getCostTaxInclude());
budgetBean.setCostPurchaseDeviceTaxExclude(projectBudgetCostDevice.getCostTaxExclude());
ProjectBudgetCost projectBudgetCostBuild = costs.stream().filter(d -> d.getType() == ProjectBudgetCost.TYPE_BUILDING).collect(Collectors.toList()).get(0); //资金占用成本
budgetBean.setCostPurchaseBuildTaxInclude(projectBudgetCostBuild.getCostTaxInclude()); List<ProjectBudgetPlanDetail> budgetPlanDetails = projectBudgetPlanDetailRepository.findAllByProjectIdEquals(project.getId());
budgetBean.setCostPurchaseBuildTaxExclude(projectBudgetCostBuild.getCostTaxExclude()); if(CollectionUtil.isNotEmpty(budgetPlanDetails)){
budgetBean.setCostExpropriationTaxExclude(getTotalCapitalInterest(budgetPlanDetails));
ProjectBudgetCost projectBudgetCostService = costs.stream().filter(d -> d.getType() == ProjectBudgetCost.TYPE_SERVICE).collect(Collectors.toList()).get(0); }
budgetBean.setCostPurchaseServiceTaxInclude(projectBudgetCostService.getCostTaxInclude());
budgetBean.setCostPurchaseServiceTaxExclude(projectBudgetCostService.getCostTaxExclude());
ProjectBudgetCost projectBudgetCostOther = costs.stream().filter(d -> d.getType() == ProjectBudgetCost.TYPE_OTHER).collect(Collectors.toList()).get(0);
budgetBean.setCostPurchaseOtherTaxInclude(projectBudgetCostOther.getCostTaxInclude());
budgetBean.setCostPurchaseOtherTaxExclude(projectBudgetCostOther.getCostTaxExclude());
ProjectBudgetCost projectBudgetCostProjectManage = costs.stream().filter(d -> d.getType() == ProjectBudgetCost.TYPE_PROJECT_MANAGE).collect(Collectors.toList()).get(0);
/*budgetBean.setCostProjectManageTaxInclude(projectBudgetCostProjectManage.getCostTaxInclude());*/
budgetBean.setCostProjectManageTaxExclude(projectBudgetCostProjectManage.getCostTaxExclude());
ProjectBudgetCost projectBudgetCostOtherOther = costs.stream().filter(d -> d.getType() == ProjectBudgetCost.TYPE_OTHER_OTHER).collect(Collectors.toList()).get(0);
budgetBean.setCostOtherOtherTaxInclude(projectBudgetCostOtherOther.getCostTaxInclude());
budgetBean.setCostOtherOtherTaxExclude(projectBudgetCostOtherOther.getCostTaxExclude());
//公司管理成本
List<ProjectBudgetCostManage> manages = projectBudgetCostManageRepository.findAllByProjectIdEquals(project.getId()); List<ProjectBudgetCostManage> manages = projectBudgetCostManageRepository.findAllByProjectIdEquals(project.getId());
ProjectBudgetCostManage costManageExpropriation = manages.stream().filter(d -> d.getType() == ProjectBudgetCostManage.TYPE_EXPROPRIATION).collect(Collectors.toList()).get(0); if(CollectionUtil.isNotEmpty(manages)){
budgetBean.setCostExpropriationTaxExclude(costManageExpropriation.getCostTaxExclude()); ProjectBudgetCostManage costManageCompany = manages.stream().filter(d -> d.getType() == ProjectBudgetCostManage.TYPE_COMPANY_MANAGE).collect(Collectors.toList()).get(0);
ProjectBudgetCostManage costManageCompany = manages.stream().filter(d -> d.getType() == ProjectBudgetCostManage.TYPE_COMPANY_MANAGE).collect(Collectors.toList()).get(0); budgetBean.setCostCompanyManageTaxExclude(costManageCompany.getCostTaxExclude());
budgetBean.setCostCompanyManageTaxExclude(costManageCompany.getCostTaxExclude()); }
return budgetBean; return budgetBean;
} }
private BigDecimal getIncomeTotalTaxInclude(List<ProjectBudgetIncomeDetail> list){
BigDecimal total = new BigDecimal(0);
if(CollectionUtil.isEmpty(list)){
return total;
}
for (ProjectBudgetIncomeDetail detail : list) {
total = total.add(detail.getTotalTaxInclude());
}
return total;
}
private BigDecimal getIncomeTotalTaxExclude(List<ProjectBudgetIncomeDetail> list){
BigDecimal total = new BigDecimal(0);
if(CollectionUtil.isEmpty(list)){
return total;
}
for (ProjectBudgetIncomeDetail detail : list) {
total = total.add(detail.getTotalTaxExclude());
}
return total;
}
private BigDecimal getCostTotalTaxInclude(List<ProjectBudgetCostDetail> list){
BigDecimal total = new BigDecimal(0);
if(CollectionUtil.isEmpty(list)){
return total;
}
for (ProjectBudgetCostDetail detail : list) {
total = total.add(detail.getTotalTaxInclude());
}
return total;
}
private BigDecimal getCostTotalTaxExclude(List<ProjectBudgetCostDetail> list){
BigDecimal total = new BigDecimal(0);
if(CollectionUtil.isEmpty(list)){
return total;
}
for (ProjectBudgetCostDetail detail : list) {
total = total.add(detail.getTotalTaxExclude());
}
return total;
}
private BigDecimal getCostProjectManageTotalTaxExclude(List<ProjectBudgetCostProjectManageDetail> list){
BigDecimal total = new BigDecimal(0);
if(CollectionUtil.isEmpty(list)){
return total;
}
for (ProjectBudgetCostProjectManageDetail detail : list) {
total = total.add(detail.getTotal());
}
return total;
}
private BigDecimal getTotalCapitalInterest(List<ProjectBudgetPlanDetail> list){
BigDecimal total = new BigDecimal(0);
if(CollectionUtil.isEmpty(list)){
return total;
}
for (ProjectBudgetPlanDetail detail : list) {
total = total.add(detail.getCapitalInterest());
}
return total;
}
/** /**
* *

View File

@ -208,26 +208,26 @@
<tr> <tr>
<td>收入</td> <td>收入</td>
<td>设备类</td> <td>设备类</td>
<td><input name="incomeDeviceTaxInclude" value="${budgetBean.incomeDeviceTaxInclude!0}" required readonly title="设备类含税总额"></td> <td><input name="incomeDeviceTaxInclude" value="${Utils.format(budgetBean.incomeDeviceTaxInclude,'0')}" required readonly title="设备类含税总额"></td>
<td><input name="incomeDeviceTaxExclude" value="${budgetBean.incomeDeviceTaxExclude!0}" required readonly title="设备类不含税总额"></td> <td><input name="incomeDeviceTaxExclude" value="${Utils.format(budgetBean.incomeDeviceTaxExclude,'0')}" required readonly title="设备类不含税总额"></td>
</tr> </tr>
<tr> <tr>
<td>收入</td> <td>收入</td>
<td>工程类</td> <td>工程类</td>
<td><input name="incomeEngineerTaxInclude" value="${budgetBean.incomeEngineerTaxInclude!0}" required readonly title="工程类含税总额"></td> <td><input name="incomeEngineerTaxInclude" value="${Utils.format(budgetBean.incomeEngineerTaxInclude,'0')}" required readonly title="工程类含税总额"></td>
<td><input name="incomeEngineerTaxExclude" value="${budgetBean.incomeEngineerTaxExclude!0}" required readonly title="工程类不含税总额"></td> <td><input name="incomeEngineerTaxExclude" value="${Utils.format(budgetBean.incomeEngineerTaxExclude,'0')}" required readonly title="工程类不含税总额"></td>
</tr> </tr>
<tr> <tr>
<td>收入</td> <td>收入</td>
<td>服务类</td> <td>服务类</td>
<td><input name="incomeServiceTaxInclude" value="${budgetBean.incomeServiceTaxInclude!0}" required readonly title="服务类含税总额"></td> <td><input name="incomeServiceTaxInclude" value="${Utils.format(budgetBean.incomeServiceTaxInclude,'0')}" required readonly title="服务类含税总额"></td>
<td><input name="incomeServiceTaxExclude" value="${budgetBean.incomeServiceTaxExclude!0}" required readonly title="服务类不含税总额"></td> <td><input name="incomeServiceTaxExclude" value="${Utils.format(budgetBean.incomeServiceTaxExclude,'0')}" required readonly title="服务类不含税总额"></td>
</tr> </tr>
<tr> <tr>
<td>合计</td> <td>合计</td>
<td></td> <td></td>
<td><input name="incomeTotalTaxInclude" value="${budgetBean.incomeTotalTaxInclude!0}" readonly required title="此列累计"></td> <td><input name="incomeTotalTaxInclude" value="${Utils.format(budgetBean.incomeTotalTaxInclude,'0')}" readonly required title="此列累计"></td>
<td><input name="incomeTotalTaxExclude" value="${budgetBean.incomeTotalTaxExclude!0}" readonly required title="此列累计"></td> <td><input name="incomeTotalTaxExclude" value="${Utils.format(budgetBean.incomeTotalTaxExclude,'0')}" readonly required title="此列累计"></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -247,50 +247,50 @@
<td>成本</td> <td>成本</td>
<td>采购成本</td> <td>采购成本</td>
<td>设备</td> <td>设备</td>
<td><input name="costPurchaseDeviceTaxInclude" value="${budgetBean.costPurchaseDeviceTaxInclude!0}" readonly required title="购买设备含税总额"></td> <td><input name="costPurchaseDeviceTaxInclude" value="${Utils.format(budgetBean.costPurchaseDeviceTaxInclude,'0')}" readonly required title="购买设备含税总额"></td>
<td><input name="costPurchaseDeviceTaxExclude" value="${budgetBean.costPurchaseDeviceTaxExclude!0}" readonly required title="购买设备不含税总额"></td> <td><input name="costPurchaseDeviceTaxExclude" value="${Utils.format(budgetBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备不含税总额"></td>
</tr> </tr>
<tr> <tr>
<td>成本</td> <td>成本</td>
<td>采购成本</td> <td>采购成本</td>
<td>施工</td> <td>施工</td>
<td><input name="costPurchaseBuildTaxInclude" value="${budgetBean.costPurchaseBuildTaxInclude!0}" readonly required title="购买施工含税总额"></td> <td><input name="costPurchaseBuildTaxInclude" value="${Utils.format(budgetBean.costPurchaseBuildTaxInclude,'0')}" readonly required title="购买施工含税总额"></td>
<td><input name="costPurchaseBuildTaxExclude" value="${budgetBean.costPurchaseBuildTaxExclude!0}" readonly required title="购买施工不含税总额"></td> <td><input name="costPurchaseBuildTaxExclude" value="${Utils.format(budgetBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="购买施工不含税总额"></td>
</tr> </tr>
<tr> <tr>
<td>成本</td> <td>成本</td>
<td>采购成本</td> <td>采购成本</td>
<td>服务</td> <td>服务</td>
<td><input name="costPurchaseServiceTaxInclude" value="${budgetBean.costPurchaseServiceTaxInclude!0}" readonly required title="购买服务含税总额"></td> <td><input name="costPurchaseServiceTaxInclude" value="${Utils.format(budgetBean.costPurchaseServiceTaxInclude,'0')}" readonly required title="购买服务含税总额"></td>
<td><input name="costPurchaseServiceTaxExclude" value="${budgetBean.costPurchaseServiceTaxExclude!0}" readonly required title="购买服务不含税总额"></td> <td><input name="costPurchaseServiceTaxExclude" value="${Utils.format(budgetBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="购买服务不含税总额"></td>
</tr> </tr>
<tr> <tr>
<td>成本</td> <td>成本</td>
<td>采购成本</td> <td>采购成本</td>
<td>其他</td> <td>其他</td>
<td><input name="costPurchaseOtherTaxInclude" value="${budgetBean.costPurchaseOtherTaxInclude!0}" readonly required title="购买其他含税总额"></td> <td><input name="costPurchaseOtherTaxInclude" value="${Utils.format(budgetBean.costPurchaseOtherTaxInclude,'0')}" readonly required title="购买其他含税总额"></td>
<td><input name="costPurchaseOtherTaxExclude" value="${budgetBean.costPurchaseOtherTaxExclude!0}" readonly required title="购买其他不含税总额"></td> <td><input name="costPurchaseOtherTaxExclude" value="${Utils.format(budgetBean.costPurchaseOtherTaxExclude,'0')}" readonly required title="购买其他不含税总额"></td>
</tr> </tr>
<tr> <tr>
<td>成本</td> <td>成本</td>
<td>项目管理成本</td> <td>项目管理成本</td>
<td>项目管理成本</td> <td>项目管理成本</td>
<td><#--<input name="costProjectManageTaxInclude" value="${budgetBean.costProjectManageTaxInclude!}" readonly required>-->/</td> <td><#--<input name="costProjectManageTaxInclude" value="${budgetBean.costProjectManageTaxInclude!}" readonly required>-->/</td>
<td><input name="costProjectManageTaxExclude" value="${budgetBean.costProjectManageTaxExclude!0}" readonly required title="项目管理成本总额"></td> <td><input name="costProjectManageTaxExclude" value="${Utils.format(budgetBean.costProjectManageTaxExclude,'0')}" readonly required title="项目管理成本总额"></td>
</tr> </tr>
<tr> <tr>
<td>成本</td> <td>成本</td>
<td>其他</td> <td>其他</td>
<td>其他</td> <td>其他</td>
<td><input name="costOtherOtherTaxInclude" value="${budgetBean.costOtherOtherTaxInclude!0}" required title="其他含税总额(填入)"></td> <td><input name="costOtherOtherTaxInclude" value="${Utils.format(budgetBean.costOtherOtherTaxInclude,'0')}" required title="其他含税总额(填入)"></td>
<td><input name="costOtherOtherTaxExclude" value="${budgetBean.costOtherOtherTaxExclude!0}" required title="其他不含税总额(填入)"></td> <td><input name="costOtherOtherTaxExclude" value="${Utils.format(budgetBean.costOtherOtherTaxExclude,'0')}" required title="其他不含税总额(填入)"></td>
</tr> </tr>
<tr> <tr>
<td>合计</td> <td>合计</td>
<td></td> <td></td>
<td></td> <td></td>
<td><input name="costTotalTaxInclude" value="${budgetBean.costTotalTaxInclude!0}" readonly required title="此列累计"></td> <td><input name="costTotalTaxInclude" value="${Utils.format(budgetBean.costTotalTaxInclude,'0')}" readonly required title="此列累计"></td>
<td><input name="costTotalTaxExclude" value="${budgetBean.costTotalTaxExclude!0}" readonly required title="此列累计"></td> <td><input name="costTotalTaxExclude" value="${Utils.format(budgetBean.costTotalTaxExclude,'0')}" readonly required title="此列累计"></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -306,12 +306,12 @@
<tr> <tr>
<td>财务费用</td> <td>财务费用</td>
<td>资金占用成本</td> <td>资金占用成本</td>
<td><input name="costExpropriationTaxExclude" value="${budgetBean.costExpropriationTaxExclude!0}" required readonly title="资金占用成本不含税总额"></td> <td><input name="costExpropriationTaxExclude" value="${Utils.format(budgetBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本不含税总额"></td>
</tr> </tr>
<tr> <tr>
<td>公司管理费用</td> <td>公司管理费用</td>
<td></td> <td></td>
<td><input name="costCompanyManageTaxExclude" value="${budgetBean.costCompanyManageTaxExclude!}" required title="公司管理费用不含税总额"></td> <td><input name="costCompanyManageTaxExclude" value="${Utils.format(budgetBean.costCompanyManageTaxExclude,'0')}" required title="公司管理费用不含税总额"></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -326,13 +326,13 @@
</tr> </tr>
<tr> <tr>
<td>项目毛利</td> <td>项目毛利</td>
<td><input name="projectGrossProfit" value="${budgetBean.projectGrossProfit!21}" readonly required title="收入总计(不含税)-成本总计(不含税)-财务费用总计(不含税)"></td> <td><input name="projectGrossProfit" value="${Utils.format(budgetBean.projectGrossProfit,'0')}" readonly required title="收入总计(不含税)-成本总计(不含税)-财务费用总计(不含税)"></td>
<td><input name="projectGrossProfitRate" value="${budgetBean.projectGrossProfitRate!22}" readonly required title="毛利(不含税)/收入总计(不含税)"></td> <td><input name="projectGrossProfitRate" value="${Utils.format(budgetBean.projectGrossProfitRate,'0')}" readonly required title="毛利(不含税)/收入总计(不含税)"></td>
</tr> </tr>
<tr> <tr>
<td>项目贡献利润率</td> <td>项目贡献利润率</td>
<td><input name="projectContributionProfit" value="${budgetBean.projectContributionProfit!23}" readonly required title="项目毛利(不含税)-公司管理费用总计(不含税)"></td> <td><input name="projectContributionProfit" value="${Utils.format(budgetBean.projectContributionProfit,'0')}" readonly required title="项目毛利(不含税)-公司管理费用总计(不含税)"></td>
<td><input name="projectContributionProfitRate" value="${budgetBean.projectContributionProfitRate!24}" readonly required title="贡献利润(不含税)/收入总计(不含税)"></td> <td><input name="projectContributionProfitRate" value="${Utils.format(budgetBean.projectContributionProfitRate,'0')}" readonly required title="贡献利润(不含税)/收入总计(不含税)"></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -441,11 +441,11 @@
</td> </td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income" value="${incomeDetail.name!}"></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income" value="${incomeDetail.name!}"></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income" value="${incomeDetail.unit!}"></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income" value="${incomeDetail.unit!}"></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-amount" value="${incomeDetail.amount!}"></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-amount" value="${incomeDetail.amount!0}"></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-price" value="${incomeDetail.price!}"></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-price" value="${Utils.format(incomeDetail.price,'0')}"></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-tax-rate" value="${incomeDetail.taxRate!}"></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-tax-rate" value="${Utils.format(incomeDetail.taxRate,'0')}"></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax-include" value="${incomeDetail.totalTaxInclude!}" readonly></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax-include" value="${Utils.format(incomeDetail.totalTaxInclude,'0')}" readonly></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax-exclude" value="${incomeDetail.totalTaxExclude!}" readonly></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax-exclude" value="${Utils.format(incomeDetail.totalTaxExclude,'0')}" readonly></td>
<td><button type="button" class="am-btn am-btn-warning am-btn-xs am-round am-modal-line-delete"><span class="am-icon-minus"></span></button></td> <td><button type="button" class="am-btn am-btn-warning am-btn-xs am-round am-modal-line-delete"><span class="am-icon-minus"></span></button></td>
</tr> </tr>
</#list> </#list>
@ -506,11 +506,11 @@
</td> </td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${costDetail.name!}"></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${costDetail.name!}"></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${costDetail.unit!}"></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${costDetail.unit!}"></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-amount" value="${costDetail.amount!}"></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-amount" value="${costDetail.amount!0}"></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-price" value="${costDetail.price!}"></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-price" value="${Utils.format(costDetail.price,'0')}"></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-tax-rate" value="${costDetail.taxRate!}"></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-tax-rate" value="${Utils.format(costDetail.taxRate,'0')}"></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax-include" value="${costDetail.totalTaxInclude!}" readonly></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax-include" value="${Utils.format(costDetail.totalTaxInclude,'0')}" readonly></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax-exclude" value="${costDetail.totalTaxExclude!}" readonly></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax-exclude" value="${Utils.format(costDetail.totalTaxExclude,'0')}" readonly></td>
<td><button type="button" class="am-btn am-btn-warning am-btn-xs am-round am-modal-line-delete"><span class="am-icon-minus"></span></button></td> <td><button type="button" class="am-btn am-btn-warning am-btn-xs am-round am-modal-line-delete"><span class="am-icon-minus"></span></button></td>
</tr> </tr>
</#list> </#list>
@ -560,9 +560,9 @@
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" value="${costProjectManageDetail.name!}" <#if costProjectManageDetail.deletable==0>readonly</#if>></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" value="${costProjectManageDetail.name!}" <#if costProjectManageDetail.deletable==0>readonly</#if>></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" value="${costProjectManageDetail.detail!}"></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" value="${costProjectManageDetail.detail!}"></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" value="${costProjectManageDetail.unit!}"></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" value="${costProjectManageDetail.unit!}"></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-amount-project-manage" value="${costProjectManageDetail.amount!}"></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-amount-project-manage" value="${costProjectManageDetail.amount!0}"></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-price-project-manage" value="${costProjectManageDetail.price!}"></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-price-project-manage" value="${Utils.format(costProjectManageDetail.price,'0')}"></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-total-project-manage" value="${costProjectManageDetail.total!}" readonly></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-total-project-manage" value="${Utils.format(costProjectManageDetail.total,'0')}" readonly></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" value="${costProjectManageDetail.predictMethod!}"></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" value="${costProjectManageDetail.predictMethod!}"></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" value="${costProjectManageDetail.predictWhy!}"></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" value="${costProjectManageDetail.predictWhy!}"></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" value="${costProjectManageDetail.remark!}"></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" value="${costProjectManageDetail.remark!}"></td>