GWY
2022-04-15 b823c7f3569cf9368e2245846e918f78f32e903a
force-app/main/default/pages/SWOPage.page
@@ -5,8 +5,99 @@
   <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
   <apex:includeScript value="{!URLFOR($Resource.connection20)}"/>
   <apex:includeScript value="{!URLFOR($Resource.apex20)}"/>
   <!-- 20220313 PI改造 by Chen Yanan -->
   <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" />
   <script>
      // 20220313 PI改造 by Chen Yanan start
      AWSService.sfSessionId = '{!GETSESSIONID()}';
      var staticResources = JSON.parse('{!staticResource}');
      var contactstaticResource = JSON.parse('{!contactstaticResource}');
      var aws_data = {};
      console.log('AWS' + {!contactAWSDataId});
      var isNew = {!isNew};
      console.log('isNew: ' + isNew);
      function Decrypt(r,dataIds,callback){
         if (!(dataIds && dataIds.length)) {
            if(callback)callback();
            return;
         }
         let Foo = function(){
            for (const id of dataIds) {
               if (aws_data.hasOwnProperty(id)) {
                  let d = aws_data[id];
                  let $e =j$("[aws-id='"+d.dataId+ "']");
                  $e.each((i,e)=>{
                     j$(e).html(d[j$(e).attr("aws-api")]);
                  })
               }
            }
            if(callback)callback();
         }
         let ids = [];
         for (const id of dataIds) {
            if (!aws_data.hasOwnProperty(id)) {
               ids.push(id);
            }
         }
         if (ids.length > 0) {
            // AWSService.search(r.searchUrl,JSON.stringify({
            //    "dataIds":ids
            // }),function(data){
            AWSService.query(r.queryUrl,ids[0],function(data){
               console.log('data: ' + JSON.stringify(data));
               // if(data.object && data.object.length > 0){
               if(data.object){
                  // for(let d of data.object){
                  //    if(d.dataId){
                  //       aws_data[d.dataId] = d;
                  //    }
                  // }
                  aws_data[data.object.dataId] = data.object;
                  Foo();
               }else{
                  if(callback)callback();
               }
            },r.token);
         }else{
            Foo();
         }
      }
      function DecryptAll(callback){
         let dataIds1 = [];
         j$('[aws-id][aws-obj="Contact"]').each((i,e)=>{
            let v = j$(e).attr('aws-id');
            if (v) {
               dataIds1.push(v);
            }
         });
         Decrypt(contactstaticResource,dataIds1,callback);
      }
      function DecryptSWOAll(callback) {
         let dataIds2 = [];
         j$('[aws-id][aws-obj="SWO__c"]').each((i,e)=>{
            let v = j$(e).attr('aws-id');
            if (v) {
               dataIds2.push(v);
            }
         });
         Decrypt(staticResources,dataIds2,callback);
      }
      j$(function(){
         DecryptSWOAll();
         DecryptAll();
      })
      // 20220313 PI改造 by Chen Yanan end
      var IS_OPEN = true;
      j$(document).ready(function() {
@@ -159,6 +250,111 @@
             IS_OPEN = false;
          }
       }
      //Add By Li JUn for PIPL 20220414 Start
      var aws_result = {};
      function saveSWOToAWS(){
            // document.getElementById("errorMsg").innerHTML = '';
            // if(!document.getElementById("Page:mainForm:idSearchVisitor:updateContactLastName").value){
            //     document.getElementById("errorMsg").innerHTML = '<strong>错误:</strong> 必须填写。';
            //     return;
            // }
            blockme();
            let es = document.getElementsByTagName('select')
            for(let ei in es){
                let e = es[ei];
                for(let opi in e.options){
                    let op = e.options[opi];
                    if(!op)continue;
                    if(op.value == "*****" && op.selected){
                        unblockUI();
                        alert('下拉框不能主动选择密文选项')
                        return;
                    }
                }
            }
            ProcessPIForAWS({},GetEditObj());
        }
      function ProcessPIForAWS(sobjJson, payloadForNewPI) {
            let url = staticResources.newUrl
            let moduleName = AWSService.insertModule;
            if (!isNew) {
            console.log('Update');
                moduleName = AWSService.updateModule;
               url = staticResources.updateUrl
            }
            console.log('Payload for AWS:'+payloadForNewPI + ' Module Name:'+moduleName);
            // AWSService.postAWS(url,moduleName, payloadForNewPI, function(result){
            AWSService.post(url, payloadForNewPI, function(result){
                aws_result = result;
                SetEditObj();
                saveNew();
            }, staticResources.token);
        }
        function GetEditObj(){
          var swoId = j$(escapeVfId("swoid")).value();
         console.log('swoId: ' + swoId);
            return JSON.stringify([{
                // lastName : document.getElementById("Page:mainForm:idSearchVisitor:updateContactLastName").value,
                // phone : document.getElementById("Page:mainForm:idSearchVisitor:updateContactPhone").value,
                // type : document.getElementById("Page:mainForm:idSearchVisitor:updateContactType").value,
                // doctorDivision1 : document.getElementById("Page:mainForm:idSearchVisitor:updateContactDoctorDivision").value,
                // dataId:selectedAwsDataId
            contactNameHidden: document.getElementById("Page:mainForm:CONTACT_NAME_HIDDEN__c").value,
                dataId:swoId
            }]);
        }
      function SetEditObj(){
            let obj = GetAWSResultObj();
            if(obj){
                console.log('Result from AWS:'+JSON.stringify(obj));
                document.getElementById('Page:mainForm:AWS_Data_Id__c').value = obj.dataId;
                document.getElementById("Page:mainForm:CONTACT_NAME_HIDDEN__c").value = obj.contactNameHidden;
                // document.getElementById("Page:mainForm:idSearchVisitor:updateContactLastName").value = obj.lastName;
                // document.getElementById("Page:mainForm:LastName_Encrypted__c").value = obj.lastNameEncrypt;
                // document.getElementById("Page:mainForm:idSearchVisitor:updateContactPhone").value = obj.phone;
                // document.getElementById("Page:mainForm:Phone_Encrypted__c").value = obj.phoneEncrypt;
                // document.getElementById("Page:mainForm:idSearchVisitor:updateContactType").value = obj.type;
                // document.getElementById("Page:mainForm:Type_Encrypted__c").value = obj.typeEncrypt;
                // document.getElementById("Page:mainForm:idSearchVisitor:updateContactDoctorDivision").value = obj.doctorDivision1;
                // document.getElementById("Page:mainForm:Doctor_Division1_Encrypted__c").value = obj.doctorDivision1Encrypt;
            }
        }
      function GetAWSResultObj(){
            if(aws_result && aws_result.object && aws_result.object.length > 0){
                return aws_result.object[0];
            }
            return null;
        }
      function Trans(){
         console.log('SWO ID : ' + document.getElementById('swoid').value);
          var swoId = j$(escapeVfId("swoid")).value();
            console.log('SFRcordId:'+swoId);
            // AWSService.postAWS(staticResources.transactionUrl,AWSService.confirmTrans, JSON.stringify({
            //         "txId":aws_result.txId,
            //         "sfRecordId":swoId,
            //         "isSuccess":1
            // }), function(result){
         AWSService.post(staticResources.transactionUrl, JSON.stringify({
                    "txId":aws_result.txId,
                    "sfRecordId":swoId,
                    "isSuccess":1
            }), function(result){
                window.location.reload();
            }, staticResources.token);
        }
      //Add By Li JUn for PIPL 20220414 End
   </script>
   <style type="text/css"> 
