{"version":3,"sources":["app.js","appFactory.js","BCAAgreement.js","ChangePassword.js","CIF-1.js","CIF-2 - Copy.js","CIF-2.js","CIF-3 - Copy.js","CIF-3.js","CIF-4 - Copy.js","CIF-4.js","CIF-Confirmation.js","CIF-Final.js","CIF-KTP.js","CIFDashboard.js","CIFHead.js","CIFProfile.js","forgetpassword.js","login.js","OTP.js","register-activation.js","register.js"],"names":["app","angular","module","run","$rootScope","title","text","allowOutsideClick","allowEscapeKey","allowEnterKey","backdrop","showCancelButton","cancelButtonColor","confirmButtonColor","focusConfirm","timer","confirmKey","onOpen","swal","showLoading","icon","showConfirmButton","controller","$provide","$routeProvider","$locationProvider","$translateProvider","templateUrl","hashPrefix","when","otherwise","suffix","lang","getLang","setLang","value","webcam","isTurnOn","_video","patOpts","x","w","channel","hiddenCanvas","width","redirectTo","getImageData","sendSnapshotToServer","snapshotData","makeSnapshot","factory","patCanvas","ctxPat","idata","getVideoData","patData","success","activeStream","stream","console","checker","imgBase64","document","querySelector","height","getContext","y","h","downloadSnapshot","createElement","window","href","dataURL","ctx","onError","err","webcamError","putImageData","toDataURL","service","video","_stream","onStream","drawImage","getVideoTracks","log","stop","onSuccess","$cookies","location","substr","indexOf","length","$scope","isScrolled","element","$window","bind","pageYOffset","login","Email","Username","Password","showLogoutBtn","languages","turnOff","name","updateLanguage","allPromise","$filter","$http","$q","$translate","appFactory","$translatePartialLoader","data","$apply","signOutWithConf","SWALtranslate","signOut","urlNow","lastIndexOf","PostGetSwal","confirmButtonText","showLoaderOnConfirm","preConfirm","url","urlsvc","postData","languageSelected","result","$","addClass","removeClass","Swal","fire","message","use","put","all","getData","then","status","checkLogin","d","AlertYesNo","requestToken","localStorage","setItem","access_token","error","method","preconfirmtranslate","userSession","reload","Stage","showValidationMessage","currentUser","translateLocale","IsFinished","IsRevised","replace","codesales","footer","ctrl","$formatters","$parsers","unshift","viewValue","plainNumber","elem","b","fromUser","transformedInput","ngModelCtrl","undefined","$render","directive","elm","event","which","items","camfacing","cameraChange","$broadcast","scope","attrs","val","navigator","mediaDevices","enumerateDevices","$modelValue","devices","i","kind","id","groupId","label","parseInt","$timeout","require","link","attr","push","$setViewValue","getcamerafront","KTPconfig","flashFallbackUrl","restrict","shiftKey","preventDefault","KTPonError","$uibModalInstance","uibDateParser","$location","Upload","KTPon","captureButtonEnable","cameras","iOS","test","userAgent","MSStream","ktpPhoto","item","dismiss","allowedExt","filenameKTP","deviceId","files","allowed","close","fileKTP","KTPFile","cache","responseType","countdown","deferred","shutterUrl","$log","promise","getDataByID","defer","reject","KTPonCaptureComplete","src","postGetData","KTPonLoad","agreementNumber","Broker","cancel","ok","ConfirmPassword","selectKTP","submit","FileReader","onload","e","btoa","target","toString","reader","readAsBinaryString","fileKTPext","toLowerCase","User","issuccess","file","key","device","deviceDetector","isMobile","splice","resolve","accept","retrieveSession","$routeParams","GeneratedKey","generatedkey","checkPassword","NewPassword","formChange","txtConfirmPassword","$invalid","concat","email","chgPass","$uibModal","filenameFotoDiri","fileFotoDiri","fileFotoDiriext","fotodiriFile","filenameTandaTangan","fileTandaTangan","fileTandaTanganext","tandatanganFile","openCamera","tipe","open","animation","size","resolvedResponse","html","didOpen","CIFInvestor","QuestionRDN","NID","KTPImage","response","GetCIF","npwpPhoto","selfiePhoto","othersPhoto","parentPhoto","ttdPhoto","remove","alert","selectFotoDiri","selectTandaTangan","clickRemoveKTP","clickRemoveFotoDiri","clickRemoveTandaTangan","resetSign","finishSignature","clear","completeSign","signature","dataUrl","isEmpty","TandaTanganFile","Sex","Religion","MaritalStatus","Education","tmpdate","Date","PhoneCode","setFullYear","getFullYear","maxDate","toISOString","slice","maxResidencyDate","Kewarganegaraan","KewarganegaraanOption","IDLength","chkSeumurHidup","DisabledSeumurHidup","IDCardCitySelected","DomicileCitySelected","NationalitySelected","IDCardCountrySelected","IDCardKecamatanSelected","IDCardOK","ListNationality","ListLookup","ListReligion","ListMarital","ListEducation","ListKecamatan","ListKecamatanDomicile","ListKecamatanAll","ListKelurahan","ListKelurahanDomicile","CompanyCityBOSelected","BOIDCardCitySelected","BODomicileCitySelected","BOIDCardKecamatanSelected","BOListKecamatan","BOListKelurahan","ListIncomeBO","selectedFundSourceBO","selectedSpouseFundSource","selectCity","model","CIFProvinceCityNID","CompanyCityBO","selectBOIDCardCity","BOIDCardCity","BOkecamatanChange","selectBODomicileCity","BOListKecamatanDomicile","BOListKelurahanDomicile","BODomicileCity","BOkecamatanDomicileChange","BOIDCardKecamatan","Kecamatan","BOkelurahanChange","temp","BOIDCardKelurahan","Kelurahan","IDCardPostalCode","PostalCode","BODomicileKecamatan","BOkelurahanDomicileChange","BODomicileKelurahan","BODomicilePostalCode","CopyFromIDBO","CopyIDBO","BOIDCardPostalCode","BODomicileAddress","BOIDCardAddress","BODomicileRT","BOIDCardRT","BODomicileRW","BOIDCardRW","toggleFundSourceBOItem","fundsource","indexCIFLookupInteger","CIFLookupInteger","FundSourceTextBO","checkIDCardNumber","IDCardNumber","obj","KewarganegaraanChange","Nationality","NationalityBO","IDCardCountry","CopyID","IDCardExpireDate","IDCardExpireDateBO","IDCardCity","IDCardKecamatan","IDCardKelurahan","IDCardRT","IDCardRW","IDCardAddress","regex","KewarganegaraanChangeBO","selectNationality","CIFCountryNID","selectIDCardCountry","selectIDCardCity","kecamatanChange","selectDomicileCity","DomicileCity","kelurahanChange","kecamatanDomicileChange","DomicileKecamatan","kelurahanDomicileChange","DomicileKelurahan","DomicilePostalCode","CopyFromID","DomicileAddress","DomicileRT","DomicileRW","mustSelect","field","keyCode","returnValue","CorrespondenceCity","retrieveSessions","ListCountry","ListProvinceCity","CIFLookupID","ListFundSourceBO","ListIncomePerAnnumBO","residence","SelfieFile","endsWith","readAsDataURL","onloadend","showKTP","saveErrors","errorMessages","reader3","reader4","BenefecialOwner","BirthDate","dataKecamatan","dataKecamatanDomisili","ResidencyNStatus","Number","ResidencyDate","QuestionNPWPBO","IncomePerAnnumBO","FundSourceBO","split","BirthDateBO","imageAlt","imageHeight","customClass","confirmButton","bo","prepareData","AccountStatus","status1","EducationText","language","userLanguage","Language","moment","format","ClientBirthDate1","ClientBirthDate2","ClientBirthDate3","validation","NPWPFile","OthersFile","ParentFile","cifdata","validationinput","errorForm","myForm1","$error","required","$valid","$name","imageUrl","listBankRDN","rdnbca","bankRDN","HomePhoneCode","bankpribadi","OPBBCA","occupation","occupationText","position","positionText","business","businessText","OPBOTHER","OPSPOUSE","disableBank","disableCIFInvestorQuestionRDN","selectedFundSource","fundsource1","spousefundsource1","ListBank","listpekerjaan_BCA","listjabatan_BCA","listusaha_BCA","listpekerjaan_PERMATA","listjabatan_PERMATA","listusaha_PERMATA","ListOccupation","ListSpouseIncome","ListKecamatanCompany","ListKelurahanCompany","CompanyCitySelected","SpouseCompanyCitySelected","CompanyCity","SpouseCompanyCity","selectCompanyCity","kecamatanChangeCompanyCity","CompanyKecamatan","kelurahanChangeCompanyCity","CompanyKelurahan","CompanyPostalCode","questionRDNchange","BankName","changeSpouseMandatory","param","spouseMandatory","flag","spouseMandatory2","spouseMandatory1","Occupation","SpouseCompanyName","SpouseIncomePerAnnum","SpouseIncomeExtraPerAnnum","SpouseOccupation","SpousePosition","SpouseNatureOfBusiness","SpouseCompanyPostalCode","SpouseCompanyAddress","SpouseFundSource","QuestionNPWP","updateNPWP","NPWPNumber","NPWPReason","occupationChange_BCA","positionChange_BCA","occupationChange_PERMATA","OccupationText","Position","PositionText","NatureOfBusiness","NatureOfBusinessText","positionChange_PERMATA","occupationChange_OTHER","toggleFundSourceItem","FundSourceText","toggleSpouseFundSourceItem","SpouseFundSourceText","IncomeExtraPerAnnum","NAMA_Pekerjaan","SpouseOccupationText","FundSource","myForm","ListFundSource","ListIncomePerAnnum","listposition_BCA","listnature_BCA","listposition_PERMATA","listnature_PERMATA","BankOwner","FirstName","SpouseBirthDate","IncomePerAnnum","showAgreement","number","agree","agree1","disclaimerRDNBCA","agree2","disclaimerTAPRESBCA","agree3","disclaimerDEKLARASI","disclaimerBank","validateAgreementRDNBCA","validateAgreementTAPRESBCA","BankStatus","BankNumber","preConf","msg","chkquestionfatca","chkquestion1","chkquestion2","chkquestion3","chkquestion4","Rp","ListInvestmentObjectives","ListRisk","AssetInheritDate","highrisk","FATCA1","FATCA2","FATCA3","InvestmentObjectives","Question1","Question1_Text","Question2","Question2_Text","Question3","Question3_Text","Question4","Question4_Text","chkquestion5","Question5","Question5_Text","chkquestion6","Question6","Question6_Text","AssetTotalCash","replaceAll","AssetTotalInvestment","AssetTotalProperty","AssetTotalOther","AssetTotalLegacy","JobStockBusinessInv","JobIncomeBonus","JobPension","BzOwnershipPct","BzProfitLoss","BzTotalEmployee","ProfIncome","InvestTotalYear","filenameNPWP","fileNPWP","fileNPWPext","NPWPile","filenameOthers","fileOthers","fileOthersext","filenameParent","fileParent","fileParentext","disabledNPWPNumber","selectNPWP","selectParent","filParentext","selectOthers","clickRemoveOthers","clickRemoveParent","clickRemoveNPWP","CIFInvestorBeneficiaryOwnerOccupation","fundsourcebo","listpekerjaan_BUKOPIN","listjabatan_BUKOPIN","listusaha_BUKOPIN","ListLookupBukopin","CompanyCountrySelected","ListKecamatanCompanyBO","ListKelurahanCompanyBO","ListKecamatanBO","ListKelurahanBO","CIFInvestorBeneficiaryOwnerIDCardExpiredDate","CIFInvestorBeneficiaryOwnerCity","CIFInvestorBeneficiaryOwnerCompanyCity","selectIDCardCityBO","kecamatanChangeBO","CIFInvestorBeneficiaryOwnerKecamatan","kelurahanChangeBO","CIFInvestorBeneficiaryOwnerKelurahan","CIFInvestorBeneficiaryOwnerPostalCode","CIFInvestorBeneficiaryOwnerNationality","selectCompanyCityBO","kecamatanChangeCompanyCityBO","CIFInvestorBeneficiaryOwnerCompanyAddress2","kelurahanChangeCompanyCityBO","CIFInvestorBeneficiaryOwnerCompanyAddress3","CIFInvestorBeneficiaryOwnerCompanyPostalCode","occupationChange_BUKOPIN","CIFInvestorBeneficiaryOwnerFundSourceText","CIFInvestorBeneficiaryOwnerIncomePerAnnum","CIFInvestorBeneficiaryOwnerSex","CIFInvestorBeneficiaryOwnerInvestmentObjectives","CIFInvestorBeneficiaryOwnerFundSource","listnature_BUKOPIN","reader2","reader5","reader6","CIFInvestorBeneficiaryOwnerBirthDate","agree4","validateAgreement","GlobalAlert","validateAgreementDEKLARASI","modalMessage","disclaimerPTMKES","AML","stage","append","counter","series5","statusCamera","onTimeout","reset","mytimeout","viewerWidth","viewerHeight","outputWidth","outputHeight","delay","shots","flashNotDetectedText","KTPonLive","AlertShowLoading","KTPcapture","KTPoff","KTPremove","checkConnection","newstage","MeasureConnectionSpeed","endTime","download","Image","speedBps","speedKbps","speedMbps","getTime","downloadSize","startTime","toFixed","onerror","cacheBuster","addEventListener","setTimeout","attachEvent","changeStage","background","hideLoading","takeCamera","imageData","logOff","editMode","image","ktpimage","ocrVerijelas","print","page","submitSales","openModalSales","datanasabah","stepClass","active","imgMale","imgDoc","imgFemale","RequestClient","RequestClientApprove","CIFDetail","WebCIFNID","AutoNID","CIFNID","State1","State2","State3","State4","StatusRequestClient","Void","rdn","SalesSelected","ListSales","selectSales","SalesPersonNID","Sales","RemiserSelected","selectRemiser","disclaimerClose","ListRemiser","RDNBCA","RDNPERMATA","submitRemiserOK","stepActive","current","hash","showForm","goto","back","URLFolderKYC","imgItem","editing","now","type","navbarOptions","user_reset","UserNID","UserForget","user","pageLogin","showPassword","inputType","toggleShowPassword","forgetPassword","register","modalOTP","UserLogin","objUser","checkLoginStep","AlertShowFooter","on","$sce","$compile","inputs","buttonDisabled","textAlert","OTP","focus","focusInput","index","handleKeyUp","nextIndex","updateButtonState","some","input","updateTextAndCountdown","minutes","seconds","trustAsHtml","container","getElementById","contents","Math","floor","getOTP","strOTP","join","KodeOTP","ListOffice","Location","disablesales","disableReferalNumber","disableOffice","OfficeSelected","showPasswordConfirmation","inputTypeConfirmation","toggleShowPasswordConfirmation","formRegister","infolengthpass","Office","ListCountryPhone","SalesPersonID","selectOffice","OfficeNID","checkReferral","ReferalNumber","SalesCode","checkEmail","risk","checkBankNumber"],"mappings":"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","file":"app.min.js","sourcesContent":["var app = angular.module(\"myApp\", ['slick', 'ui.bootstrap', 'ngAnimate', 'angular-jwt', 'ngRoute', 'ngCookies', 'ngMessages', 'ngFileUpload', 'ngCookies', 'signature',\r\n 'pascalprecht.translate', 'angular.filter', 'ng.deviceDetector', 'imgEditor.directives', 'ng-webcam']);\r\n\r\napp.run(['$rootScope',\r\nfunction ($rootScope) {\r\n \r\n\r\n $rootScope.GlobalAlert = function (icon, title, text) {\r\n return Swal.fire({\r\n icon: icon,\r\n title: title,\r\n text: text,\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n allowEnterKey: false,\r\n backdrop: true,\r\n })\r\n };\r\n\r\n $rootScope.AlertYesNo = function (icon, title, text) {\r\n return Swal.fire({\r\n icon: icon,\r\n title: title,\r\n text: text,\r\n showCancelButton: true,\r\n cancelButtonColor: '#d33',\r\n confirmButtonColor: '#FFBC00',\r\n focusConfirm: true,\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n allowEnterKey: true,\r\n })\r\n };\r\n\r\n $rootScope.AlertShowLoading = function (icon, title, text, timer) {\r\n return Swal.fire({\r\n icon: icon,\r\n title: title,\r\n text: text,\r\n timer: timer,\r\n allowOutsideClick: false,\r\n allowEscapeKey: false,\r\n allowEnterKey: false,\r\n confirmKey: false,\r\n onOpen: () => {\r\n swal.showLoading()\r\n }\r\n })\r\n };\r\n\r\n $rootScope.AlertShowFooter = function (icon, title, text, textFooter, timer) {\r\n return Swal.fire({\r\n footer: textFooter,\r\n icon: icon,\r\n title: title,\r\n text: text,\r\n timer: timer,\r\n showConfirmButton: false,\r\n })\r\n };\r\n}]);\r\n\r\napp.config(['$provide', '$routeProvider', '$locationProvider', '$translateProvider',\r\n function ($provide, $routeProvider, $locationProvider, $translateProvider) {\r\n $locationProvider.hashPrefix('');\r\n $routeProvider.\r\n\twhen('/',\r\n\t{\r\n\t templateUrl: '/template/login.html',\r\n\t controller: 'LoginCtrl'\r\n\t}).\r\n when('/landing',\r\n\t{\r\n\t templateUrl: '/template/landingPage.html',\r\n\t controller: 'LoginCtrl'\r\n\t}).\r\n when('/register',\r\n\t{\r\n\t templateUrl: '/template/register.html',\r\n\t controller: 'RegisterCtrl'\r\n\t}).\r\n when('/register/:id',\r\n\t{\r\n\t templateUrl: '/template/register.html',\r\n\t controller: 'RegisterCtrl'\r\n\t}).\r\n when('/activation/:generatedkey',\r\n\t{\r\n\t templateUrl: '/template/activation.html',\r\n\t controller: 'ActivationCtrl'\r\n\t}).\r\n when('/forgetpassword',\r\n\t{\r\n\t templateUrl: '/template/forgetpassword.html',\r\n\t controller: 'forgetPasswordCtrl'\r\n\t}).\r\n when('/change_password/:generatedkey',\r\n\t{\r\n\t templateUrl: '/template/changePassword.html',\r\n\t controller: 'changePasswordCtrl'\r\n\t}).\r\n when('/login',\r\n\t{\r\n\t templateUrl: '/template/login.html',\r\n\t controller: 'LoginCtrl'\r\n\t}).\r\n when('/cif/start',\r\n\t{\r\n\t templateUrl: 'template/CIF-KTP.html',\r\n\t controller: 'CIFKTP-CTRL'\r\n\t}).\r\n when('/cif/data-pribadi',\r\n\t{\r\n\t templateUrl: '/template/CIF-1.html',\r\n\t controller: 'CIF-CTRL'\r\n\t}).\r\n when('/cif/data-bank',\r\n\t{\r\n\t templateUrl: '/template/CIF-2.html',\r\n\t controller: 'CIF2-CTRL'\r\n\t}).\r\n when('/cif/data-pendukung',\r\n\t{\r\n\t templateUrl: '/template/CIF-3.html',\r\n\t controller: 'CIF3-CTRL'\r\n\t}).\r\n when('/cif/data-pernyataan',\r\n\t{\r\n\t templateUrl: '/template/CIF-4.html?v=115',\r\n\t controller: 'CIF4-CTRL'\r\n\t}).\r\n when('/cif/final',\r\n\t{\r\n\t templateUrl: 'template/CIF-Final.html?v=112',\r\n\t controller: 'CIFFIN-CTRL'\r\n\t}).\r\n when('/dashboard',\r\n\t{\r\n\t templateUrl: '/template/dashboard/dashboard.html',\r\n\t controller: 'CIFDashboard-CTRL'\r\n\t}).\r\n when('/profile',\r\n\t{\r\n\t templateUrl: '/template/dashboard/profile.html',\r\n\t controller: 'CIFProfile-CTRL'\r\n\t}).\r\n when('/cif/confirmation',\r\n\t{\r\n\t templateUrl: '/template/CIF-Confirmation.html',\r\n\t controller: 'CIFConfirmation-CTRL'\r\n\t}).\r\n\totherwise(\r\n\t{\r\n\t redirectTo: '/logout'\r\n\t});\r\n\r\n $translateProvider.useStaticFilesLoader({\r\n prefix: '/lang/locale-',\r\n suffix: '.json'\r\n });\r\n $translateProvider.preferredLanguage('id');\r\n}]);\r\n\r\napp.factory('S21Language', function () {\r\n var lang = '';\r\n return {\r\n getLang: function () {\r\n return lang;\r\n },\r\n\r\n setLang: function (value) {\r\n lang = value;\r\n return value;\r\n }\r\n };\r\n});\r\n\r\napp.factory('KTPCamService', function () {\r\n var webcam = {};\r\n webcam.isTurnOn = false;\r\n webcam.patData = null;\r\n var _video = null;\r\n var _stream = null;\r\n webcam.patOpts = { x: 0, y: 0, w: 25, h: 25 };\r\n webcam.channel = {};\r\n webcam.webcamError = false;\r\n\r\n var getVideoData = function getVideoData(x, y, w, h) {\r\n var hiddenCanvas = document.createElement('canvas');\r\n hiddenCanvas.width = _video.width;\r\n hiddenCanvas.height = _video.height;\r\n var ctx = hiddenCanvas.getContext('2d');\r\n ctx.drawImage(_video, 0, 0, _video.width, _video.height);\r\n return ctx.getImageData(x, y, w, h);\r\n };\r\n\r\n var sendSnapshotToServer = function sendSnapshotToServer(imgBase64) {\r\n webcam.snapshotData = imgBase64;\r\n };\r\n\r\n webcam.makeSnapshot = function () {\r\n if (_video) {\r\n var patCanvas = document.querySelector('#KTPsnapshot');\r\n if (!patCanvas) return;\r\n\r\n patCanvas.width = _video.width;\r\n patCanvas.height = _video.height;\r\n var ctxPat = patCanvas.getContext('2d');\r\n\r\n var idata = getVideoData(webcam.patOpts.x, webcam.patOpts.y, webcam.patOpts.w, webcam.patOpts.h);\r\n ctxPat.putImageData(idata, 0, 0);\r\n\r\n sendSnapshotToServer(patCanvas.toDataURL());\r\n\r\n webcam.patData = idata;\r\n\r\n webcam.success(webcam.snapshotData.substr(webcam.snapshotData.indexOf('base64,') + 'base64,'.length), 'image/png');\r\n //webcam.turnOff();\r\n }\r\n };\r\n\r\n webcam.onSuccess = function () {\r\n _video = webcam.channel.video;\r\n webcam.patOpts.w = _video.width;\r\n webcam.patOpts.h = _video.height;\r\n webcam.isTurnOn = true;\r\n };\r\n\r\n webcam.onStream = function (stream) {\r\n activeStream = stream;\r\n console.log('kt', activeStream);\r\n return activeStream;\r\n };\r\n\r\n webcam.downloadSnapshot = function downloadSnapshot(dataURL) {\r\n window.location.href = dataURL;\r\n };\r\n\r\n webcam.onError = function (err) {\r\n webcam.webcamError = err;\r\n };\r\n\r\n webcam.turnOff = function () {\r\n webcam.isTurnOn = false;\r\n if (activeStream && activeStream.getVideoTracks) {\r\n const checker = typeof activeStream.getVideoTracks === 'function';\r\n if (checker) {\r\n console.log('ktp', activeStream.getVideoTracks());\r\n return activeStream.getVideoTracks()[0].stop();\r\n }\r\n return false;\r\n }\r\n return false;\r\n };\r\n\r\n var service = {\r\n webcam: webcam\r\n };\r\n return service;\r\n});\r\n\r\napp.factory('SELFIECamService', function () {\r\n var webcam = {};\r\n webcam.isTurnOn = false;\r\n webcam.patData = null;\r\n var _video = null;\r\n var _stream = null;\r\n webcam.patOpts = { x: 0, y: 0, w: 25, h: 25 };\r\n webcam.channel = {};\r\n webcam.webcamError = false;\r\n\r\n var getVideoData = function getVideoData(x, y, w, h) {\r\n var hiddenCanvas = document.createElement('canvas');\r\n hiddenCanvas.width = _video.width;\r\n hiddenCanvas.height = _video.height;\r\n var ctx = hiddenCanvas.getContext('2d');\r\n ctx.drawImage(_video, 0, 0, _video.width, _video.height);\r\n return ctx.getImageData(x, y, w, h);\r\n };\r\n\r\n var sendSnapshotToServer = function sendSnapshotToServer(imgBase64) {\r\n webcam.snapshotData = imgBase64;\r\n };\r\n\r\n webcam.makeSnapshot = function () {\r\n if (_video) {\r\n var patCanvas = document.querySelector('#SELFIEsnapshot');\r\n if (!patCanvas) return;\r\n\r\n patCanvas.width = _video.width;\r\n patCanvas.height = _video.height;\r\n var ctxPat = patCanvas.getContext('2d');\r\n\r\n var idata = getVideoData(webcam.patOpts.x, webcam.patOpts.y, webcam.patOpts.w, webcam.patOpts.h);\r\n ctxPat.putImageData(idata, 0, 0);\r\n\r\n sendSnapshotToServer(patCanvas.toDataURL());\r\n\r\n webcam.patData = idata;\r\n\r\n webcam.success(webcam.snapshotData.substr(webcam.snapshotData.indexOf('base64,') + 'base64,'.length), 'image/png');\r\n //webcam.turnOff();\r\n }\r\n };\r\n\r\n webcam.onSuccess = function () {\r\n _video = webcam.channel.video;\r\n webcam.patOpts.w = _video.width;\r\n webcam.patOpts.h = _video.height;\r\n webcam.isTurnOn = true;\r\n };\r\n\r\n webcam.onStream = function (stream) {\r\n activeStream = stream;\r\n console.log('se', activeStream);\r\n return activeStream;\r\n };\r\n\r\n webcam.downloadSnapshot = function downloadSnapshot(dataURL) {\r\n window.location.href = dataURL;\r\n };\r\n\r\n webcam.onError = function (err) {\r\n webcam.webcamError = err;\r\n console.log('ERR', webcam.webcamError)\r\n };\r\n\r\n webcam.turnOff = function () {\r\n webcam.isTurnOn = false;\r\n if (activeStream && activeStream.getVideoTracks) {\r\n const checker = typeof activeStream.getVideoTracks === 'function';\r\n if (checker) {\r\n console.log('se', activeStream.getVideoTracks());\r\n return activeStream.getVideoTracks()[0].stop();\r\n }\r\n return false;\r\n }\r\n return false;\r\n };\r\n\r\n var service = {\r\n webcam: webcam\r\n };\r\n\r\n\r\n return service;\r\n});\r\n\r\napp.controller('HomeController', ['$scope', '$rootScope', '$filter', '$http', '$window', '$q', '$cookies', '$translate', 'appFactory', '$translatePartialLoader',\r\n function ($scope, $rootScope, $filter, $http, $window, $q, $cookies, $translate, appFactory, $translatePartialLoader) {\r\n\r\n $scope.isScrolled = false;\r\n\r\n angular.element($window).bind(\"scroll\", function() {\r\n $scope.isScrolled = ($window.pageYOffset > 100); // Change 100 to your desired scroll threshold\r\n $scope.$apply();\r\n });\r\n\r\n $scope.login = {\r\n Username: '',\r\n Password: '',\r\n Email: '',\r\n Notelp: ''\r\n };\r\n\r\n $scope.showLogoutBtn = function () {\r\n\r\n var urlNow = window.location.href.substr(window.location.href.lastIndexOf('/') + 1);\r\n if (urlNow == \"data-pribadi\" || \r\n urlNow == \"data-bank\" || \r\n urlNow == \"data-pendukung\" || \r\n urlNow == \"data-pernyataan\" || \r\n urlNow == \"dashboard\" || \r\n urlNow == \"profile\" ||\r\n urlNow == \"start\"\r\n )\r\n return true;\r\n else\r\n return false;\r\n }\r\n\r\n $scope.languages = [\r\n {\r\n lang: 'en',\r\n name: 'English',\r\n },\r\n {\r\n lang: 'id',\r\n name: 'Indonesia'\r\n }\r\n ];\r\n\r\n $scope.languageSelected = $scope.languages[0];\r\n //$scope.language = 'en';\r\n\r\n $scope.updateLanguage = function (lang) {\r\n if (lang == 'id'){\r\n\r\n $scope.languageSelected = $scope.languages[1];\r\n $(\"#langID\").addClass('bg-primary');\r\n $(\"#langEN\").removeClass('bg-primary');\r\n } else {\r\n\r\n $scope.languageSelected = $scope.languages[0];\r\n $(\"#langID\").removeClass('bg-primary');\r\n $(\"#langEN\").addClass('bg-primary');\r\n }\r\n\r\n \r\n $translate.use($scope.languageSelected.lang);\r\n $cookies.put(\"lang\", $scope.languageSelected.lang);\r\n };\r\n\r\n var allPromise = $q.all([\r\n\r\n ]);\r\n\r\n // trigger sign out dan kembali ke halaman login\r\n $scope.signOut = function () {\r\n\r\n appFactory.getData(`/service/client.svc/SignOut`).then(function (data) {\r\n\r\n if (data.status == 200) {\r\n\r\n if (data.data.d == true) {\r\n $window.location.href = \"/#/\";\r\n }\r\n }\r\n });\r\n };\r\n\r\n // dengan sweet alert confirmation dialog sebelum logout\r\n $scope.signOutWithConf = function () {\r\n \r\n var SWALtranslate = $scope.SWALtranslate('logoutConf');\r\n\r\n $rootScope.AlertYesNo('question', SWALtranslate.title, SWALtranslate.message)\r\n .then((result) => {\r\n if (result.value) {\r\n\r\n $scope.signOut();\r\n }\r\n });\r\n }\r\n\r\n // the dynamic post or get sweet alert 2 \r\n $scope.PostGetSwal = function (preconfirmtranslate, urlsvc, postData, method, callback) {\r\n\r\n console.log(\"postgetswal-urlsvc:\", urlsvc)\r\n console.log(\"postgetswal-method:\", method)\r\n console.log(\"postgetswal-postdata:\", postData)\r\n\r\n var SWALtranslate = $scope.SWALtranslate(preconfirmtranslate);\r\n\r\n return Swal.fire({\r\n icon: 'question',\r\n title: SWALtranslate.title,\r\n html: SWALtranslate.message,\r\n showCancelButton: true,\r\n confirmButtonColor: '#FFBC00',\r\n confirmButtonText: 'Submit ',\r\n showLoaderOnConfirm: true,\r\n preConfirm: (preConf) => {\r\n\r\n return $http({\r\n method: method,\r\n url: urlsvc,\r\n data: postData \r\n }).then(data => {\r\n\r\n console.log(data.data.d.result)\r\n\r\n if (data.data.d.result) {\r\n\r\n var SWALtranslate = $scope.SWALtranslate(data.data.d.message);\r\n\r\n Swal.fire({\r\n title: SWALtranslate.title,\r\n text: SWALtranslate.message,\r\n icon: \"success\",\r\n showConfirmButton: false,\r\n timer: 3000,\r\n })\r\n\r\n } else {\r\n\r\n var SWALtranslate = $scope.SWALtranslate(data.data.d.message);\r\n\r\n Swal.fire({\r\n title: SWALtranslate.title,\r\n text: SWALtranslate.message,\r\n icon: \"error\",\r\n showConfirmButton: true,\r\n })\r\n return false;\r\n }\r\n\r\n callback(data.data.d.result); // send /return callback to .js\r\n })\r\n .catch(error => {\r\n Swal.showValidationMessage(\r\n \"There is a problem connecting to the server. \\\r\n Please ensure your internet connection is active. If the problem persists, please try again later.\"\r\n )\r\n console.log(`Request failed: ${error}`)\r\n })\r\n }\r\n })\r\n };\r\n\r\n // checking halaman login,\r\n // jika ada session maka lanjutkan ke $scope.checkLoginStep\r\n $scope.checkLogin = function () {\r\n\r\n $http({\r\n method: 'POST',\r\n url: '/service/client.svc/retrieveSession',\r\n }).then(function (data) {\r\n if (data.data.d) {\r\n\r\n $scope.checkLoginStep(data.data.d);\r\n console.log(data.data.d)\r\n }\r\n }, function (error) { })\r\n }\r\n\r\n // req token: \r\n $scope.requestToken = function () {\r\n\r\n $http({\r\n method: 'POST',\r\n url: '/service/client.svc/RequestToken',\r\n headers: {\r\n 'Authorization': \"Basic eHh4Onl5eQ==\"\r\n }\r\n }).then(function (data) {\r\n\r\n\r\n if (data.data.d.access_token) {\r\n\r\n\r\n $window.localStorage.setItem('token', data.data.d.access_token)\r\n\r\n //$scope.checkLoginStep(data.data.d);\r\n //console.log(data.data.d)\r\n }\r\n }, function (error) { })\r\n }\r\n\r\n // check login step\r\n $scope.checkLoginStep = function (userSession) {\r\n\r\n // stage: finished\r\n if (userSession.IsFinished == 1) {\r\n $window.location.href = \"#/dashboard\";\r\n $window.location.reload();\r\n }\r\n\r\n // stage: start verJelas\r\n if (userSession.Stage == 0) {\r\n $window.location.href = \"#/cif/start\";\r\n $window.location.reload();\r\n console.log('start');\r\n }\r\n\r\n // stage: 1\r\n if (userSession.Stage) {\r\n\r\n\r\n if (userSession.Stage == 1) {\r\n\r\n // stage: 1 and revised\r\n if (userSession.IsRevised == 1) {\r\n $window.location.href = \"#/dashboard\";\r\n $window.location.reload();\r\n } else {\r\n\r\n $window.location.href = \"#/cif/data-pribadi\";\r\n $window.location.reload();\r\n }\r\n }\r\n\r\n // stage: 2\r\n if (userSession.Stage == 2) {\r\n $window.location.href = \"#/cif/data-bank\";\r\n $window.location.reload();\r\n }\r\n\r\n // stage: 3\r\n if (userSession.Stage == 3) {\r\n $window.location.href = \"#/cif/data-pendukung\";\r\n $window.location.reload();\r\n }\r\n\r\n // stage: 4\r\n if (userSession.Stage == 4) {\r\n\r\n // stage: 4 and finished\r\n if (userSession.IsFinished == 1) {\r\n $window.location.href = \"#/dashboard\";\r\n $window.location.reload();\r\n } else {\r\n $window.location.href = \"#/cif/data-pernyataan\";\r\n }\r\n\r\n // stage: 4 and revised\r\n if (userSession.IsRevised == 1) {\r\n $window.location.href = \"#/dashboard\";\r\n $window.location.reload();\r\n }\r\n }\r\n }\r\n }\r\n\r\n // scope untuk mengecek session saja\r\n // jika tidak ada session maka trigger $scope.signOut\r\n $scope.retrieveSessions = function () {\r\n\r\n $http({\r\n method: 'POST',\r\n url: '/service/client.svc/retrieveSession',\r\n }).then(function (data) {\r\n\r\n if (!data.data.d) {\r\n\r\n $scope.signOut();\r\n }\r\n else\r\n $scope.currentUser = data.data.d;\r\n\r\n console.log($scope.currentUser)\r\n }, function (error) { })\r\n }\r\n\r\n // kumpulan sweet alert translate untuk di lempar di ui sweet alert-- title, message, footer\r\n $scope.SWALtranslate = function (translateLocale) {\r\n\r\n var result = [];\r\n\r\n switch (translateLocale) {\r\n case 'logoutConf':\r\n \r\n result.title = $filter('translate')('INFO.logout');\r\n result.message = $filter('translate')('INFO.sure');\r\n break;\r\n case 'submitregistrationconf':\r\n\r\n result.title = $filter('translate')('INFO.submitregistration');\r\n //result.message = $filter('translate')('INFO.sureb').replace(\"[banknumber]\", $rootScope.user.BankNumber).replace(\"[bankowner]\", $rootScope.user.BankOwner);\r\n result.message = $filter('translate')('INFO.sure');\r\n break;\r\n case 'submitregistrationconfo':\r\n\r\n result.title = $filter('translate')('INFO.submitregistration');\r\n //result.message = $filter('translate')('INFO.sureo').replace(\"[bankname]\", $rootScope.user.BankName).replace(\"[banknumber]\", $rootScope.user.BankNumber).replace(\"[bankowner]\", $rootScope.user.BankOwner);\r\n result.message = $filter('translate')('INFO.sure');\r\n break;\r\n case 'submitregistrationsuccess':\r\n\r\n result.title = $filter('translate')('INFO.success');\r\n result.message = $filter('translate')('INFO.submitregistrationsuccess');\r\n break;\r\n case 'emailduplicate':\r\n\r\n result.title = $filter('translate')('INFO.failed');\r\n result.message = $filter('translate')('INFO.emailduplicate');\r\n break;\r\n case 'banknumberduplicate':\r\n\r\n result.title = $filter('translate')('INFO.failed');\r\n result.message = $filter('translate')('INFO.banknumberduplicate');\r\n break;\r\n case 'savedatasuccess':\r\n\r\n result.title = $filter('translate')('INFO.success');\r\n result.message = $filter('translate')('INFO.succcessdatasave');\r\n break;\r\n case 'submitCif1':\r\n\r\n result.title = $filter('translate')('INFO.submitcif1');\r\n result.message = $filter('translate')('INFO.sure');\r\n break;\r\n case 'bcagagal':\r\n\r\n result.title = $filter('translate')('INFO.failed');\r\n result.message = $filter('translate')('INFO.bcafailed');\r\n break;\r\n case 'bukopingagal':\r\n\r\n result.title = $filter('translate')('INFO.failed');\r\n result.message = $filter('translate')('INFO.bukopinfailed');\r\n break;\r\n case 'submitCif2':\r\n\r\n result.title = $filter('translate')('INFO.submitcif2');\r\n result.message = $filter('translate')('INFO.sure');\r\n break;\r\n case 'submitCif3':\r\n\r\n result.title = $filter('translate')('INFO.submitcif3');\r\n result.message = $filter('translate')('INFO.sure');\r\n break;\r\n case 'submitCif4':\r\n\r\n result.title = $filter('translate')('INFO.submitcif4');\r\n result.message = $filter('translate')('INFO.sure4').replace(\"[codesales]\", $rootScope.codesales);\r\n break;\r\n case 'submitCif4success':\r\n\r\n result.title = $filter('translate')('INFO.success');\r\n result.message = $filter('translate')('INFO.submitcif4success');\r\n break;\r\n case 'logindisabled':\r\n\r\n result.title = $filter('translate')('INFO.loginfailed');\r\n result.message = $filter('translate')('INFO.notactivated');\r\n break;\r\n case 'notactivated':\r\n\r\n result.title = $filter('translate')('INFO.loginfailed');\r\n result.message = $filter('translate')('INFO.notactivated');\r\n result.footer = $filter('translate')('INFO.clicktoresendactivationlink');\r\n break;\r\n case 'wronguserpass':\r\n\r\n result.title = $filter('translate')('INFO.loginfailed');\r\n result.message = $filter('translate')('INFO.wronguserpass');\r\n break;\r\n case 'aggreement1':\r\n\r\n result.title = $filter('translate')('INFO.aggreement1');\r\n result.message = $filter('translate')('INFO.sure');\r\n break;\r\n case 'aggreement2':\r\n\r\n result.title = $filter('translate')('INFO.aggreement2');\r\n result.message = $filter('translate')('INFO.sure');\r\n break;\r\n case 'aggreement3':\r\n\r\n result.title = $filter('translate')('INFO.aggreement3');\r\n result.message = $filter('translate')('INFO.sure');\r\n break;\r\n case 'aggreement4':\r\n\r\n result.title = $filter('translate')('INFO.aggreement4');\r\n result.message = $filter('translate')('INFO.sure');\r\n break;\r\n case 'forgetpasswordsuccess':\r\n\r\n result.title = $filter('translate')('INFO.forgetpasswordsuccess');\r\n result.message = $filter('translate')('INFO.checkyouremail');\r\n break;\r\n case 'changepasswordconf':\r\n\r\n result.title = $filter('translate')('INFO.conf');\r\n result.message = $filter('translate')('INFO.changepasswordconf');\r\n break;\r\n case 'changepasswordsuccess':\r\n\r\n result.title = $filter('translate')('INFO.success');\r\n result.message = $filter('translate')('INFO.changepasswordsuccess');\r\n break;\r\n case 'sendforgetpassword':\r\n\r\n result.title = $filter('translate')('INFO.sendchangepasswordlink');\r\n result.message = $filter('translate')('INFO.sureForgetPasword');\r\n break;\r\n case 'activationsuccess':\r\n\r\n result.title = $filter('translate')('INFO.activationsuccess');\r\n result.message = $filter('translate')('INFO.activationsuccessmsg');\r\n break;\r\n case 'resendactivationlink':\r\n\r\n result.title = $filter('translate')('INFO.resendactivationlink');\r\n result.message = $filter('translate')('INFO.sure');\r\n break;\r\n case 'otpsent':\r\n\r\n result.title = $filter('translate')('INFO.success');\r\n result.message = $filter('translate')('INFO.resendactivationlinksuccess');\r\n break;\r\n case 'usernotfound':\r\n\r\n result.title = $filter('translate')('INFO.failed');\r\n result.message = $filter('translate')('INFO.usernotfound');\r\n break;\r\n case 'preparationinfouploadphotocif1':\r\n\r\n result.title = $filter('translate')('INFO.uploadphoto');\r\n result.message = $filter('translate')('INFO.preparationinfouploadphoto');\r\n break;\r\n case 'beneficialowner':\r\n\r\n result.title = $filter('translate')('INFO.failed');\r\n result.message = $filter('translate')('INFO.beneficialowner');\r\n break;\r\n case 'npwp':\r\n\r\n result.title = $filter('translate')('INFO.failed');\r\n result.message = $filter('translate')('INFO.npwp');\r\n break;\r\n case 'duplicatektp':\r\n\r\n result.title = $filter('translate')('INFO.duplicatektp');\r\n result.message = $filter('translate')('INFO.failed');\r\n break;\r\n case 'validationinput':\r\n\r\n result.title = $filter('translate')('INFO.validinput');\r\n result.message = $filter('translate')('INFO.validinputmsg');\r\n break;\r\n case 'failedregister':\r\n\r\n result.title = \"GAGAL\";\r\n result.message = \"Registrasi Gagal\";\r\n break;\r\n case 'clientidfailed':\r\n\r\n result.title = \"GAGAL\";\r\n result.message = \"Referral tidak ditemukan\";\r\n break;\r\n case 'spouseRelationship':\r\n\r\n result.title = \"GAGAL\";\r\n result.message = \"Hubungan tidak ditemukan\";\r\n case 'keynotvalid':\r\n\r\n result.title = \"GAGAL\";\r\n result.message = \"Key tidak valid\";\r\n break;\r\n case 'validationedd':\r\n\r\n result.title = $filter('translate')('INFO.failed');\r\n result.message = \"Submit Additional Data!\";\r\n break;\r\n case 'maxbukopinekyc':\r\n\r\n result.title = $filter('translate')('INFO.failed');\r\n result.message = \"Sudah mencapai batas harian verifikasi, Silahkan coba kembali di hari selanjutnya.\";\r\n break;\r\n default:\r\n\r\n result.title = \"GAGAL\";\r\n result.message = \"Mohon coba kembali dan pastikan koneksi internet Anda stabil\";\r\n break;\r\n }\r\n return result;\r\n }\r\n\r\n allPromise.then(function () {\r\n $cookies.put(\"lang\", 'id');\r\n //if (!$cookies.get('lang'))\r\n // $cookies.put(\"lang\", 'id');\r\n //else\r\n // $scope.updateLanguage($cookies.get('lang'));\r\n });\r\n}]);\r\n\r\n\r\napp.directive('numericOnly', function ($filter) {\r\n return {\r\n require: '?ngModel',\r\n link: function (scope, elem, attrs, ctrl) {\r\n if (!ctrl) {\r\n return;\r\n }\r\n\r\n ctrl.$formatters.unshift(function () {\r\n return $filter('number')(ctrl.$modelValue);\r\n });\r\n\r\n ctrl.$parsers.unshift(function (viewValue) {\r\n var plainNumber = viewValue.replace(/[^\\d]/g, ''),\r\n b = $filter('number')(plainNumber);\r\n\r\n elem.val(b);\r\n if (plainNumber == '') {\r\n plainNumber = 0;\r\n }\r\n return parseInt(plainNumber);\r\n });\r\n }\r\n };\r\n});\r\n\r\napp.directive('textOnly', function () {\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, element, attr, ngModelCtrl) {\r\n function fromUser(text) {\r\n\r\n if (text) {\r\n\r\n var transformedInput = text.replace(/[^A-Za-z\\' \\s]/g, '');\r\n\r\n //if (transformedInput !== text) {\r\n ngModelCtrl.$setViewValue(transformedInput);\r\n ngModelCtrl.$render();\r\n //}\r\n return transformedInput;\r\n }\r\n return undefined;\r\n }\r\n ngModelCtrl.$parsers.push(fromUser);\r\n }\r\n };\r\n});\r\n\r\napp.directive('numbersOnly', function () {\r\n return {\r\n require: 'ngModel',\r\n link: function (scope, element, attr, ngModelCtrl) {\r\n function fromUser(text) {\r\n if (text) {\r\n var transformedInput = text.replace(/[^0-9]/g, '');\r\n\r\n if (transformedInput !== text) {\r\n ngModelCtrl.$setViewValue(transformedInput);\r\n ngModelCtrl.$render();\r\n }\r\n return transformedInput;\r\n }\r\n return undefined;\r\n }\r\n ngModelCtrl.$parsers.push(fromUser);\r\n }\r\n };\r\n});\r\n\r\n\r\napp.directive('onlyNumbers', function () {\r\n return {\r\n restrict: 'A',\r\n link: function (scope, elm, attrs, ctrl) {\r\n elm.on('keydown', function (event) {\r\n if (event.shiftKey) { event.preventDefault(); return false; }\r\n //console.log(event.which);\r\n if ([8, 13, 27, 37, 38, 39, 40].indexOf(event.which) > -1) {\r\n // backspace, enter, escape, arrows\r\n return true;\r\n } else if (event.which >= 48 && event.which <= 57) {\r\n // numbers 0 to 9\r\n return true;\r\n } else if (event.which >= 96 && event.which <= 105) {\r\n // numpad number\r\n return true;\r\n }\r\n // else if ([110, 190].indexOf(event.which) > -1) {\r\n // // dot and numpad dot\r\n // return true;\r\n // }\r\n else {\r\n event.preventDefault();\r\n return false;\r\n }\r\n });\r\n }\r\n }\r\n});\r\n\r\napp.controller('CameraController', function ($scope, $uibModalInstance, items, uibDateParser, $http, $window, $location, $timeout, Upload, $q, $cookies, $translate) {\r\n\r\n $scope.items = items;\r\n $scope.camfacing = 'env';\r\n $scope.ktpPhoto = '';\r\n $scope.statusCamera = 'true';\r\n //var height = 550;\r\n //var width = 420;\r\n\r\n $scope.cameras = [];\r\n console.log('camera', $scope.cameras)\r\n\r\n $scope.iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\r\n\r\n $scope.camerasModelBaru = {};\r\n\r\n $scope.cameraChange = function(val)\r\n {\r\n console.log('$scope.camerasModelBaru.id val', val);\r\n $scope.$broadcast('ngWebcam_change', val.id);\r\n }\r\n\r\n $scope.getcamerafront = function () {\r\n if (true) {\r\n\r\n navigator.mediaDevices.enumerateDevices().then(function (devices) {\r\n\r\n console.log(\"getcamerafront 1\")\r\n for (var i = 0; i < devices.length; i++) {\r\n console.log(\"getcamerafront 1 a\", devices)\r\n if (devices[i].kind === \"videoinput\") {\r\n $scope.cameras.push({\r\n id: devices[i].deviceId,\r\n groupId: devices[i].groupId,\r\n label: devices[i].label\r\n });\r\n }\r\n }1\r\n\r\n if($scope.cameras.length > 3)\r\n {\r\n $timeout(function () {\r\n\r\n $scope.cameraChange($scope.cameras[3])\r\n },5000)\r\n }\r\n\r\n console.log('front', $scope.cameras);\r\n })\r\n }\r\n else if ($scope.iOS)\r\n {\r\n\r\n console.log(\"getcamerafront 2\")\r\n }\r\n else if (navigator.params.enable_flash && this.detectFlash()) {\r\n var devices = this.getMovie()._getCameras();\r\n for (var i = 0; i < devices.length; i++) {\r\n $scope.cameras.push({\r\n id: devices[i],\r\n groupId: \"\",\r\n label: devices[i]\r\n });\r\n }\r\n\r\n console.log(\"getcamerafront 3\")\r\n \r\n }\r\n }\r\n\r\n console.log('CAMCAM');\r\n $scope.getcamerafront();\r\n\r\n $scope.KTPconfig = {\r\n //viewerWidth: 426,\r\n //viewerHeight: 320,\r\n //outputWidth: 213,\r\n //outputHeight: 160,\r\n //constraints: \r\n delay: 0,\r\n shots: 1,\r\n countdown: 0,\r\n flashFallbackUrl: 'vendors/webcamjs/webcam.swf',\r\n shutterUrl: 'shutter.mp3',\r\n flashNotDetectedText: 'Camera not found or use Chrome Browser'\r\n };\r\n\r\n $scope.switchCam = function () {\r\n console.log($scope.camfacing);\r\n if ($scope.camfacing == 'env') {\r\n console.log('cam1');\r\n $scope.$broadcast('ngWebcam_camUsr');\r\n $scope.camfacing = 'usr'\r\n }\r\n else {\r\n console.log('cam2');\r\n $scope.$broadcast('ngWebcam_camEnv');\r\n $scope.camfacing = 'env'\r\n }\r\n\r\n console.log($scope.camfacing);\r\n }\r\n\r\n $scope.KTPonCaptureComplete = function (src) {\r\n console.log(src);\r\n $scope.ktpPhoto = src[0];\r\n $uibModalInstance.close($scope.ktpPhoto);\r\n //var el = document.getElementById('result');\r\n //var img = document.createElement('img');\r\n //img.src = src[$scope.KTPconfig.shots - 1];\r\n //img.width = 240;\r\n //img.height = 180;\r\n //el.appendChild(img);\r\n };\r\n\r\n $scope.KTPonError = function (err) {\r\n console.log('webcamController.onError : ', err);\r\n $scope.statusCamera = '';\r\n };\r\n\r\n $scope.KTPonLoad = function () {\r\n \r\n\r\n };\r\n\r\n $scope.KTPcapture = function () {\r\n $scope.$broadcast('ngWebcam_capture');\r\n };\r\n\r\n $scope.KTPon = function () {\r\n\r\n console.log('ONLOAD');\r\n $scope.$broadcast('ngWebcam_on');\r\n };\r\n\r\n $scope.KTPoff = function () {\r\n $scope.$broadcast('ngWebcam_off');\r\n $scope.captureButtonEnable = false;\r\n };\r\n\r\n $scope.KTPremove = function () {\r\n $scope.ktpPhoto = '';\r\n }\r\n\r\n\r\n $scope.ok = function () {\r\n $uibModalInstance.close($scope.item);\r\n };\r\n\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n});\r\n\r\n\r\n\r\napp.controller('BrowseController', function ($scope, $uibModalInstance, items, uibDateParser, $http, $window, $location, $timeout, Upload, $q, $cookies, $translate) {\r\n\r\n $scope.items = items;\r\n $scope.allowedExt = ['.jpg', '.jpeg', '.bmp', '.png'];\r\n\r\n\r\n $scope.filenameKTP = \"\";\r\n $scope.fileKTP = \"\";\r\n $scope.fileKTPext = \"\";\r\n $scope.KTPFile = [];\r\n\r\n\r\n\r\n $scope.selectKTP = function (files) {\r\n\r\n if (files.length > 0) {\r\n console.log('files', files);\r\n $scope.KTPFile = files;\r\n let allowed = true;\r\n var reader = new FileReader();\r\n\r\n reader.onload = function (e) {\r\n if (allowed) {\r\n $scope.fileKTP = btoa(e.target.result.toString());\r\n $uibModalInstance.close($scope.fileKTP);\r\n }\r\n };\r\n console.log('gambar', $scope.KTPFile);\r\n reader.readAsBinaryString(files[0]);\r\n $scope.fileKTPext = files[0].name.substr(files[0].name.lastIndexOf('.'));\r\n\r\n if ($scope.allowedExt.indexOf($scope.fileKTPext.toLowerCase()) < 0) {\r\n allowed = false;\r\n $scope.fileKTPext = '';\r\n $scope.KTPFile = '';\r\n alert(\"Extensi yang dibolehkan : \" + $scope.allowedExt);\r\n }\r\n else\r\n $scope.filenameKTP = files[0].name;\r\n }\r\n else\r\n console.log('file not found');\r\n };\r\n\r\n\r\n $scope.clickRemoveKTP = function (file, event, key) {\r\n event.preventDefault();\r\n $scope.fileKTP = \"\";\r\n $scope.filenameKTP = \"\";\r\n $scope.fileKTPext = \"x\";\r\n $scope.KTPFile.splice(key, 1);\r\n $scope.KTPFile = [];\r\n return null;\r\n };\r\n});\r\n","app.factory('appFactory', ['$http', '$log', '$q',\r\n function ($http, $log, $q) {\r\n\r\n return {\r\n getData: function (url,responseType) {\r\n var deferred = $q.defer();\r\n $http({\r\n method: 'GET',\r\n url: url,\r\n cache: false,\r\n responseType: responseType,\r\n }).then(function (data) {\r\n deferred.resolve(data);\r\n }, function (error) {\r\n Swal.fire(\r\n \"Failed\",\r\n \"There is a problem connecting to the server. \\\r\n Please ensure your internet connection is active. If the problem persists, please try again later.\",\r\n \"error\"\r\n )\r\n deferred.reject(error);\r\n $log.error(error);\r\n });\r\n return deferred.promise;\r\n },\r\n getDataByID: function (url, id) {\r\n var deferred = $q.defer();\r\n $http({\r\n method: 'GET',\r\n url: url + id,\r\n cache: false,\r\n }).then(function (data) {\r\n deferred.resolve(data);\r\n }, function (error) {\r\n deferred.reject(error);\r\n $log.error(error);\r\n });\r\n return deferred.promise;\r\n },\r\n postGetData: function (url, method, data) {\r\n var deferred = $q.defer();\r\n $http({\r\n method: method,\r\n url: url,\r\n data: data\r\n }).then(function (data) {\r\n deferred.resolve(data);\r\n }, function (error) {\r\n Swal.fire(\r\n \"Failed\",\r\n \"There is a problem connecting to the server. \\\r\n Please ensure your internet connection is active. If the problem persists, please try again later.\",\r\n \"error\"\r\n )\r\n deferred.reject(error);\r\n $log.error(error);\r\n });\r\n return deferred.promise;\r\n },\r\n }\r\n}]);","app.controller('BCAAgreementCtrl', ['$scope', '$uibModalInstance', 'agreementNumber', '$q', 'appFactory',\r\n function ($scope, $uibModalInstance, agreementNumber, $q, appFactory) {\r\n\r\n $scope.agreementNumber = agreementNumber;\r\n\r\n $scope.accept = function () {\r\n\r\n $uibModalInstance.close('accept', $scope.agreementNumber);\r\n };\r\n \r\n $scope.Broker = '';\r\n\r\n var allPromise = $q.all([\r\n\r\n $scope.retrieveSession,\r\n\r\n appFactory.getData(`/service/client.svc/getBrokerClient`).then(function (data) {\r\n\r\n if (data.status == 200) {\r\n\r\n $scope.Broker = data.data.d;\r\n }\r\n })\r\n ]);\r\n\r\n allPromise.then(function () {\r\n\r\n });\r\n\r\n $scope.cancel = function () {\r\n\r\n $uibModalInstance.dismiss('cancel', $scope.agreementNumber);\r\n };\r\n}]);","app.controller('changePasswordCtrl', ['$scope', '$routeParams', '$window', '$q', 'appFactory',\r\n function ($scope, $routeParams, $window, $q, appFactory) {\r\n\r\n $scope.User = {};\r\n $scope.User.GeneratedKey = $routeParams.generatedkey;\r\n\r\n // confirm password harus sama\r\n $scope.ConfirmPassword = '';\r\n $scope.checkPassword = function () {\r\n if ($scope.ConfirmPassword != $scope.User.NewPassword) {\r\n $scope.formChange.txtConfirmPassword.$invalid = true;\r\n } else {\r\n $scope.formChange.txtConfirmPassword.$invalid = false;\r\n }\r\n };\r\n\r\n // get params, jika genkey salah maka kembali ke halaman awal / login\r\n if ($routeParams.generatedkey) {\r\n\r\n appFactory.getData(`/service/client.svc/GetChangePasswordKey?key=${$scope.User.GeneratedKey}`).then(function (data) {\r\n\r\n if (data.status == 200) {\r\n if (!data.data.d.result) {\r\n\r\n $window.location.href = \"/#/\";\r\n return;\r\n }\r\n\r\n $scope.User.Email = data.data.d.email;\r\n }\r\n });\r\n }\r\n\r\n var allPromise = $q.all([]);\r\n\r\n $scope.submit = function () {\r\n\r\n // dynamic sweet alert post to app.js\r\n // 1: set the url of post or get request\r\n // 2: set the sweet alert translation, refers to apps.js $scope.SWALtranslate() :preconfirm = confirmation dialog before post or get request\r\n // 3: set the postdata to $http request = GET : {} / POST { yourdata : data }\r\n // 4: set the method to $http request = \"GET\" / \"POST\"\r\n // 5: set the sweet alert translation, refers to apps.js $scope.SWALtranslate() :preconfirm = confirmation dialog before post or get request\r\n // 6: if success or no error returns then...\r\n var urlsvc = '/service/client.svc/changePassword'; // 1\r\n var preconfirmtranslate = \"changepasswordconf\"; // 2\r\n var postData = { chgPass: $scope.User } // 3\r\n var method = \"POST\" // 4\r\n $scope.PostGetSwal(preconfirmtranslate, urlsvc, postData, method, function (issuccess) {\r\n\r\n if (issuccess) // 6\r\n $window.location.href = \"#/login\"; \r\n });\r\n };\r\n}]);","app.controller('CIF-CTRL', ['$scope', '$window', '$rootScope', '$uibModal', '$q', 'deviceDetector', '$filter', '$http', '$timeout',\r\n function ($scope, $window, $rootScope, $uibModal, $q, deviceDetector, $filter, $http, $timeout) {\r\n\r\n //Setting Camera\r\n $scope.device = deviceDetector;\r\n $scope.isMobile = $scope.device.isMobile();\r\n\r\n $scope.filenameKTP = \"\";\r\n $scope.fileKTP = \"\";\r\n $scope.fileKTPext = \"\";\r\n $scope.KTPFile = [];\r\n\r\n $scope.filenameFotoDiri = \"\";\r\n $scope.fileFotoDiri = \"\";\r\n $scope.fileFotoDiriext = \"\";\r\n $scope.fotodiriFile = [];\r\n\r\n $scope.filenameTandaTangan = \"\";\r\n $scope.fileTandaTangan = \"\";\r\n $scope.fileTandaTanganext = \"\";\r\n $scope.tandatanganFile = [];\r\n //$scope.ktpPhoto = \"\";\r\n\r\n $scope.openCamera = function (tipe) {\r\n let message = tipe;\r\n let url = 'ModalCamera.html';\r\n let ctrl = 'CameraController';\r\n\r\n\r\n if ($scope.device.isMobile()) {\r\n //url = 'ModalBrowse.html';\r\n //ctrl = 'BrowseController';\r\n //$scope.append = 'data:image/png;base64,';\r\n }\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n templateUrl: url,\r\n controller: ctrl,\r\n size: 'md',\r\n resolve: {\r\n items: function () {\r\n return message;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function (resolvedResponse) {\r\n //console.log('ktp',resolvedResponse);\r\n if (resolvedResponse) {\r\n if (tipe == \"KTP\"){\r\n $scope.ktpPhoto = resolvedResponse;\r\n\r\n Swal.fire({\r\n title: \"Checking KTP...\",\r\n //text: \"Please wait\",\r\n html: `Please wait `,\r\n icon: \"info\",\r\n showConfirmButton: false,\r\n showCancelButton: false,\r\n allowOutsideClick: false,\r\n didOpen: () => {\r\n if ($scope.CIFInvestor.QuestionRDN == 3) {\r\n return $http({\r\n method: 'POST',\r\n url: '/service/client.svc/OCRBukopin?CIFNID=' + $scope.CIFInvestor.NID,\r\n data: {\r\n KTPImage: $scope.ktpPhoto // Replace with actual base64 image string\r\n }\r\n }).then(function (response) {\r\n console.log(\"OCRChecking\", response);\r\n $scope.GetCIF();\r\n Swal.close();\r\n\r\n //$window.location.href = \"#/cif/data-pernyataan\";\r\n }, function (error) {\r\n console.log(\"Error in OCRChecking:\", error);\r\n Swal.close(); // Close the Swal in case of an error too\r\n });\r\n } else {\r\n Swal.close();\r\n //$window.location.href = \"#/cif/data-pernyataan\";\r\n }\r\n }\r\n })\r\n }\r\n else if (tipe == \"NPWP\")\r\n $scope.npwpPhoto = resolvedResponse;\r\n else if (tipe == \"SELFIE\")\r\n $scope.selfiePhoto = resolvedResponse;\r\n else if (tipe == \"OTHERS\")\r\n $scope.othersPhoto = resolvedResponse;\r\n else if (tipe == \"PARENT\")\r\n $scope.parentPhoto = resolvedResponse;\r\n else\r\n $scope.ttdPhoto = resolvedResponse;\r\n }\r\n }, function () { });\r\n };\r\n\r\n $scope.remove = function (tipe) {\r\n if (tipe == \"KTP\")\r\n $scope.ktpPhoto = '';\r\n else if (tipe == \"SELFIE\")\r\n $scope.selfiePhoto = '';\r\n else if (tipe == \"NPWP\")\r\n $scope.npwpPhoto = '';\r\n else if (tipe == \"OTHERS\")\r\n $scope.othersPhoto = '';\r\n else if (tipe == \"PARENT\")\r\n $scope.parentPhoto = '';\r\n else\r\n $scope.ttdPhoto = '';\r\n };\r\n\r\n $scope.selectKTP = function (files) {\r\n\r\n $scope.KTPFile = files;\r\n let allowed = true;\r\n var reader = new FileReader();\r\n\r\n reader.onload = function (e) {\r\n\r\n if (allowed)\r\n $scope.fileKTP = btoa(e.target.result.toString());\r\n };\r\n\r\n reader.readAsBinaryString(files[0]);\r\n $scope.fileKTPext = files[0].name.substr(files[0].name.lastIndexOf('.'));\r\n\r\n if ($scope.allowedExt.indexOf($scope.fileKTPext.toLowerCase()) < 0) {\r\n\r\n allowed = false;\r\n $scope.fileKTPext = '';\r\n $scope.KTPFile = '';\r\n alert(\"Extensi yang dibolehkan : \" + $scope.allowedExt);\r\n } else {\r\n\r\n $scope.filenameKTP = files[0].name;\r\n }\r\n };\r\n\r\n $scope.selectFotoDiri = function (files) {\r\n\r\n $scope.fotodiriFile = files;\r\n let allowed = true;\r\n var reader = new FileReader();\r\n\r\n reader.onload = function (e) {\r\n\r\n if (allowed)\r\n $scope.fileFotoDiri = btoa(e.target.result.toString());\r\n };\r\n\r\n reader.readAsBinaryString(files[0]);\r\n $scope.fileFotoDiriext = files[0].name.substr(files[0].name.lastIndexOf('.'));\r\n\r\n if ($scope.allowedExt.indexOf($scope.fileFotoDiriext.toLowerCase()) < 0) {\r\n\r\n allowed = false;\r\n $scope.fileFotoDiriext = '';\r\n $scope.fotodiriFile = '';\r\n alert(\"Extensi yang dibolehkan : \" + $scope.allowedExt);\r\n } else {\r\n\r\n $scope.filenameFotoDiri = files[0].name;\r\n }\r\n };\r\n\r\n $scope.selectTandaTangan = function (files) {\r\n\r\n $scope.tandatanganFile = files;\r\n let allowed = true;\r\n var reader = new FileReader();\r\n\r\n reader.onload = function (e) {\r\n\r\n if (allowed)\r\n $scope.fileTandaTangan = btoa(e.target.result.toString());\r\n };\r\n\r\n reader.readAsBinaryString(files[0]);\r\n $scope.fileTandaTanganext = files[0].name.substr(files[0].name.lastIndexOf('.'));\r\n if ($scope.allowedExt.indexOf($scope.fileTandaTanganext.toLowerCase()) < 0) {\r\n\r\n allowed = false;\r\n $scope.fileTandaTanganext = '';\r\n $scope.tandatanganFile = '';\r\n alert(\"Extensi yang dibolehkan : \" + $scope.allowedExt);\r\n } else {\r\n\r\n $scope.filenameTandaTangan = files[0].name;\r\n }\r\n };\r\n\r\n $scope.clickRemoveKTP = function (file, event, key) {\r\n\r\n event.preventDefault();\r\n $scope.fileKTP = \"\";\r\n $scope.filenameKTP = \"\";\r\n $scope.fileKTPext = \"x\";\r\n $scope.KTPFile.splice(key, 1);\r\n $scope.KTPFile = [];\r\n return null;\r\n };\r\n\r\n $scope.clickRemoveFotoDiri = function (file, event, key) {\r\n\r\n event.preventDefault();\r\n $scope.fileFotoDiri = \"\";\r\n $scope.filenameFotoDiri = \"\";\r\n $scope.fileFotoDiriext = \"x\";\r\n $scope.fotodiriFile.splice(key, 1);\r\n $scope.fotodiriFile = [];\r\n\r\n return null;\r\n };\r\n\r\n $scope.clickRemoveTandaTangan = function (file, event, key) {\r\n\r\n event.preventDefault();\r\n $scope.fileTandaTangan = \"\";\r\n $scope.filenameTandaTangan = \"\";\r\n $scope.fileTandaTanganext = \"x\";\r\n $scope.tandatanganFile.splice(key, 1);\r\n $scope.tandatanganFile = [];\r\n return null;\r\n };\r\n\r\n $scope.resetSign = function () {\r\n\r\n $scope.finishSignature = false;\r\n $scope.clear();\r\n };\r\n\r\n $scope.completeSign = function () {\r\n\r\n $scope.signature = $scope.accept();\r\n\r\n if ($scope.signature.dataUrl && !$scope.signature.isEmpty) {\r\n\r\n $scope.finishSignature = true;\r\n $scope.CIFInvestor.TandaTanganFile = $scope.signature.dataUrl.substr($scope.signature.dataUrl.lastIndexOf(',') + 1);\r\n\r\n } else {\r\n\r\n $scope.finishSignature = false;\r\n }\r\n };\r\n //end setting camera\r\n\r\n $scope.CIFInvestor = {\r\n Sex: '',\r\n Religion: '',\r\n MaritalStatus: '',\r\n Education: '',\r\n }\r\n let tmpdate = new Date();\r\n $scope.PhoneCode = '+62';\r\n tmpdate.setFullYear(tmpdate.getFullYear() - 17);\r\n $scope.maxDate = tmpdate.toISOString().slice(0, 10);\r\n $scope.maxResidencyDate = new Date().toISOString().slice(0, 10);\r\n $scope.Kewarganegaraan = 'Warga Negara Indonesia (WNI)';\r\n $scope.KewarganegaraanOption = ['Warga Negara Indonesia (WNI)', 'Lainnya'];\r\n $scope.IDLength = 16;\r\n $scope.chkSeumurHidup = true;\r\n $scope.DisabledSeumurHidup = true;\r\n\r\n $scope.IDCardCitySelected = '';\r\n $scope.DomicileCitySelected = '';\r\n $scope.NationalitySelected = '';\r\n $scope.IDCardCountrySelected = '';\r\n $scope.IDCardKecamatanSelected = '';\r\n $scope.IDCardOK = true;\r\n\r\n $scope.ListNationality = [];\r\n $scope.ListLookup = [];\r\n $scope.ListReligion = [];\r\n $scope.ListMarital = [];\r\n $scope.ListEducation = [];\r\n $scope.ListKecamatan = [];\r\n $scope.ListKecamatanDomicile = [];\r\n $scope.ListKecamatanAll = [];\r\n $scope.ListKelurahan = [];\r\n $scope.ListKelurahanDomicile = [];\r\n\r\n //INFORMATION BO\r\n $scope.CompanyCityBOSelected = '';\r\n $scope.BOIDCardCitySelected = '';\r\n $scope.BODomicileCitySelected = '';\r\n $scope.BOIDCardKecamatanSelected = '';\r\n $scope.BOListKecamatan = [];\r\n $scope.BOListKelurahan = [];\r\n $scope.ListIncomeBO = [];\r\n $scope.selectedFundSourceBO = [];\r\n $scope.selectedSpouseFundSource = [];\r\n\r\n $scope.selectCity = function (item, model, label, event) {\r\n if (item.CIFProvinceCityNID) {\r\n $scope.CIFInvestor.CompanyCityBO = item.CIFProvinceCityNID;\r\n }\r\n };\r\n\r\n\r\n //Start INFORMATION BO\r\n $scope.selectBOIDCardCity = function (item, model, label, event) {\r\n $scope.BOListKecamatan = '';\r\n $scope.BOListKelurahan = '';\r\n\r\n\r\n if (item.CIFProvinceCityNID) {\r\n $scope.CIFInvestor.BOIDCardCity = item.CIFProvinceCityNID;\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFKecamatanByCityNID?CIFCityNID=' + item.CIFProvinceCityNID,\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.BOListKecamatan = data.data.d;\r\n $scope.BOkecamatanChange();\r\n }, function (error) { });\r\n\r\n }\r\n };\r\n\r\n \r\n $scope.selectBODomicileCity = function (item, model, label, event) {\r\n $scope.BOListKecamatanDomicile = '';\r\n $scope.BOListKelurahanDomicile = '';\r\n\r\n if (item.CIFProvinceCityNID) {\r\n $scope.CIFInvestor.BODomicileCity = item.CIFProvinceCityNID;\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFKecamatanByCityNID?CIFCityNID=' + item.CIFProvinceCityNID,\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.BOListKecamatanDomicile = data.data.d;\r\n $scope.BOkecamatanDomicileChange();\r\n }, function (error) { });\r\n\r\n }\r\n };\r\n\r\n\r\n $scope.BOkecamatanChange = function () {\r\n if ($scope.CIFInvestor.BOIDCardKecamatan) {\r\n $scope.BOListKelurahan = $filter('filter')($scope.BOListKecamatan, { Kecamatan: $scope.CIFInvestor.BOIDCardKecamatan }, true);\r\n }\r\n }\r\n\r\n $scope.BOkelurahanChange = function () {\r\n if ($scope.CIFInvestor.BOIDCardKelurahan) {\r\n let temp = $filter('filter')($scope.BOListKecamatan, { Kelurahan: $scope.CIFInvestor.BOIDCardKelurahan }, true);\r\n if (temp) {\r\n $scope.CIFInvestor.IDCardPostalCode = temp[0].PostalCode;\r\n }\r\n }\r\n };\r\n\r\n $scope.BOkecamatanDomicileChange = function () {\r\n if ($scope.CIFInvestor.BODomicileKecamatan) {\r\n $scope.BOListKelurahanDomicile = $filter('filter')($scope.BOListKecamatanDomicile, { Kecamatan: $scope.CIFInvestor.BODomicileKecamatan }, true);\r\n }\r\n };\r\n\r\n $scope.BOkelurahanDomicileChange = function () {\r\n if ($scope.CIFInvestor.BODomicileKelurahan) {\r\n let temp = $filter('filter')($scope.BOListKecamatanDomicile, { Kelurahan: $scope.CIFInvestor.BODomicileKelurahan }, true);\r\n if (temp) {\r\n $scope.CIFInvestor.BODomicilePostalCode = temp[0].PostalCode;\r\n }\r\n }\r\n };\r\n\r\n $scope.CopyFromIDBO = function () {\r\n if ($scope.CIFInvestor.CopyIDBO) {\r\n $scope.CIFInvestor.BODomicilePostalCode = $scope.CIFInvestor.BOIDCardPostalCode;\r\n $scope.CIFInvestor.BODomicileAddress = $scope.CIFInvestor.BOIDCardAddress;\r\n $scope.CIFInvestor.BODomicileRT = $scope.CIFInvestor.BOIDCardRT;\r\n $scope.CIFInvestor.BODomicileRW = $scope.CIFInvestor.BOIDCardRW;\r\n $scope.CIFInvestor.BODomicileKelurahan = $scope.CIFInvestor.BOIDCardKelurahan;\r\n $scope.CIFInvestor.BODomicileKecamatan = $scope.CIFInvestor.BOIDCardKecamatan;\r\n $scope.CIFInvestor.BODomicileCity = $scope.CIFInvestor.BOIDCardCity;\r\n $scope.BODomicileCitySelected = $scope.BOIDCardCitySelected;\r\n }\r\n else {\r\n $scope.CIFInvestor.BODomicilePostalCode = '';\r\n $scope.CIFInvestor.BODomicileAddress = '';\r\n $scope.CIFInvestor.BODomicileRT = '';\r\n $scope.CIFInvestor.BODomicileRW = '';\r\n $scope.CIFInvestor.BODomicileKelurahan = '';\r\n $scope.CIFInvestor.BODomicileKecamatan = '';\r\n $scope.CIFInvestor.BODomicileCity = 0;\r\n $scope.BODomicileCitySelected = '';\r\n }\r\n\r\n };\r\n\r\n $scope.toggleFundSourceBOItem = function (fundsource) {\r\n let indexCIFLookupInteger = $scope.selectedFundSourceBO.indexOf(fundsource.CIFLookupInteger);\r\n\r\n if (indexCIFLookupInteger > -1)\r\n $scope.selectedFundSourceBO.splice(indexCIFLookupInteger, 1);\r\n else\r\n $scope.selectedFundSourceBO.push(fundsource.CIFLookupInteger);\r\n\r\n if ($scope.selectedFundSourceBO.indexOf(1) < 0)\r\n $scope.CIFInvestor.FundSourceTextBO = '';\r\n\r\n }\r\n //END INFORMATION BO\r\n\r\n\r\n $scope.checkIDCardNumber = function () {\r\n\r\n if ($scope.CIFInvestor.IDCardNumber) {\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/checkIDCardNumber?KTP=' + $scope.CIFInvestor.IDCardNumber,\r\n cache: false\r\n }).then(function (data) {\r\n if (data.data.d != null) {\r\n var obj = data.data.d;\r\n if (obj.key && obj.key == 1) {\r\n $scope.CIFInvestor.IDCardNumber = '';\r\n Swal.fire('Gagal', obj.value, \"error\");\r\n }\r\n }\r\n }, function (error) { });\r\n }\r\n }\r\n\r\n $scope.KewarganegaraanChange = function () {\r\n\r\n if ($scope.Kewarganegaraan == 'Warga Negara Indonesia (WNI)') {\r\n $scope.IDLength = 16;\r\n $scope.chkSeumurHidup = true;\r\n $scope.DisabledSeumurHidup = true;\r\n $scope.CIFInvestor.Nationality = 102;\r\n $scope.CIFInvestor.NationalityBO = 102;\r\n $scope.CIFInvestor.IDCardCountry = 102;\r\n $scope.CIFInvestor.CopyID = true;\r\n $scope.CIFInvestor.CopyIDBO = true;\r\n $scope.CIFInvestor.IDCardExpireDate = new Date(9998, 11, 31);\r\n $scope.CIFInvestor.IDCardExpireDateBO = new Date(9998, 11, 31);\r\n }\r\n else if ($scope.Kewarganegaraan == 'Lainnya') {\r\n $scope.IDLength = 8;\r\n $scope.chkSeumurHidup = false;\r\n $scope.DisabledSeumurHidup = true;\r\n $scope.CIFInvestor.Nationality = 0;\r\n $scope.CIFInvestor.NationalityBO = 0;\r\n $scope.CIFInvestor.IDCardCountry = 0;\r\n $scope.CIFInvestor.CopyID = false;\r\n $scope.CIFInvestor.CopyIDBO = true;\r\n $scope.CIFInvestor.IDCardExpireDate = '';\r\n $scope.CIFInvestor.IDCardExpireDateBO = '';\r\n $scope.CIFInvestor.IDCardCity = 0;\r\n $scope.CIFInvestor.IDCardKecamatan = '';\r\n $scope.CIFInvestor.IDCardKelurahan = '';\r\n $scope.CIFInvestor.IDCardRT = '';\r\n $scope.CIFInvestor.IDCardRW = '';\r\n $scope.CIFInvestor.IDCardAddress = '';\r\n $scope.CIFInvestor.BOIDCardCity = 0;\r\n $scope.CIFInvestor.BOIDCardKecamatan = '';\r\n $scope.CIFInvestor.BOIDCardKelurahan = '';\r\n $scope.CIFInvestor.BOIDCardRT = '';\r\n $scope.CIFInvestor.BOIDCardRW = '';\r\n $scope.CIFInvestor.BOIDCardAddress = '';\r\n $scope.IDCardCitySelected = '';\r\n $scope.BOIDCardCitySelected = '';\r\n }\r\n }\r\n\r\n $scope.regex = '^[a-zA-Z0-9._-]+$'\r\n\r\n $scope.KewarganegaraanChangeBO = function () {\r\n\r\n if ($scope.Kewarganegaraan == 'Warga Negara Indonesia (WNI)') {\r\n $scope.IDLength = 16;\r\n $scope.chkSeumurHidup = true;\r\n $scope.DisabledSeumurHidup = true;\r\n $scope.CIFInvestor.Nationality = 102;\r\n $scope.CIFInvestor.NationalityBO = 102;\r\n $scope.CIFInvestor.IDCardCountry = 102;\r\n $scope.CIFInvestor.CopyID = true;\r\n $scope.CIFInvestor.CopyIDBO = true;\r\n $scope.CIFInvestor.IDCardExpireDate = new Date(9998, 11, 31);\r\n $scope.CIFInvestor.IDCardExpireDateBO = new Date(9998, 11, 31);\r\n }\r\n else if ($scope.Kewarganegaraan == 'Lainnya') {\r\n $scope.IDLength = 8;\r\n $scope.chkSeumurHidup = false;\r\n $scope.DisabledSeumurHidup = true;\r\n $scope.CIFInvestor.Nationality = 0;\r\n $scope.CIFInvestor.NationalityBO = 0;\r\n $scope.CIFInvestor.IDCardCountry = 0;\r\n $scope.CIFInvestor.CopyID = false;\r\n $scope.CIFInvestor.CopyIDBO = true;\r\n $scope.CIFInvestor.IDCardExpireDate = '';\r\n $scope.CIFInvestor.IDCardExpireDateBO = '';\r\n $scope.CIFInvestor.IDCardCity = 0;\r\n $scope.CIFInvestor.IDCardKecamatan = '';\r\n $scope.CIFInvestor.IDCardKelurahan = '';\r\n $scope.CIFInvestor.IDCardRT = '';\r\n $scope.CIFInvestor.IDCardRW = '';\r\n $scope.CIFInvestor.IDCardAddress = '';\r\n $scope.CIFInvestor.BOIDCardCity = 0;\r\n $scope.CIFInvestor.BOIDCardKecamatan = '';\r\n $scope.CIFInvestor.BOIDCardKelurahan = '';\r\n $scope.CIFInvestor.BOIDCardRT = '';\r\n $scope.CIFInvestor.BOIDCardRW = '';\r\n $scope.CIFInvestor.BOIDCardAddress = '';\r\n $scope.IDCardCitySelected = '';\r\n $scope.BOIDCardCitySelected = '';\r\n }\r\n }\r\n\r\n $scope.selectNationality = function (item, model, label, event) {\r\n if (item.CIFCountryNID) {\r\n\r\n $scope.CIFInvestor.Nationality = item.CIFCountryNID;\r\n $scope.CIFInvestor.IDCardCountry = item.CIFCountryNID;\r\n $scope.NationalitySelected = item;\r\n $scope.IDCardCountrySelected = item;\r\n }\r\n };\r\n\r\n $scope.selectIDCardCountry = function (item, model, label, event) {\r\n if (item.CIFCountryNID) \r\n $scope.CIFInvestor.IDCardCountry = item.CIFCountryNID;\r\n \r\n };\r\n\r\n $scope.selectIDCardCity = function (item, model, label, event) {\r\n $scope.ListKecamatan = '';\r\n $scope.ListKelurahan = '';\r\n\r\n if (item.CIFProvinceCityNID) {\r\n $scope.CIFInvestor.IDCardCity = item.CIFProvinceCityNID;\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFKecamatanByCityNID?CIFCityNID=' + item.CIFProvinceCityNID,\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.ListKecamatan = data.data.d;\r\n $scope.kecamatanChange();\r\n }, function (error) { });\r\n\r\n }\r\n\r\n };\r\n\r\n $scope.selectDomicileCity = function (item, model, label, event) {\r\n $scope.ListKecamatanDomicile = '';\r\n $scope.ListKelurahanDomicile = '';\r\n\r\n if (item.CIFProvinceCityNID) {\r\n $scope.CIFInvestor.DomicileCity = item.CIFProvinceCityNID;\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFKecamatanByCityNID?CIFCityNID=' + item.CIFProvinceCityNID,\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.ListKecamatanDomicile = data.data.d;\r\n $scope.kecamatanChange();\r\n }, function (error) { });\r\n\r\n }\r\n };\r\n\r\n $scope.kecamatanChange = function () {\r\n\r\n if ($scope.CIFInvestor.IDCardKecamatan) \r\n $scope.ListKelurahan = $filter('filter')($scope.ListKecamatan, { Kecamatan: $scope.CIFInvestor.IDCardKecamatan }, true);\r\n }\r\n\r\n $scope.kelurahanChange = function () {\r\n\r\n if ($scope.CIFInvestor.IDCardKelurahan) {\r\n\r\n let temp = $filter('filter')($scope.ListKecamatan, { Kelurahan: $scope.CIFInvestor.IDCardKelurahan }, true);\r\n if (temp)\r\n $scope.CIFInvestor.IDCardPostalCode = temp[0].PostalCode;\r\n \r\n }\r\n }\r\n\r\n $scope.kecamatanDomicileChange = function () {\r\n if ($scope.CIFInvestor.DomicileKecamatan)\r\n $scope.ListKelurahanDomicile = $filter('filter')($scope.ListKecamatanDomicile, { Kecamatan: $scope.CIFInvestor.DomicileKecamatan }, true);\r\n }\r\n\r\n $scope.kelurahanDomicileChange = function () {\r\n if ($scope.CIFInvestor.DomicileKelurahan) {\r\n let temp = $filter('filter')($scope.ListKecamatanDomicile, { Kelurahan: $scope.CIFInvestor.DomicileKelurahan }, true);\r\n if (temp) \r\n $scope.CIFInvestor.DomicilePostalCode = temp[0].PostalCode;\r\n }\r\n }\r\n\r\n $scope.CopyFromID = function () {\r\n if ($scope.CIFInvestor.CopyID) {\r\n\r\n $scope.CIFInvestor.DomicilePostalCode = $scope.CIFInvestor.IDCardPostalCode;\r\n $scope.CIFInvestor.DomicileAddress = $scope.CIFInvestor.IDCardAddress;\r\n $scope.CIFInvestor.DomicileRT = $scope.CIFInvestor.IDCardRT;\r\n $scope.CIFInvestor.DomicileRW = $scope.CIFInvestor.IDCardRW;\r\n $scope.CIFInvestor.DomicileKelurahan = $scope.CIFInvestor.IDCardKelurahan;\r\n $scope.CIFInvestor.DomicileKecamatan = $scope.CIFInvestor.IDCardKecamatan;\r\n $scope.CIFInvestor.DomicileCity = $scope.CIFInvestor.IDCardCity;\r\n $scope.DomicileCitySelected = $scope.IDCardCitySelected;\r\n } else {\r\n\r\n $scope.CIFInvestor.DomicilePostalCode = '';\r\n $scope.CIFInvestor.DomicileAddress = '';\r\n $scope.CIFInvestor.DomicileRT = '';\r\n $scope.CIFInvestor.DomicileRW = '';\r\n $scope.CIFInvestor.DomicileKelurahan = '';\r\n $scope.CIFInvestor.DomicileKecamatan = '';\r\n $scope.CIFInvestor.DomicileCity = 0;\r\n $scope.DomicileCitySelected = '';\r\n }\r\n };\r\n\r\n $scope.mustSelect = function (event, field) {\r\n\r\n if (event.keyCode == 27) {\r\n\r\n let returnValue = true;\r\n switch (field) {\r\n\r\n case 'IDCard': $scope.CIFInvestor.IDCardCity = ''; returnValue = false;\r\n break;\r\n case 'Domicile': $scope.CIFInvestor.DomicileCity = ''; returnValue = false;\r\n break;\r\n case 'Correspondence': $scope.CIFInvestor.CorrespondenceCity = ''; returnValue = false;\r\n break;\r\n default:\r\n break;\r\n }\r\n return returnValue;\r\n }\r\n return true;\r\n }\r\n\r\n var allPromise = $q.all([\r\n $scope.retrieveSessions(),\r\n\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFCountry',\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.ListNationality = data.data.d;\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFCountryAll',\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.ListCountry = data.data.d;\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFProvinceCity',\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.ListProvinceCity = data.data.d;\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFLookup',\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.ListLookup = data.data.d;\r\n if ($scope.ListLookup) {\r\n $scope.ListReligion = $filter('filter')($scope.ListLookup, { CIFLookupID: 'Religion' }, true);\r\n $scope.ListMarital = $filter('filter')($scope.ListLookup, { CIFLookupID: 'MaritalStatus' }, true);\r\n $scope.ListEducation = $filter('filter')($scope.ListLookup, { CIFLookupID: 'Educational' }, true);\r\n $scope.ListIncomeBO = $filter('filter')($scope.ListLookup, { CIFLookupID: 'IncomePerAnnum' }, true);\r\n $scope.ListFundSourceBO = $filter('filter')($scope.ListLookup, { CIFLookupID: 'FundSource' }, true);\r\n $scope.ListIncomePerAnnumBO = $filter('filter')($scope.ListLookup, { CIFLookupID: 'IncomePerAnnum' }, true);\r\n }\r\n }, function (error) { }),\r\n\r\n ]);\r\n\r\n $scope.GetCIF = function () {\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/getCIF',\r\n }).then(function (data) {\r\n\r\n if (data.data.d.Email != null) {\r\n\r\n var obj = data.data.d;\r\n $scope.CIFInvestor = data.data.d;\r\n $scope.CIFInvestor.Stage = 1;\r\n\r\n //info upload \r\n $scope.filenameKTP = $scope.CIFInvestor.KTPFile;\r\n $scope.filenameFotoDiri = $scope.CIFInvestor.SelfieFile;\r\n $scope.filenameTandaTangan = $scope.CIFInvestor.TandaTanganFile;\r\n if ($scope.filenameKTP && !$scope.ktpPhoto) {\r\n\r\n if (!$scope.filenameKTP.endsWith(\".pdf\")) {\r\n $http({\r\n method: 'GET',\r\n url: 'FileKYC/' + $scope.filenameKTP,\r\n responseType: 'blob',\r\n\r\n }).then(function (response) {\r\n if (response.data) {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(response.data);\r\n reader.onloadend = function () {\r\n $scope.ktpPhoto = reader.result;\r\n $scope.showKTP = false; ''\r\n }\r\n\r\n }\r\n //$scope.KTPFile = [];\r\n //$scope.KTPFile.push(response.data);\r\n }, function (response) {\r\n $scope.saveErrors = true;\r\n $scope.errorMessages = {\r\n text: 'File tidak ketemu atau terhapus dari server!!!',\r\n };\r\n $timeout(function () {\r\n $scope.saveErrors = false;\r\n }, 3000);\r\n });\r\n }\r\n };\r\n if ($scope.filenameFotoDiri) {\r\n\r\n if (!$scope.filenameFotoDiri.endsWith(\".pdf\")) {\r\n $http({\r\n method: 'GET',\r\n url: 'FileKYC/' + $scope.filenameFotoDiri,\r\n responseType: 'blob',\r\n }).then(function (response) {\r\n if (response.data) {\r\n var reader3 = new FileReader();\r\n reader3.readAsDataURL(response.data);\r\n reader3.onloadend = function () {\r\n $scope.selfiePhoto = reader3.result;\r\n }\r\n\r\n }\r\n //$scope.fotodiriFile = [];\r\n //$scope.fotodiriFile.push(response.data);\r\n }, function (response) {\r\n $scope.saveErrors = true;\r\n $scope.errorMessages = {\r\n text: 'File tidak ketemu atau terhapus dari server!!!',\r\n };\r\n $timeout(function () {\r\n $scope.saveErrors = false;\r\n }, 3000);\r\n });\r\n }\r\n };\r\n if ($scope.filenameTandaTangan) {\r\n\r\n if (!$scope.filenameTandaTangan.endsWith(\".pdf\")) {\r\n $http({\r\n method: 'GET',\r\n url: 'FileKYC/' + $scope.filenameTandaTangan,\r\n responseType: 'blob',\r\n\r\n }).then(function (response) {\r\n if (response.data) {\r\n var reader4 = new FileReader();\r\n reader4.readAsDataURL(response.data);\r\n reader4.onloadend = function () {\r\n $scope.ttdPhoto = reader4.result;\r\n }\r\n\r\n }\r\n //$scope.tandatanganFile = [];\r\n //$scope.tandatanganFile.push(response.data);\r\n }, function (response) {\r\n $scope.saveErrors = true;\r\n $scope.errorMessages = {\r\n text: 'File tidak ketemu atau terhapus dari server!!!',\r\n };\r\n $timeout(function () {\r\n $scope.saveErrors = false;\r\n }, 3000);\r\n });\r\n }\r\n };\r\n //end info upload\r\n\r\n\r\n if ($scope.CIFInvestor.Sex == 0)\r\n $scope.CIFInvestor.Sex = '';\r\n\r\n if ($scope.CIFInvestor.BenefecialOwner == 0)\r\n $scope.CIFInvestor.BenefecialOwner = '';\r\n\r\n if ($scope.CIFInvestor.Religion == 0)\r\n $scope.CIFInvestor.Religion = '';\r\n\r\n if ($scope.CIFInvestor.MaritalStatus == 0)\r\n $scope.CIFInvestor.MaritalStatus = '';\r\n\r\n if ($scope.CIFInvestor.Education == 0)\r\n $scope.CIFInvestor.Education = '';\r\n\r\n if (data.data.d.BirthDate)\r\n $scope.CIFInvestor.BirthDate = new Date(data.data.d.BirthDate);\r\n\r\n\r\n if (data.data.d.IDCardCity) {\r\n $scope.IDCardCitySelected = $filter('filter')($scope.ListProvinceCity, { CIFProvinceCityNID: data.data.d.IDCardCity }, true)[0];\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFKecamatanByCityNID?CIFCityNID=' + data.data.d.IDCardCity,\r\n cache: true,\r\n }).then(function (dataKecamatan) {\r\n $scope.ListKecamatan = dataKecamatan.data.d;\r\n if ($scope.ListKecamatan)\r\n $scope.ListKelurahan = $filter('filter')($scope.ListKecamatan, { Kecamatan: $scope.CIFInvestor.IDCardKecamatan }, true);\r\n }, function (error) { });\r\n }\r\n\r\n if (data.data.d.DomicileCity) {\r\n $scope.DomicileCitySelected = $filter('filter')($scope.ListProvinceCity, { CIFProvinceCityNID: data.data.d.DomicileCity }, true)[0];\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFKecamatanByCityNID?CIFCityNID=' + data.data.d.DomicileCity,\r\n cache: true,\r\n }).then(function (dataKecamatanDomisili) {\r\n\r\n $scope.ListKecamatanDomicile = dataKecamatanDomisili.data.d;\r\n if ($scope.ListKecamatanDomicile)\r\n $scope.ListKelurahanDomicile = $filter('filter')($scope.ListKecamatanDomicile, { Kecamatan: $scope.CIFInvestor.DomicileKecamatan }, true);\r\n }, function (error) { });\r\n }\r\n\r\n\r\n if ($scope.CIFInvestor.ResidencyNStatus) {\r\n var residence = $filter('filter')($scope.ListLookup, { CIFLookupInteger: Number($scope.CIFInvestor.ResidencyNStatus) }, true)[0];\r\n $scope.CIFInvestor.ResidencyNStatus = residence;\r\n }\r\n\r\n if (data.data.d.ResidencyDate)\r\n $scope.CIFInvestor.ResidencyDate = new Date(data.data.d.ResidencyDate);\r\n\r\n\r\n if (data.data.d.Nationality) {\r\n\r\n if (data.data.d.Nationality == 102) {\r\n $scope.IDLength = 16;\r\n $scope.chkSeumurHidup = true;\r\n $scope.DisabledSeumurHidup = true;\r\n $scope.CIFInvestor.Nationality = 102;\r\n $scope.CIFInvestor.NationalityBO = 102;\r\n $scope.CIFInvestor.IDCardCountry = 102;\r\n $scope.Kewarganegaraan = $scope.KewarganegaraanOption[0];\r\n $scope.CIFInvestor.IDCardExpireDate = new Date(9998, 11, 31);\r\n $scope.CIFInvestor.IDCardExpireDateBO = new Date(9998, 11, 31);\r\n $scope.CIFInvestor.CopyID = true;\r\n }\r\n else {\r\n $scope.IDLength = 8;\r\n $scope.chkSeumurHidup = false;\r\n $scope.DisabledSeumurHidup = true;\r\n $scope.Kewarganegaraan = $scope.KewarganegaraanOption[1];\r\n $scope.NationalitySelected = $filter('filter')($scope.ListNationality, { CIFCountryNID: data.data.d.Nationality }, true)[0];\r\n $scope.IDCardCountrySelected = $filter('filter')($scope.ListCountry, { CIFCountryNID: data.data.d.IDCardCountry }, true)[0];\r\n\r\n if (data.data.d.IDCardExpireDate)\r\n $scope.CIFInvestor.IDCardExpireDate = new Date(data.data.d.IDCardExpireDate);\r\n\r\n if (data.data.d.IDCardExpireDateBO)\r\n $scope.CIFInvestor.IDCardExpireDateBO = new Date(data.data.d.IDCardExpireDateBO);\r\n }\r\n } else {\r\n $scope.KewarganegaraanChange();\r\n }\r\n\r\n if (data.data.d.CopyID)\r\n $scope.CopyFromID();\r\n\r\n //-------------------------------------start info bo----------------------------------------------------------------------------------------------\r\n if (data.data.d.CopyIDBO)\r\n $scope.CopyFromIDBO();\r\n\r\n\r\n if ($scope.CIFInvestor.QuestionNPWPBO == 0)\r\n $scope.CIFInvestor.QuestionNPWPBO = '';\r\n\r\n if ($scope.CIFInvestor.IncomePerAnnumBO == '') {\r\n $scope.CIFInvestor.IncomePerAnnumBO = 0;\r\n }\r\n\r\n if ($scope.CIFInvestor.FundSourceBO) {\r\n $scope.selectedFundSourceBO = [];\r\n let temp = $scope.CIFInvestor.FundSourceBO.split(',');\r\n for (var i = 0; i < temp.length; i++) {\r\n $scope.selectedFundSourceBO.push(Number(temp[i]));\r\n }\r\n }\r\n\r\n if ($scope.CIFInvestor.CompanyCityBO)\r\n $scope.CompanyCityBOSelected = $filter('filter')($scope.ListProvinceCity, { CIFProvinceCityNID: $scope.CIFInvestor.CompanyCityBO }, true)[0];\r\n\r\n if (data.data.d.BirthDateBO)\r\n $scope.CIFInvestor.BirthDateBO = new Date(data.data.d.BirthDateBO);\r\n\r\n if (data.data.d.BOIDCardCity) {\r\n $scope.BOIDCardCitySelected = $filter('filter')($scope.ListProvinceCity, { CIFProvinceCityNID: data.data.d.BOIDCardCity }, true)[0];\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFKecamatanByCityNID?CIFCityNID=' + data.data.d.BOIDCardCity,\r\n cache: true,\r\n }).then(function (dataKecamatan) {\r\n $scope.BOListKecamatan = dataKecamatan.data.d;\r\n if ($scope.BOListKecamatan)\r\n $scope.BOListKelurahan = $filter('filter')($scope.BOListKecamatan, { Kecamatan: $scope.CIFInvestor.BOIDCardKecamatan }, true);\r\n }, function (error) { });\r\n }\r\n\r\n if (data.data.d.BODomicileCity) {\r\n $scope.BODomicileCitySelected = $filter('filter')($scope.ListProvinceCity, { CIFProvinceCityNID: data.data.d.BODomicileCity }, true)[0];\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFKecamatanByCityNID?CIFCityNID=' + data.data.d.DomicileCity,\r\n cache: true,\r\n }).then(function (dataKecamatanDomisili) {\r\n console.log('domi: ', data);\r\n $scope.BOListKecamatanDomicile = data.data.d;\r\n if ($scope.BOListKecamatanDomicile)\r\n $scope.BOListKelurahanDomicile = $filter('filter')($scope.BOListKecamatanDomicile, { Kecamatan: $scope.CIFInvestor.BODomicileKecamatan }, true);\r\n }, function (error) { });\r\n }\r\n //-------------------------------------end info bo----------------------------------------------------------------------------------------------\r\n\r\n }\r\n }, function (error) { });\r\n }\r\n\r\n allPromise.then(function () {\r\n\r\n $scope.GetCIF();\r\n\r\n var SWALtranslate = $scope.SWALtranslate('preparationinfouploadphotocif1');\r\n\r\n Swal.fire({\r\n title: SWALtranslate.title,\r\n text: SWALtranslate.message,\r\n imageAlt: 'Preparation',\r\n imageHeight: 250,\r\n animation: false,\r\n confirmButtonColor: '#FFBC00',\r\n customClass: {\r\n confirmButton: 'swal-confirm-button-class',\r\n },\r\n });\r\n });\r\n\r\n $scope.bo = function () {\r\n \r\n\r\n var SWALtranslate = $scope.SWALtranslate('beneficialowner');\r\n\r\n Swal.fire({\r\n text: SWALtranslate.message,\r\n imageAlt: 'BO',\r\n imageHeight: 250,\r\n animation: false,\r\n customClass: {\r\n confirmButton: 'swal-confirm-button-class',\r\n },\r\n });\r\n \r\n }\r\n\r\n $scope.prepareData = function () {\r\n\r\n if ($scope.CIFInvestor.CopyIDBO) {\r\n $scope.CIFInvestor.BODomicilePostalCode = $scope.CIFInvestor.BOIDCardPostalCode;\r\n $scope.CIFInvestor.BODomicileAddress = $scope.CIFInvestor.BOIDCardAddress;\r\n $scope.CIFInvestor.BODomicileRT = $scope.CIFInvestor.BOIDCardRT;\r\n $scope.CIFInvestor.BODomicileRW = $scope.CIFInvestor.BOIDCardRW;\r\n $scope.CIFInvestor.BODomicileKelurahan = $scope.CIFInvestor.BOIDCardKelurahan;\r\n $scope.CIFInvestor.BODomicileKecamatan = $scope.CIFInvestor.BOIDCardKecamatan;\r\n $scope.CIFInvestor.BODomicileCity = $scope.CIFInvestor.BOIDCardCity;\r\n $scope.BODomicileCitySelected = $scope.BOIDCardCitySelected;\r\n }\r\n\r\n if ($scope.selectedFundSourceBO) {\r\n $scope.CIFInvestor.FundSourceBO = '';\r\n for (var i = 0; i < $scope.selectedFundSourceBO.length; i++) {\r\n if ($scope.CIFInvestor.FundSourceBO.length > 0)\r\n $scope.CIFInvestor.FundSourceBO += ',';\r\n $scope.CIFInvestor.FundSourceBO += $scope.selectedFundSourceBO[i];\r\n\r\n }\r\n }\r\n\r\n if ($scope.CIFInvestor.NationalityBO)\r\n $scope.CIFInvestor.NationalityBO = Number($scope.CIFInvestor.NationalityBO);\r\n\r\n if ($scope.CIFInvestor.BOIDCardCity)\r\n $scope.CIFInvestor.BOIDCardCity = Number($scope.CIFInvestor.BOIDCardCity);\r\n\r\n if ($scope.CIFInvestor.BODomicileCity)\r\n $scope.CIFInvestor.BODomicileCity = Number($scope.CIFInvestor.BODomicileCity);\r\n\r\n if ($scope.CIFInvestor.QuestionNPWPBO == '') {\r\n $scope.CIFInvestor.QuestionNPWPBO = 0;\r\n }\r\n\r\n if ($scope.CIFInvestor.IncomePerAnnumBO == '') {\r\n $scope.CIFInvestor.IncomePerAnnumBO = 0;\r\n }\r\n\r\n //----------------------------------------------------------------------------------------------\r\n if ($scope.CIFInvestor.CopyID) {\r\n\r\n $scope.CIFInvestor.DomicilePostalCode = $scope.CIFInvestor.IDCardPostalCode;\r\n $scope.CIFInvestor.DomicileAddress = $scope.CIFInvestor.IDCardAddress;\r\n $scope.CIFInvestor.DomicileRT = $scope.CIFInvestor.IDCardRT;\r\n $scope.CIFInvestor.DomicileRW = $scope.CIFInvestor.IDCardRW;\r\n $scope.CIFInvestor.DomicileKelurahan = $scope.CIFInvestor.IDCardKelurahan;\r\n $scope.CIFInvestor.DomicileKecamatan = $scope.CIFInvestor.IDCardKecamatan;\r\n $scope.CIFInvestor.DomicileCity = $scope.CIFInvestor.IDCardCity;\r\n $scope.DomicileCitySelected = $scope.IDCardCitySelected;\r\n }\r\n\r\n if ($scope.CIFInvestor.AccountStatus)\r\n $scope.CIFInvestor.AccountStatus = Number($scope.CIFInvestor.AccountStatus);\r\n\r\n //if ($scope.CIFInvestor.Sex)\r\n // $scope.CIFInvestor.Sex = Number($scope.CIFInvestor.Sex);\r\n\r\n //if ($scope.CIFInvestor.Religion)\r\n // $scope.CIFInvestor.Religion = Number($scope.CIFInvestor.Religion);\r\n\r\n //if ($scope.CIFInvestor.MaritalStatus)\r\n // $scope.CIFInvestor.MaritalStatus = Number($scope.CIFInvestor.MaritalStatus);\r\n\r\n //if ($scope.CIFInvestor.Education)\r\n // $scope.CIFInvestor.Education = Number($scope.CIFInvestor.Education);\r\n\r\n var status1 = $filter('date')(new Date($scope.CIFInvestor.ResidencyDate), 'yyyy-MM-dd');\r\n\r\n if ($scope.CIFInvestor.ResidencyDate) {\r\n $scope.CIFInvestor.ResidencyDate = status1;\r\n }\r\n\r\n if ($scope.CIFInvestor.ResidencyNStatus) {\r\n $scope.CIFInvestor.ResidencyNStatus = $scope.CIFInvestor.ResidencyNStatus.CIFLookupInteger;\r\n }\r\n\r\n if ($scope.CIFInvestor.Nationality)\r\n $scope.CIFInvestor.Nationality = Number($scope.CIFInvestor.Nationality);\r\n\r\n if ($scope.CIFInvestor.IDCardCountry)\r\n $scope.CIFInvestor.IDCardCountry = Number($scope.CIFInvestor.IDCardCountry);\r\n\r\n if ($scope.CIFInvestor.IDCardCity)\r\n $scope.CIFInvestor.IDCardCity = Number($scope.CIFInvestor.IDCardCity);\r\n\r\n if ($scope.CIFInvestor.DomicileCity)\r\n $scope.CIFInvestor.DomicileCity = Number($scope.CIFInvestor.DomicileCity);\r\n\r\n if ($scope.CIFInvestor.Education != 1)\r\n $scope.CIFInvestor.EducationText = '';\r\n\r\n var language;\r\n if (window.navigator.languages) {\r\n\r\n language = window.navigator.languages[0];\r\n } else {\r\n\r\n language = window.navigator.userLanguage || window.navigator.language;\r\n }\r\n\r\n $scope.CIFInvestor.Language = language;\r\n\r\n //var date1 = $filter('date')(new Date($scope.CIFInvestor.BirthDate), 'yyyy-MM-dd');\r\n\r\n if ($scope.CIFInvestor.BirthDate) {\r\n //var date1 = $filter('date')(new Date($scope.CIFInvestor.BirthDate), 'yyyy-MM-dd');\r\n //$scope.CIFInvestor.ClientBirthDate1 = $scope.CIFInvestor.BirthDate.toLocaleDateString('en-US');\r\n //$scope.CIFInvestor.ClientBirthDate2 = $scope.CIFInvestor.BirthDate;\r\n //$scope.CIFInvestor.ClientBirthDate3 = date1;\r\n\r\n //$scope.CIFInvestor.BirthDate = date1;\r\n\r\n $scope.CIFInvestor.BirthDate = moment($scope.CIFInvestor.BirthDate).format('YYYY-MM-DD');\r\n $scope.CIFInvestor.ClientBirthDate1 = moment($scope.CIFInvestor.BirthDate).format('YYYY-MM-DD');\r\n $scope.CIFInvestor.ClientBirthDate2 = moment($scope.CIFInvestor.BirthDate).format('YYYY-MM-DD');\r\n $scope.CIFInvestor.ClientBirthDate3 = moment($scope.CIFInvestor.BirthDate).format('YYYY-MM-DD');\r\n }\r\n }\r\n\r\n $scope.validation = false;\r\n\r\n $scope.submit = function () {\r\n $scope.prepareData();\r\n\r\n //setup upload data\r\n if ($scope.ktpPhoto)\r\n $scope.CIFInvestor.KTPFile = $scope.ktpPhoto.replace(\"data:image/jpeg;base64,\", \"\");\r\n\r\n if ($scope.npwpPhoto)\r\n $scope.CIFInvestor.NPWPFile = $scope.npwpPhoto.replace(\"data:image/jpeg;base64,\", \"\");\r\n\r\n if ($scope.selfiePhoto)\r\n $scope.CIFInvestor.SelfieFile = $scope.selfiePhoto.replace(\"data:image/jpeg;base64,\", \"\");\r\n\r\n if ($scope.othersPhoto)\r\n $scope.CIFInvestor.OthersFile = $scope.othersPhoto.replace(\"data:image/jpeg;base64,\", \"\");\r\n\r\n if ($scope.parentPhoto)\r\n $scope.CIFInvestor.ParentFile = $scope.parentPhoto.replace(\"data:image/jpeg;base64,\", \"\");\r\n\r\n if ($scope.ttdPhoto)\r\n $scope.CIFInvestor.TandaTanganFile = $scope.ttdPhoto.replace(\"data:image/jpeg;base64,\", \"\");\r\n\r\n console.log($scope.CIFInvestor);\r\n\r\n if ($scope.validation) {\r\n var urlsvc = '/service/client.svc/SaveCIF'; // 1 \r\n var preconfirmtranslate = \"submitCif1\"; // 2\r\n var postData = { cifdata: $scope.CIFInvestor } // 3\r\n var method = \"POST\" // 4\r\n $scope.PostGetSwal(preconfirmtranslate, urlsvc, postData, method, function (issuccess) {\r\n\r\n if (issuccess) // 6\r\n $window.location.href = \"#/cif/data-bank\";\r\n });\r\n }\r\n \r\n }\r\n\r\n $scope.validationinput = function () {\r\n var errorForm = $scope.myForm1.$error.required\r\n $scope.validation = $scope.myForm1.$valid;\r\n var message = [];\r\n //console.log('error :', errorForm);\r\n\r\n if (errorForm) {\r\n for (let i = 0; i < errorForm.length; i++) {\r\n //message += errorForm[i].$name + \" , \";\r\n message.push(errorForm[i].$name);\r\n }\r\n }\r\n\r\n if (!$scope.ktpPhoto || !$scope.selfiePhoto || !$scope.ttdPhoto) {\r\n $scope.validation = false\r\n message.push(\"fileUpload\");\r\n }\r\n\r\n //PROSES VALIDATION\r\n if ($scope.validation == false) {\r\n console.log(\"error : \" + message);\r\n\r\n var SWALtranslate = $scope.SWALtranslate('validationinput');\r\n Swal.fire({\r\n title: SWALtranslate.title,\r\n text: SWALtranslate.message,\r\n imageUrl: 'img/collection/wrong.png',\r\n imageAlt: 'Preparation',\r\n imageHeight: 250,\r\n animation: false,\r\n customClass: {\r\n confirmButton: 'swal-confirm-button-class',\r\n },\r\n });\r\n\r\n return;\r\n }\r\n }\r\n}]);\r\n\r\n","app.controller('CIF2-CTRL', ['$scope', '$window', '$q', '$filter', '$http', '$timeout',\r\n function ($scope, $window, $q, $filter, $http, $timeout) {\r\n\r\n $scope.listBankRDN = ['BCA (Online)', 'MANDIRI (Offline)', 'CIMB (Offline)', 'MAYAPADA (Offline)'];\r\n $scope.rdnbca = $scope.listBankRDN[0];\r\n $scope.bankRDN = '';\r\n $scope.PhoneCode = '+62';\r\n $scope.CIFInvestor = {}\r\n $scope.CIFInvestor.HomePhoneCode = '021';\r\n $scope.bankpribadi = '';\r\n\r\n $scope.OPBBCA = {\r\n occupation: '',\r\n occupationText: '',\r\n position: '',\r\n positionText: '',\r\n business: '',\r\n businessText: ''\r\n }\r\n\r\n $scope.CIFInvestor = {\r\n occupation: '',\r\n occupationText: '',\r\n position: '',\r\n positionText: '',\r\n business: '',\r\n businessText: ''\r\n }\r\n\r\n $scope.OPBOTHER = {\r\n occupation: '',\r\n occupationText: '',\r\n position: '',\r\n positionText: '',\r\n business: '',\r\n businessText: ''\r\n }\r\n\r\n $scope.OPSPOUSE = {\r\n occupation: '',\r\n occupationText: '',\r\n position: '',\r\n business: '',\r\n }\r\n\r\n $scope.disableBank = true;\r\n $scope.disableCIFInvestorQuestionRDN = false;\r\n\r\n $scope.selectedFundSource = [];\r\n $scope.selectedSpouseFundSource = [];\r\n\r\n $scope.fundsource1 = [\r\n {\r\n id: 1,\r\n name: 'Lainnya'\r\n },\r\n {\r\n id: 2,\r\n name: 'Gaji'\r\n },\r\n {\r\n id: 3,\r\n name: 'Hasil Usaha'\r\n },\r\n //{\r\n // id: 4,\r\n // name: 'Tabungan'\r\n //},\r\n {\r\n id: 5,\r\n name: 'Warisan'\r\n }\r\n ];\r\n\r\n $scope.spousefundsource1 = [\r\n {\r\n id: 1,\r\n name: 'Lainnya'\r\n },\r\n {\r\n id: 2,\r\n name: 'Gaji'\r\n },\r\n {\r\n id: 3,\r\n name: 'Hasil Usaha'\r\n },\r\n //{\r\n // id: 4,\r\n // name: 'Tabungan'\r\n //},\r\n {\r\n id: 5,\r\n name: 'Warisan'\r\n }\r\n ];\r\n\r\n $scope.ListBank = {};\r\n $scope.listpekerjaan_BCA = {};\r\n $scope.listjabatan_BCA = {};\r\n $scope.listusaha_BCA = {};\r\n $scope.listpekerjaan_PERMATA = {};\r\n $scope.listjabatan_PERMATA = {};\r\n $scope.listusaha_PERMATA = {};\r\n $scope.ListLookup = [];\r\n $scope.ListOccupation = [];\r\n $scope.ListSpouseIncome = [];\r\n\r\n $scope.ListKecamatanCompany = [];\r\n $scope.ListKelurahanCompany = [];\r\n\r\n\r\n $scope.CompanyCitySelected = '';\r\n $scope.SpouseCompanyCitySelected = '';\r\n $scope.mustSelect = function (event, field) {\r\n\r\n if (event.keyCode == 27) {\r\n\r\n let returnValue = true;\r\n switch (field) {\r\n\r\n case 'CompanyCity': $scope.CIFInvestor.CompanyCity = ''; returnValue = false;\r\n break;\r\n default:\r\n break;\r\n }\r\n return returnValue;\r\n }\r\n return true;\r\n }\r\n $scope.selectCity = function (item, model, label, event) {\r\n\r\n if (item.CIFProvinceCityNID) {\r\n\r\n $scope.CIFInvestor.SpouseCompanyCity = item.CIFProvinceCityNID;\r\n }\r\n };\r\n\r\n $scope.selectCompanyCity = function (item, model, label, event) {\r\n $scope.ListKecamatanCompany = '';\r\n $scope.ListKelurahanCompany = '';\r\n\r\n if (item.CIFProvinceCityNID) {\r\n $scope.CIFInvestor.CompanyCity = item.CIFProvinceCityNID;\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFKecamatanByCityNID?CIFCityNID=' + item.CIFProvinceCityNID,\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.ListKecamatanCompany = data.data.d;\r\n $scope.kecamatanChangeCompanyCity();\r\n }, function (error) { });\r\n }\r\n\r\n };\r\n\r\n\r\n $scope.kecamatanChangeCompanyCity = function () {\r\n if ($scope.CIFInvestor.CompanyKecamatan) {\r\n $scope.ListKelurahanCompany = $filter('filter')($scope.ListKecamatanCompany, { Kecamatan: $scope.CIFInvestor.CompanyKecamatan }, true);\r\n }\r\n }\r\n\r\n $scope.kelurahanChangeCompanyCity = function () {\r\n if ($scope.CIFInvestor.CompanyKelurahan) {\r\n let temp = $filter('filter')($scope.ListKecamatanCompany, { Kelurahan: $scope.CIFInvestor.CompanyKelurahan }, true);\r\n if (temp) {\r\n $scope.CIFInvestor.CompanyPostalCode = temp[0].PostalCode;\r\n }\r\n }\r\n }\r\n\r\n\r\n $scope.questionRDNchange = function () {\r\n\r\n $scope.OPBBCA.occupation = '';\r\n $scope.OPBBCA.occupationText = '';\r\n $scope.OPBBCA.position = '';\r\n $scope.OPBBCA.positionText = '';\r\n $scope.OPBBCA.business = '';\r\n $scope.OPBBCA.businessText = '';\r\n\r\n $scope.CIFInvestor.occupation = '';\r\n $scope.CIFInvestor.occupationText = '';\r\n $scope.CIFInvestor.position = '';\r\n $scope.CIFInvestor.positionText = '';\r\n\r\n $scope.OPBOTHER.occupation = '';\r\n $scope.OPBOTHER.occupationText = '';\r\n $scope.OPBOTHER.position = '';\r\n $scope.OPBOTHER.positionText = '';\r\n $scope.OPBOTHER.business = '';\r\n $scope.OPBOTHER.businessText = '';\r\n\r\n $scope.CIFInvestor.BankName = \"\";\r\n $scope.disableBank = false;\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == '1' || $scope.CIFInvestor.QuestionRDN == 1) {\r\n\r\n $scope.bankpribadi = \"PT. BANK CENTRAL ASIA, Tbk.\";\r\n $scope.disableBank = true;\r\n }\r\n };\r\n\r\n\r\n $scope.changeSpouseMandatory = function (param) {\r\n\r\n if (param) {\r\n\r\n $scope.spouseMandatory = true;\r\n } else {\r\n let flag = false;\r\n\r\n if ($scope.OPBBCA) {\r\n\r\n if ($scope.OPBBCA.occupation.key == 1 || $scope.OPBBCA.occupation.key == 2) {\r\n\r\n flag = true;\r\n $scope.spouseMandatory2 = true;\r\n $scope.spouseMandatory1 = false\r\n }\r\n }\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == '2') {\r\n if ($scope.CIFInvestor.Occupation.key == 3 || $scope.CIFInvestor.Occupation.key == 4) {\r\n\r\n flag = true;\r\n $scope.spouseMandatory2 = true;\r\n $scope.spouseMandatory1 = false\r\n }\r\n }\r\n\r\n if ($scope.OPBOTHER) {\r\n\r\n if ($scope.OPBOTHER.CIFLookupInteger == 4 || $scope.OPBOTHER.CIFLookupInteger == 6) {\r\n\r\n flag = true;\r\n $scope.spouseMandatory2 = true;\r\n $scope.spouseMandatory1 = false;\r\n }\r\n\r\n }\r\n\r\n\r\n if ($scope.selectedFundSource.indexOf(7) > -1) {\r\n\r\n flag = true;\r\n $scope.spouseMandatory2 = true;\r\n $scope.spouseMandatory1 = false;\r\n }\r\n\r\n if ($scope.selectedFundSource.indexOf(6) > -1) {\r\n\r\n flag = true;\r\n $scope.spouseMandatory1 = true;\r\n $scope.spouseMandatory2 = false;\r\n }\r\n\r\n if (!flag) {\r\n\r\n $scope.CIFInvestor.SpouseCompanyName = '';\r\n $scope.CIFInvestor.SpouseIncomePerAnnum = '';\r\n $scope.CIFInvestor.SpouseIncomeExtraPerAnnum = '';\r\n $scope.CIFInvestor.SpouseOccupation = '';\r\n $scope.CIFInvestor.SpousePosition = '';\r\n $scope.CIFInvestor.SpouseNatureOfBusiness = '';\r\n $scope.CIFInvestor.SpouseCompanyCity = '';\r\n $scope.CIFInvestor.SpouseCompanyPostalCode = '';\r\n $scope.CIFInvestor.SpouseCompanyAddress = '';\r\n $scope.CIFInvestor.SpouseFundSource = '';\r\n\r\n $scope.SpouseCompanyCitySelected = '';\r\n $scope.selectedSpouseFundSource = [];\r\n\r\n $scope.OPSPOUSE.occupation = '';\r\n $scope.OPSPOUSE.occupationText = '';\r\n $scope.OPSPOUSE.position = '';\r\n $scope.OPSPOUSE.business = '';\r\n }\r\n\r\n $scope.spouseMandatory = flag;\r\n }\r\n }\r\n\r\n $scope.bo = function () {\r\n\r\n if ($scope.CIFInvestor.QuestionNPWP == 2) {\r\n var SWALtranslate = $scope.SWALtranslate('npwp');\r\n\r\n Swal.fire({\r\n text: SWALtranslate.message,\r\n imageAlt: 'BO',\r\n imageHeight: 250,\r\n animation: false\r\n });\r\n }\r\n }\r\n\r\n $scope.updateNPWP = function () {\r\n\r\n if ($scope.CIFInvestor.NPWPNumber) {\r\n\r\n if ($scope.CIFInvestor.QuestionNPWP == 1) {\r\n\r\n $scope.CIFInvestor.NPWPNumber;\r\n } else {\r\n $scope.CIFInvestor.NPWPReason;\r\n $scope.CIFInvestor.NPWPNumber = '';\r\n\r\n }\r\n }\r\n };\r\n\r\n $scope.occupationChange_BCA = function () {\r\n\r\n if ($scope.OPBBCA.occupation) {\r\n\r\n $scope.OPBBCA.occupationText = '';\r\n $scope.OPBBCA.position = 0;\r\n $scope.OPBBCA.positionText = '';\r\n $scope.OPBBCA.business = 0;\r\n $scope.OPBBCA.businessText = '';\r\n\r\n if ($scope.OPBBCA.occupation.key == 1 || $scope.OPBBCA.occupation.key == 2)\r\n $scope.changeSpouseMandatory(true);\r\n else\r\n $scope.changeSpouseMandatory();\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetJabatan?Pekerjaan=' + $scope.OPBBCA.occupation.key,\r\n }).then(function (data) {\r\n \r\n\r\n $scope.listjabatan_BCA = data.data.d;\r\n\r\n if ($scope.listjabatan_BCA.length) {\r\n $scope.OPBBCA.positionText = '';\r\n $scope.OPBBCA.position = $scope.listjabatan_BCA[0];\r\n\r\n $scope.positionChange_BCA();\r\n }\r\n }, function (error) { });\r\n }\r\n };\r\n\r\n $scope.positionChange_BCA = function () {\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetBidangUsaha?Jabatan=' + $scope.OPBBCA.position.key + '&Pekerjaan=' + $scope.OPBBCA.occupation.key,\r\n }).then(function (data) {\r\n\r\n $scope.listusaha_BCA = data.data.d;\r\n\r\n if ($scope.listusaha_BCA.length) {\r\n\r\n $scope.OPBBCA.businessText = '';\r\n $scope.OPBBCA.business = $scope.listusaha_BCA[0];\r\n }\r\n }, function (error) { });\r\n };\r\n\r\n $scope.occupationChange_PERMATA = function () {\r\n\r\n if ($scope.CIFInvestor.Occupation) {\r\n\r\n $scope.CIFInvestor.OccupationText = '';\r\n $scope.CIFInvestor.Position = 0;\r\n $scope.CIFInvestor.PositionText = '';\r\n $scope.CIFInvestor.NatureOfBusiness = 0;\r\n $scope.CIFInvestor.NatureOfBusinessText = '';\r\n\r\n if ($scope.CIFInvestor.Occupation.key == 3 || $scope.CIFInvestor.Occupation.key == 4)\r\n $scope.changeSpouseMandatory(true);\r\n else\r\n $scope.changeSpouseMandatory();\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetJabatanPermata?Pekerjaan=' + $scope.CIFInvestor.Occupation.key,\r\n }).then(function (data) {\r\n\r\n $scope.listjabatan_PERMATA = data.data.d;\r\n\r\n if ($scope.listjabatan_PERMATA.length) {\r\n $scope.CIFInvestor.PositionText = '';\r\n $scope.CIFInvestor.Position = $scope.listjabatan_PERMATA[0];\r\n\r\n $scope.positionChange_PERMATA();\r\n }\r\n }, function (error) { });\r\n }\r\n };\r\n\r\n $scope.occupationChange_OTHER = function () {\r\n\r\n if ($scope.OPBOTHER.occupation) {\r\n\r\n $scope.OPBOTHER.occupationText = '';\r\n $scope.OPBOTHER.position = '';\r\n $scope.OPBOTHER.positionText = '';\r\n $scope.OPBOTHER.business = '';\r\n $scope.OPBOTHER.businessText = '';\r\n\r\n if ($scope.OPBOTHER.occupation == '4' || $scope.OPBOTHER.occupation == '6')\r\n $scope.changeSpouseMandatory(true);\r\n else\r\n $scope.changeSpouseMandatory();\r\n }\r\n }\r\n\r\n $scope.toggleFundSourceItem = function (fundsource) {\r\n\r\n let indexCIFLookupInteger = $scope.selectedFundSource.indexOf(fundsource.id);\r\n\r\n if (indexCIFLookupInteger > -1)\r\n $scope.selectedFundSource.splice(indexCIFLookupInteger, 1);\r\n else\r\n $scope.selectedFundSource.push(fundsource.id);\r\n\r\n if ($scope.selectedFundSource.indexOf(1) < 0)\r\n $scope.CIFInvestor.FundSourceText = '';\r\n\r\n $scope.changeSpouseMandatory();\r\n }\r\n\r\n $scope.toggleSpouseFundSourceItem = function (fundsource) {\r\n\r\n $scope.CIFInvestor.SpouseFundSource = '';\r\n let indexCIFLookupInteger = $scope.selectedSpouseFundSource.indexOf(fundsource.id);\r\n\r\n if (indexCIFLookupInteger > -1)\r\n $scope.selectedSpouseFundSource.splice(indexCIFLookupInteger, 1);\r\n else\r\n $scope.selectedSpouseFundSource.push(fundsource.id);\r\n\r\n if ($scope.selectedSpouseFundSource.indexOf(1) < 0)\r\n $scope.CIFInvestor.SpouseFundSourceText = '';\r\n }\r\n\r\n\r\n $scope.prepareData = function () {\r\n\r\n if ($scope.CIFInvestor.IncomeExtraPerAnnum == '') {\r\n $scope.CIFInvestor.IncomeExtraPerAnnum == 0;\r\n }\r\n\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == '1' || $scope.CIFInvestor.QuestionRDN == 1) {\r\n\r\n $scope.CIFInvestor.BankName = $scope.bankpribadi;\r\n $scope.CIFInvestor.Occupation = $scope.OPBBCA.occupation.key;\r\n $scope.CIFInvestor.OccupationText = $scope.OPBBCA.occupationText;\r\n $scope.CIFInvestor.Position = $scope.OPBBCA.position.key;\r\n $scope.CIFInvestor.PositionText = $scope.OPBBCA.positionText;\r\n $scope.CIFInvestor.NatureOfBusiness = $scope.OPBBCA.business.key;\r\n $scope.CIFInvestor.NatureOfBusinessText = $scope.OPBBCA.businessText;\r\n } else if ($scope.CIFInvestor.QuestionRDN == '2') {\r\n $scope.CIFInvestor.BankName = $scope.bankpribadi;\r\n $scope.CIFInvestor.Occupation = $scope.CIFInvestor.Occupation.key;\r\n if ($scope.CIFInvestor.Occupation == 7) {\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetJabatanPERMATA?Pekerjaan=' + $scope.CIFInvestor.Occupation.key,\r\n }).then(function (data) {\r\n $scope.listjabatan_PERMATA = data.data.d;\r\n $scope.OccupationText = $filter('filter')($scope.listjabatan_PERMATA, { key: $scope.CIFInvestor.Occupation }, true)[0];\r\n $scope.CIFInvestor.OccupationText = OccupationText.NAMA_Pekerjaan;\r\n }, function (error) { });\r\n }\r\n else {\r\n $scope.CIFInvestor.OccupationText = $scope.CIFInvestor.OccupationText;\r\n }\r\n $scope.CIFInvestor.Position = $scope.CIFInvestor.Position.key;\r\n $scope.CIFInvestor.PositionText = $scope.CIFInvestor.PositionText;\r\n $scope.CIFInvestor.NatureOfBusiness = Number($scope.CIFInvestor.NatureOfBusiness);\r\n $scope.CIFInvestor.NatureOfBusinessText = $scope.CIFInvestor.businessText;\r\n } else {\r\n\r\n $scope.CIFInvestor.Occupation = Number($scope.OPBOTHER.occupation);\r\n $scope.CIFInvestor.BankName = $scope.bankpribadi;\r\n $scope.CIFInvestor.OccupationText = $scope.OPBOTHER.occupationText;\r\n $scope.CIFInvestor.Position = 0;\r\n $scope.CIFInvestor.NatureOfBusiness = 0;\r\n\r\n if ($scope.OPBOTHER.occupation == '4') {\r\n\r\n $scope.CIFInvestor.PositionText = '';\r\n $scope.CIFInvestor.NatureOfBusinessText = '';\r\n } else {\r\n\r\n $scope.CIFInvestor.PositionText = $scope.OPBOTHER.positionText;\r\n $scope.CIFInvestor.NatureOfBusiness = 0;\r\n $scope.CIFInvestor.NatureOfBusinessText = $scope.OPBOTHER.businessText;\r\n }\r\n }\r\n\r\n //if ($scope.CIFInvestor.Position != '0') {\r\n // $scope.CIFInvestor.PositionText = null;\r\n //}\r\n\r\n //if ($scope.CIFInvestor.NatureOfBusiness != '0') {\r\n // $scope.CIFInvestor.NatureOfBusinessText = null;\r\n //}\r\n\r\n if ($scope.spouseMandatory) {\r\n\r\n $scope.CIFInvestor.SpouseOccupation = Number($scope.OPSPOUSE.occupation);\r\n $scope.CIFInvestor.SpouseOccupationText = $scope.OPSPOUSE.occupationText;\r\n $scope.CIFInvestor.SpousePosition = $scope.OPSPOUSE.position;\r\n $scope.CIFInvestor.SpouseNatureOfBusiness = ($scope.OPSPOUSE.business);\r\n //$scope.CIFInvestor.SpouseCompanyCity = Number($scope.SpouseCompanyCitySelected);\r\n } else {\r\n\r\n $scope.CIFInvestor.SpouseIncomePerAnnum = 0;\r\n $scope.CIFInvestor.SpouseIncomeExtraPerAnnum = 0;\r\n $scope.CIFInvestor.SpouseOccupation = 0;\r\n $scope.CIFInvestor.SpouseCompanyCity = 0;\r\n }\r\n\r\n if ($scope.selectedFundSource) {\r\n\r\n $scope.CIFInvestor.FundSource = '';\r\n\r\n for (var i = 0; i < $scope.selectedFundSource.length; i++) {\r\n\r\n if ($scope.CIFInvestor.FundSource.length > 0)\r\n $scope.CIFInvestor.FundSource += ',';\r\n $scope.CIFInvestor.FundSource += $scope.selectedFundSource[i];\r\n }\r\n }\r\n\r\n\r\n if ($scope.selectedSpouseFundSource) {\r\n\r\n $scope.CIFInvestor.SpouseFundSource = '';\r\n\r\n for (var i = 0; i < $scope.selectedSpouseFundSource.length; i++) {\r\n\r\n if ($scope.CIFInvestor.SpouseFundSource.length > 0)\r\n $scope.CIFInvestor.SpouseFundSource += ',';\r\n $scope.CIFInvestor.SpouseFundSource += $scope.selectedSpouseFundSource[i];\r\n }\r\n }\r\n };\r\n\r\n\r\n\r\n $scope.validationinput = function () {\r\n\r\n var errorForm = $scope.myForm.$error.required\r\n var validation = $scope.myForm.$valid;\r\n var message = [];\r\n //console.log('error :', errorForm);\r\n\r\n if (errorForm) {\r\n for (let i = 0; i < errorForm.length; i++) {\r\n //message += errorForm[i].$name + \" , \";\r\n message.push(errorForm[i].$name);\r\n }\r\n }\r\n\r\n //PROSES VALIDATION\r\n if (validation == false) {\r\n console.log(\"error : \" + message);\r\n\r\n var SWALtranslate = $scope.SWALtranslate('validationinput');\r\n Swal.fire({\r\n title: SWALtranslate.title,\r\n text: SWALtranslate.message,\r\n imageUrl: 'img/collection/wrong.png',\r\n imageAlt: 'Preparation',\r\n imageHeight: 250,\r\n animation: false\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n var allPromise = $q.all([\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFProvinceCity',\r\n cache: true,\r\n }).then(function (data) {\r\n\r\n $scope.ListProvinceCity = data.data.d;\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFBank',\r\n cache: true,\r\n }).then(function (data) {\r\n\r\n $scope.ListBank = data.data.d;\r\n }, function (error) { }),\r\n\r\n \r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFLookup',\r\n cache: true,\r\n }).then(function (data) {\r\n\r\n $scope.ListLookup = data.data.d;\r\n\r\n if ($scope.ListLookup) {\r\n $scope.ListOccupation = $filter('filter')($scope.ListLookup, { CIFLookupID: 'Occupation' }, true);\r\n $scope.ListSpouseIncome = $filter('filter')($scope.ListLookup, { CIFLookupID: 'IncomePerAnnum' }, true);\r\n $scope.ListFundSource = $filter('filter')($scope.ListLookup, { CIFLookupID: 'FundSource' }, true);\r\n $scope.ListIncomePerAnnum = $filter('filter')($scope.ListLookup, { CIFLookupID: 'IncomePerAnnum' }, true);\r\n }\r\n }, function (error) { }),\r\n \r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFBank',\r\n cache: true,\r\n }).then(function (data) {\r\n\r\n $scope.ListBank = data.data.d;\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFPekerjaan',\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.listpekerjaan_BCA = data.data.d;\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetJabatan',\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.listposition_BCA = data.data.d;\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetBidangUsaha',\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.listnature_BCA = data.data.d;\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFPekerjaanPermata',\r\n cache: true,\r\n }).then(function (data) {\r\n\r\n $scope.listpekerjaan_PERMATA = data.data.d;\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetJabatanPermata',\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.listposition_PERMATA = data.data.d;\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetBidangUsahaPermata',\r\n cache: true,\r\n }).then(function (data) {\r\n\r\n $scope.listnature_PERMATA = data.data.d;\r\n }, function (error) { }),\r\n\r\n ]);\r\n\r\n allPromise.then(function () {\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/getCIF',\r\n cache: true,\r\n }).then(function (data) {\r\n if (data.data.d != null) {\r\n var obj = data.data.d;\r\n $scope.CIFInvestor = data.data.d;\r\n $scope.CIFInvestor.Stage = 2;\r\n if ($scope.CIFInvestor.QuestionRDN == 0) {\r\n\r\n $scope.CIFInvestor.QuestionRDN = '';\r\n }\r\n\r\n if ($scope.CIFInvestor.BankOwner == '' || !$scope.CIFInvestor.BankOwner)\r\n $scope.CIFInvestor.BankOwner = $scope.CIFInvestor.FirstName;\r\n\r\n if ($scope.CIFInvestor.QuestionNPWP == 0)\r\n $scope.CIFInvestor.QuestionNPWP = '';\r\n\r\n $scope.bankpribadi = $scope.CIFInvestor.BankName;\r\n\r\n \r\n if ($scope.CIFInvestor.SpouseCompanyCity)\r\n $scope.SpouseCompanyCitySelected = $filter('filter')($scope.ListProvinceCity, { CIFProvinceCityNID: $scope.CIFInvestor.DomicileCity }, true)[0];\r\n\r\n if (data.data.d.CompanyCity) {\r\n $scope.CompanyCitySelected = $filter('filter')($scope.ListProvinceCity, { CIFProvinceCityNID: data.data.d.CompanyCity }, true)[0];\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFKecamatanByCityNID?CIFCityNID=' + data.data.d.CompanyCity,\r\n cache: true,\r\n }).then(function (dataKecamatan) {\r\n $scope.ListKecamatanCompany = dataKecamatan.data.d;\r\n if ($scope.ListKecamatanCompany)\r\n $scope.ListKelurahanCompany = $filter('filter')($scope.ListKecamatanCompany, { Kecamatan: $scope.CIFInvestor.CompanyKecamatan }, true);\r\n\r\n \r\n }, function (error) { });\r\n }\r\n\r\n \r\n if (data.data.d.SpouseBirthDate)\r\n $scope.CIFInvestor.SpouseBirthDate = new Date(data.data.d.SpouseBirthDate);\r\n\r\n if ($scope.CIFInvestor.QuestionRDN) {\r\n\r\n //BCA\r\n if ($scope.CIFInvestor.QuestionRDN == '1' || $scope.CIFInvestor.QuestionRDN == 1) {\r\n\r\n $scope.OPBBCA.occupationText = $scope.CIFInvestor.OccupationText;\r\n $scope.OPBBCA.positionText = $scope.CIFInvestor.PositionText;\r\n $scope.OPBBCA.businessText = $scope.CIFInvestor.NatureOfBusinessText;\r\n\r\n if ($scope.CIFInvestor.Occupation && $scope.CIFInvestor.Occupation > 0) {\r\n\r\n $scope.OPBBCA.occupation = $filter('filter')($scope.listpekerjaan_BCA, { key: $scope.CIFInvestor.Occupation }, true)[0];\r\n\r\n \r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetJabatan?Pekerjaan=' + $scope.OPBBCA.occupation.key,\r\n }).then(function (data) {\r\n\r\n $scope.listjabatan_BCA = data.data.d;\r\n\r\n if ($scope.listjabatan_BCA.length) {\r\n\r\n if ($scope.CIFInvestor.Position && $scope.CIFInvestor.Position > 0) {\r\n\r\n $scope.OPBBCA.position = $filter('filter')($scope.listjabatan_BCA, { key: $scope.CIFInvestor.Position }, true)[0];\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetBidangUsaha?Jabatan=' + $scope.OPBBCA.position.key + '&Pekerjaan=' + $scope.OPBBCA.occupation.key,\r\n }).then(function (data) {\r\n\r\n $scope.listusaha_BCA = data.data.d;\r\n\r\n if ($scope.listusaha_BCA.length) {\r\n\r\n if ($scope.CIFInvestor.NatureOfBusiness != null)\r\n $scope.OPBBCA.business = $filter('filter')($scope.listusaha_BCA, { key: $scope.CIFInvestor.NatureOfBusiness }, true)[0];\r\n }\r\n }, function (error) { });\r\n }\r\n }\r\n }, function (error) { });\r\n }\r\n\r\n }\r\n //PERMATA\r\n else if ($scope.CIFInvestor.QuestionRDN == '2' || $scope.CIFInvestor.QuestionRDN == 2) {\r\n $scope.CIFInvestor.businessText = $scope.CIFInvestor.NatureOfBusinessText;\r\n\r\n if ($scope.CIFInvestor.Occupation && $scope.CIFInvestor.Occupation > 0) {\r\n\r\n $scope.CIFInvestor.Occupation = $filter('filter')($scope.listpekerjaan_PERMATA, { key: $scope.CIFInvestor.Occupation }, true)[0];\r\n\r\n \r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetJabatanPermata?Pekerjaan=' + $scope.CIFInvestor.Occupation.key,\r\n }).then(function (data) {\r\n\r\n $scope.listjabatan_PERMATA = data.data.d;\r\n\r\n if ($scope.listjabatan_PERMATA.length) {\r\n\r\n if ($scope.CIFInvestor.Position && $scope.CIFInvestor.Position > 0) {\r\n\r\n $scope.CIFInvestor.Position = $filter('filter')($scope.listjabatan_PERMATA, { key: $scope.CIFInvestor.Position }, true)[0];\r\n\r\n }\r\n }\r\n }, function (error) { });\r\n }\r\n if ($scope.CIFInvestor.NatureOfBusiness != null) {\r\n console.log('here');\r\n $scope.CIFInvestor.business = $filter('filter')($scope.listnature_PERMATA, { key: $scope.CIFInvestor.NatureOfBusiness }, true)[0];\r\n }\r\n\r\n }\r\n else {\r\n\r\n $scope.OPBOTHER.occupation = $scope.CIFInvestor.Occupation;\r\n $scope.OPBOTHER.occupationText = $scope.CIFInvestor.OccupationText;\r\n $scope.OPBOTHER.position = $scope.CIFInvestor.Position;\r\n $scope.OPBOTHER.positionText = $scope.CIFInvestor.PositionText;\r\n $scope.OPBOTHER.business = $scope.CIFInvestor.NatureOfBusiness;\r\n $scope.OPBOTHER.businessText = $scope.CIFInvestor.NatureOfBusinessText;\r\n }\r\n }\r\n\r\n if ($scope.CIFInvestor.SpouseCompanyCity == '')\r\n $scope.CIFInvestor.SpouseCompanyCity = 0;\r\n\r\n if ($scope.CIFInvestor.CompanyCity == '')\r\n $scope.CIFInvestor.CompanyCity = 0;\r\n\r\n if ($scope.CIFInvestor.FundSource) {\r\n\r\n $scope.selectedFundSource = [];\r\n let temp = $scope.CIFInvestor.FundSource.split(',');\r\n\r\n for (var i = 0; i < temp.length; i++) {\r\n\r\n $scope.selectedFundSource.push(Number(temp[i]));\r\n }\r\n }\r\n\r\n if ($scope.CIFInvestor.SpouseFundSource) {\r\n\r\n $scope.selectedSpouseFundSource = [];\r\n let temp = $scope.CIFInvestor.SpouseFundSource.split(',');\r\n\r\n for (var i = 0; i < temp.length; i++) {\r\n\r\n $scope.selectedSpouseFundSource.push(Number(temp[i]));\r\n }\r\n }\r\n\r\n if ($scope.CIFInvestor.SpouseOccupation == 0)\r\n $scope.CIFInvestor.SpouseOccupation = '';\r\n\r\n\r\n if ($scope.CIFInvestor.Occupation == 0 || $scope.CIFInvestor.Occupation == null)\r\n $scope.CIFInvestor.Occupation = null;\r\n\r\n if ($scope.CIFInvestor.business == 0 || $scope.CIFInvestor.business == null)\r\n $scope.CIFInvestor.NatureOfBusiness = null;\r\n\r\n if ($scope.CIFInvestor.SpouseIncomePerAnnum == 0)\r\n $scope.CIFInvestor.SpouseIncomePerAnnum = '';\r\n\r\n if ($scope.CIFInvestor.IncomePerAnnum == 0)\r\n $scope.CIFInvestor.IncomePerAnnum = '';\r\n\r\n if ($scope.CIFInvestor.SpouseIncomeExtraPerAnnum == 0)\r\n $scope.CIFInvestor.SpouseIncomeExtraPerAnnum = '';\r\n\r\n\r\n if ($scope.CIFInvestor.IncomeExtraPerAnnum == null)\r\n $scope.CIFInvestor.IncomeExtraPerAnnum = 0;\r\n\r\n\r\n $scope.changeSpouseMandatory();\r\n $scope.OPSPOUSE.occupation = $scope.CIFInvestor.SpouseOccupation;\r\n $scope.OPSPOUSE.occupationText = $scope.CIFInvestor.SpouseOccupationText;\r\n $scope.OPSPOUSE.position = $scope.CIFInvestor.SpousePosition;\r\n $scope.OPSPOUSE.business = $scope.CIFInvestor.SpouseNatureOfBusiness;\r\n } // END IF data.data.d\r\n }, function (error) { });\r\n });\r\n \r\n $scope.submit = function () {\r\n console.log('submit');\r\n\r\n $scope.prepareData();\r\n\r\n // dynamic sweet alert post to app.js\r\n // 1: set the url of post or get request\r\n // 2: set the sweet alert translation, refers to apps.js $scope.SWALtranslate() :preconfirm = confirmation dialog before post or get request\r\n // 3: set the postdata to $http request = GET : {} / POST { yourdata : data }\r\n // 4: set the method to $http request = \"GET\" / \"POST\"\r\n // 5: set the sweet alert translation, refers to apps.js $scope.SWALtranslate() :preconfirm = confirmation dialog before post or get request\r\n // 6: if success or no error returns then...\r\n var urlsvc = '/service/client.svc/SaveCIF'; // 1\r\n var preconfirmtranslate = \"submitCif2\"; // 2\r\n var postData = { cifdata: $scope.CIFInvestor } // 3\r\n var method = \"POST\"; // 4\r\n $scope.PostGetSwal(preconfirmtranslate, urlsvc, postData, method, function (issuccess) {\r\n if (issuccess) {\r\n\r\n\r\n Swal.fire({\r\n title: \"Preparing next step...\",\r\n //text: \"Please wait\",\r\n html: `Please wait `,\r\n icon: \"info\",\r\n showConfirmButton: false,\r\n showCancelButton: false,\r\n allowOutsideClick: false,\r\n timer: 10000,\r\n }).then(data => {\r\n\r\n\r\n $window.location.href = \"#/cif/data-pendukung\";\r\n })\r\n }\r\n \r\n \r\n });\r\n }\r\n }]);","app.controller('CIF2-CTRL', ['$scope', '$window', '$q', '$filter', '$http', '$timeout', '$uibModal', 'appFactory',\r\n function ($scope, $window, $q, $filter, $http, $timeout, $uibModal, appFactory) {\r\n\r\n $scope.bankRDN = '';\r\n $scope.CIFInvestor = {}\r\n $scope.bankpribadi = '';\r\n\r\n $scope.disableBank = true;\r\n $scope.disableCIFInvestorQuestionRDN = false;\r\n\r\n $scope.ListBank = {};\r\n\r\n $scope.prepareData = function () {\r\n\r\n if ($scope.CIFInvestor.IncomeExtraPerAnnum == '') {\r\n $scope.CIFInvestor.IncomeExtraPerAnnum == 0;\r\n }\r\n\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == '1' || $scope.CIFInvestor.QuestionRDN == 1) {\r\n\r\n \r\n } else if ($scope.CIFInvestor.QuestionRDN == '2') {\r\n \r\n } else {\r\n\r\n\r\n }\r\n };\r\n\r\n $scope.showAgreement = function (number) {\r\n\r\n let htmlName = 'template/BCAagereement' + number + '.html';\r\n var modalInstance = $uibModal\r\n .open({\r\n animation: true,\r\n templateUrl: htmlName,\r\n controller: 'BCAAgreementCtrl',\r\n size: 'lg',\r\n backdrop: 'static',\r\n resolve: {\r\n\r\n agreementNumber: function () {\r\n\r\n return number;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (response, agree) {\r\n\r\n if (response == 'accept') {\r\n\r\n if (number == 1) {\r\n\r\n $scope.agree1 = true;\r\n $scope.disclaimerRDNBCA = true;\r\n }\r\n\r\n if (number == 2) {\r\n\r\n $scope.agree2 = true;\r\n $scope.disclaimerTAPRESBCA = true;\r\n }\r\n\r\n if (number == 3) {\r\n\r\n $scope.agree3 = true;\r\n $scope.disclaimerDEKLARASI = true;\r\n }\r\n\r\n if ($scope.disclaimerRDNBCA == true && $scope.disclaimerTAPRESBCA == true && $scope.disclaimerDEKLARASI == true)\r\n $scope.disclaimerBank = true;\r\n }\r\n }, function () { });\r\n };\r\n\r\n $scope.validateAgreementRDNBCA = function () {\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == 1) {\r\n\r\n if (!$scope.agree1) {\r\n\r\n $scope.disclaimerRDNBCA = false;\r\n $scope.showAgreement(1);\r\n }\r\n }\r\n }\r\n\r\n $scope.validateAgreementTAPRESBCA = function () {\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == 1) {\r\n\r\n if (!$scope.agree2) {\r\n\r\n $scope.disclaimerTAPRESBCA = false;\r\n $scope.showAgreement(2);\r\n }\r\n }\r\n }\r\n\r\n $scope.validationinput = function () {\r\n\r\n var errorForm = $scope.myForm.$error.required\r\n var validation = $scope.myForm.$valid;\r\n var message = [];\r\n //console.log('error :', errorForm);\r\n\r\n if (errorForm) {\r\n for (let i = 0; i < errorForm.length; i++) {\r\n //message += errorForm[i].$name + \" , \";\r\n message.push(errorForm[i].$name);\r\n }\r\n }\r\n\r\n //console.log($scope.CIFInvestor.BankStatus);\r\n\r\n //PROSES VALIDATION\r\n if (validation == false) {\r\n console.log(\"error : \" + message);\r\n\r\n var SWALtranslate = $scope.SWALtranslate('validationinput');\r\n Swal.fire({\r\n title: SWALtranslate.title,\r\n text: SWALtranslate.message,\r\n imageUrl: 'img/collection/wrong.png',\r\n imageAlt: 'Preparation',\r\n imageHeight: 250,\r\n animation: false\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n var allPromise = $q.all([\r\n appFactory.getData(`/service/client.svc/GetCIFBank`).then(function (data) {\r\n\r\n if (data.status == 200)\r\n $scope.ListBank = data.data.d;\r\n }),\r\n ]);\r\n\r\n allPromise.then(function () {\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/getCIF',\r\n cache: true,\r\n }).then(function (data) {\r\n if (data.data.d != null) {\r\n var obj = data.data.d;\r\n $scope.CIFInvestor = data.data.d;\r\n $scope.CIFInvestor.Stage = 2;\r\n if ($scope.CIFInvestor.QuestionRDN == 0) {\r\n\r\n $scope.CIFInvestor.QuestionRDN = '';\r\n }\r\n\r\n if ($scope.CIFInvestor.BankOwner == '' || !$scope.CIFInvestor.BankOwner)\r\n $scope.CIFInvestor.BankOwner = $scope.CIFInvestor.FirstName;\r\n\r\n //if ($scope.CIFInvestor.QuestionRDN == 3)\r\n // $scope.bankpribadi = \"KB BANK\";\r\n //else\r\n // $scope.bankpribadi = $scope.CIFInvestor.BankName;\r\n\r\n $scope.bankpribadi = $scope.CIFInvestor.BankName;\r\n if($scope.bankpribadi == 'KB BANK')\r\n $scope.CIFInvestor.BankStatus = 1\r\n else \r\n $scope.CIFInvestor.BankStatus = 2\r\n\r\n\r\n } // END IF data.data.d\r\n }, function (error) { });\r\n });\r\n \r\n $scope.submit = function () {\r\n console.log('submit');\r\n\r\n $scope.prepareData();\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == 3 && $scope.CIFInvestor.BankStatus == 1)\r\n $scope.bankpribadi = \"KB BANK\";\r\n\r\n var urlsvc = '/service/client.svc/SaveCIF'; // 1\r\n var preconfirmtranslate = \"submitCif2\"; // 2\r\n var postData = { cifdata: $scope.CIFInvestor } // 3\r\n var method = \"POST\"; // 4\r\n var SWALtranslate = $scope.SWALtranslate(preconfirmtranslate);\r\n $scope.CIFInvestor.BankName = $scope.bankpribadi;\r\n\r\n\r\n Swal.fire({\r\n title: SWALtranslate.title,\r\n html: `\r\n \r\n
\r\n `+SWALtranslate.message+`\r\n `,\r\n text: SWALtranslate.message,\r\n showCancelButton: false,\r\n confirmButtonColor: '#FFBC00',\r\n confirmButtonText: 'Submit ',\r\n customClass: {\r\n confirmButton: 'swal-confirm-button-class',\r\n },\r\n showLoaderOnConfirm: true,\r\n preConfirm: (preConf) => {\r\n return $http({\r\n method: method,\r\n url: urlsvc,\r\n data: postData \r\n }).then(data => {\r\n\r\n console.log(data.data.d.result)\r\n\r\n if (data.data.d.result) {\r\n\r\n var SWALtranslate = $scope.SWALtranslate(data.data.d.message);\r\n\r\n Swal.fire({\r\n title: SWALtranslate.title,\r\n text: SWALtranslate.message,\r\n icon: \"success\",\r\n showConfirmButton: false,\r\n timer: 3000,\r\n })\r\n\r\n $window.location.href = \"#/cif/data-pendukung\";\r\n } else {\r\n var msg = \"\";\r\n\r\n if (!data.data.d.response) {\r\n msg = $scope.SWALtranslate(data.data.d.message);\r\n msg = msg.message\r\n }\r\n else\r\n {\r\n msg = data.data.d.response;\r\n }\r\n\r\n Swal.fire({\r\n title: 'Warning',\r\n html: msg,\r\n icon: \"error\",\r\n showConfirmButton: true,\r\n customClass: {\r\n confirmButton: 'swal-confirm-button-class',\r\n },\r\n })\r\n return false;\r\n }\r\n })\r\n .catch(error => {\r\n Swal.showValidationMessage(\r\n \"There is a problem connecting to the server. \\\r\n Please ensure your internet connection is active. If the problem persists, please try again later.\"\r\n )\r\n console.log(`Request failed: ${error}`)\r\n })\r\n }\r\n })\r\n }\r\n }]);","app.controller('CIF3-CTRL', ['$scope', '$window', '$q', '$filter', 'appFactory', '$http',\r\nfunction ($scope, $window, $q, $filter, appFactory, $http) {\r\n\r\n $scope.CIFInvestor = {}\r\n $scope.chkquestionfatca = true;\r\n $scope.chkquestion1 = false;\r\n $scope.chkquestion2 = false;\r\n $scope.chkquestion3 = false;\r\n $scope.chkquestion4 = false;\r\n //$scope.highrisk = false;\r\n\r\n let tmpdate = new Date();\r\n tmpdate.setFullYear(tmpdate.getFullYear() - 17);\r\n $scope.maxDate = new Date().toISOString().slice(0, 10);\r\n\r\n $scope.Rp = 'Rp.';\r\n var allPromise = $q.all([\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFLookup',\r\n }).then(function (data) {\r\n $scope.ListLookup = data.data.d;\r\n\r\n if ($scope.ListLookup) {\r\n\r\n $scope.ListInvestmentObjectives = $filter('filter')($scope.ListLookup, { CIFLookupID: 'InvestmentObjectives' }, true);\r\n $scope.ListRisk = $filter('filter')($scope.ListLookup, { CIFLookupID: 'Risk' }, true);\r\n }\r\n }, function (error) { }),\r\n\r\n $scope.retrieveSessions()\r\n ]);\r\n\r\n allPromise.then(function () {\r\n\r\n \r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/getCIF',\r\n }).then(function (data) {\r\n\r\n if (data.data.d != null) {\r\n\r\n //var obj = data.data.d;\r\n $scope.CIFInvestor = data.data.d;\r\n $scope.CIFInvestor.Stage = 3;\r\n\r\n console.log(\"AutoNID\", $scope.CIFInvestor.NID);\r\n if ($scope.CIFInvestor.QuestionRDN == 2) {\r\n\r\n if (data.data.d.AssetInheritDate)\r\n $scope.CIFInvestor.AssetInheritDate = new Date(data.data.d.AssetInheritDate);\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetRiskPermata?CIFNID=' + $scope.CIFInvestor.NID,\r\n }).then(function (data) {\r\n console.log(\"b\", data);\r\n console.log(\"c\", data.data.d.result);\r\n if (data.data.d.result == false) {\r\n $scope.highrisk = true;\r\n } else {\r\n $scope.highrisk = false;\r\n }\r\n console.log(\"high\", $scope.highrisk);\r\n }, function (error) { });\r\n }\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == 1) {\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/AMLChecking?CIFNID=' + $scope.CIFInvestor.NID,\r\n }).then(function (data) {\r\n console.log(\"AMLChecking\", data);\r\n console.log(\"AMLChecking\", data.data.d.result);\r\n\r\n }, function (error) { });\r\n }\r\n\r\n if ($scope.CIFInvestor.FATCA1 == 'Ya' || $scope.CIFInvestor.FATCA2 == 'Ya' || $scope.CIFInvestor.FATCA3 == 'Ya')\r\n $scope.chkquestionfatca = false;\r\n\r\n if ($scope.CIFInvestor.InvestmentObjectives == 0)\r\n $scope.CIFInvestor.InvestmentObjectives = '';\r\n\r\n }\r\n }, function (error) { });\r\n });\r\n\r\n\r\n $scope.prepareData = function () {\r\n\r\n if ($scope.chkquestion1) {\r\n\r\n if ($scope.chkquestion1 = true) {\r\n\r\n $scope.CIFInvestor.Question1 = 'Ya';\r\n $scope.CIFInvestor.Question1_Text = '';\r\n }\r\n }\r\n\r\n if ($scope.chkquestion2) {\r\n\r\n if ($scope.chkquestion2 = true) {\r\n\r\n $scope.CIFInvestor.Question2 = 'Ya';\r\n $scope.CIFInvestor.Question2_Text = '';\r\n }\r\n }\r\n\r\n if ($scope.chkquestion3) {\r\n\r\n if ($scope.chkquestion1 = true) {\r\n\r\n $scope.CIFInvestor.Question3 = 'Ya';\r\n $scope.CIFInvestor.Question3_Text = '';\r\n }\r\n }\r\n\r\n if ($scope.chkquestion4) {\r\n\r\n if ($scope.chkquestion4 = true) {\r\n\r\n $scope.CIFInvestor.Question4 = 'Ya';\r\n $scope.CIFInvestor.Question4_Text = '';\r\n }\r\n }\r\n\r\n if ($scope.chkquestion5) {\r\n\r\n if ($scope.chkquestion5 = true) {\r\n\r\n $scope.CIFInvestor.Question5 = 'Ya';\r\n $scope.CIFInvestor.Question5_Text = '';\r\n }\r\n }\r\n\r\n if ($scope.chkquestion6) {\r\n\r\n if ($scope.chkquestion6 = true) {\r\n\r\n $scope.CIFInvestor.Question6 = 'Ya';\r\n $scope.CIFInvestor.Question6_Text = '';\r\n }\r\n }\r\n\r\n if ($scope.chkquestionfatca) {\r\n\r\n if ($scope.chkquestionfatca = true) {\r\n\r\n $scope.CIFInvestor.FATCA1 = 'Tidak';\r\n $scope.CIFInvestor.FATCA2 = 'Tidak';\r\n $scope.CIFInvestor.FATCA3 = 'Tidak';\r\n }\r\n }\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == 2)\r\n {\r\n if (typeof $scope.CIFInvestor.AssetTotalCash == \"string\") {\r\n $scope.CIFInvestor.AssetTotalCash = Number($scope.CIFInvestor.AssetTotalCash.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.AssetTotalInvestment == \"string\") {\r\n $scope.CIFInvestor.AssetTotalInvestment = Number($scope.CIFInvestor.AssetTotalInvestment.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.AssetTotalProperty == \"string\") {\r\n $scope.CIFInvestor.AssetTotalProperty = Number($scope.CIFInvestor.AssetTotalProperty.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.AssetTotalOther == \"string\") {\r\n $scope.CIFInvestor.AssetTotalOther = Number($scope.CIFInvestor.AssetTotalOther.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.AssetTotalLegacy == \"string\") {\r\n $scope.CIFInvestor.AssetTotalLegacy = Number($scope.CIFInvestor.AssetTotalLegacy.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.JobStockBusinessInv == \"string\") {\r\n $scope.CIFInvestor.JobStockBusinessInv = Number($scope.CIFInvestor.JobStockBusinessInv.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.JobIncomeBonus == \"string\") {\r\n $scope.CIFInvestor.JobIncomeBonus = Number($scope.CIFInvestor.JobIncomeBonus.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.JobPension == \"string\") {\r\n $scope.CIFInvestor.JobPension = Number($scope.CIFInvestor.JobPension.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.BzOwnershipPct == \"string\") {\r\n $scope.CIFInvestor.BzOwnershipPct = Number($scope.CIFInvestor.BzOwnershipPct.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.BzProfitLoss == \"string\") {\r\n $scope.CIFInvestor.BzProfitLoss = Number($scope.CIFInvestor.BzProfitLoss.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.BzTotalEmployee == \"string\") {\r\n $scope.CIFInvestor.BzTotalEmployee = Number($scope.CIFInvestor.BzTotalEmployee.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.ProfIncome == \"string\") {\r\n $scope.CIFInvestor.ProfIncome = Number($scope.CIFInvestor.ProfIncome.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.InvestTotalYear == \"string\") {\r\n $scope.CIFInvestor.InvestTotalYear = Number($scope.CIFInvestor.InvestTotalYear.replaceAll(\".\", \"\"));\r\n }\r\n }\r\n \r\n }\r\n\r\n $scope.submit = function () {\r\n $scope.prepareData();\r\n\r\n // dynamic sweet alert post to app.js\r\n // 1: set the url of post or get request\r\n // 2: set the sweet alert translation, refers to apps.js $scope.SWALtranslate() :preconfirm = confirmation dialog before post or get request\r\n // 3: set the postdata to $http request = GET : {} / POST { yourdata : data }\r\n // 4: set the method to $http request = \"GET\" / \"POST\"\r\n // 5: set the sweet alert translation, refers to apps.js $scope.SWALtranslate() :preconfirm = confirmation dialog before post or get request\r\n // 6: if success or no error returns then...\r\n var urlsvc = '/service/client.svc/SaveCIF'; // 1\r\n var postData = { cifdata: $scope.CIFInvestor } // 2\r\n var preconfirmtranslate = \"submitCif3\"; // 3\r\n var method = \"POST\" // 4\r\n $scope.PostGetSwal(preconfirmtranslate, urlsvc, postData, method, function (issuccess) {\r\n\r\n if (issuccess) // 6\r\n $window.location.href = \"#/cif/data-pernyataan\";\r\n });\r\n }\r\n\r\n $scope.validationinput = function () {\r\n\r\n var errorForm = $scope.myForm.$error.required\r\n var validation = $scope.myForm.$valid;\r\n var message = [];\r\n //console.log('error :', errorForm);\r\n\r\n if (errorForm) {\r\n for (let i = 0; i < errorForm.length; i++) {\r\n //message += errorForm[i].$name + \" , \";\r\n message.push(errorForm[i].$name);\r\n }\r\n }\r\n\r\n //PROSES VALIDATION\r\n if (validation == false) {\r\n console.log(\"error : \" + message);\r\n\r\n var SWALtranslate = $scope.SWALtranslate('validationinput');\r\n Swal.fire({\r\n title: SWALtranslate.title,\r\n text: SWALtranslate.message,\r\n imageUrl: 'img/collection/wrong.png',\r\n imageAlt: 'Preparation',\r\n imageHeight: 250,\r\n animation: false\r\n });\r\n }\r\n }\r\n}]);\r\n\r\n\r\n","app.controller('CIF3-CTRL', ['$scope', '$window', '$uibModal', '$q', 'deviceDetector', '$filter', '$http', '$timeout',\r\n function ($scope, $window, $uibModal, $q, deviceDetector, $filter, $http, $timeout) {\r\n\r\n //--------------------------------------------Setting Upload-------------------------------------------- \r\n $scope.device = deviceDetector;\r\n $scope.isMobile = $scope.device.isMobile();\r\n\r\n $scope.filenameNPWP = \"\";\r\n $scope.fileNPWP = \"\";\r\n $scope.fileNPWPext = \"\";\r\n $scope.NPWPile = [];\r\n\r\n $scope.filenameOthers = \"\";\r\n $scope.fileOthers = \"\";\r\n $scope.fileOthersext = \"\";\r\n $scope.OthersFile = [];\r\n\r\n $scope.filenameParent = \"\";\r\n $scope.fileParent = \"\";\r\n $scope.fileParentext = \"\";\r\n $scope.ParentFile = [];\r\n\r\n $scope.disabledNPWPNumber = false;\r\n\r\n $scope.openCamera = function (tipe) {\r\n console.log('bala', tipe);\r\n let message = tipe;\r\n let url = 'ModalCamera.html';\r\n let ctrl = 'CameraController';\r\n\r\n\r\n if ($scope.device.isMobile()) {\r\n //url = 'ModalBrowse.html';\r\n //ctrl = 'BrowseController';\r\n //$scope.append = 'data:image/png;base64,';\r\n }\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n templateUrl: url,\r\n controller: ctrl,\r\n size: 'md',\r\n resolve: {\r\n items: function () {\r\n return message;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function (resolvedResponse) {\r\n //console.log('ktp',resolvedResponse);\r\n if (resolvedResponse) {\r\n if (tipe == \"KTP\")\r\n $scope.ktpPhoto = resolvedResponse;\r\n else if (tipe == \"NPWP\")\r\n $scope.npwpPhoto = resolvedResponse;\r\n else if (tipe == \"SELFIE\")\r\n $scope.selfiePhoto = resolvedResponse;\r\n else if (tipe == \"OTHERS\")\r\n $scope.othersPhoto = resolvedResponse;\r\n else if (tipe == \"PARENT\")\r\n $scope.parentPhoto = resolvedResponse;\r\n else\r\n $scope.ttdPhoto = resolvedResponse;\r\n }\r\n }, function () { });\r\n };\r\n\r\n $scope.remove = function (tipe) {\r\n if (tipe == \"KTP\")\r\n $scope.ktpPhoto = '';\r\n else if (tipe == \"SELFIE\")\r\n $scope.selfiePhoto = '';\r\n else if (tipe == \"NPWP\")\r\n $scope.npwpPhoto = '';\r\n else if (tipe == \"OTHERS\")\r\n $scope.othersPhoto = '';\r\n else if (tipe == \"PARENT\")\r\n $scope.parentPhoto = '';\r\n else\r\n $scope.ttdPhoto = '';\r\n };\r\n\r\n $scope.selectNPWP = function (files) {\r\n\r\n $scope.NPWPFile = files;\r\n let allowed = true;\r\n var reader = new FileReader();\r\n\r\n reader.onload = function (e) {\r\n\r\n if (allowed)\r\n $scope.fileNPWP = btoa(e.target.result.toString());\r\n };\r\n\r\n reader.readAsBinaryString(files[0]);\r\n $scope.fileNPWPext = files[0].name.substr(files[0].name.lastIndexOf('.'));\r\n\r\n if ($scope.allowedExt.indexOf($scope.fileNPWPext.toLowerCase()) < 0) {\r\n\r\n allowed = false;\r\n $scope.fileNPWPext = '';\r\n $scope.NPWPFile = '';\r\n alert(\"Extensi yang dibolehkan : \" + $scope.allowedExt);\r\n } else {\r\n\r\n $scope.filenameNPWP = files[0].name;\r\n }\r\n };\r\n\r\n $scope.selectParent = function (files) {\r\n\r\n $scope.ParentFile = files;\r\n let allowed = true;\r\n var reader = new FileReader();\r\n\r\n reader.onload = function (e) {\r\n\r\n if (allowed)\r\n $scope.fileParent = btoa(e.target.result.toString());\r\n };\r\n\r\n reader.readAsBinaryString(files[0]);\r\n $scope.fileParentext = files[0].name.substr(files[0].name.lastIndexOf('.'));\r\n if ($scope.allowedExt.indexOf($scope.fileParentext.toLowerCase()) < 0) {\r\n\r\n allowed = false;\r\n $scope.filParentext = '';\r\n $scope.ParentFile = '';\r\n alert(\"Extensi yang dibolehkan : \" + $scope.allowedExt);\r\n } else {\r\n\r\n $scope.filenameParent = files[0].name;\r\n }\r\n };\r\n\r\n $scope.selectOthers = function (files) {\r\n\r\n $scope.OthersFile = files;\r\n let allowed = true;\r\n var reader = new FileReader();\r\n\r\n reader.onload = function (e) {\r\n\r\n if (allowed)\r\n $scope.fileOthers = btoa(e.target.result.toString());\r\n };\r\n\r\n reader.readAsBinaryString(files[0]);\r\n $scope.fileOthersext = files[0].name.substr(files[0].name.lastIndexOf('.'));\r\n if ($scope.allowedExt.indexOf($scope.fileOthersext.toLowerCase()) < 0) {\r\n\r\n allowed = false;\r\n $scope.fileOthersext = '';\r\n $scope.OthersFile = '';\r\n alert(\"Extensi yang dibolehkan : \" + $scope.allowedExt);\r\n } else {\r\n\r\n $scope.filenameOthers = files[0].name;\r\n }\r\n };\r\n\r\n $scope.clickRemoveOthers = function (file, event, key) {\r\n\r\n event.preventDefault();\r\n $scope.fileOthers = \"\";\r\n $scope.filenameOthers = \"\";\r\n $scope.fileOthersext = \"x\";\r\n $scope.OthersFile.splice(key, 1);\r\n $scope.OthersFile = [];\r\n return null;\r\n };\r\n\r\n $scope.clickRemoveParent = function (file, event, key) {\r\n\r\n event.preventDefault();\r\n $scope.fileParent = \"\";\r\n $scope.filenameParent = \"\";\r\n $scope.fileParentext = \"x\";\r\n $scope.ParentFile.splice(key, 1);\r\n $scope.ParentFile = [];\r\n return null;\r\n };\r\n\r\n $scope.clickRemoveNPWP = function (file, event, key) {\r\n\r\n event.preventDefault();\r\n $scope.fileNPWP = \"\";\r\n $scope.filenameNPWP = \"\";\r\n $scope.fileNPWPext = \"x\";\r\n $scope.NPWPFile.splice(key, 1);\r\n $scope.NPWPFile = [];\r\n return null;\r\n };\r\n //--------------------------------------------End Setting--------------------------------------------\r\n\r\n $scope.listBankRDN = ['BCA (Online)', 'MANDIRI (Offline)', 'CIMB (Offline)', 'MAYAPADA (Offline)'];\r\n $scope.rdnbca = $scope.listBankRDN[0];\r\n $scope.bankRDN = '';\r\n $scope.PhoneCode = '+62';\r\n $scope.CIFInvestor = {}\r\n $scope.CIFInvestor.HomePhoneCode = '021';\r\n $scope.bankpribadi = '';\r\n\r\n $scope.OPBBCA = {\r\n occupation: '',\r\n occupationText: '',\r\n position: '',\r\n positionText: '',\r\n business: '',\r\n businessText: ''\r\n }\r\n\r\n $scope.CIFInvestor = {\r\n occupation: '',\r\n occupationText: '',\r\n position: '',\r\n positionText: '',\r\n business: '',\r\n businessText: '',\r\n CIFInvestorBeneficiaryOwnerOccupation: ''\r\n }\r\n\r\n $scope.OPBOTHER = {\r\n occupation: '',\r\n occupationText: '',\r\n position: '',\r\n positionText: '',\r\n business: '',\r\n businessText: ''\r\n }\r\n\r\n $scope.OPSPOUSE = {\r\n occupation: '',\r\n occupationText: '',\r\n position: '',\r\n business: '',\r\n }\r\n\r\n $scope.disableBank = true;\r\n $scope.disableCIFInvestorQuestionRDN = false;\r\n\r\n $scope.selectedFundSource = [];\r\n $scope.selectedSpouseFundSource = [];\r\n\r\n $scope.fundsource1 = [\r\n {\r\n id: 1,\r\n name: 'Lainnya'\r\n },\r\n {\r\n id: 2,\r\n name: 'Gaji'\r\n },\r\n {\r\n id: 3,\r\n name: 'Hasil Usaha'\r\n },\r\n //{\r\n // id: 4,\r\n // name: 'Tabungan'\r\n //},\r\n {\r\n id: 5,\r\n name: 'Warisan'\r\n }\r\n ];\r\n\r\n\r\n $scope.fundsourcebo = [\r\n {\r\n id: 1,\r\n name: 'Lainnya'\r\n },\r\n {\r\n id: 2,\r\n name: 'Gaji'\r\n },\r\n {\r\n id: 3,\r\n name: 'Hasil Usaha'\r\n },\r\n //{\r\n // id: 4,\r\n // name: 'Tabungan'\r\n //},\r\n {\r\n id: 5,\r\n name: 'Warisan'\r\n }\r\n ];\r\n\r\n $scope.spousefundsource1 = [\r\n {\r\n id: 1,\r\n name: 'Lainnya'\r\n },\r\n {\r\n id: 2,\r\n name: 'Gaji'\r\n },\r\n {\r\n id: 3,\r\n name: 'Hasil Usaha'\r\n },\r\n //{\r\n // id: 4,\r\n // name: 'Tabungan'\r\n //},\r\n {\r\n id: 5,\r\n name: 'Warisan'\r\n }\r\n ];\r\n\r\n $scope.ListBank = {};\r\n $scope.listpekerjaan_BCA = {};\r\n $scope.listjabatan_BCA = {};\r\n $scope.listusaha_BCA = {};\r\n $scope.listpekerjaan_PERMATA = {};\r\n $scope.listjabatan_PERMATA = {};\r\n $scope.listusaha_PERMATA = {};\r\n $scope.listpekerjaan_BUKOPIN = {};\r\n $scope.listjabatan_BUKOPIN = {};\r\n $scope.listusaha_BUKOPIN = {};\r\n $scope.ListLookup = [];\r\n $scope.ListLookupBukopin = [];\r\n $scope.ListOccupation = [];\r\n $scope.ListSpouseIncome = [];\r\n\r\n $scope.ListKecamatanCompany = [];\r\n $scope.ListKelurahanCompany = [];\r\n\r\n $scope.CompanyCountrySelected = '';\r\n $scope.CompanyCityBOSelected = '';\r\n $scope.ListKecamatanCompanyBO = [];\r\n $scope.ListKelurahanCompanyBO = [];\r\n $scope.selectedFundSourceBO = [];\r\n $scope.ListKecamatanBO = [];\r\n $scope.ListKelurahanBO = [];\r\n\r\n $scope.NationalitySelected = '';\r\n $scope.ListNationality = [];\r\n\r\n $scope.chkSeumurHidup = true;\r\n $scope.DisabledSeumurHidup = true;\r\n $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerIDCardExpiredDate = new Date(9998, 11, 31);\r\n\r\n $scope.CompanyCitySelected = '';\r\n $scope.SpouseCompanyCitySelected = '';\r\n $scope.mustSelect = function (event, field) {\r\n\r\n if (event.keyCode == 27) {\r\n\r\n let returnValue = true;\r\n switch (field) {\r\n\r\n case 'CompanyCity': $scope.CIFInvestor.CompanyCity = ''; returnValue = false;\r\n break;\r\n case 'IDCard': $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerCity = ''; returnValue = false;\r\n break;\r\n case 'CompanyBO': $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerCompanyCity = ''; returnValue = false;\r\n break;\r\n default:\r\n break;\r\n }\r\n return returnValue;\r\n }\r\n return true;\r\n }\r\n $scope.selectCity = function (item, model, label, event) {\r\n\r\n if (item.CIFProvinceCityNID) {\r\n\r\n $scope.CIFInvestor.SpouseCompanyCity = item.CIFProvinceCityNID;\r\n }\r\n };\r\n $scope.selectIDCardCityBO = function (item, model, label, event) {\r\n $scope.ListKecamatanBO = '';\r\n $scope.ListKelurahanBO = '';\r\n\r\n if (item.CIFProvinceCityNID) {\r\n $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerCity = item.CIFProvinceCityNID;\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFKecamatanByCityNID?CIFCityNID=' + item.CIFProvinceCityNID,\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.ListKecamatanBO = data.data.d;\r\n $scope.kecamatanChangeBO();\r\n }, function (error) { });\r\n\r\n }\r\n\r\n };\r\n\r\n $scope.kecamatanChangeBO = function () {\r\n if ($scope.CIFInvestor.CIFInvestorBeneficiaryOwnerKecamatan) {\r\n $scope.ListKelurahanBO = $filter('filter')($scope.ListKecamatanBO, { Kecamatan: $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerKecamatan }, true);\r\n }\r\n }\r\n\r\n $scope.kelurahanChangeBO = function () {\r\n if ($scope.CIFInvestor.CIFInvestorBeneficiaryOwnerKelurahan) {\r\n let temp = $filter('filter')($scope.ListKecamatanBO, { Kelurahan: $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerKelurahan }, true);\r\n if (temp) {\r\n $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerPostalCode = temp[0].PostalCode;\r\n }\r\n }\r\n }\r\n\r\n $scope.selectIDCardCountry = function (item, model, label, event) {\r\n if (item.CIFCountryNID) {\r\n $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerNationality = item.CIFCountryNID;\r\n }\r\n };\r\n\r\n $scope.selectCompanyCityBO = function (item, model, label, event) {\r\n $scope.ListKecamatanCompanyBO = '';\r\n $scope.ListKelurahanCompanyBO = '';\r\n\r\n if (item.CIFProvinceCityNID) {\r\n $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerCompanyCity = item.CIFProvinceCityNID;\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFKecamatanByCityNID?CIFCityNID=' + item.CIFProvinceCityNID,\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.ListKecamatanCompanyBO = data.data.d;\r\n $scope.kecamatanChangeCompanyCityBO();\r\n }, function (error) { });\r\n }\r\n\r\n };\r\n\r\n $scope.kecamatanChangeCompanyCityBO = function () {\r\n if ($scope.CIFInvestor.CIFInvestorBeneficiaryOwnerCompanyAddress2) {\r\n $scope.ListKelurahanCompanyBO = $filter('filter')($scope.ListKecamatanCompanyBO, { Kecamatan: $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerCompanyAddress2 }, true);\r\n }\r\n }\r\n\r\n $scope.kelurahanChangeCompanyCityBO = function () {\r\n if ($scope.CIFInvestor.CIFInvestorBeneficiaryOwnerCompanyAddress3) {\r\n let temp = $filter('filter')($scope.ListKecamatanCompanyBO, { Kelurahan: $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerCompanyAddress3 }, true);\r\n if (temp) {\r\n $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerCompanyPostalCode = temp[0].PostalCode;\r\n }\r\n }\r\n }\r\n\r\n $scope.selectCompanyCity = function (item, model, label, event) {\r\n $scope.ListKecamatanCompany = '';\r\n $scope.ListKelurahanCompany = '';\r\n\r\n if (item.CIFProvinceCityNID) {\r\n $scope.CIFInvestor.CompanyCity = item.CIFProvinceCityNID;\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFKecamatanByCityNID?CIFCityNID=' + item.CIFProvinceCityNID,\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.ListKecamatanCompany = data.data.d;\r\n $scope.kecamatanChangeCompanyCity();\r\n }, function (error) { });\r\n }\r\n\r\n };\r\n\r\n\r\n $scope.kecamatanChangeCompanyCity = function () {\r\n if ($scope.CIFInvestor.CompanyKecamatan) {\r\n $scope.ListKelurahanCompany = $filter('filter')($scope.ListKecamatanCompany, { Kecamatan: $scope.CIFInvestor.CompanyKecamatan }, true);\r\n }\r\n }\r\n\r\n $scope.kelurahanChangeCompanyCity = function () {\r\n if ($scope.CIFInvestor.CompanyKelurahan) {\r\n let temp = $filter('filter')($scope.ListKecamatanCompany, { Kelurahan: $scope.CIFInvestor.CompanyKelurahan }, true);\r\n if (temp) {\r\n $scope.CIFInvestor.CompanyPostalCode = temp[0].PostalCode;\r\n }\r\n }\r\n }\r\n\r\n\r\n $scope.questionRDNchange = function () {\r\n\r\n $scope.OPBBCA.occupation = '';\r\n $scope.OPBBCA.occupationText = '';\r\n $scope.OPBBCA.position = '';\r\n $scope.OPBBCA.positionText = '';\r\n $scope.OPBBCA.business = '';\r\n $scope.OPBBCA.businessText = '';\r\n\r\n $scope.CIFInvestor.occupation = '';\r\n $scope.CIFInvestor.occupationText = '';\r\n $scope.CIFInvestor.position = '';\r\n $scope.CIFInvestor.positionText = '';\r\n\r\n $scope.OPBOTHER.occupation = '';\r\n $scope.OPBOTHER.occupationText = '';\r\n $scope.OPBOTHER.position = '';\r\n $scope.OPBOTHER.positionText = '';\r\n $scope.OPBOTHER.business = '';\r\n $scope.OPBOTHER.businessText = '';\r\n\r\n $scope.CIFInvestor.BankName = \"\";\r\n $scope.disableBank = false;\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == '1' || $scope.CIFInvestor.QuestionRDN == 1) {\r\n\r\n $scope.bankpribadi = \"PT. BANK CENTRAL ASIA, Tbk.\";\r\n $scope.disableBank = true;\r\n }\r\n };\r\n\r\n\r\n $scope.changeSpouseMandatory = function (param) {\r\n\r\n if (param) {\r\n\r\n $scope.spouseMandatory = true;\r\n } else {\r\n let flag = false;\r\n\r\n if ($scope.OPBBCA) {\r\n\r\n if ($scope.OPBBCA.occupation.key == 1 || $scope.OPBBCA.occupation.key == 2) {\r\n\r\n flag = true;\r\n $scope.spouseMandatory2 = true;\r\n $scope.spouseMandatory1 = false\r\n }\r\n }\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == '2') {\r\n if ($scope.CIFInvestor.Occupation.key == 3 || $scope.CIFInvestor.Occupation.key == 4) {\r\n\r\n flag = true;\r\n $scope.spouseMandatory2 = true;\r\n $scope.spouseMandatory1 = false\r\n }\r\n }\r\n\r\n if ($scope.OPBOTHER) {\r\n\r\n if ($scope.OPBOTHER.CIFLookupInteger == 4 || $scope.OPBOTHER.CIFLookupInteger == 6) {\r\n\r\n flag = true;\r\n $scope.spouseMandatory2 = true;\r\n $scope.spouseMandatory1 = false;\r\n }\r\n\r\n }\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == '3') {\r\n\r\n if ($scope.CIFInvestor.Occupation.key == 4 || $scope.CIFInvestor.Occupation.key == 6) {\r\n\r\n flag = true;\r\n $scope.spouseMandatory2 = true;\r\n $scope.spouseMandatory1 = false;\r\n }\r\n\r\n }\r\n\r\n\r\n if ($scope.selectedFundSource.indexOf(7) > -1) {\r\n\r\n flag = true;\r\n $scope.spouseMandatory2 = true;\r\n $scope.spouseMandatory1 = false;\r\n }\r\n\r\n if ($scope.selectedFundSource.indexOf(6) > -1) {\r\n\r\n flag = true;\r\n $scope.spouseMandatory1 = true;\r\n $scope.spouseMandatory2 = false;\r\n }\r\n\r\n if (!flag) {\r\n\r\n $scope.CIFInvestor.SpouseCompanyName = '';\r\n $scope.CIFInvestor.SpouseIncomePerAnnum = '';\r\n $scope.CIFInvestor.SpouseIncomeExtraPerAnnum = '';\r\n $scope.CIFInvestor.SpouseOccupation = '';\r\n $scope.CIFInvestor.SpousePosition = '';\r\n $scope.CIFInvestor.SpouseNatureOfBusiness = '';\r\n $scope.CIFInvestor.SpouseCompanyCity = '';\r\n $scope.CIFInvestor.SpouseCompanyPostalCode = '';\r\n $scope.CIFInvestor.SpouseCompanyAddress = '';\r\n $scope.CIFInvestor.SpouseFundSource = '';\r\n\r\n $scope.SpouseCompanyCitySelected = '';\r\n $scope.selectedSpouseFundSource = [];\r\n\r\n $scope.OPSPOUSE.occupation = '';\r\n $scope.OPSPOUSE.occupationText = '';\r\n $scope.OPSPOUSE.position = '';\r\n $scope.OPSPOUSE.business = '';\r\n }\r\n\r\n $scope.spouseMandatory = flag;\r\n\r\n console.log('spouseMandatory ', $scope.spouseMandatory)\r\n }\r\n }\r\n\r\n $scope.bo = function () {\r\n\r\n if ($scope.CIFInvestor.QuestionNPWP == 2) {\r\n var SWALtranslate = $scope.SWALtranslate('npwp');\r\n\r\n Swal.fire({\r\n text: SWALtranslate.message,\r\n imageAlt: 'BO',\r\n imageHeight: 250,\r\n animation: false\r\n });\r\n }\r\n }\r\n\r\n $scope.NPWPNumber = function () {\r\n if ($scope.CIFInvestor.QuestionNPWP == 1) {\r\n $scope.CIFInvestor.NPWPNumber = $scope.CIFInvestor.IDCardNumber\r\n $scope.disabledNPWPNumber = true;\r\n }\r\n };\r\n\r\n $scope.updateNPWP = function () {\r\n\r\n if ($scope.CIFInvestor.NPWPNumber) {\r\n\r\n if ($scope.CIFInvestor.QuestionNPWP == 1) {\r\n\r\n $scope.CIFInvestor.NPWPNumber;\r\n } else {\r\n $scope.CIFInvestor.NPWPReason;\r\n $scope.CIFInvestor.NPWPNumber = '';\r\n\r\n }\r\n }\r\n };\r\n\r\n $scope.occupationChange_BCA = function () {\r\n\r\n if ($scope.OPBBCA.occupation) {\r\n\r\n $scope.OPBBCA.occupationText = '';\r\n $scope.OPBBCA.position = 0;\r\n $scope.OPBBCA.positionText = '';\r\n $scope.OPBBCA.business = 0;\r\n $scope.OPBBCA.businessText = '';\r\n\r\n if ($scope.OPBBCA.occupation.key == 1 || $scope.OPBBCA.occupation.key == 2)\r\n $scope.changeSpouseMandatory(true);\r\n else\r\n $scope.changeSpouseMandatory();\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetJabatan?Pekerjaan=' + $scope.OPBBCA.occupation.key,\r\n }).then(function (data) {\r\n\r\n\r\n $scope.listjabatan_BCA = data.data.d;\r\n\r\n if ($scope.listjabatan_BCA.length) {\r\n $scope.OPBBCA.positionText = '';\r\n $scope.OPBBCA.position = $scope.listjabatan_BCA[0];\r\n\r\n $scope.positionChange_BCA();\r\n }\r\n }, function (error) { });\r\n }\r\n };\r\n\r\n $scope.positionChange_BCA = function () {\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetBidangUsaha?Jabatan=' + $scope.OPBBCA.position.key + '&Pekerjaan=' + $scope.OPBBCA.occupation.key,\r\n }).then(function (data) {\r\n\r\n $scope.listusaha_BCA = data.data.d;\r\n\r\n if ($scope.listusaha_BCA.length) {\r\n\r\n $scope.OPBBCA.businessText = '';\r\n $scope.OPBBCA.business = $scope.listusaha_BCA[0];\r\n }\r\n }, function (error) { });\r\n };\r\n\r\n $scope.occupationChange_PERMATA = function () {\r\n\r\n if ($scope.CIFInvestor.Occupation) {\r\n\r\n $scope.CIFInvestor.OccupationText = '';\r\n $scope.CIFInvestor.Position = 0;\r\n $scope.CIFInvestor.PositionText = '';\r\n $scope.CIFInvestor.NatureOfBusiness = 0;\r\n $scope.CIFInvestor.NatureOfBusinessText = '';\r\n\r\n if ($scope.CIFInvestor.Occupation.key == 3 || $scope.CIFInvestor.Occupation.key == 4)\r\n $scope.changeSpouseMandatory(true);\r\n else\r\n $scope.changeSpouseMandatory();\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetJabatanPermata?Pekerjaan=' + $scope.CIFInvestor.Occupation.key,\r\n }).then(function (data) {\r\n\r\n $scope.listjabatan_PERMATA = data.data.d;\r\n\r\n if ($scope.listjabatan_PERMATA.length) {\r\n $scope.CIFInvestor.PositionText = '';\r\n $scope.CIFInvestor.Position = $scope.listjabatan_PERMATA[0];\r\n\r\n //$scope.positionChange_PERMATA();\r\n }\r\n }, function (error) { });\r\n }\r\n\r\n console.log($scope.CIFInvestor.Occupation);\r\n };\r\n\r\n $scope.occupationChange_BUKOPIN = function () {\r\n\r\n if ($scope.CIFInvestor.Occupation) {\r\n\r\n $scope.CIFInvestor.OccupationText = '';\r\n $scope.CIFInvestor.Position = 0;\r\n $scope.CIFInvestor.PositionText = '';\r\n $scope.CIFInvestor.NatureOfBusiness = 0;\r\n $scope.CIFInvestor.NatureOfBusinessText = '';\r\n\r\n if ($scope.CIFInvestor.Occupation.key == 4) {\r\n $scope.CIFInvestor.Position = 3;\r\n $scope.CIFInvestor.PositionText = 'IBU RUMAH TANGGA';\r\n $scope.CIFInvestor.NatureOfBusiness = 33;\r\n $scope.CIFInvestor.businessText = 'IBU RUMAH TANGGA';\r\n }\r\n\r\n if ($scope.CIFInvestor.Occupation.key == 6) {\r\n $scope.CIFInvestor.Position = 0;\r\n $scope.CIFInvestor.PositionText = 'MAHASISWA/PELAJAR';\r\n $scope.CIFInvestor.NatureOfBusiness = 0;\r\n $scope.CIFInvestor.businessText = 'MAHASISWA/PELAJAR';\r\n }\r\n\r\n if ($scope.CIFInvestor.Occupation.key == 4 || $scope.CIFInvestor.Occupation.key == 6)\r\n $scope.changeSpouseMandatory(true);\r\n else\r\n $scope.changeSpouseMandatory();\r\n\r\n\r\n }\r\n };\r\n\r\n $scope.occupationChange_OTHER = function () {\r\n\r\n if ($scope.OPBOTHER.occupation) {\r\n\r\n $scope.OPBOTHER.occupationText = '';\r\n $scope.OPBOTHER.position = '';\r\n $scope.OPBOTHER.positionText = '';\r\n $scope.OPBOTHER.business = '';\r\n $scope.OPBOTHER.businessText = '';\r\n\r\n if ($scope.OPBOTHER.occupation == '4' || $scope.OPBOTHER.occupation == '6')\r\n $scope.changeSpouseMandatory(true);\r\n else\r\n $scope.changeSpouseMandatory();\r\n }\r\n }\r\n\r\n $scope.toggleFundSourceItem = function (fundsource) {\r\n\r\n let indexCIFLookupInteger = $scope.selectedFundSource.indexOf(fundsource.id);\r\n\r\n if (indexCIFLookupInteger > -1)\r\n $scope.selectedFundSource.splice(indexCIFLookupInteger, 1);\r\n else\r\n $scope.selectedFundSource.push(fundsource.id);\r\n\r\n if ($scope.selectedFundSource.indexOf(1) < 0)\r\n $scope.CIFInvestor.FundSourceText = '';\r\n\r\n $scope.changeSpouseMandatory();\r\n }\r\n\r\n $scope.toggleSpouseFundSourceItem = function (fundsource) {\r\n\r\n $scope.CIFInvestor.SpouseFundSource = '';\r\n let indexCIFLookupInteger = $scope.selectedSpouseFundSource.indexOf(fundsource.id);\r\n\r\n if (indexCIFLookupInteger > -1)\r\n $scope.selectedSpouseFundSource.splice(indexCIFLookupInteger, 1);\r\n else\r\n $scope.selectedSpouseFundSource.push(fundsource.id);\r\n\r\n if ($scope.selectedSpouseFundSource.indexOf(1) < 0)\r\n $scope.CIFInvestor.SpouseFundSourceText = '';\r\n }\r\n\r\n\r\n $scope.toggleFundSourceBOItem = function (fundsource) {\r\n\r\n let indexCIFLookupInteger = $scope.selectedFundSourceBO.indexOf(fundsource.id);\r\n\r\n if (indexCIFLookupInteger > -1)\r\n $scope.selectedFundSourceBO.splice(indexCIFLookupInteger, 1);\r\n else\r\n $scope.selectedFundSourceBO.push(fundsource.id);\r\n\r\n if ($scope.selectedFundSourceBO.indexOf(1) < 0)\r\n $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerFundSourceText = '';\r\n\r\n $scope.changeSpouseMandatory();\r\n }\r\n\r\n $scope.prepareData = function () {\r\n\r\n if ($scope.CIFInvestor.IncomeExtraPerAnnum == '') {\r\n $scope.CIFInvestor.IncomeExtraPerAnnum == 0;\r\n }\r\n\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == '1' || $scope.CIFInvestor.QuestionRDN == 1) {\r\n\r\n $scope.CIFInvestor.BankName = $scope.bankpribadi;\r\n $scope.CIFInvestor.Occupation = $scope.OPBBCA.occupation.key;\r\n $scope.CIFInvestor.OccupationText = $scope.OPBBCA.occupationText;\r\n $scope.CIFInvestor.Position = $scope.OPBBCA.position.key;\r\n $scope.CIFInvestor.PositionText = $scope.OPBBCA.positionText;\r\n $scope.CIFInvestor.NatureOfBusiness = $scope.OPBBCA.business.key;\r\n $scope.CIFInvestor.NatureOfBusinessText = $scope.OPBBCA.businessText;\r\n } else if ($scope.CIFInvestor.QuestionRDN == '2' || $scope.CIFInvestor.QuestionRDN == 2) {\r\n $scope.CIFInvestor.BankName = $scope.bankpribadi;\r\n $scope.CIFInvestor.Occupation = $scope.CIFInvestor.Occupation.key;\r\n console.log($scope.CIFInvestor.Occupation);\r\n if ($scope.CIFInvestor.Occupation == 7) {\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetJabatanPERMATA?Pekerjaan=' + $scope.CIFInvestor.Occupation.key,\r\n }).then(function (data) {\r\n $scope.listjabatan_PERMATA = data.data.d;\r\n $scope.OccupationText = $filter('filter')($scope.listjabatan_PERMATA, { key: $scope.CIFInvestor.Occupation }, true)[0];\r\n $scope.CIFInvestor.OccupationText = OccupationText.NAMA_Pekerjaan;\r\n }, function (error) { });\r\n }\r\n else {\r\n $scope.CIFInvestor.OccupationText = $scope.CIFInvestor.OccupationText;\r\n }\r\n $scope.CIFInvestor.Position = $scope.CIFInvestor.Position.key;\r\n $scope.CIFInvestor.PositionText = $scope.CIFInvestor.PositionText;\r\n $scope.CIFInvestor.NatureOfBusiness = Number($scope.CIFInvestor.NatureOfBusiness);\r\n $scope.CIFInvestor.NatureOfBusinessText = $scope.CIFInvestor.businessText;\r\n }\r\n else if ($scope.CIFInvestor.QuestionRDN == '3' || $scope.CIFInvestor.QuestionRDN == 3) {\r\n $scope.CIFInvestor.BankName = $scope.bankpribadi;\r\n $scope.CIFInvestor.Occupation = $scope.CIFInvestor.Occupation.key;\r\n if ($scope.CIFInvestor.Occupation == 4 || $scope.CIFInvestor.Occupation == 6) {\r\n $scope.CIFInvestor.Position = 3;\r\n $scope.CIFInvestor.PositionText = $scope.CIFInvestor.PositionText;\r\n $scope.CIFInvestor.NatureOfBusiness = 33;\r\n $scope.CIFInvestor.NatureOfBusinessText = $scope.CIFInvestor.businessText;\r\n } else {\r\n $scope.CIFInvestor.Position = $scope.CIFInvestor.Position.key;\r\n $scope.CIFInvestor.PositionText = $scope.CIFInvestor.PositionText;\r\n $scope.CIFInvestor.NatureOfBusiness = Number($scope.CIFInvestor.NatureOfBusiness.key);\r\n $scope.CIFInvestor.NatureOfBusinessText = $scope.CIFInvestor.businessText;\r\n }\r\n }\r\n else {\r\n $scope.CIFInvestor.Occupation = Number($scope.OPBOTHER.occupation);\r\n $scope.CIFInvestor.BankName = $scope.bankpribadi;\r\n $scope.CIFInvestor.OccupationText = $scope.OPBOTHER.occupationText;\r\n $scope.CIFInvestor.Position = 0;\r\n $scope.CIFInvestor.NatureOfBusiness = 0;\r\n\r\n if ($scope.OPBOTHER.occupation == '4') {\r\n\r\n $scope.CIFInvestor.PositionText = '';\r\n $scope.CIFInvestor.NatureOfBusinessText = '';\r\n } else {\r\n\r\n $scope.CIFInvestor.PositionText = $scope.OPBOTHER.positionText;\r\n $scope.CIFInvestor.NatureOfBusiness = 0;\r\n $scope.CIFInvestor.NatureOfBusinessText = $scope.OPBOTHER.businessText;\r\n }\r\n }\r\n\r\n //if ($scope.CIFInvestor.Position != '0') {\r\n // $scope.CIFInvestor.PositionText = null;\r\n //}\r\n\r\n //if ($scope.CIFInvestor.NatureOfBusiness != '0') {\r\n // $scope.CIFInvestor.NatureOfBusinessText = null;\r\n //}\r\n\r\n if ($scope.spouseMandatory) {\r\n\r\n $scope.CIFInvestor.SpouseOccupation = Number($scope.OPSPOUSE.occupation);\r\n $scope.CIFInvestor.SpouseOccupationText = $scope.OPSPOUSE.occupationText;\r\n $scope.CIFInvestor.SpousePosition = $scope.OPSPOUSE.position;\r\n $scope.CIFInvestor.SpouseNatureOfBusiness = ($scope.OPSPOUSE.business);\r\n //$scope.CIFInvestor.SpouseCompanyCity = Number($scope.SpouseCompanyCitySelected);\r\n $scope.CIFInvestor.SpouseIncomeExtraPerAnnum = Number($scope.CIFInvestor.SpouseIncomeExtraPerAnnum);\r\n $scope.CIFInvestor.SpouseIncomePerAnnum = Number($scope.CIFInvestor.SpouseIncomePerAnnum);\r\n $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerOccupation = Number($scope.CIFInvestor.CIFInvestorBeneficiaryOwnerOccupation);\r\n $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerIncomePerAnnum = Number($scope.CIFInvestor.CIFInvestorBeneficiaryOwnerIncomePerAnnum);\r\n $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerSex = Number($scope.CIFInvestor.CIFInvestorBeneficiaryOwnerSex);\r\n $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerInvestmentObjectives = Number($scope.CIFInvestor.CIFInvestorBeneficiaryOwnerInvestmentObjectives);\r\n\r\n } else {\r\n\r\n $scope.CIFInvestor.SpouseIncomePerAnnum = 0;\r\n $scope.CIFInvestor.SpouseIncomeExtraPerAnnum = 0;\r\n $scope.CIFInvestor.SpouseOccupation = 0;\r\n $scope.CIFInvestor.SpouseCompanyCity = 0;\r\n }\r\n\r\n if ($scope.selectedFundSource) {\r\n\r\n $scope.CIFInvestor.FundSource = '';\r\n\r\n for (var i = 0; i < $scope.selectedFundSource.length; i++) {\r\n\r\n if ($scope.CIFInvestor.FundSource.length > 0)\r\n $scope.CIFInvestor.FundSource += ',';\r\n $scope.CIFInvestor.FundSource += $scope.selectedFundSource[i];\r\n }\r\n }\r\n\r\n\r\n if ($scope.selectedSpouseFundSource) {\r\n\r\n $scope.CIFInvestor.SpouseFundSource = '';\r\n\r\n for (var i = 0; i < $scope.selectedSpouseFundSource.length; i++) {\r\n\r\n if ($scope.CIFInvestor.SpouseFundSource.length > 0)\r\n $scope.CIFInvestor.SpouseFundSource += ',';\r\n $scope.CIFInvestor.SpouseFundSource += $scope.selectedSpouseFundSource[i];\r\n }\r\n }\r\n\r\n if ($scope.selectedFundSourceBO) {\r\n $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerFundSource = '';\r\n for (var i = 0; i < $scope.selectedFundSourceBO.length; i++) {\r\n if ($scope.CIFInvestor.CIFInvestorBeneficiaryOwnerFundSource.length > 0)\r\n $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerFundSource += ',';\r\n $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerFundSource += $scope.selectedFundSourceBO[i];\r\n\r\n }\r\n }\r\n\r\n\r\n if ($scope.CIFInvestor.CIFInvestorBeneficiaryOwnerCompanyCity)\r\n $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerCompanyCity = Number($scope.CIFInvestor.CIFInvestorBeneficiaryOwnerCompanyCity);\r\n\r\n if ($scope.CIFInvestor.CIFInvestorBeneficiaryOwnerNationality)\r\n $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerNationality = Number($scope.CIFInvestor.CIFInvestorBeneficiaryOwnerNationality);\r\n };\r\n\r\n $scope.validation = false;\r\n\r\n $scope.validationinput = function () {\r\n\r\n var errorForm = $scope.myForm.$error.required\r\n $scope.validation = $scope.myForm.$valid;\r\n var message = [];\r\n //console.log('error :', errorForm);\r\n\r\n if (errorForm) {\r\n for (let i = 0; i < errorForm.length; i++) {\r\n //message += errorForm[i].$name + \" , \";\r\n message.push(errorForm[i].$name);\r\n }\r\n }\r\n\r\n if (($scope.CIFInvestor.QuestionRDN == 1 && $scope.OPBBCA.occupation.key == 1 || $scope.CIFInvestor.QuestionRDN == 1 && $scope.OPBBCA.occupation.key == 2) || ($scope.CIFInvestor.QuestionRDN == 2 && $scope.CIFInvestor.Occupation == 3 || $scope.CIFInvestor.QuestionRDN == 2 && $scope.CIFInvestor.Occupation.key == 4)) {\r\n if (!$scope.othersPhoto) {\r\n $scope.validation = false\r\n message.push(\"othersPhoto\");\r\n }\r\n }\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == 1 && $scope.OPBBCA.occupation.key == 1 || ($scope.CIFInvestor.QuestionRDN == 2 && $scope.CIFInvestor.Occupation.key == 3) || ($scope.CIFInvestor.QuestionRDN == 3 && $scope.CIFInvestor.Occupation.key == 6)) {\r\n if (!$scope.parentPhoto) {\r\n $scope.validation = false\r\n message.push(\"parentPhoto\");\r\n }\r\n }\r\n\r\n //PROSES VALIDATION\r\n if ($scope.validation == false) {\r\n console.log(\"error : \" + message);\r\n\r\n var SWALtranslate = $scope.SWALtranslate('validationinput');\r\n Swal.fire({\r\n title: SWALtranslate.title,\r\n text: SWALtranslate.message,\r\n imageUrl: 'img/collection/wrong.png',\r\n imageAlt: 'Preparation',\r\n imageHeight: 250,\r\n animation: false\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n var allPromise = $q.all([\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFProvinceCity',\r\n cache: true,\r\n }).then(function (data) {\r\n\r\n $scope.ListProvinceCity = data.data.d;\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFBank',\r\n cache: true,\r\n }).then(function (data) {\r\n\r\n $scope.ListBank = data.data.d;\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFLookup',\r\n cache: true,\r\n }).then(function (data) {\r\n\r\n $scope.ListLookup = data.data.d;\r\n\r\n if ($scope.ListLookup) {\r\n $scope.ListOccupation = $filter('filter')($scope.ListLookup, { CIFLookupID: 'Occupation' }, true);\r\n $scope.ListSpouseIncome = $filter('filter')($scope.ListLookup, { CIFLookupID: 'IncomePerAnnum' }, true);\r\n $scope.ListFundSource = $filter('filter')($scope.ListLookup, { CIFLookupID: 'FundSource' }, true);\r\n $scope.ListIncomePerAnnum = $filter('filter')($scope.ListLookup, { CIFLookupID: 'IncomePerAnnum' }, true);\r\n $scope.ListInvestmentObjectives = $filter('filter')($scope.ListLookup, { CIFLookupID: 'InvestmentObjectives' }, true);\r\n\r\n }\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFBank',\r\n cache: true,\r\n }).then(function (data) {\r\n\r\n $scope.ListBank = data.data.d;\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFPekerjaan',\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.listpekerjaan_BCA = data.data.d;\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetJabatan',\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.listposition_BCA = data.data.d;\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetBidangUsaha',\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.listnature_BCA = data.data.d;\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFPekerjaanPermata',\r\n cache: true,\r\n }).then(function (data) {\r\n\r\n $scope.listpekerjaan_PERMATA = data.data.d;\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetJabatanPermata',\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.listposition_PERMATA = data.data.d;\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetBidangUsahaPermata',\r\n cache: true,\r\n }).then(function (data) {\r\n\r\n $scope.listnature_PERMATA = data.data.d;\r\n }, function (error) { }),\r\n\r\n //GetDataBukopin\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFPekerjaanBukopin?TypeID=Occupation',\r\n cache: true,\r\n }).then(function (data) {\r\n\r\n $scope.listpekerjaan_BUKOPIN = data.data.d;\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFPekerjaanBukopin?TypeID=Position',\r\n cache: true,\r\n }).then(function (data) {\r\n\r\n $scope.listjabatan_BUKOPIN = data.data.d;\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFPekerjaanBukopin?TypeID=NatureOfBusiness',\r\n cache: true,\r\n }).then(function (data) {\r\n\r\n $scope.listnature_BUKOPIN = data.data.d;\r\n }, function (error) { }),\r\n\r\n ]);\r\n\r\n allPromise.then(function () {\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/getCIF',\r\n cache: true,\r\n }).then(function (data) {\r\n if (data.data.d != null) {\r\n var obj = data.data.d;\r\n $scope.CIFInvestor = data.data.d;\r\n $scope.CIFInvestor.Stage = 3;\r\n $scope.CIFInvestor.business = data.data.d.NatureOfBusiness;\r\n //info upload \r\n $scope.filenameNPWP = $scope.CIFInvestor.NPWPFile;\r\n $scope.filenameOthers = $scope.CIFInvestor.OthersFile;\r\n $scope.filenameParent = $scope.CIFInvestor.ParentFile;\r\n if ($scope.filenameNPWP) {\r\n\r\n if (!$scope.filenameNPWP.endsWith(\".pdf\")) {\r\n $http({\r\n method: 'GET',\r\n url: 'FileKYC/' + $scope.filenameNPWP,\r\n responseType: 'blob',\r\n\r\n }).then(function (response) {\r\n if (response.data) {\r\n var reader2 = new FileReader();\r\n reader2.readAsDataURL(response.data);\r\n reader2.onloadend = function () {\r\n $scope.npwpPhoto = reader2.result;\r\n }\r\n\r\n }\r\n //$scope.NPWPFile = [];\r\n //$scope.NPWPFile.push(response.data);\r\n }, function (response) {\r\n $scope.saveErrors = true;\r\n $scope.errorMessages = {\r\n text: 'File tidak ketemu atau terhapus dari server!!!',\r\n };\r\n $timeout(function () {\r\n $scope.saveErrors = false;\r\n }, 3000);\r\n });\r\n }\r\n };\r\n if ($scope.filenameOthers) {\r\n\r\n if (!$scope.filenameOthers.endsWith(\".pdf\")) {\r\n $http({\r\n method: 'GET',\r\n url: 'FileKYC/' + $scope.filenameOthers,\r\n responseType: 'blob',\r\n\r\n }).then(function (response) {\r\n if (response.data) {\r\n var reader5 = new FileReader();\r\n reader5.readAsDataURL(response.data);\r\n reader5.onloadend = function () {\r\n $scope.othersPhoto = reader5.result;\r\n }\r\n\r\n }\r\n //$scope.tandatanganFile = [];\r\n //$scope.tandatanganFile.push(response.data);\r\n }, function (response) {\r\n $scope.saveErrors = true;\r\n $scope.errorMessages = {\r\n text: 'File tidak ketemu atau terhapus dari server!!!',\r\n };\r\n $timeout(function () {\r\n $scope.saveErrors = false;\r\n }, 3000);\r\n });\r\n }\r\n };\r\n if ($scope.filenameParent) {\r\n\r\n if (!$scope.filenameParent.endsWith(\".pdf\")) {\r\n $http({\r\n method: 'GET',\r\n url: 'FileKYC/' + $scope.filenameParent,\r\n responseType: 'blob',\r\n\r\n }).then(function (response) {\r\n if (response.data) {\r\n var reader6 = new FileReader();\r\n reader6.readAsDataURL(response.data);\r\n reader6.onloadend = function () {\r\n $scope.parentPhoto = reader6.result;\r\n }\r\n\r\n }\r\n //$scope.tandatanganFile = [];\r\n //$scope.tandatanganFile.push(response.data);\r\n }, function (response) {\r\n $scope.saveErrors = true;\r\n $scope.errorMessages = {\r\n text: 'File tidak ketemu atau terhapus dari server!!!',\r\n };\r\n $timeout(function () {\r\n $scope.saveErrors = false;\r\n }, 3000);\r\n });\r\n }\r\n };\r\n //end info upload\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == 0) {\r\n\r\n $scope.CIFInvestor.QuestionRDN = '';\r\n }\r\n\r\n if ($scope.CIFInvestor.BankOwner == '' || !$scope.CIFInvestor.BankOwner)\r\n $scope.CIFInvestor.BankOwner = $scope.CIFInvestor.FirstName;\r\n\r\n if ($scope.CIFInvestor.QuestionNPWP == 0)\r\n $scope.CIFInvestor.QuestionNPWP = '';\r\n\r\n $scope.bankpribadi = $scope.CIFInvestor.BankName;\r\n\r\n\r\n if ($scope.CIFInvestor.SpouseCompanyCity)\r\n $scope.SpouseCompanyCitySelected = $filter('filter')($scope.ListProvinceCity, { CIFProvinceCityNID: $scope.CIFInvestor.DomicileCity }, true)[0];\r\n\r\n if (data.data.d.CompanyCity) {\r\n $scope.CompanyCitySelected = $filter('filter')($scope.ListProvinceCity, { CIFProvinceCityNID: data.data.d.CompanyCity }, true)[0];\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFKecamatanByCityNID?CIFCityNID=' + data.data.d.CompanyCity,\r\n cache: true,\r\n }).then(function (dataKecamatan) {\r\n $scope.ListKecamatanCompany = dataKecamatan.data.d;\r\n if ($scope.ListKecamatanCompany)\r\n $scope.ListKelurahanCompany = $filter('filter')($scope.ListKecamatanCompany, { Kecamatan: $scope.CIFInvestor.CompanyKecamatan }, true);\r\n\r\n\r\n }, function (error) { });\r\n }\r\n\r\n\r\n if (data.data.d.SpouseBirthDate)\r\n $scope.CIFInvestor.SpouseBirthDate = new Date(data.data.d.SpouseBirthDate);\r\n\r\n if ($scope.CIFInvestor.QuestionRDN) {\r\n\r\n //BCA\r\n if ($scope.CIFInvestor.QuestionRDN == '1' || $scope.CIFInvestor.QuestionRDN == 1) {\r\n\r\n $scope.OPBBCA.occupationText = $scope.CIFInvestor.OccupationText;\r\n $scope.OPBBCA.positionText = $scope.CIFInvestor.PositionText;\r\n $scope.OPBBCA.businessText = $scope.CIFInvestor.NatureOfBusinessText;\r\n\r\n if ($scope.CIFInvestor.Occupation && $scope.CIFInvestor.Occupation > 0) {\r\n\r\n $scope.OPBBCA.occupation = $filter('filter')($scope.listpekerjaan_BCA, { key: $scope.CIFInvestor.Occupation }, true)[0];\r\n\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetJabatan?Pekerjaan=' + $scope.OPBBCA.occupation.key,\r\n }).then(function (data) {\r\n\r\n $scope.listjabatan_BCA = data.data.d;\r\n\r\n if ($scope.listjabatan_BCA.length) {\r\n\r\n if ($scope.CIFInvestor.Position && $scope.CIFInvestor.Position > 0) {\r\n\r\n $scope.OPBBCA.position = $filter('filter')($scope.listjabatan_BCA, { key: $scope.CIFInvestor.Position }, true)[0];\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetBidangUsaha?Jabatan=' + $scope.OPBBCA.position.key + '&Pekerjaan=' + $scope.OPBBCA.occupation.key,\r\n }).then(function (data) {\r\n\r\n $scope.listusaha_BCA = data.data.d;\r\n\r\n if ($scope.listusaha_BCA.length) {\r\n\r\n if ($scope.CIFInvestor.NatureOfBusiness != null)\r\n $scope.OPBBCA.business = $filter('filter')($scope.listusaha_BCA, { key: $scope.CIFInvestor.NatureOfBusiness }, true)[0];\r\n }\r\n }, function (error) { });\r\n }\r\n }\r\n }, function (error) { });\r\n }\r\n\r\n }\r\n //PERMATA\r\n else if ($scope.CIFInvestor.QuestionRDN == '2' || $scope.CIFInvestor.QuestionRDN == 2) {\r\n $scope.CIFInvestor.businessText = $scope.CIFInvestor.NatureOfBusinessText;\r\n\r\n if ($scope.CIFInvestor.Occupation && $scope.CIFInvestor.Occupation > 0) {\r\n\r\n $scope.CIFInvestor.Occupation = $filter('filter')($scope.listpekerjaan_PERMATA, { key: $scope.CIFInvestor.Occupation }, true)[0];\r\n\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetJabatanPermata?Pekerjaan=' + $scope.CIFInvestor.Occupation.key,\r\n }).then(function (data) {\r\n\r\n $scope.listjabatan_PERMATA = data.data.d;\r\n\r\n if ($scope.listjabatan_PERMATA.length) {\r\n\r\n if ($scope.CIFInvestor.Position && $scope.CIFInvestor.Position > 0) {\r\n\r\n $scope.CIFInvestor.Position = $filter('filter')($scope.listjabatan_PERMATA, { key: $scope.CIFInvestor.Position }, true)[0];\r\n\r\n }\r\n }\r\n }, function (error) { });\r\n }\r\n if ($scope.CIFInvestor.NatureOfBusiness != null) {\r\n $scope.CIFInvestor.business = $filter('filter')($scope.listnature_PERMATA, { key: $scope.CIFInvestor.NatureOfBusiness }, true)[0];\r\n }\r\n\r\n }\r\n else if ($scope.CIFInvestor.QuestionRDN == '3' || $scope.CIFInvestor.QuestionRDN == 3) {\r\n\r\n $scope.CIFInvestor.NatureOfBusiness = $scope.CIFInvestor.business;\r\n console.log($scope.CIFInvestor.NatureOfBusiness);\r\n\r\n if ($scope.CIFInvestor.Occupation && $scope.CIFInvestor.Occupation > 0)\r\n $scope.CIFInvestor.Occupation = $filter('filter')($scope.listpekerjaan_BUKOPIN, { key: $scope.CIFInvestor.Occupation }, true)[0];\r\n\r\n if ($scope.CIFInvestor.Position && $scope.CIFInvestor.Position > 0)\r\n $scope.CIFInvestor.Position = $filter('filter')($scope.listjabatan_BUKOPIN, { key: $scope.CIFInvestor.Position }, true)[0];\r\n\r\n if ($scope.CIFInvestor.NatureOfBusiness != null)\r\n $scope.CIFInvestor.NatureOfBusiness = $filter('filter')($scope.listnature_BUKOPIN, { key: $scope.CIFInvestor.NatureOfBusiness }, true)[0];\r\n }\r\n else {\r\n\r\n $scope.OPBOTHER.occupation = $scope.CIFInvestor.Occupation;\r\n $scope.OPBOTHER.occupationText = $scope.CIFInvestor.OccupationText;\r\n $scope.OPBOTHER.position = $scope.CIFInvestor.Position;\r\n $scope.OPBOTHER.positionText = $scope.CIFInvestor.PositionText;\r\n $scope.OPBOTHER.business = $scope.CIFInvestor.NatureOfBusiness;\r\n $scope.OPBOTHER.businessText = $scope.CIFInvestor.NatureOfBusinessText;\r\n }\r\n }\r\n\r\n if ($scope.CIFInvestor.SpouseCompanyCity == '')\r\n $scope.CIFInvestor.SpouseCompanyCity = 0;\r\n\r\n if ($scope.CIFInvestor.CompanyCity == '')\r\n $scope.CIFInvestor.CompanyCity = 0;\r\n\r\n if ($scope.CIFInvestor.FundSource) {\r\n\r\n $scope.selectedFundSource = [];\r\n let temp = $scope.CIFInvestor.FundSource.split(',');\r\n\r\n for (var i = 0; i < temp.length; i++) {\r\n\r\n $scope.selectedFundSource.push(Number(temp[i]));\r\n }\r\n }\r\n\r\n if ($scope.CIFInvestor.SpouseFundSource) {\r\n\r\n $scope.selectedSpouseFundSource = [];\r\n let temp = $scope.CIFInvestor.SpouseFundSource.split(',');\r\n\r\n for (var i = 0; i < temp.length; i++) {\r\n\r\n $scope.selectedSpouseFundSource.push(Number(temp[i]));\r\n }\r\n }\r\n\r\n if ($scope.CIFInvestor.SpouseOccupation == 0)\r\n $scope.CIFInvestor.SpouseOccupation = '';\r\n\r\n\r\n if ($scope.CIFInvestor.Occupation == 0 || $scope.CIFInvestor.Occupation == null)\r\n $scope.CIFInvestor.Occupation = null;\r\n\r\n if ($scope.CIFInvestor.business == 0 || $scope.CIFInvestor.business == null)\r\n $scope.CIFInvestor.NatureOfBusiness = null;\r\n\r\n if ($scope.CIFInvestor.SpouseIncomePerAnnum == 0)\r\n $scope.CIFInvestor.SpouseIncomePerAnnum = '';\r\n\r\n if ($scope.CIFInvestor.IncomePerAnnum == 0)\r\n $scope.CIFInvestor.IncomePerAnnum = '';\r\n\r\n if ($scope.CIFInvestor.SpouseIncomeExtraPerAnnum == 0)\r\n $scope.CIFInvestor.SpouseIncomeExtraPerAnnum = '';\r\n\r\n\r\n if ($scope.CIFInvestor.IncomeExtraPerAnnum == null)\r\n $scope.CIFInvestor.IncomeExtraPerAnnum = 0;\r\n\r\n if ($scope.CIFInvestor.CIFInvestorBeneficiaryOwnerInvestmentObjectives == null)\r\n $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerInvestmentObjectives = 0;\r\n\r\n if (data.data.d.CIFInvestorBeneficiaryOwnerBirthDate)\r\n $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerBirthDate = new Date(data.data.d.CIFInvestorBeneficiaryOwnerBirthDate);\r\n\r\n if (data.data.d.CIFInvestorBeneficiaryOwnerCity) {\r\n $scope.IDCardCitySelected = $filter('filter')($scope.ListProvinceCity, { CIFProvinceCityNID: data.data.d.CIFInvestorBeneficiaryOwnerCity }, true)[0];\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFKecamatanByCityNID?CIFCityNID=' + data.data.d.CIFInvestorBeneficiaryOwnerCity,\r\n cache: true,\r\n }).then(function (dataKecamatan) {\r\n $scope.ListKecamatanBO = dataKecamatan.data.d;\r\n if ($scope.ListKecamatanBO)\r\n $scope.ListKelurahanBO = $filter('filter')($scope.ListKecamatanBO, { Kecamatan: $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerKecamatan }, true);\r\n }, function (error) { });\r\n }\r\n\r\n if (data.data.d.CIFInvestorBeneficiaryOwnerCompanyCity) {\r\n $scope.CompanyCityBOSelected = $filter('filter')($scope.ListProvinceCity, { CIFProvinceCityNID: data.data.d.CIFInvestorBeneficiaryOwnerCompanyCity }, true)[0];\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFKecamatanByCityNID?CIFCityNID=' + data.data.d.CIFInvestorBeneficiaryOwnerCompanyCity,\r\n cache: true,\r\n }).then(function (dataKecamatan) {\r\n $scope.ListKecamatanCompanyBO = dataKecamatan.data.d;\r\n if ($scope.ListKecamatanCompanyBO)\r\n $scope.ListKelurahanCompanyBO = $filter('filter')($scope.ListKecamatanCompanyBO, { Kecamatan: $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerCompanyAddress2 }, true);\r\n\r\n\r\n }, function (error) { });\r\n }\r\n\r\n if ($scope.CIFInvestor.CIFInvestorBeneficiaryOwnerFundSource) {\r\n $scope.CIFInvestorBeneficiaryOwnerFundSource = [];\r\n let temp = $scope.CIFInvestor.CIFInvestorBeneficiaryOwnerFundSource.split(',');\r\n for (var i = 0; i < temp.length; i++) {\r\n $scope.selectedFundSourceBO.push(Number(temp[i]));\r\n }\r\n }\r\n\r\n $scope.NationalitySelected = $filter('filter')($scope.ListNationality, { CIFCountryNID: data.data.d.CIFInvestorBeneficiaryOwnerNationality }, true)[0];\r\n\r\n $scope.changeSpouseMandatory();\r\n $scope.OPSPOUSE.occupation = $scope.CIFInvestor.SpouseOccupation;\r\n $scope.OPSPOUSE.occupationText = $scope.CIFInvestor.SpouseOccupationText;\r\n $scope.OPSPOUSE.position = $scope.CIFInvestor.SpousePosition;\r\n $scope.OPSPOUSE.business = $scope.CIFInvestor.SpouseNatureOfBusiness;\r\n } // END IF data.data.d\r\n }, function (error) { });\r\n });\r\n\r\n $scope.submit = function () {\r\n console.log('submit');\r\n //setup upload data\r\n if ($scope.npwpPhoto)\r\n $scope.CIFInvestor.NPWPFile = $scope.npwpPhoto.replace(\"data:image/jpeg;base64,\", \"\");\r\n\r\n if ($scope.othersPhoto)\r\n $scope.CIFInvestor.OthersFile = $scope.othersPhoto.replace(\"data:image/jpeg;base64,\", \"\");\r\n\r\n if ($scope.parentPhoto)\r\n $scope.CIFInvestor.ParentFile = $scope.parentPhoto.replace(\"data:image/jpeg;base64,\", \"\");\r\n\r\n $scope.prepareData();\r\n if ($scope.validation) {\r\n var urlsvc = '/service/client.svc/SaveCIF'; // 1\r\n var preconfirmtranslate = \"submitCif3\"; // 2\r\n var postData = { cifdata: $scope.CIFInvestor } // 3\r\n var method = \"POST\"; // 4\r\n $scope.PostGetSwal(preconfirmtranslate, urlsvc, postData, method, function (issuccess) {\r\n if (issuccess) {\r\n\r\n //if ($scope.CIFInvestor.QuestionRDN == 1) {\r\n // $http({\r\n // method: 'GET',\r\n // url: '/service/client.svc/AMLChecking?CIFNID=' + $scope.CIFInvestor.NID,\r\n // }).then(function (data) {\r\n // console.log(\"AMLChecking\", data);\r\n // console.log(\"AMLChecking\", data.data.d.result);\r\n\r\n // }, function (error) { });\r\n //}\r\n\r\n Swal.fire({\r\n title: \"Preparing next step...\",\r\n //text: \"Please wait\",\r\n html: `Please wait `,\r\n icon: \"info\",\r\n showConfirmButton: false,\r\n showCancelButton: false,\r\n allowOutsideClick: false,\r\n didOpen: () => {\r\n if ($scope.CIFInvestor.QuestionRDN == 1 || $scope.CIFInvestor.QuestionRDN == 3) {\r\n return $http({\r\n method: 'GET',\r\n url: '/service/client.svc/AMLChecking?CIFNID=' + $scope.CIFInvestor.NID,\r\n }).then(function (response) {\r\n console.log(\"AMLChecking\", response);\r\n console.log(\"AMLChecking\", response.data.d.result);\r\n Swal.close();\r\n $window.location.href = \"#/cif/data-pernyataan\";\r\n }, function (error) {\r\n console.log(\"Error in AMLChecking:\", error);\r\n Swal.close(); // Close the Swal in case of an error too\r\n });\r\n }\r\n else if ($scope.CIFInvestor.QuestionRDN == 2) {\r\n return $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetRiskPermata?CIFNID=' + $scope.CIFInvestor.NID,\r\n }).then(function (response) {\r\n console.log(\"RiskPermata\", response);\r\n console.log(\"RiskPermata\", response.data.d.result);\r\n Swal.close();\r\n $window.location.href = \"#/cif/data-pernyataan\";\r\n }, function (error) {\r\n console.log(\"Error in RiskPermata:\", error);\r\n Swal.close(); // Close the Swal in case of an error too\r\n });\r\n }\r\n else {\r\n Swal.close();\r\n $window.location.href = \"#/cif/data-pernyataan\";\r\n }\r\n }\r\n // timer: 10000,\r\n //}).then(data => {\r\n // $window.location.href = \"#/cif/data-pernyataan\";\r\n })\r\n }\r\n\r\n });\r\n }\r\n }\r\n }]);","app.controller('CIF4-CTRL', ['$scope', '$window', '$rootScope', '$uibModal', '$q', 'deviceDetector' ,'$http',\r\n function ($scope, $window, $rootScope, $uibModal, $q , deviceDetector, $http) {\r\n\r\n $scope.allowedExt = ['.jpg', '.jpeg', '.bmp', '.png'];\r\n $scope.agree1 = false;\r\n $scope.agree2 = false;\r\n $scope.agree3 = false;\r\n $scope.agree4 = false;\r\n\r\n $scope.device = deviceDetector;\r\n $scope.isMobile = $scope.device.isMobile();\r\n\r\n $scope.filenameKTP = \"\";\r\n $scope.fileKTP = \"\";\r\n $scope.fileKTPext = \"\";\r\n $scope.KTPFile = [];\r\n\r\n $scope.filenameNPWP = \"\";\r\n $scope.fileNPWP = \"\";\r\n $scope.fileNPWPext = \"\";\r\n $scope.NPWPile = [];\r\n\r\n $scope.filenameFotoDiri = \"\";\r\n $scope.fileFotoDiri = \"\";\r\n $scope.fileFotoDiriext = \"\";\r\n $scope.fotodiriFile = [];\r\n\r\n $scope.filenameTandaTangan = \"\";\r\n $scope.fileTandaTangan = \"\";\r\n $scope.fileTandaTanganext = \"\";\r\n $scope.tandatanganFile = [];\r\n\r\n $scope.filenameOthers = \"\";\r\n $scope.fileOthers = \"\";\r\n $scope.fileOthersext = \"\";\r\n $scope.OthersFile = [];\r\n\r\n $scope.filenameParent = \"\";\r\n $scope.fileParent = \"\";\r\n $scope.fileParentext = \"\";\r\n $scope.ParentFile = [];\r\n\r\n $scope.openCamera = function (tipe) {\r\n let message = tipe;\r\n let url = 'ModalCamera.html';\r\n let ctrl = 'CameraController';\r\n\r\n\r\n if ($scope.device.isMobile()) {\r\n //url = 'ModalBrowse.html';\r\n //ctrl = 'BrowseController';\r\n //$scope.append = 'data:image/png;base64,';\r\n }\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n templateUrl: url,\r\n controller: ctrl,\r\n size: 'md',\r\n resolve: {\r\n items: function () {\r\n return message;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function (resolvedResponse) {\r\n //console.log('ktp',resolvedResponse);\r\n if (resolvedResponse) {\r\n if (tipe == \"KTP\")\r\n $scope.ktpPhoto = resolvedResponse;\r\n else if (tipe == \"NPWP\")\r\n $scope.npwpPhoto = resolvedResponse;\r\n else if (tipe == \"SELFIE\")\r\n $scope.selfiePhoto = resolvedResponse;\r\n else if (tipe == \"OTHERS\")\r\n $scope.othersPhoto = resolvedResponse;\r\n else if (tipe == \"PARENT\")\r\n $scope.parentPhoto = resolvedResponse;\r\n else\r\n $scope.ttdPhoto = resolvedResponse;\r\n }\r\n }, function () { });\r\n };\r\n\r\n\r\n\r\n $scope.remove = function (tipe) {\r\n if (tipe == \"KTP\")\r\n $scope.ktpPhoto = '';\r\n else if (tipe == \"SELFIE\")\r\n $scope.selfiePhoto = '';\r\n else if (tipe == \"NPWP\")\r\n $scope.npwpPhoto = '';\r\n else if (tipe == \"OTHERS\")\r\n $scope.othersPhoto = '';\r\n else if (tipe == \"PARENT\")\r\n $scope.parentPhoto = '';\r\n else\r\n $scope.ttdPhoto = '';\r\n };\r\n\r\n\r\n $scope.selectKTP = function (files) {\r\n\r\n $scope.KTPFile = files;\r\n let allowed = true;\r\n var reader = new FileReader();\r\n\r\n reader.onload = function (e) {\r\n\r\n if (allowed) \r\n $scope.fileKTP = btoa(e.target.result.toString());\r\n };\r\n\r\n reader.readAsBinaryString(files[0]);\r\n $scope.fileKTPext = files[0].name.substr(files[0].name.lastIndexOf('.'));\r\n\r\n if ($scope.allowedExt.indexOf($scope.fileKTPext.toLowerCase()) < 0) {\r\n\r\n allowed = false;\r\n $scope.fileKTPext = '';\r\n $scope.KTPFile = '';\r\n alert(\"Extensi yang dibolehkan : \" + $scope.allowedExt);\r\n } else {\r\n\r\n $scope.filenameKTP = files[0].name;\r\n }\r\n };\r\n\r\n $scope.selectNPWP = function (files) {\r\n\r\n $scope.NPWPFile = files;\r\n let allowed = true;\r\n var reader = new FileReader();\r\n\r\n reader.onload = function (e) {\r\n\r\n if (allowed) \r\n $scope.fileNPWP = btoa(e.target.result.toString());\r\n };\r\n\r\n reader.readAsBinaryString(files[0]);\r\n $scope.fileNPWPext = files[0].name.substr(files[0].name.lastIndexOf('.'));\r\n\r\n if ($scope.allowedExt.indexOf($scope.fileNPWPext.toLowerCase()) < 0) {\r\n\r\n allowed = false;\r\n $scope.fileNPWPext = '';\r\n $scope.NPWPFile = '';\r\n alert(\"Extensi yang dibolehkan : \" + $scope.allowedExt);\r\n } else {\r\n\r\n $scope.filenameNPWP = files[0].name;\r\n }\r\n };\r\n\r\n $scope.selectFotoDiri = function (files) {\r\n\r\n $scope.fotodiriFile = files;\r\n let allowed = true;\r\n var reader = new FileReader();\r\n\r\n reader.onload = function (e) {\r\n\r\n if (allowed)\r\n $scope.fileFotoDiri = btoa(e.target.result.toString());\r\n };\r\n\r\n reader.readAsBinaryString(files[0]);\r\n $scope.fileFotoDiriext = files[0].name.substr(files[0].name.lastIndexOf('.'));\r\n\r\n if ($scope.allowedExt.indexOf($scope.fileFotoDiriext.toLowerCase()) < 0) {\r\n\r\n allowed = false;\r\n $scope.fileFotoDiriext = '';\r\n $scope.fotodiriFile = '';\r\n alert(\"Extensi yang dibolehkan : \" + $scope.allowedExt);\r\n } else {\r\n\r\n $scope.filenameFotoDiri = files[0].name;\r\n }\r\n };\r\n\r\n $scope.selectTandaTangan = function (files) {\r\n\r\n $scope.tandatanganFile = files;\r\n let allowed = true;\r\n var reader = new FileReader();\r\n\r\n reader.onload = function (e) {\r\n\r\n if (allowed)\r\n $scope.fileTandaTangan = btoa(e.target.result.toString());\r\n };\r\n\r\n reader.readAsBinaryString(files[0]);\r\n $scope.fileTandaTanganext = files[0].name.substr(files[0].name.lastIndexOf('.'));\r\n if ($scope.allowedExt.indexOf($scope.fileTandaTanganext.toLowerCase()) < 0) {\r\n\r\n allowed = false;\r\n $scope.fileTandaTanganext = '';\r\n $scope.tandatanganFile = '';\r\n alert(\"Extensi yang dibolehkan : \" + $scope.allowedExt);\r\n } else {\r\n\r\n $scope.filenameTandaTangan = files[0].name;\r\n }\r\n };\r\n\r\n $scope.selectParent = function (files) {\r\n\r\n $scope.ParentFile = files;\r\n let allowed = true;\r\n var reader = new FileReader();\r\n\r\n reader.onload = function (e) {\r\n\r\n if (allowed)\r\n $scope.fileParent = btoa(e.target.result.toString());\r\n };\r\n\r\n reader.readAsBinaryString(files[0]);\r\n $scope.fileParentext = files[0].name.substr(files[0].name.lastIndexOf('.'));\r\n if ($scope.allowedExt.indexOf($scope.fileParentext.toLowerCase()) < 0) {\r\n\r\n allowed = false;\r\n $scope.filParentext = '';\r\n $scope.ParentFile = '';\r\n alert(\"Extensi yang dibolehkan : \" + $scope.allowedExt);\r\n } else {\r\n\r\n $scope.filenameParent = files[0].name;\r\n }\r\n };\r\n\r\n $scope.selectOthers = function (files) {\r\n\r\n $scope.OthersFile = files;\r\n let allowed = true;\r\n var reader = new FileReader();\r\n\r\n reader.onload = function (e) {\r\n\r\n if (allowed)\r\n $scope.fileOthers = btoa(e.target.result.toString());\r\n };\r\n\r\n reader.readAsBinaryString(files[0]);\r\n $scope.fileOthersext = files[0].name.substr(files[0].name.lastIndexOf('.'));\r\n if ($scope.allowedExt.indexOf($scope.fileOthersext.toLowerCase()) < 0) {\r\n\r\n allowed = false;\r\n $scope.fileOthersext = '';\r\n $scope.OthersFile = '';\r\n alert(\"Extensi yang dibolehkan : \" + $scope.allowedExt);\r\n } else {\r\n\r\n $scope.filenameOthers = files[0].name;\r\n }\r\n };\r\n\r\n\r\n $scope.clickRemoveKTP = function (file, event, key) {\r\n\r\n event.preventDefault();\r\n $scope.fileKTP = \"\";\r\n $scope.filenameKTP = \"\";\r\n $scope.fileKTPext = \"x\";\r\n $scope.KTPFile.splice(key, 1);\r\n $scope.KTPFile = [];\r\n return null;\r\n };\r\n\r\n $scope.clickRemoveOthers = function (file, event, key) {\r\n\r\n event.preventDefault();\r\n $scope.fileOthers = \"\";\r\n $scope.filenameOthers = \"\";\r\n $scope.fileOthersext = \"x\";\r\n $scope.OthersFile.splice(key, 1);\r\n $scope.OthersFile = [];\r\n return null;\r\n };\r\n\r\n $scope.clickRemoveParent = function (file, event, key) {\r\n\r\n event.preventDefault();\r\n $scope.fileParent = \"\";\r\n $scope.filenameParent = \"\";\r\n $scope.fileParentext = \"x\";\r\n $scope.ParentFile.splice(key, 1);\r\n $scope.ParentFile = [];\r\n return null;\r\n };\r\n\r\n\r\n $scope.clickRemoveNPWP = function (file, event, key) {\r\n\r\n event.preventDefault();\r\n $scope.fileNPWP = \"\";\r\n $scope.filenameNPWP = \"\";\r\n $scope.fileNPWPext = \"x\";\r\n $scope.NPWPFile.splice(key, 1);\r\n $scope.NPWPFile = [];\r\n return null;\r\n };\r\n\r\n $scope.clickRemoveFotoDiri = function (file, event, key) {\r\n\r\n event.preventDefault();\r\n $scope.fileFotoDiri = \"\";\r\n $scope.filenameFotoDiri = \"\";\r\n $scope.fileFotoDiriext = \"x\";\r\n $scope.fotodiriFile.splice(key, 1);\r\n $scope.fotodiriFile = [];\r\n\r\n return null;\r\n };\r\n\r\n $scope.clickRemoveTandaTangan = function (file, event, key) {\r\n\r\n event.preventDefault();\r\n $scope.fileTandaTangan = \"\";\r\n $scope.filenameTandaTangan = \"\";\r\n $scope.fileTandaTanganext = \"x\";\r\n $scope.tandatanganFile.splice(key, 1);\r\n $scope.tandatanganFile = [];\r\n return null;\r\n };\r\n\r\n $scope.validateAgreement = function () {\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == 1) {\r\n\r\n if (!$scope.agree1 || !$scope.agree2) {\r\n\r\n var SWALtranslate = $scope.SWALtranslate('aggreement1');\r\n $scope.disclaimerBank = false;\r\n }\r\n\r\n if (!$scope.agree1 && $scope.agree2) {\r\n\r\n var SWALtranslate = $scope.SWALtranslate('aggreement2');\r\n $scope.disclaimerBank = false;\r\n }\r\n\r\n if ($scope.agree1 && !$scope.agree2) {\r\n\r\n var SWALtranslate = $scope.SWALtranslate('aggreement3');\r\n $scope.disclaimerBank = false;\r\n }\r\n\r\n if ($scope.agree1 && $scope.agree2 && $scope.agree3) {\r\n\r\n $scope.disclaimerBank = true;\r\n return\r\n }\r\n $rootScope.GlobalAlert('error', \"\", SWALtranslate.title)\r\n }\r\n }\r\n\r\n $scope.validateAgreementRDNBCA = function () {\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == 1) {\r\n\r\n if (!$scope.agree1) {\r\n\r\n $scope.disclaimerRDNBCA = false;\r\n $scope.showAgreement(1);\r\n }\r\n }\r\n }\r\n\r\n $scope.validateAgreementTAPRESBCA = function () {\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == 1) {\r\n\r\n if (!$scope.agree2) {\r\n\r\n $scope.disclaimerTAPRESBCA = false;\r\n $scope.showAgreement(2);\r\n }\r\n }\r\n }\r\n\r\n $scope.validateAgreementDEKLARASI = function () {\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == 1) {\r\n\r\n if (!$scope.agree3) {\r\n\r\n $scope.disclaimerDEKLARASI = false;\r\n $scope.showAgreement(3);\r\n }\r\n }\r\n }\r\n\r\n $scope.modalMessage = {\r\n\r\n message: '',\r\n param: {}\r\n };\r\n\r\n $scope.resetSign = function () {\r\n\r\n $scope.finishSignature = false;\r\n $scope.clear();\r\n };\r\n\r\n $scope.completeSign = function () {\r\n\r\n $scope.signature = $scope.accept();\r\n\r\n if ($scope.signature.dataUrl && !$scope.signature.isEmpty) {\r\n\r\n $scope.finishSignature = true;\r\n $scope.CIFInvestor.TandaTanganFile = $scope.signature.dataUrl.substr($scope.signature.dataUrl.lastIndexOf(',') + 1);\r\n\r\n } else {\r\n\r\n $scope.finishSignature = false;\r\n }\r\n };\r\n\r\n $scope.showAgreement = function (number) {\r\n\r\n let htmlName = 'template/BCAagereement' + number + '.html';\r\n var modalInstance = $uibModal\r\n .open({\r\n animation: true,\r\n templateUrl: htmlName,\r\n controller: 'BCAAgreementCtrl',\r\n size: 'lg',\r\n backdrop: 'static',\r\n resolve: {\r\n\r\n agreementNumber: function () {\r\n\r\n return number;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (response, agree) {\r\n\r\n if (response == 'accept') {\r\n\r\n if (number == 1) {\r\n\r\n $scope.agree1 = true;\r\n $scope.disclaimerRDNBCA = true;\r\n }\r\n\r\n if (number == 2) {\r\n\r\n $scope.agree2 = true;\r\n $scope.disclaimerTAPRESBCA = true;\r\n }\r\n\r\n if (number == 3) {\r\n\r\n $scope.agree3 = true;\r\n $scope.disclaimerDEKLARASI = true;\r\n }\r\n\r\n if ($scope.disclaimerRDNBCA == true && $scope.disclaimerTAPRESBCA == true && $scope.disclaimerDEKLARASI == true)\r\n $scope.disclaimerBank = true;\r\n }\r\n }, function () { });\r\n };\r\n\r\n var allPromise = $q.all([\r\n $scope.retrieveSessions()\r\n ]);\r\n\r\n allPromise.then(function () {\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/getCIF',\r\n }).then(function (data) {\r\n\r\n //if (data.data.d.Email != null) {\r\n if (data.data.d != null) {\r\n var obj = data.data.d;\r\n $scope.CIFInvestor = data.data.d;\r\n $scope.CIFInvestor.Stage = 4;\r\n $scope.filenameKTP = $scope.CIFInvestor.KTPFile;\r\n $scope.filenameFotoDiri = $scope.CIFInvestor.SelfieFile;\r\n $scope.filenameTandaTangan = $scope.CIFInvestor.TandaTanganFile;\r\n $scope.filenameNPWP = $scope.CIFInvestor.NPWPFile;\r\n $scope.filenameOthers = $scope.CIFInvestor.OthersFile;\r\n $scope.filenameParent = $scope.CIFInvestor.ParentFile;\r\n if ($scope.filenameKTP) {\r\n\r\n if (!$scope.filenameKTP.endsWith(\".pdf\")) {\r\n $http({\r\n method: 'GET',\r\n url: 'FileKYC/' + $scope.filenameKTP,\r\n responseType: 'blob',\r\n\r\n }).then(function (response) {\r\n if (response.data) {\r\n var reader = new FileReader();\r\n reader.readAsDataURL(response.data);\r\n reader.onloadend = function () {\r\n $scope.ktpPhoto = reader.result;\r\n $scope.showKTP = false;\r\n }\r\n\r\n }\r\n //$scope.KTPFile = [];\r\n //$scope.KTPFile.push(response.data);\r\n }, function (response) {\r\n $scope.saveErrors = true;\r\n $scope.errorMessages = {\r\n text: 'File tidak ketemu atau terhapus dari server!!!',\r\n };\r\n $timeout(function () {\r\n $scope.saveErrors = false;\r\n }, 3000);\r\n });\r\n }\r\n };\r\n if ($scope.filenameNPWP) {\r\n\r\n if (!$scope.filenameNPWP.endsWith(\".pdf\")) {\r\n $http({\r\n method: 'GET',\r\n url: 'FileKYC/' + $scope.filenameNPWP,\r\n responseType: 'blob',\r\n\r\n }).then(function (response) {\r\n if (response.data) {\r\n var reader2 = new FileReader();\r\n reader2.readAsDataURL(response.data);\r\n reader2.onloadend = function () {\r\n $scope.npwpPhoto = reader2.result;\r\n }\r\n\r\n }\r\n //$scope.NPWPFile = [];\r\n //$scope.NPWPFile.push(response.data);\r\n }, function (response) {\r\n $scope.saveErrors = true;\r\n $scope.errorMessages = {\r\n text: 'File tidak ketemu atau terhapus dari server!!!',\r\n };\r\n $timeout(function () {\r\n $scope.saveErrors = false;\r\n }, 3000);\r\n });\r\n }\r\n };\r\n if ($scope.filenameFotoDiri) {\r\n\r\n if (!$scope.filenameFotoDiri.endsWith(\".pdf\")) {\r\n $http({\r\n method: 'GET',\r\n url: 'FileKYC/' + $scope.filenameFotoDiri,\r\n responseType: 'blob',\r\n }).then(function (response) {\r\n if (response.data) {\r\n var reader3 = new FileReader();\r\n reader3.readAsDataURL(response.data);\r\n reader3.onloadend = function () {\r\n $scope.selfiePhoto = reader3.result;\r\n }\r\n\r\n }\r\n //$scope.fotodiriFile = [];\r\n //$scope.fotodiriFile.push(response.data);\r\n }, function (response) {\r\n $scope.saveErrors = true;\r\n $scope.errorMessages = {\r\n text: 'File tidak ketemu atau terhapus dari server!!!',\r\n };\r\n $timeout(function () {\r\n $scope.saveErrors = false;\r\n }, 3000);\r\n });\r\n }\r\n };\r\n if ($scope.filenameTandaTangan) {\r\n\r\n if (!$scope.filenameTandaTangan.endsWith(\".pdf\")) {\r\n $http({\r\n method: 'GET',\r\n url: 'FileKYC/' + $scope.filenameTandaTangan,\r\n responseType: 'blob',\r\n\r\n }).then(function (response) {\r\n if (response.data) {\r\n var reader4 = new FileReader();\r\n reader4.readAsDataURL(response.data);\r\n reader4.onloadend = function () {\r\n $scope.ttdPhoto = reader4.result;\r\n }\r\n\r\n }\r\n //$scope.tandatanganFile = [];\r\n //$scope.tandatanganFile.push(response.data);\r\n }, function (response) {\r\n $scope.saveErrors = true;\r\n $scope.errorMessages = {\r\n text: 'File tidak ketemu atau terhapus dari server!!!',\r\n };\r\n $timeout(function () {\r\n $scope.saveErrors = false;\r\n }, 3000);\r\n });\r\n }\r\n };\r\n\r\n if ($scope.filenameOthers) {\r\n\r\n if (!$scope.filenameOthers.endsWith(\".pdf\")) {\r\n $http({\r\n method: 'GET',\r\n url: 'FileKYC/' + $scope.filenameOthers,\r\n responseType: 'blob',\r\n\r\n }).then(function (response) {\r\n if (response.data) {\r\n var reader5 = new FileReader();\r\n reader5.readAsDataURL(response.data);\r\n reader5.onloadend = function () {\r\n $scope.othersPhoto = reader5.result;\r\n }\r\n\r\n }\r\n //$scope.tandatanganFile = [];\r\n //$scope.tandatanganFile.push(response.data);\r\n }, function (response) {\r\n $scope.saveErrors = true;\r\n $scope.errorMessages = {\r\n text: 'File tidak ketemu atau terhapus dari server!!!',\r\n };\r\n $timeout(function () {\r\n $scope.saveErrors = false;\r\n }, 3000);\r\n });\r\n }\r\n };\r\n\r\n if ($scope.filenameParent) {\r\n\r\n if (!$scope.filenameParent.endsWith(\".pdf\")) {\r\n $http({\r\n method: 'GET',\r\n url: 'FileKYC/' + $scope.filenameParent,\r\n responseType: 'blob',\r\n\r\n }).then(function (response) {\r\n if (response.data) {\r\n var reader6 = new FileReader();\r\n reader6.readAsDataURL(response.data);\r\n reader6.onloadend = function () {\r\n $scope.parentPhoto = reader6.result;\r\n }\r\n\r\n }\r\n //$scope.tandatanganFile = [];\r\n //$scope.tandatanganFile.push(response.data);\r\n }, function (response) {\r\n $scope.saveErrors = true;\r\n $scope.errorMessages = {\r\n text: 'File tidak ketemu atau terhapus dari server!!!',\r\n };\r\n $timeout(function () {\r\n $scope.saveErrors = false;\r\n }, 3000);\r\n });\r\n }\r\n };\r\n\r\n if ($scope.CIFInvestor.IsFinished == 1) {\r\n\r\n $scope.disclaimerBank = true;\r\n $scope.disclaimerRDNBCA = true;\r\n $scope.disclaimerTAPRESBCA = true;\r\n $scope.disclaimerPTMKES = true;\r\n $scope.disclaimerDEKLARASI = true;\r\n }\r\n\r\n Swal.fire({\r\n title: 'Upload Foto Dokumen Pendukung',\r\n text: 'Pastikan mengunggah dokumen pendukung sesuai dengan arahan yang diberikan',\r\n imageUrl: 'img/guidance/petunjuk.png',\r\n imageAlt: 'E-KTP',\r\n width: '900px',\r\n animation: false\r\n });\r\n } // END IF data.data.d\r\n }, function (error) { });\r\n });\r\n\r\n $scope.submit = function () {\r\n\r\n //$scope.CIFInvestor.KTPFile = $scope.fileKTP;\r\n //$scope.CIFInvestor.SelfieFile = $scope.fileFotoDiri;\r\n //$scope.CIFInvestor.TandaTanganFile = $scope.fileTandaTangan;\r\n //$scope.CIFInvestor.NPWPFile = $scope.fileNPWP\r\n\r\n if ($scope.ktpPhoto)\r\n $scope.CIFInvestor.KTPFile = $scope.ktpPhoto.replace(\"data:image/jpeg;base64,\", \"\");\r\n\r\n if ($scope.npwpPhoto)\r\n $scope.CIFInvestor.NPWPFile = $scope.npwpPhoto.replace(\"data:image/jpeg;base64,\", \"\");\r\n\r\n if ($scope.selfiePhoto)\r\n $scope.CIFInvestor.SelfieFile = $scope.selfiePhoto.replace(\"data:image/jpeg;base64,\", \"\");\r\n\r\n if ($scope.othersPhoto)\r\n $scope.CIFInvestor.OthersFile = $scope.othersPhoto.replace(\"data:image/jpeg;base64,\", \"\");\r\n\r\n if ($scope.parentPhoto)\r\n $scope.CIFInvestor.ParentFile = $scope.parentPhoto.replace(\"data:image/jpeg;base64,\", \"\");\r\n\r\n if ($scope.ttdPhoto)\r\n $scope.CIFInvestor.TandaTanganFile = $scope.ttdPhoto.replace(\"data:image/jpeg;base64,\", \"\");\r\n $scope.CIFInvestor.IsFinished = 1;\r\n\r\n // dynamic sweet alert post to app.js\r\n // 1: set the url of post or get request\r\n // 2: set the sweet alert translation, refers to apps.js $scope.SWALtranslate() :preconfirm = confirmation dialog before post or get request\r\n // 3: set the postdata to $http request = GET : {} / POST { yourdata : data }\r\n // 4: set the method to $http request = \"GET\" / \"POST\"\r\n // 5: set the sweet alert translation, refers to apps.js $scope.SWALtranslate() :preconfirm = confirmation dialog before post or get request\r\n // 6: if success or no error returns then...\r\n var urlsvc = '/service/client.svc/SaveCIF'; // 1\r\n var postData = { cifdata: $scope.CIFInvestor } // 2\r\n var preconfirmtranslate = \"submitCif4\"; // 3\r\n var method = \"POST\" // 4\r\n $scope.PostGetSwal(preconfirmtranslate, urlsvc, postData, method, function (issuccess) {\r\n\r\n if (issuccess) { // 6\r\n //$window.location.href = \"#/cif/final\";\r\n $scope.signOut();\r\n var SWALtranslate = $scope.SWALtranslate('submitCif4success'); // 5\r\n\r\n $rootScope.GlobalAlert('success', SWALtranslate.title, SWALtranslate.message).then(function () {\r\n $scope.signOut();\r\n });\r\n }\r\n });\r\n }\r\n}]);","app.controller('CIF4-CTRL', ['$scope', '$window', '$q', '$filter', 'appFactory', '$http', '$uibModal', '$rootScope',\r\nfunction ($scope, $window, $q, $filter, appFactory, $http, $uibModal, $rootScope) {\r\n\r\n $scope.CIFInvestor = {}\r\n $scope.chkquestionfatca = true;\r\n $scope.chkquestion1 = false;\r\n $scope.chkquestion2 = false;\r\n $scope.chkquestion3 = false;\r\n $scope.chkquestion4 = false;\r\n //$scope.highrisk = true;\r\n\r\n let tmpdate = new Date();\r\n tmpdate.setFullYear(tmpdate.getFullYear() - 17);\r\n $scope.maxDate = new Date().toISOString().slice(0, 10);\r\n\r\n $scope.Rp = 'Rp.';\r\n var allPromise = $q.all([\r\n $scope.retrieveSessions(),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFLookup',\r\n }).then(function (data) {\r\n $scope.ListLookup = data.data.d;\r\n\r\n if ($scope.ListLookup) {\r\n\r\n $scope.ListInvestmentObjectives = $filter('filter')($scope.ListLookup, { CIFLookupID: 'InvestmentObjectives' }, true);\r\n $scope.ListRisk = $filter('filter')($scope.ListLookup, { CIFLookupID: 'Risk' }, true);\r\n }\r\n }, function (error) { }),\r\n\r\n ]);\r\n\r\n allPromise.then(function () {\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/getCIF',\r\n }).then(function (data) {\r\n\r\n if (data.data.d != null) {\r\n\r\n //var obj = data.data.d;\r\n $scope.CIFInvestor = data.data.d;\r\n $scope.CIFInvestor.Stage = 4;\r\n\r\n console.log(\"AutoNID\", $scope.CIFInvestor.NID);\r\n if ($scope.CIFInvestor.QuestionRDN == 2) {\r\n\r\n if (data.data.d.AssetInheritDate)\r\n $scope.CIFInvestor.AssetInheritDate = new Date(data.data.d.AssetInheritDate);\r\n\r\n $scope.highrisk = $scope.CIFInvestor.AML;\r\n\r\n //$http({\r\n // method: 'GET',\r\n // url: '/service/client.svc/GetRiskPermata?CIFNID=' + $scope.CIFInvestor.NID,\r\n //}).then(function (data) {\r\n // console.log(\"b\", data);\r\n // console.log(\"c\", data.data.d.result);\r\n // if (data.data.d.result == false) {\r\n // $scope.highrisk = true;\r\n // } else {\r\n // $scope.highrisk = false;\r\n // }\r\n // console.log(\"high\", $scope.highrisk);\r\n //}, function (error) { });\r\n }\r\n\r\n //if ($scope.CIFInvestor.QuestionRDN == 1) {\r\n // $http({\r\n // method: 'GET',\r\n // url: '/service/client.svc/AMLChecking?CIFNID=' + $scope.CIFInvestor.NID,\r\n // }).then(function (data) {\r\n // console.log(\"AMLChecking\", data);\r\n // console.log(\"AMLChecking\", data.data.d.result);\r\n\r\n // }, function (error) { });\r\n //}\r\n\r\n if ($scope.CIFInvestor.FATCA1 == 'Ya' || $scope.CIFInvestor.FATCA2 == 'Ya' || $scope.CIFInvestor.FATCA3 == 'Ya')\r\n $scope.chkquestionfatca = false;\r\n\r\n if ($scope.CIFInvestor.InvestmentObjectives == 0)\r\n $scope.CIFInvestor.InvestmentObjectives = '';\r\n\r\n }\r\n }, function (error) { });\r\n });\r\n\r\n $scope.validateAgreement = function () {\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == 1) {\r\n\r\n if (!$scope.agree1 || !$scope.agree2) {\r\n\r\n var SWALtranslate = $scope.SWALtranslate('aggreement1');\r\n $scope.disclaimerBank = false;\r\n }\r\n\r\n if (!$scope.agree1 && $scope.agree2) {\r\n\r\n var SWALtranslate = $scope.SWALtranslate('aggreement2');\r\n $scope.disclaimerBank = false;\r\n }\r\n\r\n if ($scope.agree1 && !$scope.agree2) {\r\n\r\n var SWALtranslate = $scope.SWALtranslate('aggreement3');\r\n $scope.disclaimerBank = false;\r\n }\r\n\r\n if ($scope.agree1 && $scope.agree2 && $scope.agree3) {\r\n\r\n $scope.disclaimerBank = true;\r\n return\r\n }\r\n $rootScope.GlobalAlert('error', \"\", SWALtranslate.title)\r\n } else {\r\n if (!$scope.agree3) {\r\n var SWALtranslate = $scope.SWALtranslate('aggreement4');\r\n $scope.disclaimerDEKLARASI = false;\r\n $scope.disclaimerBank = false;\r\n $rootScope.GlobalAlert('error', \"\", SWALtranslate.title)\r\n }\r\n }\r\n\r\n }\r\n\r\n $scope.validateAgreementRDNBCA = function () {\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == 1) {\r\n\r\n if (!$scope.agree1) {\r\n\r\n $scope.disclaimerRDNBCA = false;\r\n $scope.showAgreement(1);\r\n }\r\n }\r\n }\r\n\r\n $scope.validateAgreementTAPRESBCA = function () {\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == 1) {\r\n\r\n if (!$scope.agree2) {\r\n\r\n $scope.disclaimerTAPRESBCA = false;\r\n $scope.showAgreement(2);\r\n }\r\n }\r\n }\r\n\r\n $scope.validateAgreementDEKLARASI = function () {\r\n\r\n //if ($scope.CIFInvestor.QuestionRDN == 1) {\r\n\r\n if (!$scope.agree3) {\r\n\r\n $scope.disclaimerDEKLARASI = false;\r\n $scope.showAgreement(3);\r\n }\r\n //} \r\n }\r\n\r\n $scope.showAgreement = function (number) {\r\n\r\n let htmlName = 'template/BCAagereement' + number + '.html';\r\n var modalInstance = $uibModal\r\n .open({\r\n animation: true,\r\n templateUrl: htmlName,\r\n controller: 'BCAAgreementCtrl',\r\n size: 'lg',\r\n backdrop: 'static',\r\n resolve: {\r\n\r\n agreementNumber: function () {\r\n\r\n return number;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (response, agree) {\r\n\r\n if (response == 'accept') {\r\n\r\n if (number == 1) {\r\n\r\n $scope.agree1 = true;\r\n $scope.disclaimerRDNBCA = true;\r\n }\r\n\r\n if (number == 2) {\r\n\r\n $scope.agree2 = true;\r\n $scope.disclaimerTAPRESBCA = true;\r\n }\r\n\r\n if (number == 3) {\r\n\r\n $scope.agree3 = true;\r\n $scope.disclaimerDEKLARASI = true;\r\n\r\n if ($scope.CIFInvestor.QuestionRDN != 1)\r\n $scope.disclaimerBank = true;\r\n\r\n }\r\n\r\n if ($scope.disclaimerRDNBCA == true && $scope.disclaimerTAPRESBCA == true && $scope.disclaimerDEKLARASI == true)\r\n $scope.disclaimerBank = true;\r\n }\r\n }, function () { });\r\n };\r\n\r\n $scope.prepareData = function () {\r\n\r\n if ($scope.chkquestion1) {\r\n\r\n if ($scope.chkquestion1 = true) {\r\n\r\n $scope.CIFInvestor.Question1 = 'Ya';\r\n $scope.CIFInvestor.Question1_Text = '';\r\n }\r\n }\r\n\r\n if ($scope.chkquestion2) {\r\n\r\n if ($scope.chkquestion2 = true) {\r\n\r\n $scope.CIFInvestor.Question2 = 'Ya';\r\n $scope.CIFInvestor.Question2_Text = '';\r\n }\r\n }\r\n\r\n if ($scope.chkquestion3) {\r\n\r\n if ($scope.chkquestion1 = true) {\r\n\r\n $scope.CIFInvestor.Question3 = 'Ya';\r\n $scope.CIFInvestor.Question3_Text = '';\r\n }\r\n }\r\n\r\n if ($scope.chkquestion4) {\r\n\r\n if ($scope.chkquestion4 = true) {\r\n\r\n $scope.CIFInvestor.Question4 = 'Ya';\r\n $scope.CIFInvestor.Question4_Text = '';\r\n }\r\n }\r\n\r\n if ($scope.chkquestion5) {\r\n\r\n if ($scope.chkquestion5 = true) {\r\n\r\n $scope.CIFInvestor.Question5 = 'Ya';\r\n $scope.CIFInvestor.Question5_Text = '';\r\n }\r\n }\r\n\r\n if ($scope.chkquestion6) {\r\n\r\n if ($scope.chkquestion6 = true) {\r\n\r\n $scope.CIFInvestor.Question6 = 'Ya';\r\n $scope.CIFInvestor.Question6_Text = '';\r\n }\r\n }\r\n\r\n if ($scope.chkquestionfatca) {\r\n\r\n if ($scope.chkquestionfatca = true) {\r\n\r\n $scope.CIFInvestor.FATCA1 = 'Tidak';\r\n $scope.CIFInvestor.FATCA2 = 'Tidak';\r\n $scope.CIFInvestor.FATCA3 = 'Tidak';\r\n }\r\n }\r\n\r\n if ($scope.CIFInvestor.QuestionRDN == 2) {\r\n if (typeof $scope.CIFInvestor.AssetTotalCash == \"string\") {\r\n $scope.CIFInvestor.AssetTotalCash = Number($scope.CIFInvestor.AssetTotalCash.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.AssetTotalInvestment == \"string\") {\r\n $scope.CIFInvestor.AssetTotalInvestment = Number($scope.CIFInvestor.AssetTotalInvestment.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.AssetTotalProperty == \"string\") {\r\n $scope.CIFInvestor.AssetTotalProperty = Number($scope.CIFInvestor.AssetTotalProperty.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.AssetTotalOther == \"string\") {\r\n $scope.CIFInvestor.AssetTotalOther = Number($scope.CIFInvestor.AssetTotalOther.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.AssetTotalLegacy == \"string\") {\r\n $scope.CIFInvestor.AssetTotalLegacy = Number($scope.CIFInvestor.AssetTotalLegacy.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.JobStockBusinessInv == \"string\") {\r\n $scope.CIFInvestor.JobStockBusinessInv = Number($scope.CIFInvestor.JobStockBusinessInv.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.JobIncomeBonus == \"string\") {\r\n $scope.CIFInvestor.JobIncomeBonus = Number($scope.CIFInvestor.JobIncomeBonus.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.JobPension == \"string\") {\r\n $scope.CIFInvestor.JobPension = Number($scope.CIFInvestor.JobPension.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.BzOwnershipPct == \"string\") {\r\n $scope.CIFInvestor.BzOwnershipPct = Number($scope.CIFInvestor.BzOwnershipPct.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.BzProfitLoss == \"string\") {\r\n $scope.CIFInvestor.BzProfitLoss = Number($scope.CIFInvestor.BzProfitLoss.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.BzTotalEmployee == \"string\") {\r\n $scope.CIFInvestor.BzTotalEmployee = Number($scope.CIFInvestor.BzTotalEmployee.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.ProfIncome == \"string\") {\r\n $scope.CIFInvestor.ProfIncome = Number($scope.CIFInvestor.ProfIncome.replaceAll(\".\", \"\"));\r\n }\r\n\r\n if (typeof $scope.CIFInvestor.InvestTotalYear == \"string\") {\r\n $scope.CIFInvestor.InvestTotalYear = Number($scope.CIFInvestor.InvestTotalYear.replaceAll(\".\", \"\"));\r\n }\r\n }\r\n\r\n }\r\n\r\n $scope.submit = function () {\r\n $scope.prepareData();\r\n\r\n // dynamic sweet alert post to app.js\r\n // 1: set the url of post or get request\r\n // 2: set the sweet alert translation, refers to apps.js $scope.SWALtranslate() :preconfirm = confirmation dialog before post or get request\r\n // 3: set the postdata to $http request = GET : {} / POST { yourdata : data }\r\n // 4: set the method to $http request = \"GET\" / \"POST\"\r\n // 5: set the sweet alert translation, refers to apps.js $scope.SWALtranslate() :preconfirm = confirmation dialog before post or get request\r\n // 6: if success or no error returns then...\r\n var urlsvc = '/service/client.svc/SaveCIF'; // 1\r\n var postData = { cifdata: $scope.CIFInvestor } // 2\r\n var preconfirmtranslate = \"submitCif3\"; // 3\r\n var method = \"POST\" // 4\r\n $scope.PostGetSwal(preconfirmtranslate, urlsvc, postData, method, function (issuccess) {\r\n\r\n if (issuccess) // 6\r\n $window.location.href = \"#/cif/confirmation\";\r\n });\r\n }\r\n\r\n $scope.validationinput = function () {\r\n\r\n var errorForm = $scope.myForm.$error.required\r\n var validation = $scope.myForm.$valid;\r\n var message = [];\r\n //console.log('error :', errorForm);\r\n\r\n if (errorForm) {\r\n for (let i = 0; i < errorForm.length; i++) {\r\n //message += errorForm[i].$name + \" , \";\r\n message.push(errorForm[i].$name);\r\n }\r\n }\r\n\r\n //PROSES VALIDATION\r\n if (validation == false) {\r\n console.log(\"error : \" + message);\r\n\r\n var SWALtranslate = $scope.SWALtranslate('validationinput');\r\n Swal.fire({\r\n title: SWALtranslate.title,\r\n text: SWALtranslate.message,\r\n imageUrl: 'img/collection/wrong.png',\r\n imageAlt: 'Preparation',\r\n imageHeight: 250,\r\n animation: false\r\n });\r\n }\r\n }\r\n}]);\r\n\r\n\r\n","app.controller('CIFConfirmation-CTRL', function ($scope, $rootScope, $routeParams, uibDateParser, deviceDetector,\r\n $uibModal, $http, $window, $location, $timeout, Upload, $q, $filter) {\r\n\r\n var allPromise = $q.all([\r\n $scope.retrieveSessions(),\r\n ]);\r\n\r\n allPromise.then(function () {\r\n \r\n });\r\n\r\n $scope.submit = function () {\r\n }\r\n\r\n});\r\n\r\n","app.controller('CIFFIN-CTRL', function ($scope, $rootScope, $routeParams, uibDateParser, deviceDetector, $timeout,\r\n $uibModal, $http, $window, $location, Upload, $q, $filter) {\r\n\r\n $scope.stage = 1;\r\n $scope.CIFInvestor = {};\r\n $scope.ktpPhoto = '';\r\n $scope.device = deviceDetector;\r\n $scope.append = '';\r\n\r\n $scope.counter = 6;\r\n\r\n $scope.series5 = [];\r\n //$scope.series7 = [];\r\n\r\n $scope.statusCamera = 'true';\r\n\r\n\r\n $scope.onTimeout = function () {\r\n $scope.counter--;\r\n var mytimeout\r\n if ($scope.counter > 0) {\r\n mytimeout = $timeout($scope.onTimeout, 1000);\r\n }\r\n else {\r\n console.log('capturing...', $scope.stage);\r\n $scope.$broadcast('ngWebcam_capture');\r\n //alert(\"Time is up!\");\r\n }\r\n }\r\n\r\n\r\n\r\n $scope.reset = function () {\r\n $scope.counter = 5;\r\n mytimeout = $timeout($scope.onTimeout, 1000);\r\n }\r\n\r\n\r\n\r\n $scope.camfacing = 'env';\r\n $scope.ktpPhoto = '';\r\n\r\n $scope.KTPconfig = {\r\n viewerWidth: 300,\r\n viewerHeight: 300,\r\n outputWidth: 300,\r\n outputHeight: 300,\r\n delay: 5,\r\n shots: 3,\r\n countdown: 0,\r\n flashFallbackUrl: 'vendors/webcamjs/webcam.swf',\r\n //shutterUrl: 'shutter.mp3',\r\n flashNotDetectedText: 'Camera not found or use Chrome Browser'\r\n };\r\n\r\n $scope.KTPonCaptureComplete = function (src) {\r\n console.log('capturecomplete', $scope.stage);\r\n $scope.counter = 6;\r\n\r\n //if ($scope.stage == 5) {\r\n // console.log(\"CAPTURE COMPLETE STAGE 5\");\r\n // $scope.series7 = [];\r\n // for (var i = 0; i < src.length; i++) {\r\n // $scope.series7.push(src[i]);\r\n // }\r\n // //$scope.series7 = src;\r\n // $scope.submit();\r\n\r\n //}\r\n\r\n if ($scope.stage == 4) {\r\n console.log(\"CAPTURE COMPLETE STAGE 4\");\r\n $scope.counter = 6;\r\n\r\n $scope.series5 = [];\r\n for (var i = 0; i < src.length; i++) {\r\n $scope.series5.push(src[i]);\r\n }\r\n $scope.submit();\r\n //$scope.changeStage(5);\r\n }\r\n\r\n\r\n //var el = document.getElementById('result');\r\n //var img = document.createElement('img');\r\n //img.src = src[$scope.KTPconfig.shots - 1];\r\n //img.width = 240;\r\n //img.height = 180;\r\n //el.appendChild(img);\r\n };\r\n\r\n\r\n $scope.KTPonLive = function (err) {\r\n console.log('live');\r\n };\r\n\r\n\r\n $scope.KTPonError = function (err) {\r\n //$log.error('webcamController.onError : ', err);\r\n $scope.statusCamera = '';\r\n console.log(\"Error Camera: \" +err);\r\n $rootScope.AlertShowLoading('warning', err.message, 'Please Allowed Permission for camera and mic, or use other browser and Try Again', 0);\r\n };\r\n\r\n $scope.KTPonLoad = function () {\r\n // $log.info('ktp.onLoad');\r\n console.log('load');\r\n };\r\n\r\n $scope.KTPcapture = function () {\r\n $scope.$broadcast('ngWebcam_capture');\r\n };\r\n\r\n $scope.KTPon = function () {\r\n $scope.$broadcast('ngWebcam_on');\r\n };\r\n\r\n $scope.KTPoff = function () {\r\n $scope.$broadcast('ngWebcam_off');\r\n $scope.captureButtonEnable = false;\r\n };\r\n\r\n $scope.KTPremove = function () {\r\n $scope.ktpPhoto = '';\r\n }\r\n\r\n $scope.openCamera = function () {\r\n let message = 'KTP';\r\n let url = 'ModalCamera.html';\r\n let ctrl = 'CameraController';\r\n\r\n\r\n //if ($scope.device.isMobile())\r\n //{\r\n // url = 'ModalBrowse.html';\r\n // ctrl = 'BrowseController';\r\n // $scope.append = 'data:image/png;base64,';\r\n //}\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n templateUrl: url,\r\n controller: ctrl,\r\n size: 'md',\r\n resolve: {\r\n items: function () {\r\n return message;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function (resolvedResponse) {\r\n //console.log('ktp',resolvedResponse);\r\n if (resolvedResponse) {\r\n $scope.ktpPhoto = resolvedResponse;\r\n }\r\n }, function () { });\r\n };\r\n\r\n $scope.KTPremove = function () {\r\n $scope.ktpPhoto = '';\r\n };\r\n\r\n\r\n var allPromise = $q.all([\r\n $http({\r\n method: 'POST',\r\n url: 'service/client.svc/retrieveSession',\r\n }).then(function (data) {\r\n if (!data.data.d) {\r\n $http({\r\n method: 'GET',\r\n url: 'service/client.svc/SignOut',\r\n }).then(function (data) {\r\n if (data.data.d == true) {\r\n $window.location.href = \"#/login\";\r\n $window.location.reload();\r\n }\r\n }, function (error) { })\r\n }\r\n else\r\n $scope.currentUser = data.data.d;\r\n }, function (error) { }),\r\n\r\n\r\n ]);\r\n\r\n\r\n $scope.checkConnection = function (newstage) {\r\n $rootScope.AlertShowLoading('warning', 'Check connection, Please wait...', '', 0);\r\n //check connection=\r\n var imageAddr = \"/img/31120037-5mb.jpg\";\r\n var downloadSize = 4995374; //bytes\r\n\r\n function InitiateSpeedDetection() {\r\n var msg = \"Check connection, please wait...\";\r\n $rootScope.AlertShowLoading('warning', msg, '', 1);\r\n window.setTimeout(MeasureConnectionSpeed, 1);\r\n };\r\n\r\n if (window.addEventListener) {\r\n //window.addEventListener('load', InitiateSpeedDetection, false);\r\n window.setTimeout(MeasureConnectionSpeed, 1);\r\n } else if (window.attachEvent) {\r\n window.attachEvent('onload', InitiateSpeedDetection);\r\n }\r\n\r\n function MeasureConnectionSpeed() {\r\n var startTime, endTime;\r\n var download = new Image();\r\n download.onload = function () {\r\n endTime = (new Date()).getTime();\r\n showResults();\r\n }\r\n\r\n download.onerror = function (err, msg) {\r\n $rootScope.AlertShowLoading('warning', 'Connection lost, or error connection', '', 0);\r\n //console.log(\"Invalid image, or error downloading\");\r\n }\r\n\r\n startTime = (new Date()).getTime();\r\n var cacheBuster = \"?nnn=\" + startTime;\r\n download.src = imageAddr + cacheBuster;\r\n\r\n function showResults() {\r\n var duration = (endTime - startTime) / 1000;\r\n var bitsLoaded = downloadSize * 8;\r\n var speedBps = (bitsLoaded / duration).toFixed(2);\r\n var speedKbps = (speedBps / 1024).toFixed(2);\r\n var speedMbps = (speedKbps / 1024).toFixed(2);\r\n console.log([\r\n \"Your connection speed is:\",\r\n speedBps + \" bps\",\r\n speedKbps + \" kbps\",\r\n speedMbps + \" Mbps\"\r\n ]);\r\n if (parseInt(speedKbps) <= '100') {\r\n $rootScope.GlobalAlert('warning', 'Low Connection', 'Try to change network and try again.', 0);\r\n console.log('low connection')\r\n $scope.stage = newstage - 1;\r\n }\r\n }\r\n }\r\n }\r\n\r\n $scope.changeStage = function (newstage) {\r\n $scope.stage = newstage;\r\n \r\n if ($scope.stage == 4) {\r\n $scope.checkConnection(newstage);\r\n $scope.$broadcast('ngWebcam_camUsr');\r\n $scope.camfacing = 'usr'\r\n swal.fire({\r\n imageUrl: 'img/guidance/selfie.png',\r\n imageAlt: 'E-KTP',\r\n background: '#1c252c',\r\n width: '600px',\r\n allowEscapeKey: false,\r\n allowOutsideClick: false,\r\n animation: false,\r\n onOpen: () => {\r\n swal.showLoading()\r\n setTimeout(() => { swal.hideLoading() }, 3000)\r\n },\r\n }).then((result) => {\r\n if (!result.dismiss) {\r\n \r\n }\r\n })\r\n\r\n\r\n }\r\n\r\n //if ($scope.stage == 5) {\r\n // $scope.$broadcast('ngWebcam_restart');\r\n // $scope.$broadcast('ngWebcam_camUsr');\r\n // $scope.camfacing = 'usr'\r\n // swal({\r\n // imageUrl: 'img/verification/step2.png',\r\n // imageAlt: 'E-KTP',\r\n // background: '#1c252c',\r\n // width: '600px',\r\n // allowEscapeKey: false,\r\n // allowOutsideClick: false,\r\n // animation: false,\r\n // onOpen: () => {\r\n // swal.showLoading()\r\n // setTimeout(() => { swal.hideLoading() }, 3000)\r\n // },\r\n // }).then((result) => {\r\n // if (!result.dismiss) {\r\n // $scope.counter = 6;\r\n // var mytimeout = $timeout($scope.onTimeout, 1000);\r\n // //console.log('user read the important message')\r\n // }\r\n // })\r\n\r\n\r\n //}\r\n }\r\n\r\n\r\n $scope.takeCamera = function () {\r\n $scope.statusCamera = 'true';\r\n $scope.counter = 6;\r\n var mytimeout = $timeout($scope.onTimeout, 1000);\r\n }\r\n\r\n\r\n allPromise.then(function () {\r\n\r\n $http({\r\n method: 'GET',\r\n url: 'service/client.svc/getCIF',\r\n }).then(function (data) {\r\n if (data.data.d != null) {\r\n var obj = data.data.d;\r\n $scope.CIFInvestor = data.data.d;\r\n $scope.CIFInvestor.Stage = 4;\r\n\r\n } // END IF data.data.d\r\n }, function (error) { });\r\n });\r\n\r\n\r\n\r\n $scope.submit = function () {\r\n $rootScope.AlertShowLoading('warning', 'Loading...', '', 0);\r\n $http({\r\n method: 'POST',\r\n url: 'service/client.svc/ImageVerification',\r\n data:\r\n {\r\n imageData: {\r\n series5: $scope.series5,\r\n //series7: $scope.series7,\r\n }\r\n }\r\n }).then(function (data) {\r\n swal('success', 'Permohonan pembukaan rekening efek Anda telah kami terima. Silahkan cek email', 'success').then(function () {\r\n $window.location.href = \"#/dashboard\";\r\n });\r\n\r\n }, function (error) {\r\n swal('Error', 'error - Please check your connection' + error, 'error');\r\n });\r\n }\r\n\r\n $scope.logOff = function () {\r\n $http({\r\n method: 'POST',\r\n url: 'service/client.svc/logOff',\r\n }).then(function (data) {\r\n console.log(data);\r\n if (data.data.d == true) {\r\n $window.location.href = \"#/login\";\r\n $window.location.reload();\r\n }\r\n }, function (error) { })\r\n };\r\n\r\n\r\n\r\n});\r\n\r\n","app.controller('CIFKTP-CTRL', function ($scope, $rootScope, $routeParams, uibDateParser, deviceDetector,\r\n $uibModal, $http, $window, $location, $timeout, Upload, $q, $filter) {\r\n\r\n $scope.CIFInvestor = {};\r\n $scope.ktpPhoto = '';\r\n $scope.device = deviceDetector;\r\n $scope.append = '';\r\n $scope.editMode = false;\r\n\r\n $scope.filenameKTP = \"\";\r\n $scope.fileKTP = \"\";\r\n $scope.fileKTPext = \"\";\r\n $scope.KTPFile = [];\r\n\r\n $scope.openCamera = function () {\r\n let message = 'KTP';\r\n let url = 'ModalCamera.html';\r\n let ctrl = 'CameraController';\r\n\r\n\r\n // if ($scope.device.isMobile())\r\n // {\r\n //url = 'ModalBrowse.html';\r\n //ctrl = 'BrowseController';\r\n //$scope.append = 'data:image/png;base64,';\r\n // }\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n templateUrl: url,\r\n controller: ctrl,\r\n size: 'md',\r\n resolve: {\r\n items: function () {\r\n return message;\r\n }\r\n }\r\n });\r\n modalInstance.result.then(function (resolvedResponse) {\r\n //console.log('ktp',resolvedResponse);\r\n if (resolvedResponse) {\r\n $scope.ktpPhoto = resolvedResponse;\r\n }\r\n }, function () { });\r\n };\r\n\r\n $scope.KTPcapture = function () {\r\n $scope.$broadcast('ngWebcam_capture');\r\n };\r\n\r\n\r\n $scope.KTPremove = function () {\r\n $scope.ktpPhoto = '';\r\n };\r\n\r\n $scope.KTPonCaptureComplete = function (src) {\r\n\r\n $scope.series5 = [];\r\n for (var i = 0; i < src.length; i++) {\r\n $scope.series5.push(src[i]);\r\n }\r\n $scope.submit();\r\n\r\n };\r\n\r\n var allPromise = $q.all([\r\n //$http({\r\n // method: 'POST',\r\n // url: 'service/client.svc/retrieveSession',\r\n //}).then(function (data) {\r\n // if (!data.data.d) {\r\n // $http({\r\n // method: 'GET',\r\n // url: 'service/client.svc/SignOut',\r\n // }).then(function (data) {\r\n // if (data.data.d == true) {\r\n // $window.location.href = \"#/login\";\r\n // $window.location.reload();\r\n // }\r\n // }, function (error) { })\r\n // }\r\n // else\r\n // $scope.currentUser = data.data.d;\r\n //}, function (error) { }),\r\n\r\n\r\n ]);\r\n\r\n\r\n\r\n allPromise.then(function () {\r\n //$http({\r\n // method: 'GET',\r\n // url: 'service/client.svc/getCIF',\r\n //}).then(function (data) {\r\n // if (data.data.d != null) {\r\n // var obj = data.data.d;\r\n // $scope.CIFInvestor = data.data.d;\r\n // $scope.CIFInvestor.Stage = 1;\r\n\r\n\r\n // } // END IF data.data.d\r\n //}, function (error) { });\r\n });\r\n\r\n $scope.submit = function () {\r\n //console.log(item);\r\n if (ktpPhoto) {\r\n let image = ktpPhoto.replace(\"data:image/jpeg;base64,\", \"\");\r\n console.log('start OCR');\r\n $rootScope.AlertShowLoading('warning', 'Loading...', '', 0);\r\n $http({\r\n method: 'POST',\r\n url: 'service/client.svc/OCRKTP',\r\n data: {\r\n \"ktpimage\": image\r\n },\r\n }).then(function (data) {\r\n swal.close();\r\n if (data.data.d.result) {\r\n $scope.ocrVerijelas = true;\r\n $window.location.href = \"#/cif/data-pribadi\";\r\n }\r\n else {\r\n console.log(data);\r\n swal.fire(data.data.d.message, 'Foto KTP tidak sesuai/kurang jelas', 'error');\r\n }\r\n\r\n }, function (error) {\r\n swal.fire('Error', 'error - Please check your connection' + error, 'error');\r\n });\r\n }\r\n else {\r\n swal.fire('Error', 'Please take id card photo', 'error');\r\n }\r\n }\r\n\r\n $scope.logOff = function () {\r\n $http({\r\n method: 'POST',\r\n url: 'service/client.svc/logOff',\r\n }).then(function (data) {\r\n console.log(data);\r\n if (data.data.d == true) {\r\n $window.location.href = \"#/login\";\r\n $window.location.reload();\r\n }\r\n }, function (error) { })\r\n };\r\n\r\n $scope.print = function () {\r\n $scope.prepareData();\r\n }\r\n\r\n});\r\n\r\n","app.controller('CIFDashboard-CTRL', ['$scope', '$http', '$window','$uibModal', '$timeout', '$q', 'appFactory',\r\n function ($scope, $http, $window, $uibModal, $timeout, $q, appFactory) {\r\n\r\n $scope.CIFInvestor = {}\r\n $scope.page = '';\r\n\r\n $scope.submitSales = function () {\r\n $scope.openModalSales();\r\n }\r\n\r\n $scope.datanasabah = function () {\r\n\r\n $window.location.href = \"#/profile\";\r\n }\r\n\r\n $scope.stepClass = ['', 'blur', 'blur', 'blur', 'blur'];\r\n\r\n $scope.active = \"active current\";\r\n\r\n $scope.imgMale = \"\";\r\n $scope.imgDoc = \"\";\r\n $scope.imgFemale = \"\";\r\n $scope.chkquestionfatca = 2;\r\n $scope.RequestClient = false;\r\n $scope.RequestClientApprove = false;\r\n\r\n $scope.openModalSales = function () {\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n templateUrl: 'myModalContentSales.html',\r\n controller: 'ModalDashboardInstanceCtrl',\r\n size: 'md',\r\n resolve: {\r\n items: function () {\r\n return $scope.modalMessage;\r\n }\r\n }\r\n });\r\n };\r\n\r\n var allPromise = $q.all([\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/getCIFDetail',\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.CIFDetail = data.data.d;\r\n $scope.CIFInvestor.QuestionRDN = data.data.d.QuestionRDN;\r\n $scope.CIFInvestor.WebCIFNID = data.data.d.AutoNID;\r\n $scope.CIFInvestor.CIFNID = data.data.d.CIFNID;\r\n }, function (error) { }),\r\n\r\n $scope.retrieveSessions()\r\n ]);\r\n\r\n allPromise.then(function () {\r\n\r\n appFactory.getData(`/service/client.svc/getCIFDetail`).then(function (data) {\r\n\r\n if (data.status == 200) {\r\n\r\n if (data.data.d != null) {\r\n\r\n var obj = data.data.d;\r\n $scope.CIFInvestor = data.data.d;\r\n\r\n\r\n if ($scope.CIFInvestor.State1)\r\n $scope.stepClass[1] = \"active current\";\r\n\r\n if ($scope.CIFInvestor.State2)\r\n $scope.stepClass[2] = \"active current\";\r\n\r\n if ($scope.CIFInvestor.State3)\r\n $scope.stepClass[3] = \"active current\";\r\n\r\n if ($scope.CIFInvestor.State4)\r\n $scope.stepClass[4] = \"active current\";\r\n\r\n if ($scope.CIFInvestor.IsFinished == 1)\r\n $scope.page = 'finished'\r\n\r\n if ($scope.CIFInvestor.IsRevised == 1)\r\n $scope.page = 'revised'\r\n\r\n if ($scope.CIFInvestor.StatusRequestClient == true) {\r\n $scope.RequestClient = true;\r\n }\r\n else {\r\n $scope.RequestClient = false;\r\n $scope.RequestClientApprove = true;\r\n }\r\n }\r\n }\r\n })\r\n });\r\n\r\n $scope.login = function () {\r\n $window.location.href = \"#/cif/data-pribadi\";\r\n }\r\n }]);\r\n\r\napp.controller('ModalDashboardInstanceCtrl', ['$scope', '$window', '$rootScope', '$uibModalInstance', '$uibModal', '$q', 'appFactory', 'deviceDetector', 'items', '$http',\r\n function ($scope, $window, $rootScope, $uibModalInstance, $uibModal, $q, appFactory, deviceDetector, items, $http) {\r\n\r\n $scope.CIFInvestor = {\r\n //Sales: '',\r\n CIFNID: '',\r\n WebCIFNID: '',\r\n QuestionRDN: '',\r\n Void: '',\r\n\r\n }\r\n\r\n $scope.rdn = true;\r\n\r\n $scope.SalesSelected = '';\r\n $scope.ListSales = [];\r\n\r\n $scope.selectSales = function (item, model, label, event) {\r\n if (item.SalesPersonNID) {\r\n $scope.CIFInvestor.Sales = item.SalesPersonNID;\r\n $scope.SalesSelected = item;\r\n }\r\n\r\n };\r\n\r\n $scope.RemiserSelected = '';\r\n\r\n $scope.selectRemiser = function (item, model, label, event) {\r\n if (item.NID) {\r\n $scope.CIFInvestor.NID = item.NID;\r\n $scope.RemiserSelected = item;\r\n }\r\n\r\n };\r\n\r\n $scope.items = items;\r\n console.log(\"items\", items)\r\n console.log(\"CIFInvestor\", $scope.CIFInvestor)\r\n \r\n $scope.ok = function () {\r\n $uibModalInstance.close($scope.item);\r\n };\r\n $scope.cancel = function () {\r\n $uibModalInstance.dismiss('cancel');\r\n };\r\n\r\n $scope.showAgreement = function (number) {\r\n\r\n let htmlName = 'template/Marginagereement' + number + '.html';\r\n var modalInstance = $uibModal\r\n .open({\r\n animation: true,\r\n templateUrl: htmlName,\r\n controller: 'MarginAgreementCtrl',\r\n size: 'lg',\r\n backdrop: 'static',\r\n resolve: {\r\n\r\n agreementNumber: function () {\r\n\r\n return number;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (response, agree) {\r\n\r\n if (response == 'accept') {\r\n\r\n if (number == 1) {\r\n\r\n $scope.agree1 = true;\r\n $scope.disclaimerClose = true;\r\n }\r\n\r\n\r\n if ($scope.disclaimerClose == true);\r\n }\r\n }, function () { });\r\n };\r\n \r\n\r\n var allPromise = $q.all([\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/getRemiserList',\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.ListRemiser = data.data.d;\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/getCIFDetail',\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.CIFDetail = data.data.d;\r\n $scope.CIFInvestor.QuestionRDN = data.data.d.QuestionRDN;\r\n $scope.CIFInvestor.WebCIFNID = data.data.d.AutoNID;\r\n $scope.CIFInvestor.CIFNID = data.data.d.CIFNID;\r\n $scope.CIFInvestor.Void = data.data.d.Void;\r\n if ($scope.CIFInvestor.QuestionRDN == 1) {\r\n $scope.RDNBCA = true;\r\n $scope.RDNPERMATA = false;\r\n $scope.CIFInvestor.QuestionRDN = '1';\r\n }\r\n if ($scope.CIFInvestor.QuestionRDN == 2) {\r\n $scope.RDNPERMATA = true;\r\n $scope.RDNBCA = false;\r\n $scope.CIFInvestor.QuestionRDN = '2';\r\n }\r\n\r\n if ($scope.CIFInvestor.StatusRequestClient == true) {\r\n $scope.RequestClient = true;\r\n }\r\n else {\r\n $scope.RequestClient = false;\r\n $scope.RequestClientApprove = true;\r\n }\r\n }, function (error) { }),\r\n\r\n $http({\r\n method: 'GET',\r\n url: '/service/client.svc/GetCIFSales',\r\n cache: true,\r\n }).then(function (data) {\r\n $scope.ListSales = data.data.d;\r\n }, function (error) { }),\r\n\r\n ]);\r\n\r\n $scope.submitRemiserOK = function () {\r\n $scope.CIFInvestor.CIFNID = $scope.CIFInvestor.CIFNID;\r\n $scope.CIFInvestor.QuestionRDN = $scope.CIFInvestor.QuestionRDN;\r\n $rootScope.AlertYesNo('question', 'Konfirmasi', \"Apakah Data Anda sudah sesuai ?\")\r\n .then((result) => {\r\n if (result.value) {\r\n $rootScope.AlertShowLoading('warning', 'Loading...', '', 0);\r\n $http({\r\n method: 'POST',\r\n url: '/service/client.svc/SaveRemiser',\r\n data:\r\n {\r\n cifdata: $scope.CIFInvestor\r\n },\r\n }).then(function (data) {\r\n if (data.data.d.result) {\r\n Swal.fire('Success', 'Permintaan Pembukaan Rekening Baru', 'success').then(function () {\r\n Swal.close();\r\n $window.location.href = \"#/dashboard\";\r\n $window.location.reload();\r\n });\r\n }\r\n else {\r\n Swal.fire('Error', data.data.d.result.message, 'error');\r\n }\r\n }, function (error) {\r\n Swal.fire('Error', 'error - Please check your connection', 'error');\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n }]);\r\n\r\napp.controller('MarginAgreementCtrl', ['$scope', '$uibModalInstance', 'agreementNumber', '$q', 'appFactory',\r\n function ($scope, $uibModalInstance, agreementNumber, $q, appFactory) {\r\n\r\n $scope.agreementNumber = agreementNumber;\r\n\r\n $scope.accept = function () {\r\n\r\n $uibModalInstance.close('accept', $scope.agreementNumber);\r\n };\r\n\r\n\r\n var allPromise = $q.all([\r\n\r\n\r\n ]);\r\n\r\n allPromise.then(function () {\r\n\r\n });\r\n\r\n $scope.cancel = function () {\r\n\r\n $uibModalInstance.dismiss('cancel', $scope.agreementNumber);\r\n };\r\n }]);","app.controller('CIFHeadCtrl', ['$scope', '$window', '$q', 'appFactory',\r\n function ($scope, $window, $q, appFactory) {\r\n $scope.stepClass = ['','', '', '', ''];\r\n $scope.stepActive = 'active current';\r\n $scope.current = 0;\r\n\r\n var allPromise = $q.all([\r\n appFactory.postGetData(`/service/client.svc/retrieveSession`, 'POST').then(function (data) {\r\n\r\n if (data.status == 200) {\r\n\r\n if (!data.data.d) {\r\n\r\n $scope.signOut();\r\n }\r\n else\r\n $scope.currentUser = data.data.d;\r\n }\r\n })\r\n ]);\r\n \r\n allPromise.then(function () {\r\n\r\n for(var i=1;i<5;i++)\r\n {\r\n if (i <= $scope.currentUser.Stage)\r\n $scope.stepClass[i] = 'done';\r\n }\r\n\r\n switch ($window.location.hash) {\r\n case \"#/cif/data-pribadi\": $scope.current = 1; $scope.stepClass[1] = $scope.stepActive; break;\r\n case \"#/cif/data-bank\": $scope.current = 2; $scope.stepClass[2] = $scope.stepActive; break;\r\n case \"#/cif/data-pendukung\": $scope.current = 3; $scope.stepClass[3] = $scope.stepActive; break;\r\n case \"#/cif/data-pernyataan\": $scope.current = 4; $scope.stepClass[4] = $scope.stepActive; break;\r\n }\r\n });\r\n\r\n\r\n $scope.showForm = function (goto) {\r\n if (goto <= $scope.currentUser.Stage)\r\n {\r\n let page = '#/cif/data-pribadi';\r\n\r\n switch (goto) {\r\n case 1: page = '#/cif/data-pribadi'; break;\r\n case 2: page = '#/cif/data-bank'; break;\r\n case 3: page = '#/cif/data-pendukung'; break;\r\n case 4: page = '#/cif/data-pernyataan'; break;\r\n }\r\n $window.location.href = page;\r\n $window.location.reload();\r\n }\r\n }\r\n}]);","app.controller('CIFProfile-CTRL', ['$scope', '$http', '$window', '$q', 'appFactory',\r\n function ($scope, $http, $window, $q, appFactory) {\r\n\r\n $scope.CIFInvestor = {}\r\n $scope.chkquestionfatca = 2;\r\n\r\n $scope.back = function () {\r\n $window.location.href = \"#/dashboard\";\r\n }\r\n var allPromise = $q.all([\r\n $scope.retrieveSessions()\r\n ]);\r\n\r\n\r\n allPromise.then(function () {\r\n\r\n appFactory.getData(`/service/client.svc/getCIFDetail`).then(function (data) {\r\n\r\n if (data.status == 200) {\r\n\r\n if (data.data.d != null) {\r\n\r\n var obj = data.data.d;\r\n $scope.CIFInvestor = data.data.d;\r\n if ($scope.CIFInvestor.QuestionRDN == '1' || $scope.CIFInvestor.QuestionRDN == 1) {\r\n $scope.CIFInvestor.QuestionRDN = \"BANK CENTRAL ASIA\";\r\n }\r\n else if ($scope.CIFInvestor.QuestionRDN == '2' || $scope.CIFInvestor.QuestionRDN == 2) {\r\n $scope.CIFInvestor.QuestionRDN = \"BANK PERMATA\";\r\n }\r\n else {\r\n $scope.CIFInvestor.QuestionRDN = \"KB BANK\";\r\n }\r\n $scope.filenameKTP = $scope.CIFInvestor.KTPFile;\r\n $scope.filenameFotoDiri = $scope.CIFInvestor.SelfieFile;\r\n $scope.filenameTandaTangan = $scope.CIFInvestor.TandaTanganFile;\r\n $scope.URLFolderKYC = data.data.d.URLFolderKYC;\r\n\r\n console.log($scope.CIFInvestor.NPWPFile)\r\n\r\n $scope.imgItem = [];\r\n if ($scope.CIFInvestor.KTPFile !== '')\r\n $scope.imgItem.push({ editing: false, url: '/FileKYC/' + $scope.CIFInvestor.KTPFile + \"?timestamp=\" + Date.now(), type: 'KTP', label: 'KTP' });\r\n \r\n if ($scope.CIFInvestor.SelfieFile !== '')\r\n $scope.imgItem.push({ editing: false, url: '/FileKYC/' + $scope.CIFInvestor.SelfieFile + \"?timestamp=\" + Date.now(), type: 'FotoDiri', label: 'Foto Diri bersama KTP' });\r\n\r\n if ($scope.CIFInvestor.TandaTanganFile !== '')\r\n $scope.imgItem.push({ editing: false, url: '/FileKYC/' + $scope.CIFInvestor.TandaTanganFile + \"?timestamp=\" + Date.now(), type: 'TandaTangan', label: 'Tanda Tangan Nasabah' });\r\n\r\n if ($scope.CIFInvestor.NPWPFile !== '')\r\n $scope.imgItem.push({ editing: false, url: '/FileKYC/' + $scope.CIFInvestor.NPWPFile + \"?timestamp=\" + Date.now(), type: 'NPWP', label: 'NPWP Nasabah' });\r\n\r\n if ($scope.CIFInvestor.Sex) {\r\n if ($scope.CIFInvestor.Sex == 'Male') {\r\n $scope.imgMale = \"../img/svg/report-male.svg\";\r\n }\r\n\r\n if ($scope.CIFInvestor.Sex == \"Female\") {\r\n $scope.imgMale = \"../img/svg/report-animate.svg\";\r\n }\r\n }\r\n\r\n if ($scope.CIFInvestor.FATCA1 == 'Tidak' || $scope.CIFInvestor.FATCA2 == 'Tidak' || $scope.CIFInvestor.FATCA3 == 'Tidak') {\r\n $scope.chkquestionfatca = 1;\r\n }\r\n\r\n if ($scope.CIFInvestor.IsFinished == 1) {\r\n $scope.active = \"active current\";\r\n }\r\n\r\n }\r\n }\r\n });\r\n\r\n $scope.navbarOptions = true;\r\n });\r\n}]);","app.controller('forgetPasswordCtrl', ['$scope', '$http', '$window', '$q',\r\n function ($scope, $http, $window, $q) {\r\n\r\n $scope.user_reset = {};\r\n\r\n $scope.UserNID = '';\r\n\r\n $scope.back = function () {\r\n $window.location.href = \"#/dashboard\";\r\n }\r\n\r\n $scope.submit = function () {\r\n\r\n // dynamic sweet alert post to app.js\r\n // 1: set the url of post or get request\r\n // 2: set the sweet alert translation, refers to apps.js $scope.SWALtranslate() :preconfirm = confirmation dialog before post or get request\r\n // 3: set the postdata to $http request = GET : {} / POST { yourdata : data }\r\n // 4: set the method to $http request = \"GET\" / \"POST\"\r\n // 5: set the sweet alert translation, refers to apps.js $scope.SWALtranslate() :preconfirm = confirmation dialog before post or get request\r\n // 6: if success or no error returns then...\r\n var urlsvc = '/service/client.svc/Forget_Password'; // 1\r\n var preconfirmtranslate = \"sendforgetpassword\"; // 2\r\n var postData = { UserForget: $scope.user_reset } // 3\r\n var method = \"POST\"; // 4\r\n $scope.PostGetSwal(preconfirmtranslate, urlsvc, postData, method, function (issuccess) {\r\n\r\n if (issuccess) // 6\r\n $window.location.href = \"#/login\";\r\n });\r\n };\r\n}]);\r\n","app.controller('LoginCtrl', ['$scope', '$rootScope', '$window', '$http', '$q', 'appFactory', '$uibModal',\r\n function ($scope, $rootScope, $window, $http, $q, appFactory, $uibModal) {\r\n\r\n var allPromise = $q.all([\r\n\r\n // check login, jika ada session, maka pergi ke stage saat itu.\r\n $scope.checkLogin()\r\n ]);\r\n\r\n allPromise.then(function () {\r\n\r\n });\r\n\r\n $scope.user = {};\r\n $rootScope.pageLogin = true;\r\n\r\n // toggle password plaintext\r\n $scope.showPassword = false;\r\n $scope.inputType = 'password';\r\n $scope.toggleShowPassword = function () {\r\n $scope.showPassword = !$scope.showPassword;\r\n if ($scope.inputType == 'password')\r\n $scope.inputType = 'text';\r\n else\r\n $scope.inputType = 'password';\r\n }\r\n\r\n $scope.forgetPassword = function () {\r\n $rootScope.pageLogin = false;\r\n $window.location.href = '#/forgetpassword';\r\n }\r\n\r\n $scope.register = function () {\r\n $rootScope.pageLogin = false;\r\n $window.location.href = '#/register';\r\n }\r\n\r\n $scope.modalOTP = function () {\r\n //let message = tipe;\r\n let url = 'ModalOTP.html';\r\n let ctrl = 'OTPController';\r\n console.log($scope.user.Email);\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n templateUrl: url,\r\n controller: ctrl,\r\n size: 'md',\r\n resolve: {\r\n items: function () {\r\n return $scope.user.Email;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (resolvedResponse) {\r\n console.log(resolvedResponse);\r\n $window.location.href = \"#/login\";\r\n }, function () { });\r\n }\r\n\r\n // saat tombol login di submit\r\n $scope.submit = function () {\r\n\r\n appFactory.postGetData(\r\n `/service/client.svc/LoginUser`,\r\n 'POST',\r\n { UserLogin: $scope.user }\r\n ).then(function (data) {\r\n\r\n if (data.status == 200) {\r\n\r\n $scope.result = data.data.d;\r\n $rootScope.objUser = $scope.user;\r\n\r\n var SWALtranslate = $scope.SWALtranslate($scope.result.message);\r\n\r\n // login ok\r\n if ($scope.result.result) {\r\n $rootScope.pageLogin = false;\r\n console.log($scope.result)\r\n\r\n $scope.checkLoginStep($scope.result);\r\n console.log('here');\r\n return;\r\n }\r\n\r\n // if user not activated, open sweet alert with footer\r\n if ($scope.result.message == \"notactivated\") {\r\n // set funtion on app.js\r\n $scope.modalOTP();\r\n } \r\n else if ($scope.result.message != \"notactivated\" && $scope.result.message != \"wronguserpass\") {\r\n\r\n // login not ok\r\n //$rootScope.GlobalAlert('warning', SWALtranslate.title, SWALtranslate.message, 0);\r\n $rootScope.AlertShowFooter('warning', SWALtranslate.title, SWALtranslate.message,\r\n `` + 'Click to Resend Activation Link' + ``, 0);\r\n\r\n $(\"#resendOTP\").on(\"click\", function () {\r\n\r\n // dynamic sweet alert post to app.js\r\n // 1: set the url of post or get request\r\n // 2: set the sweet alert translation, refers to apps.js $scope.SWALtranslate() :preconfirm = confirmation dialog before post or get request\r\n // 3: set the postdata to $http request = GET : {} / POST { yourdata : data }\r\n // 4: set the method to $http request = \"GET\" / \"POST\"\r\n // 5: set the sweet alert translation, refers to apps.js $scope.SWALtranslate() :preconfirm = confirmation dialog before post or get request\r\n // 6: if success or no error returns then...\r\n var urlsvc = 'service/client.svc/resendOTP?emailto=' + $scope.user.Email; // 1\r\n var preconfirmtranslate = \"resendactivationlink\"; // 2 \r\n var postData = {}; // 3\r\n var method = \"GET\"; // 4\r\n $scope.PostGetSwal(preconfirmtranslate, urlsvc, postData, method, function (issuccess) {\r\n\r\n if (issuccess) // 6 \r\n $window.location.href = \"#/login\";\r\n });\r\n });\r\n return\r\n }\r\n else {\r\n $rootScope.GlobalAlert('warning', SWALtranslate.title, SWALtranslate.message, 0);\r\n }\r\n }\r\n })\r\n };\r\n}]);\r\n","\r\napp.controller('OTPController', ['$rootScope', '$scope', '$routeParams', '$http', '$window', '$q', 'appFactory', '$timeout', '$sce', '$uibModalInstance', '$compile', 'items',\r\nfunction ($rootScope, $scope, $routeParams, $http, $window, $q, appFactory, $timeout, $sce, $uibModalInstance, $compile, items) {\r\n $scope.inputs = ['', '', '', '']; // Initialize inputs array\r\n $scope.buttonDisabled = true; // Disable button initially\r\n $scope.textAlert = false; // Disable text alert if not verify\r\n $scope.email = items;\r\n $scope.OTP = {}\r\n\r\n $timeout(function () {\r\n angular.element('.otp-field > input')[0].focus();\r\n });\r\n\r\n //angular.element('.btn').attr('disabled', 'disabled');\r\n\r\n $scope.focusInput = function (event, index) {\r\n if ($scope.inputs[index] === \"\") {\r\n event.target.value = \"\"; // Clear input if it's not a number\r\n }\r\n };\r\n\r\n $scope.handleKeyUp = function (event, index) {\r\n const key = event.key.toLowerCase();\r\n if (key === \"backspace\") {\r\n if (index > 0) {\r\n $scope.inputs[index - 1] = \"\";\r\n angular.element('.otp-field > input')[index - 1].focus();\r\n }\r\n return;\r\n }\r\n\r\n if ($scope.inputs[index].length > 1) {\r\n $scope.inputs[index] = \"\";\r\n return;\r\n }\r\n\r\n const nextIndex = index + 1;\r\n if (nextIndex < $scope.inputs.length && $scope.inputs[index] !== \"\") {\r\n $scope.inputs[nextIndex] = \"\";\r\n angular.element('.otp-field > input')[nextIndex].focus();\r\n }\r\n\r\n $scope.updateButtonState();\r\n };\r\n\r\n $scope.updateButtonState = function () {\r\n $scope.buttonDisabled = $scope.inputs.some(input => input === \"\");\r\n };\r\n\r\n $scope.text = 'Initial Text';\r\n $scope.countdown = 30; // 5 minutes in seconds\r\n\r\n // Function to update the text and countdown timer\r\n var updateTextAndCountdown = function () {\r\n $scope.countdown--; // Decrement the countdown timer\r\n if ($scope.countdown <= 0) {\r\n $scope.text = $sce.trustAsHtml('Kirim ulang kode'); // Change the text when countdown reaches 0\r\n\r\n // Use $timeout to ensure the HTML is rendered before compiling\r\n $timeout(function () {\r\n var container = angular.element(document.getElementById('textContainer'));\r\n $compile(container.contents())($scope);\r\n }, 0);\r\n } else {\r\n // Update the countdown timer text\r\n var minutes = Math.floor($scope.countdown / 60);\r\n var seconds = $scope.countdown % 60;\r\n $scope.text = $sce.trustAsHtml('Kirim ulang kode dalam ' + minutes + ' : ' + seconds + ' ');\r\n\r\n // Schedule the next update after 1 second\r\n $timeout(updateTextAndCountdown, 1000);\r\n }\r\n };\r\n\r\n $scope.getOTP = function () {\r\n $scope.countdown = 180; // 3 minutes in seconds\r\n updateTextAndCountdown();\r\n appFactory.getData(`/service/client.svc/APIOTP?Email=${$scope.email}`).then(function (data) {\r\n\r\n if (data.status == 200) {\r\n\r\n if (data.data.d != true) {\r\n var obj = data.data.d;\r\n }\r\n }\r\n });\r\n }\r\n\r\n // Start the countdown timer\r\n updateTextAndCountdown();\r\n\r\n var allPromise = $q.all([\r\n $scope.getOTP()\r\n\r\n ]);\r\n\r\n allPromise.then(function () {\r\n\r\n });\r\n\r\n\r\n $scope.submit = function () {\r\n var strOTP = $scope.inputs.join('');\r\n\r\n $scope.OTP.Email = $scope.email;\r\n $scope.OTP.KodeOTP = strOTP;\r\n\r\n return $http({\r\n method: \"POST\",\r\n url: '/service/client.svc/ValidateOTP',\r\n data: { OTP: $scope.OTP }\r\n }).then(data => {\r\n\r\n console.log(data.data.d.result)\r\n\r\n if (data.data.d.result) {\r\n\r\n console.log('VERIFIED');\r\n //swal('success', 'Verifikasi OTP telah berhasil', 'success').then(function () {\r\n //$uibModalInstance.close(\"VERIFIED\");\r\n //});\r\n\r\n appFactory.postGetData(\r\n `/service/client.svc/LoginUser`,\r\n 'POST',\r\n { UserLogin: $rootScope.objUser }\r\n ).then(function (data) {\r\n\r\n if (data.status == 200) {\r\n\r\n $scope.result = data.data.d;\r\n\r\n // login ok\r\n if ($scope.result.result) {\r\n $rootScope.pageLogin = false;\r\n console.log($scope.result)\r\n\r\n $window.location.href = \"#/cif/data-pribadi\";\r\n $window.location.reload();\r\n return;\r\n }\r\n }\r\n });\r\n $uibModalInstance.close(\"VERIFIED\");\r\n return;\r\n } else {\r\n\r\n console.log('not verified');\r\n $scope.textAlert = true;\r\n return;\r\n }\r\n\r\n callback(data.data.d.result); // send /return callback to .js\r\n })\r\n .catch(error => {\r\n swal.fire(\r\n \"There is a problem connecting to the server. \\\r\n Please ensure your internet connection is active. If the problem persists, please try again later.\"\r\n )\r\n console.log(`Request failed: ${error}`)\r\n })\r\n\r\n //if (strOTP == 1234) {\r\n // console.log('VERIFIED');\r\n // $uibModalInstance.close(\"VERIFIED\");\r\n //} else {\r\n // console.log('not verified');\r\n // $scope.textAlert = true;\r\n //}\r\n\r\n }\r\n}]);","app.controller('ActivationCtrl', ['$scope', '$routeParams', '$http', '$window', '$q', 'appFactory',\r\n function ($scope, $routeParams, $http, $window, $q, appFactory) {\r\n\r\n $scope.user = {};\r\n\r\n if ($routeParams.generatedkey) {\r\n $scope.user.generatedkey = $routeParams.generatedkey;\r\n }\r\n\r\n $scope.page = 'activation';\r\n\r\n var allPromise = $q.all([\r\n\r\n appFactory.getData(`service/client.svc/recheckActivationLink?key=${$routeParams.generatedkey}`).then(function (data) {\r\n\r\n if (data.status == 200) {\r\n\r\n if (!data.data.d.result) {\r\n $window.location.href = \"#/login\";\r\n $window.location.reload();\r\n } else {\r\n\r\n $window.location.href = \"#/login\";\r\n\r\n var SWALtranslate = $scope.SWALtranslate('activationsuccess');\r\n Swal.fire(SWALtranslate.title, SWALtranslate.message, 'success');\r\n }\r\n }\r\n })\r\n ]);\r\n\r\n allPromise.then(function () {\r\n\r\n });\r\n}]);\r\n","app.controller('RegisterCtrl', ['$rootScope','$scope', '$routeParams', '$http', '$window', '$q', 'appFactory', '$uibModal',\r\nfunction ($rootScope, $scope, $routeParams, $http, $window, $q, appFactory, $uibModal) {\r\n\r\n $rootScope.user = {};\r\n $scope.ListSales = [];\r\n $scope.ListOffice = [];\r\n\r\n $scope.ConfirmPassword = '';\r\n $scope.user.PhoneCode = '+62';\r\n\r\n $scope.user.Location = window.location.href;\r\n //$scope.user.atEmail = '@';\r\n //$scope.user.EmailDomain = 'other'\r\n //$scope.user.QuestionRDN = '1';\r\n\r\n $scope.disablesales = false;\r\n $scope.disableReferalNumber = false;\r\n $scope.SalesSelected = '';\r\n\r\n $scope.disableOffice = false;\r\n $scope.OfficeSelected = '';\r\n\r\n $scope.showPassword = false;\r\n $scope.inputType = 'password';\r\n $scope.toggleShowPassword = function () {\r\n $scope.showPassword = !$scope.showPassword;\r\n if ($scope.inputType == 'password')\r\n $scope.inputType = 'text';\r\n else\r\n $scope.inputType = 'password';\r\n }\r\n\r\n $scope.showPasswordConfirmation = false;\r\n $scope.inputTypeConfirmation = 'password';\r\n $scope.toggleShowPasswordConfirmation = function () {\r\n $scope.showPasswordConfirmation = !$scope.showPasswordConfirmation;\r\n if ($scope.inputTypeConfirmation == 'password')\r\n $scope.inputTypeConfirmation = 'text';\r\n else\r\n $scope.inputTypeConfirmation = 'password';\r\n }\r\n\r\n $scope.checkPassword = function () {\r\n if ($scope.ConfirmPassword != $scope.user.Password) {\r\n $scope.formRegister.txtConfirmPassword.$invalid = true;\r\n $scope.infolengthpass = false;\r\n }\r\n };\r\n\r\n $scope.bo = function () {\r\n\r\n\r\n var SWALtranslate = $scope.SWALtranslate('beneficialowner');\r\n\r\n Swal.fire({\r\n text: SWALtranslate.message,\r\n imageAlt: 'BO',\r\n imageHeight: 250,\r\n animation: false,\r\n customClass: {\r\n confirmButton: 'swal-confirm-button-class',\r\n },\r\n });\r\n\r\n }\r\n\r\n //$scope.EmailDomainChange = function () {\r\n // $scope.user.Email = '';\r\n //}\r\n\r\n $scope.page = 'step1';\r\n\r\n $scope.Office = function () {\r\n $scope.user.Office = $scope.user.Sales;\r\n }\r\n\r\n var allPromise = $q.all([\r\n appFactory.getData(`/service/client.svc/GetCountryPhone`).then(function (data) {\r\n\r\n if (data.status == 200)\r\n $scope.ListCountryPhone = data.data.d;\r\n }),\r\n appFactory.getData(`/service/client.svc/GetCIFSales`).then(function (data) {\r\n\r\n if (data.status == 200) {\r\n //const filteredData = data.data.d.filter(item => item.SalesCode !== \"SBY68\");\r\n //$scope.ListSales = filteredData;\r\n $scope.ListSales = data.data.d;\r\n }\r\n \r\n }),\r\n appFactory.getData(`/service/client.svc/GetCIFOffice`).then(function (data) {\r\n\r\n if (data.status == 200)\r\n $scope.ListOffice = data.data.d;\r\n }),\r\n appFactory.getData(`/service/client.svc/GetCIFBank`).then(function (data) {\r\n\r\n if (data.status == 200)\r\n $scope.ListBank = data.data.d;\r\n }),\r\n\r\n ]);\r\n\r\n allPromise.then(function () {\r\n\r\n });\r\n\r\n // when sales is selected\r\n $scope.selectSales = function (item, model, label, event) {\r\n if (item.SalesPersonID) {\r\n $scope.user.Sales = item.SalesPersonID;\r\n $scope.SalesSelected = item;\r\n console.log(\"SalesSelected3\", $scope.SalesSelected)\r\n }\r\n };\r\n\r\n $scope.selectOffice = function (item, model, label, event) {\r\n if (item.OfficeNID) {\r\n $scope.user.Office = item.OfficeNID;\r\n $scope.OfficeSelected = item;\r\n }\r\n\r\n };\r\n\r\n $scope.checkReferral = function () {\r\n console.log($scope.user.ReferalNumber);\r\n if ($scope.user.ReferalNumber == 'GSM') {\r\n appFactory.getData(`/service/client.svc/GetAliasSales?alias=SBY68`).then(function (data) {\r\n\r\n if (data.status == 200) {\r\n\r\n // jika id sales di temukan maka:\r\n if (data.data.d.SalesPersonID) {\r\n\r\n $scope.SalesSelected = data.data.d;\r\n console.log(\"SalesSelected\", $scope.SalesSelected)\r\n console.log(\"SalesCode\", $scope.SalesSelected.SalesCode)\r\n $scope.disablesales = true;\r\n }\r\n }\r\n });\r\n } else {\r\n $scope.disablesales = false;\r\n }\r\n }\r\n\r\n $scope.checkEmail = function () {\r\n if ($scope.user.Email) {\r\n\r\n appFactory.getData(`/service/client.svc/checkemail?email=${$scope.user.Email}`).then(function (data) {\r\n\r\n if (data.status == 200) {\r\n\r\n if (data.data.d != null) {\r\n var obj = data.data.d;\r\n if (obj.risk == 'high' || obj.risk == 'unknown') {\r\n $scope.user.Email = '';\r\n swal('Gagal', obj.message, \"error\");\r\n } else {\r\n swal('Success', obj.message, 'success');\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n // check bank number duplication\r\n $scope.checkBankNumber = function () {\r\n if ($scope.user.BankNumber) {\r\n\r\n appFactory.getData(`/service/client.svc/checkBankNumber?BK=${$scope.user.BankNumber}`).then(function (data) {\r\n\r\n if (data.status == 200) {\r\n\r\n if (data.data.d != null) {\r\n var obj = data.data.d;\r\n if (obj.key && obj.key == 2) {\r\n $scope.user.BankNumber = '';\r\n Swal.fire('Failed', obj.value, \"error\");\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n // jika url ke: register/{id sales} maka sales selected auto\r\n if ($routeParams.id) {\r\n\r\n if ($routeParams.id == 'ILSANG') {\r\n $scope.user.ReferalNumber = \"ILSANG\";\r\n appFactory.getData(`/service/client.svc/GetAliasSales?alias=VAS67`).then(function (data) {\r\n\r\n if (data.status == 200) {\r\n\r\n // jika id sales di temukan maka:\r\n if (data.data.d.SalesPersonID) {\r\n\r\n $scope.SalesSelected = data.data.d;\r\n console.log(\"SalesSelected\", $scope.SalesSelected)\r\n console.log(\"SalesCode\", $scope.SalesSelected.SalesCode)\r\n $scope.disablesales = true;\r\n }\r\n }\r\n });\r\n $scope.disableReferalNumber = true;\r\n }\r\n else if ($routeParams.id == 'PBR68-D12') {\r\n //$scope.user.ReferalNumber = \"ILSANG\";\r\n appFactory.getData(`/service/client.svc/GetAliasSales?alias=PBR68-D12`).then(function (data) {\r\n\r\n if (data.status == 200) {\r\n\r\n // jika id sales di temukan maka:\r\n if (data.data.d.SalesPersonID) {\r\n\r\n $scope.SalesSelected = data.data.d;\r\n console.log(\"SalesSelected\", $scope.SalesSelected)\r\n console.log(\"SalesCode\", $scope.SalesSelected.SalesCode)\r\n $scope.disablesales = true;\r\n }\r\n }\r\n });\r\n //$scope.disableReferalNumber = true;\r\n }\r\n else if ($routeParams.id == 'ALLAN') {\r\n $scope.user.ReferalNumber = \"ALLAN\";\r\n $scope.disableReferalNumber = true;\r\n\r\n }\r\n else if ($routeParams.id == 'RAMA') {\r\n $scope.user.ReferalNumber = \"RAMA\";\r\n $scope.disableReferalNumber = true;\r\n }\r\n else if ($routeParams.id == 'JCIEJ') {\r\n $scope.user.ReferalNumber = \"JCIEJ\";\r\n appFactory.getData(`/service/client.svc/GetAliasSales?alias=SBY68`).then(function (data) {\r\n\r\n if (data.status == 200) {\r\n\r\n // jika id sales di temukan maka:\r\n if (data.data.d.SalesPersonID) {\r\n\r\n $scope.SalesSelected = data.data.d;\r\n console.log(\"SalesSelected\", $scope.SalesSelected)\r\n console.log(\"SalesCode\", $scope.SalesSelected.SalesCode)\r\n $scope.disablesales = true;\r\n }\r\n }\r\n });\r\n $scope.disableReferalNumber = true;\r\n }\r\n else {\r\n appFactory.getData(`/service/client.svc/GetAliasSales?alias=${$routeParams.id}`).then(function (data) {\r\n\r\n if (data.status == 200) {\r\n\r\n // jika id sales di temukan maka:\r\n if (data.data.d.SalesPersonID) {\r\n\r\n $scope.SalesSelected = data.data.d;\r\n console.log(\"SalesSelected\", $scope.SalesSelected)\r\n console.log(\"SalesCode\", $scope.SalesSelected.SalesCode)\r\n //if ($scope.SalesSelected.SalesCode == \"VAS67\" && $routeParams.id != 'ILSANG') {\r\n // $scope.user.ReferalNumber = \"Enggit Glory\";\r\n // $scope.disableReferalNumber = true;\r\n //}\r\n\r\n $scope.disablesales = true;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n // variables before submit post\r\n $scope.prepareData = function () {\r\n\r\n //if (!$scope.user.Sales && !$scope.user.Office) {\r\n // $scope.user.Office = $scope.Office;\r\n //}\r\n\r\n //if ($scope.user.Sales != \"\" && $scope.user.Office == null) {\r\n // $scope.user.Office = $scope.Office;\r\n //}\r\n if ($routeParams.id) {\r\n $scope.user.Sales = $scope.SalesSelected.SalesPersonID\r\n //if ($scope.SalesSelected.SalesPersonID == \"33789\") {\r\n // $scope.user.ReferalNumber = \"Enggit Glory\";\r\n //}\r\n \r\n }\r\n\r\n\r\n if ($scope.user.Office == null) {\r\n $scope.user.Office = 1;\r\n }\r\n\r\n \r\n \r\n }\r\n\r\n $scope.modalOTP = function () {\r\n //let message = tipe;\r\n let url = 'ModalOTP.html';\r\n let ctrl = 'OTPController';\r\n\r\n var modalInstance = $uibModal.open({\r\n animation: true,\r\n templateUrl: url,\r\n controller: ctrl,\r\n size: 'md',\r\n resolve: {\r\n items: function () {\r\n return $scope.user.Email;\r\n }\r\n }\r\n });\r\n\r\n modalInstance.result.then(function (resolvedResponse) {\r\n $window.location.href = \"#/login\";\r\n }, function () { });\r\n }\r\n\r\n $scope.submit = function () {\r\n $scope.prepareData();\r\n\r\n var urlsvc = '/service/client.svc/RegistrasiUser'; // 1\r\n if ($scope.user.QuestionRDN == 1) {\r\n var preconfirmtranslate = \"submitregistrationconf\"; // 2\r\n }\r\n if ($scope.user.QuestionRDN == 2) {\r\n var preconfirmtranslate = \"submitregistrationconfo\"; // 2\r\n }\r\n if ($scope.user.QuestionRDN == 3) {\r\n var preconfirmtranslate = \"submitregistrationconfo\"; // 2\r\n }\r\n var postData = { User: $scope.user } // 3\r\n var method = \"POST\" // 4\r\n\r\n if ($scope.SalesSelected) {\r\n Swal.fire({\r\n icon: 'question',\r\n title: 'Apakah anda yakin memilih kode sales ini ?',\r\n html: 'Nama : ' + $scope.user.FirstName +\r\n '
Sales : ' + $scope.SalesSelected.SalesCode +\r\n '

' +\r\n '

*Pastikan sales yang anda pilih sudah sesuai

',\r\n showCancelButton: true,\r\n confirmButtonColor: '#dc3545',\r\n confirmButtonText: 'Submit',\r\n showLoaderOnConfirm: true,\r\n preConfirm: (preConf) => {\r\n $scope.PostGetSwal(preconfirmtranslate, urlsvc, postData, method, function (data) {\r\n if (data)\r\n $window.location.href = \"#/login\";\r\n });\r\n }\r\n })\r\n } else {\r\n Swal.fire({\r\n icon: 'question',\r\n title: 'Tidak ada kode sales yang dipilih',\r\n text: 'Apakah anda yakin tidak memilih kode sales ?',\r\n showCancelButton: true,\r\n confirmButtonColor: '#dc3545',\r\n confirmButtonText: 'Submit',\r\n showLoaderOnConfirm: true,\r\n preConfirm: (preConf) => {\r\n $scope.PostGetSwal(preconfirmtranslate, urlsvc, postData, method, function (data) {\r\n if (data)\r\n $window.location.href = \"#/login\";\r\n });\r\n }\r\n })\r\n }\r\n }\r\n}]);\r\n"]}