<!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>
	#toolbar1{
		display: inline-block;
		/*position: absolute;*/
		margin: 10px auto;
		line-height: 34px;
	}
    #toolbar2{
        display: inline-block;
        /*position: absolute;*/
        margin: 10px auto;
        line-height: 34px;
    }
</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="#tabDetailNotArrive" 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 id="task-form">
							   <div class="select-list">
								<ul>
									<li>
										送货单号:<input type="text" name="code"/>
									</li>
									<li>
										供 应 商:<input type="text" name="supplierCode"/>
									</li>
									<li>
										<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('task-form')"><i class="fa fa-refresh"></i>&nbsp;重置</a>
									</li>
								</ul>
							</div>
						   </form>
					   </div>

				      <div class="btn-group hidden-xs" id="toolbar" role="group">
<!--						  <a class="btn btn-outline btn-primary btn-rounded to-receive" onclick="getSrm()"  shiro:hasPermission="srm:srmHeader:getReceipt">-->
<!--							  <i class="fa fa-paper-plane"></i> 扫描送货单-->
<!--						  </a>-->
						  <a id="getERP" class="btn btn-outline btn-primary btn-rounded to-receive" onclick="getReceipt()"  shiro:hasPermission="srm:srmHeader:list">
							  <i class="fa fa-paper-plane"></i> 获取ERP到货单
						  </a>
				      </div>
					  <input type="hidden" id="headerId" name="headerId" th:value="${headerId}"/>
					   <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="toolbar1" role="group">
						   <a class="btn btn-outline btn-danger btn-rounded" onclick="batRemove()"  shiro:hasPermission="srm:srmDetail:edit">
							   <i class="fa fa-trash-o"></i> 删除
						   </a>
					   </div>
					   <table id="bootstrap-table1" data-mobile-responsive="true" class="table table-bordered table-hover"></table>
				   </div>
                   <div class="tab-pane fade" id="tabDetailNotArrive">
                       <div class="btn-group hidden-xs" id="toolbar2" role="group">
<!--                           <input type="hidden" id="headerId" name="headerId" th:value="${headerId}"/>-->
                           <a  class="btn btn-outline btn-success btn-rounded" onclick="checkWarehouse()" shiro:hasPermission="srm:srmDetail:checkWarehouse">
                               <i class="fa fa-plus"></i> 选择仓库
                           </a>