@@ -226,6 +422,10 @@
      <apex:actionFunction name="openPageSave" action="{!openPageSave}" reRender="">
      </apex:actionFunction>
      <apex:actionFunction name="uploadFile" action="{!uploadFile}"></apex:actionFunction>
      <!-- Add save method for PIPL 20220414 by Li Jun Start -->
      <apex:actionFunction name="saveNew" action="{!save}" reRender="swoid" onComplete="Trans()">
        </apex:actionFunction>
      <!-- Add save method for PIPL 20220414 by Li Jun End -->
      <input type="hidden" id="baseUrl" value="{!baseUrl}"/>
      <input type="hidden" id="swoid" value="{!swoid}"/>
      <input type="hidden" id="type" value="{!type}"/>
@@ -242,7 +442,12 @@
      <apex:outputPanel id="messageInfo">
         <apex:pagemessages />
        </apex:outputPanel>
      <apex:commandButton onclick="blockme();" value="Save" action="{!save}" style="width: 5%;"/>
      <!-- Before PIPL Update 20220414 By Chen Yanan Start -->
      <!-- <apex:commandButton onclick="blockme();" value="Save" action="{!save}" style="width: 5%;"/> -->
      <!-- Before PIPL Update 20220414 By Chen Yanan end -->
      <!-- After PIPL Update 20220414 By Chen Yanan Start -->
      <apex:commandButton id="saveSWO" value="Save" style="width: 5%;" onclick="saveSWOToAWS();"  rerender="dummy" />
      <!-- After PIPL Update 20220414 By Chen Yanan end -->
      <table style="width: 100%;">
         <colgroup>
               <col width="16%"/>
