|
@ -3,34 +3,34 @@ |
|
|
<head> |
|
|
<head> |
|
|
<th:block th:include="include :: header('采购经理审核')" /> |
|
|
<th:block th:include="include :: header('采购经理审核')" /> |
|
|
<th:block th:include="include :: select2-css" /> |
|
|
<th:block th:include="include :: select2-css" /> |
|
|
|
|
|
<style> |
|
|
|
|
|
.fixed-table-container { |
|
|
|
|
|
border: 0px solid #ddd; |
|
|
|
|
|
min-height: 110px; |
|
|
|
|
|
} |
|
|
|
|
|
</style> |
|
|
</head> |
|
|
</head> |
|
|
<body class="white-bg"> |
|
|
<body class="white-bg"> |
|
|
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> |
|
|
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> |
|
|
<form class="form-horizontal m" id="form-cgjl-edit" th:object="${formData}"> |
|
|
<form class="form-horizontal m" id="form-purchaseOrder-cgjl" th:object="${formData}"> |
|
|
<input name="purchaseOrderId" th:field="*{purchaseOrderId}" type="hidden"> |
|
|
<input name="purchaseOrderId" th:field="*{purchaseOrderId}" type="hidden"> |
|
|
|
|
|
<input name="purchaseOrderCode" th:field="*{purchaseOrderCode}" type="hidden"> |
|
|
<input name="taskId" th:field="*{taskId}" type="hidden"> |
|
|
<input name="taskId" th:field="*{taskId}" type="hidden"> |
|
|
<input name="taskName" th:field="*{taskName}" type="hidden"> |
|
|
<input name="taskName" th:field="*{taskName}" type="hidden"> |
|
|
<input name="instanceId" th:field="*{instanceId}" type="hidden"> |
|
|
<input name="instanceId" th:field="*{instanceId}" type="hidden"> |
|
|
<input name="instanceType" th:field="*{instanceType}" type="hidden"> |
|
|
<input name="instanceType" th:field="*{instanceType}" type="hidden"> |
|
|
<input type="hidden" name="p_COM_comment" /> |
|
|
<input type="hidden" name="p_COM_comment" /> |
|
|
<div class="form-group" hidden="hidden"> |
|
|
|
|
|
<label class="col-sm-6 control-label">采购单号:</label> |
|
|
|
|
|
<div class="col-sm-6"> |
|
|
|
|
|
<input name="purchaseOrderCode" th:field="*{purchaseOrderCode}" class="form-control" type="text" readonly> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="form-group" hidden="hidden"> |
|
|
<div class="form-group" hidden="hidden"> |
|
|
<label class="col-sm-6 control-label">申请人:</label> |
|
|
<label class="col-sm-6 control-label">申请人:</label> |
|
|
<div class="col-sm-6"> |
|
|
<div class="col-sm-6"> |
|
|
<input name="applyUser" th:field="*{applyUser}" class="form-control" type="text" readonly> |
|
|
<input name="applyUser" th:field="*{applyUser}" class="form-control" type="text" disabled> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="form-group" hidden="hidden"> |
|
|
<div class="form-group" hidden="hidden"> |
|
|
<label class="col-sm-6 control-label">申请时间:</label> |
|
|
<label class="col-sm-6 control-label">申请时间:</label> |
|
|
<div class="col-sm-6"> |
|
|
<div class="col-sm-6"> |
|
|
<div class="input-group date"> |
|
|
<div class="input-group date"> |
|
|
<input name="applyTime" th:value="${#dates.format(formData.applyTime, 'yyyy-MM-dd HH:mm')}" class="form-control" type="text" readonly> |
|
|
<input name="applyTime" th:value="${#dates.format(formData.applyTime, 'yyyy-MM-dd HH:mm')}" class="form-control" type="text" disabled> |
|
|
<span class="input-group-addon" disabled><i class="fa fa-calendar"></i></span> |
|
|
<span class="input-group-addon" disabled><i class="fa fa-calendar"></i></span> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
@ -38,20 +38,21 @@ |
|
|
<div class="form-group" hidden="hidden"> |
|
|
<div class="form-group" hidden="hidden"> |
|
|
<label class="col-sm-6 control-label">标题:</label> |
|
|
<label class="col-sm-6 control-label">标题:</label> |
|
|
<div class="col-sm-6"> |
|
|
<div class="col-sm-6"> |
|
|
<input name="title" th:field="*{applyTitle}" class="form-control" type="text" readonly> |
|
|
<input name="title" th:field="*{applyTitle}" class="form-control" type="text" disabled> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="col-xs-12"> |
|
|
<div class="col-xs-12"> |
|
|
<label class="col-sm-4 control-label">已选择采购计划:</label> |
|
|
<label class="col-sm-4 control-label">已选择采购计划:</label> |
|
|
<div class="col-sm-7"> |
|
|
<div class="col-sm-7"> |
|
|
<input id="purchasePlanCodes" name="purchasePlanCode" class="form-control" type="text"> |
|
|
<input id="purchasePlanCodes" name="purchasePlanCode" class="form-control" type="text" disabled/> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="container"> |
|
|
<div class="container"> |
|
|
<ul class="nav nav-tabs" role="tablist"> |
|
|
<ul class="nav nav-tabs" role="tablist"> |
|
|
<li role="presentation" class="active"><a href="#supplierModel" aria-controls="supplierModel" role="tab" data-toggle="tab">按供应商展示</a></li> |
|
|
<li role="presentation" ><a href="#supplierModel" aria-controls="supplierModel" role="tab" data-toggle="tab">按供应商展示</a></li> |
|
|
<li role="presentation"><a href="#purchasePlanModel" aria-controls="purchasePlanModel" role="tab" data-toggle="tab">按采购计划展示</a></li> |
|
|
<li role="presentation" class="active"><a href="#purchasePlanModel" aria-controls="purchasePlanModel" role="tab" data-toggle="tab">按采购计划展示</a></li> |
|
|
</ul> |
|
|
</ul> |
|
|
|
|
|
|
|
|
<div class="tab-content"> |
|
|
<div class="tab-content"> |
|
|
<div role="tabpanel" class="tab-pane " id="supplierModel"> |
|
|
<div role="tabpanel" class="tab-pane " id="supplierModel"> |
|
|
<div class="container" id="supplierMaterial"> |
|
|
<div class="container" id="supplierMaterial"> |
|
@ -65,79 +66,84 @@ |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="form-group"> |
|
|
|
|
|
<label class="col-sm-3 control-label is-required" for="cgjlVerifyApproved">审批意见:</label> |
|
|
|
|
|
<div class="col-sm-6"> |
|
|
|
|
|
<select name="p_B_cgjlVerifyApproved" id="cgjlVerifyApproved" class="form-control" required> |
|
|
|
|
|
<option value=""></option> |
|
|
|
|
|
<option value="true">同意</option> |
|
|
|
|
|
<option value="false">拒绝</option> |
|
|
|
|
|
</select> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="form-group"> |
|
|
|
|
|
<label class="col-sm-6 control-label">批注:</label> |
|
|
|
|
|
<div class="col-sm-6"> |
|
|
|
|
|
<textarea name="comment" class="form-control"></textarea> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
</form> |
|
|
|
|
|
<div class="container"> |
|
|
<div class="container"> |
|
|
<div class="row"><h4 class="card-header">公司地址:</h4></div> |
|
|
<div class="row"><h4 class="card-header">公司地址:</h4></div> |
|
|
<div class="row"> |
|
|
<div class="col-xs-6"> |
|
|
<label for="stockNo" class="col-sm-2 col-form-label">仓库ID:</label> |
|
|
<label for="stockNo" class="col-sm-6 col-form-label">仓库ID:</label> |
|
|
<div class="col-sm-4"> |
|
|
<div class="col-sm-5"> |
|
|
<select class="form-control" name="stockNo" id="stockNo" ></select> |
|
|
<select class="form-control" name="stockNo" id="stockNo" disabled ></select> |
|
|
</div> |
|
|
</div> |
|
|
<label for="stockName" class="col-sm-2 col-form-label">仓库名称:</label> |
|
|
|
|
|
<div class="col-sm-4"> |
|
|
|
|
|
<input type="text" class="form-control" name="stockName" id="stockName"> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="col-xs-6"> |
|
|
|
|
|
<label for="stockName" class="col-sm-6 col-form-label">仓库名称:</label> |
|
|
|
|
|
<div class="col-sm-5"> |
|
|
|
|
|
<input type="text" class="form-control" name="stockName" id="stockName" disabled/> |
|
|
</div> |
|
|
</div> |
|
|
<div class="row"> |
|
|
|
|
|
<label for="stockContact" class="col-sm-2 col-form-label">收货人:</label> |
|
|
|
|
|
<div class="col-sm-4"> |
|
|
|
|
|
<input type="text" name="stockContact" class="form-control" id="stockContact" > |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
<label for="stockPhone" class="col-sm-2 col-form-label">收货电话:</label> |
|
|
<div class="col-xs-6"> |
|
|
<div class="col-sm-4"> |
|
|
<label for="stockContact" class="col-sm-6 col-form-label">收货人:</label> |
|
|
<input type="text" name="stockPhone" class="form-control" id="stockPhone" placeholder="请输入收货电话"> |
|
|
<div class="col-sm-5"> |
|
|
|
|
|
<input type="text" name="stockContact" class="form-control" id="stockContact" disabled /> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="form-group"> |
|
|
<div class="col-xs-6"> |
|
|
<label for="stockAddress" class="col-sm-2 col-form-label">详细地址:</label> |
|
|
<label for="stockPhone" class="col-sm-6 col-form-label">收货电话:</label> |
|
|
<div class="col-sm-4"> |
|
|
<div class="col-sm-5"> |
|
|
<textarea class="form-control" name="stockAddress" id="stockAddress"></textarea> |
|
|
<input type="text" name="stockPhone" class="form-control" id="stockPhone" placeholder="请输入收货电话" disabled /> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="col-xs-6"> |
|
|
|
|
|
<label for="stockAddress" class="col-sm-6 col-form-label">详细地址:</label> |
|
|
|
|
|
<div class="col-sm-5"> |
|
|
|
|
|
<textarea class="form-control" name="stockAddress" id="stockAddress" disabled></textarea> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="container"> |
|
|
<div class="container"> |
|
|
<div class="row"><h4 class="card-header">订单合计:</h4></div> |
|
|
<div class="row"><h4 class="card-header">订单合计:</h4></div> |
|
|
<div class="form-group"> |
|
|
<div class="col-xs-6"> |
|
|
<label for="purchaseMaterialSum" class="col-sm-2 col-form-label">物料合计:</label> |
|
|
<label for="purchaseMaterialSum" class="col-sm-6 col-form-label">物料合计:</label> |
|
|
<div class="col-sm-4"> |
|
|
<div class="col-sm-5"> |
|
|
<input type="text" class="form-control" value="0" id="purchaseMaterialSum"> |
|
|
<input type="text" class="form-control" id="purchaseMaterialSum" disabled /> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="form-group"> |
|
|
<div class="col-xs-6"> |
|
|
<label for="purchaseSum" class="col-sm-2 col-form-label">采购合计:</label> |
|
|
<label for="purchaseSum" class="col-sm-6 col-form-label">采购合计:</label> |
|
|
<div class="col-sm-4"> |
|
|
<div class="col-sm-5"> |
|
|
<input type="text" class="form-control" value="0" id="purchaseSum"> |
|
|
<input type="text" class="form-control" id="purchaseSum" disabled /> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="form-group"> |
|
|
<div class="col-xs-6"> |
|
|
<label for="purchaseNoRmbSum" class="col-sm-2 col-form-label">不含税采购总价:</label> |
|
|
<label for="purchaseNoRmbSum" class="col-sm-5 col-form-label">不含税采购总价:</label> |
|
|
<div class="col-sm-4"> |
|
|
<div class="col-sm-6"> |
|
|
<input type="text" class="form-control" value="0" id="purchaseNoRmbSum"> |
|
|
<input type="text" class="form-control" id="purchaseNoRmbSum" disabled /> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
<div class="col-xs-6"> |
|
|
|
|
|
<label for="purchaseRmbSum" class="col-sm-5 col-form-label">含税采购总价:</label> |
|
|
|
|
|
<div class="col-sm-6"> |
|
|
|
|
|
<input type="text" class="form-control" id="purchaseRmbSum" disabled /> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="form-group"> |
|
|
<div class="form-group"> |
|
|
<label for="purchaseRmbSum" class="col-sm-2 col-form-label">含税采购总价:</label> |
|
|
<label class="col-sm-3 control-label is-required" for="cgjlVerifyApproved">审批意见:</label> |
|
|
<div class="col-sm-4"> |
|
|
<div class="col-sm-6"> |
|
|
<input type="text" class="form-control" value="0" id="purchaseRmbSum"> |
|
|
<select name="p_B_cgjlVerifyApproved" id="cgjlVerifyApproved" class="form-control" required> |
|
|
|
|
|
<option value=""></option> |
|
|
|
|
|
<option value="true">同意</option> |
|
|
|
|
|
<option value="false">拒绝</option> |
|
|
|
|
|
</select> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="form-group"> |
|
|
|
|
|
<label class="col-sm-6 control-label">批注:</label> |
|
|
|
|
|
<div class="col-sm-6"> |
|
|
|
|
|
<textarea name="comment" class="form-control"></textarea> |
|
|
|
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
</form> |
|
|
|
|
|
|
|
|
</div> |
|
|
</div> |
|
|
<th:block th:include="include :: footer" /> |
|
|
<th:block th:include="include :: footer" /> |
|
|
<th:block th:include="include :: select2-js" /> |
|
|
<th:block th:include="include :: select2-js" /> |
|
@ -151,10 +157,10 @@ |
|
|
var processMethodDatas = [[${@dict.getType('processMethod')}]]; |
|
|
var processMethodDatas = [[${@dict.getType('processMethod')}]]; |
|
|
var warehouseDeptDatas = [[${@dict.getType('warehouseDept')}]]; |
|
|
var warehouseDeptDatas = [[${@dict.getType('warehouseDept')}]]; |
|
|
var loginName = [[${@permission.getPrincipalProperty('loginName')}]]; |
|
|
var loginName = [[${@permission.getPrincipalProperty('loginName')}]]; |
|
|
$("#form-plan-purchaseOrder-add").validate({focusCleanup: true}); |
|
|
$("#form-purchaseOrder-cgjl").validate({focusCleanup: true}); |
|
|
var purchasePlanChildList = []; |
|
|
var purchasePlanChildList = []; |
|
|
var purchasePlanCodes = []; |
|
|
var purchasePlanCodes = []; |
|
|
var formId = "form-plan-purchaseOrder-add"; |
|
|
var formId = "form-purchaseOrder-cgjl"; |
|
|
//根据物料物料数量添加物料分类表,自动生成类似的表单对象 |
|
|
//根据物料物料数量添加物料分类表,自动生成类似的表单对象 |
|
|
//初始根据采购计划单,涉及到物料做分类表 |
|
|
//初始根据采购计划单,涉及到物料做分类表 |
|
|
//根据采购计划单,获取物料信息,自动生成物料的供应商分类表 |
|
|
//根据采购计划单,获取物料信息,自动生成物料的供应商分类表 |
|
@ -167,7 +173,6 @@ |
|
|
// 假设qualityOrderCode已经定义或者可以通过某种方式获取到 |
|
|
// 假设qualityOrderCode已经定义或者可以通过某种方式获取到 |
|
|
$(function() { |
|
|
$(function() { |
|
|
// 初始化时默认加载仓库ID列表 |
|
|
// 初始化时默认加载仓库ID列表 |
|
|
loadWarehouseCodes(); |
|
|
|
|
|
// 假设purchaseOrderCode已经定义或者可以通过某种方式获取到 |
|
|
// 假设purchaseOrderCode已经定义或者可以通过某种方式获取到 |
|
|
var purchaseOrderCode = [[${formData.purchaseOrderCode}]]; // 这里需要实际赋值,比如从前端某个地方读取 |
|
|
var purchaseOrderCode = [[${formData.purchaseOrderCode}]]; // 这里需要实际赋值,比如从前端某个地方读取 |
|
|
var purchaseOrderId = [[${formData.purchaseOrderId}]]; |
|
|
var purchaseOrderId = [[${formData.purchaseOrderId}]]; |
|
@ -197,6 +202,16 @@ |
|
|
createTableForSupplier(supplierCode, supplierData); |
|
|
createTableForSupplier(supplierCode, supplierData); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
loadWarehouseCodes(); |
|
|
|
|
|
//物料合计 = 物料实际采购数合计,不含税总价,含税采购总价不为null的情况可以合计物料,否则跳过 |
|
|
|
|
|
$("#purchaseMaterialSum").val(purchaseOrder.materialSum); |
|
|
|
|
|
//采购数量合计 |
|
|
|
|
|
$('#purchaseSum').val(purchaseOrder.materialSum); |
|
|
|
|
|
//采购不含税总价 |
|
|
|
|
|
$('#purchaseNoRmbSum').val(purchaseOrder.noRmbSum); |
|
|
|
|
|
//采购含税总价 |
|
|
|
|
|
$('#purchaseRmbSum').val(purchaseOrder.rmbSum); |
|
|
|
|
|
$('#stockNo').val(purchaseOrder.stockNo); |
|
|
|
|
|
|
|
|
//按照物料的维度查看采购订单信息 |
|
|
//按照物料的维度查看采购订单信息 |
|
|
// 初始化表格 |
|
|
// 初始化表格 |
|
@ -210,14 +225,27 @@ |
|
|
var $tableWrapper = $('<div id="material-' + tableId + '""></div>'); |
|
|
var $tableWrapper = $('<div id="material-' + tableId + '""></div>'); |
|
|
// 将整个物料信息容器添加到页面 |
|
|
// 将整个物料信息容器添加到页面 |
|
|
$('#purchasePlanMaterial').append($tableWrapper); |
|
|
$('#purchasePlanMaterial').append($tableWrapper); |
|
|
|
|
|
var uniqueSuppliers = []; |
|
|
|
|
|
////如果物料相同,则添加供应商信息,并对比现在的关系采购计划关联单号是否有包含,没有添加。有则不添加 |
|
|
|
|
|
material.purchaseOrderChildSupplierList.forEach(supplier => { |
|
|
|
|
|
const key = `${supplier.supplierCode}_${supplier.materialCode}`; |
|
|
|
|
|
if (!uniqueSuppliers.map(s => `${s.supplierCode}_${s.materialCode}`).includes(key)) { |
|
|
|
|
|
uniqueSuppliers.push(supplier); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
// 添加关联销售订单号信息 |
|
|
// 添加关联销售订单号信息 |
|
|
// 创建表格的容器 |
|
|
// 创建表格的容器 |
|
|
var $headerDiv = |
|
|
var $headerDiv = |
|
|
$('<div class="row"><div class="col-xs-12"><h3>' + |
|
|
$('<div class="row">' + |
|
|
'<span><strong>物料 ' + (index + 1) + ': </strong><strong>关联订单号: </strong></span><span class="correlationCodes" id="correlateion-' + tableId + ' ">' + material.purchasePlanCorrelationCode |
|
|
'<div class="col-xs-12">' + |
|
|
+ '</span>' + |
|
|
'<h3>' + |
|
|
'</h3><div class="col-sm-12"><table class="table-materialCode" id="' + materialTable + '">' + '<table/>' + |
|
|
'<span><strong>物料 ' + (index + 1) + ': </strong><strong>关联订单号: </strong></span><span class="correlationCodes" id="correlateion-' + tableId + ' ">' + material.purchasePlanCorrelationCode + '</span>' + |
|
|
'</div></div></div>'); |
|
|
'</h3>' + |
|
|
|
|
|
'<div class="col-sm-12">' + |
|
|
|
|
|
'<table class="table-materialCode" id="' + materialTable + '">' + '<table/>' + |
|
|
|
|
|
'</div>' + |
|
|
|
|
|
'</div>' + |
|
|
|
|
|
'</div>'); |
|
|
$tableWrapper.append($headerDiv); |
|
|
$tableWrapper.append($headerDiv); |
|
|
//创建物料库存容器 |
|
|
//创建物料库存容器 |
|
|
var $stockWrapper = $('<div class="row"><div class="inventory-count " id=" inventory-count-' + tableId + '">'+ |
|
|
var $stockWrapper = $('<div class="row"><div class="inventory-count " id=" inventory-count-' + tableId + '">'+ |
|
@ -235,37 +263,40 @@ |
|
|
var materialData = [materialObj]; |
|
|
var materialData = [materialObj]; |
|
|
materialList.push(material); |
|
|
materialList.push(material); |
|
|
tables(materialTable, materialData); |
|
|
tables(materialTable, materialData); |
|
|
|
|
|
|
|
|
|
|
|
var supplierCode = material.supplierCode; |
|
|
|
|
|
if (supplierCodes.includes(supplierCode)) { |
|
|
|
|
|
var supplierInfo = $('#supplierInfo_' + tableId); |
|
|
|
|
|
if (supplierInfo.length === 0) { |
|
|
var $supplierInfo = $('<div class="supplier-card " style="height: 20px;" id="supplierInfo_' + tableId + '"></div>'); |
|
|
var $supplierInfo = $('<div class="supplier-card " style="height: 20px;" id="supplierInfo_' + tableId + '"></div>'); |
|
|
|
|
|
$tableWrapper.append($supplierInfo); |
|
|
|
|
|
} |
|
|
|
|
|
var supplierData = material.purchaseOrderChildSupplierList; |
|
|
|
|
|
supplierData.forEach(function (supplier) { |
|
|
|
|
|
var supplierCode = supplier.supplierCode; |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
//如果物料下的供应商为空,则不需要添加供应商信息,并在容器中添加一个提示信息:暂无供应商信息,请先添加供应商信息。 |
|
|
//如果物料下的供应商为空,则不需要添加供应商信息,并在容器中添加一个提示信息:暂无供应商信息,请先添加供应商信息。 |
|
|
const uniqueSuppliers = []; |
|
|
if (material.purchaseOrderChildSupplierList.length <= 0) { |
|
|
if (material.purchaseSupplierList.length <= 0) { |
|
|
|
|
|
var $noSupplierDiv = $('<div class="no-supplier">暂无供应商信息,请先添加供应商信息。</div>'); |
|
|
var $noSupplierDiv = $('<div class="no-supplier">暂无供应商信息,请先添加供应商信息。</div>'); |
|
|
$tableWrapper.append($noSupplierDiv); |
|
|
$tableWrapper.append($noSupplierDiv); |
|
|
} |
|
|
} |
|
|
else{ |
|
|
else{ |
|
|
material.purchaseSupplierList.forEach(supplier => { |
|
|
|
|
|
const key = `${supplier.supplierCode}_${supplier.materialCode}`; |
|
|
|
|
|
if (!uniqueSuppliers.map(s => `${s.supplierCode}_${s.materialCode}`).includes(key)) { |
|
|
|
|
|
uniqueSuppliers.push(supplier); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
// 循环处理每个供应商的信息 |
|
|
// 循环处理每个供应商的信息 |
|
|
uniqueSuppliers.forEach(function (supplier, supplierIndex) { |
|
|
uniqueSuppliers.forEach(function (supplier, supplierIndex) { |
|
|
//如果供应商相同,则不需要再次添加供应商信息 |
|
|
//如果供应商相同,则不需要再次添加供应商信息 |
|
|
// 卡片样式容器,用于包裹每个供应商的信息 |
|
|
// 卡片样式容器,用于包裹每个供应商的信息 |
|
|
// 构建供应商信息头部 |
|
|
// 构建供应商信息头部 |
|
|
var $headerContent = |
|
|
var $headerContent = |
|
|
$('<div class="card-header supplier_card" id = "supplier-' + tableId + '_' + supplierIndex + '">' + |
|
|
$( '<div class="card-header supplier_card" id = "supplier-' + tableId + '_' + supplierIndex + '" xmlns="http://www.w3.org/1999/html">' + |
|
|
'<div class="row">' + |
|
|
'<div class="row">' + |
|
|
'<div class="crad-text">'+ |
|
|
'<div class="crad-text">'+ |
|
|
'<h4>供应商 ' + (supplierIndex + 1) + ':' + '</h4>' + |
|
|
'<span><strong>供应商 ' + (supplierIndex + 1) + ': </strong></span>' + '<span class="supplierCode">' + supplier.supplierCode + '</span>' + '-' + '<span class="supplierName">' + supplier.supplierName + '</span>' + |
|
|
'<span class="supplierCode">' + supplier.supplierCode + '</span>' + '-' + |
|
|
'-最新不含税采购价: ' +'<span id="supplierMaterialNoRmb-' + tableId + '" class="supplierMaterialNoRmb"></strong>' + supplier.materialRealNoRmb +'</strong></span>'+ |
|
|
'<span class="supplierName">' + supplier.supplierName + '</span>' + |
|
|
' RMB 最新含税采购价: ' +'<span class="supplierMaterialRmb"><strong>' + supplier.materialRealRmb + '</strong> RMB </span>' + |
|
|
'-最新不含税采购价: ' +'<span id="supplierMaterialNoRmb-' + tableId + '" class="supplierMaterialNoRmb">' + supplier.materialNoRmb +'</span>'+ |
|
|
|
|
|
' RMB 最新含税采购价: ' +'<span class="supplierMaterialRmb">' + supplier.materialRmb + '</span> RMB ' + |
|
|
|
|
|
'<span class="supplierPurchasePlanCode" hidden="hidden" >' + material.planCodes + '</span>' + |
|
|
'<span class="supplierPurchasePlanCode" hidden="hidden" >' + material.planCodes + '</span>' + |
|
|
'<span class="supplierCorrelationCode" hidden="hidden" >' + material.correlationCodes + '</span>' + |
|
|
'<span class="supplierCorrelationCode" hidden="hidden" >' + material.correlationCode + '</span>' + |
|
|
'<span class="supplierPurchaseQuoteCode" hidden="hidden" >' + supplier.purchaseQuoteCode + '</span>' + |
|
|
'<span class="supplierPurchaseQuoteCode" hidden="hidden" >' + supplier.purchaseQuoteCode + '</span>' + |
|
|
'</div>' + |
|
|
'</div>' + |
|
|
'</div>' + |
|
|
'</div>' + |
|
@ -273,14 +304,14 @@ |
|
|
'<div class="col-xs-6 form-group">' + |
|
|
'<div class="col-xs-6 form-group">' + |
|
|
'<label class="col-sm-4"> 实际采购数: </label>' + |
|
|
'<label class="col-sm-4"> 实际采购数: </label>' + |
|
|
'<div class ="col-sm-6">' + |
|
|
'<div class ="col-sm-6">' + |
|
|
'<input type="text" name="materialNum" class="form-control supplierMaterialNum actualPurchaseNum" id="actualPurchaseNum_' + tableId + '">' + |
|
|
'<input type="text" name="materialNum" value="' + supplier.materialRealNum + '" class="form-control supplierMaterialNum actualPurchaseNum" id="actualPurchaseNum_' + tableId + '" disabled>' + |
|
|
'</div>' + |
|
|
'</div>' + |
|
|
'</div>' + |
|
|
'</div>' + |
|
|
'<div class="col-xs-6 form-group">' + |
|
|
'<div class="col-xs-6 form-group">' + |
|
|
'<label class="col-sm-4">计划交付时间: </label>' + |
|
|
'<label class="col-sm-4">计划交付时间: </label>' + |
|
|
'<div class ="col-sm-6">' + |
|
|
'<div class ="col-sm-6">' + |
|
|
'<div class="input-group date"> ' + |
|
|
'<div class="input-group date"> ' + |
|
|
'<input type="text" name="deliveryTime" class="form-control supplierDeliveryTime" id="deliveryTime_' + tableId + '">' + |
|
|
'<input type="text" name="deliveryTime" value="' + supplier.deliveryTime + '" class="form-control supplierDeliveryTime" id="deliveryTime_' + tableId + '" disabled >' + |
|
|
'<span class="input-group-addon"><i class="fa fa-calendar"></i></span>' + |
|
|
'<span class="input-group-addon"><i class="fa fa-calendar"></i></span>' + |
|
|
'</div> ' + |
|
|
'</div> ' + |
|
|
'</div>' + |
|
|
'</div>' + |
|
@ -402,69 +433,6 @@ |
|
|
$tableWrapper.append($header).append($table); |
|
|
$tableWrapper.append($header).append($table); |
|
|
$('#supplierMaterial').append($tableWrapper); |
|
|
$('#supplierMaterial').append($tableWrapper); |
|
|
} |
|
|
} |
|
|
// 加载仓库Id列表函数 |
|
|
|
|
|
$("#form-cgjl-edit").validate({focusCleanup: true}); |
|
|
|
|
|
//open打开时,模态框foot下新增审核通过和审核拒绝按钮 |
|
|
|
|
|
function submitHandler() { |
|
|
|
|
|
if ($.validate.form()) { |
|
|
|
|
|
if ($('textarea[name="comment"]').val()) { |
|
|
|
|
|
$('input[name="p_COM_comment"]').val($('textarea[name="comment"]').val()); |
|
|
|
|
|
} |
|
|
|
|
|
var taskId = [[${taskId}]]; |
|
|
|
|
|
$.operate.save(prefix + "/complete/" + taskId, $('#form-cgjl-edit').serialize()); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
//获取仓库相关信息Select2,根据仓库ID查询仓库名称 |
|
|
|
|
|
$('#stockNo').on('change', function() { |
|
|
|
|
|
var selectedWarehouseCode = $(this).val(); // 获取选中的仓库ID |
|
|
|
|
|
if (selectedWarehouseCode) { |
|
|
|
|
|
// 发起Ajax请求获取仓库名称 |
|
|
|
|
|
$.ajax({ |
|
|
|
|
|
type: 'GET', |
|
|
|
|
|
url: ctx +'stock/stockInfo/getStockNameByWarehouseCode/' + selectedWarehouseCode, |
|
|
|
|
|
dataType: 'json', // 假设返回的数据格式是JSON |
|
|
|
|
|
success: function(data) { |
|
|
|
|
|
console.log(data); |
|
|
|
|
|
// 将获取到的仓库名称填充到输入框 |
|
|
|
|
|
if(data.data == null){ |
|
|
|
|
|
// 如果返回的数据有问题,可以给出提示或处理 |
|
|
|
|
|
$.modal.alertWarning('未能获取到仓库名称!'); |
|
|
|
|
|
} |
|
|
|
|
|
$('input[name="stockName"]').val(data.data.stockName); |
|
|
|
|
|
$('input[name="stockAddress"]').val(data.data.stockAddr); |
|
|
|
|
|
$('input[name="stockContact"]').val(data.data.stockManager); |
|
|
|
|
|
$('input[name="stockPhone"]').val(data.data.stockManagerPhone); |
|
|
|
|
|
}, |
|
|
|
|
|
error: function(jqXHR, textStatus, errorThrown) { |
|
|
|
|
|
console.error('Error:', textStatus, errorThrown); |
|
|
|
|
|
$.modal.alertWarning('查询仓库名称时发生错误!'); |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
else {$('input[name="warehouseName"]').val('');}// 如果没有选择仓库ID,清空仓库名称输入框 |
|
|
|
|
|
}); |
|
|
|
|
|
// 加载仓库Id列表函数 |
|
|
|
|
|
function loadWarehouseCodes() { |
|
|
|
|
|
var url = ctx + 'stock/stockInfo/getAllWarehouseCode'; |
|
|
|
|
|
$.ajax({ |
|
|
|
|
|
type: 'GET', // 请求类型 |
|
|
|
|
|
url: url, // 后端接口URL |
|
|
|
|
|
dataType: 'json', // 预期服务器返回的数据类型 |
|
|
|
|
|
success: function(data) { |
|
|
|
|
|
if (data && Array.isArray(data)) { |
|
|
|
|
|
var selectElement = $('#stockNo'); // 获取仓库编号下拉框元素 |
|
|
|
|
|
selectElement.empty();// 清空下拉框现有选项 |
|
|
|
|
|
$.each(data, function(index, item) { |
|
|
|
|
|
selectElement.append('<option value="' + item.stockNO + '">' + item.stockNO + '</option>'); |
|
|
|
|
|
}); // 遍历返回的数据,添加为下拉框的选项 |
|
|
|
|
|
// $('#warehouseCode').val(formData.stockNO); |
|
|
|
|
|
} else { |
|
|
|
|
|
$.modal.errMsg("数据为空"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 新增函数:重新计算某物料的采购数量合计、不含税采购总价和含税采购总价 |
|
|
// 新增函数:重新计算某物料的采购数量合计、不含税采购总价和含税采购总价 |
|
|
function recalculateTotals(tableId) { |
|
|
function recalculateTotals(tableId) { |
|
|
var $tableWrapper = $('#material-' + tableId); |
|
|
var $tableWrapper = $('#material-' + tableId); |
|
@ -503,9 +471,9 @@ |
|
|
//采购含税总价 = 所有物料的含税总价合计 |
|
|
//采购含税总价 = 所有物料的含税总价合计 |
|
|
//查询物料表下吗整合的物料的实际采购数合计,物料的实际不含税采购总价,物料的实际含税总价 |
|
|
//查询物料表下吗整合的物料的实际采购数合计,物料的实际不含税采购总价,物料的实际含税总价 |
|
|
var supplierInfo = $tableWrapper.find('#supplierInfo_' + tableId ); |
|
|
var supplierInfo = $tableWrapper.find('#supplierInfo_' + tableId ); |
|
|
let purchaseNum = parseInt(supplierInfo.find('.actualPurchaseTotalSum').val().trim()) || 0; |
|
|
let purchaseNum = parseInt(supplierInfo.find('.actualPurchaseTotalSum').val()) || 0; |
|
|
let noRmbPrice = parseFloat(supplierInfo.find('.actualPurchaseTotal').val().trim()) || 0; |
|
|
let noRmbPrice = parseFloat(supplierInfo.find('.actualPurchaseTotal').val()) || 0; |
|
|
let rmbPrice = parseFloat(supplierInfo.find('.actualPurchaseTotalTax').val().trim()) || 0; |
|
|
let rmbPrice = parseFloat(supplierInfo.find('.actualPurchaseTotalTax').val()) || 0; |
|
|
if (purchaseNum > 0) { |
|
|
if (purchaseNum > 0) { |
|
|
materialAmount += 1; |
|
|
materialAmount += 1; |
|
|
} |
|
|
} |
|
@ -526,28 +494,29 @@ |
|
|
var $totalSection = $( |
|
|
var $totalSection = $( |
|
|
'<div class="card">' + |
|
|
'<div class="card">' + |
|
|
'<div class="card-body" class="supplierTotal_' + tableId + '">' + |
|
|
'<div class="card-body" class="supplierTotal_' + tableId + '">' + |
|
|
'<div class="form-row">' + |
|
|
'<div class="col-xs-4">' + |
|
|
'<label for="actualPurchaseTotal" class="col-sm-4">实际采购数合计:</label>' + |
|
|
'<label for="actualPurchaseTotal" class="col-sm-5">实际采购数合计:</label>' + |
|
|
'<div class="col-sm-8">' + |
|
|
'<div class="col-sm-6">' + |
|
|
'<input type="number" name="materialAmountSum" class="form-control actualPurchaseTotalSum" id="materialAmountSum_' + tableId + '">' + |
|
|
'<input type="number" name="materialAmountSum" class="form-control actualPurchaseTotalSum" id="materialAmountSum_' + tableId + '" disabled>' + |
|
|
'</div>' + |
|
|
'</div>' + |
|
|
'</div>' + |
|
|
'</div>' + |
|
|
'<div class="form-row">' + |
|
|
'<div class="col-xs-4">' + |
|
|
'<label for="actualPurchaseTotal" class="col-sm-4">不含税采购总价:</label>' + |
|
|
'<label for="actualPurchaseTotal" class="col-sm-5">不含税采购总价:</label>' + |
|
|
'<div class="col-sm-8">' + |
|
|
'<div class="col-sm-6">' + |
|
|
'<input type="number" name="materialNoRmbSum" class="form-control actualPurchaseTotal" id="materialNoRmbSum_' + tableId + '" ' + |
|
|
'<input type="number" name="materialNoRmbSum" class="form-control actualPurchaseTotal" id="materialNoRmbSum_' + tableId + '" disabled>' + |
|
|
'</div>' + |
|
|
'</div>' + |
|
|
'</div>' + |
|
|
'</div>' + |
|
|
'<div class="form-row">' + |
|
|
'<div class="col-xs-4">' + |
|
|
'<label for="actualPurchaseTotalTax" class="col-sm-4">含税采购总价:</label>' + |
|
|
'<label for="actualPurchaseTotalTax" class="col-sm-5">含税采购总价:</label>' + |
|
|
'<div class="col-sm-8">' + |
|
|
'<div class="col-sm-6">' + |
|
|
'<input type="number" name="materialRmbSum" class="form-control actualPurchaseTotalTax" id="materialRmbSum_' + tableId + '">' + |
|
|
'<input type="number" name="materialRmbSum" class="form-control actualPurchaseTotalTax" id="materialRmbSum_' + tableId + '" disabled>' + |
|
|
'</div>' + |
|
|
'</div>' + |
|
|
'</div>' + |
|
|
'</div>' + |
|
|
'</div>'+ |
|
|
'</div>'+ |
|
|
'</div>'); |
|
|
'</div>'); |
|
|
element.append($totalSection); |
|
|
element.append($totalSection); |
|
|
} |
|
|
} |
|
|
|
|
|
// 创建表格并添加到页面 |
|
|
function tables(tableId, data) { |
|
|
function tables(tableId, data) { |
|
|
$('#' + tableId).bootstrapTable({ |
|
|
$('#' + tableId).bootstrapTable({ |
|
|
showExport: false, |
|
|
showExport: false, |
|
@ -584,92 +553,65 @@ |
|
|
], |
|
|
], |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
|
function submitHandlerPurchaseOrder() { |
|
|
|
|
|
if ($.validate.form()) { |
|
|
// 加载仓库Id列表函数 |
|
|
var materialSum = 0; |
|
|
$("#form-cgjl-edit").validate({focusCleanup: true}); |
|
|
var materialRealSum = 0; |
|
|
//open打开时,模态框foot下新增审核通过和审核拒绝按钮 |
|
|
var materialNoRmbSum = 0; |
|
|
//获取仓库相关信息Select2,根据仓库ID查询仓库名称 |
|
|
var materialRmbSum = 0; |
|
|
function loadWarehouseCodes() { |
|
|
//添加去除供应商编号数组 |
|
|
var url = ctx + 'stock/stockInfo/getAllWarehouseCode'; |
|
|
var supplierNumList = []; |
|
|
$.ajax({ |
|
|
var purchaseOrder = { |
|
|
type: 'GET', // 请求类型 |
|
|
supplierNum: 0, materialNum: 0, noRmbSum: 0, rmbSum: 0, |
|
|
url: url, // 后端接口URL |
|
|
stockNo: $("#stockNo").val(), |
|
|
dataType: 'json', // 预期服务器返回的数据类型 |
|
|
stockName: $("#stockName").val(), |
|
|
success: function(data) { |
|
|
stockAddress: $("#stockAddress").val(), |
|
|
if (data && Array.isArray(data)) { |
|
|
stockContact: $("#stockContact").val(), |
|
|
var selectElement = $('#stockNo'); // 获取仓库编号下拉框元素 |
|
|
stockPhone: $("#stockPhone").val(), |
|
|
selectElement.empty();// 清空下拉框现有选项 |
|
|
purchaseOrderChildList: [], |
|
|
$.each(data, function(index, item) { |
|
|
}; |
|
|
selectElement.append('<option value="' + item.stockNO + '">' + item.stockNO + '</option>'); |
|
|
// 遍历每个物料容器 |
|
|
}); // 遍历返回的数据,添加为下拉框的选项 |
|
|
$('.table-materialCode').each(function (index, tableElement) { |
|
|
} else { |
|
|
var tableId = tableIdList[index]; |
|
|
$.modal.errMsg("数据为空"); |
|
|
let materialObj = materialList[index]; |
|
|
} |
|
|
var $tableWrapper = $('#material-' + tableId); |
|
|
} |
|
|
if (typeof materialObj === 'undefined') return; |
|
|
}); |
|
|
var $suplierInfo = $tableWrapper.find('.supplier-card'); |
|
|
} |
|
|
$suplierInfo.find('.supplier_card').each(function (supplierIndex, supplierCard) { |
|
|
$('#stockNo').on('change', function() { |
|
|
var supplierCode = $(this).find('.supplierCode').text().trim(); |
|
|
var selectedWarehouseCode = $(this).val(); // 获取选中的仓库ID |
|
|
var supplierName = $(this).find('.supplierName').text().trim(); |
|
|
if (selectedWarehouseCode) { |
|
|
var materialRealNum = parseInt($(this).find('.actualPurchaseNum').val()) || 0; |
|
|
// 发起Ajax请求获取仓库名称 |
|
|
var materialRealRmb = parseFloat($(this).find('.supplierMaterialRmb').text()) || 0; |
|
|
$.ajax({ |
|
|
var materialRealNoRmb = parseFloat($(this).find('.supplierMaterialNoRmb').text()) || 0; |
|
|
type: 'GET', |
|
|
var deliveryTime = $(this).find('.supplierDeliveryTime').val(); |
|
|
url: ctx +'stock/stockInfo/getStockNameByWarehouseCode/' + selectedWarehouseCode, |
|
|
var purchasePlanCode = $(this).find('.supplierPurchasePlanCode').text().trim(); |
|
|
dataType: 'json', // 假设返回的数据格式是JSON |
|
|
var correlationCode = $(this).find('.supplierCorrelationCode').text().trim(); |
|
|
success: function(data) { |
|
|
var purchaseQuoteCode = $(this).find('.supplierPurchaseQuoteCode').text().trim(); |
|
|
console.log(data); |
|
|
var materialRealRmbSum = parseFloat(materialRealRmb * materialRealNum); |
|
|
// 将获取到的仓库名称填充到输入框 |
|
|
var materialRealNoRmbSum = parseFloat(materialRealNoRmb * materialRealNum); |
|
|
if(data.data == null){ |
|
|
materialRealSum += materialRealNum; |
|
|
// 如果返回的数据有问题,可以给出提示或处理 |
|
|
materialNoRmbSum += materialRealNoRmbSum; |
|
|
$.modal.alertWarning('未能获取到仓库名称!'); |
|
|
materialRmbSum += materialRealRmbSum; |
|
|
} |
|
|
if (supplierNumList.indexOf(supplierCode) === -1) { |
|
|
$('input[name="stockName"]').val(data.data.stockName); |
|
|
supplierNumList.push(supplierCode); |
|
|
$('input[name="stockAddress"]').val(data.data.stockAddr); |
|
|
purchaseOrder.supplierNum += 1; |
|
|
$('input[name="stockContact"]').val(data.data.stockManager); |
|
|
} |
|
|
$('input[name="stockPhone"]').val(data.data.stockManagerPhone); |
|
|
var materialData = { |
|
|
}, |
|
|
materialCode: materialObj.materialCode, |
|
|
error: function(jqXHR, textStatus, errorThrown) { |
|
|
materialName: materialObj.materialName, |
|
|
console.error('Error:', textStatus, errorThrown); |
|
|
materialType: materialObj.materialType, |
|
|
$.modal.alertWarning('查询仓库名称时发生错误!'); |
|
|
materialBrand: materialObj.brand, |
|
|
} |
|
|
materialDescribe: materialObj.describe, |
|
|
|
|
|
materialProcessMethod: materialObj.processMethod, |
|
|
|
|
|
materialUnit: materialObj.unit, |
|
|
|
|
|
materialPhotoUrl: materialObj.photoUrl, |
|
|
|
|
|
warehouseDept: materialObj.warehouseDept, |
|
|
|
|
|
materialNum: materialObj.materialNum, |
|
|
|
|
|
supplierCode: supplierCode, |
|
|
|
|
|
supplierName: supplierName, |
|
|
|
|
|
materialNoRmb: materialObj.materialNoRmb, |
|
|
|
|
|
materialRmb: materialObj.materialRmb, |
|
|
|
|
|
materialRealNum: materialRealNum, |
|
|
|
|
|
materialRealRmb: materialRealRmb, |
|
|
|
|
|
materialRealNoRmb: materialRealNoRmb, |
|
|
|
|
|
materialRealRmbSum: materialRealRmbSum, |
|
|
|
|
|
materialRealNoRmbSum: materialRealNoRmbSum, |
|
|
|
|
|
deliveryTime: deliveryTime, |
|
|
|
|
|
purchasePlanCode: purchasePlanCode, |
|
|
|
|
|
correlationCode: correlationCode, |
|
|
|
|
|
purchaseQuoteCode: purchaseQuoteCode, |
|
|
|
|
|
}; |
|
|
|
|
|
purchaseOrder.purchaseOrderChildList.push(materialData); |
|
|
|
|
|
}); |
|
|
}); |
|
|
|
|
|
} |
|
|
|
|
|
else {$('input[name="warehouseName"]').val('');}// 如果没有选择仓库ID,清空仓库名称输入框 |
|
|
}); |
|
|
}); |
|
|
// 获取采购物料合计,采购物料实际合计,采购物料实际非人民币合计,采购物料实际人民币合计 |
|
|
function submitHandler() { |
|
|
var purchaseAmount = parseFloat($('#purchaseMaterialSum').val()); |
|
|
if ($.validate.form()) { |
|
|
var purchaseSum = parseFloat($('#purchaseSum').val()); |
|
|
if ($('textarea[name="comment"]').val()) { |
|
|
var purchaseNoRmbSum = parseFloat($('#purchaseNoRmbSum').val()); |
|
|
$('input[name="p_COM_comment"]').val($('textarea[name="comment"]').val()); |
|
|
var purchaseRmbSum = parseFloat($('#purchaseRmbSum').val()); |
|
|
} |
|
|
// 将合计值附加到purchaseOrder对象 |
|
|
var taskId = [[${taskId}]]; |
|
|
purchaseOrder.materialAmount = purchaseAmount; |
|
|
$.operate.save(prefix + "/complete/" + taskId, $('#form-purchaseOrder-cgjl').serialize()); |
|
|
purchaseOrder.materialSum = purchaseSum; |
|
|
|
|
|
purchaseOrder.materialNoRmbSum = purchaseNoRmbSum; |
|
|
|
|
|
purchaseOrder.materialRmbSum = purchaseRmbSum; |
|
|
|
|
|
purchaseOrder.supplierNum = supplierNumList.length; |
|
|
|
|
|
|
|
|
|
|
|
// 发送数据到后端API |
|
|
|
|
|
$.operate.saveJson(prefix + "/addPurchaseOrder", JSON.stringify(purchaseOrder)); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
</script> |
|
|
</script> |
|
|