<!--仿EquipmentSetShippmentReceived6.page-->
|
<apex:page Controller="ReceivingNoteAcceptanceController" showHeader="false" sidebar="false" id="allPage" action="{!init}" title="收货清单清点" docType="html-5.0">
|
<head>
|
<meta name="format-detection" content="telephone=no"/>
|
</head>
|
<apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
|
<apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
|
<apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
|
<apex:includeScript value="{!URLFOR($Resource.instascan)}"/>
|
<apex:stylesheet value="{!URLFOR($Resource.EquipmentSetShippmentReceivedcss)}"/>
|
<apex:stylesheet value="{!URLFOR($Resource.jquery_confirm, 'jquery-confirm.min.css')}"/>
|
<apex:includeScript value="{!URLFOR($Resource.jquery_confirm, 'jquery-confirm.min.js')}"/>
|
<script type="text/javascript">
|
function showConfirm(message, okhandler, errorhandler) {
|
j$.confirm({
|
title: '确认',
|
content: message,
|
boxWidth: '50%',
|
useBootstrap: false,
|
buttons: {
|
OK: function () {
|
okhandler();
|
},
|
cancel: {
|
text: '取消', // With spaces and symbols
|
action: function () {
|
errorhandler();
|
}
|
}
|
}
|
});
|
}
|
function savejs() {
|
var dateInputs = j$("input[name$=PeriodOfUse_Final__c");
|
var changedList = new Array();
|
for(var i = 0 ; i < dateInputs.length ; i++) {
|
var j = dateInputs[i].id.split(':')[3];
|
var dateBefore = document.getElementById('allPage:allForm:esdList:' + j + ':PeriodOfUse_Old_F__c').textContent
|
if (dateBefore != dateInputs[i].value && dateInputs[i].value != '') {
|
changedList.push(j$("div.menu ul")[j].getAttribute('data-model'));
|
}
|
}
|
if(changedList.length > 0) {
|
showConfirm('是否确认修改 ' + changedList.toString() + ' 的使用期限?',
|
function(){
|
blockme();
|
save();
|
},
|
function(){}
|
)
|
}
|
else {
|
blockme();
|
save();
|
}
|
}
|
|
function filljs1() {
|
j$('input:checkbox:checked').each(function(){
|
j$('ul[data-sumId="'+j$(this).data("rnid")+'"]').find('select').val('OK').change();;
|
})
|
}
|
|
function filljsQR1(qrcode) {
|
blockme();
|
if (qrcode.substr(-8,3) == '250') qrcode = qrcode.slice(0,-8);
|
var select1 = j$("[data-qr='"+qrcode+"'],[data-bar^='"+qrcode+"']").data('sumid');
|
j$('input:checkbox[data-rnId="'+select1+'"]').prop("checked",true);
|
|
unblockUI();
|
j$("#scanedqr").append("<li>"+qrcode+"</li>");
|
j$("#scanedqr").animate({ scrollTop: j$("#scanedqr").prop("scrollHeight")}, 1000);
|
}
|
|
function filljsQR2(qrcode, setId) {
|
}
|
|
function checkAll() {
|
j$('input[name$="checkedRN"]:visible').prop("checked",true);
|
}
|
|
function changeAccessory() {
|
var checkedRN = j$("input[name$='checkedRN']:checked");
|
if(checkedRN.length>0){
|
let fstid = checkedRN.first().data('fsid');
|
let sameflg = true;
|
checkedRN.each(function() {
|
sameflg = (j$(this).data('fsid') === fstid) && sameflg;
|
})
|
if (!sameflg) {
|
alert("不能同时调整不同备品配套的一览数据!");
|
return;
|
}
|
let sid = '';
|
for (var i = 0; i < checkedRN.length; i++) {
|
if(i == 0){
|
sid += checkedRN[i].dataset["rnid"];
|
}
|
else{
|
sid += ','+checkedRN[i].dataset["rnid"];
|
}
|
}
|
window.location.href = '/apex/ReceivingNoteDetailSelect?sids='+sid+'&returl='+encodeURIComponent(window.location.href);
|
}
|
else{
|
alert("请勾选配套一览!");
|
}
|
}
|
|
function resetDetailDivMargintop() {
|
var handerHeight = document.getElementById('hander').clientHeight;
|
document.getElementById('detailDiv').style.marginTop = handerHeight + 'px';
|
}
|
|
window.onload = function hiddenName(){
|
if( document.getElementById('allPage:allForm:CDS_staff_mlktp')){
|
document.getElementById('allPage:allForm:CDS_staff_mlktp').style.visibility="hidden" ;
|
document.getElementById('allPage:allForm:CDS_staff_mlktp').style.width="200px" ;
|
}
|
resetDetailDivMargintop();
|
}
|
|
function checkMessage() {
|
if (j$(escapeVfId('allPage:allForm:done_flg')).val() == 'true') {
|
alert("保存完了");
|
}
|
}
|
|
function toggleSerialNumberInputBox(ele){
|
var inputbox_serial = j$(ele).parent().parent().find('input[name$="serialNumberfix"]');
|
inputbox_serial.removeClass("disableInput");
|
}
|
|
</script>
|
<style type="text/css">
|
.menu div.m_title{
|
border-top-left-radius:10px;
|
border-top-right-radius:10px;
|
text-align: left;
|
margin: 0;
|
padding: 1%;
|
width: 98%;
|
background:#DCDCDC;
|
position: relative;
|
}
|
.checkintitle{
|
position:absolute;
|
right:10px;
|
}
|
.disableInput {
|
pointer-events: none;
|
background-color: #ccc;
|
}
|
.dateFormat {
|
display: none;
|
}
|
#Step_tab {
|
list-style-type: none;
|
padding: 0;
|
height: 25px;
|
border-bottom: 5px solid #3b5998;
|
}
|
#Step_tab li {
|
position: relative;
|
width: 20%;
|
float: left;
|
margin: 0;
|
padding: 0;
|
text-align: center;
|
cursor: pointer;
|
}
|
#Step_tab li span {
|
margin: 0;
|
padding: 15px 0 11px;
|
color: #2daae1;
|
font-size: 12px;
|
font-weight: bold;
|
line-height: 1;
|
}
|
#Step_tab li.selected {
|
background: #3b5998;
|
}
|
#Step_tab li.selected span {
|
color: #fff;
|
}
|
div.menu{
|
margin-bottom: 20px;
|
width: 490px;
|
}
|
|
hr {
|
border-top: 2px dotted #f00;
|
color: #fff;
|
background-color: #fff;
|
height: 1px;
|
width: 90%;
|
}
|
.close {
|
color: #aaaaaa;
|
float: right;
|
font-size: 28px;
|
font-weight: bold;
|
}
|
.close:hover,
|
.close:focus {
|
color: #000;
|
text-decoration: none;
|
cursor: pointer;
|
}
|
.menu blockquote{
|
margin: 0;
|
padding: 1px;
|
list-style: none;
|
border-top: 1px solid #ddd;
|
|
}
|
.menu{
|
border:1px solid #a1a1a1;
|
border-radius:10px;
|
width: 400px;
|
}
|
.menu li .fieldname {
|
width: 30%;
|
text-align: right;
|
float: left;
|
}
|
.menu li .fieldvalue{
|
width: 30%;
|
text-align: left;
|
margin-left: 10px;
|
|
}
|
.menu li {
|
vertical-align: middle;
|
margin: 5px 0;
|
}
|
.commandbutton{
|
width: 100px !important;
|
margin-left: 20px !important;
|
}
|
div.freezehander{
|
width:500px;
|
}
|
</style>
|
|
<div id="myModal" class="modal">
|
|
<!-- Modal content -->
|
<div class="modal-content">
|
<span class="close" onclick="stopScan()">×</span>
|
<p>扫描中</p>
|
<p>Code:<input type="text" id="qrcode"/></p>
|
<video playsinline="true" id="preview" style="width: 100%;z-index: 11;transform: scaleX(-1);margin-top: 10px;"></video>
|
扫码履历:
|
<ul id="scanedqr" style="list-style-type: none; text-align: center;padding: 0;width: 100%; height: 100px; overflow: auto">
|
</ul>
|
|
</div>
|
|
</div>
|
<apex:form id="allForm">
|
<apex:actionFunction name="save" action="{!save}" rerender="allForm" onComplete="unblockUI();checkMessage();resetDetailDivMargintop();" />
|
<apex:inputHidden value="{!done_flg}" id="done_flg"/>
|
<div id="main">
|
<input type="hidden" id="QRType" value="1"/>
|
<input type="hidden" id="QRTypeID" value=""/>
|
<div id="hander" class="freezehander">
|
<apex:outputPanel id="message">
|
<apex:pageMessages />
|
</apex:outputPanel>
|
<div style="text-align: right;margin-top: 10px;">
|
<apex:commandButton styleClass="commandbutton" onclick="savejs();" value="保存" rerender="dummy" disabled="{!saveBtnDisabled}"/>
|
</div>
|
<apex:outputText id="saveBtnDisabled" value="{!saveBtnDisabled}" style="display: none;"/>
|
<!-- <apex:outputText value="(出库指示后取消)" style="color:red;" rendered="{!IF(SR_status='Received' && es.cancel_after_loaner_arranged__c, true, false)}"/> -->
|
<table style="border-collapse: collapse; font-size:13px;">
|
<colgroup>
|
<col width="150" />
|
<col width="170" />
|
</colgroup>
|
<tr>
|
<!-- 状态切换btn -->
|
<th colspan="2" style="font-size:20px;text-align: center;width:500px;">
|
<ul id="Step_tab">
|
<li class="selected"><span class="tabsize">清点</span></li>
|
</ul>
|
</th>
|
</tr>
|
</table>
|
<div style="text-align: right;margin-bottom: 20px;">
|
<apex:commandButton styleClass="commandbutton" onclick="changeAccessory()" value="附属品调整" rerender="dummy"/>
|
<apex:commandButton styleClass="commandbutton" onclick="qrsacn()" value="扫一扫" rerender="dummy"/>
|
<apex:commandButton styleClass="commandbutton" onclick="checkAll();" value="全选" rerender="dummy" />
|
<apex:commandButton styleClass="commandbutton" onclick="filljs1();" value="全部OK" rerender="dummy"/>
|
</div>
|
</div>
|
<apex:outputPanel id="detail">
|
|
<div id="detailDiv" class="detail">
|
<apex:variable var="indexloop" value="{!0}" />
|
<apex:variable var="SetName" value="" />
|
<apex:variable var="main_loc" value="" />
|
|
<apex:repeat value="{!esdList}" var="esdInfo" id="esdList">
|
<!-- <apex:outputPanel rendered="{!IF(SetName=esdInfo.rnd.ReceivingNoteSummary__r.Id,false,true)}"> -->
|
<div style="margin-bottom: -20px;display: {!IF(SetName=esdInfo.rnd.ReceivingNoteSummary__r.Id,'none','block')}">
|
<apex:outputPanel rendered="{!IF(indexloop=0,false,true)}">
|
<hr/>
|
</apex:outputPanel>
|
<label style="font-size: 14px;font-weight: bold;" >
|
<apex:outputPanel rendered="{!esdInfo.rnd.ReceivingNoteSummary__r.Package_Status__c=='OK'}">
|
<apex:inputCheckbox id="checkedRN" value="{!esdInfo.isChecked}" html-data-rnId="{!esdInfo.rnd.ReceivingNoteSummary__c}" html-data-fsId="{!esdInfo.rnd.Fixture_Set_Detail__r.Fixture_Set__c}"/>
|
</apex:outputPanel>
|
{!esdInfo.rnd.ReceivingNoteSummary__r.ReceivingNoteSummaryNo__c}
|
</label>
|
<apex:variable var="SetName" value="{!esdInfo.rnd.ReceivingNoteSummary__r.Id}" />
|
<apex:variable var="indexloop" value="{!indexloop+1}"/>
|
</div>
|
<!-- </apex:outputPanel> -->
|
|
|
<apex:outputPanel layout="none" rendered="true" >
|
<br/>
|
|
<div class="menu">
|
|
<div class="m_title">
|
<apex:outputPanel layout="none" rendered="{!IF(esdInfo.rnd.Change_Point__c = null, TRUE, FALSE)}" >
|
<h2><apex:outputField value="{!esdInfo.rnd.Product_Name_F__c}"/></h2>
|
</apex:outputPanel>
|
<apex:outputPanel layout="none" rendered="{!IF(esdInfo.rnd.Change_Point__c = null, FALSE, TRUE)}" >
|
<h2 style="color: red;"><apex:outputField value="{!esdInfo.rnd.Product_Name_F__c}"/> <apex:outputField value="{!esdInfo.rnd.Change_Point__c}"/></h2>
|
</apex:outputPanel>
|
<!-- <apex:inputCheckbox styleClass="checkintitle" value="{!}"/> -->
|
|
</div>
|
|
<ul data-sumId="{!esdInfo.rnd.ReceivingNoteSummary__c}" data-model="{!IF(esdInfo.rnd.Fixture_Arrival_Process__c=='变体',esdInfo.rnd.Fixture_Arrival_Product__r.Fixture_Model_No_T__c, esdInfo.rnd.Fixture_Model_No_F__c)}">
|
<li>
|
<span class="fieldname">明细No.</span>
|
<span class="fieldvalue" style="width: 65%;">{!esdInfo.rnd.ReceivingNoteDetailNo__c}</span>
|
</li>
|
<li style="{!IF(ISBLANK(esdInfo.rnd.Fixture_Arrival_Process__c),'display: none;','')}">
|
<span class="fieldname">备品入库处理</span>
|
<span class="fieldvalue" style="width: 65%;">{!esdInfo.rnd.Fixture_Arrival_Process__c}</span>
|
</li>
|
<li style="{!IF(esdInfo.rnd.Fixture_Arrival_Process__c == '变体','','display: none;')}">
|
<span class="fieldname">备品入库产品</span>
|
<span class="fieldvalue" style="width: 65%;">{!esdInfo.rnd.Fixture_Arrival_Product__r.Name}</span>
|
</li>
|
<li>
|
<span class="fieldname">规格</span>
|
<span class="fieldvalue">{!esdInfo.rnd.Packing_list_Fixture_F__c}</span>
|
</li>
|
<li style="{!IF(esdInfo.rnd.unknow_serial_NO_product__c = 'TRUE', '', 'display: none;')}">
|
<span class="fieldname">无机身号码设备</span>
|
<apex:outputText styleclass="fieldvalue" id="isNoSerialNumber" value="{!esdInfo.rnd.unknow_serial_NO_product__c}" />
|
</li>
|
<li style="{!IF(esdInfo.rnd.unknow_serial_NO_product__c = 'TRUE', '', 'display: none;')}">
|
<span class="fieldname">机身编码</span>
|
<apex:outputText styleClass="fieldvalue" value="{!esdInfo.rnd.SerialNumber_F__c}"/>
|
</li>
|
<li style="{!IF(esdInfo.rnd.unknow_serial_NO_product__c != 'TRUE', '', 'display: none;')}">
|
<span class="fieldname">机身编码</span>
|
<apex:inputHidden value="{!esdInfo.rnd.unknow_serial_NO_product__c}" />
|
<apex:outputText styleClass="fieldvalue" value="{!esdInfo.rnd.SerialNumber_Origin__c}"/>
|
<apex:outputPanel rendered="{!esdInfo.canChange==true}" layout="none">
|
<input type="button" onclick="toggleSerialNumberInputBox(this)" value="修改"/>
|
</apex:outputPanel>
|
</li>
|
<li style="{!IF(esdInfo.rnd.unknow_serial_NO_product__c != 'TRUE', '', 'display: none;')}">
|
<span class="fieldname">机身编码(更新)</span>
|
<span class="fieldvalue"><apex:inputField id="serialNumberfix" styleclass="disableInput" value="{!esdInfo.rnd.SerialNumber__c}" /></span>
|
</li>
|
<li style="{!IF(esdInfo.rnd.Asset_loaner_category_F__c != '耗材','','display: none;')}">
|
<span class="fieldname">使用期限(修改前)</span>
|
<span class="fieldvalue"> <apex:outputField id="PeriodOfUse_Old_F__c" value="{!esdInfo.rnd.PeriodOfUse_Old_F__c}" /> </span>
|
</li>
|
<li style="{!IF(esdInfo.rnd.Asset_loaner_category_F__c != '耗材','','display: none;')}">
|
<span class="fieldname">使用期限(修改后)</span>
|
<span class="fieldvalue">
|
<apex:inputField id="PeriodOfUse_Final__c" value="{!esdInfo.rnd.PeriodOfUse_Final__c}" rendered="{!esdInfo.canChange==true}" />
|
<apex:outputField value="{!esdInfo.rnd.PeriodOfUse_Final__c}" rendered="{!esdInfo.canChange==false}" />
|
</span>
|
</li>
|
<li style="{!IF(esdInfo.rnd.Asset_loaner_category_F__c == '耗材','','display: none;')}">
|
<span class="fieldname">使用期限</span>
|
<span class="fieldvalue"> <apex:outputField value="{!esdInfo.rnd.PeriodOfUse__c}" /> </span>
|
</li>
|
<li data-qr="{!esdInfo.rnd.Fixture_QRCode_F__c}" data-bar="{!esdInfo.rnd.Barcode_F__c}" data-sumId="{!esdInfo.rnd.ReceivingNoteSummary__c}">
|
<span class="fieldname">清点结果</span>
|
<apex:outputPanel layout="none" rendered="{!esdInfo.canChange==false}" >
|
<span class="fieldvalue"><apex:outputField value="{!esdInfo.rnd.AcceptanceResult__c}"/></span>
|
</apex:outputPanel>
|
<apex:outputPanel layout="none" rendered="{!esdInfo.canChange==true}" >
|
<span class="fieldvalue"><apex:inputField value="{!esdInfo.rnd.AcceptanceResult__c}"/></span>
|
</apex:outputPanel>
|
</li>
|
<li>
|
<span class="fieldname">清点备注</span>
|
<apex:outputPanel layout="none" rendered="{!esdInfo.canChange==false}" >
|
<span class="fieldvalue"><apex:outputField value="{!esdInfo.rnd.AcceptanceComments__c}"/></span>
|
</apex:outputPanel>
|
<apex:outputPanel layout="none" rendered="{!esdInfo.canChange==true}" >
|
<span class="fieldvalue"><apex:inputField value="{!esdInfo.rnd.AcceptanceComments__c}"/></span>
|
</apex:outputPanel>
|
</li>
|
|
</ul>
|
</div>
|
</apex:outputPanel>
|
|
</apex:repeat>
|
</div>
|
</apex:outputPanel>
|
</div>
|
<script type="text/javascript">
|
var standalone = window.navigator.standalone,
|
userAgent = window.navigator.userAgent.toLowerCase(),
|
safari = /safari/.test( userAgent ),
|
ios = /iphone|ipod|ipad/.test( userAgent ),
|
ver = (navigator.userAgent).match(/OS (\d)?\d_\d(_\d)?/i)[0].split('_')[0].replace("OS ","");
|
let scanner = new Instascan.Scanner({ video: document.getElementById('preview'), scanPeriod: 5 ,mirror: false});
|
|
function filljsQR(content) {
|
if (j$("#QRType").val() == 2) {
|
filljsQR2(content, j$("#QRTypeID").val());
|
} else {
|
filljsQR1(content);
|
}
|
}
|
scanner.addListener('scan', function (content) {
|
filljsQR(content);
|
});
|
|
function qrsacn() {
|
j$("#QRType").val(1);
|
if (!standalone && !safari && ios) {
|
window.location.href="sfqr://scan";
|
} else {
|
j$(".modal").show();
|
Instascan.Camera.getCameras().then(function (cameras) {
|
if (cameras.length > 0) {
|
if (ver >= 13) {
|
scanner.start(cameras[1]);
|
} else {
|
scanner.start(cameras[0]);
|
}
|
} else {
|
console.error('No cameras found.');
|
}
|
}).catch(function (e) {
|
console.error(e);
|
});
|
}
|
}
|
|
function qrsacn2(setId) {
|
j$("#QRType").val(2);
|
j$("#QRTypeID").val(setId);
|
if (!standalone && !safari && ios) {
|
window.location.href="sfqr://scan";
|
} else {
|
j$(".modal").show();
|
Instascan.Camera.getCameras().then(function (cameras) {
|
if (cameras.length > 0) {
|
if (ver >= 13) {
|
scanner.start(cameras[1]);
|
} else {
|
scanner.start(cameras[0]);
|
}
|
} else {
|
console.error('No cameras found.');
|
}
|
}).catch(function (e) {
|
console.error(e);
|
});
|
}
|
}
|
|
function stopScan() {
|
scanner.stop().then(function () {
|
j$(".modal").hide();
|
});
|
j$("#scanedqr").children().remove();
|
}
|
|
j$(document).ready(function(){
|
j$( '#qrcode' ).unbind();
|
j$( '#qrcode' ).keypress( function ( e ) {
|
if ( e.which == 13 ) {
|
filljsQR(j$( '#qrcode' ).val());
|
return false;
|
}
|
});
|
});
|
</script>
|
</apex:form>
|
</apex:page>
|