<!DOCTYPE HTML>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<style></style>
<body class="gray-bg">
<div class="container-div">
    <div class="row">
        <div class="col-sm-12 select-info">
            <ul id="myTab" class="nav nav-tabs">
                <li class="active"><a href="#tabHeader" data-toggle="tab">主表</a></li>
                <li><a href="#tabDetail" data-toggle="tab">明细</a></li>
            </ul>
            <div id="myTabContent" class="tab-content">
                <div class="tab-pane fade in active" id="tabHeader">
                    <div class="col-sm-12 select-info">
                    <form class="form-horizontal m" id="form-receiptHeader-add">
                        <div class="select-list">
                            <ul>
                                <li>
                                    货主: <select id="companyCode" name="companyCode"
                                            th:with="companyList=${@companyService.selectCompanyByCurrentUserId()}">
                                        <option th:each="company : ${companyList}" th:text="${company['name']}"
                                                th:value="${company['code']}"
                                                th:attr=" code = ${company['code']}"></option>
                                    </select>
                                </li>
                                <li>
                                    u8仓库:  <select name="uWarehouseCode" id="uWarehouseCode"
                                            th:with="warehouse=${@warehouseWu.selectList()}">
                                        <option value="">所有</option>
                                        <option th:each="e : ${warehouse}" th:text="${e['uWarehouseName']}"
                                                th:value="${e['uWarehouseCode']}"
                                                th:attr=" code = ${e['uWarehouseCode']}"></option>
                                    </select>
                                </li>
                                <li>
                                    产成品入库单单号:   <input id="referCode" name="referCode"  type="text" style="width: 260px">
                                </li>
                                <li>
                                    <button type="submit" class="btn btn-primary btn-rounded btn-sm">拉取</button>
                                    <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
                                    <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset('form-receiptHeader-add')"><i class="fa fa-refresh"></i>&nbsp;重置</a>

                                </li>
                            </ul>
                        </div>
                    </form>
                    </div>
                    <div class="btn-group hidden-xs" id="toolbar1" role="group">
                        <a class="btn btn-outline btn-primary btn-rounded" onclick="batchReceiptContainer()">
                            <i class="fa fa-save"></i> 批量组盘
                        </a>
                    </div>
                    <table id="bootstrap-table" data-mobile-responsive="true"
                           class="table table-bordered table-hover"></table>
                </div>
                <div class="tab-pane fade" id="tabDetail">
                    <div class="btn-group hidden-xs" id="toolbar2" role="group" style="position:relative;">
                        <a class="btn btn-outline btn-success btn-rounded" onclick="receiptDetailPrint()">
                            <i class="fa fa-print"></i> 标签打印
                        </a>
                    </div>
                    <table id="bootstrap-table1" data-mobile-responsive="true" class="table table-bordered table-hover text-nowrap"></table>
                </div>
            </div>
        </div>
    </div>
