<!DOCTYPE HTML>
|
<html xmlns:th="http://www.thymeleaf.org">
|
<head>
|
<meta charset="utf-8">
|
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
|
<meta name="renderer" content="webkit|ie-comp|ie-stand">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
<meta name="viewport"
|
content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
|
<meta http-equiv="Cache-Control" content="no-siteapp" />
|
<!-- 本框架基本脚本和样式 -->
|
<script type="text/javascript"
|
th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script>
|
<script type="text/javascript" th:src="@{/js/systools/MBase.js}"></script>
|
</head>
|
<body>
|
<div class="ibox-content">
|
<form class="form-horizontal" id="dataform"
|
onsubmit="javascripr:return false;">
|
|
<input autocomplete="off" th:if="${obj ne null }" type="hidden" name="id" th:value="${obj?.id }">
|
|
<div class="form-group">
|
<label class="col-offset-1 col-sm-2 control-label">调拨类型</label>
|
<div class="col-sm-3">
|
<p class="form-control-static" th:text="${obj?.allottedType}"></p>
|
</div>
|
|
<label class="col-sm-2 control-label">调拨日期</label>
|
<div class="col-sm-3">
|
<p class="form-control-static" th:text="${#dates.format(obj.allottedDate, 'yyyy-MM-dd')}">
|
|
</p>
|
</div>
|
</div>
|
|
<div class="form-group">
|
<label class="col-sm-2 control-label">制单人</label>
|
<div class="col-sm-3">
|
<p class="form-control-static" th:text="${obj?.makingManName}"></p>
|
<div class="Validform_checktip"></div>
|
</div>
|
|
<label class="col-sm-2 control-label">审核人</label>
|
<div class="col-sm-3">
|
<p class="form-control-static" th:text="${obj?.appManName}"></p>
|
</div>
|
</div>
|
|
<div class="form-group">
|
<label class="col-sm-2 control-label">调入仓库</label>
|
<!-- 调入仓库是本店 TODO============= -->
|
<div class="col-sm-3">
|
<p class="form-control-static" th:text="${obj?.allottedInstoreName}" ></p>
|
</div>
|
<label class="col-sm-2 control-label">调出仓库</label>
|
<div class="col-sm-3">
|
<p class="form-control-static" th:text="${obj?.allottedOutstoreName }"></p>
|
<input autocomplete="off" type="hidden" class="form-control autoFull"
|
name="allottedOutstoreId" th:value="${obj.allottedOutstoreId}">
|
</div>
|
</div>
|
|
<div class="form-group">
|
<label class="col-sm-2 control-label">备注</label>
|
<span class="col-sm-3 form-control-static" th:text="${obj?.allottedRemark}"></span>
|
|
</div>
|
<div class="form-group">
|
|
<label class="col-sm-2 control-label">调拨金额</label>
|
<div class="col-sm-3">
|
<input autocomplete="off" type="text" readonly="readonly" th:value="${obj.amountPrice}"
|
class="form-control" id="amountPrice" name="amountPrice"></input>
|
</div>
|
<div th:if="${obj.checkStatus eq '待收货' or obj.checkStatus eq '已完成' }">
|
<label class="col-sm-2 control-label">收货金额</label>
|
<div class="col-sm-3">
|
<input autocomplete="off" type="text" readonly="readonly" th:value="${obj.receivedPrice}"
|
class="form-control" id="receivedPrice" name="receivedPrice"></input>
|
</div>
|
</div>
|
</div>
|
|
<div class="form-group">
|
<div class="col-sm-3 col-md-offset-1">
|
<span style="font-size: 14px; font-weight: bold;">调拨明细 </span>
|
</div>
|
</div>
|
<div class="form-group">
|
<div class="col-sm-8 col-md-offset-2">
|
<table class="table table-striped table-hover table-bordered"
|
id="mgrid">
|
<thead>
|
<tr>
|
<th>序号</th>
|
<th>产品编号</th>
|
<th>产品名称</th>
|
<th>产品类型</th>
|
<th>单位</th>
|
<th width="120">申请调拨数量</th>
|
<th width="120">实际调拨数量</th>
|
<th width="120">调拨单价</th>
|
<th width="120">调拨金额</th>
|
<th th:if="${obj.checkStatus eq '待收货' or obj.checkStatus eq '已完成' }" width="120">实际收货数量</th>
|
<th th:if="${obj.checkStatus eq '待收货' or obj.checkStatus eq '已完成' }" width="120">收货金额</th>
|
<th width="120">库存量</th>
|
</tr>
|
</thead>
|
<tbody id="cpId">
|
|
</tbody>
|
|
</table>
|
</div>
|
</div>
|
<div class="form-group ">
|
<div class="col-sm-12 text-center">
|
<div th:if="${(obj.checkStatus eq '待审核') && (obj.appManId eq session.userInfo.suId) }">
|
<a href="javascript:;" onclick="myForm.submit()"
|
class="btn btn-info radius">确认审核</a>
|
<a href="javascript:;" onclick="noCheck('addcheckremark')"
|
class="btn btn-success radius">不予审核</a>
|
</div>
|
<a th:if="${(obj.checkStatus eq '审核通过') && (obj.appManId eq session.userInfo.suId) }" href="javascript:;" onclick="toDo('sendGoods')"
|
class="btn btn-success radius">发货</a>
|
<a th:if="${(obj.checkStatus eq '待收货')}" href="javascript:;" onclick="reject()"
|
class="btn btn-success radius">确认收货</a>
|
<button onclick="MTools.closeForm()" class="btn btn-danger radius">取消</button>
|
</div>
|
</div>
|
</form>
|
</div>
|
</body>
|
|
|
<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script>
|
<script th:inline="javascript">
|
var totalGoods = [];
|
readInitData();
|
writeDate();
|
/*<![CDATA[*/
|
var checkStatus =/*[[${obj.checkStatus}]]*/;
|
/*]]>*/
|
|
if (checkStatus == '待收货') {
|
var url = basePath+"/admin/allotted/rejectGoods";
|
} else {
|
var url = basePath+"/admin/allotted/check";
|
}
|
var myForm = MForm.initForm({
|
invokeUrl : url,
|
afterSubmit : function() {
|
parent.myGrid.serchData();
|
},
|
});
|
var length;
|
function reject() {
|
var t = true;
|
for (var i = 0; i < length; i++) {
|
if ($("#receiveTotal" + i).val() < totalGoods[i].realTotal) {
|
layer.confirm('实际收货数少于发货数量,是否继续操作?', {
|
btn : [ '确定', '取消' ], //按钮
|
shade : false
|
//不显示遮罩
|
}, function() {
|
myForm.submit();
|
});
|
return;
|
}
|
}
|
myForm.submit();
|
|
}
|
|
|
//初始化产品列表
|
function readInitData(){
|
|
/*<![CDATA[*/
|
var projItemsL=/*[[${obj?.sysAllotDetails}]]*/;
|
|
var allottedOutstoreId=/*[[${obj?.allottedOutstoreId}]]*/;
|
/*]]>*/
|
|
if(projItemsL){
|
|
for(var i =0; i<projItemsL.length; i++) {
|
|
var obj = new Object();
|
//库存sku信息
|
var goods = {};
|
var projItems=projItemsL[i];
|
goods.id = projItems.goods.id;
|
goods.name = projItems.goods.name;
|
goods.unit = projItems.goods.unit;
|
goods.goodsSortName = projItems.goods.goodsSortName;
|
goods.goodsNo = projItems.goods.goodsNo;
|
//调拨单本身的信息
|
obj.detailId = projItems.id;
|
//调拨单价
|
obj.wholesale = projItems.wholesale;
|
//调拨申请数量
|
obj.appTotal = projItems.appTotal;
|
//出库仓id
|
obj.storeId = allottedOutstoreId;
|
//库存量
|
obj.storeTotal = projItems.storeInfo.storeTotal;
|
//实际库存量
|
obj.realTotal = projItems.realTotal;
|
obj.batch = projItems.storeInfo.batch;
|
obj.goods = goods;
|
console.log(obj);
|
totalGoods[i] = obj;
|
}
|
}
|
|
|
}
|
|
|
//填写数据到html
|
function writeDate() {
|
|
/*<![CDATA[*/
|
var status=/*[[${obj.checkStatus}]]*/
|
/*]]>*/
|
|
|
var html = "";
|
length = totalGoods.length;
|
for (var i = 0; i < totalGoods.length; i++) {
|
if (!totalGoods[i].realTotal) {
|
totalGoods[i].realTotal = "";
|
}
|
if (status == "待收货") {
|
html += '<tr>' + '<td>' + (i + 1) + '<input autocomplete="off" type="hidden" name="sysAllotDetails['+i+'].id" value="'+totalGoods[i].detailId+'"></td>'
|
+ '<td>'+ totalGoods[i].goods.goodsNo+ '</td>'
|
+ '<td>' + totalGoods[i].goods.name + '<input autocomplete="off" type="hidden" name="sysAllotDetails['+i+'].skuId" value="'+totalGoods[i].goods.id+'"></td>'
|
+ '<td>'+ totalGoods[i].goods.goodsSortName+ '</td>'
|
+ '<td>'+ totalGoods[i].goods.unit+ '</td>'
|
+ '<td>'+ totalGoods[i].appTotal + '</td>'
|
+ '<td>' + totalGoods[i].realTotal + '</td>'
|
+ '<td>' + totalGoods[i].wholesale + '</td>'
|
+ '<td >'+ (totalGoods[i].wholesale * totalGoods[i].appTotal).toFixed(2) + '</td>'
|
+ '<td><input autocomplete="off" id="receiveTotal'+i+'" name="sysAllotDetails['+i+'].receiveTotal" value="'+totalGoods[i].realTotal+'" onchange="changePriceSh(this)" data-max="'+totalGoods[i].realTotal+'" type="text" dataType="n" nullmsg="请填写数字" errormsg="请填写数字" class="form-control"><div class="Validform_checktip"></div></td>'
|
+ '<td class="total">'+ (totalGoods[i].wholesale * totalGoods[i].realTotal).toFixed(2) + '</td>'
|
+ '<td>' + totalGoods[i].storeTotal + '</td>'
|
|
+ '</tr>';
|
|
} else if (status == '待审核') {
|
html += '<tr>' + '<td>'
|
+ (i + 1)
|
+ '<input autocomplete="off" type="hidden" name="sysAllotDetails['+i+'].id" value="'+totalGoods[i].detailId+'"></td>'
|
+ '<td>'+ totalGoods[i].goods.goodsNo + '</td>'
|
+ '<td>'+ totalGoods[i].goods.name + '<input autocomplete="off" type="hidden" name="sysAllotDetails['+i+'].skuId" value="'+totalGoods[i].goods.id+'"></td>'
|
+ '<td>'+ totalGoods[i].goods.goodsSortName + '</td>'
|
+ '<td>'+ totalGoods[i].goods.unit + '</td>'
|
+ '<td>'
|
+ totalGoods[i].appTotal
|
+ '</td>'
|
+ '<td><input autocomplete="off" name="sysAllotDetails['
|
+ i
|
+ '].realTotal" value="'
|
+ totalGoods[i].appTotal
|
+ '" onchange="changePrice(this)" data-max="'+totalGoods[i].appTotal+'" type="text" dataType="n" nullmsg="请填写数字" errormsg="请填写数字" class="form-control"><div class="Validform_checktip"></div></td>'
|
+ '<td>'
|
+ totalGoods[i].wholesale
|
+ '</td>'
|
+ '<td class="total">'
|
+ (totalGoods[i].wholesale * totalGoods[i].appTotal)
|
.toFixed(2) + '</td>' + '<td>'
|
+ totalGoods[i].storeTotal + '</td>' + '</tr>';
|
|
} else if (status == "审核通过") {
|
html += '<tr>'
|
+ '<td>'
|
+ (i + 1)
|
+ '<input autocomplete="off" type="hidden" name="sysAllotDetails['+i+'].id" value="'+totalGoods[i].detailId+'"></td>'
|
+ '<td>'+ totalGoods[i].goods.goodsNo + '</td>'
|
+ '<td>'+ totalGoods[i].goods.name + '<input autocomplete="off" type="hidden" name="sysAllotDetails['+i+'].skuId" value="'+totalGoods[i].goods.id+'"></td>'
|
+ '<td>'+ totalGoods[i].goods.goodsSortName + '</td>'
|
+ '<td>'+ totalGoods[i].goods.unit + '</td>'
|
+ '<td>' + totalGoods[i].appTotal + '</td>' + '<td>'
|
+ totalGoods[i].realTotal + '</td>'
|
+ '<td>'
|
+ totalGoods[i].wholesale
|
+ '</td>'
|
+ '<td class="total">'+ (totalGoods[i].wholesale * totalGoods[i].appTotal).toFixed(2) + '</td>'
|
+ '<td>'+ totalGoods[i].storeTotal + '</td>'
|
+ '</tr>';
|
} else {
|
html += '<tr>' + '<td>'
|
+ (i + 1)
|
+ '<input autocomplete="off" type="hidden" name="sysAllotDetails['+i+'].id" value="'+totalGoods[i].detailId+'"></td>'
|
+ '<td>'+ totalGoods[i].goods.goodsNo + '</td>'
|
+ '<td>'+ totalGoods[i].goods.name + '<input autocomplete="off" type="hidden" name="sysAllotDetails['+i+'].skuId" value="'+totalGoods[i].goods.id+'"></td>'
|
+ '<td>'+ totalGoods[i].goods.goodsSortName + '</td>'
|
+ '<td>'+ totalGoods[i].goods.unit + '</td>'
|
+ '<td>' + totalGoods[i].appTotal + '</td>'
|
+ '<td>'+ totalGoods[i].realTotal + '</td>'
|
+ '<td>' + totalGoods[i].wholesale + '</td>'
|
+ '<td >'+ (totalGoods[i].wholesale * totalGoods[i].realTotal).toFixed(2) + '</td>'
|
+ '<td>'+ totalGoods[i].receiveTotal + '</td>'
|
+ '<td class="total">'+ (totalGoods[i].wholesale * totalGoods[i].receiveTotal).toFixed(2) + '</td>'
|
+ '<td>' + totalGoods[i].storeTotal + '</td>' + '</tr>';
|
}
|
|
|
|
}
|
$("#cpId").html(html);
|
|
|
|
//初始化收货金额
|
if (status == "待收货") {
|
//计算总金额
|
var sum = 0;
|
$(".total").each(function() {
|
sum += parseFloat(this.innerHTML);
|
});
|
$("#receivedPrice").val(sum.toFixed(2));
|
}
|
|
|
|
}
|
|
|
|
//收货计算价格
|
function changePriceSh(node) {
|
console.log("changePriceSh");
|
var $node=$(node);
|
var maxValue=$(node).data("max");
|
var $tr = $node.closest("tr");
|
var tds = $tr.find("td");
|
var price = tds.eq(6).html();
|
var total = tds.eq(8).find("input").val();
|
|
total=total>maxValue?maxValue:total;
|
$node.val(parseInt(total));
|
|
tds.eq(9).html((price * total).toFixed(2));
|
//计算总金额
|
var sum = 0;
|
$(".total").each(function() {
|
sum += parseFloat(this.innerHTML);
|
});
|
$("#receivedPrice").val(sum.toFixed(2));
|
}
|
|
function changePrice(node) {
|
console.log("changePrice");
|
var $node=$(node);
|
var maxValue=$(node).data("max");
|
|
var $tr = $(node).closest("tr");
|
var tds = $tr.find("td");
|
var price = tds.eq(6).html();
|
var total = tds.eq(5).find("input").val();
|
|
total=total>maxValue?maxValue:total;
|
$node.val(parseInt(total));
|
|
tds.eq(7).html((price * total).toFixed(2));
|
//计算总金额
|
var sum = 0;
|
$(".total").each(function() {
|
sum += parseFloat(this.innerHTML);
|
});
|
$("#amountPrice").val(sum.toFixed(2));
|
|
}
|
|
function toDo(url) {
|
var id=[[${obj.id}]]
|
$.AjaxProxy({
|
a : false,
|
c : false,
|
p : {
|
id : id
|
}
|
}).invoke(basePath+'/admin/allotted/' + url, function(loj) {
|
if (layer.alert) {
|
// 执行成功弹出提示层
|
layer.alert(loj.getValue("info"), {
|
icon : 1
|
}, function(inindex) {
|
layer.closeAll();
|
parent.myGrid.serchData();
|
MTools.closeForm();
|
});
|
return;
|
}
|
});
|
}
|
|
function noCheck(url) {
|
var id = $
|
{
|
obj.id
|
}
|
;
|
layer.prompt({
|
formType : 2,
|
title : '审核意见'
|
}, function(value, index, elem) {
|
$.AjaxProxy({
|
a : false,
|
c : false,
|
p : {
|
id : id,
|
appRemark : value,
|
appStatus : 3
|
}
|
}).invoke(basePath+'/admin/allotted/' + url, function(loj) {
|
if (loj.attr("result").status == '200') {
|
layer.msg('备注成功', {
|
icon : 1
|
}, function() {
|
parent.myGrid.serchData();
|
MTools.closeForm();
|
});
|
|
}
|
});
|
|
});
|
|
}
|
</script>
|
</body>
|
</html>
|