/* * Case Initiation page behaviour. * * This file owns record loading/navigation, verification-section state, * address copying and duplicate-address lookup. The encrypted JSON save * workflow is intentionally isolated in application-save.js. */ var records=[]; var recIndx = 0; var recpos = 0; var SameAddr=[]; var AddrElem=[ ["rv","raddr1","raddr2","raddr3","rlandmark","Rcolony","colr","rcity","rpincode","rphone"], ["ov","companyname","oaddr1","oaddr2","oaddr3","olandmark","Ocolony","colo","ocity","opincode","ophone","extension"], ["pv","paddr1","paddr2","paddr3","plandmark","Pcolony","colp","pcity","ppincode"], ["bankcode","bankcode","bank_branch_id","product","loanamount","apptype","contactperson","specialinst"] ]; var selectedAddr=-1; var FocusAfter="customername"; var CHECKBOX_FIELDS=new Set(["rv","sradd","rtv","ov","soadd","otv","rco","pv","rcp","ocp","spadd","refv","docv"]); var DUPLICATE_OPERATION={R:19,O:20,P:21,A:22}; var PUNCHED_RECORDS_URL="punchedrecs"; function InitPage() { var portField = document.getElementById("portfolio_id"); var initialPortField = document.getElementById("initial-portfolio-id"); var visibleContentsField = document.getElementById("visiblecontents"); var port = initialPortField ? initialPortField.value : (portField ? portField.value : "-1"); var viscontents = visibleContentsField ? visibleContentsField.value : ""; if (viscontents && viscontents.slice(-ColDelim.length) !== ColDelim) { viscontents += ColDelim; } centerDivBoth("formcontainer","H"); HideSections('rtv'); HideSections('otv'); HideSections('section'); UnhideSections(viscontents,ColDelim); if (portField) { $(portField).val(port); } if(port>0) { if(document.getElementById("ajaxmsg") !== null) { CygnusNotifications.show({type:"warning",code:"1001AJX",message:"Another operation is being processed, please wait.",duration:3000}); return; } LoadingMsg("Fetching records, please wait...","ajaxmsg"); loadPunchedRecords(port,$("#uuid").val()); } } function GotoRecord(el,searchtype) { var recno=el.value; if(recno!='') { if(searchtype == 'recno') { if(recno > recIndx || recno <=0) { CygnusNotifications.show({type:"danger",code:"1001IRNG",message:"Invalid input. Out of range",duration:3000}); } else { recpos=recno-1; FillDetails(recpos); } } else { for(var index = 0; index < records.length; index++ ) { if( records[index].applno === recno ) { recpos = index; FillDetails(recpos); break; } } } } } function AddNewRecord() { if(recIndx==0 || String(records[recIndx-1].case_id)!='0') { recIndx = recIndx+1; recpos = recIndx-1; records[recpos]={case_id:'0',portfolio_id:$("#portfolio_id").val(),status:'0', company_id:$("#company_id").val(),branch_id:$("#branch_id").val(),uuid:'',mvcode:'******'}; } else { recpos=recIndx-1; } FillDetails(recpos); } function AfterResponse(response,oprID) { if(oprID>=19 && oprID<=22) handleDuplicateDetailsResponse(response,oprID); } async function loadPunchedRecords(portfolioId,documentCaseId) { try { var query=new URLSearchParams({portfolioId:portfolioId,documentCaseId:documentCaseId || ""}); var response=await fetch(PUNCHED_RECORDS_URL+"?"+query.toString(),{ method:"GET",credentials:"same-origin",headers:{Accept:"application/json"} }); var body=await response.json().catch(function(){return null;}); if(!response.ok || !body || !body.success) throw body && body.message ? body.message : {}; records=Array.isArray(body.data && body.data.records) ? body.data.records : []; recIndx=records.length; updateRecordCounter(0,recIndx); recpos=recIndx==0 ? 0 : recIndx-1; FillDetails(recpos); } catch(error) { CygnusNotifications.show({type:"danger",code:error.code || "APP-5002", message:error.message || "Cygnus could not load punched records.",referenceId:error.referenceId}); records=[];recIndx=0;recpos=0;FillDetails(0); } finally{$("#ajaxmsg").remove();} } function handleDuplicateDetailsResponse(response,oprID) { var rows=response.split(RowDelim).slice(0,-1); if($("#portfolio_id").val()==81) { for(var index=0;index0) tempPos=tempPos-1; else return false; } if(arrOpr==3) { if(tempPos 0) { document.forms['casedetails'].reset(); updateRecordCounter(indx+1,recIndx); Object.keys(records[indx]).forEach(function(fieldName){fillRecordField(fieldName,records[indx][fieldName]);}); $("#btnsave").toggle($("#status").val()!='1'); FireClickEvents(); document.getElementById("applno").focus(); } else { CygnusNotifications.show({type:"danger",code:"5005MQRY",message:"No records found",duration:3000}); AddNewRecord(); } } function fillRecordField(fieldName,fieldValue) { var field=document.getElementById(fieldName) || dynamicFieldElement(fieldName); if(!field) return; if(CHECKBOX_FIELDS.has(fieldName)) { field.checked=fieldName=='docv' ? $(field).is(":visible") : fieldValue=='1'; return; } field.value=fieldValue; } function dynamicFieldElement(fieldName) { var dynamicFields=document.querySelectorAll("#FormPanel6 [id]"); for(var index=0;index( "+current+" / "+total+" )"); } function FireClickEvents() { ["rv","ov","rtv","otv","pv","refv"].forEach(function(id){HandleClick(document.getElementById(id));}); } function FireToggleEvents() { ToggleChks(document.getElementById('rv').checked && document.getElementById('ov').checked,["rco"]); var applicationType=document.getElementById('apptype').value.toUpperCase(); ToggleChks(applicationType!='APPLICANT' && applicationType!='-1',["sradd","soadd","spadd"]); ToggleChks(document.getElementById('rv').checked,["rcp"]); ToggleChks(document.getElementById('ov').checked,["ocp"]); } function HandleClick(el) { var handler=VERIFICATION_HANDLERS[el.id]; if(handler) handler(el); } var VERIFICATION_HANDLERS={ rv:function(el){ setFormValidation(el,'FormPanel2',document.getElementById('rtv').checked); EnableDisableFields(el.checked,'raddr1,raddr2,raddr3,rlandmark,colr,rpincode',','); }, rtv:function(el){setFormValidation(el,'FormPanel2',document.getElementById('rv').checked);}, ov:function(el){ setFormValidation(el,'FormPanel3',document.getElementById('otv').checked); EnableDisableFields(el.checked,'oaddr1,oaddr2,oaddr3,olandmark,colo,opincode',','); }, otv:function(el){setFormValidation(el,'FormPanel3',document.getElementById('ov').checked);}, pv:function(el){ setFormValidation(el,'FormPanel4',false); EnableDisableFields(el.checked,'paddr1,paddr2,paddr3,plandmark,colp,ppincode',','); if(!el.checked){document.getElementById('rcp').checked=false;document.getElementById('ocp').checked=false;} }, refv:function(el){setFormValidation(el,'FormPanel5',false);}, rco:function(el){AutoFill('rco',el.checked ? 1 : 0);}, rcp:function(el){handlePropertyCopy(el,'rcp','ocp');}, ocp:function(el){handlePropertyCopy(el,'ocp','rcp');} }; function handlePropertyCopy(el,copyType,otherCheckboxId) { AutoFill(copyType,el.checked ? 1 : 0); if(!el.checked) return; document.getElementById(otherCheckboxId).checked=false; var property=document.getElementById('pv'); property.checked=true; HandleClick(property); } function setFormValidation(Elem,FormPanel,CounterPartElem) { if(Elem.checked || CounterPartElem) { UnhideSections(FormPanel+ColDelim, ColDelim); } else { HideSections(FormPanel); } CygnusInitiationValidation.validateVerification(Elem.id); FireToggleEvents(); } function AutoFill(Opt,FillMode) { var mapping=ADDRESS_COPY_MAPPINGS[Opt]; if(!mapping) return; if(FillMode==1) CopyDetails(mapping.source,mapping.target); else if(document.getElementById(mapping.sourceColony).value==document.getElementById(mapping.targetColony).value) ClearDetails(mapping.target); } var ADDRESS_COPY_MAPPINGS={ rco:{ source:["raddr1","raddr2","raddr3","Rcolony","colr","rcity","rlandmark","rpincode","rphone"], target:["oaddr1","oaddr2","oaddr3","Ocolony","colo","ocity","olandmark","opincode","ophone"], sourceColony:"Rcolony",targetColony:"Ocolony" }, rcp:{ source:["raddr1","raddr2","raddr3","Rcolony","colr","rcity","rlandmark","rpincode"], target:["paddr1","paddr2","paddr3","Pcolony","colp","pcity","plandmark","ppincode"], sourceColony:"Rcolony",targetColony:"Pcolony" }, ocp:{ source:["oaddr1","oaddr2","oaddr3","Ocolony","colo","ocity","olandmark","opincode"], target:["paddr1","paddr2","paddr3","Pcolony","colp","pcity","plandmark","ppincode"], sourceColony:"Ocolony",targetColony:"Pcolony" } }; function ToggleChks(IsVisible,ChildElems) { if(IsVisible) { ChildElems.forEach(function(id){UnhideSections(id+ColDelim,ColDelim);}); } else { ChildElems.forEach(function(id){HideSections(id);document.getElementById(id).checked=false;}); } } function ClearDetails(TargetFields) { TargetFields.forEach(function(id){document.getElementById(id).value="";}); } function CopyDetails(SourceFields,TargetFields) { SourceFields.forEach(function(id,index){document.getElementById(TargetFields[index]).value=document.getElementById(id).value;}); } function AfterOptSelect(ElemToRemove,OprID) { FillSameDet(selectedAddr, OprID); selectedAddr=-1; ElemToRemove.parentNode.removeChild(ElemToRemove); } function ShowAddrOptions(OprID) { var optDiv=document.createElement("div"); var Addr=""; optDiv.setAttribute("id","optDiv"); optDiv.setAttribute("class","FormPanel"); optDiv.setAttribute("style","font-family:Tahoma;overflow:visible"); var OptionPanel="
"; for(var indx=0;indx"; OptionPanel=OptionPanel+""; Addr=""; } OptionPanel=OptionPanel+"
Available Addresses
"; for(var cindx=0;cindx<4;cindx++) { Addr=Addr+" "+escapeHtml(SameAddr[indx][cindx]); } OptionPanel=OptionPanel+""+Addr+"
"; optDiv.innerHTML=OptionPanel; ShowInputDialog(optDiv,"Select Address","hint","inptDialog"); document.getElementById('rb0').focus(); } function escapeHtml(value) { return String(value == null ? "" : value).replace(/[&<>"']/g, function(character) { return ({"&":"&","<":"<",">":">",'"':""","'":"'"})[character]; }); } function FillSameDet(AddrIndex,OprID) { if(!(AddrIndex < 0)) { for(var cindx=0;cindx1) { ShowAddrOptions(OprID); } else if(SameAddr.length===1) { FillSameDet(0,OprID); } else { FillSameDet(-1,OprID); } } function FindSameDet(Elm,Visit,focAfter) { if($("#case_id").val()!='0' && Visit=='A') { return; } else { FocusAfter=focAfter; var procFlag=true; if(Elm.type=='checkbox') { procFlag=Elm.checked; } if(procFlag) { var Applno=document.getElementById('applno').value; if(Applno.length==0) { if(Elm.type=='checkbox'){Elm.checked=false;} CygnusNotifications.show({type:"danger",code:"VLFRM",message:"Please enter application number.",duration:3000}); document.getElementById('applno').focus(); return false; } else { SameAddr=[]; var oprId=DUPLICATE_OPERATION[Visit]; var QryStr="val="+encodeURIComponent(Applno)+"&val1="+encodeURIComponent($("#portfolio_id").val())+"&val2="+encodeURIComponent(oprId); RunAjax("GET","findsdet",QryStr,oprId); } } } } function FindStr(el,elmids) { el.value=el.value.split('->')[0]; var skey=el.value.trim().toUpperCase(); if(skey!='UNKNOWN' && skey!='-1') { for(var indx=0;indx-1) { return true; } } } else { return true; } return false; } var ADDRESS_SECTIONS={ r:{verification:"rv",city:"rcity",colony:"colr",colonyId:"Rcolony",addressFields:["raddr2","raddr3"]}, o:{verification:"ov",city:"ocity",colony:"colo",colonyId:"Ocolony",addressFields:["oaddr2","oaddr3"]}, p:{verification:"pv",city:"pcity",colony:"colp",colonyId:"Pcolony",addressFields:["paddr2","paddr3"]} }; function addressSectionFor(fieldId) { var keys=Object.keys(ADDRESS_SECTIONS); for(var index=0;index