。。。合并代码

dev_1.0.0
‘wangjiuyun 2024-10-29 09:44:58 +08:00
commit 9a6d9d8911
19 changed files with 967 additions and 485 deletions

View File

@ -50,7 +50,7 @@ dependencies {
compile 'com.jfinal:jfinal:2.2' compile 'com.jfinal:jfinal:2.2'
compile 'com.alibaba:druid:1.1.9' compile 'com.alibaba:druid:1.1.9'
compile 'mysql:mysql-connector-java:6.0.6' compile 'mysql:mysql-connector-java:8.0.33'
//compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.3' //compile group: 'org.apache.httpcomponents', name: 'httpclient', version: '4.5.3'
//shiro //shiro
compile group: 'org.apache.shiro', name: 'shiro-spring', version: '1.4.0' compile group: 'org.apache.shiro', name: 'shiro-spring', version: '1.4.0'

View File

@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.5-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-4.5-bin.zip

View File

@ -605,15 +605,15 @@ public class ProjectController extends BaseController {
public ResponseMsg budgetEditSaveBudgetPayPlan(@RequestBody String body) { public ResponseMsg budgetEditSaveBudgetPayPlan(@RequestBody String body) {
JSONObject jsonObject = JSON.parseObject(body); JSONObject jsonObject = JSON.parseObject(body);
JSONArray details = jsonObject.getJSONArray(DETAILS); JSONArray details = jsonObject.getJSONArray(DETAILS);
List<ProjectBudgetPayPlan> detailList = new ArrayList<>(details.size()); List<ProjectBudgetPayPlanTemp> detailList = new ArrayList<>(details.size());
for (int i = 0; i < details.size(); i++) { for (int i = 0; i < details.size(); i++) {
ProjectBudgetPayPlan detail = details.getObject(i, ProjectBudgetPayPlan.class); ProjectBudgetPayPlanTemp detail = details.getObject(i, ProjectBudgetPayPlanTemp.class);
detailList.add(detail); detailList.add(detail);
} }
Project project = projectService.getProject(jsonObject.getInteger(PROJECT_ID)); Project project = projectService.getProject(jsonObject.getInteger(PROJECT_ID));
projectBudgetService.saveBudgetPayPlan(project, detailList); projectBudgetService.saveBudgetPayPlanTemp(project, detailList);
return ResponseMsg.buildSuccessMsg("成功"); return ResponseMsg.buildSuccessMsg("成功");
} }
@ -1132,7 +1132,7 @@ public class ProjectController extends BaseController {
@RequestMapping("/incomeTemplate") @RequestMapping("/incomeTemplate")
public void incomeTemplate(HttpServletResponse response) throws Exception{ public void incomeTemplate(HttpServletResponse response) throws Exception{
String[] headers = new String[]{"类别", "名称", "规格类型", "参数", "单位", "数量", "单价", "税率(%)"}; String[] headers = new String[]{"类别", "产品大类", "税率(%)","含税总金额(元)"};
downloadHeader(response , Utils.generateExcelName("收入明细表批量导入模板")); downloadHeader(response , Utils.generateExcelName("收入明细表批量导入模板"));
ExportUtils exportUtils = new ExportUtils(headers); ExportUtils exportUtils = new ExportUtils(headers);
exportUtils.write(response.getOutputStream()); exportUtils.write(response.getOutputStream());
@ -1167,7 +1167,7 @@ public class ProjectController extends BaseController {
@RequestMapping("/costTemplate") @RequestMapping("/costTemplate")
public void costTemplate(HttpServletResponse response) throws Exception{ public void costTemplate(HttpServletResponse response) throws Exception{
String[] headers = new String[]{"费用项目", "采购类别", "名称", "单位", "数量", "单价", "税率(%)", "签约方", "是否垫资", "预估垫资金额(元)", "支出时间", "支出金额(元)", "付款方式", "备注"}; String[] headers = new String[]{"采购成本项目", "产品大类", "税率(%)","含税总金额(元)" ,"供应商", "备注"};
downloadHeader(response , Utils.generateExcelName("采购成本明细表批量导入模板")); downloadHeader(response , Utils.generateExcelName("采购成本明细表批量导入模板"));
ExportUtils exportUtils = new ExportUtils(headers); ExportUtils exportUtils = new ExportUtils(headers);
exportUtils.write(response.getOutputStream()); exportUtils.write(response.getOutputStream());
@ -1254,8 +1254,8 @@ public class ProjectController extends BaseController {
//收入明细 //收入明细
List<ProjectBudgetIncomeDetail> budgetIncomeDetail = projectBudgetService.getBudgetIncomeDetail(project); List<ProjectBudgetIncomeDetail> budgetIncomeDetail = projectBudgetService.getBudgetIncomeDetail(project);
BigDecimal incomeTotalAmount = projectBudgetService.getBudgetIncomeAmount(project); BigDecimal incomeTotalAmount = projectBudgetService.getBudgetIncomeAmount(project);
String[] headers2 = {"序号", "类别", "名称", "规格类型", "参数", "单位", "数量", "单价", "税率(%)", "含税总金额(元)", "不含税金额(元)", "税金(元)"}; String[] headers2 = {"序号", "类别", "产品大类", "税率(%)", "含税总金额(元)", "不含税金额(元)", "税金(元)"};
String[] columns2 = {"tempId", "type", "name", "spec", "param", "unit", "amount", "price", "taxRate", "totalTaxInclude", "totalTaxExclude", "totalTax"}; String[] columns2 = {"tempId", "type", "name", "taxRate", "totalTaxInclude", "totalTaxExclude", "totalTax"};
exportExcelUtils.exportIncomeDetailExcel(headers2, columns2, project, budgetBean, budgetIncomeDetail, incomeTotalAmount, "yyyy-MM-dd", 0, "收入明细表", outputStream); exportExcelUtils.exportIncomeDetailExcel(headers2, columns2, project, budgetBean, budgetIncomeDetail, incomeTotalAmount, "yyyy-MM-dd", 0, "收入明细表", outputStream);
exportExcelUtils.end(outputStream); exportExcelUtils.end(outputStream);
@ -1302,8 +1302,8 @@ public class ProjectController extends BaseController {
BigDecimal costPayAmountTotal = projectBudgetService.getBudgetCostPayAmountTotal(project); BigDecimal costPayAmountTotal = projectBudgetService.getBudgetCostPayAmountTotal(project);
List<ProcurementType> procurementTypes = procurementTypeService.allProcurementTypeList(); List<ProcurementType> procurementTypes = procurementTypeService.allProcurementTypeList();
Map<Integer, String> procurementMap = procurementTypes.stream().collect(Collectors.toMap(ProcurementType::getId, ProcurementType::getName)); Map<Integer, String> procurementMap = procurementTypes.stream().collect(Collectors.toMap(ProcurementType::getId, ProcurementType::getName));
String[] headers3 = {"序号", "费用项目", "采购类别", "名称", "单位", "数量", "单价", "税率(%)", "含税总金额(元)", "不含税金额(元)", "税金(元)", "签约方", "是否垫资", "预估垫资金额(元)", "支出时间", "支出金额(元)", "付款方式", "备注"}; String[] headers3 = {"序号", "采购成本项目", "产品大类", "税率(%)", "含税总金额(元)", "不含税金额(元)", "税金(元)", "供应商", "备注"};
String[] columns3 = {"tempId", "type", "category", "name", "unit", "amount", "price", "taxRate", "totalTaxInclude", "totalTaxExclude", "totalTax", "contractParty", "isUnderwritten", "underwrittenAmount", "payTime", "payAmount", "payWay", "remark"}; String[] columns3 = {"tempId", "type", "category", "taxRate", "totalTaxInclude", "totalTaxExclude", "totalTax", "contractParty", "remark"};
exportExcelUtils.exportCostDetailExcel(headers3, columns3, project, budgetBean, budgetCostDetail, costTotalAmount, costUnderwrittenAmountTotal, costPayAmountTotal, procurementMap, "yyyy-MM-dd", 0, "采购成本明细表", outputStream); exportExcelUtils.exportCostDetailExcel(headers3, columns3, project, budgetBean, budgetCostDetail, costTotalAmount, costUnderwrittenAmountTotal, costPayAmountTotal, procurementMap, "yyyy-MM-dd", 0, "采购成本明细表", outputStream);
exportExcelUtils.end(outputStream); exportExcelUtils.end(outputStream);
@ -1325,8 +1325,8 @@ public class ProjectController extends BaseController {
List<ProjectBudgetCostProjectManageDetail> budgetCostProjectManageDetail = projectBudgetService.getBudgetCostProjectManageDetail(project); List<ProjectBudgetCostProjectManageDetail> budgetCostProjectManageDetail = projectBudgetService.getBudgetCostProjectManageDetail(project);
BigDecimal costProjectManageTotalAmount = projectBudgetService.getBudgetCostProjectManageAmount(project); BigDecimal costProjectManageTotalAmount = projectBudgetService.getBudgetCostProjectManageAmount(project);
BigDecimal managePayAmountTotal = projectBudgetService.getBudgetCostProjectManagePayAmount(project); BigDecimal managePayAmountTotal = projectBudgetService.getBudgetCostProjectManagePayAmount(project);
String[] headers4 = {"序号", "财务费用类别", "业务项目", "项目明细", "单位", "数量", "单价", "总金额(元)", "支出时间", "支出金额(元)", "预估计算方法", "预估依据", "备注"}; String[] headers4 = {"序号", "费用类别", "业务项目", "项目明细", "总金额(元)", "支出时间", "支出金额(元)", "预估计算方法", "预估依据", "备注"};
String[] columns4 = {"tempId", "type", "name", "detail", "unit", "amount", "price", "total", "payTime", "payAmount", "predictMethod", "predictWhy", "remark"}; String[] columns4 = {"tempId", "type", "name", "detail", "total", "payTime", "payAmount", "predictMethod", "predictWhy", "remark"};
exportExcelUtils.exportCostManageDetailExcel(headers4, columns4, project, budgetBean, budgetCostProjectManageDetail, costProjectManageTotalAmount, managePayAmountTotal, "yyyy-MM-dd", 0, "项目管理成本表", outputStream); exportExcelUtils.exportCostManageDetailExcel(headers4, columns4, project, budgetBean, budgetCostProjectManageDetail, costProjectManageTotalAmount, managePayAmountTotal, "yyyy-MM-dd", 0, "项目管理成本表", outputStream);
exportExcelUtils.end(outputStream); exportExcelUtils.end(outputStream);
@ -1347,7 +1347,7 @@ public class ProjectController extends BaseController {
//资金计划明细 //资金计划明细
List<ProjectBudgetPlanDetail> projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project); List<ProjectBudgetPlanDetail> projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project);
ProjectBudgetPlanDetail projectBudgetPlanDetailTotal = projectBudgetService.getProjectBudgetPlanDetailTotal(project, projectBudgetPlanDetails); ProjectBudgetPlanDetail projectBudgetPlanDetailTotal = projectBudgetService.getProjectBudgetPlanDetailTotal(project, projectBudgetPlanDetails);
String[] headers5 = {"月份", "设备支出", "工程支出(含服务+施工+其他)", "经营性开支", "保证金支出", "支出合计", "销售收款", "保证金收款", "收款合计", "资金余额", "资金利息", "垫资计划", "还款计划"}; String[] headers5 = {"月份", "设备支出", "工程支出(含服务+施工+其他)", "项目管理费用付款", "保证金付款", "付款合计", "销售收款", "保证金收款", "收款合计", "资金余额", "资金利息", "垫资计划", "还款计划"};
String[] row5 = {"month", "deviceCost", "engineerCost", "projectManageCost", "earnestMoneyCost", "totalCost", "saleIncome", "earnestMoneyIncome", "totalIncome", "fundBalance", "capitalInterest", "underwrittenPlan", "repaymentPlan"}; String[] row5 = {"month", "deviceCost", "engineerCost", "projectManageCost", "earnestMoneyCost", "totalCost", "saleIncome", "earnestMoneyIncome", "totalIncome", "fundBalance", "capitalInterest", "underwrittenPlan", "repaymentPlan"};
exportExcelUtils.exportPlanDetailExcel(headers5, row5, project, budgetBean, projectBudgetPlanDetails, projectBudgetPlanDetailTotal, "yyyy-MM-dd", 0, "资金计划表", outputStream); exportExcelUtils.exportPlanDetailExcel(headers5, row5, project, budgetBean, projectBudgetPlanDetails, projectBudgetPlanDetailTotal, "yyyy-MM-dd", 0, "资金计划表", outputStream);

View File

@ -0,0 +1,20 @@
package cn.palmte.work.model;
import org.springframework.beans.BeanUtils;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
*
*/
@Entity
@Table(name = "project_budget_pay_plan_temp")
public class ProjectBudgetPayPlanTemp extends ProjectBudgetPayPlanBase {
public ProjectBudgetPayPlan toProjectBudgetPayPlanDetail() {
ProjectBudgetPayPlan projectBudgetPayPlan = new ProjectBudgetPayPlan();
BeanUtils.copyProperties(this, projectBudgetPayPlan);
projectBudgetPayPlan.setId(null);
return projectBudgetPayPlan;
}
}

View File

@ -0,0 +1,10 @@
package cn.palmte.work.model;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface ProjectBudgetPayPlanTempRepository extends JpaRepository<ProjectBudgetPayPlanTemp,Integer> {
List<ProjectBudgetPayPlanTemp> findAllByProjectIdEquals(int id);
}

View File

@ -13,7 +13,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import top.jfunc.common.utils.CollectionUtil; import top.jfunc.common.utils.CollectionUtil;
import java.lang.reflect.InvocationTargetException;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
@ -41,6 +40,8 @@ public class ProjectBudgetService {
@Autowired @Autowired
private ProjectBudgetPayPlanRepository projectBudgetPayPlanRepository; private ProjectBudgetPayPlanRepository projectBudgetPayPlanRepository;
@Autowired @Autowired
private ProjectBudgetPayPlanTempRepository projectBudgetPayPlanTempRepository;
@Autowired
private ProjectBudgetIncomePlanDetailTempRepository projectBudgetIncomePlanDetailTempRepository; private ProjectBudgetIncomePlanDetailTempRepository projectBudgetIncomePlanDetailTempRepository;
@Autowired @Autowired
private ProjectBudgetCostDetailRepository projectBudgetCostDetailRepository; private ProjectBudgetCostDetailRepository projectBudgetCostDetailRepository;
@ -659,21 +660,7 @@ public class ProjectBudgetService {
* *
*/ */
public ProjectBudgetPlanDetail getProjectBudgetPlanDetailTotal(Project project, List<ProjectBudgetPlanDetail> projectBudgetPlanDetails) { public ProjectBudgetPlanDetail getProjectBudgetPlanDetailTotal(Project project, List<ProjectBudgetPlanDetail> projectBudgetPlanDetails) {
List<ProjectBudgetPayPlan> budgetPayPlan = projectBudgetService.getBudgetPayPlan(project);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");
Map<String, Map<String, BigDecimal>> monthlyProjectPaymentSum = budgetPayPlan.stream()
.collect(Collectors.groupingBy(
plan -> formatter.format(plan.getPayTime()), // 将 Date 转换为 yyyy-MM 格式的字符串
Collectors.groupingBy(
ProjectBudgetPayPlan::getPayProject,
Collectors.mapping(
ProjectBudgetPayPlan::getPayAmount,
Collectors.reducing(BigDecimal.ZERO, BigDecimal::add)
)
)
));
BigDecimal projectManageCost = new BigDecimal(0); BigDecimal projectManageCost = new BigDecimal(0);
BigDecimal earnestMoneyCost = new BigDecimal(0); BigDecimal earnestMoneyCost = new BigDecimal(0);
BigDecimal deviceCost = new BigDecimal(0); BigDecimal deviceCost = new BigDecimal(0);
@ -693,26 +680,17 @@ public class ProjectBudgetService {
if(CollectionUtil.isNotEmpty(projectBudgetPlanDetails)){ if(CollectionUtil.isNotEmpty(projectBudgetPlanDetails)){
for (ProjectBudgetPlanDetail budgetPlan : projectBudgetPlanDetails) { for (ProjectBudgetPlanDetail budgetPlan : projectBudgetPlanDetails) {
String month = budgetPlan.getMonth();
Map<String, BigDecimal> projectPayments = monthlyProjectPaymentSum.getOrDefault(month, Collections.emptyMap());
deviceCost=deviceCost.add(budgetPlan.getDeviceCost()); deviceCost=deviceCost.add(budgetPlan.getDeviceCost());
projectManageCost = projectManageCost.add(budgetPlan.getProjectManageCost()); projectManageCost = projectManageCost.add(budgetPlan.getProjectManageCost());
earnestMoneyCost = earnestMoneyCost.add(budgetPlan.getEarnestMoneyCost()); earnestMoneyCost = earnestMoneyCost.add(budgetPlan.getEarnestMoneyCost());
if (budgetPlan.getEngineerCost()!=null) { if (budgetPlan.getEngineerCost()!=null) {
engineerCost = engineerCost.add(budgetPlan.getEngineerCost()); engineerCost = engineerCost.add(budgetPlan.getEngineerCost());
} }
BigDecimal projectCostTemp = projectPayments.getOrDefault("工程成本", BigDecimal.ZERO);
budgetPlan.setProjectCost(projectCostTemp);
projectCost = projectCost.add(projectCostTemp);
BigDecimal serviceCostTemp = projectPayments.getOrDefault("服务成本", BigDecimal.ZERO); projectCost = projectCost.add(budgetPlan.getProjectCost());
budgetPlan.setServiceCost(serviceCostTemp); serviceCost = serviceCost.add(budgetPlan.getServiceCost());
serviceCost = serviceCost.add(serviceCostTemp); otherCost = otherCost.add(budgetPlan.getOtherCost());
BigDecimal otherCostTemp = projectPayments.getOrDefault("其他成本", BigDecimal.ZERO);
budgetPlan.setOtherCost(otherCostTemp);
otherCost = otherCost.add(otherCostTemp);
totalCost = totalCost.add(budgetPlan.getTotalCost()); totalCost = totalCost.add(budgetPlan.getTotalCost());
saleIncome = saleIncome.add(budgetPlan.getSaleIncome()); saleIncome = saleIncome.add(budgetPlan.getSaleIncome());
earnestMoneyIncome = earnestMoneyIncome.add(budgetPlan.getEarnestMoneyIncome()); earnestMoneyIncome = earnestMoneyIncome.add(budgetPlan.getEarnestMoneyIncome());
@ -758,6 +736,21 @@ public class ProjectBudgetService {
List<ProjectBudgetCostProjectManageDetail> budgetCostProjectManageDetail, List<ProjectBudgetCostProjectManageDetail> budgetCostProjectManageDetail,
List<ProjectBudgetPlanDetail> projectBudgetPlanDetails) { List<ProjectBudgetPlanDetail> projectBudgetPlanDetails) {
List<ProjectBudgetPayPlan> budgetPayPlan = projectBudgetService.getBudgetPayPlan(project);
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");
Map<String, Map<String, BigDecimal>> monthlyProjectPaymentSum = budgetPayPlan.stream()
.collect(Collectors.groupingBy(
plan -> formatter.format(plan.getPayTime()), // 将 Date 转换为 yyyy-MM 格式的字符串
Collectors.groupingBy(
ProjectBudgetPayPlan::getPayProject,
Collectors.mapping(
ProjectBudgetPayPlan::getPayAmount,
Collectors.reducing(BigDecimal.ZERO, BigDecimal::add)
)
)
));
BigDecimal deviceCost = calDeviceCost(budgetCostDetail); BigDecimal deviceCost = calDeviceCost(budgetCostDetail);
BigDecimal engineerCost = calEngineerCost(budgetCostDetail); BigDecimal engineerCost = calEngineerCost(budgetCostDetail);
BigDecimal projectManageCost = calProjectManageCost(budgetCostProjectManageDetail); BigDecimal projectManageCost = calProjectManageCost(budgetCostProjectManageDetail);
@ -769,9 +762,25 @@ public class ProjectBudgetService {
BigDecimal capitalInterest = new BigDecimal(0); BigDecimal capitalInterest = new BigDecimal(0);
BigDecimal underwrittenPlan = new BigDecimal(0); BigDecimal underwrittenPlan = new BigDecimal(0);
BigDecimal repaymentPlan = new BigDecimal(0); BigDecimal repaymentPlan = new BigDecimal(0);
BigDecimal projectCost = new BigDecimal(0);
BigDecimal serviceCost = new BigDecimal(0);
BigDecimal otherCost = new BigDecimal(0);
if(CollectionUtil.isNotEmpty(projectBudgetPlanDetails)){ if(CollectionUtil.isNotEmpty(projectBudgetPlanDetails)){
for (ProjectBudgetPlanDetail budgetPlan : projectBudgetPlanDetails) { for (ProjectBudgetPlanDetail budgetPlan : projectBudgetPlanDetails) {
String month = budgetPlan.getMonth();
Map<String, BigDecimal> projectPayments = monthlyProjectPaymentSum.getOrDefault(month, Collections.emptyMap());
BigDecimal projectCostTemp = projectPayments.getOrDefault("2", BigDecimal.ZERO);
budgetPlan.setProjectCost(projectCostTemp);
projectCost = projectCost.add(projectCostTemp);
BigDecimal serviceCostTemp = projectPayments.getOrDefault("3", BigDecimal.ZERO);
budgetPlan.setServiceCost(serviceCostTemp);
serviceCost = serviceCost.add(serviceCostTemp);
BigDecimal otherCostTemp = projectPayments.getOrDefault("4", BigDecimal.ZERO);
budgetPlan.setOtherCost(otherCostTemp);
otherCost=otherCost.add(otherCostTemp);
earnestMoneyCost = earnestMoneyCost.add(budgetPlan.getEarnestMoneyCost()); earnestMoneyCost = earnestMoneyCost.add(budgetPlan.getEarnestMoneyCost());
earnestMoneyIncome = earnestMoneyIncome.add(budgetPlan.getEarnestMoneyIncome()); earnestMoneyIncome = earnestMoneyIncome.add(budgetPlan.getEarnestMoneyIncome());
capitalInterest = capitalInterest.add(budgetPlan.getCapitalInterest()); capitalInterest = capitalInterest.add(budgetPlan.getCapitalInterest());
@ -797,7 +806,9 @@ public class ProjectBudgetService {
projectBudgetPlanDetail.setEarnestMoneyIncome(earnestMoneyIncome); projectBudgetPlanDetail.setEarnestMoneyIncome(earnestMoneyIncome);
projectBudgetPlanDetail.setTotalIncome(totalIncome); projectBudgetPlanDetail.setTotalIncome(totalIncome);
projectBudgetPlanDetail.setFundBalance(fundBalance); projectBudgetPlanDetail.setFundBalance(fundBalance);
projectBudgetPlanDetail.setProjectCost(projectCost);
projectBudgetPlanDetail.setServiceCost(serviceCost); // 设置服务成本
projectBudgetPlanDetail.setOtherCost(otherCost); // 设置其他成本
projectBudgetPlanDetail.setCapitalInterest(capitalInterest); projectBudgetPlanDetail.setCapitalInterest(capitalInterest);
projectBudgetPlanDetail.setUnderwrittenPlan(underwrittenPlan); projectBudgetPlanDetail.setUnderwrittenPlan(underwrittenPlan);
projectBudgetPlanDetail.setRepaymentPlan(repaymentPlan); projectBudgetPlanDetail.setRepaymentPlan(repaymentPlan);
@ -1105,6 +1116,14 @@ public class ProjectBudgetService {
.collect(Collectors.toList()); .collect(Collectors.toList());
projectBudgetCostDetailRepository.save(costDetails); projectBudgetCostDetailRepository.save(costDetails);
} }
//付款计划表
List<ProjectBudgetPayPlanTemp> projectBudgetPayPlanTemps = projectBudgetPayPlanTempRepository.findAllByProjectIdEquals(p.getId());
if(CollectionUtil.isNotEmpty(projectBudgetPayPlanTemps)){
List<ProjectBudgetPayPlan> costDetails = projectBudgetPayPlanTemps.stream()
.map(ProjectBudgetPayPlanTemp::toProjectBudgetPayPlanDetail)
.collect(Collectors.toList());
projectBudgetPayPlanRepository.save(costDetails);
}
//项目管理明细 //项目管理明细
List<ProjectBudgetCostProjectManageDetailTemp> projectBudgetCostProjectManageDetailTemps = projectBudgetCostProjectManageDetailTempRepository.findAllByProjectIdEquals(p.getId()); List<ProjectBudgetCostProjectManageDetailTemp> projectBudgetCostProjectManageDetailTemps = projectBudgetCostProjectManageDetailTempRepository.findAllByProjectIdEquals(p.getId());
if(CollectionUtil.isNotEmpty(projectBudgetCostProjectManageDetailTemps)){ if(CollectionUtil.isNotEmpty(projectBudgetCostProjectManageDetailTemps)){
@ -1134,6 +1153,15 @@ public class ProjectBudgetService {
clearBudgetCostProjectManageDetail(p); clearBudgetCostProjectManageDetail(p);
//资金计划明细 //资金计划明细
clearBudgetPlanDetail(p); clearBudgetPlanDetail(p);
//付款计划表
clearBudgetPayPlan(p);
}
private void clearBudgetPayPlan(Project p) {
List<ProjectBudgetPayPlan> costDetails = projectBudgetPayPlanRepository.findAllByProjectIdEquals(p.getId());
if(CollectionUtil.isNotEmpty(costDetails)){
projectBudgetPayPlanRepository.deleteInBatch(costDetails);
}
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@ -1183,36 +1211,22 @@ public class ProjectBudgetService {
} else { } else {
throw new Exception("该类别不存在"); throw new Exception("该类别不存在");
} }
key = "名称"; key = "产品大类";
o1 = m.get(key); o1 = m.get(key);
temp.setName((String) o1); temp.setName((String) o1);
key = "规格类型";
o1 = m.get(key);
temp.setSpec((String) o1);
key = "参数";
o1 = m.get(key);
temp.setParam((String) o1);
key = "单位";
o1 = m.get(key);
temp.setUnit((String) o1);
try { try {
key = "数量";
o1 = m.get(key);
if (o1 != null) {
temp.setAmount(new BigDecimal((String) o1));
}
key = "单价";
o1 = m.get(key);
if (o1 != null) {
temp.setPrice(new BigDecimal((String) o1));
}
key = "税率(%)"; key = "税率(%)";
o1 = m.get(key); o1 = m.get(key);
if (o1 != null) { if (o1 != null) {
temp.setTaxRate(new BigDecimal((String) o1)); temp.setTaxRate(new BigDecimal((String) o1));
} }
key = "含税总金额(元)";
o1 = m.get(key);
if (o1 != null) {
temp.setTotalTaxInclude(new BigDecimal((String) o1));
}
} catch (Exception e) { } catch (Exception e) {
throw new Exception("数量、单价、税率需为数字"); throw new Exception("税率、含税总金额需为数字");
} }
incomeDetailTempList.add(temp); incomeDetailTempList.add(temp);
} }
@ -1252,7 +1266,7 @@ public class ProjectBudgetService {
String key; String key;
Object o1; Object o1;
temp.setProjectId(id); temp.setProjectId(id);
key = "费用项目"; key = "采购成本项目";
o1 = m.get(key); o1 = m.get(key);
String type = (String) o1; String type = (String) o1;
if ("设备".equals(type)) { if ("设备".equals(type)) {
@ -1266,75 +1280,36 @@ public class ProjectBudgetService {
} else { } else {
throw new Exception("该费用项目不存在"); throw new Exception("该费用项目不存在");
} }
key = "采购类别"; key = "产品大类";
o1 = m.get(key); o1 = m.get(key);
String category = (String) o1; String category = (String) o1;
ProcurementType procurementType = procurementTypeRepository.findByName(category); ProcurementType procurementType = procurementTypeRepository.findByName(category);
if (procurementType != null && procurementType.getType() == temp.getType()) { if (procurementType != null && procurementType.getType() == temp.getType()) {
temp.setCategory(procurementType.getId()); temp.setCategory(procurementType.getId());
} else { } else {
throw new Exception("该采购类别不存在或者与费用项目不匹配"); throw new Exception("该采购类别不存在或者与采购成本项目不匹配");
} }
key = "名称";
o1 = m.get(key); key = "供应商";
temp.setName((String) o1);
key = "单位";
o1 = m.get(key);
temp.setUnit((String) o1);
key = "签约方";
o1 = m.get(key); o1 = m.get(key);
temp.setContractParty((String) o1); temp.setContractParty((String) o1);
key = "是否垫资";
o1 = m.get(key);
String isUnderwritten = (String) o1;
if ("是".equals(isUnderwritten)) {
temp.setIsUnderwritten(1);
} else if ("否".equals(isUnderwritten)) {
temp.setIsUnderwritten(2);
} else {
temp.setIsUnderwritten(0);
}
try { try {
key = "数量";
o1 = m.get(key);
if (o1 != null) {
temp.setAmount(new BigDecimal((String) o1));
}
key = "单价";
o1 = m.get(key);
if (o1 != null) {
temp.setPrice(new BigDecimal((String) o1));
}
key = "税率(%)"; key = "税率(%)";
o1 = m.get(key); o1 = m.get(key);
if (o1 != null) { if (o1 != null) {
temp.setTaxRate(new BigDecimal((String) o1)); temp.setTaxRate(new BigDecimal((String) o1));
} }
key = "预估垫资金额(元)"; key = "含税总金额(元)";
o1 = m.get(key); o1 = m.get(key);
if (o1 != null) { if (o1 != null) {
temp.setUnderwrittenAmount(new BigDecimal((String) o1)); temp.setTotalTaxInclude(new BigDecimal((String) o1));
}
key = "支出金额(元)";
o1 = m.get(key);
if (o1 != null) {
temp.setPayAmount(new BigDecimal((String) o1));
} }
} catch (Exception e) { } catch (Exception e) {
throw new Exception("数量、单价、税率、预估垫资金额和支出金额需为数字"); throw new Exception("税率、含税总金额(元)需为数字");
} }
try {
key = "支出时间";
o1 = m.get(key);
if (o1 != null) {
temp.setPayTime(DateKit.getDate((String) o1, DateKit.DATE_FORMAT));
}
} catch (Exception e) {
throw new Exception("支出时间需为时间格式yyyy-MM-dd");
}
key = "付款方式";
o1 = m.get(key);
temp.setPayWay((String) o1);
key = "备注"; key = "备注";
o1 = m.get(key); o1 = m.get(key);
temp.setRemark((String) o1); temp.setRemark((String) o1);
@ -1345,13 +1320,21 @@ public class ProjectBudgetService {
return projectBudgetPayPlanRepository.findAllByProjectIdEquals(project.getId()); return projectBudgetPayPlanRepository.findAllByProjectIdEquals(project.getId());
} }
public void saveBudgetPayPlan(Project project, List<ProjectBudgetPayPlan> detailList) { public void saveBudgetPayPlanTemp(Project project, List<ProjectBudgetPayPlanTemp> detailList) {
clearBudgetPauPlanTemp(project);
if(CollectionUtil.isNotEmpty(detailList)){ if(CollectionUtil.isNotEmpty(detailList)){
for (ProjectBudgetPayPlan temp : detailList) { for (ProjectBudgetPayPlanTemp temp : detailList) {
temp.setProjectId(project.getId()); temp.setProjectId(project.getId());
// temp.setUnderwrittenTaxRate(project.getUnderwrittenTaxRate()); // temp.setUnderwrittenTaxRate(project.getUnderwrittenTaxRate());
} }
projectBudgetPayPlanRepository.save(detailList); projectBudgetPayPlanTempRepository.save(detailList);
}
}
private void clearBudgetPauPlanTemp(Project project) {
List<ProjectBudgetPayPlanTemp> allByProjectIdEquals = projectBudgetPayPlanTempRepository.findAllByProjectIdEquals(project.getId());
if(CollectionUtil.isNotEmpty(allByProjectIdEquals)){
projectBudgetPayPlanTempRepository.deleteInBatch(allByProjectIdEquals);
} }
} }
} }

View File

@ -7,18 +7,14 @@ import cn.palmte.work.utils.ObjectKit;
import cn.palmte.work.utils.Utils; import cn.palmte.work.utils.Utils;
import org.apache.poi.hssf.util.HSSFColor; import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.*; import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.streaming.SXSSFSheet;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import top.jfunc.common.db.bean.Record;
import javax.servlet.ServletOutputStream; import javax.servlet.ServletOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.OutputStream; import java.io.OutputStream;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -196,7 +192,7 @@ public class ExportExcelUtils {
index = index + 3; index = index + 3;
// 成本 // 成本
Row costRow = sheet.createRow(index++); Row costRow = sheet.createRow(index++);
createTitleRow(costRow, "成本"); createTitleRow(costRow, "采购成本");
index = createCostRow(budgetBean, sheet, index, otherName, costTaxRates); index = createCostRow(budgetBean, sheet, index, otherName, costTaxRates);
index = index + 3; index = index + 3;
// 管理 // 管理
@ -363,7 +359,7 @@ public class ExportExcelUtils {
createEngineerCostRow(budgetBean, sheet, index++); createEngineerCostRow(budgetBean, sheet, index++);
createServiceCostRow(budgetBean, sheet, index++); createServiceCostRow(budgetBean, sheet, index++);
createOtherCostRow(budgetBean, sheet, index++); createOtherCostRow(budgetBean, sheet, index++);
createManageCostRow(budgetBean, sheet, index++); // createManageCostRow(budgetBean, sheet, index++);
createOtherRow(budgetBean, sheet, index++, otherName); createOtherRow(budgetBean, sheet, index++, otherName);
createTotalCostRow(budgetBean, sheet, index++); createTotalCostRow(budgetBean, sheet, index++);
Row row = sheet.createRow(index++); Row row = sheet.createRow(index++);
@ -443,7 +439,7 @@ public class ExportExcelUtils {
Cell thirdCell = row.createCell(2); Cell thirdCell = row.createCell(2);
thirdCell.setCellStyle(style2); thirdCell.setCellStyle(style2);
thirdCell.setCellType(CellType.STRING); thirdCell.setCellType(CellType.STRING);
thirdCell.setCellValue("工"); thirdCell.setCellValue("");
Cell fourthCell = row.createCell(3); Cell fourthCell = row.createCell(3);
fourthCell.setCellStyle(style2); fourthCell.setCellStyle(style2);
fourthCell.setCellType(CellType.NUMERIC); fourthCell.setCellType(CellType.NUMERIC);
@ -523,23 +519,11 @@ public class ExportExcelUtils {
Cell secondCell = row.createCell(1); Cell secondCell = row.createCell(1);
secondCell.setCellStyle(style2); secondCell.setCellStyle(style2);
secondCell.setCellType(CellType.STRING); secondCell.setCellType(CellType.STRING);
secondCell.setCellValue("项目管理成本"); secondCell.setCellValue("项目管理费用");
Cell thirdCell = row.createCell(2); Cell thirdCell = row.createCell(2);
thirdCell.setCellStyle(style2); thirdCell.setCellStyle(style2);
thirdCell.setCellType(CellType.STRING); thirdCell.setCellType(CellType.STRING);
thirdCell.setCellValue("项目管理成本"); thirdCell.setCellValue(Utils.format(budgetBean.getCostProjectManageTaxExclude()));
Cell fourthCell = row.createCell(3);
fourthCell.setCellStyle(style2);
fourthCell.setCellType(CellType.NUMERIC);
fourthCell.setCellValue(Utils.format(budgetBean.getCostProjectManageTaxInclude()));
Cell fifthCell = row.createCell(4);
fifthCell.setCellStyle(style2);
fifthCell.setCellType(CellType.NUMERIC);
fifthCell.setCellValue(Utils.format(budgetBean.getCostProjectManageTaxExclude()));
Cell sixthCell = row.createCell(5);
sixthCell.setCellStyle(style2);
sixthCell.setCellType(CellType.STRING);
sixthCell.setCellValue("财务计取以不含税方式核算");
} }
private void createOtherRow(BudgetBean budgetBean, XSSFSheet sheet, int index, String otherName) { private void createOtherRow(BudgetBean budgetBean, XSSFSheet sheet, int index, String otherName) {
@ -598,10 +582,28 @@ public class ExportExcelUtils {
sixthCell.setCellValue(Utils.format(budgetBean.getCostTotalTax())); sixthCell.setCellValue(Utils.format(budgetBean.getCostTotalTax()));
} }
private void createManageTotalCostRow(BudgetBean budgetBean, XSSFSheet sheet, int index) {
Row row = sheet.createRow(index);
Cell firstCell = row.createCell(0);
firstCell.setCellStyle(style2);
firstCell.setCellType(CellType.STRING);
firstCell.setCellValue("合计");
Cell secondCell = row.createCell(1);
secondCell.setCellStyle(style2);
secondCell.setCellType(CellType.STRING);
secondCell.setCellValue("");
Cell thirdCell = row.createCell(2);
thirdCell.setCellStyle(style2);
thirdCell.setCellType(CellType.STRING);
thirdCell.setCellValue(Utils.format(budgetBean.getCostProjectManageTaxExclude().add(budgetBean.getCostExpropriationTaxExclude())));
}
private int createManageRow(BudgetBean budgetBean, XSSFSheet sheet, int index) { private int createManageRow(BudgetBean budgetBean, XSSFSheet sheet, int index) {
createSubTitleManageRow(sheet, index++); createSubTitleManageRow(sheet, index++);
createExpropriationRow(budgetBean, sheet, index++); createExpropriationRow(budgetBean, sheet, index++);
createCompanyManageRow(budgetBean, sheet, index++); createManageCostRow(budgetBean, sheet, index++);
createManageTotalCostRow(budgetBean, sheet, index++);
// createCompanyManageRow(budgetBean, sheet, index++);
Row row = sheet.createRow(index++); Row row = sheet.createRow(index++);
Cell remarkCell = row.createCell(0); Cell remarkCell = row.createCell(0);
remarkCell.setCellStyle(style); remarkCell.setCellStyle(style);
@ -663,7 +665,7 @@ public class ExportExcelUtils {
createGrossProfitARow(budgetBean, sheet, index++); createGrossProfitARow(budgetBean, sheet, index++);
createGrossProfitRow(budgetBean, sheet, index++); createGrossProfitRow(budgetBean, sheet, index++);
// createGrossProfitMarginRow(budgetBean, sheet, index++); // createGrossProfitMarginRow(budgetBean, sheet, index++);
createContributionProfitRow(budgetBean, sheet, index++); // createContributionProfitRow(budgetBean, sheet, index++);
// createContributionProfitRateRow(budgetBean, sheet, index++); // createContributionProfitRateRow(budgetBean, sheet, index++);
return index; return index;
} }
@ -706,7 +708,7 @@ public class ExportExcelUtils {
Cell fourthCell = row.createCell(3); Cell fourthCell = row.createCell(3);
fourthCell.setCellStyle(style2); fourthCell.setCellStyle(style2);
fourthCell.setCellType(CellType.STRING); fourthCell.setCellType(CellType.STRING);
fourthCell.setCellValue("毛利=收入总计(不含税)-成本总计(不含税)"); fourthCell.setCellValue("项目毛利A=收入合计(不含税)-采购成本合计(不含税)");
} }
private void createGrossProfitRow(BudgetBean budgetBean, XSSFSheet sheet, int index) { private void createGrossProfitRow(BudgetBean budgetBean, XSSFSheet sheet, int index) {
@ -714,7 +716,7 @@ public class ExportExcelUtils {
Cell firstCell = row.createCell(0); Cell firstCell = row.createCell(0);
firstCell.setCellStyle(style2); firstCell.setCellStyle(style2);
firstCell.setCellType(CellType.STRING); firstCell.setCellType(CellType.STRING);
firstCell.setCellValue("项目毛利(元)"); firstCell.setCellValue("项目毛利B(元)");
Cell secondCell = row.createCell(1); Cell secondCell = row.createCell(1);
secondCell.setCellStyle(style2); secondCell.setCellStyle(style2);
secondCell.setCellType(CellType.NUMERIC); secondCell.setCellType(CellType.NUMERIC);
@ -722,11 +724,11 @@ public class ExportExcelUtils {
Cell thirdCell = row.createCell(2); Cell thirdCell = row.createCell(2);
thirdCell.setCellStyle(style2); thirdCell.setCellStyle(style2);
thirdCell.setCellType(CellType.NUMERIC); thirdCell.setCellType(CellType.NUMERIC);
thirdCell.setCellValue(Utils.format(budgetBean.getProjectGrossProfit())); thirdCell.setCellValue(Utils.format(budgetBean.getProjectGrossProfitA().subtract(budgetBean.getCostProjectManageTaxExclude()).subtract(budgetBean.getCostExpropriationTaxExclude())));
Cell fourthCell = row.createCell(3); Cell fourthCell = row.createCell(3);
fourthCell.setCellStyle(style2); fourthCell.setCellStyle(style2);
fourthCell.setCellType(CellType.STRING); fourthCell.setCellType(CellType.STRING);
fourthCell.setCellValue("毛利=收入总计(不含税)-成本总计(不含税)-财务费用总计(不含税)"); fourthCell.setCellValue("项目毛利B=项目毛利A-财务费用-项目管理费用");
} }
// private void createGrossProfitMarginRow(BudgetBean budgetBean, XSSFSheet sheet, int index) { // private void createGrossProfitMarginRow(BudgetBean budgetBean, XSSFSheet sheet, int index) {
@ -1375,13 +1377,10 @@ public class ExportExcelUtils {
if (i == 0) { if (i == 0) {
totalCell.setCellType(CellType.STRING); totalCell.setCellType(CellType.STRING);
totalCell.setCellValue("总计"); totalCell.setCellValue("总计");
} else if (i == 5) { } else if (i == 4) {
totalCell.setCellType(CellType.NUMERIC);
totalCell.setCellValue(Utils.format(costProjectManageTotalAmount));
} else if (i == 7) {
totalCell.setCellType(CellType.NUMERIC); totalCell.setCellType(CellType.NUMERIC);
totalCell.setCellValue(Utils.format(budgetBean.getCostProjectManageTaxExclude())); totalCell.setCellValue(Utils.format(budgetBean.getCostProjectManageTaxExclude()));
} else if (i == 9) { } else if (i == 6) {
totalCell.setCellType(CellType.NUMERIC); totalCell.setCellType(CellType.NUMERIC);
totalCell.setCellValue(Utils.format(managePayAmountTotal)); totalCell.setCellValue(Utils.format(managePayAmountTotal));
} else { } else {

View File

@ -1,7 +1,7 @@
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/fourcal?\ spring.datasource.url=jdbc:mysql://192.168.124.202:3306/fourcal?\
characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8&rewriteBatchedStatements=true&useSSL=false characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8&rewriteBatchedStatements=true&useSSL=false
spring.datasource.username=root spring.datasource.username=fourcal
spring.datasource.password=sagacity spring.datasource.password=unissense@123
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
#spring.jpa.properties.hibernate.hbm2ddl.auto=update #spring.jpa.properties.hibernate.hbm2ddl.auto=update

View File

@ -134,12 +134,12 @@ $(function () {
var dataManage = collectData("am-modal-prompt-input-cost-project-manage"); var dataManage = collectData("am-modal-prompt-input-cost-project-manage");
if (dataManage.length <= 0) { if (dataManage.length <= 0) {
window.confirm('请填写项目管理成本表'); window.confirm('项目管理费用');
$("#saveDraft").attr('disabled', false); $("#saveDraft").attr('disabled', false);
return; return;
} }
var dataManageCheck = convertDetailVerifyCheck(dataManage, COST_PROJECT_MANAGE_DETAIL2, "项目管理成本表"); var dataManageCheck = convertDetailVerifyCheck(dataManage, COST_PROJECT_MANAGE_DETAIL2, "项目管理费用");
if (dataManageCheck == null) { if (dataManageCheck == null) {
$("#saveDraft").attr('disabled', false); $("#saveDraft").attr('disabled', false);
return; return;
@ -185,7 +185,12 @@ $(function () {
// return; // return;
// } // }
// console.log(message); // console.log(message);
// 保存付款计划表
var dataPay = collectData("am-modal-prompt-input-pay");
dataPay = prepareAjaxDataVerify(dataPay, pay_DETAIL2, $("#id").val());
if(dataPay){
postAjax(base+"/project/budgetEditSaveBudgetPayPlan", dataPay);
}
var startTime = $("#startDate").val(); var startTime = $("#startDate").val();
var endTime = $("#endDate").val(); var endTime = $("#endDate").val();
if (startTime > endTime) { if (startTime > endTime) {
@ -252,12 +257,12 @@ $(function () {
var dataManage = collectData("am-modal-prompt-input-cost-project-manage"); var dataManage = collectData("am-modal-prompt-input-cost-project-manage");
console.log("dataManage: " + dataManage.length); console.log("dataManage: " + dataManage.length);
if (dataManage.length <= 4) { if (dataManage.length <= 4) {
window.confirm('请填写项目管理成本表'); window.confirm('请填写项目管理费用');
$("#saveApprove").attr('disabled', false); $("#saveApprove").attr('disabled', false);
return; return;
} }
var dataManageCheck = convertDetailVerifyCheck(dataManage, COST_PROJECT_MANAGE_DETAIL, "项目管理成本表"); var dataManageCheck = convertDetailVerifyCheck(dataManage, COST_PROJECT_MANAGE_DETAIL, "项目管理费用");
if (dataManageCheck == null) { if (dataManageCheck == null) {
$("#saveApprove").attr('disabled', false); $("#saveApprove").attr('disabled', false);
return; return;
@ -728,13 +733,16 @@ function bindChangeableInput() {
//税率改变 //税率改变
$(".input-changeable-tax-rate").change(function () { $(".input-changeable-tax-rate").change(function () {
var taxRate = f2($(this).val()); var taxRate = f2($(this).val());
//找到对应的数量和单价 var rowVal=$(this).parent().parent().find(".input-changeable-total-tax-include").val()
var amount = f2($(this).parent().parent().find(".input-changeable-amount").val()); $(this).parent().parent().find(".input-changeable-total-tax-exclude").val(f2Fixed(rowVal * (1 - (taxRate / 100))));
var price = f5($(this).parent().parent().find(".input-changeable-price").val()); $(this).parent().parent().find(".input-changeable-total-tax").val(f2Fixed(rowVal * (taxRate / 100)));
console.log(amount, price, taxRate); });
// 不含税金额改变
$(this).parent().parent().find(".input-changeable-total-tax-exclude").val(f2Fixed(amount * price / (1 + taxRate / 100))); $(".input-changeable-total-tax-include").change(function () {
$(this).parent().parent().find(".input-changeable-total-tax").val(f2Fixed(amount * price * taxRate /(100 + taxRate))); var rowVal = f2($(this).val());
var taxRate=$(this).parent().parent().find(".input-changeable-tax-rate").val()
$(this).parent().parent().find(".input-changeable-total-tax-exclude").val(f2Fixed(rowVal * (1 - (taxRate / 100))));
$(this).parent().parent().find(".input-changeable-total-tax").val(f2Fixed(rowVal * (taxRate / 100)));
}); });
} }
@ -985,3 +993,4 @@ function updateBudgetPlanDetailDataUnsubmit(data,returnData) {
//更新现金流量 //更新现金流量
updateCashFlow(); updateCashFlow();
} }

View File

@ -4,43 +4,25 @@
//COST_DETAIL_ARR=["type","category","name","unit","amount","price","taxRate","totalTaxInclude","totalTaxExclude"]; //COST_DETAIL_ARR=["type","category","name","unit","amount","price","taxRate","totalTaxInclude","totalTaxExclude"];
COST_DETAIL2={ COST_DETAIL2={
"num":[false,"序号","string"], "num":[false,"序号","string"],
"type":[false,"费用项目","string"], "type":[false,"采购成本项目","string"],
"category":[false,"采购类别","string"], "category":[false,"产品大类","string"],
"name":[false,"名称","string"],
"unit":[false,"单位","string"],
"amount":[false,"数量","number"],
"price":[false,"单价","price"],
"taxRate":[false,"税率","number"], "taxRate":[false,"税率","number"],
"totalTaxInclude":[false,"含税总金额","number"], "totalTaxInclude":[false,"含税总金额","number"],
"totalTaxExclude":[false,"不含税金额","number"], "totalTaxExclude":[false,"不含税金额","number"],
"totalTax":[false,"税金","number"], "totalTax":[false,"税金","number"],
"contractParty":[false,"签约方","string"], "contractParty":[false,"供应商","string"],
"isUnderwritten":[false,"是否垫资","string"],
"underwrittenAmount":[false,"预估垫资金额","number"],
"payTime":[false,"支出时间","string"],
"payAmount":[false,"支出金额","number"],
"payWay":[false,"付款方式","string"],
"remark":[false,"备注","string"] "remark":[false,"备注","string"]
}; };
COST_DETAIL={ COST_DETAIL={
"num":[false,"序号","string"], "num":[false,"序号","string"],
"type":[true,"费用项目","string"], "type":[false,"采购成本项目","string"],
"category":[true,"采购类别","string"], "category":[false,"产品大类","string"],
"name":[true,"名称","string"], "taxRate":[false,"税率","number"],
"unit":[true,"单位","string"], "totalTaxInclude":[false,"含税总金额","number"],
"amount":[true,"数量","number"], "totalTaxExclude":[false,"不含税金额","number"],
"price":[true,"单价","price"], "totalTax":[false,"税金","number"],
"taxRate":[true,"税率","number"], "contractParty":[false,"供应商","string"],
"totalTaxInclude":[true,"含税总金额","number"],
"totalTaxExclude":[true,"不含税金额","number"],
"totalTax":[true,"税金","number"],
"contractParty":[false,"签约方","string"],
"isUnderwritten":[false,"是否垫资","string"],
"underwrittenAmount":[false,"预估垫资金额","number"],
"payTime":[false,"支出时间","string"],
"payAmount":[false,"支出金额","number"],
"payWay":[false,"付款方式","string"],
"remark":[false,"备注","string"] "remark":[false,"备注","string"]
}; };
/* /*
@ -199,7 +181,7 @@ function appendTrCost() {
'<td width="70px"><select style="float: left;" class="am-modal-prompt-input am-modal-prompt-input-cost am-modal-prompt-input-cost-type">'+ '<td width="70px"><select style="float: left;" class="am-modal-prompt-input am-modal-prompt-input-cost am-modal-prompt-input-cost-type">'+
'<option value="xxxx" disabled selected>--请选择--</option>'+ '<option value="xxxx" disabled selected>--请选择--</option>'+
'<option value="1">设备</option>'+ '<option value="1">设备</option>'+
'<option value="2">工</option>'+ '<option value="2"></option>'+
'<option value="3">服务</option>'+ '<option value="3">服务</option>'+
'<option value="4">其他</option>'+ '<option value="4">其他</option>'+
'</select>'+ '</select>'+
@ -220,26 +202,26 @@ function appendTrCost() {
'</select>'+ '</select>'+
'</td>'+ '</td>'+
'<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost"></td>'+ // '<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost"></td>'+
'<td width="80px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost""></td>'+ // '<td width="80px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost""></td>'+
'<td width="100px"><input type="text" maxlength="14" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-amount input-changeable-amount-cost"></td>'+ // '<td width="100px"><input type="text" maxlength="14" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-amount input-changeable-amount-cost"></td>'+
'<td width="100px"><input type="text" min="0.00" max="9999999999.99" step="0.01" maxlength="19" class="price am-modal-prompt-input am-modal-prompt-input-cost input-changeable-price input-changeable-price-cost"></td>'+ // '<td width="100px"><input type="text" min="0.00" max="9999999999.99" step="0.01" maxlength="19" class="price am-modal-prompt-input am-modal-prompt-input-cost input-changeable-price input-changeable-price-cost"></td>'+
'<td width="100px"><input type="text" min="0.00" max="99.99" step="0.01" maxlength="5" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-tax-rate input-changeable-tax-rate-cost"></td>'+ '<td width="100px"><input type="text" min="0.00" max="99.99" step="0.01" maxlength="5" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-tax-rate input-changeable-tax-rate-cost"></td>'+
'<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax-include input-changeable-total-tax-include-cost" readonly></td>'+ '<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax-include input-changeable-total-tax-include-cost"></td>'+
'<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax-exclude input-changeable-total-tax-exclude-cost" readonly></td>'+ '<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax-exclude input-changeable-total-tax-exclude-cost" readonly></td>'+
'<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax input-changeable-total-tax-cost" readonly></td>'+ '<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax input-changeable-total-tax-cost" readonly></td>'+
'<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" ></td>\n' + '<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" ></td>\n' +
'<td width="60px">\n' + // '<td width="60px">\n' +
' <select style="float: left;" class="am-modal-prompt-input am-modal-prompt-input-cost am-modal-prompt-input-cost-underwritten">\n' + // ' <select style="float: left;" class="am-modal-prompt-input am-modal-prompt-input-cost am-modal-prompt-input-cost-underwritten">\n' +
' <option value="0" ></option>\n' + // ' <option value="0" ></option>\n' +
' <option value="1" >是</option>\n' + // ' <option value="1" >是</option>\n' +
' <option value="2" >否</option>\n' + // ' <option value="2" >否</option>\n' +
' </select>\n' + // ' </select>\n' +
'</td>\n' + // '</td>\n' +
'<td width="100px"><input type="text" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-underwritten-amount-cost" ></td>\n' + // '<td width="100px"><input type="text" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-underwritten-amount-cost" ></td>\n' +
'<td width="130px"><input style="float: left;" type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" data-am-datepicker></td>\n' + // '<td width="130px"><input style="float: left;" type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" data-am-datepicker></td>\n' +
'<td width="100px"><input type="text" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-pay-amount-cost" ></td>\n' + // '<td width="100px"><input type="text" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-pay-amount-cost" ></td>\n' +
'<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" ></td>\n' + // '<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" ></td>\n' +
'<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" ></td>\n' + '<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" ></td>\n' +
'<td width="60px"><button type="button" style="margin-top: 10px" class="am-btn am-btn-danger am-btn-xs am-round am-modal-line-delete"><span class="am-icon-minus"></span></button></td>'+ '<td width="60px"><button type="button" style="margin-top: 10px" class="am-btn am-btn-danger am-btn-xs am-round am-modal-line-delete"><span class="am-icon-minus"></span></button></td>'+
'</tr>'; '</tr>';
@ -319,6 +301,11 @@ function bindCostTotal() {
$(".input-changeable-total-underwritten-amount-cost").change(function () { $(".input-changeable-total-underwritten-amount-cost").change(function () {
updateTotal("input-changeable-total-underwritten-amount-cost", "input-changeable-total-total-underwritten-amount-cost"); updateTotal("input-changeable-total-underwritten-amount-cost", "input-changeable-total-total-underwritten-amount-cost");
}); });
$(".input-changeable-total-tax-include-cost").change(function () {
updateTotal("input-changeable-total-tax-include-cost", "input-changeable-total-total-tax-include-cost");
updateTotal("input-changeable-total-tax-exclude-cost", "input-changeable-total-total-tax-exclude-cost");
updateTotal("input-changeable-total-tax-cost", "input-changeable-total-total-tax-cost");
});
} }
/** /**

View File

@ -4,13 +4,10 @@
//COST_PROJECT_MANAGE_DETAIL_ARR=["type","name","detail","unit","amount","price","total","predictMethod","predictWhy","remark","deletable"]; //COST_PROJECT_MANAGE_DETAIL_ARR=["type","name","detail","unit","amount","price","total","predictMethod","predictWhy","remark","deletable"];
COST_PROJECT_MANAGE_DETAIL2={ COST_PROJECT_MANAGE_DETAIL2={
"num":[false,"序号","string"], "num":[false,"序号","string"],
"type":[false,"财务费用类别","string"], "type":[false,"费用类别","string"],
"name1":[false,"业务项目","string"], "name1":[false,"业务项目","string"],
"name2":[false,"业务项目","string"],
"detail":[false,"项目明细","string"], "detail":[false,"项目明细","string"],
"unit":[false,"单位","string"], "detail1":[false,"项目明细","string"],
"amount":[false,"数量","number"],
"price":[false,"单价","price"],
"total":[false,"总金额","number"], "total":[false,"总金额","number"],
"payTime":[false,"支出时间","string"], "payTime":[false,"支出时间","string"],
"payAmount":[false,"支出金额","number"], "payAmount":[false,"支出金额","number"],
@ -22,20 +19,17 @@ COST_PROJECT_MANAGE_DETAIL2={
COST_PROJECT_MANAGE_DETAIL={ COST_PROJECT_MANAGE_DETAIL={
"num":[false,"序号","string"], "num":[false,"序号","string"],
"type":[true,"财务费用类别","string"], "type":[false,"费用类别","string"],
"name1":[false,"业务项目","string"], "name1":[false,"业务项目","string"],
"name2":[false,"业务项目","string"], "detail":[false,"项目明细","string"],
"detail":[true,"项目明细","string"], "detail1":[false,"项目明细","string"],
"unit":[true,"单位","string"], "total":[false,"总金额","number"],
"amount":[true,"数量","number"],
"price":[true,"单价","price"],
"total":[true,"总金额","number"],
"payTime":[false,"支出时间","string"], "payTime":[false,"支出时间","string"],
"payAmount":[false,"支出金额","number"], "payAmount":[false,"支出金额","number"],
"predictMethod":[false,"预估计算方法","string"], "predictMethod":[false,"预估计算方法","string"],
"predictWhy":[false,"预估依据","string"], "predictWhy":[false,"预估依据","string"],
"remark":[false,"备注","string"], "remark":[false,"备注","string"],
"deletable":[true,"是否可删除","string"] "deletable":[false,"是否可删除","string"]
}; };
SELECT_TYPE_CATEGORY_MAP_DATA_MANAGER={}; SELECT_TYPE_CATEGORY_MAP_DATA_MANAGER={};
@ -98,6 +92,15 @@ $(function () {
var data = collectData("am-modal-prompt-input-cost-project-manage"); var data = collectData("am-modal-prompt-input-cost-project-manage");
//data = prepareAjaxData(data, COST_PROJECT_MANAGE_DETAIL_ARR, $("#id").val(),true); //data = prepareAjaxData(data, COST_PROJECT_MANAGE_DETAIL_ARR, $("#id").val(),true);
data = prepareAjaxDataVerify(data, COST_PROJECT_MANAGE_DETAIL2, $("#id").val()); data = prepareAjaxDataVerify(data, COST_PROJECT_MANAGE_DETAIL2, $("#id").val());
var totalTotal=data.details.reduce((total,now)=>{
return now.total+total
},0)
var projectGrossProfitA=$('[name="projectGrossProfitA"]').val()
if(Number(totalTotal)> (Number(projectGrossProfitA)*0.1) ){
layuiAlert(`总金额合计不能超过毛利A(${projectGrossProfitA})的10%`);
return
}
// if(data.managePayAmountTotal)
if(data){ if(data){
postAjax(base+"/project/budgetEditSaveCostProjectManageDetail", data, updateCostProjectManageData); postAjax(base+"/project/budgetEditSaveCostProjectManageDetail", data, updateCostProjectManageData);
} }
@ -144,10 +147,10 @@ function appendTrCostProjectManage() {
' <input type="hidden" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage am-modal-prompt-input-cost-project-manage-category2"/>\n' + ' <input type="hidden" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage am-modal-prompt-input-cost-project-manage-category2"/>\n' +
' </td>\n' + ' </td>\n' +
' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage"></td>\n' + ' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage"></td>\n' +
' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage"></td>\n' + // ' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-managde"></td>\n' +
' <td><input type="text" maxlength="14" class="number am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-amount-project-manage"></td>\n' + // ' <td><input type="text" maxlength="14" class="number am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-amount-project-manage"></td>\n' +
' <td><input type="text" min="0.00" max="9999999999.99" step="0.01" maxlength="19" class="price am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-price-project-manage"></td>\n' + // ' <td><input type="text" min="0.00" max="9999999999.99" step="0.01" maxlength="19" class="price am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-price-project-manage"></td>\n' +
' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-total-project-manage" readonly></td>\n' + ' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-total-project-manage"></td>\n' +
' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" data-am-datepicker></td>\n' + ' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" data-am-datepicker></td>\n' +
' <td><input type="text" class="number am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-pay-amount-project-manage"></td>\n' + ' <td><input type="text" class="number am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-pay-amount-project-manage"></td>\n' +
' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage"></td>\n' + ' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage"></td>\n' +
@ -212,6 +215,9 @@ function bindCostManageTotal() {
$(".input-changeable-pay-amount-project-manage").change(function () { $(".input-changeable-pay-amount-project-manage").change(function () {
updateTotal("input-changeable-pay-amount-project-manage", "input-changeable-total-pay-amount-project-manage"); updateTotal("input-changeable-pay-amount-project-manage", "input-changeable-total-pay-amount-project-manage");
}); });
$(".input-changeable-total-project-manage").change(function () {
updateTotal("input-changeable-total-project-manage", "input-changeable-total-total-project-manage");
});
} }
/** /**
@ -322,6 +328,7 @@ function bindChangeableInputProjectManage() {
$(this).parent().parent().find(".input-changeable-total-project-manage").val(f2Fixed(amount*price)); $(this).parent().parent().find(".input-changeable-total-project-manage").val(f2Fixed(amount*price));
}); });
} }
/** /**
* 更新页面收入的数据累加 * 更新页面收入的数据累加

View File

@ -5,12 +5,7 @@
INCOME_DETAIL2={ INCOME_DETAIL2={
"num":[false,"序号","string"], "num":[false,"序号","string"],
"type":[false,"类别","string"], "type":[false,"类别","string"],
"name":[false,"名称","string"], "name":[false,"产品大类","string"],
"spec":[false,"规格类型","string"],
"param":[false,"参数","string"],
"unit":[false,"单位","string"],
"amount":[false,"数量","number"],
"price":[false,"单价","price"],
"taxRate":[false,"税率","number"], "taxRate":[false,"税率","number"],
"totalTaxInclude":[false,"含税总金额","number"], "totalTaxInclude":[false,"含税总金额","number"],
"totalTaxExclude":[false,"不含税金额","number"], "totalTaxExclude":[false,"不含税金额","number"],
@ -19,17 +14,12 @@ INCOME_DETAIL2={
INCOME_DETAIL={ INCOME_DETAIL={
"num":[false,"序号","string"], "num":[false,"序号","string"],
"type":[true,"类别","string"], "type":[false,"类别","string"],
"name":[true,"名称","string"], "name":[false,"产品大类","string"],
"spec":[true,"规格类型","string"], "taxRate":[false,"税率","number"],
"param":[true,"参数","string"], "totalTaxInclude":[false,"含税总金额","number"],
"unit":[true,"单位","string"], "totalTaxExclude":[false,"不含税金额","number"],
"amount":[true,"数量","number"], "totalTax":[false,"税金","number"]
"price":[true,"单价","price"],
"taxRate":[true,"税率","number"],
"totalTaxInclude":[true,"含税总金额","number"],
"totalTaxExclude":[true,"不含税金额","number"],
"totalTax":[true,"税金","number"]
}; };
/*$(function () { /*$(function () {
@ -179,13 +169,13 @@ function appendTrIncome() {
' </select>\n' + ' </select>\n' +
' </td>\n' + ' </td>\n' +
' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income"></td>\n' + ' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income"></td>\n' +
' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income"></td>\n' + // ' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income"></td>\n' +
' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income"></td>\n' + // ' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income"></td>\n' +
' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income"></td>\n' + // ' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income"></td>\n' +
' <td><input type="text" maxlength="8" class="number am-modal-prompt-input am-modal-prompt-input-income input-changeable-amount input-changeable-amount-income"></td>\n' + // ' <td><input type="text" maxlength="8" class="number am-modal-prompt-input am-modal-prompt-input-income input-changeable-amount input-changeable-amount-income"></td>\n' +
' <td><input type="text" min="0.00" max="9999999999.99" step="0.01" maxlength="19" class="price am-modal-prompt-input am-modal-prompt-input-income input-changeable-price input-changeable-price-income"></td>\n' + // ' <td><input type="text" min="0.00" max="9999999999.99" step="0.01" maxlength="19" class="price am-modal-prompt-input am-modal-prompt-input-income input-changeable-price input-changeable-price-income"></td>\n' +
' <td><input type="text" min="0.00" max="99.99" step="0.01" maxlength="5" class="number am-modal-prompt-input am-modal-prompt-input-income input-changeable-tax-rate input-changeable-tax-rate-income"></td>\n' + ' <td><input type="text" min="0.00" max="99.99" step="0.01" maxlength="5" class="number am-modal-prompt-input am-modal-prompt-input-income input-changeable-tax-rate input-changeable-tax-rate-income"></td>\n' +
' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax-include input-changeable-total-tax-include-income" readonly></td>\n' + ' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax-include input-changeable-total-tax-include-income"></td>\n' +
' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax-exclude input-changeable-total-tax-exclude-income" readonly></td>\n' + ' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax-exclude input-changeable-total-tax-exclude-income" readonly></td>\n' +
' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax input-changeable-total-tax-income" readonly></td>\n' + ' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax input-changeable-total-tax-income" readonly></td>\n' +
' <td><button type="button" style="margin-top: 10px" class="am-btn am-btn-danger am-btn-xs am-round am-modal-line-delete"><span class="am-icon-minus"></span></button></td>\n' + ' <td><button type="button" style="margin-top: 10px" class="am-btn am-btn-danger am-btn-xs am-round am-modal-line-delete"><span class="am-icon-minus"></span></button></td>\n' +
@ -216,6 +206,8 @@ function bindDeleteBtnIncome() {
updateTotal("input-changeable-total-tax-include-income", "input-changeable-total-total-tax-include-income"); updateTotal("input-changeable-total-tax-include-income", "input-changeable-total-total-tax-include-income");
updateTotal("input-changeable-total-tax-exclude-income", "input-changeable-total-total-tax-exclude-income"); updateTotal("input-changeable-total-tax-exclude-income", "input-changeable-total-total-tax-exclude-income");
updateTotal("input-changeable-total-tax-income", "input-changeable-total-total-tax-income"); updateTotal("input-changeable-total-tax-income", "input-changeable-total-total-tax-income");
}); });
} }
@ -241,4 +233,10 @@ function bindIncomeTotal() {
updateTotal("input-changeable-total-tax-exclude-income", "input-changeable-total-total-tax-exclude-income"); updateTotal("input-changeable-total-tax-exclude-income", "input-changeable-total-total-tax-exclude-income");
updateTotal("input-changeable-total-tax-income", "input-changeable-total-total-tax-income"); updateTotal("input-changeable-total-tax-income", "input-changeable-total-total-tax-income");
}); });
$(".input-changeable-total-tax-include-income").change(function () {
updateTotal("input-changeable-total-tax-include-income", "input-changeable-total-total-tax-include-income");
updateTotal("input-changeable-total-tax-exclude-income", "input-changeable-total-total-tax-exclude-income");
updateTotal("input-changeable-total-tax-income", "input-changeable-total-total-tax-income");
});
} }

View File

@ -0,0 +1,340 @@
/**
* 一个采购成本详情的字段
*/
//COST_DETAIL_ARR=["type","category","name","unit","amount","price","taxRate","totalTaxInclude","totalTaxExclude"];
pay_DETAIL2={
"num":[false,"序号","string"],
"payPoint":[false,"付款节点","string"],
"payTime":[false,"付款时间","string"],
"payProject":[false,"采购成本项目","number"],
"payAmount":[false,"付款金额","number"],
"supplier":[false,"供应商","string"],
};
pay_DETAIL={
"num":[false,"序号","string"],
"payPoint":[false,"付款节点","string"],
"payTime":[false,"付款时间","string"],
"payProject":[false,"采购成本项目","number"],
"payAmount":[false,"付款金额","number"],
"supplier":[false,"供应商","string"],
};
/*
[
{"id":"1","name":"xxx1"},{"id":"2","name":"xxx2"}
]
*/
SELECT_TYPE_CATEGORY_DATA=[];
/*{
"1":[
{
"id":"1",
"name":"华智产品"
},
{
"id":"2",
"name":"紫光其他产品"
},
{
"id":"3",
"name":"外购产品"
}
],
"2":[
{
"id":"4",
"name":"外购工程"
}
],
"3":[
{
"id":"5",
"name":"华智服务"
},
{
"id":"6",
"name":"紫光其他服务"
},
{
"id":"7",
"name":"外购服务"
}
],
"4":[
{
"id":"8",
"name":"其他"
}
]
};*/
SELECT_TYPE_CATEGORY_MAP_DATA={};
/*{
"1":"1",
"2":"1",
"3":"1",
"4":"2",
"5":"3",
"6":"3",
"7":"3",
"8":"4"
};
*/
SELECT_CATEGORY_TYPE_MAP_DATA={};
/*$(function () {
$("#cost-detail").click(function () {
$('#my-prompt-cost-detail').modal({
relatedTarget: this,
closeOnConfirm:false,
onConfirm: function(e) {
//不能使用e.data因为无法获取动态添加的
var data = collectData("am-modal-prompt-input-cost");
//data = prepareAjaxData(data, COST_DETAIL_ARR, $("#id").val(),false);
data = prepareAjaxDataVerify(data, COST_DETAIL, $("#id").val());
if(data){
postAjax(base+"/project/budgetEditSaveCostDetail", data, updateCostData);
}
},
onCancel: function(e) {
}
});
});
$("#costAddBtn").click(function () {
appendTrCost();
});
//初始化大类和类别的数据
getAjax(base+"/procurement/type/map", null, initTypeCategory);
});*/
$(function () {
});
//保存采购成本明细表
$(function () {
$("#payTableSave").click(function () {
//不能使用e.data因为无法获取动态添加的
var data = collectData("am-modal-prompt-input-pay");
//data = prepareAjaxData(data, COST_DETAIL_ARR, $("#id").val(),false);
data = prepareAjaxDataVerify(data, pay_DETAIL2, $("#id").val());
if(data){
postAjax(base+"/project/budgetEditSaveBudgetPayPlan", data, updateCostData);
}
});
$("#payAddBtn").click(function () {
appendTrPay();
$("#payAddBtn").blur();
});
//绑定删除按钮
bindDeleteBtnPay();
//初始化大类和类别的数据
getAjax(base+"/procurement/type/map", null, initTypeCategory);
});
/**
* 采购成本增加一行
*/
function appendTrPay() {
//console.log(SELECT_TYPE_CATEGORY_DATA);
var options = '<option value="xxxx" disabled selected>--请选择--</option>\r\n';
SELECT_TYPE_CATEGORY_DATA.forEach(function (e) {
options+='<option value="'+e.id+'">'+e.name+'</option>\r\n';
});
var template = '<tr>' +
'<td width="60px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-pay input-budget-num" readonly></td>' +
'<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-pay am-modal-prompt-input-pay-point" ></td>'+
'<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-pay input-changeable-pay-time" autocomplete="off" data-am-datepicker></td>'+
'<td width="100px">'+
'<select style="float: left;" class="am-modal-prompt-input am-modal-prompt-input-pay am-modal-prompt-input-pay-project">\n' +
'<option value="xxxx" disabled selected>--请选择--</option>'+
'<option value="1">设备成本</option>'+
'<option value="2">工程成本</option>'+
'<option value="3">服务成本</option>'+
'<option value="4">其他成本</option>'+
'</select>'+
'</td>'+
'<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-pay am-modal-prompt-input-pay-amount" ></td>' +
'<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-pay am-modal-prompt-input-pay-supplier" ></td>' +
'<td width="60px"><button type="button" style="margin-top: 10px" class="am-btn am-btn-danger am-btn-xs am-round am-modal-line-delete"><span class="am-icon-minus"></span></button></td>'+
'</tr>';
$("#payTotal").before(template);
//重新绑定删除事件和input修改事件
bindDeleteBtnPay();
//绑定序号
bindNum();
//绑定时间
bindTime();
//绑定总计值
bindPayTotal();
//绑定数字输入框保留两位小数
bindNumberInput();
if ($('#costTable').find('tbody') && $('#costTable').find('tbody')[0]) {
$('#costTable').find('tbody')[0].scrollTop = $('#costTable').find('tbody')[0].scrollHeight
}
}
/**
* 绑定时间选择器
*/
function bindTime() {
$('[data-am-datepicker]').datepicker();
}
/**
* 绑定每一行的删除事件删除当前的一行tr修改总计值
*/
function bindDeleteBtnPay() {
$(".am-modal-line-delete").click(function () {
//删除自己对应的tr
$(this).parent().parent().remove();
bindNum();
updateTotal("input-changeable-pay-amount", "input-changeable-pay-amount-total");
});
}
/**
* 绑定每个可改变的输入框修改后改变对应输入框的值
*/
function bindPayTotal() {
//数量改变
$(".input-changeable-pay-amount").change(function () {
updateTotal("input-changeable-pay-amount", "input-changeable-pay-amount-total");
});
}
/**
* 更新页面收入的数据累加
*/
function updateCostData(data, returnData) {
var details = data.details;
var deviceTaxInclude = 0;
var deviceTaxExclude = 0;
var deviceTax = 0;
var buildTaxInclude = 0;
var buildTaxExclude = 0;
var buildTax = 0;
var serviceTaxInclude = 0;
var serviceTaxExclude = 0;
var serviceTax = 0;
var otherTaxInclude = 0;
var otherTaxExclude = 0;
var otherTax = 0;
var costTaxRates = "";
var set = new Set();
details.forEach(function (t, number, ts) {
if(t["type"] == "1"){
//设备类
deviceTaxInclude += f2(t["totalTaxInclude"]);
deviceTaxExclude += f2(t["totalTaxExclude"]);
deviceTax += f2(t["totalTax"]);
}else if(t["type"] == "2"){
//施工类
buildTaxInclude += f2(t["totalTaxInclude"]);
buildTaxExclude += f2(t["totalTaxExclude"]);
buildTax += f2(t["totalTax"]);
}else if(t["type"] == "3"){
//服务类
serviceTaxInclude += f2(t["totalTaxInclude"]);
serviceTaxExclude += f2(t["totalTaxExclude"]);
serviceTax += f2(t["totalTax"]);
}else if(t["type"] == "4"){
//其他类
otherTaxInclude += f2(t["totalTaxInclude"]);
otherTaxExclude += f2(t["totalTaxExclude"]);
otherTax += f2(t["totalTax"]);
}
if (!set.has(t["taxRate"])) {
costTaxRates += f2Fixed(t["taxRate"]) + "%,";
set.add(t["taxRate"]);
}
});
$("input[name='costPurchaseDeviceTaxInclude']").val(f2Fixed(deviceTaxInclude));
$("input[name='costPurchaseDeviceTaxExclude']").val(f2Fixed(deviceTaxExclude));
$("input[name='costPurchaseDeviceTax']").val(f2Fixed(deviceTax));
$("input[name='costPurchaseBuildTaxInclude']").val(f2Fixed(buildTaxInclude));
$("input[name='costPurchaseBuildTaxExclude']").val(f2Fixed(buildTaxExclude));
$("input[name='costPurchaseBuildTax']").val(f2Fixed(buildTax));
$("input[name='costPurchaseServiceTaxInclude']").val(f2Fixed(serviceTaxInclude));
$("input[name='costPurchaseServiceTaxExclude']").val(f2Fixed(serviceTaxExclude));
$("input[name='costPurchaseServiceTax']").val(f2Fixed(serviceTax));
$("input[name='costPurchaseOtherTaxInclude']").val(f2Fixed(otherTaxInclude));
$("input[name='costPurchaseOtherTaxExclude']").val(f2Fixed(otherTaxExclude));
$("input[name='costPurchaseOtherTax']").val(f2Fixed(otherTax));
//资金计划表中的
$(".input-total-title-device-cost-budget-plan").val(f2Fixed(deviceTaxInclude));
$(".input-total-title-engineer-cost-budget-plan").val(f2Fixed(f2(serviceTaxInclude)+f2(buildTaxInclude)+f2(otherTaxInclude)));
$(".input-total-title-total-cost-budget-plan").val(f2Fixed(f2(deviceTaxInclude)+f2(buildTaxInclude)+f2(serviceTaxInclude)+f2(otherTaxInclude)
+f2($(".input-total-title-project-manage-cost-budget-plan").val())
+f2($(".input-total-title-earnest-money-cost-budget-plan").val())));
/* var costOtherOtherTaxInclude = f2($("input[name='costOtherOtherTaxInclude']").val());
var costOtherOtherTaxExclude = f2($("input[name='costOtherOtherTaxExclude']").val());
var costProjectManageTaxInclude = f2($("input[name='costProjectManageTaxInclude']").val());
var costProjectManageTaxExclude = f2($("input[name='costProjectManageTaxExclude']").val());
$("input[name='costTotalTaxInclude']").val(f2(deviceTaxInclude+buildTaxInclude+serviceTaxInclude+otherTaxInclude+costOtherOtherTaxInclude+costProjectManageTaxInclude));
$("input[name='costTotalTaxExclude']").val(f2(deviceTaxExclude+buildTaxExclude+serviceTaxExclude+otherTaxExclude+costOtherOtherTaxExclude+costProjectManageTaxExclude));*/
calCostExclude();
calCostInclude();
calCostTotalTax();
updateProjectContributionProfitRate();
if (costTaxRates.length > 0) {
$(".costTaxRates").text(costTaxRates.substr(0, costTaxRates.length - 1));
}
layuiAlert("保存成功");
$('#my-prompt-cost-detail').modal('close');
}
/**
* 大类类别联动效果
*/
/**
* 初始化数据
* SELECT_TYPE_CATEGORY_MAP_DATA
* SELECT_CATEGORY_TYPE_MAP_DATA
* SELECT_TYPE_CATEGORY_DATA
*/
function initTypeCategory(params, data) {
var d = data.data;
var map = d.map;
Object.keys(map).forEach(function (t, number) {
var temp = [];
map[t].forEach(function (g) {
temp.push({
name:g.name,
id:g.id+""
});
});
SELECT_TYPE_CATEGORY_MAP_DATA[t]= temp;
});
var procurementTypes = d.procurementTypes;
procurementTypes.forEach(function (e) {
SELECT_TYPE_CATEGORY_DATA.push({
id:e.id+"",
name:e.name
});
SELECT_CATEGORY_TYPE_MAP_DATA[e.id]=e.type;
});
//--请选择--的映射
//SELECT_CATEGORY_TYPE_MAP_DATA["xxxx"]="xxxx";
// console.log(SELECT_TYPE_CATEGORY_MAP_DATA);
// console.log(SELECT_TYPE_CATEGORY_DATA);
// console.log(SELECT_CATEGORY_TYPE_MAP_DATA);
}

View File

@ -4,8 +4,10 @@
BUDGET_PLAN_DETAIL_ARR=["month","deviceCost","engineerCost","projectManageCost","earnestMoneyCost","totalCost","saleIncome","earnestMoneyIncome","totalIncome","fundBalance","capitalInterest","underwrittenPlan","repaymentPlan"]; BUDGET_PLAN_DETAIL_ARR=["month","deviceCost","engineerCost","projectManageCost","earnestMoneyCost","totalCost","saleIncome","earnestMoneyIncome","totalIncome","fundBalance","capitalInterest","underwrittenPlan","repaymentPlan"];
BUDGET_PLAN_DETAIL2={ BUDGET_PLAN_DETAIL2={
"month":[true,"月份"], "month":[true,"月份"],
"deviceCost":[false,"设备支出","number"], "deviceCost":[false,"设备付款","number"],
"engineerCost":[false,"工程支出","number"], "projectCost":[false,"工程付款","number"],
"serviceCost ":[false,"服务付款","number"],
"otherCost":[false,"其他付款","number"],
"projectManageCost":[false,"经营性开支","number"], "projectManageCost":[false,"经营性开支","number"],
"earnestMoneyCost":[false,"保证金支出","number"], "earnestMoneyCost":[false,"保证金支出","number"],
"totalCost":[false,"支出合计","number"], "totalCost":[false,"支出合计","number"],
@ -20,8 +22,10 @@ BUDGET_PLAN_DETAIL2={
BUDGET_PLAN_DETAIL={ BUDGET_PLAN_DETAIL={
"month":[true,"月份"], "month":[true,"月份"],
"deviceCost":[true,"设备支出","number"], "deviceCost":[true,"设备付款","number"],
"engineerCost":[true,"工程支出","number"], "projectCost":[false,"工程付款","number"],
"serviceCost ":[false,"服务付款","number"],
"otherCost":[false,"其他付款","number"],
"projectManageCost":[true,"经营性开支","number"], "projectManageCost":[true,"经营性开支","number"],
"earnestMoneyCost":[true,"保证金支出","number"], "earnestMoneyCost":[true,"保证金支出","number"],
"totalCost":[true,"支出合计","number"], "totalCost":[true,"支出合计","number"],
@ -383,9 +387,13 @@ function appendTrBudgetPlan() {
var template = '<tr style="display: inline-block;">\n' + var template = '<tr style="display: inline-block;">\n' +
' <td style="display: block;"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-month-budget-plan" readonly></td>\n' + ' <td style="display: block;"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-month-budget-plan" readonly></td>\n' +
' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-device-cost-budget-plan"></td>\n' + ' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-device-cost-budget-plan"></td>\n' +
' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-engineer-cost-budget-plan"></td>\n' +
' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-project-manage-cost-budget-plan"></td>\n' + ' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-project-cost-budget-plan" readonly></td>\n' +
' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-earnest-money-cost-budget-plan"></td>\n' + ' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-service-cost-budget-plan" readonly></td>\n' +
' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-other-cost-budget-plan" readonly></td>\n' +
' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-project-manage-cost-budget-plan" readonly></td>\n' +
' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-earnest-money-cost-budget-plan" readonly></td>\n' +
' <td style="display: block;"><input type="text" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-total-cost-budget-plan" readonly></td>\n' + ' <td style="display: block;"><input type="text" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-total-cost-budget-plan" readonly></td>\n' +
' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-sale-income-budget-plan"></td>\n' + ' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-sale-income-budget-plan"></td>\n' +
' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-earnest-money-income-budget-plan"></td>\n' + ' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-earnest-money-income-budget-plan"></td>\n' +
@ -416,7 +424,11 @@ function appendTrBudgetPlan2() {
var template = '<tr style="display: inline-block;">\n' + var template = '<tr style="display: inline-block;">\n' +
' <td style="display: block;"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-month-budget-plan" readonly></td>\n' + ' <td style="display: block;"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-month-budget-plan" readonly></td>\n' +
' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-device-cost-budget-plan"></td>\n' + ' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-device-cost-budget-plan"></td>\n' +
' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-engineer-cost-budget-plan"></td>\n' + // ' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-engineer-cost-budget-plan"></td>\n' +
' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-project-cost-budget-plan" readonly></td>\n' +
' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-service-cost-budget-plan" readonly></td>\n' +
' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-other-cost-budget-plan" readonly></td>\n' +
' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-project-manage-cost-budget-plan"></td>\n' + ' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-project-manage-cost-budget-plan"></td>\n' +
' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-earnest-money-cost-budget-plan"></td>\n' + ' <td style="display: block;"><input type="text" maxlength="16" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-earnest-money-cost-budget-plan"></td>\n' +
' <td style="display: block;"><input type="text" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-total-cost-budget-plan" readonly></td>\n' + ' <td style="display: block;"><input type="text" value="0.00" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-total-cost-budget-plan" readonly></td>\n' +
@ -548,17 +560,57 @@ function bindChangeableInputBudgetPlanDetail() {
updatePageData(); updatePageData();
}); });
//工程支出改变 //工程支出改变
$(".input-changeable-engineer-cost-budget-plan").change(function () { $(".input-changeable-projectCost-cost-budget-plan").change(function () {
var engineerCost = f2($(this).val()); var engineerCost = f2($(this).val());
//找到对应的设备支出、经营性支出、保证金支出 //找到对应的设备支出、经营性支出、保证金支出
var deviceCost = f2($(this).parent().parent().find(".input-changeable-device-cost-budget-plan").val()); var deviceCost = f2($(this).parent().parent().find(".input-changeable-device-cost-budget-plan").val());
var projectManageCost = f2($(this).parent().parent().find(".input-changeable-project-manage-cost-budget-plan").val()); var projectManageCost = f2($(this).parent().parent().find(".input-changeable-project-manage-cost-budget-plan").val());
var earnestMoneyCost = f2($(this).parent().parent().find(".input-changeable-earnest-money-cost-budget-plan").val()); var earnestMoneyCost = f2($(this).parent().parent().find(".input-changeable-earnest-money-cost-budget-plan").val());
var engineerCost2 = f2($(this).parent().parent().find(".input-changeable-serviceCost-cost-budget-plan").val());
var engineerCost3 = f2($(this).parent().parent().find(".input-changeable-otherCost-cost-budget-plan").val());
//更新本月所有项支出 //更新本月所有项支出
$(this).parent().parent().find(".input-changeable-total-cost-budget-plan").val(f2Fixed(deviceCost+engineerCost+projectManageCost+earnestMoneyCost)); $(this).parent().parent().find(".input-changeable-total-cost-budget-plan").val(f2Fixed(deviceCost+engineerCost+projectManageCost+earnestMoneyCost+engineerCost2+engineerCost3));
//更新所有月工程支出总额 //更新所有月工程支出总额
updateBudgetPlanTotal("input-changeable-engineer-cost-budget-plan","input-total-engineer-cost-budget-plan"); updateBudgetPlanTotal("input-changeable-projectCost-cost-budget-plan","input-total-projectCost-cost-budget-plan");
//更新所有月支出总额
updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-total-cost-budget-plan");
updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-title-total-cost-budget-plan");
updatePageData();
});
$(".input-changeable-serviceCost-cost-budget-plan").change(function () {
var engineerCost = f2($(this).val());
//找到对应的设备支出、经营性支出、保证金支出
var deviceCost = f2($(this).parent().parent().find(".input-changeable-device-cost-budget-plan").val());
var projectManageCost = f2($(this).parent().parent().find(".input-changeable-project-manage-cost-budget-plan").val());
var earnestMoneyCost = f2($(this).parent().parent().find(".input-changeable-earnest-money-cost-budget-plan").val());
var engineerCost2 = f2($(this).parent().parent().find(".input-changeable-serviceCost-cost-budget-plan").val());
var engineerCost3 = f2($(this).parent().parent().find(".input-changeable-otherCost-cost-budget-plan").val());
//更新本月所有项支出
$(this).parent().parent().find(".input-changeable-total-cost-budget-plan").val(f2Fixed(deviceCost+engineerCost+projectManageCost+earnestMoneyCost+engineerCost2+engineerCost3));
//更新所有月工程支出总额
updateBudgetPlanTotal("input-changeable-serviceCost-cost-budget-plan","input-total-serviceCost-cost-budget-plan");
//更新所有月支出总额
updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-total-cost-budget-plan");
updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-title-total-cost-budget-plan");
updatePageData();
});
$(".input-changeable-otherCost-cost-budget-plan").change(function () {
var engineerCost = f2($(this).val());
//找到对应的设备支出、经营性支出、保证金支出
var deviceCost = f2($(this).parent().parent().find(".input-changeable-device-cost-budget-plan").val());
var projectManageCost = f2($(this).parent().parent().find(".input-changeable-project-manage-cost-budget-plan").val());
var earnestMoneyCost = f2($(this).parent().parent().find(".input-changeable-earnest-money-cost-budget-plan").val());
var engineerCost2 = f2($(this).parent().parent().find(".input-changeable-serviceCost-cost-budget-plan").val());
var engineerCost3 = f2($(this).parent().parent().find(".input-changeable-otherCost-cost-budget-plan").val());
//更新本月所有项支出
$(this).parent().parent().find(".input-changeable-total-cost-budget-plan").val(f2Fixed(deviceCost+engineerCost+projectManageCost+earnestMoneyCost+engineerCost2+engineerCost3));
//更新所有月工程支出总额
updateBudgetPlanTotal("input-changeable-otherCost-cost-budget-plan","input-total-otherCost-cost-budget-plan");
//更新所有月支出总额 //更新所有月支出总额
updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-total-cost-budget-plan"); updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-total-cost-budget-plan");
updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-title-total-cost-budget-plan"); updateBudgetPlanTotal("input-changeable-total-cost-budget-plan","input-total-title-total-cost-budget-plan");

View File

@ -260,14 +260,15 @@ function calCostInclude() {
var costPurchaseBuildTaxInclude = inputVal("costPurchaseBuildTaxInclude"); var costPurchaseBuildTaxInclude = inputVal("costPurchaseBuildTaxInclude");
var costPurchaseServiceTaxInclude = inputVal("costPurchaseServiceTaxInclude"); var costPurchaseServiceTaxInclude = inputVal("costPurchaseServiceTaxInclude");
var costPurchaseOtherTaxInclude = inputVal("costPurchaseOtherTaxInclude"); var costPurchaseOtherTaxInclude = inputVal("costPurchaseOtherTaxInclude");
var costProjectManageTaxInclude = inputVal("costProjectManageTaxInclude"); // var costProjectManageTaxInclude = inputVal("costProjectManageTaxInclude");
// f2(costProjectManageTaxInclude)
var costOtherOtherTaxInclude = inputVal("costOtherOtherTaxInclude"); var costOtherOtherTaxInclude = inputVal("costOtherOtherTaxInclude");
var $costTotalTaxInclude = $("input[name='costTotalTaxInclude']"); var $costTotalTaxInclude = $("input[name='costTotalTaxInclude']");
$costTotalTaxInclude.val(f2Fixed(f2(costPurchaseDeviceTaxInclude) +f2(costPurchaseBuildTaxInclude) $costTotalTaxInclude.val(f2Fixed(f2(costPurchaseDeviceTaxInclude) +f2(costPurchaseBuildTaxInclude)
+f2(costPurchaseServiceTaxInclude)+f2(costPurchaseOtherTaxInclude) +f2(costPurchaseServiceTaxInclude)+f2(costPurchaseOtherTaxInclude)
+f2(costProjectManageTaxInclude)+f2(costOtherOtherTaxInclude))); +f2(costOtherOtherTaxInclude)));
} }
/** /**
* 统计成本(不含税)有一项没填就置空 * 统计成本(不含税)有一项没填就置空
@ -277,7 +278,8 @@ function calCostExclude() {
var costPurchaseBuildTaxExclude = inputVal("costPurchaseBuildTaxExclude"); var costPurchaseBuildTaxExclude = inputVal("costPurchaseBuildTaxExclude");
var costPurchaseServiceTaxExclude = inputVal("costPurchaseServiceTaxExclude"); var costPurchaseServiceTaxExclude = inputVal("costPurchaseServiceTaxExclude");
var costPurchaseOtherTaxExclude = inputVal("costPurchaseOtherTaxExclude"); var costPurchaseOtherTaxExclude = inputVal("costPurchaseOtherTaxExclude");
var costProjectManageTaxExclude = inputVal("costProjectManageTaxExclude"); // var costProjectManageTaxExclude = inputVal("costProjectManageTaxExclude");\
// f2(costProjectManageTaxExclude)
var costOtherOtherTaxExclude = inputVal("costOtherOtherTaxExclude"); var costOtherOtherTaxExclude = inputVal("costOtherOtherTaxExclude");
@ -285,7 +287,7 @@ function calCostExclude() {
$costTotalTaxExclude.val(f2Fixed(f2(costPurchaseDeviceTaxExclude)+f2(costPurchaseBuildTaxExclude) $costTotalTaxExclude.val(f2Fixed(f2(costPurchaseDeviceTaxExclude)+f2(costPurchaseBuildTaxExclude)
+f2(costPurchaseServiceTaxExclude)+f2(costPurchaseOtherTaxExclude) +f2(costPurchaseServiceTaxExclude)+f2(costPurchaseOtherTaxExclude)
+f2(costProjectManageTaxExclude)+f2(costOtherOtherTaxExclude))); +f2(costOtherOtherTaxExclude)));
} }
/** /**
* 统计其他其他税金 * 统计其他其他税金

View File

@ -387,19 +387,19 @@
</#if> </#if>
</td> </td>
</tr> </tr>
<tr class="am-text-nowrap"> <#-- <tr class="am-text-nowrap">-->
<th class="table-title" colspan="1" ><span style="font-size: 15px">主合同收款条款:</span></th> <#-- <th class="table-title" colspan="1" ><span style="font-size: 15px">主合同收款条款:</span></th>-->
<td class="table-title" colspan="5" > <#-- <td class="table-title" colspan="5" >-->
<textarea rows="3" cols="20" style="border-style:none;background-color: white;" disabled="disabled" <#-- <textarea rows="3" cols="20" style="border-style:none;background-color: white;" disabled="disabled"-->
>${project.mainContractCollectionTerms!}</textarea> <#-- >${project.mainContractCollectionTerms!}</textarea>-->
</td> <#-- </td>-->
</tr> <#-- </tr>-->
<tr class="am-text-nowrap"> <#-- <tr class="am-text-nowrap">-->
<th class="table-title" colspan="1" ><span style="font-size: 15px">主合同具体解决方案:</span></th> <#-- <th class="table-title" colspan="1" ><span style="font-size: 15px">主合同具体解决方案:</span></th>-->
<td class="table-title" colspan="5" > <#-- <td class="table-title" colspan="5" >-->
<textarea rows="3" cols="20" style="border-style:none;background-color: white;" disabled="disabled" <#-- <textarea rows="3" cols="20" style="border-style:none;background-color: white;" disabled="disabled"-->
>${project.mainContractResolvePlan!}</textarea> <#-- >${project.mainContractResolvePlan!}</textarea>-->
</td> </tr> <#-- </td> </tr>-->
<tr class="am-text-nowrap"> <tr class="am-text-nowrap">
<th class="table-title" colspan="1" ><span style="font-size: 15px">计收计划:</span></th> <th class="table-title" colspan="1" ><span style="font-size: 15px">计收计划:</span></th>
<td class="table-title" colspan="5" > <td class="table-title" colspan="5" >
@ -491,7 +491,7 @@
<li><a href="#tab31">收入明细表</a></li> <li><a href="#tab31">收入明细表</a></li>
<li><a href="#tab36">收款计划表</a></li> <li><a href="#tab36">收款计划表</a></li>
<li><a href="#tab32">采购成本明细表</a></li> <li><a href="#tab32">采购成本明细表</a></li>
<li><a href="#tab33">项目管理成本表</a></li> <li><a href="#tab33">项目管理费用</a></li>
<li><a href="#tab34">资金计划表</a></li> <li><a href="#tab34">资金计划表</a></li>
</ul> </ul>
</div> </div>
@ -754,20 +754,20 @@
</#if> </#if>
</td> </td>
</tr> </tr>
<tr class="am-text-nowrap"> <#-- <tr class="am-text-nowrap">-->
<th class="table-title" colspan="1" ><span style="font-size: 15px">主合同收款条款:</span></th> <#-- <th class="table-title" colspan="1" ><span style="font-size: 15px">主合同收款条款:</span></th>-->
<td class="table-title" colspan="5" > <#-- <td class="table-title" colspan="5" >-->
<textarea rows="3" cols="20" style="border-style:none;background-color: white;" disabled="disabled" <#-- <textarea rows="3" cols="20" style="border-style:none;background-color: white;" disabled="disabled"-->
>${projectBudget.mainContractCollectionTermsBudget!}</textarea> <#-- >${projectBudget.mainContractCollectionTermsBudget!}</textarea>-->
</td> <#-- </td>-->
</tr> <#-- </tr>-->
<tr class="am-text-nowrap"> <#-- <tr class="am-text-nowrap">-->
<th class="table-title" colspan="1" ><span style="font-size: 15px">主合同具体解决方案:</span></th> <#-- <th class="table-title" colspan="1" ><span style="font-size: 15px">主合同具体解决方案:</span></th>-->
<td class="table-title" colspan="5" > <#-- <td class="table-title" colspan="5" >-->
<textarea rows="3" cols="20" style="border-style:none;background-color: white;" disabled="disabled" <#-- <textarea rows="3" cols="20" style="border-style:none;background-color: white;" disabled="disabled"-->
>${projectBudget.mainContractResolvePlanBudget!}</textarea> <#-- >${projectBudget.mainContractResolvePlanBudget!}</textarea>-->
</td> <#-- </td>-->
</tr> <#-- </tr>-->
<tr class="am-text-nowrap"> <tr class="am-text-nowrap">
<th class="table-title" colspan="1" ><span style="font-size: 15px">计收计划:</span></th> <th class="table-title" colspan="1" ><span style="font-size: 15px">计收计划:</span></th>
<td class="table-title" colspan="5" > <td class="table-title" colspan="5" >
@ -798,13 +798,13 @@
<thead> <thead>
<tr> <tr>
<th>序号</th> <th>序号</th>
<th>类</th> <th>产品大类</th>
<th>名称</th> <th>名称</th>
<th>规格类型</th> <#-- <th>规格类型</th>-->
<th>参数</th> <#-- <th>参数</th>-->
<th>单位</th> <#-- <th>单位</th>-->
<th>数量</th> <#-- <th>数量</th>-->
<th>单价</th> <#-- <th>单价</th>-->
<th>税率(%</th> <th>税率(%</th>
<th>含税总金额(元)</th> <th>含税总金额(元)</th>
<th>不含税金额(元)</th> <th>不含税金额(元)</th>
@ -838,22 +838,22 @@
<td><input type="text" readonly <td><input type="text" readonly
class="am-modal-prompt-input am-modal-prompt-input-income" class="am-modal-prompt-input am-modal-prompt-input-income"
value="${incomeDetail.name!}"></td> value="${incomeDetail.name!}"></td>
<td><input type="text" readonly <#-- <td><input type="text" readonly-->
class="am-modal-prompt-input am-modal-prompt-input-income" <#-- class="am-modal-prompt-input am-modal-prompt-input-income"-->
value="${incomeDetail.spec!}"></td> <#-- value="${incomeDetail.spec!}"></td>-->
<td><input type="text" readonly <#-- <td><input type="text" readonly-->
class="am-modal-prompt-input am-modal-prompt-input-income" <#-- class="am-modal-prompt-input am-modal-prompt-input-income"-->
value="${incomeDetail.param!}"></td> <#-- value="${incomeDetail.param!}"></td>-->
<td><input type="text" readonly <#-- <td><input type="text" readonly-->
class="am-modal-prompt-input am-modal-prompt-input-income" <#-- class="am-modal-prompt-input am-modal-prompt-input-income"-->
value="${incomeDetail.unit!}"></td> <#-- value="${incomeDetail.unit!}"></td>-->
<td><input type="text" readonly <#-- <td><input type="text" readonly-->
class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-amount" <#-- class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-amount"-->
value="${Utils.format(incomeDetail.amount,'0.00')}"></td> <#-- value="${Utils.format(incomeDetail.amount,'0.00')}"></td>-->
<td><input type="text" readonly <#-- <td><input type="text" readonly-->
class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-price" <#-- class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-price"-->
value="${Utils.format2(incomeDetail.price,'0.00')}"></td> <#-- value="${Utils.format2(incomeDetail.price,'0.00')}"></td>-->
<td> <input type="text" readonly <#-- <td> <input type="text" readonly-->
class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-tax-rate" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-tax-rate"
value="${Utils.format(incomeDetail.taxRate,'0.00')}"></td> value="${Utils.format(incomeDetail.taxRate,'0.00')}"></td>
<td><input type="text" <td><input type="text"
@ -3113,6 +3113,7 @@
<script src="${base}/assets/js/project_common.js"></script> <script src="${base}/assets/js/project_common.js"></script>
<script src="${base}/assets/js/project_budget.js"></script> <script src="${base}/assets/js/project_budget.js"></script>
<script src="${base}/assets/js/project_budget_income.js"></script> <script src="${base}/assets/js/project_budget_income.js"></script>
<script src="${base}/assets/js/project_budget_pay.js"></script>
<script src="${base}/assets/js/project_budget_cost.js"></script> <script src="${base}/assets/js/project_budget_cost.js"></script>
<script src="${base}/assets/js/project_budget_cost_project_manage.js"></script> <script src="${base}/assets/js/project_budget_cost_project_manage.js"></script>
<script src="${base}/assets/js/project_budget_plan.js"></script> <script src="${base}/assets/js/project_budget_plan.js"></script>

View File

@ -108,7 +108,8 @@
<li><a href="#tab3">收入明细表</a></li> <li><a href="#tab3">收入明细表</a></li>
<li><a href="#tab8">收款计划表</a></li> <li><a href="#tab8">收款计划表</a></li>
<li><a href="#tab4">采购成本明细表</a></li> <li><a href="#tab4">采购成本明细表</a></li>
<li><a href="#tab5">项目管理成本表</a></li> <li><a href="#tab9">付款计划表</a></li>
<li><a href="#tab5">项目管理费用表</a></li>
<li><a href="#tab6">资金计划表</a></li> <li><a href="#tab6">资金计划表</a></li>
<li><a href="#tab7">项目预算信息</a></li> <li><a href="#tab7">项目预算信息</a></li>
</ul> </ul>
@ -304,19 +305,19 @@
</#if> </#if>
</td> </td>
</tr> </tr>
<tr class="am-text-nowrap"> <#-- <tr class="am-text-nowrap">-->
<th class="table-title" colspan="1" ><span style="font-size: 15px">主合同收款条款:</span></th> <#-- <th class="table-title" colspan="1" ><span style="font-size: 15px">主合同收款条款:</span></th>-->
<td class="table-title" colspan="5" > <#-- <td class="table-title" colspan="5" >-->
<textarea rows="3" cols="20" style="border-style:none;background-color: white;" disabled="disabled" <#-- <textarea rows="3" cols="20" style="border-style:none;background-color: white;" disabled="disabled"-->
>${project.mainContractCollectionTerms!}</textarea> <#-- >${project.mainContractCollectionTerms!}</textarea>-->
</td> <#-- </td>-->
</tr> <#-- </tr>-->
<tr class="am-text-nowrap"> <#-- <tr class="am-text-nowrap">-->
<th class="table-title" colspan="1" ><span style="font-size: 15px">主合同具体解决方案:</span></th> <#-- <th class="table-title" colspan="1" ><span style="font-size: 15px">主合同具体解决方案:</span></th>-->
<td class="table-title" colspan="5" > <#-- <td class="table-title" colspan="5" >-->
<textarea rows="3" cols="20" style="border-style:none;background-color: white;" disabled="disabled" <#-- <textarea rows="3" cols="20" style="border-style:none;background-color: white;" disabled="disabled"-->
>${project.mainContractResolvePlan!}</textarea> <#-- >${project.mainContractResolvePlan!}</textarea>-->
</td> </tr> <#-- </td> </tr>-->
<tr class="am-text-nowrap"> <tr class="am-text-nowrap">
<th class="table-title" colspan="1" ><span style="font-size: 15px">计收计划:</span></th> <th class="table-title" colspan="1" ><span style="font-size: 15px">计收计划:</span></th>
<td class="table-title" colspan="5" > <td class="table-title" colspan="5" >
@ -707,24 +708,24 @@
</select> </select>
</td> </td>
</tr> </tr>
<tr class="am-text-nowrap"> <#-- <tr class="am-text-nowrap">-->
<th class="table-title" colspan="1" ><span style="font-size: 15px">主合同收款条款:</span></th> <#-- <th class="table-title" colspan="1" ><span style="font-size: 15px">主合同收款条款:</span></th>-->
<td class="table-title" colspan="5" > <#-- <td class="table-title" colspan="5" >-->
<textarea rows="3" cols="20" id="mainContractCollectionTermsBudget" name="mainContractCollectionTermsBudget" maxlength="1000" <#-- <textarea rows="3" cols="20" id="mainContractCollectionTermsBudget" name="mainContractCollectionTermsBudget" maxlength="1000"-->
class="am-input" style="border-style:none;" data-validate-async data-validation-message="请输入收款条款" <#-- class="am-input" style="border-style:none;" data-validate-async data-validation-message="请输入收款条款"-->
placeholder="请输入收款条款" <#-- placeholder="请输入收款条款"-->
>${projectBudget.mainContractCollectionTermsBudget!}</textarea> <#-- >${projectBudget.mainContractCollectionTermsBudget!}</textarea>-->
</td> <#-- </td>-->
</tr> <#-- </tr>-->
<tr class="am-text-nowrap"> <#-- <tr class="am-text-nowrap">-->
<th class="table-title" colspan="1" ><span style="font-size: 15px">主合同具体解决方案:</span></th> <#-- <th class="table-title" colspan="1" ><span style="font-size: 15px">主合同具体解决方案:</span></th>-->
<td class="table-title" colspan="5" > <#-- <td class="table-title" colspan="5" >-->
<textarea rows="3" cols="20" id="mainContractResolvePlanBudget" name="mainContractResolvePlanBudget" maxlength="1000" <#-- <textarea rows="3" cols="20" id="mainContractResolvePlanBudget" name="mainContractResolvePlanBudget" maxlength="1000"-->
class="am-input" style="border-style:none;" data-validate-async data-validation-message="请输入具体解决方案" <#-- class="am-input" style="border-style:none;" data-validate-async data-validation-message="请输入具体解决方案"-->
placeholder="请输入具体解决方案" <#-- placeholder="请输入具体解决方案"-->
>${projectBudget.mainContractResolvePlanBudget!}</textarea> <#-- >${projectBudget.mainContractResolvePlanBudget!}</textarea>-->
</td> <#-- </td>-->
</tr> <#-- </tr>-->
<tr class="am-text-nowrap"> <tr class="am-text-nowrap">
<th class="table-title" colspan="1" ><span style="font-size: 15px">计收计划:</span></th> <th class="table-title" colspan="1" ><span style="font-size: 15px">计收计划:</span></th>
<td class="table-title" colspan="5" > <td class="table-title" colspan="5" >
@ -761,13 +762,13 @@
<thead> <thead>
<tr> <tr>
<th>序号</th> <th>序号</th>
<th width="100px">类</th> <th width="100px">产品大类</th>
<th>名称</th> <th>名称</th>
<th>规格类型</th> <#-- <th>规格类型</th>-->
<th>参数</th> <#-- <th>参数</th>-->
<th>单位</th> <#-- <th>单位</th>-->
<th>数量</th> <#-- <th>数量</th>-->
<th>单价</th> <#-- <th>单价</th>-->
<th>税率(%</th> <th>税率(%</th>
<th>含税总金额(元)</th> <th>含税总金额(元)</th>
<th>不含税金额(元)</th> <th>不含税金额(元)</th>
@ -788,13 +789,13 @@
</select> </select>
</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.spec!}"></td> <#-- <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income" value="${incomeDetail.spec!}"></td>-->
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income" value="${incomeDetail.param!}"></td> <#-- <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income" value="${incomeDetail.param!}"></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" maxlength="14" class="number am-modal-prompt-input am-modal-prompt-input-income input-changeable-amount input-changeable-amount-income" value="${Utils.format(incomeDetail.amount,'0')}" oninput="if(value.length>8)value=value.slice(0,8)" <#--onkeyup="integerNumber(this)"-->></td> <#-- <td><input type="text" maxlength="14" class="number am-modal-prompt-input am-modal-prompt-input-income input-changeable-amount input-changeable-amount-income" value="${Utils.format(incomeDetail.amount,'0')}" oninput="if(value.length>8)value=value.slice(0,8)" &lt;#&ndash;onkeyup="integerNumber(this)"&ndash;&gt;></td>-->
<td><input type="text" maxlength="19" class="price am-modal-prompt-input am-modal-prompt-input-income input-changeable-price input-changeable-price-income" value="${Utils.format2(incomeDetail.price,'0')}" oninput="if(value.length>19)value=value.slice(0,19)"></td> <#-- <td><input type="text" maxlength="19" class="price am-modal-prompt-input am-modal-prompt-input-income input-changeable-price input-changeable-price-income" value="${Utils.format2(incomeDetail.price,'0')}" oninput="if(value.length>19)value=value.slice(0,19)"></td>-->
<td><input type="text" maxlength="5" class="number am-modal-prompt-input am-modal-prompt-input-income input-changeable-tax-rate input-changeable-tax-rate-income" value="${Utils.format(incomeDetail.taxRate,'0')}" oninput="if(value.length>5)value=value.slice(0,5)"></td> <td><input type="text" maxlength="5" class="number am-modal-prompt-input am-modal-prompt-input-income input-changeable-tax-rate input-changeable-tax-rate-income" value="${Utils.format(incomeDetail.taxRate,'0')}" oninput="if(value.length>5)value=value.slice(0,5)"></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax-include input-changeable-total-tax-include-income" 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-include input-changeable-total-tax-include-income" value="${Utils.format(incomeDetail.totalTaxInclude,'0')}"></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax-exclude input-changeable-total-tax-exclude-income" value="${Utils.format(incomeDetail.totalTaxExclude,'0')}" readonly></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax-exclude input-changeable-total-tax-exclude-income" value="${Utils.format(incomeDetail.totalTaxExclude,'0')}" readonly></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax input-changeable-total-tax-income" value="${Utils.format(incomeDetail.totalTax,'0')}" readonly></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-tax input-changeable-total-tax-income" value="${Utils.format(incomeDetail.totalTax,'0')}" readonly></td>
<td><button type="button" style="margin-top: 10px" class="am-btn am-btn-danger am-btn-xs am-round am-modal-line-delete"><span class="am-icon-minus"></span></button></td> <td><button type="button" style="margin-top: 10px" class="am-btn am-btn-danger am-btn-xs am-round am-modal-line-delete"><span class="am-icon-minus"></span></button></td>
@ -805,11 +806,11 @@
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income" value="总计" readonly></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income" value="总计" readonly></td>
<td width="100px"></td> <td width="100px"></td>
<td></td> <td></td>
<td></td> <#-- <td></td>-->
<td></td> <#-- <td></td>-->
<td></td> <#-- <td></td>-->
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-amount-income" value="${Utils.format(incomeTotalAmount,'0')}" readonly <#--onkeyup="integerNumber(this)"-->></td> <#-- <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-amount-income" value="${Utils.format(incomeTotalAmount,'0')}" readonly &lt;#&ndash;onkeyup="integerNumber(this)"&ndash;&gt;></td>-->
<td></td> <#-- <td></td>-->
<td></td> <td></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-total-tax-include-income" value="${Utils.format(budgetBean.incomeTotalTaxInclude,'0')}" readonly></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-total-tax-include-income" value="${Utils.format(budgetBean.incomeTotalTaxInclude,'0')}" readonly></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-total-tax-exclude-income" value="${Utils.format(budgetBean.incomeTotalTaxExclude,'0')}" readonly></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-income input-changeable-total-total-tax-exclude-income" value="${Utils.format(budgetBean.incomeTotalTaxExclude,'0')}" readonly></td>
@ -833,7 +834,7 @@
<div class="fixed-section"> <div class="fixed-section">
<div class="am-modal-bd"> <div class="am-modal-bd">
<div class="fixed-table"> <div class="fixed-table">
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;" id="incomePlanTable"> <table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;" id="payTable">
<thead> <thead>
<tr> <tr>
<th>序号</th> <th>序号</th>
@ -899,27 +900,18 @@
<thead style="display:block;width: 1810px;"> <thead style="display:block;width: 1810px;">
<tr> <tr>
<th width="60px">序号</th> <th width="60px">序号</th>
<th width="70px">费用项目</th> <th width="70px">采购成本项目</th>
<th width="150px">采购类别</th> <th width="150px">产品大类</th>
<th width="100px">名称</th>
<th width="80px">单位</th>
<th width="100px">数量</th>
<th width="100px">单价</th>
<th width="100px">税率(%</th> <th width="100px">税率(%</th>
<th width="100px">含税总金额(元)</th> <th width="100px">含税总金额(元)</th>
<th width="100px">不含税金额(元)</th> <th width="100px">不含税金额(元)</th>
<th width="100px">税金(元)</th> <th width="100px">税金(元)</th>
<th width="100px">签约方</th> <th width="100px">供应商</th>
<th width="60px">是否垫资</th>
<th width="100px">预估垫资金额(元)</th>
<th width="130px">支出时间</th>
<th width="100px">支出金额(元)</th>
<th width="100px">付款方式</th>
<th width="100px">备注</th> <th width="100px">备注</th>
<th width="60px">操作</th> <th width="60px">操作</th>
</tr> </tr>
</thead> </thead>
<tbody style="width: 1819px;"> <tbody style="width: 1810px;">
<#if costDetails??> <#if costDetails??>
<#list costDetails as costDetail> <#list costDetails as costDetail>
<tr> <tr>
@ -927,7 +919,7 @@
<td width="70px"> <td width="70px">
<select style="float: left;" class="am-modal-prompt-input am-modal-prompt-input-cost am-modal-prompt-input-cost-type"> <select style="float: left;" class="am-modal-prompt-input am-modal-prompt-input-cost am-modal-prompt-input-cost-type">
<option value="1" <#if costDetail.type == 1>selected</#if>>设备</option> <option value="1" <#if costDetail.type == 1>selected</#if>>设备</option>
<option value="2" <#if costDetail.type == 2>selected</#if>>工</option> <option value="2" <#if costDetail.type == 2>selected</#if>>工</option>
<option value="3" <#if costDetail.type == 3>selected</#if>>服务</option> <option value="3" <#if costDetail.type == 3>selected</#if>>服务</option>
<option value="4" <#if costDetail.type == 4>selected</#if>>其他</option> <option value="4" <#if costDetail.type == 4>selected</#if>>其他</option>
</select> </select>
@ -947,26 +939,11 @@
</#list> </#list>
</select> </select>
</td> </td>
<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${costDetail.name!}"></td>
<td width="80px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${costDetail.unit!}"></td>
<td width="100px"><input type="text" maxlength="8" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-amount input-changeable-amount-cost" value="${Utils.format(costDetail.amount,'0')}" oninput="if(value.length>8)value=value.slice(0,8)" <#--onkeyup="integerNumber(this)"-->></td>
<td width="100px"><input type="text" maxlength="19" class="price am-modal-prompt-input am-modal-prompt-input-cost input-changeable-price input-changeable-price-cost" value="${Utils.format2(costDetail.price,'0')}" oninput="if(value.length>19)value=value.slice(0,19)"></td>
<td width="100px"><input type="text" maxlength="5" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-tax-rate input-changeable-tax-rate-cost" value="${Utils.format(costDetail.taxRate,'0')}" oninput="if(value.length>5)value=value.slice(0,5)"></td> <td width="100px"><input type="text" maxlength="5" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-tax-rate input-changeable-tax-rate-cost" value="${Utils.format(costDetail.taxRate,'0')}" oninput="if(value.length>5)value=value.slice(0,5)"></td>
<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax-include input-changeable-total-tax-include-cost" value="${Utils.format(costDetail.totalTaxInclude,'0')}" readonly></td> <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax-include input-changeable-total-tax-include-cost" value="${Utils.format(costDetail.totalTaxInclude,'0')}"></td>
<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax-exclude input-changeable-total-tax-exclude-cost" value="${Utils.format(costDetail.totalTaxExclude,'0')}" readonly></td> <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax-exclude input-changeable-total-tax-exclude-cost" value="${Utils.format(costDetail.totalTaxExclude,'0')}" readonly></td>
<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax input-changeable-total-tax-cost" value="${Utils.format(costDetail.totalTax,'0')}" readonly></td> <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-tax input-changeable-total-tax-cost" value="${Utils.format(costDetail.totalTax,'0')}" readonly></td>
<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${costDetail.contractParty!}"></td> <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${costDetail.contractParty!}"></td>
<td width="60px">
<select style="float: left;" class="am-modal-prompt-input am-modal-prompt-input-cost am-modal-prompt-input-cost-underwritten">
<option value="0" <#if costDetail.isUnderwritten == 0>selected</#if>></option>
<option value="1" <#if costDetail.isUnderwritten == 1>selected</#if>>是</option>
<option value="2" <#if costDetail.isUnderwritten == 2>selected</#if>>否</option>
</select>
</td>
<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-underwritten-amount-cost" value="${Utils.format(costDetail.underwrittenAmount,'0')}"></td>
<td width="130px"><input style="float: left;" type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${(costDetail.payTime?string("yyyy-MM-dd"))!}" data-am-datepicker></td>
<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-pay-amount-cost" value="${Utils.format(costDetail.payAmount,'0')}"></td>
<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${costDetail.payWay!}"></td>
<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${costDetail.remark!}"></td> <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="${costDetail.remark!}"></td>
<td width="60px"><button type="button" style="margin-top: 10px" class="am-btn am-btn-danger am-btn-xs am-round am-modal-line-delete"><span class="am-icon-minus"></span></button></td> <td width="60px"><button type="button" style="margin-top: 10px" class="am-btn am-btn-danger am-btn-xs am-round am-modal-line-delete"><span class="am-icon-minus"></span></button></td>
</tr> </tr>
@ -976,20 +953,20 @@
<td width="60px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="总计" readonly></td> <td width="60px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost" value="总计" readonly></td>
<td width="70px"></td> <td width="70px"></td>
<td width="150px"></td> <td width="150px"></td>
<td width="100px"></td> <#-- <td width="100px"></td>-->
<td width="80px"></td> <#-- <td width="80px"></td>-->
<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-amount-cost" value="${Utils.format(costTotalAmount,'0')}" readonly <#--onkeyup="integerNumber(this)"-->></td> <#-- <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-amount-cost" value="${Utils.format(costTotalAmount,'0')}" readonly &lt;#&ndash;onkeyup="integerNumber(this)"&ndash;&gt;></td>-->
<td width="100px"></td> <#-- <td width="100px"></td>-->
<td width="100px"></td> <td width="100px"></td>
<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-total-tax-include-cost" value="${Utils.format(budgetBean.costPurchaseTotalTaxInclude,'0')}" readonly></td> <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-total-tax-include-cost" value="${Utils.format(budgetBean.costPurchaseTotalTaxInclude,'0')}" readonly></td>
<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-total-tax-exclude-cost" value="${Utils.format(budgetBean.costPurchaseTotalTaxExclude,'0')}" readonly></td> <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-total-tax-exclude-cost" value="${Utils.format(budgetBean.costPurchaseTotalTaxExclude,'0')}" readonly></td>
<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-total-tax-cost" value="${Utils.format(budgetBean.costPurchaseTotalTax,'0')}" readonly></td> <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-total-tax-cost" value="${Utils.format(budgetBean.costPurchaseTotalTax,'0')}" readonly></td>
<td width="100px"></td> <td width="100px"></td>
<td width="60px"></td> <#-- <td width="60px"></td>-->
<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-total-underwritten-amount-cost" value="${Utils.format(costUnderwrittenAmountTotal,'0.00')}" readonly></td> <#-- <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-total-underwritten-amount-cost" value="${Utils.format(costUnderwrittenAmountTotal,'0.00')}" readonly></td>-->
<td width="130px"></td> <#-- <td width="130px"></td>-->
<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-total-pay-amount-cost" value="${Utils.format(costPayAmountTotal,'0.00')}" readonly></td> <#-- <td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-total-total-pay-amount-cost" value="${Utils.format(costPayAmountTotal,'0.00')}" readonly></td>-->
<td width="100px"></td> <#-- <td width="100px"></td>-->
<td width="100px"></td> <td width="100px"></td>
<td width="60px"></td> <td width="60px"></td>
</tr> </tr>
@ -1013,12 +990,12 @@
<thead> <thead>
<tr> <tr>
<th>序号</th> <th>序号</th>
<th>财务费用类别</th> <th>费用类别</th>
<th>业务项目</th> <th>业务项目</th>
<th>项目明细</th> <th>项目明细</th>
<th>单位</th> <#-- <th>单位</th>-->
<th>数量</th> <#-- <th>数量</th>-->
<th>单价</th> <#-- <th>单价</th>-->
<th>总金额(元)</th> <th>总金额(元)</th>
<th>支出时间</th> <th>支出时间</th>
<th>支出金额(元)</th> <th>支出金额(元)</th>
@ -1063,10 +1040,10 @@
<input <#if costProjectManageDetail.isDiy == 1>type="text"<#else>type="hidden"</#if> class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage am-modal-prompt-input-cost-project-manage-category2" value="${costProjectManageDetail.name!}"> <input <#if costProjectManageDetail.isDiy == 1>type="text"<#else>type="hidden"</#if> class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage am-modal-prompt-input-cost-project-manage-category2" value="${costProjectManageDetail.name!}">
</td> </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" maxlength="8" class="number am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-amount-project-manage" value="${Utils.format(costProjectManageDetail.amount,'0')}" <#--onkeyup="integerNumber(this)"--> oninput="if(value.length>8)value=value.slice(0,8)"></td> <#-- <td><input type="text" maxlength="8" class="number am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-amount-project-manage" value="${Utils.format(costProjectManageDetail.amount,'0')}" &lt;#&ndash;onkeyup="integerNumber(this)"&ndash;&gt; oninput="if(value.length>8)value=value.slice(0,8)"></td>-->
<td><input type="text" maxlength="19" class="price am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-price-project-manage" value="${Utils.format2(costProjectManageDetail.price,'0')}" oninput="if(value.length>19)value=value.slice(0,19)"></td> <#-- <td><input type="text" maxlength="19" class="price am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-price-project-manage" value="${Utils.format2(costProjectManageDetail.price,'0')}" oninput="if(value.length>19)value=value.slice(0,19)"></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 input-changeable-total-project-manage" value="${Utils.format(costProjectManageDetail.total,'0')}"></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" value="${(costProjectManageDetail.payTime?string("yyyy-MM-dd"))!}" data-am-datepicker></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage" value="${(costProjectManageDetail.payTime?string("yyyy-MM-dd"))!}" data-am-datepicker></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-pay-amount-project-manage" value="${Utils.format(costProjectManageDetail.payAmount,'0.00')}"></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-pay-amount-project-manage" value="${Utils.format(costProjectManageDetail.payAmount,'0.00')}"></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>
@ -1083,9 +1060,9 @@
<td></td> <td></td>
<td></td> <td></td>
<td></td> <td></td>
<td></td> <#-- <td></td>-->
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-total-amount-project-manage" value="${Utils.format(costProjectManageTotalAmount,'0')}" readonly <#--onkeyup="integerNumber(this)"-->></td> <#-- <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-total-amount-project-manage" value="${Utils.format(costProjectManageTotalAmount,'0')}" readonly &lt;#&ndash;onkeyup="integerNumber(this)"&ndash;&gt;></td>-->
<td></td> <#-- <td></td>-->
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-total-total-project-manage" value="${Utils.format(budgetBean.costProjectManageTaxInclude,'0')}" readonly></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-total-total-project-manage" value="${Utils.format(budgetBean.costProjectManageTaxInclude,'0')}" readonly></td>
<td></td> <td></td>
<td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-total-pay-amount-project-manage" value="${Utils.format(managePayAmountTotal,'0.00')}" readonly></td> <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-cost-project-manage input-changeable-total-pay-amount-project-manage" value="${Utils.format(managePayAmountTotal,'0.00')}" readonly></td>
@ -1133,11 +1110,17 @@
<thead style="display: inline-block;overflow-x: scroll;width: 200px;"> <thead style="display: inline-block;overflow-x: scroll;width: 200px;">
<tr style="display: inline-block;"> <tr style="display: inline-block;">
<td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="月份" readonly></td> <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="月份" readonly></td>
<td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="设备支出" readonly></td> <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="设备付款" readonly></td>
<td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="工程支出(含服务+施工+其他)" readonly></td> <#-- <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="工程支出(含服务+施工+其他)" readonly></td>-->
<td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="经营性开支" readonly></td>
<td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="保证金支出" readonly></td> <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="工程付款" readonly></td>
<td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="支出合计" readonly></td> <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="服务付款" readonly></td>
<td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="其他付款" readonly></td>
<td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="项目管理费用付款" readonly></td>
<td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="保证金付款" readonly></td>
<td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="付款合计" readonly></td>
<td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="销售收款" readonly></td> <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="销售收款" readonly></td>
<td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="保证金收款" readonly></td> <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="保证金收款" readonly></td>
<td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="收款合计" readonly></td> <td style="display: block;border-top: 1px solid #ddd;"><input type="text" class="am-modal-prompt-input" value="收款合计" readonly></td>
@ -1151,8 +1134,12 @@
<tbody style="display: inline-block;overflow-x: scroll;width: calc(100% - 210px);white-space: nowrap;"> <tbody style="display: inline-block;overflow-x: scroll;width: calc(100% - 210px);white-space: nowrap;">
<tr style="display: inline-block;"> <tr style="display: inline-block;">
<td style="display: block;"><input type="text" class="am-modal-prompt-input input-total-title-month-budget-plan" value="${projectBudgetPlanDetailTotalTitle.month}" readonly/></td> <td style="display: block;"><input type="text" class="am-modal-prompt-input input-total-title-month-budget-plan" value="${projectBudgetPlanDetailTotalTitle.month}" readonly/></td>
<td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-title-device-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotalTitle.deviceCost)}" readonly/></td> <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-title-device-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotalTitle.deviceCost)}"/></td>
<td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-title-engineer-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotalTitle.engineerCost)}" readonly/></td>
<td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-title-projectCost-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotalTitle.projectCost)}" readonly/></td>
<td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-title-serviceCost-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotalTitle.serviceCost)}" readonly/></td>
<td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-title-otherCost-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotalTitle.otherCost)}" readonly/></td>
<td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-title-project-manage-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotalTitle.projectManageCost)}" readonly/></td> <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-title-project-manage-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotalTitle.projectManageCost)}" readonly/></td>
<td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-title-earnest-money-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotalTitle.earnestMoneyCost)}" readonly/></td> <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-title-earnest-money-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotalTitle.earnestMoneyCost)}" readonly/></td>
<td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-title-total-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotalTitle.totalCost)}" readonly/></td> <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-title-total-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotalTitle.totalCost)}" readonly/></td>
@ -1168,7 +1155,11 @@
<tr id="firstBlock" class="am-hide" style="display: inline-block;"> <tr id="firstBlock" class="am-hide" style="display: inline-block;">
<td style="display: block;"><input type="text" class="am-modal-prompt-input input-total-month-budget-plan" value="${projectBudgetPlanDetailTotal.month}" readonly/></td> <td style="display: block;"><input type="text" class="am-modal-prompt-input input-total-month-budget-plan" value="${projectBudgetPlanDetailTotal.month}" readonly/></td>
<td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-device-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotal.deviceCost)}" readonly/></td> <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-device-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotal.deviceCost)}" readonly/></td>
<td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-engineer-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotal.engineerCost)}" readonly/></td>
<td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-engineer-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotal.projectCost)}" readonly/></td>
<td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-engineer-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotal.serviceCost)}" readonly/></td>
<td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-engineer-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotal.otherCost)}" readonly/></td>
<td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-project-manage-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotal.projectManageCost)}" readonly/></td> <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-project-manage-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotal.projectManageCost)}" readonly/></td>
<td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-earnest-money-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotal.earnestMoneyCost)}" readonly/></td> <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-earnest-money-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotal.earnestMoneyCost)}" readonly/></td>
<td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-total-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotal.totalCost)}" readonly/></td> <td style="display: block;"><input type="text" class="number am-modal-prompt-input input-total-total-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetailTotal.totalCost)}" readonly/></td>
@ -1187,7 +1178,10 @@
<tr style="display: inline-block;"> <tr style="display: inline-block;">
<td style="display: block;"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-month-budget-plan" value="${projectBudgetPlanDetail.month!}" readonly></td> <td style="display: block;"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-month-budget-plan" value="${projectBudgetPlanDetail.month!}" readonly></td>
<td style="display: block;"><input type="text" oninput="if(value.length>16)value=value.slice(0,16)" maxlength="16" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-device-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetail.deviceCost)}"></td> <td style="display: block;"><input type="text" oninput="if(value.length>16)value=value.slice(0,16)" maxlength="16" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-device-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetail.deviceCost)}"></td>
<td style="display: block;"><input type="text" oninput="if(value.length>16)value=value.slice(0,16)" maxlength="16" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-engineer-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetail.engineerCost)}"></td> <td style="display: block;"><input type="text" oninput="if(value.length>16)value=value.slice(0,16)" maxlength="16" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-project-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetail.projectCost)}" readonly></td>
<td style="display: block;"><input type="text" oninput="if(value.length>16)value=value.slice(0,16)" maxlength="16" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-service-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetail.serviceCost )}" readonly></td>
<td style="display: block;"><input type="text" oninput="if(value.length>16)value=value.slice(0,16)" maxlength="16" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-other-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetail.otherCost)}" readonly></td>
<td style="display: block;"><input type="text" oninput="if(value.length>16)value=value.slice(0,16)" maxlength="16" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-project-manage-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetail.projectManageCost)}"></td> <td style="display: block;"><input type="text" oninput="if(value.length>16)value=value.slice(0,16)" maxlength="16" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-project-manage-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetail.projectManageCost)}"></td>
<td style="display: block;"><input type="text" oninput="if(value.length>16)value=value.slice(0,16)" maxlength="16" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-earnest-money-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetail.earnestMoneyCost)}"></td> <td style="display: block;"><input type="text" oninput="if(value.length>16)value=value.slice(0,16)" maxlength="16" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-earnest-money-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetail.earnestMoneyCost)}"></td>
<td style="display: block;"><input type="text" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-total-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetail.totalCost)}" readonly></td> <td style="display: block;"><input type="text" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-total-cost-budget-plan" value="${Utils.format(projectBudgetPlanDetail.totalCost)}" readonly></td>
@ -1273,7 +1267,7 @@
</tbody> </tbody>
(备注:本表所用税率为:<span class="incomeTaxRates">${incomeTaxRates!}</span>) (备注:本表所用税率为:<span class="incomeTaxRates">${incomeTaxRates!}</span>)
</table> </table>
<span>成本</span> <span>采购成本</span>
<#-- <span class="am-text-primary"><a style="cursor: pointer" id="cost-detail">采购成本明细表</a></span> <#-- <span class="am-text-primary"><a style="cursor: pointer" id="cost-detail">采购成本明细表</a></span>
<span class="am-text-primary"><a style="cursor: pointer" id="cost-project-manage-detail">项目管理成本表</a></span>--> <span class="am-text-primary"><a style="cursor: pointer" id="cost-project-manage-detail">项目管理成本表</a></span>-->
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;"> <table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
@ -1297,7 +1291,7 @@
<tr> <tr>
<td>成本</td> <td>成本</td>
<td>采购成本</td> <td>采购成本</td>
<td>工</td> <td>工</td>
<td><input type="text" class="number" name="costPurchaseBuildTaxInclude" value="${Utils.format(budgetBean.costPurchaseBuildTaxInclude,'0')}" readonly title="购买施工含税总额"></td> <td><input type="text" class="number" name="costPurchaseBuildTaxInclude" value="${Utils.format(budgetBean.costPurchaseBuildTaxInclude,'0')}" readonly title="购买施工含税总额"></td>
<td><input type="text" class="number" name="costPurchaseBuildTaxExclude" value="${Utils.format(budgetBean.costPurchaseBuildTaxExclude,'0')}" readonly title="购买施工不含税总额"></td> <td><input type="text" class="number" name="costPurchaseBuildTaxExclude" value="${Utils.format(budgetBean.costPurchaseBuildTaxExclude,'0')}" readonly title="购买施工不含税总额"></td>
<td><input type="text" class="number" name="costPurchaseBuildTax" value="${Utils.format(budgetBean.costPurchaseBuildTax,'0')}" readonly title="购买施工税金"></td> <td><input type="text" class="number" name="costPurchaseBuildTax" value="${Utils.format(budgetBean.costPurchaseBuildTax,'0')}" readonly title="购买施工税金"></td>
@ -1318,14 +1312,7 @@
<td><input type="text" class="number" name="costPurchaseOtherTaxExclude" value="${Utils.format(budgetBean.costPurchaseOtherTaxExclude,'0')}" readonly title="购买其他不含税总额"></td> <td><input type="text" class="number" name="costPurchaseOtherTaxExclude" value="${Utils.format(budgetBean.costPurchaseOtherTaxExclude,'0')}" readonly title="购买其他不含税总额"></td>
<td><input type="text" class="number" name="costPurchaseOtherTax" value="${Utils.format(budgetBean.costPurchaseOtherTax,'0')}" readonly title="购买其他税金"></td> <td><input type="text" class="number" name="costPurchaseOtherTax" value="${Utils.format(budgetBean.costPurchaseOtherTax,'0')}" readonly title="购买其他税金"></td>
</tr> </tr>
<tr>
<td>成本</td>
<td>项目管理成本</td>
<td>项目管理成本</td>
<td><input type="text" class="number" name="costProjectManageTaxInclude" value="${Utils.format(budgetBean.costProjectManageTaxInclude,'0')}" readonly title="项目管理成本总额含税"></td>
<td><input type="text" class="number" name="costProjectManageTaxExclude" value="${Utils.format(budgetBean.costProjectManageTaxExclude,'0')}" readonly title="项目管理成本总额不含税"></td>
<td><input type="text" class="number" name="costProjectManageTax" value="财务计取以不含税方式核算" readonly title="项目管理成本税金"></td>
</tr>
<tr> <tr>
<td>成本</td> <td>成本</td>
<td>其他</td> <td>其他</td>
@ -1355,15 +1342,25 @@
<td>费用项目</td> <td>费用项目</td>
<td>不含税金额(元)</td> <td>不含税金额(元)</td>
</tr> </tr>
<tr>
<td>成本</td>
<td>项目管理成本</td>
<td><input type="text" class="number" name="costProjectManageTaxExclude" value="${Utils.format(budgetBean.costProjectManageTaxExclude,'0')}" readonly title="项目管理成本总额不含税"></td>
</tr>
<tr> <tr>
<td>财务费用</td> <td>财务费用</td>
<td>资金占用成本</td> <td>资金占用成本</td>
<td><input type="text" class="number" name="costExpropriationTaxExclude" value="${Utils.format(budgetBean.costExpropriationTaxExclude,'0')}" readonly title="资金占用成本不含税总额"></td> <td><input type="text" class="number" name="costExpropriationTaxExclude" value="${Utils.format(budgetBean.costExpropriationTaxExclude,'0')}" readonly title="资金占用成本不含税总额"></td>
</tr> </tr>
<#-- <tr>-->
<#-- <td>公司管理费用</td>-->
<#-- <td></td>-->
<#-- <td><input type="text" class="number" maxlength="16" name="costCompanyManageTaxExclude" value="${Utils.format(budgetBean.costCompanyManageTaxExclude,'0')}" readonly title="公司管理费用不含税总额"></td>-->
<#-- </tr>-->
<tr> <tr>
<td>公司管理费用</td> <td>合计</td>
<td></td> <td></td>
<td><input type="text" class="number" maxlength="16" name="costCompanyManageTaxExclude" value="${Utils.format(budgetBean.costCompanyManageTaxExclude,'0')}" readonly title="公司管理费用不含税总额"></td> <td><input type="text" class="number" name="incomeTotalTax" value="${(Utils.format(budgetBean.costExpropriationTaxExclude+budgetBean.costProjectManageTaxExclude,'0'))}" readonly title="此列累计"></td>
</tr> </tr>
</tbody> </tbody>
(备注:财务计取以不含税方式核算) (备注:财务计取以不含税方式核算)
@ -1382,20 +1379,20 @@
<td>项目毛利A</td> <td>项目毛利A</td>
<td><input type="text" class="number" name="projectGrossProfitARate" value="${Utils.format(budgetBean.projectGrossProfitARate,'0')}" readonly title="毛利A不含税/收入总计(不含税)"></td> <td><input type="text" class="number" name="projectGrossProfitARate" value="${Utils.format(budgetBean.projectGrossProfitARate,'0')}" readonly title="毛利A不含税/收入总计(不含税)"></td>
<td><input type="text" class="number" name="projectGrossProfitA" value="${Utils.format(budgetBean.projectGrossProfitA,'0')}" readonly title="收入总计(不含税)-成本总计(不含税)"></td> <td><input type="text" class="number" name="projectGrossProfitA" value="${Utils.format(budgetBean.projectGrossProfitA,'0')}" readonly title="收入总计(不含税)-成本总计(不含税)"></td>
<td>毛利A=收入明细表金额总计(不含税)-采购成本明细表金额总计(不含税)</td> <td>项目毛利A=收入合计(不含税)-采购成本合计(不含税)</td>
</tr> </tr>
<tr> <tr>
<td>项目毛利(元)</td> <td>项目毛利B(元)</td>
<td><input type="text" class="number" name="projectGrossProfitRate" value="${Utils.format(budgetBean.projectGrossProfitRate,'0')}" readonly title="毛利(不含税)/收入总计(不含税)"></td> <td><input type="text" class="number" name="projectGrossProfitRate" value="${Utils.format(budgetBean.projectGrossProfitRate,'0')}" readonly title="毛利(不含税)/收入总计(不含税)"></td>
<td><input type="text" class="number" name="projectGrossProfit" value="${Utils.format(budgetBean.projectGrossProfit,'0')}" readonly title="收入总计(不含税)-成本总计(不含税)-财务费用总计(不含税)"></td> <td><input type="text" class="number" name="projectGrossProfit" value="${Utils.format(budgetBean.projectGrossProfit,'0')}" readonly title="收入总计(不含税)-成本总计(不含税)-财务费用总计(不含税)"></td>
<td>毛利=收入总计(不含税)-成本总计(不含税)-财务费用总计(不含税)</td> <td>项目毛利B=项目毛利A-财务费用-项目管理费用</td>
</tr>
<tr>
<td>项目贡献利润(元)</td>
<td><input type="text" class="number" name="projectContributionProfitRate" value="${Utils.format(budgetBean.projectContributionProfitRate,'0')}" readonly title="贡献利润(不含税)/收入总计(不含税)"></td>
<td><input type="text" class="number" name="projectContributionProfit" value="${Utils.format(budgetBean.projectContributionProfit,'0')}" readonly title="项目毛利(不含税)-公司管理费用总计(不含税)"></td>
<td>贡献利润=项目毛利(不含税)-公司管理费用总计(不含税)</td>
</tr> </tr>
<#-- <tr>-->
<#-- <td>项目贡献利润(元)</td>-->
<#-- <td><input type="text" class="number" name="projectContributionProfitRate" value="${Utils.format(budgetBean.projectContributionProfitRate,'0')}" readonly title="贡献利润(不含税)/收入总计(不含税)"></td>-->
<#-- <td><input type="text" class="number" name="projectContributionProfit" value="${Utils.format(budgetBean.projectContributionProfit,'0')}" readonly title="项目毛利(不含税)-公司管理费用总计(不含税)"></td>-->
<#-- <td>贡献利润=项目毛利(不含税)-公司管理费用总计(不含税)</td>-->
<#-- </tr>-->
</tbody> </tbody>
</table> </table>
@ -1481,6 +1478,82 @@
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="am-tab-panel am-fade am-in" id="tab9">
<div class="fixed-section">
<div class="am-modal-bd">
<div class="fixed-actions">
<#-- <div class="am-btn-toolbar">-->
<#-- <div class="am-btn-group am-btn-group-xs">-->
<#-- <div class="am-btn-group am-btn-group-xs am-form-file">-->
<#-- <button type="button" id="bt_import" class="am-btn am-btn-default">-->
<#-- <span class="am-icon-archive"></span>-->
<#-- 批量导入-->
<#-- </button>-->
<#-- <input id="doc-form-file2" type="file" name="file" onChange="ajaxUploadFile2('doc-form-file2','${base}/project/batchCostImport?id=' + ${project.id})">-->
<#-- </div>-->
<#-- <button type="button" class="am-btn am-btn-default" onclick="location.href='${base}/project/costTemplate'">-->
<#-- <span class="am-icon-archive"></span> 导入模板下载-->
<#-- </button>-->
<#-- </div>-->
<#-- </div>-->
</div>
<div class="fixed-table has-actions is-vertical-scroll">
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;" id="payTable">
<thead style="display:block;">
<tr>
<th width="60px">序号</th>
<th width="100px">付款节点</th>
<th width="100px">付款时间</th>
<th width="100px">采购成本项目</th>
<th width="100px">付款金额</th>
<th width="100px">供应商</th>
<th width="60px">操作</th>
</tr>
</thead>
<tbody>
<#if budgetPayPlan??>
<#list budgetPayPlan as payDetail>
<tr>
<td width="60px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-pay input-budget-num" value="${(payDetail_index+1)!}" readonly></td>
<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-pay input-changeable-pay-point" value="${payDetail.payPoint}" ></td>
<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-pay input-changeable-pay-time" value="${(payDetail.payTime?string("yyyy-MM-dd"))!}" data-am-datepicker ></td>
<td width="100px">
<select style="float: left;" class="am-modal-prompt-input am-modal-prompt-input-pay input-changeable-pay-project">
<option value="1" <#if payDetail.type == 1>selected</#if>>设备成本</option>
<option value="2" <#if payDetail.type == 2>selected</#if>>工程成本</option>
<option value="3" <#if payDetail.type == 3>selected</#if>>服务成本</option>
<option value="4" <#if payDetail.type == 4>selected</#if>>其他成本</option>
</select>
</td>
<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-pay input-changeable-pay-amount" value="${Utils.format(payDetail.payAmount,'0')}"></td>
<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-pay input-changeable-pay-supplier" value="${payDetail.supplier}"></td>
<td width="60px"><button type="button" style="margin-top: 10px" class="am-btn am-btn-danger am-btn-xs am-round am-modal-line-delete"><span class="am-icon-minus"></span></button></td>
</tr>
</#list>
</#if>
<tr class="total-new" id="payTotal">
<td width="60px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-pay" value="总计" readonly></td>
<td width="100px"></td>
<td width="100px"></td>
<td width="100px"></td>
<td width="100px"><input type="text" class="am-modal-prompt-input am-modal-prompt-input-pay input-changeable-pay-amount-total" value="${Utils.format(costDetail.payPurchaseTotalTax,'0')}" readonly></td>
<td width="100px"></td>
<td width="60px"></td>
</tr>
</tbody>
</table>
</div>
<button type="button" style="margin-top: 10px" id="payAddBtn" class="am-btn am-btn-primary am-btn-xs am-round fixed-btns-row"><span class="am-icon-plus"></span></button>
</div>
<div class="am-modal-footer">
<#--<span class="am-modal-btn" data-am-modal-cancel>取消</span>-->
<span class="am-modal-btn" data-am-modal-confirm id="payTableSave">保存</span>
</div>
</div>
</div>
</div> </div>
@ -1502,7 +1575,8 @@
<script src="${base}/assets/js/project_budget.js"></script> <script src="${base}/assets/js/project_budget.js"></script>
<script src="${base}/assets/js/project_budget_income.js"></script> <script src="${base}/assets/js/project_budget_income.js"></script>
<script src="${base}/assets/js/project_budget_income_plan.js"></script> <script src="${base}/assets/js/project_budget_income_plan.js"></script>
<script src="${base}/assets/js/project_budget_cost.js"></script> <script src="${base}/assets/js/project_budget_cost.js">
</script><script src="${base}/assets/js/project_budget_pay.js"></script>
<script src="${base}/assets/js/project_budget_cost_project_manage.js"></script> <script src="${base}/assets/js/project_budget_cost_project_manage.js"></script>
<script src="${base}/assets/js/project_budget_plan.js"></script> <script src="${base}/assets/js/project_budget_plan.js"></script>
<script type="text/javascript" src="${base}/common/js/jquery.ajaxfileupload.js"></script> <script type="text/javascript" src="${base}/common/js/jquery.ajaxfileupload.js"></script>

View File

@ -300,24 +300,24 @@
</select> </select>
</td> </td>
</tr> </tr>
<tr class="am-text-nowrap"> <#-- <tr class="am-text-nowrap">-->
<th class="table-title" colspan="1" ><span style="font-size: 15px">主合同收款条款:</span></th> <#-- <th class="table-title" colspan="1" ><span style="font-size: 15px">主合同收款条款:</span></th>-->
<td class="table-title" colspan="5" > <#-- <td class="table-title" colspan="5" >-->
<textarea rows="3" cols="20" id="mainContractCollectionTerms" name="mainContractCollectionTerms" maxlength="1000" <#-- <textarea rows="3" cols="20" id="mainContractCollectionTerms" name="mainContractCollectionTerms" maxlength="1000"-->
class="am-input" style="border-style:none;" data-validate-async data-validation-message="请输入收款条款" <#-- class="am-input" style="border-style:none;" data-validate-async data-validation-message="请输入收款条款"-->
placeholder="请输入收款条款" <#-- placeholder="请输入收款条款"-->
></textarea> <#-- ></textarea>-->
</td> <#-- </td>-->
</tr> <#-- </tr>-->
<tr class="am-text-nowrap"> <#-- <tr class="am-text-nowrap">-->
<th class="table-title" colspan="1" ><span style="font-size: 15px">主合同具体解决方案:</span></th> <#-- <th class="table-title" colspan="1" ><span style="font-size: 15px">主合同具体解决方案:</span></th>-->
<td class="table-title" colspan="5" > <#-- <td class="table-title" colspan="5" >-->
<textarea rows="3" cols="20" id="mainContractResolvePlan" name="mainContractResolvePlan" maxlength="1000" <#-- <textarea rows="3" cols="20" id="mainContractResolvePlan" name="mainContractResolvePlan" maxlength="1000"-->
class="am-input" style="border-style:none;" data-validate-async data-validation-message="请输入具体解决方案" <#-- class="am-input" style="border-style:none;" data-validate-async data-validation-message="请输入具体解决方案"-->
placeholder="请输入具体解决方案" <#-- placeholder="请输入具体解决方案"-->
></textarea> <#-- ></textarea>-->
</td> <#-- </td>-->
</tr> <#-- </tr>-->
<tr class="am-text-nowrap"> <tr class="am-text-nowrap">
<th class="table-title" colspan="1" ><span style="font-size: 15px">计收计划:</span></th> <th class="table-title" colspan="1" ><span style="font-size: 15px">计收计划:</span></th>
<td class="table-title" colspan="5" > <td class="table-title" colspan="5" >

View File

@ -347,24 +347,24 @@
</select> </select>
</td> </td>
</tr> </tr>
<tr class="am-text-nowrap"> <#-- <tr class="am-text-nowrap">-->
<th class="table-title" colspan="1" ><span style="font-size: 15px">主合同收款条款:</span></th> <#-- <th class="table-title" colspan="1" ><span style="font-size: 15px">主合同收款条款:</span></th>-->
<td class="table-title" colspan="5" > <#-- <td class="table-title" colspan="5" >-->
<textarea rows="3" cols="20" id="mainContractCollectionTerms" name="mainContractCollectionTerms" maxlength="1000" <#-- <textarea rows="3" cols="20" id="mainContractCollectionTerms" name="mainContractCollectionTerms" maxlength="1000"-->
class="am-input" style="border-style:none;" data-validate-async data-validation-message="请输入收款条款" <#-- class="am-input" style="border-style:none;" data-validate-async data-validation-message="请输入收款条款"-->
placeholder="请输入收款条款" <#-- placeholder="请输入收款条款"-->
>${project.mainContractCollectionTerms!}</textarea> <#-- >${project.mainContractCollectionTerms!}</textarea>-->
</td> <#-- </td>-->
</tr> <#-- </tr>-->
<tr class="am-text-nowrap"> <#-- <tr class="am-text-nowrap">-->
<th class="table-title" colspan="1" ><span style="font-size: 15px">主合同具体解决方案:</span></th> <#-- <th class="table-title" colspan="1" ><span style="font-size: 15px">主合同具体解决方案:</span></th>-->
<td class="table-title" colspan="5" > <#-- <td class="table-title" colspan="5" >-->
<textarea rows="3" cols="20" id="mainContractResolvePlan" name="mainContractResolvePlan" maxlength="1000" <#-- <textarea rows="3" cols="20" id="mainContractResolvePlan" name="mainContractResolvePlan" maxlength="1000"-->
class="am-input" style="border-style:none;" data-validate-async data-validation-message="请输入具体解决方案" <#-- class="am-input" style="border-style:none;" data-validate-async data-validation-message="请输入具体解决方案"-->
placeholder="请输入具体解决方案" <#-- placeholder="请输入具体解决方案"-->
>${project.mainContractResolvePlan!}</textarea> <#-- >${project.mainContractResolvePlan!}</textarea>-->
</td> <#-- </td>-->
</tr> <#-- </tr>-->
<tr class="am-text-nowrap"> <tr class="am-text-nowrap">
<th class="table-title" colspan="1" ><span style="font-size: 15px">计收计划:</span></th> <th class="table-title" colspan="1" ><span style="font-size: 15px">计收计划:</span></th>
<td class="table-title" colspan="5" > <td class="table-title" colspan="5" >