/**
* 一个采购成本详情的字段
*/
//COST_DETAIL_ARR=["type","category","name","unit","amount","price","taxRate","totalTaxInclude","totalTaxExclude"];
COST_DETAIL2 = {
"num": [false, "序号", "string"],
"type": [false, "采购成本项目", "string"],
"category": [false, "产品大类", "string"],
"taxRate": [false, "税率", "number"],
"totalTaxInclude": [false, "含税总金额", "number"],
"totalTaxExclude": [false, "不含税金额", "number"],
"totalTax": [false, "税金", "number"],
"contractParty": [false, "供应商", "string"],
"remark": [false, "备注", "string"]
};
COST_DETAIL = {
"num": [false, "序号", "string"],
"type": [false, "采购成本项目", "string"],
"category": [false, "产品大类", "string"],
"taxRate": [false, "税率", "number"],
"totalTaxInclude": [false, "含税总金额", "number"],
"totalTaxExclude": [false, "不含税金额", "number"],
"totalTax": [false, "税金", "number"],
"contractParty": [false, "供应商", "string"],
"remark": [false, "备注", "string"]
};
/*
[
{"id":"1","name":"xxx1"},{"id":"2","name":"xxx2"}
]
*/
SELECT_TYPE_CATEGORY_DATA = [];
/*{
"1":[
{
"id":"1",
"name":"华智产品"
},
{
"id":"2",
"name":"紫光其他产品"
},
{
"id":"3",
"name":"外购产品"
}
],
"2":[
{
"id":"4",
"name":"外购工程"
}
],
"3":[
{
"id":"5",
"name":"华智服务"
},
{
"id":"6",
"name":"紫光其他服务"
},
{
"id":"7",
"name":"外购服务"
}
],
"4":[
{
"id":"8",
"name":"其他"
}
]
};*/
SELECT_TYPE_CATEGORY_MAP_DATA = {};
/*{
"1":"1",
"2":"1",
"3":"1",
"4":"2",
"5":"3",
"6":"3",
"7":"3",
"8":"4"
};
*/
SELECT_CATEGORY_TYPE_MAP_DATA = {};
/*$(function () {
$("#cost-detail").click(function () {
$('#my-prompt-cost-detail').modal({
relatedTarget: this,
closeOnConfirm:false,
onConfirm: function(e) {
//不能使用e.data,因为无法获取动态添加的
var data = collectData("am-modal-prompt-input-cost");
//data = prepareAjaxData(data, COST_DETAIL_ARR, $("#id").val(),false);
data = prepareAjaxDataVerify(data, COST_DETAIL, $("#id").val());
if(data){
postAjax(base+"/project/budgetEditSaveCostDetail", data, updateCostData);
}
},
onCancel: function(e) {
}
});
});
$("#costAddBtn").click(function () {
appendTrCost();
});
//绑定其他其他的输入框
bindOtherOtherChangeable();
//绑定采购明细中select联动事件
bindTypeSelectChange();
//初始化大类和类别的数据
getAjax(base+"/procurement/type/map", null, initTypeCategory);
});*/
$(function () {
$("#cost-detail").click(function () {
$('#my-prompt-cost-detail').modal({
relatedTarget: this,
closeOnConfirm: false,
onConfirm: function (e) {
//不能使用e.data,因为无法获取动态添加的
var data = collectData("am-modal-prompt-input-cost");
//data = prepareAjaxData(data, COST_DETAIL_ARR, $("#id").val(),false);
data = prepareAjaxDataVerify(data, COST_DETAIL2, $("#id").val());
if (data) {
postAjax(base + "/project/budgetEditSaveCostDetail", data, updateCostData);
}
},
onCancel: function (e) {
}
});
});
});
//保存采购成本明细表
$(function () {
$("#costTableSave").click(function () {
//不能使用e.data,因为无法获取动态添加的
var data = collectData("am-modal-prompt-input-cost");
//data = prepareAjaxData(data, COST_DETAIL_ARR, $("#id").val(),false);
data = prepareAjaxDataVerify(data, COST_DETAIL2, $("#id").val());
if (data) {
postAjax(base + "/project/budgetEditSaveCostDetail", data, updateCostData);
}
});
$("#costAddBtn").click(function () {
appendTrCost();
$("#costAddBtn").blur();
});
//绑定其他其他的输入框
bindOtherOtherChangeable();
//绑定采购明细中select联动事件
bindTypeSelectChange();
//绑定删除按钮
bindDeleteBtnCost();
//初始化大类和类别的数据
getAjax(base + "/procurement/type/map", null, initTypeCategory);
});
/**
* 采购成本增加一行
*/
function appendTrCost() {
//console.log(SELECT_TYPE_CATEGORY_DATA);
var options = '\r\n';
SELECT_TYPE_CATEGORY_DATA.forEach(function (e) {
options += '\r\n';
});
var template = '
' +
' | ' +
'' +
' | ' +
'' +
'' +
' | ' +
' | ' +
' | ' +
' | ' +
' | ' +
' | \n' +
' | \n' +
' | ' +
'
';
$("#costTotal").before(template);
//重新绑定删除事件和input修改事件
bindDeleteBtnCost();
//绑定序号
bindNum();
//绑定时间
bindTime();
//重新绑定
bindChangeableInput();
//绑定总计值
bindCostTotal();
//绑定采购明细中select联动事件
bindTypeSelectChange();
//绑定数字输入框保留两位小数
bindNumberInput();
if ($('#costTable').find('tbody') && $('#costTable').find('tbody')[0]) {
$('#costTable').find('tbody')[0].scrollTop = $('#costTable').find('tbody')[0].scrollHeight
}
}
/**
* 绑定时间选择器
*/
function bindTime() {
$('[data-am-datepicker]').datepicker();
}
/**
* 绑定每一行的删除事件,删除当前的一行tr,修改总计值
*/
function bindDeleteBtnCost() {
$(".am-modal-line-delete").click(function () {
//删除自己对应的tr
$(this).parent().parent().remove();
bindNum();
updateAmount("input-changeable-amount-cost", "input-changeable-total-amount-cost");
updateTotal("input-changeable-total-tax-include-cost", "input-changeable-total-total-tax-include-cost");
updateTotal("input-changeable-total-tax-exclude-cost", "input-changeable-total-total-tax-exclude-cost");
updateTotal("input-changeable-total-tax-cost", "input-changeable-total-total-tax-cost");
updateTotal("input-changeable-total-pay-amount-cost", "input-changeable-total-total-pay-amount-cost");
updateTotal("input-changeable-total-underwritten-amount-cost", "input-changeable-total-total-underwritten-amount-cost");
});
}
/**
* 绑定每个可改变的输入框,修改后改变对应输入框的值
*/
function bindCostTotal() {
//数量改变
$(".input-changeable-amount-cost").change(function () {
updateAmount("input-changeable-amount-cost", "input-changeable-total-amount-cost");
updateTotal("input-changeable-total-tax-include-cost", "input-changeable-total-total-tax-include-cost");
updateTotal("input-changeable-total-tax-exclude-cost", "input-changeable-total-total-tax-exclude-cost");
updateTotal("input-changeable-total-tax-cost", "input-changeable-total-total-tax-cost");
});
//单价改变
$(".input-changeable-price-cost").change(function () {
updateTotal("input-changeable-total-tax-include-cost", "input-changeable-total-total-tax-include-cost");
updateTotal("input-changeable-total-tax-exclude-cost", "input-changeable-total-total-tax-exclude-cost");
updateTotal("input-changeable-total-tax-cost", "input-changeable-total-total-tax-cost");
});
//税率改变
$(".input-changeable-tax-rate-cost").change(function () {
updateTotal("input-changeable-total-tax-exclude-cost", "input-changeable-total-total-tax-exclude-cost");
updateTotal("input-changeable-total-tax-cost", "input-changeable-total-total-tax-cost");
});
//收款金额变化
$(".input-changeable-total-pay-amount-cost").change(function () {
updateTotal("input-changeable-total-pay-amount-cost", "input-changeable-total-total-pay-amount-cost");
});
//垫资金额变化
$(".input-changeable-total-underwritten-amount-cost").change(function () {
updateTotal("input-changeable-total-underwritten-amount-cost", "input-changeable-total-total-underwritten-amount-cost");
});
$(".input-changeable-total-tax-include-cost").change(function () {
updateTotal("input-changeable-total-tax-include-cost", "input-changeable-total-total-tax-include-cost");
updateTotal("input-changeable-total-tax-exclude-cost", "input-changeable-total-total-tax-exclude-cost");
updateTotal("input-changeable-total-tax-cost", "input-changeable-total-total-tax-cost");
});
}
/**
* 更新页面收入的数据【累加】
*/
function updateCostData(data, returnData) {
var details = data.details;
var deviceTaxInclude = 0;
var deviceTaxExclude = 0;
var deviceTax = 0;
var buildTaxInclude = 0;
var buildTaxExclude = 0;
var buildTax = 0;
var serviceTaxInclude = 0;
var serviceTaxExclude = 0;
var serviceTax = 0;
var otherTaxInclude = 0;
var otherTaxExclude = 0;
var otherTax = 0;
var costTaxRates = "";
var set = new Set();
details.forEach(function (t, number, ts) {
if (t["type"] == "1") {
//设备类
deviceTaxInclude += f2(t["totalTaxInclude"]);
deviceTaxExclude += f2(t["totalTaxExclude"]);
deviceTax += f2(t["totalTax"]);
} else if (t["type"] == "2") {
//施工类
buildTaxInclude += f2(t["totalTaxInclude"]);
buildTaxExclude += f2(t["totalTaxExclude"]);
buildTax += f2(t["totalTax"]);
} else if (t["type"] == "3") {
//服务类
serviceTaxInclude += f2(t["totalTaxInclude"]);
serviceTaxExclude += f2(t["totalTaxExclude"]);
serviceTax += f2(t["totalTax"]);
} else if (t["type"] == "4") {
//其他类
otherTaxInclude += f2(t["totalTaxInclude"]);
otherTaxExclude += f2(t["totalTaxExclude"]);
otherTax += f2(t["totalTax"]);
}
if (!set.has(t["taxRate"])) {
costTaxRates += f2Fixed(t["taxRate"]) + "%,";
set.add(t["taxRate"]);
}
});
$("input[name='costPurchaseDeviceTaxInclude']").val(f2Fixed(deviceTaxInclude));
$("input[name='costPurchaseDeviceTaxExclude']").val(f2Fixed(deviceTaxExclude));
$("input[name='costPurchaseDeviceTax']").val(f2Fixed(deviceTax));
$("input[name='costPurchaseBuildTaxInclude']").val(f2Fixed(buildTaxInclude));
$("input[name='costPurchaseBuildTaxExclude']").val(f2Fixed(buildTaxExclude));
$("input[name='costPurchaseBuildTax']").val(f2Fixed(buildTax));
$("input[name='costPurchaseServiceTaxInclude']").val(f2Fixed(serviceTaxInclude));
$("input[name='costPurchaseServiceTaxExclude']").val(f2Fixed(serviceTaxExclude));
$("input[name='costPurchaseServiceTax']").val(f2Fixed(serviceTax));
$("input[name='costPurchaseOtherTaxInclude']").val(f2Fixed(otherTaxInclude));
$("input[name='costPurchaseOtherTaxExclude']").val(f2Fixed(otherTaxExclude));
$("input[name='costPurchaseOtherTax']").val(f2Fixed(otherTax));
//资金计划表中的
// $(".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())));
/* var costOtherOtherTaxInclude = f2($("input[name='costOtherOtherTaxInclude']").val());
var costOtherOtherTaxExclude = f2($("input[name='costOtherOtherTaxExclude']").val());
var costProjectManageTaxInclude = f2($("input[name='costProjectManageTaxInclude']").val());
var costProjectManageTaxExclude = f2($("input[name='costProjectManageTaxExclude']").val());
$("input[name='costTotalTaxInclude']").val(f2(deviceTaxInclude+buildTaxInclude+serviceTaxInclude+otherTaxInclude+costOtherOtherTaxInclude+costProjectManageTaxInclude));
$("input[name='costTotalTaxExclude']").val(f2(deviceTaxExclude+buildTaxExclude+serviceTaxExclude+otherTaxExclude+costOtherOtherTaxExclude+costProjectManageTaxExclude));*/
calCostExclude();
calCostInclude();
calCostTotalTax();
updateProjectContributionProfitRate();
if (costTaxRates.length > 0) {
$(".costTaxRates").text(costTaxRates.substr(0, costTaxRates.length - 1));
}
layuiAlert("保存成功");
$('#my-prompt-cost-detail').modal('close');
}
function bindOtherOtherChangeable() {
$("input[name='costOtherOtherTaxInclude']").change(function () {
/*var costPurchaseDeviceTaxInclude = f2($("input[name='costPurchaseDeviceTaxInclude']").val());
var costPurchaseBuildTaxInclude = f2($("input[name='costPurchaseBuildTaxInclude']").val());
var costPurchaseServiceTaxInclude = f2($("input[name='costPurchaseServiceTaxInclude']").val());
var costPurchaseOtherTaxInclude = f2($("input[name='costPurchaseOtherTaxInclude']").val());
var costProjectManageTaxInclude = f2($("input[name='costProjectManageTaxInclude']").val());
var costOtherOther = f2($(this).val());
$("input[name='costTotalTaxInclude']").val(f2(costPurchaseDeviceTaxInclude+costPurchaseBuildTaxInclude
+costPurchaseServiceTaxInclude+costPurchaseOtherTaxInclude+costProjectManageTaxInclude+costOtherOther));*/
calCostInclude();
calCostOtherOtherTax();
calCostTotalTax();
updateProjectContributionProfitRate();
digitalSelf("costOtherOtherTaxInclude", "input[name='costOtherOtherTaxInclude']");
});
$("input[name='costOtherOtherTaxExclude']").change(function () {
/*var costPurchaseDeviceTaxExclude = f2($("input[name='costPurchaseDeviceTaxExclude']").val());
var costPurchaseBuildTaxExclude = f2($("input[name='costPurchaseBuildTaxExclude']").val());
var costPurchaseServiceTaxExclude = f2($("input[name='costPurchaseServiceTaxExclude']").val());
var costPurchaseOtherTaxExclude = f2($("input[name='costPurchaseOtherTaxExclude']").val());
var costProjectManageTaxExclude = f2($("input[name='costProjectManageTaxExclude']").val());
var costOtherOther = f2($(this).val());
$("input[name='costTotalTaxExclude']").val(f2(costPurchaseDeviceTaxExclude+costPurchaseBuildTaxExclude
+costPurchaseServiceTaxExclude+costPurchaseOtherTaxExclude+costProjectManageTaxExclude+costOtherOther));*/
calCostExclude();
calCostOtherOtherTax();
calCostTotalTax();
updateProjectContributionProfitRate();
digitalSelf("costOtherOtherTaxExclude", "input[name='costOtherOtherTaxExclude']");
});
}
/**
* 大类类别联动效果
*/
function bindTypeSelectChange() {
//大类变化联动类别
$(".input-changeable-tax-rate-cost-select").on('change', function () {
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 type = $(this).val();
if (type == '自定义') {
nameSelect.attr("style", "display:none");
nameInput.attr("type", "text");
} else {
nameSelect.attr("style", "display:block");
nameInput.attr("type", "hidden");
}
});
$('.am-modal-prompt-input-cost-type').on('change', function () {
var nameSelect = $(this).parent().parent().find(".input-changeable-tax-rate-cost-select");
var nameInput = $(this).parent().parent().find(".input-changeable-tax-rate-cost-name");
nameSelect.attr("style", "display:block");
nameInput.attr("type", "hidden");
})
}
/**
* 初始化数据
* SELECT_TYPE_CATEGORY_MAP_DATA
* SELECT_CATEGORY_TYPE_MAP_DATA
* SELECT_TYPE_CATEGORY_DATA
*/
function initTypeCategory(params, data) {
var d = data.data;
var map = d.map;
Object.keys(map).forEach(function (t, number) {
var temp = [];
map[t].forEach(function (g) {
temp.push({
name: g.name,
id: g.id + ""
});
});
SELECT_TYPE_CATEGORY_MAP_DATA[t] = temp;
});
var procurementTypes = d.procurementTypes;
procurementTypes.forEach(function (e) {
SELECT_TYPE_CATEGORY_DATA.push({
id: e.id + "",
name: e.name
});
SELECT_CATEGORY_TYPE_MAP_DATA[e.id] = e.type;
});
//--请选择--的映射
//SELECT_CATEGORY_TYPE_MAP_DATA["xxxx"]="xxxx";
// console.log(SELECT_TYPE_CATEGORY_MAP_DATA);
// console.log(SELECT_TYPE_CATEGORY_DATA);
// console.log(SELECT_CATEGORY_TYPE_MAP_DATA);
}