@@ -299,12 +504,19 @@
              <td colspan="2">{!$ObjectType.SWO__c.fields.OFFICE__c.label}<span class="textRed">*</span></td>
              <td><apex:inputField value="{!swo.TYPE__c}"/></td>
              <td colspan="2">{!$ObjectType.SWO__c.fields.CONTACT_NAME_HIDDEN__c.label}</td>
           </tr>
            <tr>
              <td colspan="2"><apex:inputField value="{!swo.OFFICE__c}"/></td>
              <td></td>
              <td colspan="2"><apex:inputField value="{!swo.CONTACT_NAME_HIDDEN__c}"/></td>
            <!-- Update By Yanan -->
              <!-- <td colspan="2"><apex:inputField value="{!swo.CONTACT_NAME_HIDDEN__c}"/></td>             -->
            <td colspan="2" >
               <apex:inputHidden id="AWS_Data_Id__c" value="{!swo.AWS_Data_Id__c}"/>
               <apex:inputField html-aws-obj="SWO__c" html-aws-api="CONTACT_NAME_HIDDEN__c" html-aws-id="{!swo.AWS_Data_Id__c}" id="CONTACT_NAME_HIDDEN__c" value="{!swo.CONTACT_NAME_HIDDEN__c }" />
            </td>
            <!-- Update By Yanan -->
           </tr>
           <tr>
@@ -456,8 +668,12 @@
       <table style="width: 100%;border-collapse: collapse;">
          <tr class="title">
             <td id="titleProduct" class="title1"><apex:commandLink oncomplete="clickColorChange('Product')" action="{!setProduct}" reRender="table" value="Product Info" /></td>
             <td id="titleCase" class="title1"><apex:commandLink oncomplete="clickColorChange('Case')" action="{!setCase}" reRender="table" value="Case Info" /></td>
             <td id="titlemail" class="title1"><apex:commandLink oncomplete="clickColorChange('mail')" action="{!setMail}" reRender="table" value="Mail Merge" /></td>
             <!-- PIPL Update 20220414 By Chen Yanan Start -->
            <!-- <td id="titleCase" class="title1"><apex:commandLink oncomplete="clickColorChange('Case')" action="{!setCase}" reRender="table" value="Case Info" /></td> -->
             <!-- After -->
            <td id="titleCase" class="title1"><apex:commandLink oncomplete="clickColorChange('Case');DecryptAll();" action="{!setCase}" reRender="table" value="Case Info" /></td>
             <!-- PIPL Update 20220414 By Chen Yanan End -->
            <td id="titlemail" class="title1"><apex:commandLink oncomplete="clickColorChange('mail')" action="{!setMail}" reRender="table" value="Mail Merge" /></td>
             <td id="titleTracking" class="title1"><apex:commandLink oncomplete="clickColorChange('Tracking')" action="{!setTracking}" reRender="table" value="Tracking" /></td>
             <td id="titleTechnical" class="title1"><apex:commandLink oncomplete="clickColorChange('Technical')" action="{!setTechnical}" reRender="table" value="Technical Info" /></td>
             <td id="titleEstimation" class="title1"><apex:commandLink oncomplete="clickColorChange('Estimation')" action="{!setEstimation}" reRender="table" value="Estimation" /></td>