</div>
<div th:include="include::footer"></div>
<script th:inline="javascript">
    var detailPrefix = ctx + "receipt/receiptDetail";
    var prefix = ctx + "receipt/finishedProductReceiving";
    var receiptTypes = [[${@receiptTypeService.getType()}]];
    var uWarehouseNames = [[${@warehouseWu.getName()}]];
    var company =[[${@companyService.getCode()}]];
    var receiptHeaderStatus = [[${@dict.getType('receiptHeaderStatus')}]];
    var editFlag = [[${@permission.hasPermi('receipt:receiptHeader:edit')}]];
    var receiptId = '';
    var receiptCode = '';
    var resubmit = new Date().getTime();
    $("#form-receiptHeader-add").validate({
        submitHandler: function (form) {
            $.ajax({
                cache: true,
                type: "POST",
                url: prefix + "/getReceiptSI",
                data: {
                    "referCode": $("input[name='referCode']").val(),
                    "companyCode": $("#companyCode option:selected").attr("code"),
                    "uWarehouseCode": $("#uWarehouseCode option:selected").val()
                },
                async: false,
                error: function (request) {
                    $.modal.alertError("请求失败!");
                },
                success: function (value) {
                    saveSuc(value);
                    let data = value.data;
                    let receiptHeader = data['receiptHeader'];
                    let receiptDetails = data['receiptDetails'];
                    $("#bootstrap-table").bootstrapTable('prepend', receiptHeader);
                    // $("#bootstrap-table1").bootstrapTable('append', receiptDetails);
                }
            });
        }
    });

    function saveSuc(result) {
        if (result.code == web_status.FAIL) {
            $.modal.alertError(result.msg);
        }
    }

    function unique(result) {
        return result.filter(function (item, index, arr) {
            //当前元素,在原始数组中的第一个索引==当前索引值,否则返回当前元素
            return result.indexOf(item, 0) === index;
        });
    }

    function batchReceiptContainer() {
        var rows = $("#bootstrap-table").bootstrapTable('getSelections');
        if (rows.length == 0) {
            $.modal.alertWarning("请至少选择一条记录");
            return;
        }
        debugger;
        var referCodes = "";
        var result = rows.map(function (row) {
            return row.referCode;
        })
        result = unique(result);
        debugger;
        for (var i = 0; i < result.length; i++) {
            referCodes = referCodes + result[i] + ","
        }

        let storage = window.localStorage;
        storage.referCodes = referCodes;
        createMenuItem(ctx + "receipt/finishedProductReceiving/batchReceiving", "产成品入库单批量组盘");
        debugger;
        parent.parent.$('.tabReload').click();
    }

    /* 打印*/
    function receiptDetailPrint() {
        var rows = $("#bootstrap-table1").bootstrapTable('getSelections');
        if (rows.length == 0) {
            $.modal.alertWarning("请至少选择一条记录");
            return;
        }
        var ids = "";
        for (var i = 0; i < rows.length; i++) {
            ids = ids + rows[i].id + ","
        }

        var url = detailPrefix + "/report/" + ids;
        $.modal.open("历史入库铭牌打印", url);
    }



    $(function() {
        var options = {
            url: prefix + "/list",
            updateUrl: ctx + "receipt/receiptHeader/edit/{id}",
            modalName: "产成品入库单",
            sortName: "created",
            sortOrder: "desc",
            search: false,
            showColumns:true, //列选择
            pagination: true,   // 是否显示分页(*)
            pageNumber: 1,                                      // 初始化加载第一页,默认第一页
            pageSize: 10,                                       // 每页的记录行数(*)
            pageList: [10, 25, 50, 100],
            toolbar: "toolbar1",
            onDblClickRow: function (row, value, index) {
                detail(row.id, row.code);
            },
            columns: [
                {
                    checkbox: true
                },
                {
                    title: '操作',
                    align: 'center',
                    formatter: function(value, row, index) {
                        var actions = [];
                        actions.push('<a class="btn btn-info btn-xs ' + editFlag + '" href="#" onclick="$.operate.edit(\'' + row.id + '\')" ><i class="fa fa-edit"></i>编辑</a> ');
                        return actions.join('');
                    }
                },
                {
                    field : 'id',
                    title : 'id',
                    visible: false
                },
                {
                    field : 'code',
                    title : '入库单编码',
                    visible: false
                },
                {
                    field : 'receiptType',
                    title : '入库类型',
                    align: 'center',
                    formatter: function(value, row, index) {
                        var actions = [];
                        $.each(receiptTypes, function(index, dict) {
                            if (dict.code == value) {
                                actions.push("<span class='badge badge-info'>" + dict.name + "</span>");
                                return false;
                            }
                        });
                        return actions.join('');
                    }
                },
                {
                    field: 'companyCode',
                    title: '货主',
                    align: 'center',
                    formatter: function(value, row, index) {
                        var actions = [];
                        $.each(company, function(index, dict) {
                            if (dict.code == value) {
                                actions.push("<span class='badge badge-info'>" + dict.name + "</span>");
                                return false;
                            }
                        });
                        return actions.join('');
                    }
                },
                // {
                //     field : 'uWarehouseCode',
                //     title : 'U8仓库',
                //     formatter: function(value, row, index) {
                //         var actions = [];
                //         $.each(uWarehouseNames, function (index, dict) {
                //             if (dict.uWarehouseCode == value) {
                //                 actions.push("<span class='badge badge-info'>" + dict.uWarehouseName + "</span>");
                //                 return false;
                //             }
                //         });
                //         return actions.join('');
                //     }
                // },
                {
                    field: 'uWarehouseName',
                    title: 'U8仓库',
                    sortable:true,
                    formatter:function(value, row, index) {
                        var actions=[];
                        if(value){
                            actions.push("<span class='badge badge-info'>" + value + "</span>");
                        }
                        return actions.join('');
                    }
                },
                {
                    field: 'referCode',
                    title: 'U8单号',
                    visible: true
                },
                {
                    field : 'firstStatus',
                    title : '头状态',
                    align: 'center',
                    formatter: function(value, row, index) {
                        return $.table.selectDictLabel(receiptHeaderStatus, value);
                    }
                },
                {
                    field : 'lastStatus',
                    title : '尾状态',
                    align: 'center',
                    formatter: function(value, row, index) {
                        return $.table.selectDictLabel(receiptHeaderStatus, value);
                    }
                },
                {
                    field: "cDeptName",
                    title: "部门名称",
                    visible: true
                },
                {
                    field: "totalQty",
                    title: "总数",
                    visible: true
                },
                {
                    field : 'created',
                    title : '创建时间',
                    sortable:true
                },
                {
                    field : 'createdBy',
                    title : '创建人',
                    sortable:true
                }
            ]
        };
        $.table.init(options);
    });

    $("#bootstrap-table1").bootstrapTable({
        modalName: "入库明细",
        sortName: "moCode",
        sortOrder: "desc",
        search: false,
        pageSize: 10,
        pagination: true,                        // 可供选择的每页的行数(*)
        toolbar: "#toolbar2",
        columns: [
            {
                checkbox: true
            },
            {
                field: "id",
                title: "id",
                visible: false
            },
            {
                field: "receiptId",
                title: "receiptId",
                visible: false
            },
            {
                field: "moCode",
                title: "工作令号",
                visible: true
            },
            {
                field: 'referCode',
                title: 'U8单号',
                visible: true
            },
            {
                field: 'companyCode',
                title: '货主',
                align: 'center',
                formatter: function(value, row, index) {
                    var actions = [];
                    $.each(company, function(index, dict) {
                        if (dict.code == value) {
                            actions.push("<span class='badge badge-info'>" + dict.name + "</span>");
                            return false;
                        }
                    });
                    return actions.join('');
                }
            },
            {
                field : 'uWarehouseCode',
                title : 'U8仓库',
                formatter: function(value, row, index) {
                    var actions = [];
                    $.each(uWarehouseNames, function (index, dict) {
                        if (dict.uWarehouseCode == value) {
                            actions.push("<span class='badge badge-info'>" + dict.uWarehouseName + "</span>");
                            return false;
                        }
                    });
                    return actions.join('');
                }
            },
            {
                field: "materialCode",
                title: "物料编码",
                visible: true
            },
            {
                field: 'materialName',
                title: '物料名称',
                visible: true
            },
            {
                field: 'materialSpec',
                title: '物料规格',
                visible: true
            },
            {
                field: 'referLineNum',
                title: '生产订单行id',
                sortable: true
            },
            {
                field: 'qty',
                title: '数量',
                sortable: true
            },
            {
                field: 'taskQty',
                title: '任务数量',
                sortable: true
            },
            {
                field: 'inventoryQty',
                title: '库存数量',
                sortable: true
            }
        ],
        onClickCell: function(field, value, row, $element) {
            if (field==="qty") {
                debugger;
                $element.attr('contenteditable', true);
                $element.blur(function () {
                    let tdValue = $element.text();
                    if ((new Date().getTime()-resubmit)>1500) {
                        resubmit = new Date().getTime()
                        if (isNaN(tdValue)) {
                            $.modal.alertWarning("请输入有效数字!");
                            return;
                        }
                        if (row.qty < tdValue) {
                            $.modal.alertWarning("修改数量不允许大于单据数量!");
                            return;
                        }
                        submitDelivery(row, tdValue);
                    }
                })
            }
        }

    });

    function submitDelivery(row,value){
        if(row.qty == value){
            return;
        }
        formData = {}
        formData["id"] = row["id"]
        formData["receiptId"] = row["receiptId"]
        formData["referCode"] = row["referCode"]
        formData["materialCode"] = row["materialCode"]
        formData["qty"] = value
        confirmAmount(formData)
    }


    function confirmAmount(form) {
        $.ajax({
            cache : true,
            type : "POST",
            url :ctx + 'receipt/receiptDetail/edit',
            data : form,
            async : false,
            error : function(request) {
                $.modal.alertError("请求失败!");
            },
            success : function(data) {
                // $.operate.saveSuccess(data);
                ajaxSuccess(data);
            }
        });
    }

    function ajaxSuccess(result) {
        if (result.code == web_status.SUCCESS) {
            $.modal.msgSuccess(result.msg);
            var index = parent.layer.getFrameIndex(window.name);
            parent.layer.close(index);
            window.parent.$.table.search();
        } else {
            $.modal.alertError(result.msg);
        }
        // $.modal.msgSuccess(result.msg);
        $.modal.closeLoading();
        detail(receiptId);
    }


    $(function () {
        //监听浏览器宽度的改变
        window.onresize = function () {
            resize();
        };
        resize();

        //货架input
        $("#code").bind('input propertychange keypress', function (e) {
            let theEvent = e || window.event;
            let code = theEvent.keyCode || theEvent.which || theEvent.charCode;
            if (code === 13) {
                e.preventDefault();
                //回车执行查询
                // getCode();
            }
        });
    });


    function resize() {
        $("#code").focus();
    }

    function detail(id, code) {
        receiptId = id;
        receiptCode=code;
        $("#myTab li").removeClass("active");
        $("#tabHeader").removeClass("in active");
        $("#myTab li:eq(1)").addClass("active");
        $("#tabDetail").addClass("in active");
        // $("#tabBase").addClass("in active");
        loadDetail();
    }

    function loadDetail() {
        $.ajax({
            url:ctx + 'receipt/receiptDetail/list',
            type:"post",
            data:{
                receiptId:receiptId,
            },
            success:function (value) {
                $("#bootstrap-table1").bootstrapTable('load',value.data);
            }
        });
    }

    //货架
    // function getCode() {
    // 	resize();
    // 	let code=$("#code").val();
    // 	if(code){
    // 		$.ajax({
    // 			cache: true,
    // 			type: "POST",
    // 			url: prefix + "/getReceiptSI",
    // 			data:{
    // 				code:code,
    // 			},
    // 			async: false,
    // 			error: function (request) {
    // 				$.modal.alertError("请求失败!");
    // 			},
    // 			success: function (data) {
    // 				$.operate.saveSuccess(data);
    // 			}
    // 		});
    // 	}
    // 	else{
    // 		layer.tips('请输入单号!','#code',{tips:[1,"rgb(28,132,198)"],time:1000,area:'auto',maxWidth: '1000'})
    // 	}
    // }
    function queryParams(params) {
        var curParams = {
            // 传递参数查询参数
            pageSize:       params.limit,
            pageNum:        params.offset / params.limit + 1,
            searchValue:    params.search,
            orderByColumn:  params.sort,
            isAsc:          params.order,
            status:         status,
            statusFirst:    statusFirst,
            statusLast:     statusLast
        };
        return curParams
    }
    $(function () {
        layui.use('laydate', function () {
            var laydate = layui.laydate;
            laydate.render({elem: '#appointmentTime', min: 0, theme: 'molv', type: 'datetime'});
        });

        $("select[name='companyCode']").change(function (e) {
            let companyCode = $("select[name='companyCode'] option:selected").attr('code');
            $.ajax({
                url: ctx + "receipt/receiptHeader/getwarehouse",
                type: 'post',
                data: {code: companyCode},
                success: function (response) {
                    if (response.code === 200) {
                        $("select[name='uWarehouseCode']").children().remove();
                        $("select[name='uWarehouseCode']").append(`<option value="">所有</option>`);
                        for (let item of response.data) {
                            let option = `<option value="${item.uWarehouseCode}">${item.uWarehouseName}</option>`;
                            $("select[name='uWarehouseCode']").append(option);
                        }
                    } else {
                        $.modal.msgError(response.msg)
                    }
                }
            })
        })
    })


</script>

</body>
</html>