Commit df05c88c by anxiaohe

出库功能

parent b75fb4fa
......@@ -27,38 +27,49 @@
},
{
field: 'type.name',
title: '品名代码',
align: 'center'
title: '品名',
sortable: true,
sortName: 'type.name',
},
{
field: 'model',
title: '型号',
align: 'center'
field: 'type.code',
title: '代码',
sortable: true,
sortName: 'type.code'
},
{
field: 'code',
title: '入库单'
},
{
field: 'batchNum',
title: '批次号',
align: 'center'
},
{
field: 'shelvesNames',
title: '货架',
align: 'center'
field: 'amount',
title: '单价'
},
{
field: 'warehouseNames',
title: '仓库',
align: 'center'
field: "type.unit",
title: '单位'
},
{
field: 'model',
title: '型号',
sortable: true,
sortName: 'model'
},
{
field: 'num',
title: '数量',
align: 'center'
title: '数量'
},
{
field: 'sum',
title: '总价',
align: 'center'
sortName: 'sum',
formatter (v, row) {
return new Big(row.num).times(row.amount).toNumber()
}
},
{
title: '操作',
......@@ -72,7 +83,7 @@
title: '查看明细',
type: 1,
auto: true,
area: ['800', '600'],
area: ['1000', '600'],
content: $("#detailTpl").html(),
success: function (){
$("#table").bootstrapTable({
......@@ -99,12 +110,49 @@
columns: [
{checkbox:true},
{field: 'code', title: '物资编码'},
{field: 'name', title: '物资名称'},
{field: 'type.name', title: '品名代码'},
{
field: 'type.name',
title: '品名',
},
{
field: 'type.code',
title: '代码',
},
{
field: 'batchNum',
title: '批次号',
},
{
field: 'amount',
title: '单价'
},
{
field: "type.unit",
title: '单位'
},
{
field: 'amount',
title: '单价'
},
{
field: "type.unit",
title: '单位'
},
{field: 'model', title: '型号'},
{field: 'batchNum', title: '批次号'},
{field: 'shelves.name', title: '货架'},
{field: 'amount', title: '单价'},
// {field: 'amount', title: '单价'},
{
field: 'num',
title: '数量'
},
{
field: 'sum',
title: '总价',
sortName: 'sum',
formatter (v, row) {
return new Big(row.num).times(row.amount).toNumber()
}
},
{
field: 'qr.url',
title: '二维码',
......@@ -135,11 +183,14 @@
}
}
}
]
].map(function (e) {
e.align = 'center';
return e;
})
});
jp.get("${ctx}/warehouse/ledger/ledger/countLedger?id=${ledger.id}", function (ledger) {
var data = ledger.countLedgerInfoList || [];
jp.get("${ctx}/warehouse/ledger/ledger/detail?id=${ledger.id}", function (ledger) {
var data = ledger.ledgerInfoList || [];
$(selector).bootstrapTable('append', data);
})
}
......@@ -234,4 +285,4 @@
<button id="batchPrintBtn" class="btn btn-primary" onclick="onPrint()" disabled>批量打印</button>
<table id="table"></table>
</div>
</script>
\ No newline at end of file
</script>
......@@ -22,17 +22,21 @@
<h3 class="text-center">台账表</h3>
<table class="table table-bordered main-table">
<tr>
<td>物资名称</td>
<td>
<form:input path="name" htmlEscape="false" class="form-control "/>
</td>
<td>品名代码</td>
<td>品名</td>
<td>
<sys:treeselect id="type" name="type.id" value="${ledger.type.id}" labelName="type.name"
labelValue="${ledger.type.name}"
title="品名代码" url="/warehouse/materialtype/materialType/treeData"
extId="${ledger.id}" cssClass="form-control " allowClear="true"/>
</td>
<td>品名代码</td>
<td>
<%-- <sys:treeselect id="type" name="type.id" value="${ledger.type.id}" labelName="type.name"--%>
<%-- labelValue="${ledger.type.name}"--%>
<%-- title="品名代码" url="/warehouse/materialtype/materialType/treeData"--%>
<%-- extId="${ledger.id}" cssClass="form-control " allowClear="true"/>--%>
<form:input path="type.code" htmlEscape="false" class="form-control "/>
</td>
<td>型号</td>
<td>
<form:input path="model" htmlEscape="false" class="form-control "/>
......
......@@ -240,21 +240,21 @@ function refresh(){
$('#ledgerTable').bootstrapTable('refresh');
}
function add(){
jp.openSaveDialog("新增台账","${ctx}/warehouse/ledger/ledger/form/add", '1200', '800');
jp.openSaveDialog("新增台账","${ctx}/warehouse/ledger/ledger/form/add", '1400', '800');
}
function edit(id){
if(id == undefined){
id = getIdSelections();
}
jp.openSaveDialog("编辑台账","${ctx}/warehouse/ledger/ledger/form/edit?id=" + id, '1200', '800');
jp.openSaveDialog("编辑台账","${ctx}/warehouse/ledger/ledger/form/edit?id=" + id, '1400', '800');
}
function view(id){//没有权限时,不显示确定按钮
if(id == undefined){
id = getIdSelections();
}
jp.openViewDialog("查看台账","${ctx}/warehouse/ledger/ledger/form/view?id=" + id,'1200', '800');
jp.openViewDialog("查看台账","${ctx}/warehouse/ledger/ledger/form/view?id=" + id,'1400', '800');
}
......@@ -534,6 +534,7 @@ function scanIptGetFocusStop () {
<tr>
<th>品名</th>
<th>代码</th>
<th>物资编码</th>
<th>数量</th>
<th>单位</th>
<th>型号</th>
......@@ -542,6 +543,7 @@ function scanIptGetFocusStop () {
<th>批次号</th>
<th>货架</th>
<th>仓库</th>
<th>备注</th>
</tr>
</thead>
<tbody id="ledgerChild-{{idx}}-1-List">
......@@ -558,6 +560,7 @@ function scanIptGetFocusStop () {
<td>
{{row.type.code}}
</td>
<td>{{row.code}}</td>
<td>
{{row.num}}
</td>
......@@ -583,6 +586,9 @@ function scanIptGetFocusStop () {
<td>
{{row.warehouseNames}}
</td>
<td>
{{row.remarks}}
</td>
</tr>//-->
</script>
......@@ -26,6 +26,7 @@
if(data.length){
data = data.map(function(item){
item.delFlag = 0;
item.infoSum = new Big(item.num).times(item.amount).toNumber();
return item;
})
}
......@@ -48,30 +49,50 @@
}
},
{
field: 'ledgerInfo.name',
title: '物资名称',
field: 'ledgerInfo.code',
title: '物资编码',
formatter: function (value, row, index) {
return Mustache.render($("#ledgerInfoNameTpl").html(), {
return Mustache.render($("#ledgerInfoCodeTpl").html(), {
row: row,
idx: index
})
}
},
{
field: 'ledgerInfo.code',
title: '物资编码',
field: 'ledgerInfo.type.name',
title: '品名',
formatter: function (value, row, index) {
return Mustache.render($("#ledgerInfoCodeTpl").html(), {
return Mustache.render($("#ledgerInfoTypeTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""), {
row: row,
idx: index
})
}
},
{
field: 'ledgerInfo.type.name',
title: '品名代码',
field: 'ledgerInfo.type.code',
title: '代码',
formatter: function (value, row, index) {
return Mustache.render($("#ledgerInfoTypeTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""), {
return Mustache.render($("#ledgerInfoTypeCodeTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""), {
row: row,
idx: index
})
}
},
{
field: 'ledgerInfo.amount',
title: '单价',
formatter: function (value, row, index) {
return Mustache.render($("#ledgerInfoAmountTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""), {
row: row,
idx: index
})
}
},
{
field: "ledgerInfo.type.unit",
title: '单位',
formatter: function (value, row, index) {
return Mustache.render($("#ledgerInfoTypeUnitTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""), {
row: row,
idx: index
})
......@@ -88,10 +109,21 @@
}
},
{
field: 'ledgerInfo.amount',
title: '单价',
field: 'num',
title: '数量',
formatter: function (value, row, index) {
return Mustache.render($("#ledgerInfoAmountTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""), {
return Mustache.render($("#ledgerInfoNumTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""), {
row: row,
idx: index
})
}
},
{
field: 'infoSum',
title: '总价',
sortName: 'infoSum',
formatter: function (value, row, index) {
return Mustache.render($("#ledgerInfoInfoSumTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g, ""), {
row: row,
idx: index
})
......@@ -170,6 +202,7 @@
})
var data = newItems.map(function (item) {
item[0] = false;
item.infoSum = new Big(item.num).times(item.amount).toNumber();
return {
id: '',
delFlag: 0,
......@@ -377,6 +410,16 @@
<sys:treeselect id="materialRequisitionInfoList{{idx}}_ledgerInfoType" name="materialRequisitionInfoList[{{idx}}].ledgerInfo.type.id" value="{{row.ledgerInfo.type.id}}" labelName="materialRequisitionInfoList{{idx}}.ledgerInfo.type.name" labelValue="{{row.ledgerInfo.type.name}}"
title="品名代码" url="/warehouse/materialtype/materialType/treeData" cssClass="form-control " disabled="disabled" allowClear="true"/>//-->
</script>
<script id="ledgerInfoTypeCodeTpl" type="text/html">
<input id="materialRequisitionInfoList{{idx}}_ledgerInfoTypeCode"
name="materialRequisitionInfoList[{{idx}}].ledgerInfo.type.code" type="text" class="form-control" readonly
value="{{row.ledgerInfo.type.code}}"/>
</script>
<script id="ledgerInfoTypeUnitTpl" type="text/html">
<input id="materialRequisitionInfoList{{idx}}_ledgerInfoTypeUnit
name="materialRequisitionInfoList[{{idx}}].ledgerInfo.type.unit" type="text" class="form-control" readonly
value="{{row.ledgerInfo.type.unit}}"/>
</script>
<script id="ledgerInfoModelTpl" type="text/html">
<input id="materialRequisitionInfoList{{idx}}_ledgerInfoModel"
name="materialRequisitionInfoList[{{idx}}].ledgerInfo.model" type="text" class="form-control" readonly
......@@ -387,6 +430,16 @@
name="materialRequisitionInfoList[{{idx}}].ledgerInfo.amount" type="text" readonly class="form-control"
value="{{row.ledgerInfo.amount}}"/>
</script>
<script id="ledgerInfoNumTpl" type="text/html">
<input id="materialRequisitionInfoList{{idx}}_ledgerInfoNum"
name="materialRequisitionInfoList[{{idx}}].ledgerInfo.num" type="text" readonly class="form-control"
value="{{row.ledgerInfo.num}}"/>
</script>
<script id="ledgerInfoInfoSumTpl" type="text/html">
<input id="materialRequisitionInfoList{{idx}}_ledgerInfoInfoSum"
name="materialRequisitionInfoList[{{idx}}].ledgerInfo.infoSum" type="text" readonly class="form-control"
value="{{row.ledgerInfo.infoSum}}"/>
</script>
<script id="receiverTpl" type="text/html">
<input type="hidden" name="materialRequisitionInfoList[{{idx}}].receiver" value="{{row.receiver}}">
{{#row.receiver}}
......@@ -418,4 +471,4 @@
</div>
</div>
<br>
</script>
\ No newline at end of file
</script>
......@@ -8,6 +8,7 @@
<link rel="stylesheet" href="${ctxStatic}/plugin/bootstrapTable/bootstrap-table.min.css">
<script type="text/javascript" src="${ctxStatic}/plugin/bootstrapTable/bootstrap-table.min.js"></script>
<script type="text/javascript" src="${ctxStatic}/plugin/bootstrapTable/bootstrap-table-zh-CN.js"></script>
<script type="text/javascript" src="${ctxStatic}/common/js/big.js"></script>
<style>
.sign-result{
width: 80px;
......@@ -146,4 +147,4 @@
}
</script>
</body>
</html>
\ No newline at end of file
</html>
<%@ page contentType="text/html;charset=UTF-8" %>
<script>
$(document).ready(function() {
$('#materialRequisitionTable').bootstrapTable({
//请求方法
method: 'post',
//类型json
dataType: "json",
contentType: "application/x-www-form-urlencoded",
//显示检索按钮
showSearch: true,
//显示刷新按钮
showRefresh: true,
//显示切换手机试图按钮
showToggle: true,
//显示 内容列下拉框
showColumns: true,
//显示到处按钮
showExport: true,
//显示切换分页按钮
showPaginationSwitch: true,
//显示详情按钮
detailView: true,
//显示详细内容函数
detailFormatter: "detailFormatter",
//最低显示2行
minimumCountColumns: 2,
//是否显示行间隔色
striped: true,
//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
cache: false,
//是否显示分页(*)
pagination: true,
//排序方式
sortOrder: "asc",
//初始化加载第一页,默认第一页
pageNumber:1,
//每页的记录行数(*)
pageSize: 10,
//可供选择的每页的行数(*)
pageList: [10, 25, 50, 100],
//这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
url: "${ctx}/warehouse/materialrequisition/materialRequisition/data",
//默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
//queryParamsType:'',
////查询参数,每次调用是会带上这个参数,可自定义
queryParams : function(params) {
var searchParam = $("#searchForm").serializeJSON();
searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
searchParam.pageSize = params.limit === undefined? -1 : params.limit;
searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+ params.order;
return searchParam;
},
//分页方式:client客户端分页,server服务端分页(*)
sidePagination: "server",
contextMenuTrigger:"right",//pc端 按右键弹出菜单
contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。
contextMenu: '#context-menu',
onContextMenuItem: function(row, $el){
if($el.data("item") == "edit"){
edit(row.id);
}else if($el.data("item") == "view"){
view(row.id);
} else if($el.data("item") == "delete"){
jp.confirm('确认要删除该物资领用记录吗?', function(){
jp.loading();
jp.get("${ctx}/warehouse/materialrequisition/materialRequisition/delete?id="+row.id, function(data){
if(data.success){
$('#materialRequisitionTable').bootstrapTable('refresh');
jp.success(data.msg);
}else{
jp.error(data.msg);
}
})
});
}
},
onClickRow: function(row, $el){
},
onShowSearch: function () {
$("#search-collapse").slideToggle();
},
columns: [{
checkbox: true
}
,{
field: 'number',
title: '领用单号',
sortable: true,
sortName: 'number'
,formatter:function(value, row , index){
value = jp.unescapeHTML(value);
return "<a href='javascript:view(\""+row.id+"\")'>"+value+"</a>";
}
}
,{
field: 'operator.name',
title: '操作人',
sortable: true,
sortName: 'operator.name'
}
,{
field: 'office.name',
title: '领用机构',
sortable: true,
sortName: 'o.name'
}
,{
field: 'time',
title: '领用时间',
sortable: true,
sortName: 'time'
}
,{
field: 'status',
title: '出库状态',
sortable: true,
sortName: 'status',
formatter:function(value, row , index){
return jp.getDictLabel(${fns:toJson(fns:getDictList('wh_delivery_status'))}, value, "-");
}
}
,{
field: 'remarks',
title: '备注信息',
sortable: true,
sortName: 'remarks'
}
]
});
if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
$('#materialRequisitionTable').bootstrapTable("toggleView");
}
$('#materialRequisitionTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
'check-all.bs.table uncheck-all.bs.table', function () {
<script>
$(document).ready(function() {
$('#materialRequisitionTable').bootstrapTable({
//请求方法
method: 'post',
//类型json
dataType: "json",
contentType: "application/x-www-form-urlencoded",
//显示检索按钮
showSearch: true,
//显示刷新按钮
showRefresh: true,
//显示切换手机试图按钮
showToggle: true,
//显示 内容列下拉框
showColumns: true,
//显示到处按钮
showExport: true,
//显示切换分页按钮
showPaginationSwitch: true,
//显示详情按钮
detailView: true,
//显示详细内容函数
detailFormatter: "detailFormatter",
//最低显示2行
minimumCountColumns: 2,
//是否显示行间隔色
striped: true,
//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
cache: false,
//是否显示分页(*)
pagination: true,
//排序方式
sortOrder: "asc",
//初始化加载第一页,默认第一页
pageNumber:1,
//每页的记录行数(*)
pageSize: 10,
//可供选择的每页的行数(*)
pageList: [10, 25, 50, 100],
//这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
url: "${ctx}/warehouse/materialrequisition/materialRequisition/data",
//默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
//queryParamsType:'',
////查询参数,每次调用是会带上这个参数,可自定义
queryParams : function(params) {
var searchParam = $("#searchForm").serializeJSON();
searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
searchParam.pageSize = params.limit === undefined? -1 : params.limit;
searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+ params.order;
return searchParam;
},
//分页方式:client客户端分页,server服务端分页(*)
sidePagination: "server",
contextMenuTrigger:"right",//pc端 按右键弹出菜单
contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。
contextMenu: '#context-menu',
onContextMenuItem: function(row, $el){
if($el.data("item") == "edit"){
edit(row.id);
}else if($el.data("item") == "view"){
view(row.id);
} else if($el.data("item") == "delete"){
jp.confirm('确认要删除该物资领用记录吗?', function(){
jp.loading();
jp.get("${ctx}/warehouse/materialrequisition/materialRequisition/delete?id="+row.id, function(data){
if(data.success){
$('#materialRequisitionTable').bootstrapTable('refresh');
jp.success(data.msg);
}else{
jp.error(data.msg);
}
})
});
}
},
onClickRow: function(row, $el){
},
onShowSearch: function () {
$("#search-collapse").slideToggle();
},
columns: [{
checkbox: true
}
,{
field: 'number',
title: '领用单号',
sortable: true,
sortName: 'number'
,formatter:function(value, row , index){
value = jp.unescapeHTML(value);
return "<a href='javascript:view(\""+row.id+"\")'>"+value+"</a>";
}
}
,{
field: 'operator.name',
title: '操作人',
sortable: true,
sortName: 'operator.name'
}
,{
field: 'office.name',
title: '领用机构',
sortable: true,
sortName: 'o.name'
}
,{
field: 'time',
title: '领用时间',
sortable: true,
sortName: 'time'
},
{
field: 'status',
title: '出库状态',
sortable: true,
sortName: 'status',
formatter:function(value, row , index){
return jp.getDictLabel(${fns:toJson(fns:getDictList('wh_delivery_status'))}, value, "-");
}
},
{
field: 'remarks',
title: '备注信息',
sortable: true,
sortName: 'remarks'
},
{
title: '操作',
formatter (v, r) {
if (r.status === '1') {
return "<a class='delivery'>出库</a>"
}
},
events: {
'click .delivery': function (e, v, r) {
onDelivery(r.id);
}
}
}
]
});
if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
$('#materialRequisitionTable').bootstrapTable("toggleView");
}
$('#materialRequisitionTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
'check-all.bs.table uncheck-all.bs.table', function () {
$('#remove').prop('disabled', ! $('#materialRequisitionTable').bootstrapTable('getSelections').length);
$('#view,#edit').prop('disabled', $('#materialRequisitionTable').bootstrapTable('getSelections').length!=1);
$('#delivery').prop('disabled', !($('#materialRequisitionTable').bootstrapTable('getSelections').length==1 && $('#materialRequisitionTable').bootstrapTable('getSelections')[0].status == '1'));
});
$("#btnImport").click(function(){
jp.open({
type: 2,
$("#btnImport").click(function(){
jp.open({
type: 2,
area: [500, 200],
auto: true,
title:"导入数据",
content: "${ctx}/tag/importExcel" ,
btn: ['下载模板','确定', '关闭'],
btn1: function(index, layero){
jp.downloadFile('${ctx}/warehouse/materialrequisition/materialRequisition/import/template');
},
btn2: function(index, layero){
var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
iframeWin.contentWindow.importExcel('${ctx}/warehouse/materialrequisition/materialRequisition/import', function (data) {
if(data.success){
jp.success(data.msg);
refresh();
}else{
jp.error(data.msg);
}
jp.close(index);
});//调用保存事件
return false;
},
btn3: function(index){
jp.close(index);
}
});
});
$("#export").click(function(){//导出Excel文件
var searchParam = $("#searchForm").serializeJSON();
searchParam.pageNo = 1;
searchParam.pageSize = -1;
title:"导入数据",
content: "${ctx}/tag/importExcel" ,
btn: ['下载模板','确定', '关闭'],
btn1: function(index, layero){
jp.downloadFile('${ctx}/warehouse/materialrequisition/materialRequisition/import/template');
},
btn2: function(index, layero){
var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
iframeWin.contentWindow.importExcel('${ctx}/warehouse/materialrequisition/materialRequisition/import', function (data) {
if(data.success){
jp.success(data.msg);
refresh();
}else{
jp.error(data.msg);
}
jp.close(index);
});//调用保存事件
return false;
},
btn3: function(index){
jp.close(index);
}
});
});
$("#export").click(function(){//导出Excel文件
var searchParam = $("#searchForm").serializeJSON();
searchParam.pageNo = 1;
searchParam.pageSize = -1;
var sortName = $('#materialRequisitionTable').bootstrapTable("getOptions", "none").sortName;
var sortOrder = $('#materialRequisitionTable').bootstrapTable("getOptions", "none").sortOrder;
var values = "";
......@@ -199,112 +211,115 @@ $(document).ready(function() {
values = values + "orderBy=" + sortName + " "+sortOrder;
}
jp.downloadFile('${ctx}/warehouse/materialrequisition/materialRequisition/export?'+values);
})
$("#search").click("click", function() {// 绑定查询按扭
$('#materialRequisitionTable').bootstrapTable('refresh');
});
$("#reset").click("click", function() {// 绑定查询按扭
$("#searchForm input").val("");
$("#searchForm select").val("");
$("#searchForm .select-item").html("");
$('#materialRequisitionTable').bootstrapTable('refresh');
});
});
function getIdSelections() {
return $.map($("#materialRequisitionTable").bootstrapTable('getSelections'), function (row) {
return row.id
jp.downloadFile('${ctx}/warehouse/materialrequisition/materialRequisition/export?'+values);
})
$("#search").click("click", function() {// 绑定查询按扭
$('#materialRequisitionTable').bootstrapTable('refresh');
});
$("#reset").click("click", function() {// 绑定查询按扭
$("#searchForm input").val("");
$("#searchForm select").val("");
$("#searchForm .select-item").html("");
$('#materialRequisitionTable').bootstrapTable('refresh');
});
});
function getIdSelections() {
return $.map($("#materialRequisitionTable").bootstrapTable('getSelections'), function (row) {
return row.id
});
}
function deleteAll(){
jp.confirm('确认要删除该物资领用记录吗?', function(){
jp.loading();
jp.get("${ctx}/warehouse/materialrequisition/materialRequisition/deleteAll?ids=" + getIdSelections(), function(data){
if(data.success){
$('#materialRequisitionTable').bootstrapTable('refresh');
jp.success(data.msg);
}else{
jp.error(data.msg);
}
})
})
}
//刷新列表
function refresh(){
$('#materialRequisitionTable').bootstrapTable('refresh');
}
function add(){
jp.openSaveDialog("新增物资领用","${ctx}/warehouse/materialrequisition/materialRequisition/form/add",'1200','800');
}
function edit(id){
if(id == undefined){
id = getIdSelections();
}
jp.openSaveDialog("编辑物资领用","${ctx}/warehouse/materialrequisition/materialRequisition/form/edit?id=" + id, '1200','800');
}
function view(id){//没有权限时,不显示确定按钮
if(id == undefined){
id = getIdSelections();
}
function deleteAll(){
jp.confirm('确认要删除该物资领用记录吗?', function(){
jp.loading();
jp.get("${ctx}/warehouse/materialrequisition/materialRequisition/deleteAll?ids=" + getIdSelections(), function(data){
if(data.success){
$('#materialRequisitionTable').bootstrapTable('refresh');
jp.success(data.msg);
}else{
jp.error(data.msg);
}
})
})
}
//刷新列表
function refresh(){
$('#materialRequisitionTable').bootstrapTable('refresh');
}
function add(){
jp.openSaveDialog("新增物资领用","${ctx}/warehouse/materialrequisition/materialRequisition/form/add",'1200','800');
}
function edit(id){
if(id == undefined){
id = getIdSelections();
}
jp.openSaveDialog("编辑物资领用","${ctx}/warehouse/materialrequisition/materialRequisition/form/edit?id=" + id, '1200','800');
}
function view(id){//没有权限时,不显示确定按钮
if(id == undefined){
id = getIdSelections();
}
jp.openViewDialog("查看物资领用","${ctx}/warehouse/materialrequisition/materialRequisition/form/view?id=" + id,'1200','800');
}
function detailFormatter(index, row) {
var htmltpl = $("#materialRequisitionChildrenTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
var html = Mustache.render(htmltpl, {
idx:row.id
});
$.get("${ctx}/warehouse/materialrequisition/materialRequisition/detail?id="+row.id, function(materialRequisition){
var materialRequisitionChild1RowIdx = 0, materialRequisitionChild1Tpl = $("#materialRequisitionChild1Tpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
var data1 = materialRequisition.materialRequisitionInfoList;
for (var i=0; i<data1.length; i++){
data1[i].dict = {};
addRow('#materialRequisitionChild-'+row.id+'-1-List', materialRequisitionChild1RowIdx, materialRequisitionChild1Tpl, data1[i]);
materialRequisitionChild1RowIdx = materialRequisitionChild1RowIdx + 1;
}
})
return html;
jp.openViewDialog("查看物资领用","${ctx}/warehouse/materialrequisition/materialRequisition/form/view?id=" + id,'1200','800');
}
function detailFormatter(index, row) {
var htmltpl = $("#materialRequisitionChildrenTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
var html = Mustache.render(htmltpl, {
idx:row.id
});
$.get("${ctx}/warehouse/materialrequisition/materialRequisition/detail?id="+row.id, function(materialRequisition){
var materialRequisitionChild1RowIdx = 0, materialRequisitionChild1Tpl = $("#materialRequisitionChild1Tpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
var data1 = materialRequisition.materialRequisitionInfoList;
for (var i=0; i<data1.length; i++){
data1[i].dict = {};
addRow('#materialRequisitionChild-'+row.id+'-1-List', materialRequisitionChild1RowIdx, materialRequisitionChild1Tpl, data1[i]);
materialRequisitionChild1RowIdx = materialRequisitionChild1RowIdx + 1;
}
})
return html;
}
function addRow(list, idx, tpl, row){
$(list).append(Mustache.render(tpl, {
idx: idx, delBtn: true, row: row
}));
}
/**
* 出库
*/
function onDelivery (id) {
if (!id) {
id = getIdSelections();
}
function addRow(list, idx, tpl, row){
$(list).append(Mustache.render(tpl, {
idx: idx, delBtn: true, row: row
}));
}
/**
* 出库
*/
function onDelivery(){
jp.confirm('确认是否出库?', function (){
jp.get('${ctx}/warehouse/materialrequisition/materialRequisition/delivery?id='+getIdSelections(), function (res){
if(res.success){
jp.success(res.msg);
refresh();
}else{
jp.error(res.msg);
}
})
})
}
jp.confirm('确认是否出库?', function (){
jp.get('${ctx}/warehouse/materialrequisition/materialRequisition/delivery?id='+ id, function (res){
if (res.success) {
jp.success(res.msg);
refresh();
} else {
jp.error(res.msg);
}
})
})
}
</script>
<script type="text/template" id="materialRequisitionChildrenTpl">//<!--
<div class="tabs-container">
......@@ -317,10 +332,16 @@ $(document).ready(function() {
<thead>
<tr>
<th>物资编码</th>
<th>物资名称</th>
<th>品名</th>
<th>代码</th>
<th>数量</th>
<th>单位</th>
<th>型号</th>
<th>品名代码</th>
<th>单价</th>
<th>总价</th>
<th>批次号</th>
<th>货架</th>
<th>仓库</th>
<th>领用人</th>
<th>备注</th>
</tr>
......@@ -330,29 +351,47 @@ $(document).ready(function() {
</table>
</div>
</div>//-->
</script>
<script type="text/template" id="materialRequisitionChild1Tpl">//<!--
</script>
<script type="text/template" id="materialRequisitionChild1Tpl">//<!--
<tr>
<td>
{{row.ledgerInfo.code}}
</td>
<td>
{{row.ledgerInfo.name}}
{{row.ledgerInfo.type.name}}
</td>
<td>
{{row.ledgerInfo.type.code}}
</td>
<td>
{{row.ledgerInfo.model}}
{{row.ledgerInfo.num}}
</td>
<td>
{{row.ledgerInfo.type.name}}
{{row.ledgerInfo.type.unit}}
</td>
<td>
{{row.ledgerInfo.model}}
</td>
<td>
{{row.ledgerInfo.amount}}
</td>
<td>
{{row.ledgerInfo.infoSum}}
</td>
<td>
{{row.ledgerInfo.batchNum}}
</td>
<td>
{{row.shelvesNames}}
</td>
<td>
{{row.warehouseNames}}
</td>
<td>
<img src="{{row.receiver}}" width="80"/>
</td>
<td>
{{row.remarks}}
</td>
</tr>//-->
</script>
</script>
......@@ -299,11 +299,18 @@ $(document).ready(function() {
<table class="ani table">
<thead>
<tr>
<th>品名</th>
<th>代码</th>
<th>物资编码</th>
<th>物资名称</th>
<th>品名代码</th>
<th>数量</th>
<th>单位</th>
<th>型号</th>
<th>单价</th>
<th>总价</th>
<th>批次号</th>
<th>货架</th>
<th>仓库</th>
<th>备注</th>
</tr>
</thead>
<tbody id="outboundChild-{{idx}}-1-List">
......@@ -315,21 +322,42 @@ $(document).ready(function() {
<script type="text/template" id="outboundChild1Tpl">//<!--
<tr>
<td>
{{row.ledgerInfo.name}}
</td>
<td>
{{row.ledgerInfo.code}}
</td>
<td>
{{row.ledgerInfo.type.name}}
</td>
<td>
{{row.ledgerInfo.type.code}}
</td>
<td>
{{row.ledgerInfo.num}}
</td>
<td>
{{row.ledgerInfo.type.unit}}
</td>
<td>
{{row.ledgerInfo.model}}
</td>
<td>
{{row.ledgerInfo.amount}}
</td>
<td>
{{row.ledgerInfo.infoSum}}
</td>
<td>
{{row.ledgerInfo.batchNum}}
</td>
<td>
{{row.shelvesNames}}
</td>
<td>
{{row.warehouseNames}}
</td>
<td>
<img src="{{row.receiver}}" width="80"/>
</td>
<td>
{{row.remarks}}
</td>
</tr>//-->
......
<%@ page contentType="text/html;charset=UTF-8" %>
<script>
$(document).ready(function() {
$('#storageTable').bootstrapTable({
//请求方法
method: 'post',
//类型json
dataType: "json",
contentType: "application/x-www-form-urlencoded",
//显示检索按钮
showSearch: true,
//显示刷新按钮
showRefresh: true,
//显示切换手机试图按钮
showToggle: true,
//显示 内容列下拉框
showColumns: true,
//显示到处按钮
showExport: true,
//显示切换分页按钮
showPaginationSwitch: true,
//显示详情按钮
detailView: true,
//显示详细内容函数
detailFormatter: "detailFormatter",
//最低显示2行
minimumCountColumns: 2,
//是否显示行间隔色
striped: true,
//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
cache: false,
//是否显示分页(*)
pagination: true,
//排序方式
sortOrder: "asc",
//初始化加载第一页,默认第一页
pageNumber:1,
//每页的记录行数(*)
pageSize: 10,
//可供选择的每页的行数(*)
pageList: [10, 25, 50, 100],
//这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
url: "${ctx}/warehouse/storage/storage/data",
//默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
//queryParamsType:'',
////查询参数,每次调用是会带上这个参数,可自定义
queryParams : function(params) {
var searchParam = $("#searchForm").serializeJSON();
searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
searchParam.pageSize = params.limit === undefined? -1 : params.limit;
searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+ params.order;
return searchParam;
},
//分页方式:client客户端分页,server服务端分页(*)
sidePagination: "server",
contextMenuTrigger:"right",//pc端 按右键弹出菜单
contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。
contextMenu: '#context-menu',
onContextMenuItem: function(row, $el){
if($el.data("item") == "edit"){
edit(row.id);
}else if($el.data("item") == "view"){
view(row.id);
} else if($el.data("item") == "delete"){
jp.confirm('确认要删除该入库信息记录吗?', function(){
jp.loading();
jp.get("${ctx}/warehouse/storage/storage/delete?id="+row.id, function(data){
if(data.success){
$('#storageTable').bootstrapTable('refresh');
jp.success(data.msg);
}else{
jp.error(data.msg);
}
})
});
}
},
onClickRow: function(row, $el){
},
onShowSearch: function () {
$("#search-collapse").slideToggle();
},
columns: [{
checkbox: true
}
,{
field: 'code',
title: '入库单',
sortable: true,
sortName: 'code'
,formatter:function(value, row , index){
value = jp.unescapeHTML(value);
return "<a href='javascript:view(\""+row.id+"\")'>"+value+"</a>";
}
}
,{
field: 'operator.name',
title: '操作人',
sortable: true,
sortName: 'operator.name'
}
,{
field: 'time',
title: '时间',
sortable: true,
sortName: 'time'
}
,{
field: 'batchNum',
title: '批次号',
sortable: true,
sortName: 'batchNum'
}
,{
field: 'remarks',
title: '备注信息',
sortable: true,
sortName: 'remarks'
}
]
});
if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
$('#storageTable').bootstrapTable("toggleView");
}
$('#storageTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
'check-all.bs.table uncheck-all.bs.table', function () {
<script>
$(document).ready(function() {
$('#storageTable').bootstrapTable({
//请求方法
method: 'post',
//类型json
dataType: "json",
contentType: "application/x-www-form-urlencoded",
//显示检索按钮
showSearch: true,
//显示刷新按钮
showRefresh: true,
//显示切换手机试图按钮
showToggle: true,
//显示 内容列下拉框
showColumns: true,
//显示到处按钮
showExport: true,
//显示切换分页按钮
showPaginationSwitch: true,
//显示详情按钮
detailView: true,
//显示详细内容函数
detailFormatter: "detailFormatter",
//最低显示2行
minimumCountColumns: 2,
//是否显示行间隔色
striped: true,
//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
cache: false,
//是否显示分页(*)
pagination: true,
//排序方式
sortOrder: "asc",
//初始化加载第一页,默认第一页
pageNumber:1,
//每页的记录行数(*)
pageSize: 10,
//可供选择的每页的行数(*)
pageList: [10, 25, 50, 100],
//这个接口需要处理bootstrap table传递的固定参数,并返回特定格式的json数据
url: "${ctx}/warehouse/storage/storage/data",
//默认值为 'limit',传给服务端的参数为:limit, offset, search, sort, order Else
//queryParamsType:'',
////查询参数,每次调用是会带上这个参数,可自定义
queryParams : function(params) {
var searchParam = $("#searchForm").serializeJSON();
searchParam.pageNo = params.limit === undefined? "1" :params.offset/params.limit+1;
searchParam.pageSize = params.limit === undefined? -1 : params.limit;
searchParam.orderBy = params.sort === undefined? "" : params.sort+ " "+ params.order;
return searchParam;
},
//分页方式:client客户端分页,server服务端分页(*)
sidePagination: "server",
contextMenuTrigger:"right",//pc端 按右键弹出菜单
contextMenuTriggerMobile:"press",//手机端 弹出菜单,click:单击, press:长按。
contextMenu: '#context-menu',
onContextMenuItem: function(row, $el){
if($el.data("item") == "edit"){
edit(row.id);
}else if($el.data("item") == "view"){
view(row.id);
} else if($el.data("item") == "delete"){
jp.confirm('确认要删除该入库信息记录吗?', function(){
jp.loading();
jp.get("${ctx}/warehouse/storage/storage/delete?id="+row.id, function(data){
if(data.success){
$('#storageTable').bootstrapTable('refresh');
jp.success(data.msg);
}else{
jp.error(data.msg);
}
})
});
}
},
onClickRow: function(row, $el){
},
onShowSearch: function () {
$("#search-collapse").slideToggle();
},
columns: [{
checkbox: true
}
,{
field: 'code',
title: '入库单',
sortable: true,
sortName: 'code'
,formatter:function(value, row , index){
value = jp.unescapeHTML(value);
return "<a href='javascript:view(\""+row.id+"\")'>"+value+"</a>";
}
}
,{
field: 'operator.name',
title: '操作人',
sortable: true,
sortName: 'operator.name'
}
,{
field: 'time',
title: '时间',
sortable: true,
sortName: 'time'
}
,{
field: 'batchNum',
title: '批次号',
sortable: true,
sortName: 'batchNum'
}
// ,{
// field: 'remarks',
// title: '备注信息',
// sortable: true,
// sortName: 'remarks'
//
// }
]
});
if(navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)){//如果是移动端
$('#storageTable').bootstrapTable("toggleView");
}
$('#storageTable').on('check.bs.table uncheck.bs.table load-success.bs.table ' +
'check-all.bs.table uncheck-all.bs.table', function () {
$('#remove').prop('disabled', ! $('#storageTable').bootstrapTable('getSelections').length);
$('#view,#edit').prop('disabled', $('#storageTable').bootstrapTable('getSelections').length!=1);
});
$("#btnImport").click(function(){
jp.open({
type: 2,
$("#btnImport").click(function(){
jp.open({
type: 2,
area: [500, 200],
auto: true,
title:"导入数据",
content: "${ctx}/tag/importExcel" ,
btn: ['下载模板','确定', '关闭'],
btn1: function(index, layero){
jp.downloadFile('${ctx}/warehouse/storage/storage/import/template');
},
btn2: function(index, layero){
var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
iframeWin.contentWindow.importExcel('${ctx}/warehouse/storage/storage/import', function (data) {
if(data.success){
jp.success(data.msg);
refresh();
}else{
jp.error(data.msg);
}
jp.close(index);
});//调用保存事件
return false;
},
btn3: function(index){
jp.close(index);
}
});
});
$("#export").click(function(){//导出Excel文件
var searchParam = $("#searchForm").serializeJSON();
searchParam.pageNo = 1;
searchParam.pageSize = -1;
title:"导入数据",
content: "${ctx}/tag/importExcel" ,
btn: ['下载模板','确定', '关闭'],
btn1: function(index, layero){
jp.downloadFile('${ctx}/warehouse/storage/storage/import/template');
},
btn2: function(index, layero){
var iframeWin = layero.find('iframe')[0]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();
iframeWin.contentWindow.importExcel('${ctx}/warehouse/storage/storage/import', function (data) {
if(data.success){
jp.success(data.msg);
refresh();
}else{
jp.error(data.msg);
}
jp.close(index);
});//调用保存事件
return false;
},
btn3: function(index){
jp.close(index);
}
});
});
$("#export").click(function(){//导出Excel文件
var searchParam = $("#searchForm").serializeJSON();
searchParam.pageNo = 1;
searchParam.pageSize = -1;
var sortName = $('#storageTable').bootstrapTable("getOptions", "none").sortName;
var sortOrder = $('#storageTable').bootstrapTable("getOptions", "none").sortOrder;
var values = "";
......@@ -188,173 +188,174 @@ $(document).ready(function() {
values = values + "orderBy=" + sortName + " "+sortOrder;
}
jp.downloadFile('${ctx}/warehouse/storage/storage/export?'+values);
})
$("#search").click("click", function() {// 绑定查询按扭
$('#storageTable').bootstrapTable('refresh');
});
$("#reset").click("click", function() {// 绑定查询按扭
$("#searchForm input").val("");
$("#searchForm select").val("");
$("#searchForm .select-item").html("");
$('#storageTable').bootstrapTable('refresh');
});
$('#beginTime').datetimepicker({
format: "YYYY-MM-DD HH:mm:ss"
});
$('#endTime').datetimepicker({
format: "YYYY-MM-DD HH:mm:ss"
});
});
function getIdSelections() {
return $.map($("#storageTable").bootstrapTable('getSelections'), function (row) {
return row.id
jp.downloadFile('${ctx}/warehouse/storage/storage/export?'+values);
})
$("#search").click("click", function() {// 绑定查询按扭
$('#storageTable').bootstrapTable('refresh');
});
$("#reset").click("click", function() {// 绑定查询按扭
$("#searchForm input").val("");
$("#searchForm select").val("");
$("#searchForm .select-item").html("");
$('#storageTable').bootstrapTable('refresh');
});
$('#beginTime').datetimepicker({
format: "YYYY-MM-DD HH:mm:ss"
});
$('#endTime').datetimepicker({
format: "YYYY-MM-DD HH:mm:ss"
});
});
function getIdSelections() {
return $.map($("#storageTable").bootstrapTable('getSelections'), function (row) {
return row.id
});
}
function deleteAll(){
jp.confirm('确认要删除该入库信息记录吗?', function(){
jp.loading();
jp.get("${ctx}/warehouse/storage/storage/deleteAll?ids=" + getIdSelections(), function(data){
if(data.success){
$('#storageTable').bootstrapTable('refresh');
jp.success(data.msg);
}else{
jp.error(data.msg);
}
})
})
}
//刷新列表
function refresh(){
$('#storageTable').bootstrapTable('refresh');
}
function add(){
jp.openSaveDialog("新增入库单","${ctx}/warehouse/storage/storage/form/add", '1400', '800');
}
function edit(id){
if(id == undefined){
id = getIdSelections();
}
function deleteAll(){
jp.confirm('确认要删除该入库信息记录吗?', function(){
jp.loading();
jp.get("${ctx}/warehouse/storage/storage/deleteAll?ids=" + getIdSelections(), function(data){
if(data.success){
$('#storageTable').bootstrapTable('refresh');
jp.success(data.msg);
}else{
jp.error(data.msg);
}
})
})
}
//刷新列表
function refresh(){
$('#storageTable').bootstrapTable('refresh');
}
function add(){
jp.openSaveDialog("新增入库单","${ctx}/warehouse/storage/storage/form/add", '1400', '800');
}
function edit(id){
if(id == undefined){
id = getIdSelections();
}
jp.openSaveDialog("编辑入库单","${ctx}/warehouse/storage/storage/form/edit?id=" + id, '1400', '800');
}
function view(id){//没有权限时,不显示确定按钮
if(id == undefined){
id = getIdSelections();
}
jp.openViewDialog("查看入库单","${ctx}/warehouse/storage/storage/form/view?id=" + id, '1400', '800');
}
function detailFormatter(index, row) {
var htmltpl = $("#storageChildrenTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
var html = Mustache.render(htmltpl, {
idx:row.id
});
$.get("${ctx}/warehouse/storage/storage/detail?id="+row.id, function(storage){
var storageChild1RowIdx = 0, storageChild1Tpl = $("#storageChild1Tpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
var data1 = storage.storageInfoList;
for (var i=0; i<data1.length; i++){
var item = data1[i];
data1[i].dict = {};
data1[i].storageId = row.id;
data1[i].batchNum = row.batchNum;
data1[i].jsonStr = JSON.stringify(data1[i]);
data1[i].isNotStorage = data1[i].qrCode.state !== '2';
data1[i].isStorage = data1[i].qrCode.state === '2';
data1[i].mainRowIndex = index;
item.infoSum = new Big(item.num).times(item.amount).toNumber();
item.shelvesNames = item.shelvesList.map(function (e) {
return e.name
}).join(',');
item.warehouseNames = item.warehouseList.map(function (e) {
return e.name
}).join(',');
addRow('#storageChild-'+row.id+'-1-List', storageChild1RowIdx, storageChild1Tpl, data1[i]);
storageChild1RowIdx = storageChild1RowIdx + 1;
}
})
return html;
jp.openSaveDialog("编辑入库单","${ctx}/warehouse/storage/storage/form/edit?id=" + id, '1400', '800');
}
function view(id){//没有权限时,不显示确定按钮
if(id == undefined){
id = getIdSelections();
}
function addRow(list, idx, tpl, row){
$(list).append(Mustache.render(tpl, {
idx: idx, delBtn: true, row: row
}));
}
function onStorage(countStorage, goodsInfoId, rowIndex){
debugger
var main = JSON.parse(countStorage);
var data = [main];
// var shelvesIds = data.map(function (item){
// return item.shelves.id
// }).join(',');
// 构建台账主表
var name$ = $("<input type='hidden' name='name' value='"+main.name+"' />");
var typeId$ = $("<input type='hidden' name='type.id' value='"+main.type.id+"' />");
var typeName$ = $("<input type='hidden' name='type.name' value='"+main.type.name+"' />");
var model$ = $("<input type='hidden' name='model' value='"+main.model+"' />");
// var shelvesIds$ = $("<input type='hidden' name='shelvesIds' value='"+shelvesIds+"' />");
var num$ = $("<input type='hidden' name='num' value="+main.num+" />");
var sum$ = $("<input type='hidden' name='sum' value="+new Big(main.num).times(main.amount).toNumber()+" />");
$("#ledgerForm").empty();
$("#ledgerForm").append(name$).append(typeId$).append(typeName$).append(model$).append(num$).append(sum$);
data.forEach(function (item,index){
// 构建台账附表
var id$ = $("<input type='hidden' name='ledgerInfoList["+index+"].id' value='' />");
var delFlag$ = $("<input type='hidden' name='ledgerInfoList["+index+"].delFlag' value='0' />");
var name$ = $("<input type='hidden' name='ledgerInfoList["+index+"].name' value='"+item.name+"' />");
var typeId$ = $("<input type='hidden' name='ledgerInfoList["+index+"].type.id' value='"+item.type.id+"' />");
var batchNum$ = $("<input type='hidden' name='ledgerInfoList["+index+"].batchNum' value='"+main.batchNum+"' />");
var model$ = $("<input type='hidden' name='ledgerInfoList["+index+"].model' value='"+item.model+"' />");
var goodsInfoId$ = $("<input type='hidden' name='ledgerInfoList["+index+"].goodsInfo.id' value='"+item.goodsInfo.id+"' />");
var qrId$ = $("<input type='hidden' name='ledgerInfoList["+index+"].qr.id' value='"+item.qrCode.id+"' />");
// var shelvesId$ = $("<input type='hidden' name='ledgerInfoList["+index+"].shelves.id' value='"+item.shelves.id+"' />");
var code$ = $("<input type='hidden' name='ledgerInfoList["+index+"].code' value='"+item.qrCode.code+"' />");
var amount$ = $("<input type='hidden' name='ledgerInfoList["+index+"].amount' value='"+item.amount+"' />");
var num$ = $("<input type='hidden' name='ledgerInfoList["+index+"].num' value='"+item.num+"' />");
var shelvesIds$ = $("<input type='hidden' name='ledgerInfoList["+index+"].shelvesIds' value='"+item.shelvesIds+"' />");
var warehouseIds$ = $("<input type='hidden' name='ledgerInfoList["+index+"].warehouseIds' value='"+item.warehouseIds+"' />");
$("#ledgerForm").append(id$).append(delFlag$).append(name$).append(typeId$).append(batchNum$).append(model$).append(num$)
.append(goodsInfoId$).append(qrId$).append(code$).append(amount$).append(shelvesIds$).append(warehouseIds$);
})
jp.loading('入库中...');
jp.post("${ctx}/warehouse/ledger/ledger/save", $("#ledgerForm").serialize(), function (res){
if(res.success){
jp.success('入库成功!');
$('#storageTable').bootstrapTable('collapseRow', rowIndex);
setTimeout(function (){
$('#storageTable').bootstrapTable('expandRow', rowIndex);
},0)
}else {
jp.error('入库失败!');
}
})
// jp.get("${ctx}/warehouse/storage/storage/findInfoBycountStorage?goodsInfo.id="+goodsInfoId+"&storage.id="+main.storageId, function (res){
// var data = res.body.storageInfoList;
// if(Array.isArray(data)){
//
// }
// })
}
jp.openViewDialog("查看入库单","${ctx}/warehouse/storage/storage/form/view?id=" + id, '1400', '800');
}
function detailFormatter(index, row) {
var htmltpl = $("#storageChildrenTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
var html = Mustache.render(htmltpl, {
idx:row.id
});
$.get("${ctx}/warehouse/storage/storage/detail?id="+row.id, function(storage){
var storageChild1RowIdx = 0, storageChild1Tpl = $("#storageChild1Tpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
var data1 = storage.storageInfoList;
for (var i=0; i<data1.length; i++){
var item = data1[i];
data1[i].dict = {};
data1[i].storageId = row.id;
data1[i].batchNum = row.batchNum;
data1[i].jsonStr = JSON.stringify(data1[i]);
data1[i].isNotStorage = data1[i].qrCode.state !== '2';
data1[i].isStorage = data1[i].qrCode.state === '2';
data1[i].mainRowIndex = index;
item.infoSum = new Big(item.num).times(item.amount).toNumber();
item.shelvesNames = item.shelvesList.map(function (e) {
return e.name
}).join(',');
item.warehouseNames = item.warehouseList.map(function (e) {
return e.name
}).join(',');
addRow('#storageChild-'+row.id+'-1-List', storageChild1RowIdx, storageChild1Tpl, data1[i]);
storageChild1RowIdx = storageChild1RowIdx + 1;
}
})
return html;
}
function addRow(list, idx, tpl, row){
$(list).append(Mustache.render(tpl, {
idx: idx, delBtn: true, row: row
}));
}
function onStorage(countStorage, goodsInfoId, rowIndex){
debugger
var main = JSON.parse(countStorage);
var data = [main];
// var shelvesIds = data.map(function (item){
// return item.shelves.id
// }).join(',');
// 构建台账主表
var name$ = $("<input type='hidden' name='name' value='"+main.name+"' />");
var typeId$ = $("<input type='hidden' name='type.id' value='"+main.type.id+"' />");
var typeName$ = $("<input type='hidden' name='type.name' value='"+main.type.name+"' />");
var model$ = $("<input type='hidden' name='model' value='"+main.model+"' />");
// var shelvesIds$ = $("<input type='hidden' name='shelvesIds' value='"+shelvesIds+"' />");
var num$ = $("<input type='hidden' name='num' value="+main.num+" />");
var sum$ = $("<input type='hidden' name='sum' value="+new Big(main.num).times(main.amount).toNumber()+" />");
$("#ledgerForm").empty();
$("#ledgerForm").append(name$).append(typeId$).append(typeName$).append(model$).append(num$).append(sum$);
data.forEach(function (item,index){
// 构建台账附表
var id$ = $("<input type='hidden' name='ledgerInfoList["+index+"].id' value='' />");
var delFlag$ = $("<input type='hidden' name='ledgerInfoList["+index+"].delFlag' value='0' />");
var name$ = $("<input type='hidden' name='ledgerInfoList["+index+"].name' value='"+item.name+"' />");
var typeId$ = $("<input type='hidden' name='ledgerInfoList["+index+"].type.id' value='"+item.type.id+"' />");
var batchNum$ = $("<input type='hidden' name='ledgerInfoList["+index+"].batchNum' value='"+main.batchNum+"' />");
var model$ = $("<input type='hidden' name='ledgerInfoList["+index+"].model' value='"+item.model+"' />");
var goodsInfoId$ = $("<input type='hidden' name='ledgerInfoList["+index+"].goodsInfo.id' value='"+item.goodsInfo.id+"' />");
var qrId$ = $("<input type='hidden' name='ledgerInfoList["+index+"].qr.id' value='"+item.qrCode.id+"' />");
// var shelvesId$ = $("<input type='hidden' name='ledgerInfoList["+index+"].shelves.id' value='"+item.shelves.id+"' />");
var code$ = $("<input type='hidden' name='ledgerInfoList["+index+"].code' value='"+item.qrCode.code+"' />");
var amount$ = $("<input type='hidden' name='ledgerInfoList["+index+"].amount' value='"+item.amount+"' />");
var num$ = $("<input type='hidden' name='ledgerInfoList["+index+"].num' value='"+item.num+"' />");
var shelvesIds$ = $("<input type='hidden' name='ledgerInfoList["+index+"].shelvesIds' value='"+item.shelvesIds+"' />");
var warehouseIds$ = $("<input type='hidden' name='ledgerInfoList["+index+"].warehouseIds' value='"+item.warehouseIds+"' />");
var remarks$ = $("<input type='hidden' name='ledgerInfoList["+index+"].remarks' value='"+item.remarks+"' />");
$("#ledgerForm").append(id$).append(delFlag$).append(name$).append(typeId$).append(batchNum$).append(model$).append(num$)
.append(goodsInfoId$).append(qrId$).append(code$).append(amount$).append(shelvesIds$).append(warehouseIds$).append(remarks$);
})
jp.loading('入库中...');
jp.post("${ctx}/warehouse/ledger/ledger/save", $("#ledgerForm").serialize(), function (res){
if(res.success){
jp.success('入库成功!');
$('#storageTable').bootstrapTable('collapseRow', rowIndex);
setTimeout(function (){
$('#storageTable').bootstrapTable('expandRow', rowIndex);
},0)
}else {
jp.error('入库失败!');
}
})
// jp.get("${ctx}/warehouse/storage/storage/findInfoBycountStorage?goodsInfo.id="+goodsInfoId+"&storage.id="+main.storageId, function (res){
// var data = res.body.storageInfoList;
// if(Array.isArray(data)){
//
// }
// })
}
</script>
<script type="text/template" id="storageChildrenTpl">//<!--
<div class="tabs-container">
......@@ -375,6 +376,7 @@ $(document).ready(function() {
<th>总价</th>
<th>仓库</th>
<th>货架</th>
<th>备注</th>
<th>操作</th>
</tr>
</thead>
......@@ -383,8 +385,8 @@ $(document).ready(function() {
</table>
</div>
</div>//-->
</script>
<script type="text/template" id="storageChild1Tpl">//<!--
</script>
<script type="text/template" id="storageChild1Tpl">//<!--
<tr>
<td>
{{row.type.name}}
......@@ -413,7 +415,9 @@ $(document).ready(function() {
<td>
{{row.shelvesNames}}
</td>
<td>
{{row.remarks}}
</td>
{{#row.isNotStorage}}
<td>
<a href="javascript:void(0);" onclick="onStorage('{{row.jsonStr}}','{{row.goodsInfo.id}}',{{row.mainRowIndex}})">入库</a>
......@@ -425,4 +429,4 @@ $(document).ready(function() {
</td>
{{/row.isStorage}}
</tr>//-->
</script>
</script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment