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('<option value=""></option>');
|
for (var i = 0; i < data.length; i++) {
|
listpurposeoptions.push('<option value="' + data[i].id + '">' + data[i].purpose+'</option>');
|
|
}
|
|
}
|
});
|
|
$.ajax({
|
url: "/DropDown/chengbenDropDown?selecttype=" + $('#erp_applygoods_selecttype').val(),
|
async: false,
|
cache: false,
|
dataType: "json",
|
success: function (data) {
|
listcostnameoptions.push('<option value=""></option>');
|
for (var i = 0; i < data.length; i++) {
|
listcostnameoptions.push('<option value="' + data[i].Value + '">' + data[i].Text + '</option>');
|
|
}
|
|
}
|
});
|
|
}
|
|
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;
|
}
|