<!DOCTYPE HTML>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<style>
	.table-striped-left{
		width: 41%;
		/*margin-right: 4px;*/
	}
	.table-striped-right{
		/*right: -10px;*/
		width: 58%;
		float: right;
	}
	.info_text{
		float: right;
	}
	.info_text li{
		font-size: 16px;
	}
	.info_text li span{
		font-size: 20px;
		font-weight: bold;
		color: rgb(28,132,198);
	}
</style>
<body class="gray-bg">
<div class="container-div">

	<div class="row">
		<div class="col-sm-12 select-info">
			<form id="dept-form">
				<div class="select-list">
					<ul>
						<li>
							收货单号:<input type="text" id="code" name="deptName"/>
						</li>
						<li>
							<a class="btn btn-primary btn-rounded btn-sm" id="list-btn"><i class="fa fa-search"></i>&nbsp;搜索</a>
						</li>
					</ul>
					<ul class="info_text">
						<li>物料总数:<span id="material_length"></span></li>
						<li>总单据数量:<span id="qty_length"></span></li>
						<li>已收货数量:<span id="qtyCompleted_length"></span></li>
					</ul>
				</div>
			</form>
		</div>

		<div class="col-sm-12 select-info table-striped-left" style="padding-top: 20px;">
			<table id="bootstrap-table" data-mobile-responsive="true" class="table table-bordered table-hover text-nowrap"></table>
		</div>
		<div class="col-sm-12 select-info table-striped-right">
			<ul class="select-list">
				<li style="display: none">id:<input type="text" id="detailId"/></li>
				<li>收货数量:<input type="text" id="receiveNum"/></li>
				<li>容器编号:<input type="text" id="containerCode"/></li>
				<li>
					<button class="btn btn-sm btn-success" onclick="receipt()">组盘</button>
				</li>
			</ul>
			<div class="btn-group hidden-xs" id="toolbar1" role="group">
				<a class="btn btn-outline btn-success btn-rounded" onclick="positioning()"
				   shiro:hasPermission="receipt:receiptDetail:add">
					<i class="fa fa-map-pin"></i> 定位
				</a>
				<a class="btn btn-outline btn-info btn-rounded" onclick="cancelPositioning()"
				   shiro:hasPermission="receipt:receiptDetail:remove">
					<i class="fa fa-times"></i> 取消定位
				</a>
				<a class="btn btn-outline btn-danger btn-rounded" onclick="batRemove()"
				   shiro:hasPermission="receipt:receiptDetail:remove">
					<i class="fa fa-trash-o"></i> 取消收货
				</a>
				<a class="btn btn-outline btn-warning btn-rounded" onclick="createTask()"
				   shiro:hasPermission="receipt:receiptContainer:add">
					<i class="fa fa-edit"></i> 生成任务
				</a>
			</div>
			<table id="bootstrap-table1" data-mobile-responsive="true"
				   class="table table-bordered table-hover text-nowrap"></table>
			<ul class="select-list top_text">
				<li><span class="table-title">本物料库存</span></li>
			</ul>
			<table id="bootstrap-table2" data-mobile-responsive="true"
				   class="table table-bordered table-hover text-nowrap"></table>

			<ul class="select-list top_text">
				<li>空容器类型:<select name="type" id="containerType" th:with="typeList=${@containerType.getCode()}">
					<option value="">所有</option>
					<option th:each="c:${typeList}" th:text="${c['name']}" th:value="${c['code']}"></option>
				</select></li>
				<li>
					<button class="btn btn-sm btn-success" onclick="containerTypeSearch()">搜索</button>
				</li>
			</ul>
			<table id="bootstrap-table3" data-mobile-responsive="true"
				   class="table table-bordered table-hover text-nowrap"></table>
		</div>
	</div>
