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

674 lines
31 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.

/**
* 一个资金计划的字段
*/
BUDGET_PLAN_DETAIL_ARR=["month","deviceCost","engineerCost","projectManageCost","earnestMoneyCost","totalCost","saleIncome","earnestMoneyIncome","totalIncome","fundBalance","capitalInterest","underwrittenPlan","repaymentPlan"];
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 () {
$(".budget-plan-detail").click(function () {
$('#my-prompt-budget-plan-detail').modal({
relatedTarget: this,
closeOnConfirm:false,
onConfirm: function(e) {
//校验数据正确性
var message = verifyBudgetPlan();
if (message) {
alert(message);
return;
}
//不能使用e.data因为无法获取动态添加的
var data = collectData("am-modal-prompt-input-budget-plan-detail");
//data = prepareAjaxData(data, BUDGET_PLAN_DETAIL_ARR, $("#id").val(),false);
data = prepareAjaxDataVerify(data, BUDGET_PLAN_DETAIL, $("#id").val());
if(data){
postAjax(base+"/project/budgetEditSaveBudgetPlanDetail", data, updateBudgetPlanDetailData);
}
},
onCancel: function(e) {
}
});
});
$("#budgetPlanDetailAddBtn").click(function () {
appendTrBudgetPlan();
});
//绑定资金计划明细输入框
bindChangeableInputBudgetPlanDetail();
//绑定资金计划的删除按钮
bindBudgetPlanDeleteBtn();
//绑定公司管理费用的输入框
bindCompanyManageChangeable();
//渲染日期选择框
renderMonthDatePicker();
//绑定数字输入框保留两位小数
bindNumberInput();
});
/**
* 校验资金计划表
* 校验失败返回相应的报错信息,否则返回""
*/
function verifyBudgetPlan(){
//判断月份是否有重复
var months = [];
$(".input-changeable-month-budget-plan").each(function () {
months.push($(this).val());
});
var ms = months.sort();
for(var i = 0; i < ms.length - 1; i++) {
if(ms[i] == ms[i + 1]) {
return "选择的月份有重复,["+ms[i]+"]";
}
}
var costPurchaseDeviceTaxInclude = inputVal("costPurchaseDeviceTaxInclude");
var costPurchaseBuildTaxInclude = inputVal("costPurchaseBuildTaxInclude");
var costPurchaseServiceTaxInclude = inputVal("costPurchaseServiceTaxInclude");
var costPurchaseOtherTaxInclude = inputVal("costPurchaseOtherTaxInclude");
var costProjectManageTaxInclude = inputVal("costProjectManageTaxInclude");
var incomeTotalTaxInclude = inputVal("incomeTotalTaxInclude");
var input_total_device_cost_budget_plan = classVal("input-total-device-cost-budget-plan");
var input_total_engineer_cost_budget_plan = classVal("input-total-engineer-cost-budget-plan");
var input_total_project_manage_budget_plan = classVal("input-total-project-manage-cost-budget-plan");
var input_total_sale_income_budget_plan = classVal("input-total-sale-income-budget-plan");
var input_total_earnest_money_cost_budget_plan = classVal("input-total-earnest-money-cost-budget-plan");
var input_total_earnest_money_income_budget_plan = classVal("input-total-earnest-money-income-budget-plan");
//从采购成本明细中取“设备”大类下的总计---设备支出
if(costPurchaseDeviceTaxInclude != input_total_device_cost_budget_plan){
return "采购成本明细中取“设备”大类下的总计["+costPurchaseDeviceTaxInclude+"]与设备支出["+input_total_device_cost_budget_plan+"]不等";
}
//从采购成本明细中取“服务+施工+其他”大类的总计---工程支出
var t = f2(f2(costPurchaseBuildTaxInclude)+f2(costPurchaseServiceTaxInclude)+f2(costPurchaseOtherTaxInclude));
if(t != f2(input_total_engineer_cost_budget_plan)){
return "采购成本明细中取“服务+施工+其他”大类的总计["+t+"]与工程支出["+input_total_engineer_cost_budget_plan+"]不等";
}
//从项目管理成本取总计金额--经营性开支
if(costProjectManageTaxInclude != input_total_project_manage_budget_plan){
return "项目管理成本取总计金额["+costProjectManageTaxInclude+"]与经营性开支["+input_total_project_manage_budget_plan+"]不等";
}
//从“销售收入明细”中取合计--销售收款
if(incomeTotalTaxInclude != input_total_sale_income_budget_plan){
return "销售收入明细金额["+incomeTotalTaxInclude+"]与销售收款["+input_total_sale_income_budget_plan+"]不等";
}
//保证金支出和收入一致
if(input_total_earnest_money_cost_budget_plan != input_total_earnest_money_income_budget_plan){
return "保证金支出["+input_total_earnest_money_cost_budget_plan+"]与保证金收款["+input_total_earnest_money_income_budget_plan+"]不等";
}
return "";
}
/**
* 资金计划增加一行
*/
function appendTrBudgetPlan() {
var template = '<tr>\n' +
' <td><input type="text" class="am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-month-budget-plan" readonly></td>\n' +
' <td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" class="am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-device-cost-budget-plan"></td>\n' +
' <td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" class="am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-engineer-cost-budget-plan"></td>\n' +
' <td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" class="am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-project-manage-cost-budget-plan"></td>\n' +
' <td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" class="am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-earnest-money-cost-budget-plan"></td>\n' +
' <td><input type="number" class="am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-total-cost-budget-plan" readonly></td>\n' +
' <td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" class="am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-sale-income-budget-plan"></td>\n' +
' <td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" class="am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-earnest-money-income-budget-plan"></td>\n' +
' <td><input type="number" class="am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-total-income-budget-plan" readonly></td>\n' +
' <td><input type="number" class="am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-fund-balance-budget-plan" readonly></td>\n' +
' <td><input type="number" class="am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-capital-interest-budget-plan" readonly></td>\n' +
' <td><input type="number" class="am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-underwritten-plan-budget-plan" readonly></td>\n' +
' <td><input type="number" class="am-modal-prompt-input am-modal-prompt-input-budget-plan-detail input-changeable-repayment-plan-budget-plan" readonly></td>\n' +
' <td><button type="button" class="am-btn am-btn-danger am-btn-xs am-round am-modal-line-delete-budget-plan"><span class="am-icon-minus"></span></button></td>\n' +
' </tr>';
$("#budgetPlanDetailTable").append(template);
//重新绑定删除事件和input修改事件
bindBudgetPlanDeleteBtn();
//绑定资金计划明细输入框
bindChangeableInputBudgetPlanDetail();
//渲染日期选择框
renderMonthDatePicker();
//绑定数字输入框保留两位小数
bindNumberInput();
}
/**
* 给月份输入框绑定日期选择框
*/
function renderMonthDatePicker() {
$(".input-changeable-month-budget-plan").datepicker({
format: 'yyyy-mm',
viewMode: 'years',
minViewMode: 'months'/*,
autoClose:true*/
});
//解决不能自动关闭的问题
$(".am-datepicker-month").on("click", function() {
$(".am-datepicker").hide();
});
}
/**
* 绑定删除删除按钮,不仅删除还需要重新计算统计的数据
*/
function bindBudgetPlanDeleteBtn() {
$(".am-modal-line-delete-budget-plan").click(function () {
//删除自己对应的tr
$(this).parent().parent().remove();
//还需要更新每一列的合计数据
updateBudgetPlanTotal("input-changeable-device-cost-budget-plan","input-total-device-cost-budget-plan");
updateBudgetPlanTotal("input-changeable-engineer-cost-budget-plan","input-total-engineer-cost-budget-plan");
updateBudgetPlanTotal("input-changeable-project-manage-cost-budget-plan","input-total-project-manage-cost-budget-plan");
updateBudgetPlanTotal("input-changeable-earnest-money-cost-budget-plan","input-total-earnest-money-cost-budget-plan");
updateBudgetPlanTotal("input-changeable-earnest-money-cost-budget-plan","input-total-title-earnest-money-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-sale-income-budget-plan","input-total-sale-income-budget-plan");
updateBudgetPlanTotal("input-changeable-earnest-money-income-budget-plan","input-total-earnest-money-income-budget-plan");
updateBudgetPlanTotal("input-changeable-earnest-money-income-budget-plan","input-total-title-earnest-money-income-budget-plan");
updateBudgetPlanTotal("input-changeable-total-income-budget-plan","input-total-total-income-budget-plan");
updateBudgetPlanTotal("input-changeable-total-income-budget-plan","input-total-title-total-income-budget-plan");
/*updateBudgetPlanTotal("input-changeable-fund-balance-budget-plan","input-total-fund-balance-budget-plan");*/
updateBudgetPlanTotal("input-changeable-capital-interest-budget-plan","input-total-capital-interest-budget-plan");
updateBudgetPlanTotal("input-changeable-capital-interest-budget-plan","input-total-title-capital-interest-budget-plan");
updateBudgetPlanTotal("input-changeable-underwritten-plan-budget-plan","input-total-underwritten-plan-budget-plan");
updateBudgetPlanTotal("input-changeable-underwritten-plan-budget-plan","input-total-title-underwritten-plan-budget-plan");
updateBudgetPlanTotal("input-changeable-repayment-plan-budget-plan","input-total-repayment-plan-budget-plan");
updateBudgetPlanTotal("input-changeable-repayment-plan-budget-plan","input-total-title-repayment-plan-budget-plan");
updatePageData();
});
}
function bindChangeableInputBudgetPlanDetail() {
//设备支出改变
$(".input-changeable-device-cost-budget-plan").change(function () {
var deviceCost = f2($(this).val());
//找到对应的工程支出、经营性支出、保证金支出
var engineerCost = f2($(this).parent().parent().find(".input-changeable-engineer-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());
//更新本月所有项支出
$(this).parent().parent().find(".input-changeable-total-cost-budget-plan").val(deviceCost+engineerCost+projectManageCost+earnestMoneyCost);
//更新所有月设备支出总额
updateBudgetPlanTotal("input-changeable-device-cost-budget-plan","input-total-device-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-engineer-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());
//更新本月所有项支出
$(this).parent().parent().find(".input-changeable-total-cost-budget-plan").val(deviceCost+engineerCost+projectManageCost+earnestMoneyCost);
//更新所有月工程支出总额
updateBudgetPlanTotal("input-changeable-engineer-cost-budget-plan","input-total-engineer-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-project-manage-cost-budget-plan").change(function () {
var projectManageCost = f2($(this).val());
//找到对应的设备支出、工程支出、保证金支出
var deviceCost = f2($(this).parent().parent().find(".input-changeable-device-cost-budget-plan").val());
var engineerCost = f2($(this).parent().parent().find(".input-changeable-engineer-cost-budget-plan").val());
var earnestMoneyCost = f2($(this).parent().parent().find(".input-changeable-earnest-money-cost-budget-plan").val());
//更新本月所有项支出
$(this).parent().parent().find(".input-changeable-total-cost-budget-plan").val(deviceCost+engineerCost+projectManageCost+earnestMoneyCost);
//更新所有月经营性支出总额
updateBudgetPlanTotal("input-changeable-project-manage-cost-budget-plan","input-total-project-manage-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-earnest-money-cost-budget-plan").change(function () {
var earnestMoneyCost = f2($(this).val());
//找到对应的设备支出、经营性支出、保证金支出
var deviceCost = f2($(this).parent().parent().find(".input-changeable-device-cost-budget-plan").val());
var engineerCost = f2($(this).parent().parent().find(".input-changeable-engineer-cost-budget-plan").val());
var projectManageCost = f2($(this).parent().parent().find(".input-changeable-project-manage-cost-budget-plan").val());
//更新本月所有项支出
$(this).parent().parent().find(".input-changeable-total-cost-budget-plan").val(f2(deviceCost+engineerCost+projectManageCost+earnestMoneyCost));
//更新所有月保证金支出总额
updateBudgetPlanTotal("input-changeable-earnest-money-cost-budget-plan","input-total-earnest-money-cost-budget-plan");
updateBudgetPlanTotal("input-changeable-earnest-money-cost-budget-plan","input-total-title-earnest-money-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-sale-income-budget-plan").change(function () {
var saleIncome = f2($(this).val());
//找到保证金收款
var earnestMoneyIncome = f2($(this).parent().parent().find(".input-changeable-earnest-money-income-budget-plan").val());
//更新本月所有项收入
$(this).parent().parent().find(".input-changeable-total-income-budget-plan").val(f2(saleIncome+earnestMoneyIncome));
//更新所有月销售收款总额
updateBudgetPlanTotal("input-changeable-sale-income-budget-plan","input-total-sale-income-budget-plan");
//更新所有月收入总额
updateBudgetPlanTotal("input-changeable-total-income-budget-plan","input-total-total-income-budget-plan");
updateBudgetPlanTotal("input-changeable-total-income-budget-plan","input-total-title-total-income-budget-plan");
updatePageData();
});
//保证金收款改变
$(".input-changeable-earnest-money-income-budget-plan").change(function () {
var earnestMoneyIncome = f2($(this).val());
//找到保证金收款
var saleIncome = f2($(this).parent().parent().find(".input-changeable-sale-income-budget-plan").val());
//更新本月所有项收入
$(this).parent().parent().find(".input-changeable-total-income-budget-plan").val(f2(saleIncome+earnestMoneyIncome));
//更新所有月保证金收款总额
updateBudgetPlanTotal("input-changeable-earnest-money-income-budget-plan","input-total-earnest-money-income-budget-plan");
updateBudgetPlanTotal("input-changeable-earnest-money-income-budget-plan","input-total-title-earnest-money-income-budget-plan");
//更新所有月收入总额
updateBudgetPlanTotal("input-changeable-total-income-budget-plan","input-total-total-income-budget-plan");
updateBudgetPlanTotal("input-changeable-total-income-budget-plan","input-total-title-total-income-budget-plan");
updatePageData();
});
/*//资金余额改变
$(".input-changeable-fund-balance-budget-plan").change(function () {
updateBudgetPlanTotal("input-changeable-fund-balance-budget-plan","input-total-fund-balance-budget-plan");
});*/
//资金利息改变
$(".input-changeable-capital-interest-budget-plan").change(function () {
updateBudgetPlanTotal("input-changeable-capital-interest-budget-plan","input-total-capital-interest-budget-plan");
updateBudgetPlanTotal("input-changeable-capital-interest-budget-plan","input-total-title-capital-interest-budget-plan");
});
//垫资计划改变
$(".input-changeable-underwritten-plan-budget-plan").change(function () {
updateBudgetPlanTotal("input-changeable-underwritten-plan-budget-plan","input-total-underwritten-plan-budget-plan");
updateBudgetPlanTotal("input-changeable-underwritten-plan-budget-plan","input-total-title-underwritten-plan-budget-plan");
});
//还款计划改变
$(".input-changeable-repayment-plan-budget-plan").change(function () {
updateBudgetPlanTotal("input-changeable-repayment-plan-budget-plan","input-total-repayment-plan-budget-plan");
updateBudgetPlanTotal("input-changeable-repayment-plan-budget-plan","input-total-title-repayment-plan-budget-plan");
});
}
function updatePageData() {
//更新余额
updateEachFundBalance();
//更新垫资计划
updateEachUnderwrittenPlan();
//更新回款计划
updateEachRepaymentPlan();
//更新资金利息
updateEachCapitalInterest();
//更新垫资峰值月
updateUnderwrittenInfo();
}
/**
* 更新每列的总计
*/
function updateBudgetPlanTotal(className, totalClassName) {
var total = 0;
//找到本列所有的
$("."+className).each(function (t) {
total += f2($(this).val());
});
$("."+totalClassName).val(f2(total));
}
/**
* 更新每一行【即每个月】的资金余额
* 每个月的余额=本月收入-支出+上月余额
*/
function updateEachFundBalance() {
var fundBalance = 0;
//找到每个月的资金余额输入框
$(".input-changeable-fund-balance-budget-plan").each(function (t) {
//找到当前月的收入和支出
var income = f2($(this).parent().parent().find(".input-changeable-total-income-budget-plan").val());
var cost = f2($(this).parent().parent().find(".input-changeable-total-cost-budget-plan").val());
//我的上月余额
var prevFundBalance = f2($(this).parent().parent().prev("tr").find(".input-changeable-fund-balance-budget-plan").val());
if(!prevFundBalance){
//第一个月的话上月余额就为0
prevFundBalance = 0;
}
fundBalance = income - cost + prevFundBalance;
$(this).val(f2(fundBalance));
});
//总余额=最后一个月的余额
$(".input-total-fund-balance-budget-plan").val(f2(fundBalance));
$(".input-total-title-fund-balance-budget-plan").val(f2(fundBalance));
}
/**
* 更新每一行【即每个月】的垫资计划
*/
function updateEachUnderwrittenPlan() {
var total = 0;
//找到每个月的垫资计划输入框
$(".input-changeable-underwritten-plan-budget-plan").each(function (t) {
//找到当前月的收入和支出
var income = $(this).parent().parent().find(".input-changeable-total-income-budget-plan").val();
var cost = $(this).parent().parent().find(".input-changeable-total-cost-budget-plan").val();
//我的上月余额
var prevFundBalance = $(this).parent().parent().prev("tr").find(".input-changeable-fund-balance-budget-plan").val();
if(!prevFundBalance){
//第一个月的话上月余额就为0
prevFundBalance = 0;
}
var underwrittenPlan = calUnderwrittenPlan(income, cost, prevFundBalance);
total += underwrittenPlan;
$(this).val(underwrittenPlan);
});
//总垫资计划=所有月累加
$(".input-total-underwritten-plan-budget-plan").val(f2(total));
$(".input-total-title-underwritten-plan-budget-plan").val(f2(total));
//下放小表的垫资峰值金额
$(".input-underwritten-plan-statistic-amount-budget-plan").val(f2(total));
}
/**
* 计算垫资计划
* @param income 收入
* @param cost 支出
* @param prevFundBalance 上月余额
*/
function calUnderwrittenPlan(income, cost, prevFundBalance) {
var underwrittenPlan = 0;
if(!income || !cost){
//数据还不全的时候
underwrittenPlan = NaN;
}else {
if (f2(income) - f2(cost) >= 0) {
underwrittenPlan = 0;
} else {
if (f2(prevFundBalance) < 0) {
underwrittenPlan = f2(f2(cost) - f2(income));
} else {
if (f2(prevFundBalance) <= f2(cost) - f2(income)) {
underwrittenPlan = f2(f2(cost) - f2(income) - f2(prevFundBalance));
} else {
underwrittenPlan = 0;
}
}
}
}
return underwrittenPlan;
}
/**
* 更新每一行【即每个月】的还款计划
*/
function updateEachRepaymentPlan() {
var total = 0;
//找到每个月的回款计划输入框
$(".input-changeable-repayment-plan-budget-plan").each(function (t) {
//找到当前月的收入和支出
var income = $(this).parent().parent().find(".input-changeable-total-income-budget-plan").val();
var cost = $(this).parent().parent().find(".input-changeable-total-cost-budget-plan").val();
//我的上月余额
var prevFundBalance = $(this).parent().parent().prev("tr").find(".input-changeable-fund-balance-budget-plan").val();
if(!prevFundBalance){
//第一个月的话上月余额就为0
prevFundBalance = 0;
}
var repaymentPlan = calRepaymentPlan(income, cost, prevFundBalance);
total += repaymentPlan;
$(this).val(repaymentPlan);
});
//总回款计划=所有月累加
$(".input-total-repayment-plan-budget-plan").val(f2(total));
$(".input-total-title-repayment-plan-budget-plan").val(f2(total));
}
/**
* 计算回款计划
* @param income 收入
* @param cost 支出
* @param prevFundBalance 上月余额
*/
function calRepaymentPlan(income, cost, prevFundBalance) {
var repaymentPlan = 0;
if(!income || !cost){
//数据还不全的时候
repaymentPlan = NaN;
}else {
if (f2(income) - f2(cost) <= 0) {
repaymentPlan = 0;
} else {
if (f2(prevFundBalance) >= 0) {
repaymentPlan = 0;
} else {
if (f2(-prevFundBalance) >= f2(income) - f2(cost)) {
repaymentPlan = f2(f2(income) - f2(cost));
} else {
repaymentPlan = f2(-prevFundBalance);
}
}
}
}
return repaymentPlan;
}
/**
* 更新每一行【即每个月】的资金利息
*/
function updateEachCapitalInterest() {
//找到年利率
var underwrittenPlanTaxRate = f2($(".input-underwritten-plan-statistic-tax-rate-budget-plan").val());
var total = 0;
//找到每个月的资金利息输入框
$(".input-changeable-capital-interest-budget-plan").each(function (index,element) {
//找到本月之前的所有的垫资和回款
var underwrittenPlan = summationByClass($(this),".input-changeable-underwritten-plan-budget-plan", index);
var repaymentPlan= summationByClass($(this),".input-changeable-repayment-plan-budget-plan", index);
console.log(underwrittenPlan, repaymentPlan);
var capitalInterest = f2((underwrittenPlan-repaymentPlan)*underwrittenPlanTaxRate/100/12);
total += capitalInterest;
$(this).val(capitalInterest);
});
//总资金利息=所有月累加
$(".input-total-capital-interest-budget-plan").val(f2(total));
$(".input-total-title-capital-interest-budget-plan").val(f2(total));
//下方小表的资金利息
$(".input-underwritten-plan-statistic-capital-interest-budget-plan").val(f2(total));
}
/**
* 从输入框开始找到我上面的所有的包含className的输入框的值的和
*/
function summationByClass(input, className, myIndex) {
var total = 0;
var trs = input.parent().parent().parent().find("tr");
trs.each(function (index, element) {
//myIndex从0开始刨除表头和总计、总计两行
index-=3;
if(index>=0 && index<=myIndex){
total += f2($(this).find(className).val());
}
});
return total;
}
/*function updateEachCapitalInterest() {
var underwrittenPlanTaxRate = f2($(".input-underwritten-plan-statistic-tax-rate-budget-plan").val());
var total = 0;
//找到每个月的资金利息输入框
$(".input-changeable-capital-interest-budget-plan").each(function (t) {
//找到当前月的垫资计划
var underwrittenPlan = f2($(this).parent().parent().find(".input-changeable-underwritten-plan-budget-plan").val());
var capitalInterest = underwrittenPlan*underwrittenPlanTaxRate/100/12;
total += capitalInterest;
$(this).val(f2(capitalInterest));
});
//总资金利息=所有月累加
$(".input-total-capital-interest-budget-plan").val(f2(total));
//下方小表的资金利息
$(".input-underwritten-plan-statistic-capital-interest-budget-plan").val(f2(total));
}*/
/**
* 更新资金相关信息
*
垫资峰值时间 垫资最大的那一个月
垫资峰值金额 垫资累计 @see updateEachUnderwrittenPlan
资金利息 垫资每月利息累加 @see updateEachCapitalInterest
*/
function updateUnderwrittenInfo() {
var max = 0;
var month = '';
//找到每个月的垫资计划输入框
$(".input-changeable-underwritten-plan-budget-plan").each(function (t) {
//找到当前月垫资计划
var underwrittenPlan = f2($(this).val());
//当月比最大的还大,就取当月的
if(underwrittenPlan > max){
month = $(this).parent().parent().find(".input-changeable-month-budget-plan").val();
max = underwrittenPlan;
}
});
//垫资峰值时间为每个月最大的那个月
$(".input-underwritten-plan-statistic-max-month-budget-plan").val(month);
}
/**
* 更新页面收入的数据
*/
function updateBudgetPlanDetailData(data,returnData) {
//var details = data.details;
//主页面上的财务费用
$("input[name='costExpropriationTaxExclude']").val($(".input-underwritten-plan-statistic-capital-interest-budget-plan").val());
//更新项目贡献率
updateProjectContributionProfitRate();
//更新现金流量
updateCashFlow();
alert("保存成功");
$('#my-prompt-budget-plan-detail').modal('close');
}
/**
* 绑定公司管理费用输入框
*/
function bindCompanyManageChangeable() {
$("input[name='costCompanyManageTaxExclude']").change(function () {
//更新项目贡献率
updateProjectContributionProfitRate();
});
}
/**
* 更新现金流量表
*/
function updateCashFlow() {
var saleIncome = classVal("input-total-sale-income-budget-plan");
var earnestMoneyIncome = classVal("input-total-earnest-money-income-budget-plan");
var deviceCost = classVal("input-total-device-cost-budget-plan");
var engineerCost = classVal("input-total-engineer-cost-budget-plan");
var projectManageCost = classVal("input-total-project-manage-cost-budget-plan");
var earnestMoneyCost = classVal("input-total-earnest-money-cost-budget-plan");
var capitalInterest = classVal("input-total-capital-interest-budget-plan");
var underwrittenPlan = classVal("input-total-underwritten-plan-budget-plan");
var repaymentPlan = classVal("input-total-repayment-plan-budget-plan");
var d = f2(f2(deviceCost)+f2(engineerCost));
var f = f2(f2(projectManageCost)+f2(earnestMoneyCost)+f2(capitalInterest));
var g = f2(f2(saleIncome)+0+f2(earnestMoneyIncome)-d-0-f);
var m = f2(f2(underwrittenPlan)-f2(repaymentPlan));
var n = f2(g+0+m);
/*console.log(saleIncome,earnestMoneyIncome,deviceCost,
engineerCost,projectManageCost,earnestMoneyCost,
capitalInterest,underwrittenPlan,repaymentPlan,
d,f,g,m,m);*/
$("input[name='saleIncomeCash']").val(saleIncome);
$("input[name='earnestMoneyIncome']").val(earnestMoneyIncome);
$("input[name='purchaseCost']").val(d);
$("input[name='earnestMoneyCost']").val(f);
$("input[name='netCashFlow']").val(g);
$("input[name='financingCapitalInflow']").val(underwrittenPlan);
$("input[name='financingCapitalOutflow']").val(repaymentPlan);
$("input[name='financingCapitalCashflow']").val(m);
$("input[name='netIncreaseMonetaryFunds']").val(n);
}