<!--                           <a class="btn btn-outline btn-success btn-rounded" onclick="confirmQty()" shiro:hasPermission="srm:srmDetail:confirmQty">-->
<!--                               <i class="fa fa-plus"></i> 默认数量-->
<!--                           </a>-->
                           <a id="submit" class="btn btn-outline btn-success btn-rounded" onclick="confirm()" shiro:hasPermission="srm:srmDetail:confirm">
                               <i class="fa fa-plus"></i> 提交
                           </a>
                       </div>
                       <table id="bootstrap-table2" data-mobile-responsive="true" class="table table-bordered table-hover"></table>
                   </div>
			   </div>
			</div>
		</div>
    </div>
    <div th:include="include :: footer"></div>
    <script th:inline="javascript">
		var checkFlag = [[${@permission.hasPermi('srm:srmDetail:check')}]];
		var editFlag = [[${@permission.hasPermi('srm:srmDetail:edit')}]];
		var supplier =[[${@SupplierService.getCode()}]];
		var srmCheck = [[${@dict.getType('srmCheck')}]];
		var companyCode = [[${@dict.getType('company_code')}]];
		var uploadStatus = [[${@dict.getType('srmUpload')}]];
        var prefix = ctx + "srm/srmHeader";
		var prefixx = ctx + "srm/srmHeaderCheck";
        var prefix1 = ctx + "srm/srmDetail";
        var prefix2 = ctx + "srm/srmDetailNone";
		var detailRemoveUrl=prefix1+"/remove";
        var headerId = ''
        var warehouseWu = [[${@warehouseWu.getAllWarehouseWu()}]];
        var confirmQtyFlag = [[${@permission.hasPermi('srm:srmDetail:confirmQty')}]];
        var resubmit = new Date().getTime();

        $(function() {
            var options = {
                url: prefix + "/list",
                createUrl: prefix + "/add",
                updateUrl: prefix + "/edit/{id}",
                removeUrl: prefix + "/remove",
                modalName: "送货单",
                sortName: "created",
                sortOrder: "desc",
                search: false,
				pageSize:50,
                columns: [{
		            checkbox: true
		        },
					{
						field : 'id',
						title : 'id' ,
						visible:false
					},
					{
						title: '操作',
						align: 'center',
						formatter: function(value, row, index) {
							var actions = [];
                            if (row.enable > 1){
                                actions.push('<a class="btn btn-info btn-xs " href="#" onclick="detail(\'' + row.id + '\')"><i class="fa fa-list-ul"></i>明细</a> ');
                            }else{
                                actions.push('<a class="btn btn-info btn-xs " href="#" onclick="detail2(\'' + row.id + '\')"><i class="fa fa-list-ul"></i>明细</a> ');
                            }
							return actions.join('');
						}
					},
					{
						field : 'operator',
						title : '操作人',
						sortable: true
					},
                    {
                        title: '送货单类型',
                        field: 'enable',
                        formatter: function(value, row, index) {
                            var actions = [];
                            if (value >= 1) {
                                actions.push("<span class='badge badge-info'> 已到送货单</span>");
                            }else{
                                actions.push("<span class='badge badge-danger'>未到送货单</span>");
                            }
                            return actions.join('');
                        }
                    },
					{
						field : 'created',
						title : '生成时间',
						sortable: true
					},
					{
						field : 'code',
						title : '送货单号',
						sortable: true
					},
					{
						field : 'supplierCode',
						title : '供应商编码',
						sortable: true
					},

					{
						field : 'supplierCode',
						title : '供应商名称',
						align: 'center',
						formatter: function(value, row, index) {
							var actions = [];
							$.each(supplier, function(index, dict) {
								if (dict.code == value) {
									actions.push("<span class='badge badge-info'>" + dict.name + "</span>");
									return false;
								}
							});
							return actions.join('');
						}
					},
					{
						field : 'userDef2',
						title : '采购到货单',
						sortable: true,
						align: 'center',
						formatter:function (value,row,index) {
							return $.table.tooltip(value, 10);
						}
					},
					{
						field : 'userDef1',
						title : '返回信息',
						sortable: true,
						align: 'center',
						formatter:function (value,row,index) {
							return $.table.tooltip(value, 10);
						}
					},
					{
						field : 'uploadStatus',
						title : '获取ERP采购单',
						align: 'center',
						formatter: function(value, row, index) {
							return $.table.selectDictLabel(uploadStatus, value);
						}
					},
					{
						field : 'checkCode',
						title : '质检完成',
						align: 'center',
						formatter: function(value, row, index) {
							return $.table.selectDictLabel(srmCheck, value);
						}
					},
					{
						field : 'mark',
						title : '唯一标识',
						sortable: false,
						visible:false
					},
				{
					field : 'lastUpdatedBy',
					title : '更新用户',
					sortable: false,
                    visible:false
				},
		        ]
            };
            $.table.init(options);
        });

        $("#bootstrap-table1").bootstrapTable({
            sortable: true, //排序
            showRefresh: true, //刷新
            showToggle:true, //视图切换
            clickToSelect: false,
            showColumns:true, //列选择
            // detailView:true,
            showExport: true, //导出
            exportDataType: "all",  //导出类型basic', 'all', 'selected'.当前页、所有数据、选中数据
            modalName: "任务明细",
            iconSize: "outline",
            toolbar: "#toolbar1",
            contentType: "application/x-www-form-urlencoded",
            sortName: "id",
            sortOrder: "desc",
            columns: [{
                checkbox: true
            },
				{
					field : 'id',
					title : 'id' ,
					visible:false
				},
				{
					title: '操作',
					align: 'center',
					formatter: function(value, row, index) {
						var actions = [];
						if(row.checkCode < 2 && row.uploadStatus4 > 0) {
							actions.push('<a class="btn btn-primary btn-xs ' + checkFlag + '" href="#" onclick="checkDetail(\'' + row.id + '\')"><i class="fa fa-check"></i>质检</a>');
						}
						if(row.uploadStatus4 < 1 ) {
							actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="#" onclick="edit(\'' + row.id + '\')"><i class="fa fa-check"></i>编辑</a>');
						}
						return actions.join('');
					}
				},
				{
					field : 'companyCode',
					title : '账套',
					sortable: true,
					formatter: function(value, row, index) {
						return $.table.selectDictLabel(companyCode, value);
					}
				},
				{
					field : 'uWarehouseName',
					title : '仓库',
					sortable: true
				},
				{
					field : 'lineCode',
					title : '条码',
					sortable: true
				},
				{
					field : 'productionBatch',
					title : '生产批号',
					sortable: true
				},
				{
					field : 'batchNumberContent',
					title : '批号内容',
					sortable: true
				},
                {
                    field : 'materialCode',
                    title : '存货编码',
                    sortable: true
                },
                {
                    field : 'materialName',
                    title : '物料名称',
                    sortable:true
                },
				{
					field : 'specification',
					title : '物料规格',
					sortable:true
				},
                {
                    field : 'qty',
                    title : '数量'
                },
				{
					field : 'confirmQty',
					title : '实到数量'
				},
                {
                    field : 'lastUpdate',
                    title : '最后修改时间' ,
                    visible:false,
                    sortable:true
                },
                {
                    field : 'lastUpdatedBy',
                    title : '更新用户',
					visible:false
                },
				{
					field : 'uploadStatus1',
					title : 'SRM到货上传',
					align: 'center',
					formatter: function(value, row, index) {
						return $.table.selectDictLabel(uploadStatus, value);
					}
				},
				{
					field : 'uploadStatus4',
					title : 'ERP采购单上传',
					align: 'center',
					formatter: function(value, row, index) {
						return $.table.selectDictLabel(uploadStatus, value);
					}
				},
				{
					field : 'checkCode',
					title : '质检完成',
					align: 'center',
					formatter: function(value, row, index) {
						return $.table.selectDictLabel(srmCheck, value);
					}
				},
                ]
        });

        $("#bootstrap-table2").bootstrapTable({
            sortable: true, //排序
            showRefresh: true, //刷新
            showToggle:true, //视图切换
            clickToSelect: false,
            showColumns:true, //列选择
            // detailView:true,
            showExport: true, //导出
            exportDataType: "all",  //导出类型basic', 'all', 'selected'.当前页、所有数据、选中数据
            modalName: "任务明细",
            iconSize: "outline",
            toolbar: "#toolbar2",
            contentType: "application/x-www-form-urlencoded",
            sortName: "id",
            sortOrder: "desc",
            columns: [{
                checkbox: true
            },
                {
                    title: '操作',
                    align: 'center',
                    visible:false,
                    formatter: function(value, row, index) {
                        var actions = [];
                        if(row.enable == 0) {
                            actions.push('<a class="btn btn-primary btn-xs ' + confirmQtyFlag + '" href="#" onclick="confirmConfirQty(\'' + row.id + '\')"><i class="fa fa-check"></i>确认数量</a>');
                        }
                        return actions.join('');
                    }
                },
                {
                    field : 'id',
                    title : 'id',
                    sortable: true
                },
                {
                    field : 'headerId',
                    title : 'headerId',
                    visible:false
                },
                {
                    field : 'uWarehouseName',
                    title : '仓库',
                    sortable: true,
                    formatter: function(value, row, index) {
                        var actions = [];
                        if(row.enable == 0) {
                            actions.push('<select id="select_'+row["id"]+'" onchange="selectListener(this,'+row["id"]+')">');
                            if (warehouseWu[row["companyCode"]] !== undefined && warehouseWu[row["companyCode"]].length>0) {
                                warehouseWu[row["companyCode"]].forEach(item => {
                                    if (row["uWarehouseCode"] === item["uWarehouseCode"]) {
                                        actions.push('<option value="' + item["uWarehouseCode"] + '" selected>' + item["uWarehouseName"] + '</option>');
                                    } else {
                                        actions.push('<option value="' + item["uWarehouseCode"] + '">' + item["uWarehouseName"] + '</option>');
                                    }
                                })
                                actions.push('</select>');
                            }
                        }
                        return actions.join('');
                    }
                },
				{
					field : 'companyCode',
					title : '账套',
					sortable: true,
					formatter: function(value, row, index) {
						return $.table.selectDictLabel(companyCode, value);
					}
				},
				{
					field : 'materialCode',
					title : '存货编码',
					sortable: true
				},
				{
					field : 'materialName',
					title : '物料名称',
					sortable:true
				},
				{
					field : 'specification',
					title : '物料规格',
					sortable:true
				},
				{
					field : 'qty',
					title : '数量'
				},
				{
					field : 'unqualifiedQty',
					title : '不合格数量'
				},
				{
					field : 'productionBatch',
					title : '生产批号',
					sortable: true
				},
				{
					field : 'batchNumberContent',
					title : '批号内容',
					sortable: true
				},
                {
                    field : 'enable',
                    title : '状态',
                    visible:false
                },
				{
					field : 'lineCode',
					title : '条码',
					sortable: true
				},
                // {
                //     field : 'lastUpdate',
                //     title : '最后修改时间' ,
                //     visible:false,
                //     sortable:true
                // },
                // {
                //     field : 'lastUpdatedBy',
                //     title : '更新用户'
                // }
            ],
            onClickCell: function(field, value, row, $element) {
                if (field==="unqualifiedQty" && row.materialCode.charAt(0) == '1') {
                    $element.attr('contenteditable', true);
                    $element.blur(function () {
                        let index = $element.parent().data('index');
                        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 confirmQty() {
            var rows=$("#bootstrap-table2").bootstrapTable('getSelections');
            if (rows.length == 0) {
                $.modal.alertWarning("请至少选择一条记录");
                return;
            }
            $.modal.confirm("确认执行选中的" + rows.length + "条数据吗?", function() {
                var url = prefix2 + '/confirmQty';
                var ids = "";
                for(var i=0; i<rows.length; i++) {
                    ids = ids + rows[i].id + ","
                }
                var data = { "ids": ids.substring(0, ids.length-1) };
                localSubmit(url, "post", "json", data);
            })
        }

		function selectListener(event,id){
			console.log("选择了:",event.value)
			selectWarehouse(event.value,id)
			$('#select_'+ id).val = event.value;
		}

        /* 选择仓库*/
        function checkWarehouse() {
            var rows=$("#bootstrap-table2").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 = prefix2 + "/checkWarehouse/" + ids;
            $.modal.open("选择仓库" , url);
        }

        /*提交*/
        function confirm() {
            var rows=$("#bootstrap-table2").bootstrapTable('getSelections');
            if (rows.length == 0) {
                $.modal.alertWarning("请至少选择一条记录");
                return;
            }
            $.modal.confirm("确认执行选中的" + rows.length + "条数据吗?", function() {
                var url = prefix2 + '/confirm';
                var ids = "";
                for(var i=0; i<rows.length; i++) {
                    ids = ids + rows[i].id + ","
                }
                var data = { "ids": ids.substring(0, ids.length-1)};
                localSubmit(url, "post", "json", data);
            })
        }

        function confirmConfirQty(id) {
            var url = prefix2 + "/confirmConfirQty?id="+id;
            $.modal.openFull("确认数量",url);
        }

        function submitDelivery(row,value){
			debugger;
			if(row.unqualifiedQty == value){
				return;
			}
            formData = {}
            formData["headId"] = row["headId"]
            formData["id"] = row["id"]
            formData["materialCode"] = row["materialCode"]
            formData["materialName"] = row["materialName"]
            formData["qty"] = row["qty"]
            formData["unqualifiedQty"] = value
            confirmAmount(formData)
        }


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

		function selectWarehouse(value,id) {
			$.ajax({
				cache: true,
				type: "POST",
				url: prefix2 + "/checkWarehouse",
				data: {
					"ids":id,
					"uWarehouseCode":value,
				},
				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();
				$(parent.$("#detail2")).click();
			} else {
				$.modal.alertError(result.msg);
			}
			// $.modal.msgSuccess(result.msg);
			$.modal.closeLoading();
			window.parent.detail2(headerId)
		}


        function createtable(url,headerId) {
            $("#myTab li").removeClass("active");
            $(".tab-pane").removeClass("in active");
            $("#myTab li:eq(1)").addClass("active");
            $("#tabDetailNotArrive").addClass("in active");
            $.ajax({
                url:url,
                type: 'post',
                data:{
                    headerId:headerId
                },
                success : function (value) {
                    $("#bootstrap-table2").bootstrapTable('load', value.data);
                }
            })
        }


		/*入库单列表-详细*/
		function detail(id,code,enable) {
			debugger
            if (enable == 0 || enable == 1){
                detail2(id);
                return
            }
			headerId = id;
			$("#myTab li").removeClass("active");
			$("#tabHeader").removeClass("in active");
			$("#myTab li:eq(2)").addClass("active");
			$("#tabDetail").addClass("in active");

			loadDetail();
		}
        /*入库单列表-详细*/
        function detail2(headerId) {
            var url = ctx + 'srm/srmDetailNone/list';
            createtable(url,headerId);
        }

        /*入库单列表-详细*/
        function loadDetail() {
			$.ajax({
				url:ctx + 'srm/srmDetail/list',
				type: 'post',
				data:{
					headerId:headerId
				},
				success : function (value) {
					$("#bootstrap-table1").bootstrapTable('load',value.data);
				}
			});
            // var url = ctx + 'srm/srmDetail/list';
			// headerId = headerId; // 主单Id 再试下
            // createtable(url,headerId);
        }




		/* 检验 */
		function checkDetail(id) {
			let url=prefix1 + "/check/"+ id;
			$.modal.open("检查" , url);
		}

		/* 检验 */
		function edit(id) {
			let url=prefix1 + "/edit/"+ id;
			$.modal.open("检查" , url);
		}

		// setTimeout(function() {
		// 	$.table.refresh();
		// },1000)
		function batRemove() {
			var rows=$("#bootstrap-table1").bootstrapTable('getSelections');
			// var rows = $.common.isEmpty($.table._option.id) ? $.table.selectFirstColumns() : $.table.selectColumns($.table._option.id);
			if (rows.length == 0) {
				$.modal.alertWarning("请至少选择一条记录");
				return;
			}
			$.modal.confirm("确认要删除选中的" + rows.length + "条数据吗?", function() {
				var url = detailRemoveUrl;
				var data = { "ids": rows.map(function(v){return v.id;}).join(',') };
				localSubmit(url, "post", "json", data);
			});
		}
		function localSubmit (url, type, dataType, data) {
			$.modal.loading("正在处理中,请稍后...");
			$('#getERP').attr("disabled","disabled");
			var config = {
				url: url, type: type, dataType: dataType, data: data, success: function (result) {
					$('#getERP').removeAttr('disabled');
					if (result.code == web_status.SUCCESS) {
						$.modal.msgSuccess(result.msg);
						loadDetail()
					} else {
						$.modal.alertError(result.msg)
					}
					$.modal.closeLoading()
				}
			};
			$.ajax(config)
		}


		function getSrm() {
			$.modal.open("送货单扫描",prefix+"/getSrm")
		}

		/*获取ERP到货单*/
		function getReceipt() {
			var rows=$("#bootstrap-table").bootstrapTable('getSelections');
			if (rows.length == 0) {
				$.modal.alertWarning("请至少选择一条记录");
				return;
			}
			$.modal.confirm("确认执行选中的" + rows.length + "条数据吗?", function() {
				var url = prefixx + '/getReceipt';
				var ids = "";
				for(var i=0; i<rows.length; i++) {
					ids = ids + rows[i].id + ","
				}
				var data = { "ids": ids.substring(0, ids.length-1) };
				$.operate.submit(url, "post", "json", data);
			})
		}
    </script>
</body>
</html>