fourcal/src/main/resources/static/assets/js/project_budget.js

983 lines
35 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

// INCOME_DETAIL={
// "num":[false,"序号","string"],
// "type":[true,"类别","string"],
// "name":[true,"名称","string"],
// "unit":[true,"单位","string"],
// "amount":[true,"数量","string"],
// "price":[true,"单价","price"],
// "taxRate":[true,"税率","number"],
// "totalTaxInclude":[true,"含税总金额","number"],
// "totalTaxExclude":[true,"不含税金额","number"],
// "totalTax":[true,"税金","number"]
// };
//
// COST_DETAIL={
// "num":[false,"序号","string"],
// "type":[true,"大类","string"],
// "category":[true,"类别","string"],
// "name":[true,"名称","string"],
// "unit":[true,"单位","string"],
// "amount":[true,"数量","string"],
// "price":[true,"单价","price"],
// "taxRate":[true,"税率","number"],
// "totalTaxInclude":[true,"含税总金额","number"],
// "totalTaxExclude":[true,"不含税金额","number"],
// "totalTax":[true,"税金","number"]
// };
//
// COST_PROJECT_MANAGE_DETAIL={
// "num":[false,"序号","string"],
// "type":[true,"财务费用类别","string"],
// "name1":[false,"业务项目","string"],
// "name2":[false,"业务项目","string"],
// "detail":[true,"项目明细","string"],
// "unit":[true,"单位","string"],
// "amount":[true,"数量","string"],
// "price":[true,"单价","price"],
// "total":[true,"总金额","number"],
// "predictMethod":[false,"预估计算方法","string"],
// "predictWhy":[false,"预估依据","string"],
// "remark":[false,"备注","string"],
// "deletable":[true,"是否可删除","string"]
// };
//
// BUDGET_PLAN_DETAIL={
// "month":[true,"月份"],
// "deviceCost":[true,"设备支出","number"],
// "engineerCost":[true,"工程支出","number"],
// "projectManageCost":[true,"经营性开支","number"],
// "earnestMoneyCost":[true,"保证金支出","number"],
// "totalCost":[true,"支出合计","number"],
// "saleIncome":[true,"销售收款","number"],
// "earnestMoneyIncome":[true,"保证金收款","number"],
// "totalIncome":[true,"收款合计","number"],
// "fundBalance":[true,"资金余额","number"],
// "capitalInterest":[true,"资金利息","number"],
// "underwrittenPlan":[true,"垫资计划","number"],
// "repaymentPlan":[true,"还款计划","number"]
// };
var result = 0;
$(function () {
generateFileupload('icon');
$("input[name='costCompanyManageTaxExclude']").change(function () {
digitalSelf("costCompanyManageTaxExclude", "input[name='costCompanyManageTaxExclude']");
});
$("input[name='costOtherOtherTaxInclude']").change(function () {
console.log("budget.js:costOtherOtherTaxInclude");
digitalSelf("costOtherOtherTaxInclude", "input[name='costOtherOtherTaxInclude']");
});
$("input[name='costOtherOtherTaxExclude']").change(function () {
console.log("budget.js:costOtherOtherTaxExclude");
digitalSelf("costOtherOtherTaxExclude", "input[name='costOtherOtherTaxExclude']");
});
//绑定删除按钮删除当前行
bindDeleteBtn();
//绑定收入和采购成本的输入框【都有税率】
bindChangeableInput();
//绑定总计的输入框
bindIncomeTotal();
//绑定总计的输入框
bindCostTotal();
//绑定总计的输入框
bindCostManageTotal();
$("#saveDraft").click(function () {
$("#saveDraft").attr('disabled', true);
$("#collaboratorUrl").val($("#collaboratorUrl_span").text());
// checkIfFillIn();
var dataIncome = collectData("am-modal-prompt-input-income");
if (dataIncome.length <= 0) {
window.confirm('请填写收入明细表');
$("#saveDraft").attr('disabled', false);
return;
}
var dataIncomeCheck = convertDetailVerifyCheck(dataIncome, INCOME_DETAIL2, "收入明细表");
if (dataIncomeCheck == null) {
$("#saveDraft").attr('disabled', false);
return;
}
//如果没有提交则自动计算预算信息
dataIncome = prepareAjaxDataVerify(dataIncome, INCOME_DETAIL2, $("#id").val());
if(dataIncome.details){
postAjax(base+"/project/budgetEditSaveIncomeDetail", dataIncome);
}
updateIncomeDataUnsubmit(dataIncomeCheck);
var dataCost = collectData("am-modal-prompt-input-cost");
if (dataCost.length <= 0) {
window.confirm('请填写采购成本明细表');
$("#saveDraft").attr('disabled', false);
return;
}
var dataCostCheck = convertDetailVerifyCheck(dataCost, COST_DETAIL2, "采购成本明细表");
if (dataCostCheck == null) {
$("#saveDraft").attr('disabled', false);
return;
}
//如果没有提交则自动计算预算信息
dataCost = prepareAjaxDataVerify(dataCost, COST_DETAIL2, $("#id").val());
if(dataCost){
postAjax(base+"/project/budgetEditSaveCostDetail", dataCost);
}
updateCostDataIfUnsubmit(dataCostCheck);
var dataManage = collectData("am-modal-prompt-input-cost-project-manage");
if (dataManage.length <= 0) {
window.confirm('请填写项目管理成本表');
$("#saveDraft").attr('disabled', false);
return;
}
var dataManageCheck = convertDetailVerifyCheck(dataManage, COST_PROJECT_MANAGE_DETAIL2, "项目管理成本表");
if (dataManageCheck == null) {
$("#saveDraft").attr('disabled', false);
return;
}
dataManage = prepareAjaxDataVerify(dataManage, COST_PROJECT_MANAGE_DETAIL2, $("#id").val());
if(dataManage){
postAjax(base+"/project/budgetEditSaveCostProjectManageDetail", dataManage);
}
updateCostProjectManageDataUnsubmit(dataManageCheck);
var dataPlan = collectData("am-modal-prompt-input-budget-plan-detail");
// if (dataPlan.length <= 0) {
// window.confirm('请填写项目资金计划表');
// $("#saveDraft").attr('disabled', false);
// return;
// }
var dataPlanCheck = convertDetailVerifyCheck(dataPlan, BUDGET_PLAN_DETAIL2, "项目资金计划表");
if (dataPlanCheck == null) {
$("#saveDraft").attr('disabled', false);
return;
}
//校验数据正确性
// var message = verifyBudgetPlan();
// if (message) {
// layuiAlert(message);
// $("#saveDraft").attr('disabled', false);
// return;
// }
dataPlan = prepareAjaxDataVerify(dataPlan, BUDGET_PLAN_DETAIL2, $("#id").val());
if(dataPlan){
postAjax(base+"/project/budgetEditSaveBudgetPlanDetail", dataPlan);
}
updateBudgetPlanDetailDataUnsubmit();
var message = verifyProjectContributionProfitRate();
if (message) {
$("#saveDraft").attr('disabled', false);
layuiAlert(message);
return;
}
console.log(message);
var startTime = $("#startDate").val();
var endTime = $("#endDate").val();
if (startTime > endTime) {
$("#saveDraft").attr('disabled', false);
window.confirm('开始日期应早于结束日期');
return;
}
setTimeout(function () {
$("#saveDraft").attr('disabled', false);
}, 5000);
$("#pmsForm").attr("action", base + "/project/budgetEditSave");
$("#pmsForm").submit();
});
$("#saveApprove").click(function () {
$("#saveApprove").attr('disabled', true);
$("#collaboratorUrl").val($("#collaboratorUrl_span").text());
checkIfFillIn();
var dataIncome = collectData("am-modal-prompt-input-income");
if (dataIncome.length <= 5) {
window.confirm('请填写收入明细表');
$("#saveApprove").attr('disabled', false);
return;
}
var dataIncomeCheck = convertDetailVerifyCheck(dataIncome, INCOME_DETAIL, "收入明细表");
if (dataIncomeCheck == null) {
$("#saveApprove").attr('disabled', false);
return;
}
//如果没有提交则自动计算预算信息
dataIncome = prepareAjaxDataVerify(dataIncome, INCOME_DETAIL, $("#id").val());
if(dataIncome.details){
postAjax(base+"/project/budgetEditSaveIncomeDetail", dataIncome);
}
updateIncomeDataUnsubmit(dataIncomeCheck);
var dataCost = collectData("am-modal-prompt-input-cost");
if (dataCost.length <= 7) {
window.confirm('请填写采购成本明细表');
$("#saveApprove").attr('disabled', false);
return;
}
var dataCostCheck = convertDetailVerifyCheck(dataCost, COST_DETAIL, "采购成本明细表");
if (dataCostCheck == null) {
$("#saveApprove").attr('disabled', false);
return;
}
//如果没有提交则自动计算预算信息
dataCost = prepareAjaxDataVerify(dataCost, COST_DETAIL, $("#id").val());
if(dataCost){
postAjax(base+"/project/budgetEditSaveCostDetail", dataCost);
}
updateCostDataIfUnsubmit(dataCostCheck);
var dataManage = collectData("am-modal-prompt-input-cost-project-manage");
console.log("dataManage: " + dataManage.length);
if (dataManage.length <= 4) {
window.confirm('请填写项目管理成本表');
$("#saveApprove").attr('disabled', false);
return;
}
var dataManageCheck = convertDetailVerifyCheck(dataManage, COST_PROJECT_MANAGE_DETAIL, "项目管理成本表");
if (dataManageCheck == null) {
$("#saveApprove").attr('disabled', false);
return;
}
dataManage = prepareAjaxDataVerify(dataManage, COST_PROJECT_MANAGE_DETAIL, $("#id").val());
if(dataManage){
postAjax(base+"/project/budgetEditSaveCostProjectManageDetail", dataManage);
}
updateCostProjectManageDataUnsubmit(dataManageCheck);
var dataPlan = collectData("am-modal-prompt-input-budget-plan-detail");
console.log("dataPaln: " + dataPlan.length);
if (dataPlan.length <= 1) {
window.confirm('请填写项目资金计划表');
$("#saveApprove").attr('disabled', false);
return;
}
var dataPlanCheck = convertDetailVerifyCheck(dataPlan, BUDGET_PLAN_DETAIL, "项目资金计划表");
if (dataPlanCheck == null) {
$("#saveApprove").attr('disabled', false);
return;
}
//校验数据正确性
var message = verifyBudgetPlan();
if (message) {
layuiAlert(message);
$("#saveApprove").attr('disabled', false);
return;
}
dataPlan = prepareAjaxDataVerify(dataPlan, BUDGET_PLAN_DETAIL, $("#id").val());
if(dataPlan){
postAjax(base+"/project/budgetEditSaveBudgetPlanDetail", dataPlan);
}
updateBudgetPlanDetailDataUnsubmit();
var message = verifyProjectContributionProfitRate();
if (message) {
$("#saveApprove").attr('disabled', false);
layuiAlert(message);
return;
}
var startTime = $("#startDate").val();
var endTime = $("#endDate").val();
if (startTime > endTime) {
$("#saveApprove").attr('disabled', false);
window.confirm('开始日期应早于结束日期');
return;
}
setTimeout(function () {
$("#saveApprove").attr('disabled', false);
}, 5000);
$("#pmsForm").attr("action", base + "/project/budgetEditSaveAndApprove");
$("#pmsForm").submit();
});
function checkName () {
var name = $("#name").val();
var id = $("#id").val();
$.ajax({
url: base + "/project/checkName",
data: {name: name, id: id},
type: "post",
dataType: "json",
async: false,
success: function (data) {
result = data.status;
}
});
};
});
//立项表填写检查
function checkIfFillIn() {
var name = $("#name").val();
var startTime = $("#startDate").val();
var endTime = $("#endDate").val();
var underwrittenMode = $("#underwrittenMode").val();
var collaborator = $("#collaborator").val();
var advanceInterestAmount = $("#advanceInterestAmount").val();
var advancePeakAmount = $("#advancePeakAmount").val();
var contractAmount = $("#contractAmount").val();
var grossProfit = $("#grossProfit").val();
var grossProfitMargin = $("#grossProfitMargin").val();
var huizhiProductAmount = $("#huizhiProductAmount").val();
var huazhiProductAmount = $("#huazhiProductAmount").val();
var huasanProductAmount = $("#huasanProductAmount").val();
var ziguangOtherAmount = $("#ziguangOtherAmount").val();
// var industryScenario = $("#industryScenario").val();
var customer = $("#customer").val();
var terminalCustomer = $("#terminalCustomer").val();
var valueRisk = $("#valueRisk").val();
var principal = $("#principal").val();
// var incomeDeviceTaxInclude = $("#incomeDeviceTaxInclude").val();
// var incomeDeviceTaxExclude = $("#incomeDeviceTaxExclude").val();
// var incomeEngineerTaxInclude = $("#incomeEngineerTaxInclude").val();
// var incomeEngineerTaxExclude = $("#incomeEngineerTaxExclude").val();
// var incomeServiceTaxInclude = $("#incomeServiceTaxInclude").val();
// var incomeServiceTaxExclude = $("#incomeServiceTaxExclude").val();
// var costPurchaseDeviceTaxInclude = $("#costPurchaseDeviceTaxInclude").val();
// var costPurchaseDeviceTaxExclude = $("#costPurchaseDeviceTaxExclude").val();
// var costPurchaseBuildTaxInclude = $("#costPurchaseBuildTaxInclude").val();
// var costPurchaseBuildTaxExclude = $("#costPurchaseBuildTaxExclude").val();
// var costPurchaseServiceTaxInclude = $("#costPurchaseServiceTaxInclude").val();
// var costPurchaseServiceTaxExclude = $("#costPurchaseServiceTaxExclude").val();
// var costPurchaseOtherTaxInclude = $("#costPurchaseOtherTaxInclude").val();
// var costPurchaseOtherTaxExclude = $("#costPurchaseOtherTaxExclude").val();
// var costCompanyManageTaxExclude = $("#costCompanyManageTaxExclude ").val();
// var costProjectManageTaxExclude = $("#costProjectManageTaxExclude ").val();
// var costOtherOtherTaxInclude = $("#costOtherOtherTaxInclude").val();
// var costOtherOtherTaxExclude = $("#costOtherOtherTaxExclude").val();
if (name.length <= 0) {
window.confirm('项目名称不能为空');
check = 1;
return;
}
checkName();
if (result == 1) {
window.confirm('项目名称已存在');
check = 1;
return;
}
if (startTime.length <= 0) {
window.confirm('项目计划开始时间不能为空');
check = 1;
return;
}
if (endTime.length <= 0) {
window.confirm('项目计划结束时间不能为空');
check = 1;
return;
}
if (startTime > endTime) {
window.confirm('开始日期应早于结束日期');
check = 1;
return;
}
// if (projectNo.length <= 0) {
// window.confirm('项目编号不能为空');
// check = 1;
// return;
// }
//
// checkProjectNo();
// if (projectNoResult == 1) {
// window.confirm('项目编号已存在');
// check = 1;
// return;
// }
if (underwrittenMode == 1 && (collaborator == undefined || collaborator.length <= 0)) {
window.confirm('合作对象不能为空');
check = 1;
return;
}
if (underwrittenMode > 2 && (advanceInterestAmount == undefined || advanceInterestAmount.length <= 0)) {
window.confirm('垫资利息不能为空');
check = 1;
return;
}
if (underwrittenMode > 2 && (advancePeakAmount == undefined || advancePeakAmount.length <= 0)) {
window.confirm('垫资峰值不能为空');
check = 1;
return;
}
if (contractAmount == undefined || contractAmount.length <= 0) {
window.confirm('合同金额不能为空');
check = 1;
return;
}
if (grossProfit == undefined || grossProfit.length <= 0) {
window.confirm('项目毛利不能为空');
check = 1;
return;
}
if (grossProfitMargin == undefined || grossProfitMargin.length <= 0) {
window.confirm('项目毛利率不能为空');
check = 1;
return;
}
if (huizhiProductAmount == undefined || huizhiProductAmount.length <= 0) {
window.confirm('汇智产品金额不能为空');
check = 1;
return;
}
if (huazhiProductAmount == undefined || huazhiProductAmount.length <= 0) {
window.confirm('华智产品金额不能为空');
check = 1;
return;
}
if (huasanProductAmount == undefined || huasanProductAmount.length <= 0) {
window.confirm('华三产品金额不能为空');
check = 1;
return;
}
if (ziguangOtherAmount == undefined || ziguangOtherAmount.length <= 0) {
window.confirm('其他产品金额不能为空');
check = 1;
return;
}
// if (industryScenario == undefined || industryScenario.length <= 0) {
// window.confirm('行业应用场景不能为空');
// check = 1;
// return;
// }
// if (mainContractCollectionTerms == undefined || mainContractCollectionTerms.length <= 0) {
// window.confirm('主合同收款条款不能为空');
// check = 1;
// return;
// }
if (customer == undefined || customer.length <= 0) {
window.confirm('客户名称不能为空');
check = 1;
return;
}
if (terminalCustomer == undefined || terminalCustomer.length <= 0) {
window.confirm('最终用户名称不能为空');
check = 1;
return;
}
if (valueRisk == undefined || valueRisk.length <= 0) {
window.confirm('价值及风险不能为空');
check = 1;
return;
}
if (principal == undefined || principal.length <= 0) {
window.confirm('项目负责人不能为空');
check = 1;
return;
}
}
/**
* 判断是否重名
*/
function checkName () {
var name = $("#name").val();
var id = $("#id").val();
$.ajax({
url: "${base}/project/checkName",
data: {name: name, id: id},
type: "post",
dataType: "json",
async: false,
success: function (data) {
result = data.status;
}
});
};
/**
* 一维数组变二维数组
* @param list
* @param elementsPerSubArray
* @returns {Array}
*/
function arrayToMatrix(list, elementsPerSubArray) {
var matrix = [], i, k;
for (i = 0, k = -1; i < list.length; i++) {
if (i % elementsPerSubArray === 0) {
k++;
matrix[k] = [];
}
matrix[k].push(list[i]);
}
return matrix;
}
/**
* 根据映射关系将数组变为对象
* @param arr 一行数据
* @param mapArr 映射数组
* @param keepBlank 如果有空的并且不保留空就返回空,废弃这一行
* @returns {*}
*/
function arr2Object(arr, mapArr, keepBlank) {
var obj = {};
for (var i = 0; i < mapArr.length; i++) {
if (!arr[i] && !keepBlank) {
return null;
}
obj[mapArr[i]] = arr[i];
}
return obj;
}
function arr2ObjectVerify(line, arr, detailPropertyArr, detailProperty) {
var obj = {};
for (var i = 0; i < detailPropertyArr.length; i++) {
var o = detailProperty[detailPropertyArr[i]];
//空但是要求非空
if (!arr[i] && o[0]) {
layuiAlert("第 " + (line + 1) + " 行的 " + o[1] + " 不允许为空");
return null;
}
//如果要求是数字类型的,进行转换
var v = arr[i];
if(o[2] === 'number' ){
v = f2(v);
} else if(o[2] === 'price' ){
v = f5(v);
}
obj[detailPropertyArr[i]]=v;
}
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无法识别所以自己来收集
* @returns {Array}
*/
function collectData(className) {
var a = [];
$("." + className).each(function (t) {
a.push($(this).val());
});
return a;
}
/**
* 绑定每一行的删除事件删除当前的一行tr
*/
function bindDeleteBtn() {
$(".am-modal-line-delete").click(function () {
//删除自己对应的tr
$(this).parent().parent().remove();
bindNum();
});
}
/**
* 将页面收集到的数据转换为ajax请求的数据【一维数组转换为对象数组】
* @param data
* @param detailPropertyArr
* @param keepBlank
* @returns {Array}
*/
function convertDetail(data, detailPropertyArr, keepBlank) {
var arr = arrayToMatrix(data, detailPropertyArr.length);
var details = [];
for (var i = 0; i < arr.length; i++) {
var obj = arr2Object(arr[i], detailPropertyArr, keepBlank);
if (obj) {
details.push(obj);
}
}
return details;
}
function convertDetailVerify(data, detailProperty) {
var detailPropertyArr = Object.keys(detailProperty);
var arr = arrayToMatrix(data, detailPropertyArr.length);
var details = [];
for (var i = 0; i < arr.length; i++) {
if (i === arr.length - 1 && detailProperty !== BUDGET_PLAN_DETAIL2 && detailProperty !== BUDGET_PLAN_DETAIL) {
continue;
}
var obj = arr2ObjectVerify(i, arr[i], detailPropertyArr, detailProperty);
if (!obj) {
return null;
}
details.push(obj);
}
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++) {
if (i === arr.length - 1 && s !== "项目资金计划表") {
continue;
}
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 {
"details": details,
"projectId": projectId
};
}
function prepareAjaxDataVerify(data, detailProperty, projectId) {
var details = convertDetailVerify(data, detailProperty);
return {
"details": details,
"projectId": projectId
};
}
/**
* 绑定每个可改变的输入框,修改后改变对应输入框的值
*/
function bindChangeableInput() {
//数量改变
$(".input-changeable-amount").change(function () {
var amount = f2($(this).val());
//找到对应的单价和税率
var price = f5($(this).parent().parent().find(".input-changeable-price").val());
var taxRate = f2($(this).parent().parent().find(".input-changeable-tax-rate").val());
console.log(amount, price, taxRate);
$(this).parent().parent().find(".input-changeable-total-tax-include").val(f2Fixed(amount * price));
$(this).parent().parent().find(".input-changeable-total-tax-exclude").val(f2Fixed(amount * price / (1 + taxRate / 100)));
$(this).parent().parent().find(".input-changeable-total-tax").val(f2Fixed(amount * price * taxRate /(100 + taxRate)));
});
//单价改变
$(".input-changeable-price").change(function () {
var price = f5($(this).val());
//找到对应的数量和税率
var amount = f2($(this).parent().parent().find(".input-changeable-amount").val());
var taxRate = f2($(this).parent().parent().find(".input-changeable-tax-rate").val());
console.log(amount, price, taxRate);
$(this).parent().parent().find(".input-changeable-total-tax-include").val(f2Fixed(amount * price));
$(this).parent().parent().find(".input-changeable-total-tax-exclude").val(f2Fixed(amount * price / (1 + taxRate / 100)));
$(this).parent().parent().find(".input-changeable-total-tax").val(f2Fixed(amount * price * taxRate /(100 + taxRate)));
$(this).val(f5Price(price));
console.log("单价:" + $(this).val());
});
//税率改变
$(".input-changeable-tax-rate").change(function () {
var taxRate = f2($(this).val());
//找到对应的数量和单价
var amount = f2($(this).parent().parent().find(".input-changeable-amount").val());
var price = f5($(this).parent().parent().find(".input-changeable-price").val());
console.log(amount, price, taxRate);
$(this).parent().parent().find(".input-changeable-total-tax-exclude").val(f2Fixed(amount * price / (1 + taxRate / 100)));
$(this).parent().parent().find(".input-changeable-total-tax").val(f2Fixed(amount * price * taxRate /(100 + taxRate)));
});
}
/**
* 每次更新数量,单价和税率时,更改总计中含税和不含税总金额
* @param className
* @param totalClassName
*/
function updateTotal(className, totalClassName) {
var total = 0;
//找到本列所有的
$("."+className).each(function (t) {
total += f2($(this).val());
console.log("total2: " + total);
});
$("."+totalClassName).val(f2Fixed(total));
}
/**
* 每次更新数量时,更新总计中数量
* @param className
* @param totalClassName
*/
function updateAmount(className, totalClassName) {
var total = 0;
//找到本列所有的
$("."+className).each(function (t) {
console.log(className + ": " + f2($(this).val()));
total += f2($(this).val());
});
$("."+totalClassName).val(f2Fixed(total));
}
/**
* 绑定序号
*/
function bindNum() {
$(".input-budget-num").each(function(t) {
var prevIndex = $(this).parent().parent().prev("tr").find(".input-budget-num").val();
$(this).val(f2(prevIndex) + 1);
});
}
/**
* 校验项目贡献利润率必须大于阀值
* 低于阀值就返回提示信息,否则返回""
*/
function verifyProjectContributionProfitRate() {
var projectContributionProfitRate = f2(inputVal("projectContributionProfitRate"));
var projectContributionProfitRateThreshold = f2($("#projectContributionProfitRateThreshold").val());
if (projectContributionProfitRate < projectContributionProfitRateThreshold) {
return "项目贡献利润率[" + projectContributionProfitRate + "]低于阀值[" + projectContributionProfitRateThreshold + "],请调整后重新提交";
}
return "";
}
/**
* 更新
* 毛利=收入总计(不含税)-成本总计(不含税)-财务费用总计(不含税)
* 毛利率=毛利(不含税)/收入总计(不含税)
* 贡献利润=项目毛利(不含税)-公司管理费用总计(不含税)
* 贡献利润率=贡献利润(不含税)/收入总计(不含税)
*/
function updateProjectContributionProfitRate() {
//收入总计不含税
var incomeTotalTaxExclude = f2(inputVal("incomeTotalTaxExclude"));
//成本总计不含税
var costTotalTaxExclude = f2(inputVal("costTotalTaxExclude"));
//资金使用成本不含税
var costExpropriationTaxExclude = f2(inputVal("costExpropriationTaxExclude"));
//公司管理费用
var costCompanyManageTaxExclude = f2(inputVal("costCompanyManageTaxExclude"));
var projectGrossProfit = f2Fixed(incomeTotalTaxExclude - costTotalTaxExclude - costExpropriationTaxExclude);
var projectGrossProfitRate = f2Fixed(rate(f2(projectGrossProfit), incomeTotalTaxExclude));
var projectContributionProfit = f2Fixed(f2(projectGrossProfit) - costCompanyManageTaxExclude);
var projectContributionProfitRate = f2Fixed(rate(f2(projectContributionProfit), incomeTotalTaxExclude));
$("input[name='projectGrossProfit']").val(projectGrossProfit);
$("input[name='projectGrossProfitRate']").val(projectGrossProfitRate);
$("input[name='projectContributionProfit']").val(projectContributionProfit);
$("input[name='projectContributionProfitRate']").val(projectContributionProfitRate);
}
/**
* 更新页面收入的数据【累加】
*/
function updateCostDataIfUnsubmit(details) {
var deviceTaxInclude = 0;
var deviceTaxExclude = 0;
var buildTaxInclude = 0;
var buildTaxExclude = 0;
var serviceTaxInclude = 0;
var serviceTaxExclude = 0;
var otherTaxInclude = 0;
var otherTaxExclude = 0;
details.forEach(function (t, number, ts) {
if(t["type"] == "1"){
//设备类
deviceTaxInclude += f2(t["totalTaxInclude"]);
deviceTaxExclude += f2(t["totalTaxExclude"]);
}else if(t["type"] == "2"){
//施工类
buildTaxInclude += f2(t["totalTaxInclude"]);
buildTaxExclude += f2(t["totalTaxExclude"]);
}else if(t["type"] == "3"){
//服务类
serviceTaxInclude += f2(t["totalTaxInclude"]);
serviceTaxExclude += f2(t["totalTaxExclude"]);
}else if(t["type"] == "4"){
//其他类
otherTaxInclude += f2(t["totalTaxInclude"]);
otherTaxExclude += f2(t["totalTaxExclude"]);
}
});
$("input[name='costPurchaseDeviceTaxInclude']").val(f2Fixed(deviceTaxInclude));
$("input[name='costPurchaseDeviceTaxExclude']").val(f2Fixed(deviceTaxExclude));
$("input[name='costPurchaseBuildTaxInclude']").val(f2Fixed(buildTaxInclude));
$("input[name='costPurchaseBuildTaxExclude']").val(f2Fixed(buildTaxExclude));
$("input[name='costPurchaseServiceTaxInclude']").val(f2Fixed(serviceTaxInclude));
$("input[name='costPurchaseServiceTaxExclude']").val(f2Fixed(serviceTaxExclude));
$("input[name='costPurchaseOtherTaxInclude']").val(f2Fixed(otherTaxInclude));
$("input[name='costPurchaseOtherTaxExclude']").val(f2Fixed(otherTaxExclude));
//资金计划表中的
$(".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())));
calCostExclude();
calCostInclude();
calCostTotalTax();
var costTotalTaxInclude = inputVal("costTotalTaxInclude");
var costTotalTaxExclude = inputVal("costTotalTaxExclude");
$("input[name='costTotalTax']").val(f2Fixed(f2(costTotalTaxInclude) - f2(costTotalTaxExclude)));
updateProjectContributionProfitRate();
}
/**
* 更新页面收入的数据【累加】
*/
function updateIncomeDataUnsubmit(incomeDetails) {
var deviceTaxInclude = 0;
var deviceTaxExclude = 0;
var engineerTaxInclude = 0;
var engineerTaxExclude = 0;
var serviceTaxInclude = 0;
var serviceTaxExclude = 0;
incomeDetails.forEach(function (t, number, ts) {
console.log("income cost " + t["type"] + ", " + t["taxRate"] + ", " + t["totalTaxInclude"] + ", " + t["totalTaxExclud"]);
if(t["type"] == "1"){
//设备类
deviceTaxInclude += f2(t["totalTaxInclude"]);
deviceTaxExclude += f2(t["totalTaxExclude"]);
}else if(t["type"] == "2"){
//工程类
engineerTaxInclude += f2(t["totalTaxInclude"]);
engineerTaxExclude += f2(t["totalTaxExclude"]);
}else if(t["type"] == "3"){
//服务类
serviceTaxInclude += f2(t["totalTaxInclude"]);
serviceTaxExclude += f2(t["totalTaxExclude"]);
}
});
$("input[name='incomeDeviceTaxInclude']").val(f2Fixed(deviceTaxInclude));
$("input[name='incomeDeviceTaxExclude']").val(f2Fixed(deviceTaxExclude));
$("input[name='incomeEngineerTaxInclude']").val(f2Fixed(engineerTaxInclude));
$("input[name='incomeEngineerTaxExclude']").val(f2Fixed(engineerTaxExclude));
$("input[name='incomeServiceTaxInclude']").val(f2Fixed(serviceTaxInclude));
$("input[name='incomeServiceTaxExclude']").val(f2Fixed(serviceTaxExclude));
$("input[name='incomeTotalTaxInclude']").val(f2Fixed(deviceTaxInclude+engineerTaxInclude+serviceTaxInclude));
$("input[name='incomeTotalTaxExclude']").val(f2Fixed(deviceTaxExclude+engineerTaxExclude+serviceTaxExclude));
$("input[name='incomeTotalTax']").val(f2Fixed(deviceTaxInclude+engineerTaxInclude+serviceTaxInclude-(deviceTaxExclude+engineerTaxExclude+serviceTaxExclude)));
$("input[name='costCompanyManageTaxExclude']").val(f2Fixed(0.028*(deviceTaxExclude+engineerTaxExclude+serviceTaxExclude)));
$(".input-total-title-sale-income-budget-plan").val($("input[name='incomeTotalTaxInclude']").val());
$(".input-total-title-total-income-budget-plan").val(f2Fixed(f2($("input[name='incomeTotalTaxInclude']").val())
+f2($(".input-total-title-earnest-money-income-budget-plan").val())));
updateProjectContributionProfitRate();
}
/**
* 更新页面收入的数据【累加】
*/
function updateCostProjectManageDataUnsubmit(details) {
var total = 0;
details.forEach(function (t, number, ts) {
total += f2(t["total"]);
});
total = f2(total);
$("input[name='costProjectManageTaxExclude']").val(f2Fixed(total));
$("input[name='costProjectManageTaxInclude']").val(f2Fixed(total));
//资金计划表中的
$(".input-total-title-project-manage-cost-budget-plan").val(f2Fixed(total));
var deviceTaxExclude = $("input[name='costPurchaseDeviceTaxExclude']").val();
var buildTaxExclude = $("input[name='costPurchaseBuildTaxExclude']").val();
var serviceTaxExclude = $("input[name='costPurchaseServiceTaxExclude']").val();
var otherTaxExclude = $("input[name='costPurchaseOtherTaxExclude']").val();
var deviceTaxInclude = $("input[name='costPurchaseDeviceTaxInclude']").val();
var buildTaxInclude = $("input[name='costPurchaseBuildTaxInclude']").val();
var serviceTaxInclude = $("input[name='costPurchaseServiceTaxInclude']").val();
var otherTaxInclude = $("input[name='costPurchaseOtherTaxInclude']").val();
$(".input-total-title-total-cost-budget-plan").val(f2Fixed(f2(deviceTaxInclude)+f2(buildTaxInclude)+f2(serviceTaxInclude)+f2(otherTaxInclude)
+total
+f2($(".input-total-title-earnest-money-cost-budget-plan").val())));
calCostExclude();
calCostInclude();
calCostTotalTax()
updateProjectContributionProfitRate();
}
/**
* 更新页面收入的数据
*/
function updateBudgetPlanDetailDataUnsubmit(data,returnData) {
//var details = data.details;
//主页面上的财务费用
$("input[name='costExpropriationTaxExclude']").val($(".input-underwritten-plan-statistic-capital-interest-budget-plan").val());
//更新项目贡献率
updateProjectContributionProfitRate();
//更新现金流量
updateCashFlow();
}