@@ -701,7 +917,13 @@
                 </tr>
                 <tr>
                    <td><apex:outputField value="{!swo.CASE_NUMBER__c}" ></apex:outputField></td>
                    <td><apex:inputField value="{!swo.EMAIL__c}"/></td>
                  <!-- PIPL Update 20220414 By Chen Yanan Start -->
                    <!-- <td><apex:inputField value="{!swo.EMAIL__c}"/></td> -->
                  <td colspan="2" align="left" >
                     <apex:inputField html-aws-obj="Contact" html-aws-api="email" html-aws-id="{!contactAWSDataId}" value="{!swo.EMAIL__c}" />
                  </td>
                  <!-- PIPL Update 20220414 By Chen Yanan End -->
                 </tr>
                 <tr>
                    <td>{!$ObjectType.SWO__c.fields.COMPANY__c.label}</td>
@@ -716,7 +938,12 @@
                    <td>{!$ObjectType.SWO__c.fields.TRAN__c.label}</td>
                 </tr>
                 <tr>
                    <td><apex:outputField value="{!swo.CONTACT__c}" ></apex:outputField></td>
                  <!-- 20220313 PI改造 by Chen Yanan -->
                    <!-- <td><apex:outputField value="{!swo.CONTACT__c}" ></apex:outputField></td> -->
                  <td colspan="2" align="left" >
                     <a href="/{!swo.CONTACT__c}" aws-obj="Contact" aws-api="lastName" aws-id="{!contactAWSDataId}">{!swo.CONTACT__r.Name}</a>
                  </td>
                  <!-- 20220313 PI改造 by Chen Yanan -->
                    <td><apex:inputField value="{!swo.TRAN__c}"/></td>
                 </tr>
             </table>
@@ -1381,9 +1608,12 @@
          </apex:outputPanel>
          <apex:outputPanel rendered="{!IF(type = 'General' || type = 'All',true,false)}">
             <apex:commandButton value="Attach" onclick="uploadFileJS();return false;"></apex:commandButton>
            <!-- Before PIPL Update by Li Jun 20220414 Start -->
             <apex:commandButton value="Attach" action="{!uploadFile}"></apex:commandButton>
            <!-- Before PIPL Update by Li Jun 20220414 End -->
            <!-- After PIPL Update by Li Jun 20220414 Start -->
             <input class="btn" type="Button" value="PIPL Attach" onclick="window.open('/apex/SWOFileUploadPage')" />
            <!-- After PIPL Update by Li Jun 20220414 End -->
             <table class="tableCss" style="border:1px solid #000000;width: 80%">   
                <tr style="text-align:center;">
                   <th style="text-align:center;width: 33%;">File Name</th>
@@ -1775,8 +2005,11 @@
      <br/>
      <br/>
      <!-- <apex:commandButton action="{!save}" onclick="blockme();" value="Save" oncomplete="isOk();unblockUI();" reRender="Page,mainForm" style="width: 5%;"/> -->
      <apex:commandButton onclick="blockme();" value="Save" action="{!save}" style="width: 5%;"/>
      <!-- PIPL Update 20220414 By Chen Yanan -->
      <!-- <apex:commandButton onclick="blockme();" value="Save" action="{!save}" style="width: 5%;"/> -->
      <apex:commandButton id="saveSWOs" value="Save" style="width: 5%;" onclick="saveSWOToAWS();" rerender="dummy" />
      <!-- PIPL Update 20220414 By Chen Yanan -->
   </apex:form>
   
   <br/>