diff --git a/src/main/resources/static/assets/js/project_budget.js b/src/main/resources/static/assets/js/project_budget.js
index 540001a..52e0dba 100644
--- a/src/main/resources/static/assets/js/project_budget.js
+++ b/src/main/resources/static/assets/js/project_budget.js
@@ -288,7 +288,6 @@ $(function () {
var projectGrossProfitA = $('[name="projectGrossProfitA"]').val()
if (limitTotal > ((Number(projectGrossProfitA)-(totalTotal-limitTotal)) * 0.1)) {
layuiAlert(`差旅费+业务费总金额不超过【毛利A(${projectGrossProfitA})-(项目管理费用-差旅费-业务费)】*10%`);
-
return
}
if (dataManage) {
diff --git a/src/main/resources/static/assets/js/project_budget_pay.js b/src/main/resources/static/assets/js/project_budget_pay.js
index fbce2d7..b6be12a 100644
--- a/src/main/resources/static/assets/js/project_budget_pay.js
+++ b/src/main/resources/static/assets/js/project_budget_pay.js
@@ -119,8 +119,8 @@ $(function () {
var data = collectData("am-modal-prompt-input-pay");
//data = prepareAjaxData(data, COST_DETAIL_ARR, $("#id").val(),false);
data = prepareAjaxDataVerify(data, pay_DETAIL2, $("#id").val());
- var flag=verifyBudgetPay()
- if(!flag) return
+ var flag = verifyBudgetPay()
+ if (!flag) return
if (data) {
postAjax(base + "/project/budgetEditSaveBudgetPayPlan", data, updateCostData);
}
@@ -132,7 +132,8 @@ $(function () {
//绑定删除按钮
bindDeleteBtnPay();
-
+ //绑定总计值
+ bindPayTotal();
//初始化大类和类别的数据
getAjax(base + "/procurement/type/map", null, initTypeCategory);
});
@@ -160,7 +161,7 @@ function appendTrPay() {
'' +
'' +
'' +
- '
| ' +
+ ' | ' +
' | ' +
' | ' +
@@ -341,17 +342,58 @@ function initTypeCategory(params, data) {
}
//校验付款明细表
-function verifyBudgetPay() {
+function verifyBudgetPay(isApprove) {
+ // 时间必填校验
var timeValue = $(".input-changeable-pay-time");
- var flag=true
+ var flag = true
var timeFlag = true
timeValue.each((index, element) => {
if ($(element).val().length != 10)
timeFlag = false
})
if (timeFlag == false) {
- flag=false
+ flag = false
layuiAlert('付款计划表中付款时间为必填')
}
+ // 采购成本与付款金额校验
+ if (isApprove) {
+ var payData = prepareAjaxDataVerify(collectData("am-modal-prompt-input-pay"), pay_DETAIL2, $("#id").val())
+ var costData = prepareAjaxDataVerify(collectData("am-modal-prompt-input-cost"), COST_DETAIL2, $("#id").val())
+
+ var payTotal_equipment = calculateTotal(payData, 1,'payProject','payAmount');
+ var payTotal_project = calculateTotal(payData, 2,'payProject','payAmount');
+ var payTotal_server = calculateTotal(payData, 3,'payProject','payAmount');
+ var payTotal_other = calculateTotal(payData, 4,'payProject','payAmount');
+
+ var costTotal_equipment = calculateTotal(costData, 1,'type','totalTaxExclude');
+ var costTotal_project = calculateTotal(costData, 2,'type','totalTaxExclude');
+ var costTotal_server = calculateTotal(costData, 3,'type','totalTaxExclude');
+ var costTotal_other = calculateTotal(costData, 4,'type','totalTaxExclude');
+
+ console.log(2333,payTotal_equipment,payTotal_project,payTotal_server,payTotal_other)
+ console.log(3333,costTotal_equipment,costTotal_project,costTotal_server,costTotal_other)
+
+
+ if (payTotal_equipment != costTotal_equipment) {
+ flag = false
+ layuiAlert('[付款计划表中"设备"成本总金]额需要与[采购成本明细表中"设备"成本总金额]一致')
+ } else if (payTotal_project != costTotal_project) {
+ flag = false
+ layuiAlert('[付款计划表中"工程"成本总金]额需要与[采购成本明细表中"工程"成本总金额]一致')
+ } else if (payTotal_server != costTotal_server) {
+ flag = false
+ layuiAlert('[付款计划表中"服务"成本总金]额需要与[采购成本明细表中"服务"成本总金额]一致')
+ } else if (payTotal_other != costTotal_other) {
+ flag = false
+ layuiAlert('[付款计划表中"其他"成本总金]额需要与[采购成本明细表中"其他"成本总金额]一致')
+ }
+ }
+
return flag
}
+
+function calculateTotal(payData, type,key,value) {
+ return payData.details.reduce((total, now) => {
+ return now[key] == type ? now[value] + total : total;
+ }, 0);
+}
diff --git a/src/main/resources/templates/admin/project_budget_edit.ftl b/src/main/resources/templates/admin/project_budget_edit.ftl
index 308ff3d..fda2f75 100644
--- a/src/main/resources/templates/admin/project_budget_edit.ftl
+++ b/src/main/resources/templates/admin/project_budget_edit.ftl
@@ -872,6 +872,9 @@
onclick="location.href='${base}/project/incomeTemplate'">
导入模板下载
+ 销售合同配置清单
+
+
@@ -1517,7 +1520,7 @@
readonly/>
+ value="${Utils.format(projectBudgetPlanDetailTotalTitle.deviceCost)}" readonly/>
|
+ value="${Utils.format(projectBudgetPlanDetail.deviceCost)}" readonly>
|
-->
|
合计 |
- |
- |
+<#-- | -->
+<#-- | -->
|
@@ -2438,8 +2441,7 @@
console.log(data);
//设置服务器返回的url
$("#collaboratorUrlBudget").val(data.result.data.url);
- $("#collaboratorUrl_span").text(data.result.data.url);
- $("#collaboratorUrl_check").text("已上传");
+ $("#collaboratorUrl_check").text(data.result.data.newName);
// console.log("collboratorUrl: " + $("#collaboratorUrl").val());
setTimeout(function () {
progressArea.addClass("am-hide");
@@ -2498,7 +2500,7 @@
console.log(data);
//设置服务器返回的url
$("#collaboratorUrl").val(data.result.data.url);
- $("#collaboratorUrl_span").text(data.result.data.url);
+ $("#collaboratorUrl_check").text(data.result.newName);
// console.log("collboratorUrl: " + $("#collaboratorUrl").val());
setTimeout(function () {
progressArea.addClass("am-hide");