Merge remote-tracking branch 'origin/master'

master
OathK1per 2022-01-04 16:57:42 +08:00
commit b31e795c13
1 changed files with 178 additions and 51 deletions

View File

@ -1,3 +1,56 @@
INCOME_DETAIL = {
"type": [true, "类别"],
"name": [true, "名称"],
"unit": [true, "单位"],
"amount": [true, "数量"],
"price": [true, "单价"],
"taxRate": [true, "税率"],
"totalTaxInclude": [true, "含税总金额"],
"totalTaxExclude": [true, "不含税金额"]
};
COST_DETAIL={
"type":[true,"大类"],
"category":[true,"类别"],
"name":[true,"名称"],
"unit":[true,"单位"],
"amount":[true,"数量"],
"price":[true,"单价"],
"taxRate":[true,"税率"],
"totalTaxInclude":[true,"含税总金额"],
"totalTaxExclude":[true,"不含税金额"]
};
COST_PROJECT_MANAGE_DETAIL={
"type":[true,"财务费用类别"],
"name1":[false,"业务项目"],
"name2":[false,"业务项目"],
"detail":[true,"项目明细"],
"unit":[true,"单位"],
"amount":[true,"数量"],
"price":[true,"单价"],
"total":[true,"总金额"],
"predictMethod":[false,"预估计算方法"],
"predictWhy":[false,"预估依据"],
"remark":[false,"备注"],
"deletable":[true,"是否可删除"]
};
BUDGET_PLAN_DETAIL={
"month":[true,"月份"],
"deviceCost":[true,"设备支出"],
"engineerCost":[true,"工程支出"],
"projectManageCost":[true,"经营性开支"],
"earnestMoneyCost":[true,"保证金支出"],
"totalCost":[true,"支出合计"],
"saleIncome":[true,"销售收款"],
"earnestMoneyIncome":[true,"保证金收款"],
"totalIncome":[true,"收款合计"],
"fundBalance":[true,"资金余额"],
"capitalInterest":[true,"资金利息"],
"underwrittenPlan":[true,"垫资计划"],
"repaymentPlan":[true,"还款计划"]
};
$(function () {
//绑定删除按钮删除当前行
@ -13,24 +66,44 @@ $(function () {
return;
}
var dataIncomeCheck = convertDetailVerifyCheck(dataIncome, INCOME_DETAIL, "收入明细表");
if (dataIncomeCheck == null) {
return;
}
var dataCost = collectData("am-modal-prompt-input-cost");
if (dataCost.length <= 0) {
window.confirm('请填写采购成本明细表');
return;
}
var dataCostCheck = convertDetailVerifyCheck(dataCost, COST_DETAIL, "采购成本明细表");
if (dataCostCheck == null) {
return;
}
var dataManage = collectData("am-modal-prompt-input-cost-project-manage");
if (dataManage.length <= 0) {
window.confirm('请填写项目管理成本表');
return;
}
var dataManageCheck = convertDetailVerifyCheck(dataManage, COST_PROJECT_MANAGE_DETAIL, "项目管理成本表");
if (dataManageCheck == null) {
return;
}
var dataPlan = collectData("am-modal-prompt-input-budget-plan-detail");
if (dataPlan.length <= 0) {
window.confirm('请填写项目资金计划表');
return;
}
var dataPlanCheck = convertDetailVerifyCheck(dataPlan, BUDGET_PLAN_DETAIL, "项目资金计划表");
if (dataPlanCheck == null) {
return;
}
$("#saveDraft").attr('disabled', true);
var message = verifyProjectContributionProfitRate();
@ -61,24 +134,44 @@ $(function () {
return;
}
var dataIncomeCheck = convertDetailVerifyCheck(dataIncome, INCOME_DETAIL, "收入明细表");
if (dataIncomeCheck == null) {
return;
}
var dataCost = collectData("am-modal-prompt-input-cost");
if (dataCost.length <= 0) {
window.confirm('请填写采购成本明细表');
return;
}
var dataCostCheck = convertDetailVerifyCheck(dataCost, COST_DETAIL, "采购成本明细表");
if (dataCostCheck == null) {
return;
}
var dataManage = collectData("am-modal-prompt-input-cost-project-manage");
if (dataManage.length <= 0) {
window.confirm('请填写项目管理成本表');
return;
}
var dataManageCheck = convertDetailVerifyCheck(dataManage, COST_PROJECT_MANAGE_DETAIL, "项目管理成本表");
if (dataManageCheck == null) {
return;
}
var dataPlan = collectData("am-modal-prompt-input-budget-plan-detail");
if (dataPlan.length <= 0) {
window.confirm('请填写项目资金计划表');
return;
}
var dataPlanCheck = convertDetailVerifyCheck(dataPlan, BUDGET_PLAN_DETAIL, "项目资金计划表");
if (dataPlanCheck == null) {
return;
}
$("#saveApprove").attr('disabled', true);
var message = verifyProjectContributionProfitRate();
@ -140,6 +233,7 @@ function arr2Object(arr, mapArr, keepBlank) {
}
return obj;
}
function arr2ObjectVerify(line, arr, detailPropertyArr, detailProperty) {
var obj = {};
for (var i = 0; i < detailPropertyArr.length; i++) {
@ -154,6 +248,20 @@ function arr2ObjectVerify(line, arr, detailPropertyArr, detailProperty) {
return obj;
}
function arr2ObjectVerifyCheck(line, arr, detailPropertyArr, detailProperty, s) {
var obj = {};
for (var i = 0; i < detailPropertyArr.length; i++) {
var o = detailProperty[detailPropertyArr[i]];
//空但是要求非空
if (!arr[i] && o[0]) {
layuiAlert(s + "第 " + (line + 1) + " 行的 " + o[1] + " 不允许为空");
return null;
}
obj[detailPropertyArr[i]] = arr[i];
}
return obj;
}
/**
* 收集收入明细的数据因为动态添加的行modal无法识别所以自己来收集
@ -198,6 +306,7 @@ function convertDetail(data,detailPropertyArr, keepBlank) {
}
return details;
}
function convertDetailVerify(data, detailProperty) {
var detailPropertyArr = Object.keys(detailProperty);
var arr = arrayToMatrix(data, detailPropertyArr.length);
@ -213,6 +322,21 @@ function convertDetailVerify(data,detailProperty) {
return details;
}
function convertDetailVerifyCheck(data, detailProperty, s) {
var detailPropertyArr = Object.keys(detailProperty);
var arr = arrayToMatrix(data, detailPropertyArr.length);
var details = [];
for (var i = 0; i < arr.length; i++) {
var obj = arr2ObjectVerifyCheck(i, arr[i], detailPropertyArr, detailProperty, s);
if (!obj) {
return null;
}
details.push(obj);
}
return details;
}
function prepareAjaxData(data, detailPropertyArr, projectId, keepBlank) {
var details = convertDetail(data, detailPropertyArr, keepBlank);
return {
@ -220,6 +344,7 @@ function prepareAjaxData(data,detailPropertyArr,projectId, keepBlank){
"projectId": projectId
};
}
function prepareAjaxDataVerify(data, detailProperty, projectId) {
var details = convertDetailVerify(data, detailProperty);
return {
@ -227,6 +352,7 @@ function prepareAjaxDataVerify(data,detailProperty,projectId){
"projectId": projectId
};
}
/**
* 绑定每个可改变的输入框修改后改变对应输入框的值
*/
@ -264,6 +390,7 @@ function bindChangeableInput() {
$(this).parent().parent().find(".input-changeable-total-tax-exclude").val(f2Fixed(amount * price / (1 + taxRate / 100)));
});
}
/**
* 校验项目贡献利润率必须大于阀值
* 低于阀值就返回提示信息否则返回""