</div>
<div th:include="include :: footer"></div>
<script th:inline="javascript">
    var addFlag = [[${@permission.hasPermi('receipt:receiving:add')}]];
    var removeFlag = [[${@permission.hasPermi('receipt:receiving:remove')}]];
    var prefix = ctx + "receipt/receiving";
    var Types = [[${@dict.getType('taskType')}]];
    var Status=[[${@dict.getType('receiptContainerHeaderStatus')}]];
	var inventoryStatus =[[${@dict.getType('inventoryStatus')}]];

	$(function () {
		$("#bootstrap-table3").bootstrapTable({
			url: ctx+'config/container/emptyContainer',
			iconSize: "outline",
			modalName: "空盒",
			pagination: true,   // 是否显示分页(*)
			pageNumber: 1,// 初始化加载第一页,默认第一页
			method: 'post',
			pageSize: 5, // 每页的记录行数(*)
			showRefresh: true,
			pageList: [10, 25, 50],
			contentType: "application/x-www-form-urlencoded",
			columns: [{
				field : 'code',
				title : '容器编号'
			},{
				field : 'locationCode',
				title : '库位编号'
			}]
		});
	});

    function list_select(code) {
        $.ajax({
            url: prefix + "/scanBill",
            type: 'post',
            datatype: 'json',
            data: {
                code: code
            },
            error:function (response) {
                console.log(response);
            },
            success: function (value) {
                var qty_show=0;
                var qtyCompleted_show=0;
                $("#bootstrap-table").bootstrapTable('removeAll');
                if(value.data){
                    for (var i = 0; i < value.data.length; i++) {
                        if (value.data[i].totalQty > value.data[i].openQty) {
                            $("#bootstrap-table").bootstrapTable('insertRow', {
                                index: 0, row: {
                                    projectNo:value.data[i].project,
                                    id: value.data[i].id,
									materialName: value.data[i].materialName,
                                    receiptId: value.data[i].receiptId,
                                    receiptCode: value.data[i].receiptCode,
                                    materialCode: value.data[i].materialCode,
                                    totalQty: value.data[i].totalQty,
                                    openQty: value.data[i].openQty,
                                    inventorySts: value.data[i].inventorySts,
									materialUnit: value.data[i].materialUnit
                                }
                            });
                        }
						qty_show=value.data[i].totalQty + qty_show;
                        qtyCompleted_show=value.data[i].openQty + qtyCompleted_show;
                    }
                    $("#material_length").text(value.data.length);
                    $("#qty_length").text(qty_show);
                    $("#qtyCompleted_length").text(qtyCompleted_show);
                }
                else    {
                    console.log("收货单不存在!")
                }
            }
        })
    }

    function list_receiptInfo(code) {
        $.ajax({
            url: prefix + "/getReceiptInfoByBill",
            type: 'post',
            datatype: 'json',
            data: {
                code: code
            },
            error:function (response) {
                console.log(response);
            },
            success: function (value) {
                $("#bootstrap-table1").bootstrapTable('removeAll');
                if(value.data){
                    for (var i = 0; i < value.data.length; i++) {
                        $("#bootstrap-table1").bootstrapTable('insertRow', {
                            index: 0, row: {
                                projectNo :value.data[i].projectNo,
                                id: value.data[i].id,
								receiptContainerId:value.data[i].receiptContainerId,
								receiptDetailId:value.data[i].receiptDetailId,
                                containerCode: value.data[i].containerCode,
                                locationCode: value.data[i].locationCode,
                                materialCode: value.data[i].materialCode,
                                materialName: value.data[i].materialName,
                                materialSpec: value.data[i].materialSpec,
								taskType:value.data[i].taskType,
                                qty: value.data[i].qty,
                                status: value.data[i].status,
                                created: value.data[i].created,
                                createdBy: value.data[i].createdBy
                            }
                        });
                    }
                }
                else    {
                    console.log("没有查找到入库容器!")
                }
            }
        })
    }

    $("#list-btn").click(initTable);

    $("body").bind("keypress",function(e){
        // 兼容FF和IE和Opera
        var theEvent = e || window.event;
        var code = theEvent.keyCode || theEvent.which || theEvent.charCode;
        if (code == 13) {
            e.preventDefault();
            //回车执行查询
            initTable();
           // list_select($("#code").val());
        }
    });

    function initTable(){
        var receiptCode=$("#code").val();
        list_select(receiptCode);
        list_receiptInfo(receiptCode);
		$("#bootstrap-table1").bootstrapTable('removeAll');
		$("#bootstrap-table2").bootstrapTable('removeAll');
	}

    $("#bootstrap-table").bootstrapTable({
        // url: prefix + "/list",
        createUrl: prefix + "/add",
        updateUrl: prefix + "/edit/{id}",
        removeUrl: prefix + "/remove",
        contentType: "application/x-www-form-urlencoded",
        clickToSelect: true,
        modalName: "收货",
		onRefresh: function(){

		},
        onClickRow:function(row,ele,field){
            let code=$("#code").val();
            $("#detailId").val(row.id);
            $("#receiveNum").val(row.totalQty-row.openQty);
            $.ajax({
                url:prefix+'/getInventoryInfo',
                type:'post',
                data:{
                    code:code,
                    id:row.id
                },
                success:res=>{
                    // $("#bootstrap-table1").bootstrapTable('load',res.data.list);
                    $("#bootstrap-table2").bootstrapTable('load',res.data.inventoryList);
                    // $("#bootstrap-table3").bootstrapTable('load',res.data.containerList);
                }
            })
        },
        columns: [
            // {
            //     field : 'id',
            //     title : 'id号'
            // },
            // {
            //     field : 'receiptCode',
            //     title : '收货单编码'
            // },
            {
                field : 'id',
                title : '明细id'
            },
            {
                field : 'materialCode',
                title : '物料编码'
            },
            {
                field: "materialName",
                title: "名称"
            },
            {
                field : 'totalQty',
                title : '单据数量'
            },
            {
                field : 'openQty',
                title : '已入数量'
            },
            {
                field : 'inventorySts',
                title : '库存状态'
            },
            {
                field : 'projectNo',
                title : '项目号'
            },
            {
                field : 'materialUnit',
                title : '单位'
            },

            ]
    });

    $("#bootstrap-table1").bootstrapTable({
        removeUrl: ctx + "receipt/receiptContainerDetail/remove",
        // search: true, //搜索
        showRefresh: true, //刷新
        showToggle:true, //视图切换
        clickToSelect: true,
        showColumns:true, //列选择
        // detailView:true,
		toolbar: "#toolbar1",
        showExport: true, //导出
        exportDataType: "all",  //导出类型basic', 'all', 'selected'.当前页、所有数据、选中数据
        modalName: "入库组盘",
        iconSize: "outline",
        toolbar: "#toolbar1",
        contentType: "application/x-www-form-urlencoded",
        onRefresh: function(){
            list_receiptInfo($("#code").val());
        },
        columns: [
            {
                checkbox: true
            },
            {
                field : 'id',
                title : '组盘明细id',
                visible: false
            },
            {
                field : 'receiptContainerId',
                title : '组盘头id',
				visible: false
            },
            {
                field : 'containerCode',
                title : '容器编号'
            },
            {
                field : 'locationCode',
                title : '库位编号'
            },
            {
                field : 'materialCode',
                title : '物料编码'
            },
            {
                field:"materialName",
                title:"物料名称"
            },
            {
                field:"materialSpec",
                title:"物料规格"
            },
            {
                field : 'qty',
                title : '数量'
            },
            {
                field : 'project',
                title : '项目号',
				visible: false
            },
            {
                field : 'status',
                title : '组盘状态',
                align: 'center',
                formatter: function(value, row, index) {
                    return $.table.selectDictLabel(Status, value);
                }
            },
            {
                field : 'receiptDetailId',
                title : '入库单明细id'
            },
            {
                field : 'created',
                title : '创建时间'
            },
            {
                field : 'createdBy',
                title : '创建人'
            },
            {
                title: '操作',
                align: 'center',
				events:'operateEvents',
                formatter: function(value, row, index) {
                    var actions = [];
                    if (row.status == 0) {
                        actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>取消</a>');
					}
                    return actions.join('');
                }
            }]
    });

	$("#bootstrap-table2").bootstrapTable({
		removeUrl: ctx + "receipt/receiptContainerDetail/remove",
		clickToSelect: true,
		showColumns:true, //列选择
		showExport: true, //导出
		iconSize: "outline",
		toolbar: "#toolbar",
		exportDataType: "all",  //导出类型basic', 'all', 'selected'.当前页、所有数据、选中数据
		modalName: "入库组盘",
		pagination: true,   // 是否显示分页(*)
		pageNumber: 1,                                      // 初始化加载第一页,默认第一页
		pageSize: 5,                                       // 每页的记录行数(*)
		pageList: [10, 25, 50],
		contentType: "application/x-www-form-urlencoded",
		columns: [
			{
				field : 'containerCode',
				title : '容器编号'
			},
			{
				field : 'materialCode',
				title : '存货编码'
			},
			{
				field : 'materialName',
				title : '物料名称'
			},
			{
				field : 'materialSpec',
				title : '物料规格'
			},
			{
				field : 'qty',
				title : '数量'
			},
			{
				field : 'companyName',
				title : '货主'
			},
			{
				field : 'locationCode',
				title : '库位编号'
			},
			{
				field : 'status',
				title : '库存状态' ,
				align: 'center',
				formatter: function(value, row, index) {
					return $.table.selectDictLabel(inventoryStatus, value);
				}
			},
		]
	});
    window.operateEvents = {
        'click #qty': function (e, value, row, index) {
            var url = prefix + '/add?';
            jQuery.each(row, function(key, val) {
                url = url + key + "=" + encodeURI(val) + "&";
            });
            var modalName="入库组盘";
            $.modal.open("添加"+modalName,url);
        }
    };

    function receiving_refresh() {
        var receiving_code = localStorage.getItem("receiving_code");
        $("#code").val(receiving_code);
        if (receiving_code) {
            initTable();
		}
        localStorage.removeItem("receiving_code");
    }

    receiving_refresh();

    function remove(id) {
        $.modal.confirm("确定删除该组盘?", function() {
            var url = ctx + "receipt/receiptContainerDetail/remove";
            var data = { "ids": id };
            $.operate.submitAndCallback(url,  "post", "json", data, initTable);
        });
    }

	function positioning() {
		let rows = $("#bootstrap-table1").bootstrapTable('getSelections');
		if (rows.length == 0) {
			$.modal.alertWarning("请至少选择一条记录");
			return;
		}
		var url = ctx+"receipt/receiptContainerHeader/position";
		var ids = "";
		for (var i = 0; i<rows.length; i++){
			ids += rows[i].receiptContainerId;
			ids += ",";
		}
		var data = { "ids": ids };
		$.modal.loading("正在处理中,请稍后...");
		var config = {
			url: url,
			type: "post",
			dataType: "json",
			data: data,
			success: function(result) {
				$.operate.ajaxSuccess(result);
				list_receiptInfo($("#code").val());
			}
		};
		$.ajax(config)
		$.table.refresh("bootstrap-table1");
	}

	function refresh() {
		var receiptCode=$("#code").val();
		list_select(receiptCode);
		list_receiptInfo(receiptCode);
		$("#bootstrap-table1").bootstrapTable('removeAll');
		$("#bootstrap-table2").bootstrapTable('removeAll');
	}

	function cancelPositioning() {
		let rows = $("#bootstrap-table1").bootstrapTable('getSelections');
		if (rows.length == 0) {
			$.modal.alertWarning("请至少选择一条记录");
			return;
		}
		var url = ctx+"receipt/receiptContainerHeader/cancelPosition";
		var ids = "";
		for (var i = 0; i<rows.length; i++){
			ids += rows[i].receiptContainerId;
			ids += ",";
		}
		var data = { "ids": ids };

		$.modal.loading("正在处理中,请稍后...");
		var config = {
			url: url,
			type: "post",
			dataType: "json",
			data: data,
			success: function(result) {
				$.operate.ajaxSuccess(result);
				list_receiptInfo($("#code").val());
			}
		};
		$.ajax(config)
		$.table.refresh("bootstrap-table1");
	}

	function batRemove() {
		let rows = $("#bootstrap-table1").bootstrapTable('getSelections');
		if (rows.length == 0) {
			$.modal.alertWarning("请至少选择一条记录");
			return;
		}
		var url = ctx+"receipt/receiptContainerDetail/remove";
		var ids = "";
		for (var i = 0; i<rows.length; i++){
			ids += rows[i].id;
			ids += ",";
		}
		var data = { "ids": ids };
		var config = {
			url: url,
			type: "post",
			dataType: "json",
			data: data,
			success: function(result) {
				$.operate.ajaxSuccess(result);
				list_receiptInfo($("#code").val());
				list_select($("#code").val());
			}
		};
		$.ajax(config);
		$.table.refresh("bootstrap-table1");
	}

    function receipt() {
        let containerCode = $("#containerCode").val();
        let locationCode = '';
        Receiving(locationCode, containerCode);
    }

    /**
     * 组盘
     * @param locationCode
     * @param containerCode
     */
    function Receiving(locationCode,containerCode) {
        let receiptCode=$("#code").val();
        let num=$("#receiveNum").val();
        let receiptDetailId=$("#detailId").val();
        $.ajax({
            url:ctx + "receipt/receiving/save",
            type:'post',
            data:{
                receiptCode:receiptCode,
                qty: num,
                receiptDetailId:receiptDetailId,
                locationCode:locationCode,
                containerCode:containerCode
            },
            success:function (data) {
                if(data.code===200){
                    $.modal.msgSuccess('成功');
                    initTable();
                }
                else{
                    $.modal.msg(data.msg);
                }
            }
        })
    }

	function chooseStation(id) {
		var url = ctx + "receipt/receiptContainerHeader/chooseStation" + "/" +  id;
		$.modal.open("选择站台", url);
	}

    function createTask() {
		let rows=$("#bootstrap-table1").bootstrapTable('getSelections');
		if (rows.length == 0) {
			$.modal.alertWarning("请至少选择一条记录");
			return;
		}
		if(rows[0].taskType == 200) {
			let ids = "";
			for(let i=0; i<rows.length; i++) {
				if(ids == "") {
					ids = rows[i].receiptContainerId;
				} else {
					ids = ids + "," + rows[i].receiptContainerId
				}
			}
			chooseStation(ids);
		} else {
			let url = ctx + "receipt/receiptContainerHeader/createTask";
			let ids = "";
			for(let i=0; i<rows.length; i++) {
				ids = ids + rows[i].receiptContainerId + ","
			}
			let data = { "ids": ids.substring(0, ids.length-1) };
			$.modal.loading("正在处理中,请稍后...");
			var config = {
				url: url,
				type: "post",
				dataType: "json",
				data: data,
				success: function(result) {
					if (result.code == web_status.SUCCESS) {
						$.modal.msgSuccess(result.msg);
						$.table.refresh("bootstrap-table1");
					} else {
						$.modal.alertError(result.msg);
					}
					$.modal.closeLoading();
				}
			};
			$.ajax(config)
		}
	}

	function containerTypeSearch() {
		var params = {
			query:{containerType:$("#containerType").val()}
		}
		$("#bootstrap-table3").bootstrapTable('refresh',params);
	}
</script>
</body>
</html>