<apex:page lightningStylesheets="true" controller="TransferApplySelectDetailController" title="选择调拨明细" showHeader="false" sidebar="false" id="allPage" action="{!init}">
<apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
<apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
<apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
<apex:includeScript value="{!URLFOR($Resource.RelationListPagingCmpJS)}"/>
<apex:stylesheet value="{!URLFOR($Resource.StyleUtilCss)}"/><!-- 20230619 ljh lightning  -->    
<!-- 20230703 ljh add -->
<style type="text/css">
    table.list .col_Fixture_Model_No__c  {width:100px;} 
    table.list .col_SerialNumber__c  {width:100px;} 
    table.list .col_Internal_Asset_number_key__c  {width:150px;} 
    table.list .col_Internal_asset_location__c  {width:100px;} 
    table.list .col_Product_category__c  {width:150px;} 
    table.list .col_Salesdepartment__c  {width:100px;} 
    table.list .col_Salesdepartment_After__c  {width:150px;} 
    table.list .col_SalesProvince__c  {width:100px;} 
    table.list .col_SalesProvince_After__c  {width:150px;} 
    table.list .col_Equipment_Type__c  {width:100px;} 
    table.list .col_Equipment_Type_After__c  {width:150px;} 
    table.list .col_EquipmentSet_Managment_Code__c  {width:100px;} 
    table.list .col_EquipmentSet_Managment_Code_After__c  {width:150px;} 
    table.list .col_Main_OneToOne__c  {width:100px;} 
    table.list .col_OneToOneAccessory__c  {width:100px;} 
    table.list .col_Manage_type__c  {width:100px;} 
    table.list .col_Loaner_accsessary__c  {width:100px;} 
    table.list .col_VF_You_Xiao_Ku_Cun__c  {width:100px;} 
    table.list .col_VF_TransferCount__c  {width:100px;} 
    table.list .col_VF_Abandoned_RealThing__c {width:100px;} 
    table.list .col_VF_TransferCount_Abandoned__c {width:100px;} 
    table.list .col_VF_CountForRepair__c  {width:100px;}
    table.list .col_VF_TransferCount_Repair__c  {width:100px;}
    table.list .col_VF_Abandoned_Inventory__c  {width:100px;}
    table.list .col_VF_TransferCount_Lost__c {width:100px;}
    table.list .col_WH_location__c {width:100px;}
    .mySearch tr{
        height: 40px;
    }
