//获取href里面的参数
|
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 "";
|
}
|
|
$(document).ready(function () {
|
//收货单相关字段隐藏
|
$("[name='erp_inorder.receipt_order_id']").parent().parent().hide();
|
$("[name='erp_inorder.receipt_order_code']").parent().parent().hide();
|
$("[name='erp_inorder.receipt_order_code']").attr("readonly", "readonly");
|
if (window.taskid != '') {
|
} else {
|
//var date = new Date();
|
//var curDate = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
|
//$("#construction_start_date").val(curDate);
|
//$("#construction_end_date").val(curDate);
|
}
|
});
|
|
///数据加载
|
initData = function () {
|
LoadData();
|
LoadPage();
|
BindEvent();
|
ProcesField();
|
ResetShowType();
|
|
if ($.trim(sysid) != '' && initItems != null) {
|
var sprintbtn = '<span style="position: absolute;right:20px;"><a onclick="" href="/erp/Erp_inorder/costprint?id=' + sysid + '" target="_blank" style="font-size:12px;margin-right: 20px;"><img src="../../img/ico/printer.png" />表单打印</a>';
|
$('#txtTitle').append(sprintbtn);
|
}
|
}
|
|
var InOrder = {};
|
var ReceiptOrderList = [];
|
// 加载入库单实体数据
|
function LoadData() {
|
var sysid = window.sysid;
|
var relationCode = getQueryVariable('relationCode');
|
var wareHouseId = getQueryVariable('wareHouseId');
|
sysid = sysid == "" ? 0 : sysid;
|
// 主表数据
|
$.ajax({
|
url: "/ERP/Erp_inorder/GetInOrderBizData?sysid=" + sysid + "&relationCode=" + relationCode + "&wareHouseId=" + wareHouseId
|
, async: false
|
, cache: false
|
, dataType: "json",
|
success: function (data) {
|
InOrder = data;
|
}
|
});
|
|
$.ajax({
|
url: '/ERP/Erp_ReceiptOrder/ReceiptOrderList?procurementOrderCode=' + InOrder.procurementOrder_id
|
, async: false
|
, cache: false
|
, dataType: "json",
|
success: function (data) {
|
ReceiptOrderList = data;
|
}
|
});
|
}
|
|
// 加载页面绑定数据
|
function LoadPage() {
|
// 绑定主表数据
|
$("[name='erp_inorder.orderNum']").val(InOrder.orderNum);
|
$("[name='erp_inorder.procurementOrder_id']").val(InOrder.procurementOrder_id);
|
$("[name='erp_inorder.inorder_type']").val(InOrder.inorder_type);
|
$("[name='erp_inorder.inorder_type']").trigger("chosen:updated");
|
$("[name='erp_inorder.supplier_id']").val(InOrder.supplier_id);
|
$("[name='erp_inorder.supplier_id']").trigger("chosen:updated");
|
$("[name='erp_inorder.money']").val(InOrder.money);
|
$("[name='erp_inorder.moneyfont']").val(InOrder.moneyfont);
|
$("[name='erp_inorder.warehouse_id']").val(InOrder.warehouse_id);
|
$("[name='erp_inorder.warehouse_id']").trigger("chosen:updated");
|
$("[name='erp_inorder.biz_time']").val(JsonDateToDate(InOrder.biz_time).Format('yyyy-MM-dd'));
|
$("[name='erp_inorder.remark']").val(InOrder.remark);
|
$("[name='erp_inorder.receipt_order_code']").val(InOrder.receipt_order_code);
|
$("[name='erp_inorder.receipt_order_id']").val(InOrder.receipt_order_id);
|
// 绑定子表数据
|
$.each(InOrder.Children, function (i, r) {
|
$('#girdtable .body').eq(i).find("[name='erp_inorder_dtl.materielinfo_code']").val(r.materielinfo_code);
|
$('#girdtable .body').eq(i).find("[name='erp_inorder_dtl.materielinfo_name']").val(r.materielinfo_name);
|
$('#girdtable .body').eq(i).find("[name='erp_inorder_dtl.specification']").val(r.specification);
|
$('#girdtable .body').eq(i).find("[name='erp_inorder_dtl.unit']").val(r.unit);
|
$('#girdtable .body').eq(i).find("[name='erp_inorder_dtl.history_count']").val(r.history_count);
|
$('#girdtable .body').eq(i).find("[name='erp_inorder_dtl.estimate_count']").val(r.estimate_count);
|
$('#girdtable .body').eq(i).find("[name='erp_inorder_dtl.count']").val(r.count);
|
$('#girdtable .body').eq(i).find("[name='erp_inorder_dtl.price']").val(r.price);
|
$('#girdtable .body').eq(i).find("[name='erp_inorder_dtl.posterity']").val(r.posterity);
|
$('#girdtable .body').eq(i).find("[name='erp_inorder_dtl.amount']").val(r.amount);
|
$('#girdtable .body').eq(i).find("[name='erp_inorder_dtl.taxrate']").val(r.taxrate);
|
$('#girdtable .body').eq(i).find("[name='erp_inorder_dtl.taxrate']").trigger("chosen:updated");
|
$('#girdtable .body').eq(i).find("[name='erp_inorder_dtl.no_taxrate_amount']").val(r.no_taxrate_amount);
|
$('#girdtable .body').eq(i).find("[name='erp_inorder_dtl.remark']").val(r.remark);
|
$('#girdtable .body').eq(i).find("[name='erp_inorder_dtl.purpose']").val(r.purpose);
|
$('#girdtable .body').eq(i).find("[name='erp_inorder_dtl.purpose']").trigger("chosen:updated");
|
$('#girdtable .body').eq(i).find("[name='erp_inorder_dtl.freight_price']").val(r.freight_price);
|
$('#girdtable .body').eq(i).find("[name='erp_inorder_dtl.freight_amount']").val(r.freight_amount);
|
$('#girdtable .body').eq(i).find("[name='erp_inorder_dtl.freight_taxrate']").val(r.freight_taxrate);
|
$('#girdtable .body').eq(i).find("[name='erp_inorder_dtl.freight_no_taxrate_amount']").val(r.freight_no_taxrate_amount);
|
if (i + 1 != InOrder.Children.length) {
|
if (window.taskid == '') {
|
$(".subtradd_js").click();
|
}
|
}
|
});
|
}
|
|
// 处理一些特殊字段
|
function ProcesField() {
|
/*
|
* 把页面上没展示的字段 对应生成出隐藏框
|
* 这样可以在提交的时候在表单里面取得到
|
*/
|
$.each(InOrder, function (i, v) {
|
if ((!$("input[name='erp_inorder." + i + "']").length > 0) && (!$("select[name='erp_inorder." + i + "']").length > 0) && (!$("textarea[name='erp_inorder." + i + "']").length > 0)) {
|
v = v == null ? "" : v;
|
var hiddenHtml = '<input type="hidden" id="erp_inorder_' + i + '" name="erp_inorder.' + i + '" field="' + i + '" class="form-control" isvalid="yes" value="' + v + '">';
|
$("[name='erp_inorder.orderNum']").after(hiddenHtml);
|
}
|
});
|
|
$.each(InOrder.Children, function (itemIndex, itmeData) {
|
$.each(itmeData, function (i, v) {
|
if (!$('#girdtable .body').eq(itemIndex).find("[name='erp_inorder_dtl." + i + "']").length > 0) {
|
v = v == "null" ? "" : v;
|
var hiddenHtml = '<input type="hidden" id="erp_inorder_dtl_' + i + '" name="erp_inorder_dtl.' + i + '" field="' + i + '" class="form-control" isvalid="yes" value="' + v + '">';
|
$("[name='erp_inorder_dtl.materielinfo_code']").eq(itemIndex).after(hiddenHtml);
|
}
|
});
|
});
|
|
/*
|
* 采购审批的时候这些字段是联动变化的
|
* 流程配置成无法修改
|
* 这里给个edit的class后面抓取数据的时候就会抓到
|
*/
|
$("[name='erp_inorder.money'],[name='erp_inorder.moneyfont'],[name='erp_inorder_dtl.no_taxrate_amount'],[name='erp_inorder.receipt_order_code'],[name='erp_inorder.receipt_order_id']").addClass("edit");
|
|
}
|
|
// 重置展现方式(隐藏一下东西什么什么的)
|
function ResetShowType() {
|
//
|
|
|
if (InOrder.IsHNT == false) {//非混凝土隐藏用途字段所有td
|
var tdIndex = $('#girdtable .body').eq(0).find('[name="erp_inorder_dtl.purpose"]').parent('td').index();
|
$('#girdtable tr').each(function () {
|
$(this).children("td").eq(tdIndex).hide();
|
});
|
} else {
|
$('[name="erp_inorder_dtl.purpose"]').attr("checkexpession", "NotNull");
|
}
|
|
if (InOrder.ShowFreight == 0) {// 合同上选择的是不包含运费的时候才展示运费相关的框
|
var tdIndex = $('#girdtable .body').eq(0).find('[name="erp_inorder_dtl.freight_price"]').parent('td').index();
|
$('#girdtable tr').each(function () {
|
$(this).children("td").eq(tdIndex).hide();
|
});
|
|
tdIndex = $('#girdtable .body').eq(0).find('[name="erp_inorder_dtl.freight_amount"]').parent('td').index();
|
$('#girdtable tr').each(function () {
|
$(this).children("td").eq(tdIndex).hide();
|
});
|
|
tdIndex = $('#girdtable .body').eq(0).find('[name="erp_inorder_dtl.freight_taxrate"]').parent('td').index();
|
$('#girdtable tr').each(function () {
|
$(this).children("td").eq(tdIndex).hide();
|
});
|
|
tdIndex = $('#girdtable .body').eq(0).find('[name="erp_inorder_dtl.freight_no_taxrate_amount"]').parent('td').index();
|
$('#girdtable tr').each(function () {
|
$(this).children("td").eq(tdIndex).hide();
|
});
|
|
$("[name='erp_inorder.freight_supplier_id']").parent().parent().hide();
|
|
} else {
|
$("[name='erp_inorder.freight_supplier_id']").prepend("<option value='' selected='true'>请选择</option>");
|
}
|
|
if (InOrder.DisablesMoneyInput == 1) {
|
$('[name="erp_inorder_dtl.price"]').attr('disabled', 'disabled');
|
$('[name="erp_inorder_dtl.amount"]').attr('disabled', 'disabled');
|
$('[name="erp_inorder_dtl.taxrate"]').each(function () {
|
$(this).attr('disabled', 'disabled');
|
$(this).trigger("chosen:updated");
|
});
|
}
|
|
if (InOrder.inorder_type == 2) {
|
$('[name="erp_inorder_dtl.price"]').attr('disabled', 'disabled');
|
$('[name="erp_inorder_dtl.amount"]').attr('disabled', 'disabled');
|
}
|
|
$(".subtradd_js").hide();
|
|
//设置是否显示选择收货单
|
var sysid = window.sysid;
|
if ((sysid.length == 0 && ReceiptOrderList.length > 0) || (InOrder.receipt_order_id!=null&&InOrder.receipt_order_id.length > 0)) {
|
$("[name='erp_inorder.receipt_order_code']").parent().parent().show();
|
}
|
}
|
|
function BindEvent() {
|
$("[name='erp_inorder_dtl.price'],[name='erp_inorder_dtl.taxrate']").change(function () {
|
var index = $("#girdtable .body [name='" + this.name + "']").index(this);
|
CountDtlMoney(index);
|
});
|
|
$("[name='erp_inorder_dtl.freight_price'],[name='erp_inorder_dtl.freight_taxrate']").change(function () {
|
var index = $("#girdtable .body [name='" + this.name + "']").index(this);
|
FreightCountDtlMoney(index);
|
});
|
|
$("[name='erp_inorder_dtl.count']").change(function () {
|
var index = $("#girdtable .body [name='" + this.name + "']").index(this);
|
CountDtlMoney(index);
|
FreightCountDtlMoney(index);
|
});
|
|
$("[name='erp_inorder_dtl.amount']").change(function () {
|
var index = $("#girdtable .body [name='" + this.name + "']").index(this);
|
ChangeDtlAmount(index);
|
});
|
|
$("[name='erp_inorder_dtl.freight_amount']").change(function () {
|
var index = $("#girdtable .body [name='" + this.name + "']").index(this);
|
FreightChangeDtlAmount(index);
|
});
|
|
$("[name='erp_inorder_dtl.count']").keyup(function () {
|
$(this).val($(this).val().toString().match(/^\d+(?:\.\d{0,4})?/));
|
});
|
|
$("[name='erp_inorder_dtl.price'],[name='erp_inorder_dtl.freight_price']").keyup(function () {
|
$(this).val($(this).val().toString().match(/^\d+(?:\.\d{0,8})?/));
|
});
|
|
$("[name='erp_inorder_dtl.amount'],[name='erp_inorder_dtl.freight_amount']").keyup(function () {
|
$(this).val($(this).val().toString().match(/^\d+(?:\.\d{0,2})?/));
|
});
|
|
//选择收货单
|
$("[name='erp_inorder.receipt_order_code']").click(function () {
|
layer.open({
|
type: 2,
|
title: '选择收货单',
|
shadeClose: true,
|
shade: 0.4,
|
area: ['90%', '90%'],
|
content: "/ERP/Erp_ReceiptOrder/ReceiptOrderView?procurementOrderCode=" + InOrder.procurementOrder_id
|
});
|
|
});
|
}
|
|
|
function SelectReceiptOrderCallback(id, code,num) {
|
$("[name='erp_inorder.receipt_order_code']").val(code);
|
$("[name='erp_inorder.receipt_order_id']").val(id);
|
$('#girdtable .body').eq(0).find("[name='erp_inorder_dtl.count']").val(num);
|
$('#girdtable .body').eq(0).find("[name='erp_inorder_dtl.count']").attr('disabled', 'disabled');
|
CountDtlMoney(0);
|
layer.closeAll();
|
}
|
|
/**
|
* 计算子表物料费明细
|
* @param {any} i
|
*/
|
function CountDtlMoney(i) {
|
var count = Number($('#girdtable .body').eq(i).find('input[name="erp_inorder_dtl.count"]').val());
|
var price = Number($('#girdtable .body').eq(i).find('input[name="erp_inorder_dtl.price"]').val());
|
var taxrate = accDiv(Number($('#girdtable .body').eq(i).find('select[name="erp_inorder_dtl.taxrate"]').val()), 100);
|
// 含税合计=数量*单价
|
var amount = accMul(price, count);
|
//不含税合计 =含税合计- (含税合计 / (1 + 税率) * 税率)
|
var no_taxrate_amount = accSub(amount, (accMul(accDiv(amount, accAdd(1, taxrate)), taxrate)));
|
$('#girdtable .body').eq(i).find('input[name="erp_inorder_dtl.amount"]').val(amount.toFixed(2));
|
$('#girdtable .body').eq(i).find('input[name="erp_inorder_dtl.no_taxrate_amount"]').val(no_taxrate_amount.toFixed(2));
|
|
CountAllMoney();
|
}
|
|
/**
|
* 计算子表运费明细
|
* @param {any} i
|
*/
|
function FreightCountDtlMoney(i) {
|
var count = Number($('#girdtable .body').eq(i).find('input[name="erp_inorder_dtl.count"]').val());
|
var freight_price = Number($('#girdtable .body').eq(i).find('input[name="erp_inorder_dtl.freight_price"]').val());
|
var freight_taxrate = accDiv(Number($('#girdtable .body').eq(i).find('select[name="erp_inorder_dtl.freight_taxrate"]').val()), 100);
|
// 含税合计=数量*单价
|
var freight_amount = accMul(freight_price, count);
|
//不含税合计 =含税合计- (含税合计 / (1 + 税率) * 税率)
|
var freight_no_taxrate_amount = accSub(freight_amount, (accMul(accDiv(freight_amount, accAdd(1, freight_taxrate)), freight_taxrate)));
|
$('#girdtable .body').eq(i).find('input[name="erp_inorder_dtl.freight_amount"]').val(freight_amount.toFixed(2));
|
$('#girdtable .body').eq(i).find('input[name="erp_inorder_dtl.freight_no_taxrate_amount"]').val(freight_no_taxrate_amount.toFixed(2));
|
|
CountAllMoney();
|
}
|
|
/**
|
* 计算全部金额
|
* */
|
function CountAllMoney() {
|
var allAmount = 0;
|
$('#girdtable .body').each(function () {
|
debugger;
|
var amount = Number($(this).find('input[name="erp_inorder_dtl.amount"]').val());
|
var freight_amount = Number($(this).find('input[name="erp_inorder_dtl.freight_amount"]').val());
|
var curRowAmount = accAdd(amount, freight_amount);
|
allAmount = accAdd(allAmount, curRowAmount);
|
});
|
|
$('input[name="erp_inorder.money"]').val(allAmount);
|
$('input[name="erp_inorder.moneyfont"]').val(ConvertCurrency(allAmount));
|
}
|
|
/**
|
* 修改子表运费金额
|
* @param {any} i
|
*/
|
var ChangeDtlAmount = function (i) {
|
var count = Number($('#girdtable .body').eq(i).find('input[name="erp_inorder_dtl.count"]').val());
|
var amount = Number($('#girdtable .body').eq(i).find('input[name="erp_inorder_dtl.amount"]').val());
|
if (!count > 0) {// 0不能做被除数
|
return false;
|
}
|
|
var price = accDiv(amount, count).toFixed(8);
|
$('#girdtable .body').eq(i).find('input[name="erp_inorder_dtl.price"]').val(price);
|
CountDtlMoney(i);
|
}
|
|
/**
|
* 修改子表运费金额
|
* @param {any} i
|
*/
|
var FreightChangeDtlAmount = function (i) {
|
var count = Number($('#girdtable .body').eq(i).find('input[name="erp_inorder_dtl.count"]').val());
|
var freight_amount = Number($('#girdtable .body').eq(i).find('input[name="erp_inorder_dtl.freight_amount"]').val());
|
if (!count > 0) {// 0不能做被除数
|
return false;
|
}
|
|
var freight_price = accDiv(freight_amount, count);
|
$('#girdtable .body').eq(i).find('input[name="erp_inorder_dtl.freight_price"]').val(freight_price.toFixed(8));
|
FreightCountDtlMoney(i);
|
}
|
|
|
|
//删除事件回调操作
|
deleteMethod = function () {
|
$('#girdtable .body').each(function (i, v) {
|
ChangeAmount(i);
|
});
|
}
|
|
//添加事件回调操作
|
createMethod = function () {
|
}
|
|
|
|
/**
|
* 乘法
|
* @param arg1
|
* @param arg2
|
* @returns {Number}
|
*/
|
function accMul(arg1, arg2) {
|
var num1 = Number(arg1.toString());
|
var num2 = Number(arg2.toString());
|
return Number(num1 * num2);
|
}
|
/**
|
* 除法
|
* @param arg1
|
* @param arg2
|
* @returns {Number}
|
*/
|
function accDiv(arg1, arg2) {
|
var t1 = 0, t2 = 0, r1, r2;
|
try { t1 = arg1.toString().split(".")[1].length } catch (e) { }
|
try { t2 = arg2.toString().split(".")[1].length } catch (e) { }
|
with (Math) {
|
r1 = Number(arg1.toString().replace(".", ""))
|
r2 = Number(arg2.toString().replace(".", ""))
|
return (r1 / r2) * pow(10, t2 - t1);
|
}
|
}
|
/**
|
* 加法
|
* @param arg1A
|
* @param arg2 AS
|
* @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 arg1
|
* @param arg2
|
* @returns
|
*/
|
function accSub(arg1, arg2) {
|
var r1, r2, m, n;
|
try { r1 = arg1.toString().split(".")[1].length } catch (e) { r1 = 0 }
|
try { r2 = arg2.toString().split(".")[1].length } catch (e) { r2 = 0 }
|
m = Math.pow(10, Math.max(r1, r2));
|
//last modify by deeka
|
//动态控制精度长度
|
n = (r1 >= r2) ? r1 : r2;
|
return ((arg1 * m - arg2 * m) / m).toFixed(n);
|
}
|
|
function ConvertCurrency(money) {
|
//汉字的数字
|
var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
|
//基本单位
|
var cnIntRadice = new Array('', '拾', '佰', '仟');
|
//对应整数部分扩展单位
|
var cnIntUnits = new Array('', '万', '亿', '兆');
|
//对应小数部分单位
|
var cnDecUnits = new Array('角', '分', '厘', '毫');
|
//整数金额时后面跟的字符
|
var cnInteger = '整';
|
//整型完以后的单位
|
var cnIntLast = '元';
|
//最大处理的数字
|
var maxNum = 999999999999999.9999;
|
//金额整数部分
|
var integerNum;
|
//金额小数部分
|
var decimalNum;
|
//输出的中文金额字符串
|
var chineseStr = '';
|
//分离金额后用的数组,预定义
|
var parts;
|
if (money === '') { return ''; }
|
money = parseFloat(money);
|
if (money >= maxNum) {
|
//超出最大处理数字
|
return '';
|
}
|
if (money === 0) {
|
chineseStr = cnNums[0] + cnIntLast + cnInteger;
|
return chineseStr;
|
}
|
//转换为字符串
|
money = money.toString();
|
if (money.indexOf('.') == -1) {
|
integerNum = money;
|
decimalNum = '';
|
} else {
|
parts = money.split('.');
|
integerNum = parts[0];
|
decimalNum = parts[1].substr(0, 4);
|
}
|
//获取整型部分转换
|
if (parseInt(integerNum, 10) > 0) {
|
var zeroCount = 0;
|
var IntLen = integerNum.length;
|
for (var i = 0; i < IntLen; i++) {
|
var n = integerNum.substr(i, 1);
|
var p = IntLen - i - 1;
|
var q = p / 4;
|
var m = p % 4;
|
if (n == '0') {
|
zeroCount++;
|
} else {
|
if (zeroCount > 0) {
|
chineseStr += cnNums[0];
|
}
|
//归零
|
zeroCount = 0;
|
chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
|
}
|
if (m == 0 && zeroCount < 4) {
|
chineseStr += cnIntUnits[q];
|
}
|
}
|
chineseStr += cnIntLast;
|
}
|
//小数部分
|
if (decimalNum != '') {
|
var decLen = decimalNum.length;
|
for (var i = 0; i < decLen; i++) {
|
var n = decimalNum.substr(i, 1);
|
if (n != '0') {
|
chineseStr += cnNums[Number(n)] + cnDecUnits[i];
|
}
|
}
|
}
|
if (chineseStr == '') {
|
chineseStr += cnNums[0] + cnIntLast + cnInteger;
|
} else if (decimalNum == '') {
|
chineseStr += cnInteger;
|
}
|
return chineseStr;
|
}
|