Compare commits

...

3 Commits

Author SHA1 Message Date
‘wangjiuyun fd43f2f71f 除附件外功能 2024-10-30 16:31:46 +08:00
‘wangjiuyun 09680c6b43 Merge branch 'dev_1.0.0' of http://git.unissense.tech/mula/fourcal into Branch_dev_1.0.0 2024-10-30 14:10:20 +08:00
‘wangjiuyun 8050f16a11 未完成文件上传 2024-10-30 14:10:11 +08:00
4 changed files with 139 additions and 120 deletions

View File

@ -146,15 +146,7 @@ $(function () {
} }
dataManage = prepareAjaxDataVerify(dataManage, COST_PROJECT_MANAGE_DETAIL2, $("#id").val()); dataManage = prepareAjaxDataVerify(dataManage, COST_PROJECT_MANAGE_DETAIL2, $("#id").val());
var totalTotal=dataManage.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%`);
$("#saveDraft").attr('disabled', false)
return
}
if (dataManage) { if (dataManage) {
postAjax(base + "/project/budgetEditSaveCostProjectManageDetail", dataManage); postAjax(base + "/project/budgetEditSaveCostProjectManageDetail", dataManage);
} }
@ -288,9 +280,14 @@ $(function () {
var totalTotal = dataManage.details.reduce((total, now) => { var totalTotal = dataManage.details.reduce((total, now) => {
return now.total + total return now.total + total
}, 0) }, 0)
var limitTotal = dataManage.details.reduce((total, now) => {
if (now.type == 2 && (now.name == 5 || now.name == 4))
return now.total + total
else return total
}, 0)
var projectGrossProfitA = $('[name="projectGrossProfitA"]').val() var projectGrossProfitA = $('[name="projectGrossProfitA"]').val()
if(Number(totalTotal)> (Number(projectGrossProfitA)*0.1) ){ if (limitTotal > ((Number(projectGrossProfitA)-(totalTotal-limitTotal)) * 0.1)) {
layuiAlert(`总金额合计不能超过毛利A(${projectGrossProfitA})的10%`); layuiAlert(`差旅费+业务费总金额不超过毛利A(${projectGrossProfitA})-(项目管理费用-差旅费-业务费)】*10%`);
return return
} }
if (dataManage) { if (dataManage) {
@ -412,8 +409,6 @@ function checkIfFillIn() {
} }
// if (projectNo.length <= 0) { // if (projectNo.length <= 0) {
// window.confirm('项目编号不能为空'); // window.confirm('项目编号不能为空');
// check = 1; // check = 1;
@ -428,9 +423,6 @@ function checkIfFillIn() {
// } // }
if (underwrittenMode > 2 && (advanceInterestAmount == undefined || advanceInterestAmount.length <= 0)) { if (underwrittenMode > 2 && (advanceInterestAmount == undefined || advanceInterestAmount.length <= 0)) {
window.confirm('垫资利息不能为空'); window.confirm('垫资利息不能为空');
check = 1; check = 1;

View File

@ -445,7 +445,7 @@ function bindOtherOtherChangeable() {
*/ */
function bindTypeSelectChange() { function bindTypeSelectChange() {
//大类变化联动类别 //大类变化联动类别
$(".input-changeable-tax-rate-income-select").on('change',function () { $(".input-changeable-tax-rate-cost-select").on('change',function () {
var nameSelect = $(this).parent().parent().find(".input-changeable-tax-rate-cost-select"); var nameSelect = $(this).parent().parent().find(".input-changeable-tax-rate-cost-select");
var nameInput = $(this).parent().parent().find(".input-changeable-tax-rate-cost-name"); var nameInput = $(this).parent().parent().find(".input-changeable-tax-rate-cost-name");
var type = $(this).val(); var type = $(this).val();

View File

@ -132,7 +132,8 @@ $(function () {
//绑定删除按钮 //绑定删除按钮
bindDeleteBtnPay(); bindDeleteBtnPay();
//绑定总计值
bindPayTotal();
//初始化大类和类别的数据 //初始化大类和类别的数据
getAjax(base + "/procurement/type/map", null, initTypeCategory); getAjax(base + "/procurement/type/map", null, initTypeCategory);
}); });
@ -160,7 +161,7 @@ function appendTrPay() {
'<option value="4">其他成本</option>' + '<option value="4">其他成本</option>' +
'</select>' + '</select>' +
'</td>' + '</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-amount input-changeable-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="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>' + '<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>' +
@ -341,7 +342,8 @@ function initTypeCategory(params, data) {
} }
//校验付款明细表 //校验付款明细表
function verifyBudgetPay() { function verifyBudgetPay(isApprove) {
// 时间必填校验
var timeValue = $(".input-changeable-pay-time"); var timeValue = $(".input-changeable-pay-time");
var flag = true var flag = true
var timeFlag = true var timeFlag = true
@ -353,5 +355,45 @@ function verifyBudgetPay() {
flag = false flag = false
layuiAlert('付款计划表中付款时间为必填') 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 return flag
} }
function calculateTotal(payData, type,key,value) {
return payData.details.reduce((total, now) => {
return now[key] == type ? now[value] + total : total;
}, 0);
}

View File

@ -872,6 +872,9 @@
onclick="location.href='${base}/project/incomeTemplate'"> onclick="location.href='${base}/project/incomeTemplate'">
<span class="am-icon-archive"></span> 导入模板下载 <span class="am-icon-archive"></span> 导入模板下载
</button> </button>
<span>销售合同配置清单</span>
<input id="file_upload_icon" type="file" name="files[]" accept=".xls,.xlsx">
<span id="collaboratorUrl"></span>
</div> </div>
</div> </div>
</div> </div>
@ -1133,44 +1136,27 @@
</option> </option>
</select> </select>
</td> </td>
<td> <td width="150px">
<select <#if incomeDetail.name!='华智产品'&&incomeDetail.name!='华三产品'&&incomeDetail.name!='汇智产品'>style="display:none"</#if> <select <#if costDetail.category!='华智产品'&&costDetail.category!='华三产品'&&costDetail.category!='汇智产品'>style="display:none"</#if>
class="am-modal-prompt-input am-modal-prompt-input am-modal-prompt-input-cost am-modal-prompt-input-cost-category input-changeable-tax-rate-cost-select"> class="am-modal-prompt-input am-modal-prompt-input am-modal-prompt-input-cost am-modal-prompt-input-cost-category input-changeable-tax-rate-cost-select">
<option value="华智产品" <option value="华智产品"
<#if incomeDetail.name ="华智产品" >selected</#if>> <#if costDetail.category ="华智产品" >selected</#if>>
华智产品 华智产品
</option> </option>
<option value="华三产品" <option value="华三产品"
<#if incomeDetail.name ="华三产品">selected</#if>> <#if costDetail.category ="华三产品">selected</#if>>
华三产品 华三产品
</option> </option>
<option value="汇智产品" <option value="汇智产品"
<#if incomeDetail.name ="汇智产品">selected</#if>> <#if costDetail.category ="汇智产品">selected</#if>>
汇智产品 汇智产品
</option> </option>
<option value="自定义">自定义</option> <option value="自定义">自定义</option>
</select> </select>
<input <#if incomeDetail.name!='华智产品'&&incomeDetail.name!='华三产品'&&incomeDetail.name!='汇智产品'>type="text" <input <#if costDetail.category!='华智产品'&&costDetail.category!='华三产品'&&costDetail.category!='汇智产品'>type="text"
<#else>type="hidden"</#if> <#else>type="hidden"</#if>
class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-tax-rate-cost-name" class="am-modal-prompt-input am-modal-prompt-input-cost input-changeable-tax-rate-cost-name"
value="${incomeDetail.name!}"> value="${costDetail.category!}">
</td>
<td width="150px">
<select style="float: left;"
class="am-modal-prompt-input am-modal-prompt-input-cost am-modal-prompt-input-cost-category">
<#--<option value="1" <#if costDetail.category == 1>selected</#if>>华智产品</option>
<option value="2" <#if costDetail.category == 2>selected</#if>>紫光其他产品</option>
<option value="3" <#if costDetail.category == 3>selected</#if>>外购产品</option>
<option value="4" <#if costDetail.category == 4>selected</#if>>外购工程</option>
<option value="5" <#if costDetail.category == 5>selected</#if>>华智服务</option>
<option value="6" <#if costDetail.category == 6>selected</#if>>紫光其他服务</option>
<option value="7" <#if costDetail.category == 7>selected</#if>>外购服务</option>
<option value="8" <#if costDetail.category == 8>selected</#if>>其他</option>-->
<#list procurementTypes as procurementType>
<option value="${procurementType.id}"
<#if costDetail.category == procurementType.id>selected</#if>>${procurementType.name}</option>
</#list>
</select>
</td> </td>
<td width="100px"><input type="text" maxlength="5" <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" class="number am-modal-prompt-input am-modal-prompt-input-cost input-changeable-tax-rate input-changeable-tax-rate-cost"
@ -1534,7 +1520,7 @@
readonly/></td> readonly/></td>
<td style="display: block;"><input type="text" <td style="display: block;"><input type="text"
class="number am-modal-prompt-input input-total-title-device-cost-budget-plan" class="number am-modal-prompt-input input-total-title-device-cost-budget-plan"
value="${Utils.format(projectBudgetPlanDetailTotalTitle.deviceCost)}"/> value="${Utils.format(projectBudgetPlanDetailTotalTitle.deviceCost)}" readonly/>
</td> </td>
<td style="display: block;"><input type="text" <td style="display: block;"><input type="text"
@ -1677,7 +1663,7 @@
oninput="if(value.length>16)value=value.slice(0,16)" oninput="if(value.length>16)value=value.slice(0,16)"
maxlength="16" maxlength="16"
class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-device-cost-budget-plan" class="number am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-device-cost-budget-plan"
value="${Utils.format(projectBudgetPlanDetail.deviceCost)}"> value="${Utils.format(projectBudgetPlanDetail.deviceCost)}" readonly>
</td> </td>
<td style="display: block;"><input type="text" <td style="display: block;"><input type="text"
oninput="if(value.length>16)value=value.slice(0,16)" oninput="if(value.length>16)value=value.slice(0,16)"
@ -1940,8 +1926,8 @@
<#-- </tr>--> <#-- </tr>-->
<tr> <tr>
<td>合计</td> <td>合计</td>
<td></td> <#-- <td></td>-->
<td></td> <#-- <td></td>-->
<td><input type="text" class="number" name="costTotalTaxInclude" <td><input type="text" class="number" name="costTotalTaxInclude"
value="${Utils.format(budgetBean.costTotalTaxInclude,'0')}" readonly value="${Utils.format(budgetBean.costTotalTaxInclude,'0')}" readonly
title="此列累计"></td> title="此列累计"></td>
@ -2455,8 +2441,7 @@
console.log(data); console.log(data);
//设置服务器返回的url //设置服务器返回的url
$("#collaboratorUrlBudget").val(data.result.data.url); $("#collaboratorUrlBudget").val(data.result.data.url);
$("#collaboratorUrl_span").text(data.result.data.url); $("#collaboratorUrl_check").text(data.result.data.newName);
$("#collaboratorUrl_check").text("已上传");
// console.log("collboratorUrl: " + $("#collaboratorUrl").val()); // console.log("collboratorUrl: " + $("#collaboratorUrl").val());
setTimeout(function () { setTimeout(function () {
progressArea.addClass("am-hide"); progressArea.addClass("am-hide");
@ -2515,7 +2500,7 @@
console.log(data); console.log(data);
//设置服务器返回的url //设置服务器返回的url
$("#collaboratorUrl").val(data.result.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()); // console.log("collboratorUrl: " + $("#collaboratorUrl").val());
setTimeout(function () { setTimeout(function () {
progressArea.addClass("am-hide"); progressArea.addClass("am-hide");