</style>
<script type="text/javascript">
    var heightAjustment = 120;
    var widthAjustment = 30;
    var popupBox;
    var filename = "";
    var blobfile = "";
    popupBox = new SimpleDialog("CSVImportDialogId", false);  // 不可拖动
    popupBox.createDialog();
    function openPopupCSV() {
        popupBox.setTitle("导入CSV文件");
        popupBox.importContentNode(document.getElementById("{!$Component.allForm.popupBox}"));
        popupBox.show(document.getElementById("{!$Component.allForm.popupBox}"));
    }
    function remoteLocationPost() {
        var fbody = document.getElementById("file_input").files[0];
        if (typeof fbody === "undefined") {
            alert("请选择CSV文件");
            return;
        }
        else {
            var reader = new FileReader();
            reader.readAsText(fbody);
            reader.onload = function(val) {
                if(this.result.split("\n").length - 1 > {!detailCountLimit}){
                    alert("文件不可超过" + {!detailCountLimit} + "行");
                    return;
                }
                // 判断CSV文件BOM，若包含BOM，则删除。
                if (this.result.charCodeAt(0) === 0xFEFF) {  // 如果第一个字符的编码为utf8
                    this.result = this.result.substr(1);  // 在utf-8编码中，三个隐藏的字节 0xEF 0xBB 0xBF被视为一个字符 EFBBBF(UTF8) FEFF(unicode) 65279
                }
                blockme();
                passToController(this.result);
            }
            popupBox.hide();
        }
    }
    function searchGoPageCustom() {
        blockme();
        var cnt = j$('td.dataCellBorder1 input.rowchkcls').length;
        var isChanged = false;

        for (var i = 0; i < cnt; i++) {
            if (document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable:' + i + ':changeFlg').value == 1) {
                isChanged = true;
                break;
            }
        }

        if (isChanged) {
            if (window.confirm('画面上的数据有变化，要保存所做的变更吗？\n点击 [确定] 保存并检索\n点击 [取消] 只翻页，放弃保存')) {
                saveAndSearchGoPage(3);
            } else {
                searchGoPageCtrl();
            }
        } else {
            searchGoPageCtrl();
        }
    }
    function searchNextCustom() {
        blockme();
        var cnt = j$('td.dataCellBorder1 input.rowchkcls').length;
        var isChanged = false;
        for (var i = 0; i < cnt; i++) {
            if (document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable:' + i + ':changeFlg').value == 1) {
                isChanged = true;
                break;
            }
        }

        if (isChanged) {
            if (window.confirm('画面上的数据有变化，要保存所做的变更吗？\n点击 [确定] 保存并检索\n点击 [取消] 只翻页，放弃保存')) {
                saveAndSearchNext(4);
            } else {
                searchNextCtrl();
            }
        } else {
            searchNextCtrl();
        }
    }

    function searchPreviousCustom() {
        blockme();
        var cnt = j$('td.dataCellBorder1 input.rowchkcls').length;
        var isChanged = false;

        for (var i = 0; i < cnt; i++) {
            if (document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable:' + i + ':changeFlg').value == 1) {
                isChanged = true;
                break;
            }
        }
        if (isChanged) {
            if (window.confirm('画面上的数据有变化，要保存所做的变更吗？\n点击 [确定] 保存并检索\n点击 [取消] 只翻页，放弃保存')) {
                saveAndSearchPrevious(5);
            } else {
                searchPreviousCtrl();
            }
        } else {
            searchPreviousCtrl();
        }
    }

    function searchOppJs() {
        blockme();

        var cnt = j$('td.dataCellBorder1 input.rowchkcls').length;
        var isChanged = false;
        for (var i = 0; i < cnt; i++) {
            if (document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable:' + i + ':changeFlg').value == 1) {
                isChanged = true;
                break;
            }
        }
        if (isChanged) {
            if (window.confirm('画面上的数据有变化，要保存所做的变更吗？\n点击 [确定] 保存并检索\n点击 [取消] 只检索，放弃保存')) {
                saveAndSearch(1);
            } else {
                searchOpp();
            }
        } else {
            searchOpp();
        }
    }
