var listpurposeoptions = [];
var listcostnameoptions = [];
var gettype = function () {
listpurposeoptions = [];
listcostnameoptions = [];
$.ajax({
url: "/Erp_ApplyGoods/GetPurposeList?selecttype=" + $('#erp_applygoods_selecttype').val(),
async: false,
cache: false,
dataType: "json",
success: function (data) {
listpurposeoptions.push('');
for (var i = 0; i < data.length; i++) {
listpurposeoptions.push('');
}
}
});
$.ajax({
url: "/DropDown/chengbenDropDown?selecttype=" + $('#erp_applygoods_selecttype').val(),
async: false,
cache: false,
dataType: "json",
success: function (data) {
listcostnameoptions.push('');
for (var i = 0; i < data.length; i++) {
listcostnameoptions.push('');
}
}
});
}
initData = function () {
if (window.taskid === '') {
$.ajax({
url: "/Erp_ApplyGoods/InitData",
async: false,
cache: false,
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");
});
}
}
}
}
}
if ($data != null && $data.length > 0) {
renderGirdtableByData($children, $data.length);
}
}
});
var txttitle = $("#txtTitle").text();
txttitle = txttitle + "(" + currentUserName + ")";
$("#erp_applygoods_name").val(txttitle).attr("title", txttitle);
$('#erp_applygoods_storageId').val("");
$('#erp_applygoods_storageId').trigger("chosen:updated");
$('#erp_applygoods_selecttype').val("");
$('#erp_applygoods_selecttype').trigger("chosen:updated");
}
else {
gettype();
var ntr = $('input[name="erp_applygoods_dtl.materielinfo_code"]').length;
for (var j = 0; j < ntr; j++) {
$('select[name="erp_applygoods_dtl.purpose"]').eq(j).html(listpurposeoptions.join(''));
$('select[name="erp_applygoods_dtl.purpose"]').eq(j).chosen();
$('select[name="erp_applygoods_dtl.purpose"]').eq(j).trigger("chosen:updated");
$('select[name="erp_applygoods_dtl.costname"]').eq(j).html(listcostnameoptions.join(''));
$('select[name="erp_applygoods_dtl.costname"]').eq(j).chosen();
$('select[name="erp_applygoods_dtl.costname"]').eq(j).trigger("chosen:updated");
}
$.ajax({
url: "/Erp_ApplyGoods/InitData?sysid=" + window.sysid,
async: false,
cache: false,
dataType: "json",
success: function (data) {
var $data = data.Children;
if ($data != null && $data.length > 0) {
for (var j = 0; j < $data.length; j++) {
$('select[name="erp_applygoods_dtl.purpose"]').eq(j).val($data[j].purpose);
$('select[name="erp_applygoods_dtl.purpose"]').eq(j).trigger("chosen:updated");
$('select[name="erp_applygoods_dtl.costname"]').eq(j).val($data[j].costname);
$('select[name="erp_applygoods_dtl.costname"]').eq(j).trigger("chosen:updated");
}
}
}
});
}
//打开物品仓库选择
$('input[name="erp_applygoods_dtl.materielinfo_code"]').bind('focus', function (i, r) {
this.setAttribute("autocomplete", "off");
getmaterielinfo(this)
});
//计算数量价格
$('input[name="erp_applygoods_dtl.count"]').bind('blur', function (i, r) {
computeAmount(this)
});
//修改单据日期
var $applyDate = $(".main [field='applyDate']");
$applyDate.val(JsonDateToDate($applyDate.val()).Format('yyyy-MM-dd'));
var storageId = [];
storageId.push($('#erp_applygoods_storageId').val());
$('#erp_applygoods_storageId').bind('change', function (i, r) {
var _this = this;
storageId.push(_this.value);
if (oObj == null || oObj.value.length == 0) {
return;
}
layer.confirm('更换仓库会清空申领明细,是否确认?', {
btn: ['是', '否'] //按钮
}, function () {
$("#girdtable tr.body").remove();
$(".subtradd_js").click();
$('select[name="erp_applygoods_dtl.purpose"]').eq(0).html(listpurposeoptions.join(''));
$('select[name="erp_applygoods_dtl.purpose"]').eq(0).trigger("chosen:updated");
$('select[name="erp_applygoods_dtl.costname"]').eq(0).html(listcostnameoptions.join(''));
$('select[name="erp_applygoods_dtl.costname"]').eq(0).trigger("chosen:updated");
oObj = null;
layer.closeAll();
}, function () {
storageId.pop();
_this.value = storageId[storageId.length - 1] || null;
$(_this).trigger("chosen:updated");
});
});
$('#erp_applygoods_selecttype').bind('change', function (i, r) {
var _this = this;
gettype();
var ntr = $('input[name="erp_applygoods_dtl.materielinfo_code"]').length;
for (var j = 0; j < ntr; j++) {
$('select[name="erp_applygoods_dtl.purpose"]').eq(j).html(listpurposeoptions.join(''));
$('select[name="erp_applygoods_dtl.purpose"]').eq(j).chosen();
$('select[name="erp_applygoods_dtl.purpose"]').eq(j).trigger("chosen:updated");
$('select[name="erp_applygoods_dtl.costname"]').eq(j).html(listcostnameoptions.join(''));
$('select[name="erp_applygoods_dtl.costname"]').eq(j).chosen();
$('select[name="erp_applygoods_dtl.costname"]').eq(j).trigger("chosen:updated");
}
});
}
createMethod = function () {
var ntr = $('input[name="erp_applygoods_dtl.materielinfo_code"]').length - 1;
$('input[name="erp_applygoods_dtl.materielinfo_code"]').eq(ntr).bind('focus', function (i, r) {
getmaterielinfo(this)
});
$('input[name="erp_applygoods_dtl.count"]').eq(ntr).bind('blur', function (i, r) {
computeAmount(this)
});
$('select[name="erp_applygoods_dtl.purpose"]').eq(ntr).html(listpurposeoptions.join(''));
$('select[name="erp_applygoods_dtl.purpose"]').eq(ntr).chosen();
$('select[name="erp_applygoods_dtl.purpose"]').eq(ntr).trigger("chosen:updated");
$('select[name="erp_applygoods_dtl.costname"]').eq(ntr).html(listcostnameoptions.join(''));
$('select[name="erp_applygoods_dtl.costname"]').eq(ntr).chosen();
$('select[name="erp_applygoods_dtl.costname"]').eq(ntr).trigger("chosen:updated");
}
deleteMethod = function () {
computeTotalPrice();
}
var oObj;
//物品选择
var getmaterielinfo = function (obj) {
var warehouse_id = $.trim($('#erp_applygoods_storageId').val());
if (warehouse_id == '') {
parent.layer.msg('请选择仓库', { icon: 5 });
return;
}
oObj = obj;
layer.open({
type: 2,
title: '资源库',
shadeClose: true,
shade: 0.4,
area: ['90%', '90%'],
content: "/erp/erp_warehouse/search?id=" + warehouse_id + "&operateType=1"
});
}
//选择后物品后绑定数据
setBaseInfo = function (materialNumber, materialName, count, price, model, itemmeasuringunit) {
var isRepeat = false;
//$('input[name="erp_applygoods_dtl.materielinfo_code"]').each(function (i, input) {
// if (input.value.length > 0 && input.value == materialNumber) {
// isRepeat = true;
// layer.alert("该物品" + materialName + "已存在明细中,无需重复添加");
// }
//})
if (oObj != null && !isRepeat) {
var smodel = $.trim(model) == '' ? '' : '(' + model + ')';
//$(oObj).val(materialName + smodel);
$(oObj).val(materialNumber);
var title = materialName + smodel;
$(oObj).parent().parent().find('input[name="erp_applygoods_dtl.material_name"]').val(title).attr("title", title);
$(oObj).parent().parent().find('input[name="erp_applygoods_dtl.price"]').val(price);
//$(oObj).attr('materielinfo_code', materialNumber);
//$(oObj).parent().parent().find('input[name="erp_applygoods_dtl.count"]').val(count);
//var money = (parseFloat(count) * parseFloat(price)).toFixed(2);
$(oObj).parent().parent().find('input[name="erp_applygoods_dtl.count"]').val('');
var money = '';
$(oObj).parent().parent().find('input[name="erp_applygoods_dtl.amount"]').val(money);
$(oObj).parent().parent().find('input[name="erp_applygoods_dtl.unit"]').val(itemmeasuringunit);
$(oObj).parent().parent().find('input[name="erp_applygoods_dtl.occupyNum"]').val(count);
layer.closeAll();
}
}
//计算小计
function computeAmount(obj) {
var count = obj.value;
var price = $(obj).parent().parent().find('input[name="erp_applygoods_dtl.price"]').val();
count = parseFloat(count) || 0;
price = parseFloat(price) || 0;
var amount = accMul(parseFloat(count), parseFloat(price));
$(obj).parent().parent().find('input[name="erp_applygoods_dtl.amount"]').val(amount);
computeTotalPrice();
}
//计算总金额
function computeTotalPrice() {
var totalPrice = 0;
$('input[name="erp_applygoods_dtl.amount"]').each(function (i, item) {
var price = parseFloat(item.value);
totalPrice = accAdd(totalPrice, price);
})
if (isNaN(totalPrice))
totalPrice = 0;
$("#erp_applygoods_mony").val(totalPrice);
$('#erp_applygoods_monyFont').val(Arabia_to_Chinese(totalPrice));
}
/**
* 乘法
* @param arg1
* @param arg2
* @returns {Number}
*/
function accMul(arg1, arg2) {
var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
try { m += s1.split(".")[1].length } catch (e) { }
try { m += s2.split(".")[1].length } catch (e) { }
return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m)
}
/**
* 加法
* @param arg1
* @param arg2
* @returns {Number}
*/
function accAdd(arg1, arg2) {
var r1, r2, m, c;
try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }
c = Math.abs(r1 - r2);
m = Math.pow(10, Math.max(r1, r2))
if (c > 0) {
var cm = Math.pow(10, c);
if (r1 > r2) {
arg1 = Number(arg1.toString().replace(".", ""));
arg2 = Number(arg2.toString().replace(".", "")) * cm;
}
else {
arg1 = Number(arg1.toString().replace(".", "")) * cm;
arg2 = Number(arg2.toString().replace(".", ""));
}
}
else {
arg1 = Number(arg1.toString().replace(".", ""));
arg2 = Number(arg2.toString().replace(".", ""));
}
return (arg1 + arg2) / m
}
/**
* 数字转换为大写
* @param NumStr
* @returns
*/
function Arabia_to_Chinese(NumStr) {
var Num = NumStr + "";
for (i = Num.length - 1; i >= 0; i--) {
Num = Num.replace(",", "")//替换tomoney()中的“,”
Num = Num.replace(" ", "")//替换tomoney()中的空格
}
Num = Num.replace("¥", "")//替换掉可能出现的¥字符
if (isNaN(Num)) { //验证输入的字符是否为数字
//alert("请检查小写金额是否正确");
return;
}
//字符处理完毕后开始转换,采用前后两部分分别转换
part = String(Num).split(".");
newchar = "";
//小数点前进行转化
for (i = part[0].length - 1; i >= 0; i--) {
if (part[0].length > 10) {
alert("位数过大,无法计算");
return "";
}//若数量超过拾亿单位,提示
tmpnewchar = ""
perchar = part[0].charAt(i);
switch (perchar) {
case "0": tmpnewchar = "零" + tmpnewchar; break;
case "1": tmpnewchar = "壹" + tmpnewchar; break;
case "2": tmpnewchar = "贰" + tmpnewchar; break;
case "3": tmpnewchar = "叁" + tmpnewchar; break;
case "4": tmpnewchar = "肆" + tmpnewchar; break;
case "5": tmpnewchar = "伍" + tmpnewchar; break;
case "6": tmpnewchar = "陆" + tmpnewchar; break;
case "7": tmpnewchar = "柒" + tmpnewchar; break;
case "8": tmpnewchar = "捌" + tmpnewchar; break;
case "9": tmpnewchar = "玖" + tmpnewchar; break;
}
switch (part[0].length - i - 1) {
case 0: tmpnewchar = tmpnewchar + "元"; break;
case 1: if (perchar != 0) tmpnewchar = tmpnewchar + "拾"; break;
case 2: if (perchar != 0) tmpnewchar = tmpnewchar + "佰"; break;
case 3: if (perchar != 0) tmpnewchar = tmpnewchar + "仟"; break;
case 4: tmpnewchar = tmpnewchar + "万"; break;
case 5: if (perchar != 0) tmpnewchar = tmpnewchar + "拾"; break;
case 6: if (perchar != 0) tmpnewchar = tmpnewchar + "佰"; break;
case 7: if (perchar != 0) tmpnewchar = tmpnewchar + "仟"; break;
case 8: tmpnewchar = tmpnewchar + "亿"; break;
case 9: tmpnewchar = tmpnewchar + "拾"; break;
}
newchar = tmpnewchar + newchar;
}
//小数点之后进行转化
if (Num.indexOf(".") != -1) {
if (part[1].length > 2) {
//alert("小数点之后只能保留两位,系统将自动截断");
part[1] = part[1].substr(0, 2)
}
for (i = 0; i < part[1].length; i++) {
tmpnewchar = ""
perchar = part[1].charAt(i)
switch (perchar) {
case "0": tmpnewchar = "零" + tmpnewchar; break;
case "1": tmpnewchar = "壹" + tmpnewchar; break;
case "2": tmpnewchar = "贰" + tmpnewchar; break;
case "3": tmpnewchar = "叁" + tmpnewchar; break;
case "4": tmpnewchar = "肆" + tmpnewchar; break;
case "5": tmpnewchar = "伍" + tmpnewchar; break;
case "6": tmpnewchar = "陆" + tmpnewchar; break;
case "7": tmpnewchar = "柒" + tmpnewchar; break;
case "8": tmpnewchar = "捌" + tmpnewchar; break;
case "9": tmpnewchar = "玖" + tmpnewchar; break;
}
if (i == 0) tmpnewchar = tmpnewchar + "角";
if (i == 1) tmpnewchar = tmpnewchar + "分";
newchar = newchar + tmpnewchar;
}
}
//替换所有无用汉字
while (newchar.search("零零") != -1)
newchar = newchar.replace("零零", "零");
newchar = newchar.replace("零亿", "亿");
newchar = newchar.replace("亿万", "亿");
newchar = newchar.replace("零万", "万");
newchar = newchar.replace("零元", "元");
newchar = newchar.replace("零角", "");
newchar = newchar.replace("零分", "");
if (newchar.charAt(newchar.length - 1) == "元" || newchar.charAt(newchar.length - 1) == "角")
newchar = newchar + "整"
return newchar;
}