{"version":3,"sources":["assets/p_hpnew.jpg","assets/p_hpused.jpg","assets/p_cl.jpg","assets/p_pl.jpg","assets/p_shb.jpg","assets/p_cml.jpg","assets/qrcode.png","assets/image/check.png","assets/main/main-loaninfo.jpeg","assets/main/main-payment.jpeg","assets/creditcard.png","assets/main/main-qrcode.jpeg","assets/hp_new.jpg","assets/logo_company_new.png","assets/banner1.jpg","assets/banner2.jpg","assets/hp_used.jpg","assets/cl.jpg","assets/pl.jpg","assets/shb.jpg","assets/cml.jpg","assets/main/main-tracking.jpeg","assets/main/main-header.jpeg","assets/bbl.png","assets/scb.png","assets/kbank.png","assets/logobank/BBL.png","assets/logobank/uob.png","assets/logobank/TNI.png","assets/logobank/SCB.png","assets/logobank/kbank.png","assets/logobank/kungsri.png","assets/logobank/ktb.png","assets/logobank/lh.png","assets/logobank/cs.png","assets/logobank/post.png","assets/logobank/mpay.png","assets/logobank/TMN.png","assets/logobank/tesco.png","assets/main/main-insuranceinfo2.jpeg","assets/image/credit.jpg","assets/barcode.png","assets/icon/tracking_menu.png","assets/icon/tax_menu.png","assets/icon/history_payment_menu.png","assets/logo_banner_no_name.png","assets/ic_logo_banner_no_name2.png","assets/main/main-insuranceinfo.jpeg","assets/bank/bbl.png","assets/bank/scb.png","assets/bank/kbank.png","assets/bank/bay.png","assets/bank/ktb.png","hoc/hoc.js","components/UI/Icon/Icon.js","store/action/actionTypes.js","shared/constant.js","shared/utility.js","store/action/auth.js","store/action/line.js","store/action/agreement.js","store/action/tracking.js","store/action/payment.js","store/action/cs.js","containers/Layout/layout.js","store/action/global.js","components/UI/Carousel/Carousel.js","containers/Home/home.js","components/UI/Button/Button.js","components/UI/Input/Input.js","components/UI/Loading/Loading.js","containers/Authen/SignIn/signin.js","store/action/custInfo.js","containers/newotp/newotp.js","components/UI/DialogScroll/DialogScroll.js","containers/Authen/SignUp/signupresult.js","containers/Authen/SignUp/signup.js","containers/Authen/Logout/logout.js","containers/Authen/Forgot/forgotresult.js","containers/Authen/Forgot/forgot.js","components/UI/Modal/Modal.js","components/UI/Error/Error.js","containers/Authen/Question/question.js","containers/Authen/Otp/otp.js","components/Calculate/Calculate.js","containers/Calculate/CalculateControl.js","components/Product/Product.js","components/Product/ProductDetail.js","components/UI/Header/Header.js","containers/ProductControls/ProductControl.js","containers/ProductControls/ProductShowDetail.js","components/UI/PathTree/PathTree.js","components/UI/Paper/Paper.js","components/Contact/Branch/Branch.js","containers/ContactControls/Branch/BranchControls.js","components/Contact/Contact/Contact.js","containers/ContactControls/Contact/ContactControls.js","components/Complaint/Complaint.js","containers/ComplaintControls/ComplaintControls.js","containers/ContactControls/ContactCovid19/ContactCovid19Controls.js","components/UI/Paginate/Paginate.js","components/ManageAgreement/ManageAgreementInfo/ManageAgreementInfo.js","components/UI/ProgressBar/ProgressBar.js","components/ManageAgreement/info.js","components/UI/Steppers/Stepper.js","components/Tracking/Step.js","components/UI/SteppersCovid19/StepperCovid19.js","components/TrackingCovid19/StepCovid19.js","containers/ManageAgreementControls/ManageAgreementControls.js","components/ManageAgreement/main.js","containers/ManageAgreementControls/ManageAgreementMainControls.js","components/ManageAgreement/ManageAgreementPayment/ManageAgreementPaymentList.js","components/ManageAgreement/paymentlist.js","containers/ManageAgreementControls/ManageAgreementControlsPaymentList.js","components/ManageAgreement/ManageAgreementPayment/ManageAgreementPayment.js","components/ManageAgreement/payment.js","containers/ManageAgreementControls/ManageAgreementControlsPayment.js","components/ManageAgreement/ManageAgreementPayment/ManageAgreementQRCode.js","components/ManageAgreement/qrcode.js","containers/ManageAgreementControls/ManageAgreementControlsQRCode.js","components/ManageAgreement/ManageAgreementDescription/ManageAgreementDescription.js","components/ManageAgreement/description.js","containers/ManageAgreementControls/ManageAgreementControlsDetail.js","components/ManageAgreement/ManageAgreementInsurance/ManageAgreementInsurance.js","components/ManageAgreement/insurance.js","containers/ManageAgreementControls/ManageAgreementControlsInsurance.js","components/ManageAgreement/ManageAgreementHistory/ManageAgreementHistory.js","components/ManageAgreement/history.js","containers/ManageAgreementControls/ManageAgreementControlsHistory.js","components/ManageAgreement/ManageAgreementCloseAcc/ManageAgreementCloseAcc.js","components/ManageAgreement/closeacc.js","containers/ManageAgreementControls/ManageAgreementControlsCloseAcc.js","components/ManageAgreement/ManageAgreementChangeAddr/ManageAgreementChangeAddr.js","components/ManageAgreement/changeaddr.js","containers/ManageAgreementControls/ManageAgreementControlsChangeAddr.js","components/Apply/ApplyForm/ApplyForm.js","containers/ApplyControls/ApplyControls.js","components/Apply/ApplyStep5/ApplyStep5.js","containers/Authen/Forgot/resetpassword.js","containers/Dummy/DummyPage.js","containers/Authen/Forgot/forgotusername.js","components/UI/Error/BlankPage.js","components/Tracking/TrackingRequest.js","containers/Tracking/TrackingRequests.js","components/TrackingCovid19/TrackingRequestCovid.js","containers/Tracking/TrackingRequestsCovid.js","containers/Tracking/Tracking.js","components/Personal/Agreements/List/AgreementItem.js","containers/Personal/Agreement/List/MyAgreements.js","components/Personal/Agreements/List/Payment.js","containers/Personal/Agreement/List/MyPayments.js","containers/Personal/Agreement/List/Agreements.js","containers/Personal/Agreement/List/Detail/AgreementDetail.js","components/Personal/Insurances/Insurance.js","containers/Personal/Agreement/List/Detail/InsuranceAgreement.js","components/Personal/Agreements/List/History/History.js","containers/Personal/Agreement/List/Detail/PaymentHistory.js","containers/Personal/Agreement/PaymentItem/EditInstallment/EditInstallment.js","containers/Personal/Agreement/PaymentItem/PaymentItemList.js","containers/Payment/PaymentChannal.js","containers/Payment/BarcodeAndQR.js","containers/Personal/Agreement/ClosedAgreement/ClosedAgreement.js","components/EtaxEreceipt/PolicyEtax.js","components/EtaxEreceipt/FormEtax.js","components/EtaxEreceipt/ConfirmEmailEtax.js","components/EtaxEreceipt/CompleteEtax.js","containers/EtaxEreceipt/RegisterEtax.js","hoc/scrollToTop.js","containers/Payment/PaymentSuccess.js","containers/CustomerService/filterpage.js","containers/ConsentControls/Consentdowloadfile.js","components/Consent/Consent.js","containers/ConsentControls/ConsentControls.js","containers/App.js","serviceWorker.js","store/reducer/auth.js","store/reducer/line.js","store/reducer/custInfo.js","store/reducer/global.js","store/reducer/agreement.js","store/reducer/tracking.js","store/reducer/payment.js","store/reducer/cs.js","rootReducer.js","store/saga/agreement.js","store/saga/tracking.js","store/saga/payment.js","store/saga/cs.js","store/saga/index.js","index.js","store.js"],"names":["module","exports","Hoc","props","children","icon","type","style","padding","width","height","margin","textAlign","align","href","path","target","className","classes","join","onClick","clicked","VIEW_STATE","API_MYASK","API_MYASK_HEADER","API_OTP","updateObject","oldObject","updatedProperties","checkValidity","value","rules","data","isValid","code","required","trim","minLength","length","maxLength","isEmail","test","isNumeric","searchData","pFilter","pData","lowercasedFilter","toLowerCase","filteredData","filter","item","Object","keys","some","key","includes","formElementsArray","map","push","checkError","label","textError","randNumber","len","str","Math","floor","random","toString","pad","max","randString","result","characters","charactersLength","i","charAt","logError","log","DATA","log_err","axios","post","headers","numberWithCommas","x","replace","authSuccess","token","userName","idToken","logout","lineId","dispatch","lineid","username","header","then","res","logoutSuccess","sessionStorage","removeItem","auth","setItem","authCheckState","getItem","sendOTP","mobile","refOtp","Util","passOtp","otpData","otp","CODE","alert","catch","err","setLineToken","getAgreementsSuccess","runNo","agreements","run_no","getAgreementsFailed","error","getAgreementDetailSuccess","detail","getAgreementDetailFailed","getInsuranceAgreementSuccess","insurances","getInsuranceAgreementFailed","getPaymentAgreementFailed","getClosedAgreementDetailSuccess","getClosedAgreementDetailFailed","insertPayDataSuccess","agr_code","insertPayDataFailed","getPaymentDetailOriginSuccess","paymentDetailOrigin","getPaymentDetailOriginFailed","getTrackingRequestSuccess","requests","getTrackingRequestFailed","getTrackingRequestCovidFailed","insertAgreementPayList","agreement","items","is_closed","removeAgreementPayList","getPaymentItemSuccess","paymentItems","getPaymentItemFailed","getFullSummaryPaymentSuccess","getFullSummaryPaymentFailed","csFilterSuccess","results","csFilterFailed","connect","state","lineFriend","telNo","mailTo","single","global","setSingle","flag","actions","withRouter","useEffect","hide","URLSearchParams","location","search","get","handleBranch","region","history","pathname","mail","tel","useState","menuCheck","setMenuCheck","display","src","logoCompany","alt","id","checked","onChange","htmlFor","to","isAuthenticated","top","marginBottom","Grid","container","_imageGallery","React","createRef","cursor","ref","image","showThumbnails","infinite","showFullscreenButton","showPlayButton","showBullets","autoPlay","slideInterval","getCurrentIndex","product_id","url_product","url","withStyles","root","fontFamily","title","fontSize","lineHeight","imgFullHeight","gridList","tile","theme","useTheme","breakpoints","reverse","reduce","output","matches","useMediaQuery","up","useWidth","images","original","hp","originalAlt","cl","hp_used","pl","shb","cml","redirect","window","scrollTo","query","entries","param","Carousel","GridList","spacing","cellHeight","cols","GridListTile","e","preventDefault","banner1","GridListTileBar","titlePositionBottom","open","banner2","button","form","backgroundColor","color","fontColor","borderColor","border","borderRadius","btnType","load","download","disabled","input","inputElement","inputClasses","labelPos","textinvalid","chkTextValid","textInvalid","touched","shouldValidate","invalid","checkPass","alignItems","setfontsize","marginTop","paddingTop","flex","elementType","elementConfig","styleInput","min","inputMode","isAndroid","mode","pattern","changed","placeholder","thousandSeparator","decimalSeparator","decimalScale","fixedDecimalScale","onValueChange","changedNumber","show","text","FormGroup","row","FormControlLabel","control","Checkbox","check","transform","Typography","Paper","inside","outline","IconButton","aria-label","options","option","displayValue","renderCustomHeader","date","changeYear","changeMonth","decreaseMonth","increaseMonth","prevMonthButtonDisabled","nextMonthButtonDisabled","justifyContent","getYear","years","months","getMonth","indexOf","onBlur","blur","selected","startDate","dateFormat","styleContainer","styleLabel","loading","CircularProgress","position","left","line","userId","onAuth","onSetLineToken","onSetCustInfo","firstName","lastName","user","order","validation","valid","password","errors","isSignup","formIsValid","signin","setSignin","isDefault","SetLoading","inputChangedHandler","event","field","validate","updatedFormElement","updatedForm","inputIdentifier","updatedState","setType","showPW","setShowPW","Loading","onSubmit","scroll","data_login","MSG","LINE_KEY","arrayObj","arraySignin","checkedValidate","RadioBoxContainer","styled","div","NewOTP","mobileNumberType","setMobileNumberType","newMobileNumber","setNewMobileNumber","existMobileNumber","setExistMobileNumber","OTPInput","setOTPInput","isLoadingMobileNumber","setIsLoadingMobileNumber","errorMsg","setErrorMsg","isSendingOtp","setIsSendingOtp","setRefOtp","mobileNumber","setMobileNumber","getMobileNumber","id_card","idcard","validRequestOTP","visible","onHide","dismissableMask","autoFocus","goback","name","mobileNumberForSend","mobile_type","mobile_no","message","DialogScroll","Dialog","onClose","aria-labelledby","aria-describedby","DialogTitle","DialogContent","dividers","DialogContentText","tabIndex","DialogActions","SignupResult","useHistory","CheckImage","onAuthSuccess","page","setPage","setChecked","setOpen","isLoding","setIsLoding","labelError","confirmPassword","email","formCheckErr","signup","setSignup","onChangeHandler","val","checkConfirmpass","updatedConfirmpass","updatedPassword","textConfirmpass","checkUsernameAndIdCard","username_valid","username_msg","idcard_valid","idcard_msg","console","onShowPW","arraySignup","textDecoration","ref_otp","pwd_otp","onLogout","clearAgreementState","clearPaymentState","ForgotResult","Forgot","usernameRes","setUsernameRes","passwordRes","setPasswordRes","chkError","forgotForm","setForgotForm","goToOtpPage","checkUsernameByIdCard","arrayForgot","submitHandler","goToResultPage","substring","Modal1","makeStyles","modal","useStyles","Modal","close","closeAfterTransition","disableScrollLock","BackdropComponent","Backdrop","BackdropProps","timeout","ErrorModal","paper","palette","background","boxShadow","shadows","link","onSendOTP","otpRedirect","question","q1","q2","q3","q4","textAns","questionForm","setQuestionForm","Date","setStartDate","setLoading","btnLoading","setBtnLoading","size","startAt","Array","range","mounted","LIST_DATA","id_code","remark","maxlength","ques","k","onChangeTel","mobileNo","otpPass","status","reren","setReren","xs","ansData","card_no","birth","post_no","sender","Error","toLocaleDateString","minWidth","boxSizing","otpTime","respText","setOtp","timer","setTimer","info","setInfo","setStatus","updateInfo","updateStatus","regis_from","setInterval","clearInterval","updateState","OTPLength","otpType","inputStyles","marginRight","borderBottom","apply","Axios","createMuiTheme","overrides","MuiGrid","Calculate","orderForm","product","street","zipCode","config","formElement","chartType","role","legend","maxLines","bars","chartArea","axes","0","side","y","isStacked","tooltip","trigger","colors","direction","justify","CalculateControl","Product","onSelectProduct","subtitle","img","textHeader","subText","ProductControl","products","setProduct","name_th","title_th","descrip","desc_th","flexGrow","lg","md","sm","desc","p_hpnew","p_hpused","p_cl","p_pl","p_shb","p_cml","Container","maxWidth","ProductDetail","onClicked","ProductDetails","productForm","setProductForm","productid","setProductid","setName","setDescrip","setTitle","setImage","setUrl","match","params","flexWrap","ol","LinkRouter","Link","component","RouterLink","typography","listTree","index","pathLen","divStyle","lastItem","pathLink","listItem","nav","list","breadcrumbs","Breadcrumbs","el","elevation","branch","branchs","no","soi","rd","dis","amp","prv","zip","fax","time","BranchControls","branchForm","setBranchForm","PREBRANCH_NAME_T","SHORT_NAME_E","ADD_NO","ADD_SOI","ADD_RD","ADD_DIS","ADD_AMP","ADD_PRV","ADD_ZIP","OPEN_TIME","PREBRANCH_TEL","FAX","MAP","MAP_DIRECTION","REGION","province","setProvince","frameBorder","Branch","setRegion","useRegion","setUseRegion","handleCenter","handleEast","handleWest_South","handleNorth","handleNorthEast","classes1","classes2","classes3","classes4","classes5","covid","variant","square","lastname","number","rows","resize","contractForm","setContractForm","updateForm","updateType","ID_CODE","REMARK","sendData","CUSTOMER_TYPE","FIRST_NAME","LAST_NAME","MOBILE_NO","EMAIL","CONTRACT_NO","INFORMATION","LINE_ID","APPLY","arrayContact","usr","notice_type","notice1","notice2","notice3","notice4","notice5","notice6","notice7","notice8","noticetypeState","setnoticetypeState","producttype","custype","agrcode","noticetype","noticetype2","noticetype3","noticetype4","noticetype5","noticetype6","noticetype7","noticetype8","callback","callbacktext","complaintForm","setcomplaintForm","mount","res2","product_code","product_name","updateProduct","updateType2","updateType3","updateType4","updateType5","updateType6","updateType7","updateType8","sourceby","TEL1","TEL2","PRODUCT_TYPE","CUS_TYPE","AGR_CODE","NOTICE_TYPE","NOTICE_DETAIL","CALL_BACK_CHANNEL","CALL_BACK_MAIL","USER","SOURCEBY","data2","device","userCode","comCode","pTaskCode","pChannelMail","pToemail","pBccemail","pSumresp","updatedFormElement2","updatedFormElement3","updateChecked","updateNoticeState","updateFormValidate","updateFormValidate2","arrayComplaint","cardno","CARD_NO","Paginate","previousLabel","nextLabel","breakLabel","breakClassName","pageCount","marginPagesDisplayed","pageRangeDisplayed","containerClassName","subContainerClassName","activeClassName","onPageChange","forcePage","ManageAgreementInfo","setCheck","Info","Status","StatusCovid19","setStatusCovid19","handleTab","onSelected2","mli","xl","count1","count2","count3","onSelected","count","ProgressBar","fillerStyles","completed","bgcolor","fontWeight","marginLeft","n_term","terms","carcountry","carnumber","carbrand","onSelectNumber","onSelectCloseAcc","parseFloat","round","ar","toFixed","balance","pricepermonth","onSelectQRCode","Steppers","MuiStepLabel","active","MuiTypography","body2","MuiStepConnector","vertical","MuiStepper","activeStep","setActiveStep","steps","QontoConnector","alternativeLabel","borderTopWidth","StepConnector","useQontoStepIconStyles","zIndex","QontoStepIcon","icons","1","2","clsx","stepper","Stepper","connector","orientation","StepLabel","StepIconComponent","step","ref_code","regnum","fin_type","amount","cartype","description","SteppersCovid19","apply_date","approve_date","apply_msg","approve_msg","stepCovid19","user_name","loadingFinance","setLoadingFinance","loadingStatus","setLoadingStatus","manageAgrForm","setManageAgrForm","manageAgrForm2","setManageAgrForm2","manageAgrForm3","setManageAgrForm3","redi","setRedi","sum","setCount","setCount2","setCount3","form3","FIN_TYPE","cus_code","CUS_CODE","new_card_no","NEW_CARD_NO","body","BODY","brand","BRAND","reg_num","REG_NUM","reg_province","REG_PROVINCE","asset_description","ASSET_DESCRIPTION","install","INSTALL","os_balance","OS_BALANCE","n_due_i","N_DUE_I","flat_rate","FLAT_RATE","disbursement_date","DISBURSEMENT_DATE","AR","TERMS","N_TERM","scan_code","SCAN_CODE","covid_apply_date","COVID_APPLY_DATE","covid_apply_msg","COVID_APPLY_MSG","covid_approve_date","COVID_APPROVE_DATE","covid_approve_msg","COVID_APPROVE_MSG","add1","ADD1","add2","ADD2","POST","form2","RESULT_TASK","DISBURSE_DATE","REF_CODE","result_task","disburse_date","brand_name","BRANDNAME","bdy","BDY","model_name","MODEL_NAME","fin_amt","FIN_AMT","redirectpage","setTab2","setTab1","setTab3","currentPage","setFilter","formElementsArray2","formElementsArray3","tab2","tab3","click","agrPerPage","currPageAgreement","setCurrPageAgreement","currPageStep","setCurrPageStep","currPageStepCovid19","setCurrPageStepCovid19","indexOfLastAgr","indexOfFirstAgr","slice","manyagr","ceil","main","paddingLeft","paddingRight","onSelectAgreement","mtk","onSelectTracking","mh","ManageAgreementPaymentList","mp","onSelectPayment","paymentlist","ins_type","total","ins1","ins2","ins3","handleOpen","float","pol_num","total_prem","agrtmp","setPaymentlist","totalamt","setTotalamt","j","TOTAL_PREM","INS_TYPE","agr","POL_NUM","openEdit","setOpenEdit","ManageAgreementPayment","payment","onSelectDetail","creditcard","bbl","scb","kbank","qrcode","openDetail","setOpenDetail","scancode","ManageAgreementQRCode","QRCode","BarCode","handleClose","font","format","qr","ManageAgreementDescription","interest","firstdate","term","onSelectHistory","edit","btnedit","changeadd1","setEdit","Path","onSelectInsurance","ManageAgreementInsurance","mii","insurance","ins_exp","onSelectRenew","paid_amount","premium","year","ins_com","cov_amt","ins_date_th","ins_exp_th","setInsurance","com_code","COM_CODE","INS_COM","ins_date","INS_DATE","INS_EXP","INS_DATE_TH","INS_EXP_TH","PAID_AMOUNT","PREMIUM","COV_AMT","YEAR","ManageAgreementHistory","Payment","setPayment","Regis","setRegis","Insurance","Etc","setEtc","Accordion","AccordionSummary","expandIcon","aria-controls","price","AccordionDetails","last_paid_dt","LAST_PAID_DT","sum_paid","SUM_PAID","ManageAgreementCloseAcc","closeacc","ManageAgreementChangeAddr","changeaddr","TableContainer","Table","TableHead","TableRow","TableCell","TableBody","carnum","ApplyForm","Credit","loadPage","values","formattedValue","lineHeader","custInfo","productvalue","caryear","limit","applyForm","setApplyForm","setLoadPage","cartypevalue","producttypevalue","timevalue","caryearvalue","amountvalue","CONTRACT_TIME","PRODUCT","CAR_TYPE","AMOUNT","carType","contractTime","split","toLocaleTimeString","mdy","month","parseInt","formattedDate","dataLine","events","messages","altText","contents","layout","weight","gravity","wrap","updateProducts","updateTime","updateYear","updateCar","car","TIME","val_1","val_2","CAR","updateName","FirstName","updateLastName","LastName","arrayApply","buttonSubmit","realpath","ResetPassword","resetPassForm","setResetPassForm","resetPass","arrayResetPW","DummyPage","urlInput","setUrlInput","authInput","setAuthInput","method","setMethod","response","setResponse","JSON","stringify","contacts","from","bodyData","setBodyData","inputId","client_id","client_secret","grant_type","scope","access_token","tokenType","token_type","req","parse","callApi","ForgotUsername","USER_NAME","arrayForgotUserName","lablePos","BlankPage","trackingRequest","request","tracking","requestsState","actionTypes","TrackingRequest","trackingRequestCovid","requestsCovid","requestsCovidState","TrackingRequestCovid","getTrackingRequest","getTrackingRequestCovid","setTabIndex","memo","onInsertPayData","getViewOnInsertPayData","isCurrency","pay_data_status","canInsert","Chip","onDelete","onRemove","x_condition","paid_terms","showValue","b_type","original_amount","overdue_amount","n_due_i_date","installment_i_vat","officer","ButtonBase","focusRipple","onOpenQR","ref_1","ref_2","barcode","opacity","onPayment","faMoneyBillAlt","onView","faFileAlt","onClosedAgreement","faExclamationCircle","prev","next","agreementsState","payment_agreements","getAgreements","filterAgreements","insertPayData","clearPayment","toast","useRef","agreementsFilter","setAgreementFilter","scanCode","setScanCode","scanCodeV","setScanCodeV","setRef1","setRef2","tabSelect","setTabSelect","openModal","setOpenModal","findIndexInPayment","findIndex","p","onViewDetail","useCallback","onClosedAgreementDetail","showToast","severity","summary","msg","current","life","isQR","vArr","v","handleQRTab","handleBarCodeTab","handleOpenModal","handleCloseModal","level","innerWidth","iconPos","itemData","sub_key","replaceAll","closed","payment_amount","onViewClosedAgreement","faEye","onEditSummary","faEdit","generateBatch","payments","useLocation","paymentAmount","setPaymentAmount","generatingState","setGeneratingState","obj","onRemoveSinglePayment","paymentsReq","dtArr","payment_detail","dt","offsetting_rule","sub_off_rule","pay_flag","list_payment_detail","list_payment","batchNo","origin","hash","encodeURIComponent","URL_PAYMENT","goToPaymentExternal","BATCH_NO","closable","paymentItem","payment_agreements_size","tab_index","overflowX","trackingIcon","taxIcon","URL_PAYMENT_HISTORY","onOpenPaymentHistory","historyPaymentIcon","threshold","detailState","getAgreementDetail","goBack","first_paid_date","is_person","address","address_m","address_c","insurancesState","getInsuranceAgreement","History","last_paid_dt_th","paymentsHistory","paymentsHistoryState","getPaymentAgreement","amountPaid","setAmountPaid","currentPaymentDetail","setCurrentPaymentDetail","currentAmount","setupCurrentPaymentDetail","originAmount","callOffsetingRule","i_order","I_ORDER","PAY_FLAG","DESCRIPTION","ori_amt","ORI_AMT","paid_amt","PAID_AMT","alignSelf","inputStyle","minFractionDigits","maxFracionDigits","isNaN","onCalculate","onConfirmAmount","paymentDetailState","borderStyle","borderWidth","paymentItemsState","paymentItemsStateMsg","getPaymentItem","updateAgreementPayList","agr_data","getPaymentDetailOrigin","setAgreement","agrCode","setAgrCode","paymentItemUser","setPaymentItemUser","setAmount","installment","setInstallment","showEditInstallment","setShowEditInstallment","originAmount01","setOriginAmount01","agreementCurrent","find","updatedDetail","paymentAgr","detailKey","pNewItem","updated","calculateAmount","getAmountDisplay","getIndexPaymentItemUser","togglePaymentItemUser","newAmount","getGroupItemView","toggleable","updatedAmount","confirmEditInstallment","getInstallmentItemView","textDecorationColor","newArray","ref1","ref2","closedDetail","closedDetailState","closedDetailStateMsg","getClosedAgreementDetail","action","setAction","setComCode","sum_paid_all","new_tr","confirmClosedAgreement","PolicyEtax","accept","onAccept","onNextPage","FormEtax","emailCurrent","setEmailCurrent","content","onChangeEmail","onPrevPage","ConfirmEmailEtax","refId","setRefId","OTP","setOTP","errorMsgOTP","setErrorMsgOTP","checkingOTP","setCheckingOTP","sendMailOTP","email_to","owner","subject","second_expired","template","option_password","length_digit","ref_id","otpInput","closeOnEscape","CompleteEtax","onClickHandler","indexPage","setIndexPage","acceptPolicy","setAcceptPolicy","formEtax","setFormEtax","setInitialData","nextPage","goToFormPage","goToConfirmEmailPage","goToCompletePage","prevPage","goToPolicyPage","FilterContainer","onCallCsFilter","tableRef","columns","selectedColumns","setSelectedColumns","setData","isLoading","setIsLoading","callFilter","reset","filters","cus_name","reg_prv","onGetFilterValueColumn","column","json","matchMode","FilterMatchMode","CONTAINS","matchModes","columnComponents","col","sortable","filterMatchModeOptions","showFilterMenu","showClearButton","onKeyDown","paginator","showGridlines","stripedRows","removableSort","filterDisplay","paginatorPosition","paginatorTemplate","currentPageReportTemplate","rowsPerPageOptions","responsiveLayout","selectionMode","onRowSelect","store","onLogin","DownloadButton","pathfile","pfilename","pFile","http","Response","totalSelectFile","totalFiles","dataSelectItems","pPATHfile","totalSizeFile","totalKB","totalMB","final_totalB","final_totalKB","final_totalMB","setbase64URL","setRerenTmp","handleFileInputChange","fileitemsList","files","file","fileitems","Promise","resolve","baseURL","reader","FileReader","readAsDataURL","onload","base64URL","itemno","pcardno","xcard","base64","getUplaodFiles","updateList","document","getElementById","file_name","file_size","file_sizeonly","innerHTML","checkCus","checkBoxes","querySelectorAll","dataUpItems","forEach","fileAll","dataSelect","folder_name","file_nameonly","file_type","xfirstname","xlastname","xtel","xcallback","multiple","maxFileSize","hidden","for","ssCard","scard","consentForm","setconsentForm","first_name","last_name","e_mail","mobile_phone","contact_channel","contact_text","request_type","source_by","input_user","xemail","xnoticetype","onChangeCardno","PrimeReact","ripple","shouldLoading","onSetLineProfile","profile","setProfile","onTryAutoSignup","onLineAutoSignup","onSetShouldLoading","should","onSetConfig","showPolicy","setShowPolicy","navigationType","performance","navigation","getEntriesByType","perFormanceNavigation","liff","init","liffId","getConfig","getProfile","LINE_FRIEND","OTP_TIME","TEL_NO","MAIL_TO","getOS","isLoggedIn","isInClient","maximized","overlay","cookieName","buttonText","paddingBottom","buttonStyle","exact","Home","render","Logout","Signup","Question","ConfirmOTP","ApplyProduct","ProductControls","ProductShowDetail","Contact","ComplaintControls","ContractCovid19Controls","ManageAgreementMainControls","TrackingAgreement","Agreements","AgreementDetail","InsuranceAgreement","PaymentHistory","PaymentItemList","PaymentChannal","BarcodeAndQR","PaymentSuccess","ClosedAgreement","RegisterEtax","ManageAgreement","ManageAgreementDetail","ManageAgreementControlsHistory","ManageAgreementControlsCloseAcc","ManageAgreementControlsInsurance","ManageAgreementControlsChangeAddr","ApplySuccess","Tracking","FilterPage","ConsentControls","Boolean","hostname","initialState","authStart","authFail","authLogout","otpStart","otpSuccess","setConfig","reducer","Authorization","setLineProfile","setShouldLoading","setCustInfo","agreementsStateMsg","detailStateMsg","insurancesStateMsg","paymentsHistoryStateMsg","setTabAgreementIndex","getAgreementsStart","getAgreementDetailStart","getInsuranceAgreementStart","getPaymentAgreementStart","getPaymentAgreementSuccess","payments_history","getClosedAgreementDetailStart","insertPayDataStart","objAgr","splice","getPaymentDetailOriginStart","paymentDetailStateMsg","requestsStateMsg","requestsCovidStateMsg","getTrackingRequestStart","getTrackingRequestCovidStart","getTrackingRequestCovidSuccess","requests_covid","clearTrackingState","fullSummaryPayment","fullSummaryPaymentState","fullSummaryPaymentStateMsg","generateBatchState","generateBatchStateMsg","payment_item","getPaymentItemStart","getFullSummaryPaymentStart","generateBatchStart","generateBatchSuccess","generateBatchFailed","resultsState","resultsStateMsg","getCsFilterStart","getCsFilterSuccess","getCsFilterFailed","rootReducer","combineReducers","authReducer","lineReducer","custInfoReducer","globalReducer","agreementReducer","trackingReducer","paymentReducer","cs","csReducer","getAgreementsSaga","insertPayDataSaga","getAgreementDetailSaga","getInsuranceAgreementSaga","getPaymentAgreementSaga","getClosedAgreementDetailSaga","clearStateAgreementSaga","getPaymentDetailOriginSaga","put","RUN_NO","AGREEMENTS","agree","ORIGINAL_AMOUNT","os_terms","OS_TERMS","PAID_TERMS","X_CONDITION","B_TYPE","OFFICER","REF_1","REF_2","undefined","KEY","SUB_KEY","TITLE","overdue_balance","next_due","FIRST_PAID_DATE","INSTALLMENT_I_VAT","IS_PERSON","ADDRESS","ADDRESS_M","ADDRESS_C","payment_historys","LAST_PAID_DT_TH","ITEMS","fin_ty","FIN_TY","NEW_TR","agr_flg","AGR_FLG","SUM_PAID_ALL","getTrackingRequestSaga","getTrackingRequestCovidSaga","clearStateTrackingSaga","down_amt","DOWN_AMT","getPaymentItemSaga","getFullSummaryPaymentSaga","clearStatePaymentSaga","CancelToken","source","cancelToken","isCancel","cancel","bType","term_arrears","TERM_ARREARS","overdue_inst","OVERDUE_INST","pastdue_vat","PASTDUE_VAT","interest_charge","INTEREST_CHARGE","follow_up_fee","FOLLOW_UP_FEE","chq_charge","CHQ_CHARGE","other","OTHER","net_rtn_charge","NET_RTN_CHARGE","net_direct_debit_charge","NET_DIRECT_DEBIT_CHARGE","interest_ext","INTEREST_EXT","fee_ext","FEE_EXT","csFilterSaga","filterStr","watchAgreement","watchTracking","watchPayment","watchCs","takeEvery","all","cancelled","preloadedState","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","sagaMiddleware","createSagaMiddleware","createStore","persistReducer","storage","whitelist","applyMiddleware","thunk","agreementSagaTask","run","paymentSagaTask","trackingSagaTask","csSagaTask","toPromise","configureStore","persister","persistStore","app","persistor","ReactDOM","navigator","serviceWorker","ready","registration","unregister"],"mappings":"2FAAAA,EAAOC,QAAU,IAA0B,qC,oBCA3CD,EAAOC,QAAU,IAA0B,sC,oBCA3CD,EAAOC,QAAU,IAA0B,kC,oBCA3CD,EAAOC,QAAU,IAA0B,kC,oBCA3CD,EAAOC,QAAU,IAA0B,mC,oBCA3CD,EAAOC,QAAU,IAA0B,mC,kBCA3CD,EAAOC,QAAU,08Q,oBCAjBD,EAAOC,QAAU,IAA0B,mC,oBCA3CD,EAAOC,QAAU,IAA0B,4C,0CCA3CD,EAAOC,QAAU,IAA0B,2C,kBCA3CD,EAAOC,QAAU,klZ,oBCAjBD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,oC,0CCA3CD,EAAOC,QAAU,IAA0B,8C,oBCA3CD,EAAOC,QAAU,IAA0B,qC,oBCA3CD,EAAOC,QAAU,IAA0B,qC,oBCA3CD,EAAOC,QAAU,IAA0B,qC,oBCA3CD,EAAOC,QAAU,IAA0B,gC,oBCA3CD,EAAOC,QAAU,IAA0B,gC,oBCA3CD,EAAOC,QAAU,IAA0B,iC,oBCA3CD,EAAOC,QAAU,IAA0B,iC,oBCA3CD,EAAOC,QAAU,IAA0B,4C,oBCA3CD,EAAOC,QAAU,IAA0B,0C,oBCA3CD,EAAOC,QAAU,IAA0B,iC,oBCA3CD,EAAOC,QAAU,IAA0B,iC,oBCA3CD,EAAOC,QAAU,IAA0B,mC,oBCA3CD,EAAOC,QAAU,IAA0B,iC,kBCA3CD,EAAOC,QAAU,koL,kBCAjBD,EAAOC,QAAU,sgH,oBCAjBD,EAAOC,QAAU,IAA0B,iC,oBCA3CD,EAAOC,QAAU,IAA0B,mC,oBCA3CD,EAAOC,QAAU,IAA0B,qC,oBCA3CD,EAAOC,QAAU,IAA0B,iC,kBCA3CD,EAAOC,QAAU,s+O,kBCAjBD,EAAOC,QAAU,smO,kBCAjBD,EAAOC,QAAU,smR,oBCAjBD,EAAOC,QAAU,IAA0B,kC,kBCA3CD,EAAOC,QAAU,s4E,yCCAjBD,EAAOC,QAAU,IAA0B,mC,oBCA3CD,EAAOC,QAAU,IAA0B,kD,oBCA3CD,EAAOC,QAAU,IAA0B,oC,kBCA3CD,EAAOC,QAAU,05Q,oBCAjBD,EAAOC,QAAU,IAA0B,2C,oBCA3CD,EAAOC,QAAU,IAA0B,sC,oBCA3CD,EAAOC,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","file":"static/js/main.61fc6950.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/p_hpnew.42b4ae3c.jpg\";","module.exports = __webpack_public_path__ + \"static/media/p_hpused.c5650b3b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/p_cl.683fe180.jpg\";","module.exports = __webpack_public_path__ + \"static/media/p_pl.f11fd1e4.jpg\";","module.exports = __webpack_public_path__ + \"static/media/p_shb.2ef60eb6.jpg\";","module.exports = __webpack_public_path__ + \"static/media/p_cml.59209843.jpg\";","module.exports = \"data:image/png;base64,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AAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAE3PUAzL31AAAj7j/ocv6BJC8AAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAALOegAAGHnrAcb8AwBAjBcAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAFnPcAXeOsBxup7oL7+dfX9T1v9/quf//r619X3f139/Kf3vxcAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAFnPQBzbz3AWP0M1Ncfyur3H23171/9/NfXvy69/70AAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAg46wEAYOStBxir/wNYf+hy/snyAgAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAgQAAAAACAAAEAAAAAAgQAAAAACBAAAAAAIEAAAAAAgAABAAAAAAIEAAAAAAgQAAAAACBAAAAAAIAAAQAAAAACBAAAAAAIEAAAAAAg4KwH+AJvPQDAiG9AW/37V9//9fWHsvr9l+YFAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAgAAAAAECAAAAAAAABAgAAAAAECAAAAAAQIAAAAABAgAAAAAAAAQIAAAAABAgAAAAAECAAAAAAQIAAAAAAAAECAAAAAAQIAAAAABAg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\"","module.exports = __webpack_public_path__ + \"static/media/check.14662814.png\";","module.exports = __webpack_public_path__ + \"static/media/main-loaninfo.00a5bb35.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/main-payment.f857ffb2.jpeg\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/main-qrcode.dfd28f5a.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/hp_new.53960226.jpg\";","module.exports = __webpack_public_path__ + \"static/media/logo_company_new.4a4ef137.png\";","module.exports = __webpack_public_path__ + \"static/media/banner1.80fa24f9.jpg\";","module.exports = __webpack_public_path__ + \"static/media/banner2.6f830f2e.jpg\";","module.exports = __webpack_public_path__ + \"static/media/hp_used.f914be70.jpg\";","module.exports = __webpack_public_path__ + \"static/media/cl.f6b59a5b.jpg\";","module.exports = __webpack_public_path__ + \"static/media/pl.1573d360.jpg\";","module.exports = __webpack_public_path__ + \"static/media/shb.45671d28.jpg\";","module.exports = __webpack_public_path__ + \"static/media/cml.6c75cc0c.jpg\";","module.exports = __webpack_public_path__ + \"static/media/main-tracking.ee381d80.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/main-header.a0053cd5.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/bbl.bae5537f.png\";","module.exports = __webpack_public_path__ + \"static/media/scb.d844fa2a.png\";","module.exports = __webpack_public_path__ + \"static/media/kbank.5c9e53ad.png\";","module.exports = __webpack_public_path__ + \"static/media/BBL.980969ac.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/SCB.5df637ef.png\";","module.exports = __webpack_public_path__ + \"static/media/kbank.1240b083.png\";","module.exports = __webpack_public_path__ + \"static/media/kungsri.70876629.png\";","module.exports = __webpack_public_path__ + \"static/media/ktb.1e911f17.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMMAAADDCAMAAAAIoVWYAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAa1QTFRFAAAAXXSLZnyoMlWAJUiGHj57LEiHUmmbqqqqAjJ2ADJ5ADJ6ATR8ADB4ATR7G0KBBTZ8AC93Lk2JACx1BjZ8BTV8AjR7AC50OliVNFaQEjl7L1aSAjV8ADJ/AC+AADJ7AzV7KUNsVF5cfXxMlI5FCzZ7J0mJDDh9iYVHybc18dgz/+401sE0n6vINVOOM0lpm5NA/+o0opg/GTpy8fT2Z3yoACRt9t00/+Q0/+c0/uM0dnZOHEKEU2yfrrjQ////3OHqeYqyOVaRRFNi/uA0ZGlVQl6WnanF3+Lt9PX1v8baACp0J0iE+vv7AC12qZ07t8DWPlqTETt/38k0BjV6rKA5bYGspJs92t7oV2+h5c4zmKbDACZwcoWw4+buPVmRFz+CsbzU6Ovx///+/v//k6HDqLPNtqg4Gz99n5Y/Tmed7O70SmWb/P39f5C21dvoYnin/v7+jZy97/H1/vv6x83fLU2LhZW5ytHfo6/J6tM10Nbh9vf5YXagwsrdXHSlR2KZACBp8vPx///909jkXHKi4+jlm6fAwcjW+Pn4k6G76e7svcbc7fHw4ubyYJ3f/AAAAI90Uk5TAAsjYKC1dTgD7///////tv//jP///9z/f4/LjP////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////++2mM9AAASiUlEQVR4nO2djV/ayLrH9+2c3SZMlmyS5ZxzA9JuAdutdDm+VCw0ai1aB7JCWY5UVJRqu75LV5TVWrvVu93e3fs333lJIMFgJeCnej/5dT+ajJPJfDMvzzPPBPaTTxw5cuTIkSNHjhw5cuTIkSNHjhw5cuTIkaP/v/r0s8+/+Nsl1hd///LTswm++vs1hmFdl1kM4L4+i+KrL4DLfenlYq991hzha/Cx63c+cXxTiG8E8WPX7pzirjXpTl/y0seu27nFfmPdk75lP3bNWpDHsjd9dkUGAxX4hxXD51eKgf3aiuEf/MeuVyty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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMMAAADDCAYAAAA/f6WqAAAAAXNSR0IB2cksfwAAAAlwSFlzAAALEwAACxMBAJqcGAAAGV5JREFUeJztnXt0l8WZx9luu9Z6qbqtrm69glbXmipVC4YAuZKECKKgQBBIuFShimurnrMel55W7FZtLaiQ6y8RhAQQRF0XtkAuJECQIloELwi4pKLU2+acPdtz1j+y7xN/E57fk5l5533zuyTk+zlnDuF9Z+ad2zPzzMwz8xs0CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIPO+///kpYwqqphWMrW5Iu25JJ1zfd8PSl76v6u+z7w3phBvy1+MZ2bX7Fi4cBQEZgG7BfeuGDkRh+MtFV/zPp9cN+92B3y8eGveGT+zevefyLVuaLu3o6PiGyU9d3a6r8goiv/Mq4vNUNwS4rxzVy3+Nubk41Q00ge7LP2dkNbx166TJCWn4Ng4ePHhqQ0Nz+ZatTZ0Njdsqtm5tvtjmnwQEo0fqXFZOZQXVwycXDvm/PtBwe+3ar76ufd/MWbfY2lxb2+7zv/jii6/Hs937sn172z94QlFLghF1tU1NLZMPHz58hikM1KvkOyr3z9rbT0l1Qw7c8IcOe7v96qH3/uX110/XtaVjx459k7QVr1Mu89re3m3bdlyWqLbujNf4z9za0FzNhIK72tbWHf/Y2dn5N6bwJCBQrxLnysubL6By/vPQYS+muoGb3PFLr+wgPd9rJ1+ztbUDBw6cvXlz4yXkPCH4Fbk33th3drzbdFxoadl5IUmpQTDI7W1salm8c+drF9jiwfwjru5/VbmmutGT+2jI1Z9+dvXQXx164YXLE98i+whNzS1TLUIRKyCN2y6jYc8WH9Sr8G5K8coFVIYHb52Um+TG/9ePMnLW2fT89vb207z6nyhUbq2W4anm1k60X7Bv34GzLaqUXVCaWp7Yv3//Obb4MVH3d/Pnv5BLZdVeOP6eeDZ4tZRJ8xJbHVEdKhUniEv6ZDiZtLbuvNhHlbI6tYpl0y8xUdc7VT5eI/4yTMP/ePA/fUYqzjuV1WnJaS0DBJpUNze3TgsrFNx5w+xS2yoW0SUghTWL0wbwPCQzu6KeyuLI5s1nOTT+Lz8akf3S/jumTrTU4deamlovpPKPRz2Sa2v743fj3db6Fd7Ee3BvRgudfkl6KOmjtu9WVjZfO9AEhDoFyvtHP7yhmev2ZK7wpwX359vKi1YGPbV1SRzrKUYljmeb6veQftjU3FqSoMKu8VvFIjJzykvy8it3prrRJsr96MZnjqm8+un5oI/w1lvvnBVy0u3cE3m93FN79uw9z5YO6klPNgGZNbs+g+fxyJEjp6fCffjhh99KbCs6CWlu3n5RAoUiRkD8bLCIk0G9UnlJUrn2KOd9+/Zpd5aBI97k6twt/uvRcXVs9epvbWnrbwJy8/jII5TubS3bi70RcmmyXEvLjquS01oGEAmYdLu6Lhus99577yxb+vqDepWsugJJxptflKVoyI9xtNrit4pF9BFB6TLVaGpqHZzIMtm1a893Et8CQA/a2nafl2xVysfVUGM7fvz4qbZ0p2okoW+TCugJ8ZOJcMmpdeBLc3Pr5X1AGHo4WiXbs+eNc/3Sn4x5SDLqAfQhaP/C66VmpVoILI6WeZ/0s8Eifr946/X5Y2uqSMWJlzDQwkQ8J8lvvrlvSOJrFfQar7Km9IHG7+tcV7EOHvzk9JGjy+7OzC5/M6ggpI8sa6U44jjf2uuXXtAHOXz48Df7yqTb1ZENENkC+R2CcRGQrJyK/1T+vfi+Hg+X+FoDCacPTrpdHS3z3vHBBx/4bmDRBN1z305GeYKTBG+0qOoDjbxXAtLc3Oqks3sq4/R4fHP37j3WiyHASYDX435L3QbSH53KR7zUIKhGoAs6criln6lSO3bsujTV5QZOYt59991vJ9iaNu6jA0244xwvzh6AWBxuA0m5U2ltaNx2FwQBJIWm5tbiVDd8nWtqarkz1WUDBih0BWdfGy1U2nbvfv1cdflWGJfKcgX9GNqJ9UaLmakWBHJeQ56j0hU2jrfffhun0kDv6QuTbpWW7dvbzgt6dxHdq5vK8gMnKamadHvCWJnqvANgJGpNW5osgdi+fddg+q6n8pzhGsYb1azXfgIQd3pxBWcodclFPaJ7klJZJgCoKzgTIgyNjduKU50/AAKTKGtaFb/3d43JT0PjtlmpzDsARsgSdUucJt5qqZWWf/0EBoA+S7wm3anOBwBxxRstvh96dGhonp/q9AMQd44cOfJ3nuqzLKhAqB8CwagBTlqOHTv2DU+Vmg11CQCG32/rKX905gEn18CAgG4D0R1hVSbetNOMkQIMOOT+hXre0LBtRCrTBUBKodtAuIk3AAAAAAAAAAAAQO/YsGHvZYl27e32X9cE8ScZ9ZrqPCYU2qV8avHWH6ZnlP/LmMLqLWnXLenAr8f0fzZu/NPF113/zNyCsdUvx6tOB3S9vvlm+zljx0VuyS+M0K/KtDsWWHtBUc3yVKcdmFmxYseVAeu080c3PH1oRkndw6lOe5+komLbD2SBHT366Slh4po+c3UJCZDOzb1r/S3xTnt/YNyE5dk0Uuvc7LlrSxPxzddeO/Td8RNqJ/M6zcwpxw0cfsyasyqLF9qcufWht/3TR5bfo+uNcsZUL2trOzwgf3V+dHb5ZlMvHYm0XpGo7+aOqX6cfasjUd85qaBhM5665JiCqok8vozRZavikc7+zHvvfXwmL5ObRpT9e9i4Hln4ykXD0pfui6pG3c7r+ddxf/x73nwDd7q6EFNJGcv+2Nv48sdGKjFRGzSIVM3fPrV5aMboikfkxLc38YqOZpHOz/797aeiDgKSV1BdE+9Ci+2RIkviEWdf4ujRz0+75tolswuLIvVBJq7Kjb05EvpI5/ARy/bK+N54o/0s6U+mq3c5HiCIgu21XknDMY+Teqh4pDNV/OTutfd7DX+nVEnCuqzcyn/rTXp0CxM6f/Gu1wEBLzRP158bh/jipg6AcIy7pbaI1wH9P9Vp6hfoGu7o7MqFozIrfktO9kKkIrjGR6sZOj+0glJQFFkrBYd6zvyxNU+++ureC2WYnTsPnmVasi0oql6v+8606XWTTEuat92+YqItH2yTS6pBHfmFEd+9l8KbazNM6S2dvbbHBWBdZTK2pobKhfaDdHGa8jJtxsoK7s/WIfVIj/dNVdc9vldQNXFUVtkuFU9mduUv/fJNmkBefvVj+WOrNw1LL5uns14w5YPc/J+uzvH7RkIoGlczQzeUZuVWLdHouh15BZEKW3zeRHEBDyMLwqvke4Po1rdNWn63Crv46YbvR1dQxJJt5R/G3bIiQ5cebyL/oi5easw69c1r/HcHSd9P71mXbiqLCbfVrDGEa3/ppdfPV/4W/XrTJZpOoculZ5RtVP5oF9rkTwoPf0crher5L3756pVy5VC5qdNWdv/Yyejsiogl30aVq/jOVeNNYfiyuikN5Px+UD5h8ML1CvR28a7dpQBEmJiMmb5FjhqeLg5acjTFcfTop2fwd/PmvzDcL03pI5et4GF0y7zF0+sLuJ8bhz/7jmmuM2/+mqu5X9vmpCwP2TlQA9EJS15+ZSP9fVPGsja/OO9ZsCbGxojqkb+nPSS/ONRzaoi8nqgcaPSQdUcjhoxT01F1cJMgvzSkfEPQ1Ojkuwcf2vBjv7iiBXkic2xILZ1Vd30QwVIrJl6vv5U/lxVti+PhR16+QtfzSH9Tip+/i7/fsGHv2X7p4/690fI3Lv6okdvee6PAH/y+S6oiD5ObX71UE6d1zkajUkz686tepOckVOqZbnk9Vhgi5fwdCQ2v38bGA2fy97qORQqOX94TilBpYhIjC8wlPrHbGTPcufakClXpDzy4/ib+nFe0TX+lhqUTBF2h8/e0S+6S1zQ2alLvZ/HXHbecxPIlUtcNOGq4fvXC31Mjle9JreR+qKx5uJkl9drNuVgBqpyqnk+8fcXYoG2F5kc8DJmNuIRLGLxhyYoanV2+LWgGTT1w7piq1UHjUvHZvmHSLQ1CoFSzHhU9afLy+7mfmaVrxgXJa1ZOlVYopQpki8Pve4a89RBsuawtOxNNHJ3RZ11tQapcLukN08PTyBMm/wlh0WMbrzUlRqo72bmVTr0WD8PtbUxCEhTeo0ldWqcS0UpSkG9zf88913q+yZ/rzi4fPeSq2sivdqS73tEk3yX/tOzNv7ty5c7v2fKgS5sUlvvu3+BUNoVFNWXKH3WUpm+6rATJ9kVxu+Q/YXAdT+4Q06YQT6yLcR3piI49R1fvoZvU+cHjWLNm1yXquVSJaCJHz2l51lWo+eqGrXckeMOw9YT823LizDujvIKqlx3zb50LUJnw9zo1UsZhSp8tL7zs5TsXYcjMqVwUtH0lFJ4YObkJ05NzXVb2HIVF1U/oKkA1Jq9nrNHtK3BkRdOzyVPrxsj4snIrutNr0o05d86oK+F+yssbz/PLK/cvV+AUctPLEE93w5w3f+1InR+ya8rOq2iV+VSTXo6L6qGrA788y0m7fD8ys7zK77tbtx64gA6c6ZbGbd9OOHPm1o0yJUbquaZNM4mt5yCmFD8/xyIQvgXD5zA5eZUbdYXq6jKzy7vOD3gTxan8ualBcvwaBiuP9hPfM0/0h6Uva/RLL03Qbxz27DE/wZadjHwvVSRytKTsl2feqciOTjGleOUUh7LviG5idj9Lud2azVxbWpu6bICQ7uoq6VG913psURdONoSwgkBOqQRheigx2jipSLr3s+fWD9elzRP0JlrDlytufmmVqzM6sxpZ7nxDzwYPIzs60ip0G2j0jHafGxre7vH71Lq6SBk8MUq/1r2zVTYnptf2GotLGKpsaS3LC5L7lRXtEj/ND2xh5Aio29zSwcOY7H3EXkiPMqRGyOPJzK7QmpIo5IRdN+GUI6Vf2l3L0Vb2JbPWTJBxevPNJ2zxBdknSjhSl6WJnHone/jxE2pLXOLkYbiZgSvpGcsabBUlTZaDpknXIOV6vUu6dfMWw7e7e2DZQ0tB8Brxdr/vkirBw4TdwOJ+bp/yvHauIzHNQybdEXsykr7psn+U5rhPlBTSLDbuYfYWHn1s4zXxkHQ5hIt3xlFDR01N6xAexqAyBO4lXSaoctmQvyudXfdjl0YbJq38vW4vxVWQfb7dYXjurO7wMCmzQSKkrk070Opd2LVfHoavrJA9Cx2Cd00bHZTRVZbc1XYp9KCNhxYU/OKU5ZOmMa3w+3YYAZThdJto9Mwhv92djckmTCLLfvXqXYNlXOQ2bXrr713iE/tEvT5N2SvkUiN/l51X9Sh/53IghxqmreLJDNw1bVzn5SsWYRoQ90/zEvk+jKkJDek8jG6+oFlC7u5JI5GWq1yESeK3i03wPSPdkisRh1Gh0+95kPh0K45JxVRR0XeBjwhm51Wu0IVRS3h0JNIlHjKM4/Fw3ZM/19nZ+OVTN5LYdrJd4tSVzwMPvThE+uEjJXUM/J3NnonDN/jkYocubboNLJsNmgnNAkNXT051E0YYwnRACUPqjFKPlhs7fvGVzq7nVqidU4pXdJ/pZYIVWCf2etfFpncu8wVvsv2S8m+yAuVxuk74bQ1AmnTr/NCGU29HOd2VMvKKH0McXEVyuiFDrvSpb2vURad88EUQ1xXHhOE3OZYT4RkldT1OYikycyq4OULnsJuWxQzN/J1td/OpxVsv9ytYuYZti0+s1GgFMcxEUp6hUOGoYdCyKP0/K7dcHiKKUYM2bz5wrozj1om1D9i+azvXoeDlY5rnhemRbfUi3/l1UtNnrok5KxJmxTFu6A6Q6PxRo+Z+SC0pKV2ZR8c877tvbeborPLtMh4yZ5DxSFshWvOvq2u7nN7RzX1yqVA1Xp1KoxuWaQf5+PH/PlXFJ5dJTeoEwXtJOkDjWoa6nl85Mnn2RrSH+TPdEco0zWajVP2orMk8WudXxidVM908j4+UrsKw4L5114hvxwi2px5X6OqPn3mhulz4i1eG627ycElDQjAdezTZ7dNNerqKkM6L91nbd0kASR/3i4cK+oEHNwz1ywdt5jjE1WFSA3Sntb4SnLJ5LuVo2GX9hBqgnDudENrKp3gccsEhqKNDSBRP1PRBK1hjCiJdx1DpDLLOD11Kbcrj7ZNXZeoaLzk6rsv99sYcxnXuF3doydLk/MKSkdidM54vIL+PLHxlBP0/zNow9e4PPLR+tPouxUW3y4XL0aBBZBlJE9Ibhi29i+JSo4QJarDkTzleBsNHPOt8yxyZSZBQUUfCG5X5kgL9FS5Rk5TuBQsSNE/FWUn52bBhj9ZidkrxqkL1d9G42mdM36O8RvV67TU1Xp73m/Jni5feSf8PPbTheikUJExknv6bxzfdkNJ9BACAA6SyFBRFlqsrQeyurEuXJgmX7+TkRxfelAZXv54aMMPmN8g3dfBrcGzhTeXD/ejKiJ6TmmgKTyNSW9shp40qGy51ueTphh/Y4qD9DxrpaKmX5lB0nltnEauDen7SHNS3aOQ8dOjj02aUrLpe+qVRib7jl15SLV1V11DIdXylXxv+pmtUqlgmup7R0UhT/MpP6Sz7cUmZBtuhDp6mmaVrxprikQfPXaAC53EESXNuflWd9KNuHS+dvXYCf05X2/CwdP+QODjfOX1m/a1B029LX1rPO56056vFPKdDE864LP74k5sHizbTLtsQ9z956sqbLWnskV5SsXpTJlYooaOzytfKZzLhq1bt+M5Xet8JPTpIg3FIB+0uH3KMs0f65PfC2sLLwjf5UxNeb+K6jPsnIzXuT+nNMjxfxpXvuHFimDzIvOj0c10e5/xk9Y3q2eSpz/f4XQgxB+ghECWl9TOj85xPdOmh5W2aN8h0FI2L/LP6Pz++yjvEefPXptMzWsp2L4GA0DqvfKYSI7fvaWVH/dYXX5I1xc3tYmxpIFMFWoaN3qPjLGCGo4td78Lc4RpthE7XXyrbHPqb9gR4GH401CSYam/HdGWnSofLFTE6+GEdQ/xd75RZNc+D611PNEnWvbOli69U0rfl3pCto/MzAe8V4yfU9hAEXog6/VD1MtwUwPQDeWzYN9raUGGojLsIA0+frcdzLQOFuijMZlkqv8MNynRr9uoss82s2hQ/V1+D5iUaf0e0l+6x6aX2jHgP7iIIhCe8m5RfuiJSlydpKcCheYT6m3bnNemOxtFzkzDpP7pok0zhz3nt2HaxLS88F2GwpU+ZHwRVkZQAqGOOrsIgTSCocalwYwppsuerIllNUmxC74cKKy9XUHsFfK6g1DKdaiQRFsQxnZysd8r/z36+Tnu1p1+6U34RAE+MycKR4CqSyWzaRUWK7kZ3NwhHYTCqSGrzK6iKRGmgBiG/4ZcOU1w8fBgVSabDb69EIlUkEiZ2ZLfjmWcaui9YoGtvgoxAtBdzoo3E7tLLvAvX7ne5gG0elXT8VCQFV5FMfvxUJHV7xdGjn53T/f2vdoKN8fLJVbxUJOrBo+pB98TMTxiot7XZ3PPwYVSkoP404bobpRoJ6N/163efK/2qDiS/MOL0U2J8ZOA35ynI7MJ2cbAtbtVJpPyuJIIl2mn41h0mIbhpgW64U1ewUMEWFEVWqm/6CQMffuU7ZdMU5M6lUZnl9SodnqC96lp5rg1Zp69zgbaFJ5MW8hPUPIH3rn6qBq8n119vTXNUoxXReVN3GBpZLHH3jVGB25Sb7vsh+Dlpkx9+Ckq+UwfYb5tY+zP+XA6xunjVO342W76z5/IEyuCMlhP5c2mQaEq/X/wmwWT5dOpwVq/edZFLfhTcAtnP76OL/mN40HJjbaTLHsn0WxGmcCb7J9ZJOB1sSij8UIvNX1p0I8TWY6l4dMMdNQLTOrSrMMjn/IYIW9o91eZpHpfpQl9bOtQIZPuOisMWt22+wM2z/b5jit9lEYHr/y5xM4vjbkH2+00OmS7L+65Ook/8ilAyVCT67QNbgYzKqrjfVGiq57CpSLa46X5/2jikv6PzGWM++eF++Y6emS7LUtDIFVZF4uv9Ywrcj8YSXEVyWUSgH0ZX/v1uLaSdfp1KRfXhp2LR/pRf2xpQKpI68XXvgnXGm+lsPZXqOWwqEs0/5DuaaFPDpENH9H91e5/tdxa4SQZ/rkYgvzO61EDCqEh8ryLMj3MEUZFYmron2i7+ZAdHz2wHePzmj4TrPCop8LMFNn9pDpMn9Z6Oiuqeh0kH3wiTYfgVK7xSqOGy6+5jrjGxHfCx5VPZ7NjCqm/IZ1yVkyqm/HmsadPrQqkKJ9RTt/PlxB1TVuWocLoTjOr3FUxqsQqrK9NbJy5XV3RqD2exOAJNyhOG12PGnCwzXSAlL7iSUk6ZFafYOtTy57QZddPVc9MGklKhlCsaF/k5PY82ou7C4gZ/bPi1OmWwx46kGodrulOVh1U/hZWZXfGv6plpc4rKQC0p00kz9Tx6Os03naQmmtJlg8pUXLYW6Jdu5M90RX8m68SV+ZpfAFL45WnCbc8Zz8aQeuVyfBXEiZT9OmQ/hA5ZkYk0XVBAZhOuy60KT7WbTKbWtMIUNCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0Mf4f3DKtFKnqsoWAAAAAElFTkSuQmCC\"","module.exports = __webpack_public_path__ + \"static/media/mpay.47236d0f.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/tesco.affe7447.png\";","module.exports = __webpack_public_path__ + \"static/media/main-insuranceinfo2.32ee70ee.jpeg\";","module.exports = __webpack_public_path__ + \"static/media/credit.f220d873.jpg\";","module.exports = \"data:image/png;base64,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AAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAACABGAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAAgAAAAAAACAAAAAAgAAAAAgAAAAAAACAAAAACAAAAAAAAIAAAAAIAAAAAAAAgAAAAA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\"","module.exports = __webpack_public_path__ + \"static/media/tracking_menu.13136978.png\";","module.exports = __webpack_public_path__ + \"static/media/tax_menu.6e8eed5f.png\";","module.exports = __webpack_public_path__ + \"static/media/history_payment_menu.453df7c4.png\";","module.exports = __webpack_public_path__ + \"static/media/logo_banner_no_name.0371373c.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/main-insuranceinfo.a77ad9af.jpeg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAC1lBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8T8e+VAAAA8XRSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8xMjM0NTY3ODk6PD0+P0BDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX6AgYKDhYaHiImKi4yNjo+QkZOVl5iZmp2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dfY2tvc3d7f4OLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+iZaaVAAAAAFiS0dE8UK/38IAAAeBSURBVBgZxcGLQ5XlHQfw73uQmwhm5i2zyBuSZMM2tXkbGS0rc9bavFOGWblaU7c1zSynraS52VSYjlqZppaXbNqYqaCVODU004VFXkCUy4Hz/Q+GyPs+v+flwHnfwzmHzwdtlDUT7er2y1XpaEeJR8kvO6PdGO+wwSYD7eU5NnoW7WR4DRt5f4x20e00m5T2RDvwbKNlVxQi70UKixBxY+so1N+DCOtTRs25ZERUdAFt9scgklawmdcRQQ/42NwkRMyAi/TjUioiJO4Q/SruiMhYzRasQ0RkUVi4kEIWImDIFSq7ozwfUalKR9glHqNSdiPQ4yyVLzsjzIx3qPjuR4NMH5X3DYTX8xRWoFEOhV8jrIbXUDkch0axh6h4RyKMup+hUjkITfpXUCnthbDxbKcwA5aZFD6OQri8ROFtCOsoLEaYjK2jcqIzhE7HqdRnIiz6lFHxjoDmhzVUziUjDKILKMyHzQIK+2MQejkUdnpg49lJIQchN4nCdzeimR6lFH6BEOt/kYpvPPy4x0flUgpCKu4ghT/Br9cofBGPUFpF4WAs/IreR+EvCKGfU6hMQQv6V1CYgpAZWEFhKlo0jULlbQiRhP9SeAutyKNwpCNCI5dCSRJakVRCYTVCYhqF2uFo1dAaCpMRAv3KKfwGAcyjcGkg2ix6H4XtHgRgbKFQGIO2epXCt70QUPdSCkvRRuN8VHz3wYFx9VTqM9Am3UspLIMjyyl82xNtYGyjUBgDR2IKKWw1ELzZFC4NhEP9yik8jqAlV1CYDMceplB+M4JkbKewFi7kUthlIDhPUShJggsJxyhkIyh9K6nUDoUrQ71UKpIRBGM3hcVw6Y8UdhlwbxqF0zFwKaGMwmS4lvQNhXlw7UUK/+sEt5ZTuhWupVJ6BS6l1FA4iSCcoVA9AO58QGkPglBAaTNcyaRmJ4Kwk5pxcGM/NUcQhCPUFBlw7n7qLhpwzbhA3b1wbh9tfgTX0mlTAMfuot0SuLaIdsPgVD7tvo6FS9EltPs7HLq+ms3MgUuPsZmqLnBmDpv75jq4kniKzT0BZ/5DP/LhSh792ANHutXTtPteH01ZcGEGTb4HCmiq6wonptHyKHJoqhoBx0ZU0ZSDKbRMgRNraapMQGwxTWX94NAtZ2k6Go/EKzS9CSeO05QLYGgtTYeT4EjSYZpq7wSwgaajcKArLVPR4AVatkbBgaittCxEgydp8l2HwEbScisaeD6h5XU4sIKWomg0uIOWEQjsMZrOotGASlqyEVA2LZdTcJWnnKaZCGwJTXtwTTYt3gwEMLqGlidxTSFNixHYmzStQZMttJSnoVWDztOyw8A1b9G0CoFtpuklNOlVRkvJDWjFDSW0nOuNJktp2oTA/kXTPJgyfbT8OxYtiv6YygSYfkfTRwhsL01Pw5JDZQ1atIrKG7DMpakAgR2g6QlYYg9RWYAWLKDyeRws2TQdQGAFNM2B0r+CFt8j8OuheloqU6E8Q9MnCGwHTc9DmEalMh1+pFdSmQ5hHk3bEdgmmpZBWk3lTG800/sMlTWQXqVpIwLLp2ktpPiDVIoSYJNQROVQPKQ8mtYjsDdoKoTm5jIq73qgMfKpnO8LzWc0rUBgz9JUHQ3N2DoqL0PzCpX6TGhiamh6BoGNp2UEdL+nMB3CdAovQDeSlvsQ2GBalkNnvEelZhQso2qovGdA9xotqQgsuoKmkwZ0CYVUyvqhSb8yKoUJ0HlO0XSxAxx4n5YJsOl5isrRLmiUVEzlTG/Y/IyWDXDiaVoOGbC57QKV3TFo0GEHlfIhsDGKaJkNJ/r7aJkIu7trqaxEg5VUan8Cu4dp8fWFI9to+a4H7LIozAV+RSEbdt3O0rIFzmRQ2YhmllKpHz/OS2UJmnmXylg4Y3xBZR7sPG9T8Xqp5BuwW0Dlczg12keLbxbs4vbSrwMdYTfdR0v9aDi2kkrdJNj1+Ip+nOwGu0fqqPwZziWcpFI3H3apF9hMeRrsZnmpnEqEC0MvUVgXD5u7vbSpzYBN7N8oXB4GV37qpfDpTbD5A21+C5ubPqXgzYRLj1P6/kHoYo5Rc6QDdA9+TykLrs3wUsrtCM1z1DwFTVyOj0JdNoIwsZpScRqkNGpSIaUVU6qagKCMuUjpymwICdTEQZh9hdKF0QhSSjE1G7vCYlDyQemcT82xwQhap39Qc3oMLNTAMuY0Nes7oS1m1VDy5UTjmhhqonFNh0V1lLzz0UbDTlCzNxmNkqhJQqPkvdScGIY2S8yjpvyXuKoHNd1x1cTz1PyzC0Jh0gVqcjsBuIWamwHE51BTMQshkryXmmPpQAo1A4G0YmqKBiBkOiyqp1S7yHMHNUOMudWUfDkxCKWMUmo+fJmaZR9SU5qBEOu2mS7s6IWQM2ZdoUPV8z0Ih8GH6cjRHyBM4nPoQG4Cwuehcwyg/FGEVZ89bNW+vgizqPm1bFHd0miE3/ATbMHXoxARndfTrw3XI1KmVrKZqrmIoEGf0ebI7Yio2KX1FHx/7YhIyyilpWw82kH3D9hkV2+0C2NuDRt4F3nQXu48Tn51F9pRYl5eItrk/ztgEZzkosYbAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAACr1BMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8n1AFEAAAA5HRSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhgZGhscHR4gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTs8PT4/QEFCQ0VGSElKS0xNTk9QUVNVWFlaW1xdXmBiY2RmZ2lqa2xtbm9wcXN0dXZ3eHl6e3x+f4CBgoOEhYaIiYqLjI2OkJGSlJWWl5mam5ydnp+goaKjpKWmp6ipqqytrq+wsbO0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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAC/VBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+G1NxwAAAA/nRSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BR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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAC91BMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8Y3nl4AAAA/HRSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZX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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAC/VBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+G1NxwAAAA/nRSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BR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\"","import { Component } from 'react';\r\n\r\nconst Hoc = (props) => {\r\n return (\r\n props.children\r\n )\r\n}\r\n\r\nexport default Hoc;","import React from 'react';\r\nimport './Icon.css';\r\n\r\nconst icon = (props) => {\r\n\r\n let type;\r\n\r\n const style = {\r\n padding: props.padding,\r\n width: props.width,\r\n height: props.height,\r\n margin: props.margin,\r\n textAlign: props.align,\r\n }\r\n\r\n if (props.icon === \"facebook\") {\r\n type = \"icon__facebook\";\r\n }\r\n else if (props.icon === \"line\") {\r\n type = \"icon__line\";\r\n }\r\n else if (props.icon === \"mail\") {\r\n type = \"icon__mail\";\r\n }\r\n else if (props.icon === \"telephone\") {\r\n type = \"icon__telephone\";\r\n }\r\n else if (props.icon === \"map\") {\r\n type = \"icon__map\";\r\n }\r\n else if (props.icon === \"edit\") {\r\n type = \"icon__edit\";\r\n }\r\n\r\n\r\n return (\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default icon;","export const AUTH_START = \"AUTH_START\";\r\nexport const AUTH_SUCCESS = \"AUTH_SUCCESS\";\r\nexport const AUTH_FAIL = \"AUTH_FAIL\";\r\nexport const AUTH_LOGOUT = \"AUTH_LOGOUT\";\r\n\r\nexport const OTP_START = \"OTP_START\";\r\nexport const OTP_SUCCESS = \"OTP_SUCCESS\";\r\nexport const OTP_FAIL = \"OTP_FAIL\";\r\n\r\nexport const LINE_SETPROFILE = \"LINE_SETPROFILE\";\r\nexport const LINE_SHOULDLOADING = \"LINE_SHOULDLOADING\";\r\nexport const LINE_TOKEN = \"LINE_TOKEN\";\r\n\r\nexport const SET_CONFIG = \"SET_CONFIG\";\r\n\r\nexport const CUST_INFO = \"CUST_INFO\";\r\n\r\nexport const SET_SINGLE = \"SET_SINGLE\";\r\n\r\nexport const GET_AGREEMENTS = \"GET_AGREEMENTS\";\r\nexport const GET_AGREEMENTS_START = \"GET_AGREEMENTS_START\";\r\nexport const GET_AGREEMENTS_SUCCESS = \"GET_AGREEMENTS_SUCCESS\";\r\nexport const GET_AGREEMENTS_FAILED = \"GET_AGREEMENTS_FAILED\";\r\n\r\nexport const INSERT_PAY_DATA = \"INSERT_PAY_DATA\";\r\nexport const INSERT_PAY_DATA_START = \"INSERT_PAY_DATA_START\";\r\nexport const INSERT_PAY_DATA_SUCCESS = \"INSERT_PAY_DATA_SUCCESS\";\r\nexport const INSERT_PAY_DATA_FAILED = \"INSERT_PAY_DATA_FAILED\";\r\n\r\nexport const GET_AGREEMENT_DETAIL = \"GET_AGREEMENT_DETAIL\";\r\nexport const GET_AGREEMENT_DETAIL_START = \"GET_AGREEMENT_DETAIL_START\";\r\nexport const GET_AGREEMENT_DETAIL_SUCCESS = \"GET_AGREEMENT_DETAIL_SUCCESS\";\r\nexport const GET_AGREEMENT_DETAIL_FAILED = \"GET_AGREEMENT_DETAIL_FAILED\";\r\n\r\nexport const GET_INSURANCE_AGREEMENT = \"GET_INSURANCE_AGREEMENT\";\r\nexport const GET_INSURANCE_AGREEMENT_START = \"GET_INSURANCE_AGREEMENT_START\";\r\nexport const GET_INSURANCE_AGREEMENT_SUCCESS =\r\n \"GET_INSURANCE_AGREEMENT_SUCCESS\";\r\nexport const GET_INSURANCE_AGREEMENT_FAILED = \"GET_INSURANCE_AGREEMENT_FAILED\";\r\n\r\nexport const GET_PAYMENT_AGREEMENT = \"GET_PAYMENT_AGREEMENT\";\r\nexport const GET_PAYMENT_AGREEMENT_START = \"GET_PAYMENT_AGREEMENT_START\";\r\nexport const GET_PAYMENT_AGREEMENT_SUCCESS = \"GET_PAYMENT_AGREEMENT_SUCCESS\";\r\nexport const GET_PAYMENT_AGREEMENT_FAILED = \"GET_PAYMENT_AGREEMENT_FAILED\";\r\n\r\nexport const GET_TRACKING_REQUEST = \"GET_TRACKING_REQUEST\";\r\nexport const GET_TRACKING_REQUEST_START = \"GET_TRACKING_REQUEST_START\";\r\nexport const GET_TRACKING_REQUEST_SUCCESS = \"GET_TRACKING_REQUEST_SUCCESS\";\r\nexport const GET_TRACKING_REQUEST_FAILED = \"GET_TRACKING_REQUEST_FAILED\";\r\n\r\nexport const GET_TRACKING_REQUEST_COVID = \"GET_TRACKING_REQUEST_COVID\";\r\nexport const GET_TRACKING_REQUEST_COVID_START =\r\n \"GET_TRACKING_REQUEST_COVID_START\";\r\nexport const GET_TRACKING_REQUEST_COVID_SUCCESS =\r\n \"GET_TRACKING_REQUEST_COVID_SUCCESS\";\r\nexport const GET_TRACKING_REQUEST_COVID_FAILED =\r\n \"GET_TRACKING_REQUEST_COVID_FAILED\";\r\n\r\nexport const SET_TAB_AGREEMENT_INDEX = \"SET_TAB_AGREEMENT_INDEX\";\r\nexport const FILTER_AGREEMENTS = \"FILTER_AGREEMENTS\";\r\nexport const INSERT_AGREEMENT_PAY_LIST = \"INSERT_AGREEMENT_PAY_LIST\";\r\nexport const REMOVE_AGREEMENT_PAY_LIST = \"REMOVE_AGREEMENT_PAY_LIST\";\r\nexport const UPDATE_AGREEMENT_PAY_LIST = \"UPDATE_AGREEMENT_PAY_LIST\";\r\n\r\nexport const GET_PAYMENT_ITEM = \"GET_PAYMENT_ITEM\";\r\nexport const GET_PAYMENT_ITEM_START = \"GET_PAYMENT_ITEM_START\";\r\nexport const GET_PAYMENT_ITEM_SUCCESS = \"GET_PAYMENT_ITEM_SUCCESS\";\r\nexport const GET_PAYMENT_ITEM_FAILED = \"GET_PAYMENT_ITEM_FAILED\";\r\n\r\nexport const GET_CLOSED_AGREEMENT_DETAIL = \"GET_CLOSED_AGREEMENT_DETAIL\";\r\nexport const GET_CLOSED_AGREEMENT_DETAIL_START =\r\n \"GET_CLOSED_AGREEMENT_DETAIL_START\";\r\nexport const GET_CLOSED_AGREEMENT_DETAIL_SUCCESS =\r\n \"GET_CLOSED_AGREEMENT_DETAIL_SUCCESS\";\r\nexport const GET_CLOSED_AGREEMENT_DETAIL_FAILED =\r\n \"GET_CLOSED_AGREEMENT_DETAIL_FAILED\";\r\n\r\nexport const GET_FULL_SUMMARY_PAYMENT = \"GET_FULL_SUMMARY_PAYMENT\";\r\nexport const GET_FULL_SUMMARY_PAYMENT_START = \"GET_FULL_SUMMARY_PAYMENT_START\";\r\nexport const GET_FULL_SUMMARY_PAYMENT_SUCCESS =\r\n \"GET_FULL_SUMMARY_PAYMENT_SUCCESS\";\r\nexport const GET_FULL_SUMMARY_PAYMENT_FAILED =\r\n \"GET_FULL_SUMMARY_PAYMENT_FAILED\";\r\n\r\nexport const CLEAR_PAYMENT_STATE = \"CLEAR_PAYMENT_STATE\";\r\nexport const CLEAR_AGREEMENT_STATE = \"CLEAR_AGREEMENT_STATE\";\r\nexport const CLEAR_TRACKING_STATE = \"CLEAR_TRACKING_STATE\";\r\n\r\nexport const GET_PAYMENT_DETAIL_ORIGIN = \"GET_PAYMENT_DETAIL_ORIGIN\";\r\nexport const GET_PAYMENT_DETAIL_ORIGIN_START =\r\n \"GET_PAYMENT_DETAIL_ORIGIN_START\";\r\nexport const GET_PAYMENT_DETAIL_ORIGIN_SUCCESS =\r\n \"GET_PAYMENT_DETAIL_ORIGIN_SUCCESS\";\r\nexport const GET_PAYMENT_DETAIL_ORIGIN_FAILED =\r\n \"GET_PAYMENT_DETAIL_ORIGIN_FAILED\";\r\n\r\nexport const GENERATE_BATCH = \"GENERATE_BATCH\";\r\nexport const GENERATE_BATCH_START = \"GENERATE_BATCH_START\";\r\nexport const GENERATE_BATCH_SUCCESS = \"GENERATE_BATCH_SUCCESS\";\r\nexport const GENERATE_BATCH_FAILED = \"GENERATE_BATCH_FAILED\";\r\n\r\nexport const CS_FILTER = \"CS_FILTER\";\r\nexport const CS_FILTER_START = \"CS_FILTER_START\";\r\nexport const CS_FILTER_SUCCESS = \"CS_FILTER_SUCCESS\";\r\nexport const CS_FILTER_FAILED = \"CS_FILTER_FAILED\";\r\n\r\nexport const VIEW_STATE = {\r\n INITIAL: \"initial\",\r\n LOADING: \"loading\",\r\n ERROR: \"error\",\r\n SUCCESS: \"success\",\r\n NO_CONTENT: \"nocontent\",\r\n};\r\n","export const FONT_SIZE = \"1.4rem\";\r\n\r\nexport const FONT_SIZE_TITLE = \"1.6rem\";\r\n\r\nexport const API_MYASK_PROD = \"https://myservices.ask.co.th:8484\";\r\nexport const API_MYASK_DEV = \"http://dev-myconnect.ask.co.th:8081\";\r\n// export const API_MYASK_DEV =\r\n// \"https://dev-myconnect.ask.co.th:8443/WebServices_MyASK/ask/MyASK/\";\r\nexport const API_MYASK = API_MYASK_PROD;\r\n\r\nexport const API_MYASK_HEADER = {\r\n \"Content-Type\": \"application/json;charset=utf-8\",\r\n};\r\n\r\nexport const API_OTP =\r\n \"https://asia-east2-myask-b2656.cloudfunctions.net/OtpApiAsk\";\r\n\r\nexport const API_LINE =\r\n \"https://asia-east2-myask-b2656.cloudfunctions.net/LineBot\";\r\n// export const API_LINE = \"https://asia-east2-myasktest.cloudfunctions.net/LineBot\";\r\n\r\nexport const URL_PAYMENT_DEV =\r\n \"https://dev-onlinepay-01.ask.co.th:8443/Payment\";\r\nexport const URL_PAYMENT_PRODUCTION =\r\n \"https://paymentgateway.ask.co.th:8443/Payment\";\r\nexport const URL_PAYMENT =\r\n API_MYASK === API_MYASK_DEV ? URL_PAYMENT_DEV : URL_PAYMENT_PRODUCTION;\r\n\r\nexport const URL_PAYMENT_HISTORY_DEV =\r\n \"https://dev-onlinepay-01.ask.co.th:8443/History\";\r\nexport const URL_PAYMENT_HISTORY_PRODUCTION =\r\n \"https://paymentgateway.ask.co.th:8443/History\";\r\nexport const URL_PAYMENT_HISTORY =\r\n API_MYASK === API_MYASK_DEV\r\n ? URL_PAYMENT_HISTORY_DEV\r\n : URL_PAYMENT_HISTORY_PRODUCTION;\r\n\r\nexport const ERROR_MSG_USER = \"มี username นี้อยู่แล้วในระบบ\";\r\nexport const ERROR_MSG_AGRCODE = \"ไม่พบ เลขที่สัญญา/เลขที่อ้างอิง\";\r\nexport const ERROR_MSG_AGRCODE2 =\r\n \"เลขที่สัญญา / เลขที่อ้างอิง นี้เคยลงทะเบียนแล้ว\";\r\nexport const ERROR_MSG_TEL = \"มี เบอร์โทรศัพท์ นี้อยู่แล้วในระบบ\";\r\n","import axios from \"axios\";\r\nimport { API_MYASK, API_MYASK_HEADER } from \"./constant\";\r\n\r\nexport const updateObject = (oldObject, updatedProperties) => {\r\n return {\r\n ...oldObject,\r\n ...updatedProperties,\r\n };\r\n};\r\n\r\nexport const checkValidity = (value, rules) => {\r\n let data = {\r\n isValid: true,\r\n code: 200,\r\n };\r\n\r\n if (!rules) {\r\n data.code = 200;\r\n return data;\r\n }\r\n\r\n if (rules.required) {\r\n data.isValid = value.trim() !== \"\" && data.isValid;\r\n if (data.isValid === false) {\r\n data.code = 1;\r\n return data;\r\n }\r\n }\r\n\r\n if (\r\n rules.minLength &&\r\n value.length < rules.minLength &&\r\n value.trim() !== \"\"\r\n ) {\r\n data.isValid = value.length >= rules.minLength && data.isValid;\r\n if (data.isValid === false) {\r\n data.code = 2;\r\n return data;\r\n }\r\n }\r\n\r\n if (rules.maxLength && value.length > rules.maxLength) {\r\n data.isValid = value.length <= rules.maxLength && data.isValid;\r\n if (data.isValid === false) {\r\n data.code = 3;\r\n return data;\r\n }\r\n }\r\n\r\n if (rules.isEmail) {\r\n if (rules.required === false && value === \"\") {\r\n data.isValid = true;\r\n data.code = 200;\r\n return data;\r\n } else {\r\n const pattern =\r\n /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/;\r\n data.isValid = pattern.test(value) && data.isValid;\r\n if (data.isValid === false) {\r\n data.code = 4;\r\n return data;\r\n }\r\n }\r\n }\r\n\r\n if (rules.isNumeric && value.trim() !== \"\") {\r\n const pattern = /^\\d+$/;\r\n data.isValid = pattern.test(value) && data.isValid;\r\n if (data.isValid === false) {\r\n data.code = 5;\r\n return data;\r\n }\r\n }\r\n\r\n return data;\r\n};\r\n\r\nexport const searchData = (pFilter, pData) => {\r\n const filter = pFilter;\r\n const data = pData;\r\n const lowercasedFilter = filter.toLowerCase();\r\n const filteredData = data.filter((item) => {\r\n return Object.keys(item).some((key) =>\r\n item[key].toLowerCase().includes(lowercasedFilter)\r\n );\r\n });\r\n const formElementsArray = [];\r\n for (let key in data) {\r\n filteredData.map((item) => {\r\n if (item === data[key]) {\r\n formElementsArray.push(data[key]);\r\n }\r\n });\r\n }\r\n return formElementsArray;\r\n};\r\n\r\nexport const checkError = (code, label, value) => {\r\n let textError = \"\";\r\n if (code === 1) {\r\n textError = \"กรุณาระบุ\" + label;\r\n } else if (code === 2) {\r\n textError = \"กรุณาระบุ\" + label + \" อย่างน้อย \" + value.minLength + \" ตัว\";\r\n } else if (code === 3) {\r\n textError = \"กรุณาระบุ\" + label + \" ไม่เกิน \" + value.maxLength + \" ตัว\";\r\n } else if (code === 4) {\r\n textError = \"กรุณาระบุ E-mail ให้ถูกต้อง\";\r\n } else if (code === 5) {\r\n textError = \"กรุณาระบุเฉพาะตัวเลขเท่านั้น\";\r\n }\r\n\r\n return textError;\r\n};\r\n\r\nexport const randNumber = (len) => {\r\n const min = 0;\r\n const max = 999999;\r\n const str = Math.floor(min + Math.random() * (max - min)).toString();\r\n return str.length < len ? pad(\"0\" + str, len) : str;\r\n};\r\n\r\nfunction pad(str, max) {\r\n str = str.toString();\r\n return str.length < max ? pad(\"0\" + str, max) : str;\r\n}\r\n\r\nexport const randString = (len) => {\r\n let result = \"\";\r\n const characters = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\r\n const charactersLength = characters.length;\r\n for (var i = 0; i < len; i++) {\r\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\r\n }\r\n return result;\r\n};\r\n\r\nexport const logError = (log) => {\r\n const DATA = {\r\n log_err: log,\r\n };\r\n\r\n axios.post(API_MYASK + \"/LogError\", DATA, {\r\n headers: API_MYASK_HEADER,\r\n });\r\n};\r\n\r\nexport const numberWithCommas = (x) => {\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n};\r\n\r\nexport const validNationalId = (val) => {\r\n let sum = 0;\r\n for (let i = 0; i < 12; i++) {\r\n sum += parseInt(val.charAt(i)) * (13 - i);\r\n }\r\n let mod = sum % 11;\r\n let check = (11 - mod) % 10;\r\n if (check == parseInt(val.charAt(12))) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n","import * as actionTypes from \"./actionTypes\";\r\nimport * as Util from \"./../../shared/utility\";\r\nimport axios from \"axios\";\r\nimport { API_MYASK, API_MYASK_HEADER, API_OTP } from \"./../../shared/constant\";\r\n\r\nexport const authStart = () => {\r\n return {\r\n type: actionTypes.AUTH_START,\r\n };\r\n};\r\n\r\nexport const authSuccess = (token, userName) => {\r\n return {\r\n type: actionTypes.AUTH_SUCCESS,\r\n idToken: token,\r\n userName: userName,\r\n };\r\n};\r\n\r\n// export const authFail = (error) => {\r\n// return {\r\n// type: actionTypes.AUTH_FAIL,\r\n// error: error\r\n// };\r\n// };\r\n\r\nexport const logout = (lineId, userName) => {\r\n return (dispatch) => {\r\n if (lineId) {\r\n const data = {\r\n lineid: lineId,\r\n username: userName,\r\n };\r\n axios\r\n .post(API_MYASK + \"/Logout\", data, {\r\n header: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n dispatch(logoutSuccess());\r\n });\r\n } else {\r\n dispatch(logoutSuccess());\r\n }\r\n };\r\n};\r\n\r\nexport const logoutSuccess = () => {\r\n sessionStorage.removeItem(\"token\");\r\n sessionStorage.removeItem(\"userName\");\r\n return {\r\n type: actionTypes.AUTH_LOGOUT,\r\n };\r\n};\r\n\r\nexport const auth = (token, userName) => {\r\n return (dispatch) => {\r\n // dispatch(authStart());\r\n sessionStorage.setItem(\"token\", token);\r\n sessionStorage.setItem(\"userName\", userName);\r\n dispatch(authSuccess(token, userName));\r\n };\r\n};\r\n\r\nexport const authCheckState = () => {\r\n return (dispatch) => {\r\n const token = sessionStorage.getItem(\"token\");\r\n if (!token) {\r\n dispatch(logout());\r\n } else {\r\n dispatch(authSuccess(token));\r\n }\r\n };\r\n};\r\n\r\n//------------- OTP ----------------//\r\n\r\nexport const otpStart = () => {\r\n return {\r\n type: actionTypes.OTP_START,\r\n refOtp: null,\r\n passOtp: null,\r\n };\r\n};\r\n\r\nexport const otpSuccess = (otp) => {\r\n return {\r\n type: actionTypes.OTP_SUCCESS,\r\n refOtp: otp.refOtp,\r\n passOtp: otp.passOtp,\r\n };\r\n};\r\n\r\nexport const sendOTP = (mobile) => {\r\n return (dispatch) => {\r\n const refOtp = Util.randString(6);\r\n const passOtp = Util.randNumber(6);\r\n axios\r\n .post(API_OTP, {\r\n mobile: mobile,\r\n refOtp: refOtp,\r\n passOtp: passOtp,\r\n })\r\n .then((res) => {\r\n // For Test\r\n const otpData = {\r\n refOtp: refOtp,\r\n passOtp: passOtp,\r\n mobile: mobile,\r\n };\r\n axios\r\n .post(API_MYASK + \"/SaveOTP\", otpData, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n dispatch(otpStart());\r\n if (res.data.CODE === \"200\") {\r\n dispatch(otpSuccess(otpData));\r\n } else {\r\n alert(\"พบข้อผิดพลาดขณะทำรายการ (101)\");\r\n }\r\n });\r\n })\r\n .catch((err) => {\r\n alert(\"พบข้อผิดพลาดขณะทำรายการ (102)\");\r\n });\r\n };\r\n};\r\n\r\nexport const setConfig = (lineFriend, otpTime, telNo, mailTo) => {\r\n return {\r\n type: actionTypes.SET_CONFIG,\r\n lineFriend: lineFriend,\r\n otpTime: otpTime,\r\n telNo: telNo,\r\n mailTo: mailTo,\r\n };\r\n};\r\n","import * as actionTypes from \"./actionTypes\";\r\nexport const setProfile = profile => {\r\n return {\r\n type: actionTypes.LINE_SETPROFILE,\r\n userId: profile.userId\r\n }\r\n}\r\n\r\nexport const line = (profile) => {\r\n return dispatch => {\r\n dispatch(setProfile(profile));\r\n }\r\n}\r\n\r\nexport const setShouldLoading = (should) => {\r\n return {\r\n type: actionTypes.LINE_SHOULDLOADING,\r\n shouldLoading: should\r\n }\r\n}\r\n\r\nexport const setLineToken = (token) => {\r\n return {\r\n type: actionTypes.LINE_TOKEN,\r\n token: token\r\n }\r\n}\r\n","import * as actionTypes from \"./actionTypes\";\r\n\r\nexport const getAgreements = () => {\r\n return {\r\n type: actionTypes.GET_AGREEMENTS,\r\n };\r\n};\r\n\r\nexport const getAgreementsStart = () => {\r\n return {\r\n type: actionTypes.GET_AGREEMENTS_START,\r\n };\r\n};\r\n\r\nexport const getAgreementsSuccess = (runNo, agreements) => {\r\n return {\r\n type: actionTypes.GET_AGREEMENTS_SUCCESS,\r\n agreements: agreements,\r\n run_no: runNo,\r\n };\r\n};\r\n\r\nexport const getAgreementsFailed = (error) => {\r\n return {\r\n type: actionTypes.GET_AGREEMENTS_FAILED,\r\n error: error,\r\n };\r\n};\r\n\r\nexport const getAgreementDetail = (agr_code, com_code, run_no) => {\r\n return {\r\n type: actionTypes.GET_AGREEMENT_DETAIL,\r\n agr_code: agr_code,\r\n com_code: com_code,\r\n run_no: run_no,\r\n };\r\n};\r\n\r\nexport const getAgreementDetailStart = () => {\r\n return {\r\n type: actionTypes.GET_AGREEMENT_DETAIL_START,\r\n };\r\n};\r\n\r\nexport const getAgreementDetailSuccess = (detail) => {\r\n return {\r\n type: actionTypes.GET_AGREEMENT_DETAIL_SUCCESS,\r\n detail: detail,\r\n };\r\n};\r\n\r\nexport const getAgreementDetailFailed = (error) => {\r\n return {\r\n type: actionTypes.GET_AGREEMENT_DETAIL_FAILED,\r\n error: error,\r\n };\r\n};\r\n\r\nexport const getInsuranceAgreement = (agr_code) => {\r\n return {\r\n type: actionTypes.GET_INSURANCE_AGREEMENT,\r\n agr_code: agr_code,\r\n };\r\n};\r\n\r\nexport const getInsuranceAgreementStart = () => {\r\n return {\r\n type: actionTypes.GET_INSURANCE_AGREEMENT_START,\r\n };\r\n};\r\n\r\nexport const getInsuranceAgreementSuccess = (insurances) => {\r\n return {\r\n type: actionTypes.GET_INSURANCE_AGREEMENT_SUCCESS,\r\n insurances: insurances,\r\n };\r\n};\r\n\r\nexport const getInsuranceAgreementFailed = (error) => {\r\n return {\r\n type: actionTypes.GET_INSURANCE_AGREEMENT_FAILED,\r\n error: error,\r\n };\r\n};\r\n\r\nexport const getPaymentAgreement = (agr_code) => {\r\n return {\r\n type: actionTypes.GET_PAYMENT_AGREEMENT,\r\n agr_code: agr_code,\r\n };\r\n};\r\n\r\nexport const getPaymentAgreementStart = () => {\r\n return {\r\n type: actionTypes.GET_PAYMENT_AGREEMENT_START,\r\n };\r\n};\r\n\r\nexport const getPaymentAgreementSuccess = (payments_history) => {\r\n return {\r\n type: actionTypes.GET_PAYMENT_AGREEMENT_SUCCESS,\r\n payments_history: payments_history,\r\n };\r\n};\r\n\r\nexport const getPaymentAgreementFailed = (error) => {\r\n return {\r\n type: actionTypes.GET_PAYMENT_AGREEMENT_FAILED,\r\n error: error,\r\n };\r\n};\r\n\r\nexport const filterAgreements = (value) => {\r\n return {\r\n type: actionTypes.FILTER_AGREEMENTS,\r\n filter: value,\r\n };\r\n};\r\n\r\nexport const setTabAgreementIndex = (index) => {\r\n return {\r\n type: actionTypes.SET_TAB_AGREEMENT_INDEX,\r\n tab_index: index,\r\n };\r\n};\r\n\r\nexport const getClosedAgreementDetail = (agr_code, com_code, run_no) => {\r\n return {\r\n type: actionTypes.GET_CLOSED_AGREEMENT_DETAIL,\r\n agr_code: agr_code,\r\n com_code: com_code,\r\n run_no: run_no,\r\n };\r\n};\r\n\r\nexport const getClosedAgreementDetailStart = () => {\r\n return {\r\n type: actionTypes.GET_CLOSED_AGREEMENT_DETAIL_START,\r\n };\r\n};\r\n\r\nexport const getClosedAgreementDetailSuccess = (detail) => {\r\n return {\r\n type: actionTypes.GET_CLOSED_AGREEMENT_DETAIL_SUCCESS,\r\n detail: detail,\r\n };\r\n};\r\n\r\nexport const getClosedAgreementDetailFailed = (error) => {\r\n return {\r\n type: actionTypes.GET_CLOSED_AGREEMENT_DETAIL_FAILED,\r\n error: error,\r\n };\r\n};\r\nexport const clearAgreementState = () => {\r\n return {\r\n type: actionTypes.CLEAR_AGREEMENT_STATE,\r\n };\r\n};\r\n\r\nexport const insertPayData = (agr_code, com_code, run_no) => {\r\n return {\r\n type: actionTypes.INSERT_PAY_DATA,\r\n agr_code: agr_code,\r\n com_code: com_code,\r\n run_no: run_no,\r\n };\r\n};\r\n\r\nexport const insertPayDataStart = (agr_code) => {\r\n return {\r\n type: actionTypes.INSERT_PAY_DATA_START,\r\n agr_code: agr_code,\r\n };\r\n};\r\n\r\nexport const insertPayDataSuccess = (agr_code, data) => {\r\n return {\r\n type: actionTypes.INSERT_PAY_DATA_SUCCESS,\r\n data: data,\r\n agr_code: agr_code,\r\n };\r\n};\r\n\r\nexport const insertPayDataFailed = (agr_code, error) => {\r\n return {\r\n type: actionTypes.INSERT_PAY_DATA_FAILED,\r\n error: error,\r\n agr_code: agr_code,\r\n };\r\n};\r\n\r\nexport const getPaymentDetailOrigin = (agr_code, com_code, run_no) => {\r\n return {\r\n type: actionTypes.GET_PAYMENT_DETAIL_ORIGIN,\r\n agr_code: agr_code,\r\n com_code: com_code,\r\n run_no: run_no,\r\n };\r\n};\r\n\r\nexport const getPaymentDetailOriginStart = (agr_code) => {\r\n return {\r\n type: actionTypes.GET_PAYMENT_DETAIL_ORIGIN_START,\r\n agr_code: agr_code,\r\n };\r\n};\r\n\r\nexport const getPaymentDetailOriginSuccess = (\r\n agr_code,\r\n paymentDetailOrigin\r\n) => {\r\n return {\r\n type: actionTypes.GET_PAYMENT_DETAIL_ORIGIN_SUCCESS,\r\n paymentDetailOrigin: paymentDetailOrigin,\r\n agr_code: agr_code,\r\n };\r\n};\r\n\r\nexport const getPaymentDetailOriginFailed = (error) => {\r\n return {\r\n type: actionTypes.GET_PAYMENT_DETAIL_ORIGIN_FAILED,\r\n error: error,\r\n };\r\n};\r\n","import * as actionTypes from \"./actionTypes\";\r\n\r\nexport const getTrackingRequest = () => {\r\n return {\r\n type: actionTypes.GET_TRACKING_REQUEST,\r\n };\r\n};\r\n\r\nexport const getTrackingRequestStart = () => {\r\n return {\r\n type: actionTypes.GET_TRACKING_REQUEST_START,\r\n };\r\n};\r\n\r\nexport const getTrackingRequestSuccess = (requests) => {\r\n return {\r\n type: actionTypes.GET_TRACKING_REQUEST_SUCCESS,\r\n requests: requests,\r\n };\r\n};\r\n\r\nexport const getTrackingRequestFailed = (error) => {\r\n return {\r\n type: actionTypes.GET_TRACKING_REQUEST_FAILED,\r\n error: error,\r\n };\r\n};\r\n\r\nexport const getTrackingRequestCovid = () => {\r\n return {\r\n type: actionTypes.GET_TRACKING_REQUEST_COVID,\r\n };\r\n};\r\n\r\nexport const getTrackingRequestCovidStart = () => {\r\n return {\r\n type: actionTypes.GET_TRACKING_REQUEST_COVID_START,\r\n };\r\n};\r\n\r\nexport const getTrackingRequestCovidSuccess = (requests_covid) => {\r\n return {\r\n type: actionTypes.GET_TRACKING_REQUEST_COVID_SUCCESS,\r\n requests_covid: requests_covid,\r\n };\r\n};\r\n\r\nexport const getTrackingRequestCovidFailed = (error) => {\r\n return {\r\n type: actionTypes.GET_TRACKING_REQUEST_COVID_FAILED,\r\n error: error,\r\n };\r\n};\r\n\r\nexport const clearTrackingState = () => {\r\n return {\r\n type: actionTypes.CLEAR_TRACKING_STATE,\r\n };\r\n};\r\n","import * as actionTypes from \"./actionTypes\";\r\n\r\nexport const insertAgreementPayList = (\r\n agreement,\r\n agr_code,\r\n items,\r\n is_closed\r\n) => {\r\n return {\r\n type: actionTypes.INSERT_AGREEMENT_PAY_LIST,\r\n agreement: agreement,\r\n agr_code: agr_code,\r\n items: items,\r\n is_closed: is_closed,\r\n };\r\n};\r\n\r\nexport const removeAgreementPayList = (agr_code) => {\r\n return {\r\n type: actionTypes.REMOVE_AGREEMENT_PAY_LIST,\r\n agr_code: agr_code,\r\n };\r\n};\r\n\r\nexport const updateAgreementPayList = (agr_data, payment_detail) => {\r\n return {\r\n type: actionTypes.UPDATE_AGREEMENT_PAY_LIST,\r\n agreement: agr_data,\r\n payment_detail: payment_detail,\r\n };\r\n};\r\n\r\nexport const getPaymentItem = (agr_code, com_code, run_no) => {\r\n return {\r\n type: actionTypes.GET_PAYMENT_ITEM,\r\n agr_code: agr_code,\r\n com_code: com_code,\r\n run_no: run_no,\r\n };\r\n};\r\n\r\nexport const getPaymentItemStart = () => {\r\n return {\r\n type: actionTypes.GET_PAYMENT_ITEM_START,\r\n };\r\n};\r\n\r\nexport const getPaymentItemSuccess = (paymentItems) => {\r\n return {\r\n type: actionTypes.GET_PAYMENT_ITEM_SUCCESS,\r\n paymentItems: paymentItems,\r\n };\r\n};\r\n\r\nexport const getPaymentItemFailed = (error) => {\r\n return {\r\n type: actionTypes.GET_PAYMENT_ITEM_FAILED,\r\n error: error,\r\n };\r\n};\r\n\r\nexport const getFullSummaryPayment = (agr_code, amount) => {\r\n return {\r\n type: actionTypes.GET_FULL_SUMMARY_PAYMENT,\r\n agr_code: agr_code,\r\n amount: amount,\r\n };\r\n};\r\n\r\nexport const getFullSummaryPaymentStart = () => {\r\n return {\r\n type: actionTypes.GET_FULL_SUMMARY_PAYMENT_START,\r\n };\r\n};\r\n\r\nexport const getFullSummaryPaymentSuccess = (detail) => {\r\n return {\r\n type: actionTypes.GET_FULL_SUMMARY_PAYMENT_SUCCESS,\r\n detail: detail,\r\n };\r\n};\r\n\r\nexport const getFullSummaryPaymentFailed = (error) => {\r\n return {\r\n type: actionTypes.GET_FULL_SUMMARY_PAYMENT_FAILED,\r\n error: error,\r\n };\r\n};\r\n\r\nexport const clearPaymentState = () => {\r\n return {\r\n type: actionTypes.CLEAR_PAYMENT_STATE,\r\n };\r\n};\r\n\r\nexport const generateBatch = (payments, runNo) => {\r\n return {\r\n type: actionTypes.GENERATE_BATCH,\r\n payments: payments,\r\n runNo: runNo,\r\n };\r\n};\r\n\r\nexport const generateBatchStart = () => {\r\n return {\r\n type: actionTypes.GENERATE_BATCH_START,\r\n };\r\n};\r\n\r\nexport const generateBatchSuccess = (batchNo) => {\r\n return {\r\n type: actionTypes.GENERATE_BATCH_SUCCESS,\r\n batchNo: batchNo,\r\n };\r\n};\r\n\r\nexport const generateBatchFailed = (error) => {\r\n return {\r\n type: actionTypes.GENERATE_BATCH_FAILED,\r\n error: error,\r\n };\r\n};\r\n","import * as actionTypes from \"./actionTypes\";\r\n\r\nexport const csFilter = (value) => {\r\n return {\r\n type: actionTypes.CS_FILTER,\r\n value: value,\r\n };\r\n};\r\n\r\nexport const csFilterStart = () => {\r\n return {\r\n type: actionTypes.CS_FILTER_START,\r\n };\r\n};\r\n\r\nexport const csFilterSuccess = (value, data) => {\r\n return {\r\n type: actionTypes.CS_FILTER_SUCCESS,\r\n filter: value,\r\n results: data,\r\n };\r\n};\r\n\r\nexport const csFilterFailed = (error) => {\r\n return {\r\n type: actionTypes.CS_FILTER_FAILED,\r\n error: error,\r\n };\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport \"./layout.css\";\r\nimport logo from \"./../../assets/logo_banner_no_name.png\";\r\nimport logo2 from \"./../../assets/ic_logo_banner_no_name2.png\";\r\nimport logoCompany from \"./../../assets/logo_company_new.png\";\r\n// import logomobile from './../../assets/logoW.PNG';\r\n// import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\n// import { faBars } from \"@fortawesome/free-solid-svg-icons\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { withRouter } from \"react-router\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Hoc from \"../../hoc/hoc\";\r\nimport Icon from \"./../../components/UI/Icon/Icon\";\r\n// import { PATH_TEL, PATH_LINE, PATH_MAIL } from './../../shared/constant';\r\n// import { positions } from '@material-ui/system';\r\nimport * as actions from \"./../../store/action/index\";\r\nimport { connect } from \"react-redux\";\r\n\r\nconst Layout = (props) => {\r\n useEffect(() => {\r\n const query = new URLSearchParams(props.location.search);\r\n const hide = query.get(\"single\");\r\n if (hide != null && hide === \"true\") {\r\n props.setSingle(true);\r\n }\r\n }, []);\r\n\r\n const topic = {\r\n // fontSize: '1.6rem',\r\n marginTop: \"0.5rem\",\r\n marginBottom: \"2rem\",\r\n };\r\n\r\n const handleBranch = (region) => {\r\n props.history.push({\r\n pathname: \"/branch\",\r\n region: region,\r\n });\r\n };\r\n\r\n let mail = \"mailto:\" + props.mailTo;\r\n let tel = \"tel:\" + props.telNo;\r\n\r\n const [menuCheck, setMenuCheck] = useState(false);\r\n\r\n return (\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {/* logo */}\r\n \r\n
\r\n {/* \r\n */}\r\n setMenuCheck(!menuCheck)}\r\n >\r\n \r\n setMenuCheck(false)}\r\n >\r\n
\r\n \r\n
    \r\n
  • \r\n \r\n หน้าแรก\r\n \r\n
  • \r\n
  • \r\n
    \r\n
  • \r\n
  • \r\n \r\n ผลิตภัณฑ์\r\n \r\n
  • \r\n
  • \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
    \r\n {/* {!props.isAuthenticated\r\n ?
  • \r\n :
  • ชำระเงิน
  • \r\n }\r\n {!props.isAuthenticated\r\n ?
  • \r\n :
  • ข้อมูลประกัน
  • \r\n } */}\r\n {!props.isAuthenticated ? (\r\n
  • \r\n ) : (\r\n
  • \r\n \r\n ข้อมูลของฉัน\r\n \r\n
  • \r\n )}\r\n {!props.isAuthenticated ? (\r\n
  • \r\n ) : (\r\n
  • \r\n
    \r\n
  • \r\n )}\r\n
  • \r\n \r\n ร้องเรียน\r\n \r\n
  • \r\n
  • \r\n
    \r\n
  • \r\n
  • \r\n \r\n แบบคำร้องขอใช้สิทธิ์ข้อมูลส่วนบุคคล\r\n \r\n
  • \r\n
  • \r\n
    \r\n
  • \r\n
  • \r\n \r\n ติดต่อเรา\r\n \r\n
  • \r\n
  • \r\n
    \r\n
  • \r\n
  • \r\n \r\n ติดต่อเรา#Covid19\r\n \r\n
  • \r\n
  • \r\n
    \r\n
  • \r\n
  • \r\n \r\n ค้นหาสาขา\r\n \r\n
  • \r\n
  • \r\n
    \r\n
  • \r\n {!props.isAuthenticated ? (\r\n
  • \r\n \r\n เข้าสู่ระบบ\r\n \r\n
  • \r\n ) : (\r\n
  • \r\n \r\n ออกจากระบบ\r\n \r\n
  • \r\n )}\r\n
  • \r\n
    \r\n
  • \r\n {/*
  • V 3.0.3
  • */}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {props.children}\r\n \r\n
\r\n
\r\n \r\n
\r\n

\r\n ผลิตภัณฑ์\r\n

\r\n
    \r\n
  • \r\n \r\n สินเชื่อทะเบียนรถยนต์-ไม่โอนเล่ม\r\n \r\n
  • \r\n
  • \r\n \r\n สินเชื่อเพื่อการพาณิชย์\r\n \r\n
  • \r\n
  • \r\n \r\n สินเชื่อเช่าซื้อรถใหม่\r\n \r\n
  • \r\n
  • \r\n \r\n สินเชื่อเช่าซื้อรถใช้แล้ว\r\n \r\n
  • \r\n
  • \r\n \r\n สินเชื่อส่วนบุคคล\r\n \r\n
  • \r\n
  • \r\n \r\n สินเชื่อทะเบียนรถยนต์-โอนเล่ม\r\n \r\n
  • \r\n
\r\n
\r\n
\r\n

\r\n ติดต่อเรา\r\n

\r\n
    \r\n
  • \r\n handleBranch(\"C\")}\r\n >\r\n ภาคกลาง\r\n \r\n
  • \r\n
  • \r\n handleBranch(\"E\")}\r\n >\r\n ภาคตะวันออก\r\n \r\n
  • \r\n
  • \r\n handleBranch(\"WS\")}\r\n >\r\n ภาคตะวันตก-ภาคใต้\r\n \r\n
  • \r\n
  • \r\n handleBranch(\"N\")}\r\n >\r\n ภาคเหนือ\r\n \r\n
  • \r\n
  • \r\n handleBranch(\"NE\")}\r\n >\r\n ภาคตะวันออกเฉียงเหนือ\r\n \r\n
  • \r\n
  • \r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n

copyright 2019 © เอเซียเสริมกิจลีสซิ่ง

\r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n lineFriend: state.auth.lineFriend,\r\n telNo: state.auth.telNo,\r\n mailTo: state.auth.mailTo,\r\n single: state.global.single,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n setSingle: (flag) => dispatch(actions.setSingle(flag)),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(withRouter(Layout));\r\n","import * as actionTypes from \"./actionTypes\";\r\n\r\nexport const setSingle = (flag) => {\r\n return {\r\n type: actionTypes.SET_SINGLE,\r\n single: flag,\r\n };\r\n};\r\n","import React from 'react';\r\n\r\nimport ImageGallery from 'react-image-gallery';\r\nimport \"react-image-gallery/styles/css/image-gallery.css\"\r\nimport { withRouter } from 'react-router';\r\n\r\nconst carousel = (props) => {\r\n let _imageGallery = React.createRef();\r\n const click = () => {\r\n // window.location.href = props.image[_imageGallery.getCurrentIndex()].path;\r\n props.history.push({\r\n pathname: props.image[_imageGallery.getCurrentIndex()].path,\r\n product_id: props.image[_imageGallery.getCurrentIndex()].product_id,\r\n url_product: props.image[_imageGallery.getCurrentIndex()].url\r\n // text2: 'ท่านสามารถติดตามผลได้ทาง...'\r\n })\r\n // window.location.href = \"/product-detail/SHB\";\r\n }\r\n\r\n\r\n return (\r\n
\r\n _imageGallery = i}\r\n items={props.image}\r\n showThumbnails={false}\r\n infinite={true}\r\n showFullscreenButton={false}\r\n showPlayButton={false}\r\n showBullets={true}\r\n autoPlay={true}\r\n slideInterval={5000}\r\n onClick={() => click()}\r\n />\r\n
\r\n );\r\n}\r\n\r\nexport default withRouter(carousel);\r\n","import React, { useEffect } from \"react\";\r\nimport \"./home.css\";\r\nimport GridListTileBar from \"@material-ui/core/GridListTileBar\";\r\nimport GridListTile from \"@material-ui/core/GridListTile\";\r\nimport GridList from \"@material-ui/core/GridList\";\r\n\r\nimport banner1 from \"../../assets/banner1.jpg\";\r\nimport banner2 from \"../../assets/banner2.jpg\";\r\n\r\nimport hp from \"../../assets/p_hpnew.jpg\";\r\nimport hp_used from \"../../assets/p_hpused.jpg\";\r\nimport cl from \"../../assets/p_cl.jpg\";\r\nimport pl from \"../../assets/p_pl.jpg\";\r\nimport shb from \"../../assets/p_shb.jpg\";\r\nimport cml from \"../../assets/p_cml.jpg\";\r\n\r\nimport { withStyles, useTheme } from \"@material-ui/core/styles\";\r\nimport useMediaQuery from \"@material-ui/core/useMediaQuery\";\r\nimport Carousel from \"../../components/UI/Carousel/Carousel\";\r\nimport { Redirect, Link } from \"react-router-dom\";\r\n// import Error from './../../components/UI/Error/Error';\r\n\r\nconst styles = {\r\n root: {\r\n textAlign: \"center\",\r\n fontFamily: \"Prompt-Regular\",\r\n },\r\n title: {\r\n fontSize: \"2rem\",\r\n lineHeight: \"6rem\",\r\n },\r\n imgFullHeight: {\r\n height: \"20rem\",\r\n width: \"100%\",\r\n },\r\n gridList: {\r\n width: \"100%\",\r\n margin: \"0px !important\",\r\n padding: \"2rem\",\r\n },\r\n tile: {\r\n padding: \"1rem !important\",\r\n },\r\n};\r\n\r\nfunction useWidth() {\r\n const theme = useTheme();\r\n const keys = [...theme.breakpoints.keys].reverse();\r\n return (\r\n keys.reduce((output, key) => {\r\n // eslint-disable-next-line react-hooks/rules-of-hooks\r\n const matches = useMediaQuery(theme.breakpoints.up(key));\r\n return !output && matches ? key : output;\r\n }, null) || \"xs\"\r\n );\r\n}\r\n\r\nconst Home = (props) => {\r\n const { classes } = props;\r\n const width = useWidth();\r\n const getGridListCols = () => {\r\n if (width === \"xs\") {\r\n return 1;\r\n } else {\r\n return 2;\r\n }\r\n };\r\n\r\n const openWeb = () => {\r\n window.open(\"https://www.mycarmytruck.com/\");\r\n };\r\n\r\n const images = [\r\n {\r\n original: hp,\r\n path: \"/product-detail/hire-purchase-new\",\r\n product_id: \"HP-NEW\",\r\n url: \"hire-purchase-new\",\r\n originalAlt: \"สินเชื่อเช่าซื้อรถใหม่\",\r\n },\r\n {\r\n original: cl,\r\n path: \"/product-detail/car-loan\",\r\n product_id: \"CL\",\r\n url: \"car-loan\",\r\n originalAlt: \"สินเชื่อทะเบียนรถยนต์-ไม่โอนเล่ม\",\r\n },\r\n {\r\n original: hp_used,\r\n path: \"/product-detail/hire-purchase-used\",\r\n product_id: \"HP-USED\",\r\n url: \"hire-purchase-used\",\r\n originalAlt: \"สินเชื่อเช่าซื้อรถใช้แล้ว\",\r\n },\r\n {\r\n original: pl,\r\n path: \"/product-detail/personal-loan\",\r\n product_id: \"PL\",\r\n url: \"personal-loan\",\r\n originalAlt: \"สินเชื่อส่วนบุคคล\",\r\n },\r\n {\r\n original: shb,\r\n path: \"/product-detail/sale-and-hire-purchase-back\",\r\n product_id: \"SHB\",\r\n url: \"sale-and-hire-purchase-back\",\r\n originalAlt: \"สินเชื่อทะเบียนรถยนต์-โอนเล่ม\",\r\n },\r\n {\r\n original: cml,\r\n path: \"/product-detail/commercial-loan\",\r\n product_id: \"CML\",\r\n url: \"commercial-loan\",\r\n originalAlt: \"สินเชื่อเพื่อการพาณิชย์\",\r\n },\r\n ];\r\n\r\n let redirect = \"\";\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n\r\n if (sessionStorage.getItem(\"src\") === null) {\r\n const query = new URLSearchParams(props.location.search);\r\n const src = {};\r\n for (let param of query.entries()) {\r\n src[param[0]] = param[1];\r\n }\r\n sessionStorage.setItem(\"src\", src.src);\r\n }\r\n }, []);\r\n\r\n if (sessionStorage.getItem(\"src\") !== null) {\r\n redirect = ;\r\n }\r\n\r\n useEffect(() => {\r\n sessionStorage.removeItem(\"product_id\");\r\n sessionStorage.removeItem(\"name\");\r\n sessionStorage.removeItem(\"descrip\");\r\n sessionStorage.removeItem(\"title\");\r\n sessionStorage.removeItem(\"image\");\r\n });\r\n\r\n const onClickHandler = (e) => {\r\n if (!sessionStorage.getItem(\"token\")) {\r\n e.preventDefault();\r\n props.history.push({\r\n pathname: \"/login\",\r\n });\r\n }\r\n };\r\n\r\n return (\r\n
\r\n {redirect}\r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default withStyles(styles)(Home);\r\n","import React from 'react';\r\nimport './Button.css';\r\n\r\nlet type;\r\nlet style;\r\n\r\nconst button = (props) => {\r\n\r\n style = {\r\n width: props.width,\r\n backgroundColor: props.color,\r\n color: props.fontColor,\r\n borderColor: props.borderColor,\r\n margin: props.margin,\r\n padding: props.padding,\r\n border: props.border,\r\n fontSize: props.fontSize,\r\n textAlign: props.textAlign,\r\n borderRadius: props.borderRadius\r\n };\r\n\r\n\r\n if (props.btnType === \"back\") {\r\n type = \"btn__main__back\";\r\n }\r\n else if (props.btnType === \"next\") {\r\n type = \"btn__main__next\";\r\n }\r\n else if (props.btnType === \"submit\") {\r\n type = \"btn__main__submit\";\r\n }\r\n else if (props.btnType === \"choose\") {\r\n type = \"btn__main__choose\";\r\n }\r\n else if (props.btnType === \"close\") {\r\n type = \"btn__main__close\";\r\n }\r\n else if (props.btnType === \"normal\") {\r\n type = \"btn__main__next\";\r\n }\r\n else if (props.btnType === \"border\") {\r\n type = \"btn__main__back\";\r\n }\r\n else if (props.btnType === \"graph\") {\r\n type = \"btn__graph\";\r\n }\r\n else if (props.btnType === \"menuclick\") {\r\n type = \"btn__menu__click\";\r\n }\r\n else if (props.btnType === \"menunormal\") {\r\n type = \"btn__menu__normal\";\r\n }\r\n else if (props.btnType === \"branch\") {\r\n type = \"btn__branch\";\r\n }\r\n\r\n let form;\r\n if (props.load === \"load\") {\r\n form =
\r\n \r\n \r\n
;\r\n }\r\n else {\r\n form = {props.children};\r\n }\r\n\r\n return (\r\n
\r\n {form}\r\n
\r\n );\r\n};\r\n\r\nexport default button;","import React from \"react\";\r\nimport Button from \"../Button/Button\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport SearchIcon from \"@material-ui/icons/Search\";\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport FormGroup from '@material-ui/core/FormGroup';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport \"./Input.css\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport { getYear, getMonth } from \"date-fns\";\r\nimport { fontSize, borderRadius } from \"@material-ui/system\";\r\nimport { isMobile, isAndroid } from 'react-device-detect';\r\nimport NumberFormat from 'react-number-format';\r\nimport Eyes from \"react-icons/lib/fa/eye\";\r\nimport Eyeslash from \"react-icons/lib/fa/eye-slash\";\r\n\r\n// import { log } from \"util\";\r\n\r\nconst input = props => {\r\n let inputElement = null;\r\n let inputClasses = \"input__element\";\r\n let labelPos = props.labelPos;\r\n const inputContainer = \"input\";\r\n let align = props.align;\r\n let textinvalid = \"\";\r\n let chkTextValid = false;\r\n\r\n if (props.textInvalid !== \"\" && props.touched && props.shouldValidate) {\r\n inputClasses = \"input__element invalid\";\r\n textinvalid = props.textInvalid;\r\n chkTextValid = true;\r\n }\r\n\r\n if (props.isEmail && props.invalid && props.touched) {\r\n inputClasses = \"input__element invalid\";\r\n textinvalid = props.textInvalid;\r\n chkTextValid = true;\r\n }\r\n\r\n if (props.checkPass && props.invalid && props.touched) {\r\n inputClasses = \"input__element invalid\";\r\n textinvalid = props.textInvalid;\r\n chkTextValid = true;\r\n }\r\n\r\n const style = {\r\n padding: \"0rem 1.5rem\",\r\n marginBottom: \"1rem\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n width: props.width,\r\n height: \"3.5rem\"\r\n };\r\n\r\n const setfontsize = {\r\n fontSize: props.fontSize,\r\n marginTop: props.marginTop,\r\n fontFamily: \"'Prompt-Regular'\",\r\n paddingTop: \".8rem\",\r\n display: \"block\",\r\n color: \"black\",\r\n flex: \"1\"\r\n }\r\n\r\n if (align === \"center\") {\r\n align = \"text__align__center\";\r\n } else if (align === \"right\") {\r\n align = \"text__align__right\";\r\n } else {\r\n align = \"text__align__left\";\r\n }\r\n\r\n if (labelPos === \"left\") {\r\n labelPos = \"label__left\";\r\n } else {\r\n labelPos = \"label__top\";\r\n }\r\n\r\n switch (props.elementType) {\r\n case \"input\":\r\n if (props.type === \"number\") {\r\n inputElement = (\r\n \r\n );\r\n }\r\n else if (props.type === \"cash\") {\r\n inputElement = (\r\n );\r\n } else {\r\n inputElement = (\r\n
\r\n \r\n {props.onClick\r\n ? props.show\r\n ? \r\n : \r\n : null}\r\n
\r\n );\r\n }\r\n\r\n break;\r\n case \"file\":\r\n inputElement = (\r\n
\r\n \r\n \r\n
\r\n );\r\n break;\r\n case \"checkbox\":\r\n inputElement = (\r\n \r\n }\r\n label={{props.text}}\r\n />\r\n \r\n );\r\n break;\r\n case \"search\":\r\n inputElement = (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n break;\r\n case \"textarea\":\r\n inputElement = (\r\n \r\n );\r\n break;\r\n case \"select\":\r\n inputElement = (\r\n \r\n {props.elementConfig.options.map(option => (\r\n \r\n ))}\r\n \r\n );\r\n break;\r\n case \"date\":\r\n inputElement = (\r\n (\r\n \r\n \r\n\r\n \r\n \r\n )}\r\n onBlur={props.blur}\r\n selected={props.startDate}\r\n onChange={props.changed}\r\n dateFormat=\"dd/MM/yyyy\"\r\n className={[inputClasses, align].join(\" \")}\r\n {...props.elementConfig}\r\n style={props.styleInput}\r\n />\r\n );\r\n break;\r\n default:\r\n inputElement = (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n {chkTextValid ? : null}\r\n {inputElement}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default input;\r\n","import React from \"react\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\n\r\nconst loading = (props) => {\r\n return ;\r\n};\r\n\r\nexport default loading;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport \"./signin.css\";\r\nimport { Link } from \"react-router-dom\";\r\nimport axios from \"axios\";\r\nimport { API_MYASK, API_MYASK_HEADER } from \"../../../shared/constant\";\r\nimport { connect } from \"react-redux\";\r\nimport * as actions from \"./../../../store/action/index\";\r\n// import PathTree from \"./../../../components/UI/PathTree/PathTree\";\r\nimport {\r\n updateObject,\r\n checkValidity,\r\n checkError,\r\n} from \"../../../../src/shared/utility.js\";\r\nimport Input from \"./../../../components/UI/Input/Input\";\r\nimport Loading from \"./../../../components/UI/Loading/Loading\";\r\n// import { Button } from \"@material-ui/core\";\r\n\r\nconst Signin = (props) => {\r\n const [signin, setSignin] = useState({\r\n form: {\r\n user: {\r\n order: \"0\",\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n },\r\n valid: false,\r\n touched: false,\r\n textInvalid: \"กรุณาระบุ ชื่อผู้ใช้งาน\",\r\n label: \"ชื่อผู้ใช้งาน\",\r\n },\r\n password: {\r\n order: \"1\",\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n },\r\n valid: false,\r\n touched: false,\r\n textInvalid: \"กรุณาระบุ รหัสผ่าน\",\r\n label: \"รหัสผ่าน\",\r\n },\r\n },\r\n errors: {\r\n user: \"\",\r\n password: \"\",\r\n },\r\n isAuthenticated: false,\r\n isSignup: false,\r\n formIsValid: false,\r\n textError: \"\",\r\n });\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n\r\n if (props.lineId !== null && props.token !== null) {\r\n const query = new URLSearchParams(props.location.search);\r\n const src = {};\r\n for (let param of query.entries()) {\r\n src[param[0]] = param[1];\r\n }\r\n if (Object.keys(src).length > 0) {\r\n // sessionStorage.setItem('token','eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJpZCIsImlhdCI6MTU2NzU2NDQwMX0.xp2Ae4J19uWPvCG_lF5efEvfK5ROLGS94Xl06Kxnzcc');\r\n // sessionStorage.setItem('userName','test');\r\n const target = src.target === \"status\" ? true : false;\r\n props.history.push({\r\n pathname: \"/agreements\",\r\n isDefault: target,\r\n });\r\n }\r\n }\r\n\r\n SetLoading(false);\r\n }, []);\r\n\r\n const [loading, SetLoading] = useState(true);\r\n\r\n const inputChangedHandler = (event, field) => {\r\n const validate = checkValidity(\r\n event.target.value,\r\n signin.form[field].validation\r\n );\r\n const text = checkError(\r\n validate.code,\r\n signin.form[field].label,\r\n signin.form[field].validation\r\n );\r\n\r\n const updatedFormElement = updateObject(signin.form[field], {\r\n value: event.target.value,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n\r\n let updatedForm = updateObject(signin.form, {\r\n [field]: updatedFormElement,\r\n });\r\n\r\n let formIsValid = true;\r\n for (let inputIdentifier in updatedForm) {\r\n formIsValid = updatedForm[inputIdentifier].valid && formIsValid;\r\n }\r\n\r\n const updatedState = updateObject(signin, {\r\n form: updatedForm,\r\n formIsValid: formIsValid,\r\n textError: \"\",\r\n });\r\n setSignin(updatedState);\r\n };\r\n\r\n const checkedValidate = () => {\r\n if (!signin.formIsValid) {\r\n let updatedForm;\r\n let arrayObj = [];\r\n for (let field in signin.form) {\r\n const validate = checkValidity(\r\n signin.form[field].value,\r\n signin.form[field].validation\r\n );\r\n const text = checkError(\r\n validate.code,\r\n signin.form[field].label,\r\n signin.form[field].validation\r\n );\r\n let updatedFormElement = updateObject(signin.form[field], {\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n arrayObj.push(updatedFormElement);\r\n }\r\n\r\n let arraySignin = [];\r\n for (let i in arrayObj) {\r\n if (arrayObj[i].order === \"0\") {\r\n arraySignin[0] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"1\") {\r\n arraySignin[1] = arrayObj[i];\r\n }\r\n }\r\n updatedForm = updateObject(signin.form, {\r\n user: arraySignin[0],\r\n password: arraySignin[1],\r\n });\r\n\r\n let updatedState = updateObject(signin, {\r\n form: updatedForm,\r\n });\r\n\r\n setSignin(updatedState);\r\n } else {\r\n const data_login = {\r\n username: signin.form.user.value,\r\n password: signin.form.password.value,\r\n lineid: props.lineId,\r\n };\r\n\r\n axios\r\n .post(API_MYASK + \"/Login\", data_login, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n if (res.data.CODE === \"200\") {\r\n props.onAuth(res.data.MSG, signin.form.user.value);\r\n // this.props.onSetCustInfo(res.data.DATA.FirstName, res.data.DATA.LastName);\r\n axios\r\n .get(\r\n API_MYASK +\r\n \"/GetConfig?user_name=\" +\r\n signin.form.user.value +\r\n \"&token=\" +\r\n props.token\r\n )\r\n .then((res) => {\r\n props.onSetLineToken(res.data.DATA.LINE_KEY);\r\n });\r\n props.history.push({\r\n pathname: \"/agreements\",\r\n });\r\n } else {\r\n const updatedState = updateObject(signin, {\r\n // form: updateObject(signin.form, {\r\n textError: res.data.MSG,\r\n // })\r\n });\r\n setSignin(updatedState);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const submitHandler = (event) => {\r\n window.scroll(0, 0);\r\n event.preventDefault();\r\n checkedValidate();\r\n // -------------------------------------- //\r\n };\r\n\r\n const [type, setType] = useState(\"password\");\r\n const [showPW, setShowPW] = useState(false);\r\n const onShowPW = () => {\r\n if (type === \"password\") {\r\n setType(\"input\");\r\n setShowPW(true);\r\n } else {\r\n setType(\"password\");\r\n setShowPW(false);\r\n }\r\n };\r\n\r\n if (loading) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n return (\r\n
\r\n

เข้าสู่ระบบ

\r\n
\r\n
\r\n
\r\n {signin.textError ? (\r\n \r\n ) : null}\r\n {/* */}\r\n inputChangedHandler(event, \"user\")}\r\n labelPos={\"top\"}\r\n label={signin.form.user.label}\r\n styleLabel={{ width: \"100%\", padding: \"0px\" }}\r\n />\r\n
\r\n
\r\n {/* */}\r\n inputChangedHandler(event, \"password\")}\r\n labelPos={\"top\"}\r\n label={signin.form.password.label}\r\n styleLabel={{ width: \"100%\", padding: \"0px\" }}\r\n onClick={() => onShowPW()}\r\n show={showPW}\r\n />\r\n
\r\n
\r\n \r\n เข้าสู่ระบบ\r\n \r\n
\r\n
\r\n ลืมชื่อผู้ใช้งาน\r\n
\r\n ลืมรหัสผ่าน\r\n
\r\n
\r\n \r\n\r\n

\r\n ยังไม่มีบัญชีผู้ใช้งาน?\r\n สมัครบริการ\r\n

\r\n {/*
\r\n \"line\"\r\n Line 16.28: {signin.lineID}\r\n Img: {signin.lineImg}\r\n
\r\n \r\n Getdata INFO\r\n \r\n \r\n Send Message\r\n \r\n \r\n Close LIFF\r\n \r\n
\r\n
*/}\r\n
\r\n );\r\n};\r\n\r\nconst style = {\r\n position: \"fixed\",\r\n top: \"50%\",\r\n left: \"50%\",\r\n transform: \"translate(-50%, -50%)\",\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n token: state.auth.token,\r\n lineId: state.line.userId,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onAuth: (token, userName) => dispatch(actions.auth(token, userName)),\r\n onSetLineToken: (token) => dispatch(actions.setLineToken(token)),\r\n onSetCustInfo: (firstName, lastName) =>\r\n dispatch(actions.setCustInfo(firstName, lastName)),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Signin);\r\n","import * as actionTypes from \"./actionTypes\";\r\n\r\nexport const setCustInfo = (firstName, lastName) => {\r\n return {\r\n type: actionTypes.CUST_INFO,\r\n firstName: firstName,\r\n lastName: lastName\r\n };\r\n};","import React, { Fragment, useState, useEffect } from \"react\";\r\nimport axios from \"axios\";\r\nimport { RadioButton } from \"primereact/radiobutton\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Button } from \"primereact/button\";\r\nimport \"./newotp.css\";\r\nimport { Dialog } from \"primereact/dialog\";\r\n\r\nimport Loading from \"../../components/UI/Loading/Loading\";\r\nimport { API_MYASK, API_MYASK_HEADER } from \"../../shared/constant\";\r\nimport styled from \"styled-components\";\r\n\r\nconst RadioBoxContainer = styled.div`\r\n .p-radiobutton .p-radiobutton-box .p-radiobutton-icon {\r\n background-color: #ff9600;\r\n }\r\n .p-radiobutton .p-radiobutton-box.p-highlight {\r\n border-color: #4b4b4b;\r\n background: #ff9600;\r\n }\r\n .p-radiobutton .p-radiobutton-box.p-highlight:not(.p-disabled):hover {\r\n border-color: #4b4b4b;\r\n background: #ff9600;\r\n }\r\n .p-radiobutton .p-radiobutton-box:not(.p-disabled):not(.p-highlight):hover {\r\n border-color: #ff9600;\r\n }\r\n .p-radiobutton .p-radiobutton-box:not(.p-disabled).p-focus {\r\n box-shadow: 0 0 0 0.2rem #ffc898;\r\n }\r\n`;\r\nconst NewOTP = (props) => {\r\n const [mobileNumberType, setMobileNumberType] = useState(\"\");\r\n const [newMobileNumber, setNewMobileNumber] = useState(\"\");\r\n const [existMobileNumber, setExistMobileNumber] = useState(\"\");\r\n const [OTPInput, setOTPInput] = useState(\"\");\r\n const [isLoadingMobileNumber, setIsLoadingMobileNumber] = useState(false);\r\n const [errorMsg, setErrorMsg] = useState(\"\");\r\n const [isSendingOtp, setIsSendingOtp] = useState(false);\r\n const [refOtp, setRefOtp] = useState(\"\");\r\n const [mobileNumber, setMobileNumber] = useState(\"\");\r\n useEffect(() => {\r\n getMobileNumber();\r\n }, []);\r\n\r\n const getMobileNumber = () => {\r\n setIsLoadingMobileNumber(true);\r\n\r\n axios\r\n .post(\r\n API_MYASK + \"/getMobileNumber\",\r\n {\r\n id_card: props.idcard,\r\n },\r\n {\r\n headers: API_MYASK_HEADER,\r\n }\r\n )\r\n .then((res) => {\r\n setIsLoadingMobileNumber(false);\r\n if (res.data.CODE == \"200\") {\r\n setExistMobileNumber(res.data.DATA);\r\n }\r\n })\r\n .catch((err) => {\r\n setIsLoadingMobileNumber(false);\r\n });\r\n };\r\n\r\n const requestOTP = () => {\r\n let valid = validRequestOTP();\r\n if (valid) {\r\n setIsSendingOtp(true);\r\n\r\n let mobileNumberForSend = \"\";\r\n\r\n if (mobileNumberType === \"new_number\") {\r\n mobileNumberForSend = newMobileNumber;\r\n } else if (mobileNumberType === \"exist_number\") {\r\n mobileNumberForSend = existMobileNumber;\r\n }\r\n setMobileNumber(mobileNumberForSend);\r\n axios\r\n .post(\r\n API_MYASK + \"/sendMobileOTP\",\r\n {\r\n id_card: mobileNumberType === \"new_number\" ? \"\" : props.idcard,\r\n mobile_type: mobileNumberType === \"new_number\" ? \"2\" : \"1\",\r\n mobile_no: mobileNumberType === \"new_number\" ? newMobileNumber : \"\",\r\n },\r\n {\r\n headers: API_MYASK_HEADER,\r\n }\r\n )\r\n .then((res) => {\r\n setIsSendingOtp(false);\r\n if (res.data.CODE == \"200\") {\r\n setRefOtp(res.data.DATA);\r\n } else {\r\n setErrorMsg(res.data.MSG);\r\n }\r\n })\r\n .catch((err) => {\r\n setIsSendingOtp(false);\r\n setErrorMsg(err.message);\r\n });\r\n }\r\n };\r\n\r\n const validRequestOTP = () => {\r\n if (mobileNumberType == \"\") {\r\n setErrorMsg(\"โปรดเลือกเบอร์โทรศัพท์ที่จะรับ OTP\");\r\n return false;\r\n }\r\n\r\n if (\r\n props.mode == \"regis\" &&\r\n mobileNumberType == \"new_number\" &&\r\n newMobileNumber == \"\"\r\n ) {\r\n setErrorMsg(\"โปรดกรอกเลขเบอร์โทรศัพท์ที่จะรับ OTP\");\r\n return false;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n const submitHandler = () => {\r\n let valid = validRequestOTP();\r\n\r\n if (valid) {\r\n if (OTPInput.length == 0) {\r\n setErrorMsg(\"โปรดระบุ OTP ที่ได้รับ\");\r\n return;\r\n }\r\n if (props.onSubmit != null) {\r\n props.onSubmit(mobileNumber, refOtp, OTPInput);\r\n }\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n setErrorMsg(\"\")}\r\n dismissableMask\r\n >\r\n
\r\n

\r\n {errorMsg}\r\n

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n

เลือกเบอร์โทรศัพท์เพื่อขอรับ OTP

\r\n\r\n {isLoadingMobileNumber && (\r\n
\r\n \r\n
\r\n )}\r\n {!isLoadingMobileNumber && (\r\n \r\n
\r\n {existMobileNumber != \"\" && (\r\n \r\n setMobileNumberType(e.value)}\r\n checked={mobileNumberType === \"exist_number\"}\r\n />\r\n
\r\n เบอร์โทรศัพท์ที่แจ้งไว้ {existMobileNumber}\r\n
\r\n
\r\n )}\r\n\r\n {props.mode == \"regis\" && (\r\n \r\n setMobileNumberType(e.value)}\r\n checked={mobileNumberType === \"new_number\"}\r\n />\r\n
\r\n ระบุเบอร์โทรศัพท์ใหม่\r\n setNewMobileNumber(e.target.value)}\r\n />\r\n
\r\n
\r\n )}\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n ระบุ OTP ที่ได้รับ\r\n {refOtp != \"\" && (\r\n

\r\n Ref: {refOtp}\r\n \r\n {\" \"}\r\n (รหัสจะหมดอายุภายใน 5 นาที)\r\n \r\n

\r\n )}\r\n
\r\n setOTPInput(e.target.value)}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n {!isLoadingMobileNumber ? (\r\n \r\n ตกลง\r\n \r\n ) : (\r\n \r\n ตกลง\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default NewOTP;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Button from './../Button/Button';\r\nimport { Grid, Typography } from \"@material-ui/core\";\r\n\r\nconst DialogScroll = (props) => {\r\n return (\r\n \r\n
{props.title}
\r\n \r\n {props.text}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DialogScroll;","import React, { Fragment } from \"react\";\r\nimport { Button } from \"primereact/button\";\r\nimport CheckImage from \"../../../assets/image/check.png\";\r\n\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst SignupResult = (props) => {\r\n const history = useHistory();\r\n\r\n const onClickButton = () => {\r\n history.push({ pathname: \"/agreements\" });\r\n };\r\n return (\r\n \r\n \r\n
\r\n \r\n\r\n \r\n การลงทะเบียนเสร็จสิ้นแล้ว\r\n

\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default SignupResult;\r\n","import React, { Fragment, useEffect, useState } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Button } from \"primereact/button\";\r\nimport \"./signup.css\";\r\nimport {\r\n updateObject,\r\n checkValidity,\r\n checkError,\r\n} from \"./../../../shared/utility\";\r\nimport Input from \"./../../../components/UI/Input/Input\";\r\nimport Loading from \"../../../components/UI/Loading/Loading\";\r\nimport axios from \"axios\";\r\nimport * as actions from \"./../../../store/action/index\";\r\nimport {\r\n API_MYASK,\r\n API_MYASK_HEADER,\r\n ERROR_MSG_USER,\r\n ERROR_MSG_AGRCODE,\r\n ERROR_MSG_TEL,\r\n ERROR_MSG_AGRCODE2,\r\n} from \"../../../shared/constant\";\r\n\r\nimport NewOTP from \"../../newotp/newotp\";\r\nimport DialogScroll from \"./../../../components/UI/DialogScroll/DialogScroll\";\r\nimport SignupResult from \"./signupresult\";\r\n\r\nconst Signup = (props) => {\r\n const [page, setPage] = useState(1);\r\n const [checked, setChecked] = useState(false);\r\n const [open, setOpen] = useState(false);\r\n const [isLoding, setIsLoding] = useState(false);\r\n const [errorMsg, setErrorMsg] = useState(\"\");\r\n const [signup, setSignup] = useState({\r\n form: {\r\n idcard: {\r\n order: \"0\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"a-z,A-Z,0-9,@-_.\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n },\r\n valid: false,\r\n touched: false,\r\n textInvalid: \"\",\r\n label: \"เลขบัตรประชาชน / เอกสารแสดงตน\",\r\n labelError: \"เลขบัตรประชาชน / เอกสารแสดงตน\",\r\n },\r\n username: {\r\n order: \"1\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"a-z,A-Z,0-9,@-_.\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n minLength: 4,\r\n maxLength: 50,\r\n },\r\n valid: false,\r\n touched: false,\r\n textInvalid: \"\",\r\n label: \"ชื่อผู้ใช้งาน / Username\",\r\n labelError: \"ชื่อผู้ใช้งาน / Username\",\r\n },\r\n password: {\r\n order: \"2\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"password\",\r\n placeholder: \"a-z,A-Z,0-9,@-_.\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n minLength: 4,\r\n maxLength: 50,\r\n },\r\n valid: false,\r\n touched: false,\r\n textInvalid: \"\",\r\n label: \"รหัสผ่าน / Password\",\r\n labelError: \"รหัสผ่าน / Password\",\r\n },\r\n confirmPassword: {\r\n order: \"3\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"password\",\r\n placeholder: \"a-z,A-Z,0-9,@-_.\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n },\r\n valid: false,\r\n touched: false,\r\n textInvalid: \"กรุณายืนยัน รหัสผ่าน\",\r\n label: \"ยืนยันรหัสผ่าน / Confirm Password\",\r\n checkPass: false,\r\n labelError: \"ยืนยันรหัสผ่าน / Confirm Password\",\r\n },\r\n email: {\r\n order: \"4\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"email\",\r\n placeholder: \"\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: false,\r\n isEmail: true,\r\n },\r\n isEmail: false,\r\n valid: true,\r\n touched: false,\r\n textInvalid: \"E-mail ไม่ถูกต้อง\",\r\n label: \"E-mail\",\r\n labelError: \"E-mail\",\r\n },\r\n },\r\n formIsValid: false,\r\n formCheckErr: false,\r\n });\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, []);\r\n\r\n const handleCheck = () => {\r\n if (checked == true) {\r\n setChecked(false);\r\n } else {\r\n setChecked(true);\r\n }\r\n };\r\n\r\n const handleOpen = () => {\r\n if (open == false) {\r\n setOpen(true);\r\n }\r\n };\r\n\r\n const handleClose = () => {\r\n if (open == true) {\r\n setOpen(false);\r\n }\r\n };\r\n\r\n const onChangeHandler = (val, id) => {\r\n // if (id === \"idcard\") {\r\n // val = onChangeNumber(val);\r\n // }\r\n\r\n if (\r\n id === \"username\" ||\r\n id === \"password\" ||\r\n id === \"confirmPassword\" ||\r\n id === \"idcard\"\r\n ) {\r\n val = val.replace(/[^A-Za-z0-9@_.-]/gi, \"\");\r\n }\r\n\r\n const validate = checkValidity(val, signup.form[id].validation);\r\n let text = checkError(\r\n validate.code,\r\n signup.form[id].label,\r\n signup.form[id].validation\r\n );\r\n let checkConfirmpass;\r\n let updatedFormElement;\r\n let updatedConfirmpass;\r\n let updatedPassword;\r\n\r\n if (id === \"idcard\") {\r\n if (val === \"\") {\r\n updatedFormElement = updateObject(signup.form[id], {\r\n value: val,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: false,\r\n });\r\n } else {\r\n updatedFormElement = updateObject(signup.form[id], {\r\n value: val,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n }\r\n } else if (id === \"email\") {\r\n if (val === \"\") {\r\n updatedFormElement = updateObject(signup.form[id], {\r\n value: val,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: false,\r\n isEmail: false,\r\n });\r\n } else {\r\n updatedFormElement = updateObject(signup.form[id], {\r\n value: val,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n isEmail: true,\r\n });\r\n }\r\n } else if (id === \"confirmPassword\") {\r\n if (val === \"\") {\r\n updatedFormElement = updateObject(signup.form[id], {\r\n value: val,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n checkPass: false,\r\n });\r\n } else if (signup.form.password.value !== val) {\r\n text = \"รหัสผ่าน และ ยืนยันรหัสผ่านไม่ตรงกัน\";\r\n updatedFormElement = updateObject(signup.form[id], {\r\n value: val,\r\n // valid: !validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n checkPass: false,\r\n });\r\n } else if (signup.form.password.value === val) {\r\n updatedFormElement = updateObject(signup.form[id], {\r\n value: val,\r\n valid: validate.isValid,\r\n textInvalid: \"\",\r\n touched: true,\r\n checkPass: true,\r\n });\r\n }\r\n } else if (\r\n id === \"password\" &&\r\n signup.form.confirmPassword.value !== val &&\r\n signup.form.confirmPassword.touched === true\r\n ) {\r\n let textConfirmpass;\r\n if (signup.form.confirmPassword.value === \"\") {\r\n textConfirmpass = \"กรุณาระบุยืนยันรหัสผ่าน\";\r\n updatedConfirmpass = updateObject(signup.form.confirmPassword, {\r\n valid: false,\r\n textInvalid: textConfirmpass,\r\n touched: true,\r\n checkPass: false,\r\n });\r\n } else {\r\n textConfirmpass = \"รหัสผ่าน และ ยืนยันรหัสผ่านไม่ตรงกัน\";\r\n updatedConfirmpass = updateObject(signup.form.confirmPassword, {\r\n valid: false,\r\n textInvalid: textConfirmpass,\r\n touched: true,\r\n checkPass: false,\r\n });\r\n }\r\n updatedPassword = updateObject(signup.form.password, {\r\n value: val,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n checkConfirmpass = true;\r\n } else if (\r\n id === \"password\" &&\r\n signup.form.confirmPassword.value === val &&\r\n signup.form.confirmPassword.touched === true\r\n ) {\r\n let textConfirmpass;\r\n if (signup.form.confirmPassword.value === \"\") {\r\n textConfirmpass = \"กรุณาระบุยืนยันรหัสผ่าน\";\r\n updatedConfirmpass = updateObject(signup.form.confirmPassword, {\r\n valid: false,\r\n textInvalid: textConfirmpass,\r\n touched: true,\r\n checkPass: false,\r\n });\r\n } else {\r\n updatedConfirmpass = updateObject(signup.form.confirmPassword, {\r\n valid: true,\r\n touched: true,\r\n checkPass: true,\r\n textInvalid: \"\",\r\n });\r\n }\r\n updatedPassword = updateObject(signup.form.password, {\r\n value: val,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n checkConfirmpass = true;\r\n } else {\r\n updatedFormElement = updateObject(signup.form[id], {\r\n value: val,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n }\r\n\r\n let updatedForm;\r\n if (checkConfirmpass) {\r\n updatedForm = updateObject(signup.form, {\r\n confirmPassword: updatedConfirmpass,\r\n password: updatedPassword,\r\n });\r\n } else {\r\n updatedForm = updateObject(signup.form, {\r\n [id]: updatedFormElement,\r\n });\r\n }\r\n\r\n let formIsValid = true;\r\n for (let inputIdentifier in updatedForm) {\r\n formIsValid = updatedForm[inputIdentifier].valid && formIsValid;\r\n }\r\n\r\n const updatedState = updateObject(signup, {\r\n form: updatedForm,\r\n formIsValid: formIsValid,\r\n formCheckErr: false,\r\n });\r\n setSignup(updatedState);\r\n };\r\n\r\n const checkedValidate = () => {\r\n if (!signup.formIsValid || !signup.form.confirmPassword.checkPass) {\r\n let updatedForm;\r\n let arrayObj = [];\r\n let updatedFormElement;\r\n let text;\r\n for (let field in signup.form) {\r\n const validate = checkValidity(\r\n signup.form[field].value,\r\n signup.form[field].validation\r\n );\r\n if (\r\n field === \"confirmPassword\" &&\r\n signup.form.confirmPassword.checkPass === false\r\n ) {\r\n if (\r\n (signup.form.password.value === \"\" &&\r\n signup.form.confirmPassword.value === \"\") ||\r\n (signup.form.password.value !== \"\" &&\r\n signup.form.confirmPassword.value === \"\")\r\n ) {\r\n text = \"กรุณาระบุยืนยันรหัสผ่าน\";\r\n } else {\r\n text = \"รหัสผ่าน และ ยืนยันรหัสผ่านไม่ตรงกัน\";\r\n }\r\n updatedFormElement = updateObject(signup.form[field], {\r\n valid: false,\r\n touched: true,\r\n textInvalid: text,\r\n });\r\n } else {\r\n text = checkError(\r\n validate.code,\r\n signup.form[field].labelError,\r\n signup.form[field].validation\r\n );\r\n updatedFormElement = updateObject(signup.form[field], {\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n }\r\n\r\n arrayObj.push(updatedFormElement);\r\n }\r\n\r\n let arraySignup = [];\r\n for (let i in arrayObj) {\r\n if (arrayObj[i].order === \"0\") {\r\n arraySignup[0] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"1\") {\r\n arraySignup[1] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"2\") {\r\n arraySignup[2] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"3\") {\r\n arraySignup[3] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"4\") {\r\n arraySignup[4] = arrayObj[i];\r\n }\r\n }\r\n\r\n updatedForm = updateObject(signup.form, {\r\n idcard: arraySignup[0],\r\n username: arraySignup[1],\r\n password: arraySignup[2],\r\n confirmPassword: arraySignup[3],\r\n email: arraySignup[4],\r\n });\r\n\r\n let updatedState = updateObject(signup, {\r\n form: updatedForm,\r\n });\r\n\r\n setSignup(updatedState);\r\n } else {\r\n //register();\r\n checkUsernameAndIdCard();\r\n }\r\n };\r\n\r\n const goBackRegisterForm = () => {\r\n setPage(1);\r\n };\r\n\r\n const goToOtpPage = () => {\r\n setPage(2);\r\n };\r\n\r\n const goToSuccessPage = () => {\r\n setPage(3);\r\n };\r\n\r\n const checkUsernameAndIdCard = () => {\r\n const data = {\r\n id_card: signup.form.idcard.value,\r\n username: signup.form.username.value,\r\n };\r\n setIsLoding(true);\r\n axios\r\n .post(API_MYASK + \"/validateRegister\", data, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n setIsLoding(false);\r\n if (res.data.CODE === \"200\") {\r\n goToOtpPage();\r\n } else {\r\n let err = res.data.DATA;\r\n let updatedState;\r\n\r\n let username = { ...signup.form.username };\r\n let idcard = { ...signup.form.idcard };\r\n\r\n if (err.username_valid === false) {\r\n username = updateObject(username, {\r\n textInvalid: err.username_msg,\r\n touched: true,\r\n });\r\n }\r\n\r\n if (err.idcard_valid === false) {\r\n idcard = updateObject(idcard, {\r\n textInvalid: err.idcard_msg,\r\n touched: true,\r\n });\r\n }\r\n\r\n updatedState = updateObject(signup, {\r\n form: updateObject(signup.form, {\r\n username,\r\n idcard,\r\n }),\r\n });\r\n console.log(updatedState);\r\n setSignup(updatedState);\r\n }\r\n })\r\n .catch((err) => {\r\n setIsLoding(false);\r\n setErrorMsg(err);\r\n });\r\n };\r\n\r\n const submitHandler = (event) => {\r\n window.scrollTo(0, 0);\r\n event.preventDefault();\r\n checkedValidate();\r\n };\r\n\r\n const onChangeNumber = (val) => {\r\n const pattern = /^\\d+$/;\r\n const isValid = pattern.test(val);\r\n if (isValid || val === \"\") {\r\n return val;\r\n } else {\r\n return val.substring(val.length - 1, 0);\r\n }\r\n };\r\n\r\n const [type, setType] = useState(\"password\");\r\n const [showPW, setShowPW] = useState(false);\r\n const onShowPW = () => {\r\n if (type === \"password\") {\r\n setType(\"input\");\r\n setShowPW(true);\r\n } else {\r\n setType(\"password\");\r\n setShowPW(false);\r\n }\r\n };\r\n\r\n const onRegister = (mobile_no, ref_otp, pwd_otp) => {\r\n let data = {\r\n id_card: signup.form.idcard.value,\r\n username: signup.form.username.value,\r\n password: signup.form.password.value,\r\n email: signup.form.email.value,\r\n lineId: props.lineId,\r\n mobile_no: mobile_no,\r\n ref_otp: ref_otp,\r\n pwd_otp: pwd_otp,\r\n };\r\n setIsLoding(true);\r\n axios\r\n .post(API_MYASK + \"/newRegister\", data, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n setIsLoding(false);\r\n if (res.data.CODE == \"200\") {\r\n props.onAuthSuccess(res.data.DATA, signup.form.username.value);\r\n goToSuccessPage();\r\n } else {\r\n setErrorMsg(res.data.MSG);\r\n }\r\n })\r\n .catch((err) => {\r\n setIsLoding(false);\r\n setErrorMsg(err.message);\r\n });\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n setErrorMsg(\"\")}\r\n dismissableMask\r\n >\r\n
\r\n

\r\n {errorMsg}\r\n

\r\n
\r\n
\r\n
\r\n \r\n {(page == 1 || page == 2) && (\r\n \r\n

ลงทะเบียน

\r\n {page == 1 && (\r\n
\r\n
\r\n
\r\n {/* */}\r\n {\r\n // onChangeNumber(event.target.value);\r\n onChangeHandler(event.target.value, \"idcard\");\r\n }}\r\n label={signup.form.idcard.label}\r\n labelPos={\"top\"}\r\n styleLabel={{ width: \"100%\", padding: \"0px\" }}\r\n />\r\n
\r\n
\r\n {/* */}\r\n \r\n onChangeHandler(event.target.value, \"username\")\r\n }\r\n label={signup.form.username.label}\r\n labelPos={\"top\"}\r\n styleLabel={{ width: \"100%\", padding: \"0px\" }}\r\n />\r\n
\r\n
\r\n {/* */}\r\n \r\n onChangeHandler(event.target.value, \"password\")\r\n }\r\n label={signup.form.password.label}\r\n labelPos={\"top\"}\r\n styleLabel={{ width: \"100%\", padding: \"0px\" }}\r\n onClick={() => onShowPW()}\r\n show={showPW}\r\n />\r\n
\r\n
\r\n {/* */}\r\n \r\n onChangeHandler(event.target.value, \"confirmPassword\")\r\n }\r\n label={signup.form.confirmPassword.label}\r\n labelPos={\"top\"}\r\n styleLabel={{ width: \"100%\", padding: \"0px\" }}\r\n onClick={() => onShowPW()}\r\n show={showPW}\r\n />\r\n
\r\n
\r\n {/* */}\r\n \r\n onChangeHandler(event.target.value, \"email\")\r\n }\r\n label={signup.form.email.label}\r\n labelPos={\"top\"}\r\n styleLabel={{ width: \"100%\", padding: \"0px\" }}\r\n />\r\n
\r\n
\r\n \r\n \r\n ยอมรับ\r\n \r\n ข้อตกลงในการใช้บริการของ askconnect\r\n \r\n

\r\n
\r\n \r\n บริษัท เอเซียเสริมกิจลีสซิ่ง จำกัด (มหาชน)\r\n ซึ่งต่อไปนี้จะเรียกว่า “บริษัท” จัดทำบริการ askconnect นี้\r\n เพื่อให้ข้อมูลเกี่ยวกับผลิตภัณฑ์และบริการต่าง ๆ ของบริษัท\r\n เพื่ออำนวยความสะดวกในการติดต่อสื่อสาร ระหว่างท่านกับบริษัท\r\n ทั้งนี้ ไม่ว่าในขณะใดขณะหนึ่งก็ตาม\r\n บริษัทสามารถแก้ไขปรับปรุงข้อกำหนดและเงื่อนไขต่าง ๆ ใน\r\n askconnect นี้ได้ อีกทั้ง\r\n บริษัทขอสงวนสิทธิ์ของบริษัทในการเปลี่ยนแปลง askconnect\r\n ข้อกำหนดและเงื่อนไขต่าง ๆ ใน askconnect นี้ได้\r\n โดยไม่ต้องแจ้งให้ท่านทราบแต่อย่างใด “ผู้ขอสมัครสมาชิก”\r\n ซึ่งต่อไปนี้จะเรียกว่า “ผู้สมัคร” กรุณาอ่านข้อความตกลง\r\n ข้อกำหนด และเงื่อนไขด้านล่างนี้โดยละเอียด\r\n เพื่อรักษาสิทธิประโยชน์ในการเป็นสมาชิกของผู้สมัคร ทั้งนี้\r\n ในขั้นตอนการกรอกแบบฟอร์มใบสมัครนั้นสมาชิกจะต้องกรอกข้อมูลต่าง\r\n ๆ ตามความเป็นจริง\r\n โดยกรอกชื่อ-นามสกุลจริงของผู้สมัครลงในแบบฟอร์มลงทะเบียนสมาชิก\r\n
\r\n
\r\n 1. ผู้สมัครจะต้องกรอกข้อมูลรายละเอียดต่าง ๆ\r\n ตามจริงให้ครบถ้วน ข้อมูลใด ๆ\r\n ที่ผู้สมัครกรอกเพื่อสมัครใช้บริการ askconnect นี้\r\n บริษัทจะถือว่าเป็นข้อมูลของตัวผู้สมัครเองทั้งสิ้น ทั้งนี้\r\n เพื่อประโยชน์แก่ตัวผู้สมัคร\r\n หากตรวจพบว่าข้อมูลของผู้สมัครไม่เป็นความจริง\r\n บริษัทจะระงับการใช้บริการของผู้สมัครโดยไม่ต้องแจ้งให้ทราบล่วงหน้า\r\n
\r\n
\r\n 2. ผู้ใดแอบอ้างหรือกระทำการใด ๆ\r\n อันเป็นการละเมิดสิทธิส่วนบุคคลโดยใช้ข้อมูลของผู้อื่นมาแอบอ้างสมัครใช้บริการ\r\n askconnect นี้ เพื่อให้ได้มาซึ่งสิทธิในการใช้บริการ\r\n askconnect\r\n ของบริษัทถือเป็นความผิดต้องรับโทษตามที่กฎหมายกำหนดไว้\r\n และต้องรับผิดต่อบริษัท และ/หรือบุคคลใด ๆ\r\n ที่ได้รับความเสียหายด้วย\r\n
\r\n
\r\n 3. ผู้สมัครจะต้องเป็นผู้ใช้งานบัญชี Line\r\n ซึ่งผู้สมัครได้สมัครใช้บริการ askconnect\r\n นี้แต่เพียงผู้เดียว\r\n ห้ามมิให้บุคคลอื่นเข้าถึง/เข้าใช้งานโดยเด็ดขาด ทั้งนี้\r\n เมื่อมีการใช้งานบัญชี Line ซึ่งผู้สมัครได้สมัครใช้บริการ\r\n askconnect นี้ ในการใช้บริการ askconnect\r\n ของบริษัทจะถือว่าผู้สมัครเป็นผู้แสดงตนหรือเป็นผู้ใช้งานด้วยตนเองทุกครั้ง\r\n
\r\n
\r\n 4. เพื่อเป็นการปกป้องหรือป้องกันข้อมูลส่วนบุคคลใด ๆ\r\n ของผู้สมัครเอง ซึ่งเป็นข้อมูลที่ได้รับจากบริษัท\r\n ผู้สมัครจะต้องตั้งรหัสป้องกันการเข้าถึง/เข้าใช้งานบัญชี\r\n Line ซึ่งผู้สมัครได้สมัครใช้บริการ askconnect นี้\r\n ของผู้สมัครเอง\r\n และห้ามมิให้บุคคลอื่นใดเข้าถึง/เข้าใช้งานบัญชี Line\r\n ซึ่งผู้สมัครได้สมัครใช้บริการ askconnect นี้\r\n ของผู้สมัครเป็นอันขาด\r\n
\r\n
\r\n 5. ผู้สมัครต้องปฏิบัติตามข้อกำหนด\r\n และเงื่อนไขการให้บริการใน askconnect\r\n ของบริษัทโดยเคร่งครัดเพื่อความปลอดภัยในข้อมูลส่วนบุคคลของผู้สมัคร\r\n ในกรณีที่ข้อมูลส่วนบุคคลดังกล่าวถูกโจรกรรมโดยวิธีการทางอิเล็กทรอนิกส์\r\n หรือสูญหาย เสียหาย หรือถูกเปิดเผย\r\n อันเนื่องจากสาเหตุสุดวิสัย หรือเหตุไม่ปฏิบัติตามข้อกำหนด\r\n และเงื่อนไขการให้บริการใน askconnect\r\n ของบริษัทหรือไม่ว่ากรณีใด ๆ ทั้งสิ้น\r\n บริษัทขอสงวนสิทธิในการปฏิเสธความรับผิดจากเหตุดังกล่าวทั้งหมด\r\n
\r\n
\r\n 6.\r\n ข้อมูลส่วนบุคคลของผู้สมัครที่ได้ลงทะเบียนหรือผ่านการใช้งานใน\r\n askconnect ของบริษัททั้งหมดนั้น\r\n ผู้สมัครยอมรับและตกลงว่าเป็นสิทธิของบริษัท\r\n ซึ่งผู้สมัครตกลงอนุญาตให้บริษัทใช้ข้อมูลดังกล่าวของผู้สมัครเพื่อเป็นประโยชน์ในงาน\r\n กิจการ หรือการประกอบธุรกิจตามวัตถุประสงค์ของบริษัท\r\n
\r\n
\r\n 7. การให้ข้อมูลต่าง ๆ ต่อบริษัทโดยผ่านทาง askconnect\r\n ของบริษัทจะถือว่าเป็นทรัพย์สินของบริษัท\r\n บริษัทสามารถนำข้อมูลดังกล่าวไปใช้ได้ตามวัตถุประสงค์\r\n แนวความคิด และวิธีการที่บริษัทพิจารณาเป็นว่าเป็นการเหมาะสม\r\n และเป็นประโยชน์ต่อทั้งผู้สมัคร บริษัท\r\n หรือลูกค้าท่านอื่นของบริษัท\r\n รวมทั้งการใช้ข้อมูลดังกล่าวจะอยู่ภายในขอบเขตแห่งวัตถุประสงค์ของผลิตภัณฑ์\r\n และบริการต่าง ๆ ของบริษัท\r\n
\r\n
\r\n 8. บริษัทขอรับรองว่าจะเก็บข้อมูลของผู้สมัครไว้เป็นความลับ\r\n จะไม่นำไปเปิดเผยที่ใด โดยไม่ได้รับอนุญาต\r\n นอกจากจะได้รับหมายศาล หรือหนังสือทางราชการ\r\n ซึ่งขึ้นอยู่กับดุลพินิจของบริษัท\r\n
\r\n
\r\n 9. ข้อความ ภาพนิ่ง เสียง หรือภาพวิดีโอต่าง ๆ\r\n ที่ปรากฏอยู่ใน askconnect ของบริษัท\r\n อันเนื่องมาจากการใช้บริการของผู้สมัครถือว่าเป็นทรัพย์สินหรือลิขสิทธิ์ของบริษัททั้งสิ้น\r\n และบริษัทขอสงวนลิขสิทธิ์ในข้อความ ภาพนิ่ง เสียง\r\n และภาพวิดีโอเหล่านั้น ห้ามมิให้ผู้สมัครนำไปเผยแพร่\r\n ทำการลอกเลียนแบบ นำออกแสดง เรียกถึงข้อมูล ให้อนุญาต\r\n เปลี่ยนแปลง ตีพิมพ์ นำออกประกาศซ้ำ นำไปผลิตใหม่ นำไปใช้ซ้ำ\r\n ขาย ถ่ายโอน\r\n นำไปฟ้องร้องดำเนินคดีเพื่อให้ได้มาซึ่งงานที่ไม่ใช้ต้นฉบับ\r\n หรือดำเนินการอื่นใดในลักษณะเดียวกันโดยเด็ดขาด\r\n
\r\n
\r\n 10. บริษัทไม่มีความรับผิดในความเสียหายใด ๆ\r\n รวมตลอดถึงความเสียหายทางตรง ความเสียหายทางอ้อม\r\n ความเสียหายพิเศษ ความเสียหายโดยบังเอิญ\r\n หรือความเสียหายเกี่ยวเนื่อง ความสูญหาย หรือค่าใช้จ่ายใด ๆ\r\n ที่เกิดขึ้นอันเกี่ยวเนื่องกับการไม่สามารถดำเนินการข้อผิดพลาด\r\n การงดเว้นการกระทำ การสอดแทรก การบกพร่อง\r\n หรือความล่าช้าในการดำเนินการ หรือการถ่ายโอนข้อมูล ไวรัส\r\n การไม่ทำงานของเครือข่าย หรือระบบ ทั้งนี้ ถึงแม้ว่าบริษัท\r\n หรือตัวแทนของบริษัทจะได้รับแจ้งถึงความเป็นได้ในการเกิดความเสียหาย\r\n ความสูญหาย หรือค่าใช้จ่ายต่าง ๆ ดังกล่าวแล้วก็ตาม\r\n
\r\n
\r\n 11. หากมีการเปลี่ยนแปลงข้อตกลงในการให้บริการ askconnect\r\n ของบริษัท บริษัทจะแจ้งให้ผู้สมัครทราบ\r\n โดยขึ้นหน้าจอข้อตกลงใหม่ เพื่อให้ผู้สมัครรับทราบ\r\n และผู้สมัครจะใช้บริการของบริษัทต่อไปได้เมื่อผู้สมัครยอมรับข้อตกลงใหม่ของบริษัท\r\n โดยการเลือก “ยอมรับ”\r\n
\r\n
\r\n 12. ผู้สมัครมีสิทธิที่จะยกเลิกการใช้บริการ askconnect\r\n ของบริษัทได้โดยตลอด โดยการแจ้งยกเลิกผ่านทาง Call Center\r\n ของบริษัท ที่หมายเลขโทรศัพท์ 02-679-6226\r\n
\r\n
\r\n 13. ในกรณีที่จะต้องมีการตีความข้อความตกลง ข้อกำหนด\r\n และเงื่อนไขที่ปรากฏใน askconnect ของบริษัท\r\n หรือกรณีที่มีข้อพิพาทอันเนื่องมาจากการใช้บริการ askconnect\r\n ของบริษัท กฎหมายไทยจะเป็นกฎหมายที่นำมาใช้บังคับในการตีความ\r\n หรือระงับข้อพิพาทดังกล่าว\r\n ข้าพเจ้าผู้สมัครได้อ่านข้อความตกลง ข้อกำหนด และเงื่อนไข\r\n
\r\n
\r\n
\r\n }\r\n />\r\n
\r\n {checked ? (\r\n \r\n ลงทะเบียน\r\n \r\n ) : (\r\n \r\n ลงทะเบียน\r\n \r\n )}\r\n
\r\n
\r\n \r\n )}\r\n {page == 2 && (\r\n
\r\n \r\n
\r\n )}\r\n \r\n )}\r\n {page == 3 && }\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n lineId: state.line.userId,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onAuthSuccess: (token, userName) => dispatch(actions.auth(token, userName)),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Signup);\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport * as actions from \"./../../../store/action/index\";\r\n\r\nconst Logout = (props) => {\r\n useEffect(() => {\r\n props.clearAgreementState();\r\n props.clearPaymentState();\r\n props.onLogout(props.lineId, sessionStorage.getItem(\"userName\"));\r\n }, []);\r\n\r\n return ;\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n lineId: state.line.userId,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onLogout: (lineId, userName) => dispatch(actions.logout(lineId, userName)),\r\n clearAgreementState: () => dispatch(actions.clearAgreementState()),\r\n clearPaymentState: () => dispatch(actions.clearPaymentState()),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Logout);\r\n","import React, { Fragment } from \"react\";\r\nimport { Button } from \"primereact/button\";\r\nimport CheckImage from \"../../../assets/image/check.png\";\r\n\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nconst ForgotResult = (props) => {\r\n const history = useHistory();\r\n\r\n const onClickButton = () => {\r\n history.push({ pathname: \"/login\" });\r\n };\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n ชื่อผู้งานของท่านคือ{\" \"}\r\n
\r\n {props.username}\r\n
\r\n
\r\n
\r\n รหัสผ่านของท่านคือ{\" \"}\r\n
\r\n {props.password}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ForgotResult;\r\n","import React, { Fragment, useEffect, useState } from \"react\";\r\nimport \"./forgot.css\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Button } from \"primereact/button\";\r\nimport Input from \"./../../../components/UI/Input/Input\";\r\nimport Loading from \"./../../../components/UI/Loading/Loading\";\r\nimport {\r\n updateObject,\r\n checkValidity,\r\n checkError,\r\n} from \"./../../../shared/utility\";\r\nimport axios from \"axios\";\r\nimport { API_MYASK, API_MYASK_HEADER } from \"../../../shared/constant\";\r\nimport NewOTP from \"../../newotp/newotp\";\r\nimport ForgotResult from \"./forgotresult\";\r\n\r\nconst Forgot = (props) => {\r\n const [usernameRes, setUsernameRes] = useState(\"\");\r\n const [passwordRes, setPasswordRes] = useState(\"\");\r\n const [isLoding, setIsLoding] = useState(false);\r\n const [errorMsg, setErrorMsg] = useState(\"\");\r\n const [page, setPage] = useState(1);\r\n const [forgotForm, setForgotForm] = useState({\r\n form: {\r\n idcard: {\r\n order: \"0\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"a-z,A-Z,0-9,@-_.\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n },\r\n valid: false,\r\n touched: false,\r\n textInvalid: \"\",\r\n label: \"เลขบัตรประชาชน / เอกสารแสดงตน\",\r\n labelError: \"เลขบัตรประชาชน / เอกสารแสดงตน\",\r\n },\r\n },\r\n formIsValid: false,\r\n textError: \"\",\r\n chkError: false,\r\n });\r\n\r\n const onChangeNumber = (val) => {\r\n const pattern = /^\\d+$/;\r\n const isValid = pattern.test(val);\r\n if (isValid || val === \"\") {\r\n return val;\r\n } else {\r\n return val.substring(val.length - 1, 0);\r\n }\r\n };\r\n\r\n const onChangeHandler = (val, id) => {\r\n // if (id === \"idcard\") {\r\n // val = onChangeNumber(val);\r\n // }\r\n const validate = checkValidity(val, forgotForm.form[id].validation);\r\n\r\n let text = checkError(\r\n validate.code,\r\n forgotForm.form[id].label,\r\n forgotForm.form[id].validation\r\n );\r\n\r\n let updatedFormElement;\r\n\r\n if (id === \"idcard\") {\r\n if (val === \"\") {\r\n updatedFormElement = updateObject(forgotForm.form[id], {\r\n value: val,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: false,\r\n });\r\n } else {\r\n updatedFormElement = updateObject(forgotForm.form[id], {\r\n value: val,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n }\r\n }\r\n\r\n let updatedForm;\r\n updatedForm = updateObject(forgotForm.form, {\r\n [id]: updatedFormElement,\r\n });\r\n\r\n let formIsValid = true;\r\n for (let inputIdentifier in updatedForm) {\r\n formIsValid = updatedForm[inputIdentifier].valid && formIsValid;\r\n }\r\n\r\n const updatedState = updateObject(forgotForm, {\r\n form: updatedForm,\r\n formIsValid: formIsValid,\r\n formCheckErr: false,\r\n });\r\n setForgotForm(updatedState);\r\n };\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, []);\r\n\r\n const checkUsernameByIdCard = () => {\r\n const data = {\r\n id_card: forgotForm.form.idcard.value,\r\n };\r\n setIsLoding(true);\r\n axios\r\n .post(API_MYASK + \"/checkExistUser\", data, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n setIsLoding(false);\r\n if (res.data.CODE === \"200\") {\r\n goToOtpPage();\r\n } else {\r\n setErrorMsg(res.data.MSG);\r\n }\r\n })\r\n .catch((err) => {\r\n setIsLoding(false);\r\n setErrorMsg(err);\r\n });\r\n };\r\n\r\n const onGetUserPasswordByIdCard = (mobile_no, ref_otp, pwd_otp) => {\r\n let data = {\r\n id_card: forgotForm.form.idcard.value,\r\n mobile_no: mobile_no,\r\n ref_otp: ref_otp,\r\n pwd_otp: pwd_otp,\r\n };\r\n\r\n setIsLoding(true);\r\n axios\r\n .post(API_MYASK + \"/getUserPassword\", data, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n setIsLoding(false);\r\n if (res.data.CODE == \"200\") {\r\n const username = res.data.DATA.username;\r\n const password = res.data.DATA.password;\r\n setUsernameRes(username);\r\n setPasswordRes(password);\r\n goToResultPage();\r\n } else {\r\n setErrorMsg(res.data.MSG);\r\n }\r\n })\r\n .catch((err) => {\r\n setIsLoding(false);\r\n setErrorMsg(err.message);\r\n });\r\n };\r\n\r\n const checkedValidate = () => {\r\n if (!forgotForm.formIsValid) {\r\n let updatedForm;\r\n let arrayObj = [];\r\n let updatedFormElement;\r\n let text;\r\n for (let field in forgotForm.form) {\r\n const validate = checkValidity(\r\n forgotForm.form[field].value,\r\n forgotForm.form[field].validation\r\n );\r\n text = checkError(\r\n validate.code,\r\n forgotForm.form[field].label,\r\n forgotForm.form[field].validation\r\n );\r\n updatedFormElement = updateObject(forgotForm.form[field], {\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n arrayObj.push(updatedFormElement);\r\n }\r\n\r\n let arrayForgot = [];\r\n for (let i in arrayObj) {\r\n if (arrayObj[i].order === \"0\") {\r\n arrayForgot[0] = arrayObj[i];\r\n }\r\n }\r\n updatedForm = updateObject(forgotForm.form, {\r\n idcard: arrayForgot[0],\r\n });\r\n let updatedState = updateObject(forgotForm, {\r\n form: updatedForm,\r\n chkError: true,\r\n });\r\n setForgotForm(updatedState);\r\n } else {\r\n checkUsernameByIdCard();\r\n }\r\n };\r\n\r\n const submitHandler = (event) => {\r\n window.scrollTo(0, 0);\r\n event.preventDefault();\r\n checkedValidate();\r\n };\r\n\r\n const goBackForgotForm = () => {\r\n setPage(1);\r\n };\r\n\r\n const goToOtpPage = () => {\r\n setPage(2);\r\n };\r\n\r\n const goToResultPage = () => {\r\n setPage(3);\r\n };\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n setErrorMsg(\"\")}\r\n dismissableMask\r\n >\r\n
\r\n

\r\n {errorMsg}\r\n

\r\n
\r\n
\r\n
\r\n \r\n {(page == 1 || page == 2) && (\r\n \r\n

\r\n ลืมผู้ใช้งานและรหัสผ่าน\r\n

\r\n {page == 1 && (\r\n
\r\n
\r\n
\r\n {forgotForm.textError ? (\r\n \r\n ) : null}\r\n {\r\n onChangeNumber(event.target.value);\r\n onChangeHandler(event.target.value, \"idcard\");\r\n }}\r\n label={forgotForm.form.idcard.label}\r\n labelPos={\"top\"}\r\n styleLabel={{ width: \"100%\", padding: \"0px\" }}\r\n />\r\n
\r\n
\r\n \r\n ต่อไป\r\n \r\n
\r\n
\r\n
\r\n )}\r\n\r\n {page == 2 && (\r\n
\r\n \r\n
\r\n )}\r\n
\r\n )}\r\n\r\n {page == 3 && (\r\n \r\n )}\r\n
\r\n );\r\n};\r\nexport default Forgot;\r\n","import React, { useState } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Modal from '@material-ui/core/Modal';\r\nimport Backdrop from '@material-ui/core/Backdrop';\r\n\r\nlet style;\r\n\r\nconst Modal1 = (props) => {\r\n\r\n const useStyles = makeStyles(theme => ({\r\n modal: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n }));\r\n const classes = useStyles();\r\n // style = {\r\n // top: '50%',\r\n // left: '50%',\r\n // transform: 'translate(-50%, -50%)', //'translate(-50%, -50%)'\r\n // position: 'absolute',\r\n // width: props.width,\r\n // backgroundColor: props.color,\r\n // borderRadius: props.borderRadius,\r\n // padding: props.padding,\r\n // outline: 'none',\r\n // overflowY: props.scroll,\r\n // height: props.height,\r\n // verticalAlign: props.verticalAlign,\r\n // }\r\n return (\r\n \r\n
\r\n {props.children}\r\n
\r\n \r\n // \r\n //
\r\n // {props.children}\r\n //
\r\n // \r\n );\r\n};\r\n\r\nexport default Modal1;","import React, { useState } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Modal from './../Modal/Modal';\r\nimport Button from './../Button/Button';\r\nimport { Redirect } from 'react-router-dom'\r\n\r\nconst ErrorModal = (props) => {\r\n\r\n const useStyles = makeStyles(theme => ({\r\n modal: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n },\r\n paper: {\r\n backgroundColor: theme.palette.background.paper,\r\n border: '0.1rem solid #000',\r\n borderRadius: '1rem',\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(2, 4, 3),\r\n },\r\n }));\r\n const classes = useStyles();\r\n\r\n\r\n const [open, setOpen] = React.useState(true);\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n }\r\n\r\n return (\r\n \r\n
\r\n

{props.title}

\r\n

\r\n

{props.text}

\r\n

\r\n

\r\n
\r\n
\r\n\r\n \r\n );\r\n};\r\n\r\nexport default ErrorModal;","import React, { useEffect, useState } from \"react\";\r\n// import Grid from \"@material-ui/core/Grid\";\r\nimport \"./question.css\";\r\nimport axios from \"axios\";\r\nimport Input from \"./../../../components/UI/Input/Input\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport {\r\n updateObject,\r\n randNumber,\r\n randString,\r\n logError,\r\n} from \"./../../../shared/utility\";\r\nimport { API_MYASK, API_MYASK_HEADER, API_OTP } from \"../../../shared/constant\";\r\nimport { connect } from \"react-redux\";\r\nimport * as actions from \"./../../../store/action/index\";\r\n// import DatePicker from \"react-datepicker\";\r\n// import { getYear } from \"date-fns\";\r\nimport { BrowserView, MobileView } from \"react-device-detect\";\r\nimport Loading from \"./../../../components/UI/Loading/Loading\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\n// import Button from \"./../../../components/UI/Button/Button\";\r\nimport Error from \"./../../../components/UI/Error/Error\";\r\n\r\nconst Question = (props) => {\r\n let otpRedirect = null;\r\n if (!props.location.agr_code) {\r\n otpRedirect = ;\r\n }\r\n const [questionForm, setQuestionForm] = useState({\r\n question: {\r\n q1: {\r\n value: \"\",\r\n },\r\n q2: {\r\n value: \"\",\r\n },\r\n q3: {\r\n value: \"\",\r\n },\r\n q4: {\r\n value: \"\",\r\n },\r\n // q5: {\r\n // value: ''\r\n // },\r\n },\r\n textAns: \"\",\r\n });\r\n\r\n const [startDate, setStartDate] = useState(new Date());\r\n\r\n const [loading, setLoading] = useState(true);\r\n\r\n const [btnLoading, setBtnLoading] = useState(false);\r\n\r\n // const years = range(50, getYear(new Date()) + 1, 1);\r\n const years = range(120, 1920);\r\n const months = [\r\n \"January\",\r\n \"February\",\r\n \"March\",\r\n \"April\",\r\n \"May\",\r\n \"June\",\r\n \"July\",\r\n \"August\",\r\n \"September\",\r\n \"October\",\r\n \"November\",\r\n \"December\",\r\n ];\r\n\r\n function range(size, startAt = 0) {\r\n return [...Array(size).keys()].map((i) => i + startAt);\r\n }\r\n\r\n // const handleOnBlur = ({ target: { value } }) => {\r\n // onChangeHandler(value, \"q3\")\r\n // }\r\n\r\n useEffect(() => {\r\n let mounted = true;\r\n axios.get(API_MYASK + \"/Question\").then((res) => {\r\n let data = res.data.LIST_DATA;\r\n const updatedState = updateObject(questionForm, {\r\n question: {\r\n q1: {\r\n id_code: data[0].id_code,\r\n remark: data[0].remark,\r\n maxlength: 4,\r\n validation: {\r\n isNumeric: true,\r\n },\r\n value: \"\",\r\n },\r\n q2: {\r\n id_code: data[1].id_code,\r\n remark: data[1].remark,\r\n maxlength: 4,\r\n validation: {\r\n isNumeric: true,\r\n },\r\n value: \"\",\r\n },\r\n q3: {\r\n id_code: data[2].id_code,\r\n remark: data[2].remark,\r\n },\r\n q4: {\r\n id_code: data[3].id_code,\r\n remark: data[3].remark,\r\n },\r\n // q5: {\r\n // id_code: data[4].id_code,\r\n // remark: data[4].remark,\r\n // },\r\n },\r\n });\r\n\r\n if (mounted) {\r\n setQuestionForm(updatedState);\r\n setLoading(false);\r\n }\r\n });\r\n\r\n return () => {\r\n mounted = false;\r\n };\r\n }, []);\r\n\r\n let ques = [];\r\n if (questionForm.question[0] != null) {\r\n for (let k in questionForm.question) {\r\n ques[k] = questionForm.question[k].remark;\r\n }\r\n }\r\n\r\n const onChangeHandler = (val, id) => {\r\n let updatedFormElement;\r\n\r\n if (id === \"q1\" || id === \"q2\") {\r\n val = onChangeTel(val);\r\n }\r\n\r\n updatedFormElement = updateObject(questionForm.question[id], {\r\n value: val,\r\n });\r\n\r\n let updatedForm = updateObject(questionForm.question, {\r\n [id]: updatedFormElement,\r\n });\r\n\r\n const updatedState = updateObject(questionForm, {\r\n question: updatedForm,\r\n textAns: \"\",\r\n });\r\n\r\n setQuestionForm(updatedState);\r\n };\r\n\r\n useEffect(() => {\r\n if (props.refOtp) {\r\n props.history.push({\r\n pathname: \"/otp\",\r\n mobile: props.location.form.mobileNo.value,\r\n refOtp: props.refOtp,\r\n otpPass: props.passOtp,\r\n form: props.location.form,\r\n status: props.location.status,\r\n });\r\n }\r\n }, [props.refOtp]);\r\n\r\n const onChangeTel = (val) => {\r\n const pattern = /^\\d+$/;\r\n const isValid = pattern.test(val);\r\n if (isValid || val === \"\") {\r\n return val;\r\n } else {\r\n return val.substring(val.length - 1, 0);\r\n }\r\n };\r\n\r\n const [reren, setReren] = useState(\"\");\r\n\r\n const submitHandler = (event) => {\r\n event.preventDefault();\r\n const data = questionForm.question;\r\n const ansData = {\r\n agr_code: props.location.agr_code,\r\n card_no: data.q1.value,\r\n tel: data.q2.value,\r\n birth: data.q3.value,\r\n post_no: data.q4.value,\r\n // sex: data.q5.value\r\n };\r\n\r\n setBtnLoading(true);\r\n\r\n //--- 7/1/2020 ถ้าจะเอา otp กลับมา ให้ ลบ code นี้ออก ---/\r\n /*\r\n axios\r\n .post(API_MYASK + \"/CheckAns\", ansData, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n if (res.data.CODE === \"200\") {\r\n if (res.data.LIST_DATA[0].checked >= 3) {\r\n if (props.location.status === \"regis\") {\r\n let apply;\r\n if (props.lineId !== null) {\r\n apply = \"LINE\";\r\n } else if (\r\n sessionStorage.getItem(\"src\") ===\r\n \"mOZl4zuJDIV9CbjgwaaeyabZZrPGhyyC9ZVKhrSzFA0oZ6mTJPJeaRyc6F\"\r\n ) {\r\n apply = \"MYCAR\";\r\n } else {\r\n apply = \"WEB\";\r\n }\r\n const data = {\r\n username: props.location.form.username.value,\r\n password: props.location.form.password.value,\r\n mobile_no: props.location.form.mobileNo.value,\r\n agr_code: props.location.form.agr_code.value,\r\n email: props.location.form.email.value,\r\n regis_from: props.lineId === null ? \"WEB\" : \"LINE\",\r\n otp: \"\",\r\n ref: \"\",\r\n lineId: props.lineId,\r\n apply: apply,\r\n };\r\n\r\n axios\r\n .post(API_MYASK + \"/Register\", data, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n if (res.data.CODE === \"200\") {\r\n // sessionStorage.setItem('token', res.data.MSG);\r\n\r\n props.onAuthSuccess(res.data.MSG, data.username);\r\n props.history.push({\r\n pathname: \"/agreements\",\r\n });\r\n } else if (res.data.CODE === \"500\") {\r\n setReren(\r\n \r\n );\r\n } else {\r\n setReren(\r\n \r\n );\r\n }\r\n })\r\n .catch((err) => {\r\n alert(err);\r\n });\r\n } else if (props.location.status === \"reset\") {\r\n props.history.push({\r\n pathname: \"/reset-password\",\r\n form: props.location.form,\r\n });\r\n }\r\n } else {\r\n const updatedState = updateObject(questionForm, {\r\n textAns:\r\n \"คุณตอบคำถามถูกเพียง \" + res.data.LIST_DATA[0].checked + \" ข้อ\",\r\n });\r\n setQuestionForm(updatedState);\r\n setBtnLoading(false);\r\n }\r\n }\r\n });*/\r\n //--- End ถ้าจะเอา otp กลับมา ให้ ลบ code นี้ออก ---/\r\n\r\n //------- 7/1/2020 ปิด otp\r\n axios\r\n .post(API_MYASK + \"/CheckAns\", ansData, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n if (res.data.CODE === \"200\") {\r\n if (res.data.LIST_DATA[0].checked >= 3) {\r\n if (props.location.status === \"regis\") {\r\n const refOtp = randString(6);\r\n const passOtp = randNumber(6);\r\n axios\r\n .post(API_OTP, {\r\n mobile: props.location.form.mobileNo.value,\r\n refOtp: refOtp,\r\n passOtp: passOtp,\r\n sender: \"My ASK Connect\",\r\n })\r\n .then((res) => {\r\n // For Test\r\n const otpData = {\r\n refOtp: refOtp,\r\n passOtp: passOtp,\r\n mobile: props.location.form.mobileNo.value,\r\n };\r\n\r\n axios\r\n .post(API_MYASK + \"/SaveOTP\", otpData, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n if (res.data.CODE === \"200\") {\r\n setBtnLoading(false);\r\n\r\n props.history.push({\r\n pathname: \"/otp\",\r\n mobile: \"mobile\",\r\n refOtp: refOtp,\r\n otpPass: passOtp,\r\n form: props.location.form,\r\n status: props.location.status,\r\n });\r\n } else {\r\n logError(\r\n \"question(1)\" + res.data.MSG + \" \" + res.data.CODE\r\n );\r\n setReren(\r\n \r\n );\r\n }\r\n });\r\n })\r\n .catch((err) => {\r\n err =\r\n \"question(1)\" +\r\n err +\r\n \",\" +\r\n props.location.form.mobileNo.value +\r\n \",\" +\r\n refOtp +\r\n \",\" +\r\n passOtp +\r\n \";\";\r\n logError(err);\r\n setReren(\r\n \r\n );\r\n });\r\n } else if (props.location.status === \"reset\") {\r\n props.history.push({\r\n pathname: \"/reset-password\",\r\n form: props.location.form,\r\n });\r\n }\r\n } else {\r\n const updatedState = updateObject(questionForm, {\r\n textAns:\r\n \"คุณตอบคำถามถูกเพียง \" + res.data.LIST_DATA[0].checked + \" ข้อ\",\r\n });\r\n setQuestionForm(updatedState);\r\n setBtnLoading(false);\r\n }\r\n }\r\n });\r\n //------- ถ้าจะเปิด แค่เอาคอมเม้นด้านล่างออก แล้วคอมเม้นด้านบน\r\n };\r\n\r\n return (\r\n
\r\n {otpRedirect}\r\n {reren}\r\n {loading ? (\r\n \r\n
\r\n \r\n
\r\n
\r\n ) : (\r\n
\r\n

คำถาม

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n onChangeHandler(event.target.value, \"q1\")}\r\n />\r\n
\r\n
\r\n \r\n onChangeHandler(event.target.value, \"q2\")}\r\n />\r\n
\r\n
\r\n \r\n \r\n {\r\n setStartDate(date);\r\n onChangeHandler(date.toLocaleDateString(\"en-GB\"), \"q3\");\r\n }}\r\n />\r\n \r\n \r\n \r\n onChangeHandler(\r\n new Date(event.target.value).toLocaleDateString(\r\n \"en-GB\"\r\n ),\r\n \"q3\"\r\n )\r\n }\r\n />\r\n \r\n
\r\n
\r\n \r\n onChangeHandler(event.target.value, \"q4\")}\r\n />\r\n
\r\n {/*
\r\n \r\n \r\n \r\n
\r\n onChangeHandler(event.target.value, \"q5\")} /> เพศชาย\r\n
\r\n
\r\n onChangeHandler(event.target.value, \"q5\")} /> เพศหญิง\r\n
\r\n
*/}\r\n
\r\n {btnLoading ? (\r\n
\r\n ) : (\r\n \r\n )}\r\n \r\n ส่งคำตอบ\r\n \r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n refOtp: state.auth.refOtp,\r\n passOtp: state.auth.passOtp,\r\n lineId: state.line.userId,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onSendOTP: (mobile) => dispatch(actions.sendOTP(mobile)),\r\n onAuthSuccess: (token, userName) => dispatch(actions.auth(token, userName)),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Question);\r\n","import React, { useState, useEffect } from \"react\";\r\nimport Button from \"./../../../components/UI/Button/Button\";\r\n// import Container from \"@material-ui/core/Container\";\r\n// import Grid from \"@material-ui/core/Grid\";\r\n// import Input from \"./../../../components/UI/Input/Input\";\r\nimport \"./otp.css\";\r\nimport { updateObject } from \"./../../../shared/utility\";\r\nimport { API_MYASK, API_MYASK_HEADER } from \"./../../../shared/constant\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport Axios from \"axios\";\r\nimport { connect } from \"react-redux\";\r\nimport * as actions from \"./../../../store/action/index\";\r\nimport OTPInput from \"otp-input-react\";\r\nimport ModalError from \"./../../../components/UI/Error/Error\";\r\n\r\nconst ConfirmOTP = (props) => {\r\n const [otp, setOtp] = useState({\r\n val: \"\",\r\n length: 6,\r\n respText: \"\",\r\n });\r\n\r\n const [timer, setTimer] = useState(props.otpTime);\r\n\r\n const [info, setInfo] = useState({\r\n mobileNo: \"\",\r\n username: \"\",\r\n });\r\n\r\n const [status, setStatus] = useState({\r\n value: \"\",\r\n });\r\n // const [OTP, setOTP] = useState(\"\");\r\n const [reren, setReren] = useState(\"\");\r\n\r\n useEffect(() => {\r\n let updateInfo;\r\n let updateStatus;\r\n\r\n if (props.location.status === \"regis\") {\r\n updateInfo = updateObject(info, {\r\n username: props.location.form.username.value,\r\n password: props.location.form.password.value,\r\n mobileNo: props.location.form.mobileNo.value,\r\n agr_code: props.location.form.agr_code.value,\r\n email: props.location.form.email.value,\r\n regis_from: props.lineId === null ? \"WEB\" : \"LINE\",\r\n otp: otp.val,\r\n ref: props.location.refOtp,\r\n lineId: props.lineId,\r\n });\r\n updateStatus = updateObject(status, {\r\n value: props.location.status,\r\n });\r\n } else {\r\n updateInfo = updateObject(info, {\r\n mobileNo: props.location.mobileNo,\r\n username: props.location.username,\r\n otp: otp.val,\r\n ref: props.location.refOtp,\r\n });\r\n updateStatus = updateObject(status, {\r\n value: props.location.status,\r\n });\r\n }\r\n setStatus(updateStatus);\r\n setInfo(updateInfo);\r\n }, []);\r\n\r\n useEffect(() => {\r\n const x = setInterval(() => {\r\n if (timer > 0) {\r\n setTimer(timer - 1);\r\n }\r\n }, 1000);\r\n\r\n return () => {\r\n clearInterval(x);\r\n };\r\n }, [timer]);\r\n\r\n useEffect(() => {\r\n if (props.refOtp) {\r\n if (props.location.status === \"regis\") {\r\n props.history.push({\r\n mobile: props.location.form.mobileNo.value,\r\n refOtp: props.refOtp,\r\n otpPass: props.passOtp,\r\n form: props.location.form,\r\n });\r\n setTimer(props.otpTime);\r\n } else {\r\n props.history.push({\r\n mobile: props.location.mobileNo,\r\n refOtp: props.refOtp,\r\n otpPass: props.passOtp,\r\n });\r\n setTimer(props.otpTime);\r\n }\r\n }\r\n }, [props.refOtp]);\r\n\r\n const onChangeHandler = (val) => {\r\n // val = onChangeNumber(val);\r\n const updateState = updateObject(otp, {\r\n value: val,\r\n respText: \"\",\r\n });\r\n setOtp(updateState);\r\n };\r\n\r\n const onChangeNumber = (val) => {\r\n const pattern = /^\\d+$/;\r\n const isValid = pattern.test(val);\r\n if (isValid || val === \"\") {\r\n return val;\r\n } else {\r\n return val.substring(val.length - 1, 0);\r\n }\r\n };\r\n\r\n let otpRedirect = null;\r\n if (!props.location.refOtp) {\r\n otpRedirect = ;\r\n }\r\n\r\n const onSubmitHandler = () => {\r\n if (props.location.otpPass === otp.val) {\r\n if (status.value === \"regis\") {\r\n let apply;\r\n if (props.lineId !== null) {\r\n apply = \"LINE\";\r\n } else if (\r\n sessionStorage.getItem(\"src\") ===\r\n \"mOZl4zuJDIV9CbjgwaaeyabZZrPGhyyC9ZVKhrSzFA0oZ6mTJPJeaRyc6F\"\r\n ) {\r\n apply = \"MYCAR\";\r\n } else {\r\n apply = \"WEB\";\r\n }\r\n const data = {\r\n username: info.username,\r\n password: info.password,\r\n mobile_no: info.mobileNo,\r\n agr_code: info.agr_code,\r\n email: info.email,\r\n regis_from: info.lineId,\r\n otp: otp.val,\r\n ref: props.location.refOtp,\r\n lineId: info.lineId,\r\n apply: apply,\r\n };\r\n\r\n Axios.post(API_MYASK + \"/Register\", data, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n if (res.data.CODE === \"200\") {\r\n // sessionStorage.setItem('token', res.data.MSG);\r\n\r\n props.onAuthSuccess(res.data.MSG, data.username);\r\n props.history.push({\r\n pathname: \"/agreements\",\r\n });\r\n } else if (res.data.CODE === \"500\") {\r\n setReren(\r\n \r\n );\r\n } else {\r\n const updateState = updateObject(otp, {\r\n respText: res.data.MSG,\r\n });\r\n setOtp(updateState);\r\n }\r\n })\r\n .catch((err) => {\r\n alert(err);\r\n });\r\n } else if (status.value === \"forgot\") {\r\n const data = {\r\n mobile_no: info.mobileNo,\r\n ref: props.location.refOtp,\r\n otp: otp.val,\r\n };\r\n Axios.post(API_MYASK + \"/ConfirmForgetUsernameAPI\", data, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n if (res.data.CODE === \"200\") {\r\n props.history.push({\r\n pathname: \"/success\",\r\n title: \"ชื่อผู้ใช้งานของคุณคือ\",\r\n text: info.username,\r\n path: \"/login\",\r\n });\r\n } else if (res.data.CODE === \"500\") {\r\n setReren(\r\n \r\n );\r\n } else {\r\n const updateState = updateObject(otp, {\r\n respText: res.data.MSG,\r\n });\r\n setOtp(updateState);\r\n }\r\n })\r\n .catch((err) => {\r\n alert(err);\r\n });\r\n }\r\n } else {\r\n const updateState = updateObject(otp, {\r\n respText: \"รหัส OTP ไม่ถูกต้อง\",\r\n });\r\n setOtp(updateState);\r\n }\r\n };\r\n\r\n const onResendOtp = () => {\r\n const updateState = updateObject(otp, {\r\n val: \"\",\r\n respText: \"\",\r\n });\r\n setOtp(updateState);\r\n props.onSendOTP(info.mobileNo);\r\n };\r\n\r\n const onSetOTP = (val) => {\r\n const updateState = updateObject(otp, {\r\n val: val,\r\n respText: \"\",\r\n });\r\n setOtp(updateState);\r\n };\r\n\r\n return (\r\n
\r\n {reren}\r\n {otpRedirect}\r\n
\r\n

ยืนยันรหัส

\r\n
\r\n
ระบบจะส่งรหัสไปที่หมายเลข
\r\n {/* {props.location.status === 'regis'\r\n ?
{otpRedirect === null ? props.location.form.mobileNo.value : null}
\r\n :
{otpRedirect === null ? props.location.mobileNo : null}
} */}\r\n
{otpRedirect === null ? info.mobileNo : null}
\r\n
\r\n หมายเลขอ้างอิง: {props.location.refOtp}\r\n
\r\n {/*
\r\n (for test) รหัส OTP: {props.location.otpPass}\r\n
*/}\r\n \r\n {/* onChangeHandler(event.target.value)} /> */}\r\n\r\n \r\n\r\n \r\n {timer > 0 ? (\r\n รหัส OTP ของคุณจะหมดอายุภายใน : {timer} วินาที\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n refOtp: state.auth.refOtp,\r\n passOtp: state.auth.passOtp,\r\n lineId: state.line.userId,\r\n otpTime: state.auth.otpTime,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onSendOTP: (mobile) => dispatch(actions.sendOTP(mobile)),\r\n onAuthSuccess: (token, userName) => dispatch(actions.auth(token, userName)),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ConfirmOTP);\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport { createMuiTheme, MuiThemeProvider } from '@material-ui/core/styles';\r\nimport { Chart } from \"react-google-charts\";\r\nimport Button from '../UI/Button/Button';\r\nimport Input from '../UI/Input/Input';\r\n\r\nimport './Calculate.css';\r\n\r\n\r\nconst theme = createMuiTheme({\r\n overrides: {\r\n MuiGrid: {\r\n 'spacing-xs-2': {\r\n margin: '0',\r\n width: '100%',\r\n padding: '0 !important'\r\n },\r\n },\r\n },\r\n});\r\n\r\n\r\n\r\nfunction Calculate() {\r\n const orderForm = {\r\n product: {\r\n label: 'ประเภทสินเชื่อ:',\r\n elementType: 'select',\r\n elementConfig: {\r\n options: [\r\n { value: 'fastest', displayValue: 'Fastest' },\r\n { value: 'cheapest', displayValue: 'Cheapest' }\r\n ]\r\n },\r\n // value: 'fastest',\r\n validation: {},\r\n valid: true,\r\n },\r\n street: {\r\n label: 'ประเภทการคำนวณ:',\r\n elementType: 'select',\r\n elementConfig: {\r\n options: [\r\n { value: 'fastest', displayValue: 'Fastest' },\r\n { value: 'cheapest', displayValue: 'Cheapest' }\r\n ]\r\n },\r\n // value: 'fastest',\r\n validation: {},\r\n valid: true\r\n },\r\n zipCode: {\r\n label: 'ราคารถ(บาท)',\r\n elementType: 'input',\r\n elementConfig: {\r\n type: 'text',\r\n placeholder: 'ราคารถ'\r\n },\r\n // value: '',\r\n validation: {\r\n required: true,\r\n minLength: 5,\r\n maxLength: 5,\r\n isNumeric: true\r\n },\r\n valid: false,\r\n touched: false,\r\n styleInput: {\r\n // width: '10rem',\r\n },\r\n styleLabel: {\r\n // marginRight: '1rem',\r\n // width: '8rem',\r\n // color: 'red'\r\n },\r\n // labelPos: 'left'\r\n },\r\n };\r\n\r\n const formElementsArray = [];\r\n for (let key in orderForm) {\r\n formElementsArray.push({\r\n id: key,\r\n config: orderForm[key]\r\n });\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n

คำนวณสินเชื่อ

\r\n
\r\n {formElementsArray.map(formElement => (\r\n
\r\n inputChangedHandler(event, formElement.id)}\r\n />\r\n
\r\n ))}\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n

ระยะเวลาผ่อน (เดือน) ต่อ ค่างวด (บาท)

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Calculate;","import React from 'react';\r\nimport Calculate from '../../components/Calculate/Calculate';\r\n\r\nfunction CalculateControl() {\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default CalculateControl;","import React from 'react';\r\nimport './Product.css';\r\n\r\n\r\nlet style;\r\n\r\nconst Product = (props) => {\r\n if (props.color !== \"\" || props.borderColor !== \"\") {\r\n style = {\r\n color: props.color,\r\n borderColor: props.borderColor,\r\n };\r\n }\r\n\r\n return (\r\n
\r\n {props.title}\r\n
\r\n

{props.name}

\r\n

{props.title}

\r\n
\r\n
\r\n );\r\n}\r\n\r\n\r\nexport default Product;\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Header from '../../components/UI/Header/Header.js';\r\nimport Button from '../../components/UI/Button/Button';\r\n// import Modal from '../../components/UI/Modal/Modal';\r\n// import Calculate from '../../components/Calculate/Calculate';\r\nimport './Product.css';\r\n// import banner1 from '../../assets/banner1.jpg'\r\n// import hp from '../../assets/hp_new.jpg'\r\n// import hp_used from '../../assets/hp_used.jpg'\r\n// import cl from '../../assets/cl.jpg'\r\n// import pl from '../../assets/pl.jpg'\r\n// import shb from '../../assets/shb.jpg'\r\n// import cml from '../../assets/cml.jpg'\r\nimport Loading from './../UI/Loading/Loading';\r\n\r\nlet style;\r\n\r\n// function getModalStyle() {\r\n// return {\r\n// margintop: '5%',\r\n// top: '50%',\r\n// left: '50%',\r\n// transform: `translate(-50%, -50%)`,\r\n// };\r\n// }\r\n\r\nconst ProductDetail = (props) => {\r\n if (props.color !== \"\" || props.borderColor !== \"\") {\r\n style = {\r\n color: props.color,\r\n borderColor: props.borderColor,\r\n };\r\n }\r\n\r\n\r\n\r\n // const [modalStyle] = React.useState(getModalStyle);\r\n // const [open, setOpen] = React.useState(false);\r\n // const handleOpen = () => {\r\n // setOpen(true);\r\n // };\r\n // const handleClose = () => {\r\n // setOpen(false);\r\n\r\n return (\r\n \r\n {/* \r\n \r\n }\r\n >\r\n */}\r\n {props.loading\r\n ?
\r\n : \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n

{props.name}

\r\n

{props.descrip}

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {/* \r\n \r\n */}\r\n\r\n {/* -------------Calculate------------- */}\r\n {/* \r\n \r\n */}\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n\r\n}\r\nexport default ProductDetail;","import React from 'react';\r\nimport './Header.css';\r\nimport GridListTileBar from '@material-ui/core/GridListTileBar';\r\nimport { withStyles } from '@material-ui/core/styles';\r\n\r\n\r\nconst styles = {\r\n root: {\r\n background: 'rgba(0,0,0,0)',\r\n textAlign: 'center',\r\n height: '100%',\r\n // top: '35%',\r\n fontFamily: 'Prompt-Regular !important',\r\n },\r\n title: {\r\n fontSize: '4rem',\r\n lineHeight: '6rem',\r\n '@media (max-width: 600px)': {\r\n fontSize: '3rem',\r\n lineHeight: '4rem',\r\n },\r\n '@media (max-width: 400px)': {\r\n fontSize: '2rem',\r\n lineHeight: '2rem',\r\n },\r\n },\r\n subtitle: {\r\n fontSize: '2rem',\r\n lineHeight: '2rem'\r\n }\r\n};\r\n\r\nconst header = (props) => {\r\n const { classes } = props;\r\n return (\r\n
\r\n {props.text}\r\n {/*
*/}\r\n {props.subText}}\r\n classes={\r\n {\r\n title: classes.title,\r\n subtitle: classes.subtitle\r\n }\r\n }\r\n />\r\n {/*
*/}\r\n
\r\n );\r\n};\r\n\r\nexport default withStyles(styles)(header);\r\n","import React, { useState, useEffect } from \"react\";\r\nimport Product from \"../../components/Product/Product.js\";\r\nimport Header from \"../../components/UI/Header/Header.js\";\r\n\r\nimport hp from \"../../assets/hp_new.jpg\";\r\nimport hp_used from \"../../assets/hp_used.jpg\";\r\nimport cl from \"../../assets/cl.jpg\";\r\nimport pl from \"../../assets/pl.jpg\";\r\nimport shb from \"../../assets/shb.jpg\";\r\nimport cml from \"../../assets/cml.jpg\";\r\n\r\nimport p_hpnew from \"../../assets/p_hpnew.jpg\";\r\nimport p_hpused from \"../../assets/p_hpused.jpg\";\r\nimport p_cl from \"../../assets/p_cl.jpg\";\r\nimport p_pl from \"../../assets/p_pl.jpg\";\r\nimport p_shb from \"../../assets/p_shb.jpg\";\r\nimport p_cml from \"../../assets/p_cml.jpg\";\r\n\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Container from \"@material-ui/core/Container\";\r\nimport axios from \"axios\";\r\nimport { updateObject } from \"../../../src/shared/utility.js\";\r\nimport { API_MYASK } from \"../../shared/constant\";\r\nimport Loading from \"./../../components/UI/Loading/Loading\";\r\n\r\nconst ProductControl = (props) => {\r\n const [product, setProduct] = useState({\r\n products: [],\r\n error: null,\r\n loading: true,\r\n });\r\n\r\n const onSelectProduct = (\r\n product_id,\r\n name,\r\n title,\r\n desc,\r\n color,\r\n borderColor\r\n ) => {\r\n let img;\r\n let url_product = \"\";\r\n sessionStorage.setItem(\"product_id\", product_id);\r\n if (product_id === \"HP-NEW\") {\r\n img = p_hpnew;\r\n url_product = \"hire-purchase-new\";\r\n } else if (product_id === \"HP-USED\") {\r\n img = p_hpused;\r\n url_product = \"hire-purchase-used\";\r\n } else if (product_id === \"CL\") {\r\n img = p_cl;\r\n url_product = \"car-loan\";\r\n } else if (product_id === \"PL\") {\r\n img = p_pl;\r\n url_product = \"personal-loan\";\r\n } else if (product_id === \"SHB\") {\r\n img = p_shb;\r\n url_product = \"sale-and-hire-purchase-back\";\r\n } else if (product_id === \"CML\") {\r\n img = p_cml;\r\n url_product = \"commercial-loan\";\r\n }\r\n\r\n props.history.push({\r\n pathname: \"/product-detail/\" + url_product,\r\n name: name,\r\n descrip: desc,\r\n title: title,\r\n color: color,\r\n borderColor: borderColor,\r\n product_id: product_id,\r\n url_product: url_product,\r\n image: img,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n axios.get(API_MYASK + \"/Products\").then((res) => {\r\n // let updatedFormElement\r\n let arrayObj = [];\r\n for (let field in res.data.LIST_DATA) {\r\n let img;\r\n if (res.data.LIST_DATA[field].image === \"hp_new\") {\r\n img = hp;\r\n } else if (res.data.LIST_DATA[field].image === \"hp_used\") {\r\n img = hp_used;\r\n } else if (res.data.LIST_DATA[field].image === \"cl\") {\r\n img = cl;\r\n } else if (res.data.LIST_DATA[field].image === \"pl\") {\r\n img = pl;\r\n } else if (res.data.LIST_DATA[field].image === \"shb\") {\r\n img = shb;\r\n } else if (res.data.LIST_DATA[field].image === \"cml\") {\r\n img = cml;\r\n }\r\n arrayObj[field] = {\r\n product_id: res.data.LIST_DATA[field].product_id,\r\n name: res.data.LIST_DATA[field].name_th,\r\n title: res.data.LIST_DATA[field].title_th,\r\n descrip: res.data.LIST_DATA[field].desc_th,\r\n image: img,\r\n };\r\n }\r\n const updatedState = updateObject(product, {\r\n products: arrayObj,\r\n loading: false,\r\n });\r\n setProduct(updatedState);\r\n });\r\n }, []);\r\n\r\n const classes = makeStyles((theme) => ({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n paper: {\r\n height: 140,\r\n width: 100,\r\n },\r\n control: {\r\n padding: theme.spacing(2),\r\n },\r\n }));\r\n\r\n const formElementsArray = [];\r\n for (let key in product.products) {\r\n formElementsArray.push({\r\n id: key,\r\n config: product.products[key],\r\n });\r\n }\r\n\r\n let form = formElementsArray.map((formElement) => (\r\n \r\n \r\n onSelectProduct(\r\n formElement.config.product_id,\r\n formElement.config.name,\r\n formElement.config.title,\r\n formElement.config.descrip,\r\n formElement.config.color,\r\n formElement.config.borderColor\r\n )\r\n }\r\n />\r\n \r\n ));\r\n return (\r\n \r\n \r\n
\r\n
\r\n \r\n {product.loading ? (\r\n \r\n
\r\n \r\n
\r\n
\r\n ) : (\r\n \r\n \r\n {form}\r\n \r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ProductControl;\r\n","import React from \"react\";\r\nimport ProductDetail from \"../../components/Product/ProductDetail\";\r\nimport axios from \"axios\";\r\nimport { updateObject } from \"../../../src/shared/utility.js\";\r\nimport { API_MYASK } from \"../../shared/constant\";\r\n\r\nimport p_hpnew from \"../../assets/p_hpnew.jpg\";\r\nimport p_hpused from \"../../assets/p_hpused.jpg\";\r\nimport p_cl from \"../../assets/p_cl.jpg\";\r\nimport p_pl from \"../../assets/p_pl.jpg\";\r\nimport p_shb from \"../../assets/p_shb.jpg\";\r\nimport p_cml from \"../../assets/p_cml.jpg\";\r\n\r\nconst ProductDetails = (props) => {\r\n const [productForm, setProductForm] = React.useState({\r\n products: [],\r\n error: null,\r\n });\r\n\r\n const [productid, setProductid] = React.useState(\r\n props.location.product_id || sessionStorage.getItem(\"product_id\")\r\n );\r\n const [name, setName] = React.useState(\r\n props.location.name || sessionStorage.getItem(\"name\")\r\n );\r\n const [descrip, setDescrip] = React.useState(\r\n props.location.descrip || sessionStorage.getItem(\"descrip\")\r\n );\r\n const [title, setTitle] = React.useState(\r\n props.location.title || sessionStorage.getItem(\"title\")\r\n );\r\n const [color] = React.useState(\r\n props.location.color || sessionStorage.getItem(\"color\")\r\n );\r\n const [borderColor] = React.useState(\r\n props.location.borderColor || sessionStorage.getItem(\"borderColor\")\r\n );\r\n const [image, setImage] = React.useState(\r\n props.location.image || sessionStorage.getItem(\"image\")\r\n );\r\n const [url, setUrl] = React.useState(props.location.url_product);\r\n const [loading, setLoading] = React.useState(false);\r\n // const [image, setImage] = React.useState('');\r\n\r\n React.useEffect(() => {\r\n window.scrollTo(0, 0);\r\n\r\n let id;\r\n setLoading(true);\r\n if (props.match.params.product === \"hire-purchase-new\") {\r\n id = \"HP-NEW\";\r\n setUrl(\"hire-purchase-new\");\r\n } else if (props.match.params.product === \"hire-purchase-used\") {\r\n id = \"HP-USED\";\r\n setUrl(\"hire-purchase-used\");\r\n } else if (props.match.params.product === \"sale-and-hire-purchase-back\") {\r\n id = \"SHB\";\r\n setUrl(\"sale-and-hire-purchase-back\");\r\n } else if (props.match.params.product === \"car-loan\") {\r\n id = \"CL\";\r\n setUrl(\"car-loan\");\r\n } else if (props.match.params.product === \"personal-loan\") {\r\n id = \"PL\";\r\n setUrl(\"personal-loan\");\r\n } else if (props.match.params.product === \"commercial-loan\") {\r\n id = \"CML\";\r\n setUrl(\"commercial-loan\");\r\n }\r\n\r\n if (sessionStorage.getItem(\"name\") === null || id) {\r\n axios.get(API_MYASK + \"/Products?id=\" + id).then((res) => {\r\n let img;\r\n let data = res.data.LIST_DATA[0];\r\n if (data.image === \"hp_new\") {\r\n img = p_hpnew;\r\n } else if (data.image === \"hp_used\") {\r\n img = p_hpused;\r\n } else if (data.image === \"cl\") {\r\n img = p_cl;\r\n } else if (data.image === \"pl\") {\r\n img = p_pl;\r\n } else if (data.image === \"shb\") {\r\n img = p_shb;\r\n } else if (data.image === \"cml\") {\r\n img = p_cml;\r\n }\r\n const updatedState = updateObject(productForm, {\r\n products: {\r\n product_id: data.product_id,\r\n name: data.name_th,\r\n title: data.title_th,\r\n descrip: data.desc_th,\r\n color: data.color,\r\n borderColor: data.borderColor,\r\n image: img,\r\n },\r\n });\r\n setProductForm(updatedState);\r\n setName(updatedState.products.name);\r\n setTitle(updatedState.products.title);\r\n setDescrip(updatedState.products.descrip);\r\n setImage(updatedState.products.image);\r\n setProductid(updatedState.products.product_id);\r\n\r\n sessionStorage.setItem(\"product_id\", updatedState.products.product_id);\r\n sessionStorage.setItem(\"name\", updatedState.products.name);\r\n sessionStorage.setItem(\"descrip\", updatedState.products.descrip);\r\n sessionStorage.setItem(\"title\", updatedState.products.title);\r\n sessionStorage.setItem(\"image\", updatedState.products.image);\r\n if (res.data.CODE === \"200\") {\r\n setLoading(false);\r\n }\r\n });\r\n }\r\n }, [props.match.params.product]);\r\n\r\n React.useEffect(() => {\r\n sessionStorage.setItem(\"product_id\", productid);\r\n sessionStorage.setItem(\"name\", name);\r\n sessionStorage.setItem(\"descrip\", descrip);\r\n sessionStorage.setItem(\"title\", title);\r\n sessionStorage.setItem(\"color\", color);\r\n sessionStorage.setItem(\"borderColor\", borderColor);\r\n sessionStorage.setItem(\"image\", image);\r\n }, [productid]);\r\n\r\n const onSelectApply = (product_id) => {\r\n props.history.push({\r\n pathname: \"/apply/\" + url,\r\n product_id: product_id,\r\n });\r\n };\r\n\r\n return (\r\n
\r\n onSelectApply(productid)}\r\n >\r\n
\r\n );\r\n};\r\n\r\nexport default ProductDetails;\r\n","import React from \"react\";\r\n// import { Link } from \"react-router-dom\";\r\n// import \"./PathTree.css\";\r\nimport {\r\n makeStyles,\r\n createMuiTheme,\r\n MuiThemeProvider,\r\n} from \"@material-ui/core\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\nimport Breadcrumbs from \"@material-ui/core/Breadcrumbs\";\r\nimport Link from \"@material-ui/core/Link\";\r\nimport { Link as RouterLink } from \"react-router-dom\";\r\nimport { FONT_SIZE } from \"./../../../shared/constant\";\r\nimport { connect } from \"react-redux\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n justifyContent: \"center\",\r\n flexWrap: \"wrap\",\r\n },\r\n paper: {\r\n padding: theme.spacing(1, 2),\r\n margin: \"1rem\",\r\n },\r\n ol: {\r\n fontSize: FONT_SIZE,\r\n color: \"black\",\r\n },\r\n}));\r\n\r\nconst LinkRouter = (props) => ;\r\n\r\nconst theme = createMuiTheme({\r\n typography: {\r\n fontFamily: \"inherit !important\",\r\n },\r\n});\r\n\r\nfunction handleClick(event) {\r\n event.preventDefault();\r\n}\r\n\r\nfunction lastItem(key, item) {\r\n const divStyle = {\r\n fontSize: FONT_SIZE,\r\n };\r\n\r\n return (\r\n \r\n {item.title}\r\n \r\n );\r\n}\r\n\r\nfunction listItem(key, item) {\r\n return (\r\n \r\n {item.title}\r\n \r\n );\r\n}\r\n\r\nfunction listTree(item, index, pathLen) {\r\n if (index + 1 === pathLen) {\r\n return lastItem(index, item);\r\n } else {\r\n return listItem(index, item);\r\n }\r\n}\r\n\r\nconst PathTree = (props) => {\r\n let path = [];\r\n for (let nav in props.list) {\r\n path.push({\r\n title: props.list[nav].title,\r\n pathLink: props.list[nav].pathLink,\r\n });\r\n }\r\n\r\n const pathLen = path.length;\r\n\r\n const classes = useStyles();\r\n\r\n // path = ['ข้อมูลสินเชื่อของฉัน'];\r\n\r\n let breadcrumbs = null;\r\n if (!props.single) {\r\n breadcrumbs = (\r\n \r\n \r\n \r\n หน้าแรก\r\n \r\n\r\n {path.map((el, i) => listTree(el, i, pathLen))}\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n
\r\n \r\n {breadcrumbs}\r\n \r\n {props.children}\r\n
\r\n //
\r\n //
    \r\n //
  • \r\n // หน้าแรก\r\n //
  • \r\n // {path.map(el => (\r\n //
  • \r\n // {el.title}\r\n //
  • \r\n // ))}\r\n //
\r\n // {props.children}\r\n //
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n single: state.global.single,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps)(PathTree);\r\n","import React from 'react';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport './Paper.css';\r\n\r\nconst paper = (props) => {\r\n\r\n const style = {\r\n display: props.display,\r\n padding: props.padding,\r\n width: props.width,\r\n height: props.height,\r\n margin: props.margin,\r\n fontSize: props.fontSize,\r\n textAlign: props.align,\r\n border: props.border,\r\n backgroundColor: props.color,\r\n color: props.fontColor,\r\n borderColor: props.borderColor,\r\n borderRadius: props.borderRadius,\r\n }\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n};\r\n\r\nexport default paper;","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Button from '../../UI/Button/Button';\r\nimport '../../Apply/Apply.css';\r\nimport { FONT_SIZE } from '../../../shared/constant';\r\n\r\nconst branch = (props) => {\r\n const divStyle = {\r\n fontSize: FONT_SIZE\r\n };\r\n\r\n return (\r\n \r\n \r\n

สาขา{props.branchs}

\r\n
\r\n \r\n
ที่อยู่
\r\n
\r\n \r\n
{props.no} {props.soi} {props.rd} {props.dis}
\r\n
\r\n \r\n
{props.amp} {props.prv} {props.zip}
\r\n
\r\n \r\n
ติดต่อ
\r\n
\r\n \r\n
โทรศัพท์ {props.tel} โทรสาร {props.fax}
\r\n
\r\n \r\n
เวลาทำการ
\r\n
\r\n \r\n
{props.time}
\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default branch;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport \"../../../components/Apply/Apply.css\";\r\nimport axios from \"axios\";\r\nimport PathTree from \"../../../components/UI/PathTree/PathTree\";\r\nimport Button from \"../../../components/UI/Button/Button\";\r\nimport Paper from \"./../../../components/UI/Paper/Paper\";\r\nimport Branch from \"./../../../components/Contact/Branch/Branch\";\r\n// import { updateObject } from \"./../../../shared/utility\";\r\nimport { API_MYASK } from \"./../../../shared/constant\";\r\nimport \"./BranchControls.css\";\r\n\r\nconst BranchControls = (props) => {\r\n const path = {\r\n Path: [\r\n {\r\n title: \"ค้นหาสาขา\",\r\n pathLink: \"/branch\",\r\n },\r\n ],\r\n };\r\n\r\n const [branchForm, setBranchForm] = useState([]);\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n\r\n axios.get(API_MYASK + \"/Branch\").then((res) => {\r\n let branch = [];\r\n for (let i in res.data.LIST_DATA) {\r\n branch.push({\r\n PREBRANCH_NAME_T: res.data.LIST_DATA[i].PREBRANCH_NAME_T,\r\n SHORT_NAME_E: res.data.LIST_DATA[i].SHORT_NAME_E,\r\n ADD_NO: res.data.LIST_DATA[i].ADD_NO,\r\n ADD_SOI: res.data.LIST_DATA[i].ADD_SOI,\r\n ADD_RD: res.data.LIST_DATA[i].ADD_RD,\r\n ADD_DIS: res.data.LIST_DATA[i].ADD_DIS,\r\n ADD_AMP: res.data.LIST_DATA[i].ADD_AMP,\r\n ADD_PRV: res.data.LIST_DATA[i].ADD_PRV,\r\n ADD_ZIP: res.data.LIST_DATA[i].ADD_ZIP,\r\n OPEN_TIME: res.data.LIST_DATA[i].OPEN_TIME,\r\n PREBRANCH_TEL: res.data.LIST_DATA[i].PREBRANCH_TEL,\r\n FAX: res.data.LIST_DATA[i].FAX,\r\n MAP: res.data.LIST_DATA[i].MAP,\r\n MAP_DIRECTION: res.data.LIST_DATA[i].MAP_DIRECTION,\r\n REGION: res.data.LIST_DATA[i].REGION,\r\n });\r\n }\r\n setBranchForm(branch);\r\n });\r\n }, []);\r\n\r\n const [province, setProvince] = useState(\"HO\");\r\n\r\n let show;\r\n let detail;\r\n\r\n const handleBranch = (value) => {\r\n setProvince(value);\r\n };\r\n\r\n for (let i in branchForm) {\r\n if (branchForm[i].SHORT_NAME_E === province) {\r\n show = (\r\n \r\n );\r\n detail = (\r\n \r\n );\r\n }\r\n }\r\n\r\n const [region, setRegion] = useState(\"\");\r\n const [useRegion, setUseRegion] = useState(\"C\");\r\n useEffect(() => {\r\n setRegion(props.location.region);\r\n if (region === \"C\") {\r\n window.scroll(0, 0);\r\n handleCenter();\r\n } else if (region === \"E\") {\r\n window.scroll(0, 0);\r\n handleEast();\r\n } else if (region === \"WS\") {\r\n window.scroll(0, 0);\r\n handleWest_South();\r\n } else if (region === \"N\") {\r\n window.scroll(0, 0);\r\n handleNorth();\r\n } else if (region === \"NE\") {\r\n window.scroll(0, 0);\r\n handleNorthEast();\r\n }\r\n }, [region, props.location.region]);\r\n\r\n const handleCenter = () => {\r\n setUseRegion(\"C\");\r\n setProvince(\"HO\");\r\n };\r\n const handleEast = () => {\r\n setUseRegion(\"E\");\r\n setProvince(\"RY\");\r\n };\r\n const handleWest_South = () => {\r\n setUseRegion(\"WS\");\r\n setProvince(\"KAN\");\r\n };\r\n const handleNorth = () => {\r\n setUseRegion(\"N\");\r\n setProvince(\"LPG\");\r\n };\r\n const handleNorthEast = () => {\r\n setUseRegion(\"NE\");\r\n setProvince(\"KKN\");\r\n };\r\n\r\n let classes1;\r\n let classes2;\r\n let classes3;\r\n let classes4;\r\n let classes5;\r\n const formElementsArray = [];\r\n\r\n if (useRegion === \"C\") {\r\n classes1 = \"menuclick\";\r\n classes2 = \"menunormal\";\r\n classes3 = \"menunormal\";\r\n classes4 = \"menunormal\";\r\n classes5 = \"menunormal\";\r\n for (let key in branchForm) {\r\n if (branchForm[key].REGION === \"1\") {\r\n formElementsArray.push({\r\n id: key,\r\n config: branchForm[key],\r\n });\r\n }\r\n }\r\n } else if (useRegion === \"E\") {\r\n classes2 = \"menuclick\";\r\n classes1 = \"menunormal\";\r\n classes3 = \"menunormal\";\r\n classes4 = \"menunormal\";\r\n classes5 = \"menunormal\";\r\n for (let key in branchForm) {\r\n if (branchForm[key].REGION === \"3\") {\r\n formElementsArray.push({\r\n id: key,\r\n config: branchForm[key],\r\n });\r\n }\r\n }\r\n } else if (useRegion === \"WS\") {\r\n classes3 = \"menuclick\";\r\n classes1 = \"menunormal\";\r\n classes2 = \"menunormal\";\r\n classes4 = \"menunormal\";\r\n classes5 = \"menunormal\";\r\n for (let key in branchForm) {\r\n if (branchForm[key].REGION === \"2\" || branchForm[key].REGION === \"5\") {\r\n formElementsArray.push({\r\n id: key,\r\n config: branchForm[key],\r\n });\r\n }\r\n }\r\n } else if (useRegion === \"N\") {\r\n classes4 = \"menuclick\";\r\n classes1 = \"menunormal\";\r\n classes2 = \"menunormal\";\r\n classes3 = \"menunormal\";\r\n classes5 = \"menunormal\";\r\n for (let key in branchForm) {\r\n if (branchForm[key].REGION === \"6\") {\r\n formElementsArray.push({\r\n id: key,\r\n config: branchForm[key],\r\n });\r\n }\r\n }\r\n } else if (useRegion === \"NE\") {\r\n classes5 = \"menuclick\";\r\n classes1 = \"menunormal\";\r\n classes2 = \"menunormal\";\r\n classes4 = \"menunormal\";\r\n classes3 = \"menunormal\";\r\n for (let key in branchForm) {\r\n if (branchForm[key].REGION === \"4\") {\r\n formElementsArray.push({\r\n id: key,\r\n config: branchForm[key],\r\n });\r\n }\r\n }\r\n } else {\r\n classes1 = \"menuclick\";\r\n classes2 = \"menunormal\";\r\n classes3 = \"menunormal\";\r\n classes4 = \"menunormal\";\r\n classes5 = \"menunormal\";\r\n for (let key in branchForm) {\r\n if (branchForm[key].region === \"1\") {\r\n formElementsArray.push({\r\n id: key,\r\n config: branchForm[key],\r\n });\r\n }\r\n }\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n

ค้นหาสาขา

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {formElementsArray.map((formElement) => (\r\n \r\n handleBranch(formElement.config.SHORT_NAME_E)\r\n }\r\n />\r\n }\r\n />\r\n ))}\r\n \r\n \r\n {detail}\r\n \r\n \r\n {show}\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default BranchControls;\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\n// import Button from '../../UI/Button/Button';\r\nimport Icon from '../../UI/Icon/Icon';\r\nimport '../../Apply/Apply.css';\r\nimport Loading from './../../UI/Loading/Loading';\r\n// import { PATH_TEL, PATH_LINE, PATH_MAIL } from './../../../shared/constant';\r\n// import * as actions from \"./../../../store/action/index\";\r\nimport { connect } from \"react-redux\";\r\nimport Paper from '@material-ui/core/Paper';\r\n\r\nconst Contact = (props) => {\r\n const topic = {\r\n marginTop: '0.5rem',\r\n marginBottom: '2rem',\r\n }\r\n\r\n let mail = \"mailto:\" + props.mailTo;\r\n let tel = \"tel:\" + props.telNo;\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {/* \r\n \r\n */}\r\n \r\n

{props.title}

\r\n
\r\n {props.children}\r\n\r\n {props.loading\r\n ? \r\n
\r\n
\r\n :\r\n \r\n ส่งข้อความ\r\n
}\r\n\r\n {props.covid\r\n ?\r\n \r\n \r\n \r\n

การขยายระยะเวลาชำระหนี้

\r\n
\r\n \r\n

การปรับปรุงโครงสร้างหนี้

\r\n
\r\n \r\n

ผู้เช่า ผู้เช่าซื้อ ผู้กู้ จะต้องเข้ามาดำเนินการที่บริษัทฯ ดังนี้

\r\n
\r\n \r\n

ผู้เช่า ผู้เช่าซื้อ ผู้กู้ และผู้ค้ำประกัน จะต้องเข้ามาดำเนินการที่บริษัทฯ ดังนี้

\r\n
\r\n \r\n

1.\tลงนามในเอกสารต่างๆ ตามแบบฟอร์มซึ่งบริษัทฯกำหนดไว้

\r\n
\r\n \r\n

1.\tลงนามใน สัญญา ตลอดจนเอกสารที่เกี่ยวข้องตามแบบฟอร์มซึ่งบริษัทฯกำหนดไว้

\r\n
\r\n \r\n

2.\tส่งมอบเอกสารระบุตัวตนพร้อมลงนามรับรอง

\r\n
\r\n \r\n

2.\tส่งมอบเอกสารระบุตัวตนพร้อมลงนามรับรอง

\r\n
\r\n \r\n

 2.1.\tบุคคลธรรมดา

\r\n
\r\n \r\n

 2.1.\tบุคคลธรรมดา

\r\n
\r\n \r\n

  •\tสำเนาบัตรประจำตัวประชาชน

\r\n
\r\n \r\n

  •\tสำเนาบัตรประจำตัวประชาชน

\r\n
\r\n \r\n

  •\tสำเนาใบเปลี่ยนชื่อ-สกุล ถ้ามี

\r\n
\r\n \r\n

  •\tสำเนาใบเปลี่ยนชื่อ-สกุล ถ้ามี

\r\n
\r\n \r\n

 2.2.\tนิติบุคคล

\r\n
\r\n \r\n

 2.2.\tนิติบุคคล

\r\n
\r\n \r\n

  •\tสำเนาหนังสือรับรองบริษัท (อายุไม่เกิน 6 เดือน)

\r\n
\r\n \r\n

  •\tสำเนาหนังสือรับรองบริษัท (อายุไม่เกิน 6 เดือน)

\r\n
\r\n \r\n

  •\tสำเนาบัตรประชาชนกรรมการผู้มีอำนาจ

\r\n
\r\n \r\n

  •\tสำเนาบัตรประชาชนกรรมการผู้มีอำนาจ

\r\n
\r\n
\r\n
\r\n\r\n :
}\r\n \r\n
\r\n
\r\n );\r\n}\r\nconst mapStateToProps = state => {\r\n return {\r\n lineFriend: state.auth.lineFriend,\r\n telNo: state.auth.telNo,\r\n mailTo: state.auth.mailTo,\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n null)(Contact);\r\n","import React, { useEffect, useState } from \"react\";\r\nimport Contact from \"../../../components/Contact/Contact/Contact\";\r\nimport PathTree from \"../../../components/UI/PathTree/PathTree\";\r\nimport Input from \"../../../components/UI/Input/Input\";\r\nimport { connect } from \"react-redux\";\r\nimport {\r\n updateObject,\r\n checkValidity,\r\n checkError,\r\n} from \"../../../../src/shared/utility.js\";\r\nimport { API_MYASK, API_MYASK_HEADER } from \"./../../../shared/constant\";\r\n// import { Redirect } from \"react-router-dom\";\r\nimport axios from \"axios\";\r\nimport ModalError from \"./../../../components/UI/Error/Error\";\r\n\r\nconst ContractControls = (props) => {\r\n const [reren, setReren] = useState(\"\");\r\n\r\n const path = {\r\n Path: [\r\n {\r\n title: \"ติดต่อเรา\",\r\n pathLink: \"/contact\",\r\n },\r\n ],\r\n };\r\n\r\n const label = {\r\n color: \"#000\",\r\n // width: '50%',\r\n };\r\n const [contractForm, setContractForm] = useState({\r\n form: {\r\n type: {\r\n order: \"0\",\r\n label: \"ประเภทลูกค้า:\",\r\n labelPos: \"left\",\r\n elementType: \"select\",\r\n elementConfig: {\r\n options: [{ value: \"\", displayValue: \"กรุณาเลือก\" }],\r\n },\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n },\r\n valid: false,\r\n styleLabel: label,\r\n touched: false,\r\n textInvalid: \"\",\r\n labelError: \"ประเภทลูกค้า\",\r\n },\r\n name: {\r\n order: \"1\",\r\n label: \"ชื่อ:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"ชื่อ\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n },\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n labelError: \"ชื่อ\",\r\n },\r\n lastname: {\r\n order: \"2\",\r\n label: \"นามสกุล:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"นามสกุล\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n },\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n labelError: \"นามสกุล\",\r\n },\r\n tel: {\r\n order: \"3\",\r\n label: \"เบอร์มือถือ:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"number\",\r\n placeholder: \"เบอร์มือถือ\",\r\n },\r\n type: \"number\",\r\n mode: \"numeric\",\r\n value: \"\",\r\n maxLength: 10, //ใช้ของ input html\r\n validation: {\r\n required: true,\r\n isNumeric: true,\r\n minLength: 10, //ใช้ของ utility เพราะต้องการดัก spacebar\r\n maxLength: 10,\r\n },\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n labelError: \"เบอร์มือถือ\",\r\n },\r\n email: {\r\n order: \"4\",\r\n label: \"อีเมล:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"อีเมล\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: false,\r\n isEmail: true,\r\n },\r\n valid: true,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n },\r\n number: {\r\n order: \"5\",\r\n label: \"เลขที่สัญญา/ทะเบียนรถ:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"เลขที่สัญญา/ทะเบียนรถ\",\r\n },\r\n value: \"\",\r\n validation: {},\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n },\r\n message: {\r\n order: \"6\",\r\n label: \"ข้อความส่งถึง ASK:\",\r\n labelPos: \"left\",\r\n elementType: \"textarea\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"ข้อความส่งถึง ASK\",\r\n rows: \"10\",\r\n },\r\n value: \"\",\r\n validation: {},\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n styleInput: {\r\n resize: \"none\",\r\n },\r\n textInvalid: \"\",\r\n },\r\n },\r\n formIsValid: false,\r\n });\r\n\r\n useEffect(() => {\r\n let updateState = \"\";\r\n let updateForm = \"\";\r\n let updateType = \"\";\r\n window.scrollTo(0, 0);\r\n axios.get(API_MYASK + \"/Customer_Type\").then((res) => {\r\n let type = contractForm.form.type.elementConfig.options;\r\n for (let i in res.data.LIST_DATA) {\r\n type.push({\r\n value: res.data.LIST_DATA[i].ID_CODE,\r\n displayValue: res.data.LIST_DATA[i].REMARK,\r\n });\r\n }\r\n\r\n updateType = updateObject(contractForm.form.type, {\r\n elementConfig: updateObject(contractForm.form.type.elementConfig, {\r\n options: type,\r\n }),\r\n });\r\n\r\n updateForm = updateObject(contractForm.form, {\r\n type: updateType,\r\n });\r\n updateState = updateObject(contractForm, {\r\n form: updateForm,\r\n });\r\n setContractForm(updateState);\r\n });\r\n\r\n return;\r\n }, []);\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n const onChangeTel = (val) => {\r\n const pattern = /^\\d+$/;\r\n const isValid = pattern.test(val);\r\n if (isValid || val === \"\") {\r\n return val;\r\n } else {\r\n return val.substring(val.length - 1, 0);\r\n }\r\n };\r\n const inputChangedHandler = (event, field) => {\r\n if (field === \"tel\") {\r\n event = onChangeTel(event);\r\n }\r\n\r\n const validate = checkValidity(event, contractForm.form[field].validation);\r\n const text = checkError(\r\n validate.code,\r\n contractForm.form[field].labelError,\r\n contractForm.form[field].validation\r\n );\r\n\r\n let updatedFormElement;\r\n if (field === \"email\") {\r\n //formIsValid : true\r\n if (event === \"\") {\r\n updatedFormElement = updateObject(contractForm.form[field], {\r\n value: event,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: false,\r\n isEmail: false,\r\n });\r\n } else {\r\n updatedFormElement = updateObject(contractForm.form[field], {\r\n value: event,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n isEmail: true,\r\n });\r\n }\r\n } else {\r\n updatedFormElement = updateObject(contractForm.form[field], {\r\n value: event,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n }\r\n\r\n let updatedForm = updateObject(contractForm.form, {\r\n [field]: updatedFormElement,\r\n });\r\n\r\n let formIsValid = true;\r\n for (let inputIdentifier in updatedForm) {\r\n formIsValid = updatedForm[inputIdentifier].valid && formIsValid;\r\n }\r\n\r\n const updatedState = updateObject(contractForm, {\r\n form: updatedForm,\r\n formIsValid: formIsValid,\r\n });\r\n\r\n setContractForm(updatedState);\r\n };\r\n const checkedValidate = () => {\r\n if (\r\n contractForm.form[\"type\"].valid === true &&\r\n contractForm.form[\"email\"].valid === true &&\r\n contractForm.form[\"name\"].valid === true &&\r\n contractForm.form[\"lastname\"].valid === true &&\r\n contractForm.form[\"tel\"].valid === true\r\n ) {\r\n contractForm.formIsValid = true;\r\n }\r\n if (!contractForm.formIsValid) {\r\n let updatedForm;\r\n let arrayObj = [];\r\n let updatedFormElement;\r\n let text;\r\n for (let field in contractForm.form) {\r\n const validate = checkValidity(\r\n contractForm.form[field].value,\r\n contractForm.form[field].validation\r\n );\r\n text = checkError(\r\n validate.code,\r\n contractForm.form[field].labelError,\r\n contractForm.form[field].validation\r\n );\r\n updatedFormElement = updateObject(contractForm.form[field], {\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n arrayObj.push(updatedFormElement);\r\n }\r\n const arrayContact = [];\r\n for (let i in arrayObj) {\r\n if (arrayObj[i].order === \"0\") {\r\n arrayContact[0] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"1\") {\r\n arrayContact[1] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"2\") {\r\n arrayContact[2] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"3\") {\r\n arrayContact[3] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"4\") {\r\n arrayContact[4] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"5\") {\r\n arrayContact[5] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"6\") {\r\n arrayContact[6] = arrayObj[i];\r\n }\r\n }\r\n updatedForm = updateObject(contractForm.form, {\r\n type: arrayContact[0],\r\n name: arrayContact[1],\r\n lastname: arrayContact[2],\r\n tel: arrayContact[3],\r\n email: arrayContact[4],\r\n number: arrayContact[5],\r\n message: arrayContact[6],\r\n });\r\n let updatedState = updateObject(contractForm, {\r\n form: updatedForm,\r\n });\r\n setContractForm(updatedState);\r\n } else {\r\n sendData();\r\n }\r\n };\r\n\r\n const sendData = () => {\r\n setLoading(true);\r\n let apply;\r\n if (props.lineId !== null) {\r\n apply = \"LINE\";\r\n } else if (\r\n sessionStorage.getItem(\"src\") ===\r\n \"mOZl4zuJDIV9CbjgwaaeyabZZrPGhyyC9ZVKhrSzFA0oZ6mTJPJeaRyc6F\"\r\n ) {\r\n apply = \"MYCAR\";\r\n } else {\r\n apply = \"WEB\";\r\n }\r\n const data = {\r\n CUSTOMER_TYPE: contractForm.form.type.value,\r\n FIRST_NAME: contractForm.form.name.value,\r\n LAST_NAME: contractForm.form.lastname.value,\r\n MOBILE_NO: contractForm.form.tel.value,\r\n EMAIL: contractForm.form.email.value,\r\n CONTRACT_NO: contractForm.form.number.value,\r\n INFORMATION: contractForm.form.message.value,\r\n LINE_ID: props.lineId,\r\n APPLY: apply,\r\n };\r\n axios\r\n .post(API_MYASK + \"/Contact\", data, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {})\r\n .catch((err) => {\r\n setReren(\r\n \r\n );\r\n });\r\n\r\n props.history.push({\r\n pathname: \"/success\",\r\n title: \"เราได้รับข้อมูลของท่านแล้ว\",\r\n path: \"/\",\r\n text: \"จะติดต่อกลับหาท่านโดยเร็วที่สุด\",\r\n // text2: 'ท่านสามารถติดตามผลได้ทาง...'\r\n });\r\n };\r\n\r\n const submitHandler = (event) => {\r\n event.preventDefault();\r\n window.scrollTo(0, 0);\r\n checkedValidate();\r\n };\r\n\r\n const formElementsArray = [];\r\n for (let key in contractForm.form) {\r\n formElementsArray[contractForm.form[key].order] = {\r\n id: key,\r\n config: contractForm.form[key],\r\n };\r\n }\r\n\r\n return (\r\n \r\n {reren}\r\n (\r\n
\r\n {/* */}\r\n \r\n inputChangedHandler(event.target.value, formElement.id)\r\n }\r\n labelPos={\"left\"}\r\n label={formElement.config.label}\r\n />\r\n
\r\n ))}\r\n submitHandler={submitHandler}\r\n >\r\n
\r\n );\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n lineId: state.line.userId,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(ContractControls);\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\n// import Button from '../../UI/Button/Button';\r\nimport Icon from './../UI/Icon/Icon';\r\nimport './../Apply/Apply.css';\r\nimport Loading from './../UI/Loading/Loading';\r\n// import { PATH_TEL, PATH_LINE, PATH_MAIL } from './../../../shared/constant';\r\n// import * as actions from \"./../../../store/action/index\";\r\nimport { connect } from \"react-redux\";\r\n\r\nconst Complaint = (props) => {\r\n const topic = {\r\n marginTop: '0.5rem',\r\n marginBottom: '2rem',\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n {/* \r\n \r\n */}\r\n \r\n

{props.title}

\r\n
\r\n {props.children}\r\n\r\n {props.loading\r\n ? \r\n
\r\n
\r\n :\r\n \r\n ส่งข้อมูล\r\n
}\r\n \r\n
\r\n
\r\n );\r\n}\r\nconst mapStateToProps = state => {\r\n return {\r\n lineFriend: state.auth.lineFriend,\r\n telNo: state.auth.telNo,\r\n mailTo: state.auth.mailTo,\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n null)(Complaint);\r\n","import React, { useEffect, useState } from \"react\";\r\nimport Contact from \"../../components/Contact/Contact/Contact\";\r\nimport Complaint from \"../../components/Complaint/Complaint\";\r\nimport PathTree from \"../../components/UI/PathTree/PathTree\";\r\nimport Input from \"../../components/UI/Input/Input\";\r\nimport { connect } from \"react-redux\";\r\nimport {\r\n updateObject,\r\n checkValidity,\r\n checkError,\r\n} from \"../../../src/shared/utility.js\";\r\nimport { API_MYASK, API_MYASK_HEADER } from \"./../../shared/constant\";\r\n// import { Redirect } from \"react-router-dom\";\r\nimport axios from \"axios\";\r\nimport ModalError from \"./../../components/UI/Error/Error\";\r\n\r\nconst ComplaintControls = (props) => {\r\n console.log(props.location);\r\n\r\n const [reren, setReren] = useState(\"\");\r\n const [usr, setUsr] = useState(props.location.search.substring(1) || \"C\");\r\n\r\n const path = {\r\n Path: [\r\n {\r\n title: \"แบบฟอร์มการร้องเรียน\",\r\n pathLink: \"/complaint\",\r\n },\r\n ],\r\n };\r\n\r\n const label = {\r\n color: \"#000\",\r\n // width: '50%',\r\n };\r\n\r\n let notice_type = \"\";\r\n\r\n const [noticetypeState, setnoticetypeState] = useState({\r\n notice1: {\r\n checked: false,\r\n },\r\n notice2: {\r\n checked: false,\r\n },\r\n notice3: {\r\n checked: false,\r\n },\r\n notice4: {\r\n checked: false,\r\n },\r\n notice5: {\r\n checked: false,\r\n },\r\n notice6: {\r\n checked: false,\r\n },\r\n notice7: {\r\n checked: false,\r\n },\r\n notice8: {\r\n checked: false,\r\n },\r\n });\r\n\r\n const [complaintForm, setcomplaintForm] = useState({\r\n form: {\r\n name: {\r\n order: \"0\",\r\n label: \"ชื่อ:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"ชื่อ\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n },\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n labelError: \"ชื่อ\",\r\n },\r\n lastname: {\r\n order: \"1\",\r\n label: \"นามสกุล:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"นามสกุล\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n },\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n labelError: \"นามสกุล\",\r\n },\r\n tel: {\r\n order: \"2\",\r\n label: \"เบอร์มือถือ:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"number\",\r\n placeholder: \"เบอร์มือถือ\",\r\n },\r\n type: \"number\",\r\n mode: \"numeric\",\r\n value: \"\",\r\n maxLength: 10, //ใช้ของ input html\r\n validation: {\r\n required: true,\r\n isNumeric: true,\r\n minLength: 10, //ใช้ของ utility เพราะต้องการดัก spacebar\r\n maxLength: 10,\r\n },\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n labelError: \"เบอร์มือถือ\",\r\n },\r\n email: {\r\n order: \"3\",\r\n label: \"อีเมล:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"อีเมล\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: false,\r\n isEmail: true,\r\n },\r\n valid: true,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n labelError: \"อีเมล\",\r\n },\r\n producttype: {\r\n order: \"4\",\r\n label: \"ประเภทสินเชื่อ:\",\r\n labelPos: \"left\",\r\n elementType: \"select\",\r\n elementConfig: {\r\n options: [{ value: \"\", displayValue: \"กรุณาเลือก\" }],\r\n },\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n },\r\n valid: false,\r\n styleLabel: label,\r\n touched: false,\r\n textInvalid: \"\",\r\n labelError: \"ประเภทสินเชื่อ\",\r\n },\r\n custype: {\r\n order: \"5\",\r\n label: \"สถานะลูกค้า:\",\r\n labelPos: \"left\",\r\n elementType: \"select\",\r\n elementConfig: {\r\n options: [\r\n { value: \"\", displayValue: \"กรุณาเลือก\" },\r\n { value: \"N\", displayValue: \"ยังไม่เป็นลูกค้า\" },\r\n { value: \"Y\", displayValue: \"ลูกค้าปัจจุบัน\" },\r\n { value: \"E\", displayValue: \"เคยเป็นลูกค้า\" },\r\n ],\r\n },\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n },\r\n valid: false,\r\n styleLabel: label,\r\n touched: false,\r\n textInvalid: \"\",\r\n labelError: \"สถานะลูกค้า\",\r\n },\r\n agrcode: {\r\n order: \"6\",\r\n label: \"เลขที่สัญญา:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"เลขที่สัญญา\",\r\n },\r\n value: \"\",\r\n validation: {},\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n },\r\n noticetype: {\r\n order: \"7\",\r\n label: \"เรื่องที่ต้องการร้องเรียน:\",\r\n labelPos: \"left\",\r\n elementType: \"checkbox\",\r\n elementConfig: {},\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n },\r\n text: \"\",\r\n valid: false,\r\n styleLabel: label,\r\n touched: false,\r\n textInvalid: \"\",\r\n labelError: \"เรื่องที่ต้องการร้องเรียน\",\r\n },\r\n noticetype2: {\r\n order: \"8\",\r\n label: \"\",\r\n labelPos: \"\",\r\n elementType: \"checkbox\",\r\n elementConfig: {},\r\n value: \"\",\r\n validation: {},\r\n text: \"\",\r\n valid: false,\r\n styleLabel: label,\r\n touched: false,\r\n textInvalid: \"\",\r\n labelError: \"เรื่องที่ต้องการร้องเรียน\",\r\n },\r\n noticetype3: {\r\n order: \"9\",\r\n label: \"\",\r\n labelPos: \"\",\r\n elementType: \"checkbox\",\r\n elementConfig: {},\r\n value: \"\",\r\n validation: {},\r\n text: \"\",\r\n valid: false,\r\n styleLabel: label,\r\n touched: false,\r\n textInvalid: \"\",\r\n labelError: \"เรื่องที่ต้องการร้องเรียน\",\r\n },\r\n noticetype4: {\r\n order: \"10\",\r\n label: \"\",\r\n labelPos: \"\",\r\n elementType: \"checkbox\",\r\n elementConfig: {},\r\n value: \"\",\r\n validation: {},\r\n text: \"\",\r\n valid: false,\r\n styleLabel: label,\r\n touched: false,\r\n textInvalid: \"\",\r\n labelError: \"เรื่องที่ต้องการร้องเรียน\",\r\n },\r\n noticetype5: {\r\n order: \"11\",\r\n label: \"\",\r\n labelPos: \"\",\r\n elementType: \"checkbox\",\r\n elementConfig: {},\r\n value: \"\",\r\n validation: {},\r\n text: \"\",\r\n valid: false,\r\n styleLabel: label,\r\n touched: false,\r\n textInvalid: \"\",\r\n labelError: \"เรื่องที่ต้องการร้องเรียน\",\r\n },\r\n noticetype6: {\r\n order: \"12\",\r\n label: \"\",\r\n labelPos: \"\",\r\n elementType: \"checkbox\",\r\n elementConfig: {},\r\n value: \"\",\r\n validation: {},\r\n text: \"\",\r\n valid: false,\r\n styleLabel: label,\r\n touched: false,\r\n textInvalid: \"\",\r\n labelError: \"เรื่องที่ต้องการร้องเรียน\",\r\n },\r\n noticetype7: {\r\n order: \"13\",\r\n label: \"\",\r\n labelPos: \"\",\r\n elementType: \"checkbox\",\r\n elementConfig: {},\r\n value: \"\",\r\n validation: {},\r\n text: \"\",\r\n valid: false,\r\n styleLabel: label,\r\n touched: false,\r\n textInvalid: \"\",\r\n labelError: \"เรื่องที่ต้องการร้องเรียน\",\r\n },\r\n noticetype8: {\r\n order: \"14\",\r\n label: \"\",\r\n labelPos: \"\",\r\n elementType: \"checkbox\",\r\n elementConfig: {},\r\n value: \"\",\r\n validation: {},\r\n text: \"\",\r\n valid: false,\r\n styleLabel: label,\r\n touched: false,\r\n textInvalid: \"\",\r\n labelError: \"เรื่องที่ต้องการร้องเรียน\",\r\n },\r\n message: {\r\n order: \"15\",\r\n label: \"รายละเอียดเรื่องที่ต้องการร้องเรียน:\",\r\n labelPos: \"left\",\r\n elementType: \"textarea\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"รายละเอียดเรื่องที่ต้องการร้องเรียน\",\r\n rows: \"10\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: false,\r\n },\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n styleInput: {\r\n resize: \"none\",\r\n },\r\n textInvalid: \"\",\r\n labelError: \"รายละเอียดเรื่องที่ต้องการร้องเรียน\",\r\n },\r\n callback: {\r\n order: \"16\",\r\n label: \"ช่องทางการติดต่อกลับ:\",\r\n labelPos: \"left\",\r\n elementType: \"select\",\r\n elementConfig: {\r\n options: [\r\n { value: \"\", displayValue: \"กรุณาเลือก\" },\r\n { value: \"02\", displayValue: \"โทรศัพท์\" },\r\n { value: \"04\", displayValue: \"จดหมาย\" },\r\n { value: \"03\", displayValue: \"Email\" },\r\n { value: \"01\", displayValue: \"ไม่ประสงค์ให้ติดต่อกลับ\" },\r\n ],\r\n },\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n },\r\n valid: false,\r\n styleLabel: label,\r\n touched: false,\r\n textInvalid: \"\",\r\n labelError: \"ช่องทางการติดต่อกลับ\",\r\n },\r\n callbacktext: {\r\n order: \"17\",\r\n label: \"ข้อมูลช่องทางการติดต่อกลับ (ที่อยู่):\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"ข้อมูลช่องทางการติดต่อกลับ (ที่อยู่)\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: false,\r\n },\r\n valid: true,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"ข้อมูลช่องทางการติดต่อกลับ (ที่อยู่)\",\r\n labelError: \"ที่อยู่\",\r\n },\r\n },\r\n formIsValid: false,\r\n });\r\n\r\n useEffect(() => {\r\n let mount = true;\r\n window.scrollTo(0, 0);\r\n axios.get(API_MYASK + \"/GetNoticeType\").then((res) => {\r\n axios.get(API_MYASK + \"/GetProductType\").then((res2) => {\r\n console.log(res2);\r\n let type = complaintForm.form.producttype.elementConfig.options;\r\n for (let i in res2.data.LIST_DATA) {\r\n type.push({\r\n value: res2.data.LIST_DATA[i].product_code,\r\n displayValue: res2.data.LIST_DATA[i].product_name,\r\n });\r\n }\r\n\r\n let updateProduct = updateObject(complaintForm.form.producttype, {\r\n elementConfig: updateObject(\r\n complaintForm.form.producttype.elementConfig,\r\n {\r\n options: type,\r\n }\r\n ),\r\n });\r\n\r\n let updateType = updateObject(complaintForm.form.noticetype, {\r\n value: res.data.LIST_DATA[0].id_code,\r\n text: res.data.LIST_DATA[0].remark,\r\n });\r\n let updateType2 = updateObject(complaintForm.form.noticetype2, {\r\n value: res.data.LIST_DATA[1].id_code,\r\n text: res.data.LIST_DATA[1].remark,\r\n });\r\n let updateType3 = updateObject(complaintForm.form.noticetype3, {\r\n value: res.data.LIST_DATA[2].id_code,\r\n text: res.data.LIST_DATA[2].remark,\r\n });\r\n let updateType4 = updateObject(complaintForm.form.noticetype4, {\r\n value: res.data.LIST_DATA[3].id_code,\r\n text: res.data.LIST_DATA[3].remark,\r\n });\r\n let updateType5 = updateObject(complaintForm.form.noticetype5, {\r\n value: res.data.LIST_DATA[4].id_code,\r\n text: res.data.LIST_DATA[4].remark,\r\n });\r\n let updateType6 = updateObject(complaintForm.form.noticetype6, {\r\n value: res.data.LIST_DATA[5].id_code,\r\n text: res.data.LIST_DATA[5].remark,\r\n });\r\n let updateType7 = updateObject(complaintForm.form.noticetype7, {\r\n value: res.data.LIST_DATA[6].id_code,\r\n text: res.data.LIST_DATA[6].remark,\r\n });\r\n let updateType8 = updateObject(complaintForm.form.noticetype8, {\r\n value: res.data.LIST_DATA[7].id_code,\r\n text: res.data.LIST_DATA[7].remark,\r\n });\r\n\r\n let updateForm = updateObject(complaintForm.form, {\r\n noticetype: updateType,\r\n noticetype2: updateType2,\r\n noticetype3: updateType3,\r\n noticetype4: updateType4,\r\n noticetype5: updateType5,\r\n noticetype6: updateType6,\r\n noticetype7: updateType7,\r\n noticetype8: updateType8,\r\n producttype: updateProduct,\r\n });\r\n let updateState = updateObject(complaintForm, {\r\n form: updateForm,\r\n });\r\n\r\n if (mount) {\r\n setcomplaintForm(updateState);\r\n }\r\n });\r\n });\r\n return () => {\r\n mount = false;\r\n };\r\n }, []);\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n const onChangeTel = (val) => {\r\n const pattern = /^\\d+$/;\r\n const isValid = pattern.test(val);\r\n if (isValid || val === \"\") {\r\n return val;\r\n } else {\r\n return val.substring(val.length - 1, 0);\r\n }\r\n };\r\n\r\n const inputChangedHandler = (event, field) => {\r\n let updatedFormElement;\r\n let updatedFormElement2;\r\n let updatedFormElement3;\r\n\r\n console.log(field + \" \" + event);\r\n\r\n if (field === \"tel\") {\r\n event = onChangeTel(event);\r\n }\r\n\r\n let updateChecked;\r\n\r\n if (field === \"noticetype\") {\r\n if (noticetypeState.notice1.checked === false) {\r\n updateChecked = updateObject(noticetypeState.notice1, {\r\n checked: true,\r\n });\r\n } else {\r\n updateChecked = updateObject(noticetypeState.notice1, {\r\n checked: false,\r\n });\r\n }\r\n let updateNoticeState = updateObject(noticetypeState, {\r\n notice1: updateChecked,\r\n });\r\n setnoticetypeState(updateNoticeState);\r\n } else if (field === \"noticetype2\") {\r\n if (noticetypeState.notice2.checked === false) {\r\n updateChecked = updateObject(noticetypeState.notice2, {\r\n checked: true,\r\n });\r\n } else {\r\n updateChecked = updateObject(noticetypeState.notice2, {\r\n checked: false,\r\n });\r\n }\r\n let updateNoticeState = updateObject(noticetypeState, {\r\n notice2: updateChecked,\r\n });\r\n setnoticetypeState(updateNoticeState);\r\n } else if (field === \"noticetype3\") {\r\n if (noticetypeState.notice3.checked === false) {\r\n updateChecked = updateObject(noticetypeState.notice3, {\r\n checked: true,\r\n });\r\n } else {\r\n updateChecked = updateObject(noticetypeState.notice3, {\r\n checked: false,\r\n });\r\n }\r\n let updateNoticeState = updateObject(noticetypeState, {\r\n notice3: updateChecked,\r\n });\r\n setnoticetypeState(updateNoticeState);\r\n } else if (field === \"noticetype4\") {\r\n if (noticetypeState.notice4.checked === false) {\r\n updateChecked = updateObject(noticetypeState.notice4, {\r\n checked: true,\r\n });\r\n } else {\r\n updateChecked = updateObject(noticetypeState.notice4, {\r\n checked: false,\r\n });\r\n }\r\n let updateNoticeState = updateObject(noticetypeState, {\r\n notice4: updateChecked,\r\n });\r\n setnoticetypeState(updateNoticeState);\r\n } else if (field === \"noticetype5\") {\r\n if (noticetypeState.notice5.checked === false) {\r\n updateChecked = updateObject(noticetypeState.notice5, {\r\n checked: true,\r\n });\r\n } else {\r\n updateChecked = updateObject(noticetypeState.notice5, {\r\n checked: false,\r\n });\r\n }\r\n let updateNoticeState = updateObject(noticetypeState, {\r\n notice5: updateChecked,\r\n });\r\n setnoticetypeState(updateNoticeState);\r\n } else if (field === \"noticetype6\") {\r\n if (noticetypeState.notice6.checked === false) {\r\n updateChecked = updateObject(noticetypeState.notice6, {\r\n checked: true,\r\n });\r\n } else {\r\n updateChecked = updateObject(noticetypeState.notice6, {\r\n checked: false,\r\n });\r\n }\r\n let updateNoticeState = updateObject(noticetypeState, {\r\n notice6: updateChecked,\r\n });\r\n setnoticetypeState(updateNoticeState);\r\n } else if (field === \"noticetype7\") {\r\n if (noticetypeState.notice7.checked === false) {\r\n updateChecked = updateObject(noticetypeState.notice7, {\r\n checked: true,\r\n });\r\n } else {\r\n updateChecked = updateObject(noticetypeState.notice7, {\r\n checked: false,\r\n });\r\n }\r\n let updateNoticeState = updateObject(noticetypeState, {\r\n notice7: updateChecked,\r\n });\r\n setnoticetypeState(updateNoticeState);\r\n } else if (field === \"noticetype8\") {\r\n if (noticetypeState.notice8.checked === false) {\r\n updateChecked = updateObject(noticetypeState.notice8, {\r\n checked: true,\r\n });\r\n\r\n let updateFormValidate = updateObject(\r\n complaintForm.form[\"message\"].validation,\r\n {\r\n required: true,\r\n }\r\n );\r\n\r\n updatedFormElement = updateObject(complaintForm.form[\"message\"], {\r\n valid: false,\r\n validation: updateFormValidate,\r\n });\r\n\r\n let updatedForm = updateObject(complaintForm.form, {\r\n [\"message\"]: updatedFormElement,\r\n });\r\n\r\n const updatedState = updateObject(complaintForm, {\r\n form: updatedForm,\r\n });\r\n\r\n let updateNoticeState = updateObject(noticetypeState, {\r\n notice8: updateChecked,\r\n });\r\n\r\n setcomplaintForm(updatedState);\r\n setnoticetypeState(updateNoticeState);\r\n } else {\r\n updateChecked = updateObject(noticetypeState.notice8, {\r\n checked: false,\r\n });\r\n\r\n let updateFormValidate = updateObject(\r\n complaintForm.form[\"message\"].validation,\r\n {\r\n required: false,\r\n }\r\n );\r\n\r\n updatedFormElement = updateObject(complaintForm.form[\"message\"], {\r\n valid: false,\r\n validation: updateFormValidate,\r\n });\r\n\r\n let updatedForm = updateObject(complaintForm.form, {\r\n [\"message\"]: updatedFormElement,\r\n });\r\n\r\n const updatedState = updateObject(complaintForm, {\r\n form: updatedForm,\r\n });\r\n\r\n let updateNoticeState = updateObject(noticetypeState, {\r\n notice8: updateChecked,\r\n });\r\n\r\n setcomplaintForm(updatedState);\r\n setnoticetypeState(updateNoticeState);\r\n }\r\n } else if (field === \"callback\" && event === \"03\") {\r\n let updateFormValidate = updateObject(\r\n complaintForm.form[\"email\"].validation,\r\n {\r\n required: true,\r\n }\r\n );\r\n\r\n updatedFormElement = updateObject(complaintForm.form[\"email\"], {\r\n valid: false,\r\n validation: updateFormValidate,\r\n });\r\n\r\n let updateFormValidate2 = updateObject(\r\n complaintForm.form[\"callbacktext\"].validation,\r\n {\r\n required: false,\r\n }\r\n );\r\n\r\n updatedFormElement3 = updateObject(complaintForm.form[\"callbacktext\"], {\r\n valid: true,\r\n validation: updateFormValidate2,\r\n });\r\n\r\n const validate = checkValidity(\r\n event,\r\n complaintForm.form[field].validation\r\n );\r\n const text = checkError(\r\n validate.code,\r\n complaintForm.form[field].labelError,\r\n complaintForm.form[field].validation\r\n );\r\n\r\n updatedFormElement2 = updateObject(complaintForm.form[field], {\r\n value: event,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n\r\n let updatedForm = updateObject(complaintForm.form, {\r\n [\"email\"]: updatedFormElement,\r\n [\"callbacktext\"]: updatedFormElement3,\r\n [field]: updatedFormElement2,\r\n });\r\n\r\n const updatedState = updateObject(complaintForm, {\r\n form: updatedForm,\r\n });\r\n\r\n setcomplaintForm(updatedState);\r\n console.log(complaintForm);\r\n } else if (field === \"callback\" && event === \"04\") {\r\n let updateFormValidate = updateObject(\r\n complaintForm.form[\"callbacktext\"].validation,\r\n {\r\n required: true,\r\n }\r\n );\r\n\r\n updatedFormElement = updateObject(complaintForm.form[\"callbacktext\"], {\r\n valid: false,\r\n validation: updateFormValidate,\r\n });\r\n\r\n let updateFormValidate2 = updateObject(\r\n complaintForm.form[\"email\"].validation,\r\n {\r\n required: false,\r\n }\r\n );\r\n\r\n updatedFormElement3 = updateObject(complaintForm.form[\"email\"], {\r\n valid: true,\r\n validation: updateFormValidate2,\r\n });\r\n\r\n const validate = checkValidity(\r\n event,\r\n complaintForm.form[field].validation\r\n );\r\n const text = checkError(\r\n validate.code,\r\n complaintForm.form[field].labelError,\r\n complaintForm.form[field].validation\r\n );\r\n\r\n updatedFormElement2 = updateObject(complaintForm.form[field], {\r\n value: event,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n\r\n let updatedForm = updateObject(complaintForm.form, {\r\n [\"email\"]: updatedFormElement3,\r\n [\"callbacktext\"]: updatedFormElement,\r\n [field]: updatedFormElement2,\r\n });\r\n\r\n const updatedState = updateObject(complaintForm, {\r\n form: updatedForm,\r\n });\r\n\r\n setcomplaintForm(updatedState);\r\n\r\n console.log(complaintForm);\r\n } else if (field === \"callback\" && event !== \"03\" && event !== \"04\") {\r\n let updateFormValidate = updateObject(\r\n complaintForm.form[\"email\"].validation,\r\n {\r\n required: false,\r\n }\r\n );\r\n\r\n updatedFormElement = updateObject(complaintForm.form[\"email\"], {\r\n valid: true,\r\n validation: updateFormValidate,\r\n });\r\n\r\n let updateFormValidate2 = updateObject(\r\n complaintForm.form[\"callbacktext\"].validation,\r\n {\r\n required: false,\r\n }\r\n );\r\n\r\n updatedFormElement3 = updateObject(complaintForm.form[\"callbacktext\"], {\r\n valid: true,\r\n validation: updateFormValidate2,\r\n });\r\n\r\n const validate = checkValidity(\r\n event,\r\n complaintForm.form[field].validation\r\n );\r\n const text = checkError(\r\n validate.code,\r\n complaintForm.form[field].labelError,\r\n complaintForm.form[field].validation\r\n );\r\n\r\n updatedFormElement2 = updateObject(complaintForm.form[field], {\r\n value: event,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n\r\n let updatedForm = updateObject(complaintForm.form, {\r\n [\"email\"]: updatedFormElement,\r\n [\"callbacktext\"]: updatedFormElement3,\r\n [field]: updatedFormElement2,\r\n });\r\n\r\n const updatedState = updateObject(complaintForm, {\r\n form: updatedForm,\r\n });\r\n\r\n setcomplaintForm(updatedState);\r\n } else {\r\n const validate = checkValidity(\r\n event,\r\n complaintForm.form[field].validation\r\n );\r\n const text = checkError(\r\n validate.code,\r\n complaintForm.form[field].labelError,\r\n complaintForm.form[field].validation\r\n );\r\n\r\n if (field === \"email\") {\r\n //formIsValid : true\r\n if (event === \"\") {\r\n updatedFormElement = updateObject(complaintForm.form[field], {\r\n value: event,\r\n valid: false,\r\n textInvalid: text,\r\n touched: false,\r\n isEmail: false,\r\n });\r\n } else {\r\n updatedFormElement = updateObject(complaintForm.form[field], {\r\n value: event,\r\n valid: true,\r\n textInvalid: text,\r\n touched: true,\r\n isEmail: true,\r\n });\r\n }\r\n } else {\r\n updatedFormElement = updateObject(complaintForm.form[field], {\r\n value: event,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n }\r\n\r\n let updatedForm = updateObject(complaintForm.form, {\r\n [field]: updatedFormElement,\r\n });\r\n\r\n let formIsValid = true;\r\n for (let inputIdentifier in updatedForm) {\r\n formIsValid = updatedForm[inputIdentifier].valid && formIsValid;\r\n }\r\n\r\n const updatedState = updateObject(complaintForm, {\r\n form: updatedForm,\r\n formIsValid: formIsValid,\r\n });\r\n\r\n setcomplaintForm(updatedState);\r\n }\r\n };\r\n\r\n const checkedValidate = () => {\r\n if (\r\n complaintForm.form[\"callback\"].valid === true &&\r\n !(\r\n noticetypeState.notice1.checked === false &&\r\n noticetypeState.notice2.checked === false &&\r\n noticetypeState.notice3.checked === false &&\r\n noticetypeState.notice4.checked === false &&\r\n noticetypeState.notice5.checked === false &&\r\n noticetypeState.notice6.checked === false &&\r\n noticetypeState.notice7.checked === false &&\r\n noticetypeState.notice8.checked === false\r\n ) &&\r\n complaintForm.form[\"custype\"].valid === true &&\r\n complaintForm.form[\"producttype\"].valid === true &&\r\n complaintForm.form[\"name\"].valid === true &&\r\n complaintForm.form[\"lastname\"].valid === true &&\r\n complaintForm.form[\"tel\"].valid === true &&\r\n complaintForm.form[\"email\"].valid === true &&\r\n complaintForm.form[\"callback\"].valid === true &&\r\n complaintForm.form[\"callbacktext\"].valid === true\r\n ) {\r\n complaintForm.formIsValid = true;\r\n sendData();\r\n }\r\n if (!complaintForm.formIsValid) {\r\n let updatedForm;\r\n let arrayObj = [];\r\n let updatedFormElement;\r\n let text;\r\n for (let field in complaintForm.form) {\r\n const validate = checkValidity(\r\n complaintForm.form[field].value,\r\n complaintForm.form[field].validation\r\n );\r\n text = checkError(\r\n validate.code,\r\n complaintForm.form[field].labelError,\r\n complaintForm.form[field].validation\r\n );\r\n updatedFormElement = updateObject(complaintForm.form[field], {\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n arrayObj.push(updatedFormElement);\r\n }\r\n const arrayComplaint = [];\r\n for (let i in arrayObj) {\r\n if (arrayObj[i].order === \"0\") {\r\n arrayComplaint[0] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"1\") {\r\n arrayComplaint[1] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"2\") {\r\n arrayComplaint[2] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"3\") {\r\n arrayComplaint[3] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"4\") {\r\n arrayComplaint[4] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"5\") {\r\n arrayComplaint[5] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"6\") {\r\n arrayComplaint[6] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"7\") {\r\n arrayComplaint[7] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"8\") {\r\n arrayComplaint[8] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"9\") {\r\n arrayComplaint[9] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"10\") {\r\n arrayComplaint[10] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"11\") {\r\n arrayComplaint[11] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"12\") {\r\n arrayComplaint[12] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"13\") {\r\n arrayComplaint[13] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"14\") {\r\n arrayComplaint[14] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"15\") {\r\n arrayComplaint[15] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"16\") {\r\n arrayComplaint[16] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"17\") {\r\n arrayComplaint[17] = arrayObj[i];\r\n }\r\n }\r\n updatedForm = updateObject(complaintForm.form, {\r\n name: arrayComplaint[0],\r\n lastname: arrayComplaint[1],\r\n tel: arrayComplaint[2],\r\n email: arrayComplaint[3],\r\n producttype: arrayComplaint[4],\r\n custype: arrayComplaint[5],\r\n agrcode: arrayComplaint[6],\r\n noticetype: arrayComplaint[7],\r\n noticetype2: arrayComplaint[8],\r\n noticetype3: arrayComplaint[9],\r\n noticetype4: arrayComplaint[10],\r\n noticetype5: arrayComplaint[11],\r\n noticetype6: arrayComplaint[12],\r\n noticetype7: arrayComplaint[13],\r\n noticetype8: arrayComplaint[14],\r\n message: arrayComplaint[15],\r\n callback: arrayComplaint[16],\r\n callbacktext: arrayComplaint[17],\r\n });\r\n let updatedState = updateObject(complaintForm, {\r\n form: updatedForm,\r\n });\r\n setcomplaintForm(updatedState);\r\n }\r\n };\r\n\r\n const sendData = () => {\r\n setLoading(true);\r\n\r\n if (noticetypeState.notice1.checked === true) {\r\n notice_type = \"01\";\r\n }\r\n if (noticetypeState.notice2.checked === true) {\r\n if (notice_type !== \"\") {\r\n notice_type = notice_type + \",\" + \"02\";\r\n } else {\r\n notice_type = \"02\";\r\n }\r\n }\r\n if (noticetypeState.notice3.checked === true) {\r\n if (notice_type !== \"\") {\r\n notice_type = notice_type + \",\" + \"03\";\r\n } else {\r\n notice_type = \"03\";\r\n }\r\n }\r\n if (noticetypeState.notice4.checked === true) {\r\n if (notice_type !== \"\") {\r\n notice_type = notice_type + \",\" + \"04\";\r\n } else {\r\n notice_type = \"04\";\r\n }\r\n }\r\n if (noticetypeState.notice5.checked === true) {\r\n if (notice_type !== \"\") {\r\n notice_type = notice_type + \",\" + \"05\";\r\n } else {\r\n notice_type = \"05\";\r\n }\r\n }\r\n if (noticetypeState.notice6.checked === true) {\r\n if (notice_type !== \"\") {\r\n notice_type = notice_type + \",\" + \"06\";\r\n } else {\r\n notice_type = \"06\";\r\n }\r\n }\r\n if (noticetypeState.notice7.checked === true) {\r\n if (notice_type !== \"\") {\r\n notice_type = notice_type + \",\" + \"07\";\r\n } else {\r\n notice_type = \"07\";\r\n }\r\n }\r\n if (noticetypeState.notice8.checked === true) {\r\n if (notice_type !== \"\") {\r\n notice_type = notice_type + \",\" + \"08\";\r\n } else {\r\n notice_type = \"08\";\r\n }\r\n }\r\n\r\n let sourceby = \"\";\r\n if (props.lineId !== null) {\r\n sourceby = \"02\";\r\n } else if (usr !== \"C\") {\r\n sourceby = \"04\";\r\n } else {\r\n sourceby = \"01\";\r\n }\r\n\r\n const data = {\r\n FIRST_NAME: complaintForm.form.name.value,\r\n LAST_NAME: complaintForm.form.lastname.value,\r\n TEL1: complaintForm.form.tel.value,\r\n TEL2: \"\",\r\n EMAIL: complaintForm.form.email.value,\r\n PRODUCT_TYPE: complaintForm.form.producttype.value,\r\n CUS_TYPE: complaintForm.form.custype.value,\r\n AGR_CODE: complaintForm.form.agrcode.value,\r\n NOTICE_TYPE: notice_type,\r\n NOTICE_DETAIL: complaintForm.form.message.value,\r\n CALL_BACK_CHANNEL: complaintForm.form.callback.value,\r\n CALL_BACK_MAIL: complaintForm.form.callbacktext.value,\r\n USER: usr,\r\n SOURCEBY: sourceby,\r\n };\r\n axios\r\n .post(API_MYASK + \"/SaveComplaint\", data, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n console.log(res);\r\n const data2 = {\r\n device: \"web\",\r\n userName: \"\",\r\n userCode: usr,\r\n comCode: \"\",\r\n pTaskCode: \"CMP-02\",\r\n pChannelMail: \"01\",\r\n pToemail: complaintForm.form.email.value,\r\n pBccemail: \"\",\r\n pSumresp: \"\",\r\n };\r\n axios\r\n .post(API_MYASK + \"/PostSendMail\", data2, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n console.log(res);\r\n })\r\n .catch((err) => {\r\n setReren(\r\n \r\n );\r\n });\r\n })\r\n .catch((err) => {\r\n setReren(\r\n \r\n );\r\n });\r\n\r\n // props.history.push({\r\n // // ใช้ในกรณีเซิฟเวอร์เทส\r\n // pathname: \"/success\",\r\n // title: \"เราได้รับข้อมูลของท่านแล้ว\",\r\n // path: \"/myask/#/\",\r\n // text: \"จะติดต่อกลับหาท่านโดยเร็วที่สุด\",\r\n // // text2: 'ท่านสามารถติดตามผลได้ทาง...'\r\n // });\r\n\r\n props.history.push({\r\n // ใช้ในกรณี localhost, production\r\n pathname: \"/success\",\r\n title: \"เราได้รับข้อมูลของท่านแล้ว\",\r\n path: \"/\",\r\n text: \"จะติดต่อกลับหาท่านโดยเร็วที่สุด\",\r\n // text2: 'ท่านสามารถติดตามผลได้ทาง...'\r\n });\r\n };\r\n\r\n const submitHandler = (event) => {\r\n event.preventDefault();\r\n window.scrollTo(0, 0);\r\n checkedValidate();\r\n };\r\n\r\n const formElementsArray = [];\r\n for (let key in complaintForm.form) {\r\n formElementsArray[complaintForm.form[key].order] = {\r\n id: key,\r\n config: complaintForm.form[key],\r\n };\r\n }\r\n\r\n return (\r\n \r\n {reren}\r\n (\r\n
\r\n {/* */}\r\n \r\n inputChangedHandler(event.target.value, formElement.id)\r\n }\r\n labelPos={\"left\"}\r\n fontSize={\"1.2rem\"}\r\n label={formElement.config.label}\r\n text={formElement.config.text}\r\n />\r\n
\r\n ))}\r\n submitHandler={submitHandler}\r\n >\r\n
\r\n );\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n lineId: state.line.userId,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(ComplaintControls);\r\n","import React, { useEffect, useState } from \"react\";\r\nimport Contact from \"../../../components/Contact/Contact/Contact\";\r\nimport PathTree from \"../../../components/UI/PathTree/PathTree\";\r\nimport Input from \"../../../components/UI/Input/Input\";\r\nimport { connect } from \"react-redux\";\r\nimport {\r\n updateObject,\r\n checkValidity,\r\n checkError,\r\n} from \"../../../../src/shared/utility.js\";\r\nimport { API_MYASK, API_MYASK_HEADER } from \"./../../../shared/constant\";\r\n// import { Redirect } from \"react-router-dom\";\r\nimport axios from \"axios\";\r\nimport ModalError from \"./../../../components/UI/Error/Error\";\r\n\r\nconst ContractCovid19Controls = (props) => {\r\n const [reren, setReren] = useState(\"\");\r\n\r\n const path = {\r\n Path: [\r\n {\r\n title: \"ติดต่อเรา#covid19\",\r\n pathLink: \"/contact__covid19\",\r\n },\r\n ],\r\n };\r\n\r\n const label = {\r\n color: \"#000\",\r\n // width: '50%',\r\n };\r\n const [contractForm, setContractForm] = useState({\r\n form: {\r\n type: {\r\n order: \"0\",\r\n label: \"ประเภทลูกค้า:\",\r\n labelPos: \"left\",\r\n elementType: \"select\",\r\n elementConfig: {\r\n options: [{ value: \"2\", displayValue: \"ลูกค้าปัจจุบัน\" }], //fix\r\n },\r\n value: \"2\", //fix\r\n validation: {\r\n required: true,\r\n },\r\n valid: true, // fix\r\n styleLabel: label,\r\n touched: false,\r\n textInvalid: \"\",\r\n labelError: \"ประเภทลูกค้า\",\r\n },\r\n name: {\r\n order: \"1\",\r\n label: \"ชื่อ:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"ชื่อ\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n },\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n labelError: \"ชื่อ\",\r\n },\r\n lastname: {\r\n order: \"2\",\r\n label: \"นามสกุล:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"นามสกุล\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n },\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n labelError: \"นามสกุล\",\r\n },\r\n tel: {\r\n order: \"3\",\r\n label: \"เบอร์มือถือ:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"number\",\r\n placeholder: \"เบอร์มือถือ\",\r\n },\r\n type: \"number\",\r\n mode: \"numeric\",\r\n value: \"\",\r\n maxLength: 10, //ใช้ของ input html\r\n validation: {\r\n required: true,\r\n isNumeric: true,\r\n minLength: 10, //ใช้ของ utility เพราะต้องการดัก spacebar\r\n maxLength: 10,\r\n },\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n labelError: \"เบอร์มือถือ\",\r\n },\r\n cardno: {\r\n order: \"4\",\r\n label: \"เลขที่บัตรประชาชน:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"number\",\r\n placeholder: \"เลขที่บัตรประชาชน\",\r\n },\r\n type: \"number\",\r\n mode: \"numeric\",\r\n value: \"\",\r\n maxLength: 13, //ใช้ของ input html\r\n validation: {\r\n required: true,\r\n isNumeric: true,\r\n minLength: 13, //ใช้ของ utility เพราะต้องการดัก spacebar\r\n maxLength: 13,\r\n },\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n labelError: \"เลขที่บัตรประชาชน\",\r\n },\r\n email: {\r\n order: \"5\",\r\n label: \"อีเมล:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"อีเมล\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: false,\r\n isEmail: true,\r\n },\r\n valid: true,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n },\r\n number: {\r\n order: \"6\",\r\n label: \"เลขที่สัญญาหรือทะเบียนรถ:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"เลขที่สัญญาหรือทะเบียนรถ\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n },\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n labelError: \"เลขที่สัญญาหรือทะเบียนรถ\",\r\n },\r\n message: {\r\n order: \"7\",\r\n label: \"อาชีพและผลกระทบที่ได้รับ:\",\r\n labelPos: \"left\",\r\n elementType: \"textarea\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"อาชีพและผลกระทบที่ได้รับ\",\r\n rows: \"10\",\r\n },\r\n value: \"\",\r\n validation: {},\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n styleInput: {\r\n resize: \"none\",\r\n },\r\n textInvalid: \"\",\r\n },\r\n },\r\n formIsValid: false,\r\n });\r\n\r\n // useEffect(() => {\r\n // let updateState = \"\";\r\n // let updateForm = \"\";\r\n // let updateType = \"\";\r\n // window.scrollTo(0, 0);\r\n // axios\r\n // .get(API_MYASK + \"/Customer_Type\")\r\n // .then(res => {\r\n // let type = contractForm.form.type.elementConfig.options;\r\n // for (let i in res.data.LIST_DATA) {\r\n // type.push({\r\n // value: res.data.LIST_DATA[i].ID_CODE,\r\n // displayValue: res.data.LIST_DATA[i].REMARK\r\n // });\r\n // }\r\n\r\n // updateType = updateObject(contractForm.form.type, {\r\n // elementConfig: updateObject(contractForm.form.type.elementConfig, {\r\n // options: type\r\n // })\r\n // });\r\n\r\n // updateForm = updateObject(contractForm.form, {\r\n // type: updateType,\r\n // });\r\n // updateState = updateObject(contractForm, {\r\n // form: updateForm,\r\n // });\r\n // setContractForm(updateState);\r\n // });\r\n\r\n // return;\r\n // }, []);\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n const onChangeTel = (val) => {\r\n const pattern = /^\\d+$/;\r\n const isValid = pattern.test(val);\r\n if (isValid || val === \"\") {\r\n return val;\r\n } else {\r\n return val.substring(val.length - 1, 0);\r\n }\r\n };\r\n const inputChangedHandler = (event, field) => {\r\n if (field === \"tel\" || field === \"cardno\") {\r\n event = onChangeTel(event);\r\n }\r\n\r\n const validate = checkValidity(event, contractForm.form[field].validation);\r\n const text = checkError(\r\n validate.code,\r\n contractForm.form[field].labelError,\r\n contractForm.form[field].validation\r\n );\r\n\r\n let updatedFormElement;\r\n if (field === \"email\") {\r\n //formIsValid : true\r\n if (event === \"\") {\r\n updatedFormElement = updateObject(contractForm.form[field], {\r\n value: event,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: false,\r\n isEmail: false,\r\n });\r\n } else {\r\n updatedFormElement = updateObject(contractForm.form[field], {\r\n value: event,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n isEmail: true,\r\n });\r\n }\r\n } else {\r\n updatedFormElement = updateObject(contractForm.form[field], {\r\n value: event,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n }\r\n\r\n let updatedForm = updateObject(contractForm.form, {\r\n [field]: updatedFormElement,\r\n });\r\n\r\n let formIsValid = true;\r\n for (let inputIdentifier in updatedForm) {\r\n formIsValid = updatedForm[inputIdentifier].valid && formIsValid;\r\n }\r\n\r\n const updatedState = updateObject(contractForm, {\r\n form: updatedForm,\r\n formIsValid: formIsValid,\r\n });\r\n\r\n setContractForm(updatedState);\r\n };\r\n const checkedValidate = () => {\r\n if (\r\n contractForm.form[\"type\"].valid === true &&\r\n contractForm.form[\"email\"].valid === true &&\r\n contractForm.form[\"name\"].valid === true &&\r\n contractForm.form[\"lastname\"].valid === true &&\r\n contractForm.form[\"tel\"].valid === true\r\n ) {\r\n contractForm.formIsValid = true;\r\n }\r\n if (!contractForm.formIsValid) {\r\n let updatedForm;\r\n let arrayObj = [];\r\n let updatedFormElement;\r\n let text;\r\n for (let field in contractForm.form) {\r\n const validate = checkValidity(\r\n contractForm.form[field].value,\r\n contractForm.form[field].validation\r\n );\r\n text = checkError(\r\n validate.code,\r\n contractForm.form[field].labelError,\r\n contractForm.form[field].validation\r\n );\r\n updatedFormElement = updateObject(contractForm.form[field], {\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n arrayObj.push(updatedFormElement);\r\n }\r\n const arrayContact = [];\r\n for (let i in arrayObj) {\r\n if (arrayObj[i].order === \"0\") {\r\n arrayContact[0] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"1\") {\r\n arrayContact[1] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"2\") {\r\n arrayContact[2] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"3\") {\r\n arrayContact[3] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"4\") {\r\n arrayContact[4] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"5\") {\r\n arrayContact[5] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"6\") {\r\n arrayContact[6] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"7\") {\r\n arrayContact[7] = arrayObj[i];\r\n }\r\n }\r\n updatedForm = updateObject(contractForm.form, {\r\n type: arrayContact[0],\r\n name: arrayContact[1],\r\n lastname: arrayContact[2],\r\n tel: arrayContact[3],\r\n cardno: arrayContact[4],\r\n email: arrayContact[5],\r\n number: arrayContact[6],\r\n message: arrayContact[7],\r\n });\r\n let updatedState = updateObject(contractForm, {\r\n form: updatedForm,\r\n });\r\n setContractForm(updatedState);\r\n } else {\r\n sendData();\r\n }\r\n };\r\n\r\n const sendData = () => {\r\n setLoading(true);\r\n let apply;\r\n if (props.lineId !== null) {\r\n apply = \"LINE\";\r\n } else if (\r\n sessionStorage.getItem(\"src\") ===\r\n \"mOZl4zuJDIV9CbjgwaaeyabZZrPGhyyC9ZVKhrSzFA0oZ6mTJPJeaRyc6F\"\r\n ) {\r\n apply = \"MYCAR\";\r\n } else {\r\n apply = \"WEB\";\r\n }\r\n const data = {\r\n CUSTOMER_TYPE: contractForm.form.type.value,\r\n FIRST_NAME: contractForm.form.name.value,\r\n LAST_NAME: contractForm.form.lastname.value,\r\n MOBILE_NO: contractForm.form.tel.value,\r\n EMAIL: contractForm.form.email.value,\r\n CONTRACT_NO: contractForm.form.number.value,\r\n INFORMATION: \"#covid19 \" + contractForm.form.message.value,\r\n LINE_ID: props.lineId,\r\n APPLY: apply,\r\n CARD_NO: contractForm.form.cardno.value,\r\n };\r\n axios\r\n .post(API_MYASK + \"/ContactCovid19\", data, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {})\r\n .catch((err) => {\r\n setReren(\r\n \r\n );\r\n });\r\n\r\n props.history.push({\r\n pathname: \"/success\",\r\n title: \"เราได้รับข้อมูลของท่านแล้ว\",\r\n path: \"/\",\r\n text: \"จะติดต่อกลับหาท่านโดยเร็วที่สุด\",\r\n // text2: 'ท่านสามารถติดตามผลได้ทาง...'\r\n });\r\n };\r\n\r\n const submitHandler = (event) => {\r\n event.preventDefault();\r\n window.scrollTo(0, 0);\r\n checkedValidate();\r\n };\r\n\r\n const formElementsArray = [];\r\n for (let key in contractForm.form) {\r\n formElementsArray[contractForm.form[key].order] = {\r\n id: key,\r\n config: contractForm.form[key],\r\n };\r\n }\r\n\r\n return (\r\n \r\n {reren}\r\n (\r\n
\r\n {/* */}\r\n \r\n inputChangedHandler(event.target.value, formElement.id)\r\n }\r\n labelPos={\"left\"}\r\n label={formElement.config.label}\r\n />\r\n
\r\n ))}\r\n submitHandler={submitHandler}\r\n >\r\n
\r\n );\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n lineId: state.line.userId,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(ContractCovid19Controls);\r\n","import React from \"react\";\r\nimport ReactPaginate from \"react-paginate\";\r\nimport \"./Paginate.css\";\r\n\r\nconst Paginate = props => {\r\n return (\r\n
\r\n \"}\r\n breakLabel={\"...\"}\r\n breakClassName={\"break-me\"}\r\n pageCount={props.pageCount}\r\n marginPagesDisplayed={1}\r\n pageRangeDisplayed={3}\r\n containerClassName={\"pagination\"}\r\n subContainerClassName={\"pages pagination\"}\r\n activeClassName={\"active\"}\r\n onPageChange={props.onPageChange}\r\n forcePage={props.forcePage}\r\n />\r\n
\r\n );\r\n};\r\n\r\nexport default Paginate;\r\n","import React, { useEffect, useState } from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Input from '../../UI/Input/Input';\r\nimport '../../Apply/Apply.css'\r\nimport PathTree from '../../../components/UI/PathTree/PathTree';\r\nimport Button from './../../UI/Button/Button';\r\nimport Loading from './../../UI/Loading/Loading';\r\nimport Paginate from './../../UI/Paginate/Paginate';\r\nimport { POINT_CONVERSION_COMPRESSED } from 'constants';\r\nimport Header from './../../UI/Header/Header.js';\r\nimport mli from './../../../assets/main/main-loaninfo.jpeg';\r\n\r\nfunction ManageAgreementInfo(props) {\r\n\r\n\r\n const [check, setCheck] = useState(0)\r\n useEffect(() => {\r\n setCheck(props.check);\r\n }, [props.check]);\r\n\r\n const handleChange = (event) => {\r\n props.onSelected(event.target.value);\r\n };\r\n\r\n const topic = {\r\n marginTop: '2rem',\r\n }\r\n const path = {\r\n Path: [\r\n {\r\n title: \"ข้อมูลสินเชื่อของฉัน\",\r\n pathLink: \"/manageagreement\"\r\n },\r\n ]\r\n };\r\n\r\n const [Info, setInfo] = React.useState(false);\r\n const [Status, setStatus] = React.useState(false);\r\n const [StatusCovid19, setStatusCovid19] = React.useState(false);\r\n\r\n const handleTab = (event) => {\r\n props.onSelected2(event);\r\n };\r\n\r\n const handleInfo = () => {\r\n handleTab(\"1\");\r\n setInfo(true);\r\n setStatus(false);\r\n setStatusCovid19(false);\r\n setCheck(1);\r\n }\r\n\r\n const handleStatus = () => {\r\n handleTab(\"2\");\r\n setInfo(false);\r\n setStatus(true);\r\n setStatusCovid19(false);\r\n }\r\n\r\n const handleStatusCovid19 = () => {\r\n handleTab(\"3\");\r\n setInfo(false);\r\n setStatus(false);\r\n setStatusCovid19(true);\r\n }\r\n\r\n let classes1;\r\n let classes2;\r\n let classes3;\r\n if (Info === true) {\r\n classes1 = \"menuclick\";\r\n classes2 = \"menunormal\";\r\n classes3 = \"menunormal\";\r\n }\r\n else if (Status === true || check === 2) {\r\n classes2 = \"menuclick\";\r\n classes1 = \"menunormal\";\r\n classes3 = \"menunormal\";\r\n }\r\n else if (StatusCovid19 === true || check === 3) {\r\n classes3 = \"menuclick\";\r\n classes1 = \"menunormal\";\r\n classes2 = \"menunormal\";\r\n }\r\n else {\r\n classes1 = \"menuclick\";\r\n classes2 = \"menunormal\";\r\n classes3 = \"menunormal\";\r\n }\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n {props.loading\r\n ? \r\n
\r\n
\r\n : \r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n สัญญาทั้งหมด: {props.count}\r\n \r\n {props.count\r\n ? \r\n
\r\n \r\n
\r\n
\r\n :

ไม่พบข้อมูล

\r\n }\r\n {props.children}\r\n {props.count\r\n ? \r\n
\r\n \r\n
\r\n
\r\n : \r\n }\r\n
}\r\n
\r\n
\r\n \r\n );\r\n}\r\n\r\nexport default ManageAgreementInfo;\r\n","import React, { useState } from 'react';\r\nimport { Grid } from '@material-ui/core';\r\n\r\nconst ProgressBar = (props) => {\r\n\r\n const containerStyles = {\r\n backgroundColor: \"#e0e0de\",\r\n borderRadius: 50,\r\n width: '60%',\r\n }\r\n\r\n const fillerStyles = {\r\n height: '100%',\r\n width: `${props.completed}%`,\r\n backgroundColor: props.bgcolor,\r\n borderRadius: 'inherit',\r\n textAlign: 'right',\r\n }\r\n\r\n const labelStyles = {\r\n padding: 5,\r\n color: 'white',\r\n fontWeight: 'bold',\r\n }\r\n\r\n return (\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{props.n_term} / {props.terms}

\r\n
\r\n );\r\n};\r\n\r\nexport default ProgressBar;","import React, { useState } from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Button from '../UI/Button/Button';\r\nimport Paper from '../UI/Paper/Paper';\r\nimport Link from '@material-ui/core/Link';\r\nimport ProgressBar from '../UI/ProgressBar/ProgressBar';\r\nimport '../Apply/Apply.css';\r\n\r\nconst info = (props) => {\r\n\r\n // console.log(props)\r\n // #075796 สินเชื่อรถยนต์\r\n // #F003C8 สินเชื่อส่วนบุคคล\r\n const numberWithCommas = (x) => {\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n\r\n let color = \"\";\r\n\r\n if (props.type === \"สินเชื่อส่วนบุคคล\") {\r\n color = \"#F003C8\";\r\n }\r\n else {\r\n color = \"#075796\";\r\n }\r\n return (\r\n \r\n
\r\n \r\n \r\n

{props.type}

\r\n
\r\n \r\n \r\n \r\n

เลขที่สัญญา

\r\n
\r\n \r\n

{props.number}

\r\n
\r\n {props.carcountry || props.carnumber || props.carbrand\r\n ? \r\n

{props.carbrand} {props.carnumber} {props.carcountry}

\r\n
\r\n : \r\n


\r\n
\r\n }\r\n \r\n
\r\n รายละเอียดสัญญา\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n ปิดบัญชี\r\n
\r\n
\r\n \r\n \r\n \r\n

สถานะค่างวด

\r\n
\r\n \r\n

{props.date}

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n

ยอดทั้งหมด

\r\n
\r\n \r\n

{numberWithCommas(parseFloat(Math.round(props.ar * 100) / 100).toFixed(2))} บาท

\r\n
\r\n \r\n

ชำระแล้ว

\r\n
\r\n \r\n

{numberWithCommas(parseFloat(Math.round((props.ar - props.balance) * 100) / 100).toFixed(2))} บาท

\r\n
\r\n \r\n

คงเหลือ

\r\n
\r\n \r\n

{numberWithCommas(parseFloat(Math.round(props.balance * 100) / 100).toFixed(2))} บาท

\r\n
\r\n \r\n
\r\n \r\n \r\n

วันครบกำหนดชำระ

\r\n
\r\n \r\n

{props.date}

\r\n
\r\n \r\n

ยอดที่ต้องชำระ

\r\n
\r\n \r\n

{numberWithCommas(parseFloat(Math.round(props.pricepermonth * 100) / 100).toFixed(2))} บาท

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default info;\r\n","import React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles, withStyles, createMuiTheme } from '@material-ui/core/styles';\r\nimport clsx from 'clsx';\r\nimport Stepper from '@material-ui/core/Stepper';\r\nimport Step from '@material-ui/core/Step';\r\nimport StepLabel from '@material-ui/core/StepLabel';\r\nimport Check from '@material-ui/icons/Check';\r\nimport AdjustIcon from '@material-ui/icons/Adjust';\r\nimport StepConnector from '@material-ui/core/StepConnector';\r\nimport { MuiThemeProvider } from '@material-ui/core';\r\nimport Loading from './../Loading/Loading';\r\n\r\nconst Steppers = props => {\r\n const useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%',\r\n },\r\n }));\r\n\r\n const theme = createMuiTheme({\r\n typography: {\r\n fontFamily: \"inherit\"\r\n },\r\n overrides: {\r\n // Style sheet name ⚛️\r\n MuiStepLabel: {\r\n // Name of the rule\r\n active: {\r\n // Some CSS\r\n fontWeight: 'bold !important'\r\n },\r\n },\r\n MuiTypography: {\r\n body2: {\r\n fontSize: '1.4rem',\r\n fontFamily: 'inherit'\r\n }\r\n },\r\n MuiStepConnector: {\r\n vertical: {\r\n padding: '0'\r\n }\r\n },\r\n MuiStepper: {\r\n root: {\r\n padding: '0'\r\n }\r\n }\r\n },\r\n });\r\n\r\n function getSteps() {\r\n if (props.status === \"apply\") {\r\n return ['ได้รับคำขอสินเชื่อจากท่านเรียบร้อยแล้ว',\r\n 'อยู่ระหว่างดำเนินการพิจารณาสินเชื่อ',\r\n 'แจ้งผลการอนุมัติ'];\r\n }\r\n else if (props.status === \"approve\") {\r\n return ['ได้รับคำขอสินเชื่อจากท่านเรียบร้อยแล้ว',\r\n 'อยู่ระหว่างดำเนินการพิจารณาสินเชื่อ',\r\n 'แจ้งผลการอนุมัติ'];\r\n }\r\n else if (props.status === \"disburse\") {\r\n return ['ได้รับคำขอสินเชื่อจากท่านเรียบร้อยแล้ว',\r\n 'อยู่ระหว่างดำเนินการพิจารณาสินเชื่อ',\r\n 'แจ้งผลการอนุมัติ'];\r\n }\r\n else if (props.status === \"done\") {\r\n return ['ได้รับคำขอสินเชื่อจากท่านเรียบร้อยแล้ว',\r\n 'อยู่ระหว่างดำเนินการพิจารณาสินเชื่อ',\r\n 'แจ้งผลการอนุมัติ'];\r\n }\r\n else {\r\n return ['',\r\n '',\r\n ''];\r\n }\r\n }\r\n\r\n const classes = useStyles();\r\n const [activeStep, setActiveStep] = React.useState(0);\r\n const steps = getSteps();\r\n\r\n useEffect(() => {\r\n let mount = true;\r\n if (mount) {\r\n if (props.status === \"apply\") {\r\n setActiveStep(0);\r\n }\r\n else if (props.status === \"approve\") {\r\n setActiveStep(1);\r\n }\r\n else if (props.status === \"disburse\") {\r\n setActiveStep(2);\r\n }\r\n else if (props.status === \"done\") {\r\n setActiveStep(3);\r\n }\r\n }\r\n\r\n return (() => {\r\n mount = false;\r\n })\r\n \r\n }, [props.status]);\r\n\r\n const [loading, setLoading] = useState(true)\r\n useEffect(() => {\r\n let mount = true;\r\n if (mount) {\r\n // setInterval(() => {\r\n setLoading(false);\r\n // }, 200);\r\n }\r\n \r\n return (() => {\r\n mount = false;\r\n })\r\n }, [activeStep])\r\n\r\n\r\n if (loading) {\r\n return \r\n }\r\n\r\n const QontoConnector = withStyles({\r\n alternativeLabel: {\r\n // top: 10,\r\n // alignItems: 'flex'\r\n },\r\n active: {\r\n '& $line': {\r\n borderColor: '#33CC00',\r\n },\r\n },\r\n completed: {\r\n '& $line': {\r\n borderColor: '#33CC00',\r\n },\r\n },\r\n line: {\r\n borderColor: '#D5D8DC',\r\n borderTopWidth: 3,\r\n borderRadius: 1,\r\n margin: '0px 2px',\r\n },\r\n })(StepConnector);\r\n\r\n const useQontoStepIconStyles = makeStyles({\r\n root: {\r\n display: 'flex',\r\n width: '3rem',\r\n height: '3rem',\r\n zIndex: 1,\r\n padding: '.5rem',\r\n backgroundColor: '#ccc',\r\n borderRadius: '50%',\r\n color: '#fff',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n },\r\n active: {\r\n backgroundColor: '#33CC00',\r\n },\r\n icon: {\r\n fontSize: '2rem',\r\n },\r\n completed: {\r\n backgroundColor: '#33CC00',\r\n },\r\n });\r\n\r\n function QontoStepIcon(props) {\r\n const classes = useQontoStepIconStyles();\r\n const { active, completed } = props;\r\n\r\n const icons = {\r\n 1: ,\r\n 2: ,\r\n };\r\n\r\n return (\r\n \r\n {completed ? icons[1]\r\n : active ? icons[2] : null}\r\n\r\n\r\n \r\n );\r\n }\r\n\r\n QontoStepIcon.propTypes = {\r\n active: PropTypes.bool,\r\n completed: PropTypes.bool,\r\n icon: PropTypes.node,\r\n };\r\n let stepper = ''\r\n if (props.status === 'cancel') {\r\n stepper =\r\n

คำขอสินเชื่อของท่านได้รับการปฏิเสธ

\r\n }\r\n else {\r\n stepper =\r\n \r\n } orientation=\"vertical\" >\r\n {steps.map(label => (\r\n \r\n {label}\r\n \r\n ))}\r\n \r\n \r\n }\r\n return (\r\n
\r\n {stepper}\r\n
\r\n );\r\n\r\n}\r\n\r\nexport default Steppers;\r\n\r\n\r\n\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '../UI/Paper/Paper';\r\nimport './Step.css'\r\nimport Stepper from '../UI/Steppers/Stepper';\r\n\r\nconst step = (props) => {\r\n const numberWithCommas = (x) => {\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n return (\r\n \r\n
\r\n \r\n\r\n \r\n

{props.ref_code}

\r\n
\r\n \r\n

{props.regnum}

\r\n
\r\n \r\n
\r\n \r\n \r\n {/*
\"\"
*/}\r\n \r\n
\r\n \r\n

{props.fin_type}

\r\n
\r\n \r\n

ยอดสินเชื่อ: {numberWithCommas(parseFloat(Math.round(props.amount * 100) / 100).toFixed(2))} บาท

\r\n
\r\n \r\n

จำนวนงวดทั้งหมด: {props.terms} งวด

\r\n
\r\n {props.cartype ?\r\n \r\n

{props.cartype}

\r\n
:

}\r\n {props.carbrand ?\r\n \r\n

{props.carbrand} - {props.description}

\r\n
:

}\r\n }\r\n\r\n />\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default step;","import React, { useEffect, useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles, withStyles, createMuiTheme } from '@material-ui/core/styles';\r\nimport clsx from 'clsx';\r\nimport Stepper from '@material-ui/core/Stepper';\r\nimport Step from '@material-ui/core/Step';\r\nimport StepLabel from '@material-ui/core/StepLabel';\r\nimport Check from '@material-ui/icons/Check';\r\nimport AdjustIcon from '@material-ui/icons/Adjust';\r\nimport StepConnector from '@material-ui/core/StepConnector';\r\nimport { MuiThemeProvider } from '@material-ui/core';\r\nimport Loading from './../Loading/Loading';\r\n\r\nconst SteppersCovid19 = props => {\r\n const useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%',\r\n },\r\n }));\r\n\r\n const theme = createMuiTheme({\r\n typography: {\r\n fontFamily: \"inherit\"\r\n },\r\n overrides: {\r\n // Style sheet name ⚛️\r\n MuiStepLabel: {\r\n // Name of the rule\r\n active: {\r\n // Some CSS\r\n fontWeight: 'bold !important'\r\n },\r\n },\r\n MuiTypography: {\r\n body2: {\r\n fontSize: '1.4rem',\r\n fontFamily: 'inherit'\r\n }\r\n },\r\n MuiStepConnector: {\r\n vertical: {\r\n padding: '0'\r\n }\r\n },\r\n MuiStepper: {\r\n root: {\r\n padding: '0'\r\n }\r\n }\r\n },\r\n });\r\n\r\n function getSteps() {\r\n if (props.apply_date !== \"\" && props.approve_date === \"\") {\r\n return [props.apply_msg + ' เมื่อวันที่ ' + props.apply_date,\r\n 'อยู่ระหว่างดำเนินการพิจารณา'];\r\n }\r\n else if (props.approve_date !== \"\") {\r\n return [props.apply_msg + ' เมื่อวันที่ ' + props.apply_date,\r\n props.approve_msg + ' เมื่อวันที่ ' + props.approve_date];\r\n }\r\n else {\r\n return ['',\r\n ''];\r\n }\r\n }\r\n\r\n const classes = useStyles();\r\n const [activeStep, setActiveStep] = React.useState(0);\r\n const steps = getSteps();\r\n\r\n useEffect(() => {\r\n let mount = true;\r\n if (mount) {\r\n if (props.apply_date !== \"\" && props.approve_date === \"\") {\r\n setActiveStep(0);\r\n }\r\n else if (props.approve_date !== \"\") {\r\n setActiveStep(1);\r\n }\r\n }\r\n\r\n return (() => {\r\n mount = false;\r\n })\r\n\r\n }, [props.apply_date]);\r\n\r\n const [loading, setLoading] = useState(true)\r\n useEffect(() => {\r\n let mount = true;\r\n if (mount) {\r\n // setInterval(() => {\r\n setLoading(false);\r\n // }, 200);\r\n }\r\n\r\n return (() => {\r\n mount = false;\r\n })\r\n }, [activeStep])\r\n\r\n\r\n if (loading) {\r\n return \r\n }\r\n\r\n const QontoConnector = withStyles({\r\n alternativeLabel: {\r\n // top: 10,\r\n // alignItems: 'flex'\r\n },\r\n active: {\r\n '& $line': {\r\n borderColor: '#33CC00',\r\n },\r\n },\r\n completed: {\r\n '& $line': {\r\n borderColor: '#33CC00',\r\n },\r\n },\r\n line: {\r\n borderColor: '#D5D8DC',\r\n borderTopWidth: 3,\r\n borderRadius: 1,\r\n margin: '0px 2px',\r\n },\r\n })(StepConnector);\r\n\r\n const useQontoStepIconStyles = makeStyles({\r\n root: {\r\n display: 'flex',\r\n width: '3rem',\r\n height: '3rem',\r\n zIndex: 1,\r\n padding: '.5rem',\r\n backgroundColor: '#ccc',\r\n borderRadius: '50%',\r\n color: '#fff',\r\n justifyContent: 'center',\r\n alignItems: 'center'\r\n },\r\n active: {\r\n backgroundColor: '#33CC00',\r\n },\r\n icon: {\r\n fontSize: '2rem',\r\n },\r\n completed: {\r\n backgroundColor: '#33CC00',\r\n },\r\n });\r\n\r\n function QontoStepIcon(props) {\r\n const classes = useQontoStepIconStyles();\r\n const { active, completed } = props;\r\n\r\n const icons = {\r\n 1: ,\r\n 2: ,\r\n };\r\n\r\n return (\r\n \r\n {completed ? icons[1]\r\n : active ? icons[1] : null}\r\n\r\n\r\n \r\n );\r\n }\r\n\r\n QontoStepIcon.propTypes = {\r\n active: PropTypes.bool,\r\n completed: PropTypes.bool,\r\n icon: PropTypes.node,\r\n };\r\n let stepper = ''\r\n stepper =\r\n \r\n } orientation=\"vertical\" >\r\n {steps.map(label => (\r\n \r\n {label}\r\n \r\n ))}\r\n \r\n \r\n return (\r\n
\r\n {stepper}\r\n
\r\n );\r\n\r\n}\r\n\r\nexport default SteppersCovid19;\r\n\r\n\r\n\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '../UI/Paper/Paper';\r\nimport './StepCovid19.css'\r\nimport SteppersCovid19 from '../UI/SteppersCovid19/StepperCovid19';\r\n\r\nconst stepCovid19 = (props) => {\r\n const numberWithCommas = (x) => {\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n return (\r\n \r\n
\r\n \r\n \r\n

{props.text}

\r\n
\r\n \r\n

เลขที่สัญญา

\r\n
\r\n \r\n

{props.number}

\r\n
\r\n \r\n
\r\n \r\n \r\n {/*
\"\"
*/}\r\n \r\n
\r\n \r\n

ข้อมูลทรัพย์สิน

\r\n
\r\n {props.cartype\r\n ? \r\n

{props.cartype}

\r\n
\r\n : null}\r\n {props.carbrand || props.description\r\n ? \r\n

{props.carbrand} - {props.description}

\r\n
\r\n : null}\r\n {props.carnumber || props.carcountry\r\n ? \r\n

{props.carnumber} {props.carcountry}

\r\n
\r\n : null}\r\n {!props.cartype && !props.carbrand && !props.description && !props.carnumber && !props.carcountry\r\n ?

-

\r\n
\r\n : null}\r\n \r\n }\r\n />\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default stepCovid19;","import React, { useState, useEffect } from \"react\";\r\nimport ManageAgreementInfo from \"../../components/ManageAgreement/ManageAgreementInfo/ManageAgreementInfo\";\r\nimport Info from \"../../components/ManageAgreement/info\";\r\nimport Step from \"./../../components/Tracking/Step\";\r\nimport StepCovid19 from \"./../../components/TrackingCovid19/StepCovid19\";\r\nimport { searchData } from \"./../../shared/utility\";\r\nimport axios from \"axios\";\r\nimport { API_MYASK } from \"./../../shared/constant\";\r\n// import apply from './../../assets/tracking/Apply.png';\r\n// import approve from './../../assets/tracking/Approve.png';\r\n// import disburse from './../../assets/tracking/Disburse.png';\r\n// import done from './../../assets/tracking/Done.png';\r\n// import cancel from './../../assets/tracking/Cancel.png';\r\nimport { connect } from \"react-redux\";\r\nimport { Redirect } from \"react-router-dom\";\r\n// import LazyLoad from 'react-lazyload';\r\nimport Loading from \"./../../components/UI/Loading/Loading\";\r\n\r\nimport * as actions from \"./../../store/action/index\";\r\nimport stepCovid19 from \"../../components/TrackingCovid19/StepCovid19\";\r\n\r\nconst ManageAgreementControls = (props) => {\r\n const [user_name] = useState(\r\n sessionStorage.getItem(\"userName\") || props.userName\r\n );\r\n const [token] = useState(sessionStorage.getItem(\"token\") || props.token);\r\n const [isDefault] = useState(props.location.isDefault);\r\n const [loading, setLoading] = React.useState(true);\r\n const [loadingFinance, setLoadingFinance] = React.useState(true);\r\n const [loadingStatus, setLoadingStatus] = React.useState(true);\r\n\r\n const onSelectNumber = (\r\n fin_type,\r\n agr_code,\r\n body,\r\n brand,\r\n reg_num,\r\n reg_province,\r\n asset_description,\r\n install,\r\n os_balance,\r\n n_due_i,\r\n flat_rate,\r\n disbursement_date,\r\n ar,\r\n terms,\r\n scan_code,\r\n mobile_no,\r\n email,\r\n add1,\r\n add2,\r\n post\r\n ) => {\r\n props.history.push({\r\n pathname: \"/manageagreement-detail\",\r\n fin_type: fin_type,\r\n agr_code: agr_code,\r\n body: body,\r\n brand: brand,\r\n reg_num: reg_num,\r\n reg_province: reg_province,\r\n asset_description: asset_description,\r\n install: install,\r\n os_balance: os_balance,\r\n n_due_i: n_due_i,\r\n flat_rate: flat_rate,\r\n disbursement_date: disbursement_date,\r\n ar: ar,\r\n terms: terms,\r\n scan_code: scan_code,\r\n mobile_no: mobile_no,\r\n email: email,\r\n add1: add1,\r\n add2: add2,\r\n post: post,\r\n });\r\n };\r\n\r\n const onSelectCloseAcc = (\r\n fin_type,\r\n agr_code,\r\n body,\r\n brand,\r\n reg_num,\r\n reg_province,\r\n asset_description,\r\n install,\r\n os_balance,\r\n n_due_i,\r\n flat_rate,\r\n disbursement_date,\r\n ar,\r\n terms,\r\n scan_code,\r\n mobile_no,\r\n email,\r\n add1,\r\n add2,\r\n post\r\n ) => {\r\n props.history.push({\r\n pathname: \"/manageagreement-closeacc\",\r\n fin_type: fin_type,\r\n agr_code: agr_code,\r\n body: body,\r\n brand: brand,\r\n reg_num: reg_num,\r\n reg_province: reg_province,\r\n asset_description: asset_description,\r\n install: install,\r\n os_balance: os_balance,\r\n n_due_i: n_due_i,\r\n flat_rate: flat_rate,\r\n disbursement_date: disbursement_date,\r\n ar: ar,\r\n terms: terms,\r\n scan_code: scan_code,\r\n mobile_no: mobile_no,\r\n add1: add1,\r\n add2: add2,\r\n post: post,\r\n });\r\n };\r\n\r\n const onSelectQRCode = (\r\n fin_type,\r\n agr_code,\r\n body,\r\n brand,\r\n reg_num,\r\n reg_province,\r\n asset_description,\r\n install,\r\n os_balance,\r\n n_due_i,\r\n flat_rate,\r\n disbursement_date,\r\n ar,\r\n terms,\r\n scan_code,\r\n mobile_no,\r\n email\r\n ) => {\r\n props.history.push({\r\n pathname: \"/manageagreement-paymentlist\",\r\n fin_type: fin_type,\r\n agr_code: agr_code,\r\n body: body,\r\n brand: brand,\r\n reg_num: reg_num,\r\n reg_province: reg_province,\r\n asset_description: asset_description,\r\n install: install,\r\n os_balance: os_balance,\r\n n_due_i: n_due_i,\r\n flat_rate: flat_rate,\r\n disbursement_date: disbursement_date,\r\n ar: ar,\r\n terms: terms,\r\n scan_code: scan_code,\r\n mobile_no: mobile_no,\r\n email: email,\r\n manyagr: \"\",\r\n type: \"agr\",\r\n });\r\n sessionStorage.setItem(\"manyagr\", \"\");\r\n sessionStorage.setItem(\"type\", \"agr\");\r\n };\r\n\r\n const [manageAgrForm, setManageAgrForm] = useState([]);\r\n\r\n const [manageAgrForm2, setManageAgrForm2] = useState([]);\r\n const [manageAgrForm3, setManageAgrForm3] = useState([]);\r\n const [redi, setRedi] = useState(false);\r\n\r\n let sum = 0;\r\n const [count, setCount] = useState(0);\r\n const [count2, setCount2] = useState(0);\r\n const [count3, setCount3] = useState(0);\r\n\r\n useEffect(() => {\r\n let mount = true;\r\n axios\r\n .get(\r\n API_MYASK +\r\n \"/ManageAgreement?\" +\r\n \"user_name=\" +\r\n user_name +\r\n \"&token=\" +\r\n token\r\n )\r\n .then((res) => {\r\n if (res.data.CODE === \"200\") {\r\n let form = [];\r\n let form3 = [];\r\n console.log(res.data.LIST_DATA);\r\n for (let i in res.data.LIST_DATA) {\r\n form.push({\r\n fin_type: res.data.LIST_DATA[i].FIN_TYPE,\r\n agr_code: res.data.LIST_DATA[i].AGR_CODE,\r\n cus_code: res.data.LIST_DATA[i].CUS_CODE,\r\n new_card_no: res.data.LIST_DATA[i].NEW_CARD_NO,\r\n body: res.data.LIST_DATA[i].BODY,\r\n brand: res.data.LIST_DATA[i].BRAND,\r\n reg_num: res.data.LIST_DATA[i].REG_NUM,\r\n reg_province: res.data.LIST_DATA[i].REG_PROVINCE,\r\n asset_description: res.data.LIST_DATA[i].ASSET_DESCRIPTION,\r\n install: res.data.LIST_DATA[i].INSTALL,\r\n os_balance: res.data.LIST_DATA[i].OS_BALANCE,\r\n n_due_i: res.data.LIST_DATA[i].N_DUE_I,\r\n flat_rate: res.data.LIST_DATA[i].FLAT_RATE,\r\n disbursement_date: res.data.LIST_DATA[i].DISBURSEMENT_DATE,\r\n ar: res.data.LIST_DATA[i].AR,\r\n terms: res.data.LIST_DATA[i].TERMS,\r\n n_term: res.data.LIST_DATA[i].N_TERM,\r\n scan_code: res.data.LIST_DATA[i].SCAN_CODE,\r\n covid_apply_date: res.data.LIST_DATA[i].COVID_APPLY_DATE,\r\n covid_apply_msg: res.data.LIST_DATA[i].COVID_APPLY_MSG,\r\n covid_approve_date: res.data.LIST_DATA[i].COVID_APPROVE_DATE,\r\n covid_approve_msg: res.data.LIST_DATA[i].COVID_APPROVE_MSG,\r\n mobile_no: res.data.LIST_DATA[i].MOBILE_NO,\r\n email: res.data.LIST_DATA[i].EMAIL,\r\n add1: res.data.LIST_DATA[i].ADD1,\r\n add2: res.data.LIST_DATA[i].ADD2,\r\n post: res.data.LIST_DATA[i].POST,\r\n });\r\n if (res.data.LIST_DATA[i].COVID_APPLY_DATE !== \"\") {\r\n form3.push({\r\n fin_type: res.data.LIST_DATA[i].FIN_TYPE,\r\n agr_code: res.data.LIST_DATA[i].AGR_CODE,\r\n cus_code: res.data.LIST_DATA[i].CUS_CODE,\r\n new_card_no: res.data.LIST_DATA[i].NEW_CARD_NO,\r\n body: res.data.LIST_DATA[i].BODY,\r\n brand: res.data.LIST_DATA[i].BRAND,\r\n reg_num: res.data.LIST_DATA[i].REG_NUM,\r\n reg_province: res.data.LIST_DATA[i].REG_PROVINCE,\r\n asset_description: res.data.LIST_DATA[i].ASSET_DESCRIPTION,\r\n install: res.data.LIST_DATA[i].INSTALL,\r\n os_balance: res.data.LIST_DATA[i].OS_BALANCE,\r\n n_due_i: res.data.LIST_DATA[i].N_DUE_I,\r\n flat_rate: res.data.LIST_DATA[i].FLAT_RATE,\r\n disbursement_date: res.data.LIST_DATA[i].DISBURSEMENT_DATE,\r\n ar: res.data.LIST_DATA[i].AR,\r\n terms: res.data.LIST_DATA[i].TERMS,\r\n n_term: res.data.LIST_DATA[i].N_TERM,\r\n scan_code: res.data.LIST_DATA[i].SCAN_CODE,\r\n covid_apply_date: res.data.LIST_DATA[i].COVID_APPLY_DATE,\r\n covid_apply_msg: res.data.LIST_DATA[i].COVID_APPLY_MSG,\r\n covid_approve_date: res.data.LIST_DATA[i].COVID_APPROVE_DATE,\r\n covid_approve_msg: res.data.LIST_DATA[i].COVID_APPROVE_MSG,\r\n mobile_no: res.data.LIST_DATA[i].MOBILE_NO,\r\n email: res.data.LIST_DATA[i].EMAIL,\r\n add1: res.data.LIST_DATA[i].ADD1,\r\n add2: res.data.LIST_DATA[i].ADD2,\r\n post: res.data.LIST_DATA[i].POST,\r\n });\r\n }\r\n }\r\n if (mount) {\r\n sessionStorage.removeItem(\"fin_type\");\r\n sessionStorage.removeItem(\"agr_code\");\r\n sessionStorage.removeItem(\"body\");\r\n sessionStorage.removeItem(\"brand\");\r\n sessionStorage.removeItem(\"reg_num\");\r\n sessionStorage.removeItem(\"reg_province\");\r\n sessionStorage.removeItem(\"asset_description\");\r\n sessionStorage.removeItem(\"install\");\r\n sessionStorage.removeItem(\"os_balance\");\r\n sessionStorage.removeItem(\"n_due_i\");\r\n sessionStorage.removeItem(\"flat_rate\");\r\n sessionStorage.removeItem(\"disbursement_date\");\r\n sessionStorage.removeItem(\"ar\");\r\n sessionStorage.removeItem(\"terms\");\r\n sessionStorage.removeItem(\"scan_code\");\r\n sessionStorage.removeItem(\"mobile_no\");\r\n sessionStorage.removeItem(\"email\");\r\n sessionStorage.removeItem(\"add1\");\r\n sessionStorage.removeItem(\"add2\");\r\n sessionStorage.removeItem(\"post\");\r\n setCount(form.length);\r\n setCount3(form3.length);\r\n sum = count;\r\n setManageAgrForm(form);\r\n setManageAgrForm3(form3);\r\n setLoadingFinance(false);\r\n }\r\n } else {\r\n if (mount) {\r\n sessionStorage.removeItem(\"userName\");\r\n sessionStorage.removeItem(\"token\");\r\n props.onLogout();\r\n setRedi(true);\r\n }\r\n }\r\n });\r\n\r\n axios\r\n .get(\r\n API_MYASK +\r\n \"/Current_Task?\" +\r\n \"user_name=\" +\r\n user_name +\r\n \"&token=\" +\r\n token\r\n )\r\n .then((res) => {\r\n let form2 = [];\r\n let step;\r\n let status;\r\n let date;\r\n for (let i in res.data.LIST_DATA) {\r\n if (res.data.LIST_DATA[i].RESULT_TASK === \"APPLY\") {\r\n step = \"apply\";\r\n status = \"รอการตรวจสอบ\";\r\n date = \"\";\r\n } else if (res.data.LIST_DATA[i].RESULT_TASK === \"APPROVE\") {\r\n step = \"approve\";\r\n status = \"รอการอนุมัติ\";\r\n date = \"\";\r\n } else if (res.data.LIST_DATA[i].RESULT_TASK === \"DISBURSE\") {\r\n step = \"disburse\";\r\n status = \"รอจ่ายเงิน\";\r\n date = res.data.LIST_DATA[i].DISBURSE_DATE;\r\n } else if (res.data.LIST_DATA[i].RESULT_TASK === \"DONE\") {\r\n step = \"done\";\r\n status = \"โอนแล้วเมื่อวันที่\";\r\n date = res.data.LIST_DATA[i].DISBURSE_DATE;\r\n } else if (res.data.LIST_DATA[i].RESULT_TASK === \"CANCEL\") {\r\n step = \"cancel\";\r\n status = \"Cancel\";\r\n date = \"\";\r\n }\r\n form2.push({\r\n ref_code: res.data.LIST_DATA[i].REF_CODE,\r\n fin_type: res.data.LIST_DATA[i].FIN_TYPE,\r\n result_task: status,\r\n disburse_date: date,\r\n step: step,\r\n brand_name: res.data.LIST_DATA[i].BRANDNAME,\r\n bdy: res.data.LIST_DATA[i].BDY,\r\n model_name: res.data.LIST_DATA[i].MODEL_NAME,\r\n reg_num: res.data.LIST_DATA[i].REG_NUM,\r\n fin_amt: res.data.LIST_DATA[i].FIN_AMT,\r\n terms: res.data.LIST_DATA[i].TERMS,\r\n });\r\n }\r\n if (mount) {\r\n setCount2(form2.length);\r\n setManageAgrForm2(form2);\r\n setLoadingStatus(false);\r\n }\r\n });\r\n\r\n return () => {\r\n mount = false;\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n let mount = true;\r\n if (loadingFinance === false && loadingStatus === false) {\r\n if (mount) {\r\n setLoading(false);\r\n }\r\n }\r\n\r\n return () => {\r\n mount = false;\r\n };\r\n }, [loadingFinance, loadingStatus]);\r\n\r\n const [check, setCheck] = useState(0);\r\n useEffect(() => {\r\n if (isDefault === true) {\r\n setTab2(true);\r\n setTab1(false);\r\n setTab3(false);\r\n setCheck(2);\r\n }\r\n }, [isDefault]);\r\n\r\n let redirectpage;\r\n if (redi === true) {\r\n redirectpage = ;\r\n }\r\n\r\n const [filter, setFilter] = useState(\"\");\r\n\r\n const handleFilter = (value) => {\r\n setCurrPageAgreement(1);\r\n setCurrPageStep(1);\r\n setFilter(value);\r\n };\r\n\r\n const formElementsArray = searchData(filter, manageAgrForm);\r\n const formElementsArray2 = searchData(filter, manageAgrForm2);\r\n const formElementsArray3 = searchData(filter, manageAgrForm3);\r\n\r\n const [tab1, setTab1] = React.useState(false);\r\n const [tab2, setTab2] = React.useState(false);\r\n const [tab3, setTab3] = React.useState(false);\r\n let click = \"\";\r\n\r\n const handleChange = (event) => {\r\n click = event;\r\n if (click === \"1\") {\r\n setTab1(true);\r\n setTab2(false);\r\n setTab3(false);\r\n } else if (click === \"2\") {\r\n setTab2(true);\r\n setTab1(false);\r\n setTab3(false);\r\n } else if (click === \"3\") {\r\n setTab3(true);\r\n setTab1(false);\r\n setTab2(false);\r\n }\r\n };\r\n\r\n const [agrPerPage] = useState(4);\r\n const [currPageAgreement, setCurrPageAgreement] = useState(1);\r\n const [currPageStep, setCurrPageStep] = useState(1);\r\n const [currPageStepCovid19, setCurrPageStepCovid19] = useState(1);\r\n\r\n const handlePageClick = (data) => {\r\n if (tab2 === true) {\r\n setCurrPageStep(data.selected + 1);\r\n } else if (tab3 === true) {\r\n setCurrPageStepCovid19(data.selected + 1);\r\n } else {\r\n setCurrPageAgreement(data.selected + 1);\r\n }\r\n };\r\n\r\n let show;\r\n let currentPage;\r\n if (tab2 === true) {\r\n sum = formElementsArray2.length;\r\n\r\n currentPage = currPageStep;\r\n const agrcodePerPage = agrPerPage;\r\n const indexOfLastAgr = currentPage * agrcodePerPage;\r\n const indexOfFirstAgr = indexOfLastAgr - agrcodePerPage;\r\n const currentAgr = formElementsArray2.slice(\r\n indexOfFirstAgr,\r\n indexOfLastAgr\r\n );\r\n\r\n show = currentAgr.map((formElement) => (\r\n \r\n ));\r\n } else if (tab3 === true) {\r\n sum = formElementsArray3.length;\r\n\r\n currentPage = currPageStepCovid19;\r\n const agrcodePerPage = agrPerPage;\r\n const indexOfLastAgr = currentPage * agrcodePerPage;\r\n const indexOfFirstAgr = indexOfLastAgr - agrcodePerPage;\r\n const currentAgr = formElementsArray3.slice(\r\n indexOfFirstAgr,\r\n indexOfLastAgr\r\n );\r\n\r\n show = currentAgr.map((formElement) => (\r\n \r\n ));\r\n } else {\r\n sum = formElementsArray.length;\r\n\r\n currentPage = currPageAgreement;\r\n const agrcodePerPage = agrPerPage;\r\n const indexOfLastAgr = currentPage * agrcodePerPage;\r\n const indexOfFirstAgr = indexOfLastAgr - agrcodePerPage;\r\n const currentAgr = formElementsArray.slice(indexOfFirstAgr, indexOfLastAgr);\r\n const colorInfo = \"\";\r\n\r\n show = currentAgr.map((formElement) => (\r\n \r\n onSelectNumber(\r\n formElement.fin_type,\r\n formElement.agr_code,\r\n formElement.body,\r\n formElement.brand,\r\n formElement.reg_num,\r\n formElement.reg_province,\r\n formElement.asset_description,\r\n formElement.install,\r\n formElement.os_balance,\r\n formElement.n_due_i,\r\n formElement.flat_rate,\r\n formElement.disbursement_date,\r\n formElement.ar,\r\n formElement.terms,\r\n formElement.scan_code,\r\n formElement.mobile_no,\r\n formElement.email,\r\n formElement.add1,\r\n formElement.add2,\r\n formElement.post\r\n )\r\n }\r\n onSelectCloseAcc={() =>\r\n onSelectCloseAcc(\r\n formElement.fin_type,\r\n formElement.agr_code,\r\n formElement.body,\r\n formElement.brand,\r\n formElement.reg_num,\r\n formElement.reg_province,\r\n formElement.asset_description,\r\n formElement.install,\r\n formElement.os_balance,\r\n formElement.n_due_i,\r\n formElement.flat_rate,\r\n formElement.disbursement_date,\r\n formElement.ar,\r\n formElement.terms,\r\n formElement.scan_code,\r\n formElement.mobile_no,\r\n formElement.email,\r\n formElement.add1,\r\n formElement.add2,\r\n formElement.post\r\n )\r\n }\r\n // เปิดปุ่ม จ่ายค่างวด เอา comment code ด้านล่างนี้ออก\r\n onSelectQRCode={() =>\r\n onSelectQRCode(\r\n formElement.fin_type,\r\n formElement.agr_code,\r\n formElement.body,\r\n formElement.brand,\r\n formElement.reg_num,\r\n formElement.reg_province,\r\n formElement.asset_description,\r\n formElement.install,\r\n formElement.os_balance,\r\n formElement.n_due_i,\r\n formElement.flat_rate,\r\n formElement.disbursement_date,\r\n formElement.ar,\r\n formElement.terms,\r\n formElement.scan_code,\r\n formElement.mobile_no,\r\n formElement.email\r\n )\r\n }\r\n />\r\n ));\r\n }\r\n\r\n return (\r\n
\r\n {redirectpage}\r\n handleFilter(e)}\r\n onSelected2={handleChange}\r\n onPageChange={handlePageClick}\r\n pageCount={Math.ceil(sum / agrPerPage)}\r\n forcePage={currentPage - 1}\r\n >\r\n {/* */}\r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n token: state.auth.token,\r\n userName: state.auth.userName,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onLogout: () => dispatch(actions.logout()),\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ManageAgreementControls);\r\n","import React from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Paper from \"../UI/Paper/Paper\";\r\nimport Button from \"./../../components/UI/Button/Button\";\r\nimport mli from \"./../../assets/main/main-loaninfo.jpeg\";\r\nimport mtk from \"./../../assets/main/main-tracking.jpeg\";\r\nimport mii from \"./../../assets/main/main-insuranceinfo.jpeg\";\r\nimport mp from \"./../../assets/main/main-payment.jpeg\";\r\nimport \"../Apply/Apply.css\";\r\nimport { faMarsStrokeV } from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nconst main = (props) => {\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n

จัดการสินเชื่อ

\r\n
\r\n \r\n

\r\n ดูรายละเอียดสัญญาแต่ละประเภทของท่าน\r\n และชำระค่างวดได้อย่างยืดหยุ่น\r\n

\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n }\r\n />\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n

ติดตามคำร้องขอ

\r\n
\r\n \r\n

ตรวจสอบสถานะคำร้องขอสินเชื่อของท่าน

\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n }\r\n />\r\n
\r\n
\r\n {/* \r\n
\r\n \r\n \r\n \r\n \r\n \r\n

ข้อมูลประกัน

\r\n
\r\n \r\n

\r\n ตรวจสอบข้อมูลประกัน ท่านสามารถต่อประกัน และจ่ายค่าประกันได้\r\n

\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n }\r\n />\r\n
\r\n
*/}\r\n {/* \r\n
\r\n \r\n \r\n \r\n \r\n \r\n

ชำระค่างวด

\r\n
\r\n \r\n

\r\n ท่านสามารถจัดการและเลือกจ่ายค่างวดทีละหลายสัญญาในครั้งเดียวได้\r\n

\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n }\r\n />\r\n
\r\n
*/}\r\n
\r\n );\r\n};\r\n\r\nexport default main;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport Main from \"../../components/ManageAgreement/main\";\r\nimport { searchData } from \"./../../shared/utility\";\r\nimport axios from \"axios\";\r\nimport { API_MYASK } from \"./../../shared/constant\";\r\nimport { connect } from \"react-redux\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport Loading from \"./../../components/UI/Loading/Loading\";\r\nimport mh from \"./../../assets/main/main-header.jpeg\";\r\nimport * as actions from \"./../../store/action/index\";\r\nimport Header from \"../../components/UI/Header/Header.js\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\n\r\nconst ManageAgreementMainControls = (props) => {\r\n const [user_name] = useState(\r\n sessionStorage.getItem(\"userName\") || props.userName\r\n );\r\n const [token] = useState(sessionStorage.getItem(\"token\") || props.token);\r\n\r\n const [all_agr, setAll_agr] = useState(\"\");\r\n const [manyagr, setManyagr] = useState(\"\");\r\n\r\n const onSelectAgreement = () => {\r\n props.history.push({\r\n pathname: \"/agreements\",\r\n });\r\n };\r\n\r\n const onSelectTracking = () => {\r\n props.history.push({\r\n pathname: \"/tracking-request\",\r\n });\r\n };\r\n\r\n const onSelectInsurance = () => {\r\n // props.history.push({\r\n // pathname: '/manageagreement-insurance',\r\n // agrtmp: all_agr,\r\n // })\r\n // sessionStorage.setItem('agrtmp', all_agr)\r\n };\r\n\r\n const onSelectPayment = () => {\r\n // props.history.push({\r\n // pathname: '/manageagreement-paymentlist',\r\n // manyagr: manyagr,\r\n // type: 'agr',\r\n // })\r\n // sessionStorage.setItem('manyagr', manyagr)\r\n // sessionStorage.setItem('type', 'agr')\r\n };\r\n\r\n // useEffect(() => {\r\n // let agrtmp = \"\";\r\n // let manyagr = \"\";\r\n // let mount = true;\r\n // axios\r\n // .get(\r\n // API_MYASK +\r\n // \"/ManageAgreement?\" +\r\n // \"user_name=\" +\r\n // user_name +\r\n // \"&token=\" +\r\n // token\r\n // )\r\n // .then((res) => {\r\n // console.log(res);\r\n // if (res.data.CODE === \"200\") {\r\n // let form = [];\r\n // for (let i in res.data.LIST_DATA) {\r\n // if (agrtmp != \"\") {\r\n // agrtmp = agrtmp + \",\";\r\n // manyagr = \"Y\";\r\n // }\r\n // agrtmp = agrtmp + \"'\" + res.data.LIST_DATA[i].AGR_CODE + \"'\";\r\n // form.push({\r\n // fin_type: res.data.LIST_DATA[i].FIN_TYPE,\r\n // agr_code: res.data.LIST_DATA[i].AGR_CODE,\r\n // cus_code: res.data.LIST_DATA[i].CUS_CODE,\r\n // new_card_no: res.data.LIST_DATA[i].NEW_CARD_NO,\r\n // body: res.data.LIST_DATA[i].BODY,\r\n // brand: res.data.LIST_DATA[i].BRAND,\r\n // reg_num: res.data.LIST_DATA[i].REG_NUM,\r\n // reg_province: res.data.LIST_DATA[i].REG_PROVINCE,\r\n // asset_description: res.data.LIST_DATA[i].ASSET_DESCRIPTION,\r\n // install: res.data.LIST_DATA[i].INSTALL,\r\n // os_balance: res.data.LIST_DATA[i].OS_BALANCE,\r\n // n_due_i: res.data.LIST_DATA[i].N_DUE_I,\r\n // flat_rate: res.data.LIST_DATA[i].FLAT_RATE,\r\n // disbursement_date: res.data.LIST_DATA[i].DISBURSEMENT_DATE,\r\n // ar: res.data.LIST_DATA[i].AR,\r\n // terms: res.data.LIST_DATA[i].TERMS,\r\n // n_term: res.data.LIST_DATA[i].N_TERM,\r\n // scan_code: res.data.LIST_DATA[i].SCAN_CODE,\r\n // covid_apply_date: res.data.LIST_DATA[i].COVID_APPLY_DATE,\r\n // covid_apply_msg: res.data.LIST_DATA[i].COVID_APPLY_MSG,\r\n // covid_approve_date: res.data.LIST_DATA[i].COVID_APPROVE_DATE,\r\n // covid_approve_msg: res.data.LIST_DATA[i].COVID_APPROVE_MSG,\r\n // mobile_no: res.data.LIST_DATA[i].MOBILE_NO,\r\n // email: res.data.LIST_DATA[i].EMAIL,\r\n // add1: res.data.LIST_DATA[i].ADD1,\r\n // add2: res.data.LIST_DATA[i].ADD2,\r\n // post: res.data.LIST_DATA[i].POST,\r\n // });\r\n // }\r\n // if (mount) {\r\n // setAll_agr(agrtmp);\r\n // setManyagr(manyagr);\r\n // }\r\n // }\r\n // });\r\n\r\n // return () => {\r\n // mount = false;\r\n // };\r\n // }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n onSelectAgreement()}\r\n onSelectTracking={() => onSelectTracking()}\r\n // onSelectInsurance={() => onSelectInsurance()}\r\n // onSelectPayment={() => onSelectPayment()}\r\n />\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n token: state.auth.token,\r\n userName: state.auth.userName,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onLogout: () => dispatch(actions.logout()),\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ManageAgreementMainControls);\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport '../../Apply/Apply.css';\r\nimport Header from './../../UI/Header/Header.js';\r\nimport mp from './../../../assets/main/main-payment.jpeg';\r\nimport Button from '../../UI/Button/Button';\r\nimport Paper from '../../UI/Paper/Paper';\r\n\r\n\r\nconst ManageAgreementPaymentList = (props) => {\r\n const topic = {\r\n marginTop: '2rem',\r\n }\r\n const numberWithCommas = (x) => {\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n

ยอดชำระรวม

\r\n
\r\n \r\n

{numberWithCommas(parseFloat(Math.round(props.amount * 100) / 100).toFixed(2))} บาท

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n } />\r\n\r\n \r\n \r\n \r\n
\r\n {props.children}\r\n\r\n
\r\n );\r\n}\r\n\r\nexport default ManageAgreementPaymentList;\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '../UI/Paper/Paper';\r\nimport Link from '@material-ui/core/Link';\r\nimport Button from './../UI/Button/Button';\r\nimport Input from './../UI/Input/Input';\r\nimport Modal from './../UI/Modal/Modal';\r\nimport '../Apply/Apply.css';\r\n\r\nconst paymentlist = (props) => {\r\n\r\n const text = 'ค่าเบี้ย' + props.ins_type;\r\n\r\n const amount = {\r\n paddingTop: '2.35rem',\r\n color: 'red',\r\n marginTop: '-3rem',\r\n }\r\n\r\n const total = parseFloat(props.amount) + parseFloat(props.ins1) + parseFloat(props.ins2) + parseFloat(props.ins3);\r\n\r\n const numberWithCommas = (x) => {\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n\r\n const onChangeHandler = (val, id) => {\r\n return;\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n {props.type == \"agr\"\r\n ? \r\n \r\n \r\n \r\n

เลขที่สัญญา {props.number}

\r\n
\r\n {props.carcountry || props.carnumber || props.carbrand\r\n ? \r\n

{props.carbrand} {props.carnumber} {props.carcountry}

\r\n
\r\n : \r\n


\r\n
\r\n }\r\n \r\n \r\n \r\n \r\n

{numberWithCommas(parseFloat(Math.round(props.amount * 100) / 100).toFixed(2))} บาท

\r\n
\r\n {/* \r\n \r\n \r\n \r\n

{numberWithCommas(parseFloat(Math.round(2000 * 100) / 100).toFixed(2))} บาท

\r\n
*/}\r\n {props.ins1 > 0\r\n ? \r\n \r\n \r\n :
\r\n }\r\n {props.ins1 > 0\r\n ? \r\n

{numberWithCommas(parseFloat(Math.round(props.ins1 * 100) / 100).toFixed(2))} บาท

\r\n
\r\n :
\r\n }\r\n {props.ins2 > 0\r\n ? \r\n \r\n \r\n :
\r\n }\r\n {props.ins2 > 0\r\n ? \r\n

{numberWithCommas(parseFloat(Math.round(props.ins2 * 100) / 100).toFixed(2))} บาท

\r\n
\r\n :
\r\n }\r\n {props.ins3 > 0\r\n ? \r\n \r\n \r\n :
\r\n }\r\n {props.ins3 > 0\r\n ? \r\n

{numberWithCommas(parseFloat(Math.round(props.ins3 * 100) / 100).toFixed(2))} บาท

\r\n
\r\n :
\r\n }\r\n \r\n

รวม

\r\n
\r\n \r\n

{numberWithCommas(parseFloat(Math.round(total * 100) / 100).toFixed(2))} บาท

\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n

เลขที่สัญญา {props.number}

\r\n
\r\n {props.carcountry || props.carnumber || props.carbrand\r\n ? \r\n

{props.carbrand} {props.carnumber} {props.carcountry}

\r\n
\r\n : \r\n


\r\n
\r\n }\r\n \r\n \r\n \r\n \r\n บาท onChangeHandler(event.target.value, \"amount\")}\r\n styleInput={{ width: '60%', float: 'right', marginTop: '-2rem', color: 'red', borderRadius: '0px', border: '0.5px solid #989898', fontFamily: \"'Prompt-Regular'\" }} />\r\n {/*

{numberWithCommas(parseFloat(Math.round(2000 * 100) / 100).toFixed(2))} บาท

*/}\r\n
\r\n {/* \r\n \r\n \r\n \r\n

{numberWithCommas(parseFloat(Math.round(2000 * 100) / 100).toFixed(2))} บาท

\r\n
*/}\r\n {props.ins1 > 0\r\n ? \r\n \r\n \r\n :
\r\n }\r\n {props.ins1 > 0\r\n ? \r\n

{numberWithCommas(parseFloat(Math.round(props.ins1 * 100) / 100).toFixed(2))} บาท

\r\n
\r\n :
\r\n }\r\n {props.ins2 > 0\r\n ? \r\n \r\n \r\n :
\r\n }\r\n {props.ins2 > 0\r\n ? \r\n

{numberWithCommas(parseFloat(Math.round(props.ins2 * 100) / 100).toFixed(2))} บาท

\r\n
\r\n :
\r\n }\r\n {props.ins3 > 0\r\n ? \r\n \r\n \r\n :
\r\n }\r\n {props.ins3 > 0\r\n ? \r\n

{numberWithCommas(parseFloat(Math.round(props.ins3 * 100) / 100).toFixed(2))} บาท

\r\n
\r\n :
\r\n }\r\n \r\n

รวม

\r\n
\r\n \r\n

{numberWithCommas(parseFloat(Math.round(total * 100) / 100).toFixed(2))} บาท

\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n }>\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n }>\r\n \r\n \r\n \r\n \r\n } />\r\n : \r\n \r\n \r\n \r\n

หมายเลขกรมธรรม์ {props.pol_num}

\r\n
\r\n \r\n

{props.ins_type}

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n

{numberWithCommas(parseFloat(Math.round(props.total_prem * 100) / 100).toFixed(2))} บาท

\r\n
\r\n
\r\n
\r\n \r\n } />\r\n }\r\n \r\n \r\n \r\n
\r\n \r\n );\r\n}\r\n\r\nexport default paymentlist;\r\n","import React, { useEffect } from \"react\";\r\nimport ManageAgreementPaymentList from \"../../components/ManageAgreement/ManageAgreementPayment/ManageAgreementPaymentList\";\r\nimport PaymentList from \"../../components/ManageAgreement/paymentlist\";\r\nimport PathTree from \"../../components/UI/PathTree/PathTree\";\r\nimport { connect } from \"react-redux\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport axios from \"axios\";\r\nimport { API_MYASK } from \"./../../shared/constant\";\r\n\r\nimport * as actions from \"./../../store/action/index\";\r\n\r\nconst ManageAgreementControlsPaymentList = (props) => {\r\n let click = \"\";\r\n const [agrtmp] = React.useState(\r\n props.location.agrtmp || sessionStorage.getItem(\"agrtmp\") || \"\"\r\n );\r\n const [fin_type] = React.useState(\r\n props.location.fin_type || sessionStorage.getItem(\"fin_type\") || \"\"\r\n );\r\n const [agr_code] = React.useState(\r\n props.location.agr_code || sessionStorage.getItem(\"agr_code\") || \"\"\r\n );\r\n const [body] = React.useState(\r\n props.location.body || sessionStorage.getItem(\"body\") || \"\"\r\n );\r\n const [brand] = React.useState(\r\n props.location.brand || sessionStorage.getItem(\"brand\") || \"\"\r\n );\r\n const [reg_num] = React.useState(\r\n props.location.reg_num || sessionStorage.getItem(\"reg_num\") || \"\"\r\n );\r\n const [reg_province] = React.useState(\r\n props.location.reg_province || sessionStorage.getItem(\"reg_province\") || \"\"\r\n );\r\n const [asset_description] = React.useState(\r\n props.location.asset_description ||\r\n sessionStorage.getItem(\"asset_description\") ||\r\n \"\"\r\n );\r\n const [install] = React.useState(\r\n props.location.install || sessionStorage.getItem(\"install\") || \"\"\r\n );\r\n const [os_balance] = React.useState(\r\n props.location.os_balance || sessionStorage.getItem(\"os_balance\") || \"\"\r\n );\r\n const [n_due_i] = React.useState(\r\n props.location.n_due_i || sessionStorage.getItem(\"n_due_i\") || \"\"\r\n );\r\n const [flat_rate] = React.useState(\r\n props.location.flat_rate || sessionStorage.getItem(\"flat_rate\") || \"\"\r\n );\r\n const [disbursement_date] = React.useState(\r\n props.location.disbursement_date ||\r\n sessionStorage.getItem(\"disbursement_date\") ||\r\n \"\"\r\n );\r\n const [ar] = React.useState(\r\n props.location.ar || sessionStorage.getItem(\"ar\") || \"\"\r\n );\r\n const [terms] = React.useState(\r\n props.location.terms || sessionStorage.getItem(\"terms\") || \"\"\r\n );\r\n const [scan_code] = React.useState(\r\n props.location.scan_code || sessionStorage.getItem(\"scan_code\") || \"\"\r\n );\r\n const [user_name] = React.useState(\r\n sessionStorage.getItem(\"userName\") || props.userName\r\n );\r\n const [token] = React.useState(\r\n sessionStorage.getItem(\"token\") || props.token\r\n );\r\n const [manyagr] = React.useState(\r\n props.location.manyagr || sessionStorage.getItem(\"manyagr\") || \"\"\r\n );\r\n const [type] = React.useState(\r\n props.location.type || sessionStorage.getItem(\"type\") || \"\"\r\n );\r\n\r\n const [paymentlist, setPaymentlist] = React.useState([]);\r\n\r\n const [totalamt, setTotalamt] = React.useState(0);\r\n\r\n let redirectpage;\r\n if (!sessionStorage.getItem(\"token\")) {\r\n redirectpage = ;\r\n sessionStorage.removeItem(\"userName\");\r\n sessionStorage.removeItem(\"token\");\r\n props.onLogout();\r\n }\r\n\r\n const onSelectPayment = () => {\r\n props.history.push({\r\n pathname: \"/manageagreement-payment\",\r\n install: install,\r\n });\r\n };\r\n\r\n window.scrollTo(0, 0);\r\n\r\n useEffect(() => {\r\n sessionStorage.setItem(\"agrtmp\", agrtmp);\r\n sessionStorage.setItem(\"fin_type\", fin_type);\r\n sessionStorage.setItem(\"agr_code\", agr_code);\r\n sessionStorage.setItem(\"body\", body);\r\n sessionStorage.setItem(\"brand\", brand);\r\n sessionStorage.setItem(\"reg_num\", reg_num);\r\n sessionStorage.setItem(\"reg_province\", reg_province);\r\n sessionStorage.setItem(\"asset_description\", asset_description);\r\n sessionStorage.setItem(\"install\", install);\r\n sessionStorage.setItem(\"os_balance\", os_balance);\r\n sessionStorage.setItem(\"n_due_i\", n_due_i);\r\n sessionStorage.setItem(\"flat_rate\", flat_rate);\r\n sessionStorage.setItem(\"disbursement_date\", disbursement_date);\r\n sessionStorage.setItem(\"ar\", ar);\r\n sessionStorage.setItem(\"terms\", terms);\r\n sessionStorage.setItem(\"scan_code\", scan_code);\r\n sessionStorage.setItem(\"type\", type);\r\n sessionStorage.setItem(\"manyagr\", manyagr);\r\n }, [agr_code]);\r\n\r\n useEffect(() => {\r\n let form = [];\r\n let total = 0;\r\n let mount = true;\r\n let ins1 = 0;\r\n let ins2 = 0;\r\n let ins3 = 0;\r\n if (manyagr == \"Y\") {\r\n axios\r\n .get(\r\n API_MYASK +\r\n \"/ManageAgreement?\" +\r\n \"user_name=\" +\r\n user_name +\r\n \"&token=\" +\r\n token\r\n )\r\n .then((res) => {\r\n console.log(res);\r\n if (res.data.CODE === \"200\") {\r\n for (let i in res.data.LIST_DATA) {\r\n total =\r\n parseFloat(total) + parseFloat(res.data.LIST_DATA[i].INSTALL);\r\n axios\r\n .get(\r\n API_MYASK +\r\n \"/Insurance?\" +\r\n \"agr_code=\" +\r\n \"'\" +\r\n res.data.LIST_DATA[i].AGR_CODE +\r\n \"'\"\r\n )\r\n .then((res2) => {\r\n ins1 = 0;\r\n ins2 = 0;\r\n ins3 = 0;\r\n for (let j in res2.data.LIST_DATA) {\r\n total =\r\n parseFloat(total) +\r\n parseFloat(res2.data.LIST_DATA[j].TOTAL_PREM);\r\n if (\r\n res2.data.LIST_DATA[j].INS_TYPE ==\r\n \"ประกันภัยรถยนต์-ภาคสมัครใจ\"\r\n ) {\r\n ins1 = res2.data.LIST_DATA[j].TOTAL_PREM;\r\n } else if (\r\n res2.data.LIST_DATA[j].INS_TYPE ==\r\n \"ประกันภัยรถยนต์-ภาคบังคับ\"\r\n ) {\r\n ins2 = res2.data.LIST_DATA[j].TOTAL_PREM;\r\n } else if (\r\n res2.data.LIST_DATA[j].INS_TYPE == \"ประกันชีวิต\"\r\n ) {\r\n ins3 = res2.data.LIST_DATA[j].TOTAL_PREM;\r\n }\r\n }\r\n form.push({\r\n agr_code: res.data.LIST_DATA[i].AGR_CODE,\r\n install: res.data.LIST_DATA[i].INSTALL,\r\n brand: res.data.LIST_DATA[i].BRAND,\r\n reg_num: res.data.LIST_DATA[i].REG_NUM,\r\n reg_province: res.data.LIST_DATA[i].REG_PROVINCE,\r\n ins1: ins1,\r\n ins2: ins2,\r\n ins3: ins3,\r\n type: \"agr\",\r\n });\r\n if (mount) {\r\n setPaymentlist(form);\r\n setTotalamt(total);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n } else {\r\n if (type === \"agr\") {\r\n total = parseFloat(install);\r\n axios\r\n .get(API_MYASK + \"/Insurance?\" + \"agr_code=\" + \"'\" + agr_code + \"'\")\r\n .then((res) => {\r\n let form = [];\r\n console.log(res);\r\n if (res.data.CODE === \"200\") {\r\n for (let i in res.data.LIST_DATA) {\r\n total =\r\n parseFloat(total) +\r\n parseFloat(res.data.LIST_DATA[i].TOTAL_PREM);\r\n if (\r\n res.data.LIST_DATA[i].INS_TYPE == \"ประกันภัยรถยนต์-ภาคสมัครใจ\"\r\n ) {\r\n ins1 = res.data.LIST_DATA[i].TOTAL_PREM;\r\n } else if (\r\n res.data.LIST_DATA[i].INS_TYPE == \"ประกันภัยรถยนต์-ภาคบังคับ\"\r\n ) {\r\n ins2 = res.data.LIST_DATA[i].TOTAL_PREM;\r\n } else if (res.data.LIST_DATA[i].INS_TYPE == \"ประกันชีวิต\") {\r\n ins3 = res.data.LIST_DATA[i].TOTAL_PREM;\r\n }\r\n }\r\n }\r\n form.push({\r\n agr_code: agr_code,\r\n install: install,\r\n ins1: ins1,\r\n ins2: ins2,\r\n ins3: ins3,\r\n type: \"agr\",\r\n });\r\n if (mount) {\r\n setPaymentlist(form);\r\n setTotalamt(total);\r\n console.log(form);\r\n }\r\n });\r\n } else if (type === \"ins\") {\r\n let agr;\r\n if (agrtmp != \"\") {\r\n agr = agrtmp;\r\n } else {\r\n if (agr_code != \"\") {\r\n agr = \"'\" + agr_code + \"'\";\r\n }\r\n }\r\n axios.get(API_MYASK + \"/Insurance?\" + \"agr_code=\" + agr).then((res) => {\r\n let form = [];\r\n console.log(res);\r\n if (res.data.CODE === \"200\") {\r\n for (let i in res.data.LIST_DATA) {\r\n total =\r\n parseFloat(total) +\r\n parseFloat(res.data.LIST_DATA[i].TOTAL_PREM);\r\n form.push({\r\n agr_code: res.data.LIST_DATA[i].AGR_CODE,\r\n ins_type: res.data.LIST_DATA[i].INS_TYPE,\r\n pol_num: res.data.LIST_DATA[i].POL_NUM,\r\n total_prem: res.data.LIST_DATA[i].TOTAL_PREM,\r\n type: \"ins\",\r\n });\r\n }\r\n }\r\n if (mount) {\r\n setPaymentlist(form);\r\n setTotalamt(total);\r\n\r\n console.log(form);\r\n }\r\n });\r\n }\r\n }\r\n\r\n return () => {\r\n mount = false;\r\n };\r\n }, []);\r\n\r\n const path = {\r\n Path: [\r\n {\r\n title: \"ข้อมูลของฉัน\",\r\n pathLink: \"/information\",\r\n },\r\n {\r\n title: \"รายการชำระเงิน\",\r\n pathLink: \"/manageagreement-paymentlist\",\r\n },\r\n ],\r\n };\r\n\r\n const [openEdit, setOpenEdit] = React.useState(false);\r\n\r\n const formElementsArray = [];\r\n for (let key in paymentlist) {\r\n formElementsArray.push({\r\n id: key,\r\n config: paymentlist[key],\r\n });\r\n }\r\n\r\n const handleOpenEdit = () => {\r\n setOpenEdit(true);\r\n };\r\n\r\n const handleCloseEdit = () => {\r\n setOpenEdit(false);\r\n };\r\n\r\n return (\r\n \r\n {redirectpage}\r\n
\r\n (\r\n handleOpenEdit()}\r\n close={() => handleCloseEdit()}\r\n />\r\n ))}\r\n onSelectPayment={() => onSelectPayment()}\r\n amount={totalamt}\r\n >\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n token: state.auth.token,\r\n userName: state.auth.userName,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onLogout: () => dispatch(actions.logout()),\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ManageAgreementControlsPaymentList);\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport '../../Apply/Apply.css';\r\n\r\n\r\nconst ManageAgreementPayment = (props) => {\r\n const topic = {\r\n marginTop: '2rem',\r\n }\r\n return (\r\n
\r\n \r\n

ชำระเงิน

\r\n
\r\n
\r\n {props.children}\r\n\r\n
\r\n );\r\n}\r\n\r\nexport default ManageAgreementPayment;\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '../UI/Paper/Paper';\r\nimport Link from '@material-ui/core/Link';\r\nimport Button from './../UI/Button/Button';\r\nimport Input from './../UI/Input/Input';\r\nimport Modal from './../UI/Modal/Modal';\r\nimport InfoOutlinedIcon from '@material-ui/icons/InfoOutlined';\r\nimport '../Apply/Apply.css';\r\nimport bbl from './../../assets/bbl.png'\r\nimport scb from './../../assets/scb.png'\r\nimport kbank from './../../assets/kbank.png'\r\nimport qrcode from './../../assets/qrcode.png'\r\nimport creditcard from './../../assets/creditcard.png'\r\n\r\nconst payment = (props) => {\r\n\r\n const amount = {\r\n color: 'red',\r\n }\r\n\r\n const numberWithCommas = (x) => {\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n\r\n const onChangeHandler = (val, id) => {\r\n return;\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n

ยอดชำระรวม

\r\n
\r\n \r\n

{numberWithCommas(parseFloat(Math.round(props.amount * 100) / 100).toFixed(2))} บาท

\r\n
\r\n \r\n \r\n \r\n
\r\n ดูรายละเอียด\r\n
\r\n
\r\n
\r\n } />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n

ชำระเงินผ่าน

\r\n
\r\n \r\n
\r\n \"บัตรเครดิต\"\r\n

บัตรเครดิต

\r\n
\r\n
\r\n \r\n
\r\n \"ธนาคารกรุงเทพ\"\r\n

ธนาคารกรุงเทพ

\r\n
\r\n
\r\n \r\n
\r\n \"ธนาคารไทยพานิชย์\"\r\n

ธนาคารไทยพานิชย์

\r\n
\r\n
\r\n \r\n
\r\n \"ธนาคารกสิกรไทย\"\r\n

ธนาคารกสิกรไทย

\r\n
\r\n
\r\n \r\n
\r\n \"QR\r\n

QR Code/Bar Code

\r\n
\r\n
\r\n
\r\n } />\r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n

รายละเอียด\r\n \r\n ปิด\r\n \r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n

เลขที่สัญญา {props.number}

\r\n
\r\n {props.carcountry || props.carnumber || props.carbrand\r\n ? \r\n

{props.carbrand} {props.carnumber} {props.carcountry}

\r\n
\r\n : \r\n


\r\n
\r\n }\r\n \r\n

ค่างวด

\r\n
\r\n \r\n

{numberWithCommas(parseFloat(Math.round(2000 * 100) / 100).toFixed(2))} บาท

\r\n
\r\n \r\n

ค่าเบี้ยปรับล่าช้าสะสม

\r\n
\r\n \r\n

{numberWithCommas(parseFloat(Math.round(2000 * 100) / 100).toFixed(2))} บาท

\r\n
\r\n \r\n

ค่าเบี้ยประกันรถยนต์ ภาคสมัครใจ

\r\n
\r\n \r\n

{numberWithCommas(parseFloat(Math.round(2000 * 100) / 100).toFixed(2))} บาท

\r\n
\r\n \r\n

ค่าเบี้ยประกันรถยนต์ ภาคบังคับ

\r\n
\r\n \r\n

{numberWithCommas(parseFloat(Math.round(2000 * 100) / 100).toFixed(2))} บาท

\r\n
\r\n \r\n

รวม

\r\n
\r\n \r\n

{numberWithCommas(parseFloat(Math.round(2000 * 100) / 100).toFixed(2))} บาท

\r\n
\r\n
\r\n }>\r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n }>\r\n \r\n \r\n );\r\n}\r\n\r\nexport default payment;\r\n","import React, { useEffect } from 'react';\r\nimport ManageAgreementPayment from '../../components/ManageAgreement/ManageAgreementPayment/ManageAgreementPayment';\r\nimport Payment from '../../components/ManageAgreement/payment';\r\nimport PathTree from '../../components/UI/PathTree/PathTree';\r\nimport { connect } from 'react-redux';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport Button from './../../components/UI/Button/Button';\r\nimport Input from './../../components/UI/Input/Input';\r\nimport Modal from './../../components/UI/Modal/Modal';\r\nimport Paper from './../../components/UI/Paper/Paper';\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport * as actions from \"./../../store/action/index\";\r\n\r\nconst ManageAgreementControlsPayment = (props) => {\r\n\r\n let click = \"\";\r\n const [fin_type] = React.useState(props.location.fin_type || sessionStorage.getItem('fin_type') || '');\r\n const [agr_code] = React.useState(props.location.agr_code || sessionStorage.getItem('agr_code') || '');\r\n const [body] = React.useState(props.location.body || sessionStorage.getItem('body') || '');\r\n const [brand] = React.useState(props.location.brand || sessionStorage.getItem('brand') || '');\r\n const [reg_num] = React.useState(props.location.reg_num || sessionStorage.getItem('reg_num') || '');\r\n const [reg_province] = React.useState(props.location.reg_province || sessionStorage.getItem('reg_province') || '');\r\n const [asset_description] = React.useState(props.location.asset_description || sessionStorage.getItem('asset_description') || '');\r\n const [install] = React.useState(props.location.install || sessionStorage.getItem('install') || '');\r\n const [os_balance] = React.useState(props.location.os_balance || sessionStorage.getItem('os_balance') || '');\r\n const [n_due_i] = React.useState(props.location.n_due_i || sessionStorage.getItem('n_due_i') || '');\r\n const [flat_rate] = React.useState(props.location.flat_rate || sessionStorage.getItem('flat_rate') || '');\r\n const [disbursement_date] = React.useState(props.location.disbursement_date || sessionStorage.getItem('disbursement_date') || '');\r\n const [ar] = React.useState(props.location.ar || sessionStorage.getItem('ar') || '');\r\n const [terms] = React.useState(props.location.terms || sessionStorage.getItem('terms') || '');\r\n const [scan_code] = React.useState(props.location.scan_code || sessionStorage.getItem('scan_code') || '');\r\n\r\n const amount = {\r\n paddingTop: '2.35rem',\r\n color: 'red',\r\n marginTop: '-3rem',\r\n }\r\n\r\n const numberWithCommas = (x) => {\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n let redirectpage;\r\n if (!sessionStorage.getItem('token')) {\r\n redirectpage = ;\r\n sessionStorage.removeItem('userName')\r\n sessionStorage.removeItem('token')\r\n props.onLogout();\r\n }\r\n\r\n window.scrollTo(0, 0);\r\n\r\n useEffect(() => {\r\n sessionStorage.setItem('fin_type', fin_type);\r\n sessionStorage.setItem('agr_code', agr_code);\r\n sessionStorage.setItem('body', body);\r\n sessionStorage.setItem('brand', brand);\r\n sessionStorage.setItem('reg_num', reg_num);\r\n sessionStorage.setItem('reg_province', reg_province);\r\n sessionStorage.setItem('asset_description', asset_description);\r\n sessionStorage.setItem('install', install);\r\n sessionStorage.setItem('os_balance', os_balance);\r\n sessionStorage.setItem('n_due_i', n_due_i);\r\n sessionStorage.setItem('flat_rate', flat_rate);\r\n sessionStorage.setItem('disbursement_date', disbursement_date);\r\n sessionStorage.setItem('ar', ar);\r\n sessionStorage.setItem('terms', terms);\r\n sessionStorage.setItem('scan_code', scan_code);\r\n }, [agr_code]);\r\n\r\n const path = {\r\n Path: [\r\n {\r\n title: \"ข้อมูลสินเชื่อของฉัน\",\r\n pathLink: \"/manageagreement\"\r\n },\r\n {\r\n title: \"รายการชำระเงิน\",\r\n pathLink: \"/manageagreement-paymentlist\"\r\n },\r\n {\r\n title: \"ชำระเงิน\",\r\n pathLink: \"/manageagreement-payment\"\r\n },\r\n ]\r\n };\r\n\r\n const [openDetail, setOpenDetail] = React.useState(false);\r\n\r\n const handleOpenDetail = () => {\r\n setOpenDetail(true);\r\n }\r\n\r\n const handleCloseDetail = () => {\r\n setOpenDetail(false);\r\n }\r\n\r\n\r\n const [tab1, setTab1] = React.useState(false);\r\n const [tab2, setTab2] = React.useState(false);\r\n\r\n const handleChange = (event) => {\r\n click = event;\r\n if (click === \"1\") {\r\n setTab1(true);\r\n setTab2(false);\r\n }\r\n else if (click === \"2\") {\r\n setTab2(true);\r\n setTab1(false);\r\n }\r\n };\r\n\r\n const onSelectQRCode = (agr_code, scan_code) => {\r\n props.history.push({\r\n pathname: '/manageagreement-qrcode',\r\n agr_code: agr_code,\r\n scan_code: scan_code,\r\n })\r\n }\r\n\r\n return (\r\n\r\n \r\n {redirectpage}\r\n
\r\n handleOpenDetail()}\r\n close={() => handleCloseDetail()}\r\n onSelectQRCode={() => onSelectQRCode()}\r\n />\r\n } onSelected={handleChange}>\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n token: state.auth.token,\r\n userName: state.auth.userName\r\n };\r\n};\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onLogout: () => dispatch(actions.logout())\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageAgreementControlsPayment);\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\n// import Payment from '../payment';\r\nimport '../../Apply/Apply.css';\r\nimport Button from '../../UI/Button/Button';\r\nimport Paper from '../../UI/Paper/Paper';\r\n// import PathTree from '../../../components/UI/PathTree/PathTree';\r\nimport Modal from './../../UI/Modal/Modal';\r\nimport QRcode from 'qrcode.react';\r\nimport Barcode from 'react-barcode';\r\nimport Barcodeicon from 'react-icons/lib/fa/barcode'\r\nimport Bank from '../bank';\r\n\r\n\r\nconst ManageAgreementQRCode = (props) => {\r\n const [QRCode, setQRCode] = React.useState(false);\r\n const [BarCode, setBarCode] = React.useState(false);\r\n\r\n const handleChange = (event) => {\r\n props.onSelected(event);\r\n };\r\n\r\n const handleQRCode = () => {\r\n handleChange(\"1\");\r\n setQRCode(true);\r\n setBarCode(false);\r\n }\r\n\r\n const handleBarCode = () => {\r\n handleChange(\"2\");\r\n setQRCode(false);\r\n setBarCode(true);\r\n }\r\n const [open, setOpen] = React.useState(false);\r\n\r\n const handleOpen = () => {\r\n setOpen(true);\r\n }\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n }\r\n\r\n let classes1;\r\n let classes2;\r\n let form;\r\n let show;\r\n let text = 'BBS' + props.scancode\r\n if (QRCode === true) {\r\n classes1 = \"menuclick\";\r\n classes2 = \"menunormal\";\r\n form =
\r\n show =\r\n \r\n } />\r\n }\r\n else if (BarCode === true) {\r\n classes2 = \"menuclick\";\r\n classes1 = \"menunormal\";\r\n form =
\r\n
\r\n show =\r\n \r\n
\r\n }\r\n else {\r\n classes1 = \"menuclick\";\r\n classes2 = \"menunormal\";\r\n form =
\r\n show =\r\n \r\n } />\r\n }\r\n const topic = {\r\n marginTop: '2rem',\r\n }\r\n return (\r\n
\r\n \r\n

QR Code / Bar Code

\r\n
\r\n
\r\n {props.children}\r\n\r\n
\r\n );\r\n}\r\n\r\nexport default ManageAgreementQRCode;\r\n","import React from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Modal from \"./../UI/Modal/Modal\";\r\nimport QRcode from \"qrcode.react\";\r\nimport Barcode from \"react-barcode\";\r\nimport Barcodeicon from \"react-icons/lib/fa/barcode\";\r\nimport \"../Apply/Apply.css\";\r\nimport qr from \"./../../assets/main/main-qrcode.jpeg\";\r\n\r\nconst qrcode = (props) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n

เลขอ้างอิงที่ 1

\r\n

xxxxxxxxxxxxxx

\r\n
\r\n

เลขอ้างอิงที่ 2

\r\n

xxxxxxxxxxxxxx

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default qrcode;\r\n","import React, { useEffect } from 'react';\r\nimport ManageAgreementQRCode from '../../components/ManageAgreement/ManageAgreementPayment/ManageAgreementQRCode';\r\nimport QRCode from '../../components/ManageAgreement/qrcode';\r\nimport PathTree from '../../components/UI/PathTree/PathTree';\r\nimport { connect } from 'react-redux';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport Button from './../../components/UI/Button/Button';\r\nimport Input from './../../components/UI/Input/Input';\r\nimport Modal from './../../components/UI/Modal/Modal';\r\nimport Paper from './../../components/UI/Paper/Paper';\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport * as actions from \"./../../store/action/index\";\r\n\r\nconst ManageAgreementControlsQRCode = (props) => {\r\n\r\n let click = \"\";\r\n const [fin_type] = React.useState(props.location.fin_type || sessionStorage.getItem('fin_type') || '');\r\n const [agr_code] = React.useState(props.location.agr_code || sessionStorage.getItem('agr_code') || '');\r\n const [body] = React.useState(props.location.body || sessionStorage.getItem('body') || '');\r\n const [brand] = React.useState(props.location.brand || sessionStorage.getItem('brand') || '');\r\n const [reg_num] = React.useState(props.location.reg_num || sessionStorage.getItem('reg_num') || '');\r\n const [reg_province] = React.useState(props.location.reg_province || sessionStorage.getItem('reg_province') || '');\r\n const [asset_description] = React.useState(props.location.asset_description || sessionStorage.getItem('asset_description') || '');\r\n const [install] = React.useState(props.location.install || sessionStorage.getItem('install') || '');\r\n const [os_balance] = React.useState(props.location.os_balance || sessionStorage.getItem('os_balance') || '');\r\n const [n_due_i] = React.useState(props.location.n_due_i || sessionStorage.getItem('n_due_i') || '');\r\n const [flat_rate] = React.useState(props.location.flat_rate || sessionStorage.getItem('flat_rate') || '');\r\n const [disbursement_date] = React.useState(props.location.disbursement_date || sessionStorage.getItem('disbursement_date') || '');\r\n const [ar] = React.useState(props.location.ar || sessionStorage.getItem('ar') || '');\r\n const [terms] = React.useState(props.location.terms || sessionStorage.getItem('terms') || '');\r\n const [scan_code] = React.useState(props.location.scan_code || sessionStorage.getItem('scan_code') || '');\r\n\r\n const amount = {\r\n paddingTop: '2.35rem',\r\n color: 'red',\r\n marginTop: '-3rem',\r\n }\r\n\r\n const numberWithCommas = (x) => {\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n let redirectpage;\r\n if (!sessionStorage.getItem('token')) {\r\n redirectpage = ;\r\n sessionStorage.removeItem('userName')\r\n sessionStorage.removeItem('token')\r\n props.onLogout();\r\n }\r\n\r\n window.scrollTo(0, 0);\r\n\r\n useEffect(() => {\r\n sessionStorage.setItem('fin_type', fin_type);\r\n sessionStorage.setItem('agr_code', agr_code);\r\n sessionStorage.setItem('body', body);\r\n sessionStorage.setItem('brand', brand);\r\n sessionStorage.setItem('reg_num', reg_num);\r\n sessionStorage.setItem('reg_province', reg_province);\r\n sessionStorage.setItem('asset_description', asset_description);\r\n sessionStorage.setItem('install', install);\r\n sessionStorage.setItem('os_balance', os_balance);\r\n sessionStorage.setItem('n_due_i', n_due_i);\r\n sessionStorage.setItem('flat_rate', flat_rate);\r\n sessionStorage.setItem('disbursement_date', disbursement_date);\r\n sessionStorage.setItem('ar', ar);\r\n sessionStorage.setItem('terms', terms);\r\n sessionStorage.setItem('scan_code', scan_code);\r\n }, [agr_code]);\r\n\r\n const path = {\r\n Path: [\r\n {\r\n title: \"ข้อมูลสินเชื่อของฉัน\",\r\n pathLink: \"/manageagreement\"\r\n },\r\n {\r\n title: \"รายการชำระเงิน\",\r\n pathLink: \"/manageagreement-paymentlist\"\r\n },\r\n {\r\n title: \"ชำระเงิน\",\r\n pathLink: \"/manageagreement-payment\"\r\n },\r\n {\r\n title: \"QRCode\",\r\n pathLink: \"/manageagreement-qrcode\"\r\n },\r\n ]\r\n };\r\n\r\n const [openDetail, setOpenDetail] = React.useState(false);\r\n\r\n const handleOpenDetail = () => {\r\n setOpenDetail(true);\r\n }\r\n\r\n const handleCloseDetail = () => {\r\n setOpenDetail(false);\r\n }\r\n\r\n\r\n const [tab1, setTab1] = React.useState(false);\r\n const [tab2, setTab2] = React.useState(false);\r\n\r\n const handleChange = (event) => {\r\n click = event;\r\n if (click === \"1\") {\r\n setTab1(true);\r\n setTab2(false);\r\n }\r\n else if (click === \"2\") {\r\n setTab2(true);\r\n setTab1(false);\r\n }\r\n };\r\n\r\n return (\r\n\r\n \r\n {redirectpage}\r\n
\r\n handleOpenDetail()}\r\n close={() => handleCloseDetail()}\r\n />\r\n } onSelected={handleChange}>\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n token: state.auth.token,\r\n userName: state.auth.userName\r\n };\r\n};\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onLogout: () => dispatch(actions.logout())\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageAgreementControlsQRCode);\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\n// import Description from '../description';\r\nimport '../../Apply/Apply.css'\r\n\r\nconst ManageAgreementDescription = (props) => {\r\n const topic = {\r\n marginTop: '2rem',\r\n }\r\n return (\r\n \r\n \r\n

รายละเอียดสัญญา

\r\n
\r\n \r\n
\r\n {props.children}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ManageAgreementDescription;\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Button from '../UI/Button/Button';\r\nimport Paper from '../UI/Paper/Paper';\r\nimport Input from '../UI/Input/Input';\r\nimport Link from '@material-ui/core/Link';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport SaveIcon from '@material-ui/icons/Save';\r\nimport '../Apply/Apply.css';\r\n\r\nconst description = (props) => {\r\n // console.log(props)\r\n const numberWithCommas = (x) => {\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n const add2 = props.add2 || props.post;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n

เลขที่สัญญา {props.number}

\r\n
\r\n \r\n
\r\n ข้อมูลประกัน\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n

ข้อมูลทรัพย์สิน

\r\n
\r\n {props.cartype\r\n ?\r\n \r\n

{props.cartype}

\r\n
\r\n : null}\r\n {props.carbrand || props.description\r\n ?\r\n \r\n

{props.carbrand} - {props.description}

\r\n
\r\n : null}\r\n {props.carnumber || props.carcountry\r\n ?\r\n \r\n

{props.carnumber} {props.carcountry}

\r\n
\r\n : null}\r\n {!props.cartype && !props.carbrand && !props.description && !props.carnumber && !props.carcountry\r\n ?

-

\r\n
\r\n : null}\r\n \r\n

ข้อมูลสัญญา

\r\n
\r\n \r\n

ประเภทสินเชื่อ

\r\n
\r\n \r\n

{props.type}

\r\n
\r\n \r\n

ดอกเบี้ย

\r\n
\r\n \r\n

{props.interest} %

\r\n
\r\n \r\n

วันที่ทำสัญญา

\r\n
\r\n \r\n

{props.firstdate}

\r\n
\r\n \r\n

ยอดสินเชื่อทั้งหมด/งวด

\r\n
\r\n \r\n

{numberWithCommas(parseFloat(Math.round(props.total * 100) / 100).toFixed(2))} บาท / {props.term} งวด

\r\n
\r\n \r\n

ข้อมูลสินเชื่อ

\r\n
\r\n \r\n

ค่างวดต่อเดือน

\r\n
\r\n \r\n

{numberWithCommas(parseFloat(Math.round(props.pricepermonth * 100) / 100).toFixed(2))} บาท

\r\n
\r\n \r\n

ยอดคงเหลือ

\r\n
\r\n \r\n

{numberWithCommas(parseFloat(Math.round(props.balance * 100) / 100).toFixed(2))} บาท

\r\n
\r\n \r\n

วันที่ครบกำหนด

\r\n
\r\n \r\n

{props.date}

\r\n
\r\n \r\n \r\n \r\n
\r\n ประวัติการชำระเงิน\r\n
\r\n
\r\n \r\n }\r\n />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {!props.edit ?\r\n \r\n \r\n \r\n

ที่อยู่ในการจัดส่งเอกสาร

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n

{props.add1}

\r\n
\r\n \r\n

{props.add2} {props.post}

\r\n
\r\n \r\n \r\n \r\n

Email: {props.email}

\r\n
\r\n \r\n

Tel: {props.mobile_no}

\r\n
\r\n \r\n }\r\n />\r\n \r\n : \r\n \r\n \r\n

แก้ไขที่อยู่ในการจัดส่งเอกสาร

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n props.changeadd1} />\r\n \r\n \r\n props.changeadd1} />\r\n {/*

{props.add2} {props.post}

*/}\r\n
\r\n \r\n props.changeadd1} />\r\n {/*

Email: {props.email}

*/}\r\n
\r\n \r\n props.changeadd1} />\r\n {/*

Tel: {props.mobile_no}

*/}\r\n
\r\n \r\n }\r\n />\r\n }\r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default description;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport ManageAgreementDescription from \"../../components/ManageAgreement/ManageAgreementDescription/ManageAgreementDescription\";\r\nimport Description from \"../../components/ManageAgreement/description\";\r\nimport PathTree from \"../../components/UI/PathTree/PathTree\";\r\nimport axios from \"axios\";\r\nimport { API_MYASK } from \"./../../shared/constant\";\r\nimport { connect } from \"react-redux\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nimport * as actions from \"./../../store/action/index\";\r\n\r\nconst ManageAgreementControlsDetail = (props) => {\r\n let data = \"\";\r\n let click = \"\";\r\n console.log(props.location);\r\n const [fin_type] = React.useState(\r\n props.location.fin_type || sessionStorage.getItem(\"fin_type\") || \"\"\r\n );\r\n const [agr_code] = React.useState(\r\n props.location.agr_code || sessionStorage.getItem(\"agr_code\") || \"\"\r\n );\r\n const [body] = React.useState(\r\n props.location.body || sessionStorage.getItem(\"body\") || \"\"\r\n );\r\n const [brand] = React.useState(\r\n props.location.brand || sessionStorage.getItem(\"brand\") || \"\"\r\n );\r\n const [reg_num] = React.useState(\r\n props.location.reg_num || sessionStorage.getItem(\"reg_num\") || \"\"\r\n );\r\n const [reg_province] = React.useState(\r\n props.location.reg_province || sessionStorage.getItem(\"reg_province\") || \"\"\r\n );\r\n const [asset_description] = React.useState(\r\n props.location.asset_description ||\r\n sessionStorage.getItem(\"asset_description\") ||\r\n \"\"\r\n );\r\n const [install] = React.useState(\r\n props.location.install || sessionStorage.getItem(\"install\") || \"\"\r\n );\r\n const [os_balance] = React.useState(\r\n props.location.os_balance || sessionStorage.getItem(\"os_balance\") || \"\"\r\n );\r\n const [n_due_i] = React.useState(\r\n props.location.n_due_i || sessionStorage.getItem(\"n_due_i\") || \"\"\r\n );\r\n const [flat_rate] = React.useState(\r\n props.location.flat_rate || sessionStorage.getItem(\"flat_rate\") || \"\"\r\n );\r\n const [disbursement_date] = React.useState(\r\n props.location.disbursement_date ||\r\n sessionStorage.getItem(\"disbursement_date\") ||\r\n \"\"\r\n );\r\n const [ar] = React.useState(\r\n props.location.ar || sessionStorage.getItem(\"ar\") || \"\"\r\n );\r\n const [terms] = React.useState(\r\n props.location.terms || sessionStorage.getItem(\"terms\") || \"\"\r\n );\r\n const [scan_code] = React.useState(\r\n props.location.scan_code || sessionStorage.getItem(\"scan_code\") || \"\"\r\n );\r\n const [mobile_no] = React.useState(\r\n props.location.mobile_no || sessionStorage.getItem(\"mobile_no\") || \"\"\r\n );\r\n const [email] = React.useState(\r\n props.location.email || sessionStorage.getItem(\"email\") || \"\"\r\n );\r\n const [add1] = React.useState(\r\n props.location.add1 || sessionStorage.getItem(\"add1\") || \"\"\r\n );\r\n const [add2] = React.useState(\r\n props.location.add2 || sessionStorage.getItem(\"add2\") || \"\"\r\n );\r\n const [post] = React.useState(\r\n props.location.post || sessionStorage.getItem(\"post\") || \"\"\r\n );\r\n\r\n window.scrollTo(0, 0);\r\n const [redi, setRedi] = useState(false);\r\n const [edit, setEdit] = useState(false);\r\n\r\n const onSelectHistory = (\r\n fin_type,\r\n agr_code,\r\n body,\r\n brand,\r\n reg_num,\r\n reg_province,\r\n asset_description,\r\n install,\r\n os_balance,\r\n n_due_i,\r\n flat_rate,\r\n disbursement_date,\r\n ar,\r\n terms,\r\n scan_code\r\n ) => {\r\n props.history.push({\r\n pathname: \"/manageagreement-history\",\r\n fin_type: fin_type,\r\n agr_code: agr_code,\r\n body: body,\r\n brand: brand,\r\n reg_num: reg_num,\r\n reg_province: reg_province,\r\n asset_description: asset_description,\r\n install: install,\r\n os_balance: os_balance,\r\n n_due_i: n_due_i,\r\n flat_rate: flat_rate,\r\n disbursement_date: disbursement_date,\r\n ar: ar,\r\n terms: terms,\r\n scan_code: scan_code,\r\n });\r\n };\r\n\r\n const onSelectInsurance = (\r\n fin_type,\r\n agr_code,\r\n body,\r\n brand,\r\n reg_num,\r\n reg_province,\r\n asset_description,\r\n install,\r\n os_balance,\r\n n_due_i,\r\n flat_rate,\r\n disbursement_date,\r\n ar,\r\n terms,\r\n scan_code\r\n ) => {\r\n props.history.push({\r\n pathname: \"/manageagreement-insurance\",\r\n agrtmp: \"\",\r\n fin_type: fin_type,\r\n agr_code: agr_code,\r\n body: body,\r\n brand: brand,\r\n reg_num: reg_num,\r\n reg_province: reg_province,\r\n asset_description: asset_description,\r\n install: install,\r\n os_balance: os_balance,\r\n n_due_i: n_due_i,\r\n flat_rate: flat_rate,\r\n disbursement_date: disbursement_date,\r\n ar: ar,\r\n terms: terms,\r\n scan_code: scan_code,\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n let mount = true;\r\n\r\n if (mount == true) {\r\n sessionStorage.setItem(\"agrtmp\", \"\");\r\n sessionStorage.setItem(\"fin_type\", fin_type);\r\n sessionStorage.setItem(\"agr_code\", agr_code);\r\n sessionStorage.setItem(\"body\", body);\r\n sessionStorage.setItem(\"brand\", brand);\r\n sessionStorage.setItem(\"reg_num\", reg_num);\r\n sessionStorage.setItem(\"reg_province\", reg_province);\r\n sessionStorage.setItem(\"asset_description\", asset_description);\r\n sessionStorage.setItem(\"install\", install);\r\n sessionStorage.setItem(\"os_balance\", os_balance);\r\n sessionStorage.setItem(\"n_due_i\", n_due_i);\r\n sessionStorage.setItem(\"flat_rate\", flat_rate);\r\n sessionStorage.setItem(\"disbursement_date\", disbursement_date);\r\n sessionStorage.setItem(\"ar\", ar);\r\n sessionStorage.setItem(\"terms\", terms);\r\n sessionStorage.setItem(\"scan_code\", scan_code);\r\n sessionStorage.setItem(\"mobile_no\", mobile_no);\r\n sessionStorage.setItem(\"email\", email);\r\n sessionStorage.setItem(\"add1\", add1);\r\n sessionStorage.setItem(\"add2\", add2);\r\n sessionStorage.setItem(\"post\", post);\r\n }\r\n\r\n return () => {\r\n mount = false;\r\n };\r\n }, [agr_code]);\r\n\r\n const onSelectQRCode = (agr_code, scan_code) => {\r\n props.history.push({\r\n pathname: \"/manageagreement-paymentlist\",\r\n agr_code: agr_code,\r\n scan_code: scan_code,\r\n });\r\n };\r\n\r\n let redirectpage;\r\n if (redi === true) {\r\n redirectpage = ;\r\n }\r\n\r\n const path = {\r\n Path: [\r\n {\r\n title: \"ข้อมูลสินเชื่อของฉัน\",\r\n pathLink: \"/manageagreement\",\r\n },\r\n {\r\n title: agr_code,\r\n pathLink: \"/manageagreement-detail\",\r\n },\r\n ],\r\n };\r\n\r\n const [manageAgrForm2, setManageAgrForm2] = useState([]);\r\n\r\n const formElementsArray2 = [];\r\n for (let key in manageAgrForm2) {\r\n formElementsArray2.push({\r\n id: key,\r\n config: manageAgrForm2[key],\r\n });\r\n }\r\n\r\n const [manageAgrForm] = useState([\r\n {\r\n fin_type: fin_type,\r\n agr_code: agr_code,\r\n body: body,\r\n brand: brand,\r\n reg_num: reg_num,\r\n reg_province: reg_province,\r\n asset_description: asset_description,\r\n install: install,\r\n os_balance: os_balance,\r\n n_due_i: n_due_i,\r\n flat_rate: flat_rate,\r\n disbursement_date: disbursement_date,\r\n ar: ar,\r\n terms: terms,\r\n scan_code: scan_code,\r\n mobile_no: mobile_no,\r\n email: email,\r\n add1: add1,\r\n add2: add2,\r\n post: post,\r\n },\r\n ]);\r\n\r\n const formElementsArray = [];\r\n for (let key in manageAgrForm) {\r\n formElementsArray.push({\r\n id: key,\r\n config: manageAgrForm[key],\r\n });\r\n }\r\n\r\n const clickEdit = () => {\r\n if (!edit) {\r\n setEdit(true);\r\n } else {\r\n setEdit(false);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {redirectpage}\r\n
\r\n (\r\n clickEdit()}\r\n onSelectNumber={() =>\r\n onSelectInsurance(\r\n formElement.fin_type,\r\n formElement.agr_code,\r\n formElement.body,\r\n formElement.brand,\r\n formElement.reg_num,\r\n formElement.reg_province,\r\n formElement.asset_description,\r\n formElement.install,\r\n formElement.os_balance,\r\n formElement.n_due_i,\r\n formElement.flat_rate,\r\n formElement.disbursement_date,\r\n formElement.ar,\r\n formElement.terms,\r\n formElement.scan_code\r\n )\r\n }\r\n onSelectHistory={() =>\r\n onSelectHistory(\r\n formElement.fin_type,\r\n formElement.agr_code,\r\n formElement.body,\r\n formElement.brand,\r\n formElement.reg_num,\r\n formElement.reg_province,\r\n formElement.asset_description,\r\n formElement.install,\r\n formElement.os_balance,\r\n formElement.n_due_i,\r\n formElement.flat_rate,\r\n formElement.disbursement_date,\r\n formElement.ar,\r\n formElement.terms,\r\n formElement.scan_code\r\n )\r\n }\r\n />\r\n ))}\r\n >\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n token: state.auth.token,\r\n userName: state.auth.userName,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onLogout: () => dispatch(actions.logout()),\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ManageAgreementControlsDetail);\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Button from './../../../components/UI/Button/Button';\r\n// import Description from '../description';\r\nimport '../../Apply/Apply.css'\r\nimport Header from './../../UI/Header/Header.js';\r\nimport mii from './../../../assets/main/main-insuranceinfo2.jpeg';\r\n\r\nconst ManageAgreementInsurance = (props) => {\r\n const topic = {\r\n marginTop: '2rem',\r\n }\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n {props.count\r\n ? \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n {/* \r\n */}\r\n \r\n
\r\n {props.children}\r\n
\r\n
\r\n {/* \r\n */}\r\n
\r\n : \r\n

ไม่พบข้อมูล

\r\n
\r\n }\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ManageAgreementInsurance;\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '../UI/Paper/Paper';\r\nimport Link from '@material-ui/core/Link';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport Button from './../../components/UI/Button/Button';\r\nimport '../Apply/Apply.css';\r\n\r\nconst insurance = (props) => {\r\n\r\n let button;\r\n // console.log(props)\r\n const numberWithCommas = (x) => {\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n }\r\n\r\n let todate = new Date();\r\n let lastdate = new Date(props.ins_exp);\r\n\r\n if (todate > lastdate) {\r\n button = ;\r\n }\r\n else {\r\n if (parseFloat(props.paid_amount) < parseFloat(props.premium)) {\r\n button = ;\r\n }\r\n else {\r\n button =
;\r\n }\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n

{props.ins_type}

\r\n
\r\n \r\n

ยี่ห้อ / รุ่น :

\r\n
\r\n \r\n

{props.brand} - {props.model_name}

\r\n
\r\n \r\n

ทะเบียน :

\r\n
\r\n \r\n

{props.reg_num}

\r\n
\r\n \r\n

ปีรุ่น :

\r\n
\r\n \r\n

{props.year}

\r\n
\r\n \r\n

ชื่อบริษัทประกัน :

\r\n
\r\n \r\n

{props.ins_com}

\r\n
\r\n \r\n

ทุนประกัน :

\r\n
\r\n \r\n

{numberWithCommas(parseFloat(Math.round(props.cov_amt * 100) / 100).toFixed(2))} บาท

\r\n
\r\n \r\n

เบี้ยประกัน :

\r\n
\r\n \r\n

{numberWithCommas(parseFloat(Math.round(props.total_prem * 100) / 100).toFixed(2))} บาท

\r\n
\r\n \r\n

หมายเลขกรมธรรม์ :

\r\n
\r\n \r\n

{props.pol_num}

\r\n
\r\n \r\n

ระยะเวลาคุ้มครอง :

\r\n
\r\n \r\n

{props.ins_date_th} - {props.ins_exp_th}

\r\n
\r\n \r\n

เลขที่สัญญาเช่าซื้อ :

\r\n
\r\n \r\n

{props.agr_code}

\r\n
\r\n \r\n \r\n \r\n
{button}
\r\n
\r\n \r\n \r\n
\r\n }\r\n />\r\n \r\n \r\n \r\n
\r\n {/* \r\n \r\n \r\n \r\n \r\n

ประกันภัยรถยนต์ภาคบังคับ

\r\n
\r\n \r\n

ยี่ห้อ / รุ่น

\r\n
\r\n \r\n

{props.name}

\r\n
\r\n \r\n

ทะเบียน

\r\n
\r\n \r\n

{props.name}

\r\n
\r\n \r\n

ปีรุ่น

\r\n
\r\n \r\n

{props.name}

\r\n
\r\n \r\n

ชื่อบริษัทประกัน

\r\n
\r\n \r\n

{props.name}

\r\n
\r\n \r\n

ทุนประกัน

\r\n
\r\n \r\n

{props.name}

\r\n
\r\n \r\n

เบี้ยประกัน

\r\n
\r\n \r\n

{props.name}

\r\n
\r\n \r\n

หมายเลขกรมธรรม์

\r\n
\r\n \r\n

{props.no}

\r\n
\r\n \r\n

ระยะเวลาคุ้มครอง

\r\n
\r\n \r\n

{props.firstdate} - {props.lastdate}

\r\n
\r\n \r\n

เลขที่สัญญาเช่าซื้อ

\r\n
\r\n \r\n

{props.agrcode}

\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n }\r\n />\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n

ประกันภัยเบ็ดเตล็ด

\r\n
\r\n \r\n

ยี่ห้อ / รุ่น

\r\n
\r\n \r\n

{props.name}

\r\n
\r\n \r\n

ทะเบียน

\r\n
\r\n \r\n

{props.name}

\r\n
\r\n \r\n

ปีรุ่น

\r\n
\r\n \r\n

{props.name}

\r\n
\r\n \r\n

ชื่อบริษัทประกัน

\r\n
\r\n \r\n

{props.name}

\r\n
\r\n \r\n

ทุนประกัน

\r\n
\r\n \r\n

{props.name}

\r\n
\r\n \r\n

เบี้ยประกัน

\r\n
\r\n \r\n

{props.name}

\r\n
\r\n \r\n

หมายเลขกรมธรรม์

\r\n
\r\n \r\n

{props.no}

\r\n
\r\n \r\n

ระยะเวลาคุ้มครอง

\r\n
\r\n \r\n

{props.firstdate} - {props.lastdate}

\r\n
\r\n \r\n

เลขที่สัญญาเช่าซื้อ

\r\n
\r\n \r\n

{props.agrcode}

\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n }\r\n />\r\n \r\n \r\n */}\r\n
\r\n );\r\n}\r\n\r\nexport default insurance;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport ManageAgreementInsurance from \"../../components/ManageAgreement/ManageAgreementInsurance/ManageAgreementInsurance\";\r\nimport Insurance from \"../../components/ManageAgreement/insurance\";\r\nimport PathTree from \"../../components/UI/PathTree/PathTree\";\r\nimport axios from \"axios\";\r\nimport { API_MYASK } from \"./../../shared/constant\";\r\nimport { connect } from \"react-redux\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nimport * as actions from \"./../../store/action/index\";\r\n\r\nconst ManageAgreementControlsInsurance = (props) => {\r\n let data = \"\";\r\n let click = \"\";\r\n const [agrtmp] = React.useState(\r\n props.location.agrtmp || sessionStorage.getItem(\"agrtmp\") || \"\"\r\n );\r\n const [fin_type] = React.useState(\r\n props.location.fin_type || sessionStorage.getItem(\"fin_type\") || \"\"\r\n );\r\n const [agr_code] = React.useState(\r\n props.location.agr_code || sessionStorage.getItem(\"agr_code\") || \"\"\r\n );\r\n const [body] = React.useState(\r\n props.location.body || sessionStorage.getItem(\"body\") || \"\"\r\n );\r\n const [brand] = React.useState(\r\n props.location.brand || sessionStorage.getItem(\"brand\") || \"\"\r\n );\r\n const [reg_num] = React.useState(\r\n props.location.reg_num || sessionStorage.getItem(\"reg_num\") || \"\"\r\n );\r\n const [reg_province] = React.useState(\r\n props.location.reg_province || sessionStorage.getItem(\"reg_province\") || \"\"\r\n );\r\n const [asset_description] = React.useState(\r\n props.location.asset_description ||\r\n sessionStorage.getItem(\"asset_description\") ||\r\n \"\"\r\n );\r\n const [install] = React.useState(\r\n props.location.install || sessionStorage.getItem(\"install\") || \"\"\r\n );\r\n const [os_balance] = React.useState(\r\n props.location.os_balance || sessionStorage.getItem(\"os_balance\") || \"\"\r\n );\r\n const [n_due_i] = React.useState(\r\n props.location.n_due_i || sessionStorage.getItem(\"n_due_i\") || \"\"\r\n );\r\n const [flat_rate] = React.useState(\r\n props.location.flat_rate || sessionStorage.getItem(\"flat_rate\") || \"\"\r\n );\r\n const [disbursement_date] = React.useState(\r\n props.location.disbursement_date ||\r\n sessionStorage.getItem(\"disbursement_date\") ||\r\n \"\"\r\n );\r\n const [ar] = React.useState(\r\n props.location.ar || sessionStorage.getItem(\"ar\") || \"\"\r\n );\r\n const [terms] = React.useState(\r\n props.location.terms || sessionStorage.getItem(\"terms\") || \"\"\r\n );\r\n const [scan_code] = React.useState(\r\n props.location.scan_code || sessionStorage.getItem(\"scan_code\") || \"\"\r\n );\r\n\r\n window.scrollTo(0, 0);\r\n const [redi, setRedi] = useState(false);\r\n const [insurance, setInsurance] = useState([]);\r\n\r\n const [count, setCount] = useState(0);\r\n\r\n const onSelectHistory = (\r\n fin_type,\r\n agr_code,\r\n body,\r\n brand,\r\n reg_num,\r\n reg_province,\r\n asset_description,\r\n install,\r\n os_balance,\r\n n_due_i,\r\n flat_rate,\r\n disbursement_date,\r\n ar,\r\n terms,\r\n scan_code\r\n ) => {\r\n props.history.push({\r\n pathname: \"/manageagreement-history\",\r\n fin_type: fin_type,\r\n agr_code: agr_code,\r\n body: body,\r\n brand: brand,\r\n reg_num: reg_num,\r\n reg_province: reg_province,\r\n asset_description: asset_description,\r\n install: install,\r\n os_balance: os_balance,\r\n n_due_i: n_due_i,\r\n flat_rate: flat_rate,\r\n disbursement_date: disbursement_date,\r\n ar: ar,\r\n terms: terms,\r\n scan_code: scan_code,\r\n });\r\n };\r\n\r\n const onSelectPayment = () => {\r\n props.history.push({\r\n pathname: \"/manageagreement-paymentlist\",\r\n agrtmp: agrtmp,\r\n manyagr: \"\",\r\n type: \"ins\",\r\n });\r\n sessionStorage.setItem(\"manyagr\", \"\");\r\n sessionStorage.setItem(\"type\", \"ins\");\r\n };\r\n\r\n useEffect(() => {\r\n let agr;\r\n if (agrtmp != \"\") {\r\n agr = agrtmp;\r\n } else {\r\n if (agr_code != \"\") {\r\n agr = \"'\" + agr_code + \"'\";\r\n }\r\n }\r\n // else {\r\n\r\n // }\r\n let mount = true;\r\n axios.get(API_MYASK + \"/Insurance?\" + \"agr_code=\" + agr).then((res) => {\r\n let form = [];\r\n console.log(res);\r\n if (res.data.CODE === \"200\") {\r\n for (let i in res.data.LIST_DATA) {\r\n form.push({\r\n com_code: res.data.LIST_DATA[i].COM_CODE,\r\n agr_code: res.data.LIST_DATA[i].AGR_CODE,\r\n ref_code: res.data.LIST_DATA[i].REF_CODE,\r\n ins_type: res.data.LIST_DATA[i].INS_TYPE,\r\n ins_com: res.data.LIST_DATA[i].INS_COM,\r\n ins_date: res.data.LIST_DATA[i].INS_DATE,\r\n ins_exp: res.data.LIST_DATA[i].INS_EXP,\r\n ins_date_th: res.data.LIST_DATA[i].INS_DATE_TH,\r\n ins_exp_th: res.data.LIST_DATA[i].INS_EXP_TH,\r\n pol_num: res.data.LIST_DATA[i].POL_NUM,\r\n paid_amount: res.data.LIST_DATA[i].PAID_AMOUNT,\r\n premium: res.data.LIST_DATA[i].PREMIUM,\r\n cov_amt: res.data.LIST_DATA[i].COV_AMT,\r\n total_prem: res.data.LIST_DATA[i].TOTAL_PREM,\r\n reg_num: res.data.LIST_DATA[i].REG_NUM,\r\n year: res.data.LIST_DATA[i].YEAR,\r\n brand: res.data.LIST_DATA[i].BRAND,\r\n model_name: res.data.LIST_DATA[i].MODEL_NAME,\r\n });\r\n }\r\n }\r\n if (mount) {\r\n setCount(form.length);\r\n setInsurance(form);\r\n }\r\n });\r\n\r\n return () => {\r\n mount = false;\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n sessionStorage.setItem(\"fin_type\", fin_type);\r\n sessionStorage.setItem(\"agr_code\", agr_code);\r\n sessionStorage.setItem(\"body\", body);\r\n sessionStorage.setItem(\"brand\", brand);\r\n sessionStorage.setItem(\"reg_num\", reg_num);\r\n sessionStorage.setItem(\"reg_province\", reg_province);\r\n sessionStorage.setItem(\"asset_description\", asset_description);\r\n sessionStorage.setItem(\"install\", install);\r\n sessionStorage.setItem(\"os_balance\", os_balance);\r\n sessionStorage.setItem(\"n_due_i\", n_due_i);\r\n sessionStorage.setItem(\"flat_rate\", flat_rate);\r\n sessionStorage.setItem(\"disbursement_date\", disbursement_date);\r\n sessionStorage.setItem(\"ar\", ar);\r\n sessionStorage.setItem(\"terms\", terms);\r\n sessionStorage.setItem(\"scan_code\", scan_code);\r\n }, [agr_code]);\r\n\r\n const onSelectQRCode = (agr_code, scan_code) => {\r\n props.history.push({\r\n pathname: \"/manageagreement-paymentlist\",\r\n agr_code: agr_code,\r\n scan_code: scan_code,\r\n });\r\n };\r\n\r\n let redirectpage;\r\n if (redi === true) {\r\n redirectpage = ;\r\n }\r\n\r\n const path = {\r\n Path: [\r\n {\r\n title: \"ข้อมูลสินเชื่อของฉัน\",\r\n pathLink: \"/manageagreement\",\r\n },\r\n {\r\n title: \"ประกันของฉัน\",\r\n pathLink: \"/manageagreement-insurance\",\r\n },\r\n ],\r\n };\r\n\r\n const [manageAgrForm2, setManageAgrForm2] = useState([]);\r\n\r\n const formElementsArray2 = [];\r\n for (let key in manageAgrForm2) {\r\n formElementsArray2.push({\r\n id: key,\r\n config: manageAgrForm2[key],\r\n });\r\n }\r\n\r\n const [manageAgrForm] = useState([\r\n {\r\n fin_type: fin_type,\r\n agr_code: agr_code,\r\n body: body,\r\n brand: brand,\r\n reg_num: reg_num,\r\n reg_province: reg_province,\r\n asset_description: asset_description,\r\n install: install,\r\n os_balance: os_balance,\r\n n_due_i: n_due_i,\r\n flat_rate: flat_rate,\r\n disbursement_date: disbursement_date,\r\n ar: ar,\r\n terms: terms,\r\n scan_code: scan_code,\r\n },\r\n ]);\r\n\r\n const formElementsArray = [];\r\n for (let key in insurance) {\r\n formElementsArray.push({\r\n id: key,\r\n config: insurance[key],\r\n });\r\n }\r\n\r\n return (\r\n \r\n {redirectpage}\r\n
\r\n (\r\n \r\n onSelectHistory(\r\n formElement.fin_type,\r\n formElement.agr_code,\r\n formElement.body,\r\n formElement.brand,\r\n formElement.reg_num,\r\n formElement.reg_province,\r\n formElement.asset_description,\r\n formElement.install,\r\n formElement.os_balance,\r\n formElement.n_due_i,\r\n formElement.flat_rate,\r\n formElement.disbursement_date,\r\n formElement.ar,\r\n formElement.terms,\r\n formElement.scan_code\r\n )\r\n }\r\n onSelectHistory={() =>\r\n onSelectHistory(\r\n formElement.fin_type,\r\n formElement.agr_code,\r\n formElement.body,\r\n formElement.brand,\r\n formElement.reg_num,\r\n formElement.reg_province,\r\n formElement.asset_description,\r\n formElement.install,\r\n formElement.os_balance,\r\n formElement.n_due_i,\r\n formElement.flat_rate,\r\n formElement.disbursement_date,\r\n formElement.ar,\r\n formElement.terms,\r\n formElement.scan_code\r\n )\r\n }\r\n />\r\n ))}\r\n onSelectPayment={() => onSelectPayment()}\r\n count={count}\r\n >\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n token: state.auth.token,\r\n userName: state.auth.userName,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onLogout: () => dispatch(actions.logout()),\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ManageAgreementControlsInsurance);\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '../../UI/Paper/Paper';\r\nimport Button from '../../UI/Button/Button';\r\nimport Loading from './../../UI/Loading/Loading';\r\nimport '../../Apply/Apply.css';\r\n\r\nconst ManageAgreementHistory = (props) => {\r\n\r\n let form = props.children;\r\n const topic = {\r\n marginTop: '2rem',\r\n }\r\n\r\n const [check, setCheck] = React.useState(0)\r\n React.useEffect(() => {\r\n setCheck(props.check);\r\n }, [props.check]);\r\n\r\n const [Payment, setPayment] = React.useState(false);\r\n const [Regis, setRegis] = React.useState(false);\r\n const [Insurance, setInsurance] = React.useState(false);\r\n const [Etc, setEtc] = React.useState(false);\r\n\r\n // const handleTab = (event) => {\r\n // props.onSelected2(event);\r\n // };\r\n\r\n const handlePayment = () => {\r\n // handleTab(\"1\");\r\n setPayment(true);\r\n setRegis(false);\r\n setInsurance(false);\r\n setEtc(false);\r\n setCheck(1);\r\n }\r\n\r\n const handleInsurance = () => {\r\n // handleTab(\"2\");\r\n setPayment(false);\r\n setRegis(false);\r\n setInsurance(true);\r\n setEtc(false);\r\n }\r\n\r\n const handleRegis = () => {\r\n // handleTab(\"3\");\r\n setPayment(false);\r\n setRegis(true);\r\n setInsurance(false);\r\n setEtc(false);\r\n }\r\n\r\n const handleEtc = () => {\r\n // handleTab(\"4\");\r\n setPayment(false);\r\n setRegis(false);\r\n setInsurance(false);\r\n setEtc(true);\r\n }\r\n\r\n let classes1;\r\n let classes2;\r\n let classes3;\r\n let classes4;\r\n if (Payment === true) {\r\n classes1 = \"menuclick\";\r\n classes2 = \"menunormal\";\r\n classes3 = \"menunormal\";\r\n classes4 = \"menunormal\";\r\n }\r\n else if (Insurance === true || check === 2) {\r\n classes2 = \"menuclick\";\r\n classes1 = \"menunormal\";\r\n classes3 = \"menunormal\";\r\n classes4 = \"menunormal\";\r\n }\r\n else if (Regis === true || check === 3) {\r\n classes3 = \"menuclick\";\r\n classes1 = \"menunormal\";\r\n classes2 = \"menunormal\";\r\n classes4 = \"menunormal\";\r\n }\r\n else if (Etc === true || check === 4) {\r\n classes4 = \"menuclick\";\r\n classes3 = \"menunormal\";\r\n classes1 = \"menunormal\";\r\n classes2 = \"menunormal\";\r\n }\r\n else {\r\n classes1 = \"menuclick\";\r\n classes2 = \"menunormal\";\r\n classes3 = \"menunormal\";\r\n classes4 = \"menunormal\";\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n

ประวัติการชำระเงิน

\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n {props.loading\r\n ? \r\n
\r\n
\r\n : \r\n
\r\n {props.children.length === 0 ?

ไม่พบประวัติชำระเงิน

\r\n :
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
}\r\n
\r\n
\r\n }\r\n
\r\n );\r\n}\r\n\r\nexport default ManageAgreementHistory;\r\n","import React from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Link from \"@material-ui/core/Link\";\r\nimport \"../Apply/Apply.css\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\n\r\nconst history = (props) => {\r\n const style = {\r\n padding: props.padding,\r\n };\r\n // const removelink = {\r\n // textDecoration: 'none',\r\n // }\r\n\r\n const numberWithCommas = (x) => {\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n };\r\n return (\r\n
\r\n \r\n \r\n

{props.date}

\r\n
\r\n {/* \r\n

ค่างวด

\r\n
\r\n \r\n
\r\n ดาวน์โหลดเอกสาร\r\n
\r\n
*/}\r\n {/* \r\n

วันที่ชำระค่างวด

\r\n
\r\n \r\n

{props.date}

\r\n
*/}\r\n \r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n >\r\n \r\n

จำนวนที่ชำระ

\r\n
\r\n \r\n

\r\n {numberWithCommas(\r\n parseFloat(Math.round(props.price * 100) / 100).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n

ค่างวด

\r\n
\r\n \r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(props.price * 100) / 100 -\r\n Math.round(props.price * 7) / 100\r\n ).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n \r\n

VAT ค่างวด 7%

\r\n
\r\n \r\n

\r\n {numberWithCommas(\r\n parseFloat(Math.round(props.price * 7) / 100).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n \r\n

ช่องทาง

\r\n
\r\n \r\n

โมบายแบงก์กิ้ง

\r\n
\r\n \r\n

เลขที่ใบเสร็จ

\r\n
\r\n \r\n

xxxxxxxxx

\r\n
\r\n \r\n

วันที่ออกใบเสร็จ

\r\n
\r\n \r\n

{props.date}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n ดาวน์โหลดเอกสาร\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default history;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport ManageAgreementHistory from \"../../components/ManageAgreement/ManageAgreementHistory/ManageAgreementHistory\";\r\nimport Description from \"../../components/ManageAgreement/description\";\r\nimport History from \"../../components/ManageAgreement/history\";\r\nimport PathTree from \"../../components/UI/PathTree/PathTree\";\r\nimport axios from \"axios\";\r\nimport { API_MYASK } from \"./../../shared/constant\";\r\nimport { connect } from \"react-redux\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nimport * as actions from \"./../../store/action/index\";\r\n\r\nconst ManageAgreementControlsHistory = (props) => {\r\n let data = \"\";\r\n let click = \"\";\r\n const [isDefault] = useState(props.location.isDefault);\r\n const [fin_type] = React.useState(\r\n props.location.fin_type || sessionStorage.getItem(\"fin_type\") || \"\"\r\n );\r\n const [agr_code] = React.useState(\r\n props.location.agr_code || sessionStorage.getItem(\"agr_code\") || \"\"\r\n );\r\n const [body] = React.useState(\r\n props.location.body || sessionStorage.getItem(\"body\") || \"\"\r\n );\r\n const [brand] = React.useState(\r\n props.location.brand || sessionStorage.getItem(\"brand\") || \"\"\r\n );\r\n const [reg_num] = React.useState(\r\n props.location.reg_num || sessionStorage.getItem(\"reg_num\") || \"\"\r\n );\r\n const [reg_province] = React.useState(\r\n props.location.reg_province || sessionStorage.getItem(\"reg_province\") || \"\"\r\n );\r\n const [asset_description] = React.useState(\r\n props.location.asset_description ||\r\n sessionStorage.getItem(\"asset_description\") ||\r\n \"\"\r\n );\r\n const [install] = React.useState(\r\n props.location.install || sessionStorage.getItem(\"install\") || \"\"\r\n );\r\n const [os_balance] = React.useState(\r\n props.location.os_balance || sessionStorage.getItem(\"os_balance\") || \"\"\r\n );\r\n const [n_due_i] = React.useState(\r\n props.location.n_due_i || sessionStorage.getItem(\"n_due_i\") || \"\"\r\n );\r\n const [flat_rate] = React.useState(\r\n props.location.flat_rate || sessionStorage.getItem(\"flat_rate\") || \"\"\r\n );\r\n const [disbursement_date] = React.useState(\r\n props.location.disbursement_date ||\r\n sessionStorage.getItem(\"disbursement_date\") ||\r\n \"\"\r\n );\r\n const [ar] = React.useState(\r\n props.location.ar || sessionStorage.getItem(\"ar\") || \"\"\r\n );\r\n const [terms] = React.useState(\r\n props.location.terms || sessionStorage.getItem(\"terms\") || \"\"\r\n );\r\n const [scan_code] = React.useState(\r\n props.location.scan_code || sessionStorage.getItem(\"scan_code\") || \"\"\r\n );\r\n const [loading, setLoading] = React.useState(true);\r\n\r\n window.scrollTo(0, 0);\r\n const [redi, setRedi] = useState(false);\r\n\r\n useEffect(() => {\r\n sessionStorage.setItem(\"fin_type\", fin_type);\r\n sessionStorage.setItem(\"agr_code\", agr_code);\r\n sessionStorage.setItem(\"body\", body);\r\n sessionStorage.setItem(\"brand\", brand);\r\n sessionStorage.setItem(\"reg_num\", reg_num);\r\n sessionStorage.setItem(\"reg_province\", reg_province);\r\n sessionStorage.setItem(\"asset_description\", asset_description);\r\n sessionStorage.setItem(\"install\", install);\r\n sessionStorage.setItem(\"os_balance\", os_balance);\r\n sessionStorage.setItem(\"n_due_i\", n_due_i);\r\n sessionStorage.setItem(\"flat_rate\", flat_rate);\r\n sessionStorage.setItem(\"disbursement_date\", disbursement_date);\r\n sessionStorage.setItem(\"ar\", ar);\r\n sessionStorage.setItem(\"terms\", terms);\r\n sessionStorage.setItem(\"scan_code\", scan_code);\r\n\r\n let mount = true;\r\n axios\r\n .get(\r\n API_MYASK +\r\n \"/Payment_History?\" +\r\n \"agr_code=\" +\r\n sessionStorage.getItem(\"agr_code\") +\r\n \"&user_name=\" +\r\n sessionStorage.getItem(\"userName\") +\r\n \"&token=\" +\r\n sessionStorage.getItem(\"token\")\r\n )\r\n .then((res) => {\r\n if (res.data.CODE === \"200\") {\r\n let form = [];\r\n for (let i in res.data.LIST_DATA) {\r\n form.push({\r\n last_paid_dt: res.data.LIST_DATA[i].LAST_PAID_DT,\r\n sum_paid: res.data.LIST_DATA[i].SUM_PAID,\r\n });\r\n }\r\n if (mount) {\r\n setManageAgrForm2(form);\r\n setLoading(false);\r\n }\r\n } else if (res.data.CODE === \"404\") {\r\n if (mount) {\r\n setManageAgrForm2([]);\r\n setLoading(false);\r\n }\r\n } else {\r\n if (mount) {\r\n sessionStorage.removeItem(\"userName\");\r\n sessionStorage.removeItem(\"token\");\r\n props.onLogout();\r\n setRedi(true);\r\n setLoading(false);\r\n }\r\n }\r\n });\r\n\r\n return () => {\r\n mount = false;\r\n };\r\n }, [agr_code]);\r\n\r\n const onSelectQRCode = (agr_code, scan_code) => {\r\n props.history.push({\r\n pathname: \"/manageagreement-paymentlist\",\r\n agr_code: agr_code,\r\n scan_code: scan_code,\r\n });\r\n };\r\n\r\n let redirectpage;\r\n if (redi === true) {\r\n redirectpage = ;\r\n }\r\n\r\n const path = {\r\n Path: [\r\n {\r\n title: \"ข้อมูลสินเชื่อของฉัน\",\r\n pathLink: \"/manageagreement\",\r\n },\r\n {\r\n title: agr_code,\r\n pathLink: \"/manageagreement-detail\",\r\n },\r\n {\r\n title: \"ประวัติการชำระเงิน\",\r\n pathLink: \"/manageagreement-history\",\r\n },\r\n ],\r\n };\r\n\r\n const [manageAgrForm2, setManageAgrForm2] = useState([]);\r\n\r\n const formElementsArray2 = [];\r\n for (let key in manageAgrForm2) {\r\n formElementsArray2.push({\r\n id: key,\r\n config: manageAgrForm2[key],\r\n });\r\n }\r\n return (\r\n \r\n {redirectpage}\r\n
\r\n (\r\n \r\n ))}\r\n >\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n token: state.auth.token,\r\n userName: state.auth.userName,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onLogout: () => dispatch(actions.logout()),\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ManageAgreementControlsHistory);\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\n// import Description from '../description';\r\nimport '../../Apply/Apply.css'\r\n\r\nconst ManageAgreementCloseAcc = (props) => {\r\n return (\r\n \r\n \r\n
\r\n {props.children}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ManageAgreementCloseAcc;\r\n","import React from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Button from \"../UI/Button/Button\";\r\nimport Paper from \"../UI/Paper/Paper\";\r\nimport \"../Apply/Apply.css\";\r\n\r\nconst closeacc = (props) => {\r\n const numberWithCommas = (x) => {\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n };\r\n const topic = {\r\n marginTop: \"2rem\",\r\n };\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n

ยอดชำระรวม

\r\n
\r\n \r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(props.pricepermonth * 100) / 100\r\n ).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n }\r\n />\r\n \r\n \r\n \r\n

\r\n รายการชำระเงิน (ปิดบัญชี)\r\n

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n

เลขที่สัญญา {props.number}

\r\n
\r\n
\r\n {props.carcountry || props.carnumber || props.carbrand ? (\r\n \r\n

\r\n {props.carbrand} {props.carnumber} {props.carcountry}\r\n

\r\n
\r\n ) : (\r\n \r\n

\r\n
\r\n

\r\n
\r\n )}\r\n \r\n\r\n {props.type == \"สินเชื่อรถยนต์\" ? (\r\n \r\n

ค่างวดคงเหลือ

\r\n
\r\n ) : (\r\n \r\n

เงินต้นคงเหลือ

\r\n
\r\n )}\r\n \r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(props.pricepermonth * 100) / 100\r\n ).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n {props.type == \"สินเชื่อรถยนต์\" ? (\r\n \r\n

ภาษีมูลค่าเพิ่มคงเหลือ

\r\n
\r\n ) : (\r\n \r\n

ดอกเบี้ย

\r\n
\r\n )}\r\n \r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(props.pricepermonth * 100) / 100\r\n ).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n {props.type == \"สินเชื่อรถยนต์\" ? (\r\n \r\n

ส่วนลด

\r\n
\r\n ) : (\r\n \r\n

ค่าธรรมเนียมการใช้วงเงิน

\r\n
\r\n )}\r\n {props.type == \"สินเชื่อรถยนต์\" ? (\r\n \r\n

\r\n (\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(props.pricepermonth * 100) / 100\r\n ).toFixed(2)\r\n )}\r\n ) บาท\r\n

\r\n
\r\n ) : (\r\n \r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(props.pricepermonth * 100) / 100\r\n ).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n )}\r\n \r\n

ค่าเบี้ยปรับ

\r\n
\r\n \r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(props.pricepermonth * 100) / 100\r\n ).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n \r\n

ค่าติดตามทวงถาม

\r\n
\r\n \r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(props.pricepermonth * 100) / 100\r\n ).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n \r\n

ค่าธรรมเนียมเช็คคืน,หักบัญชี

\r\n
\r\n \r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(props.pricepermonth * 100) / 100\r\n ).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n \r\n

ค่าประกันภัยภาคสมัครใจ,ภาคบังคับ

\r\n
\r\n \r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(props.pricepermonth * 100) / 100\r\n ).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n \r\n

ค่าใช้จ่ายเกี่ยวกับทะเบียนค้างชำระ

\r\n
\r\n \r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(props.pricepermonth * 100) / 100\r\n ).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n \r\n

ค่าอื่นๆ

\r\n
\r\n \r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(props.pricepermonth * 100) / 100\r\n ).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n \r\n

ยอดชำระ(ภายในวันที่ {props.date})

\r\n
\r\n \r\n

\r\n \r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(props.pricepermonth * 100) / 100\r\n ).toFixed(2)\r\n )}\r\n {\" \"}\r\n บาท\r\n

\r\n
\r\n \r\n

\r\n หากชำระเกินวันที่ {props.date}{\" \"}\r\n ยอดดังกล่าวอาจจะมีการเปลี่ยนแปลง\r\n

\r\n
\r\n
\r\n }\r\n />\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default closeacc;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport ManageAgreementCloseAcc from \"../../components/ManageAgreement/ManageAgreementCloseAcc/ManageAgreementCloseAcc\";\r\nimport CloseAcc from \"../../components/ManageAgreement/closeacc\";\r\nimport History from \"../../components/ManageAgreement/history\";\r\nimport PathTree from \"../../components/UI/PathTree/PathTree\";\r\nimport axios from \"axios\";\r\nimport { API_MYASK } from \"./../../shared/constant\";\r\nimport { connect } from \"react-redux\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nimport * as actions from \"./../../store/action/index\";\r\n\r\nconst ManageAgreementControlsCloseAcc = (props) => {\r\n let data = \"\";\r\n let click = \"\";\r\n const [fin_type] = React.useState(\r\n props.location.fin_type || sessionStorage.getItem(\"fin_type\") || \"\"\r\n );\r\n const [agr_code] = React.useState(\r\n props.location.agr_code || sessionStorage.getItem(\"agr_code\") || \"\"\r\n );\r\n const [body] = React.useState(\r\n props.location.body || sessionStorage.getItem(\"body\") || \"\"\r\n );\r\n const [brand] = React.useState(\r\n props.location.brand || sessionStorage.getItem(\"brand\") || \"\"\r\n );\r\n const [reg_num] = React.useState(\r\n props.location.reg_num || sessionStorage.getItem(\"reg_num\") || \"\"\r\n );\r\n const [reg_province] = React.useState(\r\n props.location.reg_province || sessionStorage.getItem(\"reg_province\") || \"\"\r\n );\r\n const [asset_description] = React.useState(\r\n props.location.asset_description ||\r\n sessionStorage.getItem(\"asset_description\") ||\r\n \"\"\r\n );\r\n const [install] = React.useState(\r\n props.location.install || sessionStorage.getItem(\"install\") || \"\"\r\n );\r\n const [os_balance] = React.useState(\r\n props.location.os_balance || sessionStorage.getItem(\"os_balance\") || \"\"\r\n );\r\n const [n_due_i] = React.useState(\r\n props.location.n_due_i || sessionStorage.getItem(\"n_due_i\") || \"\"\r\n );\r\n const [flat_rate] = React.useState(\r\n props.location.flat_rate || sessionStorage.getItem(\"flat_rate\") || \"\"\r\n );\r\n const [disbursement_date] = React.useState(\r\n props.location.disbursement_date ||\r\n sessionStorage.getItem(\"disbursement_date\") ||\r\n \"\"\r\n );\r\n const [ar] = React.useState(\r\n props.location.ar || sessionStorage.getItem(\"ar\") || \"\"\r\n );\r\n const [terms] = React.useState(\r\n props.location.terms || sessionStorage.getItem(\"terms\") || \"\"\r\n );\r\n const [scan_code] = React.useState(\r\n props.location.scan_code || sessionStorage.getItem(\"scan_code\") || \"\"\r\n );\r\n\r\n window.scrollTo(0, 0);\r\n const [redi, setRedi] = useState(false);\r\n\r\n useEffect(() => {\r\n sessionStorage.setItem(\"fin_type\", fin_type);\r\n sessionStorage.setItem(\"agr_code\", agr_code);\r\n sessionStorage.setItem(\"body\", body);\r\n sessionStorage.setItem(\"brand\", brand);\r\n sessionStorage.setItem(\"reg_num\", reg_num);\r\n sessionStorage.setItem(\"reg_province\", reg_province);\r\n sessionStorage.setItem(\"asset_description\", asset_description);\r\n sessionStorage.setItem(\"install\", install);\r\n sessionStorage.setItem(\"os_balance\", os_balance);\r\n sessionStorage.setItem(\"n_due_i\", n_due_i);\r\n sessionStorage.setItem(\"flat_rate\", flat_rate);\r\n sessionStorage.setItem(\"disbursement_date\", disbursement_date);\r\n sessionStorage.setItem(\"ar\", ar);\r\n sessionStorage.setItem(\"terms\", terms);\r\n sessionStorage.setItem(\"scan_code\", scan_code);\r\n\r\n let mount = true;\r\n axios\r\n .get(\r\n API_MYASK +\r\n \"/Payment_History?\" +\r\n \"agr_code=\" +\r\n sessionStorage.getItem(\"agr_code\") +\r\n \"&user_name=\" +\r\n sessionStorage.getItem(\"userName\") +\r\n \"&token=\" +\r\n sessionStorage.getItem(\"token\")\r\n )\r\n .then((res) => {\r\n if (res.data.CODE === \"200\") {\r\n let form = [];\r\n for (let i in res.data.LIST_DATA) {\r\n form.push({\r\n last_paid_dt: res.data.LIST_DATA[i].LAST_PAID_DT,\r\n sum_paid: res.data.LIST_DATA[i].SUM_PAID,\r\n });\r\n }\r\n if (mount) {\r\n setManageAgrForm2(form);\r\n }\r\n } else if (res.data.CODE === \"404\") {\r\n if (mount) {\r\n setManageAgrForm2([]);\r\n }\r\n } else {\r\n if (mount) {\r\n sessionStorage.removeItem(\"userName\");\r\n sessionStorage.removeItem(\"token\");\r\n props.onLogout();\r\n setRedi(true);\r\n }\r\n }\r\n });\r\n\r\n return () => {\r\n mount = false;\r\n };\r\n }, [agr_code]);\r\n\r\n const onSelectQRCode = (agr_code, scan_code) => {\r\n props.history.push({\r\n pathname: \"/manageagreement-paymentlist\",\r\n agr_code: agr_code,\r\n scan_code: scan_code,\r\n });\r\n };\r\n\r\n let redirectpage;\r\n if (redi === true) {\r\n redirectpage = ;\r\n }\r\n\r\n const path = {\r\n Path: [\r\n {\r\n title: \"ข้อมูลสินเชื่อของฉัน\",\r\n pathLink: \"/manageagreement\",\r\n },\r\n {\r\n title: agr_code,\r\n pathLink: \"/manageagreement-detail\",\r\n },\r\n {\r\n title: \"ปิดบัญชี\",\r\n pathLink: \"/manageagreement-closeacc\",\r\n },\r\n ],\r\n };\r\n\r\n const [manageAgrForm2, setManageAgrForm2] = useState([]);\r\n\r\n const formElementsArray2 = [];\r\n for (let key in manageAgrForm2) {\r\n formElementsArray2.push({\r\n id: key,\r\n config: manageAgrForm2[key],\r\n });\r\n }\r\n\r\n const [manageAgrForm] = useState([\r\n {\r\n fin_type: fin_type,\r\n agr_code: agr_code,\r\n body: body,\r\n brand: brand,\r\n reg_num: reg_num,\r\n reg_province: reg_province,\r\n asset_description: asset_description,\r\n install: install,\r\n os_balance: os_balance,\r\n n_due_i: n_due_i,\r\n flat_rate: flat_rate,\r\n disbursement_date: disbursement_date,\r\n ar: ar,\r\n terms: terms,\r\n scan_code: scan_code,\r\n },\r\n ]);\r\n\r\n const formElementsArray = [];\r\n for (let key in manageAgrForm) {\r\n formElementsArray.push({\r\n id: key,\r\n config: manageAgrForm[key],\r\n });\r\n }\r\n\r\n const [tab1, setTab1] = React.useState(false);\r\n const [tab2, setTab2] = React.useState(false);\r\n\r\n const handleChange = (event) => {\r\n click = event;\r\n if (click === \"1\") {\r\n setTab1(true);\r\n setTab2(false);\r\n } else if (click === \"2\") {\r\n setTab2(true);\r\n setTab1(false);\r\n }\r\n };\r\n\r\n if (tab2 === true) {\r\n data = formElementsArray2.map((formElement) => (\r\n \r\n ));\r\n } else {\r\n data = formElementsArray.map((formElement) => (\r\n \r\n onSelectQRCode(\r\n formElement.config.agr_code,\r\n formElement.config.scan_code\r\n )\r\n }\r\n />\r\n ));\r\n }\r\n\r\n return (\r\n \r\n {redirectpage}\r\n
\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n token: state.auth.token,\r\n userName: state.auth.userName,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onLogout: () => dispatch(actions.logout()),\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(ManageAgreementControlsCloseAcc);\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\n// import Description from '../description';\r\nimport '../../Apply/Apply.css'\r\n\r\nconst ManageAgreementChangeAddr = (props) => {\r\n const topic = {\r\n marginTop: '2rem',\r\n }\r\n return (\r\n \r\n \r\n

เปลี่ยนแปลงที่อยู่

\r\n
\r\n \r\n
\r\n {props.children}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default ManageAgreementChangeAddr;\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Input from './../UI/Input/Input';\r\nimport Paper from './../UI/Paper/Paper';\r\nimport Table from '@material-ui/core/Table';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport '../Apply/Apply.css';\r\n\r\nconst changeaddr = (props) => {\r\n\r\n const rows = [\r\n { number: '1111111', type: '1', name: 'testtesttest tsetstestste' },\r\n { number: '2222222', type: '1', name: 'asdsadasdad 12313asd' },\r\n ];\r\n\r\n const agr = [\r\n { number: '1111111', type: '1', agrcode: '123123', carnum: '1กข 2345' },\r\n { number: '1111111', type: '1', agrcode: '123123', carnum: '1กข 2345' },\r\n ];\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n รหัส\r\n ประเภท\r\n ชื่อ\r\n \r\n \r\n \r\n {rows.map((row) => (\r\n \r\n {row.number}\r\n {row.type}\r\n {row.name}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n

สัญญาที่เกี่ยวข้อง

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n รหัส\r\n ประเภท\r\n เลขที่สัญญา\r\n ทะเบียน\r\n \r\n \r\n \r\n {agr.map((row) => (\r\n \r\n {row.number}\r\n {row.type}\r\n {row.agrcode}\r\n {row.carnum}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

Current

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n />\r\n
\r\n \r\n \r\n \r\n

Card

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n

Office

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n

Mail

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n />\r\n \r\n \r\n \r\n \r\n

Telephone

\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n />\r\n \r\n \r\n
\r\n )\r\n}\r\nexport default changeaddr;","import React, { useState, useEffect } from 'react';\r\nimport ManageAgreementChangeAddr from '../../components/ManageAgreement/ManageAgreementChangeAddr/ManageAgreementChangeAddr';\r\nimport ChangeAddr from '../../components/ManageAgreement/changeaddr';\r\nimport History from '../../components/ManageAgreement/history';\r\nimport PathTree from '../../components/UI/PathTree/PathTree';\r\nimport axios from \"axios\";\r\nimport { API_MYASK } from \"./../../shared/constant\";\r\nimport { connect } from 'react-redux';\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nimport * as actions from \"./../../store/action/index\";\r\n\r\nconst ManageAgreementControlsChangeAddr = (props) => {\r\n window.scrollTo(0, 0);\r\n const [redi, setRedi] = useState(false);\r\n\r\n let redirectpage;\r\n if (redi === true) {\r\n redirectpage = ;\r\n }\r\n\r\n const path = {\r\n Path: [\r\n {\r\n title: \"เปลี่ยนแปลงที่อยู่\",\r\n pathLink: \"/manageagreement-changeaddr\"\r\n },\r\n ]\r\n };\r\n\r\n return (\r\n \r\n {redirectpage}\r\n
\r\n }>\r\n
\r\n
\r\n );\r\n}\r\n\r\n\r\nconst mapStateToProps = state => {\r\n return {\r\n token: state.auth.token,\r\n userName: state.auth.userName\r\n };\r\n};\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onLogout: () => dispatch(actions.logout())\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ManageAgreementControlsChangeAddr);\r\n","import React from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Credit from \"../../../assets/image/credit.jpg\";\r\nimport Header from \"../../UI/Header/Header\";\r\n// import Button from \"../../UI/Button/Button\";\r\nimport Input from \"../../UI/Input/Input\";\r\nimport Loading from './../../UI/Loading/Loading';\r\nimport \"../Apply.css\";\r\n\r\nconst ApplyForm = (props) => {\r\n const topic = {\r\n marginTop: \"3rem\",\r\n marginBottom: \"2rem\"\r\n };\r\n\r\n return (\r\n\r\n
\r\n
\r\n {props.loadPage\r\n ? \r\n

\r\n
\r\n
\r\n :
\r\n
\r\n \r\n \r\n

\r\n สนใจสมัครสินเชื่อ (กรุณากรอกข้อมูล เพื่อให้เราติดต่อกลับ)\r\n

\r\n
\r\n {props.formElementsArray.map(formElement => (\r\n
\r\n {/* */}\r\n props.inputChangedHandler(event.target.value, formElement.id)}\r\n label={formElement.config.label}\r\n labelPos={'left'}\r\n changedNumber={(values) => {\r\n const { formattedValue, value } = values;\r\n props.inputChangedHandler(value, formElement.id)\r\n }}\r\n />\r\n
\r\n ))}\r\n {props.loading\r\n ? \r\n
\r\n
\r\n : \r\n ส่งข้อมูล\r\n
\r\n }\r\n \r\n
\r\n
\r\n }\r\n\r\n
\r\n );\r\n};\r\n\r\nexport default ApplyForm;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport ApplyForm from \"../../components/Apply/ApplyForm/ApplyForm\";\r\nimport axios from \"axios\";\r\nimport { connect } from \"react-redux\";\r\nimport {\r\n updateObject,\r\n checkValidity,\r\n checkError,\r\n} from \"./../../shared/utility\";\r\n// import { Redirect } from \"react-router-dom\";\r\nimport { API_MYASK, API_LINE } from \"./../../shared/constant\";\r\nimport ModalError from \"./../../components/UI/Error/Error\";\r\n\r\n// import * as actions from \"./../../store/action/index\";\r\n\r\nconst ApplyProduct = (props) => {\r\n const [productvalue] = useState(\r\n props.location.product_id || sessionStorage.getItem(\"product_id\") || \"\"\r\n );\r\n const [firstName] = useState(props.firstName || \"\");\r\n const [lastName] = useState(props.lastName || \"\");\r\n\r\n const label = {\r\n color: \"#000\",\r\n width: \"50%\",\r\n };\r\n\r\n const [reren, setReren] = useState(\"\");\r\n\r\n const [applyForm, setApplyForm] = useState({\r\n form: {\r\n name: {\r\n order: \"0\",\r\n label: \"ชื่อ:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"ชื่อ\",\r\n },\r\n validation: {\r\n required: true,\r\n },\r\n display: true,\r\n value: firstName,\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n labelError: \"ชื่อ\",\r\n textInvalid: \"\",\r\n },\r\n lastname: {\r\n order: \"1\",\r\n label: \"นามสกุล:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"นามสกุล\",\r\n },\r\n display: true,\r\n value: lastName,\r\n validation: {\r\n required: true,\r\n },\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n labelError: \"นามสกุล\",\r\n textInvalid: \"\",\r\n },\r\n tel: {\r\n order: \"2\",\r\n label: \"เบอร์มือถือ:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"เบอร์มือถือ\",\r\n },\r\n type: \"number\",\r\n mode: \"numeric\",\r\n display: true,\r\n value: \"\",\r\n maxLength: 10, //ใช้ของ input html\r\n validation: {\r\n required: true,\r\n isNumeric: true,\r\n minLength: 10, //ใช้ของ utility เพราะต้องการดัก spacebar\r\n maxLength: 10,\r\n },\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n labelError: \"เบอร์มือถือ\",\r\n textInvalid: \"\",\r\n },\r\n email: {\r\n order: \"3\",\r\n label: \"อีเมล:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"อีเมล\",\r\n },\r\n display: true,\r\n value: \"\",\r\n validation: {\r\n required: false,\r\n isEmail: true,\r\n },\r\n isEmail: false,\r\n valid: true,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n },\r\n time: {\r\n order: \"4\",\r\n label: \"เวลาที่สะดวกให้ติดต่อกลับ:\",\r\n labelPos: \"left\",\r\n elementType: \"select\",\r\n elementConfig: {\r\n options: [{ value: \"\", displayValue: \"กรุณาเลือก\" }],\r\n },\r\n display: true,\r\n value: \"\",\r\n validation: {},\r\n valid: true,\r\n touched: true,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n // styleInput: select,\r\n },\r\n type: {\r\n order: \"5\",\r\n label: \"ประเภทสินเชื่อ:\",\r\n labelPos: \"left\",\r\n elementType: \"select\",\r\n elementConfig: {\r\n options: [{ value: \"\", displayValue: \"กรุณาเลือก\" }],\r\n },\r\n display: true,\r\n value: productvalue,\r\n validation: {},\r\n valid: true,\r\n touched: true,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n // styleInput: select,\r\n },\r\n cartype: {\r\n order: \"6\",\r\n label: \"ประเภทรถ:\",\r\n labelPos: \"left\",\r\n elementType: \"select\",\r\n elementConfig: {\r\n options: [{ value: \"\", displayValue: \"กรุณาเลือก\" }],\r\n },\r\n display: false,\r\n value: \"\",\r\n validation: {},\r\n valid: true,\r\n touched: true,\r\n styleLabel: label,\r\n // styleInput: { display: \"none\" },\r\n textInvalid: \"\",\r\n // styleInput: select,\r\n },\r\n caryear: {\r\n order: \"7\",\r\n label: \"ปีที่ซื้อรถ (พ.ศ.):\",\r\n labelPos: \"left\",\r\n elementType: \"select\",\r\n elementConfig: {\r\n options: [{ value: \"\", displayValue: \"กรุณาเลือก\" }],\r\n },\r\n display: false,\r\n value: \"\",\r\n validation: {},\r\n valid: true,\r\n touched: true,\r\n styleLabel: label,\r\n // styleInput: { display: \"none\" },\r\n textInvalid: \"\",\r\n // styleInput: select,\r\n },\r\n limit: {\r\n order: \"8\",\r\n label: \"วงเงินที่ต้องการ:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"number\",\r\n placeholder: \"วงเงินที่ต้องการ\",\r\n },\r\n type: \"cash\",\r\n mode: \"numeric\",\r\n display: true,\r\n value: \"\",\r\n validation: {\r\n isNumeric: true,\r\n },\r\n valid: true,\r\n touched: true,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n },\r\n description: {\r\n order: \"9\",\r\n label: \"รายละเอียดเพิ่มเติม:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder:\r\n \"อาทิ ยี่ห้อ รุ่นรถ และปีรถ เพื่อแจ้งเป็นข้อมูลเบื้องต้น\",\r\n },\r\n display: true,\r\n value: \"\",\r\n validation: {},\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n },\r\n },\r\n formIsValid: false,\r\n });\r\n\r\n const onChangeTel = (val) => {\r\n const pattern = /^\\d+$/;\r\n const isValid = pattern.test(val);\r\n if (isValid || val === \"\") {\r\n return val;\r\n } else {\r\n return val.substring(val.length - 1, 0);\r\n }\r\n };\r\n\r\n const inputChangedHandler = (event, field) => {\r\n if (\r\n (event === \"CML\" && field === \"type\") ||\r\n (event === \"PL\" && field === \"type\") ||\r\n (event === \"\" && field === \"type\")\r\n ) {\r\n applyForm.form[\"cartype\"].display = false;\r\n applyForm.form[\"caryear\"].display = false;\r\n } else if (\r\n (event === \"HP-NEW\" && field === \"type\") ||\r\n (event === \"HP-USED\" && field === \"type\") ||\r\n (event === \"SHB\" && field === \"type\") ||\r\n (event === \"CL\" && field === \"type\")\r\n ) {\r\n applyForm.form[\"cartype\"].display = true;\r\n applyForm.form[\"caryear\"].display = true;\r\n }\r\n if (field === \"tel\") {\r\n event = onChangeTel(event);\r\n }\r\n // if (field === \"limit\") {\r\n // event = onChangeCash(event);\r\n // }\r\n const validate = checkValidity(event, applyForm.form[field].validation);\r\n const text = checkError(\r\n validate.code,\r\n applyForm.form[field].labelError,\r\n applyForm.form[field].validation\r\n );\r\n\r\n let updatedFormElement;\r\n if (field === \"email\") {\r\n //formIsValid : true\r\n if (event === \"\") {\r\n updatedFormElement = updateObject(applyForm.form[field], {\r\n value: event,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: false,\r\n isEmail: false,\r\n });\r\n } else {\r\n updatedFormElement = updateObject(applyForm.form[field], {\r\n value: event,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n isEmail: true,\r\n });\r\n }\r\n } else {\r\n updatedFormElement = updateObject(applyForm.form[field], {\r\n value: event,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n }\r\n let updatedForm = updateObject(applyForm.form, {\r\n [field]: updatedFormElement,\r\n });\r\n\r\n let formIsValid = true;\r\n for (let inputIdentifier in updatedForm) {\r\n formIsValid = updatedForm[inputIdentifier].valid && formIsValid;\r\n }\r\n\r\n const updatedState = updateObject(applyForm, {\r\n form: updatedForm,\r\n formIsValid: formIsValid,\r\n });\r\n setApplyForm(updatedState);\r\n };\r\n\r\n const checkedValidate = () => {\r\n if (\r\n applyForm.form[\"type\"].value === \"PL\" ||\r\n applyForm.form[\"type\"].value === \"CML\"\r\n ) {\r\n applyForm.form[\"cartype\"].valid = true;\r\n applyForm.form[\"caryear\"].valid = true;\r\n }\r\n if (\r\n applyForm.form[\"email\"].valid === true &&\r\n applyForm.form[\"name\"].valid === true &&\r\n applyForm.form[\"lastname\"].valid === true &&\r\n applyForm.form[\"tel\"].valid === true\r\n ) {\r\n applyForm.formIsValid = true;\r\n }\r\n if (!applyForm.formIsValid) {\r\n window.scrollTo(0, 450);\r\n let updatedForm;\r\n let arrayObj = [];\r\n let updatedFormElement;\r\n let text;\r\n for (let field in applyForm.form) {\r\n const validate = checkValidity(\r\n applyForm.form[field].value,\r\n applyForm.form[field].validation\r\n );\r\n text = checkError(\r\n validate.code,\r\n applyForm.form[field].labelError,\r\n applyForm.form[field].validation\r\n );\r\n updatedFormElement = updateObject(applyForm.form[field], {\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n arrayObj.push(updatedFormElement);\r\n }\r\n const arrayApply = [];\r\n for (let i in arrayObj) {\r\n if (arrayObj[i].order === \"0\") {\r\n arrayApply[0] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"1\") {\r\n arrayApply[1] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"2\") {\r\n arrayApply[2] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"3\") {\r\n arrayApply[3] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"4\") {\r\n arrayApply[4] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"5\") {\r\n arrayApply[5] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"6\") {\r\n arrayApply[6] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"7\") {\r\n arrayApply[7] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"8\") {\r\n arrayApply[8] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"9\") {\r\n arrayApply[9] = arrayObj[i];\r\n }\r\n }\r\n updatedForm = updateObject(applyForm.form, {\r\n name: arrayApply[0],\r\n lastname: arrayApply[1],\r\n tel: arrayApply[2],\r\n email: arrayApply[3],\r\n time: arrayApply[4],\r\n type: arrayApply[5],\r\n cartype: arrayApply[6],\r\n caryear: arrayApply[7],\r\n limit: arrayApply[8],\r\n description: arrayApply[9],\r\n });\r\n let updatedState = updateObject(applyForm, {\r\n form: updatedForm,\r\n });\r\n\r\n setApplyForm(updatedState);\r\n } else {\r\n sendData();\r\n }\r\n };\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [loadPage, setLoadPage] = useState(true);\r\n\r\n const numberWithCommas = (x) => {\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n };\r\n\r\n const sendData = () => {\r\n setLoading(true);\r\n let apply;\r\n if (props.lineId !== null) {\r\n apply = \"LINE\";\r\n } else if (\r\n sessionStorage.getItem(\"src\") ===\r\n \"mOZl4zuJDIV9CbjgwaaeyabZZrPGhyyC9ZVKhrSzFA0oZ6mTJPJeaRyc6F\"\r\n ) {\r\n apply = \"MYCAR\";\r\n } else {\r\n apply = \"WEB\";\r\n }\r\n\r\n const data = {\r\n FIRST_NAME: applyForm.form.name.value,\r\n LAST_NAME: applyForm.form.lastname.value,\r\n MOBILE_NO: applyForm.form.tel.value,\r\n EMAIL: applyForm.form.email.value,\r\n CONTRACT_TIME: applyForm.form.time.value,\r\n PRODUCT: applyForm.form.type.value,\r\n CAR_TYPE: applyForm.form.cartype.value,\r\n YEAR: applyForm.form.caryear.value,\r\n AMOUNT: applyForm.form.limit.value,\r\n INFORMATION: applyForm.form.description.value,\r\n LINE_ID: props.lineId,\r\n APPLY: apply,\r\n };\r\n\r\n let cartypevalue;\r\n let producttypevalue;\r\n let timevalue;\r\n let caryearvalue;\r\n let amountvalue;\r\n let emailvalue;\r\n\r\n if (applyForm.form.limit.value === \"\") {\r\n amountvalue = \"-\";\r\n } else {\r\n amountvalue = numberWithCommas(data.AMOUNT);\r\n }\r\n\r\n if (applyForm.form.email.value === \"\") {\r\n emailvalue = \"-\";\r\n } else {\r\n emailvalue = applyForm.form.email.value;\r\n }\r\n\r\n if (applyForm.form.caryear.value === \"\") {\r\n caryearvalue = \"-\";\r\n } else {\r\n caryearvalue = applyForm.form.caryear.value;\r\n }\r\n\r\n for (let i in applyForm.form.cartype.elementConfig.options) {\r\n if (\r\n applyForm.form.cartype.elementConfig.options[i].value ===\r\n applyForm.form.cartype.value &&\r\n applyForm.form.cartype.value !== \"\"\r\n ) {\r\n cartypevalue =\r\n applyForm.form.cartype.elementConfig.options[i].displayValue;\r\n } else if (applyForm.form.cartype.value === \"\") {\r\n cartypevalue = \"-\";\r\n }\r\n }\r\n for (let i in applyForm.form.type.elementConfig.options) {\r\n if (\r\n applyForm.form.type.elementConfig.options[i].value ===\r\n applyForm.form.type.value &&\r\n applyForm.form.type.value !== \"\"\r\n ) {\r\n producttypevalue =\r\n applyForm.form.type.elementConfig.options[i].displayValue;\r\n } else if (applyForm.form.type.value === \"\") {\r\n producttypevalue = \"-\";\r\n }\r\n }\r\n for (let i in applyForm.form.time.elementConfig.options) {\r\n if (\r\n applyForm.form.time.elementConfig.options[i].value ===\r\n applyForm.form.time.value &&\r\n applyForm.form.time.value !== \"\"\r\n ) {\r\n timevalue = applyForm.form.time.elementConfig.options[i].displayValue;\r\n } else if (applyForm.form.time.value === \"\") {\r\n timevalue = \"-\";\r\n }\r\n }\r\n axios\r\n .post(API_MYASK + \"/Customer_Apply\", data)\r\n .then((res) => {\r\n const mobile = data.MOBILE_NO;\r\n const amount = amountvalue;\r\n const firstName = data.FIRST_NAME;\r\n const lastName = data.LAST_NAME;\r\n // const email = emailvalue;\r\n const product = producttypevalue;\r\n const carType = cartypevalue;\r\n const year = caryearvalue;\r\n const contractTime = timevalue;\r\n const date = new Date().toLocaleDateString(\"en-GB\").split(\" \");\r\n const time = new Date().toLocaleTimeString(); //date[1];\r\n var mdy = date[0];\r\n mdy = mdy.split(\"/\");\r\n const month = parseInt(mdy[1]);\r\n const day = parseInt(mdy[0]);\r\n const years = parseInt(mdy[2]);\r\n const formattedDate = day + \".\" + month + \".\" + years + \" \" + time;\r\n props.history.push({\r\n pathname: \"/success\",\r\n title: \"การสมัครเสร็จสมบูรณ์\",\r\n path: \"/\",\r\n text: \"ขอบคุณที่ให้ความไว้วางใจกับทางบริษัท\",\r\n // text2: 'ท่านสามารถติดตามผลได้ทาง...'\r\n });\r\n\r\n const dataLine = {\r\n events: [\r\n {\r\n message: {\r\n text: \"confirmed\",\r\n data: {\r\n to: props.lineId,\r\n messages: [\r\n {\r\n type: \"flex\",\r\n altText: \"สนใจสมัคร\",\r\n contents: {\r\n type: \"bubble\",\r\n direction: \"ltr\",\r\n body: {\r\n type: \"box\",\r\n layout: \"vertical\",\r\n contents: [\r\n {\r\n type: \"box\",\r\n layout: \"baseline\",\r\n contents: [\r\n {\r\n type: \"text\",\r\n text: \"สนใจสมัคร\",\r\n flex: 0,\r\n size: \"lg\",\r\n weight: \"bold\",\r\n color: \"#22648A\",\r\n },\r\n ],\r\n },\r\n {\r\n type: \"box\",\r\n layout: \"baseline\",\r\n contents: [\r\n {\r\n type: \"text\",\r\n text: \"฿\" + amount,\r\n flex: 4,\r\n size: \"xxl\",\r\n weight: \"bold\",\r\n },\r\n {\r\n type: \"text\",\r\n text: \"วงเงิน\",\r\n flex: 0,\r\n align: \"end\",\r\n color: \"#999395\",\r\n },\r\n ],\r\n },\r\n {\r\n type: \"box\",\r\n layout: \"vertical\",\r\n contents: [\r\n {\r\n type: \"text\",\r\n text: formattedDate,\r\n flex: 10,\r\n size: \"xxs\",\r\n align: \"start\",\r\n color: \"#B4B2B2\",\r\n },\r\n { type: \"spacer\" },\r\n ],\r\n },\r\n {\r\n type: \"box\",\r\n layout: \"baseline\",\r\n contents: [\r\n {\r\n type: \"text\",\r\n text: \"คุณ\" + firstName + \" \" + lastName,\r\n flex: 4,\r\n size: \"lg\",\r\n align: \"start\",\r\n weight: \"bold\",\r\n color: \"#444444\",\r\n },\r\n ],\r\n },\r\n {\r\n type: \"separator\",\r\n margin: \"sm\",\r\n color: \"#B4B2B2\",\r\n },\r\n {\r\n type: \"box\",\r\n layout: \"vertical\",\r\n contents: [{ type: \"spacer\", size: \"md\" }],\r\n },\r\n {\r\n type: \"text\",\r\n text: mobile,\r\n flex: 4,\r\n size: \"md\",\r\n align: \"start\",\r\n color: \"#444444\",\r\n },\r\n {\r\n type: \"text\",\r\n text: product,\r\n flex: 4,\r\n size: \"md\",\r\n weight: \"bold\",\r\n color: \"#1A7BDC\",\r\n },\r\n {\r\n type: \"text\",\r\n text: carType,\r\n flex: 4,\r\n size: \"md\",\r\n color: \"#1A7BDC\",\r\n },\r\n {\r\n type: \"box\",\r\n layout: \"baseline\",\r\n contents: [\r\n {\r\n type: \"text\",\r\n text: \"ปีที่ซื้อรถ\",\r\n flex: 4,\r\n size: \"md\",\r\n color: \"#B4B2B2\",\r\n },\r\n {\r\n type: \"text\",\r\n text: year,\r\n flex: 5,\r\n align: \"end\",\r\n color: \"#444444\",\r\n },\r\n ],\r\n },\r\n {\r\n type: \"box\",\r\n layout: \"baseline\",\r\n contents: [\r\n {\r\n type: \"text\",\r\n text: \"เวลาที่สะดวก\",\r\n flex: 4,\r\n color: \"#B4B2B2\",\r\n },\r\n {\r\n type: \"text\",\r\n text: contractTime,\r\n flex: 5,\r\n align: \"end\",\r\n color: \"#444444\",\r\n },\r\n ],\r\n },\r\n {\r\n type: \"separator\",\r\n margin: \"md\",\r\n color: \"#B4B2B2\",\r\n },\r\n {\r\n type: \"box\",\r\n layout: \"vertical\",\r\n contents: [{ type: \"spacer\", size: \"md\" }],\r\n },\r\n {\r\n type: \"text\",\r\n text: \"ขอขอบคุณที่วางใจใช้บริการ ASK\",\r\n size: \"md\",\r\n align: \"center\",\r\n gravity: \"center\",\r\n weight: \"bold\",\r\n color: \"#000000\",\r\n wrap: true,\r\n },\r\n ],\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n },\r\n },\r\n ],\r\n };\r\n\r\n if (props.lineId !== null && applyForm.form.limit.value !== \"\") {\r\n axios\r\n .post(API_LINE, dataLine, {\r\n headers: props.lineHeader,\r\n })\r\n .then((res) => {});\r\n }\r\n })\r\n .catch((err) => {\r\n setReren(\r\n \r\n );\r\n });\r\n };\r\n\r\n const submitHandler = (event) => {\r\n event.preventDefault();\r\n checkedValidate();\r\n };\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n if (\r\n props.match.params.product === \"commercial-loan\" ||\r\n props.match.params.product === \"personal-loan\" ||\r\n !props.match.params.product\r\n ) {\r\n applyForm.form[\"cartype\"].display = false;\r\n applyForm.form[\"caryear\"].display = false;\r\n } else {\r\n applyForm.form[\"cartype\"].display = true;\r\n applyForm.form[\"caryear\"].display = true;\r\n }\r\n if (props.match.params.product === \"hire-purchase-new\") {\r\n sessionStorage.setItem(\"product_id\", \"HP-NEW\");\r\n } else if (props.match.params.product === \"hire-purchase-used\") {\r\n sessionStorage.setItem(\"product_id\", \"HP-USED\");\r\n } else if (props.match.params.product === \"sale-and-hire-purchase-back\") {\r\n sessionStorage.setItem(\"product_id\", \"SHB\");\r\n } else if (props.match.params.product === \"car-loan\") {\r\n sessionStorage.setItem(\"product_id\", \"CL\");\r\n } else if (props.match.params.product === \"personal-loan\") {\r\n sessionStorage.setItem(\"product_id\", \"PL\");\r\n } else if (props.match.params.product === \"commercial-loan\") {\r\n sessionStorage.setItem(\"product_id\", \"CML\");\r\n }\r\n let updateState = \"\";\r\n let updateForm = \"\";\r\n let updateProducts = \"\";\r\n let updateTime = \"\";\r\n let updateYear = \"\";\r\n let updateCar = \"\";\r\n let username = \"\";\r\n let token = \"\";\r\n\r\n if (sessionStorage.getItem(\"userName\")) {\r\n username = sessionStorage.getItem(\"userName\");\r\n }\r\n if (sessionStorage.getItem(\"token\")) {\r\n token = sessionStorage.getItem(\"token\");\r\n }\r\n\r\n axios\r\n .get(API_MYASK + \"/Apply?username=\" + username + \"&token=\" + token)\r\n .then((res) => {\r\n let time = applyForm.form.time.elementConfig.options;\r\n let car = applyForm.form.cartype.elementConfig.options;\r\n let year = applyForm.form.caryear.elementConfig.options;\r\n let products = applyForm.form.type.elementConfig.options;\r\n axios.get(API_MYASK + \"/Products\").then((res2) => {\r\n for (let i in res2.data.LIST_DATA) {\r\n products.push({\r\n value: res2.data.LIST_DATA[i].product_id,\r\n displayValue: res2.data.LIST_DATA[i].name_th,\r\n });\r\n }\r\n for (let i in res.data.DATA.TIME) {\r\n time.push({\r\n value: res.data.DATA.TIME[i].val_1,\r\n displayValue: res.data.DATA.TIME[i].val_2,\r\n });\r\n }\r\n for (let i in res.data.DATA.CAR) {\r\n car.push({\r\n value: res.data.DATA.CAR[i].val_1,\r\n displayValue: res.data.DATA.CAR[i].val_2,\r\n });\r\n }\r\n for (let i in res.data.DATA.YEAR) {\r\n year.push({\r\n value: res.data.DATA.YEAR[i].val_1,\r\n displayValue: res.data.DATA.YEAR[i].val_1,\r\n });\r\n }\r\n\r\n updateProducts = updateObject(applyForm.form.type, {\r\n value: sessionStorage.getItem(\"product_id\"),\r\n elementConfig: updateObject(applyForm.form.type.elementConfig, {\r\n options: products,\r\n }),\r\n });\r\n updateTime = updateObject(applyForm.form.time, {\r\n elementConfig: updateObject(applyForm.form.time.elementConfig, {\r\n options: time,\r\n }),\r\n });\r\n updateCar = updateObject(applyForm.form.cartype, {\r\n elementConfig: updateObject(applyForm.form.cartype.elementConfig, {\r\n options: car,\r\n }),\r\n });\r\n updateYear = updateObject(applyForm.form.caryear, {\r\n elementConfig: updateObject(applyForm.form.caryear.elementConfig, {\r\n options: year,\r\n }),\r\n });\r\n if (username !== \"\" && token !== \"\") {\r\n let updateName = updateObject(applyForm.form.name, {\r\n value: res.data.DATA.FirstName,\r\n });\r\n let updateLastName = updateObject(applyForm.form.lastname, {\r\n value: res.data.DATA.LastName,\r\n });\r\n updateForm = updateObject(applyForm.form, {\r\n time: updateTime,\r\n type: updateProducts,\r\n cartype: updateCar,\r\n caryear: updateYear,\r\n name: updateName,\r\n lastname: updateLastName,\r\n });\r\n } else {\r\n updateForm = updateObject(applyForm.form, {\r\n time: updateTime,\r\n type: updateProducts,\r\n cartype: updateCar,\r\n caryear: updateYear,\r\n });\r\n }\r\n updateState = updateObject(applyForm, {\r\n form: updateForm,\r\n });\r\n\r\n setLoadPage(false);\r\n setApplyForm(updateState);\r\n });\r\n });\r\n return;\r\n }, []);\r\n\r\n const formElementsArray = [];\r\n for (let key in applyForm.form) {\r\n if (applyForm.form[key].display === true) {\r\n formElementsArray[applyForm.form[key].order] = {\r\n id: key,\r\n config: applyForm.form[key],\r\n };\r\n }\r\n }\r\n return (\r\n
\r\n {reren}\r\n \r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n lineId: state.line.userId,\r\n lineHeader: state.line.lineHeader,\r\n firstName: state.custInfo.firstName,\r\n lastName: state.custInfo.lastName,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(ApplyProduct);\r\n","import React from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Button from \"./../../UI/Button/Button\";\r\nimport \"../Apply.css\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\n\r\nconst ApplyStep5 = (props) => {\r\n let title = props.location.title;\r\n let path = props.location.path;\r\n let text = props.location.text;\r\n // console.log(props)\r\n // let text2 = props.location.text2;\r\n\r\n // const [orderForm , setOrderForm] = useState({\r\n\r\n // });\r\n\r\n // const [timer, setTimer] = useState(5);\r\n\r\n // useEffect(() => {\r\n // const x = setInterval(() => {\r\n // if (timer > 0) {\r\n // setTimer(timer - 1);\r\n // }\r\n // }, 1000);\r\n\r\n // return () => {\r\n // clearInterval(x);\r\n // }\r\n // }, [timer]);\r\n // let redirectpage;\r\n // if (timer == 0) {\r\n // redirectpage = ;\r\n // }\r\n\r\n let redirectpage;\r\n // ใช้ในกรณีที่อัพขึ้นเซิฟเวอร์เทส\r\n // if (!title && !path && !text) {\r\n // redirectpage = ;\r\n // }\r\n // ใช้ในกรณีที่ใช้ใน localhost หรือ production\r\n if (!title && !path && !text) {\r\n redirectpage = ;\r\n }\r\n\r\n let buttonSubmit = null;\r\n if (!props.single) {\r\n // ใช้ในกรณีที่ใช้ใน localhost หรือ production\r\n let realpath = path;\r\n // ใช้ในกรณีที่อัพขึ้นเซิฟเวอร์เทส\r\n // let realpath = \"/myask/#\" + path;\r\n\r\n buttonSubmit = (\r\n \r\n );\r\n }\r\n\r\n return (\r\n
\r\n {redirectpage}\r\n \r\n
\r\n \r\n

{title}

\r\n
\r\n \r\n

{text}

\r\n
\r\n {/* \r\n

กรุณาคลิกเพื่อกลับไปยังหน้าเดิม

\r\n
*/}\r\n \r\n
{buttonSubmit}
\r\n
\r\n
\r\n
\r\n );\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n single: state.global.single,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps)(ApplyStep5);\r\n","import React, { useState } from \"react\";\r\nimport \"./forgot.css\";\r\nimport Input from \"./../../../components/UI/Input/Input\";\r\nimport {\r\n updateObject,\r\n checkValidity,\r\n checkError,\r\n} from \"./../../../shared/utility\";\r\nimport axios from \"axios\";\r\nimport { API_MYASK } from \"../../../shared/constant\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nconst ResetPassword = (props) => {\r\n const [resetPassForm, setResetPassForm] = useState({\r\n form: {\r\n password: {\r\n order: \"0\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"password\",\r\n placeholder: \"\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n minLength: 4,\r\n maxLength: 50,\r\n },\r\n valid: false,\r\n touched: false,\r\n textInvalid: \"\",\r\n label: \"รหัสผ่าน\",\r\n labelError: \"รหัสผ่าน\",\r\n },\r\n confirmPassword: {\r\n order: \"1\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"password\",\r\n placeholder: \"\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n minLength: 4,\r\n maxLength: 50,\r\n },\r\n valid: false,\r\n touched: false,\r\n textInvalid: \"กรุณายืนยัน รหัสผ่าน\",\r\n label: \"ยืนยันรหัสผ่าน\",\r\n checkPass: false,\r\n labelError: \"ยืนยันรหัสผ่าน\",\r\n },\r\n },\r\n formIsValid: false,\r\n });\r\n\r\n const onChangeHandler = (val, id) => {\r\n const validate = checkValidity(val, resetPassForm.form[id].validation);\r\n let text = checkError(\r\n validate.code,\r\n resetPassForm.form[id].labelError,\r\n resetPassForm.form[id].validation\r\n );\r\n let checkConfirmpass;\r\n let updatedFormElement;\r\n let updatedConfirmpass;\r\n let updatedPassword;\r\n if (id === \"email\") {\r\n if (val === \"\") {\r\n updatedFormElement = updateObject(resetPassForm.form[id], {\r\n value: val,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: false,\r\n isEmail: false,\r\n });\r\n } else {\r\n updatedFormElement = updateObject(resetPassForm.form[id], {\r\n value: val,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n isEmail: true,\r\n });\r\n }\r\n } else if (id === \"confirmPassword\") {\r\n if (val === \"\") {\r\n updatedFormElement = updateObject(resetPassForm.form[id], {\r\n value: val,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n checkPass: false,\r\n });\r\n } else if (resetPassForm.form.password.value !== val) {\r\n text = \"รหัสผ่าน และ ยืนยันรหัสผ่านไม่ตรงกัน\";\r\n updatedFormElement = updateObject(resetPassForm.form[id], {\r\n value: val,\r\n valid: !validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n checkPass: false,\r\n });\r\n } else if (resetPassForm.form.password.value === val) {\r\n updatedFormElement = updateObject(resetPassForm.form[id], {\r\n value: val,\r\n valid: validate.isValid,\r\n touched: true,\r\n checkPass: true,\r\n textInvalid: \"\",\r\n });\r\n }\r\n } else if (\r\n id === \"password\" &&\r\n resetPassForm.form.confirmPassword.value !== val &&\r\n resetPassForm.form.confirmPassword.touched === true\r\n ) {\r\n let textConfirmpass;\r\n if (resetPassForm.form.confirmPassword.value === \"\") {\r\n textConfirmpass = \"กรุณาระบุยืนยันรหัสผ่าน\";\r\n updatedConfirmpass = updateObject(resetPassForm.form.confirmPassword, {\r\n valid: false,\r\n textInvalid: textConfirmpass,\r\n touched: true,\r\n checkPass: false,\r\n });\r\n } else {\r\n textConfirmpass = \"รหัสผ่าน และ ยืนยันรหัสผ่านไม่ตรงกัน\";\r\n updatedConfirmpass = updateObject(resetPassForm.form.confirmPassword, {\r\n valid: false,\r\n textInvalid: textConfirmpass,\r\n touched: true,\r\n checkPass: false,\r\n });\r\n }\r\n updatedPassword = updateObject(resetPassForm.form.password, {\r\n value: val,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n checkConfirmpass = true;\r\n } else if (\r\n id === \"password\" &&\r\n resetPassForm.form.confirmPassword.value === val &&\r\n resetPassForm.form.confirmPassword.touched === true\r\n ) {\r\n let textConfirmpass;\r\n if (resetPassForm.form.confirmPassword.value === \"\") {\r\n textConfirmpass = \"กรุณาระบุยืนยันรหัสผ่าน\";\r\n updatedConfirmpass = updateObject(resetPassForm.form.confirmPassword, {\r\n valid: false,\r\n textInvalid: textConfirmpass,\r\n touched: true,\r\n checkPass: false,\r\n });\r\n } else {\r\n updatedConfirmpass = updateObject(resetPassForm.form.confirmPassword, {\r\n valid: true,\r\n touched: true,\r\n checkPass: true,\r\n textInvalid: \"\",\r\n });\r\n }\r\n updatedPassword = updateObject(resetPassForm.form.password, {\r\n value: val,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n checkConfirmpass = true;\r\n } else {\r\n updatedFormElement = updateObject(resetPassForm.form[id], {\r\n value: val,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n }\r\n let updatedForm;\r\n if (checkConfirmpass) {\r\n updatedForm = updateObject(resetPassForm.form, {\r\n confirmPassword: updatedConfirmpass,\r\n password: updatedPassword,\r\n });\r\n } else {\r\n updatedForm = updateObject(resetPassForm.form, {\r\n [id]: updatedFormElement,\r\n });\r\n }\r\n let formIsValid = true;\r\n for (let inputIdentifier in updatedForm) {\r\n formIsValid = updatedForm[inputIdentifier].valid && formIsValid;\r\n }\r\n const updatedState = updateObject(resetPassForm, {\r\n form: updatedForm,\r\n formIsValid: formIsValid,\r\n });\r\n setResetPassForm(updatedState);\r\n };\r\n\r\n const checkedValidate = () => {\r\n if (\r\n !resetPassForm.formIsValid ||\r\n !resetPassForm.form.confirmPassword.checkPass\r\n ) {\r\n let updatedForm;\r\n let arrayObj = [];\r\n let updatedFormElement;\r\n let text;\r\n for (let field in resetPassForm.form) {\r\n const validate = checkValidity(\r\n resetPassForm.form[field].value,\r\n resetPassForm.form[field].validation\r\n );\r\n if (\r\n field === \"confirmPassword\" &&\r\n resetPassForm.form.confirmPassword.checkPass === false\r\n ) {\r\n if (\r\n (resetPassForm.form.password.value === \"\" &&\r\n resetPassForm.form.confirmPassword.value === \"\") ||\r\n (resetPassForm.form.password.value !== \"\" &&\r\n resetPassForm.form.confirmPassword.value === \"\")\r\n ) {\r\n text = \"กรุณาระบุยืนยันรหัสผ่าน\";\r\n } else {\r\n text = \"รหัสผ่าน และ ยืนยันรหัสผ่านไม่ตรงกัน\";\r\n }\r\n updatedFormElement = updateObject(resetPassForm.form[field], {\r\n valid: false,\r\n touched: true,\r\n textInvalid: text,\r\n });\r\n } else {\r\n text = checkError(\r\n validate.code,\r\n resetPassForm.form[field].labelError,\r\n resetPassForm.form[field].validation\r\n );\r\n updatedFormElement = updateObject(resetPassForm.form[field], {\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n }\r\n arrayObj.push(updatedFormElement);\r\n }\r\n\r\n let arrayResetPW = [];\r\n for (let i in arrayObj) {\r\n if (arrayObj[i].order === \"0\") {\r\n arrayResetPW[0] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"1\") {\r\n arrayResetPW[1] = arrayObj[i];\r\n }\r\n }\r\n\r\n updatedForm = updateObject(resetPassForm.form, {\r\n password: arrayResetPW[0],\r\n confirmPassword: arrayResetPW[1],\r\n });\r\n let updatedState = updateObject(resetPassForm, {\r\n form: updatedForm,\r\n });\r\n setResetPassForm(updatedState);\r\n } else {\r\n resetPass();\r\n }\r\n };\r\n\r\n let otpRedirect = null;\r\n if (!props.location.form) {\r\n otpRedirect = ;\r\n }\r\n\r\n const resetPass = () => {\r\n axios\r\n .get(\r\n API_MYASK +\r\n \"/ResetPassword?password=\" +\r\n resetPassForm.form.password.value +\r\n \"&username=\" +\r\n props.location.form.username.value\r\n )\r\n .then((res) => {\r\n if (res.data.CODE === \"200\") {\r\n props.history.push({\r\n pathname: \"/success\",\r\n title: \"เปลี่ยนรหัสผ่านเสร็จสมบูรณ์\",\r\n path: \"/login\",\r\n });\r\n }\r\n });\r\n };\r\n\r\n const submitHandler = (event) => {\r\n window.scrollTo(0, 0);\r\n event.preventDefault();\r\n checkedValidate();\r\n };\r\n\r\n const [type, setType] = useState(\"password\");\r\n const [showPW, setShowPW] = useState(false);\r\n const onShowPW = () => {\r\n if (type === \"password\") {\r\n setType(\"input\");\r\n setShowPW(true);\r\n } else {\r\n setType(\"password\");\r\n setShowPW(false);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n {otpRedirect}\r\n

รีเซ็ตรหัสผ่าน

\r\n
\r\n
\r\n
\r\n {/* */}\r\n \r\n onChangeHandler(event.target.value, \"password\")\r\n }\r\n label={resetPassForm.form.password.label}\r\n styleLabel={{ width: \"100%\", padding: \"0px\" }}\r\n labelPos={\"top\"}\r\n onClick={() => onShowPW()}\r\n show={showPW}\r\n />\r\n
\r\n
\r\n {/* */}\r\n \r\n onChangeHandler(event.target.value, \"confirmPassword\")\r\n }\r\n label={resetPassForm.form.confirmPassword.label}\r\n styleLabel={{ width: \"100%\", padding: \"0px\" }}\r\n labelPos={\"top\"}\r\n onClick={() => onShowPW()}\r\n show={showPW}\r\n />\r\n
\r\n\r\n
\r\n \r\n ตั้งรหัสผ่านใหม่\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ResetPassword;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport axios from \"axios\";\r\n\r\nimport { API_MYASK_HEADER } from \"../../shared/constant\";\r\n\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { InputTextarea } from \"primereact/inputtextarea\";\r\nimport Loading from \"../../components/UI/Loading/Loading\";\r\nimport { RadioButton } from \"primereact/radiobutton\";\r\n\r\nconst DummyPage = (props) => {\r\n const [urlInput, setUrlInput] = useState(\"\");\r\n const [authInput, setAuthInput] = useState(\"\");\r\n const [method, setMethod] = useState(\"POST\");\r\n const [response, setResponse] = useState(\"\");\r\n const [loading, setLoading] = useState(false);\r\n const [bodyData, setBodyData] = useState(\r\n JSON.stringify(\r\n {\r\n contacts: [\"25-6410006\", \"22-6400521\", \"22-6400662\"],\r\n from: \"01-01-2021\",\r\n to: \"01-12-2021\",\r\n },\r\n null,\r\n \"\\t\"\r\n )\r\n );\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, []);\r\n\r\n const callApi = () => {\r\n setResponse(\"\");\r\n setLoading(true);\r\n\r\n if (method == \"GET\") {\r\n axios\r\n .get(urlInput, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n setLoading(false);\r\n setResponse(JSON.stringify(res.data));\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n console.log(err.message);\r\n setResponse(err.message);\r\n });\r\n } else if (method == \"POST\") {\r\n const req = JSON.parse(bodyData);\r\n\r\n // const req = {\r\n // contacts: [\"25-6410006\", \"22-6400521\", \"22-6400662\"],\r\n // from: \"01-01-2021\",\r\n // to: \"01-12-2021\",\r\n // };\r\n\r\n axios\r\n .post(urlInput, req, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n setLoading(false);\r\n setResponse(JSON.stringify(res.data));\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n console.log(err.message);\r\n setResponse(err.message);\r\n });\r\n }\r\n };\r\n\r\n const callAuthorize = () => {\r\n setLoading(true);\r\n axios\r\n .post(\r\n \"https://api.ask.co.th/TEST/MYASK/api/v1/oauth2/token\",\r\n {\r\n client_id: \"XGz2VZ9dB0Ri0FJQiakZVyHZFF6Sbpf9\",\r\n client_secret: \"fxw87NCCtHzVTJ0o85wbappgcH8Qef5p\",\r\n grant_type: \"client_credentials\",\r\n scope: \"read\",\r\n },\r\n {\r\n headers: API_MYASK_HEADER,\r\n }\r\n )\r\n .then((res) => {\r\n setLoading(false);\r\n var token = res.data.access_token;\r\n var tokenType = res.data.token_type;\r\n setAuthInput(tokenType + \" \" + token);\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n console.log(err.message);\r\n });\r\n };\r\n\r\n return (\r\n \r\n
\r\n
Form For Post Data
\r\n
\r\n \r\n Production\r\n
\r\n
\r\n \r\n https://asia-east2-myask-b2656.cloudfunctions.net/myaskAPI/payments/histories\r\n \r\n
\r\n
\r\n
\r\n \r\n Develop\r\n
\r\n
\r\n \r\n https://asia-east2-myask-dev.cloudfunctions.net/myaskAPI/payments/histories\r\n \r\n
\r\n
\r\n
\r\n \r\n Url\r\n
\r\n
\r\n setUrlInput(e.target.value)}\r\n />\r\n
\r\n
\r\n
\r\n \r\n Method\r\n
\r\n
\r\n
\r\n setMethod(\"GET\")}\r\n checked={method === \"GET\"}\r\n />\r\n \r\n
\r\n
\r\n setMethod(\"POST\")}\r\n checked={method === \"POST\"}\r\n />\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Authorize\r\n
\r\n
\r\n setAuthInput(e.target.value)}\r\n placeholder=\"Bearer xxxxxxxxx\"\r\n />\r\n callAuthorize()}\r\n />\r\n
\r\n \r\n
\r\n \r\n Body JSON\r\n
\r\n
\r\n setBodyData(e.target.value)}\r\n />\r\n
\r\n \r\n
\r\n callApi()}\r\n />\r\n
\r\n {loading == true ? : null}\r\n
\r\n Result:\r\n
\r\n {response}\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default DummyPage;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport \"./forgot.css\";\r\nimport Input from \"./../../../components/UI/Input/Input\";\r\nimport {\r\n updateObject,\r\n checkValidity,\r\n checkError,\r\n randNumber,\r\n randString,\r\n logError,\r\n} from \"./../../../shared/utility\";\r\nimport axios from \"axios\";\r\nimport { API_MYASK, API_MYASK_HEADER, API_OTP } from \"../../../shared/constant\";\r\n// import { Redirect } from \"react-router-dom\";\r\nimport ModalError from \"./../../../components/UI/Error/Error\";\r\n\r\nconst ForgotUsername = (props) => {\r\n const [resetPassForm, setResetPassForm] = useState({\r\n form: {\r\n mobileNo: {\r\n order: \"0\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"\",\r\n },\r\n value: \"\",\r\n maxLength: 10, //ใช้ของ input html\r\n validation: {\r\n required: true,\r\n isNumeric: true,\r\n minLength: 10, //ใช้ของ utility เพราะต้องการดัก spacebar\r\n maxLength: 10,\r\n },\r\n mode: \"numeric\",\r\n valid: false,\r\n touched: false,\r\n textInvalid: \"\",\r\n label: \"เบอร์โทรศัพท์\",\r\n labelError: \"เบอร์โทรศัพท์\",\r\n },\r\n username: {\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: false,\r\n },\r\n valid: true,\r\n touched: true,\r\n textInvalid: \"\",\r\n label: \"\",\r\n labelError: \"\",\r\n },\r\n },\r\n formIsValid: false,\r\n });\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, []);\r\n\r\n const onChangeTel = (val) => {\r\n const pattern = /^\\d+$/;\r\n const isValid = pattern.test(val);\r\n if (isValid || val === \"\") {\r\n return val;\r\n } else {\r\n return val.substring(val.length - 1, 0);\r\n }\r\n };\r\n\r\n const onChangeHandler = (val, id) => {\r\n val = onChangeTel(val);\r\n const validate = checkValidity(val, resetPassForm.form[id].validation);\r\n let text = checkError(\r\n validate.code,\r\n resetPassForm.form[id].labelError,\r\n resetPassForm.form[id].validation\r\n );\r\n let updatedFormElement;\r\n updatedFormElement = updateObject(resetPassForm.form[id], {\r\n value: val,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n let updatedForm = updateObject(resetPassForm.form, {\r\n [id]: updatedFormElement,\r\n });\r\n let formIsValid = true;\r\n for (let inputIdentifier in updatedForm) {\r\n formIsValid = updatedForm[inputIdentifier].valid && formIsValid;\r\n }\r\n const updatedState = updateObject(resetPassForm, {\r\n form: updatedForm,\r\n formIsValid: formIsValid,\r\n });\r\n setResetPassForm(updatedState);\r\n };\r\n\r\n const checkedValidate = () => {\r\n if (!resetPassForm.formIsValid) {\r\n let updatedForm;\r\n let arrayObj = [];\r\n let updatedFormElement;\r\n let text;\r\n for (let field in resetPassForm.form) {\r\n const validate = checkValidity(\r\n resetPassForm.form[field].value,\r\n resetPassForm.form[field].validation\r\n );\r\n text = checkError(\r\n validate.code,\r\n resetPassForm.form[field].labelError,\r\n resetPassForm.form[field].validation\r\n );\r\n updatedFormElement = updateObject(resetPassForm.form[field], {\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n\r\n arrayObj.push(updatedFormElement);\r\n }\r\n let arrayForgotUserName = [];\r\n for (let i in arrayObj) {\r\n if (arrayObj[i].order === \"0\") {\r\n arrayForgotUserName[0] = arrayObj[i];\r\n }\r\n }\r\n\r\n updatedForm = updateObject(resetPassForm.form, {\r\n mobileNo: arrayForgotUserName[0],\r\n });\r\n let updatedState = updateObject(resetPassForm, {\r\n form: updatedForm,\r\n });\r\n setResetPassForm(updatedState);\r\n } else {\r\n resetPass();\r\n }\r\n };\r\n\r\n const [reren, setReren] = useState(\"\");\r\n\r\n const resetPass = () => {\r\n //--- 7/1/2020 ถ้าจะเอา otp กลับมา ให้ ลบ code นี้ออก ---/\r\n /*\r\n axios.get(API_MYASK + \"/ForgetUsername?tel=\" + resetPassForm.form.mobileNo.value)\r\n .then(res => {\r\n if (res.data.CODE === '200') {\r\n props.history.push({\r\n pathname: '/success',\r\n title: \"ชื่อผู้ใช้งานของคุณคือ\",\r\n text: res.data.LIST_DATA[0].USER_NAME,\r\n path: \"/login\"\r\n });\r\n } else {\r\n const updatedState =\r\n updateObject(resetPassForm,\r\n {\r\n form: updateObject(resetPassForm.form,\r\n {\r\n mobileNo: updateObject(resetPassForm.form.mobileNo, {\r\n textInvalid: 'ไม่พบ เบอร์โทรศัพท์',\r\n touched: true,\r\n // valid: false\r\n })\r\n }\r\n )\r\n }\r\n )\r\n setResetPassForm(updatedState);\r\n }\r\n })\r\n */\r\n //------ End ถ้าจะเอา otp กลับมา ให้ ลบ code นี้ออก -------//\r\n\r\n //------- 7/1/2020 ปิด otp\r\n //------- ถ้าจะเปิด แค่เอาคอมเม้นด้านล่างออก แล้วคอมเม้นด้านบน\r\n\r\n axios\r\n .get(\r\n API_MYASK + \"/ForgetUsername?tel=\" + resetPassForm.form.mobileNo.value\r\n )\r\n .then((res) => {\r\n if (res.data.CODE === \"200\") {\r\n let username = res.data.LIST_DATA[0].USER_NAME;\r\n const refOtp = randString(6);\r\n const passOtp = randNumber(6);\r\n axios\r\n .post(API_OTP, {\r\n mobile: resetPassForm.form.mobileNo.value,\r\n refOtp: refOtp,\r\n passOtp: passOtp,\r\n })\r\n .then((res) => {\r\n // For Test\r\n const otpData = {\r\n refOtp: refOtp,\r\n passOtp: passOtp,\r\n mobile: resetPassForm.form.mobileNo.value,\r\n };\r\n axios\r\n .post(API_MYASK + \"/SaveOTP\", otpData, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n if (res.data.CODE === \"200\") {\r\n props.history.push({\r\n pathname: \"/otp\",\r\n mobile: \"mobile\",\r\n refOtp: refOtp,\r\n otpPass: passOtp,\r\n username: username,\r\n mobileNo: resetPassForm.form.mobileNo.value,\r\n status: \"forgot\",\r\n });\r\n } else {\r\n logError(\r\n \"forgot username(1)\" +\r\n res.data.MSG +\r\n \" \" +\r\n res.data.CODE +\r\n \" \" +\r\n resetPassForm.form.mobileNo.value\r\n );\r\n }\r\n })\r\n .catch((err) => {\r\n err =\r\n \"forgot username(2)\" +\r\n err +\r\n \",\" +\r\n resetPassForm.form.mobileNo.value +\r\n \",\" +\r\n refOtp +\r\n \",\" +\r\n passOtp +\r\n \";\";\r\n logError(err);\r\n setReren(\r\n \r\n );\r\n });\r\n })\r\n .catch((err) => {\r\n err =\r\n \"forgot username(3),\" +\r\n err +\r\n \",\" +\r\n resetPassForm.form.mobileNo.value +\r\n \",\" +\r\n refOtp +\r\n \",\" +\r\n passOtp +\r\n \";\";\r\n logError(err);\r\n setReren(\r\n \r\n );\r\n });\r\n } else {\r\n const updatedState = updateObject(resetPassForm, {\r\n form: updateObject(resetPassForm.form, {\r\n mobileNo: updateObject(resetPassForm.form.mobileNo, {\r\n textInvalid: \"ไม่พบ เบอร์โทรศัพท์\",\r\n touched: true,\r\n // valid: false\r\n }),\r\n }),\r\n });\r\n setResetPassForm(updatedState);\r\n }\r\n });\r\n\r\n //------ End ปิด Otp ----//\r\n };\r\n\r\n const submitHandler = (event) => {\r\n window.scrollTo(0, 0);\r\n\r\n event.preventDefault();\r\n checkedValidate();\r\n };\r\n return (\r\n
\r\n {reren}\r\n

ลืมชื่อผู้ใช้งาน

\r\n
\r\n
\r\n
\r\n {/* */}\r\n \r\n onChangeHandler(event.target.value, \"mobileNo\")\r\n }\r\n label={resetPassForm.form.mobileNo.label}\r\n styleLabel={{ width: \"100%\", padding: \"0px\" }}\r\n lablePos={\"top\"}\r\n />\r\n
\r\n
\r\n \r\n ยืนยัน\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ForgotUsername;\r\n","import React from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Button from './../Button/Button';\r\n// import '../Apply.css';\r\nimport { Redirect } from 'react-router-dom'\r\n\r\nconst BlankPage = () => {\r\n\r\n return (\r\n
\r\n \r\n \r\n

ขออภัยค่ะ ไม่พบหน้าเว็บไซต์ที่ท่านต้องการ

\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default BlankPage;\r\n","import React from \"react\";\r\nimport { Card } from \"primereact/card\";\r\nimport { Divider } from \"primereact/divider\";\r\n\r\nimport Stepper from \"../UI/Steppers/Stepper\";\r\nimport { numberWithCommas } from \"../../shared/utility\";\r\n\r\nconst trackingRequest = (props) => {\r\n const { request } = props;\r\n\r\n return (\r\n \r\n
\r\n
\r\n

{request.ref_code}

\r\n
\r\n
\r\n

{request.reg_num}

\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n

{request.fin_type}

\r\n
\r\n
\r\n

\r\n ยอดสินเชื่อ:{\" \"}\r\n {numberWithCommas(\r\n parseFloat(Math.round(request.fin_amt * 100) / 100).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n
\r\n

\r\n จำนวนงวดทั้งหมด: {request.terms} งวด\r\n

\r\n
\r\n {request.body ? (\r\n
\r\n

{request.body}

\r\n
\r\n ) : (\r\n

\r\n )}\r\n {request.brand ? (\r\n
\r\n

\r\n {request.brand} - {request.asset_description}\r\n

\r\n
\r\n ) : (\r\n

\r\n )}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default trackingRequest;\r\n\r\n// ref_code(pin):\"106209H00122\"\r\n// result_task(pin):\"CANCEL\"\r\n// fin_type(pin):\"สินเชื่อรถยนต์\"\r\n// agr_code(pin):\"\"\r\n// new_tr(pin):\"N\"\r\n// fin_ty(pin):\"1\"\r\n// fin_amt(pin):\"2080500\"\r\n// down_amt(pin):\"109500\"\r\n// terms(pin):\"48\"\r\n// body(pin):\"รถโดยสารเพื่อการพาณิชย์ : (Commercial Bus)\"\r\n// asset_description(pin):\"COASTER\"\r\n// brand(pin):\"TOYOTA\"\r\n// reg_num(pin):\" \"\r\n// model_name(pin):\"COASTER\"\r\n// disburse_date(pin):\"\"\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport * as actions from \"../../store/action/index\";\r\nimport * as actionTypes from \"../../store/action/actionTypes\";\r\nimport Loading from \"./../../components/UI/Loading/Loading\";\r\nimport TrackingRequest from \"../../components/Tracking/TrackingRequest\";\r\n\r\nconst TrackingRequests = (props) => {\r\n return (\r\n
\r\n {props.requests != null && props.requests.length === 0 && (\r\n
\r\n

ไม่พบข้อมูล

\r\n
\r\n )}\r\n {props.requestsState === actionTypes.VIEW_STATE.LOADING && (\r\n
\r\n \r\n
\r\n )}\r\n\r\n
\r\n {props.requests != null &&\r\n props.requests.length > 0 &&\r\n props.requests.map((request, index) => (\r\n \r\n \r\n
\r\n ))}\r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n requests: state.tracking.requests,\r\n requestsState: state.tracking.requestsState,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onLogout: () => dispatch(actions.logout()),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(TrackingRequests);\r\n","import React from \"react\";\r\nimport { Card } from \"primereact/card\";\r\nimport { Divider } from \"primereact/divider\";\r\n\r\nimport SteppersCovid19 from \"../UI/SteppersCovid19/StepperCovid19\";\r\nimport { numberWithCommas } from \"../../shared/utility\";\r\n\r\nconst trackingRequestCovid = (props) => {\r\n const { request } = props;\r\n\r\n return (\r\n \r\n
\r\n
\r\n

เลขที่สัญญา

\r\n
\r\n
\r\n

{request.agr_code}

\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n

ข้อมูลทรัพย์สิน

\r\n
\r\n {request.body ? (\r\n
\r\n

{request.body}

\r\n
\r\n ) : null}\r\n {request.brand || request.asset_description ? (\r\n
\r\n

\r\n {request.brand} - {request.asset_description}\r\n

\r\n
\r\n ) : null}\r\n {request.reg_num || request.reg_province ? (\r\n
\r\n

\r\n {request.reg_num} {request.reg_province}\r\n

\r\n
\r\n ) : null}\r\n {!request.body &&\r\n !request.brand &&\r\n !request.asset_description &&\r\n !request.reg_num &&\r\n !request.reg_province && (\r\n
\r\n

-

\r\n
\r\n )}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default trackingRequestCovid;\r\n\r\n// ref_code(pin):\"106209H00122\"\r\n// result_task(pin):\"CANCEL\"\r\n// fin_type(pin):\"สินเชื่อรถยนต์\"\r\n// agr_code(pin):\"\"\r\n// new_tr(pin):\"N\"\r\n// fin_ty(pin):\"1\"\r\n// fin_amt(pin):\"2080500\"\r\n// down_amt(pin):\"109500\"\r\n// terms(pin):\"48\"\r\n// body(pin):\"รถโดยสารเพื่อการพาณิชย์ : (Commercial Bus)\"\r\n// asset_description(pin):\"COASTER\"\r\n// brand(pin):\"TOYOTA\"\r\n// reg_num(pin):\" \"\r\n// model_name(pin):\"COASTER\"\r\n// disburse_date(pin):\"\"\r\n","import React from \"react\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport * as actions from \"../../store/action/index\";\r\nimport * as actionTypes from \"../../store/action/actionTypes\";\r\nimport Loading from \"./../../components/UI/Loading/Loading\";\r\nimport TrackingRequestCovid from \"../../components/TrackingCovid19/TrackingRequestCovid\";\r\n\r\nconst TrackingRequestsCovid = (props) => {\r\n return (\r\n
\r\n {props.requestsCovid != null && props.requestsCovid.length === 0 && (\r\n
\r\n

ไม่พบข้อมูล

\r\n
\r\n )}\r\n {props.requestsCovidState === actionTypes.VIEW_STATE.LOADING && (\r\n
\r\n \r\n
\r\n )}\r\n\r\n
\r\n {props.requestsCovid != null &&\r\n props.requestsCovid.length > 0 &&\r\n props.requestsCovid.map((request, index) => (\r\n \r\n \r\n
\r\n ))}\r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n requestsCovid: state.tracking.requestsCovid,\r\n requestsCovidState: state.tracking.requestsCovidState,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onLogout: () => dispatch(actions.logout()),\r\n };\r\n};\r\n\r\nexport default connect(\r\n mapStateToProps,\r\n mapDispatchToProps\r\n)(TrackingRequestsCovid);\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nimport * as actions from \"./../../store/action/index\";\r\nimport Button from \"../../components/UI/Button/Button\";\r\nimport PathTree from \"../../components/UI/PathTree/PathTree\";\r\nimport TrackingRequests from \"./TrackingRequests\";\r\nimport TrackingRequestsCovid from \"./TrackingRequestsCovid\";\r\n\r\nconst Tracking = (props) => {\r\n const path = {\r\n Path: [\r\n {\r\n title: \"จัดการสินเชื่อ\",\r\n pathLink: \"/agreements\",\r\n },\r\n {\r\n title: \"ติดตามคำร้องขอ\",\r\n pathLink: \"/tracking-request\",\r\n },\r\n ],\r\n };\r\n\r\n const [tabIndex, setTabIndex] = useState(0);\r\n\r\n const handleTrackingRequestTab = () => {\r\n setTabIndex(0);\r\n };\r\n\r\n const handleTrackingRequestCovidTab = () => {\r\n setTabIndex(1);\r\n };\r\n\r\n useEffect(() => {\r\n props.getTrackingRequest();\r\n props.getTrackingRequestCovid();\r\n\r\n return () => {};\r\n }, []);\r\n\r\n let redirectpage = null;\r\n if (!sessionStorage.getItem(\"token\")) {\r\n redirectpage = ;\r\n }\r\n\r\n return (\r\n \r\n {redirectpage}\r\n
\r\n
\r\n
\r\n

ติดตามคำร้องขอ

\r\n
\r\n
\r\n \r\n
\r\n
\r\n handleTrackingRequestTab()}\r\n >\r\n ตรวจสอบสถานะ\r\n {props.requests != null\r\n ? \"(\" + props.requests.length + \")\"\r\n : \"\"}\r\n \r\n
\r\n
\r\n
\r\n
\r\n handleTrackingRequestCovidTab()}\r\n >\r\n ตรวจสอบสถานะ#Covid19\r\n {props.requestsCovid != null\r\n ? \"(\" + props.requestsCovid.length + \")\"\r\n : \"\"}\r\n \r\n
\r\n
\r\n\r\n
\r\n {tabIndex === 0 && }\r\n {tabIndex === 1 && }\r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n token: state.auth.token,\r\n userName: state.auth.userName,\r\n requests: state.tracking.requests,\r\n requestsCovid: state.tracking.requestsCovid,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onLogout: () => dispatch(actions.logout()),\r\n getTrackingRequest: () => dispatch(actions.getTrackingRequest()),\r\n getTrackingRequestCovid: () => dispatch(actions.getTrackingRequestCovid()),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Tracking);\r\n","import React, { Fragment, useEffect, useState } from \"react\";\r\nimport { Card } from \"primereact/card\";\r\nimport { Chip } from \"@material-ui/core\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport {\r\n faMoneyBillAlt,\r\n faFileAlt,\r\n faExclamationCircle,\r\n} from \"@fortawesome/free-solid-svg-icons\";\r\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\r\nimport { ProgressBar } from \"primereact/progressbar\";\r\nimport { numberWithCommas } from \"../../../../shared/utility\";\r\nimport * as actionTypes from \"../../../../store/action/actionTypes\";\r\nimport Loading from \"../../../UI/Loading/Loading\";\r\nimport { Button } from \"primereact/button\";\r\nimport qrcode from \"./../../../../assets/qrcode.png\";\r\nimport barcode from \"./../../../../assets/barcode.png\";\r\n\r\nconst showAreEqual = (prev, next) => {\r\n return prev.agreement === next.agreement && prev.canInsert === next.canInsert;\r\n};\r\n\r\nconst AgreementItem = (props) => {\r\n const { agreement } = props;\r\n let borderColor = \"\";\r\n if (agreement.fin_type === \"สินเชื่อส่วนบุคคล\") {\r\n borderColor = \"#F003C8\";\r\n } else {\r\n borderColor = \"#075796\";\r\n }\r\n\r\n useEffect(() => {\r\n props.onInsertPayData(agreement.agr_code, agreement.com_code);\r\n }, []);\r\n\r\n const getViewOnInsertPayData = (key, isCurrency) => {\r\n if (key != null) {\r\n return (\r\n

\r\n {isCurrency\r\n ? numberWithCommas(\r\n parseFloat(Math.round(key * 100) / 100).toFixed(2)\r\n ) + \" บาท\"\r\n : key.toString()}\r\n

\r\n );\r\n } else if (agreement.pay_data_status === actionTypes.VIEW_STATE.LOADING) {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n return null;\r\n };\r\n\r\n const onPayment = () => {\r\n props.onPayment(agreement);\r\n };\r\n\r\n const getActionsView = () => {\r\n if (agreement.pay_data_status === actionTypes.VIEW_STATE.SUCCESS) {\r\n return (\r\n \r\n \r\n props.canInsert &&\r\n agreement.x_condition === \"\" &&\r\n agreement.overdue_amount != null\r\n ? onPayment(agreement)\r\n : null\r\n }\r\n >\r\n
\r\n
\r\n \r\n
\r\n
ชำระค่างวด
\r\n
\r\n \r\n\r\n props.onView(agreement.agr_code, agreement.com_code)}\r\n >\r\n
\r\n
\r\n \r\n
\r\n
\r\n รายละเอียด\r\n
\r\n สัญญา\r\n
\r\n
\r\n \r\n\r\n \r\n props.canInsert &&\r\n agreement.x_condition === \"\" &&\r\n agreement.overdue_amount != null\r\n ? props.onClosedAgreement(\r\n agreement.agr_code,\r\n agreement.com_code\r\n )\r\n : null\r\n }\r\n >\r\n
\r\n
\r\n \r\n
\r\n
ปิดบัญชี
\r\n
\r\n \r\n
\r\n );\r\n } else if (agreement.pay_data_status === actionTypes.VIEW_STATE.LOADING) {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n } else if (agreement.pay_data_status === actionTypes.VIEW_STATE.ERROR) {\r\n return (\r\n
\r\n
\r\n \r\n props.onInsertPayData(agreement.agr_code, agreement.com_code)\r\n }\r\n />\r\n
\r\n
\r\n );\r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n
\r\n

เลขที่สัญญา {agreement.agr_code}

\r\n {!props.canInsert && (\r\n {\r\n props.onRemove(agreement.agr_code);\r\n }}\r\n />\r\n )}\r\n
\r\n\r\n
\r\n {agreement.brand ? (\r\n

{agreement.brand}

\r\n ) : null}\r\n {agreement.reg_num ? (\r\n

{agreement.reg_num}

\r\n ) : null}\r\n {agreement.reg_province ? (\r\n

{agreement.reg_province}

\r\n ) : null}\r\n {agreement.brand === \"\" &&\r\n agreement.reg_num === \"\" &&\r\n agreement.reg_province === \"\" && (\r\n

\r\n
\r\n

\r\n )}\r\n
\r\n {agreement.x_condition !== \"\" && (\r\n
\r\n \r\n {agreement.x_condition}\r\n
\r\n
\r\n )}\r\n {agreement.x_condition === \"\" && (\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

\r\n {agreement.paid_terms + \" / \" + agreement.terms + \" งวด\"}\r\n

\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

\r\n {agreement.b_type === \"Loan\"\r\n ? \"ยอดเงินต้นทั้งหมด\"\r\n : \"ยอดทั้งหมด\"}\r\n

\r\n
\r\n
\r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(agreement.original_amount * 100) / 100\r\n ).toFixed(2)\r\n )}\r\n {\" \"}\r\n บาท\r\n

\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {\" \"}\r\n {agreement.b_type === \"Loan\"\r\n ? \"ยอดเงินต้นที่ชำระแล้ว\"\r\n : \"ชำระแล้ว\"}\r\n

\r\n
\r\n
\r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(agreement.paid_amount * 100) / 100\r\n ).toFixed(2)\r\n )}\r\n {\" \"}\r\n บาท\r\n

\r\n
\r\n
\r\n
\r\n
\r\n

\r\n {agreement.b_type === \"Loan\"\r\n ? \"ยอดเงินต้นคงเหลือ\"\r\n : \"คงเหลือ\"}\r\n

\r\n
\r\n
\r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(agreement.os_balance * 100) / 100\r\n ).toFixed(2)\r\n )}\r\n {\" \"}\r\n บาท\r\n

\r\n
\r\n
\r\n
\r\n
\r\n

ยอดค้างชำระ ณ ปัจจุบัน

\r\n
\r\n
\r\n {getViewOnInsertPayData(agreement.overdue_amount, true)}\r\n
\r\n
\r\n
\r\n
\r\n

ค่างวดค้างชำระ ตั้งแต่วันที่

\r\n
\r\n
\r\n {getViewOnInsertPayData(agreement.n_due_i_date, false)}\r\n
\r\n
\r\n\r\n
\r\n
\r\n

\r\n {/* {agreement.b_type === \"Loan\" ? \"ค่างวด\" : \"ค่างวดปัจจุบัน\"} */}\r\n ค่างวดปัจจุบัน\r\n

\r\n
\r\n
\r\n {getViewOnInsertPayData(agreement.installment_i_vat, true)}\r\n
\r\n
\r\n\r\n
\r\n
\r\n

ค่างวดปัจจุบัน ครบกำหนด

\r\n
\r\n
\r\n {getViewOnInsertPayData(agreement.n_due_i, false)}\r\n
\r\n
\r\n
\r\n
\r\n

เจ้าหน้าที่ดูแล

\r\n
\r\n
\r\n

{agreement.officer}

\r\n
\r\n
\r\n
\r\n \r\n \r\n props.onOpenQR(\r\n agreement.scan_code,\r\n agreement.ref_1,\r\n agreement.ref_2,\r\n true\r\n )\r\n }\r\n >\r\n
\r\n \r\n

QR Code

\r\n
\r\n \r\n \r\n props.onOpenQR(\r\n agreement.scan_code,\r\n agreement.ref_1,\r\n agreement.ref_2,\r\n false\r\n )\r\n }\r\n >\r\n
\r\n \r\n

Bar Code

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

\r\n เลขอ้างอิงที่ 1\r\n

\r\n

{agreement.ref_1}

\r\n
\r\n
\r\n

\r\n เลขอ้างอิงที่ 2\r\n

\r\n

{agreement.ref_2}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n\r\n
{getActionsView()}
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default React.memo(AgreementItem, showAreEqual);\r\n","import React, {\r\n useState,\r\n useEffect,\r\n useRef,\r\n useMemo,\r\n useCallback,\r\n} from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { Button } from \"primereact/button\";\r\nimport QRcode from \"qrcode.react\";\r\nimport Barcode from \"react-barcode\";\r\n\r\nimport * as actions from \"./../../../../store/action/index\";\r\nimport * as actionTypes from \"../../../../store/action/actionTypes\";\r\nimport Loading from \"./../../../../components/UI/Loading/Loading\";\r\nimport Input from \"./../../../../components/UI/Input/Input\";\r\nimport AgreementItem from \"../../../../components/Personal/Agreements/List/AgreementItem\";\r\nimport Modal from \"./../../../../components/UI/Modal/Modal\";\r\nconst MyAgreements = (props) => {\r\n const toast = useRef();\r\n let history = useHistory();\r\n const [agreementsFilter, setAgreementFilter] = useState(null);\r\n const [scanCode, setScanCode] = useState(\"\");\r\n const [scanCodeV, setScanCodeV] = useState(\"\");\r\n const [ref1, setRef1] = useState(\"\");\r\n const [ref2, setRef2] = useState(\"\");\r\n const [tabSelect, setTabSelect] = useState(0);\r\n const [openModal, setOpenModal] = useState(false);\r\n\r\n useEffect(() => {\r\n if (props.filter != null && props.agreements != null) {\r\n let result = [];\r\n result = props.agreements.filter((data) => {\r\n return (\r\n data.agr_code.search(props.filter) > -1 ||\r\n (data.reg_num != null && data.reg_num.search(props.filter) > -1)\r\n );\r\n });\r\n\r\n setAgreementFilter(result);\r\n } else {\r\n setAgreementFilter(props.agreements);\r\n }\r\n }, [props.agreements, props.filter]);\r\n\r\n const handleFilter = (event) => {\r\n let value = event.target.value.toLowerCase();\r\n props.filterAgreements(value);\r\n };\r\n\r\n const findIndexInPayment = (agr_code) => {\r\n const index = props.payment_agreements.findIndex(\r\n (p) => p.agreement.agr_code === agr_code\r\n );\r\n return index;\r\n };\r\n\r\n const onPayment = (agreement) => {\r\n let canInsert = false;\r\n\r\n const index = findIndexInPayment(agreement.agr_code);\r\n if (index === -1) {\r\n canInsert = true;\r\n }\r\n if (canInsert) {\r\n let items = [];\r\n for (let i in agreement.items) {\r\n let itemData = agreement.items[i];\r\n let item = {\r\n key: itemData.key,\r\n sub_key: itemData.sub_key,\r\n title: itemData.title,\r\n amount: itemData.amount.replaceAll(\",\", \"\"),\r\n };\r\n items.push(item);\r\n }\r\n\r\n props.insertAgreementPayList(agreement, agreement.agr_code, items, false);\r\n\r\n showToast(\r\n \"success\",\r\n \"สัญญา \" + agreement.agr_code,\r\n \"เพิ่มลงในสินเชื่อที่จะชำระ!\"\r\n );\r\n } else {\r\n showToast(\r\n \"error\",\r\n \"สัญญา \" + agreement.agr_code,\r\n \"อยู่ในสินเชื่อที่จะชำระอยู่แล้ว\"\r\n );\r\n }\r\n };\r\n\r\n const onViewDetail = useCallback(\r\n (agr_code, com_code) => {\r\n history.push({\r\n pathname: \"/agreement-detail\",\r\n search: \"?agr=\" + agr_code + \"&comCode=\" + com_code,\r\n });\r\n },\r\n [props.agreements]\r\n );\r\n\r\n const onClosedAgreementDetail = useCallback(\r\n (agr_code, com_code) => {\r\n let canInsert = false;\r\n\r\n const index = props.payment_agreements.findIndex(\r\n (p) => p.agreement.agr_code === agr_code\r\n );\r\n\r\n if (index === -1) {\r\n canInsert = true;\r\n }\r\n if (canInsert) {\r\n history.push({\r\n pathname: \"/agreement-closed\",\r\n search: \"?agr=\" + agr_code + \"&comCode=\" + com_code + \"&action=y\",\r\n });\r\n } else {\r\n showToast(\r\n \"error\",\r\n \"สัญญา \" + agr_code,\r\n \"อยู่ในสินเชื่อที่จะชำระอยู่แล้ว\"\r\n );\r\n }\r\n },\r\n [props.agreements, props.payment_agreements]\r\n );\r\n\r\n const onRefresh = () => {\r\n props.getAgreements();\r\n props.clearPayment();\r\n };\r\n\r\n const showToast = (severity, summary, msg) => {\r\n toast.current.show({\r\n severity: severity,\r\n summary: summary,\r\n detail: msg,\r\n life: 3000,\r\n });\r\n };\r\n\r\n const onInsertPayData = useCallback(\r\n (agr_code, com_code) => {\r\n props.insertPayData(agr_code, com_code, props.runNo);\r\n },\r\n [props.agreements]\r\n );\r\n\r\n const onRemove = useCallback(\r\n (agr_code) => {\r\n props.removeAgreementPayList(agr_code);\r\n },\r\n [props.agreements]\r\n );\r\n\r\n const onOpenQR = (scan_code, ref_1, ref_2, isQR) => {\r\n setScanCode(scan_code);\r\n let vArr = scan_code.split(\" \");\r\n let v = \"\";\r\n for (var i = 0; i < vArr.length; i++) {\r\n v = v + vArr[i] + \"\\n\";\r\n }\r\n setScanCodeV(v);\r\n setRef1(ref_1);\r\n setRef2(ref_2);\r\n if (isQR === true) {\r\n handleQRTab();\r\n } else {\r\n handleBarCodeTab();\r\n }\r\n handleOpenModal();\r\n };\r\n\r\n const handleQRTab = () => {\r\n setTabSelect(0);\r\n };\r\n\r\n const handleBarCodeTab = () => {\r\n setTabSelect(1);\r\n };\r\n\r\n const handleOpenModal = () => {\r\n setOpenModal(true);\r\n };\r\n\r\n const handleCloseModal = () => {\r\n setOpenModal(false);\r\n };\r\n\r\n let modal = null;\r\n if (tabSelect === 0) {\r\n modal = (\r\n \r\n \r\n \r\n }\r\n />\r\n );\r\n } else if (tabSelect === 1) {\r\n modal = (\r\n \r\n \r\n \r\n \r\n \r\n }\r\n />\r\n );\r\n }\r\n return (\r\n
\r\n {modal}\r\n \r\n {props.agreements != null && props.agreements.length === 0 && (\r\n
\r\n

ไม่พบข้อมูล

\r\n
\r\n )}\r\n {props.agreementsState === actionTypes.VIEW_STATE.LOADING && (\r\n
\r\n \r\n
\r\n )}\r\n {props.agreements != null &&\r\n props.agreements.length > 0 &&\r\n agreementsFilter != null && (\r\n
\r\n
\r\n \r\n
\r\n
\r\n

สัญญาที่พบ: {agreementsFilter.length}

\r\n
\r\n onRefresh()}\r\n />\r\n
\r\n
\r\n
\r\n )}\r\n\r\n
\r\n {agreementsFilter != null &&\r\n agreementsFilter.length > 0 &&\r\n agreementsFilter.map((agreement, index) => (\r\n \r\n onPayment(agreement)}\r\n onView={onViewDetail}\r\n onClosedAgreement={onClosedAgreementDetail}\r\n canInsert={findIndexInPayment(agreement.agr_code) === -1}\r\n onRemove={() => onRemove(agreement.agr_code)}\r\n onInsertPayData={(agr_code, com_code) =>\r\n onInsertPayData(agr_code, com_code)\r\n }\r\n onOpenQR={onOpenQR}\r\n />\r\n
\r\n ))}\r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n agreements: state.agreement.agreements,\r\n agreementsState: state.agreement.agreementsState,\r\n filter: state.agreement.search,\r\n payment_agreements: state.payment.payment_agreements,\r\n runNo: state.agreement.run_no,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onLogout: () => dispatch(actions.logout()),\r\n getAgreements: () => dispatch(actions.getAgreements()),\r\n filterAgreements: (value) => dispatch(actions.filterAgreements(value)),\r\n insertAgreementPayList: (agreement, agr_code, items, is_closed) =>\r\n dispatch(\r\n actions.insertAgreementPayList(agreement, agr_code, items, is_closed)\r\n ),\r\n removeAgreementPayList: (agr_code) =>\r\n dispatch(actions.removeAgreementPayList(agr_code)),\r\n insertPayData: (agr_code, com_code, run_no) =>\r\n dispatch(actions.insertPayData(agr_code, com_code, run_no)),\r\n clearPayment: () => dispatch(actions.clearPaymentState()),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(MyAgreements);\r\n","import React from \"react\";\r\nimport { Card } from \"primereact/card\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { faEdit, faEye } from \"@fortawesome/free-solid-svg-icons\";\r\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\r\nimport { numberWithCommas } from \"../../../../shared/utility\";\r\n\r\nconst payment = (props) => {\r\n const { payment } = props;\r\n\r\n return (\r\n \r\n
\r\n
\r\n props.onRemove(payment.agreement.agr_code)}\r\n >\r\n

\r\n นำออกจากรายการ\r\n

\r\n \r\n
\r\n

\r\n เลขที่สัญญา {payment.agreement.agr_code}\r\n {payment.closed ? \" (ปิดบัญชี)\" : \"\"}\r\n

\r\n\r\n
\r\n {payment.agreement.brand ? (\r\n

{payment.agreement.brand}

\r\n ) : null}\r\n {payment.agreement.reg_num ? (\r\n

{payment.agreement.reg_num}

\r\n ) : null}\r\n {payment.agreement.reg_province ? (\r\n

{payment.agreement.reg_province}

\r\n ) : null}\r\n {payment.agreement.brand === \"\" &&\r\n payment.agreement.reg_num === \"\" &&\r\n payment.agreement.reg_province === \"\" && (\r\n

\r\n
\r\n

\r\n )}\r\n
\r\n
\r\n \r\n
\r\n \r\n ยอดที่จะชำระ :\r\n

\r\n
\r\n
\r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(payment.payment_amount * 100) / 100\r\n ).toFixed(2)\r\n )}\r\n {\" \"}\r\n บาท\r\n

\r\n
\r\n
\r\n {payment.closed ? (\r\n \r\n props.onViewClosedAgreement(\r\n payment.agreement.agr_code,\r\n payment.agreement.com_code\r\n )\r\n }\r\n >\r\n \r\n \r\n ) : (\r\n props.onEditSummary(payment.agreement)}\r\n >\r\n \r\n \r\n )}\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default payment;\r\n","import React, { Fragment, useState, useEffect } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Paper } from \"@material-ui/core\";\r\nimport axios from \"axios\";\r\n\r\nimport * as actions from \"./../../../../store/action/index\";\r\nimport * as actionTypes from \"../../../../store/action/actionTypes\";\r\nimport Loading from \"./../../../../components/UI/Loading/Loading\";\r\nimport Payment from \"../../../../components/Personal/Agreements/List/Payment\";\r\nimport { numberWithCommas } from \"../../../../shared/utility\";\r\nimport {\r\n API_MYASK,\r\n API_MYASK_HEADER,\r\n URL_PAYMENT,\r\n} from \"../../../../shared/constant\";\r\nimport { Dialog } from \"primereact/dialog\";\r\n\r\nconst MyPayments = (props) => {\r\n let location = useLocation();\r\n let history = useHistory();\r\n const [paymentAmount, setPaymentAmount] = useState(0);\r\n let [generatingState, setGeneratingState] = useState(\r\n actionTypes.VIEW_STATE.INITIAL\r\n );\r\n let [errorMsg, setErrorMsg] = useState(null);\r\n let [batchNo, setBatchNo] = useState(null);\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, []);\r\n\r\n useEffect(() => {\r\n let sum = 0.0;\r\n for (let i = 0; i < props.payment_agreements.length; i++) {\r\n let obj = props.payment_agreements[i];\r\n sum = sum + parseFloat(obj.payment_amount);\r\n }\r\n setPaymentAmount(sum);\r\n }, [props.payment_agreements]);\r\n\r\n const onRemoveSinglePayment = (agr_code) => {\r\n props.removeAgreementPayList(agr_code);\r\n };\r\n\r\n const onEditSummary = (agreement) => {\r\n history.push({\r\n pathname: \"/agreement-payment-item\",\r\n search: \"?agr=\" + agreement.agr_code,\r\n });\r\n };\r\n\r\n const onViewClosedAgreement = (agr_code, com_code) => {\r\n history.push({\r\n pathname: \"/agreement-closed\",\r\n search: \"?agr=\" + agr_code + \"&comCode=\" + com_code + \"&action=n\",\r\n });\r\n };\r\n\r\n const goToPaymentChannal = () => {\r\n history.push({\r\n pathname: \"/payment-channal\",\r\n });\r\n };\r\n\r\n const goToPaymentExternal = (batchNo) => {\r\n // console.log(location);\r\n // console.log(location.pathname);\r\n // console.log(window.location.origin);\r\n // console.log(window.location.pathname);\r\n // console.log(window.location.href);\r\n // console.log(window.location.hash);\r\n let url = window.location.origin;\r\n if (window.location.hash.indexOf(\"#\") == 0) {\r\n url += \"/myask/#\";\r\n }\r\n url += \"/payment-result\";\r\n\r\n url = encodeURIComponent(url);\r\n\r\n window.location.href =\r\n URL_PAYMENT +\r\n \"?batch_no=\" +\r\n batchNo +\r\n \"&user_name=\" +\r\n sessionStorage.getItem(\"userName\") +\r\n \"&url=\" +\r\n url;\r\n };\r\n\r\n const generateBatch = () => {\r\n setGeneratingState(actionTypes.VIEW_STATE.LOADING);\r\n\r\n const username = sessionStorage.getItem(\"userName\");\r\n const token = sessionStorage.getItem(\"token\");\r\n\r\n let payments = props.payment_agreements;\r\n\r\n let paymentsReq = [];\r\n\r\n for (let i in payments) {\r\n let payment = payments[i];\r\n let dtArr = [];\r\n for (let j in payment.payment_detail) {\r\n let dt = payment.payment_detail[j];\r\n let obj = {\r\n offsetting_rule: dt.key,\r\n sub_off_rule: dt.sub_key,\r\n amount: dt.amount,\r\n };\r\n dtArr.push(obj);\r\n }\r\n let req = {\r\n run_no: props.runNo,\r\n com_code: payment.agreement.com_code,\r\n agr_code: payment.agreement.agr_code,\r\n pay_flag: payment.closed == true ? \"C\" : \"U\",\r\n amount: payment.payment_amount,\r\n list_payment_detail: dtArr,\r\n };\r\n paymentsReq.push(req);\r\n }\r\n\r\n const req = {\r\n user_name: username,\r\n token: token,\r\n list_payment: paymentsReq,\r\n };\r\n\r\n let url = API_MYASK + \"/generateBatch\";\r\n\r\n axios\r\n .post(url, req, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((response) => {\r\n setGeneratingState(actionTypes.VIEW_STATE.SUCCESS);\r\n if (response.data.CODE === \"200\" || response.data.CODE === \"204\") {\r\n const data = response.data.DATA;\r\n goToPaymentExternal(data.BATCH_NO);\r\n } else {\r\n setGeneratingState(actionTypes.VIEW_STATE.ERROR);\r\n setErrorMsg(response.data.MSG);\r\n }\r\n })\r\n .catch((err) => {\r\n setGeneratingState(actionTypes.VIEW_STATE.ERROR);\r\n setErrorMsg(err);\r\n });\r\n };\r\n\r\n return (\r\n
\r\n
\r\n {props.payment_agreements != null &&\r\n props.payment_agreements.length === 0 && (\r\n
\r\n

ไม่พบข้อมูล

\r\n
\r\n )}\r\n\r\n \r\n
\r\n \r\n

ระบบกำลังสร้างข้อมูลสำหรับชำระเงิน

\r\n
\r\n \r\n\r\n setGeneratingState(actionTypes.VIEW_STATE.INITIAL)}\r\n >\r\n
\r\n \r\n

พบปัญหาขณะกำลังสร้างข้อมูลสำหรับการชำระเงิน

\r\n

โปรดลองอีกครั้ง

\r\n
\r\n \r\n\r\n
\r\n {props.payment_agreements != null &&\r\n props.payment_agreements.length > 0 &&\r\n props.payment_agreements.map((paymentItem, index) => (\r\n \r\n \r\n
\r\n ))}\r\n
\r\n
\r\n\r\n {props.payment_agreements != null && props.payment_agreements.length > 0 && (\r\n \r\n
\r\n

\r\n * บริษัทขอสงวนสิทธิ์ในการหักชำระเบี้ยปรับ ค่าติดตามทวงถาม\r\n ค่าใช้จ่ายและค่าธรรมเนียมต่างๆที่ท่านค้างชำระอยู่กับบริษัทตามความเหมาะสม\r\n

\r\n
\r\n \r\n
\r\n

ยอดชำระรวม

\r\n
\r\n
\r\n \r\n {numberWithCommas(parseFloat(paymentAmount).toFixed(2))} บาท\r\n

\r\n
\r\n
\r\n
\r\n generateBatch()}\r\n />\r\n
\r\n \r\n }\r\n >
\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n payment_agreements: state.payment.payment_agreements,\r\n runNo: state.agreement.run_no,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n removeAgreementPayList: (agr_code) =>\r\n dispatch(actions.removeAgreementPayList(agr_code)),\r\n generateBatch: (payments, runNo) =>\r\n dispatch(actions.generateBatch(payments, runNo)),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(MyPayments);\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Button } from \"primereact/button\";\r\nimport { ScrollTop } from \"primereact/scrolltop\";\r\n\r\nimport * as actions from \"./../../../../store/action/index\";\r\nimport ButtonTab from \"../../../../components/UI/Button/Button\";\r\nimport PathTree from \"../../../../components/UI/PathTree/PathTree\";\r\nimport MyAgreements from \"./MyAgreements\";\r\nimport MyPayments from \"./MyPayments\";\r\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\r\nimport { Divider } from \"primereact/divider\";\r\nimport trackingIcon from \"./../../../../assets/icon/tracking_menu.png\";\r\nimport taxIcon from \"./../../../../assets/icon/tax_menu.png\";\r\nimport historyPaymentIcon from \"./../../../../assets/icon/history_payment_menu.png\";\r\nimport { URL_PAYMENT_HISTORY } from \"./../../../../shared/constant\";\r\n\r\nconst Agreements = (props) => {\r\n let history = useHistory();\r\n const { tabIndex } = props;\r\n const path = {\r\n Path: [\r\n {\r\n title: \"จัดการสินเชื่อ\",\r\n pathLink: \"/agreements\",\r\n },\r\n ],\r\n };\r\n\r\n const handleAgreementTab = () => {\r\n props.setTabIndex(0);\r\n };\r\n\r\n const handlePaymentTab = () => {\r\n props.setTabIndex(1);\r\n };\r\n\r\n useEffect(() => {\r\n if (props.agreements == null) {\r\n props.getAgreements();\r\n }\r\n\r\n return () => {};\r\n }, []);\r\n\r\n let redirectpage = null;\r\n if (!sessionStorage.getItem(\"token\")) {\r\n redirectpage = ;\r\n }\r\n\r\n const onSelectTracking = () => {\r\n props.history.push({\r\n pathname: \"/tracking-request\",\r\n });\r\n };\r\n\r\n const onSelectRegisterEtax = () => {\r\n props.history.push({\r\n pathname: \"/etax_ereceipt\",\r\n });\r\n };\r\n\r\n const onOpenPaymentHistory = () => {\r\n let url = window.location.origin;\r\n if (window.location.hash.indexOf(\"#\") == 0) {\r\n url += \"/myask/#\";\r\n }\r\n url += \"/agreements\";\r\n\r\n url = encodeURIComponent(url);\r\n\r\n window.location.href =\r\n URL_PAYMENT_HISTORY +\r\n \"?user_name=\" +\r\n sessionStorage.getItem(\"userName\") +\r\n \"&url=\" +\r\n url;\r\n };\r\n\r\n return (\r\n // \r\n
\r\n {redirectpage}\r\n
\r\n
\r\n
\r\n

ASK Connect Services

\r\n
\r\n
\r\n
\r\n \r\n onSelectTracking()}\r\n >\r\n
\r\n \r\n

\r\n ติดตาม\r\n
\r\n คำร้องขอ\r\n

\r\n
\r\n \r\n\r\n onSelectRegisterEtax()}\r\n >\r\n
\r\n \r\n

\r\n สมัครบริการ\r\n
\r\n eTax/eReceipt\r\n

\r\n
\r\n \r\n onOpenPaymentHistory()}\r\n >\r\n
\r\n \r\n

\r\n ประวัติ\r\n
\r\n ชำระเงิน\r\n

\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n

จัดการสินเชื่อ

\r\n
\r\n
\r\n \r\n
\r\n
\r\n handleAgreementTab()}\r\n >\r\n สินเชื่อของฉัน\r\n {props.agreements != null\r\n ? \"(\" + props.agreements.length + \")\"\r\n : \"\"}\r\n \r\n
\r\n
\r\n
\r\n
\r\n handlePaymentTab()}\r\n >\r\n สินเชื่อที่จะชำระ({props.payment_agreements_size})\r\n \r\n
\r\n
\r\n\r\n
\r\n {tabIndex === 0 && }\r\n {tabIndex === 1 && }\r\n
\r\n \r\n
\r\n \r\n {/*
*/}\r\n \r\n );\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n token: state.auth.token,\r\n userName: state.auth.userName,\r\n agreements: state.agreement.agreements,\r\n payment_agreements_size: state.payment.payment_agreements.length,\r\n tabIndex: state.agreement.tabIndex,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onLogout: () => dispatch(actions.logout()),\r\n getAgreements: () => dispatch(actions.getAgreements()),\r\n setTabIndex: (index) => dispatch(actions.setTabAgreementIndex(index)),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(Agreements);\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Card } from \"primereact/card\";\r\nimport { Divider } from \"primereact/divider\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nimport * as actions from \"./../../../../../store/action/index\";\r\nimport * as actionTypes from \"../../../../../store/action/actionTypes\";\r\nimport Loading from \"./../../../../../components/UI/Loading/Loading\";\r\nimport { numberWithCommas } from \"../../../../../shared/utility\";\r\nimport { Fragment } from \"react\";\r\n\r\nconst AgreementDetail = (props) => {\r\n let history = useHistory();\r\n let query = new URLSearchParams(useLocation().search);\r\n\r\n useEffect(() => {\r\n if (query.get(\"agr\") && query.get(\"comCode\")) {\r\n props.getAgreementDetail(\r\n query.get(\"agr\"),\r\n query.get(\"comCode\"),\r\n props.runNo\r\n );\r\n }\r\n }, []);\r\n\r\n const openInsurance = (agr_code) => {\r\n history.push({\r\n pathname: \"/agreement-insurance\",\r\n search: \"?agr=\" + agr_code,\r\n });\r\n };\r\n\r\n const openPaymentHistory = (agr_code) => {\r\n history.push({\r\n pathname: \"/agreement-payment-history\",\r\n search: \"?agr=\" + agr_code,\r\n });\r\n };\r\n\r\n let redirectpage = null;\r\n if (!sessionStorage.getItem(\"token\")) {\r\n redirectpage = ;\r\n }\r\n\r\n if (props.runNo == null || props.runNo === \"\") {\r\n redirectpage = ;\r\n }\r\n\r\n return (\r\n
\r\n {redirectpage}\r\n \r\n\r\n
\r\n
\r\n
\r\n

รายละเอียดสัญญา

\r\n
\r\n
\r\n \r\n {props.detail == null &&\r\n props.detailState === actionTypes.VIEW_STATE.SUCCESS && (\r\n
\r\n

ไม่พบข้อมูล

\r\n
\r\n )}\r\n {props.detailState === actionTypes.VIEW_STATE.LOADING && (\r\n
\r\n \r\n
\r\n )}\r\n {props.detail != null && (\r\n
\r\n
\r\n \r\n
\r\n
\r\n เลขที่สัญญา {props.detail.agr_code}\r\n
\r\n\r\n {props.detail.brand ||\r\n props.detail.reg_num ||\r\n props.detail.reg_province ? (\r\n \r\n
ข้อมูลทรัพย์สิน
\r\n \r\n ) : null}\r\n\r\n
\r\n {props.detail.brand ? (\r\n

{props.detail.brand}

\r\n ) : null}\r\n {props.detail.reg_num ? (\r\n

\r\n {props.detail.reg_num}\r\n

\r\n ) : null}\r\n {props.detail.reg_province ? (\r\n

\r\n {props.detail.reg_province}\r\n

\r\n ) : null}\r\n {props.detail.brand === \"\" &&\r\n props.detail.reg_num === \"\" &&\r\n props.detail.reg_province === \"\" && (\r\n

\r\n
\r\n

\r\n )}\r\n
\r\n\r\n \r\n
ข้อมูลสัญญา
\r\n \r\n
\r\n
\r\n
\r\n

ประเภทสินเชื่อ

\r\n
\r\n
\r\n

{props.detail.fin_type}

\r\n
\r\n
\r\n
\r\n
\r\n

วันที่ทำสัญญา

\r\n
\r\n
\r\n

\r\n {props.detail.disbursement_date}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n

วันที่เริ่มกำหนดชำระงวดแรก

\r\n
\r\n
\r\n

\r\n {props.detail.first_paid_date}\r\n

\r\n
\r\n
\r\n
\r\n\r\n \r\n
ข้อมูลสินเชื่อ
\r\n \r\n\r\n
\r\n {props.detail.x_condition !== \"\" && (\r\n \r\n {props.detail.x_condition}\r\n
\r\n )}\r\n {props.detail.x_condition === \"\" && (\r\n \r\n
\r\n
\r\n

ยอดสินเชื่อทั้งหมด

\r\n
\r\n
\r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(\r\n props.detail.original_amount * 100\r\n ) / 100\r\n ).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n
\r\n
\r\n
\r\n

ชำระแล้ว

\r\n
\r\n
\r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(props.detail.paid_amount * 100) /\r\n 100\r\n ).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n
\r\n
\r\n
\r\n

คงเหลือ

\r\n
\r\n
\r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(props.detail.os_balance * 100) /\r\n 100\r\n ).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n
\r\n
\r\n
\r\n

จำนวนงวด

\r\n
\r\n
\r\n

\r\n {props.detail.paid_terms +\r\n \"/\" +\r\n props.detail.terms}{\" \"}\r\n งวด\r\n

\r\n
\r\n
\r\n
\r\n
\r\n

ค่างวดปัจจุบัน

\r\n
\r\n
\r\n

\r\n {numberWithCommas(\r\n props.detail.installment_i_vat\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n
\r\n
\r\n
\r\n

ค่างวดปัจจุบัน ครบกำหนด

\r\n
\r\n
\r\n

\r\n {props.detail.n_due_i}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n

เจ้าหน้าที่ดูแล

\r\n
\r\n
\r\n

\r\n {props.detail.officer}\r\n

\r\n
\r\n
\r\n
\r\n )}\r\n \r\n
\r\n openInsurance(query.get(\"agr\"))}\r\n >\r\n \r\n ข้อมูลประกัน\r\n \r\n \r\n
\r\n
\r\n openPaymentHistory(query.get(\"agr\"))}\r\n >\r\n \r\n ประวัติการชำระเงิน\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
ที่อยู่ในการจัดส่งเอกสาร
\r\n\r\n \r\n\r\n
\r\n
\r\n

\r\n ที่อยู่ปัจจุบัน\r\n {props.detail.is_person === \"Y\"\r\n ? \"(ที่อยู่ในใบกำกับภาษี)\"\r\n : \"\"}\r\n

\r\n
\r\n
\r\n

{props.detail.address}

\r\n
\r\n
\r\n

\r\n ที่อยู่ส่งเอกสาร\r\n {props.detail.is_person === \"Y\"\r\n ? \"(ที่อยู่ในใบเสร็จ)\"\r\n : \"\"}\r\n

\r\n
\r\n
\r\n

{props.detail.address_m}

\r\n
\r\n
\r\n

\r\n ที่อยู่ตามบัตร\r\n {props.detail.is_person === \"N\"\r\n ? \"(ที่อยู่ในใบเสร็จและใบกำกับภาษี)\"\r\n : \"\"}\r\n

\r\n
\r\n
\r\n

{props.detail.address_c}

\r\n
\r\n
\r\n

{props.detail.email}

\r\n
\r\n
\r\n

{props.detail.mobile_no}

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n token: state.auth.token,\r\n userName: state.auth.userName,\r\n detail: state.agreement.detail,\r\n detailState: state.agreement.detailState,\r\n runNo: state.agreement.run_no,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getAgreementDetail: (agr_code, com_code, run_no) =>\r\n dispatch(actions.getAgreementDetail(agr_code, com_code, run_no)),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(AgreementDetail);\r\n","import React from \"react\";\r\nimport { Card } from \"primereact/card\";\r\n\r\nimport { numberWithCommas } from \"../../../shared/utility\";\r\n\r\nconst Insurance = (props) => {\r\n const { insurance } = props;\r\n\r\n return (\r\n \r\n
\r\n
\r\n \r\n {insurance.ins_type}\r\n

\r\n
\r\n
\r\n

ยี่ห้อ / รุ่น :

\r\n
\r\n
\r\n

\r\n {insurance.brand} - {insurance.model_name}\r\n

\r\n
\r\n
\r\n

ทะเบียน :

\r\n
\r\n
\r\n

{insurance.reg_num}

\r\n
\r\n
\r\n

ปีรุ่น :

\r\n
\r\n
\r\n

{insurance.year}

\r\n
\r\n
\r\n

ชื่อบริษัทประกัน :

\r\n
\r\n
\r\n

{insurance.ins_com}

\r\n
\r\n
\r\n

ทุนประกัน :

\r\n
\r\n
\r\n

\r\n {numberWithCommas(\r\n parseFloat(Math.round(insurance.cov_amt * 100) / 100).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n
\r\n

เบี้ยประกัน :

\r\n
\r\n
\r\n

\r\n {numberWithCommas(\r\n parseFloat(Math.round(insurance.total_prem * 100) / 100).toFixed(\r\n 2\r\n )\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n
\r\n

หมายเลขกรมธรรม์ :

\r\n
\r\n
\r\n

{insurance.pol_num}

\r\n
\r\n
\r\n

ระยะเวลาคุ้มครอง :

\r\n
\r\n
\r\n

\r\n {insurance.ins_date_th} - {insurance.ins_exp_th}\r\n

\r\n
\r\n
\r\n

เลขที่สัญญาเช่าซื้อ :

\r\n
\r\n
\r\n

{insurance.agr_code}

\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Insurance;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nimport * as actions from \"./../../../../../store/action/index\";\r\nimport * as actionTypes from \"../../../../../store/action/actionTypes\";\r\nimport Loading from \"./../../../../../components/UI/Loading/Loading\";\r\nimport Insurance from \"../../../../../components/Personal/Insurances/Insurance\";\r\n\r\nconst InsuranceAgreement = (props) => {\r\n let history = useHistory();\r\n let query = new URLSearchParams(useLocation().search);\r\n\r\n useEffect(() => {\r\n if (query.get(\"agr\")) {\r\n props.getInsuranceAgreement(query.get(\"agr\"));\r\n }\r\n }, []);\r\n\r\n let redirectpage = null;\r\n if (!sessionStorage.getItem(\"token\")) {\r\n redirectpage = ;\r\n }\r\n\r\n return (\r\n
\r\n {redirectpage}\r\n \r\n
\r\n
\r\n
\r\n

ข้อมูลประกัน

\r\n
\r\n
\r\n \r\n {props.insurances != null &&\r\n props.insurances.length === 0 &&\r\n props.insurancesState === actionTypes.VIEW_STATE.SUCCESS && (\r\n
\r\n

ไม่พบข้อมูล

\r\n
\r\n )}\r\n {props.insurancesState === actionTypes.VIEW_STATE.LOADING && (\r\n
\r\n \r\n
\r\n )}\r\n\r\n {props.insurances != null &&\r\n props.insurances.length > 0 &&\r\n props.insurances.map((insurance, index) => (\r\n \r\n \r\n
\r\n ))}\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n token: state.auth.token,\r\n userName: state.auth.userName,\r\n insurances: state.agreement.insurances,\r\n insurancesState: state.agreement.insurancesState,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getInsuranceAgreement: (agr_code) =>\r\n dispatch(actions.getInsuranceAgreement(agr_code)),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(InsuranceAgreement);\r\n","import React from \"react\";\r\nimport { Card } from \"primereact/card\";\r\nimport Accordion from \"@material-ui/core/Accordion\";\r\nimport AccordionSummary from \"@material-ui/core/AccordionSummary\";\r\nimport AccordionDetails from \"@material-ui/core/AccordionDetails\";\r\nimport ExpandMoreIcon from \"@material-ui/icons/ExpandMore\";\r\n\r\nimport { numberWithCommas } from \"../../../../../shared/utility\";\r\n\r\nconst History = (props) => {\r\n const { history } = props;\r\n\r\n return (\r\n \r\n
\r\n
\r\n

{history.last_paid_dt_th}

\r\n
\r\n
\r\n \r\n }\r\n aria-controls=\"panel1a-content\"\r\n id=\"panel1a-header\"\r\n >\r\n
\r\n
\r\n

จำนวนที่ชำระ

\r\n
\r\n
\r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(history.sum_paid * 100) / 100\r\n ).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default History;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nimport * as actions from \"./../../../../../store/action/index\";\r\nimport * as actionTypes from \"../../../../../store/action/actionTypes\";\r\nimport Loading from \"./../../../../../components/UI/Loading/Loading\";\r\nimport History from \"../../../../../components/Personal/Agreements/List/History/History\";\r\n\r\nconst PaymentHistory = (props) => {\r\n let history = useHistory();\r\n let query = new URLSearchParams(useLocation().search);\r\n\r\n useEffect(() => {\r\n if (query.get(\"agr\")) {\r\n props.getPaymentAgreement(query.get(\"agr\"));\r\n }\r\n }, []);\r\n\r\n let redirectpage = null;\r\n if (!sessionStorage.getItem(\"token\")) {\r\n redirectpage = ;\r\n }\r\n\r\n return (\r\n
\r\n {redirectpage}\r\n \r\n
\r\n
\r\n
\r\n

ประวัติการชำระเงิน

\r\n
\r\n
\r\n \r\n {props.paymentsHistory != null &&\r\n props.paymentsHistory.length === 0 &&\r\n props.paymentsHistoryState === actionTypes.VIEW_STATE.SUCCESS && (\r\n
\r\n

ไม่พบข้อมูล

\r\n
\r\n )}\r\n {props.paymentsHistoryState === actionTypes.VIEW_STATE.LOADING && (\r\n
\r\n \r\n
\r\n )}\r\n\r\n {props.paymentsHistory != null &&\r\n props.paymentsHistory.length > 0 &&\r\n props.paymentsHistory.map((history, index) => (\r\n \r\n \r\n
\r\n ))}\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n token: state.auth.token,\r\n userName: state.auth.userName,\r\n paymentsHistory: state.agreement.paymentsHistory,\r\n paymentsHistoryState: state.agreement.paymentsHistoryState,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getPaymentAgreement: (agr_code) =>\r\n dispatch(actions.getPaymentAgreement(agr_code)),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(PaymentHistory);\r\n","import React, { useState, useEffect, Fragment } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { InputNumber } from \"primereact/inputnumber\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Divider } from \"primereact/divider\";\r\nimport axios from \"axios\";\r\n\r\nimport * as actions from \"./../../../../../store/action/index\";\r\nimport * as actionTypes from \"./../../../../../store/action/actionTypes\";\r\nimport { API_MYASK, API_MYASK_HEADER } from \"../../../../../shared/constant\";\r\nimport { numberWithCommas } from \"../../../../../shared/utility\";\r\nimport Loading from \"./../../../../../components/UI/Loading/Loading\";\r\n\r\nconst EditInstallment = (props) => {\r\n let [amountPaid, setAmountPaid] = useState(0.0);\r\n let [errorMsg, setErrorMsg] = useState(null);\r\n let [currentPaymentDetail, setCurrentPaymentDetail] = useState(null);\r\n let [loading, setLoading] = useState(false);\r\n\r\n useEffect(() => {\r\n if (props.visible === true) {\r\n setAmountPaid(props.currentAmount);\r\n setErrorMsg(null);\r\n setupCurrentPaymentDetail(props.currentAmount);\r\n }\r\n }, [props.visible, props.agreement]);\r\n\r\n useEffect(() => {\r\n setAmountPaid(props.currentAmount);\r\n }, [props.currentAmount]);\r\n\r\n // useEffect(() => {\r\n // console.log(\"trigger agreement effect\");\r\n // setupCurrentPaymentDetail(amountPaid);\r\n // }, [props.agreement]);\r\n\r\n const setupCurrentPaymentDetail = (amount) => {\r\n if (props.agreement != null) {\r\n if (\r\n props.originAmount == amount &&\r\n props.agreement.paymentDetailOrigin != null\r\n ) {\r\n setCurrentPaymentDetail(props.agreement.paymentDetailOrigin);\r\n } else {\r\n callOffsetingRule(amount);\r\n }\r\n }\r\n };\r\n\r\n const onConfirmAmount = (amount) => {\r\n if (amount == null || isNaN(amount)) {\r\n alert(\"โปรดระบุ ยอดที่จะชำระ\");\r\n setErrorMsg(\"โปรดระบุ ยอดที่จะชำระ\");\r\n return;\r\n }\r\n props.onConfirmAmount(\r\n parseFloat(Math.round(amount * 100) / 100).toFixed(2)\r\n );\r\n };\r\n\r\n const onCalculate = (amount) => {\r\n if (amount == null || isNaN(amount)) {\r\n alert(\"โปรดระบุ ยอดที่จะชำระ\");\r\n setErrorMsg(\"โปรดระบุ ยอดที่จะชำระ\");\r\n return;\r\n }\r\n callOffsetingRule(amount);\r\n };\r\n\r\n const callOffsetingRule = (amount) => {\r\n setLoading(true);\r\n const username = sessionStorage.getItem(\"userName\");\r\n const token = sessionStorage.getItem(\"token\");\r\n\r\n const req = {\r\n user_name: username,\r\n token: token,\r\n agr_code: props.agreement.agr_code,\r\n com_code: props.agreement.com_code,\r\n run_no: props.runNo,\r\n amount: amount,\r\n };\r\n\r\n let url = API_MYASK + \"/offsetingRule\";\r\n\r\n axios\r\n .post(url, req, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((response) => {\r\n setLoading(false);\r\n if (response.data.CODE === \"200\" || response.data.CODE === \"204\") {\r\n let paymentDetailOrigin = [];\r\n for (let i in response.data.LIST_DATA) {\r\n let obj = response.data.LIST_DATA[i];\r\n let item = {\r\n i_order: obj.I_ORDER,\r\n pay_flag: obj.PAY_FLAG,\r\n description: obj.DESCRIPTION,\r\n ori_amt: obj.ORI_AMT,\r\n paid_amt: obj.PAID_AMT,\r\n };\r\n\r\n paymentDetailOrigin.push(item);\r\n }\r\n setCurrentPaymentDetail(paymentDetailOrigin);\r\n }\r\n })\r\n .catch((err) => {\r\n setCurrentPaymentDetail(null);\r\n });\r\n };\r\n return (\r\n props.onHide()}\r\n dismissableMask\r\n >\r\n
\r\n
\r\n \r\n เลขที่สัญญา {props.agreement != null && props.agreement.agr_code}\r\n \r\n
\r\n
\r\n

\r\n {props.agreement != null && props.agreement.brand}\r\n

\r\n

\r\n {props.agreement != null && props.agreement.reg_num}\r\n

\r\n

\r\n {props.agreement != null && props.agreement.reg_province}\r\n

\r\n
\r\n

\r\n ชำระค่างวด\r\n

\r\n
\r\n
\r\n \r\n ยอดค้างเต็มจำนวน\r\n
\r\n \r\n {numberWithCommas(\r\n parseFloat(Math.round(props.originAmount * 100) / 100).toFixed(\r\n 2\r\n )\r\n )}{\" \"}\r\n
\r\n \r\n บาท\r\n
\r\n \r\n
\r\n \r\n ยอดที่จะชำระ\r\n
\r\n
\r\n setAmountPaid(e.value)}\r\n mode=\"decimal\"\r\n minFractionDigits={2}\r\n maxFracionDigits={2}\r\n />\r\n

{errorMsg}

\r\n
\r\n \r\n บาท\r\n \r\n \r\n \r\n
\r\n onCalculate(amountPaid)}\r\n />\r\n onConfirmAmount(amountPaid)}\r\n />\r\n
\r\n \r\n\r\n
\r\n {(props.agreement != null &&\r\n props.agreement.paymentDetailState ===\r\n actionTypes.VIEW_STATE.LOADING) ||\r\n (loading && (\r\n
\r\n
\r\n \r\n
\r\n
\r\n ))}\r\n\r\n {props.agreement != null &&\r\n props.agreement.paymentDetailState != null &&\r\n props.agreement.paymentDetailState ===\r\n actionTypes.VIEW_STATE.SUCCESS && (\r\n \r\n
\r\n \r\n

ยอดเต็ม

\r\n \r\n \r\n

\r\n ยอดชำระ\r\n

\r\n \r\n {currentPaymentDetail != null &&\r\n currentPaymentDetail.length > 0 &&\r\n currentPaymentDetail.map((item, index) => (\r\n \r\n \r\n {item.description}\r\n \r\n \r\n {item.ori_amt}\r\n \r\n \r\n
\r\n {props.originAmount == amountPaid\r\n ? item.ori_amt\r\n : item.paid_amt}\r\n
\r\n \r\n
\r\n ))}\r\n \r\n )}\r\n
\r\n

\r\n * บริษัทขอสงวนสิทธิ์ในการหักชำระเบี้ยปรับ ค่าติดตามทวงถาม\r\n ค่าใช้จ่ายและค่าธรรมเนียมต่างๆที่ท่านค้างชำระอยู่กับบริษัทตามความเหมาะสม\r\n

\r\n
\r\n
\r\n

เจ้าหน้าที่ดูแล

\r\n
\r\n
\r\n

{props.agreement != null && props.agreement.officer}

\r\n
\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n agreements: state.agreement.agreements,\r\n runNo: state.agreement.run_no,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {};\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(EditInstallment);\r\n","import React, { useState, useEffect, useCallback } from \"react\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Card } from \"primereact/card\";\r\nimport { Divider } from \"primereact/divider\";\r\nimport { Checkbox } from \"primereact/checkbox\";\r\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\r\nimport { Panel } from \"primereact/panel\";\r\nimport styled from \"styled-components\";\r\n\r\nimport * as actions from \"./../../../../store/action/index\";\r\nimport * as actionTypes from \"../../../../store/action/actionTypes\";\r\nimport Loading from \"./../../../../components/UI/Loading/Loading\";\r\nimport { numberWithCommas, updateObject } from \"../../../../shared/utility\";\r\nimport EditInstallment from \"./EditInstallment/EditInstallment\";\r\n\r\nconst CheckboxContainer = styled.div`\r\n /* .p-checkbox .p-checkbox-box.p-highlight {\r\n border-color: #ff960;\r\n background: #ff960;\r\n } */\r\n`;\r\n\r\nconst PaymentItemList = (props) => {\r\n let history = useHistory();\r\n let query = new URLSearchParams(useLocation().search);\r\n let { paymentItems, payment_agreements, agreements, runNo } = props;\r\n let [agreement, setAgreement] = useState(null);\r\n let [agrCode, setAgrCode] = useState(null);\r\n let [paymentItemUser, setPaymentItemUser] = useState(null);\r\n let [amount, setAmount] = useState(0.0);\r\n let [installment, setInstallment] = useState(0.0);\r\n let [showEditInstallment, setShowEditInstallment] = useState(false);\r\n let [originAmount01, setOriginAmount01] = useState(0.0);\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n if (query.get(\"agr\")) {\r\n let agreementCurrent = null;\r\n if (agreements != null && agreements.length > 0) {\r\n agreementCurrent = agreements.find(\r\n (obj) => obj.agr_code === query.get(\"agr\")\r\n );\r\n }\r\n setAgreement(agreementCurrent);\r\n setAgrCode(query.get(\"agr\"));\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (agreement != null) {\r\n if (agreement.paymentDetailOrigin == null) {\r\n props.getPaymentDetailOrigin(\r\n agreement.agr_code,\r\n agreement.com_code,\r\n runNo\r\n );\r\n } else {\r\n props.getPaymentItem(agreement.agr_code, agreement.com_code, runNo);\r\n }\r\n }\r\n }, [agreement]);\r\n\r\n useEffect(() => {\r\n if (query.get(\"agr\")) {\r\n let agreementCurrent = null;\r\n if (agreements != null && agreements.length > 0) {\r\n agreementCurrent = agreements.find(\r\n (obj) => obj.agr_code === query.get(\"agr\")\r\n );\r\n }\r\n\r\n if (\r\n agreementCurrent != null &&\r\n agreementCurrent.paymentDetailOrigin != null &&\r\n agreement != null &&\r\n agreement.paymentDetailOrigin == null\r\n ) {\r\n setAgreement(agreementCurrent);\r\n }\r\n }\r\n }, [agreements]);\r\n\r\n useEffect(() => {\r\n if (paymentItems != null) {\r\n let updatedDetail = [];\r\n\r\n let paymentAgr = null;\r\n if (payment_agreements != null) {\r\n paymentAgr = payment_agreements.find(\r\n (obj) => obj.agreement.agr_code === agrCode\r\n );\r\n }\r\n\r\n paymentItems.map((item, index) => {\r\n let detailKey = null;\r\n if (paymentAgr != null) {\r\n detailKey = paymentAgr.payment_detail.find(\r\n (obj) => obj.key === item.key && obj.sub_key === item.sub_key\r\n );\r\n }\r\n\r\n if (item.key === \"01\" && item.sub_key === \"0\") {\r\n setOriginAmount01(item.amount);\r\n }\r\n\r\n let pNewItem = {\r\n key: item.key,\r\n sub_key: item.sub_key,\r\n amount:\r\n paymentAgr != null && detailKey != null\r\n ? detailKey.amount\r\n : item.amount,\r\n checked: detailKey != null,\r\n };\r\n updatedDetail.push(pNewItem);\r\n });\r\n const updated = updateObject(paymentItemUser, {\r\n payment_detail: updatedDetail,\r\n });\r\n setPaymentItemUser(updated);\r\n }\r\n }, [paymentItems]);\r\n\r\n useEffect(() => {\r\n calculateAmount();\r\n }, [paymentItemUser]);\r\n\r\n const getAmountDisplay = (key, sub_key, val) => {\r\n if (paymentItemUser != null) {\r\n let index = getIndexPaymentItemUser(key, sub_key);\r\n if (index !== -1) {\r\n return paymentItemUser.payment_detail[index].amount;\r\n }\r\n }\r\n return val;\r\n };\r\n\r\n const getIndexPaymentItemUser = (key, sub_key) => {\r\n if (paymentItemUser != null) {\r\n let index = paymentItemUser.payment_detail.findIndex(\r\n (obj) => obj.key === key && obj.sub_key === sub_key\r\n );\r\n if (index !== -1) {\r\n return index;\r\n }\r\n }\r\n return -1;\r\n };\r\n\r\n const togglePaymentItemUser = (key, sub_key) => {\r\n let updatedDetail = [];\r\n if (paymentItemUser != null) {\r\n updatedDetail = [...paymentItemUser.payment_detail];\r\n }\r\n\r\n let index = getIndexPaymentItemUser(key, sub_key);\r\n updatedDetail[index].checked = !updatedDetail[index].checked;\r\n\r\n const updated = updateObject(paymentItemUser, {\r\n payment_detail: updatedDetail,\r\n });\r\n setPaymentItemUser(updated);\r\n };\r\n\r\n const calculateAmount = () => {\r\n let newAmount = 0.0;\r\n\r\n if (paymentItemUser != null) {\r\n paymentItemUser.payment_detail.map((item, index) => {\r\n if (item.checked) {\r\n newAmount = newAmount + parseFloat(item.amount);\r\n }\r\n });\r\n }\r\n setAmount(newAmount);\r\n };\r\n\r\n const updatePaymentList = () => {\r\n const newArray = paymentItemUser.payment_detail.filter((item) => {\r\n return item.checked === true;\r\n });\r\n\r\n let paymentAgr = null;\r\n if (payment_agreements != null) {\r\n paymentAgr = payment_agreements.find(\r\n (obj) => obj.agreement.agr_code === agrCode\r\n );\r\n }\r\n\r\n let agr_data = {\r\n agr_code: agrCode,\r\n body: \"\",\r\n brand: paymentAgr.brand,\r\n reg_num: paymentAgr.reg_num,\r\n reg_province: paymentAgr.reg_province,\r\n };\r\n props.updateAgreementPayList(agr_data, newArray);\r\n history.goBack();\r\n };\r\n\r\n const onShowEditInstallment = (key, sub_key, val) => {\r\n setInstallment(parseFloat(getAmountDisplay(key, sub_key, val)));\r\n setShowEditInstallment(true);\r\n };\r\n const onHideEditInstallment = () => {\r\n setShowEditInstallment(false);\r\n };\r\n\r\n const confirmEditInstallment = (updatedAmount) => {\r\n setShowEditInstallment(false);\r\n let updatedDetail = [];\r\n if (paymentItemUser != null) {\r\n updatedDetail = [...paymentItemUser.payment_detail];\r\n }\r\n\r\n let index = getIndexPaymentItemUser(\"01\", \"0\");\r\n updatedDetail[index].amount = updatedAmount;\r\n\r\n const updated = updateObject(paymentItemUser, {\r\n payment_detail: updatedDetail,\r\n });\r\n setPaymentItemUser(updated);\r\n };\r\n\r\n const getInstallmentItemView = () => {\r\n if (paymentItems != null && paymentItems.length > 0) {\r\n let item = null;\r\n item = paymentItems.find((item) => {\r\n return item.key == \"01\";\r\n });\r\n if (item != null) {\r\n return (\r\n \r\n
\r\n togglePaymentItemUser(item.key, item.sub_key)}\r\n checked={\r\n paymentItemUser != null &&\r\n paymentItemUser.payment_detail.findIndex(\r\n (obj) =>\r\n obj.key === item.key &&\r\n obj.sub_key === item.sub_key &&\r\n obj.checked === true\r\n ) !== -1\r\n }\r\n >\r\n\r\n
{item.title}
\r\n
\r\n
\r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(\r\n getAmountDisplay(item.key, item.sub_key, item.amount) *\r\n 100\r\n ) / 100\r\n ).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n\r\n
\r\n \r\n onShowEditInstallment(item.key, item.sub_key, item.amount)\r\n }\r\n >\r\n
\r\n
แก้ไขยอด
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n const getGroupItemView = (key) => {\r\n if (paymentItems != null && paymentItems.length > 0) {\r\n let items = [];\r\n items = paymentItems.filter((item) => {\r\n return item.key == key;\r\n });\r\n if (items.length > 0) {\r\n return (\r\n \r\n {items.map((item, index) => (\r\n \r\n
\r\n \r\n togglePaymentItemUser(item.key, item.sub_key)\r\n }\r\n checked={\r\n paymentItemUser != null &&\r\n paymentItemUser.payment_detail.findIndex(\r\n (obj) =>\r\n obj.key === item.key &&\r\n obj.sub_key === item.sub_key &&\r\n obj.checked === true\r\n ) !== -1\r\n }\r\n >\r\n\r\n
{item.title}
\r\n
\r\n
\r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(\r\n getAmountDisplay(\r\n item.key,\r\n item.sub_key,\r\n item.amount\r\n ) * 100\r\n ) / 100\r\n ).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n \r\n \r\n ))}\r\n \r\n );\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n let redirectpage = null;\r\n if (!sessionStorage.getItem(\"token\")) {\r\n redirectpage = ;\r\n }\r\n\r\n if (agreements == null || agreements.length === 0) {\r\n redirectpage = ;\r\n }\r\n\r\n return (\r\n
\r\n {redirectpage}\r\n \r\n\r\n \r\n confirmEditInstallment(updatedAmount)\r\n }\r\n />\r\n\r\n
\r\n
\r\n
\r\n

รายการชำระเงิน

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n เลขที่สัญญา {agrCode}\r\n
\r\n {agreement != null &&\r\n (agreement.brand ||\r\n agreement.reg_num ||\r\n agreement.reg_province) && (\r\n
\r\n {agreement.brand ? (\r\n

{agreement.brand}

\r\n ) : null}\r\n {agreement.reg_num ? (\r\n

{agreement.reg_num}

\r\n ) : null}\r\n {agreement.reg_province ? (\r\n

{agreement.reg_province}

\r\n ) : null}\r\n {agreement.brand === \"\" &&\r\n agreement.reg_num === \"\" &&\r\n agreement.reg_province === \"\" && (\r\n

\r\n
\r\n

\r\n )}\r\n
\r\n )}\r\n \r\n {paymentItems != null && paymentItems.length === 0 && (\r\n
\r\n

ไม่พบข้อมูล

\r\n
\r\n )}\r\n\r\n {props.paymentItemsState === actionTypes.VIEW_STATE.LOADING && (\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n\r\n {getInstallmentItemView()}\r\n {getGroupItemView(\"02\")}\r\n {getGroupItemView(\"03\")}\r\n {paymentItems != null &&\r\n props.paymentItemsState ===\r\n actionTypes.VIEW_STATE.SUCCESS && (\r\n
\r\n
\r\n
รวม
\r\n
\r\n
\r\n

\r\n \r\n \r\n \r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(amount * 100) / 100\r\n ).toFixed(2)\r\n )}\r\n \r\n \r\n \r\n {\" \"}\r\n บาท\r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n token: state.auth.token,\r\n userName: state.auth.userName,\r\n payment_agreements: state.payment.payment_agreements,\r\n paymentItems: state.payment.paymentItems,\r\n paymentItemsState: state.payment.paymentItemsState,\r\n paymentItemsStateMsg: state.payment.paymentItemsStateMsg,\r\n agreements: state.agreement.agreements,\r\n runNo: state.agreement.run_no,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getPaymentItem: (agr_code, com_code, run_no) =>\r\n dispatch(actions.getPaymentItem(agr_code, com_code, run_no)),\r\n updateAgreementPayList: (agr_data, payment_detail) =>\r\n dispatch(actions.updateAgreementPayList(agr_data, payment_detail)),\r\n getPaymentDetailOrigin: (agr_code, com_code, run_no) =>\r\n dispatch(actions.getPaymentDetailOrigin(agr_code, com_code, run_no)),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(PaymentItemList);\r\n\r\n/*\r\n\r\nimport React, { useState, useEffect, useCallback } from \"react\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Card } from \"primereact/card\";\r\nimport { Divider } from \"primereact/divider\";\r\nimport { Checkbox } from \"primereact/checkbox\";\r\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\r\n\r\nimport * as actions from \"./../../../../store/action/index\";\r\nimport * as actionTypes from \"../../../../store/action/actionTypes\";\r\nimport Loading from \"./../../../../components/UI/Loading/Loading\";\r\nimport { numberWithCommas, updateObject } from \"../../../../shared/utility\";\r\nimport EditInstallment from \"./EditInstallment/EditInstallment\";\r\n\r\nconst PaymentItemList = (props) => {\r\n let history = useHistory();\r\n let query = new URLSearchParams(useLocation().search);\r\n let { paymentItems, payment_agreements, agreements, runNo } = props;\r\n let [agreement, setAgreement] = useState(null);\r\n let [agrCode, setAgrCode] = useState(null);\r\n let [paymentItemUser, setPaymentItemUser] = useState(null);\r\n let [amount, setAmount] = useState(0.0);\r\n let [installment, setInstallment] = useState(0.0);\r\n let [showEditInstallment, setShowEditInstallment] = useState(false);\r\n let [originAmount01, setOriginAmount01] = useState(0.0);\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n if (query.get(\"agr\")) {\r\n let agreementCurrent = null;\r\n if (agreements != null && agreements.length > 0) {\r\n agreementCurrent = agreements.find(\r\n (obj) => obj.agr_code === query.get(\"agr\")\r\n );\r\n }\r\n setAgreement(agreementCurrent);\r\n setAgrCode(query.get(\"agr\"));\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (agreement != null) {\r\n if (agreement.paymentDetailOrigin == null) {\r\n props.getPaymentDetailOrigin(\r\n agreement.agr_code,\r\n agreement.com_code,\r\n runNo\r\n );\r\n } else {\r\n props.getPaymentItem(agreement.agr_code, agreement.com_code, runNo);\r\n }\r\n }\r\n }, [agreement]);\r\n\r\n useEffect(() => {\r\n if (query.get(\"agr\")) {\r\n let agreementCurrent = null;\r\n if (agreements != null && agreements.length > 0) {\r\n agreementCurrent = agreements.find(\r\n (obj) => obj.agr_code === query.get(\"agr\")\r\n );\r\n }\r\n\r\n if (\r\n agreementCurrent.paymentDetailOrigin != null &&\r\n agreement != null &&\r\n agreement.paymentDetailOrigin == null\r\n ) {\r\n setAgreement(agreementCurrent);\r\n }\r\n }\r\n }, [agreements]);\r\n\r\n useEffect(() => {\r\n if (paymentItems != null) {\r\n let updatedDetail = [];\r\n\r\n let paymentAgr = null;\r\n if (payment_agreements != null) {\r\n paymentAgr = payment_agreements.find(\r\n (obj) => obj.agreement.agr_code === agrCode\r\n );\r\n }\r\n\r\n paymentItems.map((item, index) => {\r\n let detailKey = null;\r\n if (paymentAgr != null) {\r\n detailKey = paymentAgr.payment_detail.find(\r\n (obj) => obj.key === item.key && obj.sub_key === item.sub_key\r\n );\r\n }\r\n\r\n if (item.key === \"01\" && item.sub_key === \"0\") {\r\n setOriginAmount01(item.amount);\r\n }\r\n\r\n let pNewItem = {\r\n key: item.key,\r\n sub_key: item.sub_key,\r\n amount:\r\n paymentAgr != null && detailKey != null\r\n ? detailKey.amount\r\n : item.amount,\r\n checked: detailKey != null,\r\n };\r\n updatedDetail.push(pNewItem);\r\n });\r\n const updated = updateObject(paymentItemUser, {\r\n payment_detail: updatedDetail,\r\n });\r\n setPaymentItemUser(updated);\r\n }\r\n }, [paymentItems]);\r\n\r\n useEffect(() => {\r\n calculateAmount();\r\n }, [paymentItemUser]);\r\n\r\n const getAmountDisplay = (key, sub_key, val) => {\r\n if (paymentItemUser != null) {\r\n let index = getIndexPaymentItemUser(key, sub_key);\r\n if (index !== -1) {\r\n return paymentItemUser.payment_detail[index].amount;\r\n }\r\n }\r\n return val;\r\n };\r\n\r\n const getIndexPaymentItemUser = (key, sub_key) => {\r\n if (paymentItemUser != null) {\r\n let index = paymentItemUser.payment_detail.findIndex(\r\n (obj) => obj.key === key && obj.sub_key === sub_key\r\n );\r\n if (index !== -1) {\r\n return index;\r\n }\r\n }\r\n return -1;\r\n };\r\n\r\n const togglePaymentItemUser = (key, sub_key) => {\r\n let updatedDetail = [];\r\n if (paymentItemUser != null) {\r\n updatedDetail = [...paymentItemUser.payment_detail];\r\n }\r\n\r\n let index = getIndexPaymentItemUser(key, sub_key);\r\n updatedDetail[index].checked = !updatedDetail[index].checked;\r\n\r\n const updated = updateObject(paymentItemUser, {\r\n payment_detail: updatedDetail,\r\n });\r\n setPaymentItemUser(updated);\r\n };\r\n\r\n const calculateAmount = () => {\r\n let newAmount = 0.0;\r\n\r\n if (paymentItemUser != null) {\r\n paymentItemUser.payment_detail.map((item, index) => {\r\n if (item.checked) {\r\n newAmount = newAmount + parseFloat(item.amount);\r\n }\r\n });\r\n }\r\n setAmount(newAmount);\r\n };\r\n\r\n const updatePaymentList = () => {\r\n const newArray = paymentItemUser.payment_detail.filter((item) => {\r\n return item.checked === true;\r\n });\r\n\r\n let paymentAgr = null;\r\n if (payment_agreements != null) {\r\n paymentAgr = payment_agreements.find(\r\n (obj) => obj.agreement.agr_code === agrCode\r\n );\r\n }\r\n\r\n let agr_data = {\r\n agr_code: agrCode,\r\n body: \"\",\r\n brand: paymentAgr.brand,\r\n reg_num: paymentAgr.reg_num,\r\n reg_province: paymentAgr.reg_province,\r\n };\r\n props.updateAgreementPayList(agr_data, newArray);\r\n history.goBack();\r\n };\r\n\r\n const onShowEditInstallment = (key, sub_key, val) => {\r\n setInstallment(parseFloat(getAmountDisplay(key, sub_key, val)));\r\n setShowEditInstallment(true);\r\n };\r\n const onHideEditInstallment = () => {\r\n setShowEditInstallment(false);\r\n };\r\n\r\n const confirmEditInstallment = (updatedAmount) => {\r\n setShowEditInstallment(false);\r\n let updatedDetail = [];\r\n if (paymentItemUser != null) {\r\n updatedDetail = [...paymentItemUser.payment_detail];\r\n }\r\n\r\n let index = getIndexPaymentItemUser(\"01\", \"0\");\r\n updatedDetail[index].amount = updatedAmount;\r\n\r\n const updated = updateObject(paymentItemUser, {\r\n payment_detail: updatedDetail,\r\n });\r\n setPaymentItemUser(updated);\r\n };\r\n\r\n let redirectpage = null;\r\n if (!sessionStorage.getItem(\"token\")) {\r\n redirectpage = ;\r\n }\r\n\r\n if (agreements == null || agreements.length === 0) {\r\n redirectpage = ;\r\n }\r\n\r\n return (\r\n
\r\n {redirectpage}\r\n \r\n\r\n \r\n confirmEditInstallment(updatedAmount)\r\n }\r\n />\r\n\r\n
\r\n
\r\n
\r\n

รายการชำระเงิน

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n เลขที่สัญญา {agrCode}\r\n
\r\n {agreement != null &&\r\n (agreement.brand ||\r\n agreement.reg_num ||\r\n agreement.reg_province) && (\r\n
\r\n {agreement.brand ? (\r\n

{agreement.brand}

\r\n ) : null}\r\n {agreement.reg_num ? (\r\n

{agreement.reg_num}

\r\n ) : null}\r\n {agreement.reg_province ? (\r\n

{agreement.reg_province}

\r\n ) : null}\r\n {agreement.brand === \"\" &&\r\n agreement.reg_num === \"\" &&\r\n agreement.reg_province === \"\" && (\r\n

\r\n
\r\n

\r\n )}\r\n
\r\n )}\r\n \r\n {paymentItems != null && paymentItems.length === 0 && (\r\n
\r\n

ไม่พบข้อมูล

\r\n
\r\n )}\r\n\r\n {props.paymentItemsState === actionTypes.VIEW_STATE.LOADING && (\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n\r\n {paymentItems != null &&\r\n paymentItems.length > 0 &&\r\n paymentItems.map((item, index) => (\r\n
\r\n
\r\n \r\n togglePaymentItemUser(item.key, item.sub_key)\r\n }\r\n checked={\r\n paymentItemUser != null &&\r\n paymentItemUser.payment_detail.findIndex(\r\n (obj) =>\r\n obj.key === item.key &&\r\n obj.sub_key === item.sub_key &&\r\n obj.checked === true\r\n ) !== -1\r\n }\r\n >\r\n
{item.title}
\r\n
\r\n
\r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(\r\n getAmountDisplay(\r\n item.key,\r\n item.sub_key,\r\n item.amount\r\n ) * 100\r\n ) / 100\r\n ).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n {item.key === \"01\" && item.sub_key === \"0\" && (\r\n
\r\n \r\n onShowEditInstallment(\r\n item.key,\r\n item.sub_key,\r\n item.amount\r\n )\r\n }\r\n >\r\n
\r\n
แก้ไขยอด
\r\n
\r\n \r\n
\r\n )}\r\n\r\n \r\n
\r\n ))}\r\n {paymentItems != null &&\r\n props.paymentItemsState ===\r\n actionTypes.VIEW_STATE.SUCCESS && (\r\n
\r\n
\r\n
รวม
\r\n
\r\n
\r\n

\r\n \r\n \r\n \r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(amount * 100) / 100\r\n ).toFixed(2)\r\n )}\r\n \r\n \r\n \r\n {\" \"}\r\n บาท\r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n token: state.auth.token,\r\n userName: state.auth.userName,\r\n payment_agreements: state.payment.payment_agreements,\r\n paymentItems: state.payment.paymentItems,\r\n paymentItemsState: state.payment.paymentItemsState,\r\n paymentItemsStateMsg: state.payment.paymentItemsStateMsg,\r\n agreements: state.agreement.agreements,\r\n runNo: state.agreement.run_no,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n getPaymentItem: (agr_code, com_code, run_no) =>\r\n dispatch(actions.getPaymentItem(agr_code, com_code, run_no)),\r\n updateAgreementPayList: (agr_data, payment_detail) =>\r\n dispatch(actions.updateAgreementPayList(agr_data, payment_detail)),\r\n getPaymentDetailOrigin: (agr_code, com_code, run_no) =>\r\n dispatch(actions.getPaymentDetailOrigin(agr_code, com_code, run_no)),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(PaymentItemList);\r\n\r\n\r\n*/\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Paper } from \"@material-ui/core\";\r\nimport Link from \"@material-ui/core/Link\";\r\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\r\n\r\nimport * as actions from \"./../../store/action/index\";\r\nimport { numberWithCommas } from \"../../shared/utility\";\r\nimport creditcard from \"./../../assets/creditcard.png\";\r\nimport bbl from \"./../../assets/bank/bbl.png\";\r\nimport scb from \"./../../assets/bank/scb.png\";\r\nimport kbank from \"./../../assets/bank/kbank.png\";\r\nimport bay from \"./../../assets/bank/bay.png\";\r\nimport ktb from \"./../../assets/bank/ktb.png\";\r\nimport qrcode from \"./../../assets/qrcode.png\";\r\nimport PathTree from \"../../components/UI/PathTree/PathTree\";\r\n\r\nconst PaymentChannal = (props) => {\r\n let history = useHistory();\r\n const { payment_agreements } = props;\r\n const [paymentAmount, setPaymentAmount] = useState(0);\r\n\r\n const path = {\r\n Path: [\r\n {\r\n title: \"จัดการสินเชื่อ\",\r\n pathLink: \"/agreements\",\r\n },\r\n {\r\n title: \"ชำระเงิน\",\r\n pathLink: \"/payment-channal\",\r\n },\r\n ],\r\n };\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, []);\r\n\r\n useEffect(() => {\r\n let sum = 0.0;\r\n for (let i = 0; i < payment_agreements.length; i++) {\r\n let obj = payment_agreements[i];\r\n sum = sum + parseFloat(obj.payment_amount);\r\n }\r\n setPaymentAmount(sum);\r\n }, [payment_agreements]);\r\n\r\n const openQR = () => {\r\n history.push({\r\n pathname: \"/payment-qr\",\r\n });\r\n };\r\n\r\n const openBanking = (bank) => {\r\n let url = null;\r\n if (bank === \"BBL\") {\r\n url = \"https://ibanking.bangkokbank.com/SignOn.aspx\";\r\n } else if (bank === \"KBANK\") {\r\n url = \"https://online.kasikornbankgroup.com/K-Online/\";\r\n } else if (bank === \"SCB\") {\r\n url = \"https://www.scbeasy.com/v1.4/site/presignon/index.asp\";\r\n } else if (bank === \"BAY\") {\r\n url = \"https://www.krungsrionline.com/BAY.KOL.WebSite/Common/Login.aspx\";\r\n } else if (bank === \"KTB\") {\r\n url = \"https://www.ktbnetbank.com/consumer/\";\r\n }\r\n\r\n if (url != null) {\r\n const newWindow = window.open(url, \"_blank\", \"noopener,noreferrer\");\r\n if (newWindow) newWindow.opener = null;\r\n }\r\n };\r\n\r\n let redirectpage = null;\r\n if (!sessionStorage.getItem(\"token\")) {\r\n redirectpage = ;\r\n }\r\n\r\n return (\r\n \r\n {redirectpage}\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n

ชำระเงิน

\r\n
\r\n
\r\n \r\n {payment_agreements == null ||\r\n (payment_agreements.length === 0 && (\r\n
\r\n

ไม่พบข้อมูล

\r\n
\r\n ))}\r\n {payment_agreements != null && payment_agreements.length > 0 && (\r\n
\r\n

\r\n ขณะนี้ทางบริษัทได้อยู่ในระหว่างปรับปรุงรูปแบบการชำระเงิน\r\n

\r\n
\r\n

\r\n เรามีความปรารถนาที่จะให้ลูกค้าสะดวกและประทับใจในการใช้บริการ\r\n และขออภัยท่านในความไม่สะดวก ณ ที่นี่\r\n

\r\n
\r\n
\r\n /*
\r\n \r\n
\r\n

ยอดชำระรวม

\r\n
\r\n
\r\n \r\n {numberWithCommas(\r\n parseFloat(paymentAmount).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n
\r\n }\r\n >\r\n \r\n
\r\n

ชำระเงินผ่าน

\r\n
\r\n
\r\n
\r\n openBanking(\"BBL\")}\r\n >\r\n
\r\n \r\n

ธนาคารกรุงเทพ

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n openBanking(\"KBANK\")}\r\n >\r\n
\r\n \r\n

ธนาคารกสิกรไทย

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n openBanking(\"SCB\")}\r\n >\r\n
\r\n \r\n

\r\n ธนาคารไทยพานิชย์\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n openBanking(\"BAY\")}\r\n >\r\n
\r\n \r\n

\r\n ธนาคารกรุงศรีอยุธยา\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n openBanking(\"KTB\")}\r\n >\r\n
\r\n \r\n

ธนาคารกรุงไทย

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n openQR()}\r\n >\r\n
\r\n \r\n

\r\n QR Code/Bar Code\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n >\r\n
*/\r\n )}\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n token: state.auth.token,\r\n userName: state.auth.userName,\r\n payment_agreements: state.payment.payment_agreements,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {};\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(PaymentChannal);\r\n","import React, { useState, useEffect, Fragment } from \"react\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { Button } from \"primereact/button\";\r\nimport QRcode from \"qrcode.react\";\r\nimport Barcode from \"react-barcode\";\r\n\r\nimport * as actions from \"./../../store/action/index\";\r\nimport { numberWithCommas } from \"../../shared/utility\";\r\nimport howtopaid from \"./../../assets/main/main-qrcode.jpeg\";\r\nimport PathTree from \"../../components/UI/PathTree/PathTree\";\r\nimport ButtonTab from \"../../components/UI/Button/Button\";\r\nimport Modal from \"./../../components/UI/Modal/Modal\";\r\n\r\nconst BarcodeAndQR = (props) => {\r\n let history = useHistory();\r\n const { payment_agreements } = props;\r\n const [scanCode, setScanCode] = useState(\"\");\r\n const [scanCodeV, setScanCodeV] = useState(\"\");\r\n const [ref1, setRef1] = useState(\"\");\r\n const [ref2, setRef2] = useState(\"\");\r\n const [tabSelect, setTabSelect] = useState(0);\r\n const [openModal, setOpenModal] = useState(false);\r\n\r\n const path = {\r\n Path: [\r\n {\r\n title: \"จัดการสินเชื่อ\",\r\n pathLink: \"/agreements\",\r\n },\r\n {\r\n title: \"ชำระเงิน\",\r\n pathLink: \"/payment-channal\",\r\n },\r\n {\r\n title: \"คิวอาร์โค้ดและบาร์โค้ด\",\r\n pathLink: \"/payment-qr\",\r\n },\r\n ],\r\n };\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n\r\n if (payment_agreements.length > 0) {\r\n setScanCode(payment_agreements[0].agreement.scan_code);\r\n\r\n let vArr = payment_agreements[0].agreement.scan_code.split(\" \");\r\n let v = \"\";\r\n for (var i = 0; i < vArr.length; i++) {\r\n v = v + vArr[i] + \"\\n\";\r\n }\r\n setScanCodeV(v);\r\n\r\n setRef1(payment_agreements[0].agreement.ref_1);\r\n setRef2(payment_agreements[0].agreement.ref_2);\r\n }\r\n }, []);\r\n\r\n let redirectpage = null;\r\n if (!sessionStorage.getItem(\"token\")) {\r\n redirectpage = ;\r\n }\r\n\r\n const handleQRTab = () => {\r\n setTabSelect(0);\r\n };\r\n\r\n const handleBarCodeTab = () => {\r\n setTabSelect(1);\r\n };\r\n\r\n const handleOpenModal = () => {\r\n setOpenModal(true);\r\n };\r\n\r\n const handleCloseModal = () => {\r\n setOpenModal(false);\r\n };\r\n\r\n let modal = null;\r\n\r\n if (tabSelect === 0) {\r\n modal = (\r\n \r\n \r\n \r\n }\r\n />\r\n );\r\n } else if (tabSelect === 1) {\r\n modal = (\r\n \r\n
\r\n \r\n
\r\n \r\n }\r\n />\r\n );\r\n }\r\n\r\n return (\r\n \r\n {redirectpage}\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n

QR Code / Bar Code

\r\n
\r\n
\r\n \r\n {modal}\r\n {scanCode !== \"\" && (\r\n \r\n
\r\n
\r\n handleQRTab()}\r\n >\r\n QR Code\r\n \r\n
\r\n
\r\n
\r\n
\r\n handleBarCodeTab()}\r\n >\r\n Bar Code\r\n \r\n
\r\n
\r\n\r\n
\r\n {tabSelect === 0 && (\r\n \r\n handleOpenModal()}\r\n >\r\n \r\n
\r\n \r\n

เลขอ้างอิงที่ 1

\r\n

{ref1}

\r\n
\r\n

เลขอ้างอิงที่ 2

\r\n

{ref2}

\r\n
\r\n \r\n )}\r\n {tabSelect === 1 && (\r\n \r\n handleOpenModal()}\r\n >\r\n \r\n
\r\n \r\n

เลขอ้างอิงที่ 1

\r\n

{ref1}

\r\n
\r\n

เลขอ้างอิงที่ 2

\r\n

{ref2}

\r\n \r\n \r\n )}\r\n \r\n\r\n {/* \r\n \r\n */}\r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n token: state.auth.token,\r\n userName: state.auth.userName,\r\n payment_agreements: state.payment.payment_agreements,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {};\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(BarcodeAndQR);\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Card } from \"primereact/card\";\r\nimport { Divider } from \"primereact/divider\";\r\nimport ButtonBase from \"@material-ui/core/ButtonBase\";\r\n\r\nimport * as actions from \"./../../../../store/action/index\";\r\nimport * as actionTypes from \"./../../../../store/action/actionTypes\";\r\nimport { numberWithCommas } from \"../../../../shared/utility\";\r\nimport Loading from \"./../../../../components/UI/Loading/Loading\";\r\nimport { Fragment } from \"react\";\r\n\r\nconst ClosedAgreement = (props) => {\r\n let history = useHistory();\r\n let query = new URLSearchParams(useLocation().search);\r\n let [agrCode, setAgrCode] = useState(null);\r\n let [action, setAction] = useState(\"n\");\r\n let [comCode, setComCode] = useState(null);\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n if (query.get(\"agr\")) {\r\n setAgrCode(query.get(\"agr\"));\r\n }\r\n if (query.get(\"action\")) {\r\n setAction(query.get(\"action\"));\r\n }\r\n if (query.get(\"comCode\")) {\r\n setComCode(query.get(\"comCode\"));\r\n }\r\n\r\n props.getClosedAgreementDetail(\r\n query.get(\"agr\"),\r\n query.get(\"comCode\"),\r\n props.runNo\r\n );\r\n }, []);\r\n\r\n const confirmClosedAgreement = () => {\r\n let canInsert = false;\r\n\r\n const index = props.payment_agreements.findIndex(\r\n (p) => p.agreement.agr_code === agrCode\r\n );\r\n if (index === -1) {\r\n canInsert = true;\r\n }\r\n if (canInsert) {\r\n let items = [];\r\n\r\n let item = {\r\n key: \"01\",\r\n sub_key: \"0\",\r\n title: \"ปิดบัญชี\",\r\n amount: props.closedDetail.sum_paid_all,\r\n };\r\n items.push(item);\r\n\r\n props.insertAgreementPayList(\r\n {\r\n agr_code: agrCode,\r\n com_code: comCode,\r\n body: props.closedDetail.body,\r\n brand: props.closedDetail.brand,\r\n reg_num: props.closedDetail.reg_num,\r\n reg_province: props.closedDetail.reg_province,\r\n },\r\n agrCode,\r\n items,\r\n true\r\n );\r\n }\r\n history.push({\r\n pathname: \"/agreements\",\r\n });\r\n };\r\n\r\n let redirectpage = null;\r\n if (!sessionStorage.getItem(\"token\")) {\r\n redirectpage = ;\r\n }\r\n\r\n if (props.runNo == null || props.runNo === \"\") {\r\n redirectpage = ;\r\n }\r\n\r\n return (\r\n
\r\n {redirectpage}\r\n \r\n
\r\n
\r\n
\r\n

\r\n รายการชำระเงิน(ปิดบัญชี)\r\n

\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n เลขที่สัญญา {agrCode}\r\n
\r\n \r\n {props.closedDetail == null &&\r\n props.closedDetailState ===\r\n actionTypes.VIEW_STATE.SUCCESS && (\r\n
\r\n

ไม่พบข้อมูล

\r\n
\r\n )}\r\n {props.closedDetailState === actionTypes.VIEW_STATE.LOADING && (\r\n
\r\n \r\n
\r\n )}\r\n {props.closedDetail != null &&\r\n props.closedDetailState ===\r\n actionTypes.VIEW_STATE.SUCCESS && (\r\n
\r\n {props.closedDetail.x_condition !== \"\" && (\r\n \r\n {props.closedDetail.x_condition}\r\n
\r\n )}\r\n {props.closedDetail.x_condition === \"\" && (\r\n \r\n {props.closedDetail.items.length > 0 &&\r\n props.closedDetail.items.map((item, index) => (\r\n \r\n
\r\n

{item.description}

\r\n
\r\n
\r\n

\r\n {item.ori_amt} บาท\r\n

\r\n
\r\n
\r\n ))}\r\n\r\n
\r\n

ยอดชำระ

\r\n
\r\n
\r\n

\r\n {numberWithCommas(\r\n parseFloat(\r\n Math.round(\r\n props.closedDetail.sum_paid_all * 100\r\n ) / 100\r\n ).toFixed(2)\r\n )}{\" \"}\r\n บาท\r\n

\r\n
\r\n
\r\n

\r\n (ภายในวันที่ {props.closedDetail.n_due_i})\r\n

\r\n
\r\n
\r\n

\r\n หากชำระเกินวันที่ {props.closedDetail.n_due_i}{\" \"}\r\n ยอดดังกล่าวอาจมีการเปลี่ยนแปลง\r\n

\r\n
\r\n {props.closedDetail.new_tr !== \"P\" &&\r\n props.closedDetail.new_tr !== \"CL\" &&\r\n props.closedDetail.new_tr !== \"CML\" && (\r\n
\r\n \r\n ไม่รวมค่าโอนกรรมสิทธิ์ (ถ้ามี)\r\n

\r\n
\r\n )}\r\n
\r\n

เจ้าหน้าที่ดูแล

\r\n
\r\n
\r\n

{props.closedDetail.officer}

\r\n
\r\n {action === \"y\" && (\r\n
\r\n
\r\n confirmClosedAgreement()}\r\n />\r\n
\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n token: state.auth.token,\r\n userName: state.auth.userName,\r\n payment_agreements: state.payment.payment_agreements,\r\n closedDetail: state.agreement.closedDetail,\r\n closedDetailState: state.agreement.closedDetailState,\r\n closedDetailStateMsg: state.agreement.closedDetailStateMsg,\r\n runNo: state.agreement.run_no,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n insertAgreementPayList: (agreement, agr_code, items, is_closed) =>\r\n dispatch(\r\n actions.insertAgreementPayList(agreement, agr_code, items, is_closed)\r\n ),\r\n getClosedAgreementDetail: (agr_code, com_code, run_no) =>\r\n dispatch(actions.getClosedAgreementDetail(agr_code, com_code, run_no)),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(ClosedAgreement);\r\n","import React, { Fragment } from \"react\";\r\n\r\nimport Checkbox from \"@material-ui/core/Checkbox\";\r\nimport { Button } from \"primereact/button\";\r\n\r\nconst PolicyEtax = (props) => {\r\n return (\r\n \r\n \r\n
\r\n \r\n เงื่อนไขการขอรับใบเสร็จรับเงิน/ใบกำกับภาษี\r\n ในรูปแบบข้อมูลอิเล็กทรอนิกส์\r\n

\r\n
\r\n
\r\n

\r\n 1. บริษัท เอเชียเสริมกิจ ลีสซิ่ง จำกัด (มหาชน)\r\n (บริษัทฯ)จะจัดส่งเอกสารใบเสร็จรับเงิน/ใบกำกับภาษี\r\n ในรูปแบบอิเล็กทรอนิกส์ ซึ่งท่านได้ทำธุรกรรมในทุกสัญญา\r\n ของสินเชื่อทุกประเภท ผ่านไปรษณีย์อิเล็กทรอนิกส์ (E-Mail)\r\n ที่ท่านได้ลงทะเบียนไว้ โดยการขอรับเอกสารในรูปแบบอิเล็กทรอนิกส์นี้\r\n ถือว่าท่านประสงค์ยกเลิก บริการการส่งใบเสร็จรับเงิน/ใบกำกับภาษี\r\n ทางไปรษณีย์ตามที่อยู่ที่เคยแจ้งไว้กับบริษัทฯ\r\n

\r\n
\r\n

\r\n 2. บริษัทฯ\r\n จะเริ่มส่งเอกสารในรูปแบบอิเล็กทรอนิกส์ให้ท่านในรอบบิลถัดไป\r\n ภายหลังจากที่ท่านทำการยืนยันตอบรับเรียบร้อยแล้ว\r\n

\r\n
\r\n
\r\n
\r\n props.onAccept(!props.accept)}\r\n value={1}\r\n style={{\r\n color: \"#ff9600\",\r\n transform: \"scale(2)\",\r\n }}\r\n />\r\n
\r\n ข้าพเจ้าได้อ่านแล้ว\r\n ตกลงยินยอมและยืนยันการรับใบเสร็จรับเงิน/ใบกำกับภาษี\r\n ในรูปแบบอิเล็กทรอนิกส์\r\n
\r\n
\r\n
\r\n props.onNextPage()}\r\n />\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default PolicyEtax;\r\n","import React, { Fragment, useState, useEffect } from \"react\";\r\nimport axios from \"axios\";\r\n\r\nimport { Button } from \"primereact/button\";\r\nimport Input from \"../UI/Input/Input\";\r\nimport { API_MYASK } from \"./../../shared/constant\";\r\nimport Loading from \"../UI/Loading/Loading\";\r\nconst FormEtax = (props) => {\r\n const [emailCurrent, setEmailCurrent] = useState(\"\");\r\n const [loading, setLoading] = useState(true);\r\n useEffect(() => {\r\n setLoading(true);\r\n axios\r\n .post(API_MYASK + \"/getEmailEtax\", {\r\n username: sessionStorage.getItem(\"userName\"),\r\n token: sessionStorage.getItem(\"token\"),\r\n })\r\n .then((res) => {\r\n setLoading(false);\r\n if (res.data.CODE == \"200\") {\r\n setEmailCurrent(res.data.DATA);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n alert(err);\r\n });\r\n }, []);\r\n\r\n const nextPage = () => {\r\n props.onNextPage();\r\n };\r\n\r\n let content = null;\r\n if (loading) {\r\n content = (\r\n
\r\n \r\n
\r\n );\r\n } else {\r\n content = (\r\n \r\n
\r\n {emailCurrent != \"\" && (\r\n

\r\n ท่านได้เคยใช้ {emailCurrent} สมัครบริการ eTax/eReceipt\r\n
\r\n หากต้องการเปลี่ยน email address โปรดระบุข้างล่างใหม่\r\n

\r\n )}\r\n\r\n {emailCurrent == \"\" && (\r\n

\r\n โปรดระบุ email address ที่ใช้ในการรับใบเสร็จรับเงิน/ใบกำกับภาษี\r\n ในรูปแบบอิเล็กทรอนิกส์\r\n

\r\n )}\r\n
\r\n
\r\n \r\n \r\n props.onChangeEmail(event.target.value, \"email\")\r\n }\r\n styleLabel={{ width: \"100%\", padding: \"0px\" }}\r\n styleInput={{\r\n fontSize: \"1.6rem\",\r\n padding: \"1.6rem\",\r\n fontFamily: \"Prompt-Regular\",\r\n }}\r\n />\r\n \r\n
\r\n\r\n
\r\n props.onPrevPage()}\r\n />\r\n nextPage()}\r\n />\r\n
\r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {content}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default FormEtax;\r\n","import React, { Fragment, useState, useEffect } from \"react\";\r\nimport axios from \"axios\";\r\n\r\nimport { Button } from \"primereact/button\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport OTPInput from \"otp-input-react\";\r\nimport Loading from \"../UI/Loading/Loading\";\r\nimport { API_MYASK } from \"./../../shared/constant\";\r\nimport { updateObject } from \"./../../shared/utility\";\r\n\r\nconst ConfirmEmailEtax = (props) => {\r\n const [refId, setRefId] = useState(null);\r\n const [loading, setLoading] = useState(true);\r\n const [OTP, setOTP] = useState(\"\");\r\n const [errorMsgOTP, setErrorMsgOTP] = useState(\"\");\r\n const [checkingOTP, setCheckingOTP] = useState(false);\r\n\r\n useEffect(() => {\r\n if (props.email != \"\" && props.email != null) {\r\n sendMailOTP(props.email);\r\n }\r\n }, [props.email]);\r\n\r\n const sendMailOTP = (email) => {\r\n if (sessionStorage.getItem(\"from_cs\") === \"true\") {\r\n setLoading(false);\r\n return;\r\n }\r\n\r\n setLoading(true);\r\n axios\r\n .post(\r\n API_MYASK + \"/sentMailOtp\",\r\n {\r\n email_to: email,\r\n owner: sessionStorage.getItem(\"userName\"),\r\n subject: \"Confirm your email\",\r\n second_expired: 300,\r\n template: 3,\r\n option_password: {\r\n length_digit: 6,\r\n },\r\n },\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json;charset=utf-8\",\r\n },\r\n }\r\n )\r\n .then((res) => {\r\n setLoading(false);\r\n if (res.data.code == 200) {\r\n setRefId(res.data.ref_id);\r\n }\r\n })\r\n .catch((err) => {\r\n setLoading(false);\r\n alert(err);\r\n });\r\n };\r\n\r\n const checkOTP = () => {\r\n if (sessionStorage.getItem(\"from_cs\") === \"true\") {\r\n props.onNextPage();\r\n return;\r\n }\r\n setCheckingOTP(true);\r\n setErrorMsgOTP(\"\");\r\n\r\n axios\r\n .post(API_MYASK + \"/registerEtax\", {\r\n ref_id: refId,\r\n email: props.email,\r\n password: OTP,\r\n username: sessionStorage.getItem(\"userName\"),\r\n token: sessionStorage.getItem(\"token\"),\r\n })\r\n .then((res) => {\r\n setCheckingOTP(false);\r\n if (res.data.CODE == 200) {\r\n props.onNextPage();\r\n } else {\r\n setErrorMsgOTP(res.data.MSG);\r\n }\r\n })\r\n .catch((err) => {\r\n setCheckingOTP(false);\r\n setErrorMsgOTP(err);\r\n });\r\n };\r\n\r\n let otpInput = null;\r\n if (\r\n (refId != null && loading == false) ||\r\n sessionStorage.getItem(\"from_cs\") === \"true\"\r\n ) {\r\n otpInput = (\r\n \r\n );\r\n } else if (loading == true) {\r\n otpInput = (\r\n
\r\n \r\n
\r\n );\r\n }\r\n return (\r\n \r\n \r\n
\r\n

\r\n ขณะนี้ ระบบได้ส่งอีเมลล์ {props.email} ตามที่ท่านได้ระบุไว้\r\n

\r\n
\r\n

\r\n กรุณาเข้าอีเมลล์ของท่าน นำเลขรหัส 6\r\n หลักที่ได้รับจากอีเมลล์ที่ท่านได้รับ\r\n กรอกลงในช่องด้านล่างเพื่อทำการยืนยัน\r\n

\r\n
\r\n
\r\n \r\n {otpInput}\r\n \r\n {}}\r\n >\r\n
\r\n \r\n
\r\n \r\n {errorMsgOTP !== \"\" && (\r\n
\r\n

\r\n {errorMsgOTP}\r\n

\r\n
\r\n )}\r\n\r\n
\r\n\r\n
\r\n props.onPrevPage()}\r\n />\r\n \r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ConfirmEmailEtax;\r\n","import React, { Fragment } from \"react\";\r\n\r\nimport { Button } from \"primereact/button\";\r\n\r\nconst CompleteEtax = (props) => {\r\n return (\r\n \r\n \r\n
\r\n \r\n ทางบริษัทฯ ขอขอบคุณท่านเป็นอย่างยิ่ง\r\n ที่สนใจรับใบเสร็จรับเงิน/ใบกำกับภาษี ในรูปแบบอิเล็กทรอนิกส์\r\n

\r\n
\r\n
\r\n
\r\n

\r\n บริษัทฯจะเริ่มส่งเอกสารในรูปแบบอิเล็กทรอนิกส์ ให้ท่านในรอบบิลถัดไป\r\n

\r\n
\r\n
\r\n\r\n
\r\n props.onClickHandler()}\r\n />\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default CompleteEtax;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nimport PathTree from \"../../components/UI/PathTree/PathTree\";\r\nimport PolicyEtax from \"../../components/EtaxEreceipt/PolicyEtax\";\r\nimport FormEtax from \"../../components/EtaxEreceipt/FormEtax\";\r\nimport ConfirmEmailEtax from \"../../components/EtaxEreceipt/ConfirmEmailEtax\";\r\nimport CompleteEtax from \"../../components/EtaxEreceipt/CompleteEtax\";\r\n\r\nimport {\r\n updateObject,\r\n checkValidity,\r\n checkError,\r\n} from \"./../../shared/utility\";\r\n\r\nconst RegisterEtax = (props) => {\r\n let history = useHistory();\r\n const [indexPage, setIndexPage] = useState(0); // 0 = policy , 1 = form , 2 = confirm , 3 = success\r\n const [acceptPolicy, setAcceptPolicy] = useState(false); // 0 = policy , 1 = form , 2 = confirm , 3 = success\r\n\r\n /* Form Page */\r\n const [formEtax, setFormEtax] = useState({\r\n form: {\r\n email: {\r\n order: \"1\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"email\",\r\n placeholder: \"email address\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: false,\r\n isEmail: true,\r\n },\r\n isEmail: false,\r\n valid: true,\r\n touched: false,\r\n textInvalid: \"E-mail ไม่ถูกต้อง\",\r\n label: \"E-mail\",\r\n labelError: \"E-mail\",\r\n },\r\n },\r\n formIsValid: false,\r\n });\r\n\r\n /* End Form Page */\r\n\r\n let redirectpage = null;\r\n if (!sessionStorage.getItem(\"token\")) {\r\n redirectpage = ;\r\n }\r\n\r\n const path = {\r\n Path: [\r\n {\r\n title: \"จัดการสินเชื่อ\",\r\n pathLink: \"/agreements\",\r\n },\r\n {\r\n title: \"e-tax e-receipt\",\r\n pathLink: \"/etax_ereceipt\",\r\n },\r\n ],\r\n };\r\n\r\n useEffect(() => {\r\n setInitialData();\r\n return () => {};\r\n }, []);\r\n\r\n const setInitialData = () => {\r\n setIndexPage(0);\r\n setAcceptPolicy(false);\r\n setFormEtax({\r\n form: {\r\n email: {\r\n order: \"1\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"email\",\r\n placeholder: \"email address\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: false,\r\n isEmail: true,\r\n },\r\n isEmail: false,\r\n valid: true,\r\n touched: false,\r\n textInvalid: \"E-mail ไม่ถูกต้อง\",\r\n label: \"E-mail\",\r\n labelError: \"E-mail\",\r\n },\r\n },\r\n formIsValid: false,\r\n });\r\n };\r\n\r\n const nextPage = () => {\r\n if (indexPage === 0) {\r\n goToFormPage();\r\n } else if (indexPage === 1) {\r\n goToConfirmEmailPage();\r\n } else if (indexPage === 2) {\r\n goToCompletePage(3);\r\n }\r\n window.scrollTo(0, 0);\r\n };\r\n\r\n const prevPage = () => {\r\n if (indexPage === 1) {\r\n goToPolicyPage();\r\n } else if (indexPage === 2) {\r\n goToFormPage();\r\n }\r\n window.scrollTo(0, 0);\r\n };\r\n\r\n const goToMainPage = () => {\r\n history.push({\r\n pathname: \"/agreements\",\r\n });\r\n };\r\n\r\n const goToPolicyPage = () => {\r\n setIndexPage(0);\r\n };\r\n\r\n const goToFormPage = () => {\r\n setIndexPage(1);\r\n };\r\n\r\n const goToConfirmEmailPage = () => {\r\n setIndexPage(2);\r\n };\r\n\r\n const goToCompletePage = () => {\r\n setIndexPage(3);\r\n };\r\n\r\n const onChangeEmailHandler = (val) => {\r\n const validate = checkValidity(val, { isEmail: true });\r\n let text = \"กรุณาระบุ E-mail ให้ถูกต้อง\";\r\n let updatedFormElement;\r\n\r\n if (val === \"\") {\r\n updatedFormElement = updateObject(formEtax.form[\"email\"], {\r\n value: val,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: false,\r\n isEmail: false,\r\n });\r\n } else {\r\n updatedFormElement = updateObject(formEtax.form[\"email\"], {\r\n value: val,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n isEmail: true,\r\n });\r\n }\r\n\r\n let updatedForm;\r\n updatedForm = updateObject(formEtax.form, {\r\n [\"email\"]: updatedFormElement,\r\n });\r\n\r\n let formIsValid = true;\r\n for (let inputIdentifier in updatedForm) {\r\n formIsValid = updatedForm[inputIdentifier].valid && formIsValid;\r\n }\r\n\r\n const updatedState = updateObject(formEtax, {\r\n form: updatedForm,\r\n formIsValid: formIsValid,\r\n formCheckErr: false,\r\n });\r\n setFormEtax(updatedState);\r\n };\r\n\r\n return (\r\n \r\n
\r\n {redirectpage}\r\n
\r\n
\r\n
\r\n

\r\n สมัครบริการ eTax/eReceipt\r\n

\r\n
\r\n
\r\n
\r\n {indexPage === 0 && (\r\n \r\n )}\r\n {indexPage === 1 && (\r\n \r\n )}\r\n {indexPage === 2 && (\r\n \r\n )}\r\n {indexPage === 3 && }\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n token: state.auth.token,\r\n userName: state.auth.userName,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps)(RegisterEtax);\r\n","import { useEffect } from \"react\";\r\nimport { withRouter, useLocation } from \"react-router-dom\";\r\n\r\nconst ScrollToTop = (props) => {\r\n const { pathname } = useLocation();\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, [pathname]);\r\n\r\n return null;\r\n};\r\n\r\nexport default withRouter(ScrollToTop);\r\n","import React, { useEffect } from \"react\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\n\r\nimport * as actions from \"./../../store/action/index\";\r\n\r\nconst PaymentSuccess = (props) => {\r\n useEffect(() => {\r\n props.clearAgreementState();\r\n props.clearPaymentState();\r\n }, []);\r\n\r\n let redirectpage = null;\r\n if (!sessionStorage.getItem(\"token\")) {\r\n redirectpage = ;\r\n } else {\r\n redirectpage = ;\r\n }\r\n\r\n return (\r\n
\r\n {redirectpage}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n token: state.auth.token,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n clearAgreementState: () => dispatch(actions.clearAgreementState()),\r\n clearPaymentState: () => dispatch(actions.clearPaymentState()),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(PaymentSuccess);\r\n","import React, { useState, useEffect, useRef, useMemo } from \"react\";\r\nimport { FilterMatchMode, FilterOperator } from \"primereact/api\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { MultiSelect } from \"primereact/multiselect\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from \"primereact/inputtext\";\r\n\r\nimport styled from \"styled-components\";\r\nimport axios from \"axios\";\r\nimport { API_MYASK, API_MYASK_HEADER } from \"../../shared/constant\";\r\nimport Loading from \"../../components/UI/Loading/Loading\";\r\nimport * as actions from \"./../../store/action/index\";\r\nimport * as actionTypes from \"./../../store/action/actionTypes\";\r\n\r\nconst FilterContainer = styled.div`\r\n .p-datatable,\r\n .p-inputtext {\r\n font-size: 1.6rem;\r\n font-family: \"Prompt-Regular\" !important;\r\n }\r\n .p-multiselect-label-container {\r\n font-size: 1.6rem;\r\n font-family: \"Prompt-Regular\" !important;\r\n }\r\n .p-paginator-bottom,\r\n .p-paginator-top {\r\n font-size: 1.6rem;\r\n font-family: \"Prompt-Regular\" !important;\r\n }\r\n\r\n .p-paginator {\r\n /* background: #ff9600; */\r\n margin-top: 2rem;\r\n }\r\n .p-paginator-current,\r\n .p-paginator .p-paginator-first,\r\n .p-paginator .p-paginator-prev,\r\n .p-paginator .p-paginator-next,\r\n .p-paginator .p-paginator-last,\r\n .p-paginator .p-paginator-pages .p-paginator-page {\r\n color: #000;\r\n }\r\n .p-paginator .p-paginator-pages .p-paginator-page {\r\n font-size: 1.6rem;\r\n font-family: \"Prompt-Regular\" !important;\r\n margin: 1rem;\r\n }\r\n .p-paginator .p-paginator-pages .p-paginator-page.p-highlight {\r\n background: #ff9600;\r\n }\r\n .p-paginator .p-dropdown {\r\n height: 3rem;\r\n }\r\n .p-paginator .p-dropdown .p-dropdown-label {\r\n font-size: 1.6rem;\r\n font-family: \"Prompt-Regular\" !important;\r\n padding-left: 1rem;\r\n padding-right: 1rem;\r\n align-self: center;\r\n }\r\n .pi {\r\n font-size: 1.5rem;\r\n }\r\n`;\r\n\r\nconst FilterPage = (props) => {\r\n const tableRef = useRef();\r\n const history = useHistory();\r\n const columns = [\r\n { field: \"com_code\", header: \"บริษัท\" },\r\n { field: \"agr_code\", header: \"เลขที่สัญญา\" },\r\n { field: \"new_tr\", header: \"Product\" },\r\n { field: \"username\", header: \"ชื่อผู้ใช้งาน\" },\r\n { field: \"cus_name\", header: \"ชื่อลูกค้า\" },\r\n { field: \"reg_num\", header: \"เลขทะเบียน\" },\r\n { field: \"reg_prv\", header: \"จังหวัด\" },\r\n ];\r\n const [selectedColumns, setSelectedColumns] = useState(columns);\r\n const [data, setData] = useState([]);\r\n const [isLoading, setIsLoading] = useState(\"\");\r\n const [errorMsg, setErrorMsg] = useState(\"\");\r\n const [filter, setFilter] = useState(\"\");\r\n\r\n useEffect(() => {\r\n props.onLogout(null, sessionStorage.getItem(\"userName\"));\r\n sessionStorage.removeItem(\"from_cs\");\r\n }, []);\r\n\r\n // useEffect(() => {\r\n // if (props.results != null) {\r\n // setData(props.results);\r\n // }\r\n\r\n // return () => {};\r\n // }, [props.results]);\r\n\r\n // useEffect(() => {\r\n // if (props.filter) {\r\n // setFilter(props.filter);\r\n // }\r\n // }, [props.filter]);\r\n\r\n // useEffect(() => {\r\n // if (props.fullSummaryPaymentStateMsg) {\r\n // setErrorMsg(props.fullSummaryPaymentStateMsg);\r\n // }\r\n // }, [props.fullSummaryPaymentStateMsg]);\r\n\r\n const callFilter = () => {\r\n tableRef.current.reset();\r\n //props.onCallCsFilter(filter);\r\n if (filter.trim() == \"\") {\r\n setData([]);\r\n } else {\r\n setIsLoading(true);\r\n axios\r\n .post(\r\n API_MYASK + \"/csFilter\",\r\n {\r\n value: filter,\r\n },\r\n {\r\n headers: API_MYASK_HEADER,\r\n }\r\n )\r\n .then((res) => {\r\n setIsLoading(false);\r\n if (res.data.CODE == \"200\") {\r\n let filters = [];\r\n for (let i in res.data.LIST_DATA) {\r\n let obj = res.data.LIST_DATA[i];\r\n let data = {\r\n com_code: obj.com_code,\r\n agr_code: obj.agr_code,\r\n new_tr: obj.new_tr,\r\n username: obj.username,\r\n password: obj.password,\r\n cus_name: obj.cus_name,\r\n reg_num: obj.reg_num,\r\n reg_prv: obj.reg_prv,\r\n new_card_no: obj.new_card_no,\r\n };\r\n\r\n filters.push(data);\r\n }\r\n setData(filters);\r\n } else {\r\n setErrorMsg(res.data.MSG);\r\n }\r\n })\r\n .catch((err) => {\r\n setIsLoading(false);\r\n setErrorMsg(err.message);\r\n });\r\n }\r\n };\r\n\r\n const onLogin = (username, password) => {\r\n const data_login = {\r\n username: username,\r\n password: password,\r\n lineid: null,\r\n store: false,\r\n };\r\n\r\n axios\r\n .post(API_MYASK + \"/Login\", data_login, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n if (res.data.CODE === \"200\") {\r\n sessionStorage.setItem(\"from_cs\", true);\r\n props.onAuth(res.data.MSG, username);\r\n history.push({\r\n pathname: \"/agreements\",\r\n });\r\n } else {\r\n setErrorMsg(res.data.MSG);\r\n }\r\n });\r\n };\r\n\r\n const onColumnToggle = (event) => {\r\n let selectedColumns = event.value;\r\n let orderedSelectedColumns = columns.filter((col) =>\r\n selectedColumns.some((sCol) => sCol.field === col.field)\r\n );\r\n setSelectedColumns(orderedSelectedColumns);\r\n };\r\n\r\n const onRowSelect = (event) => {\r\n onLogin(event.data.username, event.data.password);\r\n };\r\n\r\n const header = (\r\n
\r\n Column:{\" \"}\r\n \r\n
\r\n );\r\n const onGetFilterValueColumn = (column) => {\r\n let json = JSON.parse(window.sessionStorage.getItem(\"csfilter-custom\"));\r\n if (json == null || json.filters[column].value == null) {\r\n return null;\r\n } else {\r\n return json.filters[column].value;\r\n }\r\n };\r\n\r\n const onCustomSaveState = (state) => {\r\n window.sessionStorage.setItem(\"csfilter-custom\", JSON.stringify(state));\r\n };\r\n\r\n const onCustomRestoreState = () => {\r\n return JSON.parse(window.sessionStorage.getItem(\"csfilter-custom\"));\r\n };\r\n\r\n const filters = {\r\n com_code: {\r\n value: onGetFilterValueColumn(\"com_code\"),\r\n matchMode: FilterMatchMode.CONTAINS,\r\n },\r\n agr_code: {\r\n value: onGetFilterValueColumn(\"agr_code\"),\r\n matchMode: FilterMatchMode.CONTAINS,\r\n },\r\n new_tr: {\r\n value: onGetFilterValueColumn(\"new_tr\"),\r\n matchMode: FilterMatchMode.CONTAINS,\r\n },\r\n username: {\r\n value: onGetFilterValueColumn(\"username\"),\r\n matchMode: FilterMatchMode.CONTAINS,\r\n },\r\n cus_name: {\r\n value: onGetFilterValueColumn(\"cus_name\"),\r\n matchMode: FilterMatchMode.CONTAINS,\r\n },\r\n reg_num: {\r\n value: onGetFilterValueColumn(\"reg_num\"),\r\n matchMode: FilterMatchMode.CONTAINS,\r\n },\r\n reg_prv: {\r\n value: onGetFilterValueColumn(\"reg_prv\"),\r\n matchMode: FilterMatchMode.CONTAINS,\r\n },\r\n };\r\n\r\n const matchModes = [{ label: \"ประกอบด้วย\", value: FilterMatchMode.CONTAINS }];\r\n\r\n const columnComponents = selectedColumns.map((col) => {\r\n return (\r\n \r\n );\r\n });\r\n\r\n return (\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n setErrorMsg(\"\")}\r\n dismissableMask\r\n >\r\n
\r\n

\r\n {errorMsg}\r\n

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
ค้นหา :
\r\n setFilter(e.target.value)}\r\n placeholder=\"เลขที่สัญญา/ชื่อผู้ใช้งาน/ชื่อลูกค้า/เลขทะเบียน/เลขบัตรประชาชน\"\r\n onKeyDown={(event) => {\r\n if (event.key === \"Enter\") {\r\n callFilter();\r\n }\r\n }}\r\n />\r\n
\r\n
\r\n callFilter()}\r\n />\r\n
\r\n
\r\n\r\n \r\n {columnComponents}\r\n \r\n
\r\n \r\n );\r\n};\r\nconst mapStateToProps = (state) => {\r\n return {\r\n results: state.cs.results,\r\n filter: state.cs.filter,\r\n resultsState: state.cs.resultsState,\r\n resultsStateMsg: state.cs.resultsStateMsg,\r\n };\r\n};\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onAuth: (token, userName) => dispatch(actions.auth(token, userName)),\r\n onLogout: (lineId, userName) => dispatch(actions.logout(lineId, userName)),\r\n onCallCsFilter: (value) => dispatch(actions.csFilter(value)),\r\n };\r\n};\r\n\r\nexport default connect(null, mapDispatchToProps)(FilterPage);\r\n","import React, { useEffect, useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport { API_MYASK, API_MYASK_HEADER } from \"./../../shared/constant\";\r\n\r\nconst DownloadButton = (props) => {\r\n const data = {\r\n device: \"web\",\r\n userName: \"\",\r\n userCode: \"C\",\r\n comCode: \"\",\r\n pathfile: \"\",\r\n pfilename: \"DatasubjectForm.pdf\",\r\n };\r\n\r\n const pFile = \"DatasubjectForm.pdf\";\r\n const pFileNm = \"DatasubjectForm\";\r\n\r\n axios\r\n .get(API_MYASK + \"/file-management/\" + pFile + \"/\" + pFileNm)\r\n .then((res) => {\r\n const url = API_MYASK + \"/file-management/\" + pFile + \"/\" + pFileNm;\r\n window.open(url, \"_blank\");\r\n return this.http.post(url, JSON.stringify(data), { Response: \"blob\" });\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n });\r\n};\r\nexport default DownloadButton;\r\n","//import React from 'react';\r\nimport React, { useEffect, useState } from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Icon from \"./../UI/Icon/Icon\";\r\nimport \"./../Apply/Apply.css\";\r\nimport Loading from \"./../UI/Loading/Loading\";\r\nimport \"./../Consent/Consentccs.css\";\r\nimport DownloadButton from \"../../containers/ConsentControls/Consentdowloadfile\";\r\nimport { connect } from \"react-redux\";\r\nimport { browserVersion } from \"react-device-detect\";\r\nimport { API_MYASK, API_MYASK_HEADER } from \"./../../shared/constant\";\r\nimport axios from \"axios\";\r\nimport ModalError from \"./../../components/UI/Error/Error\";\r\nimport { Card, debounce } from \"@material-ui/core\";\r\n\r\nconst Consent = (props) => {\r\n var totalSelectFile = 0;\r\n var totalFiles = 0;\r\n var dataSelectItems = [];\r\n //var pPATHfile =\"//JAVADEV04//PDPAConsent//TempRequest/\";\r\n var pPATHfile = \"//172.16.1.111/Public/PDPAConsent/TempRequest/\";\r\n var totalSizeFile = 0;\r\n var totalKB = 0;\r\n var totalMB = 0;\r\n var final_totalB = 0;\r\n var final_totalKB = 0;\r\n var final_totalMB = 0;\r\n\r\n const topic = {\r\n marginTop: \"0.5rem\",\r\n marginBottom: \"2rem\",\r\n };\r\n\r\n const [filestate, setbase64URL] = useState(\"\");\r\n const [xreren, setRerenTmp] = useState(\"\");\r\n const [pTotalFile, setpTotal] = useState(0);\r\n\r\n const getTotalSizes = () => {\r\n totalKB = totalSizeFile / 1024;\r\n totalMB = totalKB / 1024;\r\n final_totalB = parseFloat(totalSizeFile).toFixed(2);\r\n final_totalKB = parseFloat(totalKB).toFixed(2);\r\n final_totalMB = parseFloat(totalMB).toFixed(2);\r\n };\r\n\r\n const getBase64 = (file) => {\r\n return new Promise((resolve) => {\r\n //let fileInfo;\r\n let baseURL = \"\";\r\n // Make new FileReader\r\n let reader = new FileReader();\r\n // Convert the file to base64 text\r\n reader.readAsDataURL(file);\r\n // on reader load somthing...\r\n reader.onload = () => {\r\n // Make a fileInfo Object\r\n //console.log(\"Called\", reader);\r\n baseURL = reader.result;\r\n //console.log(\"baseURL=\"+baseURL);\r\n resolve(baseURL);\r\n };\r\n });\r\n };\r\n\r\n const ShowAlert = (e) => {\r\n if (props.xcard == \"\") {\r\n alert(\"โปรดระบุ เลขที่บัตรประชาชน\");\r\n } else {\r\n handleFileInputChange(e);\r\n }\r\n };\r\n\r\n const updateList = function (file, itemno) {\r\n var input = file;\r\n\r\n const data = {\r\n device: \"web\",\r\n userName: \"\",\r\n userCode: \"\",\r\n comCode: \"\",\r\n pTaskCode: \"DSR-01\",\r\n pChannelMail: \"01\",\r\n pathfile: pPATHfile,\r\n pfilename: input.name, //input.files.item(i).name,\r\n pcardno: props.xcard,\r\n pfilename: input.name, //input.files.item(i).name,\r\n pfilesize: input.base64,\r\n };\r\n\r\n axios\r\n .post(API_MYASK + \"/Postuploadfile\", data, { headers: API_MYASK_HEADER })\r\n .then((res) => {\r\n if (res.data.CODE == \"200\") {\r\n if (totalSelectFile == itemno + 1) {\r\n getUplaodFiles();\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n });\r\n };\r\n\r\n const handleFileInputChange = (e) => {\r\n let { fileitemsList } = e.target.files;\r\n fileitemsList = e.target.files;\r\n totalSelectFile = fileitemsList.length;\r\n\r\n for (let i = 0; i < fileitemsList.length; i++) {\r\n let fileitems = fileitemsList[i];\r\n getBase64(fileitems)\r\n .then((result) => {\r\n fileitems[\"base64\"] = result;\r\n\r\n setbase64URL({\r\n base64URL: result,\r\n fileitems,\r\n });\r\n\r\n updateList(fileitems, i);\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n });\r\n\r\n setbase64URL({\r\n file: fileitems,\r\n });\r\n } //End For\r\n };\r\n\r\n const getUplaodFiles = () => {\r\n var output = document.getElementById(\"fileAll\");\r\n var children = \"\";\r\n\r\n const data = {\r\n device: \"web\",\r\n userName: \"\",\r\n userCode: \"\",\r\n comCode: \"\",\r\n pTaskCode: \"DSR-01\",\r\n pChannelMail: \"01\",\r\n pathfile: pPATHfile,\r\n pfilename: \"\", //input.files.item(i).name,\r\n pcardno: props.xcard,\r\n pfilename: \"\", //input.files.item(i).name,\r\n pfilesize: 0,\r\n };\r\n\r\n axios\r\n .post(API_MYASK + \"/PostReadAttachedfile\", data, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n totalSizeFile = 0;\r\n //console.log(res.data.LIST_DATA);\r\n for (let i in res.data.LIST_DATA) {\r\n children += '
';\r\n children +=\r\n '

';\r\n children +=\r\n \" \" +\r\n res.data.LIST_DATA[i].file_name +\r\n \" ขนาดไฟล์ : \" +\r\n res.data.LIST_DATA[i].file_size +\r\n \"

\";\r\n children += \"
\";\r\n totalSizeFile = totalSizeFile + res.data.LIST_DATA[i].file_sizeonly;\r\n }\r\n getTotalSizes();\r\n output.innerHTML =\r\n \"
    \" +\r\n children +\r\n '

Total size of all files :
Total Bytes :' +\r\n final_totalB +\r\n \" Bytes.
Total Kilobytes : \" +\r\n final_totalKB +\r\n \" KB.
Total Megabytes : \" +\r\n final_totalMB +\r\n \" MB.

\";\r\n })\r\n .catch((err) => {\r\n setRerenTmp(\r\n \r\n );\r\n });\r\n };\r\n\r\n const getData = () => {\r\n // this function will get called when the save button is clicked\r\n var itemForm = document.getElementById(\"fileAll\"); // getting the parent container of all the checkbox inputs\r\n var checkBoxes = itemForm.querySelectorAll('input[type=\"checkbox\"]'); // get all the check box\r\n let i = 0;\r\n\r\n dataSelectItems = [];\r\n checkBoxes.forEach((fileAll) => {\r\n // loop all the checkbox item\r\n if (fileAll.checked) {\r\n //if the check box is checked\r\n let dataSelect = {\r\n // create an object\r\n //FILE_NAME : fileAll.value,\r\n //FILE_CHECK : fileAll.checked,\r\n folder_name: pPATHfile,\r\n file_name: fileAll.value,\r\n file_nameonly: fileAll.value,\r\n file_size: 0,\r\n file_type: \"\",\r\n };\r\n //console.log(\"item selcted =>\"+fileAll.value+\" item checked =>\"+fileAll.checked);\r\n dataSelectItems.push(dataSelect); //stored the objects to result array\r\n }\r\n i++;\r\n });\r\n\r\n if (dataSelectItems.length > 0) {\r\n const data = {\r\n device: \"web\",\r\n userName: \"\",\r\n userCode: \"\",\r\n comCode: \"\",\r\n pTaskCode: \"DSR-01\",\r\n pathfile: pPATHfile,\r\n pfilename: \"\", //input.files.item(i).name,\r\n pcardno: props.xcard,\r\n pfilename: \"\", //input.files.item(i).name,\r\n pfilesize: 0,\r\n objfileupload: dataSelectItems,\r\n };\r\n\r\n axios\r\n .post(API_MYASK + \"/PostDeleteAttachedfile\", data, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n if (res.data.CODE == \"200\") {\r\n getUplaodFiles();\r\n }\r\n })\r\n .catch((err) => {\r\n setRerenTmp(\r\n \r\n );\r\n });\r\n } else {\r\n window.alert(\"กรุณาเลือกไฟล์ที่ต้องการลบ!\");\r\n }\r\n };\r\n\r\n const handelSubmit = (event) => {\r\n event.preventDefault();\r\n var checkCus = \"\";\r\n var itemForm = document.getElementById(\"fileAll\");\r\n var checkBoxes = itemForm.querySelectorAll('input[type=\"checkbox\"]');\r\n let dataUpItems = [];\r\n var output = document.getElementById(\"fileAll\");\r\n var children = \"\";\r\n\r\n checkBoxes.forEach((fileAll) => {\r\n // loop all the checkbox item\r\n let dataSelect = {\r\n folder_name: pPATHfile,\r\n file_name: fileAll.value,\r\n file_nameonly: fileAll.value,\r\n file_size: fileAll.file_size,\r\n file_type: \"\",\r\n };\r\n dataUpItems.push(dataSelect);\r\n });\r\n\r\n totalFiles = 0;\r\n totalFiles = dataUpItems.length;\r\n\r\n const data = {\r\n device: \"web\",\r\n userName: \"\",\r\n userCode: \"\",\r\n comCode: \"\",\r\n pcardno: props.xcard,\r\n };\r\n\r\n if (\r\n props.xcard == \"\" ||\r\n props.xfirstname == \"\" ||\r\n props.xlastname == \"\" ||\r\n props.xtel == \"\" ||\r\n props.xcallback == \"\"\r\n ) {\r\n window.alert(\"กรุณาระบุข้อมูล!\");\r\n window.scrollTo(0, 0);\r\n props.submitHandler();\r\n } else {\r\n axios\r\n .post(API_MYASK + \"/Searchcusinfo\", data, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n if (res.data.CODE == \"200\") {\r\n checkCus = \"Y\";\r\n } else {\r\n checkCus = \"N\";\r\n }\r\n\r\n const data = {\r\n device: \"web\",\r\n userName: \"\",\r\n userCode: \"\",\r\n comCode: \"\",\r\n pTaskCode: \"DSR-01\",\r\n pChannelMail: \"01\",\r\n pathfile: pPATHfile,\r\n pfilename: \"\", //input.files.item(i).name,\r\n pcardno: props.xcard,\r\n pfilename: \"\", //input.files.item(i).name,\r\n pfilesize: 0,\r\n };\r\n\r\n totalSizeFile = 0;\r\n axios\r\n .post(API_MYASK + \"/PostReadAttachedfile\", data, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n for (let i in res.data.LIST_DATA) {\r\n totalSizeFile =\r\n totalSizeFile + res.data.LIST_DATA[i].file_sizeonly;\r\n }\r\n\r\n if (totalFiles == 0 || totalSizeFile == 0) {\r\n window.alert(\r\n \"กรุณาระบุเลขที่บัตรประชาชน และกรุณาเลือกเอกสารที่ส่ง(Upload Files)!\"\r\n );\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n if (totalSizeFile > 10485760 && totalFiles > 0) {\r\n window.alert(\r\n \"ขนาดของไฟล์เอกสารที่ส่ง(Upload Files) มีขนาดใหญ่เกินกว่าที่กำหนด!\"\r\n );\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n if (checkCus == \"N\") {\r\n window.alert(\r\n \"ไม่พบฐานข้อมูลของลูกค้าที่ทำสินเชื่อกับบริษัท จึงกดส่งข้อมูลไม่ผ่าน!\"\r\n );\r\n window.scrollTo(0, 0);\r\n }\r\n\r\n if (\r\n totalFiles > 0 &&\r\n totalSizeFile <= 10485760 &&\r\n checkCus == \"Y\"\r\n ) {\r\n window.scrollTo(0, 0);\r\n props.submitHandler();\r\n }\r\n })\r\n .catch((err) => {\r\n setRerenTmp(\r\n \r\n );\r\n });\r\n })\r\n .catch((err) => {\r\n setRerenTmp(\r\n \r\n );\r\n });\r\n }\r\n };\r\n\r\n return (\r\n
\r\n

\r\n {props.title}\r\n

\r\n

\r\n

\r\n
\r\n \r\n {props.children}\r\n {props.loading ? (\r\n \r\n
\r\n \r\n
\r\n
\r\n ) : (\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n การขอดำเนินการตามสิทธิของท่าน\r\n กรุณาแนบเอกสารแบบฟอร์มร้องขอใช้สิทธิที่บริษัทให้อัพโหลดนี้\r\n โดยลงรายละเอียด และลายมือชื่อให้ครบถ้วน\r\n พร้อมแนบสำเนาบัตรประชาชนมาพร้อมกัน\r\n

\r\n
\r\n \r\n จึงจะถือว่ากระบวนการขอสิทธิเสร็จสิ้น\r\n

\r\n
\r\n \r\n ทั้งนี้เพื่อให้ทางบริษัทฯ\r\n สามารถตรวจสอบว่าท่านอยู่ภายใต้เงื่อนไขที่จะได้รับสิทธินั้นๆ\r\n

\r\n
\r\n \r\n \r\n และเมื่อท่านได้รับการตรวจสอบว่าได้รับสิทธิทางบริษัทจะแจ้งผลการดำเนินการไปยังท่านในลำดับต่อไป\r\n ขอบพระคุณ\r\n \r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n แบบคำร้องขอใช้สิทธิ์ข้อมูลส่วนบุคคล\r\n \r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {\" \"}\r\n \r\n ***ประเภทไฟล์ที่อัพโหลด :\r\n

\r\n
\r\n {\" \"}\r\n \r\n .pdf, .jpg, .jpeg, .png, .gif, .bmp ขนาดไฟล์รวมไม่เกิน 10\r\n MB.\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n

\r\n

\r\n เอกสารที่ขอแก้ไข :\r\n

\r\n

\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n lineFriend: state.auth.lineFriend,\r\n telNo: state.auth.telNo,\r\n mailTo: state.auth.mailTo,\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, null)(Consent);\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { useSelector, useDispatch } from \"react-redux\";\r\nimport Consent, { handelSubmit } from \"../../components/Consent/Consent\";\r\nimport PathTree from \"../../components/UI/PathTree/PathTree\";\r\nimport Input from \"../../components/UI/Input/Input\";\r\nimport { connect } from \"react-redux\";\r\nimport {\r\n updateObject,\r\n checkValidity,\r\n checkError,\r\n} from \"../../../src/shared/utility.js\";\r\nimport { API_MYASK, API_MYASK_HEADER } from \"./../../shared/constant\";\r\n// import { Redirect } from \"react-router-dom\";\r\nimport axios from \"axios\";\r\nimport ModalError from \"./../../components/UI/Error/Error\";\r\n\r\nconst ConsentControls = (props) => {\r\n var totalCheckFile = 0;\r\n //var pPATHfile =\"//JAVADEV04//PDPAConsent//TempRequest/\";\r\n var pPATHfile = \"//172.16.1.111/Public/PDPAConsent/TempRequest/\";\r\n const [reren, setReren] = useState(\"\");\r\n const [usr, setUsr] = useState(props.location.search.substring(1) || \"C\");\r\n const [totalFile, setFile] = useState(0);\r\n\r\n const path = {\r\n Path: [\r\n {\r\n title: \"แบบคำร้องขอใช้สิทธิ์ข้อมูลส่วนบุคคล\",\r\n pathLink: \"/consent\",\r\n },\r\n ],\r\n };\r\n\r\n const label = {\r\n color: \"#000\",\r\n // width: '50%',\r\n };\r\n\r\n let notice_type = \"\";\r\n const [noticetypeState, setnoticetypeState] = useState({\r\n notice1: {\r\n checked: false,\r\n },\r\n notice2: {\r\n checked: false,\r\n },\r\n notice3: {\r\n checked: false,\r\n },\r\n notice4: {\r\n checked: false,\r\n },\r\n notice5: {\r\n checked: false,\r\n },\r\n notice6: {\r\n checked: false,\r\n },\r\n });\r\n\r\n const [consentForm, setconsentForm] = useState({\r\n form: {\r\n name: {\r\n order: \"0\",\r\n label: \"ชื่อ:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"ชื่อ\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n },\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n labelError: \"ชื่อ\",\r\n },\r\n lastname: {\r\n order: \"1\",\r\n label: \"นามสกุล:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"นามสกุล\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n },\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n labelError: \"นามสกุล\",\r\n },\r\n tel: {\r\n order: \"2\",\r\n label: \"เบอร์มือถือ:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"number\",\r\n placeholder: \"เบอร์มือถือ\",\r\n },\r\n type: \"number\",\r\n mode: \"numeric\",\r\n value: \"\",\r\n maxLength: 10, //ใช้ของ input html\r\n validation: {\r\n required: true,\r\n isNumeric: true,\r\n minLength: 10, //ใช้ของ utility เพราะต้องการดัก spacebar\r\n maxLength: 10,\r\n },\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n labelError: \"เบอร์มือถือ\",\r\n },\r\n email: {\r\n order: \"3\",\r\n label: \"อีเมล์:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder: \"อีเมล์\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: false,\r\n isEmail: true,\r\n },\r\n valid: true,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n labelError: \"อีเมล์\",\r\n },\r\n cardno: {\r\n order: \"4\",\r\n label: \"เลขที่บัตรประชาชน:\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"number\",\r\n placeholder: \"เลขที่บัตรประชาชน\",\r\n },\r\n type: \"number\",\r\n mode: \"numeric\",\r\n value: \"\",\r\n maxLength: 13, //ใช้ของ input html\r\n validation: {\r\n required: true,\r\n isNumeric: true,\r\n minLength: 13, //ใช้ของ utility เพราะต้องการดัก spacebar\r\n maxLength: 13,\r\n },\r\n valid: false,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"\",\r\n labelError: \"เลขที่บัตรประชาชน\",\r\n },\r\n noticetype: {\r\n order: \"5\",\r\n label: \"สิทธิที่ท่านต้องการขอใช้ เกี่ยวกับข้อมูลส่วนบุคคล:\",\r\n labelPos: \"left\",\r\n elementType: \"checkbox\",\r\n elementConfig: {},\r\n value: \"\",\r\n text: \"fontSize='25'\",\r\n validation: {\r\n required: true,\r\n },\r\n text: \"\",\r\n valid: false,\r\n styleLabel: label,\r\n touched: false,\r\n textInvalid: \"\",\r\n labelError: \"สิทธิที่ท่านต้องการขอใช้ เกี่ยวกับข้อมูลส่วนบุคคล\",\r\n },\r\n noticetype2: {\r\n order: \"6\",\r\n label: \"\",\r\n labelPos: \"\",\r\n elementType: \"checkbox\",\r\n elementConfig: {},\r\n value: \"\",\r\n validation: {},\r\n text: \"fontSize='25'\",\r\n valid: false,\r\n styleLabel: label,\r\n touched: false,\r\n textInvalid: \"\",\r\n labelError: \"สิทธิที่ท่านต้องการขอใช้ เกี่ยวกับข้อมูลส่วนบุคคล\",\r\n },\r\n noticetype3: {\r\n order: \"7\",\r\n label: \"\",\r\n labelPos: \"\",\r\n elementType: \"checkbox\",\r\n elementConfig: {},\r\n value: \"\",\r\n validation: {},\r\n text: \"fontSize='25'\",\r\n valid: false,\r\n styleLabel: label,\r\n touched: false,\r\n textInvalid: \"\",\r\n labelError: \"สิทธิที่ท่านต้องการขอใช้ เกี่ยวกับข้อมูลส่วนบุคคล\",\r\n },\r\n noticetype4: {\r\n order: \"8\",\r\n label: \"\",\r\n labelPos: \"\",\r\n elementType: \"checkbox\",\r\n elementConfig: {},\r\n value: \"\",\r\n validation: {},\r\n text: \"fontSize='25'\",\r\n valid: false,\r\n styleLabel: label,\r\n touched: false,\r\n textInvalid: \"\",\r\n labelError: \"สิทธิที่ท่านต้องการขอใช้ เกี่ยวกับข้อมูลส่วนบุคคล\",\r\n },\r\n noticetype5: {\r\n order: \"9\",\r\n label: \"\",\r\n labelPos: \"\",\r\n elementType: \"checkbox\",\r\n elementConfig: {},\r\n value: \"\",\r\n validation: {},\r\n text: \"fontSize='25'\",\r\n valid: false,\r\n styleLabel: label,\r\n touched: false,\r\n textInvalid: \"\",\r\n labelError: \"สิทธิที่ท่านต้องการขอใช้ เกี่ยวกับข้อมูลส่วนบุคคล\",\r\n },\r\n noticetype6: {\r\n order: \"10\",\r\n label: \"\",\r\n labelPos: \"\",\r\n elementType: \"checkbox\",\r\n elementConfig: {},\r\n value: \"\",\r\n validation: {},\r\n text: \"fontSize='25'\",\r\n valid: false,\r\n styleLabel: label,\r\n touched: false,\r\n textInvalid: \"\",\r\n labelError: \"เรื่องขอใช้สิทธิ์ข้อมูลส่วนบุคคล\",\r\n },\r\n callback: {\r\n order: \"11\",\r\n label: \"ช่องทางการแจ้งการปฏิบัติตามคำขอให้สิทธิ :\",\r\n labelPos: \"left\",\r\n elementType: \"select\",\r\n elementConfig: {\r\n options: [\r\n { value: \"\", displayValue: \"กรุณาเลือก\" },\r\n { value: \"01\", displayValue: \"ทางอีเมล์\" },\r\n { value: \"02\", displayValue: \"ทางจดหมาย (กรุณากรอกที่อยู่)\" },\r\n { value: \"03\", displayValue: \"ช่องทางอื่น โปรดระบุ\" },\r\n ],\r\n },\r\n value: \"\",\r\n validation: {\r\n required: true,\r\n },\r\n valid: false,\r\n styleLabel: label,\r\n touched: false,\r\n textInvalid: \"\",\r\n labelError: \"ช่องทางการแจ้งการปฏิบัติตามคำขอให้สิทธิ\",\r\n },\r\n callbacktext: {\r\n order: \"12\",\r\n label:\r\n \"ข้อมูลช่องทางการติดต่อกลับ(ที่อยู่/อื่นๆ หรือระบุอีเมล์ด้านบน):\",\r\n labelPos: \"left\",\r\n elementType: \"input\",\r\n elementConfig: {\r\n type: \"text\",\r\n placeholder:\r\n \"ข้อมูลช่องทางการติดต่อกลับ(ที่อยู่/อื่นๆ หรือระบุอีเมล์ด้านบน)\",\r\n },\r\n value: \"\",\r\n validation: {\r\n required: false,\r\n },\r\n valid: true,\r\n touched: false,\r\n styleLabel: label,\r\n textInvalid: \"ข้อมูลช่องทางการติดต่อกลับ(ที่อยู่/อื่นๆ)\",\r\n labelError: \"ที่อยู่/อื่นๆ\",\r\n },\r\n },\r\n formIsValid: false,\r\n });\r\n\r\n useEffect(() => {\r\n let mount = true;\r\n window.scrollTo(0, 0);\r\n axios.get(API_MYASK + \"/GetRequestConsent\").then((res) => {\r\n axios.get(API_MYASK + \"/GetProductType\").then((res2) => {\r\n console.log(res2);\r\n\r\n let updateType = updateObject(consentForm.form.noticetype, {\r\n value: res.data.LIST_DATA[0].id_code,\r\n text: res.data.LIST_DATA[0].remark,\r\n });\r\n let updateType2 = updateObject(consentForm.form.noticetype2, {\r\n value: res.data.LIST_DATA[1].id_code,\r\n text: res.data.LIST_DATA[1].remark,\r\n });\r\n let updateType3 = updateObject(consentForm.form.noticetype3, {\r\n value: res.data.LIST_DATA[2].id_code,\r\n text: res.data.LIST_DATA[2].remark,\r\n });\r\n let updateType4 = updateObject(consentForm.form.noticetype4, {\r\n value: res.data.LIST_DATA[3].id_code,\r\n text: res.data.LIST_DATA[3].remark,\r\n });\r\n let updateType5 = updateObject(consentForm.form.noticetype5, {\r\n value: res.data.LIST_DATA[4].id_code,\r\n text: res.data.LIST_DATA[4].remark,\r\n });\r\n let updateType6 = updateObject(consentForm.form.noticetype6, {\r\n value: res.data.LIST_DATA[5].id_code,\r\n text: res.data.LIST_DATA[5].remark,\r\n });\r\n\r\n let updateForm = updateObject(consentForm.form, {\r\n noticetype: updateType,\r\n noticetype2: updateType2,\r\n noticetype3: updateType3,\r\n noticetype4: updateType4,\r\n noticetype5: updateType5,\r\n noticetype6: updateType6,\r\n });\r\n let updateState = updateObject(consentForm, {\r\n form: updateForm,\r\n });\r\n\r\n if (mount) {\r\n setconsentForm(updateState);\r\n }\r\n });\r\n });\r\n\r\n return () => {\r\n mount = false;\r\n };\r\n }, []);\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n const onChangeTel = (val) => {\r\n const pattern = /^\\d+$/;\r\n const isValid = pattern.test(val);\r\n if (isValid || val === \"\") {\r\n return val;\r\n } else {\r\n return val.substring(val.length - 1, 0);\r\n }\r\n };\r\n\r\n const onChangeCardno = (val) => {\r\n const pattern = /^\\d+$/;\r\n const isValid = pattern.test(val);\r\n let pval = \"\";\r\n if (isValid || val === \"\") {\r\n //return val;\r\n pval = val;\r\n } else {\r\n //return val.substring(val.length - 1, 0);\r\n pval = val.substring(val.length - 1, 0);\r\n }\r\n return pval;\r\n };\r\n\r\n const inputChangedHandler = (event, field) => {\r\n let updatedFormElement;\r\n let updatedFormElement2;\r\n let updatedFormElement3;\r\n\r\n console.log(field + \" \" + event);\r\n\r\n if (field === \"tel\") {\r\n event = onChangeTel(event);\r\n }\r\n\r\n if (field === \"cardno\") {\r\n event = onChangeCardno(event);\r\n }\r\n\r\n let updateChecked;\r\n\r\n if (field === \"noticetype\") {\r\n if (noticetypeState.notice1.checked === false) {\r\n updateChecked = updateObject(noticetypeState.notice1, {\r\n checked: true,\r\n });\r\n } else {\r\n updateChecked = updateObject(noticetypeState.notice1, {\r\n checked: false,\r\n });\r\n }\r\n let updateNoticeState = updateObject(noticetypeState, {\r\n notice1: updateChecked,\r\n });\r\n setnoticetypeState(updateNoticeState);\r\n } else if (field === \"noticetype2\") {\r\n if (noticetypeState.notice2.checked === false) {\r\n updateChecked = updateObject(noticetypeState.notice2, {\r\n checked: true,\r\n });\r\n } else {\r\n updateChecked = updateObject(noticetypeState.notice2, {\r\n checked: false,\r\n });\r\n }\r\n let updateNoticeState = updateObject(noticetypeState, {\r\n notice2: updateChecked,\r\n });\r\n setnoticetypeState(updateNoticeState);\r\n } else if (field === \"noticetype3\") {\r\n if (noticetypeState.notice3.checked === false) {\r\n updateChecked = updateObject(noticetypeState.notice3, {\r\n checked: true,\r\n });\r\n } else {\r\n updateChecked = updateObject(noticetypeState.notice3, {\r\n checked: false,\r\n });\r\n }\r\n let updateNoticeState = updateObject(noticetypeState, {\r\n notice3: updateChecked,\r\n });\r\n setnoticetypeState(updateNoticeState);\r\n } else if (field === \"noticetype4\") {\r\n if (noticetypeState.notice4.checked === false) {\r\n updateChecked = updateObject(noticetypeState.notice4, {\r\n checked: true,\r\n });\r\n } else {\r\n updateChecked = updateObject(noticetypeState.notice4, {\r\n checked: false,\r\n });\r\n }\r\n let updateNoticeState = updateObject(noticetypeState, {\r\n notice4: updateChecked,\r\n });\r\n setnoticetypeState(updateNoticeState);\r\n } else if (field === \"noticetype5\") {\r\n if (noticetypeState.notice5.checked === false) {\r\n updateChecked = updateObject(noticetypeState.notice5, {\r\n checked: true,\r\n });\r\n } else {\r\n updateChecked = updateObject(noticetypeState.notice5, {\r\n checked: false,\r\n });\r\n }\r\n let updateNoticeState = updateObject(noticetypeState, {\r\n notice5: updateChecked,\r\n });\r\n setnoticetypeState(updateNoticeState);\r\n } else if (field === \"noticetype6\") {\r\n if (noticetypeState.notice6.checked === false) {\r\n updateChecked = updateObject(noticetypeState.notice6, {\r\n checked: true,\r\n });\r\n } else {\r\n updateChecked = updateObject(noticetypeState.notice6, {\r\n checked: false,\r\n });\r\n }\r\n let updateNoticeState = updateObject(noticetypeState, {\r\n notice6: updateChecked,\r\n });\r\n setnoticetypeState(updateNoticeState);\r\n } else if (field === \"cardno\") {\r\n let updateFormValidate = updateObject(\r\n consentForm.form[\"cardno\"].validation,\r\n {\r\n required: true,\r\n }\r\n );\r\n\r\n updatedFormElement = updateObject(consentForm.form[\"cardno\"], {\r\n valid: false,\r\n validation: updateFormValidate,\r\n });\r\n\r\n const validate = checkValidity(event, consentForm.form[field].validation);\r\n\r\n const text = checkError(\r\n validate.code,\r\n consentForm.form[field].labelError,\r\n consentForm.form[field].validation\r\n );\r\n\r\n updatedFormElement2 = updateObject(consentForm.form[field], {\r\n value: event,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n\r\n let updatedForm = updateObject(consentForm.form, {\r\n [\"cardno\"]: updatedFormElement,\r\n [field]: updatedFormElement2,\r\n });\r\n\r\n const updatedState = updateObject(consentForm, {\r\n form: updatedForm,\r\n });\r\n\r\n setconsentForm(updatedState);\r\n console.log(consentForm);\r\n } else if (field === \"callback\" && event === \"01\") {\r\n let updateFormValidate = updateObject(\r\n consentForm.form[\"email\"].validation,\r\n {\r\n required: true,\r\n }\r\n );\r\n\r\n updatedFormElement = updateObject(consentForm.form[\"email\"], {\r\n valid: false,\r\n validation: updateFormValidate,\r\n });\r\n\r\n const validate = checkValidity(event, consentForm.form[field].validation);\r\n\r\n const text = checkError(\r\n validate.code,\r\n consentForm.form[field].labelError,\r\n consentForm.form[field].validation\r\n );\r\n\r\n updatedFormElement2 = updateObject(consentForm.form[field], {\r\n value: event,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n\r\n let updatedForm = updateObject(consentForm.form, {\r\n [\"email\"]: updatedFormElement,\r\n [field]: updatedFormElement2,\r\n });\r\n\r\n const updatedState = updateObject(consentForm, {\r\n form: updatedForm,\r\n });\r\n\r\n setconsentForm(updatedState);\r\n console.log(consentForm);\r\n } else if (field === \"callback\" && event === \"02\") {\r\n let updateFormValidate = updateObject(\r\n consentForm.form[\"callbacktext\"].validation,\r\n {\r\n required: true,\r\n }\r\n );\r\n\r\n updatedFormElement = updateObject(consentForm.form[\"callbacktext\"], {\r\n valid: false,\r\n validation: updateFormValidate,\r\n });\r\n\r\n let updateFormValidate2 = updateObject(\r\n consentForm.form[\"email\"].validation,\r\n {\r\n required: false,\r\n }\r\n );\r\n\r\n updatedFormElement3 = updateObject(consentForm.form[\"email\"], {\r\n valid: true,\r\n validation: updateFormValidate2,\r\n });\r\n\r\n const validate = checkValidity(event, consentForm.form[field].validation);\r\n\r\n const text = checkError(\r\n validate.code,\r\n consentForm.form[field].labelError,\r\n consentForm.form[field].validation\r\n );\r\n\r\n updatedFormElement2 = updateObject(consentForm.form[field], {\r\n value: event,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n\r\n let updatedForm = updateObject(consentForm.form, {\r\n [\"email\"]: updatedFormElement3,\r\n [\"callbacktext\"]: updatedFormElement,\r\n [field]: updatedFormElement2,\r\n });\r\n\r\n const updatedState = updateObject(consentForm, {\r\n form: updatedForm,\r\n });\r\n\r\n setconsentForm(updatedState);\r\n console.log(consentForm);\r\n } else if (field === \"callback\" && event !== \"01\" && event !== \"02\") {\r\n //Other channel\r\n let updateFormValidate = updateObject(\r\n consentForm.form[\"email\"].validation,\r\n {\r\n required: false,\r\n }\r\n );\r\n\r\n updatedFormElement = updateObject(consentForm.form[\"email\"], {\r\n valid: true,\r\n validation: updateFormValidate,\r\n });\r\n\r\n let updateFormValidate2 = updateObject(\r\n consentForm.form[\"callbacktext\"].validation,\r\n {\r\n required: false,\r\n }\r\n );\r\n\r\n updatedFormElement3 = updateObject(consentForm.form[\"callbacktext\"], {\r\n valid: true,\r\n validation: updateFormValidate2,\r\n });\r\n\r\n const validate = checkValidity(event, consentForm.form[field].validation);\r\n\r\n const text = checkError(\r\n validate.code,\r\n consentForm.form[field].labelError,\r\n consentForm.form[field].validation\r\n );\r\n\r\n updatedFormElement2 = updateObject(consentForm.form[field], {\r\n value: event,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n\r\n let updatedForm = updateObject(consentForm.form, {\r\n [\"email\"]: updatedFormElement,\r\n [\"callbacktext\"]: updatedFormElement3,\r\n [field]: updatedFormElement2,\r\n });\r\n\r\n const updatedState = updateObject(consentForm, {\r\n form: updatedForm,\r\n });\r\n\r\n setconsentForm(updatedState);\r\n } else {\r\n const validate = checkValidity(event, consentForm.form[field].validation);\r\n const text = checkError(\r\n validate.code,\r\n consentForm.form[field].labelError,\r\n consentForm.form[field].validation\r\n );\r\n\r\n if (field === \"email\") {\r\n //formIsValid : true\r\n if (event === \"\") {\r\n updatedFormElement = updateObject(consentForm.form[field], {\r\n value: event,\r\n valid: false,\r\n textInvalid: text,\r\n touched: false,\r\n isEmail: false,\r\n });\r\n } else {\r\n updatedFormElement = updateObject(consentForm.form[field], {\r\n value: event,\r\n valid: true,\r\n textInvalid: text,\r\n touched: true,\r\n isEmail: true,\r\n });\r\n }\r\n } else {\r\n updatedFormElement = updateObject(consentForm.form[field], {\r\n value: event,\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n }\r\n\r\n let updatedForm = updateObject(consentForm.form, {\r\n [field]: updatedFormElement,\r\n });\r\n\r\n let formIsValid = true;\r\n for (let inputIdentifier in updatedForm) {\r\n formIsValid = updatedForm[inputIdentifier].valid && formIsValid;\r\n }\r\n\r\n const updatedState = updateObject(consentForm, {\r\n form: updatedForm,\r\n formIsValid: formIsValid,\r\n });\r\n\r\n setconsentForm(updatedState);\r\n }\r\n };\r\n\r\n const getUplaodFiles = () => {\r\n //window.alert(\"in getUplaodFiles\");\r\n const data = {\r\n device: \"web\",\r\n userName: \"\",\r\n userCode: \"\",\r\n comCode: \"\",\r\n pTaskCode: \"DSR-01\",\r\n pChannelMail: \"01\",\r\n pathfile: pPATHfile,\r\n pfilename: \"\",\r\n pcardno: consentForm.form[\"cardno\"].value,\r\n pfilename: \"\",\r\n pfilesize: 0,\r\n };\r\n\r\n axios\r\n .post(API_MYASK + \"/PostReadAttachedfile\", data, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n //setFile(res.data.LIST_DATA.length);\r\n window.alert(\"in API\");\r\n //console.log(\"totalCheckFile=\"+res.data.LIST_DATA.length);\r\n totalCheckFile = res.data.LIST_DATA.length;\r\n //window.alert(\"in API=\"+totalCheckFile );\r\n //console.log(res.data.LIST_DATA);\r\n //console.log(\"totalCheckFile=\"+res.data.LIST_DATA.length);\r\n })\r\n .catch((err) => {\r\n setReren(\r\n \r\n );\r\n });\r\n };\r\n\r\n const checkedValidate = () => {\r\n /*console.log(\"notice1=\"+noticetypeState.notice1.checked);\r\n console.log(\"notice2=\"+noticetypeState.notice2.checked);\r\n console.log(\"notice3=\"+noticetypeState.notice3.checked);\r\n console.log(\"notice4=\"+noticetypeState.notice4.checked);\r\n console.log(\"notice5=\"+noticetypeState.notice5.checked);\r\n console.log(\"notice6=\"+noticetypeState.notice6.checked);\r\n console.log(\"callback=\"+consentForm.form[\"callback\"].valid);\r\n console.log(\"cardno=\"+consentForm.form[\"cardno\"].valid);\r\n console.log(\"name=\"+consentForm.form[\"name\"].valid);\r\n console.log(\"lastname=\"+consentForm.form[\"lastname\"].valid);\r\n console.log(\"tel=\"+consentForm.form[\"tel\"].valid);\r\n console.log(\"email=\"+consentForm.form[\"email\"].valid);\r\n console.log(\"callbacktext=\"+consentForm.form[\"callbacktext\"].valid);\r\n */\r\n //return;\r\n //if (true\r\n if (\r\n consentForm.form[\"callback\"].valid === true &&\r\n (noticetypeState.notice1.checked === true ||\r\n noticetypeState.notice2.checked === true ||\r\n noticetypeState.notice3.checked === true ||\r\n noticetypeState.notice4.checked === true ||\r\n noticetypeState.notice5.checked === true ||\r\n noticetypeState.notice6.checked === true) &&\r\n consentForm.form[\"cardno\"].valid === true &&\r\n consentForm.form[\"name\"].valid === true &&\r\n consentForm.form[\"lastname\"].valid === true &&\r\n consentForm.form[\"tel\"].valid === true &&\r\n consentForm.form[\"email\"].valid === true &&\r\n consentForm.form[\"callback\"].valid === true &&\r\n consentForm.form[\"callbacktext\"].valid === true\r\n ) {\r\n consentForm.formIsValid = true;\r\n //window.alert(\"before API\");\r\n const data = {\r\n device: \"web\",\r\n userName: \"\",\r\n userCode: \"\",\r\n comCode: \"\",\r\n pcardno: consentForm.form[\"cardno\"].value,\r\n };\r\n\r\n var checkCus = \"\";\r\n axios\r\n .post(API_MYASK + \"/Searchcusinfo\", data, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n console.log(res);\r\n //window.alert(\"in API\");\r\n if (res.data.CODE === \"200\") {\r\n checkCus = \"Y\";\r\n } else {\r\n checkCus = \"N\";\r\n }\r\n\r\n if (checkCus === \"Y\") {\r\n sendData();\r\n } else {\r\n window.alert(\r\n \"ไม่พบฐานข้อมูลของลูกค้าที่ทำสินเชื่อกับบริษัท จึงกดส่งข้อมูลไม่ผ่าน!\"\r\n );\r\n window.scrollTo(0, 0);\r\n }\r\n })\r\n .catch((err) => {\r\n setReren(\r\n \r\n );\r\n });\r\n\r\n //sendData();\r\n }\r\n\r\n if (!consentForm.formIsValid) {\r\n let updatedForm;\r\n let arrayObj = [];\r\n let updatedFormElement;\r\n let text;\r\n for (let field in consentForm.form) {\r\n const validate = checkValidity(\r\n consentForm.form[field].value,\r\n consentForm.form[field].validation\r\n );\r\n text = checkError(\r\n validate.code,\r\n consentForm.form[field].labelError,\r\n consentForm.form[field].validation\r\n );\r\n updatedFormElement = updateObject(consentForm.form[field], {\r\n valid: validate.isValid,\r\n textInvalid: text,\r\n touched: true,\r\n });\r\n arrayObj.push(updatedFormElement);\r\n }\r\n\r\n const arrayComplaint = [];\r\n for (let i in arrayObj) {\r\n if (arrayObj[i].order === \"0\") {\r\n arrayComplaint[0] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"1\") {\r\n arrayComplaint[1] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"2\") {\r\n arrayComplaint[2] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"3\") {\r\n arrayComplaint[3] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"4\") {\r\n arrayComplaint[4] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"5\") {\r\n arrayComplaint[5] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"6\") {\r\n arrayComplaint[6] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"7\") {\r\n arrayComplaint[7] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"8\") {\r\n arrayComplaint[8] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"9\") {\r\n arrayComplaint[9] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"10\") {\r\n arrayComplaint[10] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"11\") {\r\n arrayComplaint[11] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"12\") {\r\n arrayComplaint[12] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"13\") {\r\n arrayComplaint[13] = arrayObj[i];\r\n } else if (arrayObj[i].order === \"14\") {\r\n arrayComplaint[14] = arrayObj[i];\r\n }\r\n }\r\n\r\n updatedForm = updateObject(consentForm.form, {\r\n name: arrayComplaint[0],\r\n lastname: arrayComplaint[1],\r\n tel: arrayComplaint[2],\r\n email: arrayComplaint[3],\r\n cardno: arrayComplaint[4],\r\n noticetype: arrayComplaint[5],\r\n noticetype2: arrayComplaint[6],\r\n noticetype3: arrayComplaint[7],\r\n noticetype4: arrayComplaint[8],\r\n noticetype5: arrayComplaint[9],\r\n noticetype6: arrayComplaint[10],\r\n callback: arrayComplaint[11],\r\n callbacktext: arrayComplaint[12],\r\n });\r\n\r\n let updatedState = updateObject(consentForm, {\r\n form: updatedForm,\r\n });\r\n setconsentForm(updatedState);\r\n }\r\n };\r\n\r\n const sendData = () => {\r\n setLoading(true);\r\n\r\n if (noticetypeState.notice1.checked === true) {\r\n notice_type = \"01\";\r\n }\r\n if (noticetypeState.notice2.checked === true) {\r\n if (notice_type !== \"\") {\r\n notice_type = notice_type + \",\" + \"02\";\r\n } else {\r\n notice_type = \"02\";\r\n }\r\n }\r\n if (noticetypeState.notice3.checked === true) {\r\n if (notice_type !== \"\") {\r\n notice_type = notice_type + \",\" + \"03\";\r\n } else {\r\n notice_type = \"03\";\r\n }\r\n }\r\n if (noticetypeState.notice4.checked === true) {\r\n if (notice_type !== \"\") {\r\n notice_type = notice_type + \",\" + \"04\";\r\n } else {\r\n notice_type = \"04\";\r\n }\r\n }\r\n if (noticetypeState.notice5.checked === true) {\r\n if (notice_type !== \"\") {\r\n notice_type = notice_type + \",\" + \"05\";\r\n } else {\r\n notice_type = \"05\";\r\n }\r\n }\r\n if (noticetypeState.notice6.checked === true) {\r\n if (notice_type !== \"\") {\r\n notice_type = notice_type + \",\" + \"06\";\r\n } else {\r\n notice_type = \"06\";\r\n }\r\n }\r\n\r\n let sourceby = \"\";\r\n if (props.lineId !== null) {\r\n sourceby = \"02\";\r\n } else if (usr !== \"C\") {\r\n sourceby = \"04\";\r\n } else {\r\n sourceby = \"01\";\r\n }\r\n\r\n //Json to Service\r\n const data = {\r\n first_name: consentForm.form.name.value,\r\n last_name: consentForm.form.lastname.value,\r\n card_no: consentForm.form.cardno.value,\r\n e_mail: consentForm.form.email.value,\r\n mobile_phone: consentForm.form.tel.value,\r\n contact_channel: consentForm.form.callback.value,\r\n contact_text: consentForm.form.callbacktext.value,\r\n request_type: notice_type,\r\n source_by: sourceby,\r\n input_user: usr,\r\n };\r\n\r\n console.log(notice_type);\r\n //Save Consent\r\n axios\r\n .post(API_MYASK + \"/SaveConsent\", data, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n //Start\r\n console.log(res);\r\n const data2 = {\r\n device: \"web\",\r\n userName: \"\",\r\n userCode: usr,\r\n comCode: \"\",\r\n pTaskCode: \"DSR-01\",\r\n pChannelMail: \"01\",\r\n pToemail: consentForm.form.email.value,\r\n pBccemail: \"\",\r\n pSumresp: \"\",\r\n };\r\n\r\n //Send E-Mail\r\n axios\r\n .post(API_MYASK + \"/ConsSendMail/PostSendMail\", data2, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n console.log(res);\r\n })\r\n .catch((err) => {\r\n window.alert(\"error sendmail\");\r\n setReren(\r\n \r\n );\r\n });\r\n })\r\n .catch((err) => {\r\n window.alert(\"error save\");\r\n setReren(\r\n \r\n );\r\n });\r\n\r\n props.history.push({\r\n // ใช้ในกรณีเซิฟเวอร์เทส\r\n pathname: \"/success\",\r\n //pathname: \"\",\r\n title: \"เราได้รับข้อมูลของท่านแล้ว\",\r\n path: \"/myask/#/\",\r\n text: \"จะติดต่อกลับหาท่านโดยเร็วที่สุด\",\r\n // text2: 'ท่านสามารถติดตามผลได้ทาง...'\r\n });\r\n\r\n // props.history.push({\r\n // // // ใช้ในกรณี localhost, production\r\n // pathname: \"/success\",\r\n // title: \"เราได้รับข้อมูลของท่านแล้ว\",\r\n // path: \"/\",\r\n // text: \"จะติดต่อกลับหาท่านโดยเร็วที่สุด\",\r\n // // // text2: 'ท่านสามารถติดตามผลได้ทาง...'\r\n // });\r\n }; //End\r\n\r\n const submitHandler = (event) => {\r\n //event.preventDefault();\r\n //window.scrollTo(0, 0);\r\n checkedValidate();\r\n };\r\n\r\n const formElementsArray = [];\r\n for (let key in consentForm.form) {\r\n console.log(\"key is : \" + key);\r\n console.log(consentForm.form[key]);\r\n formElementsArray[consentForm.form[key].order] = {\r\n id: key,\r\n config: consentForm.form[key],\r\n };\r\n }\r\n\r\n return (\r\n \r\n {reren}\r\n (\r\n
\r\n {/* */}\r\n \r\n inputChangedHandler(event.target.value, formElement.id)\r\n }\r\n labelPos={\"left\"}\r\n fontSize={\"1.2rem\"}\r\n label={formElement.config.label}\r\n text={formElement.config.text}\r\n />\r\n
\r\n ))}\r\n submitHandler={submitHandler}\r\n >\r\n
\r\n );\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n lineId: state.line.userId,\r\n ssCard: state.scard,\r\n };\r\n};\r\nexport default connect(mapStateToProps, null)(ConsentControls);\r\n","import React, { Fragment, useEffect, useState } from \"react\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport CookieConsent from \"react-cookie-consent\";\r\nimport \"./../containers/App.css\";\r\nimport Layout from \"./Layout/layout\";\r\nimport { Route, Switch } from \"react-router-dom\";\r\nimport test from \"./Layout/layout\";\r\nimport Home from \"./Home/home\";\r\nimport Signin from \"./../containers/Authen/SignIn/signin\";\r\nimport Signup from \"./../containers/Authen/SignUp/signup\";\r\nimport Logout from \"./../containers/Authen/Logout/logout\";\r\nimport Forgot from \"./../containers/Authen/Forgot/forgot\";\r\nimport Question from \"./../containers/Authen/Question/question\";\r\nimport ConfirmOTP from \"./Authen/Otp/otp\";\r\nimport Calculate from \"../containers/Calculate/CalculateControl\";\r\nimport ProductControls from \"./ProductControls/ProductControl\";\r\nimport ProductShowDetail from \"./../containers/ProductControls/ProductShowDetail\";\r\nimport Branch from \"./../containers/ContactControls/Branch/BranchControls\";\r\nimport Contact from \"./../containers/ContactControls/Contact/ContactControls\";\r\nimport ComplaintControls from \"./../containers/ComplaintControls/ComplaintControls\";\r\nimport ContractCovid19Controls from \"./../containers/ContactControls/ContactCovid19/ContactCovid19Controls\";\r\nimport ManageAgreement from \"../containers/ManageAgreementControls/ManageAgreementControls\";\r\nimport ManageAgreementMainControls from \"../containers/ManageAgreementControls/ManageAgreementMainControls\";\r\nimport ManageAgreementPaymentList from \"../containers/ManageAgreementControls/ManageAgreementControlsPaymentList\";\r\nimport ManageAgreementPayment from \"../containers/ManageAgreementControls/ManageAgreementControlsPayment\";\r\nimport ManageAgreementQRCode from \"../containers/ManageAgreementControls/ManageAgreementControlsQRCode\";\r\nimport ManageAgreementDetail from \"../containers/ManageAgreementControls/ManageAgreementControlsDetail\";\r\nimport ManageAgreementControlsInsurance from \"../containers/ManageAgreementControls/ManageAgreementControlsInsurance\";\r\nimport ManageAgreementControlsHistory from \"../containers/ManageAgreementControls/ManageAgreementControlsHistory\";\r\nimport ManageAgreementControlsCloseAcc from \"../containers/ManageAgreementControls/ManageAgreementControlsCloseAcc\";\r\nimport ManageAgreementControlsChangeAddr from \"../containers/ManageAgreementControls/ManageAgreementControlsChangeAddr\";\r\nimport { connect } from \"react-redux\";\r\nimport ApplyProduct from \"./../containers/ApplyControls/ApplyControls\";\r\nimport ApplySuccess from \"./../components/Apply/ApplyStep5/ApplyStep5\";\r\nimport ResetPassword from \"./Authen/Forgot/resetpassword\";\r\nimport Tracking from \"./../components/Tracking/Step\";\r\nimport DummyPage from \"./../containers/Dummy/DummyPage\";\r\nimport * as actions from \"./../store/action/index\";\r\n// import { Button } from \"@material-ui/core\";\r\nimport axios from \"axios\";\r\nimport { API_MYASK, API_MYASK_HEADER } from \"./../shared/constant\";\r\nimport Loading from \"./../components/UI/Loading/Loading\";\r\nimport ForgotUsername from \"./Authen/Forgot/forgotusername\";\r\nimport BlankPage from \"../components/UI/Error/BlankPage\";\r\nimport TrackingAgreement from \"./Tracking/Tracking\";\r\nimport Agreements from \"./Personal/Agreement/List/Agreements\";\r\nimport AgreementDetail from \"./Personal/Agreement/List/Detail/AgreementDetail\";\r\nimport InsuranceAgreement from \"./Personal/Agreement/List/Detail/InsuranceAgreement\";\r\nimport PaymentHistory from \"./Personal/Agreement/List/Detail/PaymentHistory\";\r\nimport PaymentItemList from \"./Personal/Agreement/PaymentItem/PaymentItemList\";\r\nimport PaymentChannal from \"./Payment/PaymentChannal\";\r\nimport BarcodeAndQR from \"./Payment/BarcodeAndQR\";\r\nimport ClosedAgreement from \"./Personal/Agreement/ClosedAgreement/ClosedAgreement\";\r\nimport RegisterEtax from \"./EtaxEreceipt/RegisterEtax\";\r\nimport ScrollToTop from \"../hoc/scrollToTop\";\r\nimport PaymentSuccess from \"./Payment/PaymentSuccess\";\r\nimport FilterPage from \"./CustomerService/filterpage\";\r\nimport ConsentControls from \"./ConsentControls/ConsentControls\";\r\n\r\nimport \"primereact/resources/themes/saga-blue/theme.css\";\r\nimport \"primereact/resources/primereact.min.css\";\r\nimport \"primeicons/primeicons.css\";\r\nimport \"primeflex/primeflex.css\";\r\nimport PrimeReact from \"primereact/api\";\r\nimport { Button } from \"primereact/button\";\r\nimport VConsole from \"vconsole\";\r\nimport liff from \"@line/liff\";\r\n// const vConsole = new VConsole();\r\n\r\nPrimeReact.ripple = true;\r\n\r\n// const liff = window.liff;\r\n\r\nconst App = (props) => {\r\n const [showPolicy, setShowPolicy] = useState(false);\r\n useEffect(() => {\r\n // console.log(performance.getEntriesByType(\"navigation\")[0].type);\r\n // https://w3c.github.io/navigation-timing/#sec-performance-navigation-types\r\n const navigationType = performance.navigation.type;\r\n if (\r\n (window.performance &&\r\n window.performance.getEntriesByType(\"navigation\").length) ||\r\n navigationType === 1\r\n ) {\r\n console.log(\"support performance API\");\r\n const perFormanceNavigation = performance.getEntriesByType(\"navigation\");\r\n if (\r\n navigationType === 1 ||\r\n (perFormanceNavigation.length &&\r\n perFormanceNavigation[0].type == \"reload\")\r\n ) {\r\n console.log(\"reload website\");\r\n props.clearAgreementState();\r\n props.clearPaymentState();\r\n } else {\r\n // console.log(\"This page is not reloaded\");\r\n }\r\n }\r\n\r\n const liffId = \"1656982302-AjKpEZPj\";\r\n liff\r\n .init({ liffId })\r\n .then(() => {\r\n getConfig();\r\n getProfile();\r\n })\r\n .catch((err) => {\r\n console.log(err.code, err.message);\r\n });\r\n }, []);\r\n\r\n const getConfig = () => {\r\n axios.get(API_MYASK + \"/GetConfig?user_name=&token=\").then((res) => {\r\n props.onTryAutoSignup();\r\n props.onSetConfig(\r\n res.data.DATA.LINE_FRIEND,\r\n res.data.DATA.OTP_TIME,\r\n res.data.DATA.TEL_NO,\r\n res.data.DATA.MAIL_TO\r\n );\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if (props.lineId && sessionStorage.getItem(\"isAlreadyLogin\") !== \"Y\") {\r\n const data = {\r\n lineid: props.lineId,\r\n };\r\n\r\n axios\r\n .post(API_MYASK + \"/TryAutoLoginLine\", data, {\r\n headers: API_MYASK_HEADER,\r\n })\r\n .then((res) => {\r\n if (res.data.CODE === \"200\") {\r\n const data2 = {\r\n username: res.data.LIST_DATA[0].username,\r\n lineid: props.lineId,\r\n };\r\n\r\n props.onAuth(res.data.MSG, data2.username);\r\n axios\r\n .get(\r\n API_MYASK +\r\n \"/GetConfig?user_name=\" +\r\n data2.username +\r\n \"&token=\" +\r\n res.data.MSG\r\n )\r\n .then((res) => {\r\n axios.post(API_MYASK + \"/SetLineLogin\", data2, {\r\n headers: API_MYASK_HEADER,\r\n });\r\n props.onSetLineToken(res.data.MSG);\r\n props.onSetShouldLoading(false);\r\n });\r\n } else {\r\n props.onSetShouldLoading(false);\r\n }\r\n })\r\n .catch((err) => {\r\n alert(err);\r\n });\r\n }\r\n }, [props.lineId]);\r\n\r\n // useEffect(() => {\r\n // let mount = true;\r\n\r\n // if (liff._auth !== null && props.isAuthenticated) {\r\n // if (mount) {\r\n // sessionStorage.setItem(\"isAlreadyLogin\", \"Y\");\r\n // props.onSetShouldLoading(false);\r\n // }\r\n // }\r\n // return () => {\r\n // mount = false;\r\n // };\r\n // }, [props.isAuthenticated]);\r\n\r\n const getProfile = () => {\r\n console.log(\"OS : \" + liff.getOS());\r\n console.log(\"LINE LOGIN : \" + liff.isLoggedIn());\r\n console.log(\"USE BROWSER LINE : \" + liff.isInClient());\r\n if (liff.isLoggedIn()) {\r\n liff\r\n .getProfile()\r\n .then((profile) => {\r\n console.log(\"user line Id : \" + profile.userId);\r\n props.onSetLineProfile(profile);\r\n if (props.isAuthenticated) {\r\n sessionStorage.setItem(\"isAlreadyLogin\", \"Y\");\r\n props.onSetShouldLoading(false);\r\n } else {\r\n }\r\n })\r\n .catch((err) => {\r\n console.error(err);\r\n props.onSetShouldLoading(false);\r\n });\r\n } else {\r\n props.onSetShouldLoading(false);\r\n }\r\n };\r\n\r\n if (props.shouldLoading && sessionStorage.getItem(\"isAlreadyLogin\") !== \"Y\") {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n return (\r\n \r\n {\r\n setShowPolicy(false);\r\n }}\r\n // maximizable\r\n maximized\r\n >\r\n
\r\n

\r\n นโยบายการใช้คุกกี้\r\n

\r\n คุกกี้ คือ ไฟล์ข้อความ\r\n ซึ่งประกอบด้วยข้อมูลขนาดเล็กที่ถูกดาวน์โหลดและจัดเก็บไว้ในอุปกรณ์ของคุณเมื่อคุณเข้าชมเว็บไซต์\r\n จากนั้น\r\n คุกกี้จะถูกส่งกลับไปยังเว็บไซต์เดิมในแต่ละครั้งที่คุณเข้าชมเว็บไซต์ดังกล่าว\r\n หรือถูกส่งไปยังเว็บไซต์อื่นๆ ที่รองรับคุกกี้นั้นได้\r\n โดยคุกกี้มีประโยชน์ในการช่วยให้เว็บไซต์สามารถจดจำอุปกรณ์ของคุณได้และให้บริการที่เหมาะสมกับคุณมากยิ่งขึ้น\r\n
\r\n การใช้คุกกี้และเทคโนโลยีที่คล้ายคลึงกันไม่ได้จำกัดเพียงการใช้ในเว็บไซต์และเว็บเบราว์เซอร์\r\n แต่แอปพลิเคชันบนโทรศัพท์มือถือ ซึ่งโดยทั่วไป\r\n จะเชื่อมต่อกับเว็บไซต์และบริการบนเว็บไซต์ก็สามารถสร้างคุกกี้ได้เช่นกัน\r\n คุกกี้มีหน้าที่ทำงานได้หลากหลาย เช่น\r\n ช่วยให้คุณสามารถเยี่ยมชมเว็บไซต์ได้อย่างราบรื่นและมีประสิทธิภาพ\r\n จดจำสิ่งที่คุณชื่นชอบ และพัฒนาประสบการณ์การใช้งานของผู้ใช้เว็บไซต์\r\n นอกจากนี้\r\n เพื่อให้มั่นใจว่าคุณจะได้รับโฆษณาออนไลน์ที่เกี่ยวข้องและตรงกับความสนใจของคุณมากยิ่งขึ้น\r\n โดยคุกกี้ที่มีการใช้งานบนเว็บไซต์ของบริษัท เอเซียเสริมกิจ ลีสซิ่ง\r\n จำกัด มหาชน และบริษัทในเครือ (“บริษัท”) แบ่งเป็นประเภทต่างๆ\r\n ได้ดังต่อไปนี้\r\n
\r\n
\r\n

\r\n คุกกี้ที่จำเป็นอย่างยิ่ง\r\n

\r\n คุกกี้ประเภทนี้มีความสำคัญในการทำให้คุณสามารถเยี่ยมชมเว็บไซต์ของบริษัทได้\r\n และในการให้บริการและฟังก์ชันต่างๆ บนเว็บไซต์ของบริษัท\r\n และการเข้าสู่พื้นที่ปลอดภัยบนเว็บไซต์ของบริษัท หากไม่มีคุกกี้ประเภทนี้\r\n เว็บไซต์ของบริษัทหรือบางฟังก์ชันบนเว็บไซต์อาจจะไม่สามารถทำงานได้ตามปกติ\r\n รวมทั้งคุณจะไม่สามารถใช้บริการบางอย่างตามที่ร้องขอบนเว็บไซต์ของบริษัทได้\r\n
\r\n
\r\n

\r\n คุกกี้ที่เก็บข้อมูลการใช้งาน\r\n

\r\n คุกกี้ประเภทนี้จะเก็บรวบรวมข้อมูลการใช้งานของคุณบนเว็บไซต์ของบริษัท\r\n เช่น เว็บเพจที่คุณเข้าชม เว็บเพจที่คุณเข้าชมบ่อยที่สุด\r\n และลิงก์ที่คุณอาจคลิกเข้าไปชม ทั้งนี้\r\n คุกกี้ประเภทนี้จะไม่เก็บรวบรวมข้อมูลใดๆ ที่สามารถระบุตัวตนของคุณได้\r\n แต่จะอยู่ในลักษณะข้อมูลแบบรวมและไม่สามารถระบุตัวตนได้\r\n บริษัทใช้คุกกี้ประเภทนี้เพื่อเข้าใจถึงวิธีการที่คุณใช้งานบริการออนไลน์และเว็บไซต์ของบริษัท\r\n และเพื่อพัฒนาการทำงานของเว็บไซต์ของบริษัทและเพิ่มประสิทธิภาพในการให้บริการของบริษัท\r\n
\r\n
\r\n

\r\n คุกกี้ที่เพิ่มประสิทธิภาพในการใช้งาน\r\n

\r\n คุกกี้ประเภทนี้จะช่วยให้เว็บไซต์ของบริษัทจดจำข้อมูลหรือตัวเลือกที่คุณได้กำหนดไว้แล้ว\r\n (เช่น ชื่อผู้เข้าใช้ ภาษา หรือภูมิภาคที่คุณอาศัยอยู่)\r\n และให้บริการที่เหมาะสมสำหรับคุณโดยเฉพาะ (เช่น\r\n เว็บไซต์สามารถจดจำขนาดตัวอักษร หรือให้บริการลูกค้าผ่าน live chat ได้)\r\n นอกจากนี้ คุกกี้ประเภทนี้ยังสามารถจดจำการตั้งค่าขนาดหรือรูปแบบตัวอักษร\r\n และส่วนอื่นๆ ของเว็บเพจที่คุณสามารถตั้งค่าได้\r\n คุกกี้ประเภทนี้อาจเก็บรวบรวมข้อมูลที่ไม่สามารถระบุตัวตนได้\r\n และไม่สามารถติดตามกิจกรรมการเยี่ยมชมเว็บไซต์ของคุณบนเว็บไซต์อื่นๆ ได้\r\n
\r\n
\r\n

\r\n คุกกี้เพื่อการกำหนดเป้าหมายหรือเพื่อการโฆษณา\r\n

\r\n บริษัทใช้คุกกี้ประเภทนี้เพื่อนำเสนอโฆษณาที่เกี่ยวข้องและตรงกับความสนใจของคุณมากยิ่งขึ้น\r\n และเพื่อจำกัดจำนวนครั้งที่คุณจะได้รับโฆษณาทั่วไป\r\n รวมถึงช่วยตรวจสอบประสิทธิภาพของแคมเปญโฆษณาของบริษัท\r\n คุกกี้ประเภทนี้จะถูกใช้งานโดยเครือข่ายสื่อโฆษณา (เช่น Facebook, Google\r\n และอื่นๆ) โดยได้รับอนุญาตจากบริษัท\r\n และจะจดจำวิธีการที่คุณเยี่ยมชมเว็บไซต์ของบริษัท\r\n และบริษัทอาจเปิดเผยข้อมูลนี้ให้แก่บุคคลอื่นๆ เช่น\r\n ผู้ให้บริการสื่อโฆษณา ทั้งนี้\r\n คุกกี้ประเภทนี้มักจะเชื่อมโยงไปยังเว็บไซต์ที่ให้บริการโดยบุคคลอื่น\r\n ในกรณีที่บริษัทใช้คุกกี้ประเภทนี้ในการเก็บรวบรวม ใช้\r\n หรือเปิดเผยข้อมูลส่วนบุคคลของคุณ\r\n บริษัทจะขอความยินยอมจากคุณหรือดำเนินการตามที่กฎหมายคุ้มครองข้อมูลส่วนบุคคลกำหนด\r\n
\r\n ในการใช้บริการเว็บไซต์ของบริษัท\r\n คุณรับทราบว่าบริษัทจะมีการใช้งานคุกกี้ประเภทต่างๆ\r\n เพื่อวัตถุประสงค์ตามที่ระบุไว้ข้างต้น และบริษัทอาจเก็บรวบรวม ใช้\r\n หรือเปิดเผยข้อมูลส่วนบุคคลของคุณ ซึ่งเป็นส่วนหนึ่งของคุกกี้ดังกล่าว\r\n เพื่อวัตถุประสงค์ตามที่ระบุไว้ในประกาศนโยบายความเป็นส่วนตัวของบริษัท\r\n
\r\n หากบริษัทมีการเชื่อมโยงไปยังเว็บไซต์ของบุคคลภายนอก\r\n โปรดทราบว่าบุคคลดังกล่าวอาจมีนโยบายการใช้คุกกี้ของตนเอง\r\n บริษัทขอแนะนำให้คุณอ่านนโยบายการใช้คุกกี้ของบุคคลดังกล่าวก่อนการใช้งานเว็บไซต์เหล่านั้น\r\n
\r\n
\r\n
\r\n
\r\n ประกาศ เมื่อ เดือนกรกฎาคม 2563\r\n
\r\n
\r\n
\r\n
\r\n \r\n {}}\r\n location=\"bottom\"\r\n buttonText=\"ยอมรับ\"\r\n style={{\r\n background: \"#001f3f\",\r\n fontSize: \"18px\",\r\n paddingBottom: \"1em\",\r\n paddingTop: \"1em\",\r\n }}\r\n buttonStyle={{ color: \"#001f3f\", fontSize: \"18px\" }}\r\n >\r\n บริษัทมีการใช้เทคโนโลยี เช่น คุกกี้ (cookies)\r\n และเทคโนโลยีที่คล้ายคลึงกันบนเว็บไซต์ของบริษัท\r\n เพื่อสร้างประสบการณ์การใช้งานเว็บไซต์ของท่านให้ดียิ่งขึ้น\r\n โปรดอ่านรายละเอียดเพิ่มเติมที่ โปรดอ่านรายละเอียดเพิ่มเติมที่{\" \"}\r\n setShowPolicy(true)}\r\n >\r\n นโยบายการใช้คุกกี้\r\n \r\n \r\n \r\n \r\n \r\n } />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nconst style = {\r\n position: \"fixed\",\r\n top: \"50%\",\r\n left: \"50%\",\r\n transform: \"translate(-50%, -50%)\",\r\n};\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n isAuthenticated: state.auth.token !== null,\r\n lineId: state.line.userId,\r\n shouldLoading: state.line.shouldLoading,\r\n };\r\n};\r\n\r\nconst mapDispatchToProps = (dispatch) => {\r\n return {\r\n onSetLineProfile: (profile) => dispatch(actions.line(profile)),\r\n onTryAutoSignup: () => dispatch(actions.authCheckState()),\r\n onLineAutoSignup: (lineId) => dispatch(actions.authCheckState()),\r\n onAuth: (token, userName) => dispatch(actions.auth(token, userName)),\r\n onSetShouldLoading: (should) => dispatch(actions.setShouldLoading(should)),\r\n onSetLineToken: (token) => dispatch(actions.setLineToken(token)),\r\n onSetConfig: (lineFriend, otpTime, telNo, mailTo) =>\r\n dispatch(actions.setConfig(lineFriend, otpTime, telNo, mailTo)),\r\n clearAgreementState: () => dispatch(actions.clearAgreementState()),\r\n clearPaymentState: () => dispatch(actions.clearPaymentState()),\r\n };\r\n};\r\n\r\nexport default connect(mapStateToProps, mapDispatchToProps)(App);\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import * as actionTypes from \"../action/actionTypes\";\r\nimport { updateObject } from \"../../shared/utility\";\r\n\r\nconst initialState = {\r\n token: null,\r\n userName: null,\r\n refOtp: null,\r\n passOtp: null,\r\n};\r\n\r\nconst authStart = (state, action) => {\r\n return updateObject(state, { error: null, loading: true });\r\n};\r\n\r\nconst authSuccess = (state, action) => {\r\n return updateObject(state, {\r\n token: action.idToken,\r\n userName: action.userName,\r\n });\r\n};\r\n\r\nconst authFail = (state, action) => {\r\n return updateObject(state, {\r\n error: action.error,\r\n loading: false,\r\n });\r\n};\r\n\r\nconst authLogout = (state, action) => {\r\n return updateObject(state, { token: null });\r\n};\r\n\r\nconst otpStart = (state, action) => {\r\n return updateObject(state, { refOtp: null, passOtp: null });\r\n};\r\n\r\nconst otpSuccess = (state, action) => {\r\n return updateObject(state, {\r\n refOtp: action.refOtp,\r\n passOtp: action.passOtp,\r\n });\r\n};\r\n\r\nconst setConfig = (state, action) => {\r\n return updateObject(state, {\r\n lineFriend: action.lineFriend,\r\n otpTime: action.otpTime,\r\n telNo: action.telNo,\r\n mailTo: action.mailTo,\r\n });\r\n};\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.AUTH_START:\r\n return authStart(state, action);\r\n case actionTypes.AUTH_SUCCESS:\r\n return authSuccess(state, action);\r\n case actionTypes.AUTH_FAIL:\r\n return authFail(state, action);\r\n case actionTypes.AUTH_LOGOUT:\r\n return authLogout(state, action);\r\n case actionTypes.OTP_START:\r\n return otpStart(state, action);\r\n case actionTypes.OTP_SUCCESS:\r\n return otpSuccess(state, action);\r\n case actionTypes.SET_CONFIG:\r\n return setConfig(state, action);\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default reducer;\r\n","import * as actionTypes from '../action/actionTypes';\r\nimport { updateObject } from '../../shared/utility';\r\n\r\nconst initialState = {\r\n userId: null,\r\n shouldLoading: true,\r\n lineHeader: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"\"\r\n }\r\n}\r\n\r\nconst setLineProfile = (state, action) => {\r\n return updateObject(state, { userId: action.userId });\r\n};\r\n\r\nconst setShouldLoading = (state, action) => {\r\n return updateObject(state, { shouldLoading: action.shouldLoading });\r\n}\r\n\r\nconst setLineToken = (state, action) => {\r\n return updateObject(state, {\r\n lineHeader: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: action.token\r\n }\r\n });\r\n}\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.LINE_SETPROFILE: return setLineProfile(state, action);\r\n case actionTypes.LINE_SHOULDLOADING: return setShouldLoading(state, action);\r\n case actionTypes.LINE_TOKEN: return setLineToken(state, action);\r\n default:\r\n return state;\r\n }\r\n\r\n}\r\n\r\nexport default reducer;","import * as actionTypes from '../action/actionTypes';\r\nimport { updateObject } from '../../shared/utility';\r\n\r\nconst initialState = {\r\n firstName: null,\r\n lastName: null,\r\n}\r\n\r\nconst setCustInfo = (state, action) => {\r\n return updateObject(state, {\r\n firstName: action.firstName,\r\n lastName: action.lastName,\r\n });\r\n}\r\n\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.CUST_INFO: return setCustInfo(state, action);\r\n default:\r\n return state;\r\n }\r\n\r\n}\r\n\r\nexport default reducer;","import * as actionTypes from \"../action/actionTypes\";\r\nimport { updateObject } from \"../../shared/utility\";\r\n\r\nconst initialState = {\r\n single: false,\r\n};\r\n\r\nconst setSingle = (state, action) => {\r\n return updateObject(state, {\r\n single: action.single,\r\n });\r\n};\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.SET_SINGLE:\r\n return setSingle(state, action);\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default reducer;\r\n","import * as actionTypes from \"../action/actionTypes\";\r\nimport { updateObject } from \"../../shared/utility\";\r\n\r\nconst initialState = {\r\n tabIndex: 0,\r\n search: \"\",\r\n agreements: null,\r\n agreementsState: actionTypes.VIEW_STATE.INITIAL,\r\n agreementsStateMsg: \"\",\r\n detail: null,\r\n detailState: actionTypes.VIEW_STATE.INITIAL,\r\n detailStateMsg: \"\",\r\n insurances: null,\r\n insurancesState: actionTypes.VIEW_STATE.INITIAL,\r\n insurancesStateMsg: \"\",\r\n paymentsHistory: null,\r\n paymentsHistoryState: actionTypes.VIEW_STATE.INITIAL,\r\n paymentsHistoryStateMsg: \"\",\r\n closedDetail: null,\r\n closedDetailState: actionTypes.VIEW_STATE.INITIAL,\r\n closedDetailStateMsg: \"\",\r\n};\r\n\r\nconst setTabAgreementIndex = (state, action) => {\r\n return updateObject(state, {\r\n tabIndex: action.tab_index,\r\n });\r\n};\r\n\r\nconst filterAgreements = (state, action) => {\r\n return updateObject(state, {\r\n search: action.filter,\r\n });\r\n};\r\n\r\nconst getAgreementsStart = (state, action) => {\r\n return updateObject(state, {\r\n agreements: null,\r\n agreementsState: actionTypes.VIEW_STATE.LOADING,\r\n agreementsStateMsg: \"\",\r\n });\r\n};\r\n\r\nconst getAgreementsSuccess = (state, action) => {\r\n return updateObject(state, {\r\n run_no: action.run_no,\r\n agreements: action.agreements,\r\n agreementsState: actionTypes.VIEW_STATE.SUCCESS,\r\n });\r\n};\r\n\r\nconst getAgreementsFailed = (state, action) => {\r\n return updateObject(state, {\r\n agreementsState: actionTypes.VIEW_STATE.ERROR,\r\n agreementsStateMsg: action.error,\r\n });\r\n};\r\n\r\nconst getAgreementDetailStart = (state, action) => {\r\n return updateObject(state, {\r\n detail: null,\r\n detailState: actionTypes.VIEW_STATE.LOADING,\r\n detailStateMsg: \"\",\r\n });\r\n};\r\n\r\nconst getAgreementDetailSuccess = (state, action) => {\r\n return updateObject(state, {\r\n detail: action.detail,\r\n detailState: actionTypes.VIEW_STATE.SUCCESS,\r\n });\r\n};\r\n\r\nconst getAgreementDetailFailed = (state, action) => {\r\n return updateObject(state, {\r\n detailState: actionTypes.VIEW_STATE.ERROR,\r\n detailStateMsg: action.error,\r\n });\r\n};\r\n\r\nconst getInsuranceAgreementStart = (state, action) => {\r\n return updateObject(state, {\r\n insurances: null,\r\n insurancesState: actionTypes.VIEW_STATE.LOADING,\r\n insurancesStateMsg: \"\",\r\n });\r\n};\r\n\r\nconst getInsuranceAgreementSuccess = (state, action) => {\r\n return updateObject(state, {\r\n insurances: action.insurances,\r\n insurancesState: actionTypes.VIEW_STATE.SUCCESS,\r\n });\r\n};\r\n\r\nconst getInsuranceAgreementFailed = (state, action) => {\r\n return updateObject(state, {\r\n insurancesState: actionTypes.VIEW_STATE.ERROR,\r\n insurancesStateMsg: action.error,\r\n });\r\n};\r\n\r\nconst getPaymentAgreementStart = (state, action) => {\r\n return updateObject(state, {\r\n paymentsHistory: null,\r\n paymentsHistoryState: actionTypes.VIEW_STATE.LOADING,\r\n paymentsHistoryStateMsg: \"\",\r\n });\r\n};\r\n\r\nconst getPaymentAgreementSuccess = (state, action) => {\r\n return updateObject(state, {\r\n paymentsHistory: action.payments_history,\r\n paymentsHistoryState: actionTypes.VIEW_STATE.SUCCESS,\r\n });\r\n};\r\n\r\nconst getPaymentAgreementFailed = (state, action) => {\r\n return updateObject(state, {\r\n paymentsHistoryState: actionTypes.VIEW_STATE.ERROR,\r\n paymentsHistoryStateMsg: action.error,\r\n });\r\n};\r\n\r\nconst getClosedAgreementDetailStart = (state, action) => {\r\n return updateObject(state, {\r\n closedDetail: null,\r\n closedDetailState: actionTypes.VIEW_STATE.LOADING,\r\n closedDetailStateMsg: \"\",\r\n });\r\n};\r\n\r\nconst getClosedAgreementDetailSuccess = (state, action) => {\r\n return updateObject(state, {\r\n closedDetail: action.detail,\r\n closedDetailState: actionTypes.VIEW_STATE.SUCCESS,\r\n });\r\n};\r\n\r\nconst getClosedAgreementDetailFailed = (state, action) => {\r\n return updateObject(state, {\r\n closedDetailState: actionTypes.VIEW_STATE.ERROR,\r\n closedDetailStateMsg: action.error,\r\n });\r\n};\r\n\r\nconst clearAgreementState = (state, action) => {\r\n return initialState;\r\n};\r\n\r\nconst insertPayDataStart = (state, action) => {\r\n let objAgr = null;\r\n let index = -1;\r\n if (state.agreements != null && state.agreements.length > 0) {\r\n index = state.agreements.findIndex((item) => {\r\n return item.agr_code == action.agr_code;\r\n });\r\n objAgr = { ...state.agreements[index] };\r\n }\r\n\r\n const newArray = state.agreements.filter((item) => {\r\n return true;\r\n });\r\n objAgr.overdue_amount = null;\r\n objAgr.installment_i_vat = null;\r\n objAgr.n_due_i = null;\r\n objAgr.n_due_i_date = null;\r\n objAgr.pay_data_status = actionTypes.VIEW_STATE.LOADING;\r\n newArray.splice(index, 1, objAgr);\r\n\r\n return updateObject(state, {\r\n agreements: newArray,\r\n });\r\n};\r\n\r\nconst insertPayDataSuccess = (state, action) => {\r\n let objAgr = null;\r\n let index = -1;\r\n if (state.agreements != null && state.agreements.length > 0) {\r\n index = state.agreements.findIndex((item) => {\r\n return item.agr_code == action.agr_code;\r\n });\r\n objAgr = { ...state.agreements[index] };\r\n }\r\n\r\n const newArray = state.agreements.filter((item) => {\r\n return true;\r\n });\r\n\r\n objAgr.overdue_amount = action.data.overdue_amount;\r\n objAgr.installment_i_vat = action.data.installment_i_vat;\r\n objAgr.n_due_i = action.data.n_due_i;\r\n objAgr.n_due_i_date = action.data.n_due_i_date;\r\n objAgr.items = action.data.items;\r\n objAgr.pay_data_status = actionTypes.VIEW_STATE.SUCCESS;\r\n newArray.splice(index, 1, objAgr);\r\n\r\n return updateObject(state, {\r\n agreements: newArray,\r\n });\r\n};\r\n\r\nconst insertPayDataFailed = (state, action) => {\r\n let objAgr = null;\r\n let index = -1;\r\n if (state.agreements != null && state.agreements.length > 0) {\r\n index = state.agreements.findIndex((item) => {\r\n return item.agr_code == action.agr_code;\r\n });\r\n objAgr = { ...state.agreements[index] };\r\n }\r\n\r\n const newArray = state.agreements.filter((item) => {\r\n return true;\r\n });\r\n objAgr.overdue_amount = null;\r\n objAgr.installment_i_vat = null;\r\n objAgr.n_due_i = null;\r\n objAgr.n_due_i_date = null;\r\n objAgr.pay_data_status = actionTypes.VIEW_STATE.ERROR;\r\n newArray.splice(index, 1, objAgr);\r\n\r\n return updateObject(state, {\r\n agreements: newArray,\r\n });\r\n};\r\n\r\nconst getPaymentDetailOriginStart = (state, action) => {\r\n let objAgr = null;\r\n let index = -1;\r\n if (state.agreements != null && state.agreements.length > 0) {\r\n index = state.agreements.findIndex((item) => {\r\n return item.agr_code == action.agr_code;\r\n });\r\n objAgr = { ...state.agreements[index] };\r\n }\r\n\r\n const newArray = state.agreements.filter((item) => {\r\n return true;\r\n });\r\n objAgr.paymentDetailOrigin = null;\r\n objAgr.paymentDetailState = actionTypes.VIEW_STATE.LOADING;\r\n objAgr.paymentDetailStateMsg = \"\";\r\n\r\n newArray.splice(index, 1, objAgr);\r\n\r\n return updateObject(state, {\r\n agreements: newArray,\r\n });\r\n};\r\n\r\nconst getPaymentDetailOriginSuccess = (state, action) => {\r\n let objAgr = null;\r\n let index = -1;\r\n if (state.agreements != null && state.agreements.length > 0) {\r\n index = state.agreements.findIndex((item) => {\r\n return item.agr_code == action.agr_code;\r\n });\r\n objAgr = { ...state.agreements[index] };\r\n }\r\n\r\n const newArray = state.agreements.filter((item) => {\r\n return true;\r\n });\r\n\r\n objAgr.paymentDetailOrigin = action.paymentDetailOrigin;\r\n objAgr.paymentDetailState = actionTypes.VIEW_STATE.SUCCESS;\r\n newArray.splice(index, 1, objAgr);\r\n return updateObject(state, {\r\n agreements: newArray,\r\n });\r\n};\r\n\r\nconst getPaymentDetailOriginFailed = (state, action) => {\r\n let objAgr = null;\r\n let index = -1;\r\n if (state.agreements != null && state.agreements.length > 0) {\r\n index = state.agreements.findIndex((item) => {\r\n return item.agr_code == action.agr_code;\r\n });\r\n objAgr = { ...state.agreements[index] };\r\n }\r\n\r\n const newArray = state.agreements.filter((item) => {\r\n return true;\r\n });\r\n\r\n objAgr.paymentDetailState = actionTypes.VIEW_STATE.ERROR;\r\n objAgr.paymentDetailStateMsg = action.error;\r\n newArray.splice(index, 1, objAgr);\r\n\r\n return updateObject(state, {\r\n agreements: newArray,\r\n });\r\n};\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.GET_AGREEMENTS_START:\r\n return getAgreementsStart(state, action);\r\n case actionTypes.GET_AGREEMENTS_SUCCESS:\r\n return getAgreementsSuccess(state, action);\r\n case actionTypes.GET_AGREEMENTS_FAILED:\r\n return getAgreementsFailed(state, action);\r\n case actionTypes.GET_AGREEMENT_DETAIL_START:\r\n return getAgreementDetailStart(state, action);\r\n case actionTypes.GET_AGREEMENT_DETAIL_SUCCESS:\r\n return getAgreementDetailSuccess(state, action);\r\n case actionTypes.GET_AGREEMENT_DETAIL_FAILED:\r\n return getAgreementDetailFailed(state, action);\r\n case actionTypes.GET_INSURANCE_AGREEMENT_START:\r\n return getInsuranceAgreementStart(state, action);\r\n case actionTypes.GET_INSURANCE_AGREEMENT_SUCCESS:\r\n return getInsuranceAgreementSuccess(state, action);\r\n case actionTypes.GET_INSURANCE_AGREEMENT_FAILED:\r\n return getInsuranceAgreementFailed(state, action);\r\n case actionTypes.GET_PAYMENT_AGREEMENT_START:\r\n return getPaymentAgreementStart(state, action);\r\n case actionTypes.GET_PAYMENT_AGREEMENT_SUCCESS:\r\n return getPaymentAgreementSuccess(state, action);\r\n case actionTypes.GET_PAYMENT_AGREEMENT_FAILED:\r\n return getPaymentAgreementFailed(state, action);\r\n case actionTypes.FILTER_AGREEMENTS:\r\n return filterAgreements(state, action);\r\n case actionTypes.SET_TAB_AGREEMENT_INDEX:\r\n return setTabAgreementIndex(state, action);\r\n case actionTypes.GET_CLOSED_AGREEMENT_DETAIL_START:\r\n return getClosedAgreementDetailStart(state, action);\r\n case actionTypes.GET_CLOSED_AGREEMENT_DETAIL_SUCCESS:\r\n return getClosedAgreementDetailSuccess(state, action);\r\n case actionTypes.GET_CLOSED_AGREEMENT_DETAIL_FAILED:\r\n return getClosedAgreementDetailFailed(state, action);\r\n case actionTypes.CLEAR_AGREEMENT_STATE:\r\n return clearAgreementState(state, action);\r\n case actionTypes.INSERT_PAY_DATA_START:\r\n return insertPayDataStart(state, action);\r\n case actionTypes.INSERT_PAY_DATA_SUCCESS:\r\n return insertPayDataSuccess(state, action);\r\n case actionTypes.INSERT_PAY_DATA_FAILED:\r\n return insertPayDataFailed(state, action);\r\n case actionTypes.GET_PAYMENT_DETAIL_ORIGIN_START:\r\n return getPaymentDetailOriginStart(state, action);\r\n case actionTypes.GET_PAYMENT_DETAIL_ORIGIN_SUCCESS:\r\n return getPaymentDetailOriginSuccess(state, action);\r\n case actionTypes.GET_PAYMENT_DETAIL_ORIGIN_FAILED:\r\n return getPaymentDetailOriginFailed(state, action);\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default reducer;\r\n","import * as actionTypes from \"../action/actionTypes\";\r\nimport { updateObject } from \"../../shared/utility\";\r\n\r\nconst initialState = {\r\n requests: null,\r\n requestsState: actionTypes.VIEW_STATE.INITIAL,\r\n requestsStateMsg: \"\",\r\n requestsCovid: null,\r\n requestsCovidState: actionTypes.VIEW_STATE.INITIAL,\r\n requestsCovidStateMsg: \"\",\r\n};\r\n\r\nconst getTrackingRequestStart = (state, action) => {\r\n return updateObject(state, {\r\n requests: null,\r\n requestsState: actionTypes.VIEW_STATE.LOADING,\r\n requestsStateMsg: \"\",\r\n });\r\n};\r\n\r\nconst getTrackingRequestSuccess = (state, action) => {\r\n return updateObject(state, {\r\n requests: action.requests,\r\n requestsState: actionTypes.VIEW_STATE.SUCCESS,\r\n });\r\n};\r\n\r\nconst getTrackingRequestFailed = (state, action) => {\r\n return updateObject(state, {\r\n requestsState: actionTypes.VIEW_STATE.ERROR,\r\n requestsStateMsg: action.error,\r\n });\r\n};\r\n\r\nconst getTrackingRequestCovidStart = (state, action) => {\r\n return updateObject(state, {\r\n requestsCovid: null,\r\n requestsCovidState: actionTypes.VIEW_STATE.LOADING,\r\n requestsCovidStateMsg: \"\",\r\n });\r\n};\r\n\r\nconst getTrackingRequestCovidSuccess = (state, action) => {\r\n return updateObject(state, {\r\n requestsCovid: action.requests_covid,\r\n requestsCovidState: actionTypes.VIEW_STATE.SUCCESS,\r\n });\r\n};\r\n\r\nconst getTrackingRequestCovidFailed = (state, action) => {\r\n return updateObject(state, {\r\n requestsCovidState: actionTypes.VIEW_STATE.ERROR,\r\n requestsCovidStateMsg: action.error,\r\n });\r\n};\r\n\r\nconst clearTrackingState = (state, action) => {\r\n return initialState;\r\n};\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.GET_TRACKING_REQUEST_START:\r\n return getTrackingRequestStart(state, action);\r\n case actionTypes.GET_TRACKING_REQUEST_SUCCESS:\r\n return getTrackingRequestSuccess(state, action);\r\n case actionTypes.GET_TRACKING_REQUEST_FAILED:\r\n return getTrackingRequestFailed(state, action);\r\n case actionTypes.GET_TRACKING_REQUEST_COVID_START:\r\n return getTrackingRequestCovidStart(state, action);\r\n case actionTypes.GET_TRACKING_REQUEST_COVID_SUCCESS:\r\n return getTrackingRequestCovidSuccess(state, action);\r\n case actionTypes.GET_TRACKING_REQUEST_COVID_FAILED:\r\n return getTrackingRequestCovidFailed(state, action);\r\n case actionTypes.CLEAR_TRACKING_STATE:\r\n return clearTrackingState(state, action);\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default reducer;\r\n","import * as actionTypes from \"../action/actionTypes\";\r\nimport { updateObject } from \"../../shared/utility\";\r\n\r\nconst initialState = {\r\n payment_agreements: [],\r\n paymentItems: null,\r\n paymentItemsState: actionTypes.VIEW_STATE.INITIAL,\r\n paymentItemsStateMsg: \"\",\r\n fullSummaryPayment: null,\r\n fullSummaryPaymentState: actionTypes.VIEW_STATE.INITIAL,\r\n fullSummaryPaymentStateMsg: \"\",\r\n batchNo: null,\r\n generateBatchState: actionTypes.VIEW_STATE.INITIAL,\r\n generateBatchStateMsg: \"\",\r\n};\r\n\r\nconst insertAgreementPayList = (state, action) => {\r\n const newArray = [...state.payment_agreements];\r\n let amount = 0.0;\r\n for (let i in action.items) {\r\n let itemData = action.items[i];\r\n amount += parseFloat(itemData.amount);\r\n }\r\n const payment_item = {\r\n agreement: action.agreement,\r\n payment_amount: amount,\r\n closed: action.is_closed,\r\n payment_detail: action.items,\r\n };\r\n newArray.push(payment_item);\r\n return updateObject(state, {\r\n payment_agreements: newArray,\r\n });\r\n};\r\n\r\nconst removeAgreementPayList = (state, action) => {\r\n const newArray = state.payment_agreements.filter((payment) => {\r\n return payment.agreement.agr_code !== action.agr_code;\r\n });\r\n return updateObject(state, {\r\n payment_agreements: newArray,\r\n });\r\n};\r\n\r\nconst updateAgreementPayList = (state, action) => {\r\n let objAgr = null;\r\n let index = -1;\r\n if (state.payment_agreements != null && state.payment_agreements.length > 0) {\r\n index = state.payment_agreements.findIndex((payment) => {\r\n return payment.agreement.agr_code === action.agreement.agr_code;\r\n });\r\n\r\n objAgr = { ...state.payment_agreements[index] };\r\n }\r\n\r\n if (objAgr == null) {\r\n objAgr = {};\r\n objAgr.agreement = action.agreement;\r\n }\r\n\r\n const newArray = state.payment_agreements.filter((payment) => {\r\n return true;\r\n });\r\n\r\n let payment_detail = action.payment_detail;\r\n let payment_amount = 0;\r\n payment_detail.map((item) => {\r\n payment_amount = payment_amount + parseFloat(item.amount);\r\n });\r\n\r\n objAgr.payment_amount = payment_amount;\r\n objAgr.payment_detail = payment_detail;\r\n\r\n newArray.splice(index, 1, objAgr);\r\n\r\n return updateObject(state, {\r\n payment_agreements: newArray,\r\n });\r\n};\r\n\r\nconst getPaymentItemStart = (state, action) => {\r\n return updateObject(state, {\r\n paymentItems: null,\r\n paymentItemsState: actionTypes.VIEW_STATE.LOADING,\r\n paymentItemsStateMsg: \"\",\r\n });\r\n};\r\n\r\nconst getPaymentItemSuccess = (state, action) => {\r\n return updateObject(state, {\r\n paymentItems: action.paymentItems,\r\n paymentItemsState: actionTypes.VIEW_STATE.SUCCESS,\r\n });\r\n};\r\n\r\nconst getPaymentItemFailed = (state, action) => {\r\n return updateObject(state, {\r\n paymentItemsState: actionTypes.VIEW_STATE.ERROR,\r\n paymentItemsStateMsg: action.error,\r\n });\r\n};\r\n\r\nconst getFullSummaryPaymentStart = (state, action) => {\r\n return updateObject(state, {\r\n fullSummaryPayment: null,\r\n fullSummaryPaymentState: actionTypes.VIEW_STATE.LOADING,\r\n fullSummaryPaymentStateMsg: \"\",\r\n });\r\n};\r\n\r\nconst getFullSummaryPaymentSuccess = (state, action) => {\r\n return updateObject(state, {\r\n fullSummaryPayment: action.detail,\r\n fullSummaryPaymentState: actionTypes.VIEW_STATE.SUCCESS,\r\n });\r\n};\r\n\r\nconst getFullSummaryPaymentFailed = (state, action) => {\r\n return updateObject(state, {\r\n fullSummaryPaymentState: actionTypes.VIEW_STATE.ERROR,\r\n fullSummaryPaymentStateMsg: action.error,\r\n });\r\n};\r\n\r\nconst clearPaymentState = (state, action) => {\r\n return initialState;\r\n};\r\n\r\nconst generateBatchStart = (state, action) => {\r\n return updateObject(state, {\r\n batchNo: null,\r\n generateBatchState: actionTypes.VIEW_STATE.LOADING,\r\n generateBatchStateMsg: \"\",\r\n });\r\n};\r\n\r\nconst generateBatchSuccess = (state, action) => {\r\n return updateObject(state, {\r\n batchNo: action.batchNo,\r\n generateBatchState: actionTypes.VIEW_STATE.SUCCESS,\r\n });\r\n};\r\n\r\nconst generateBatchFailed = (state, action) => {\r\n return updateObject(state, {\r\n generateBatchState: actionTypes.VIEW_STATE.ERROR,\r\n generateBatchStateMsg: action.error,\r\n });\r\n};\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.INSERT_AGREEMENT_PAY_LIST:\r\n return insertAgreementPayList(state, action);\r\n case actionTypes.REMOVE_AGREEMENT_PAY_LIST:\r\n return removeAgreementPayList(state, action);\r\n case actionTypes.UPDATE_AGREEMENT_PAY_LIST:\r\n return updateAgreementPayList(state, action);\r\n case actionTypes.GET_PAYMENT_ITEM_START:\r\n return getPaymentItemStart(state, action);\r\n case actionTypes.GET_PAYMENT_ITEM_SUCCESS:\r\n return getPaymentItemSuccess(state, action);\r\n case actionTypes.GET_PAYMENT_ITEM_FAILED:\r\n return getPaymentItemFailed(state, action);\r\n case actionTypes.GET_FULL_SUMMARY_PAYMENT_START:\r\n return getFullSummaryPaymentStart(state, action);\r\n case actionTypes.GET_FULL_SUMMARY_PAYMENT_SUCCESS:\r\n return getFullSummaryPaymentSuccess(state, action);\r\n case actionTypes.GET_FULL_SUMMARY_PAYMENT_FAILED:\r\n return getFullSummaryPaymentFailed(state, action);\r\n case actionTypes.CLEAR_PAYMENT_STATE:\r\n return clearPaymentState(state, action);\r\n case actionTypes.GENERATE_BATCH_START:\r\n return generateBatchStart(state, action);\r\n case actionTypes.GENERATE_BATCH_SUCCESS:\r\n return generateBatchSuccess(state, action);\r\n case actionTypes.GENERATE_BATCH_FAILED:\r\n return generateBatchFailed(state, action);\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default reducer;\r\n","import * as actionTypes from \"../action/actionTypes\";\r\nimport { updateObject } from \"../../shared/utility\";\r\n\r\nconst initialState = {\r\n filter: \"\",\r\n results: null,\r\n resultsState: actionTypes.VIEW_STATE.INITIAL,\r\n resultsStateMsg: \"\",\r\n};\r\n\r\nconst getCsFilterStart = (state, action) => {\r\n return updateObject(state, {\r\n results: null,\r\n resultsState: actionTypes.VIEW_STATE.LOADING,\r\n resultsStateMsg: \"\",\r\n });\r\n};\r\n\r\nconst getCsFilterSuccess = (state, action) => {\r\n return updateObject(state, {\r\n filter: action.filter,\r\n results: action.results,\r\n resultsState: actionTypes.VIEW_STATE.SUCCESS,\r\n });\r\n};\r\n\r\nconst getCsFilterFailed = (state, action) => {\r\n return updateObject(state, {\r\n resultsState: actionTypes.VIEW_STATE.ERROR,\r\n resultsStateMsg: action.error,\r\n });\r\n};\r\n\r\nconst reducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.CS_FILTER_START:\r\n return getCsFilterStart(state, action);\r\n case actionTypes.CS_FILTER_SUCCESS:\r\n return getCsFilterSuccess(state, action);\r\n case actionTypes.CS_FILTER_FAILED:\r\n return getCsFilterFailed(state, action);\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default reducer;\r\n","import { combineReducers } from \"redux\";\r\n\r\nimport authReducer from \"./store/reducer/auth\";\r\nimport lineReducer from \"./store/reducer/line\";\r\nimport custInfoReducer from \"./store/reducer/custInfo\";\r\nimport globalReducer from \"./store/reducer/global\";\r\nimport agreementReducer from \"./store/reducer/agreement\";\r\nimport trackingReducer from \"./store/reducer/tracking\";\r\nimport paymentReducer from \"./store/reducer/payment\";\r\nimport csReducer from \"./store/reducer/cs\";\r\n\r\nconst rootReducer = combineReducers({\r\n auth: authReducer,\r\n line: lineReducer,\r\n custInfo: custInfoReducer,\r\n global: globalReducer,\r\n agreement: agreementReducer,\r\n tracking: trackingReducer,\r\n payment: paymentReducer,\r\n cs: csReducer,\r\n});\r\n\r\nexport default rootReducer;\r\n","import { put, delay } from \"redux-saga/effects\";\r\nimport axios from \"axios\";\r\n\r\nimport * as actions from \"../action/index\";\r\nimport * as actionTypes from \"../action/actionTypes\";\r\nimport { API_MYASK, API_MYASK_HEADER } from \"../../shared/constant\";\r\n\r\nexport function* getAgreementsSaga(action) {\r\n yield put(actions.getAgreementsStart());\r\n\r\n const username = yield sessionStorage.getItem(\"userName\");\r\n const token = yield sessionStorage.getItem(\"token\");\r\n\r\n let url =\r\n API_MYASK +\r\n \"/getAgreementsCustomer?user_name=\" +\r\n username +\r\n \"&token=\" +\r\n token;\r\n\r\n try {\r\n const response = yield axios.get(url);\r\n if (response.data.CODE === \"200\" || response.data.CODE === \"204\") {\r\n let agreements = [];\r\n let runNo = response.data.DATA.RUN_NO;\r\n\r\n for (let i in response.data.DATA.AGREEMENTS) {\r\n let obj = response.data.DATA.AGREEMENTS[i];\r\n let agree = {\r\n com_code: obj.COM_CODE,\r\n fin_type: obj.FIN_TYPE,\r\n agr_code: obj.AGR_CODE,\r\n cus_code: obj.CUS_CODE,\r\n body: obj.BODY,\r\n brand: obj.BRAND,\r\n reg_num: obj.REG_NUM,\r\n reg_province: obj.REG_PROVINCE,\r\n asset_description: obj.ASSET_DESCRIPTION,\r\n original_amount: obj.ORIGINAL_AMOUNT,\r\n paid_amount: obj.PAID_AMOUNT,\r\n os_balance: obj.OS_BALANCE,\r\n terms: obj.TERMS,\r\n os_terms: obj.OS_TERMS,\r\n paid_terms: obj.PAID_TERMS,\r\n installment_i_vat: null /*obj.INSTALLMENT_I_VAT*/,\r\n x_condition: obj.X_CONDITION,\r\n n_due_i: null /*obj.N_DUE_I*/,\r\n b_type: obj.B_TYPE,\r\n officer: obj.OFFICER,\r\n overdue_amount: null,\r\n n_due_i_date: null /*obj.N_DUE_I_DATE*/,\r\n pay_data_status: actionTypes.VIEW_STATE.INITIAL,\r\n paymentDetailOrigin: null,\r\n paymentDetailState: actionTypes.VIEW_STATE.INITIAL,\r\n scan_code: obj.SCAN_CODE,\r\n ref_1: obj.REF_1,\r\n ref_2: obj.REF_2,\r\n };\r\n\r\n agreements.push(agree);\r\n }\r\n\r\n yield put(actions.getAgreementsSuccess(runNo, agreements));\r\n } else {\r\n yield put(actions.getAgreementsFailed(response.data.message));\r\n }\r\n } catch (error) {\r\n if (error.response.data.message != undefined) {\r\n yield put(actions.getAgreementsFailed(error.response.data.message));\r\n } else if (error.message != undefined) {\r\n yield put(actions.getAgreementsFailed(error.message));\r\n } else {\r\n yield put(actions.getAgreementsFailed(\"Error Something wrong.\"));\r\n }\r\n }\r\n}\r\n\r\nexport function* insertPayDataSaga(action) {\r\n yield put(actions.insertPayDataStart(action.agr_code));\r\n\r\n const username = yield sessionStorage.getItem(\"userName\");\r\n const token = yield sessionStorage.getItem(\"token\");\r\n\r\n const req = {\r\n user_name: username,\r\n token: token,\r\n agr_code: action.agr_code,\r\n com_code: action.com_code,\r\n run_no: action.run_no,\r\n };\r\n let url = API_MYASK + \"/insertPayData\";\r\n\r\n try {\r\n const response = yield axios.post(url, req, {\r\n headers: API_MYASK_HEADER,\r\n });\r\n if (response.data.CODE === \"200\" || response.data.CODE === \"204\") {\r\n let obj = response.data.DATA;\r\n\r\n let paymentItems = [];\r\n for (let i in obj.items) {\r\n let itemData = obj.items[i];\r\n let item = {\r\n key: itemData.KEY,\r\n sub_key: itemData.SUB_KEY,\r\n title: itemData.TITLE,\r\n amount: itemData.AMOUNT.replaceAll(\",\", \"\"),\r\n };\r\n\r\n paymentItems.push(item);\r\n }\r\n\r\n let data = {\r\n overdue_amount: obj.overdue_balance,\r\n installment_i_vat: obj.installment,\r\n n_due_i: obj.next_due,\r\n n_due_i_date: obj.n_due_i,\r\n items: paymentItems,\r\n };\r\n\r\n yield put(actions.insertPayDataSuccess(action.agr_code, data));\r\n } else {\r\n yield put(\r\n actions.insertPayDataFailed(action.agr_code, response.data.message)\r\n );\r\n }\r\n } catch (error) {\r\n if (null == error.response) {\r\n return;\r\n }\r\n if (error.response.data.message != undefined) {\r\n yield put(\r\n actions.insertPayDataFailed(\r\n action.agr_code,\r\n error.response.data.message\r\n )\r\n );\r\n } else if (error.message != undefined) {\r\n yield put(actions.insertPayDataFailed(action.agr_code, error.message));\r\n } else {\r\n yield put(\r\n actions.insertPayDataFailed(action.agr_code, \"Error Something wrong.\")\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport function* getAgreementDetailSaga(action) {\r\n yield put(actions.getAgreementDetailStart());\r\n\r\n const username = yield sessionStorage.getItem(\"userName\");\r\n const token = yield sessionStorage.getItem(\"token\");\r\n\r\n const req = {\r\n user_name: username,\r\n token: token,\r\n agr_code: action.agr_code,\r\n com_code: action.com_code,\r\n run_no: action.run_no,\r\n };\r\n let url = API_MYASK + \"/getAgreementDetail\";\r\n\r\n try {\r\n const response = yield axios.post(url, req, {\r\n headers: API_MYASK_HEADER,\r\n });\r\n if (response.data.CODE === \"200\" || response.data.CODE === \"204\") {\r\n let detail = null;\r\n\r\n if (response.data.DATA) {\r\n let obj = response.data.DATA;\r\n\r\n detail = {\r\n fin_type: obj.FIN_TYPE,\r\n agr_code: obj.AGR_CODE,\r\n cus_code: obj.CUS_CODE,\r\n body: obj.BODY,\r\n brand: obj.BRAND,\r\n reg_num: obj.REG_NUM,\r\n reg_province: obj.REG_PROVINCE,\r\n asset_description: obj.ASSET_DESCRIPTION,\r\n terms: obj.TERMS,\r\n os_terms: obj.OS_TERMS,\r\n paid_terms: obj.PAID_TERMS,\r\n disbursement_date: obj.DISBURSEMENT_DATE,\r\n first_paid_date: obj.FIRST_PAID_DATE,\r\n original_amount: obj.ORIGINAL_AMOUNT,\r\n paid_amount: obj.PAID_AMOUNT,\r\n os_balance: obj.OS_BALANCE,\r\n installment_i_vat: obj.INSTALLMENT_I_VAT,\r\n x_condition: obj.X_CONDITION,\r\n officer: obj.OFFICER,\r\n n_due_i: obj.N_DUE_I,\r\n mobile_no: obj.MOBILE_NO,\r\n email: obj.EMAIL,\r\n is_person: obj.IS_PERSON,\r\n address: obj.ADDRESS,\r\n address_m: obj.ADDRESS_M,\r\n address_c: obj.ADDRESS_C,\r\n };\r\n }\r\n\r\n yield put(actions.getAgreementDetailSuccess(detail));\r\n } else {\r\n yield put(actions.getAgreementDetailFailed(response.data.message));\r\n }\r\n } catch (error) {\r\n if (error.response.data.message != undefined) {\r\n yield put(actions.getAgreementDetailFailed(error.response.data.message));\r\n } else if (error.message != undefined) {\r\n yield put(actions.getAgreementDetailFailed(error.message));\r\n } else {\r\n yield put(actions.getAgreementDetailFailed(\"Error Something wrong.\"));\r\n }\r\n }\r\n}\r\n\r\nexport function* getInsuranceAgreementSaga(action) {\r\n yield put(actions.getInsuranceAgreementStart());\r\n\r\n const username = yield sessionStorage.getItem(\"userName\");\r\n const token = yield sessionStorage.getItem(\"token\");\r\n const agr_code = action.agr_code;\r\n\r\n let url =\r\n API_MYASK +\r\n \"/getInsuranceAgreement?user_name=\" +\r\n username +\r\n \"&agr_code=\" +\r\n agr_code +\r\n \"&token=\" +\r\n token;\r\n\r\n try {\r\n const response = yield axios.get(url);\r\n if (response.data.CODE === \"200\" || response.data.CODE === \"204\") {\r\n let insurances = [];\r\n\r\n for (let i in response.data.LIST_DATA) {\r\n let obj = response.data.LIST_DATA[i];\r\n let insurance = {\r\n com_code: obj.COM_CODE,\r\n agr_code: obj.AGR_CODE,\r\n ref_code: obj.REF_CODE,\r\n ins_type: obj.INS_TYPE,\r\n ins_com: obj.INS_COM,\r\n ins_date: obj.INS_DATE,\r\n ins_exp: obj.INS_EXP,\r\n ins_date_th: obj.INS_DATE_TH,\r\n ins_exp_th: obj.INS_EXP_TH,\r\n pol_num: obj.POL_NUM,\r\n paid_amount: obj.PAID_AMOUNT,\r\n premium: obj.PREMIUM,\r\n cov_amt: obj.COV_AMT,\r\n total_prem: obj.TOTAL_PREM,\r\n reg_num: obj.REG_NUM,\r\n year: obj.YEAR,\r\n brand: obj.BRAND,\r\n model_name: obj.MODEL_NAME,\r\n };\r\n\r\n insurances.push(insurance);\r\n }\r\n\r\n yield put(actions.getInsuranceAgreementSuccess(insurances));\r\n } else {\r\n yield put(actions.getInsuranceAgreementFailed(response.data.message));\r\n }\r\n } catch (error) {\r\n if (error.response.data.message != undefined) {\r\n yield put(\r\n actions.getInsuranceAgreementFailed(error.response.data.message)\r\n );\r\n } else if (error.message != undefined) {\r\n yield put(actions.getInsuranceAgreementFailed(error.message));\r\n } else {\r\n yield put(actions.getInsuranceAgreementFailed(\"Error Something wrong.\"));\r\n }\r\n }\r\n}\r\n\r\nexport function* getPaymentAgreementSaga(action) {\r\n yield put(actions.getPaymentAgreementStart());\r\n\r\n const username = yield sessionStorage.getItem(\"userName\");\r\n const token = yield sessionStorage.getItem(\"token\");\r\n const agr_code = action.agr_code;\r\n\r\n let url =\r\n API_MYASK +\r\n \"/getPaymentAgreement?user_name=\" +\r\n username +\r\n \"&agr_code=\" +\r\n agr_code +\r\n \"&token=\" +\r\n token;\r\n\r\n try {\r\n const response = yield axios.get(url);\r\n if (response.data.CODE === \"200\" || response.data.CODE === \"204\") {\r\n let payment_historys = [];\r\n\r\n for (let i in response.data.LIST_DATA) {\r\n let obj = response.data.LIST_DATA[i];\r\n let history = {\r\n last_paid_dt: obj.LAST_PAID_DT,\r\n last_paid_dt_th: obj.LAST_PAID_DT_TH,\r\n sum_paid: obj.SUM_PAID,\r\n };\r\n\r\n payment_historys.push(history);\r\n }\r\n\r\n yield put(actions.getPaymentAgreementSuccess(payment_historys));\r\n } else {\r\n yield put(actions.getPaymentAgreementFailed(response.data.message));\r\n }\r\n } catch (error) {\r\n if (error.response.data.message != undefined) {\r\n yield put(actions.getPaymentAgreementFailed(error.response.data.message));\r\n } else if (error.message != undefined) {\r\n yield put(actions.getPaymentAgreementFailed(error.message));\r\n } else {\r\n yield put(actions.getPaymentAgreementFailed(\"Error Something wrong.\"));\r\n }\r\n }\r\n}\r\n\r\nexport function* getClosedAgreementDetailSaga(action) {\r\n yield put(actions.getClosedAgreementDetailStart());\r\n\r\n const username = yield sessionStorage.getItem(\"userName\");\r\n const token = yield sessionStorage.getItem(\"token\");\r\n\r\n const req = {\r\n user_name: username,\r\n token: token,\r\n agr_code: action.agr_code,\r\n com_code: action.com_code,\r\n run_no: action.run_no,\r\n };\r\n let url = API_MYASK + \"/closedAgreementDetail\";\r\n\r\n try {\r\n const response = yield axios.post(url, req, {\r\n headers: API_MYASK_HEADER,\r\n });\r\n if (response.data.CODE === \"200\" || response.data.CODE === \"204\") {\r\n let detail = null;\r\n\r\n if (response.data.DATA) {\r\n let obj = response.data.DATA;\r\n\r\n let items = [];\r\n\r\n for (let i in obj.ITEMS) {\r\n let data = obj.ITEMS[i];\r\n let item = {\r\n i_order: data.I_ORDER,\r\n pay_flag: data.PAY_FLAG,\r\n description: data.DESCRIPTION,\r\n ori_amt: data.ORI_AMT,\r\n paid_amt: data.PAID_AMT,\r\n };\r\n\r\n items.push(item);\r\n }\r\n\r\n detail = {\r\n fin_type: obj.FIN_TYPE,\r\n fin_ty: obj.FIN_TY,\r\n b_type: obj.B_TYPE,\r\n agr_code: obj.AGR_CODE,\r\n cus_code: obj.CUS_CODE,\r\n new_tr: obj.NEW_TR,\r\n body: obj.BODY,\r\n brand: obj.BRAND,\r\n reg_num: obj.REG_NUM,\r\n reg_province: obj.REG_PROVINCE,\r\n asset_description: obj.ASSET_DESCRIPTION,\r\n agr_flg: obj.AGR_FLG,\r\n terms: obj.TERMS,\r\n os_terms: obj.OS_TERMS,\r\n paid_terms: obj.PAID_TERMS,\r\n original_amount: obj.ORIGINAL_AMOUNT,\r\n paid_amount: obj.PAID_AMOUNT,\r\n os_balance: obj.OS_BALANCE,\r\n disbursement_date: obj.DISBURSEMENT_DATE,\r\n installment_i_vat: obj.INSTALLMENT_I_VAT,\r\n n_due_i: obj.N_DUE_I,\r\n x_condition: obj.X_CONDITION,\r\n officer: obj.OFFICER,\r\n items: items,\r\n sum_paid_all: obj.SUM_PAID_ALL.replaceAll(\",\", \"\"),\r\n };\r\n }\r\n\r\n yield put(actions.getClosedAgreementDetailSuccess(detail));\r\n } else {\r\n yield put(actions.getClosedAgreementDetailFailed(response.data.message));\r\n }\r\n } catch (error) {\r\n if (error.response.data.message != undefined) {\r\n yield put(\r\n actions.getClosedAgreementDetailFailed(error.response.data.message)\r\n );\r\n } else if (error.message != undefined) {\r\n yield put(actions.getClosedAgreementDetailFailed(error.message));\r\n } else {\r\n yield put(\r\n actions.getClosedAgreementDetailFailed(\"Error Something wrong.\")\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport function* clearStateAgreementSaga(action) {\r\n yield put(actions.clearAgreementState());\r\n}\r\n\r\nexport function* getPaymentDetailOriginSaga(action) {\r\n yield put(actions.getPaymentDetailOriginStart(action.agr_code));\r\n\r\n const username = yield sessionStorage.getItem(\"userName\");\r\n const token = yield sessionStorage.getItem(\"token\");\r\n\r\n const req = {\r\n user_name: username,\r\n token: token,\r\n agr_code: action.agr_code,\r\n com_code: action.com_code,\r\n run_no: action.run_no,\r\n };\r\n\r\n let url = API_MYASK + \"/getPaymentDetail\";\r\n\r\n try {\r\n const response = yield axios.post(url, req, {\r\n headers: API_MYASK_HEADER,\r\n });\r\n if (response.data.CODE === \"200\" || response.data.CODE === \"204\") {\r\n let paymentDetailOrigin = [];\r\n for (let i in response.data.LIST_DATA) {\r\n let obj = response.data.LIST_DATA[i];\r\n let item = {\r\n i_order: obj.I_ORDER,\r\n pay_flag: obj.PAY_FLAG,\r\n description: obj.DESCRIPTION,\r\n ori_amt: obj.ORI_AMT,\r\n paid_amt: obj.PAID_AMT,\r\n };\r\n\r\n paymentDetailOrigin.push(item);\r\n }\r\n\r\n yield put(\r\n actions.getPaymentDetailOriginSuccess(\r\n action.agr_code,\r\n paymentDetailOrigin\r\n )\r\n );\r\n } else {\r\n yield put(actions.getPaymentDetailOriginFailed(response.data.message));\r\n }\r\n } catch (error) {\r\n if (error.response.data.message != undefined) {\r\n yield put(\r\n actions.getPaymentDetailOriginFailed(error.response.data.message)\r\n );\r\n } else if (error.message != undefined) {\r\n yield put(actions.getPaymentDetailOriginFailed(error.message));\r\n } else {\r\n yield put(actions.getPaymentDetailOriginFailed(\"Error Something wrong.\"));\r\n }\r\n }\r\n}\r\n","import { put, delay } from \"redux-saga/effects\";\r\nimport axios from \"axios\";\r\n\r\nimport * as actions from \"../action/index\";\r\nimport { API_MYASK, API_MYASK_HEADER } from \"../../shared/constant\";\r\n\r\nexport function* getTrackingRequestSaga(action) {\r\n yield put(actions.getTrackingRequestStart());\r\n\r\n const username = yield sessionStorage.getItem(\"userName\");\r\n const token = yield sessionStorage.getItem(\"token\");\r\n\r\n let url =\r\n API_MYASK + \"/trackingRequest?user_name=\" + username + \"&token=\" + token;\r\n\r\n try {\r\n const response = yield axios.get(url);\r\n if (response.data.CODE === \"200\" || response.data.CODE === \"204\") {\r\n let requests = [];\r\n\r\n for (let i in response.data.LIST_DATA) {\r\n let obj = response.data.LIST_DATA[i];\r\n let request = {\r\n ref_code: obj.REF_CODE,\r\n result_task: obj.RESULT_TASK,\r\n fin_type: obj.FIN_TYPE,\r\n agr_code: obj.AGR_CODE,\r\n new_tr: obj.NEW_TR,\r\n fin_ty: obj.FIN_TY,\r\n fin_amt: obj.FIN_AMT,\r\n down_amt: obj.DOWN_AMT,\r\n terms: obj.TERMS,\r\n body: obj.BODY,\r\n asset_description: obj.ASSET_DESCRIPTION,\r\n brand: obj.BRAND,\r\n reg_num: obj.REG_NUM,\r\n model_name: obj.MODEL_NAME,\r\n disburse_date: obj.DISBURSE_DATE,\r\n };\r\n\r\n requests.push(request);\r\n }\r\n\r\n yield put(actions.getTrackingRequestSuccess(requests));\r\n } else {\r\n yield put(actions.getTrackingRequestFailed(response.data.message));\r\n }\r\n } catch (error) {\r\n if (error.response.data.message != undefined) {\r\n yield put(actions.getTrackingRequestFailed(error.response.data.message));\r\n } else if (error.message != undefined) {\r\n yield put(actions.getTrackingRequestFailed(error.message));\r\n } else {\r\n yield put(actions.getTrackingRequestFailed(\"Error Something wrong.\"));\r\n }\r\n }\r\n}\r\n\r\nexport function* getTrackingRequestCovidSaga(action) {\r\n yield put(actions.getTrackingRequestCovidStart());\r\n\r\n const username = yield sessionStorage.getItem(\"userName\");\r\n const token = yield sessionStorage.getItem(\"token\");\r\n\r\n let url =\r\n API_MYASK +\r\n \"/trackingRequestCovid19?user_name=\" +\r\n username +\r\n \"&token=\" +\r\n token;\r\n\r\n try {\r\n const response = yield axios.get(url);\r\n if (response.data.CODE === \"200\" || response.data.CODE === \"204\") {\r\n let requests = [];\r\n\r\n for (let i in response.data.LIST_DATA) {\r\n let obj = response.data.LIST_DATA[i];\r\n let request = {\r\n fin_type: obj.FIN_TYPE,\r\n agr_code: obj.AGR_CODE,\r\n cus_code: obj.CUS_CODE,\r\n reg_num: obj.REG_NUM,\r\n reg_province: obj.REG_PROVINCE,\r\n asset_description: obj.ASSET_DESCRIPTION,\r\n brand: obj.BRAND,\r\n body: obj.BODY,\r\n covid_apply_date: obj.COVID_APPLY_DATE,\r\n covid_apply_msg: obj.COVID_APPLY_MSG,\r\n covid_approve_date: obj.COVID_APPROVE_DATE,\r\n covid_approve_msg: obj.COVID_APPROVE_MSG,\r\n };\r\n\r\n requests.push(request);\r\n }\r\n\r\n yield put(actions.getTrackingRequestCovidSuccess(requests));\r\n } else {\r\n yield put(actions.getTrackingRequestCovidFailed(response.data.message));\r\n }\r\n } catch (error) {\r\n if (error.response.data.message != undefined) {\r\n yield put(\r\n actions.getTrackingRequestCovidFailed(error.response.data.message)\r\n );\r\n } else if (error.message != undefined) {\r\n yield put(actions.getTrackingRequestCovidFailed(error.message));\r\n } else {\r\n yield put(\r\n actions.getTrackingRequestCovidFailed(\"Error Something wrong.\")\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport function* clearStateTrackingSaga(action) {\r\n yield put(actions.clearTrackingState());\r\n}\r\n","import { put, delay } from \"redux-saga/effects\";\r\nimport axios from \"axios\";\r\n\r\nimport * as actions from \"../action/index\";\r\nimport { API_MYASK, API_MYASK_HEADER } from \"../../shared/constant\";\r\n\r\nexport function* getPaymentItemSaga(action) {\r\n const CancelToken = axios.CancelToken;\r\n const source = CancelToken.source();\r\n\r\n yield put(actions.getPaymentItemStart());\r\n\r\n const username = yield sessionStorage.getItem(\"userName\");\r\n const token = yield sessionStorage.getItem(\"token\");\r\n\r\n const req = {\r\n user_name: username,\r\n token: token,\r\n agr_code: action.agr_code,\r\n com_code: action.com_code,\r\n run_no: action.run_no,\r\n };\r\n\r\n let url = API_MYASK + \"/paymentItem\";\r\n\r\n try {\r\n const response = yield axios.post(url, req, {\r\n cancelToken: source.token,\r\n headers: API_MYASK_HEADER,\r\n });\r\n if (response.data.CODE === \"200\" || response.data.CODE === \"204\") {\r\n let paymentItems = [];\r\n for (let i in response.data.LIST_DATA) {\r\n let obj = response.data.LIST_DATA[i];\r\n let item = {\r\n key: obj.KEY,\r\n sub_key: obj.SUB_KEY,\r\n title: obj.TITLE,\r\n amount: obj.AMOUNT.replaceAll(\",\", \"\"),\r\n };\r\n\r\n paymentItems.push(item);\r\n }\r\n yield put(actions.getPaymentItemSuccess(paymentItems));\r\n } else {\r\n yield put(actions.getPaymentItemFailed(response.data.message));\r\n }\r\n } catch (error) {\r\n if (axios.isCancel(error)) {\r\n console.log(\"Request canceled\", error.message);\r\n source.cancel(\"Operation canceled by the user.\");\r\n } else {\r\n if (error.response.data.message != undefined) {\r\n yield put(actions.getPaymentItemFailed(error.response.data.message));\r\n } else if (error.message != undefined) {\r\n yield put(actions.getPaymentItemFailed(error.message));\r\n } else {\r\n yield put(actions.getPaymentItemFailed(\"Error Something wrong.\"));\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport function* getFullSummaryPaymentSaga(action) {\r\n yield put(actions.getFullSummaryPaymentStart());\r\n\r\n const username = yield sessionStorage.getItem(\"userName\");\r\n const token = yield sessionStorage.getItem(\"token\");\r\n const agr_code = action.agr_code;\r\n\r\n let url =\r\n API_MYASK +\r\n \"/getFullSummaryInstallment?user_name=\" +\r\n username +\r\n \"&agr_code=\" +\r\n agr_code +\r\n \"&token=\" +\r\n token;\r\n\r\n try {\r\n const response = yield axios.get(url);\r\n if (response.data.CODE === \"200\" || response.data.CODE === \"204\") {\r\n let detail = null;\r\n\r\n if (response.data.DATA) {\r\n let obj = response.data.DATA;\r\n\r\n let bType = obj.B_TYPE;\r\n detail = {\r\n fin_type: obj.FIN_TYPE,\r\n b_type: obj.B_TYPE,\r\n agr_code: obj.AGR_CODE,\r\n cus_code: obj.CUS_CODE,\r\n body: obj.BODY,\r\n brand: obj.BRAND,\r\n reg_num: obj.REG_NUM,\r\n reg_province: obj.REG_PROVINCE,\r\n asset_description: obj.ASSET_DESCRIPTION,\r\n agr_flg: obj.AGR_FLG,\r\n terms: obj.TERMS,\r\n os_terms: obj.OS_TERMS,\r\n paid_terms: obj.PAID_TERMS,\r\n original_amount: obj.ORIGINAL_AMOUNT,\r\n paid_amount: obj.PAID_AMOUNT,\r\n os_balance: obj.OS_BALANCE,\r\n disbursement_date: obj.DISBURSEMENT_DATE,\r\n installment_i_vat: obj.INSTALLMENT_I_VAT,\r\n n_due_i: obj.N_DUE_I,\r\n x_condition: obj.X_CONDITION,\r\n officer: obj.OFFICER,\r\n scan_code: obj.SCAN_CODE,\r\n ref_1: obj.REF_1,\r\n ref_2: obj.REF_2,\r\n term_arrears: obj.TERM_ARREARS,\r\n overdue_inst: obj.OVERDUE_INST,\r\n pastdue_vat: bType === \"HP/LS\" ? obj.PASTDUE_VAT : null,\r\n interest_charge: bType === \"HP/LS\" ? obj.INTEREST_CHARGE : null,\r\n follow_up_fee: obj.FOLLOW_UP_FEE,\r\n chq_charge: bType === \"HP/LS\" ? obj.CHQ_CHARGE : null,\r\n other: bType === \"HP/LS\" ? obj.OTHER : null,\r\n net_rtn_charge: bType === \"Loan\" ? obj.NET_RTN_CHARGE : null,\r\n net_direct_debit_charge:\r\n bType === \"Loan\" ? obj.NET_DIRECT_DEBIT_CHARGE : null,\r\n interest_ext: bType === \"Loan\" ? obj.INTEREST_EXT : null,\r\n fee_ext: bType === \"Loan\" ? obj.FEE_EXT : null,\r\n };\r\n }\r\n\r\n yield put(actions.getFullSummaryPaymentSuccess(detail));\r\n } else {\r\n yield put(actions.getFullSummaryPaymentFailed(response.data.message));\r\n }\r\n } catch (error) {\r\n if (error.response.data.message != undefined) {\r\n yield put(\r\n actions.getFullSummaryPaymentFailed(error.response.data.message)\r\n );\r\n } else if (error.message != undefined) {\r\n yield put(actions.getFullSummaryPaymentFailed(error.message));\r\n } else {\r\n yield put(actions.getFullSummaryPaymentFailed(\"Error Something wrong.\"));\r\n }\r\n }\r\n}\r\n\r\nexport function* clearStatePaymentSaga(action) {\r\n yield put(actions.clearPaymentState());\r\n}\r\n\r\n/* unused \r\nexport function* generateBatchSaga(action) {\r\n yield put(actions.generateBatchStart());\r\n\r\n const username = yield sessionStorage.getItem(\"userName\");\r\n const token = yield sessionStorage.getItem(\"token\");\r\n const runNo = action.runNo;\r\n\r\n let payments = action.payments;\r\n\r\n let paymentsReq = [];\r\n\r\n for (let i in payments) {\r\n let payment = payments[i];\r\n let dtArr = [];\r\n for (let j in payment.payment_detail) {\r\n let dt = payment.payment_detail[j];\r\n let obj = {\r\n offsetting_rule: dt.key,\r\n sub_off_rule: dt.sub_key,\r\n amount: dt.amount,\r\n };\r\n dtArr.push(obj);\r\n }\r\n console.log(payment.agreement);\r\n let req = {\r\n run_no: runNo,\r\n com_code: payment.agreement.com_code,\r\n agr_code: payment.agreement.agr_code,\r\n pay_flag: payment.closed == true ? \"C\" : \"U\",\r\n amount: payment.payment_amount,\r\n list_payment_detail: dtArr,\r\n };\r\n paymentsReq.push(req);\r\n }\r\n\r\n const req = {\r\n user_name: username,\r\n token: token,\r\n list_payment: paymentsReq,\r\n };\r\n\r\n let url = API_MYASK + \"/generateBatch\";\r\n\r\n try {\r\n const response = yield axios.post(url, req, {\r\n headers: API_MYASK_HEADER,\r\n });\r\n if (response.data.CODE === \"200\" || response.data.CODE === \"204\") {\r\n console.log(response.data);\r\n //yield put(actions.getPaymentItemSuccess(paymentItems));\r\n } else {\r\n yield put(actions.generateBatchFailed(response.data.message));\r\n }\r\n } catch (error) {\r\n if (error.response.data.message != undefined) {\r\n yield put(actions.generateBatchFailed(error.response.data.message));\r\n } else if (error.message != undefined) {\r\n yield put(actions.generateBatchFailed(error.message));\r\n } else {\r\n yield put(actions.generateBatchFailed(\"Error Something wrong.\"));\r\n }\r\n }\r\n}\r\n/* unused */\r\n","import { put, delay } from \"redux-saga/effects\";\r\nimport axios from \"axios\";\r\n\r\nimport * as actions from \"../action/index\";\r\nimport * as actionTypes from \"../action/actionTypes\";\r\nimport { API_MYASK, API_MYASK_HEADER } from \"../../shared/constant\";\r\n\r\nexport function* csFilterSaga(action) {\r\n yield put(actions.csFilterStart());\r\n\r\n let url = API_MYASK + \"/csFilter\";\r\n\r\n let filterStr = action.value;\r\n const req = {\r\n value: filterStr,\r\n };\r\n\r\n try {\r\n const response = yield axios.post(url, req, {\r\n headers: API_MYASK_HEADER,\r\n });\r\n if (response.data.CODE === \"200\" || response.data.CODE === \"204\") {\r\n let filters = [];\r\n\r\n for (let i in response.data.LIST_DATA) {\r\n let obj = response.data.LIST_DATA[i];\r\n let data = {\r\n com_code: obj.com_code,\r\n agr_code: obj.agr_code,\r\n new_tr: obj.new_tr,\r\n username: obj.username,\r\n password: obj.password,\r\n cus_name: obj.cus_name,\r\n reg_num: obj.reg_num,\r\n reg_prv: obj.reg_prv,\r\n new_card_no: obj.new_card_no,\r\n };\r\n\r\n filters.push(data);\r\n }\r\n yield put(actions.csFilterSuccess(filterStr, filters));\r\n } else {\r\n yield put(actions.csFilterFailed(response.data.message));\r\n }\r\n } catch (error) {\r\n if (error.response.data.message != undefined) {\r\n yield put(actions.csFilterFailed(error.response.data.message));\r\n } else if (error.message != undefined) {\r\n yield put(actions.csFilterFailed(error.message));\r\n } else {\r\n yield put(actions.csFilterFailed(\"Error Something wrong.\"));\r\n }\r\n }\r\n}\r\n","import {\r\n takeEvery,\r\n takeLatest,\r\n all,\r\n cancel,\r\n fork,\r\n cancelled,\r\n} from \"redux-saga/effects\";\r\n\r\nimport * as actionTypes from \"../action/actionTypes\";\r\n\r\nimport {\r\n getAgreementsSaga,\r\n getAgreementDetailSaga,\r\n getInsuranceAgreementSaga,\r\n getPaymentAgreementSaga,\r\n getClosedAgreementDetailSaga,\r\n clearStateAgreementSaga,\r\n insertPayDataSaga,\r\n getPaymentDetailOriginSaga,\r\n} from \"./agreement\";\r\n\r\nimport {\r\n getTrackingRequestSaga,\r\n getTrackingRequestCovidSaga,\r\n clearStateTrackingSaga,\r\n} from \"./tracking\";\r\n\r\nimport {\r\n getPaymentItemSaga,\r\n getFullSummaryPaymentSaga,\r\n clearStatePaymentSaga,\r\n generateBatchSaga,\r\n} from \"./payment\";\r\n\r\nimport { csFilterSaga } from \"./cs\";\r\n\r\nexport function* watchAgreement() {\r\n yield takeEvery(actionTypes.GET_AGREEMENTS, getAgreementsSaga);\r\n yield takeEvery(actionTypes.GET_AGREEMENT_DETAIL, getAgreementDetailSaga);\r\n yield takeEvery(\r\n actionTypes.GET_INSURANCE_AGREEMENT,\r\n getInsuranceAgreementSaga\r\n );\r\n yield takeEvery(actionTypes.GET_PAYMENT_AGREEMENT, getPaymentAgreementSaga);\r\n yield takeEvery(\r\n actionTypes.GET_CLOSED_AGREEMENT_DETAIL,\r\n getClosedAgreementDetailSaga\r\n );\r\n yield takeEvery(actionTypes.AUTH_LOGOUT, clearStateAgreementSaga);\r\n yield takeEvery(actionTypes.INSERT_PAY_DATA, insertPayDataSaga);\r\n yield takeEvery(\r\n actionTypes.GET_PAYMENT_DETAIL_ORIGIN,\r\n getPaymentDetailOriginSaga\r\n );\r\n\r\n // yield all([takeEvery(actionTypes.GET_AGREEMENTS, getAgreementsSaga)]);\r\n // yield all([\r\n // takeEvery(actionTypes.GET_AGREEMENT_DETAIL, getAgreementDetailSaga),\r\n // ]);\r\n // yield all([\r\n // takeEvery(actionTypes.GET_INSURANCE_AGREEMENT, getInsuranceAgreementSaga),\r\n // ]);\r\n // yield all([\r\n // takeEvery(actionTypes.GET_PAYMENT_AGREEMENT, getPaymentAgreementSaga),\r\n // ]);\r\n // yield all([\r\n // takeEvery(\r\n // actionTypes.GET_CLOSED_AGREEMENT_DETAIL,\r\n // getClosedAgreementDetailSaga\r\n // ),\r\n // ]);\r\n // yield all([takeEvery(actionTypes.AUTH_LOGOUT, clearStateAgreementSaga)]);\r\n // yield all([takeEvery(actionTypes.INSERT_PAY_DATA, insertPayDataSaga)]);\r\n // yield all([\r\n // takeEvery(\r\n // actionTypes.GET_PAYMENT_DETAIL_ORIGIN,\r\n // getPaymentDetailOriginSaga\r\n // ),\r\n // ]);\r\n}\r\n\r\nexport function* watchTracking() {\r\n yield takeEvery(actionTypes.GET_TRACKING_REQUEST, getTrackingRequestSaga);\r\n yield takeEvery(\r\n actionTypes.GET_TRACKING_REQUEST_COVID,\r\n getTrackingRequestCovidSaga\r\n );\r\n yield takeEvery(actionTypes.AUTH_LOGOUT, clearStateTrackingSaga);\r\n // yield all([\r\n // takeEvery(actionTypes.GET_TRACKING_REQUEST, getTrackingRequestSaga),\r\n // ]);\r\n // yield all([\r\n // takeEvery(\r\n // actionTypes.GET_TRACKING_REQUEST_COVID,\r\n // getTrackingRequestCovidSaga\r\n // ),\r\n // ]);\r\n // yield all([takeEvery(actionTypes.AUTH_LOGOUT, clearStateTrackingSaga)]);\r\n}\r\n\r\nexport function* watchPayment() {\r\n try {\r\n yield all([\r\n takeEvery(actionTypes.GET_PAYMENT_ITEM, getPaymentItemSaga),\r\n takeEvery(\r\n actionTypes.GET_FULL_SUMMARY_PAYMENT,\r\n getFullSummaryPaymentSaga\r\n ),\r\n takeEvery(actionTypes.AUTH_LOGOUT, clearStatePaymentSaga),\r\n ]);\r\n } finally {\r\n if (yield cancelled()) {\r\n console.log(\"watchPayment: canceled\");\r\n }\r\n }\r\n // yield takeEvery(actionTypes.GENERATE_BATCH, generateBatchSaga); //unused\r\n\r\n // yield all([takeEvery(actionTypes.GET_PAYMENT_ITEM, getPaymentItemSaga)]);\r\n // yield all([\r\n // takeEvery(actionTypes.GET_FULL_SUMMARY_PAYMENT, getFullSummaryPaymentSaga),\r\n // ]);\r\n // yield all([takeEvery(actionTypes.AUTH_LOGOUT, clearStatePaymentSaga)]);\r\n // yield all([takeEvery(actionTypes.GENERATE_BATCH, generateBatchSaga)]);\r\n}\r\n\r\nexport function* watchCs() {\r\n try {\r\n yield all([takeEvery(actionTypes.CS_FILTER, csFilterSaga)]);\r\n } finally {\r\n if (yield cancelled()) {\r\n console.log(\"watchPayment: canceled\");\r\n }\r\n }\r\n}\r\n","import \"react-app-polyfill/ie9\";\r\nimport \"react-app-polyfill/ie11\";\r\nimport \"react-app-polyfill/stable\";\r\nimport \"core-js/features/array/find\";\r\nimport \"core-js/features/array/includes\";\r\nimport \"core-js/features/number/is-nan\";\r\n\r\nimport React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./index.css\";\r\nimport \"./bank.css\";\r\nimport App from \"./containers/App\";\r\n//import ApplyControl from \"./containers/ApplyControls/ApplyControls\";\r\nimport * as serviceWorker from \"./serviceWorker\";\r\nimport { BrowserRouter, HashRouter } from \"react-router-dom\";\r\nimport { Provider } from \"react-redux\";\r\n\r\nimport { PersistGate } from \"redux-persist/integration/react\";\r\nimport { persistStore } from \"redux-persist\";\r\n\r\nimport configureStore from \"./store\";\r\n\r\nconst store = configureStore();\r\nconst persister = persistStore(store, null);\r\n\r\nconst app = (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n//\"homepage\": \".\",\r\n\r\nReactDOM.render(app, document.getElementById(\"root\"));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","import { createStore, applyMiddleware, compose } from \"redux\";\r\nimport thunk from \"redux-thunk\";\r\nimport rootReducer from \"./rootReducer\";\r\nimport createSagaMiddleware from \"redux-saga\";\r\nimport { persistReducer } from \"redux-persist\";\r\nimport storage from \"redux-persist/lib/storage/session\";\r\n\r\nimport {\r\n watchAgreement,\r\n watchTracking,\r\n watchPayment,\r\n watchCs,\r\n} from \"./store/saga/index\";\r\n\r\nexport default function configureStore(preloadedState) {\r\n // const composeEnhancers = process.env.NODE_ENV === 'development' ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : null || compose;\r\n const composeEnhancers =\r\n window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\r\n\r\n const sagaMiddleware = createSagaMiddleware();\r\n\r\n const store = createStore(\r\n persistReducer(\r\n {\r\n key: \"data\",\r\n storage: storage,\r\n whitelist: [\"agreement\", \"payment\", \"auth\", \"cs\"],\r\n },\r\n rootReducer\r\n ),\r\n composeEnhancers(applyMiddleware(thunk, sagaMiddleware))\r\n );\r\n\r\n const agreementSagaTask = sagaMiddleware.run(watchAgreement);\r\n const paymentSagaTask = sagaMiddleware.run(watchPayment);\r\n const trackingSagaTask = sagaMiddleware.run(watchTracking);\r\n const csSagaTask = sagaMiddleware.run(watchCs);\r\n\r\n agreementSagaTask.toPromise().catch((error) => {\r\n console.log(\"agreement saga error\");\r\n console.log(error);\r\n });\r\n\r\n paymentSagaTask.toPromise().catch((error) => {\r\n console.log(\"payment saga error\");\r\n console.log(error);\r\n });\r\n\r\n trackingSagaTask.toPromise().catch((error) => {\r\n console.log(\"tracking saga error\");\r\n console.log(error);\r\n });\r\n\r\n csSagaTask.toPromise().catch((error) => {\r\n console.log(\"cs saga error\");\r\n console.log(error);\r\n });\r\n\r\n return store;\r\n}\r\n"],"sourceRoot":""}