var relation_order_num = '';//关联单号
var type = 0;//业务类型
var $type = '';
var aryinfo = {};//供应商物品列表
//获取href里面的参数
function getUrlParam(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
var r = window.location.search.substr(1).match(reg); //匹配目标参数
if (r != null) return unescape(r[2]); return null; //返回参数值
}
//获取默认单据号与名称
var getusername = function (type) {
if ($.trim(sysid) == '') {
$.ajax({
url: "/erp/Erp_supplierprice/GetLoad", async: false, cache: false, dataType: "json",
success: function (data) {
$('input[name="erp_supplierprice.orderCode"]').val(data.orderCode);
switch (type) {
case 1:
$('#txtTitle').html('主材供应商选择定价单');
$('input[name="erp_supplierprice.title"]').val('主材供应商选择定价(' + data.username + ')');
break;
case 3:
$('#txtTitle').html('施工费/措施费班组选择定价单');
$('input[name="erp_supplierprice.title"]').val('施工费/措施费班组选择定价(' + data.username + ')');
break;
case 5:
$('#txtTitle').html('机械设备供应商选择定价单');
$('input[name="erp_supplierprice.title"]').val('机械设备供应商选择定价(' + data.username + ')');
break;
case 6:
$('#txtTitle').html('固定资产/周转材料供应商选择定价单');
$('input[name="erp_supplierprice.title"]').val('固定资产/周转材料供应商选择定价(' + data.username + ')');
break;
case 7:
$('#txtTitle').html('周转材料供应商选择定价单');
$('input[name="erp_supplierprice.title"]').val('周转材料供应商选择定价(' + data.username + ')');
break;
case 11:
$('#txtTitle').html('设备部劳务班组选择定价单');
$('input[name="erp_supplierprice.title"]').val('设备部劳务班组选择定价(' + data.username + ')');
break;
}
}
});
}
}
//选择计算金额
$(document).on('change', $('input[name="erp_supplierprice_dtl.price"],input[name="erp_supplierprice_dtl.count"],input[name="erp_supplierprice_dtl.totalPrice"]'), function (i, r) {
countmoney();
});
//新增子项后触发事假
createMethod = function (materialCode, materialName, Unit, count, model) {
// 不知道哪个RZ写的 顾前不顾后 只有本页调进来这些参数才有值 其他时候都是各种undifind,所以下面处理一下
materialCode = (typeof materialCode == "string" || typeof materialCode == "number") ? materialCode : '';
materialName = (typeof materialName == "string" || typeof materialName == "number") ? materialName : '';
Unit = (typeof Unit == "string" || typeof Unit == "number") ? Unit : '';
count = (typeof count == "string" || typeof count == "number") ? count : '';
model = (typeof model == "string" || typeof model == "number") ? model : '';
NumberBind();
var ntr = $('input[name="erp_supplierprice_dtl.supplier_name"]').length;
if (ntr > 0) {
var inputs = '';
$('input[name="erp_supplierprice_dtl.supplier_name"]').eq(ntr - 1).after(inputs);
var inputs = '';
$('input[name="erp_supplierprice_dtl.materielinfo_name"]').eq(ntr - 1).after(inputs);
inputs = '';
if ($.trim(materialName) != '') {
$('input[name="erp_supplierprice_dtl.count"]').eq(ntr - 1).val(count);
$('input[name="erp_supplierprice_dtl.materielinfo_name"]').eq(ntr - 1).val(materialName);
$('input[name="erp_supplierprice_dtl.unit"]').eq(ntr - 1).val(Unit);
if (type == 3) {
$('select[name="erp_supplierprice_dtl.materielinfo_code"]').eq(ntr - 1).val(materialCode);
$('select[name="erp_supplierprice_dtl.materielinfo_code"]').eq(ntr - 1).trigger("chosen:updated");
$('select[name="erp_supplierprice_dtl.unit"]').eq(ntr - 1).val(Unit);
$('select[name="erp_supplierprice_dtl.unit"]').eq(ntr - 1).trigger("chosen:updated");
}
}
if (type != 3) {
$('input[name="erp_supplierprice_dtl.materielinfo_name"]').eq(ntr - 1).after(inputs);
}
else {
$('input[name="erp_supplierprice_dtl.materialCode"]').eq(ntr - 1).val(materialCode);
}
}
$('input[name="erp_supplierprice_dtl.supplier_name"]').eq(ntr - 1).bind('focus', function (i, r) {
getcompanyinfo(this);
});
$('input[name="erp_supplierprice_dtl.contacts_way"]').eq(ntr - 1).bind('focus', function (i, r) {
getcompanyinfo(this);
});
if (type == 1 || type == 5 || type == 6 || type == 7) {
$('input[name="erp_supplierprice_dtl.materielinfo_name"]').eq(ntr - 1).bind('focus', function (i, r) {
getmaterielinfo(this);
});
}
countmoney();
}
//删除事件后触发操作
deleteMethod = function () {
countmoney();
}
//首次加载定价单信息
var setfirstInfo = function () {
if ($.trim(sysid) == '' && $.trim(getUrlParam('original_order_code')) == '' && (type == 1 || type == 3 || type == 5 || type == 6 || type == 7)) {
$.ajax({
url: "/oa/General/Getmaterielinfo?orderCode=" + relation_order_num, async: false, cache: false, dataType: "json",
success: function (data) {
$.each(data, function (i, r) {
var model = $.trim(r.model);
model = model == '' ? '' : '(' + model + ')';
if (i == 0)
createMethod(r.materielinfo_code, r.materielinfoName + model, r.Unit, r.count, r.model);
if (i > 0) {
$('.subtradd_js').click();
$('input[name="erp_supplierprice_dtl.count"]').eq(i).val(r.count);
$('input[name="erp_supplierprice_dtl.materielinfo_code"]').eq(i).val(r.materielinfo_code);
$('input[name="erp_supplierprice_dtl.model"]').eq(i).val(r.model);
if (type == 3) {
$('select[name="erp_supplierprice_dtl.materielinfo_code"]').eq(i).val(r.materielinfo_code);
$('select[name="erp_supplierprice_dtl.materielinfo_code"]').eq(i).trigger("chosen:updated");
$('select[name="erp_supplierprice_dtl.unit"]').eq(i).val(r.Unit);
$('select[name="erp_supplierprice_dtl.unit"]').eq(i).trigger("chosen:updated");
}
$('input[name="erp_supplierprice_dtl.materielinfo_name"]').eq(i).val(r.materielinfoName + model);
$('input[name="erp_supplierprice_dtl.unit"]').eq(i).val(r.Unit);
}
});
}
});
}
}
//选择供应商后绑定数据
var thisobj = null;
var setCompanyInfo = function (id, name, UserName, Phone, BankName, BankDeposit, BankAccount) {
var materielinfo_code = $(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.materielinfo_code"]').val();
if (setcompanyinfo(id, materielinfo_code)) {
$(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.supplier_id"]').val(id);
$(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.supplier_name"]').val(name);
$(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.supplier_name"]').attr('title', name);
$(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.supplier_name"]').attr('alt', name);
$(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.contacts_way"]').val(UserName + '(' + Phone + ')');
$(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.contacts_way"]').attr('title', UserName + '(' + Phone + ')');
$(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.contacts_way"]').attr('alt', UserName + '(' + Phone + ')');
layer.closeAll();
}
else {
layer.msg('每个供应商单个物品只能选择一次');
}
}
//供应商选择
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) {
switch (type) {
case 1: $type = '01'; break;
//case 5: $type = '050002,050004'; break;
case 5: $type = ''; break;
case 6: $type = '04,05,06'; break;
case 7: $type = "04"; break;
}
thisobj = obj;
layer.open({
type: 2,
title: '采购物品',
shadeClose: true,
shade: 0.4,
area: ['90%', '90%'],
//content: "/Article/index?type=" + $type
content: "/Article/index"
});
}
//选择物品后赋值
setBaseInfo = function (materialCode, materialName, resourceClassificationId, resourceClassificationName, specificationModel, measurementUnit, index, measurementUnitName, resourceClassificationSupName) {
var supplier_id = $.trim($(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.supplier_id"]').val());
supplier_id = supplier_id == '' ? 0 : supplier_id;
if (setcompanyinfo(supplier_id, materialCode)) {
$(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.materielinfo_code"]').val(materialCode);
var sname = materialName + ($.trim(specificationModel) == '' ? '' : '(' + $.trim(specificationModel) + ')')
$(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.materielinfo_name"]').val(sname);
$(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.model"]').val(specificationModel);
$(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.materielinfo_name"]').attr('title', sname);
$(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.materielinfo_name"]').attr('alt', sname);
$(thisobj).parent().parent().find('input[name="erp_supplierprice_dtl.unit"]').val(measurementUnitName);
if (type == 3) {
$(thisobj).parent().parent().find('select[name="erp_supplierprice_dtl.unit"]').val(measurementUnitName);
$(thisobj).parent().parent().find('select[name="erp_supplierprice_dtl.unit"]').trigger("chosen:updated");
}
layer.closeAll();
}
else {
layer.msg('每个供应商单个物品只能选择一次');
}
}
//计算总金额
var countmoney = function () {
var allmoney = 0;
$.each($('input[name="erp_supplierprice_dtl.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="erp_supplierprice_dtl.count"]').val());
count = count == '' ? 0 : parseFloat(count);
var total = accMul(count , val).toFixed(2);
allmoney = parseFloat(allmoney) + parseFloat(total);
$(this).parent().parent().find('input[name="erp_supplierprice_dtl.totalPrice"]').val(total);
});
$('#erp_supplierprice_total_price').val(parseFloat(allmoney).toFixed(2));
}
// 验证重复元素,有重复返回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="erp_supplierprice_dtl.supplier_name"]'), function () {
var supplier_name = $.trim($(this).val());
var supplier_id = $(this).parent().parent().find('input[name="erp_supplierprice_dtl.supplier_id"]').val();
var materielinfo_code = $.trim($(this).parent().parent().find('input[name="erp_supplierprice_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;
}
///数据加载
var initData = function () {
NumberBind();
$('input[name="erp_supplierprice.original_order_code"]').parent().parent().hide();
var url = window.location.href;
type = parseInt(getUrlParam('type'));
if ($.trim(sysid) != '' && initItems != null) {
type = parseInt(initItems.type);
relation_order_num = initItems.relation_order_num;
}
getusername(type);
var inputs = '';
$('#erp_supplierprice_orderCode').after(inputs);
relation_order_num = relation_order_num == '' ? $.trim(getUrlParam('relation_order_num')) : relation_order_num;
if ($.trim(relation_order_num) == '') {
$('input[name="erp_supplierprice.relation_order_num"]').parent().parent().remove();
}
else {
$('input[name="erp_supplierprice.relation_order_num"]').val(relation_order_num);
}
var projectid = $.trim(getUrlParam('projectid'));
projectid = projectid == '' ? 0 : projectid;
projectid = parseInt(projectid);
if (parseInt(projectid) > 0) {
$('#erp_supplierprice_project_id').val(projectid);
$('#erp_supplierprice_project_id').attr('disabled', 'disabled');
$('#erp_supplierprice_project_id').trigger("chosen:updated");
}
$('input[name="erp_supplierprice_dtl.supplier_name"],input[name="erp_supplierprice_dtl.contacts_way"]').bind('focus', function (i, r) {
getcompanyinfo(this);
return false;
});
if (sysid == '') {
var ntr = $('input[name="erp_supplierprice_dtl.supplier_name"]').length;
if (ntr > 0) {
var inputs = '';
$('input[name="erp_supplierprice_dtl.supplier_name"]').eq(ntr - 1).after(inputs);
}
}
setfirstInfo();
if (sysid != '') {
if ($.trim(sysid) != '' && initItems.Children != null && initItems.Children != undefined && initItems.Children.length > 0) {
$.each(initItems.Children, function (i, r) {
var inputs = '';
$('input[name="erp_supplierprice_dtl.supplier_name"]').eq(i).after(inputs);
var inputs = '';
$('input[name="erp_supplierprice_dtl.materielinfo_name"]').eq(i).after(inputs);
if (type == 1 || type == 5 || type == 6 || type == 7) {
inputs = '';
$('input[name="erp_supplierprice_dtl.materielinfo_name"]').eq(i).after(inputs);
}
});
if (type == 1 || type == 5 || type == 6 || type == 7) {
$('input[name="erp_supplierprice_dtl.materielinfo_name"]').bind('focus', function (i, r) {
getmaterielinfo(this);
});
}
}
}
addCSS();
changeTextarea();
$.each($('input[name="erp_supplierprice_dtl.materielinfo_name"],input[name="erp_supplierprice_dtl.supplier_name"],input[name="erp_supplierprice_dtl.contacts_way"],input[name="erp_supplierprice_dtl.pay_way"]'), function (i, r) {
var val = $(this).val();
$(this).attr('title', val);
$(this).attr('alt', val);
});
if (sysid == '' && $.trim(getUrlParam('original_order_code')) != "") {
ChangeSupplier();
}
}
//动态添加CSS样式
function addCSS() {
var str_style = 'td{ position:relative;}';
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改为textarea
function changeTextarea() {
//备注
$('input[name="erp_supplierprice_dtl.pay_way"]').each(function (i, input) {
var value = $.trim($(this).val());
var textarea = createTextarea("erp_supplierprice_dtl", "pay_way");
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;
}
var oldId = parseInt(getUrlParam('oldId'));
function ChangeSupplier() {
oldId = parseInt(getUrlParam('oldId'));
// 获取原始数据
$.ajax({
url: "/ERP/Erp_supplierprice/Get?sysid=" + oldId + "&original_order_code=" + getUrlParam('original_order_code')
, async: false
, cache: false
, dataType: "json",
success: function (data) {
// 赋值Children
$.each(data, function (i, v) {
if ($(".main input[name='erp_supplierprice." + i + "']").length > 0) {
v = (v == null || v == "null") ? "" : v;
$(".main input[name='erp_supplierprice." + i + "']").val(v);
}
});
$.each(data.Children, function (i, r) {
if (i == 0)
createMethod(r.materielinfo_code, r.materielinfo_name, r.unit, r.count, r.model);
if (i > 0) {
$('.subtradd_js').click();
$('input[name="erp_supplierprice_dtl.count"]').eq(i).val(r.count);
$('input[name="erp_supplierprice_dtl.materielinfo_code"]').eq(i).val(r.materielinfo_code);
$('input[name="erp_supplierprice_dtl.model"]').eq(i).val(r.model);
if (type == 3) {
$('select[name="erp_supplierprice_dtl.materielinfo_code"]').eq(i).val(r.materielinfo_code);
$('select[name="erp_supplierprice_dtl.materielinfo_code"]').eq(i).trigger("chosen:updated");
$('select[name="erp_supplierprice_dtl.unit"]').eq(i).val(r.unit);
$('select[name="erp_supplierprice_dtl.unit"]').eq(i).trigger("chosen:updated");
}
$('input[name="erp_supplierprice_dtl.materielinfo_name"]').eq(i).val(r.materielinfo_name);
$('input[name="erp_supplierprice_dtl.unit"]').eq(i).val(r.unit);
}
});
$.each(data.Children, function (itemIndex, itmeData) {
$.each(itmeData, function (i, v) {
if ($('#girdtable .body').eq(itemIndex).find("[name='erp_supplierprice_dtl." + i + "']").length > 0) {
v = (v == null || v == "null") ? "" : v;
$('#girdtable .body').eq(itemIndex).find("[name='erp_supplierprice_dtl." + i + "']").val(v);
}
});
});
$("[name='erp_supplierprice.remark']").val(data.remark + "(换供应商复制单据[原始单号:" + data.orderCode + "])");
$("[name='erp_supplierprice.orderCode']").val(data.NewOrderCode);
$("[name='erp_supplierprice.original_order_code']").val(data.original_order_code);
$("[name='erp_supplierprice.total_price']").val(data.total_price);
$('input[name="erp_supplierprice.title"]').val($('input[name="erp_supplierprice.title"]').val().replace(/\(\S*\)/, data.NewUserName));
$.each($('input,textarea,select'), function (i, r) {
$(this).attr('disabled', 'disabled');
$(".chosen-select").trigger("chosen:updated");
});
$('input[name="erp_supplierprice_dtl.supplier_name"]').removeAttr('disabled');
$('.subtradd_js').hide();
$('.btn-info').hide();
}
});
}
NumberBind = function () {
$("[name='erp_supplierprice_dtl.count']").addClass("countTxtBox");
$("[name='erp_supplierprice_dtl.price']").addClass("priceTxtBox");
$("[name='erp_supplierprice_dtl.totalPrice']").addClass("amountTxtBox");
NumberBoxBind();
}