</script>

    <apex:form id="allForm">
        <apex:actionFunction name="searchOpp" action="{!searchOpp}" rerender="allForm,checEventFrame" oncomplete="unblockUI();"/>
        <apex:actionFunction name="saveAndSearch" action="{!saveAndSearch}" rerender="allForm,checEventFrame" oncomplete="unblockUI();">
            <apex:param name="firstParam" assignTo="{!saveType}" value="" />
        </apex:actionFunction>
        <apex:actionFunction action="{!saveAndSearchPrevious}" name="saveAndSearchPrevious" rerender="allForm, message, checEventFrame" status="statusPreload"  oncomplete="unblockUI();"/>
        <apex:actionFunction action="{!saveAndSearchNext}" name="saveAndSearchNext" rerender="allForm, message, checEventFrame" status="statusPreload"  oncomplete="unblockUI();"/>
        <apex:actionFunction action="{!saveAndSearchGoPage}" name="saveAndSearchGoPage" rerender="allForm, message, checEventFrame" status="statusPreload"  oncomplete="unblockUI();"/>
        <apex:actionFunction action="{!searchNextCtrl}" name="searchNextCtrl" rerender="allForm, message, checEventFrame" status="statusPreload"  oncomplete="unblockUI();"/>
        <apex:actionFunction action="{!searchPreviousCtrl}" name="searchPreviousCtrl" rerender="allForm, message, checEventFrame" status="statusPreload"  oncomplete="unblockUI();"/>
        <apex:actionFunction action="{!searchGoPageCtrl}" name="searchGoPageCtrl" rerender="allForm, message, checEventFrame" status="statusPreload"  oncomplete="unblockUI();"/>
        <apex:actionFunction name="passToController" action="{!importCSVFile}" rerender="allForm, message, checEventFrame" oncomplete="unblockUI();">
            <apex:param name="csvData" value="" />
        </apex:actionFunction>
        <apex:outputPanel style="display:none">
            <apex:outputPanel id="popupBox" layout="block">
                <input type="file" id="file_input" name="attFile" accept=".csv" /><br/>
                <center>
                    <input type="hidden" name="hidden" /> <!-- 20230710 ljh 为了按钮对齐 -->
                    <apex:commandButton value="确认" onclick="remoteLocationPost(); return false;" style="width: 20%; margin: 20px 10px 0px 10px" />
                    <apex:commandButton value="取消" onclick="popupBox.hide();" style="width: 20%; margin: 20px 10px 0px 10px" />
                </center>
            </apex:outputPanel>
        </apex:outputPanel>
        <apex:outputPanel id="pageallPanel">
            <apex:pageBlock id="searchBlock" tabStyle="Report">
                <apex:outputPanel layout="none" rendered="{!!isComeFromRa}">
                <!-- 20230710 ljh  -->
                <table class="mySearch">
                    <tr>
                        <td colspan="3" style="padding-top:2px;">关键字<apex:inputText value="{!keyword}"/> </td>
                        <!-- 20230710 ljh  align="right" -->
                        <td colspan="3" style="padding-top:2px;" align="right">固定资产编号(Key)<apex:inputText value="{!assetnumber}" /></td>
                        <td style="padding-left:5px;padding-top:2px;"><apex:commandButton disabled="{!readonly}" value="检索" onclick="searchOppJs(); return false;"/></td>
                        <td style="padding-left:5px;padding-top:2px;"><apex:commandButton action="{!turnback}" value="返回" rerender="allForm,checEventFrame"/></td>
                        <td style="padding-left:5px;padding-top:2px;"><apex:commandButton disabled="{!readonly}" onclick="openPopupCSV(); return false;" value="批量导入" rerender="allForm,checEventFrame"/></td>
                        <td style="padding-left:5px;padding-top:2px;"><apex:commandButton disabled="{!readonly}" action="{!cancelDetail}" value="取消明细" onclick="blockme();" rerender="allForm,checEventFrame" oncomplete="unblockUI();" /></td>
                        <td style="padding-left:5px;padding-top:2px;"><apex:commandButton disabled="{!readonly}" rendered="{!!isCenter}" action="{!savePage}" value="保存" onclick="blockme();" rerender="allForm,checEventFrame" oncomplete="unblockUI();" /></td>
                    </tr>
                    <tr style="{!IF(isCenter,'','display: none;')} ">
                        <td colspan="2" style="padding-top:2px;">所在地区(本部)
                            <apex:selectList id="salesdepartmentOpts" size="1">
                                <apex:selectOptions value="{!salesdepartmentOpts}"/>
                            </apex:selectList>
                        </td>
                        <td colspan="2" style="padding-top:2px;">所在地区(省)
                            <apex:selectList id="salesProvinceOpts" size="1">
                                <apex:selectOptions value="{!salesProvinceOpts}"/>
                            </apex:selectList>
                        </td>
                        <!-- 20230710 ljh  align="right" -->
                        <td colspan="2" style="padding-top:2px;" align="right" >备品分类
                            <apex:selectList id="equipmentTypeOpts" size="1">
                                <apex:selectOptions value="{!equipmentTypeOpts}"/>
                            </apex:selectList>
                        </td>
                        <td style="padding-left:5px;padding-top:2px;"><apex:commandButton disabled="{!readonly}" rendered="{!isCenter}" value="适用" reRender="allForm" onclick="applyJs(); return false;"/></td>
                        <td style="padding-left:5px;padding-top:2px;"><apex:commandButton disabled="{!readonly}" action="{!savePage}" value="保存" onclick="blockme();" rerender="allForm,checEventFrame" oncomplete="unblockUI();" /></td>
                    </tr>
                    <tr>
                        <td colspan="3" id="filter" >
                            数据字段
                            <apex:selectList value="{!fieldName}" size="1" style="width:110px">
                                <apex:selectOptions value="{!fieldNameOpts}"/>
                            </apex:selectList>　
                            <apex:selectList value="{!operator}" size="1">
                                <apex:selectOptions value="{!operatorOpts}"/>
                            </apex:selectList>　
                            <apex:inputText value="{!fieldvalue}" style="width:80px"/>
                            <apex:commandButton value="筛选" action="{!filter}" onclick="blockme();" rerender="allForm,checEventFrame" oncomplete="unblockUI()"/>
                            <apex:commandButton value="清除" action="{!clear}" onclick="blockme();" rerender="allForm,checEventFrame" oncomplete="unblockUI()"/>
                        </td>
                    </tr>
                </table>
                <!-- 20201215 ljh add start-->
                </apex:outputPanel>
                <apex:outputPanel layout="none" rendered="{!isComeFromRa}">
                <table>
                    <tr>
                        <td><apex:commandButton disabled="{!readonly}" action="{!turnback}" value="返回" rerender="allForm,checEventFrame"/></td>
                        <td><apex:commandButton disabled="{!readonly}" action="{!savePage}" value="保存" style="margin-left:5px;" onclick="blockme();" rerender="allForm,checEventFrame" oncomplete="unblockUI();" /></td>
                    </tr>
                </table>
                </apex:outputPanel>
                <!-- 20201215 ljh add end-->
                <div style="clear:both;"></div>
                <apex:outputPanel id="message">
                    <apex:pageMessages />
                </apex:outputPanel>
            </apex:pageBlock>
            <c:RelationListPagingCmp id="cmpid" pgController="{!this}" hasCheckbox="true" isRadio="false" userCPaging="true"/>
        </apex:outputPanel>
    </apex:form>

    <apex:outputPanel id="checEventFrame">
        <script type="text/javascript">
            if({!readonly}) {
                j$("input[type!=button]").prop('disabled', true);
                j$("select").prop('disabled', true);
                j$("td#filter input").prop('disabled', false);
                j$("td#filter select").prop('disabled', false);
            }
            // 非集中以外的要去掉三个选项
            if('{!parentObj.RecordType.DeveloperName}'!='CenterToOther') {
                j$("select option[value='13.CTEC教育本部']").remove();
                j$("select option[value='14.医疗人才教育培训本部']").remove();
                j$("select option[value='15.医疗法规事务和质量管理本部']").remove();
            }
            j$("table#tableData tr.dataRow").each(function(index){
                // 个体的调拨数量不可修改
                if(index < j$("tr.dataRow td.dataCellBorder1.col_Manage_type__c span").length
                    && j$("tr.dataRow td.dataCellBorder1.col_Manage_type__c span")[index].innerText == '个体管理') {
                    if(index < j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount__c input").length) {
                        j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount__c input")[index].disabled = true;
                    }
                    if(index < j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Abandoned__c input").length) {
                        j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Abandoned__c input")[index].disabled = true;
                    }
                    if(index < j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Repair__c input").length) {
                        j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Repair__c input")[index].disabled = true;
                    }
                    if(index < j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Lost__c input").length) {
                        j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Lost__c input")[index].disabled = true;
                    }
                }
                // 附属品修改
                var accCheck ='';
                if (index < j$("#tableData td.dataCellBorder1.col_Loaner_accsessary__c span img").length) {
                    accCheck = j$("#tableData td.dataCellBorder1.col_Loaner_accsessary__c span img")[index].title;
                }
                //20210812 ljh 管理编码 start
                if(index < j$("tr.dataRow td.dataCellBorder1.col_EquipmentSet_Managment_Code_After__c input").length) {
                    j$("tr.dataRow td.dataCellBorder1.col_EquipmentSet_Managment_Code_After__c input")[index].disabled = true;
                }
                //20210812 ljh 管理编码 end
                if(accCheck == 'Checked' || accCheck == '选取的' || accCheck == 'チェック'){
                    // 一对一附属品的复选框不显示
                    var onetoonecheck = '';
                    if(index < j$("#tableData td.dataCellBorder1.col_OneToOneAccessory__c span img").length) {
                        onetoonecheck = j$("#tableData td.dataCellBorder1.col_OneToOneAccessory__c span img")[index].title;
                    }
                    var isonetoone = (onetoonecheck == 'Checked' || onetoonecheck == '选取的' || onetoonecheck == 'チェック');
                    if('{!isComeFromRa}' == 'true' || isonetoone) {
                        // 一对一附属品勾不显示
                        if(isonetoone) {
                            j$("tr.dataRow td.dataCellBorder1 input.rowchkcls")[index].style.display = 'none';
                        }
                        // 数量禁用
                        if(index < j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount__c input").length) {
                            j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount__c input")[index].disabled = true;
                        }
                        if(index < j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Abandoned__c input").length) {
                            j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Abandoned__c input")[index].disabled = true;
                        }
                        if(index < j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Repair__c input").length) {
                            j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Repair__c input")[index].disabled = true;
                        }
                        if(index < j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Lost__c input").length) {
                            j$("tr.dataRow td.dataCellBorder1.col_VF_TransferCount_Lost__c input")[index].disabled = true;
                        }
                    }

                    if(index < j$("tr.dataRow td.dataCellBorder1.col_SalesProvince_After__c select").length) {
                        j$("tr.dataRow td.dataCellBorder1.col_SalesProvince_After__c select")[index].disabled = true;
                    }
                    if(index < j$("tr.dataRow td.dataCellBorder1.col_Equipment_Type_After__c select").length) {
                        j$("tr.dataRow td.dataCellBorder1.col_Equipment_Type_After__c select")[index].disabled = true;
                    }
                    if(index < j$("tr.dataRow td.dataCellBorder1.col_EquipmentSet_Managment_Code_After__c input").length) {
                        j$("tr.dataRow td.dataCellBorder1.col_EquipmentSet_Managment_Code_After__c input")[index].disabled = true;
                    }
                }
            });
        </script>
    </apex:outputPanel>
    <script type="text/javascript">
        // 适用按钮
        function applyJs() {
            var salesdepartment = document.getElementById('allPage:allForm:searchBlock:salesdepartmentOpts').value; // 所在地区本部
            var salessalesProvince = document.getElementById('allPage:allForm:searchBlock:salesProvinceOpts').value; // 所在地区省
            var equipmentType = document.getElementById('allPage:allForm:searchBlock:equipmentTypeOpts').value;  // 备品分类

            var salesdepartments = [];
            j$("td.dataCellBorder1.col_Salesdepartment_After__c").each(function() {
                salesdepartments.push(j$(this));
            });
            var salessalesProvinces = [];
            j$("td.dataCellBorder1.col_SalesProvince_After__c").each(function() {
                salessalesProvinces.push(j$(this));
            });
            var equipmentTypes = [];
            j$("td.dataCellBorder1.col_Equipment_Type_After__c").each(function() {
                equipmentTypes.push(j$(this));
            });

            var currentPageRecordCount = j$("input.rowchkcls").length;
            var lastchecked = false;
            for (var i = 0; i < currentPageRecordCount; i++) {
                var isoto = j$("td.dataCellBorder1 input.rowchkcls")[i].style.display == "none";
                if(isoto) {
                    j$("td.dataCellBorder1 input.rowchkcls")[i].checked = lastchecked;
                }
                var checked = j$("td.dataCellBorder1 input.rowchkcls")[i].checked;
                if (checked) {
                    if (salesdepartment != '' && typeof(salesdepartment) != "undefined") {
                        salesdepartments[i].find("select:enabled").val(salesdepartment);
                    }
                    if (salessalesProvince != '' && typeof(salessalesProvince) != "undefined") {
                        salessalesProvinces[i].find("select:enabled").val(salessalesProvince);
                    }
                    if (equipmentType != '' && typeof(equipmentType) != "undefined") {
                        equipmentTypes[i].find("select:enabled").val(equipmentType);
                    }
                }
                lastchecked = checked
            }
        }
        function onFieldChanged (inputfield, lineno) {
            document.getElementById('allPage:allForm:cmpid:cmpinnerid:dataBlock:oppTable_L:' + lineno + ':rowCheck').checked = true;
        }
    </script>
</apex:page>