Merge remote-tracking branch 'origin/master'

master
OathK1per 2021-11-18 15:28:54 +08:00
commit abfc4d2c25
10 changed files with 866 additions and 363 deletions

View File

@ -187,6 +187,38 @@ public class CashFlowBean {
.add(financingCapitalCashflow);
}
/**
*
* @return
*/
public BigDecimal getCashFluxTotal() {
BigDecimal saleIncomeCash = getSaleIncomeCash();
BigDecimal taxReturn = getTaxReturn();
BigDecimal earnestMoneyIncome = getEarnestMoneyIncome();
BigDecimal purchaseCost = getPurchaseCost();
BigDecimal taxCost = getTaxCost();
BigDecimal earnestMoneyCost = getEarnestMoneyCost();
BigDecimal netCashFlow = getNetCashFlow();
BigDecimal cashInflowFromInvestingActivities = getCashInflowFromInvestingActivities();
BigDecimal cashOutflowFromInvestingActivities = getCashOutflowFromInvestingActivities();
BigDecimal netCashFromInvestingActivities = getNetCashFromInvestingActivities();
BigDecimal financingCapitalInflow = getFinancingCapitalInflow();
BigDecimal financingCapitalOutflow = getFinancingCapitalOutflow();
BigDecimal financingCapitalCashflow = getFinancingCapitalCashflow();
BigDecimal netIncreaseMonetaryFunds = getNetIncreaseMonetaryFunds();
if (null == saleIncomeCash || null == taxReturn || null == earnestMoneyIncome || null == purchaseCost || null == taxCost
|| null == earnestMoneyCost || null == netCashFlow || null == cashInflowFromInvestingActivities ||
null == cashOutflowFromInvestingActivities || null == netCashFromInvestingActivities ||
null == financingCapitalInflow || null == financingCapitalOutflow || null == financingCapitalCashflow || null == netIncreaseMonetaryFunds) {
return new BigDecimal(0);
}
return saleIncomeCash.add(taxReturn).add(earnestMoneyIncome).add(purchaseCost).add(taxCost).add(earnestMoneyCost)
.add(netCashFlow).add(cashInflowFromInvestingActivities).add(cashOutflowFromInvestingActivities).add(netCashFromInvestingActivities)
.add(financingCapitalInflow).add(financingCapitalOutflow).add(financingCapitalCashflow).add(netIncreaseMonetaryFunds);
}
/**
*
* null0

View File

@ -4,6 +4,7 @@ import java.math.BigDecimal;
/**
*
*
* @author xiongshiyan at 2021/11/1 , contact me with email yanshixiong@126.com or phone 15208384257
*/
public abstract class IncomeCostBean {
@ -33,7 +34,7 @@ public abstract class IncomeCostBean {
*/
private BigDecimal incomeServiceTaxExclude;
/**
*
*
*/
private BigDecimal costPurchaseDeviceTaxInclude;
/**
@ -54,7 +55,7 @@ public abstract class IncomeCostBean {
*/
private BigDecimal costOtherOtherTaxInclude;
/**
*
*
*/
private BigDecimal costPurchaseDeviceTaxExclude;
/**
@ -83,7 +84,7 @@ public abstract class IncomeCostBean {
*/
private BigDecimal costExpropriationTaxExclude;
/**
*
*
*/
private BigDecimal costCompanyManageTaxExclude;
@ -174,6 +175,7 @@ public abstract class IncomeCostBean {
public BigDecimal getCostPurchaseOtherTaxInclude() {
return handleSpecial(costPurchaseOtherTaxInclude);
}
public void setCostPurchaseOtherTaxInclude(BigDecimal costPurchaseOtherTaxInclude) {
this.costPurchaseOtherTaxInclude = costPurchaseOtherTaxInclude;
}
@ -251,6 +253,20 @@ public abstract class IncomeCostBean {
this.costCompanyManageTaxExclude = costCompanyManageTaxExclude;
}
/**
*
*
* @return
*/
public BigDecimal getCostManageExclude() {
BigDecimal costExpropriationTaxExclude = getCostExpropriationTaxExclude();
BigDecimal costCompanyManageTaxExclude = getCostCompanyManageTaxExclude();
if (null == costExpropriationTaxExclude || null == costCompanyManageTaxExclude) {
return handleSpecial(null);
}
return costExpropriationTaxExclude.add(costCompanyManageTaxExclude);
}
/**
*
@ -259,7 +275,7 @@ public abstract class IncomeCostBean {
BigDecimal incomeDeviceTaxInclude = getIncomeDeviceTaxInclude();
BigDecimal incomeEngineerTaxInclude = getIncomeEngineerTaxInclude();
BigDecimal incomeServiceTaxInclude = getIncomeServiceTaxInclude();
if(null == incomeDeviceTaxInclude || null == incomeEngineerTaxInclude || null == incomeServiceTaxInclude){
if (null == incomeDeviceTaxInclude || null == incomeEngineerTaxInclude || null == incomeServiceTaxInclude) {
return handleSpecial(null);
}
return incomeDeviceTaxInclude.add(incomeEngineerTaxInclude)
@ -273,7 +289,7 @@ public abstract class IncomeCostBean {
BigDecimal incomeDeviceTaxExclude = getIncomeDeviceTaxExclude();
BigDecimal incomeEngineerTaxExclude = getIncomeEngineerTaxExclude();
BigDecimal incomeServiceTaxExclude = getIncomeServiceTaxExclude();
if(null == incomeDeviceTaxExclude || null == incomeEngineerTaxExclude || null == incomeServiceTaxExclude){
if (null == incomeDeviceTaxExclude || null == incomeEngineerTaxExclude || null == incomeServiceTaxExclude) {
return handleSpecial(null);
}
return incomeDeviceTaxExclude.add(incomeEngineerTaxExclude)
@ -290,12 +306,12 @@ public abstract class IncomeCostBean {
BigDecimal costPurchaseOtherTaxInclude = getCostPurchaseOtherTaxInclude();
BigDecimal costProjectManageTaxInclude = getCostProjectManageTaxInclude();
BigDecimal costOtherOtherTaxInclude = getCostOtherOtherTaxInclude();
if(null == costPurchaseDeviceTaxInclude
if (null == costPurchaseDeviceTaxInclude
|| null == costPurchaseBuildTaxInclude
|| null == costPurchaseServiceTaxInclude
|| null == costPurchaseOtherTaxInclude
|| null == costProjectManageTaxInclude
|| null == costOtherOtherTaxInclude){
|| null == costOtherOtherTaxInclude) {
return handleSpecial(null);
}
return costPurchaseDeviceTaxInclude
@ -316,12 +332,12 @@ public abstract class IncomeCostBean {
BigDecimal costPurchaseOtherTaxExclude = getCostPurchaseOtherTaxExclude();
BigDecimal costProjectManageTaxExclude = getCostProjectManageTaxExclude();
BigDecimal costOtherOtherTaxExclude = getCostOtherOtherTaxExclude();
if(null == costPurchaseDeviceTaxExclude
if (null == costPurchaseDeviceTaxExclude
|| null == costPurchaseBuildTaxExclude
|| null == costPurchaseServiceTaxExclude
|| null == costPurchaseOtherTaxExclude
|| null == costProjectManageTaxExclude
|| null == costOtherOtherTaxExclude){
|| null == costOtherOtherTaxExclude) {
return handleSpecial(null);
}
return costPurchaseDeviceTaxExclude
@ -340,7 +356,7 @@ public abstract class IncomeCostBean {
BigDecimal incomeTotalTaxExclude = getIncomeTotalTaxExclude();
BigDecimal costTotalTaxExclude = getCostTotalTaxExclude();
BigDecimal costExpropriationTaxExclude = getCostExpropriationTaxExclude();
if(null == incomeTotalTaxExclude || null == costTotalTaxExclude || null == costExpropriationTaxExclude){
if (null == incomeTotalTaxExclude || null == costTotalTaxExclude || null == costExpropriationTaxExclude) {
return handleSpecial(null);
}
return incomeTotalTaxExclude
@ -355,16 +371,16 @@ public abstract class IncomeCostBean {
public BigDecimal getProjectGrossProfitRate() {
BigDecimal projectGrossProfit = getProjectGrossProfit();
BigDecimal incomeTotalTaxExclude = getIncomeTotalTaxExclude();
if(null == projectGrossProfit || null == incomeTotalTaxExclude){
if (null == projectGrossProfit || null == incomeTotalTaxExclude) {
return handleSpecial(null);
}
BigDecimal zero = new BigDecimal(0);
if(projectGrossProfit.compareTo(zero) == 0 || incomeTotalTaxExclude.compareTo(zero) == 0){
if (projectGrossProfit.compareTo(zero) == 0 || incomeTotalTaxExclude.compareTo(zero) == 0) {
return handleSpecial(null);
}
return projectGrossProfit
.multiply(new BigDecimal(100))
.divide(incomeTotalTaxExclude,2,BigDecimal.ROUND_HALF_UP);
.divide(incomeTotalTaxExclude, 2, BigDecimal.ROUND_HALF_UP);
}
/**
@ -374,11 +390,12 @@ public abstract class IncomeCostBean {
public BigDecimal getProjectContributionProfit() {
BigDecimal projectGrossProfit = getProjectGrossProfit();
BigDecimal costCompanyManageTaxExclude = getCostCompanyManageTaxExclude();
if(null == projectGrossProfit || null == costCompanyManageTaxExclude){
if (null == projectGrossProfit || null == costCompanyManageTaxExclude) {
return null;
}
return projectGrossProfit.subtract(costCompanyManageTaxExclude);
}
/**
*
* /
@ -386,20 +403,21 @@ public abstract class IncomeCostBean {
public BigDecimal getProjectContributionProfitRate() {
BigDecimal projectContributionProfit = getProjectContributionProfit();
BigDecimal incomeTotalTaxExclude = getIncomeTotalTaxExclude();
if(null == projectContributionProfit || null == incomeTotalTaxExclude){
if (null == projectContributionProfit || null == incomeTotalTaxExclude) {
return handleSpecial(null);
}
BigDecimal zero = new BigDecimal(0);
if(projectContributionProfit.compareTo(zero) == 0 || incomeTotalTaxExclude.compareTo(zero) == 0){
if (projectContributionProfit.compareTo(zero) == 0 || incomeTotalTaxExclude.compareTo(zero) == 0) {
return handleSpecial(null);
}
return projectContributionProfit
.multiply(new BigDecimal(100))
.divide(incomeTotalTaxExclude, 2,BigDecimal.ROUND_HALF_UP);
.divide(incomeTotalTaxExclude, 2, BigDecimal.ROUND_HALF_UP);
}
/**
* null
*
* @param src
* @return
*/

View File

@ -3,7 +3,8 @@ package cn.palmte.work.controller.backend;
import cn.palmte.work.bean.*;
import cn.palmte.work.model.Project;
import cn.palmte.work.model.ProjectBudgetPlanDetail;
import cn.palmte.work.model.ProjectRepository;
import cn.palmte.work.model.ProjectSettleIncome;
import cn.palmte.work.model.ProjectSettleIncomeRepository;
import cn.palmte.work.service.*;
import cn.palmte.work.utils.FreeMarkerUtil;
import cn.palmte.work.utils.InterfaceUtil;
@ -12,7 +13,6 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -33,17 +33,38 @@ public class ProjectFinalController extends BaseController{
private ProjectBudgetService projectBudgetService;
@Autowired
private ProjectInstanceService projectInstanceService;
private ProjectSettleIncomeRepository projectSettleIncomeRepository;
@Autowired
private ProjectSettleService projectSettleService;
@RequestMapping("/add")
public String add(@RequestParam("id") int id, Map<String, Object> model) {
Project project = projectService.getProject(id);
ProjectSettleIncome projectSettleIncome = projectSettleIncomeRepository.findNewByProjectId(id);
String time = projectSettleIncome.getTime();
List<ProjectBudgetPlanDetail> projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project);
model.put("project", project);
model.put("estimateBean", projectEstimateService.getEstimate(project));
model.put("budgetBean", projectBudgetService.getBudget(project));
model.put("settleBean",projectSettleService.getCurrentSettle(project, time));
model.put("finalBean",new FinalBean());
//现金表
model.put("cashFlowBean", projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails));
//freemarker可以利用的静态方法
model.put("Utils", FreeMarkerUtil.fromStaticPackage("cn.palmte.work.utils.Utils"));
return "admin/project_final_add";
}
@RequestMapping("/edit")
public String budget(@RequestParam("id") int id, Map<String, Object> model) {
public String edit(@RequestParam("id") int id, Map<String, Object> model) {
Project project = projectService.getProject(id);
List<ProjectBudgetPlanDetail> projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project);
model.put("project", project);
model.put("estimateBean", projectEstimateService.getEstimate(project));
model.put("budgetBean", projectBudgetService.getBudget(project));
model.put("settleBean",projectFinalSevice.getSettle(project));
model.put("finalBean",new FinalBean());
model.put("finalBean",projectFinalSevice.getFinal(project));
//现金表
model.put("cashFlowBean", projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails));
//freemarker可以利用的静态方法
@ -54,7 +75,6 @@ public class ProjectFinalController extends BaseController{
@RequestMapping("/save")
public String estimateAddSave(Project project, FinalBean finalBean, Map<String, Object> model) {
projectFinalSevice.save(project,finalBean);
projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_UNCOMMIT);
return "redirect:/project/list";
}
@ -69,12 +89,7 @@ public class ProjectFinalController extends BaseController{
*/
@RequestMapping("/saveAndApprove")
public String saveAndApprove(Project project, FinalBean finalBean, Map<String, Object> model) throws Exception{
//保存
projectFinalSevice.save(project,finalBean);
//更新项目和审批状态
projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_PENDING);
//发起流程
projectInstanceService.startFinalProcessInstance(project.getId(), InterfaceUtil.getAdmin());
projectFinalSevice.saveAndApprove(project,finalBean);
return "redirect:/project/list";
}

View File

@ -2,6 +2,7 @@ package cn.palmte.work.service;
import cn.palmte.work.bean.*;
import cn.palmte.work.model.*;
import cn.palmte.work.utils.InterfaceUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -44,6 +45,12 @@ public class ProjectFinalSevice {
@Autowired
private ProjectSettleCashFlowRepository projectSettleCashFlowRepository;
@Autowired
private ProjectService projectService;
@Autowired
private ProjectInstanceService projectInstanceService;
@Transactional
public void save(Project project, FinalBean finalBean) {
//预算表数据
@ -66,6 +73,37 @@ public class ProjectFinalSevice {
//保存项目结算现金流量信息
saveProjectFinalCashFlux(project,finalBean,cashFlowBean);
projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_UNCOMMIT);
}
@Transactional
public void saveAndApprove(Project project, FinalBean finalBean) throws Exception {
//预算表数据
EstimateBean estimate = projectEstimateService.getEstimate(project);
//概算表数据
BudgetBean budget = projectBudgetService.getBudget(project);
//现金流量表数据
List<ProjectBudgetPlanDetail> projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project);
CashFlowBean cashFlowBean = projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails);
//保存项目决算收入信息
saveProjectFinalIncome(project,finalBean,estimate,budget);
//保存项目决算成本信息
saveProjectFinalCost(project,finalBean,estimate,budget);
//保存项目结算管理成本信息
saveProjectFinalCostManage(project,finalBean,estimate,budget);
//保存项目结算现金流量信息
saveProjectFinalCashFlux(project,finalBean,cashFlowBean);
//更新项目和审批状态
projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_PENDING);
//发起流程
projectInstanceService.startFinalProcessInstance(project.getId(), InterfaceUtil.getAdmin());
}
public void saveProjectFinalCostManage(Project project, FinalBean finalBean,EstimateBean estimate,BudgetBean budget){

View File

@ -25,7 +25,7 @@
<div class="am-fl am-cf"><strong class="am-text-primary am-text-lg">项目预算表</strong> / <small>${project.name}</small></div>
</div>
<form method="post" class="am-form" id="pmsForm" action="${base}/project/budgetEditSave">
<form method="post" class="am-form" id="pmsForm" action="${base}/project/budgetEditSave" data-am-validator>
<!--选项卡tabsbegin-->
<div class="am-tabs am-margin" data-am-tabs>
<ul class="am-tabs-nav am-nav am-nav-tabs">

View File

@ -8,327 +8,327 @@
<div class="am-fl am-cf"><strong class="am-text-primary am-text-lg">项目概算表</strong></div>
</div>
<form method="post" class="am-form" id="pmsForm" action="${base}/project/estimateAddSave">
<!--选项卡tabsbegin-->
<div class="am-tabs am-margin" data-am-tabs>
<ul class="am-tabs-nav am-nav am-nav-tabs">
<li class="am-active"><a href="#tab1">项目基本信息</a></li>
<li><a href="#tab2">项目详细信息</a></li>
</ul>
<div class="am-tabs-bd">
<div class="am-tab-panel am-fade am-in am-active" id="tab1">
<#--<input name="permissionID" id="permissionID" type="hidden" value="${permissionID!}" />-->
<!--验证表单元素validate) begin-->
<form method="post" class="am-form" id="pmsForm" action="${base}/project/estimateAddSave" data-am-validator>
<!--选项卡tabsbegin-->
<div class="am-tabs am-margin" data-am-tabs>
<ul class="am-tabs-nav am-nav am-nav-tabs">
<li class="am-active"><a href="#tab1">项目基本信息</a></li>
<li><a href="#tab2">项目详细信息</a></li>
</ul>
<div class="am-tabs-bd">
<div class="am-tab-panel am-fade am-in am-active" id="tab1">
<#--<input name="permissionID" id="permissionID" type="hidden" value="${permissionID!}" />-->
<!--验证表单元素validate) begin-->
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>部门名称</div>
<div class="am-u-sm-6 am-u-md-6">
<span>${dept.name}</span>
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>项目计划开始时间</div>
<div class="am-u-sm-2 am-u-md-2">
<div class="am-form-group am-form-icon">
<i class="am-icon-calendar"></i>
<input type="text" class="am-form-field am-input-sm" id="startDate"
name="startDate" autocomplete="off"
value="" placeholder="项目计划开始时间"
data-am-datepicker>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>部门名称</div>
<div class="am-u-sm-6 am-u-md-6">
<span>${dept.name}</span>
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>项目计划结束时间</div>
<div class="am-u-sm-2 am-u-md-2">
<div class="am-form-group am-form-icon">
<i class="am-icon-calendar"></i>
<input type="text" class="am-form-field am-input-sm" id="endDate"
name="endDate" autocomplete="off"
value="" placeholder="项目计划结束时间"
data-am-datepicker>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>项目计划开始时间</div>
<div class="am-u-sm-2 am-u-md-2">
<div class="am-form-group am-form-icon">
<i class="am-icon-calendar"></i>
<input type="text" class="am-form-field am-input-sm" id="startDate"
name="startDate" autocomplete="off"
value="" placeholder="项目计划开始时间"
data-am-datepicker>
</div>
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>项目计划结束时间</div>
<div class="am-u-sm-2 am-u-md-2">
<div class="am-form-group am-form-icon">
<i class="am-icon-calendar"></i>
<input type="text" class="am-form-field am-input-sm" id="endDate"
name="endDate" autocomplete="off"
value="" placeholder="项目计划结束时间"
data-am-datepicker>
</div>
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>项目名称</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="text" class="am-input" data-validate-async data-validation-message="请输入项目名称20字符以内"
name="name" placeholder="请输入项目名称20字符以内" maxlength="20"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>项目名称</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="text" class="am-input" data-validate-async data-validation-message="请输入项目名称20字符以内"
name="name" placeholder="请输入项目名称20字符以内" maxlength="20"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>项目类型</div>
<div class="am-u-sm-6 am-u-md-6">
<select data-am-selected id="type" name="type">
<option value="1" >工程集成类</option>
<option value="2" >设备集成类</option>
<option value="3" >战略合作类</option>
</select>
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资模式</div>
<div class="am-u-sm-6 am-u-md-6">
<select data-am-selected id="underwrittenMode" name="underwrittenMode">
<option value="1" >A类-不垫资(战略合作)</option>
<option value="2" >B类-不垫资(背靠背)</option>
<option value="3" >C类-垫资(账期覆盖)</option>
<option value="4" >D类-垫资(账期不覆盖)</option>
</select>
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>项目类型</div>
<div class="am-u-sm-6 am-u-md-6">
<select data-am-selected id="type" name="type">
<option value="1" >工程集成类</option>
<option value="2" >设备集成类</option>
<option value="3" >战略合作类</option>
</select>
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资模式</div>
<div class="am-u-sm-6 am-u-md-6">
<select data-am-selected id="underwrittenMode" name="underwrittenMode">
<option value="1" >A类-不垫资(战略合作)</option>
<option value="2" >B类-不垫资(背靠背)</option>
<option value="3" >C类-垫资(账期覆盖)</option>
<option value="4" >D类-垫资(账期不覆盖)</option>
</select>
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>客户名称</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="text" class="am-input" data-validate-async data-validation-message="请输入客户名称20字符以内"
name="customer" placeholder="请输入客户名称20字符以内" maxlength="20"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>终端客户名称</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="text" class="am-input" data-validate-async data-validation-message="请输入终端客户名称20字符以内"
name="terminalCustomer" placeholder="请输入终端客户名称20字符以内" maxlength="20"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资利息</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="number" class="am-input" data-validate-async data-validation-message="请输入垫资利息"
name="advanceInterestAmount" placeholder="单位(元)" maxlength="20"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资峰值</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="number" class="am-input" data-validate-async data-validation-message="请输入垫资峰值"
name="advancePeakAmount" placeholder="单位(元)" maxlength="20"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>合同金额</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="number" class="am-input" data-validate-async data-validation-message="请输入合同金额"
name="contractAmount" placeholder="单位(元)" maxlength="20"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>行业场景应用</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="text" class="am-input" data-validate-async data-validation-message="请输入行业场景应用"
name="industryScenario" placeholder="请输入行业场景应用" maxlength="20"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>华智产品金额</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="number" class="am-input" data-validate-async data-validation-message="华智产品金额"
name="huazhiProductAmount" placeholder="单位(元)" maxlength="20"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>紫光其他产品金额</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="number" class="am-input" data-validate-async data-validation-message="请输入紫光其他产品金额"
name="ziguangOtherAmount" placeholder="单位(元)" maxlength="20"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>主合同收款条款</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="text" class="am-input" data-validate-async data-validation-message="请输入收款条款"
name="mainContractCollectionTerms" placeholder="请输入收款条款" maxlength="20"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>客户名称</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="text" class="am-input" data-validate-async data-validation-message="请输入客户名称20字符以内"
name="customer" placeholder="请输入客户名称20字符以内" maxlength="20"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>终端客户名称</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="text" class="am-input" data-validate-async data-validation-message="请输入终端客户名称20字符以内"
name="terminalCustomer" placeholder="请输入终端客户名称20字符以内" maxlength="20"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资利息</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="number" class="am-input" data-validate-async data-validation-message="请输入垫资利息"
name="advanceInterestAmount" placeholder="单位(元)" maxlength="20"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资峰值</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="number" class="am-input" data-validate-async data-validation-message="请输入垫资峰值"
name="advancePeakAmount" placeholder="单位(元)" maxlength="20"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>合同金额</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="number" class="am-input" data-validate-async data-validation-message="请输入合同金额"
name="contractAmount" placeholder="单位(元)" maxlength="20"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>行业场景应用</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="text" class="am-input" data-validate-async data-validation-message="请输入行业场景应用"
name="industryScenario" placeholder="请输入行业场景应用" maxlength="20"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>华智产品金额</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="number" class="am-input" data-validate-async data-validation-message="华智产品金额"
name="huazhiProductAmount" placeholder="单位(元)" maxlength="20"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>紫光其他产品金额</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="number" class="am-input" data-validate-async data-validation-message="请输入紫光其他产品金额"
name="ziguangOtherAmount" placeholder="单位(元)" maxlength="20"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>主合同收款条款</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="text" class="am-input" data-validate-async data-validation-message="请输入收款条款"
name="mainContractCollectionTerms" placeholder="请输入收款条款" maxlength="20"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
</div>
<!--验证表单元素validate end-->
</div>
<div class="am-tabs-bd">
<div class="am-tab-panel am-fade am-in" id="tab2">
<span class="am-text-lg">收入</span>
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
<tbody>
<tr class="am-text-lg">
<td>类别</td>
<td>费用</td>
<td>含税金额(元)</td>
<td>不含税金额(元)</td>
</tr>
<tr>
<td>收入</td>
<td>设备类</td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="incomeDeviceTaxInclude" required></td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="incomeDeviceTaxExclude" required></td>
</tr>
<tr>
<td>收入</td>
<td>工程类</td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="incomeEngineerTaxInclude" required></td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="incomeEngineerTaxExclude" required></td>
</tr>
<tr>
<td>收入</td>
<td>服务类</td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="incomeServiceTaxInclude" required></td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="incomeServiceTaxExclude" required></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>
</tr>
</tbody>
</table>
<span class="am-text-lg">成本</span>
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
<tbody>
<tr class="am-text-lg">
<td>类别</td>
<td>费用</td>
<td>费用项目</td>
<td>含税金额(元)</td>
<td>不含税金额(元)</td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>设备</td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costPurchaseDeviceTaxInclude" required></td>
<td><input type="number" name="costPurchaseDeviceTaxExclude" required></td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>施工</td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costPurchaseBuildTaxInclude" required></td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costPurchaseBuildTaxExclude" required></td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>服务</td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costPurchaseServiceTaxInclude" required></td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costPurchaseServiceTaxExclude" required></td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>其他</td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costPurchaseOtherTaxInclude" required></td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costPurchaseOtherTaxExclude" required></td>
</tr>
<tr>
<td>成本</td>
<td>项目管理成本</td>
<td>项目管理成本</td>
<td><input type="number" name="costProjectManageTaxInclude" required readonly></td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costProjectManageTaxExclude" required></td>
</tr>
<tr>
<td>成本</td>
<td>其他</td>
<td>其他</td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costOtherOtherTaxInclude" required></td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costOtherOtherTaxExclude" required></td>
</tr>
<tr>
<td>合计</td>
<td></td>
<td></td>
<td><input type="number" name="costTotalTaxInclude" readonly title="此列累计"></td>
<td><input type="number" name="costTotalTaxExclude" readonly title="此列累计"></td>
</tr>
</tbody>
</table>
<span class="am-text-lg">管理</span>
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
<tbody>
<tr class="am-text-lg">
<td>类别</td>
<td>费用项目</td>
<td>不含税金额(元)</td>
</tr>
<tr>
<td>财务费用</td>
<td>资金占用成本</td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costExpropriationTaxExclude" required></td>
</tr>
<tr>
<td>公司管理费用</td>
<td></td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costCompanyManageTaxExclude" required></td>
</tr>
</tbody>
</table>
<span class="am-text-lg">利润率计算</span>
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
<tbody>
<tr class="am-text-lg">
<td>类别</td>
<td>不含税金额(元)</td>
<td>利润率(%</td>
</tr>
<tr>
<td>项目毛利</td>
<td><input type="number" name="projectGrossProfit" readonly title="收入总计(不含税)-成本总计(不含税)-财务费用总计(不含税)"></td>
<td><input type="number" name="projectGrossProfitRate" readonly title="毛利(不含税)/收入总计(不含税)"></td>
</tr>
<tr>
<td>项目贡献利润率</td>
<td><input type="number" name="projectContributionProfit" readonly title="项目毛利(不含税)-公司管理费用总计(不含税)"></td>
<td><input type="number" name="projectContributionProfitRate" readonly title="贡献利润(不含税)/收入总计(不含税)"></td>
</tr>
</tbody>
</table>
</div>
<!--验证表单元素validate end-->
</div>
</div>
<!--验证表单元素validate end-->
</div>
<div class="am-tabs-bd">
<div class="am-tab-panel am-fade am-in" id="tab2">
<span class="am-text-lg">收入</span>
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
<tbody>
<tr class="am-text-lg">
<td>类别</td>
<td>费用</td>
<td>含税金额(元)</td>
<td>不含税金额(元)</td>
</tr>
<tr>
<td>收入</td>
<td>设备类</td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="incomeDeviceTaxInclude" required></td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="incomeDeviceTaxExclude" required></td>
</tr>
<tr>
<td>收入</td>
<td>工程类</td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="incomeEngineerTaxInclude" required></td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="incomeEngineerTaxExclude" required></td>
</tr>
<tr>
<td>收入</td>
<td>服务类</td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="incomeServiceTaxInclude" required></td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="incomeServiceTaxExclude" required></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>
</tr>
</tbody>
</table>
<span class="am-text-lg">成本</span>
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
<tbody>
<tr class="am-text-lg">
<td>类别</td>
<td>费用</td>
<td>费用项目</td>
<td>含税金额(元)</td>
<td>不含税金额(元)</td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>设备</td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costPurchaseDeviceTaxInclude" required></td>
<td><input type="number" name="costPurchaseDeviceTaxExclude" required></td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>施工</td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costPurchaseBuildTaxInclude" required></td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costPurchaseBuildTaxExclude" required></td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>服务</td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costPurchaseServiceTaxInclude" required></td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costPurchaseServiceTaxExclude" required></td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>其他</td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costPurchaseOtherTaxInclude" required></td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costPurchaseOtherTaxExclude" required></td>
</tr>
<tr>
<td>成本</td>
<td>项目管理成本</td>
<td>项目管理成本</td>
<td><input type="number" name="costProjectManageTaxInclude" required readonly></td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costProjectManageTaxExclude" required></td>
</tr>
<tr>
<td>成本</td>
<td>其他</td>
<td>其他</td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costOtherOtherTaxInclude" required></td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costOtherOtherTaxExclude" required></td>
</tr>
<tr>
<td>合计</td>
<td></td>
<td></td>
<td><input type="number" name="costTotalTaxInclude" readonly title="此列累计"></td>
<td><input type="number" name="costTotalTaxExclude" readonly title="此列累计"></td>
</tr>
</tbody>
</table>
<span class="am-text-lg">管理</span>
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
<tbody>
<tr class="am-text-lg">
<td>类别</td>
<td>费用项目</td>
<td>不含税金额(元)</td>
</tr>
<tr>
<td>财务费用</td>
<td>资金占用成本</td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costExpropriationTaxExclude" required></td>
</tr>
<tr>
<td>公司管理费用</td>
<td></td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costCompanyManageTaxExclude" required></td>
</tr>
</tbody>
</table>
<span class="am-text-lg">利润率计算</span>
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
<tbody>
<tr class="am-text-lg">
<td>类别</td>
<td>不含税金额(元)</td>
<td>利润率(%</td>
</tr>
<tr>
<td>项目毛利</td>
<td><input type="number" name="projectGrossProfit" readonly title="收入总计(不含税)-成本总计(不含税)-财务费用总计(不含税)"></td>
<td><input type="number" name="projectGrossProfitRate" readonly title="毛利(不含税)/收入总计(不含税)"></td>
</tr>
<tr>
<td>项目贡献利润率</td>
<td><input type="number" name="projectContributionProfit" readonly title="项目毛利(不含税)-公司管理费用总计(不含税)"></td>
<td><input type="number" name="projectContributionProfitRate" readonly title="贡献利润(不含税)/收入总计(不含税)"></td>
</tr>
</tbody>
</table>
</div>
<!--验证表单元素validate end-->
</div>
</div>
</div>
<!--选项卡tabsend-->
<div class="am-margin">
<button type="button" class="am-btn am-btn-warning am-btn-xs" onclick="javascript:history.go(-1);">返回上一级</button>
<button type="submit" class="am-btn am-btn-primary am-btn-xs" id="saveDraft">保存草稿</button>
<button type="submit" class="am-btn am-btn-primary am-btn-xs" id="saveApprove">提交审核</button>
</div>
</form>
<!--选项卡tabsend-->
<div class="am-margin">
<button type="button" class="am-btn am-btn-warning am-btn-xs" onclick="javascript:history.go(-1);">返回上一级</button>
<button type="submit" class="am-btn am-btn-primary am-btn-xs" id="saveDraft">保存草稿</button>
<button type="submit" class="am-btn am-btn-primary am-btn-xs" id="saveApprove">提交审核</button>
</div>
</form>
</div>
</div>
</div>
<script src="${base}/assets/js/project_common.js"></script>
<script src="${base}/assets/js/project_estimate.js"></script>

View File

@ -8,7 +8,7 @@
<div class="am-fl am-cf"><strong class="am-text-primary am-text-lg">项目概算表</strong> / <small>${project.name}</small></div>
</div>
<form method="post" class="am-form" id="pmsForm" action="${base}/project/estimateEditSave">
<form method="post" class="am-form" id="pmsForm" action="${base}/project/estimateEditSave" data-am-validator>
<!--选项卡tabsbegin-->
<div class="am-tabs am-margin" data-am-tabs>
<ul class="am-tabs-nav am-nav am-nav-tabs">

View File

@ -0,0 +1,394 @@
<#assign base=request.contextPath />
<#import "../common/defaultLayout.ftl" as defaultLayout>
<@defaultLayout.layout>
<style type="text/css">
/**让所有的模态对话框都居中*/
.am-modal.am-modal-prompt.am-modal-active {
transform: translate(-50%, -50%) scale(1);
left: 50%;
top: 50%;
margin-left: 0;
margin-top: 0!important;
}
select[readonly] option {
display: none;
}
</style>
<div class="admin-content">
<div class="admin-content-body">
<div class="am-cf am-padding">
<div class="am-fl am-cf"><strong class="am-text-primary am-text-lg">项目决算表</strong> / <small>${project.name}</small></div>
</div>
<form method="post" class="am-form" id="pmsForm" action="${base}/project/budgetEditSave">
<!--选项卡tabsbegin-->
<div class="am-tabs am-margin" data-am-tabs>
<ul class="am-tabs-nav am-nav am-nav-tabs">
<li class="am-active"><a href="#tab1">项目决算表</a></li>
</ul>
<div class="am-tabs-bd">
<div class="am-tab-panel am-fade am-in am-active" id="tab1">
<input name="id" id="id" type="hidden" value="${project.id}" />
<span class="am-text-lg">收入</span>
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
<tbody>
<tr class="am-text-xl">
<td>类别</td>
<td>费用</td>
<td>概算总额(元)</td>
<td>预算总额(元)</td>
<td>结算总额(元)</td>
<td>决算总额(元)</td>
</tr>
<tr>
<td>收入</td>
<td>设备类</td>
<td><input name="incomeDeviceTaxExclude" type="number" value="${Utils.format(estimateBean.incomeDeviceTaxExclude,'0')}" required readonly title="设备类概算总额"></td>
<td><input name="incomeDeviceTaxExclude" type="number" value="${Utils.format(budgetBean.incomeDeviceTaxExclude,'0')}" required readonly title="设备类预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.incomeDeviceTaxExclude,'0')}" required readonly title="设备类结算总额"></td>
<td><input name="incomeDeviceFinalTotal" type="number" required title="设备类决算总额"></td>
</tr>
<tr>
<td>收入</td>
<td>工程类</td>
<td><input name="incomeEngineerTaxExclude" type="number" value="${Utils.format(estimateBean.incomeEngineerTaxExclude,'0')}" required readonly title="工程类概算总额"></td>
<td><input name="incomeEngineerTaxExclude" type="number" value="${Utils.format(budgetBean.incomeEngineerTaxExclude,'0')}" required readonly title="工程类预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.incomeEngineerTaxExclude,'0')}" required readonly title="工程类结算总额"></td>
<td><input name="incomeEngineerFinalTotal" type="number" required title="工程类决算总额"></td>
</tr>
<tr>
<td>收入</td>
<td>服务类</td>
<td><input name="incomeServiceTaxExclude" type="number" value="${Utils.format(estimateBean.incomeServiceTaxExclude,'0')}" required readonly title="服务类概算总额"></td>
<td><input name="incomeServiceTaxExclude" type="number" value="${Utils.format(budgetBean.incomeServiceTaxExclude,'0')}" required readonly title="服务类预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.incomeServiceTaxExclude,'0')}" required readonly title="服务类结算总额"></td>
<td><input name="incomeServiceFinalTotal" type="number" required title="服务类决算总额"></td>
</tr>
<tr>
<td>合计</td>
<td></td>
<td><input name="estimateIncomeTotalTaxExclude" type="number" value="${Utils.format(estimateBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td>
<td><input name="budgetIncomeTotalTaxExclude" type="number" value="${Utils.format(budgetBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td>
<td><input type="number" value="${Utils.format(settleBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td>
<td><input name="incomeFinalTotal" type="number" readonly required title="此列累计"></td>
</tr>
</tbody>
</table>
<span class="am-text-lg">成本</span>
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
<tbody>
<tr class="am-text-xl">
<td>类别</td>
<td>费用</td>
<td>费用项目</td>
<td>概算总额(元)</td>
<td>预算总额(元)</td>
<td>结算总额(元)</td>
<td>决算总额(元)</td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>设备</td>
<td><input name="costPurchaseDeviceTaxExclude" type="number" value="${Utils.format(estimateBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备概算总额"></td>
<td><input name="costPurchaseDeviceTaxExclude" type="number" value="${Utils.format(budgetBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备结算总额"></td>
<td><input name="costPurchaseDeviceFinalTotal" type="number" required title="购买设备决算总额"></td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>施工</td>
<td><input name="costPurchaseBuildTaxExclude" type="number" value="${Utils.format(estimateBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本概算总额"></td>
<td><input name="costPurchaseBuildTaxExclude" type="number" value="${Utils.format(budgetBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本结算总额"></td>
<td><input name="costPurchaseBuildFinalTotal" type="number" required title="施工采购成本决算总额"></td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>服务</td>
<td><input name="costPurchaseServiceTaxExclude" type="number" value="${Utils.format(estimateBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本概算总额"></td>
<td><input name="costPurchaseServiceTaxExclude" type="number" value="${Utils.format(budgetBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本结算总额"></td>
<td><input name="costPurchaseServiceFinalTotal" type="number" required title="服务采购成本决算总额"></td>
</tr>
<tr>
<td>成本</td>
<td>采购成本</td>
<td>其他</td>
<td><input name="costPurchaseOtherTaxInclude" type="number" value="${Utils.format(estimateBean.costPurchaseOtherTaxInclude,'0')}" readonly required title="其他采购成本概算总额"></td>
<td><input name="costPurchaseOtherTaxInclude" type="number" value="${Utils.format(budgetBean.costPurchaseOtherTaxInclude,'0')}" readonly required title="其他采购成本预算总额"></td>
<td><input name="costPurchaseOtherSettleTotal" value="${Utils.format(settleBean.costPurchaseOtherTaxExclude,'0')}" type="number" readonly required title="其他采购成本结算总额"></td>
<td><input name="costPurchaseOtherFinalTotal" type="number" required title="其他采购成本决算总额"></td>
</tr>
<tr>
<td>成本</td>
<td>项目管理成本</td>
<td>项目管理成本</td>
<td><input name="costProjectManageTaxExclude" type="number" value="${Utils.format(estimateBean.costProjectManageTaxExclude,'0')}" readonly required title="项目管理成本概算总额"></td>
<td><input name="costProjectManageTaxExclude" type="number" value="${Utils.format(budgetBean.costProjectManageTaxExclude,'0')}" readonly required title="项目管理成本预算总额"></td>
<td><input name="costProjectManageSettleTotal" value="${Utils.format(settleBean.costProjectManageTaxExclude,'0')}" type="number" readonly required title="项目管理成本结算总额"></td>
<td><input name="costProjectManageFinalTotal" type="number" required title="项目管理成本决算总额"></td>
</tr>
<tr>
<td>成本</td>
<td>其他</td>
<td>其他</td>
<td><input name="costOtherOtherTaxExclude" type="number" value="${Utils.format(estimateBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本概算总额"></td>
<td><input name="costOtherOtherTaxExclude" type="number" value="${Utils.format(budgetBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本预算总额"></td>
<td><input name="costOtherSettleTotal" value="${Utils.format(settleBean.costOtherOtherTaxExclude,'0')}" type="number" type="number"readonly required title="其他成本结算总额"></td>
<td><input name="costOtherFinalTotal" type="number" required title="其他成本决算总额"></td>
</tr>
<tr>
<td>合计</td>
<td></td>
<td></td>
<td><input name="incomeTotalTaxExclude" value="${Utils.format(estimateBean.getIncomeTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td>
<td><input name="costTotalTaxExclude" value="${Utils.format(budgetBean.getCostTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td>
<td><input name="costSettleTotal" value="${Utils.format(settleBean.getCostTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td>
<td><input name="costFinalTotal" type="number" readonly required title="此列累计"></td>
</tr>
</tbody>
</table>
<span class="am-text-lg">管理</span>
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
<tbody>
<tr class="am-text-xl">
<td>类别</td>
<td>费用项目</td>
<td>概算总额(元)</td>
<td>预算总额(元)</td>
<td>结算总额(元)</td>
<td>决算总额(元)</td>
</tr>
<tr>
<td>财务费用</td>
<td>资金占用成本</td>
<td><input name="costExpropriationTaxExclude" type="number" value="${Utils.format(estimateBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本概算总额"></td>
<td><input name="costExpropriationTaxExclude" type="number" value="${Utils.format(budgetBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本结算总额"></td>
<td><input name="costExpropriationFinalTotal" type="number" required title="资金占用成本决算总额"></td>
</tr>
<tr>
<td>公司管理费用</td>
<td></td>
<td><input name="costCompanyManageTaxExclude" type="number" value="${Utils.format(estimateBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用概算总额"></td>
<td><input name="costCompanyManageTaxExclude" type="number" value="${Utils.format(budgetBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用结算总额"></td>
<td><input name="costCompanyManageFinalTotal" type="number" required title="公司管理费用决算总额"></td>
</tr>
<tr>
<td>所得税费用</td>
<td></td>
<td>/</td>
<td>/</td>
<td><input name="costIncomeTaxSettleTotal" value="${Utils.format(settleBean.costIncomeTax,'0')}" type="number" required readonly title="所得税费用结算总额"></td>
<td><input name="costIncomeTaxFinalTotal" type="number" required title="所得税费用决算总额"></td>
</tr>
<tr>
<td>合计</td>
<td></td>
<td><input name="manageEstimateTotal" value="${Utils.format(estimateBean.getCostManageExclude(),'0')}" type="number" readonly required title="此列累计"></td>
<td><input name="manageBudgetTotal" value="${Utils.format(budgetBean.getCostManageExclude(),'0')}" type="number" readonly required title="此列累计"></td>
<td><input name="manageSettleTotal" value="${Utils.format(settleBean.getCostManageTotal(),'0')}" type="number" readonly required title="此列累计"></td>
<td><input name="manageFinalTotal" type="number" readonly required title="此列累计"></td>
</tr>
</tbody>
</table>
<span class="am-text-lg">利润率计算</span>
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
<tbody>
<tr class="am-text-xl">
<td>类别</td>
<td>概算总额(元)</td>
<td>预算总额(元)</td>
<td>结算总额(元)</td>
<td>决算总额(元)</td>
<td>利润率(%</td>
</tr>
<tr>
<td>项目毛利</td>
<td><input name="projectGrossProfit" type="number" value="${Utils.format(estimateBean.getProjectGrossProfit(),'0')}" readonly required title="项目毛利概算总额"></td>
<td><input name="projectGrossProfit" type="number" value="${Utils.format(budgetBean.getProjectGrossProfit(),'0')}" readonly required title="项目毛利预算总额"></td>
<td><input name="grossProfitSettleTotal" type="number" value="${Utils.format(settleBean.grossProfit,'0')}" readonly required title="项目毛利结算总额"></td>
<td><input name="grossProfitFinalTotal" required type="number" title="项目毛利决算总额"></td>
<td><input name="grossProfitProfitMargin" type="number" required readonly title="项目毛利利润率"></td>
</tr>
<tr>
<td>项目贡献利润</td>
<td><input name="projectContributionProfit" type="number" value="${Utils.format(estimateBean.getProjectContributionProfit(),'0')}" readonly required title="项目贡献利润概算总额"></td>
<td><input name="projectContributionProfit" type="number" value="${Utils.format(budgetBean.getProjectContributionProfit(),'0')}" readonly required title="项目贡献利润预算总额"></td>
<td><input name="contributionMarginSettleTotal" type="number" value="${Utils.format(settleBean.contributionProfit,'0')}" readonly required title="项目贡献利润结算总额"></td>
<td><input name="contributionMarginFinalTotal" type="number" required title="项目贡献利润决算总额"></td>
<td><input name="contributionMarginProfitMargin" type="number" required readonly title="项目贡献利润利润率"></td>
</tr>
<tr>
<td>项目净利润</td>
<td>/</td>
<td><input name="netMarginBudgetTotal" type="number" value="${Utils.format(finalBean.netMarginBudgetTotal,'0')}" readonly required title="项目净利润预算总额"></td>
<td><input name="netMarginSettleTotal" type="number" value="${Utils.format(settleBean.netProfit,'0')}" readonly required title="项目净利润结算总额"></td>
<td><input name="netMarginFinalTotal" type="number" required title="项目净利润决算总额"></td>
<td><input name="netMarginProfitMargin" type="number" value="${Utils.format(finalBean.netMarginProfitMargin,'0')}" required readonly title="项目净利润利润率"></td>
</tr>
</tbody>
</table>
<span class="am-text-lg">现金流量表</span>
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
<tbody>
<tr class="am-text-xl">
<td>类别</td>
<td>预算总额(元)</td>
<td>结算总额(元)</td>
<td>决算总额(元)</td>
</tr>
<tr>
<td>销售商品、提供劳务收到的现金</td>
<td><input name="budgetSaleIncomeCash" type="number" value="${Utils.format(cashFlowBean.saleIncomeCash,'0')}" readonly required title="预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.saleIncomeCash,'0')}" readonly required title="结算总额"></td>
<td><input name="saleIncomeCash" type="number" required title="决算总额"></td>
</tr>
<tr>
<td>收到的税费返还</td>
<td>/</td>
<td><input type="number" value="${Utils.format(settleBean.taxReturn,'0')}" readonly required title="结算总额"></td>
<td><input name="taxReturn" type="number" required title="决算总额"></td>
</tr>
<tr>
<td>收到其他与经营活动有关的现金</td>
<td><input name="budgetEarnestMoneyIncome" type="number" value="${Utils.format(cashFlowBean.earnestMoneyIncome,'0')}" readonly required title="预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.earnestMoneyIncome,'0')}" readonly required title="结算总额"></td>
<td><input name="earnestMoneyIncome" type="number" required title="决算总额"></td>
</tr>
<tr>
<td>购买商品、接受劳务支付的现金</td>
<td><input name="budgetPurchaseCost" type="number" value="${Utils.format(cashFlowBean.purchaseCost,'0')}" readonly required title="预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.purchaseCost,'0')}" readonly required title="结算总额"></td>
<td><input name="purchaseCost" type="number" required title="决算总额"></td>
</tr>
<tr>
<td>支付的各项税费</td>
<td>/</td>
<td><input type="number" value="${Utils.format(settleBean.taxCost,'0')}" readonly required title="结算总额"></td>
<td><input name="taxCost" type="number" required title="决算总额"></td>
</tr>
<tr>
<td>支付其他与经营活动有关的现金</td>
<td><input name="budgetEarnestMoneyCost" type="number" value="${Utils.format(cashFlowBean.earnestMoneyCost,'0')}" readonly required title="预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.earnestMoneyCost,'0')}" readonly required title="结算总额"></td>
<td><input name="earnestMoneyCost" type="number" required title="决算总额"></td>
</tr>
<tr>
<td>经营活动产生的现金流量净额</td>
<td><input name="budgetNetCashFlow" type="number" value="${Utils.format(cashFlowBean.getNetCashFlow(),'0')}" readonly required title="预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.netCashFlow,'0')}" readonly required title="结算总额"></td>
<td><input name="netCashFlow" type="number" required title="决算总额"></td>
</tr>
<tr>
<td>投资活动现金流入</td>
<td>/</td>
<td><input type="number" value="${Utils.format(settleBean.cashInflowFromInvestingActivities,'0')}" readonly required title="结算总额"></td>
<td><input name="cashInflowFromInvestingActivities" type="number" required title="决算总额"></td>
</tr>
<tr>
<td>投资活动现金流出</td>
<td>/</td>
<td><input type="number" value="${Utils.format(settleBean.cashOutflowFromInvestingActivities,'0')}" readonly required title="结算总额"></td>
<td><input name="cashOutflowFromInvestingActivities" type="number" required title="决算总额"></td>
</tr>
<tr>
<td>投资活动产生的现金流量净额</td>
<td>/</td>
<td><input type="number" value="${Utils.format(settleBean.netCashFromInvestingActivities,'0')}" readonly required title="结算总额"></td>
<td><input name="netCashFromInvestingActivities" type="number" required title="决算总额"></td>
</tr>
<tr>
<td>融资资金流入</td>
<td><input name="budgetFinancingCapitalInflow" type="number" value="${Utils.format(cashFlowBean.financingCapitalInflow,'0')}" readonly required title="预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.financingCapitalInflow,'0')}" readonly required title="结算总额"></td>
<td><input name="financingCapitalInflow" type="number" required title="决算总额"></td>
</tr>
<tr>
<td>还款资金流出</td>
<td><input name="budgetFinancingCapitalOutflow" type="number" value="${Utils.format(cashFlowBean.financingCapitalOutflow,'0')}" readonly required title="预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.financingCapitalOutflow,'0')}" readonly required title="结算总额"></td>
<td><input name="financingCapitalOutflow" type="number" required title="决算总额"></td>
</tr>
<tr>
<td>筹资活动产生的现金流量净额</td>
<td><input name="budgetFinancingCapitalCashflow" type="number" value="${Utils.format(cashFlowBean.getFinancingCapitalCashflow(),'0')}" readonly required title="预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.financingCapitalCashflow,'0')}" readonly required title="结算总额"></td>
<td><input name="financingCapitalCashflow" type="number" required title="决算总额"></td>
</tr>
<tr>
<td>货币资金净增加额</td>
<td><input name="budgetNetIncreaseMonetaryFunds" type="number" value="${Utils.format(cashFlowBean.getNetIncreaseMonetaryFunds(),'0')}" readonly required title="预算总额"></td>
<td><input name="type14SettleTotal" type="number" value="${Utils.format(settleBean.netIncreaseMonetaryFunds,'0')}" readonly required title="结算总额"></td>
<td><input name="netIncreaseMonetaryFunds" type="number" required title="决算总额"></td>
</tr>
<tr>
<td>合计</td>
<td><input name="cashFluxBudgetTotal" type="number" value="${Utils.format(cashFlowBean.getCashFluxTotal(),'0')}" readonly required title="此列累计"></td>
<td><input name="cashFluxSettleTotal" type="number" value="${Utils.format(settleBean.getCashFlowTotal(),'0')}" readonly required title="此列累计"></td>
<td><input name="cashFluxFinalTotal" type="number" readonly required title="此列累计"></td>
</tr>
</tbody>
</table>
</div>
<!--验证表单元素validate end-->
</div>
</div>
<!--选项卡tabsend-->
<div class="am-margin">
<button type="button" class="am-btn am-btn-warning am-btn-xs" onclick="javascript:history.go(-1);">返回上一级</button>
<button type="submit" class="am-btn am-btn-primary am-btn-xs" id="saveFinal">保存</button>
<button type="submit" class="am-btn am-btn-primary am-btn-xs" id="saveApprove">提交审核</button>
</div>
</form>
</div>
</div>
<script>
var base = "${base}";
</script>
<script src="${base}/assets/js/project_common.js"></script>
<script src="${base}/assets/js/project_final.js"></script>
<script>
$(function () {
calculateFinal();
$("#saveFinal").click(function () {
$("#pmsForm").attr("action","${base}/project/final/save");
$("#pmsForm").submit();
});
$("#saveApprove").click(function () {
$("#pmsForm").attr("action",base+"/project/final/saveAndApprove");
$("#pmsForm").submit();
});
});
</script>
</@defaultLayout.layout>

View File

@ -50,7 +50,7 @@
<td>设备类</td>
<td><input name="incomeDeviceTaxExclude" type="number" value="${Utils.format(estimateBean.incomeDeviceTaxExclude,'0')}" required readonly title="设备类概算总额"></td>
<td><input name="incomeDeviceTaxExclude" type="number" value="${Utils.format(budgetBean.incomeDeviceTaxExclude,'0')}" required readonly title="设备类预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.incomeDevice,'0')}" required readonly title="设备类结算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.incomeDeviceTaxExclude,'0')}" required readonly title="设备类结算总额"></td>
<td><input name="incomeDeviceFinalTotal" type="number" value="${Utils.format(finalBean.incomeDeviceFinalTotal,'0')}" required title="设备类决算总额"></td>
</tr>
<tr>
@ -58,7 +58,7 @@
<td>工程类</td>
<td><input name="incomeEngineerTaxExclude" type="number" value="${Utils.format(estimateBean.incomeEngineerTaxExclude,'0')}" required readonly title="工程类概算总额"></td>
<td><input name="incomeEngineerTaxExclude" type="number" value="${Utils.format(budgetBean.incomeEngineerTaxExclude,'0')}" required readonly title="工程类预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.incomeEngineer,'0')}" required readonly title="工程类结算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.incomeEngineerTaxExclude,'0')}" required readonly title="工程类结算总额"></td>
<td><input name="incomeEngineerFinalTotal" type="number" value="${Utils.format(finalBean.incomeEngineerFinalTotal,'0')}" required title="工程类决算总额"></td>
</tr>
<tr>
@ -66,7 +66,7 @@
<td>服务类</td>
<td><input name="incomeServiceTaxExclude" type="number" value="${Utils.format(estimateBean.incomeServiceTaxExclude,'0')}" required readonly title="服务类概算总额"></td>
<td><input name="incomeServiceTaxExclude" type="number" value="${Utils.format(budgetBean.incomeServiceTaxExclude,'0')}" required readonly title="服务类预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.incomeService,'0')}" required readonly title="服务类结算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.incomeServiceTaxExclude,'0')}" required readonly title="服务类结算总额"></td>
<td><input name="incomeServiceFinalTotal" type="number" value="${Utils.format(finalBean.incomeServiceFinalTotal,'0')}" required title="服务类决算总额"></td>
</tr>
<tr>
@ -74,8 +74,8 @@
<td></td>
<td><input name="estimateIncomeTotalTaxExclude" type="number" value="${Utils.format(estimateBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td>
<td><input name="budgetIncomeTotalTaxExclude" type="number" value="${Utils.format(budgetBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td>
<td><input type="number" value="${Utils.format(settleBean.incomeTotal,'0')}" readonly required title="此列累计"></td>
<td><input name="incomeFinalTotal" type="number" readonly required title="此列累计"></td>
<td><input type="number" value="${Utils.format(settleBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td>
<td><input name="incomeFinalTotal" type="number" value="${Utils.format(finalBean.getIncomeTotal(),'0')}" readonly required title="此列累计"></td>
</tr>
</tbody>
</table>
@ -97,7 +97,7 @@
<td>设备</td>
<td><input name="costPurchaseDeviceTaxExclude" type="number" value="${Utils.format(estimateBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备概算总额"></td>
<td><input name="costPurchaseDeviceTaxExclude" type="number" value="${Utils.format(budgetBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.costPurchaseDevice,'0')}" readonly required title="购买设备结算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备结算总额"></td>
<td><input name="costPurchaseDeviceFinalTotal" type="number" value="${Utils.format(finalBean.costPurchaseDeviceFinalTotal,'0')}" required title="购买设备决算总额"></td>
</tr>
<tr>
@ -106,7 +106,7 @@
<td>施工</td>
<td><input name="costPurchaseBuildTaxExclude" type="number" value="${Utils.format(estimateBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本概算总额"></td>
<td><input name="costPurchaseBuildTaxExclude" type="number" value="${Utils.format(budgetBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.costPurchaseBuild,'0')}" readonly required title="施工采购成本结算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本结算总额"></td>
<td><input name="costPurchaseBuildFinalTotal" type="number" value="${Utils.format(finalBean.costPurchaseBuildFinalTotal,'0')}" required title="施工采购成本决算总额"></td>
</tr>
<tr>
@ -115,7 +115,7 @@
<td>服务</td>
<td><input name="costPurchaseServiceTaxExclude" type="number" value="${Utils.format(estimateBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本概算总额"></td>
<td><input name="costPurchaseServiceTaxExclude" type="number" value="${Utils.format(budgetBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.costPurchaseService,'0')}" readonly required title="服务采购成本结算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本结算总额"></td>
<td><input name="costPurchaseServiceFinalTotal" type="number" value="${Utils.format(finalBean.costPurchaseServiceFinalTotal,'0')}" required title="服务采购成本决算总额"></td>
</tr>
<tr>
@ -124,7 +124,7 @@
<td>其他</td>
<td><input name="costPurchaseOtherTaxInclude" type="number" value="${Utils.format(estimateBean.costPurchaseOtherTaxInclude,'0')}" readonly required title="其他采购成本概算总额"></td>
<td><input name="costPurchaseOtherTaxInclude" type="number" value="${Utils.format(budgetBean.costPurchaseOtherTaxInclude,'0')}" readonly required title="其他采购成本预算总额"></td>
<td><input name="costPurchaseOtherSettleTotal" value="${Utils.format(settleBean.costPurchaseOther,'0')}" type="number" readonly required title="其他采购成本结算总额"></td>
<td><input name="costPurchaseOtherSettleTotal" value="${Utils.format(settleBean.costPurchaseOtherTaxExclude,'0')}" type="number" readonly required title="其他采购成本结算总额"></td>
<td><input name="costPurchaseOtherFinalTotal" type="number" value="${Utils.format(finalBean.costPurchaseOtherFinalTotal,'0')}" required title="其他采购成本决算总额"></td>
</tr>
<tr>
@ -133,7 +133,7 @@
<td>项目管理成本</td>
<td><input name="costProjectManageTaxExclude" type="number" value="${Utils.format(estimateBean.costProjectManageTaxExclude,'0')}" readonly required title="项目管理成本概算总额"></td>
<td><input name="costProjectManageTaxExclude" type="number" value="${Utils.format(budgetBean.costProjectManageTaxExclude,'0')}" readonly required title="项目管理成本预算总额"></td>
<td><input name="costProjectManageSettleTotal" value="${Utils.format(settleBean.costProjectManage,'0')}" type="number" readonly required title="项目管理成本结算总额"></td>
<td><input name="costProjectManageSettleTotal" value="${Utils.format(settleBean.costProjectManageTaxExclude,'0')}" type="number" readonly required title="项目管理成本结算总额"></td>
<td><input name="costProjectManageFinalTotal" type="number" value="${Utils.format(finalBean.costProjectManageFinalTotal,'0')}" required title="项目管理成本决算总额"></td>
</tr>
<tr>
@ -142,7 +142,7 @@
<td>其他</td>
<td><input name="costOtherOtherTaxExclude" type="number" value="${Utils.format(estimateBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本概算总额"></td>
<td><input name="costOtherOtherTaxExclude" type="number" value="${Utils.format(budgetBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本预算总额"></td>
<td><input name="costOtherSettleTotal" value="${Utils.format(settleBean.costOther,'0')}" type="number" type="number"readonly required title="其他成本结算总额"></td>
<td><input name="costOtherSettleTotal" value="${Utils.format(settleBean.costOtherOtherTaxExclude,'0')}" type="number" type="number"readonly required title="其他成本结算总额"></td>
<td><input name="costOtherFinalTotal" type="number" value="${Utils.format(finalBean.costOtherFinalTotal,'0')}" required title="其他成本决算总额"></td>
</tr>
<tr>
@ -151,8 +151,8 @@
<td></td>
<td><input name="incomeTotalTaxExclude" value="${Utils.format(estimateBean.getIncomeTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td>
<td><input name="costTotalTaxExclude" value="${Utils.format(budgetBean.getCostTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td>
<td><input name="costSettleTotal" value="${Utils.format(settleBean.costTotal,'0')}" type="number" readonly required title="此列累计"></td>
<td><input name="costFinalTotal" type="number" readonly required title="此列累计"></td>
<td><input name="costSettleTotal" value="${Utils.format(settleBean.getCostTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td>
<td><input name="costFinalTotal" type="number" value="${Utils.format(finalBean.getCostTotal(),'0')}" readonly required title="此列累计"></td>
</tr>
</tbody>
</table>
@ -172,7 +172,7 @@
<td>资金占用成本</td>
<td><input name="costExpropriationTaxExclude" type="number" value="${Utils.format(estimateBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本概算总额"></td>
<td><input name="costExpropriationTaxExclude" type="number" value="${Utils.format(budgetBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.costExpropriation,'0')}" required readonly title="资金占用成本结算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本结算总额"></td>
<td><input name="costExpropriationFinalTotal" type="number" value="${Utils.format(finalBean.costExpropriationFinalTotal,'0')}" required title="资金占用成本决算总额"></td>
</tr>
<tr>
@ -180,7 +180,7 @@
<td></td>
<td><input name="costCompanyManageTaxExclude" type="number" value="${Utils.format(estimateBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用概算总额"></td>
<td><input name="costCompanyManageTaxExclude" type="number" value="${Utils.format(budgetBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用预算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.costCompanyManage,'0')}" required readonly title="公司管理费用结算总额"></td>
<td><input type="number" value="${Utils.format(settleBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用结算总额"></td>
<td><input name="costCompanyManageFinalTotal" type="number" value="${Utils.format(finalBean.costCompanyManageFinalTotal,'0')}" required title="公司管理费用决算总额"></td>
</tr>
<tr>
@ -194,10 +194,10 @@
<tr>
<td>合计</td>
<td></td>
<td><input name="manageEstimateTotal" type="number" readonly required title="此列累计"></td>
<td><input name="manageBudgetTotal" type="number" readonly required title="此列累计"></td>
<td><input name="manageEstimateTotal" value="${Utils.format(estimateBean.getCostManageExclude(),'0')}" type="number" readonly required title="此列累计"></td>
<td><input name="manageBudgetTotal" value="${Utils.format(budgetBean.getCostManageExclude(),'0')}" type="number" readonly required title="此列累计"></td>
<td><input name="manageSettleTotal" value="${Utils.format(settleBean.getCostManageTotal(),'0')}" type="number" readonly required title="此列累计"></td>
<td><input name="manageFinalTotal" type="number" readonly required title="此列累计"></td>
<td><input name="manageFinalTotal" type="number" value="${Utils.format(finalBean.getCostManageTotal(),'0')}" readonly required title="此列累计"></td>
</tr>
</tbody>
</table>
@ -225,7 +225,7 @@
<td>项目贡献利润</td>
<td><input name="projectContributionProfit" type="number" value="${Utils.format(estimateBean.getProjectContributionProfit(),'0')}" readonly required title="项目贡献利润概算总额"></td>
<td><input name="projectContributionProfit" type="number" value="${Utils.format(budgetBean.getProjectContributionProfit(),'0')}" readonly required title="项目贡献利润预算总额"></td>
<td><input name="contributionMarginSettleTotal" type="number" value="${Utils.format(finalBean.contributionMarginSettleTotal,'0')}" readonly required title="项目贡献利润结算总额"></td>
<td><input name="contributionMarginSettleTotal" type="number" value="${Utils.format(settleBean.contributionProfit,'0')}" readonly required title="项目贡献利润结算总额"></td>
<td><input name="contributionMarginFinalTotal" type="number" value="${Utils.format(finalBean.contributionMarginFinalTotal,'0')}" required title="项目贡献利润决算总额"></td>
<td><input name="contributionMarginProfitMargin" type="number" value="${Utils.format(finalBean.contributionMarginProfitMargin,'0')}" required readonly title="项目贡献利润利润率"></td>
</tr>
@ -233,7 +233,7 @@
<td>项目净利润</td>
<td>/</td>
<td><input name="netMarginBudgetTotal" type="number" value="${Utils.format(finalBean.netMarginBudgetTotal,'0')}" readonly required title="项目净利润预算总额"></td>
<td><input name="netMarginSettleTotal" type="number" value="${Utils.format(finalBean.netMarginSettleTotal,'0')}" readonly required title="项目净利润结算总额"></td>
<td><input name="netMarginSettleTotal" type="number" value="${Utils.format(settleBean.netProfit,'0')}" readonly required title="项目净利润结算总额"></td>
<td><input name="netMarginFinalTotal" type="number" value="${Utils.format(finalBean.netMarginFinalTotal,'0')}" required title="项目净利润决算总额"></td>
<td><input name="netMarginProfitMargin" type="number" value="${Utils.format(finalBean.netMarginProfitMargin,'0')}" required readonly title="项目净利润利润率"></td>
</tr>
@ -335,9 +335,9 @@
</tr>
<tr>
<td>合计</td>
<td><input name="cashFluxBudgetTotal" type="number" readonly required title="此列累计"></td>
<td><input name="cashFluxBudgetTotal" type="number" value="${Utils.format(cashFlowBean.getCashFluxTotal(),'0')}" readonly required title="此列累计"></td>
<td><input name="cashFluxSettleTotal" type="number" value="${Utils.format(settleBean.getCashFlowTotal(),'0')}" readonly required title="此列累计"></td>
<td><input name="cashFluxFinalTotal" type="number" readonly required title="此列累计"></td>
<td><input name="cashFluxFinalTotal" type="number" value="${Utils.format(finalBean.getCashFluxTotal(),'0')}" readonly required title="此列累计"></td>
</tr>
</tbody>
</table>

View File

@ -243,11 +243,17 @@
<#if (list.status== 10 && list.approveStatusSettle== 2) || (list.status== 15 && list.approveStatusFinal== 0) || (list.status== 15 && list.approveStatusFinal== 3)>
<button type="button"
class="am-btn am-btn-default am-btn-xs am-text-secondary"
onclick="location.href='${base}/project/final/edit?id=${list.id}'"><span
onclick="location.href='${base}/project/final/add?id=${list.id}'"><span
class="am-icon-pencil-square-o"></span>发起决算
</button>
</#if>
<button type="button"
class="am-btn am-btn-default am-btn-xs am-text-secondary"
onclick="location.href='${base}/project/final/edit?id=${list.id}'"><span
class="am-icon-pencil-square-o"></span>编辑决算
</button>
<button type="button"
class="am-btn am-btn-default am-btn-xs am-text-secondary"
onclick="location.href='${base}/project/detail?id=${list.id}'"><span