var tabIndex;
|
var currentUserName;
|
var $type = '';
|
initData = function () {
|
var projectid = getQueryVariable("projectid") || 0;
|
console.log(projectid);
|
$(".main [field='projectName']").parent().parent().hide();
|
$.ajax({
|
url: "/Pm_SupplierInquiry/InitData",
|
async: false,
|
cache: false,
|
data: { projectid: projectid },
|
dataType: "json",
|
success: function (data) {
|
currentUserName = data.CurrentUserName;
|
var $data = data.children;
|
for (var name in data) {
|
if (name !== "children") {
|
var $value = data[name];
|
if ($value != null && $value !== '') {
|
var $control = $(".main [field='" + name + "']");
|
var $controltype = $control.prop("tagName");
|
if ($controltype != null && $controltype !== '') {
|
var $type = $control.attr("type");
|
if ($type !== "radio" && $type !== "checkbox") {
|
$(".main [field='" + name + "']").val($value);
|
}
|
if ($type === "radio") {
|
$(".main [field='" + name + "'][value='" + $value + "']").attr("checked", "checked");
|
}
|
if ($type === "checkbox") {
|
var $items = $(".main [field='" + name + "']");
|
var $arr = $value.split(",");
|
$.each($items, function (index, obj) {
|
var value = $(obj).attr("value");
|
if (contains($arr, value))
|
$(obj).attr("checked", "checked");
|
});
|
}
|
}
|
}
|
}
|
}
|
|
}
|
});
|
var $txttitle = $("#txtTitle").text();
|
currentUserNameStr = currentUserName ? "(" + currentUserName + ")" : "";
|
$txttitle = $txttitle + currentUserNameStr;
|
$("#pm_supplier_inquiry_title").val($txttitle);
|
var projectid = getQueryVariable("projectid") || 0;
|
if (projectid != null && projectid != 0) {
|
$('select[name="pm_supplier_inquiry.project_id"]').val(projectid);
|
$('select[name="pm_supplier_inquiry.project_id"]').trigger("chosen:updated");
|
}
|
//事项添加必填标志*
|
$('#pm_supplier_inquiry_remark').parent().siblings("label").append('<i class="red">*</i>');
|
//物料名称
|
$('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').each(function (i, item) {
|
item.setAttribute("title", item.value);
|
})
|
addCSS();
|
changeTextarea();
|
//绑定日期
|
var $orderDate = $("#pm_supplier_inquiry_orderDate");
|
$orderDate.val(JsonDateToDate($orderDate.val()).Format('yyyy-MM-dd hh:mm'));
|
//绑定物料选择事件
|
$('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').bind('focus', function (i, r) {
|
getmaterielinfo(this);
|
});
|
//绑定供应商和联系方式
|
$('input[name="pm_supplier_inquiry_dtl.supplier_name"]').bind('focus', function (i, r) {
|
getcompanyinfo(this);
|
return false;
|
});
|
//绑定选择分类
|
$('select[name="pm_supplier_inquiry_dtl.materielinfo_type"]').bind('change', function (i, r) {
|
if (this.value == "1") {
|
$(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').bind('focus', function (i, r) {
|
getmaterielinfo(this);
|
});
|
} else if (this.value == "2") {
|
$(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').unbind('focus');
|
}
|
$(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_code"]').val("");
|
$(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_id"]').val("");
|
$(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').val("");
|
$(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.price"]').val("");
|
$(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.unit"]').val("");
|
$(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.count"]').val("");
|
})
|
//含税总金额
|
addInputWan($("#pm_supplier_inquiry_total_tax_price"), "back");
|
//总金额
|
addInputWan($("#pm_supplier_inquiry_total_price"), "back");
|
//是否只读
|
var type = getQueryVariable("type");
|
if (type == "readonly")
|
setReadOnly();
|
var title = $("#txtTitle").html();
|
var pjname = $("#pm_supplier_inquiry_project_id option:selected").html();
|
$("#txtTitle").html(pjname + "【" + title + "】");
|
}
|
|
//选择计算金额
|
$(document).on('change', $('input[name="pm_supplier_inquiry_dtl.price"],input[name="pm_supplier_inquiry_dtl.count"],input[name="pm_supplier_inquiry_dtl.totalPrice"]'), function (i, r) {
|
countmoney();
|
});
|
|
|
|
//新增子项后触发事假
|
createMethod = function (materialCode, materialName, Unit, count) {
|
|
var ntr = $('input[name="pm_supplier_inquiry_dtl.supplier_name"]').length;
|
|
$('input[name="pm_supplier_inquiry_dtl.supplier_name"]').eq(ntr - 1).bind('focus', function (i, r) {
|
getcompanyinfo(this);
|
});
|
$('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').eq(ntr - 1).bind('focus', function (i, r) {
|
getmaterielinfo(this);
|
});
|
//绑定选择分类
|
$('select[name="pm_supplier_inquiry_dtl.materielinfo_type"]').bind('change', function (i, r) {
|
if (this.value == "1") {
|
$(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').bind('focus', function (i, r) {
|
getmaterielinfo(this);
|
});
|
} else if (this.value == "2") {
|
$(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').unbind('focus');
|
}
|
$(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_code"]').val("");
|
$(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_id"]').val("");
|
$(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').val("");
|
$(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.price"]').val("");
|
$(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.unit"]').val("");
|
$(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.count"]').val("");
|
});
|
changeTextarea();
|
}
|
//删除事件后触发操作
|
deleteMethod = function () {
|
countmoney();
|
}
|
|
//供应商选择
|
var getcompanyinfo = function (obj) {
|
thisobj = obj;
|
layer.open({
|
type: 2,
|
title: '供应商',
|
shadeClose: true,
|
shade: 0.4,
|
area: ['90%', '90%'],
|
content: "/oa/General/company"
|
});
|
}
|
//物料选择
|
var getmaterielinfo = function (obj, type) {
|
switch (type) {
|
case 1: $type = '01'; break;
|
case 5: $type = '0502,0504'; break;
|
case 6: $type = '0503'; break;
|
case 7: $type = "04"; break;
|
default: $type = ""; break;
|
}
|
thisobj = obj;
|
layer.open({
|
type: 2,
|
title: '采购物品',
|
shadeClose: true,
|
shade: 0.4,
|
area: ['90%', '90%'],
|
content: "/Article/index?type=" + $type
|
});
|
}
|
|
//选择物品后赋值
|
setBaseInfo = function (materialCode, materialName, resourceClassificationId, resourceClassificationName, specificationModel, measurementUnit, index, measurementUnitName, resourceClassificationSupName) {
|
|
var supplier_id = $.trim($(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.supplier_id"]').val());
|
supplier_id = supplier_id == '' ? 0 : supplier_id;
|
if (setcompanyinfo(supplier_id, materialCode)) {
|
$(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_code"]').val(materialCode);
|
var sname = materialName + ($.trim(specificationModel) == '' ? '' : '(' + $.trim(specificationModel) + ')')
|
$(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').val(sname);
|
$(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').attr('title', sname);
|
$(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_name"]').attr('alt', sname);
|
$(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.unit"]').val(measurementUnitName);
|
|
layer.closeAll();
|
}
|
else {
|
layer.msg('每个供应商单个物品只能选择一次');
|
}
|
}
|
|
//选择供应商后绑定数据
|
var thisobj = null;
|
var setCompanyInfo = function (id, name, UserName, Phone, BankName, BankDeposit, BankAccount) {
|
var materielinfo_code = $(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_code"]').val();
|
if (setcompanyinfo(id, materielinfo_code)) {
|
$(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.supplier_id"]').val(id);
|
$(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.supplier_name"]').val(name);
|
$(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.supplier_name"]').attr('title', name);
|
$(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.supplier_name"]').attr('alt', name);
|
$(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.contacter"]').val(UserName);
|
$(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.contacter"]').attr('title', UserName);
|
$(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.contacter"]').attr('alt', UserName);
|
$(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.contacts_way"]').val(Phone);
|
$(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.contacts_way"]').attr('title', Phone);
|
$(thisobj).parent().parent().find('input[name="pm_supplier_inquiry_dtl.contacts_way"]').attr('alt', Phone);
|
layer.closeAll();
|
}
|
else {
|
layer.msg('每个供应商单个物品只能选择一次');
|
}
|
|
}
|
|
|
//计算总金额
|
var countmoney = function () {
|
var allmoney_tax = 0;
|
var allmoney = 0;
|
//含税单价
|
$.each($('input[name="pm_supplier_inquiry_dtl.tax_price"]'), function () {
|
var val = $.trim($(this).val());
|
val = isNaN(val) ? 0 : val;
|
val = val == '' ? 0 : parseFloat(val);
|
var count = $.trim($(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.count"]').val());
|
count = count == '' ? 0 : parseFloat(count);
|
//税率
|
var taxrate = parseInt($(this).parent().parent().find('select[name="pm_supplier_inquiry_dtl.taxrate"]').val()) * 0.01;
|
//税额
|
var tax = accMul(accDiv(val, (1 + taxrate)), taxrate).toFixed(2);
|
//不含税单价
|
var price = accSub(val, tax);
|
//含税总价
|
var total_tax = accMul(count, val).toFixed(2);
|
//不含税总价
|
var total = accMul(count, price).toFixed(2);
|
//主表含税总价
|
allmoney_tax = accAdd(parseFloat(allmoney_tax), parseFloat(total_tax));
|
//主表不含税总价
|
allmoney = accAdd(parseFloat(allmoney), parseFloat(total));
|
|
//不含税单价
|
var $unit_price = $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.price"]');
|
$unit_price.val(price);
|
$unit_price.attr("title", price);
|
//含税总价
|
var $price_tax = $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.total_tax_price"]');
|
$price_tax.val(total_tax);
|
$price_tax.attr("title", total_tax);
|
//不含税总价
|
var $price = $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.totalPrice"]');
|
$price.val(total);
|
$price.attr("title", total);
|
});
|
//主表含税总金额
|
var totalMoney_tax = parseFloat(accDiv(allmoney_tax * 100, 1000000)).toFixed(8);
|
totalMoney_tax = totalMoney_tax * 1;
|
var $totalPrice_tax = $('#pm_supplier_inquiry_total_tax_price');
|
$totalPrice_tax.val(totalMoney_tax);
|
$totalPrice_tax.attr("title", totalMoney_tax);
|
//主表总金额
|
var totalMoney = parseFloat(accDiv(allmoney * 100, 1000000)).toFixed(8);
|
totalMoney = totalMoney * 1;
|
var $totalPrice = $('#pm_supplier_inquiry_total_price');
|
$totalPrice.val(totalMoney);
|
$totalPrice.attr("title", totalMoney);
|
}
|
|
// 验证重复元素,有重复返回true;否则返回false
|
function isexist(a) {
|
return /(\x0f[^\x0f]+)\x0f[\s\S]*\1/.test("\x0f" + a.join("\x0f\x0f") + "\x0f");
|
}
|
|
var setcompanyinfo = function (nsupplier_id, smaterielinfo_code) {
|
aryinfo = {};
|
$.each($('input[name="pm_supplier_inquiry_dtl.supplier_name"]'), function () {
|
var supplier_name = $.trim($(this).val());
|
var supplier_id = $(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.supplier_id"]').val();
|
var materielinfo_code = $.trim($(this).parent().parent().find('input[name="pm_supplier_inquiry_dtl.materielinfo_code"]').val());
|
if (supplier_name != '' && materielinfo_code != '') {
|
var arycodes = aryinfo[supplier_id];
|
if (arycodes == undefined || arycodes == null) {
|
arycodes = [];
|
arycodes.push(materielinfo_code);
|
aryinfo[supplier_id] = arycodes;
|
}
|
else {
|
arycodes.push(materielinfo_code);
|
aryinfo[supplier_id] = arycodes;
|
}
|
}
|
});
|
if (parseInt(nsupplier_id) > 0) {
|
var ary = aryinfo[nsupplier_id];
|
if (ary == undefined || ary == null)
|
return true;
|
else {
|
if (ary.indexOf(smaterielinfo_code) > -1)
|
return false;
|
else
|
return true;
|
}
|
|
}
|
return true;
|
|
}
|
|
//动态添加CSS样式
|
function addCSS() {
|
var str_style = 'td{ position:relative;}\
|
.bl{position: relative;}\
|
.bl .back {position: absolute;top: 0;right: 5px;display: inline-block;}\
|
.bl .backdtl {position: absolute;top: 2px;right:10px;display: inline-block;}';
|
|
|
if (document.all) { // document.createStyleSheet(url)
|
window.style = str_style;
|
document.createStyleSheet("javascript:style");
|
} else { //document.createElement(style)
|
var style = document.createElement('style');
|
style.type = 'text/css';
|
style.innerHTML = str_style;
|
document.getElementsByTagName('HEAD').item(0).appendChild(style);
|
}
|
}
|
|
//在input后添加万元div
|
function addInputWan($input, className) {
|
var div = createDivWan(className);
|
$input.after(div);
|
$input.parent().addClass("bl");
|
}
|
//创建div万元
|
function createDivWan(className) {
|
var div = document.createElement("div");
|
div.className = className;
|
div.innerHTML = "万元";
|
return div;
|
}
|
//把input改为textarea
|
function changeTextarea() {
|
//付款方式
|
$('input[name="pm_supplier_inquiry_dtl.pay_way"]').each(function (i, input) {
|
var value = $.trim($(this).val());
|
var textarea = createTextarea("pm_supplier_inquiry_dtl", "pay_way");
|
changeInputCell(input, textarea, value);
|
})
|
//备注
|
$('input[name="pm_supplier_inquiry_dtl.remark"]').each(function (i, input) {
|
var value = $.trim($(this).val());
|
var textarea = createTextarea("pm_supplier_inquiry_dtl", "remark");
|
changeInputCell(input, textarea, value);
|
})
|
}
|
|
//替换表格控件元素
|
function changeInputCell(input, newInput, value) {
|
value = value || "";
|
var $input = $(input);
|
var $newInput = $(newInput);
|
var parent = input.parentNode;
|
$newInput.val(value);
|
var hasEdit = $input.hasClass("edit");
|
var isDisbale = $input.prop("disabled");
|
isDisbale && newInput.setAttribute("disabled", "disabled");
|
newInput.innerHTML = value;
|
$input.remove();
|
parent.appendChild(newInput);
|
}
|
|
//创建textarea
|
function createTextarea(table, name) {
|
var textarea = document.createElement("textarea");
|
textarea.className = "tex_inp";
|
textarea.id = table + "_" + name;
|
textarea.name = table + "." + name;
|
textarea.setAttribute("field", name);
|
return textarea;
|
}
|
|
function setReadOnly() {
|
$(".btn:last").parent().hide();
|
$("input, textarea, select").attr("disabled", "disabled");
|
$(".subtradd_js,.subtrdel_js").hide();
|
}
|
|
getQueryVariable = function (parameter) {
|
var query = window.location.search.substring(1);
|
var vars = query.split("&");
|
for (var i = 0; i < vars.length; i++) {
|
var pair = vars[i].split("=");
|
if (pair[0] === parameter) { return pair[1]; }
|
}
|
return "";
|
}
|