{"version":3,"sources":["serviceWorker.js","helpers/chartjs.js","theme/palette.js","theme/typography.js","theme/overrides/index.js","theme/overrides/MuiButton.js","theme/overrides/MuiIconButton.js","theme/overrides/MuiPaper.js","theme/overrides/MuiTableCell.js","theme/overrides/MuiTableHead.js","theme/overrides/MuiTypography.js","theme/index.js","common/validators.js","components/SearchInput/SearchInput.js","components/StatusBullet/StatusBullet.js","components/RouteWithLayout/RouteWithLayout.js","layouts/Main/components/Footer/Footer.js","constant.js","layouts/Main/components/Sidebar/components/Profile/Profile.js","layouts/Main/components/Sidebar/components/SidebarNav/SidebarNav.js","layouts/Main/components/Sidebar/components/UpgradePlan/UpgradePlan.js","layouts/Main/components/Sidebar/Sidebar.js","layouts/Main/components/Topbar/Topbar.js","layouts/Main/Main.js","layouts/Minimal/components/Topbar/Topbar.js","layouts/Minimal/Minimal.js","views/NotFound/NotFound.js","views/SignIn/styles.js","utility.js","views/SignIn/index.js","views/UserList/SearchText.js","components/Pagination/Pagination.js","views/UserList/Table.js","views/UserList/FilterAdmin.js","views/UserList/TableAll.js","views/UserList/index.js","views/Admin/index.js","views/Admin0/index.js","views/Detail/TableSearchHoanTra.js","views/Detail/CardCS.js","views/Detail/Note.js","views/Detail/CommentList.js","views/Detail/AddImageComment.js","views/Detail/Api.js","views/Detail/GiaoViec.js","views/Detail/SearchText.js","views/Detail/TableAll.js","views/Detail/ThongTinChuyenSai.js","views/Detail/DonTrungLap.js","views/Detail/EditComment.js","views/Detail/TransactionID.js","views/Detail/TableAllHoanTra.js","views/Detail/ThongTinHoanTra.js","views/Detail/LichSuGiaoViec.js","views/Detail/QuyTrinh.js","views/Detail/TruyThu.js","views/Detail/CommentNoiBo.js","views/Detail/CardImage.js","views/Detail/KhopLenhDauTu.js","views/Detail/KhopLenhTietkiem.js","views/Detail/KhopLenhCuuLong.js","views/Detail/KhopLenhCD3M.js","views/Detail/KhopLenhCD12M.js","views/Detail/KhopLenh.js","views/Detail/index.js","views/Ketoan/SearchText.js","views/Ketoan/DialogEdit.js","views/Ketoan/TableAdd.js","views/Ketoan/TableAll.js","views/Ketoan/index.js","views/NewComment/Table.js","views/NewComment/index.js","views/KetoanHoantra/DialogEdit.js","views/KetoanHoantra/TableAdd.js","views/KetoanHoantra/SearchText.js","views/KetoanHoantra/TableAll.js","views/KetoanHoantra/index.js","views/PageEkyc/TableAll.js","views/PageEkyc/index.js","views/DanhSachNguoiDung/TableAll.js","views/DanhSachNguoiDung/index.js","views/Cmt/data.js","views/Cmt/CmtItem.js","views/Cmt/Selfie.js","views/Cmt/UpdateUserInfo.js","views/Cmt/IDCard.js","components/VirtualizedList/ListVirtualized.js","views/Cmt/Passport.js","views/Cmt/ReEkyc.js","views/Cmt/index.js","views/Tool/TaoHoDon.js","views/Tool/index.js","Routes.js","App.js","index.js"],"names":["Boolean","window","location","hostname","match","draw","left","right","top","bottom","signX","signY","borderSkipped","radius","ctx","this","_chart","vm","_view","borderWidth","cornerRadius","config","options","horizontal","base","x","y","height","width","barSize","Math","min","abs","halfStroke","borderLeft","borderRight","borderTop","borderBottom","beginPath","fillStyle","backgroundColor","strokeStyle","borderColor","lineWidth","corners","startCorner","indexOf","cornerAt","index","corner","moveTo","i","nextCornerId","floor","xTl","xTr","yTl","yTr","xBl","xBr","yBl","yBr","lineTo","quadraticCurveTo","fill","stroke","white","black","primary","contrastText","dark","colors","indigo","main","light","secondary","blue","success","green","info","warning","orange","error","red","text","blueGrey","link","background","default","paper","icon","divider","grey","h1","color","palette","fontWeight","fontSize","letterSpacing","lineHeight","h2","h3","h4","h5","h6","subtitle1","subtitle2","body1","body2","button","caption","overline","textTransform","MuiButton","contained","boxShadow","MuiIconButton","root","MuiPaper","elevation1","MuiTableCell","typography","MuiTableHead","MuiTypography","gutterBottom","marginBottom","theme","createMuiTheme","overrides","zIndex","appBar","drawer","checked","value","message","makeStyles","borderRadius","alignItems","padding","spacing","display","flexBasis","marginRight","input","flexGrow","useStyles","flexShrink","sm","md","lg","neutral","danger","StatusBullet","props","className","size","rest","classes","clsx","defaultProps","RouteWithLayout","Layout","layout","Component","component","render","matchProps","Footer","localhost","process","CONST_DATA","add_ticket","get_ticket_id","get_ticket_user","file_upload","get_image","check_selfie","create_order_pay_cs_admin","localhostApiCD3M","add_comment_image","end_point_login","search_api","doi_soat_ekyc","localStorage_login","router_sign_in","router_can_xu_ly","router_dang_giai_quyet","router_ghi_nhan","router_hoan_thanh","router_bo_qua","router_not_found","router_all","router_for_me","router_admin_0","router_admin","router_detail","router_ketoan","router_ketoan_hoan_tra","router_viec_cua_toi","router_doi_soat_ekyc","router_new_comment","router_cmt","router_tool","router_list_user","get_ticket_admin","get_ticket_admin_ticket_id","get_ticket_by_admin_id","add_comment","edit_comment","edit_note","edit_admin_assign","edit_transaction_id","confirm_read_comment","them_ly_do_bo_qua","edit_quy_trinh","add_truy_thu","comment_noi_bo","tao_ho_don","change_status","mo_lai_don","get_admin_by_id","edit_user_admin_password","edit_user_admin_full_name","get_all_admin","get_admin_giao_viec","creat_user_admin","change_status_user","ketoan_get_all_item","ketoan_add_item","ketoan_search_item","ketoan_ketoan_search_item","ketoan_delete_item","ketoan_edit_note","ketoan_cs_confirm","ketoan_get_by_id","ketoan_cs_undo_confirm","ketoan_thong_ke","cs_match_tk_ngan_hang","cs_un_match_tk_ngan_hang","ketoan_hoan_tra_add_item","ketoan_hoan_tra_get_all_item","ketoan_hoan_tra_search_item","ketoan_hoan_tra_ketoan_search_item","ketoan_hoan_tra_export_file","ketoan_hoan_tra_delete_item","ketoan_hoan_tra_edit_note","ketoan_hoan_tra_get_by_id","ketoan_hoan_tra_change_status","ketoan_hoan_tra_cs_match","ketoan_hoan_tra_cs_undo_match","update_bank_info","ketoan_khop_chuyen_tien_dat_lenh_dau_tu","ketoan_khop_chuyen_tien_dat_lenh_tiet_kiem","ketoan_khop_chuyen_tien_dat_lenh_cuu_long","lay_list_pending","ke_toan_khop_lenh","admin_get_ticket_trung_lap","get_ticket_new_comment","get_goal_id","ocr_get_ocr","cmt_get_list","cmt_get_image","cmt_get_detail_user_id","cmt_get_detail_user_id_v2","accept_trueid_v2","ekyc_api_cs_accept","ekyc_api_cs_reject","cmt_trueid_api_cs_accept","cmt_trueid_api_cs_reject","cmt_passport_api_cs_accept","cmt_passport_api_cs_reject","re_ekyc_cs_accept","re_ekyc_cs_reject","ROLE_KE_TOAN","ROLE_KE_TOAN_KHOP_LENH","ROLE_CS","ROLE_ADMIN","ROLE_TEST","ROLE_KYC","ROLE_TU_VAN","type_of_ticket","type_of_rank","type_of_status","status_id","label","loai_dau_tu","loai_tiet_kiem","loai_cuu_long","loai_cd_3_thang","loai_cd_12_thang","fake_cd_3M","bonus_rate","created_at","due_date","fee","id","interest_rate","original_id","original_paid_at","paid_amount","paid_at","partner_code","payment_type","place_amount","product_id","request_id","server_time","source","status","temporary_interest","transaction_ref","transaction_type","updated_at","user_id","Profile","check_login","login_data","localStorage","getItem","setState","thong_tin_hien_tai","JSON","parse","data_success","state","Typography","name","full_name","user_name","CircularProgress","withStyles","flexDirection","minHeight","avatar","marginTop","item","paddingTop","paddingBottom","justifyContent","fontWeightMedium","active","CustomRouterLink","forwardRef","ref","style","SidebarNav","pages","List","map","page","ListItem","disableGutters","key","title","Button","activeClassName","to","href","media","textAlign","content","actions","UpgradePlan","breakpoints","up","margin","nav","new_comment","cmt","viec_cua_toi","sua_thong_tin","SupervisorAccount","dang_xuat","can_xu_ly","toan_bo_don","ke_toan","ke_toan_hoan_tra","cs_tool","list_user","Sidebar","role_admin","role","open","variant","onClose","Drawer","anchor","Divider","signOutButton","marginLeft","logo","maxHeight","Topbar","onSidebarOpen","useState","AppBar","Toolbar","alt","src","Hidden","mdDown","IconButton","lgUp","onClick","shiftContent","paddingLeft","Main","children","useTheme","isDesktop","useMediaQuery","defaultMatches","openSidebar","setOpenSidebar","shouldOpenSidebar","position","Minimal","image","maxWidth","NotFound","Grid","container","justify","xs","grid","bio","contentContainer","contentHeader","paddingBototm","paddingRight","logoImage","contentBody","down","form","socialButtons","socialIcon","sugestion","textField","signInButton","to_date_min","date_num","moment","locale","format","to_date_unix","valueOf","get_time_second","time_now","Date","getTime","round","status_detail","result","parseInt","portfolio_type_to_string","SignIn","check_respone_login","data","setItem","stringify","history","push","sign_in","body","token","email","password","jwt","sign","Axios","post","then","response","error_text","catch","console","log","removeItem","Paper","elevation","TextField","fullWidth","type","onChange","event","target","onKeyDown","e","styles","User","seach_text","placeholder","loading","formControl","minWidth","selectEmpty","BasicPagination","handleOnChangePage","totalPage","Pagination","count","columns","ren_admin","admin_assign","TableCell","check_condition","result_type","ticket_type","result_rank","rank_title","result_status","result_text","toString","includes","ticket_id","user_profile","phone_number","note","result_date","search_date","to_date_search","el","Box","FormControl","InputLabel","Select","labelId","MenuItem","handOnChangeStatus","SearchText","TableContainer","Table","stickyHeader","aria-label","TableHead","TableRow","column","align","TableBody","row","hover","tabIndex","typeGet","get","all_admin_data","all_admin_success","get_data","search_rank_user","body_req","access_token","search_date_creat","search_ticket_type","search_status_id","search_key_word","search_admin_id","type_of_admin","limit","print_phone_number","prevProps","prevState","FilterAdmin","a","update_at","date","element","get_data_viec_cua_toi","type_get","render_table","TableAll","data_ticket","data_ticket_success","xl","handleClickShowPassword","showOldPass","showNewPass","showConfirmPass","handleMouseDownPassword","preventDefault","edit_data","url","reload","alert","render_send_pass","password1","password2","old_password","password_new","send_full_name","Card","multiline","htmlFor","OutlinedInput","endAdornment","InputAdornment","onMouseDown","edge","render_list_admin","send_data_add","TabelSearchHoanTra","search_data","search_key","notify","toast","get_hoan_tra_by_id","id_hoan_tra","open_delete","id_delete","data_delete","note_change","hoantra","response_data","setTimeout","flex","ma_rut_tien","disabled","handleConfim","so_tien","replace","dien_giai","ma_case","cs_match","Issue","pos","mid","extra_data","send_note","CommentList","comment_log","linkImage","comment","search","objectFit","remove_comment","CardCS","AddCommentImage","handleChange","file","files","reader","FileReader","readAsDataURL","onloadend","upload_image","base64","comment_image_base64","comment_image_name","send_comment_image","image_base64","image_name","send_status_api","callback","send_ly_do_bo_qua_api","GiaoViec","change_admin","change_admin_api","is_loading","cs_confirm","id_chuyen_tien_sai","refesh_page","ngay","so_but_toan","bank","cs_undo_confirm","render_delete","ImageBase64","DonTrungLap","checkBase64","base64Data","substring","length","get_ticket_detail","admin_id","send_status","body_req_bo_qua","bo_qua_id","render_ticket_detail","ticket_detail","show_list","send_comment","send_comment_api","change_transaction","transaction_id","change_transaction_id_api","button_change_status","status_hoan_tra","find_admin","find","card_info","from","time","admin_assign_log","QuyTrinh","send_quy_trinh","quy_trinh","check_box_key","state_key","state_name","FormControlLabel","control","Checkbox","check","old_obj","new_obj","cs_id","key_1_1","key_1_2","key_2_1","key_3_1","key_4_1","key_4_2","key_5_1","key_5_2","key_6_1","key_7_1","key_8_1","key_9_1","key_9_2","FormGroup","FormLabel","TruyThu","is_truy_thu","CommentNoiBo","render_comment","CardImage","get_ocr","text_ocr","KhopLenh","find_goal_id","goal_list","send_khop_lenh","money","goal_id","transactionRef","send_khop_lenh_api","send_khop_lenh_tiet_kiem_api","send_khop_lenh_cuu_long_api","KhopLenhCD3M","loai_lenh","handlePartnerRadioChange","RadioGroup","defaultValue","Radio","KhopLenhCD12M","get_pending","messageResponse","get_chuyen_tien_sai","data_chuyen_tien_sai_success","data_chuyen_tien_sai","render_button","render_button_payment_type","confirm_khop_lenh","getTransactionRef","actualPaymentType","getActualPaymentType","trans_id","confirm_khop_lenh_cd3M","confirm_khop_lenh_cd12M","render_create_and_match","KhopLenhDauTu","KhopLenhTietkiem","render_table_data_CD3M","portfolio_type","render_table_data_CD12M","render_table_data","table","card","ButtonGroup","renderTransactionRefInput","paymentType","returnTransactionRef","send_note_api","box_status","trang_thai","box_ly_do_bo_qua","ly_do_bo_qua","mo_lai_don_api","render_button_status","render_status","render_gui_trang_thai","box_xac_nhan_gui_trang_thai","remove_comment_api","render_hoan_tra","TableAllHoanTra","ThongTinHoanTra","render_chuyen_tien_sai","ThongTinChuyenSai","render_lydo_bo_qua","bo_qua_detail","render_khop_lenh","handleUpdateInfoBank","method","headers","render_giao_dich_hoan_tra","TableSearchHoanTra","params","CardContent","TransactionID","EditComment","AddImageComment","Note","status_log","LichSuGiaoViec","send_data","text_add","insert_log","renderDuplicate","duplicate","showProgressLoading","start_date_thong_ke","end_date_thong_ke","link_thong_ke","delete_data","Dialog","aria-labelledby","aria-describedby","DialogEdit","TableAdd","new_comment_date","slice","export_file","export_file_ketoan","button_active","timer","setInterval","count_down","clearInterval","res","message_error","open_error","handleClose","Snackbar","autoHideDuration","anchorOrigin","vertical","Alert","severity","startDate","start_date","enDate","end_date","handleOnSearch","count_ocr","count_selfie","TableUser","checkRoleDisplay","roleDisplay","currentStatus","put","err","is_active","Switch","inputProps","handleOpen","get_all_user","checkValidateFullName","checkValidateUsername","checkValidateRole","validate","isError","isErrorFullName","errorFullNameText","isErrorUserName","errorUserNameText","isErrorRole","errorRoleText","direction","Modal","modal","closeAfterTransition","BackdropComponent","Backdrop","BackdropProps","timeout","Fade","in","helperText","onBlur","required","FormHelperText","shadows","list_check_fail","render_img","src_link","transform","deg_rotate","render_img_selfie","onChangeList_fail","pre_list_check","findIndex","card_text","render_accept","id_name","id_number","id_dob","id_address","id_issue_date","id_issue_address","render_rejcet","render_cs_confirm","loading_confirm","is_accept","send_accept","given_date","given_place","dob","send_reject","ly_do_reject","reject","accept","data_cmt","true_id","ocr_id","data_fields","final","kyc_result","front","user_info","address","back","selfie","Selfie","render_reason","Input","send_confirm_selfie","UpdateUserInfo","isNotMatchTrueId","data_true_id","toUpperCase","handleAccept","identity_number","unrender","IDCard","isValidDate","key_true_id","getValueFromTrueIdAndUser","test","overflow","listSection","ul","VirtualizedList","handleOnCick","ListItemText","CheckUserPassport","card_textarea","reason","id_identity","id_nationality","passport_info","identity","nationality","ReEkyc","user_id_chosing","send_accept_new","error_code","reject_data","send_reject_new","send_re_ekyc_accept","send_cs_action","send_re_ekyc_reject","get_list","need_cs_check_ly_do","get_data_detail","uid","is_re_ekyc","data_detail_success","data_detail","data_cmt_success","user_info_updated_by_user","data_true_id_state","seach_user_id","render_detail_info","acceptAndUpdatePassportInfor","rejectPassportInfor","CmtItem","data_ocr","handleOnClickItemUserId","code","render_send","new_user_id","TaoHoDon","Routes","exact","UserList","MainLayout","path","Detail","MinimalLayout","NewComment","Tool","Cmt","Ketoan","KetoanHoantra","Admin0","DanhSachNguoiDung","Admin","SignInView","NotFoundView","browserHistory","createBrowserHistory","Chart","helpers","extend","elements","Rectangle","prototype","chartjs","validators","App","ThemeProvider","ReactDOM","document","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.d4fb4ffb.chunk.js","sourcesContent":["// 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 http://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 http://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 http://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","// ChartJS extension rounded bar chart\r\n// https://codepen.io/jedtrow/full/ygRYgo\r\nfunction draw() {\r\n const { ctx } = this._chart;\r\n const vm = this._view;\r\n let { borderWidth } = vm;\r\n\r\n let left;\r\n let right;\r\n let top;\r\n let bottom;\r\n let signX;\r\n let signY;\r\n let borderSkipped;\r\n let radius;\r\n\r\n // If radius is less than 0 or is large enough to cause drawing errors a max\r\n // radius is imposed. If cornerRadius is not defined set it to 0.\r\n let { cornerRadius } = this._chart.config.options;\r\n if (cornerRadius < 0) {\r\n cornerRadius = 0;\r\n }\r\n\r\n if (typeof cornerRadius === 'undefined') {\r\n cornerRadius = 0;\r\n }\r\n\r\n if (!vm.horizontal) {\r\n // bar\r\n left = vm.x - vm.width / 2;\r\n right = vm.x + vm.width / 2;\r\n top = vm.y;\r\n bottom = vm.base;\r\n signX = 1;\r\n signY = bottom > top ? 1 : -1;\r\n borderSkipped = vm.borderSkipped || 'bottom';\r\n } else {\r\n // horizontal bar\r\n left = vm.base;\r\n right = vm.x;\r\n top = vm.y - vm.height / 2;\r\n bottom = vm.y + vm.height / 2;\r\n signX = right > left ? 1 : -1;\r\n signY = 1;\r\n borderSkipped = vm.borderSkipped || 'left';\r\n }\r\n\r\n // Canvas doesn't allow us to stroke inside the width so we can\r\n // adjust the sizes to fit if we're setting a stroke on the line\r\n if (borderWidth) {\r\n // borderWidth shold be less than bar width and bar height.\r\n const barSize = Math.min(Math.abs(left - right), Math.abs(top - bottom));\r\n borderWidth = borderWidth > barSize ? barSize : borderWidth;\r\n const halfStroke = borderWidth / 2;\r\n // Adjust borderWidth when bar top position is near vm.base(zero).\r\n const borderLeft =\r\n left + (borderSkipped !== 'left' ? halfStroke * signX : 0);\r\n const borderRight =\r\n right + (borderSkipped !== 'right' ? -halfStroke * signX : 0);\r\n const borderTop = top + (borderSkipped !== 'top' ? halfStroke * signY : 0);\r\n const borderBottom =\r\n bottom + (borderSkipped !== 'bottom' ? -halfStroke * signY : 0);\r\n // not become a vertical line?\r\n if (borderLeft !== borderRight) {\r\n top = borderTop;\r\n bottom = borderBottom;\r\n }\r\n // not become a horizontal line?\r\n if (borderTop !== borderBottom) {\r\n left = borderLeft;\r\n right = borderRight;\r\n }\r\n }\r\n\r\n ctx.beginPath();\r\n ctx.fillStyle = vm.backgroundColor;\r\n ctx.strokeStyle = vm.borderColor;\r\n ctx.lineWidth = borderWidth;\r\n\r\n // Corner points, from bottom-left to bottom-right clockwise\r\n // | 1 2 |\r\n // | 0 3 |\r\n const corners = [[left, bottom], [left, top], [right, top], [right, bottom]];\r\n\r\n // Find first (starting) corner with fallback to 'bottom'\r\n const borders = ['bottom', 'left', 'top', 'right'];\r\n let startCorner = borders.indexOf(borderSkipped, 0);\r\n if (startCorner === -1) {\r\n startCorner = 0;\r\n }\r\n\r\n function cornerAt(index) {\r\n return corners[(startCorner + index) % 4];\r\n }\r\n\r\n // Draw rectangle from 'startCorner'\r\n let corner = cornerAt(0);\r\n ctx.moveTo(corner[0], corner[1]);\r\n\r\n for (let i = 1; i < 4; i += 1) {\r\n corner = cornerAt(i);\r\n let nextCornerId = i + 1;\r\n if (nextCornerId === 4) {\r\n nextCornerId = 0;\r\n }\r\n\r\n const width = corners[2][0] - corners[1][0];\r\n const height = corners[0][1] - corners[1][1];\r\n const x = corners[1][0];\r\n const y = corners[1][1];\r\n\r\n radius = cornerRadius;\r\n // Fix radius being too large\r\n if (radius > Math.abs(height) / 2) {\r\n radius = Math.floor(Math.abs(height) / 2);\r\n }\r\n if (radius > Math.abs(width) / 2) {\r\n radius = Math.floor(Math.abs(width) / 2);\r\n }\r\n\r\n if (height < 0) {\r\n // Negative values in a standard bar chart\r\n const xTl = x;\r\n const xTr = x + width;\r\n const yTl = y + height;\r\n const yTr = y + height;\r\n\r\n const xBl = x;\r\n const xBr = x + width;\r\n const yBl = y;\r\n const yBr = y;\r\n\r\n // Draw\r\n ctx.moveTo(xBl + radius, yBl);\r\n ctx.lineTo(xBr - radius, yBr);\r\n ctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\r\n ctx.lineTo(xTr, yTr + radius);\r\n ctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\r\n ctx.lineTo(xTl + radius, yTl);\r\n ctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\r\n ctx.lineTo(xBl, yBl - radius);\r\n ctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\r\n } else if (width < 0) {\r\n // Negative values in a horizontal bar chart\r\n const xTl = x + width;\r\n const xTr = x;\r\n const yTl = y;\r\n const yTr = y;\r\n\r\n const xBl = x + width;\r\n const xBr = x;\r\n const yBl = y + height;\r\n const yBr = y + height;\r\n\r\n // Draw\r\n ctx.moveTo(xBl + radius, yBl);\r\n ctx.lineTo(xBr - radius, yBr);\r\n ctx.quadraticCurveTo(xBr, yBr, xBr, yBr - radius);\r\n ctx.lineTo(xTr, yTr + radius);\r\n ctx.quadraticCurveTo(xTr, yTr, xTr - radius, yTr);\r\n ctx.lineTo(xTl + radius, yTl);\r\n ctx.quadraticCurveTo(xTl, yTl, xTl, yTl + radius);\r\n ctx.lineTo(xBl, yBl - radius);\r\n ctx.quadraticCurveTo(xBl, yBl, xBl + radius, yBl);\r\n } else {\r\n // Positive Value\r\n ctx.moveTo(x + radius, y);\r\n ctx.lineTo(x + width - radius, y);\r\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\r\n ctx.lineTo(x + width, y + height - radius);\r\n ctx.quadraticCurveTo(\r\n x + width,\r\n y + height,\r\n x + width - radius,\r\n y + height\r\n );\r\n ctx.lineTo(x + radius, y + height);\r\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\r\n ctx.lineTo(x, y + radius);\r\n ctx.quadraticCurveTo(x, y, x + radius, y);\r\n }\r\n }\r\n\r\n ctx.fill();\r\n if (borderWidth) {\r\n ctx.stroke();\r\n }\r\n}\r\n\r\nexport default {\r\n draw\r\n};\r\n","import { colors } from '@material-ui/core';\r\n\r\nconst white = '#FFFFFF';\r\nconst black = '#000000';\r\n\r\nexport default {\r\n black,\r\n white,\r\n primary: {\r\n contrastText: white,\r\n dark: colors.indigo[900],\r\n main: colors.indigo[500],\r\n light: colors.indigo[100]\r\n },\r\n secondary: {\r\n contrastText: white,\r\n dark: colors.blue[900],\r\n main: colors.blue['A400'],\r\n light: colors.blue['A400']\r\n },\r\n success: {\r\n contrastText: white,\r\n dark: colors.green[900],\r\n main: colors.green[600],\r\n light: colors.green[400]\r\n },\r\n info: {\r\n contrastText: white,\r\n dark: colors.blue[900],\r\n main: colors.blue[600],\r\n light: colors.blue[400]\r\n },\r\n warning: {\r\n contrastText: white,\r\n dark: colors.orange[900],\r\n main: colors.orange[600],\r\n light: colors.orange[400]\r\n },\r\n error: {\r\n contrastText: white,\r\n dark: colors.red[900],\r\n main: colors.red[600],\r\n light: colors.red[400]\r\n },\r\n text: {\r\n primary: colors.blueGrey[900],\r\n secondary: colors.blueGrey[600],\r\n link: colors.blue[600]\r\n },\r\n background: {\r\n default: '#F4F6F8',\r\n paper: white\r\n },\r\n icon: colors.blueGrey[600],\r\n divider: colors.grey[200]\r\n};\r\n","import palette from './palette';\r\n\r\nexport default {\r\n h1: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n fontSize: '35px',\r\n letterSpacing: '-0.24px',\r\n lineHeight: '40px'\r\n },\r\n h2: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n fontSize: '29px',\r\n letterSpacing: '-0.24px',\r\n lineHeight: '32px'\r\n },\r\n h3: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n fontSize: '24px',\r\n letterSpacing: '-0.06px',\r\n lineHeight: '28px'\r\n },\r\n h4: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n fontSize: '20px',\r\n letterSpacing: '-0.06px',\r\n lineHeight: '24px'\r\n },\r\n h5: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n fontSize: '16px',\r\n letterSpacing: '-0.05px',\r\n lineHeight: '20px'\r\n },\r\n h6: {\r\n color: palette.text.primary,\r\n fontWeight: 500,\r\n fontSize: '14px',\r\n letterSpacing: '-0.05px',\r\n lineHeight: '20px'\r\n },\r\n subtitle1: {\r\n color: palette.text.primary,\r\n fontSize: '16px',\r\n letterSpacing: '-0.05px',\r\n lineHeight: '25px'\r\n },\r\n subtitle2: {\r\n color: palette.text.secondary,\r\n fontWeight: 400,\r\n fontSize: '14px',\r\n letterSpacing: '-0.05px',\r\n lineHeight: '21px'\r\n },\r\n body1: {\r\n color: palette.text.primary,\r\n fontSize: '14px',\r\n letterSpacing: '-0.05px',\r\n lineHeight: '21px'\r\n },\r\n body2: {\r\n color: palette.text.secondary,\r\n fontSize: '12px',\r\n letterSpacing: '-0.04px',\r\n lineHeight: '18px'\r\n },\r\n button: {\r\n color: palette.text.primary,\r\n fontSize: '14px'\r\n },\r\n caption: {\r\n color: palette.text.secondary,\r\n fontSize: '11px',\r\n letterSpacing: '0.33px',\r\n lineHeight: '13px'\r\n },\r\n overline: {\r\n color: palette.text.secondary,\r\n fontSize: '11px',\r\n fontWeight: 500,\r\n letterSpacing: '0.33px',\r\n lineHeight: '13px',\r\n textTransform: 'uppercase'\r\n }\r\n};\r\n","import MuiButton from './MuiButton';\r\nimport MuiIconButton from './MuiIconButton';\r\nimport MuiPaper from './MuiPaper';\r\nimport MuiTableCell from './MuiTableCell';\r\nimport MuiTableHead from './MuiTableHead';\r\nimport MuiTypography from './MuiTypography';\r\n\r\nexport default {\r\n MuiButton,\r\n MuiIconButton,\r\n MuiPaper,\r\n MuiTableCell,\r\n MuiTableHead,\r\n MuiTypography\r\n};\r\n","export default {\r\n contained: {\r\n boxShadow:\r\n '0 1px 1px 0 rgba(0,0,0,0.14), 0 2px 1px -1px rgba(0,0,0,0.12), 0 1px 3px 0 rgba(0,0,0,0.20)',\r\n backgroundColor: '#FFFFFF'\r\n }\r\n};\r\n","import palette from '../palette';\r\n\r\nexport default {\r\n root: {\r\n color: palette.icon,\r\n '&:hover': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.03)'\r\n }\r\n }\r\n};\r\n","export default {\r\n elevation1: {\r\n boxShadow: '0 0 0 1px rgba(63,63,68,0.05), 0 1px 3px 0 rgba(63,63,68,0.15)'\r\n }\r\n};\r\n","import palette from '../palette';\r\nimport typography from '../typography';\r\n\r\nexport default {\r\n root: {\r\n ...typography.body1,\r\n borderBottom: `1px solid ${palette.divider}`\r\n }\r\n};\r\n","import { colors } from '@material-ui/core';\r\n\r\nexport default {\r\n root: {\r\n backgroundColor: colors.grey[50]\r\n }\r\n};\r\n","export default {\r\n gutterBottom: {\r\n marginBottom: 8\r\n }\r\n};\r\n","import { createMuiTheme } from '@material-ui/core';\r\n\r\nimport palette from './palette';\r\nimport typography from './typography';\r\nimport overrides from './overrides';\r\n\r\nconst theme = createMuiTheme({\r\n palette,\r\n typography,\r\n overrides,\r\n zIndex: {\r\n appBar: 1200,\r\n drawer: 1100\r\n }\r\n});\r\n\r\nexport default theme;\r\n","const checked = (value, options) => {\r\n if (value !== true) {\r\n return options.message || 'must be checked';\r\n }\r\n};\r\n\r\nexport default {\r\n checked\r\n};\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Paper, Input } from '@material-ui/core';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n borderRadius: '4px',\r\n alignItems: 'center',\r\n padding: theme.spacing(1),\r\n display: 'flex',\r\n flexBasis: 420\r\n },\r\n icon: {\r\n marginRight: theme.spacing(1),\r\n color: theme.palette.text.secondary\r\n },\r\n input: {\r\n flexGrow: 1,\r\n fontSize: '14px',\r\n lineHeight: '16px',\r\n letterSpacing: '-0.05px'\r\n }\r\n}));\r\n\r\nconst SearchInput = props => {\r\n const { className, onChange, style, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nSearchInput.propTypes = {\r\n className: PropTypes.string,\r\n onChange: PropTypes.func,\r\n style: PropTypes.object\r\n};\r\n\r\nexport default SearchInput;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@material-ui/styles';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n display: 'inline-block',\r\n borderRadius: '50%',\r\n flexGrow: 0,\r\n flexShrink: 0\r\n },\r\n sm: {\r\n height: theme.spacing(1),\r\n width: theme.spacing(1)\r\n },\r\n md: {\r\n height: theme.spacing(2),\r\n width: theme.spacing(2)\r\n },\r\n lg: {\r\n height: theme.spacing(3),\r\n width: theme.spacing(3)\r\n },\r\n neutral: {\r\n backgroundColor: theme.palette.neutral\r\n },\r\n primary: {\r\n backgroundColor: theme.palette.primary.main\r\n },\r\n info: {\r\n backgroundColor: theme.palette.info.main\r\n },\r\n warning: {\r\n backgroundColor: theme.palette.warning.main\r\n },\r\n danger: {\r\n backgroundColor: theme.palette.error.main\r\n },\r\n success: {\r\n backgroundColor: theme.palette.success.main\r\n }\r\n}));\r\n\r\nconst StatusBullet = props => {\r\n const { className, size, color, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nStatusBullet.propTypes = {\r\n className: PropTypes.string,\r\n color: PropTypes.oneOf([\r\n 'neutral',\r\n 'primary',\r\n 'info',\r\n 'success',\r\n 'warning',\r\n 'danger'\r\n ]),\r\n size: PropTypes.oneOf(['sm', 'md', 'lg'])\r\n};\r\n\r\nStatusBullet.defaultProps = {\r\n size: 'md',\r\n color: 'default'\r\n};\r\n\r\nexport default StatusBullet;\r\n","import React from 'react';\r\nimport { Route } from 'react-router-dom';\r\nimport PropTypes from 'prop-types';\r\n\r\nconst RouteWithLayout = props => {\r\n const { layout: Layout, component: Component, ...rest } = props;\r\n\r\n return (\r\n (\r\n \r\n \r\n \r\n )}\r\n />\r\n );\r\n};\r\n\r\nRouteWithLayout.propTypes = {\r\n component: PropTypes.any.isRequired,\r\n layout: PropTypes.any.isRequired,\r\n path: PropTypes.string\r\n};\r\n\r\nexport default RouteWithLayout;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles } from '@material-ui/styles';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(4)\r\n }\r\n}));\r\n\r\nconst Footer = props => {\r\n const { className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n {/* \r\n ©{' '}\r\n \r\n Devias IO\r\n \r\n . 2019\r\n \r\n \r\n Created with love for the environment. By designers and developers who\r\n love to work together in offices!\r\n */}\r\n
\r\n );\r\n};\r\n\r\nFooter.propTypes = {\r\n className: PropTypes.string\r\n};\r\n\r\nexport default Footer;\r\n","const localhost = process.env.REACT_APP_API;\r\nconst localhostApiCD3M = process.env.REACT_APP_API_CD_3M;\r\nconst url_prefix = '';\r\n\r\nconst CONST_DATA = {\r\n add_ticket: localhost + \"add_ticket\",\r\n get_ticket_id: localhost + \"get_ticket/\", //+id\r\n get_ticket_user: localhost + \"get_ticket_user/\",\r\n file_upload: localhost + \"file/upload\",\r\n get_image: localhost + \"get_image/\",\r\n check_selfie: localhost + \"v2.0/cmt_trueid_api/ekyc/cs/selfie/check\",\r\n // check_selfie: localhost + \"cmt_trueid_api/ekyc/cs/selfie/check\",\r\n create_order_pay_cs_admin: localhostApiCD3M + \"transaction/cms/deposit\",\r\n // get_image: \"https://cs.finhay.com.vn/api_finhaycs/\" + 'get_image/',\r\n add_comment_image: localhost + \"add_comment_image\",\r\n end_point_login: localhost + \"login_admin\",\r\n search_api: localhost + \"search_api\",\r\n doi_soat_ekyc: localhost + \"ketoan/doisoat/ekyc\",\r\n localStorage_login: \"localStorage_login\",\r\n // admin router\r\n router_sign_in: url_prefix + \"/sign-in\",\r\n router_can_xu_ly: url_prefix + \"/list_can_xu_ly\",\r\n router_dang_giai_quyet: url_prefix + \"/list_dang_giai_quyet\",\r\n router_ghi_nhan: url_prefix + \"/list_ghi_nhan\",\r\n router_hoan_thanh: url_prefix + \"/list_hoan_thanh\",\r\n router_bo_qua: url_prefix + \"/list_bo_qua\",\r\n\r\n router_not_found: url_prefix + \"/not-found\",\r\n router_all: url_prefix + \"/list_all\",\r\n router_for_me: url_prefix + \"/list_for_me\",\r\n router_admin_0: url_prefix + \"/admin0\",\r\n router_admin: url_prefix + \"/admin\",\r\n router_detail: url_prefix + \"/detail\",\r\n router_ketoan: url_prefix + \"/ketoan\",\r\n router_ketoan_hoan_tra: url_prefix + \"/ketoan_hoan_tra\",\r\n\r\n router_viec_cua_toi: url_prefix + \"/viec_cua_toi\",\r\n router_doi_soat_ekyc: url_prefix + \"/doi_soat_ekyc\",\r\n router_new_comment: url_prefix + \"/new_comment\",\r\n router_cmt: url_prefix + \"/cmt\",\r\n router_tool: url_prefix + \"/tool\",\r\n router_list_user: url_prefix + \"/danh_sach_nguoi_dung\",\r\n\r\n // url back end admin\r\n get_ticket_admin: localhost + \"get_ticket_admin\",\r\n get_ticket_admin_ticket_id: localhost + \"get_ticket_admin_ticket_id\",\r\n get_ticket_by_admin_id: localhost + \"get_ticket_by_admin_id\",\r\n\r\n add_comment: localhost + \"add_comment\",\r\n edit_comment: localhost + \"admin/edit_ticket/edit_comment\",\r\n edit_note: localhost + \"admin/edit_ticket/edit_note\",\r\n edit_admin_assign: localhost + \"admin/edit_ticket/edit_admin_assign\",\r\n edit_transaction_id: localhost + \"admin/edit_ticket/edit_transaction_id\",\r\n confirm_read_comment: localhost + \"admin/edit_ticket/confirm_read_comment\",\r\n them_ly_do_bo_qua: localhost + \"admin/edit_ticket/them_ly_do_bo_qua\",\r\n edit_quy_trinh: localhost + \"admin/edit_ticket/edit_quy_trinh\",\r\n add_truy_thu: localhost + \"admin/edit_ticket/add_truy_thu\",\r\n comment_noi_bo: localhost + \"admin/edit_ticket/comment_noi_bo\",\r\n tao_ho_don: localhost + \"admin/edit_ticket/tao_ho_don\",\r\n\r\n change_status: localhost + \"change_status\",\r\n mo_lai_don: localhost + \"mo_lai_don\",\r\n get_admin_by_id: localhost + \"get_admin_by_id/\",\r\n\r\n edit_user_admin_password: localhost + \"edit_user_admin_password\",\r\n edit_user_admin_full_name: localhost + \"edit_user_admin_full_name\",\r\n get_all_admin: localhost + \"get_all_admin\",\r\n get_admin_giao_viec: localhost + \"get_admin_giao_viec\",\r\n\r\n creat_user_admin: localhost + \"creat_user_admin\",\r\n change_status_user: localhost + \"admin/\",\r\n\r\n ketoan_get_all_item: localhost + \"ketoan/get_all_item\",\r\n ketoan_add_item: localhost + \"ketoan/add_item\",\r\n ketoan_search_item: localhost + \"ketoan/search_item\",\r\n ketoan_ketoan_search_item: localhost + \"ketoan/ketoan_search_item\",\r\n ketoan_delete_item: localhost + \"ketoan/delete_item\",\r\n ketoan_edit_note: localhost + \"ketoan/edit_note\",\r\n ketoan_cs_confirm: localhost + \"ketoan/cs_confirm\",\r\n ketoan_get_by_id: localhost + \"ketoan/get_by_id\",\r\n ketoan_cs_undo_confirm: localhost + \"ketoan/cs_undo_confirm\",\r\n ketoan_thong_ke: localhost + \"ketoan/thong_ke\",\r\n cs_match_tk_ngan_hang: localhost + \"ketoan_hoan_tra/cs_match\",\r\n cs_un_match_tk_ngan_hang: localhost + \"ketoan_hoan_tra/cs_undo_match\",\r\n\r\n ketoan_hoan_tra_add_item: localhost + \"ketoan_hoan_tra/add_item\",\r\n ketoan_hoan_tra_get_all_item: localhost + \"ketoan_hoan_tra/get_all_item\",\r\n ketoan_hoan_tra_search_item: localhost + \"ketoan_hoan_tra/search_item\",\r\n ketoan_hoan_tra_ketoan_search_item:\r\n localhost + \"ketoan_hoan_tra/ketoan_search_item\",\r\n ketoan_hoan_tra_export_file: localhost + \"hoan_tra/chuyen_tien\",\r\n ketoan_hoan_tra_delete_item: localhost + \"ketoan_hoan_tra/delete_item\",\r\n ketoan_hoan_tra_edit_note: localhost + \"ketoan_hoan_tra/edit_note\",\r\n ketoan_hoan_tra_get_by_id: localhost + \"ketoan_hoan_tra/get_by_id\",\r\n ketoan_hoan_tra_change_status: localhost + \"ketoan_hoan_tra/change_status\",\r\n ketoan_hoan_tra_cs_match: localhost + \"ketoan_hoan_tra/cs_match\",\r\n ketoan_hoan_tra_cs_undo_match: localhost + \"ketoan_hoan_tra/cs_undo_match\",\r\n update_bank_info: localhost + \"bank\",\r\n ketoan_khop_chuyen_tien_dat_lenh_dau_tu:\r\n localhost + \"ketoan/khop_chuyen_tien/dat_lenh_dau_tu\",\r\n\r\n ketoan_khop_chuyen_tien_dat_lenh_tiet_kiem:\r\n localhost + \"ketoan/khop_chuyen_tien/dat_lenh_tiet_kiem\",\r\n\r\n ketoan_khop_chuyen_tien_dat_lenh_cuu_long:\r\n localhost + \"ketoan/khop_chuyen_tien/dat_lenh_cuu_long\",\r\n\r\n lay_list_pending: localhost + \"ketoan/khop_chuyen_tien/pending\",\r\n ke_toan_khop_lenh: localhost + \"ketoan/khop_chuyen_tien/khop_lenh\",\r\n\r\n admin_get_ticket_trung_lap: localhost + \"admin/get_ticket_trung_lap\",\r\n get_ticket_new_comment: localhost + \"get_ticket_new_comment\",\r\n\r\n get_goal_id: localhost + \"add_ticket/get_goal_id/\",\r\n\r\n ocr_get_ocr: localhost + \"ocr/get_ocr/\", // + image_name\r\n\r\n //cmt\r\n cmt_get_list: localhost + \"cmt_trueid_api/get_list\",\r\n cmt_get_image: localhost + \"v2.0/cmt_trueid_api/get_image\",\r\n // cmt_get_image: localhost + \"cmt_trueid_api/get_image\",\r\n cmt_get_detail_user_id: localhost + \"v2.0/cmt_trueid_api/get_detail_user_id\",\r\n // cmt_get_detail_user_id: localhost + \"cmt_trueid_api/get_detail_user_id\",\r\n cmt_get_detail_user_id_v2:\r\n localhost + \"cmt_trueid_api/get_detail_user_id\",\r\n accept_trueid_v2: localhost + \"v2.0/cmt_trueid_api/ekyc/cs_accept\",\r\n\r\n ekyc_api_cs_accept: localhost + \"ekyc_api/cs_accept\",\r\n ekyc_api_cs_reject: localhost + \"ekyc_api/cs_reject\",\r\n cmt_trueid_api_cs_accept: localhost + \"cmt_trueid_api/cs_accept\",\r\n cmt_trueid_api_cs_reject: localhost + \"cmt_trueid_api/cs_reject\",\r\n\r\n // accept reject passport cmt\r\n cmt_passport_api_cs_accept: localhost + \"passport/_accept\",\r\n cmt_passport_api_cs_reject: localhost + \"passport/_reject\",\r\n\r\n // accept reject re-ekyc\r\n re_ekyc_cs_accept: localhost + \"re_ekyc_api/cs_accept\",\r\n re_ekyc_cs_reject: localhost + \"re_ekyc_api/cs_reject\",\r\n\r\n ROLE_KE_TOAN: 50,\r\n ROLE_KE_TOAN_KHOP_LENH: 55,\r\n ROLE_CS: 100,\r\n ROLE_ADMIN: 0,\r\n ROLE_TEST: 1000,\r\n ROLE_KYC: 10000,\r\n ROLE_TU_VAN: 70,\r\n\r\n type_of_ticket: [\r\n \"ALL\",\r\n \"CHUYỂN TIỀN\",\r\n \"SỬA THÔNG TIN TÀI KHOẢN NGÂN HÀNG\",\r\n \"SỬA THÔNG TIN\",\r\n \"ĐỐI SOÁT\",\r\n \"SÁP NHẬP\",\r\n \"BẢO HIỂM\",\r\n \"HOÀN TIỀN\",\r\n \"SỬA CMTND CCCD\",\r\n ],\r\n\r\n type_of_rank: [\r\n \"ALL\",\r\n \"Vàng\",\r\n \"Bạc\",\r\n \"Đồng\",\r\n \"Mới\",\r\n ],\r\n\r\n type_of_status: [\r\n { status_id: 0, label: \"ALL\" },\r\n { status_id: 10, label: \"Nhận đơn\" },\r\n { status_id: 100, label: \"Đang giải quyết\" },\r\n { status_id: 200, label: \"Bỏ qua\" },\r\n { status_id: 300, label: \"Chờ bổ sung thông tin\" },\r\n { status_id: 350, label: \"Điều chỉnh đơn\" },\r\n { status_id: 400, label: \"Thành công\" },\r\n ],\r\n\r\n loai_dau_tu: \"dau_tu\",\r\n loai_tiet_kiem: \"tiet_kiem\",\r\n loai_cuu_long: \"cuu_long\",\r\n loai_cd_3_thang: \"cd_3_thang\",\r\n loai_cd_12_thang:'cd_12_thang',\r\n fake_cd_3M: [\r\n {\r\n bonus_rate: 0.0,\r\n created_at: \"2021-01-20 18:03:15\",\r\n due_date: null,\r\n fee: 0,\r\n id: 9789,\r\n interest_rate: 5.0,\r\n original_id: null,\r\n original_paid_at: null,\r\n paid_amount: 0,\r\n paid_at: null,\r\n partner_code: \"MOMO\",\r\n payment_type: \"BANK_TRANSFER\",\r\n place_amount: 2000000,\r\n product_id: 11,\r\n request_id: null,\r\n server_time: \"2021-01-29 14:45:36\",\r\n source: \"iOS\",\r\n status: \"OPEN\",\r\n temporary_interest: null,\r\n transaction_ref: null,\r\n transaction_type: \"DEPOSIT\",\r\n updated_at: \"2021-01-20 18:03:15\",\r\n user_id: 1153,\r\n },\r\n {\r\n bonus_rate: 0.0,\r\n created_at: \"2021-01-20 18:03:30\",\r\n due_date: null,\r\n fee: 0,\r\n id: 9790,\r\n interest_rate: 5.0,\r\n original_id: null,\r\n original_paid_at: null,\r\n paid_amount: 0,\r\n paid_at: null,\r\n partner_code: \"FINHAY\",\r\n payment_type: \"BANK_TRANSFER\",\r\n place_amount: 3000000,\r\n product_id: 11,\r\n request_id: null,\r\n server_time: \"2021-01-29 14:45:36\",\r\n source: null,\r\n status: \"OPEN\",\r\n temporary_interest: null,\r\n transaction_ref: null,\r\n transaction_type: \"DEPOSIT\",\r\n updated_at: \"2021-01-21 13:48:35\",\r\n user_id: 1153,\r\n },\r\n {\r\n bonus_rate: 0.0,\r\n created_at: \"2021-01-20 18:04:40\",\r\n due_date: null,\r\n fee: 0,\r\n id: 9791,\r\n interest_rate: 5.0,\r\n original_id: null,\r\n original_paid_at: null,\r\n paid_amount: 0,\r\n paid_at: null,\r\n partner_code: \"FINHAY\",\r\n payment_type: \"BANK_TRANSFER\",\r\n place_amount: 10000000,\r\n product_id: 11,\r\n request_id: null,\r\n server_time: \"2021-01-29 14:45:36\",\r\n source: \"iOS\",\r\n status: \"OPEN\",\r\n temporary_interest: null,\r\n transaction_ref: \"abc_ref\",\r\n transaction_type: \"DEPOSIT\",\r\n updated_at: \"2021-01-20 18:04:40\",\r\n user_id: 1153,\r\n },\r\n {\r\n bonus_rate: 0.0,\r\n created_at: \"2021-01-20 18:05:40\",\r\n due_date: null,\r\n fee: 0,\r\n id: 9792,\r\n interest_rate: 5.0,\r\n original_id: null,\r\n original_paid_at: null,\r\n paid_amount: 0,\r\n paid_at: null,\r\n partner_code: \"MOMO\",\r\n payment_type: \"BANK_TRANSFER\",\r\n place_amount: 2000000,\r\n product_id: 11,\r\n request_id: null,\r\n server_time: \"2021-01-29 14:45:36\",\r\n source: \"iOS\",\r\n status: \"OPEN\",\r\n temporary_interest: null,\r\n transaction_ref: null,\r\n transaction_type: \"DEPOSIT\",\r\n updated_at: \"2021-01-20 18:05:40\",\r\n user_id: 1153,\r\n },\r\n {\r\n bonus_rate: 0.0,\r\n created_at: \"2021-01-20 18:17:16\",\r\n due_date: null,\r\n fee: 0,\r\n id: 9795,\r\n interest_rate: 5.0,\r\n original_id: null,\r\n original_paid_at: null,\r\n paid_amount: 0,\r\n paid_at: null,\r\n partner_code: \"MOMO\",\r\n payment_type: \"BANK_TRANSFER\",\r\n place_amount: 2000000,\r\n product_id: 11,\r\n request_id: null,\r\n server_time: \"2021-01-29 14:45:36\",\r\n source: \"iOS\",\r\n status: \"OPEN\",\r\n temporary_interest: null,\r\n transaction_ref: null,\r\n transaction_type: \"DEPOSIT\",\r\n updated_at: \"2021-01-20 18:17:16\",\r\n user_id: 1153,\r\n },\r\n {\r\n bonus_rate: 0.0,\r\n created_at: \"2021-01-20 18:18:19\",\r\n due_date: null,\r\n fee: 0,\r\n id: 9796,\r\n interest_rate: 5.0,\r\n original_id: null,\r\n original_paid_at: null,\r\n paid_amount: 0,\r\n paid_at: null,\r\n partner_code: \"FINHAY\",\r\n payment_type: \"BANK_TRANSFER\",\r\n place_amount: 5000000,\r\n product_id: 11,\r\n request_id: null,\r\n server_time: \"2021-01-29 14:45:36\",\r\n source: \"Android\",\r\n status: \"OPEN\",\r\n temporary_interest: null,\r\n transaction_ref: null,\r\n transaction_type: \"DEPOSIT\",\r\n updated_at: \"2021-01-20 18:18:19\",\r\n user_id: 1153,\r\n },\r\n {\r\n bonus_rate: 0.0,\r\n created_at: \"2021-01-21 09:21:06\",\r\n due_date: null,\r\n fee: 0,\r\n id: 9797,\r\n interest_rate: 5.0,\r\n original_id: null,\r\n original_paid_at: null,\r\n paid_amount: 0,\r\n paid_at: null,\r\n partner_code: \"FINHAY\",\r\n payment_type: \"BANK_TRANSFER\",\r\n place_amount: 2222000,\r\n product_id: 11,\r\n request_id: null,\r\n server_time: \"2021-01-29 14:45:36\",\r\n source: null,\r\n status: \"OPEN\",\r\n temporary_interest: null,\r\n transaction_ref: null,\r\n transaction_type: \"DEPOSIT\",\r\n updated_at: \"2021-01-21 13:48:35\",\r\n user_id: 1153,\r\n },\r\n {\r\n bonus_rate: 0.0,\r\n created_at: \"2021-01-21 11:01:32\",\r\n due_date: null,\r\n fee: 0,\r\n id: 9805,\r\n interest_rate: 6.0,\r\n original_id: null,\r\n original_paid_at: null,\r\n paid_amount: 0,\r\n paid_at: null,\r\n partner_code: \"FINHAY\",\r\n payment_type: \"BANK_TRANSFER\",\r\n place_amount: 10000000,\r\n product_id: 10,\r\n request_id: null,\r\n server_time: \"2021-01-29 14:45:36\",\r\n source: \"iOS\",\r\n status: \"OPEN\",\r\n temporary_interest: null,\r\n transaction_ref: \"abc_ref\",\r\n transaction_type: \"DEPOSIT\",\r\n updated_at: \"2021-01-21 11:01:32\",\r\n user_id: 1153,\r\n },\r\n {\r\n bonus_rate: 0.0,\r\n created_at: \"2021-01-21 14:58:12\",\r\n due_date: null,\r\n fee: 0,\r\n id: 9810,\r\n interest_rate: 6.0,\r\n original_id: null,\r\n original_paid_at: null,\r\n paid_amount: 0,\r\n paid_at: null,\r\n partner_code: \"FINHAY\",\r\n payment_type: \"BANK_TRANSFER\",\r\n place_amount: 5000000,\r\n product_id: 10,\r\n request_id: null,\r\n server_time: \"2021-01-29 14:45:36\",\r\n source: \"Android\",\r\n status: \"OPEN\",\r\n temporary_interest: null,\r\n transaction_ref: null,\r\n transaction_type: \"DEPOSIT\",\r\n updated_at: \"2021-01-21 14:58:12\",\r\n user_id: 1153,\r\n },\r\n {\r\n bonus_rate: 0.0,\r\n created_at: \"2021-01-21 15:03:48\",\r\n due_date: null,\r\n fee: 0,\r\n id: 9812,\r\n interest_rate: 6.0,\r\n original_id: null,\r\n original_paid_at: null,\r\n paid_amount: 0,\r\n paid_at: null,\r\n partner_code: \"MOMO\",\r\n payment_type: \"BANK_TRANSFER\",\r\n place_amount: 13000000,\r\n product_id: 10,\r\n request_id: null,\r\n server_time: \"2021-01-29 14:45:36\",\r\n source: \"iOS\",\r\n status: \"OPEN\",\r\n temporary_interest: null,\r\n transaction_ref: null,\r\n transaction_type: \"DEPOSIT\",\r\n updated_at: \"2021-01-21 15:03:48\",\r\n user_id: 1153,\r\n },\r\n {\r\n bonus_rate: 0.0,\r\n created_at: \"2021-01-21 18:12:33\",\r\n due_date: null,\r\n fee: 0,\r\n id: 9851,\r\n interest_rate: 6.0,\r\n original_id: null,\r\n original_paid_at: null,\r\n paid_amount: 0,\r\n paid_at: null,\r\n partner_code: null,\r\n payment_type: \"BANK_TRANSFER\",\r\n place_amount: 1000000,\r\n product_id: 10,\r\n request_id: null,\r\n server_time: \"2021-01-29 14:45:36\",\r\n source: null,\r\n status: \"OPEN\",\r\n temporary_interest: null,\r\n transaction_ref: null,\r\n transaction_type: \"DEPOSIT\",\r\n updated_at: \"2021-01-21 18:12:33\",\r\n user_id: 1153,\r\n },\r\n {\r\n bonus_rate: 0.0,\r\n created_at: \"2021-01-22 11:19:19\",\r\n due_date: null,\r\n fee: 0,\r\n id: 9897,\r\n interest_rate: 5.0,\r\n original_id: null,\r\n original_paid_at: null,\r\n paid_amount: 0,\r\n paid_at: null,\r\n partner_code: null,\r\n payment_type: \"BANK_TRANSFER\",\r\n place_amount: 2222222,\r\n product_id: 11,\r\n request_id: null,\r\n server_time: \"2021-01-29 14:45:36\",\r\n source: \"iOS\",\r\n status: \"OPEN\",\r\n temporary_interest: null,\r\n transaction_ref: null,\r\n transaction_type: \"DEPOSIT\",\r\n updated_at: \"2021-01-26 16:45:02\",\r\n user_id: 1153,\r\n },\r\n {\r\n bonus_rate: 0.0,\r\n created_at: \"2021-01-25 10:02:48\",\r\n due_date: null,\r\n fee: 0,\r\n id: 97622,\r\n interest_rate: 6.0,\r\n original_id: null,\r\n original_paid_at: null,\r\n paid_amount: 0,\r\n paid_at: null,\r\n partner_code: null,\r\n payment_type: \"SYSTEM\",\r\n place_amount: 9999999,\r\n product_id: 9,\r\n request_id: null,\r\n server_time: \"2021-01-29 14:45:36\",\r\n source: \"iOS\",\r\n status: \"OPEN\",\r\n temporary_interest: null,\r\n transaction_ref: null,\r\n transaction_type: \"DEPOSIT\",\r\n updated_at: \"2021-01-26 10:57:29\",\r\n user_id: 1153,\r\n },\r\n {\r\n bonus_rate: 0.0,\r\n created_at: \"2021-01-27 10:47:37\",\r\n due_date: null,\r\n fee: 0,\r\n id: 97668,\r\n interest_rate: 6.0,\r\n original_id: null,\r\n original_paid_at: null,\r\n paid_amount: 0,\r\n paid_at: null,\r\n partner_code: null,\r\n payment_type: \"SYSTEM\",\r\n place_amount: 1000000,\r\n product_id: 9,\r\n request_id: null,\r\n server_time: \"2021-01-29 14:45:36\",\r\n source: \"iOS\",\r\n status: \"OPEN\",\r\n temporary_interest: null,\r\n transaction_ref: null,\r\n transaction_type: \"DEPOSIT\",\r\n updated_at: \"2021-01-27 10:47:37\",\r\n user_id: 1153,\r\n },\r\n ],\r\n};\r\n\r\nexport default CONST_DATA;","import React, { Component } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles, withStyles } from '@material-ui/styles';\r\nimport { Avatar, Typography, CircularProgress } from '@material-ui/core';\r\nimport CONST_DATA from 'constant';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n minHeight: 'fit-content'\r\n },\r\n avatar: {\r\n width: 60,\r\n height: 60\r\n },\r\n name: {\r\n marginTop: theme.spacing(1)\r\n }\r\n});\r\n\r\nclass Profile extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n data_success: false\r\n };\r\n }\r\n\r\n check_login = () => {\r\n const login_data = localStorage.getItem(CONST_DATA.localStorage_login);\r\n if (login_data != null) {\r\n this.setState({\r\n thong_tin_hien_tai: JSON.parse(login_data),\r\n data_success: true\r\n });\r\n }\r\n };\r\n\r\n componentDidMount() {\r\n this.check_login();\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n if (this.state.data_success) {\r\n return (\r\n
\r\n \r\n Tên: {this.state.thong_tin_hien_tai.full_name}\r\n \r\n \r\n {this.state.thong_tin_hien_tai.user_name}\r\n \r\n
\r\n );\r\n } else {\r\n return ;\r\n }\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(Profile);\r\n","/* eslint-disable react/no-multi-comp */\r\n/* eslint-disable react/display-name */\r\nimport React, { forwardRef } from 'react';\r\nimport { NavLink as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { List, ListItem, Button, colors } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {},\r\n item: {\r\n display: 'flex',\r\n paddingTop: 0,\r\n paddingBottom: 0\r\n },\r\n button: {\r\n color: colors.blueGrey[800],\r\n padding: '10px 8px',\r\n justifyContent: 'flex-start',\r\n textTransform: 'none',\r\n letterSpacing: 0,\r\n width: '100%',\r\n fontWeight: theme.typography.fontWeightMedium\r\n },\r\n icon: {\r\n color: theme.palette.icon,\r\n width: 24,\r\n height: 24,\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginRight: theme.spacing(1)\r\n },\r\n active: {\r\n color: theme.palette.primary.main,\r\n fontWeight: theme.typography.fontWeightMedium,\r\n '& $icon': {\r\n color: theme.palette.primary.main\r\n }\r\n }\r\n}));\r\n\r\nconst CustomRouterLink = forwardRef((props, ref) => (\r\n \r\n \r\n \r\n));\r\n\r\nconst SidebarNav = props => {\r\n const { pages, className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n {pages.map(page => (\r\n \r\n \r\n
{page.icon}
\r\n {page.title}\r\n \r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nSidebarNav.propTypes = {\r\n className: PropTypes.string,\r\n pages: PropTypes.array.isRequired\r\n};\r\n\r\nexport default SidebarNav;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { colors } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n backgroundColor: colors.grey[50]\r\n },\r\n media: {\r\n paddingTop: theme.spacing(2),\r\n height: 80,\r\n textAlign: 'center',\r\n '& > img': {\r\n height: '100%',\r\n width: 'auto'\r\n }\r\n },\r\n content: {\r\n padding: theme.spacing(1, 2)\r\n },\r\n actions: {\r\n padding: theme.spacing(1, 2),\r\n display: 'flex',\r\n justifyContent: 'center'\r\n }\r\n}));\r\n\r\nconst UpgradePlan = props => {\r\n const { className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n {/*
\r\n \r\n
*/}\r\n {/*
\r\n \r\n Upgrade to PRO\r\n \r\n \r\n Upgrade to Devias Kit PRO and get even more components\r\n \r\n
\r\n
\r\n \r\n Upgrade\r\n \r\n
*/}\r\n
\r\n );\r\n};\r\n\r\nUpgradePlan.propTypes = {\r\n className: PropTypes.string\r\n};\r\n\r\nexport default UpgradePlan;\r\n","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Divider, Drawer } from '@material-ui/core';\r\nimport LockIcon from '@material-ui/icons/Lock';\r\nimport DnsIcon from '@material-ui/icons/Dns';\r\nimport SettingsIcon from '@material-ui/icons/Settings';\r\nimport MonetizationOnIcon from '@material-ui/icons/MonetizationOn';\r\nimport CommentIcon from '@material-ui/icons/Comment';\r\nimport AccountBoxIcon from '@material-ui/icons/AccountBox';\r\n\r\nimport { Profile, SidebarNav, UpgradePlan } from './components';\r\nimport CONST_DATA from 'constant';\r\nimport { SupervisorAccount } from '@material-ui/icons';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n drawer: {\r\n width: 240,\r\n [theme.breakpoints.up('lg')]: {\r\n marginTop: 64,\r\n height: 'calc(100% - 64px)'\r\n }\r\n },\r\n root: {\r\n backgroundColor: theme.palette.white,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n height: '100%',\r\n padding: theme.spacing(2)\r\n },\r\n divider: {\r\n margin: theme.spacing(2, 0)\r\n },\r\n nav: {\r\n marginBottom: theme.spacing(2)\r\n }\r\n}));\r\n\r\nconst check_login = () => {\r\n let login_data = localStorage.getItem(CONST_DATA.localStorage_login);\r\n if (login_data == null) {\r\n return 1000;\r\n } else {\r\n login_data = JSON.parse(login_data);\r\n return login_data.role;\r\n }\r\n};\r\n\r\nconst new_comment = {\r\n title: 'Comment mới',\r\n href: CONST_DATA.router_new_comment,\r\n icon: \r\n};\r\n\r\nconst cmt = {\r\n title: 'Chứng minh thư',\r\n href: CONST_DATA.router_cmt,\r\n icon: \r\n};\r\n\r\nconst viec_cua_toi = {\r\n title: 'Việc của tôi',\r\n href: CONST_DATA.router_viec_cua_toi,\r\n icon: \r\n};\r\n\r\nconst sua_thong_tin = {\r\n title: 'Sửa thông tin',\r\n href: CONST_DATA.router_admin,\r\n icon: \r\n};\r\nconst doi_soat_ekyc = {\r\n title: 'Đối soát eKYC',\r\n href: CONST_DATA.router_doi_soat_ekyc,\r\n icon: \r\n};\r\nconst dang_xuat = {\r\n title: 'Đăng xuất',\r\n href: CONST_DATA.router_sign_in,\r\n icon: \r\n};\r\n\r\nconst can_xu_ly = {\r\n title: 'Cần xử lý',\r\n href: CONST_DATA.router_can_xu_ly,\r\n icon: \r\n};\r\n\r\nconst toan_bo_don = {\r\n title: 'Toàn bộ đơn',\r\n href: CONST_DATA.router_all,\r\n icon: \r\n};\r\n\r\nconst ke_toan = {\r\n title: 'GD chuyển sai, trùng',\r\n href: CONST_DATA.router_ketoan,\r\n icon: \r\n};\r\n\r\nconst ke_toan_hoan_tra = {\r\n title: 'GD hoàn trả',\r\n href: CONST_DATA.router_ketoan_hoan_tra,\r\n icon: \r\n};\r\n\r\nconst cs_tool = {\r\n title: 'Công cụ',\r\n href: CONST_DATA.router_tool,\r\n icon: \r\n};\r\n\r\nconst list_user = {\r\n title: \"Danh sách người dùng\",\r\n href: CONST_DATA.router_list_user,\r\n icon: ,\r\n};\r\n\r\nconst Sidebar = props => {\r\n const role_admin = check_login();\r\n\r\n const { open, variant, onClose, className, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n let pages = [viec_cua_toi, sua_thong_tin, dang_xuat];\r\n\r\n if (role_admin == CONST_DATA.ROLE_CS) {\r\n //CS\r\n pages = [\r\n viec_cua_toi,\r\n can_xu_ly,\r\n toan_bo_don,\r\n cs_tool,\r\n new_comment,\r\n cmt,\r\n sua_thong_tin,\r\n dang_xuat,\r\n doi_soat_ekyc,\r\n ke_toan_hoan_tra,\r\n ];\r\n }\r\n\r\n if (role_admin == CONST_DATA.ROLE_KYC) {\r\n //KYC\r\n pages = [\r\n // cmt,\r\n sua_thong_tin,\r\n dang_xuat\r\n ];\r\n }\r\n\r\n if (role_admin == CONST_DATA.ROLE_TU_VAN) {\r\n //tu van vien\r\n pages = [viec_cua_toi, can_xu_ly, toan_bo_don, sua_thong_tin, dang_xuat];\r\n }\r\n\r\n if (role_admin == CONST_DATA.ROLE_KE_TOAN) {\r\n //ke toan\r\n pages = [\r\n viec_cua_toi,\r\n toan_bo_don,\r\n new_comment,\r\n ke_toan,\r\n ke_toan_hoan_tra,\r\n sua_thong_tin,\r\n dang_xuat,\r\n doi_soat_ekyc\r\n ];\r\n }\r\n\r\n if (role_admin == CONST_DATA.ROLE_KE_TOAN_KHOP_LENH) {\r\n //ke toan khop lenh\r\n pages = [\r\n viec_cua_toi,\r\n toan_bo_don,\r\n ke_toan,\r\n ke_toan_hoan_tra,\r\n new_comment,\r\n sua_thong_tin,\r\n dang_xuat\r\n ];\r\n }\r\n\r\n if (role_admin == CONST_DATA.ROLE_ADMIN) {\r\n //admin\r\n pages = [\r\n viec_cua_toi,\r\n can_xu_ly,\r\n toan_bo_don,\r\n ke_toan,\r\n ke_toan_hoan_tra,\r\n new_comment,\r\n cmt,\r\n cs_tool,\r\n sua_thong_tin,\r\n list_user,\r\n dang_xuat,\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\nSidebar.propTypes = {\r\n className: PropTypes.string,\r\n onClose: PropTypes.func,\r\n open: PropTypes.bool.isRequired,\r\n variant: PropTypes.string.isRequired\r\n};\r\n\r\nexport default Sidebar;","import React, { useState } from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport {\r\n AppBar,\r\n Toolbar,\r\n Hidden,\r\n IconButton,\r\n} from '@material-ui/core';\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n boxShadow: 1,\r\n backgroundColor: 'white'\r\n },\r\n flexGrow: {\r\n flexGrow: 1\r\n },\r\n signOutButton: {\r\n marginLeft: theme.spacing(1)\r\n },\r\n title: {\r\n color: 'white',\r\n fontSize: 25\r\n },\r\n logo: {\r\n maxHeight: '30px',\r\n marginLeft: '30px'\r\n }\r\n}));\r\n\r\nconst Topbar = props => {\r\n const { className, onSidebarOpen, ...rest } = props;\r\n\r\n const classes = useStyles();\r\n\r\n const [notifications] = useState([]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {/* Finhay Hỗ Trợ */}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nTopbar.propTypes = {\r\n className: PropTypes.string,\r\n onSidebarOpen: PropTypes.func\r\n};\r\n\r\nexport default Topbar;\r\n","import React, { useState } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport clsx from 'clsx';\r\nimport { makeStyles, useTheme } from '@material-ui/styles';\r\nimport { useMediaQuery } from '@material-ui/core';\r\n\r\nimport { Sidebar, Topbar, Footer } from './components';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n paddingTop: 56,\r\n height: '100%',\r\n [theme.breakpoints.up('sm')]: {\r\n paddingTop: 64\r\n }\r\n },\r\n shiftContent: {\r\n paddingLeft: 240\r\n },\r\n content: {\r\n height: '100%'\r\n }\r\n}));\r\n\r\nconst Main = props => {\r\n const { children } = props;\r\n\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const isDesktop = useMediaQuery(theme.breakpoints.up('lg'), {\r\n defaultMatches: true\r\n });\r\n\r\n const [openSidebar, setOpenSidebar] = useState(false);\r\n\r\n const handleSidebarOpen = () => {\r\n setOpenSidebar(true);\r\n };\r\n\r\n const handleSidebarClose = () => {\r\n setOpenSidebar(false);\r\n };\r\n\r\n const shouldOpenSidebar = isDesktop ? true : openSidebar;\r\n\r\n return (\r\n \r\n \r\n \r\n
\r\n {children}\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nMain.propTypes = {\r\n children: PropTypes.node\r\n};\r\n\r\nexport default Main;\r\n","import React from 'react';\r\nimport { Link as RouterLink } from 'react-router-dom';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { AppBar, Toolbar } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n boxShadow: 3\r\n },\r\n title: {\r\n color: 'white',\r\n fontSize: 25\r\n },\r\n logo: {\r\n maxHeight: '30px',\r\n marginLeft: '30px'\r\n }\r\n}));\r\n\r\nconst Topbar = props => {\r\n const { className, ...rest } = props;\r\n\r\n const classes = useStyles();\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\nTopbar.propTypes = {\r\n className: PropTypes.string\r\n};\r\n\r\nexport default Topbar;\r\n","import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/styles';\r\n\r\nimport { Topbar } from './components';\r\n\r\nconst useStyles = makeStyles(() => ({\r\n root: {\r\n paddingTop: 64,\r\n height: '100%'\r\n },\r\n content: {\r\n height: '100%'\r\n }\r\n}));\r\n\r\nconst Minimal = props => {\r\n const { children } = props;\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n
{children}
\r\n
\r\n );\r\n};\r\n\r\nMinimal.propTypes = {\r\n children: PropTypes.node,\r\n className: PropTypes.string\r\n};\r\n\r\nexport default Minimal;\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/styles';\r\nimport { Grid, Typography } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n padding: theme.spacing(4)\r\n },\r\n content: {\r\n paddingTop: 150,\r\n textAlign: 'center'\r\n },\r\n image: {\r\n marginTop: 50,\r\n display: 'inline-block',\r\n maxWidth: '100%',\r\n width: 560\r\n }\r\n}));\r\n\r\nconst NotFound = () => {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n 404: The page you are looking for isn’t here\r\n \r\n \r\n You either tried some shady route or you came here by mistake.\r\n Whichever it is, try using the navigation\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default NotFound;\r\n","// import React, { useState, useEffect } from 'react';\r\n\r\n\r\nconst useStyles = theme => ({\r\n root: {\r\n backgroundColor: theme.palette.background.default,\r\n height: '100%'\r\n },\r\n grid: {\r\n height: '100%'\r\n },\r\n\r\n name: {\r\n marginTop: theme.spacing(3),\r\n color: theme.palette.white\r\n },\r\n bio: {\r\n color: theme.palette.white\r\n },\r\n contentContainer: {},\r\n content: {\r\n height: '100%',\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justifyContent: 'center'\r\n },\r\n contentHeader: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n paddingTop: theme.spacing(5),\r\n paddingBototm: theme.spacing(2),\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(2)\r\n },\r\n logoImage: {\r\n marginLeft: theme.spacing(4)\r\n },\r\n contentBody: {\r\n flexGrow: 1,\r\n display: 'flex',\r\n alignItems: 'center',\r\n [theme.breakpoints.down('md')]: {\r\n justifyContent: 'center'\r\n },\r\n paddingTop: 40\r\n },\r\n form: {\r\n paddingLeft: 100,\r\n paddingRight: 100,\r\n paddingBottom: 125,\r\n flexBasis: 700,\r\n [theme.breakpoints.down('sm')]: {\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(2)\r\n }\r\n },\r\n title: {\r\n marginTop: theme.spacing(3)\r\n },\r\n socialButtons: {\r\n marginTop: theme.spacing(3)\r\n },\r\n socialIcon: {\r\n marginRight: theme.spacing(1)\r\n },\r\n sugestion: {\r\n marginTop: theme.spacing(2)\r\n },\r\n textField: {\r\n marginTop: theme.spacing(2)\r\n },\r\n signInButton: {\r\n margin: theme.spacing(2, 0)\r\n }\r\n});\r\n\r\nexport default useStyles;\r\n","import moment from 'moment';\r\nimport jwt from 'jsonwebtoken';\r\n\r\nconst to_date = date_num => {\r\n let time = moment(date_num * 1000)\r\n .locale('vi')\r\n .format('DD / MM / YYYY, h A');\r\n return time;\r\n};\r\n\r\nconst to_date_min = date_num => {\r\n let time = moment(date_num * 1000)\r\n .locale('vi')\r\n .format('DD/MM/YYYY (hh:mm A)');\r\n return time;\r\n};\r\n\r\nconst to_date_search = date_num => {\r\n let time = moment(date_num * 1000)\r\n .locale('vi')\r\n .format('DD/MM/YYYY');\r\n return time;\r\n};\r\n\r\nconst to_date_unix = date_num => {\r\n let ts = moment(date_num, 'YYYY-MM-DD').valueOf();\r\n return ts / 1000;\r\n};\r\n\r\nconst convert_date_to_search = date_num => {\r\n let time = moment(date_num)\r\n .locale('vi')\r\n .format('DD/MM/YYYY');\r\n return time;\r\n};\r\n\r\nconst get_time_second = () => {\r\n let time_now = new Date().getTime() / 1000;\r\n time_now = Math.round(time_now);\r\n return time_now;\r\n};\r\n\r\nconst bo_qua_detail = id => {\r\n id = parseInt(id);\r\n let result = null;\r\n if (id == 1) {\r\n result = 'Trùng đơn';\r\n }\r\n if (id == 2) {\r\n result = 'Tự hoàn thành';\r\n }\r\n if (id == 4) {\r\n result = 'Quá thời gian chờ bổ sung thông tin';\r\n }\r\n if (id == 3) {\r\n result = 'Khác';\r\n }\r\n return result;\r\n};\r\n\r\nconst status_detail = id => {\r\n id = parseInt(id);\r\n let result = null;\r\n if (id == 1) {\r\n result = 'Tạo đơn';\r\n } else if (id == 10) {\r\n result = 'Nhận đơn';\r\n } else if (id == 100) {\r\n result = 'Đang giải quyết';\r\n } else if (id == 110) {\r\n result = 'Giao cho kế toán';\r\n } else if (id == 120) {\r\n result = 'Giao cho kế toán khớp lệnh';\r\n } else if (id == 200) {\r\n result = 'Bỏ qua';\r\n } else if (id == 300) {\r\n result = 'Chờ bổ sung thông tin';\r\n } else if (id == 350) {\r\n result = 'Điều chỉnh';\r\n } else if (id == 400) {\r\n result = 'Thành công';\r\n }\r\n else if (id == 250) {\r\n result = 'Cập nhật tài khoản ngân hàng';\r\n }\r\n else if (id == 500) {\r\n result = 'Đã chuyển tiền';\r\n }\r\n return result;\r\n};\r\n\r\nconst gen_token = data => {\r\n const token = jwt.sign(data, 'finhaycs');\r\n return token;\r\n};\r\n\r\nconst status_hoan_tra = id => {\r\n id = parseInt(id);\r\n let result = null;\r\n if (id == 0) {\r\n result = 'Khởi tạo';\r\n }\r\n if (id == 100) {\r\n result = 'Đã thông báo';\r\n }\r\n if (id == 200) {\r\n result = 'Đã cập nhật';\r\n }\r\n if (id == 300) {\r\n result = 'Đã chuyển tiền';\r\n }\r\n return result;\r\n};\r\n\r\nconst portfolio_type_to_string = id => {\r\n id = parseInt(id);\r\n\r\n let result = null;\r\n if (id == 1) {\r\n return 'Rùa Hoàn Kiếm';\r\n }\r\n if (id == 2) {\r\n return 'Cò Trắng';\r\n }\r\n if (id == 3) {\r\n return 'Voi Rừng';\r\n }\r\n if (id == 4) {\r\n return 'Sao La';\r\n }\r\n if (id == 5) {\r\n return 'Trâu Nước';\r\n } else {\r\n return id;\r\n }\r\n};\r\n\r\nexport {\r\n portfolio_type_to_string,\r\n bo_qua_detail,\r\n to_date_unix,\r\n convert_date_to_search,\r\n to_date_search,\r\n gen_token,\r\n to_date,\r\n to_date_min,\r\n status_detail,\r\n get_time_second,\r\n status_hoan_tra\r\n};\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Grid,\r\n Button,\r\n TextField,\r\n Paper,\r\n Typography\r\n} from '@material-ui/core';\r\nimport styles from './styles';\r\nimport Axios from 'axios';\r\nimport CONST_DATA from 'constant';\r\nimport { gen_token } from '../../utility';\r\n\r\nclass SignIn extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n email: '',\r\n password: '',\r\n error_text: ''\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n localStorage.removeItem(CONST_DATA.localStorage_login);\r\n }\r\n\r\n check_respone_login = data => {\r\n localStorage.setItem(CONST_DATA.localStorage_login, JSON.stringify(data));\r\n this.props.history.push('/');\r\n };\r\n\r\n sign_in = () => {\r\n const token = gen_token({\r\n user_name: this.state.email,\r\n password: this.state.password\r\n });\r\n\r\n const body = { token: token };\r\n\r\n Axios.post(CONST_DATA.end_point_login, body)\r\n .then(response => {\r\n\r\n if (response.data.status === 'success') {\r\n this.check_respone_login(response.data.data);\r\n }\r\n if (response.data.status === 'error') {\r\n this.setState({ error_text: response.data.data });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n Sign in ADMIN\r\n \r\n \r\n this.setState({ email: event.target.value })\r\n }\r\n />\r\n \r\n this.setState({ password: event.target.value })\r\n }\r\n onKeyDown={e => {\r\n if (e.key === 'Enter') {\r\n this.sign_in();\r\n }\r\n }}\r\n type=\"password\"\r\n value={this.state.password}\r\n variant=\"outlined\"\r\n />\r\n\r\n {this.state.error_text}\r\n this.sign_in()}>\r\n Đăng nhập\r\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)(SignIn);\r\n","import React, { Component } from 'react';\r\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport {\r\n TextField,\r\n IconButton,\r\n Button,\r\n Typography,\r\n CircularProgress\r\n} from '@material-ui/core';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n container: {\r\n maxHeight: '70vh'\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 170\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n seach_text: ''\r\n };\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n {\r\n if (e.key == 'Enter') {\r\n this.props.onClick(this.state.seach_text);\r\n }\r\n }}\r\n onChange={event => this.setState({ seach_text: event.target.value })}\r\n />\r\n\r\n {this.props.loading ? (\r\n \r\n ) : (\r\n this.props.onClick(this.state.seach_text)}>\r\n Tìm kiếm\r\n \r\n \r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(User);","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Pagination from '@material-ui/lab/Pagination';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n '& > *': {\r\n marginTop: theme.spacing(2),\r\n },\r\n },\r\n}));\r\n\r\nexport default function BasicPagination({ handleOnChangePage, totalPage, page }) {\r\n const classes = useStyles();\r\n return (\r\n
\r\n \r\n
\r\n );\r\n}","import React, { Component } from 'react';\r\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TablePagination,\r\n TableRow,\r\n Button,\r\n FormControl,\r\n InputLabel,\r\n Select,\r\n MenuItem,\r\n Box,\r\n TextField,\r\n CircularProgress\r\n} from '@material-ui/core';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport {\r\n to_date,\r\n to_date_min,\r\n status_detail,\r\n to_date_search,\r\n convert_date_to_search\r\n} from 'utility';\r\nimport CONST_DATA from 'constant';\r\nimport SearchText from './SearchText';\r\nimport BasicPagination from 'components/Pagination/Pagination';\r\n\r\nconst columns = [\r\n { label: 'STT', minWidth: 10 },\r\n { label: 'Ngày tạo', minWidth: 10 },\r\n { label: 'User id', minWidth: 10 },\r\n { label: 'SDT', minWidth: 10 },\r\n { label: 'Email', minWidth: 10 },\r\n { label: 'Hạng', minWidth: 10 },\r\n { label: 'Mã yêu cầu', minWidth: 10 },\r\n { label: 'Vấn đề ', minWidth: 10 },\r\n { label: 'Trạng thái', minWidth: 10 },\r\n { label: 'Admin', minWidth: 10 }\r\n // { label: 'Ghi chú', minWidth: 10 }\r\n];\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n container: {\r\n maxHeight: '70vh'\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 170\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n data: this.props.data,\r\n type_of_ticket: 'ALL',\r\n type_of_status: 0,\r\n type_of_rank: 'ALL',\r\n seach_text: '',\r\n search_date: null\r\n };\r\n }\r\n\r\n ren_admin = data => {\r\n if (data.admin_assign != null) {\r\n return {data.admin_assign.full_name};\r\n } else {\r\n return ;\r\n }\r\n };\r\n\r\n check_condition = data => {\r\n let result_type = false;\r\n\r\n if (this.state.type_of_ticket == 'ALL') {\r\n result_type = true;\r\n }\r\n if (data.ticket_type == this.state.type_of_ticket) {\r\n result_type = true;\r\n }\r\n\r\n let result_rank = false;\r\n if (this.state.type_of_rank == 'ALL') {\r\n result_rank = true;\r\n }\r\n if (data.rank_title == this.state.type_of_rank) {\r\n result_rank = true;\r\n }\r\n\r\n let result_status = false;\r\n\r\n if (this.state.type_of_status == 0) {\r\n result_status = true;\r\n }\r\n if (data.status_id == this.state.type_of_status) {\r\n result_status = true;\r\n }\r\n\r\n let result_text = false;\r\n if (data.user_id.toString().includes(this.state.seach_text)) {\r\n result_text = true;\r\n }\r\n if (data.ticket_id.includes(this.state.seach_text)) {\r\n result_text = true;\r\n }\r\n\r\n if (data.user_profile != null) {\r\n if (data.user_profile.phone_number != null) {\r\n if (data.user_profile.phone_number.includes(this.state.seach_text)) {\r\n result_text = true;\r\n }\r\n }\r\n if (data.user_profile.email != null) {\r\n if (data.user_profile.email.includes(this.state.seach_text)) {\r\n result_text = true;\r\n }\r\n }\r\n }\r\n\r\n if (data.note != null) {\r\n if (data.note.toString().includes(this.state.seach_text)) {\r\n result_text = true;\r\n }\r\n }\r\n\r\n let result_date = false;\r\n\r\n if (this.state.search_date != null) {\r\n let date_tim_kiem = convert_date_to_search(this.state.search_date);\r\n let date_item = to_date_search(data.created_at);\r\n\r\n result_date = date_tim_kiem == date_item;\r\n }\r\n if (this.state.search_date == null || this.state.search_date == '') {\r\n result_date = true;\r\n }\r\n\r\n return result_type && result_status && result_rank && result_text && result_date;\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n const data = this.props.data.map((el) => {\r\n return el.user_id;\r\n });\r\n return (\r\n
\r\n {this.props.loading ? : <>\r\n \r\n \r\n {\r\n this.setState({ search_date: event.target.value });\r\n }}\r\n type=\"date\"\r\n />\r\n \r\n\r\n \r\n \r\n Lọc theo vấn đề\r\n \r\n \r\n this.setState({ type_of_ticket: event.target.value })\r\n }>\r\n {CONST_DATA.type_of_ticket.map(item => (\r\n {item}\r\n ))}\r\n \r\n \r\n \r\n \r\n Lọc theo trạng thái\r\n \r\n {\r\n this.setState({ type_of_status: event.target.value })\r\n this.props.handOnChangeStatus(event.target.value)\r\n }\r\n\r\n\r\n }>\r\n {CONST_DATA.type_of_status.map(item => (\r\n {item.label}\r\n ))}\r\n \r\n \r\n this.setState({ seach_text: seach_text })}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {columns.map(column => (\r\n \r\n {column.label}\r\n \r\n ))}\r\n \r\n \r\n \r\n {this.props.data.map((row, index) => {\r\n if (this.check_condition(row)) {\r\n return (\r\n \r\n \r\n \r\n \r\n {index + 1}\r\n \r\n \r\n \r\n {to_date_min(row.created_at)}\r\n\r\n \r\n {this.props.role_admin == CONST_DATA.ROLE_TU_VAN\r\n ? ''\r\n : row.user_id}\r\n \r\n \r\n {this.props.role_admin == CONST_DATA.ROLE_TU_VAN ||\r\n row.user_profile == null\r\n ? ''\r\n : row.user_profile.user_profile.phone_number}\r\n \r\n \r\n {row.user_profile == null ||\r\n this.props.role_admin == CONST_DATA.ROLE_TU_VAN\r\n ? ''\r\n : row.user_profile.user_profile.email}\r\n \r\n {row.rank_title}\r\n {row.ticket_id}\r\n {row.ticket_type}\r\n {status_detail(row.status_id)}\r\n\r\n {this.ren_admin(row)}\r\n {/* \r\n {row.note == null ? null : row.note.toString()}\r\n */}\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n })}\r\n \r\n
\r\n
\r\n {this.props.typeGet == 'can_xu_ly' ? '' :\r\n \r\n }\r\n
\r\n }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(User);","\r\nimport React, { Component } from 'react';\r\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport {\r\n TextField,\r\n IconButton,\r\n FormControlLabel,\r\n InputLabel,\r\n Select,\r\n FormControl,\r\n MenuItem\r\n} from '@material-ui/core';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport CONST_DATA from 'constant';\r\nimport Axios from 'axios';\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n container: {\r\n maxHeight: '70vh'\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 170\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n all_admin_data: null,\r\n all_admin_success: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.get_all_admin();\r\n }\r\n\r\n get_all_admin = () => {\r\n Axios.get(CONST_DATA.get_admin_giao_viec)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n this.setState({\r\n all_admin_data: response.data.data,\r\n all_admin_success: true\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n Lọc theo admin\r\n {\r\n this.setState({ type_of_status: event.target.value });\r\n this.props.onChange(event.target.value);\r\n }}>\r\n {this.state.all_admin_success\r\n ? this.state.all_admin_data.map(item => (\r\n {item.full_name}\r\n ))\r\n : null}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(User);","import React, { Component } from 'react';\r\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TablePagination,\r\n TableRow,\r\n Button,\r\n FormControl,\r\n InputLabel,\r\n Select,\r\n MenuItem,\r\n Box,\r\n TextField\r\n} from '@material-ui/core';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport {\r\n to_date,\r\n to_date_min,\r\n status_detail,\r\n to_date_search,\r\n convert_date_to_search,\r\n to_date_unix\r\n} from 'utility';\r\nimport CONST_DATA from 'constant';\r\nimport SearchText from './SearchText';\r\nimport Axios from 'axios';\r\nimport FilterAdmin from './FilterAdmin';\r\nimport BasicPagination from 'components/Pagination/Pagination';\r\n\r\nconst columns = [\r\n { label: 'STT', minWidth: 10 },\r\n { label: 'Ngày tạo', minWidth: 10 },\r\n { label: 'Ngày cập nhật', minWidth: 10 },\r\n { label: 'User id', minWidth: 10 },\r\n { label: 'SDT', minWidth: 10 },\r\n { label: 'Email', minWidth: 10 },\r\n { label: 'Hạng', minWidth: 10 },\r\n { label: 'Mã yêu cầu', minWidth: 10 },\r\n { label: 'Vấn đề ', minWidth: 10 },\r\n { label: 'Trạng thái', minWidth: 10 },\r\n { label: 'Admin', minWidth: 10 }\r\n // { label: 'Ghi chú', minWidth: 10 }\r\n];\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n container: {\r\n maxHeight: '70vh'\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 170\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n access_token: this.props.access_token,\r\n user_id: this.props.user_id,\r\n data: this.props.data,\r\n data_success: false,\r\n type_of_ticket: null,\r\n type_of_status: null,\r\n search_rank_user: null,\r\n type_of_admin: null,\r\n page: 1,\r\n totalPage: 50,\r\n limit: 10,\r\n seach_text: null,\r\n search_date: null,\r\n\r\n loading: false\r\n };\r\n }\r\n\r\n ren_admin = data => {\r\n if (data.admin_assign != null) {\r\n return {data.admin_assign.full_name};\r\n } else {\r\n return ;\r\n }\r\n };\r\n\r\n handleOnChangePage = (event, value) => {\r\n this.setState({ page: value })\r\n }\r\n\r\n get_data = () => {\r\n this.setState({\r\n loading: true\r\n });\r\n let rank_title = this.state.search_rank_user\r\n if (!rank_title || rank_title == 'All' || rank_title == '') {\r\n rank_title = null\r\n }\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n search_date_creat: to_date_unix(this.state.search_date),\r\n search_ticket_type: this.state.type_of_ticket,\r\n search_status_id: this.state.type_of_status,\r\n search_key_word: this.state.seach_text,\r\n search_rank_user: rank_title,\r\n search_admin_id: this.state.type_of_admin,\r\n page: this.state.page,\r\n limit: this.state.limit\r\n };\r\n Axios.post(CONST_DATA.search_api, body_req)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: response.data.data,\r\n loading: false\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.setState({\r\n loading: false\r\n });\r\n });\r\n };\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n const flag = (prevState.page !== this.state.page) || (prevState.seach_text !== this.state.seach_text) || (prevState.search_date !== this.state.search_date) || (prevState.type_of_ticket !== this.state.type_of_ticket) || (prevState.type_of_status !== this.state.type_of_status) || (prevState.search_rank_user !== this.state.search_rank_user)\r\n if (flag) {\r\n this.get_data();\r\n }\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.get_data();\r\n }\r\n\r\n print_phone_number = (row, type) => {\r\n if (type == 'email') {\r\n try {\r\n return row.user_profile.user_profile.email;\r\n } catch (error) {\r\n return '';\r\n }\r\n } else {\r\n try {\r\n return row.user_profile.user_profile.phone_number;\r\n } catch (error) {\r\n return '';\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n \r\n \r\n {\r\n this.setState({ search_date: event.target.value });\r\n }}\r\n type=\"date\"\r\n />\r\n \r\n\r\n \r\n \r\n Lọc theo vấn đề\r\n \r\n \r\n this.setState({ type_of_ticket: event.target.value })\r\n }>\r\n {CONST_DATA.type_of_ticket.map(item => (\r\n {item}\r\n ))}\r\n \r\n \r\n \r\n \r\n Lọc theo trạng thái\r\n \r\n \r\n this.setState({ type_of_status: event.target.value })\r\n }>\r\n {CONST_DATA.type_of_status.map(item => (\r\n {item.label}\r\n ))}\r\n \r\n \r\n {\r\n this.setState({\r\n type_of_admin: data\r\n });\r\n }}\r\n />\r\n\r\n {\r\n await this.setState({ seach_text: seach_text });\r\n\r\n this.get_data();\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {columns.map(column => (\r\n \r\n {column.label}\r\n \r\n ))}\r\n \r\n \r\n \r\n {this.state.data_success\r\n ? this.state.data.map((row, index) => (\r\n \r\n \r\n \r\n \r\n {index + 1}\r\n \r\n \r\n \r\n {to_date_min(row.created_at)}\r\n {to_date_min(row.update_at.date)}\r\n {row.user_id}\r\n \r\n {this.props.role_admin == CONST_DATA.ROLE_TU_VAN\r\n ? ''\r\n : this.print_phone_number(row, 'phone_number')}\r\n \r\n \r\n {this.props.role_admin == CONST_DATA.ROLE_TU_VAN\r\n ? ''\r\n : this.print_phone_number(row, 'email')}\r\n \r\n {row.rank_title}\r\n {row.ticket_id}\r\n {row.ticket_type}\r\n {status_detail(row.status_id)}\r\n {this.ren_admin(row)}\r\n \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\nexport default withStyles(styles)(User);","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Grid, CircularProgress } from '@material-ui/core';\r\nimport UsersTable from './Table';\r\nimport CONST_DATA from 'constant';\r\nimport Axios from 'axios';\r\nimport TableAll from './TableAll';\r\nimport { to_date_unix } from 'utility';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n access_token: null,\r\n user_id: null,\r\n data_success: false,\r\n data: null,\r\n data_ticket: null,\r\n data_ticket_success: false,\r\n page: 1,\r\n totalPage: 50,\r\n limit: 20,\r\n search_status_id: null,\r\n loading: false\r\n };\r\n }\r\n\r\n check_login = () => {\r\n let login_data = localStorage.getItem(CONST_DATA.localStorage_login);\r\n\r\n if (login_data == null) {\r\n this.props.history.push(CONST_DATA.router_sign_in);\r\n } else {\r\n login_data = JSON.parse(login_data);\r\n this.setState({\r\n access_token: login_data.access_token,\r\n user_id: login_data.user_id,\r\n role_admin: login_data.role,\r\n // data_success: true\r\n });\r\n }\r\n };\r\n\r\n async componentDidMount() {\r\n await this.check_login();\r\n if (this.props.type_get == 'viec_cua_toi') {\r\n await this.get_data_viec_cua_toi();\r\n }\r\n else if (this.props.type_get === 'all') {\r\n this.setState({ data_success: true })\r\n }\r\n else if (this.props.type_get !== 'all') {\r\n await this.get_data();\r\n }\r\n }\r\n\r\n handOnChangeStatus = (value) => {\r\n this.setState({ search_status_id: value });\r\n }\r\n handleOnChangePage = (element, value) => {\r\n this.setState({ page: value });\r\n }\r\n\r\n componentDidUpdate(prevProps, prevState) {\r\n const flag = (prevState.page !== this.state.page) || (prevState.search_status_id !== this.state.search_status_id)\r\n if (flag) {\r\n this.get_data();\r\n }\r\n }\r\n\r\n get_data_viec_cua_toi = () => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token\r\n };\r\n\r\n Axios.post(CONST_DATA.get_ticket_by_admin_id, body_req)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: response.data.data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n get_data = () => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n type_get: this.props.type_get,\r\n access_token: this.state.access_token,\r\n page: this.state.page,\r\n limit: this.state.limit,\r\n // search_status_id: this.state.search_status_id,\r\n };\r\n if(this.props.type_get == 'can_xu_ly') {\r\n body_req.limit = 1000\r\n }\r\n this.setState({ loading: true })\r\n Axios.post(CONST_DATA.get_ticket_admin, body_req)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: response.data.data,\r\n loading: false\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n this.setState({ loading: false })\r\n });\r\n };\r\n\r\n render_table = () => {\r\n if (this.props.type_get == 'all') {\r\n return (\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n \r\n \r\n {this.state.data_success ? (\r\n this.render_table()\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)(User);","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Grid,\r\n Button,\r\n Card\r\n} from '@material-ui/core';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport CONST_DATA from 'constant';\r\nimport Axios from 'axios';\r\nimport Visibility from '@material-ui/icons/Visibility';\r\nimport VisibilityOff from '@material-ui/icons/VisibilityOff';\r\nimport InputAdornment from '@material-ui/core/InputAdornment';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport OutlinedInput from '@material-ui/core/OutlinedInput';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nconst styles = theme => ({\r\n root: {\r\n padding: theme.spacing(2),\r\n margin: theme.spacing(1)\r\n },\r\n textField: {\r\n margin: theme.spacing(1)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n access_token: null,\r\n user_id: null,\r\n full_name: null,\r\n old_password: '',\r\n password1: '',\r\n password2: '',\r\n showOldPass: false,\r\n showNewPass: false,\r\n showConfirmPass: false\r\n };\r\n }\r\n\r\n handleClickShowPassword = (type) => {\r\n switch (type) {\r\n case 'old':\r\n this.setState((state) => ({\r\n showOldPass: !state.showOldPass\r\n }))\r\n break;\r\n case 'new':\r\n this.setState((state) => ({\r\n showNewPass: !state.showNewPass\r\n }))\r\n break;\r\n case 'confirmNew':\r\n this.setState((state) => ({\r\n showConfirmPass: !state.showConfirmPass\r\n }))\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n };\r\n\r\n handleMouseDownPassword = (event) => {\r\n event.preventDefault();\r\n };\r\n check_login = () => {\r\n let login_data = localStorage.getItem(CONST_DATA.localStorage_login);\r\n\r\n if (login_data == null) {\r\n this.props.history.push(CONST_DATA.router_sign_in);\r\n } else {\r\n login_data = JSON.parse(login_data);\r\n\r\n this.setState({\r\n access_token: login_data.access_token,\r\n user_id: login_data.user_id\r\n });\r\n }\r\n };\r\n\r\n async componentDidMount() {\r\n await this.check_login();\r\n }\r\n\r\n edit_data = (url, body_req) => {\r\n Axios.post(url, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n window.location.reload();\r\n } else {\r\n alert(response.data.data);\r\n }\r\n })\r\n\r\n .catch(error => {\r\n });\r\n };\r\n\r\n render_send_pass = () => {\r\n if (\r\n this.state.password1 == this.state.password2 &&\r\n this.state.password1 != null &&\r\n this.state.password2 != null\r\n ) {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n password: this.state.old_password,\r\n password_new: this.state.password2,\r\n access_token: this.state.access_token\r\n };\r\n\r\n return (\r\n \r\n this.edit_data(CONST_DATA.edit_user_admin_password, body_req)\r\n }>\r\n Đổi password\r\n \r\n );\r\n }\r\n };\r\n\r\n send_full_name = () => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n full_name: this.state.full_name,\r\n access_token: this.state.access_token\r\n };\r\n this.edit_data(CONST_DATA.edit_user_admin_full_name, body_req);\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n this.setState({ full_name: event.target.value })\r\n }\r\n />\r\n this.send_full_name()}>\r\n Sửa tên\r\n \r\n \r\n\r\n \r\n Password\r\n \r\n this.setState({ old_password: event.target.value })\r\n }\r\n endAdornment={\r\n \r\n this.handleClickShowPassword('old')}\r\n onMouseDown={(e) => this.handleMouseDownPassword(e)}\r\n edge=\"end\"\r\n >\r\n {this.state.showOldPass ? : }\r\n \r\n \r\n }\r\n />\r\n New password\r\n \r\n this.setState({ password1: event.target.value })\r\n }\r\n endAdornment={\r\n \r\n this.handleClickShowPassword('new')}\r\n onMouseDown={(e) => this.handleMouseDownPassword(e)}\r\n edge=\"end\"\r\n >\r\n {this.state.showNewPass ? : }\r\n \r\n \r\n }\r\n />\r\n New password confirm\r\n \r\n this.setState({ password2: event.target.value })\r\n }\r\n endAdornment={\r\n \r\n this.handleClickShowPassword('confirmNew')}\r\n onMouseDown={(e) => this.handleMouseDownPassword(e)}\r\n edge=\"end\"\r\n >\r\n {this.state.showConfirmPass ? : }\r\n \r\n \r\n }\r\n />\r\n\r\n {this.render_send_pass()}\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(User);\r\n","import React, { Component } from 'react';\r\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Grid,\r\n Paper,\r\n TextField,\r\n Typography,\r\n Button,\r\n Card,\r\n CircularProgress\r\n} from '@material-ui/core';\r\nimport CONST_DATA from 'constant';\r\nimport Axios from 'axios';\r\nimport { get_time_second } from 'utility';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n padding: theme.spacing(2),\r\n margin: theme.spacing(1)\r\n },\r\n textField: {\r\n margin: theme.spacing(1)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n access_token: null,\r\n full_name: null,\r\n user_name: null,\r\n data: null,\r\n data_success: false\r\n };\r\n }\r\n\r\n check_login = () => {\r\n let login_data = localStorage.getItem(CONST_DATA.localStorage_login);\r\n\r\n if (login_data == null) {\r\n this.props.history.push(CONST_DATA.router_sign_in);\r\n } else {\r\n login_data = JSON.parse(login_data);\r\n this.setState({\r\n access_token: login_data\r\n });\r\n }\r\n };\r\n\r\n async componentDidMount() {\r\n await this.check_login();\r\n await this.get_all_admin();\r\n }\r\n\r\n get_all_admin = () => {\r\n Axios.get(CONST_DATA.get_all_admin)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n this.setState({\r\n data: response.data.data,\r\n data_success: true\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n });\r\n };\r\n\r\n render_list_admin = (item, classes) => {\r\n return (\r\n \r\n full_name: {item.full_name}\r\n user_name: {item.user_name}\r\n user_id: {item.user_id}\r\n \r\n );\r\n };\r\n\r\n send_data_add = () => {\r\n const body_req = {\r\n full_name: this.state.full_name,\r\n user_name: this.state.user_name,\r\n access_token: this.state.access_token\r\n };\r\n\r\n Axios.post(CONST_DATA.creat_user_admin, body_req)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n window.location.reload();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n \r\n \r\n {this.state.data_success ? (\r\n this.state.data.map(item => this.render_list_admin(item, classes))\r\n ) : (\r\n \r\n )}\r\n\r\n \r\n Add admin\r\n \r\n this.setState({ full_name: event.target.value })\r\n }\r\n />\r\n \r\n this.setState({ user_name: event.target.value })\r\n }\r\n />\r\n this.send_data_add()}>\r\n Add admin\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(User);\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n Button,\r\n TextField,\r\n Box,\r\n Card\r\n} from '@material-ui/core';\r\n\r\nimport CONST_DATA from 'constant';\r\nimport Axios from 'axios';\r\nimport { toast } from 'react-toastify';\r\n\r\nconst columns = [\r\n { label: 'Select', minWidth: 10 },\r\n { label: 'User Id', minWidth: 10 },\r\n { label: 'Ngày', minWidth: 10 },\r\n { label: 'Số tiền', minWidth: 10 },\r\n { label: 'Mã rút tiền', minWidth: 10 },\r\n { label: 'Diễn giải', minWidth: 10 },\r\n { label: 'ID', minWidth: 10 },\r\n { label: 'Mã case', minWidth: 10 },\r\n { label: 'CS', minWidth: 10 },\r\n { label: 'Ghi chú', minWidth: 10 }\r\n];\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n container: {\r\n maxHeight: '70vh'\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 170\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass TabelSearchHoanTra extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n access_token: this.props.access_token,\r\n user_id: this.props.user_id,\r\n data: this.props.data,\r\n data_success: false,\r\n open_delete: false,\r\n id_delete: null,\r\n data_delete: null,\r\n note_change: null,\r\n hoantra: null\r\n };\r\n }\r\n\r\n\r\n\r\n search_data = search_key => {\r\n const body_req = {\r\n user_id: this.props.user_id,\r\n access_token: this.props.access_token,\r\n search_key: search_key || ''\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_hoan_tra_search_item, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: response.data.data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n notify = (type, message) => {\r\n switch (type) {\r\n case 'success':\r\n toast.success(message);\r\n break;\r\n case 'error':\r\n toast.error(message);\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n }\r\n\r\n get_hoan_tra_by_id = () => {\r\n const body_req = {\r\n user_id: this.props.user_id,\r\n access_token: this.props.access_token,\r\n id_hoan_tra: this.props.id_hoan_tra\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_hoan_tra_get_by_id, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: [response.data.data]\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n componentDidMount() {\r\n if (this.props.id_hoan_tra) {\r\n this.get_hoan_tra_by_id()\r\n }\r\n else {\r\n this.search_data();\r\n }\r\n\r\n }\r\n\r\n handleConfim(data) {\r\n const body_req = {\r\n access_token: this.props.access_token,\r\n user_id: this.props.user_id,\r\n ticket_id: this.props.ticket_id,\r\n id_hoan_tra: data.id\r\n };\r\n\r\n if (this.props.id_hoan_tra) {\r\n Axios.post(CONST_DATA.cs_un_match_tk_ngan_hang, body_req)\r\n .then(response => {\r\n const result = response.data;\r\n if (result.status === 'success') {\r\n this.setState({\r\n response_data: result.data.message\r\n });\r\n this.notify('success', 'Hủy nối đơn thành công.')\r\n setTimeout(() => {\r\n window.location.reload()\r\n }, 1500);\r\n }\r\n else {\r\n this.notify('error', result.data.message)\r\n }\r\n })\r\n .catch(error => {\r\n this.notify('error', error.message)\r\n console.log(error);\r\n });\r\n }\r\n else {\r\n Axios.post(CONST_DATA.cs_match_tk_ngan_hang, body_req)\r\n .then(response => {\r\n const result = response.data;\r\n if (result.status === 'success') {\r\n this.setState({\r\n response_data: result.data.message\r\n });\r\n this.notify('success', 'Nối đơn thành công.')\r\n setTimeout(() => {\r\n window.location.reload()\r\n }, 1500);\r\n }\r\n else {\r\n this.notify('error', result.data.message)\r\n }\r\n })\r\n .catch(error => {\r\n this.notify('error', error.message)\r\n console.log(error);\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n \r\n {!this.props.id_hoan_tra && \r\n \r\n this.setState({ search_key: event.target.value })\r\n }\r\n />\r\n this.search_data(this.state.search_key)}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n color=\"primary\">\r\n Tìm kiếm\r\n \r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {columns.map(column => {\r\n return (\r\n \r\n {column.label}\r\n \r\n )\r\n }\r\n )}\r\n \r\n \r\n \r\n {this.state.data_success\r\n ? this.state.data.map((row, index) => {\r\n return (\r\n \r\n \r\n \r\n this.handleConfim(row)\r\n }\r\n variant=\"outlined\"\r\n size=\"small\"\r\n color=\"primary\">\r\n {this.props.id_hoan_tra ? 'Delete' : 'Select'}\r\n \r\n \r\n {row.user_id ? row.user_id : null}\r\n {row.date}\r\n \r\n {row.so_tien\r\n .toString()\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\r\n \r\n\r\n {row.ma_rut_tien}\r\n {row.dien_giai}\r\n {row.id}\r\n {row.ma_case}\r\n {row.cs_match ? 'yes' : 'no'}\r\n {row.note ? row.note : null}\r\n\r\n \r\n )\r\n })\r\n : null}\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(TabelSearchHoanTra);\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Card, Typography } from '@material-ui/core';\r\n\r\n\r\nconst styles = theme => ({\r\n root: {\r\n paddingTop: theme.spacing(1),\r\n paddingLeft: theme.spacing(2),\r\n paddingRight: theme.spacing(1),\r\n marginTop: theme.spacing(1),\r\n backgroundColor: 'rgb(187,222,251)'\r\n }\r\n});\r\n\r\nclass Issue extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n \r\n {this.props.top}\r\n \r\n \r\n {this.props.mid}\r\n \r\n \r\n {this.props.bottom}\r\n \r\n {this.props.extra_data}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(Issue);\r\n","import React, { Component } from 'react';\r\nimport {\r\n Box,\r\n Button,\r\n} from '@material-ui/core';\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n note: ''\r\n };\r\n }\r\n\r\n render() {\r\n\r\n return (\r\n \r\n {/* this.setState({ note: event.target.value })}\r\n /> */}\r\n\r\n {this.state.note != '' ? (\r\n this.props.send_note(this.state.note)}>\r\n Lưu lại ghi chú\r\n \r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default User;\r\n","import React, { Component } from 'react';\r\nimport { Box, IconButton } from '@material-ui/core';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport CONST_DATA from 'constant';\r\nimport { to_date_min } from 'utility';\r\nimport CardCS from './CardCS';\r\n// import Note from '../Detail/Note';\r\n\r\nclass CommentList extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n // checkLinkImage= ()=>{\r\n // const env = process.env.REACT_APP_ENVIRONMENT === 'STAGING' ? 'test' : 'prod';\r\n // let linkImage = \"\";\r\n // this.props.comment_log.map((item,index)=>{\r\n // let checkSrc = item.comment.search(\"finhay.s3-ap-southeast-1.amazonaws.com\")\r\n // if(checkSrc){\r\n // linkImage = item.comment\r\n // }\r\n // else{\r\n // linkImage =`https://finhay.s3-ap-southeast-1.amazonaws.com/CS/${env}/${item.comment}`\r\n // }\r\n // })\r\n // return linkImage;\r\n // }\r\n\r\n render() {\r\n \r\n return (\r\n
\r\n {this.props.comment_log.map((item, index) => {\r\n console.log({ item });\r\n if (item.type === 'image') {\r\n let linkImage = ''\r\n let checkSrc = item.comment.search(\"finhay.s3-ap-southeast-1.amazonaws.com\")\r\n if(checkSrc){\r\n linkImage = item.comment\r\n }\r\n else{\r\n linkImage =CONST_DATA.get_image + item.comment\r\n }\r\n return (\r\n \r\n \r\n src={linkImage}>\r\n\r\n {this.props.edit_comment ? (\r\n this.props.remove_comment(item.comment)}>\r\n \r\n \r\n ) : null}\r\n \r\n );\r\n } else {\r\n return (\r\n this.props.remove_comment(item.comment)}>\r\n \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\nexport default CommentList;\r\n","import React, { Component } from 'react';\r\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport { Button } from '@material-ui/core';\r\nimport CONST_DATA from 'constant';\r\nimport Axios from 'axios';\r\nimport { get_time_second } from 'utility';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nconst STATUS_ID_GHI_NHAN = 300;\r\n\r\nclass AddCommentImage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n error: null,\r\n comment_image_base64: null,\r\n comment_image_name: null\r\n };\r\n }\r\n\r\n handleChange = e => {\r\n console.log(e);\r\n e.preventDefault();\r\n let file = e.target.files[0];\r\n let reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onloadend = () => {\r\n this.upload_image(file, reader.result);\r\n };\r\n };\r\n\r\n upload_image = (file, base64) => {\r\n if (file.size >= 2000000) {\r\n this.setState({\r\n error: 'File của bạn quá lớn (tối đa 2MB)'\r\n });\r\n } else {\r\n this.setState({\r\n error: null,\r\n comment_image_base64: base64,\r\n comment_image_name: file.name\r\n });\r\n }\r\n };\r\n\r\n send_comment_image = () => {\r\n const body_req = {\r\n user_id: this.props.user_id,\r\n ticket_id: this.props.ticket_id,\r\n image_base64: this.state.comment_image_base64,\r\n image_name: this.state.comment_image_name,\r\n access_token: this.props.access_token,\r\n date: get_time_second()\r\n };\r\n Axios.post(CONST_DATA.add_comment_image, body_req)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n\r\n window.location.reload();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n \r\n\r\n {this.state.comment_image_base64 != null ? (\r\n
\r\n \r\n this.send_comment_image()}\r\n style={{ margin: 20 }}>\r\n Gửi ảnh\r\n \r\n
\r\n ) : null}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(AddCommentImage);\r\n","import Axios from 'axios';\r\nimport CONST_DATA from 'constant';\r\n\r\nconst remove_comment_api = (body_req, callback) => {\r\n Axios.post(CONST_DATA.edit_comment, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n callback();\r\n }\r\n })\r\n .catch(error => {\r\n });\r\n};\r\n\r\nconst change_transaction_id_api = (body_req, callback) => {\r\n Axios.post(CONST_DATA.edit_transaction_id, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n callback();\r\n }\r\n })\r\n .catch(error => {\r\n });\r\n};\r\n\r\nconst change_admin_api = (body_req, callback) => {\r\n Axios.post(CONST_DATA.edit_admin_assign, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n callback();\r\n }\r\n })\r\n .catch(error => {\r\n });\r\n};\r\n\r\nconst send_note_api = (body_req, callback) => {\r\n Axios.post(CONST_DATA.edit_note, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n callback();\r\n }\r\n })\r\n .catch(error => {\r\n });\r\n};\r\n\r\nconst send_comment_api = (body_req, callback) => {\r\n Axios.post(CONST_DATA.add_comment, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n callback();\r\n }\r\n })\r\n .catch(error => {\r\n });\r\n};\r\n\r\nconst send_status_api = (body_req, callback) => {\r\n Axios.post(CONST_DATA.change_status, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n callback();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n};\r\n\r\nconst send_khop_lenh_api = (body_req, callback) => {\r\n Axios.post(CONST_DATA.ketoan_khop_chuyen_tien_dat_lenh_dau_tu, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n callback();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n};\r\n\r\nconst send_khop_lenh_tiet_kiem_api = (body_req, callback) => {\r\n Axios.post(CONST_DATA.ketoan_khop_chuyen_tien_dat_lenh_tiet_kiem, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n callback();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n};\r\n\r\nconst send_khop_lenh_cuu_long_api = (body_req, callback) => {\r\n Axios.post(CONST_DATA.ketoan_khop_chuyen_tien_dat_lenh_cuu_long, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n callback();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n};\r\n\r\n\r\n\r\n\r\nconst send_ly_do_bo_qua_api = (body_req, callback) => {\r\n Axios.post(CONST_DATA.them_ly_do_bo_qua, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n callback();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n};\r\n\r\nconst create_order_pay_cs_admin = (body_req, callback) => {\r\n Axios.post(CONST_DATA.create_order_pay_cs_admin, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n // callback();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n};\r\n\r\n\r\nconst mo_lai_don_api = (body_req, callback) => {\r\n Axios.post(CONST_DATA.mo_lai_don, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n callback();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n};\r\n\r\nexport {\r\n mo_lai_don_api,\r\n send_khop_lenh_cuu_long_api,\r\n send_ly_do_bo_qua_api,\r\n send_khop_lenh_tiet_kiem_api,\r\n send_khop_lenh_api,\r\n remove_comment_api,\r\n change_admin_api,\r\n send_note_api,\r\n send_comment_api,\r\n send_status_api,\r\n change_transaction_id_api,\r\n // send_khop_lenh_cd_3_thang_api,\r\n create_order_pay_cs_admin\r\n};\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n FormControl,\r\n Select,\r\n MenuItem,\r\n Card,\r\n Typography\r\n} from '@material-ui/core';\r\nimport { change_admin_api } from './Api';\r\nimport Axios from 'axios';\r\nimport CONST_DATA from 'constant';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass GiaoViec extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n all_admin_data: null,\r\n all_admin_success: false,\r\n admin_assign: this.props.data.admin_assign\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.get_all_admin();\r\n }\r\n\r\n get_all_admin = () => {\r\n Axios.get(CONST_DATA.get_admin_giao_viec)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.setState({\r\n all_admin_data: response.data.data,\r\n all_admin_success: true\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n });\r\n };\r\n\r\n change_admin = admin_assign => {\r\n const body_req = {\r\n user_id: this.props.user_id,\r\n ticket_id: this.props.ticket_id,\r\n admin_assign: admin_assign,\r\n access_token: this.props.access_token\r\n };\r\n change_admin_api(body_req, () => window.location.reload());\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n if (this.state.all_admin_success) {\r\n return (\r\n \r\n Giao việc cho: \r\n \r\n {\r\n this.change_admin(event.target.value);\r\n }}>\r\n {this.state.all_admin_data.map((item, index) => (\r\n {item.full_name}\r\n ))}\r\n \r\n \r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(GiaoViec);\r\n","import React, { Component } from 'react';\r\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport {\r\n TextField,\r\n IconButton,\r\n Box,\r\n Card,\r\n Button,\r\n CircularProgress\r\n} from '@material-ui/core';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n container: {\r\n maxHeight: '70vh'\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 170\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n seach_text: ''\r\n };\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n this.setState({ seach_text: event.target.value })}\r\n onKeyDown={e => {\r\n if (e.key === 'Enter') {\r\n this.props.onClick(this.state.seach_text);\r\n }\r\n }}\r\n />\r\n {this.props.is_loading ? (\r\n \r\n ) : (\r\n this.props.onClick(this.state.seach_text)}\r\n size=\"small\"\r\n color=\"primary\">\r\n \r\n \r\n \r\n Search\r\n \r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(User);\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n Button\r\n} from '@material-ui/core';\r\nimport CONST_DATA from 'constant';\r\nimport SearchText from './SearchText';\r\nimport Axios from 'axios';\r\n\r\nconst columns = [\r\n { label: 'CS confirm', minWidth: 10 },\r\n { label: 'ID', minWidth: 10 },\r\n { label: 'Ngày', minWidth: 10 },\r\n { label: 'Diễn giải', minWidth: 10 },\r\n { label: 'Số bút toán', minWidth: 10 },\r\n { label: 'Số tiền', minWidth: 10 },\r\n { label: 'Bank', minWidth: 10 },\r\n { label: 'Mã case', minWidth: 10 },\r\n { label: 'CS Xác nhận', minWidth: 10 },\r\n { label: 'Ghi chú', minWidth: 10 }\r\n];\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n container: {\r\n maxHeight: '70vh'\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 170\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n access_token: this.props.access_token,\r\n user_id: this.props.user_id,\r\n data: this.props.data,\r\n data_success: false,\r\n search_key: '',\r\n\r\n is_loading: false\r\n };\r\n }\r\n\r\n get_data = search_key => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n search_key: search_key\r\n };\r\n\r\n this.setState({\r\n is_loading: true\r\n });\r\n\r\n Axios.post(CONST_DATA.ketoan_search_item, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: response.data.data,\r\n is_loading: false\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n this.get_data(this.state.search_key);\r\n }\r\n\r\n cs_confirm = (id_chuyen_tien_sai, ticket_id) => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n id_chuyen_tien_sai: id_chuyen_tien_sai,\r\n ticket_id: ticket_id\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_cs_confirm, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.props.refesh_page();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n this.get_data(search_key)}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {columns.map(column => (\r\n \r\n {column.label}\r\n \r\n ))}\r\n \r\n \r\n \r\n {this.state.data_success\r\n ? this.state.data.map((row, index) => (\r\n \r\n \r\n \r\n this.cs_confirm(row.id, this.props.ticket_id)\r\n }\r\n variant=\"outlined\"\r\n size=\"small\"\r\n color=\"primary\">\r\n Select\r\n \r\n \r\n {row.id}\r\n {row.ngay}\r\n {row.dien_giai}\r\n {row.so_but_toan}\r\n \r\n {row.so_tien\r\n .toString()\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\r\n \r\n {row.bank}\r\n {row.ma_case}\r\n {row.cs_confirm.toString()}\r\n \r\n {row.note === null ? null : row.note.toString()}\r\n \r\n \r\n ))\r\n : null}\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(User);\r\n","import React, { Component } from 'react';\r\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n Button\r\n} from '@material-ui/core';\r\n\r\nimport CONST_DATA from 'constant';\r\nimport Axios from 'axios';\r\n\r\nconst columns = [\r\n { label: 'CS unconfirm', minWidth: 10 },\r\n { label: 'Ngày', minWidth: 10 },\r\n { label: 'Số tiền', minWidth: 10 },\r\n { label: 'Bank', minWidth: 10 },\r\n { label: 'Diễn giải', minWidth: 10 },\r\n { label: 'Số bút toán', minWidth: 10 },\r\n { label: 'Mã case', minWidth: 10 },\r\n { label: 'ID', minWidth: 10 },\r\n { label: 'Ghi chú', minWidth: 10 }\r\n];\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n container: {\r\n maxHeight: '70vh'\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 170\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n access_token: this.props.access_token,\r\n user_id: this.props.user_id,\r\n data: this.props.data,\r\n data_success: false,\r\n id_chuyen_tien_sai: this.props.id_chuyen_tien_sai,\r\n ticket_id: this.props.ticket_id\r\n };\r\n }\r\n\r\n get_data = () => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n id_chuyen_tien_sai: this.state.id_chuyen_tien_sai\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_get_by_id, body_req)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: response.data.data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n this.get_data();\r\n }\r\n\r\n cs_undo_confirm = (id_chuyen_tien_sai, ticket_id) => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n id_chuyen_tien_sai: id_chuyen_tien_sai,\r\n ticket_id: ticket_id\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_cs_undo_confirm, body_req)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n this.props.refesh_page();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n render_delete = () => {\r\n if (this.props.status_id == 400 || this.props.status_id == 200) {\r\n return null;\r\n } else {\r\n return (\r\n \r\n this.cs_undo_confirm(this.state.data.id, this.props.ticket_id)\r\n }\r\n variant=\"outlined\"\r\n size=\"small\"\r\n color=\"primary\">\r\n Delete\r\n \r\n );\r\n }\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {columns.map((column, index) => (\r\n \r\n {column.label}\r\n \r\n ))}\r\n \r\n \r\n \r\n {this.state.data_success == true && this.state.data != null ? (\r\n \r\n {this.render_delete()}\r\n {this.state.data.ngay}\r\n \r\n {this.state.data.so_tien\r\n .toString()\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\r\n \r\n {this.state.data.bank}\r\n {this.state.data.dien_giai}\r\n {this.state.data.so_but_toan}\r\n {this.state.data.ma_case}\r\n {this.state.data.id}\r\n\r\n \r\n {this.state.data.note == null\r\n ? null\r\n : this.state.data.note.toString()}\r\n \r\n \r\n ) : null}\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(User);\r\n","import React, { Component } from 'react';\r\nimport { Card, Button, Typography, CircularProgress, Paper } from '@material-ui/core';\r\nimport Axios from 'axios';\r\nimport CONST_DATA from 'constant';\r\nimport { status_detail } from 'utility';\r\nimport { Link } from 'react-router-dom';\r\nimport { send_status_api, send_ly_do_bo_qua_api } from './Api';\r\nconst ImageBase64 = ({ data }) => \r\nconst renderType = (base64Data) => base64Data.substring(\"data:image/\".length, base64Data.indexOf(\";base64\"));\r\nclass DonTrungLap extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n show_list: false,\r\n data: null,\r\n loading: true,\r\n data_success: false\r\n };\r\n }\r\n\r\n checkBase64 = (data) => {\r\n try {\r\n return ['png', 'jpeg', 'jpg'].includes(renderType(data))\r\n } catch (error) {\r\n return false;\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.get_ticket_detail();\r\n }\r\n\r\n\r\n\r\n get_ticket_detail = () => {\r\n const body_req = {\r\n user_id: this.props.user_id,\r\n admin_id: this.props.admin_id,\r\n access_token: this.props.access_token,\r\n ticket_id: this.props.ticket_id\r\n };\r\n\r\n Axios.post(CONST_DATA.admin_get_ticket_trung_lap, body_req)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: response.data.data,\r\n loading: false\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n this.setState({ loading: false })\r\n });\r\n };\r\n\r\n send_status = (status_id, ticket_id) => {\r\n const body_req = {\r\n user_id: this.props.admin_id,\r\n ticket_id: ticket_id,\r\n status_id: status_id,\r\n access_token: this.props.access_token\r\n };\r\n\r\n send_status_api(body_req, () => this.get_ticket_detail());\r\n\r\n const body_req_bo_qua = {\r\n user_id: this.props.admin_id,\r\n ticket_id: ticket_id,\r\n status_id: status_id,\r\n access_token: this.props.access_token,\r\n bo_qua_id: 1 // 1 la trung don\r\n };\r\n send_ly_do_bo_qua_api(body_req_bo_qua, () => window.location.reload());\r\n };\r\n\r\n render_ticket_detail = (item, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Trạng thái hiện tại: {status_detail(item.status_id)}\r\n \r\n\r\n {item.status_id == 10 ? (\r\n this.send_status(200, item.ticket_id)}>\r\n Bỏ qua-trùng đơn\r\n \r\n ) : null}\r\n\r\n Loại yêu cầu: {item.ticket_type}\r\n\r\n {item.ticket_detail.map(item => {\r\n if (item.data && typeof item.data === 'string' && item.data.includes('https://finhay.s3-ap-southeast-1.amazonaws.com')) {\r\n return \r\n \r\n \r\n }\r\n else if (item.type === 'image_upload') {\r\n return (\r\n \r\n );\r\n }\r\n else if (this.checkBase64(item.data)) {\r\n return \r\n }\r\n else {\r\n return (\r\n \r\n {item.type} {' : '}\r\n {item.data}\r\n \r\n );\r\n }\r\n })}\r\n \r\n );\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n {this.state.data_success ? (\r\n this.setState({ show_list: !this.state.show_list })}>\r\n Danh sách: {this.state.data.length} đơn\r\n \r\n ) : null}\r\n {this.state.data_success && this.state.show_list\r\n ? this.state.data.map((item, index) =>\r\n this.render_ticket_detail(item, index)\r\n )\r\n : null}\r\n {this.state.loading && }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default DonTrungLap;\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Box, Button, TextField, TextareaAutosize } from '@material-ui/core';\r\nimport { get_time_second } from 'utility';\r\nimport { send_comment_api } from './Api';\r\n\r\nclass CommentList extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n comment: null\r\n };\r\n }\r\n\r\n send_comment = text => {\r\n const body_req = {\r\n access_token: this.props.access_token,\r\n user_id: this.props.user_id,\r\n ticket_id: this.props.ticket_id,\r\n comment: text,\r\n date: get_time_second()\r\n };\r\n send_comment_api(body_req, () => window.location.reload());\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n this.setState({ comment: event.target.value })}\r\n />\r\n\r\n {this.state.comment != '' ? (\r\n {\r\n this.send_comment(this.state.comment);\r\n this.setState({ comment: '' });\r\n }}>\r\n Gửi\r\n \r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default CommentList;\r\n","import React, { Component } from 'react';\r\nimport { Card, Typography } from '@material-ui/core';\r\nimport { change_transaction_id_api } from './Api';\r\n\r\nclass GiaoViec extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n transaction_id: this.props.data.transaction_id\r\n };\r\n }\r\n\r\n change_transaction = transaction_id => {\r\n const body_req = {\r\n user_id: this.props.user_id,\r\n ticket_id: this.props.ticket_id,\r\n transaction_id: transaction_id,\r\n access_token: this.props.access_token\r\n };\r\n change_transaction_id_api(body_req, () => window.location.reload());\r\n };\r\n\r\n render() {\r\n if (\r\n this.props.data.ticket_type == 'CHUYỂN TIỀN' &&\r\n this.props.data.status_id >= 100\r\n ) {\r\n return (\r\n \r\n \r\n Transaction ID: {this.state.transaction_id}\r\n \r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport default GiaoViec;\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n Button,\r\n} from '@material-ui/core';\r\n\r\nimport CONST_DATA from 'constant';\r\nimport Axios from 'axios';\r\nimport SearchText from './SearchText';\r\n\r\nconst columns = [\r\n { label: 'Lựa chọn', minWidth: 10 },\r\n { label: 'Ngày', minWidth: 10 },\r\n { label: 'Số tiền', minWidth: 10 },\r\n { label: 'Mã rút tiền', minWidth: 10 },\r\n { label: 'Diễn giải', minWidth: 10 },\r\n { label: 'ID', minWidth: 10 },\r\n { label: 'Mã case', minWidth: 10 },\r\n { label: 'CS', minWidth: 10 },\r\n { label: 'Ghi chú', minWidth: 10 }\r\n];\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n container: {\r\n maxHeight: '70vh'\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 170\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n access_token: this.props.access_token,\r\n user_id: this.props.user_id,\r\n data: this.props.data,\r\n data_success: false,\r\n open_delete: false,\r\n id_delete: null,\r\n data_delete: null,\r\n note_change: null\r\n };\r\n }\r\n\r\n get_data = () => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n search_key: ''\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_hoan_tra_search_item, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: response.data.data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n search_data = search_key => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n search_key: search_key\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_hoan_tra_search_item, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: response.data.data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n this.get_data();\r\n }\r\n\r\n cs_confirm = (id_hoan_tra, ticket_id) => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n id_hoan_tra: id_hoan_tra,\r\n ticket_id: ticket_id\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_hoan_tra_cs_match, body_req)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n this.props.refesh_page();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n this.search_data(search_key)} />\r\n \r\n \r\n \r\n \r\n \r\n {columns.map(column => (\r\n \r\n {column.label}\r\n \r\n ))}\r\n \r\n \r\n \r\n {this.state.data_success\r\n ? this.state.data.map((row, index) => (\r\n \r\n \r\n \r\n this.cs_confirm(row.id, this.props.ticket_id)\r\n }\r\n variant=\"outlined\"\r\n size=\"small\"\r\n color=\"primary\">\r\n Select\r\n \r\n \r\n {row.date}\r\n \r\n {row.so_tien\r\n .toString()\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\r\n \r\n\r\n {row.ma_rut_tien}\r\n {row.dien_giai}\r\n {row.id}\r\n {row.ma_case}\r\n {row.cs_match ? 'yes' : 'no'}\r\n \r\n {row.note == null ? null : row.note.toString()}\r\n \r\n \r\n ))\r\n : null}\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(User);\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Typography, Button, Card } from '@material-ui/core';\r\n\r\nimport CONST_DATA from 'constant';\r\nimport Axios from 'axios';\r\nimport { status_hoan_tra } from '../../utility';\r\n\r\nconst styles = theme => ({\r\n root: {}\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n access_token: this.props.access_token,\r\n user_id: this.props.user_id,\r\n data: this.props.data,\r\n data_success: false\r\n };\r\n }\r\n\r\n get_data = () => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n id_hoan_tra: this.props.id_hoan_tra\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_hoan_tra_get_by_id, body_req)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n let data = response.data.data || {}\r\n this.setState({\r\n data_success: true,\r\n data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n this.get_data();\r\n }\r\n\r\n cs_undo_confirm = () => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n id_hoan_tra: this.props.id_hoan_tra,\r\n ticket_id: this.props.ticket_id\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_hoan_tra_cs_undo_match, body_req)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n this.props.refesh_page();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n send_status = status_id => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n status_id: status_id,\r\n id_hoan_tra: this.props.id_hoan_tra\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_hoan_tra_change_status, body_req)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n this.props.refesh_page();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n button_change_status = (status_id, text) => {\r\n return (\r\n this.send_status(status_id)}>\r\n {text}\r\n \r\n );\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n if (this.state.data_success) {\r\n const row = this.state.data;\r\n\r\n return (\r\n \r\n {(this.state.data.status_id == 300 ||\r\n this.state.data.status_id == 200) ? null : (\r\n this.cs_undo_confirm()}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n color=\"primary\">\r\n Xóa lựa chọn\r\n \r\n )}\r\n\r\n \r\n Thông tin hoàn trả\r\n \r\n \r\n Trạng thái: {status_hoan_tra(row.status_id)}\r\n \r\n \r\n {'Ngày: '}\r\n {row.date}\r\n \r\n \r\n {'Số tiền: '}\r\n {row.so_tien.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\r\n \r\n \r\n {' '}\r\n {'Mã rút tiền: '} {row.ma_rut_tien}\r\n \r\n \r\n {'Diễn giải: '}\r\n {row.dien_giai}\r\n \r\n \r\n {'Mã hoàn trả: '}\r\n {row.id}\r\n \r\n \r\n {'Mã case : '} {row.ma_case}\r\n \r\n \r\n {row.note == null ? null : 'Ghi chú: ' + row.note.toString()}\r\n \r\n\r\n {!this.props.id_hoan_tra && this.state.data.status_id !== 300 && this.button_change_status(100, 'Đã thông báo')}\r\n {!this.props.id_hoan_tra && this.state.data.status_id !== 300 && this.button_change_status(200, 'Đã cập nhật')}\r\n\r\n {this.props.role_admin == CONST_DATA.ROLE_KE_TOAN\r\n ? this.button_change_status(300, 'Đã chuyển tiền')\r\n : null}\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(User);\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n\r\n Card,\r\n Typography\r\n} from '@material-ui/core';\r\nimport { to_date_min } from 'utility';\r\nimport Axios from 'axios';\r\nimport CONST_DATA from 'constant';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass GiaoViec extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n all_admin_data: null,\r\n all_admin_success: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.get_all_admin();\r\n }\r\n\r\n get_all_admin = () => {\r\n Axios.get(CONST_DATA.get_all_admin)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.setState({\r\n all_admin_data: response.data.data,\r\n all_admin_success: true\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n find_admin = id => {\r\n return this.state.all_admin_data.find(x => x.user_id == id).full_name;\r\n };\r\n\r\n card_info = (from, to, time, index) => {\r\n return (\r\n \r\n Từ : {this.find_admin(from)}\r\n Đến : {this.find_admin(to)}\r\n {to_date_min(time)}\r\n \r\n );\r\n };\r\n\r\n render() {\r\n if (this.state.all_admin_success) {\r\n return (\r\n \r\n \r\n Lịch sử giao việc\r\n \r\n {this.props.admin_assign_log.map((item, index) =>\r\n this.card_info(item.from, item.to, item.date, index)\r\n )}\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(GiaoViec);\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Card,\r\n Typography,\r\n FormControl,\r\n FormControlLabel,\r\n FormGroup,\r\n FormLabel,\r\n Checkbox,\r\n Button\r\n} from '@material-ui/core';\r\n\r\nimport { get_time_second } from 'utility';\r\nimport CONST_DATA from 'constant';\r\nimport Axios from 'axios';\r\n\r\nclass QuyTrinh extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n quy_trinh: {\r\n key_1_1: {\r\n title: '1.1 Sai mã đơn',\r\n check: false,\r\n cs_id: null,\r\n time: null\r\n },\r\n key_1_2: {\r\n title: '1.2 Trùng mã đơn',\r\n check: false,\r\n cs_id: null,\r\n time: null\r\n },\r\n key_2_1: {\r\n title: '2.1 Tìm tiền về, xác định ngày chuyển tiền của user',\r\n check: false,\r\n cs_id: null,\r\n time: null\r\n },\r\n key_3_1: {\r\n title:\r\n '3.1 Kiểm tra trên hệ thống (mb với tiết kiệm, CL và DBM với đầu tư) xem giao dịch đó đã khớp chưa',\r\n check: false,\r\n cs_id: null,\r\n time: null\r\n },\r\n key_4_1: {\r\n title: '4.1 Nếu chưa khớp --> Check xem có nối được không',\r\n check: false,\r\n cs_id: null,\r\n time: null\r\n },\r\n key_4_2: {\r\n title:\r\n '4.2 Nếu đã khớp --> bỏ qua, viết comment lý do bỏ qua cho user',\r\n check: false,\r\n cs_id: null,\r\n time: null\r\n },\r\n key_5_1: {\r\n title: '5.1 có giao dịch tiền để nối',\r\n check: false,\r\n cs_id: null,\r\n time: null\r\n },\r\n key_5_2: {\r\n title:\r\n '5.2 Nếu chưa có giao dịch tiền để nối --> assign sang kế toán đề nghị thêm giao dịch tiền về (viết chi tiết trong phần ghi chú, gồm có: Mã khớp lệnh + Số bút toán đã được khớp lệnh Số bút toán chưa khớp lệnh)',\r\n check: false,\r\n cs_id: null,\r\n time: null\r\n },\r\n key_6_1: {\r\n title:\r\n '6.1 Kế toán up giao dịch CS đề nghị lên phần Bổ sung giao dịch trùng (note rõ ghi chú nếu cần), assign lại cho CS',\r\n check: false,\r\n cs_id: null,\r\n time: null\r\n },\r\n key_7_1: {\r\n title: '7.1 Tìm tiền, nối Assign sang kế toán khớp lệnh',\r\n check: false,\r\n cs_id: null,\r\n time: null\r\n },\r\n key_8_1: {\r\n title:\r\n '8.1 Đảm bảo tiền về (check sao kê ngân hàng) Đảm bảo giao dịch chưa được khớp (check hệ thống) + check phần note của kế toán up lệnh Đọc hội thoại cmt của user với Finhay đã có',\r\n check: false,\r\n cs_id: null,\r\n time: null\r\n },\r\n key_9_1: {\r\n title:\r\n '9.1 TH1. Có tiền về, đảm bảo chưa khớp, đã đọc note về hũ, lưu ý --> ok --> ấn Khớp lệnh và gửi trạng thái thành công',\r\n check: false,\r\n cs_id: null,\r\n time: null\r\n },\r\n key_9_2: {\r\n title:\r\n '9.2 TH2. Check thấy sai .viết diễn giải chi tiết lỗi sai, đưa ra quyết định với đơn: Bỏ qua (nếu đã khớp tự động)Assign lại CS, nếu lệnh nối sai',\r\n check: false,\r\n cs_id: null,\r\n time: null\r\n }\r\n }\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.quy_trinh != null) {\r\n this.setState({\r\n quy_trinh: this.props.quy_trinh\r\n });\r\n }\r\n }\r\n\r\n send_quy_trinh = () => {\r\n const body_req = {\r\n access_token: this.props.access_token,\r\n user_id: this.props.admin_id,\r\n quy_trinh: this.state.quy_trinh,\r\n ticket_id: this.props.ticket_id\r\n };\r\n\r\n Axios.post(CONST_DATA.edit_quy_trinh, body_req)\r\n .then(response => {\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n check_box_key = (state_key, state_name) => {\r\n return (\r\n \r\n this.handleChange(e, state_key)}\r\n name={state_name}\r\n />\r\n }\r\n label={state_key.title}\r\n />\r\n \r\n );\r\n };\r\n\r\n handleChange = (event, old_obj) => {\r\n let new_obj = {\r\n ...old_obj,\r\n check: event.target.checked,\r\n cs_id: this.props.admin_id,\r\n time: get_time_second()\r\n };\r\n\r\n this.setState({\r\n quy_trinh: {\r\n ...this.state.quy_trinh,\r\n [event.target.name]: new_obj\r\n }\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n Quy trình\r\n \r\n \r\n Bước 1\r\n {this.check_box_key(this.state.quy_trinh.key_1_1, 'key_1_1')}\r\n {this.check_box_key(this.state.quy_trinh.key_1_2, 'key_1_2')}\r\n {this.state.quy_trinh.key_1_2.check ? (\r\n
\r\n Bước 2\r\n {this.check_box_key(this.state.quy_trinh.key_2_1, 'key_2_1')}\r\n\r\n Bước 3\r\n {this.check_box_key(this.state.quy_trinh.key_3_1, 'key_3_1')}\r\n\r\n {this.state.quy_trinh.key_3_1.check ? (\r\n
\r\n Bước 4\r\n {this.check_box_key(\r\n this.state.quy_trinh.key_4_1,\r\n 'key_4_1'\r\n )}\r\n {this.check_box_key(\r\n this.state.quy_trinh.key_4_2,\r\n 'key_4_2'\r\n )}\r\n\r\n {this.state.quy_trinh.key_4_1.check ? (\r\n
\r\n Bước 5\r\n {this.check_box_key(\r\n this.state.quy_trinh.key_5_1,\r\n 'key_5_1'\r\n )}\r\n {this.check_box_key(\r\n this.state.quy_trinh.key_5_2,\r\n 'key_5_2'\r\n )}\r\n\r\n {this.state.quy_trinh.key_5_2.check &&\r\n this.props.role_admin == CONST_DATA.ROLE_KE_TOAN ? (\r\n
\r\n Bước 6\r\n {this.check_box_key(\r\n this.state.quy_trinh.key_6_1,\r\n 'key_6_1'\r\n )}\r\n
\r\n ) : null}\r\n
\r\n ) : null}\r\n
\r\n ) : null}\r\n
\r\n ) : null}\r\n\r\n {(this.state.quy_trinh.key_1_1.check ||\r\n this.state.quy_trinh.key_5_1.check ||\r\n this.state.quy_trinh.key_6_1.check) &&\r\n !this.state.quy_trinh.key_4_2.check ? (\r\n
\r\n Bước 7\r\n {this.check_box_key(this.state.quy_trinh.key_7_1, 'key_7_1')}\r\n
\r\n ) : null}\r\n\r\n {this.props.role_admin == CONST_DATA.ROLE_KE_TOAN_KHOP_LENH ||\r\n this.props.role_admin == CONST_DATA.ROLE_ADMIN ? (\r\n
\r\n Bước 8\r\n {this.check_box_key(this.state.quy_trinh.key_8_1, 'key_8_1')}\r\n\r\n {this.state.quy_trinh.key_8_1.check ? (\r\n
\r\n Bước 9\r\n {this.check_box_key(\r\n this.state.quy_trinh.key_9_1,\r\n 'key_9_1'\r\n )}\r\n {this.check_box_key(\r\n this.state.quy_trinh.key_9_2,\r\n 'key_9_2'\r\n )}\r\n
\r\n ) : null}\r\n
\r\n ) : null}\r\n
\r\n
\r\n this.send_quy_trinh()}>\r\n Lưu lại\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default QuyTrinh;\r\n","import React, { Component } from 'react';\r\nimport { Button, Card, Typography } from '@material-ui/core';\r\nimport Axios from 'axios';\r\nimport CONST_DATA from 'constant';\r\n\r\nclass TruyThu extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n componentDidMount() { }\r\n\r\n add_truy_thu = is_truy_thu => {\r\n const body_req = {\r\n user_id: this.props.user_id,\r\n access_token: this.props.access_token,\r\n ticket_id: this.props.ticket_id,\r\n is_truy_thu: is_truy_thu\r\n };\r\n\r\n Axios.post(CONST_DATA.add_truy_thu, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n window.location.reload();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n render() {\r\n if (\r\n this.props.data.is_truy_thu == null &&\r\n this.props.data.ticket_type === 'CHUYỂN TIỀN' &&\r\n this.props.data.status_id !== 200\r\n ) {\r\n return (\r\n \r\n Gắn tag truy thu\r\n this.add_truy_thu(true)}>\r\n yes\r\n \r\n this.add_truy_thu(false)}\r\n style={{ margin: 10 }}\r\n color=\"primary\"\r\n variant=\"contained\">\r\n no\r\n \r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport default TruyThu;\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Button, Card, Typography, TextField } from '@material-ui/core';\r\nimport Axios from 'axios';\r\nimport CONST_DATA from 'constant';\r\nimport CardCS from './CardCS';\r\nimport { to_date_min } from 'utility';\r\n\r\nclass CommentNoiBo extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n comment: ''\r\n };\r\n }\r\n\r\n componentDidMount() { }\r\n\r\n send_comment = () => {\r\n const body_req = {\r\n user_id: this.props.user_id,\r\n access_token: this.props.access_token,\r\n ticket_id: this.props.ticket_id,\r\n comment: this.state.comment\r\n };\r\n\r\n Axios.post(CONST_DATA.comment_noi_bo, body_req)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n window.location.reload();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n render_comment = () => {\r\n return (\r\n
\r\n {this.props.data.comment_noi_bo.map((item, index) => (\r\n \r\n ))}\r\n
\r\n );\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n Comment nội bộ\r\n this.setState({ comment: event.target.value })}\r\n />\r\n {this.state.comment == '' ? null : (\r\n this.send_comment()}>\r\n Gửi\r\n \r\n )}\r\n {this.props.data.comment_noi_bo == null ? null : this.render_comment()}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default CommentNoiBo;\r\n","import React, { Component } from 'react';\r\nimport {\r\n Button,\r\n Card,\r\n Typography\r\n} from '@material-ui/core';\r\nimport Axios from 'axios';\r\nimport CONST_DATA from 'constant';\r\n\r\n// const styles = theme => ({\r\n// root: {\r\n// padding: theme.spacing(2)\r\n// },\r\n// formControl: {\r\n// margin: theme.spacing(1),\r\n// minWidth: 200\r\n// },\r\n// selectEmpty: {\r\n// marginTop: theme.spacing(2)\r\n// }\r\n// });\r\n\r\nclass CardImage extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n text_ocr: null\r\n };\r\n }\r\n\r\n componentDidMount() { }\r\n\r\n get_ocr = image_name => {\r\n Axios.get(CONST_DATA.ocr_get_ocr + image_name)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.setState({\r\n text_ocr: response.data.data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n });\r\n };\r\n\r\n render() {\r\n return (\r\n \r\n \r\n {this.state.text_ocr}\r\n\r\n {this.state.text_ocr === null ? (\r\n this.get_ocr(this.props.data)}>\r\n lấy thông tin từ ảnh\r\n \r\n ) : null}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default CardImage;\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Button,\r\n FormControl,\r\n Select,\r\n MenuItem,\r\n Card,\r\n InputLabel,\r\n Typography\r\n} from '@material-ui/core';\r\nimport {\r\n send_khop_lenh_api\r\n} from './Api';\r\nimport Axios from 'axios';\r\nimport CONST_DATA from 'constant';\r\nimport { toast } from 'react-toastify';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass KhopLenh extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n money: null,\r\n goal_id: null,\r\n goal_list: null,\r\n data_success: false,\r\n data: null\r\n };\r\n }\r\n\r\n find_goal_id = () => {\r\n Axios.get(CONST_DATA.get_goal_id + this.props.data.user_id)\r\n .then(response => {\r\n if (response.data.message === 'Success') {\r\n this.setState({\r\n goal_list: response.data.result\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n async componentDidMount() {\r\n\r\n await this.find_goal_id();\r\n await this.get_data();\r\n }\r\n\r\n get_data = () => {\r\n const body_req = {\r\n user_id: this.props.user_id,\r\n access_token: this.props.access_token,\r\n id_chuyen_tien_sai: this.props.id_chuyen_tien_sai\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_get_by_id, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: response.data.data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n send_khop_lenh = money => {\r\n\r\n if (this.state.goal_id != null) {\r\n let transactionRef = this.props.transaction_ref\r\n if (this.props.payment_type != 15) {\r\n transactionRef = this.props.ticket_id\r\n }\r\n else {\r\n if (!transactionRef) {\r\n this.notify('error', 'Cần điền mã giao dịch cho OnePAY')\r\n }\r\n else if (!transactionRef.match(/^OnePAY-FT\\w{14}$/)) {\r\n this.notify('error', 'Mã giao dịch OnePAY cần có định dạng OnePAY-FTxxxxxx')\r\n transactionRef = null\r\n }\r\n }\r\n if (transactionRef) {\r\n const body_req = {\r\n access_token: this.props.access_token,\r\n admin_id: this.props.user_id,\r\n money: money,\r\n user_id: this.props.data.user_id,\r\n goal_id: this.state.goal_id.id,\r\n ticket_id: this.props.ticket_id,\r\n payment_type: this.props.payment_type,\r\n transaction_ref: transactionRef\r\n }\r\n send_khop_lenh_api(body_req, () => window.location.reload());\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n if (this.state.data_success) {\r\n return (\r\n \r\n \r\n Tạo lệnh mới và khớp lệnh đầu tư\r\n \r\n \r\n Số tiền:{' '}\r\n {this.state.data.so_tien\r\n .toString()\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\r\n {' VND'}\r\n \r\n\r\n {this.state.goal_list === null ? null : (\r\n \r\n Lựa chọn hũ\r\n \r\n this.setState({\r\n goal_id: event.target.value\r\n })\r\n }>\r\n {this.state.goal_list.map(item => (\r\n {item.title}\r\n ))}\r\n \r\n \r\n )}\r\n\r\n this.send_khop_lenh(this.state.data.so_tien)}\r\n style={{ marginTop: 10 }}\r\n variant=\"contained\">\r\n Xác nhận khớp lênh\r\n \r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n notify = (type, message) => {\r\n switch (type) {\r\n case 'success':\r\n toast.success(message);\r\n break;\r\n case 'error':\r\n toast.error(message);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(KhopLenh);\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Button, Card, Typography } from '@material-ui/core';\r\nimport { send_khop_lenh_tiet_kiem_api } from './Api';\r\nimport Axios from 'axios';\r\nimport CONST_DATA from 'constant';\r\nimport { toast } from 'react-toastify';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass KhopLenh extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n data_success: false,\r\n data: null\r\n };\r\n }\r\n\r\n send_khop_lenh = money => {\r\n let transactionRef = this.props.transaction_ref\r\n if (this.props.payment_type != 18) {\r\n transactionRef = this.props.ticket_id\r\n }\r\n else {\r\n if (!transactionRef) {\r\n this.notify('error', 'Cần điền mã giao dịch cho OnePAY')\r\n }\r\n else if (!transactionRef.match(/^OnePAY-FT\\w{14}$/)) {\r\n this.notify('error', 'Mã giao dịch OnePAY cần có định dạng OnePAY-FTxxxxxx')\r\n transactionRef = null\r\n }\r\n }\r\n if (transactionRef) {\r\n const body_req = {\r\n access_token: this.props.access_token,\r\n admin_id: this.props.user_id,\r\n money: money,\r\n user_id: this.props.data.user_id,\r\n ticket_id: this.props.ticket_id,\r\n payment_type: this.props.payment_type,\r\n transaction_ref: transactionRef\r\n };\r\n send_khop_lenh_tiet_kiem_api(body_req, () => window.location.reload());\r\n }\r\n };\r\n\r\n async componentDidMount() {\r\n await this.get_data();\r\n }\r\n\r\n get_data = () => {\r\n const body_req = {\r\n user_id: this.props.user_id,\r\n access_token: this.props.access_token,\r\n id_chuyen_tien_sai: this.props.id_chuyen_tien_sai\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_get_by_id, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: response.data.data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n render() {\r\n if (this.state.data_success) {\r\n return (\r\n \r\n \r\n Tạo lệnh mới và khớp lệnh tiết kiệm\r\n \r\n \r\n Số tiền:{' '}\r\n {this.state.data.so_tien\r\n .toString()\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\r\n {' VND'}\r\n \r\n\r\n this.send_khop_lenh(this.state.data.so_tien)}\r\n style={{ marginTop: 10 }}\r\n variant=\"contained\">\r\n Xác nhận khớp lênh\r\n \r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n notify = (type, message) => {\r\n switch (type) {\r\n case 'success':\r\n toast.success(message);\r\n break;\r\n case 'error':\r\n toast.error(message);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(KhopLenh);\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Button, Card, Typography } from '@material-ui/core';\r\nimport {\r\n send_khop_lenh_cuu_long_api\r\n} from './Api';\r\nimport Axios from 'axios';\r\nimport CONST_DATA from 'constant';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass KhopLenh extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n data_success: false,\r\n data: null\r\n };\r\n }\r\n\r\n send_khop_lenh = money => {\r\n const body_req = {\r\n access_token: this.props.access_token,\r\n admin_id: this.props.user_id,\r\n money: money,\r\n user_id: this.props.data.user_id,\r\n ticket_id: this.props.ticket_id\r\n };\r\n send_khop_lenh_cuu_long_api(body_req, () => window.location.reload());\r\n };\r\n\r\n async componentDidMount() {\r\n await this.get_data();\r\n }\r\n\r\n get_data = () => {\r\n const body_req = {\r\n user_id: this.props.user_id,\r\n access_token: this.props.access_token,\r\n id_chuyen_tien_sai: this.props.id_chuyen_tien_sai\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_get_by_id, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: response.data.data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n render() {\r\n if (this.state.data_success) {\r\n return (\r\n \r\n \r\n Tạo lệnh mới và khớp lệnh cửu long\r\n \r\n \r\n Số tiền:{' '}\r\n {this.state.data.so_tien\r\n .toString()\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\r\n {' VND'}\r\n \r\n\r\n this.send_khop_lenh(this.state.data.so_tien)}\r\n style={{ marginTop: 10 }}\r\n variant=\"contained\">\r\n Xác nhận khớp lênh\r\n \r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(KhopLenh);\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Button, Card, Typography } from '@material-ui/core';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormLabel from '@material-ui/core/FormLabel';\r\nimport {\r\n send_khop_lenh_cd_3_thang_api\r\n} from './Api';\r\nimport { toast } from 'react-toastify';\r\nimport Axios from 'axios';\r\nimport CONST_DATA from 'constant';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass KhopLenhCD3M extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n data_success: false,\r\n data: null,\r\n partner_code: 'FINHAY',\r\n error: null\r\n };\r\n }\r\n\r\n notify = (type, message) => {\r\n switch (type) {\r\n case 'success':\r\n toast.success(message);\r\n break;\r\n case 'error':\r\n toast.error(message);\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n }\r\n\r\n send_khop_lenh = () => {\r\n let { access_token, user_id, money, ticket_id, payment_type, admin_id, transaction_ref } = this.props;\r\n // money = parseInt(money.replaceAll(',', ''))\r\n let transactionRef = transaction_ref\r\n if (this.props.payment_type != 2) {\r\n transactionRef = ticket_id\r\n }\r\n else {\r\n if (!transactionRef) {\r\n this.notify('error', 'Cần điền mã giao dịch cho OnePAY')\r\n }\r\n else if (!transactionRef.match(/^OnePAY-FT\\w{14}$/)) {\r\n this.notify('error', 'Mã giao dịch OnePAY cần có định dạng OnePAY-FTxxxxxx')\r\n transactionRef = null\r\n }\r\n }\r\n if (transactionRef) {\r\n const body_req = {\r\n access_token,\r\n admin_id,\r\n user_id,\r\n money,\r\n ticket_id,\r\n payment_type,\r\n loai_lenh: 'cd_3_thang',\r\n partner_code: this.state.partner_code,\r\n source: \"CS\",\r\n transaction_ref: transactionRef\r\n }\r\n Axios.post(CONST_DATA.ke_toan_khop_lenh, body_req)\r\n .then(response => {\r\n const result = response.data;\r\n if (result.data.message === 'success') {\r\n this.setState({\r\n response_data: result.data.message\r\n });\r\n this.notify('success', 'Khớp lệnh thành công cho CD3M.')\r\n setTimeout(() => {\r\n window.location.reload()\r\n }, 1500);\r\n }\r\n else {\r\n this.notify('error', result.data.message)\r\n }\r\n })\r\n .catch(error => {\r\n this.notify('error', error.message)\r\n });\r\n }\r\n };\r\n\r\n handlePartnerRadioChange = (event) => {\r\n\r\n };\r\n\r\n async componentDidMount() {\r\n await this.get_data();\r\n }\r\n\r\n get_data = () => {\r\n const body_req = {\r\n user_id: this.props.admin_id,\r\n access_token: this.props.access_token,\r\n id_chuyen_tien_sai: this.props.id_chuyen_tien_sai\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_get_by_id, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: response.data.data\r\n });\r\n\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n render() {\r\n if (this.state.data_success) {\r\n return (\r\n \r\n \r\n Tạo lệnh mới và khớp lệnh CD 3 tháng\r\n \r\n \r\n Số tiền:{' '}\r\n {this.state.data.so_tien\r\n .toString()\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\r\n {' VND'}\r\n \r\n\r\n \r\n Partner code\r\n \r\n } label=\"FINHAY\" />\r\n {/* } label=\"MOMO\" /> */}\r\n \r\n \r\n this.send_khop_lenh(this.state.data.so_tien)}\r\n style={{ marginTop: 10 }}\r\n variant=\"contained\">\r\n Xác nhận khớp lênh\r\n \r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(KhopLenhCD3M);\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Button, Card, Typography } from '@material-ui/core';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport RadioGroup from '@material-ui/core/RadioGroup';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport FormLabel from '@material-ui/core/FormLabel';\r\nimport { toast } from 'react-toastify';\r\nimport Axios from 'axios';\r\nimport CONST_DATA from 'constant';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass KhopLenhCD12M extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n data_success: false,\r\n data: null,\r\n partner_code: 'FINHAY',\r\n error: null\r\n };\r\n }\r\n\r\n notify = (type, message) => {\r\n switch (type) {\r\n case 'success':\r\n toast.success(message);\r\n break;\r\n case 'error':\r\n toast.error(message);\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n }\r\n\r\n send_khop_lenh = () => {\r\n let { access_token, user_id, money, ticket_id, payment_type, admin_id, transaction_ref } = this.props;\r\n // money = parseInt(money.replaceAll(',', ''))\r\n let transactionRef = transaction_ref\r\n if (this.props.payment_type != 2) {\r\n transactionRef = ticket_id\r\n }\r\n else {\r\n if (!transactionRef) {\r\n this.notify('error', 'Cần điền mã giao dịch cho OnePAY')\r\n }\r\n else if (!transactionRef.match(/^OnePAY-FT\\w{14}$/)) {\r\n this.notify('error', 'Mã giao dịch OnePAY cần có định dạng OnePAY-FTxxxxxx')\r\n transactionRef = null\r\n }\r\n }\r\n if (transactionRef) {\r\n const body_req = {\r\n access_token,\r\n admin_id,\r\n user_id,\r\n money,\r\n ticket_id,\r\n payment_type,\r\n loai_lenh: 'cd_12_thang',\r\n partner_code: this.state.partner_code,\r\n source: \"CS\",\r\n transaction_ref: transactionRef\r\n }\r\n Axios.post(CONST_DATA.ke_toan_khop_lenh, body_req)\r\n .then(response => {\r\n const result = response.data;\r\n if (result.data.message === 'success') {\r\n this.setState({\r\n response_data: result.data.message\r\n });\r\n this.notify('success', 'Khớp lệnh thành công cho CD12M.')\r\n setTimeout(() => {\r\n window.location.reload()\r\n }, 1500);\r\n }\r\n else {\r\n this.notify('error', result.data.message)\r\n }\r\n })\r\n .catch(error => {\r\n this.notify('error', error.message)\r\n });\r\n }\r\n };\r\n\r\n handlePartnerRadioChange = (event) => {\r\n\r\n };\r\n\r\n async componentDidMount() {\r\n await this.get_data();\r\n }\r\n\r\n get_data = () => {\r\n const body_req = {\r\n user_id: this.props.admin_id,\r\n access_token: this.props.access_token,\r\n id_chuyen_tien_sai: this.props.id_chuyen_tien_sai\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_get_by_id, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: response.data.data\r\n });\r\n\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n render() {\r\n if (this.state.data_success) {\r\n return (\r\n \r\n \r\n Tạo lệnh mới và khớp lệnh CD 12 tháng\r\n \r\n \r\n Số tiền:{' '}\r\n {this.state.data.so_tien\r\n .toString()\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\r\n {' VND'}\r\n \r\n\r\n \r\n Partner code\r\n \r\n } label=\"FINHAY\" />\r\n {/* } label=\"MOMO\" /> */}\r\n \r\n \r\n this.send_khop_lenh(this.state.data.so_tien)}\r\n style={{ marginTop: 10 }}\r\n variant=\"contained\">\r\n Xác nhận khớp lênh\r\n \r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(KhopLenhCD12M);\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Button,\r\n Card,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n ButtonGroup,\r\n Typography,\r\n TextField\r\n} from '@material-ui/core';\r\nimport { portfolio_type_to_string } from 'utility';\r\nimport { toast } from 'react-toastify';\r\nimport Axios from 'axios';\r\nimport CONST_DATA from 'constant';\r\nimport KhopLenhDauTu from './KhopLenhDauTu';\r\nimport KhopLenhTietkiem from './KhopLenhTietkiem';\r\nimport KhopLenhCuuLong from './KhopLenhCuuLong';\r\nimport KhopLenhCD3M from './KhopLenhCD3M';\r\nimport KhopLenhCD12M from \"./KhopLenhCD12M\"\r\n\r\nconst columns = [\r\n { label: 'khớp lệnh', minWidth: 10 },\r\n { label: 'Trans_id', minWidth: 10 },\r\n { label: 'Ngày', minWidth: 10 },\r\n { label: 'Số tiền user đặt', minWidth: 10 },\r\n { label: 'Hũ đầu tư', minWidth: 10 }\r\n];\r\n\r\nconst styles = theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n container: {\r\n maxHeight: '40vh'\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n },\r\n card: {\r\n backgroundColor: 'rgb(187,222,251)',\r\n marginTop: 10,\r\n padding: 10\r\n }\r\n});\r\n\r\nclass KhopLenh extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n data: null,\r\n data_success: false,\r\n loai_lenh: null,\r\n data_chuyen_tien_sai: null,\r\n data_chuyen_tien_sai_success: false,\r\n response_data: null,\r\n payment_type: 0\r\n };\r\n }\r\n\r\n get_pending = loai_lenh => {\r\n // loai_lenh = 'cd_3_thang'\r\n // this.setState({\r\n // loai_lenh: loai_lenh\r\n // });\r\n\r\n let body_req = {\r\n\r\n access_token: this.props.access_token,\r\n admin_id: this.props.user_id,\r\n user_id: this.props.data.user_id,\r\n loai_lenh: loai_lenh\r\n };\r\n // let body_req = {\r\n // \"access_token\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjotMTU5MTY5MTExOCwidXNlcl9uYW1lIjoia2V0b2Fua2hvcGxlbmhAZmluaGF5LmNvbS52biIsInBhc3N3b3JkIjoia2V0b2Fua2hvcGxlbmhAZmluaGF5LmNvbS52biIsImZ1bGxfbmFtZSI6IktlIHRvYW4ga2hvcCBsZW5oIiwiY3JlYXRlZF9hdCI6MTU5MTY5MTExOCwicm9sZSI6MTAwfQ.MevbILzksNKWl8_3h-OQmrWa1ZuEOeAlyUo04cl6bXI\",\r\n // \"admin_id\": \"-1591691118\",\r\n // \"loai_lenh\": \"cd_3_thang\",\r\n // \"user_id\": 1153\r\n // }\r\n\r\n\r\n\r\n Axios.post(CONST_DATA.lay_list_pending, body_req)\r\n .then(response => {\r\n const messageResponse = response.data.message\r\n if (messageResponse === 'success' || messageResponse === 'Success') {\r\n this.setState({\r\n data_success: true,\r\n data: response.data.result,\r\n loai_lenh: loai_lenh\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n get_chuyen_tien_sai = () => {\r\n const body_req = {\r\n user_id: this.props.user_id,\r\n access_token: this.props.access_token,\r\n id_chuyen_tien_sai: this.props.data.id_chuyen_tien_sai\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_get_by_id, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.setState({\r\n data_chuyen_tien_sai_success: true,\r\n data_chuyen_tien_sai: response.data.data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n let loai_lenh = this.props.data.ticket_detail[0].data;\r\n // alert(loai_lenh);\r\n\r\n if (loai_lenh === 'Cửu long') {\r\n loai_lenh = CONST_DATA.loai_cuu_long;\r\n }\r\n if (loai_lenh === 'Tiết kiệm') {\r\n loai_lenh = CONST_DATA.loai_tiet_kiem;\r\n }\r\n if (loai_lenh === 'Đầu tư') {\r\n loai_lenh = CONST_DATA.loai_dau_tu;\r\n }\r\n\r\n if (loai_lenh === 'Tích lũy 3 tháng') {\r\n loai_lenh = CONST_DATA.loai_cd_3_thang;\r\n }\r\n if (loai_lenh === 'CD 3 tháng') {\r\n loai_lenh = CONST_DATA.loai_cd_3_thang;\r\n }\r\n\r\n if (loai_lenh === 'Tích luỹ 12 tháng') {\r\n loai_lenh = CONST_DATA.loai_cd_12_thang;\r\n }\r\n\r\n\r\n\r\n this.setState({\r\n loai_lenh: loai_lenh\r\n });\r\n\r\n this.get_pending(loai_lenh);\r\n this.get_chuyen_tien_sai();\r\n }\r\n\r\n render_button = (loai_lenh, title) => {\r\n return (\r\n this.get_pending(loai_lenh)}>\r\n {title}\r\n \r\n );\r\n };\r\n\r\n render_button_payment_type = (title, payment_type) => {\r\n if ([CONST_DATA.loai_cd_3_thang, CONST_DATA.loai_cd_12_thang].includes(this.state.loai_lenh)\r\n && [5, 6].includes(payment_type)) {\r\n return null\r\n }\r\n return (\r\n this.setState({ payment_type: payment_type })}\r\n color={this.state.payment_type == payment_type ? 'primary' : 'default'}>\r\n {title}\r\n \r\n );\r\n };\r\n\r\n notify = (type, message) => {\r\n switch (type) {\r\n case 'success':\r\n toast.success(message);\r\n break;\r\n case 'error':\r\n toast.error(message);\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n }\r\n\r\n confirm_khop_lenh = row => {\r\n let transactionRef = this.getTransactionRef()\r\n if (transactionRef) {\r\n let actualPaymentType = this.getActualPaymentType()\r\n\r\n const body_req = {\r\n access_token: this.props.access_token,\r\n admin_id: this.props.user_id,\r\n loai_lenh: this.state.loai_lenh,\r\n trans_id: row.transaction_id,\r\n money: this.state.data_chuyen_tien_sai.so_tien,\r\n ticket_id: this.props.ticket_id,\r\n payment_type: actualPaymentType,\r\n transaction_ref: transactionRef,\r\n user_id: this.props.data.user_id\r\n };\r\n\r\n Axios.post(CONST_DATA.ke_toan_khop_lenh, body_req)\r\n .then(response => {\r\n this.setState({\r\n response_data: response.data.data.message\r\n });\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n };\r\n\r\n confirm_khop_lenh_cd3M = row => {\r\n let transactionRef = this.getTransactionRef()\r\n if (transactionRef) {\r\n let actualPaymentType = this.getActualPaymentType()\r\n let { id, partner_code, source } = row;\r\n if (!partner_code) partner_code = 'FINHAY';\r\n const body_req = {\r\n access_token: this.props.access_token,\r\n admin_id: this.props.user_id,\r\n loai_lenh: 'cd_3_thang',\r\n trans_id: id,\r\n money: this.state.data_chuyen_tien_sai.so_tien,\r\n ticket_id: this.props.ticket_id,\r\n payment_type: actualPaymentType,\r\n source: 'CS',\r\n partner_code,\r\n user_id: this.props.data.user_id,\r\n transaction_ref: transactionRef\r\n };\r\n\r\n Axios.post(CONST_DATA.ke_toan_khop_lenh, body_req)\r\n .then(response => {\r\n // this.setState({\r\n // response_data: response.data.data.message\r\n // }); \r\n const result = response.data;\r\n if (result.data.message === 'success') {\r\n this.setState({\r\n response_data: result.data.message\r\n });\r\n this.notify('success', 'Khớp lệnh thành công cho CD3M.')\r\n setTimeout(() => {\r\n window.location.reload()\r\n }, 1500);\r\n }\r\n else {\r\n this.notify('error', result.data.message)\r\n }\r\n })\r\n .catch(error => {\r\n this.notify('error', error.message)\r\n console.log(error);\r\n })\r\n }\r\n };\r\n\r\n confirm_khop_lenh_cd12M = row => {\r\n let transactionRef = this.getTransactionRef()\r\n if (transactionRef) {\r\n let actualPaymentType = this.getActualPaymentType()\r\n let { id, partner_code, source } = row;\r\n if (!partner_code) partner_code = 'FINHAY';\r\n const body_req = {\r\n access_token: this.props.access_token,\r\n admin_id: this.props.user_id,\r\n loai_lenh: 'cd_12_thang',\r\n trans_id: id,\r\n money: this.state.data_chuyen_tien_sai.so_tien,\r\n ticket_id: this.props.ticket_id,\r\n payment_type: actualPaymentType,\r\n source: 'CS',\r\n partner_code,\r\n user_id: this.props.data.user_id,\r\n transaction_ref: transactionRef\r\n };\r\n\r\n Axios.post(CONST_DATA.ke_toan_khop_lenh, body_req)\r\n .then(response => {\r\n // this.setState({\r\n // response_data: response.data.data.message\r\n // }); \r\n const result = response.data;\r\n if (result.data.message === 'success') {\r\n this.setState({\r\n response_data: result.data.message\r\n });\r\n this.notify('success', 'Khớp lệnh thành công cho CD12M.')\r\n setTimeout(() => {\r\n window.location.reload()\r\n }, 1500);\r\n }\r\n else {\r\n this.notify('error', result.data.message)\r\n }\r\n })\r\n .catch(error => {\r\n this.notify('error', error.message)\r\n console.log(error);\r\n });\r\n }\r\n }\r\n\r\n render_create_and_match = () => {\r\n if (this.state.loai_lenh == CONST_DATA.loai_dau_tu) {\r\n return (\r\n \r\n );\r\n }\r\n if (this.state.loai_lenh == CONST_DATA.loai_tiet_kiem) {\r\n return (\r\n \r\n );\r\n }\r\n // if (this.state.loai_lenh == CONST_DATA.loai_cuu_long) {\r\n // return (\r\n // \r\n // );\r\n // }\r\n if (this.state.loai_lenh == CONST_DATA.loai_cd_3_thang) {\r\n return (\r\n \r\n );\r\n }\r\n if (this.state.loai_lenh == CONST_DATA.loai_cd_12_thang) {\r\n return (\r\n \r\n )\r\n }\r\n };\r\n\r\n render_table_data_CD3M = (data) => {\r\n return \r\n {data.map((row, index) => {\r\n return (\r\n \r\n \r\n this.confirm_khop_lenh_cd3M(row)}>\r\n Confirm{' '}\r\n {this.state.data_chuyen_tien_sai != null\r\n ? this.state.data_chuyen_tien_sai.so_tien\r\n .toString()\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\r\n : null}\r\n \r\n \r\n {row.id}\r\n {row.created_at}\r\n \r\n {row.place_amount}\r\n \r\n \r\n {row.portfolio_type == null\r\n ? null\r\n : portfolio_type_to_string(row.portfolio_type)}\r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n }\r\n\r\n\r\n render_table_data_CD12M = (data) => {\r\n console.log(data)\r\n return \r\n {data.map((row, index) => {\r\n return (\r\n \r\n \r\n this.confirm_khop_lenh_cd12M(row)}>\r\n Xác nhận{' '}\r\n {this.state.data_chuyen_tien_sai != null\r\n ? this.state.data_chuyen_tien_sai.so_tien\r\n .toString()\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\r\n : null}\r\n \r\n \r\n {row.id}\r\n {row.created_at}\r\n \r\n {row.place_amount}\r\n \r\n \r\n {row.portfolio_type == null\r\n ? null\r\n : portfolio_type_to_string(row.portfolio_type)}\r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n }\r\n\r\n render_table_data = (data) => {\r\n // alert('table')\r\n return \r\n {data.map((row, index) => (\r\n \r\n \r\n this.confirm_khop_lenh(row)}>\r\n Confirm{' '}\r\n {this.state.data_chuyen_tien_sai != null\r\n ? this.state.data_chuyen_tien_sai.so_tien\r\n .toString()\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')\r\n : null}\r\n \r\n \r\n {row.transaction_id}\r\n {row.created_at}\r\n \r\n {row.money\r\n .toString()\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\r\n \r\n \r\n {row.portfolio_type == null\r\n ? null\r\n : portfolio_type_to_string(row.portfolio_type)}\r\n \r\n \r\n ))}\r\n \r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n let table;\r\n if (this.state.data_success && this.state.loai_lenh == CONST_DATA.loai_cd_3_thang) {\r\n table = this.render_table_data_CD3M(this.state.data)\r\n }\r\n else if (this.state.data_success && this.state.loai_lenh == CONST_DATA.loai_cd_12_thang) {\r\n table = this.render_table_data_CD12M(this.state.data)\r\n }\r\n else if (this.state.data_success) {\r\n table = this.render_table_data(this.state.data)\r\n }\r\n return (\r\n
\r\n \r\n Lựa chọn loại khớp lệnh\r\n \r\n {this.render_button(CONST_DATA.loai_dau_tu, 'Đầu tư')}\r\n {this.render_button(CONST_DATA.loai_tiet_kiem, 'Tiết kiệm')}\r\n {/* {this.render_button(CONST_DATA.loai_cuu_long, 'Cửu long')} */}\r\n {this.render_button(CONST_DATA.loai_cd_3_thang, 'CD 3 tháng')}\r\n {this.render_button(CONST_DATA.loai_cd_12_thang, 'CD 12 tháng')}\r\n \r\n \r\n\r\n \r\n Phương thức nạp\r\n \r\n {this.render_button_payment_type('Ngân hàng', 0)}\r\n {this.render_button_payment_type('Megapay', 6)}\r\n {this.render_button_payment_type('Airpay', 5)}\r\n {this.render_button_payment_type('Onepay', 15)}\r\n \r\n {this.renderTransactionRefInput()}\r\n\r\n \r\n\r\n {this.render_create_and_match()}\r\n\r\n \r\n Danh sách lệnh pending\r\n \r\n \r\n \r\n \r\n {columns.map(column => (\r\n \r\n {column.label}\r\n \r\n ))}\r\n \r\n \r\n {/* {this.state.data_success && (this.state.loai_lenh === CONST_DATA.loai_cd_3_thang ? this.render_table_data_CD3M(this.state.data) : this.render_table_data(this.state.data))} */}\r\n {table}\r\n
\r\n
\r\n
\r\n {this.state.response_data == null ? null : (\r\n \r\n \r\n Trạng thái: {this.state.response_data}\r\n \r\n window.location.reload()}>\r\n Reload\r\n \r\n \r\n )}\r\n
\r\n );\r\n }\r\n\r\n //Rendering helpers\r\n renderTransactionRefInput() {\r\n if (this.state.payment_type != 15) {\r\n return null\r\n }\r\n return this.setState({ transaction_ref: event.target.value })}\r\n />\r\n }\r\n\r\n //Helper methods\r\n getActualPaymentType() {\r\n let paymentType = this.state.payment_type\r\n switch (this.state.loai_lenh) {\r\n case CONST_DATA.loai_tiet_kiem:\r\n if (paymentType == 15) {\r\n paymentType = 18\r\n }\r\n break\r\n case CONST_DATA.loai_cd_3_thang:\r\n case CONST_DATA.loai_cd_12_thang:\r\n if (paymentType == 15) {\r\n paymentType = 2\r\n }\r\n break\r\n }\r\n return paymentType\r\n }\r\n\r\n getTransactionRef() {\r\n let returnTransactionRef = this.state.transaction_ref\r\n if (this.state.payment_type != 15) {\r\n returnTransactionRef = this.props.ticket_id\r\n }\r\n else if (!returnTransactionRef) {\r\n this.notify('error', 'Cần điền mã giao dịch cho OnePAY')\r\n }\r\n else {\r\n if (!returnTransactionRef.match(/^OnePAY-FT\\w{14}$/)) {\r\n this.notify('error', 'Mã giao dịch OnePAY cần có định dạng OnePAY-FTxxxxxx')\r\n returnTransactionRef = null\r\n }\r\n }\r\n return returnTransactionRef\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(KhopLenh);\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport TableSearchHoanTra from './TableSearchHoanTra';\r\nimport { toast } from 'react-toastify';\r\nimport { Typography, Button, Box, Card, CardContent, Paper, CircularProgress, Snackbar } from '@material-ui/core';\r\nimport CONST_DATA from 'constant';\r\nimport Axios from 'axios';\r\nimport {\r\n status_detail,\r\n to_date_min,\r\n bo_qua_detail\r\n} from 'utility';\r\n\r\nimport CardCS from './CardCS';\r\nimport Note from './Note';\r\nimport CommentList from './CommentList';\r\nimport AddImageComment from './AddImageComment';\r\nimport GiaoViec from './GiaoViec';\r\n\r\nimport {\r\n remove_comment_api,\r\n send_note_api,\r\n send_status_api,\r\n send_ly_do_bo_qua_api,\r\n mo_lai_don_api\r\n} from './Api';\r\nimport TableAll from './TableAll';\r\nimport ThongTinChuyenSai from './ThongTinChuyenSai';\r\nimport DonTrungLap from './DonTrungLap';\r\nimport EditComment from './EditComment';\r\nimport TransactionID from './TransactionID';\r\nimport TableAllHoanTra from './TableAllHoanTra';\r\nimport ThongTinHoanTra from './ThongTinHoanTra';\r\nimport LichSuGiaoViec from './LichSuGiaoViec';\r\nimport QuyTrinh from './QuyTrinh';\r\nimport TruyThu from './TruyThu';\r\nimport CommentNoiBo from './CommentNoiBo';\r\nimport CardImage from './CardImage';\r\nimport KhopLenh from './KhopLenh';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 200\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\nconst ImageBase64 = ({ data }) => \r\nconst renderType = (base64Data) => base64Data.substring(\"data:image/\".length, base64Data.indexOf(\";base64\"));\r\nclass Issue extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n comment: '',\r\n trang_thai: null,\r\n edit_comment: false,\r\n access_token: null,\r\n user_id: null,\r\n\r\n comment_image_base64: null,\r\n comment_image_name: null,\r\n\r\n ticket_id: this.props.match.params.id,\r\n loading: true,\r\n\r\n data: null,\r\n data_success: false,\r\n role_admin: null,\r\n ly_do_bo_qua: null\r\n };\r\n }\r\n\r\n check_login = async () => {\r\n let login_data = localStorage.getItem(CONST_DATA.localStorage_login);\r\n // console.log(login_data);\r\n\r\n if (login_data == null) {\r\n this.props.history.push(CONST_DATA.router_sign_in);\r\n } else {\r\n login_data = JSON.parse(login_data);\r\n this.setState({\r\n access_token: login_data.access_token,\r\n user_id: login_data.user_id,\r\n role_admin: login_data.role\r\n });\r\n }\r\n };\r\n\r\n async componentDidMount() {\r\n await this.check_login();\r\n await this.get_ticket_detail(this.state.ticket_id);\r\n }\r\n\r\n get_ticket_detail = async ticket_id => {\r\n this.setState({ loading: true })\r\n if (ticket_id != null) {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n ticket_id: ticket_id,\r\n access_token: this.state.access_token\r\n };\r\n\r\n Axios.post(CONST_DATA.get_ticket_admin_ticket_id, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n console.log(response.data.data)\r\n this.setState({\r\n data_success: true,\r\n data: response.data.data,\r\n loading: false\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n this.setState({ loading: false })\r\n });\r\n }\r\n };\r\n\r\n checkBase64 = (data) => {\r\n try {\r\n return ['png', 'jpeg', 'jpg'].includes(renderType(data))\r\n } catch (error) {\r\n return false;\r\n }\r\n }\r\n\r\n send_note = note => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n ticket_id: this.state.ticket_id,\r\n note: note,\r\n access_token: this.state.access_token\r\n };\r\n send_note_api(body_req, () => window.location.reload());\r\n };\r\n\r\n render_ticket_detail = (classes, item, index) => {\r\n if (item.data && typeof item.data === 'string' && item.data.includes('https://finhay.s3-ap-southeast-1.amazonaws.com')) {\r\n return \r\n \r\n \r\n }\r\n if (item.type === 'image_upload') {\r\n return ;\r\n }\r\n else {\r\n return (\r\n <>\r\n {this.checkBase64(item.data) ? : <>\r\n \r\n {item.type}\r\n {' : '}\r\n {item.data}\r\n \r\n }\r\n\r\n \r\n );\r\n }\r\n };\r\n\r\n box_status = (text, status) => {\r\n return (\r\n this.setState({ trang_thai: status })}>\r\n {text}\r\n \r\n );\r\n };\r\n\r\n box_ly_do_bo_qua = (text, ly_do_bo_qua) => {\r\n return (\r\n this.setState({ ly_do_bo_qua: ly_do_bo_qua })}>\r\n {text}\r\n \r\n );\r\n };\r\n\r\n send_status = status_id => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n ticket_id: this.state.ticket_id,\r\n status_id: status_id,\r\n access_token: this.state.access_token\r\n };\r\n\r\n send_status_api(body_req, () => window.location.reload());\r\n\r\n if (status_id == 200) {\r\n const body_req_bo_qua = {\r\n user_id: this.state.user_id,\r\n ticket_id: this.state.ticket_id,\r\n bo_qua_id: this.state.ly_do_bo_qua,\r\n access_token: this.state.access_token\r\n };\r\n send_ly_do_bo_qua_api(body_req_bo_qua, () => window.location.reload());\r\n }\r\n };\r\n\r\n mo_lai_don = () => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n ticket_id: this.state.ticket_id,\r\n access_token: this.state.access_token\r\n };\r\n mo_lai_don_api(body_req, () => window.location.reload());\r\n };\r\n\r\n render_button_status = () => {\r\n if (this.state.data.status_id == 200 || this.state.data.status_id == 400) {\r\n return null;\r\n } else {\r\n return (\r\n \r\n Chuyển trạng thái\r\n {this.box_status('Thành công', 400)}\r\n {this.box_status('Chờ bổ sung thông tin', 300)}\r\n {this.box_status('Bỏ qua', 200)}\r\n \r\n );\r\n }\r\n };\r\n\r\n render_status = classes => {\r\n if (this.state.data.status_id == 10 || this.state.data.status_id == 350) {\r\n return (\r\n this.send_status(100)}>\r\n Đang giải quyết\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n {this.render_button_status()}\r\n {this.state.trang_thai == 200 ? (\r\n \r\n Lý do bỏ qua\r\n {this.box_ly_do_bo_qua('Trùng đơn', 1)}\r\n {this.box_ly_do_bo_qua('Tự hoàn thành', 2)}\r\n {this.box_ly_do_bo_qua('Lý do khác', 3)}\r\n \r\n ) : null}\r\n {this.render_gui_trang_thai()}\r\n \r\n );\r\n }\r\n };\r\n\r\n box_xac_nhan_gui_trang_thai = () => {\r\n return (\r\n \r\n Xác nhận\r\n {\r\n this.send_status(this.state.trang_thai);\r\n this.setState({ trang_thai: null });\r\n }}>\r\n Gửi trạng thái\r\n \r\n this.setState({ trang_thai: null })}>\r\n Hủy\r\n \r\n \r\n );\r\n };\r\n\r\n render_gui_trang_thai = () => {\r\n if (this.state.trang_thai != null) {\r\n if (this.state.trang_thai == 200) {\r\n if (this.state.ly_do_bo_qua != null) {\r\n return this.box_xac_nhan_gui_trang_thai();\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n return this.box_xac_nhan_gui_trang_thai();\r\n }\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n remove_comment = comment => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n ticket_id: this.state.ticket_id,\r\n comment: comment,\r\n access_token: this.state.access_token\r\n };\r\n remove_comment_api(body_req, () => window.location.reload());\r\n };\r\n\r\n render_hoan_tra = () => {\r\n if (this.state.data.ticket_type == 'ĐỐI SOÁT') {\r\n if (\r\n // chi co cs moi dc chon don sai\r\n this.state.data.id_hoan_tra == null &&\r\n this.state.role_admin == CONST_DATA.ROLE_CS\r\n ) {\r\n return (\r\n window.location.reload()}\r\n />\r\n );\r\n }\r\n if (this.state.data.id_hoan_tra != null) {\r\n return (\r\n window.location.reload()}\r\n role_admin={this.state.role_admin}\r\n />\r\n );\r\n }\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n render_chuyen_tien_sai = () => {\r\n if (this.state.data.ticket_type == 'CHUYỂN TIỀN') {\r\n if (\r\n // chi co cs moi dc chon don sai\r\n this.state.data.id_chuyen_tien_sai == null &&\r\n (this.state.role_admin == CONST_DATA.ROLE_CS ||\r\n this.state.role_admin == CONST_DATA.ROLE_ADMIN) &&\r\n this.state.data.status_id != 200\r\n ) {\r\n return (\r\n window.location.reload()}\r\n />\r\n );\r\n }\r\n if (this.state.data.id_chuyen_tien_sai != null) {\r\n return (\r\n window.location.reload()}\r\n status_id={this.state.data.status_id}\r\n />\r\n );\r\n }\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n card_info = info => {\r\n return (\r\n \r\n {info.map((item, index) => (\r\n \r\n {item}\r\n \r\n ))}\r\n \r\n );\r\n };\r\n\r\n render_lydo_bo_qua = () => {\r\n if (this.state.data.bo_qua_id != null && this.state.data.status_id == 200) {\r\n return (\r\n \r\n {'Lý do bỏ qua: '}\r\n {bo_qua_detail(this.state.data.bo_qua_id)}\r\n \r\n );\r\n }\r\n };\r\n\r\n render_khop_lenh = () => {\r\n if (\r\n (this.state.role_admin == CONST_DATA.ROLE_KE_TOAN_KHOP_LENH ||\r\n this.state.role_admin == CONST_DATA.ROLE_ADMIN) &&\r\n this.state.data.id_chuyen_tien_sai != null &&\r\n this.state.data.transaction_id == null &&\r\n this.state.data.ticket_type == 'CHUYỂN TIỀN' &&\r\n this.state.data.status_id != 10 &&\r\n this.state.data.status_id != 200 &&\r\n this.state.data.status_id != 400\r\n ) {\r\n return (\r\n \r\n );\r\n }\r\n };\r\n\r\n handleUpdateInfoBank = () => {\r\n\r\n this.setState({ loading: true })\r\n Axios({\r\n method: 'PUT',\r\n headers: { user_id: this.state.user_id, access_token: this.state.access_token },\r\n url: CONST_DATA.update_bank_info,\r\n data: {\r\n ticket_id: this.state.ticket_id\r\n }\r\n })\r\n .then(response => {\r\n this.setState({ loading: false });\r\n const result = response.data\r\n if (result.status === 'success') {\r\n\r\n // this.setState({\r\n // data_success: true,\r\n // data: response.data.data\r\n // });\r\n console.log(result);\r\n toast.success(`Cập nhật thông tin tài khoản thành công`)\r\n }\r\n else if (result.status === 'error') {\r\n toast.error(`Cập nhật không thành công: ${result.data}`)\r\n }\r\n })\r\n .catch(error => {\r\n this.setState({ loading: false });\r\n });\r\n }\r\n\r\n render_giao_dich_hoan_tra = () => {\r\n if (this.state.data.ticket_type == 'SỬA THÔNG TIN TÀI KHOẢN NGÂN HÀNG') {\r\n return (\r\n \r\n );\r\n }\r\n };\r\n\r\n\r\n\r\n render() {\r\n const { classes } = this.props;\r\n if (!this.state.loading) {\r\n return (\r\n
\r\n \r\n \r\n {this.state.data.ticket_type == 'CHUYỂN TIỀN' ? (\r\n \r\n ) : null}\r\n\r\n \r\n \r\n \r\n \r\n \r\n Chi tiết yêu cầu\r\n \r\n {this.card_info([\r\n this.state.ticket_id,\r\n 'Loại yêu cầu: ' + this.state.data.ticket_type,\r\n 'Trạng thái hiện tại: ' +\r\n status_detail(this.state.data.status_id),\r\n this.render_lydo_bo_qua(),\r\n this.state.data.is_truy_thu ? 'Đơn dạng thuy thu' : null\r\n ])}\r\n\r\n {this.state.role_admin == CONST_DATA.ROLE_TU_VAN\r\n ? null\r\n : this.card_info([\r\n 'User id: ' + this.state.data.user_id,\r\n this.state.data.user_profile == null\r\n ? null\r\n : 'SDT: ' + this.state.data.user_profile.phone_number,\r\n this.state.data.user_profile == null\r\n ? null\r\n : 'Email: ' + this.state.data.user_profile.email\r\n ])}\r\n\r\n {this.render_status(classes)}\r\n {this.state.role_admin == CONST_DATA.ROLE_ADMIN &&\r\n this.state.data.status_id != 100 ? (\r\n
\r\n this.mo_lai_don()}>\r\n Mở lại đơn - đang giải quyết\r\n \r\n
\r\n ) : null}\r\n\r\n \r\n \r\n \r\n {this.state.data.ticket_detail.map((item, index) => {\r\n return this.render_ticket_detail(classes, item, index)\r\n }\r\n )}\r\n \r\n {this.state.data && this.state.data.ticket_type && this.state.data.ticket_type === \"ĐỐI SOÁT\" && this.state.data.ticket_detail.length > 4 && !!this.state.data.id_hoan_tra && this.state.data.status_id !== 200 && this.state.data.status_id !== 400 && }\r\n\r\n \r\n {this.render_khop_lenh()}\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n Comment\r\n \r\n \r\n\r\n \r\n \r\n this.remove_comment(item)\r\n }>\r\n\r\n {this.state.role_admin == 0 ? (\r\n \r\n this.setState({\r\n edit_comment: !this.state.edit_comment\r\n })\r\n }>\r\n Chỉnh sửa comment\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 {/* Ghi chú */}\r\n {this.state.data.note != null\r\n ? this.state.data.note.map(item => (\r\n {item}\r\n ))\r\n : null}\r\n\r\n this.send_note(note)}>\r\n\r\n \r\n Lịch sử thay đổi trạng thái\r\n \r\n {this.state.data.status_log.map((item, index) => (\r\n \r\n ))}\r\n \r\n \r\n\r\n {this.state.data.admin_assign_log == null ? null : (\r\n \r\n )}\r\n \r\n \r\n {this.render_chuyen_tien_sai()}\r\n\r\n {this.render_hoan_tra()}\r\n {/* {this.render_giao_dich_hoan_tra()} */}\r\n
\r\n );\r\n } else {\r\n return ;\r\n }\r\n }\r\n}\r\nexport default withStyles(styles)(Issue);\r\n","import React, { Component } from 'react';\r\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport { TextField, IconButton } from '@material-ui/core';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n container: {\r\n maxHeight: '70vh'\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 170\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n seach_text: ''\r\n };\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n this.setState({ seach_text: event.target.value })}\r\n />\r\n \r\n this.props.onClick(this.state.seach_text)}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(User);\r\n","import React, { Component } from 'react';\r\nimport { Button, Box, TextField, Typography } from '@material-ui/core';\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n note_change: null\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n Chinh sửa ghi chú\r\n this.setState({ note_change: event.target.value })}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default User;\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Button, TextField, Card, Box, Typography, CircularProgress } from '@material-ui/core';\r\n\r\nimport CONST_DATA from 'constant';\r\nimport Axios from 'axios';\r\n\r\n// const columns = [\r\n// { label: 'Ngày', minWidth: 10 },\r\n// { label: 'Diễn giải', minWidth: 10 },\r\n// { label: 'Số bút toán', minWidth: 10 },\r\n// { label: 'Số tiền', minWidth: 10 },\r\n// { label: 'Bank', minWidth: 10 },\r\n// { label: 'Ghi chú', minWidth: 10 },\r\n// { label: '', minWidth: 10 }\r\n// ];\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n container: {\r\n maxHeight: '70vh'\r\n },\r\n formControl: {\r\n // margin: theme.spacing(1),\r\n minWidth: 10\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n },\r\n textField: {\r\n // marginTop: theme.spacing(2)\r\n // width: 200\r\n flex: 1\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n access_token: this.props.access_token,\r\n user_id: this.props.user_id,\r\n text_add: null,\r\n search_key: null,\r\n insert_log: null,\r\n disabled: false,\r\n\r\n start_date_thong_ke: null,\r\n end_date_thong_ke: null\r\n };\r\n }\r\n\r\n send_data = async () => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n text_add: this.state.text_add\r\n };\r\n this.setState({\r\n disabled: true,\r\n });\r\n\r\n await Axios.post(CONST_DATA.ketoan_add_item, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.setState({\r\n insert_log: response.data.data\r\n });\r\n // this.props.refesh_page();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n this.setState({\r\n disabled: false,\r\n });\r\n };\r\n\r\n renderDuplicate = () => {\r\n return (\r\n \r\n \r\n Đã thêm {this.state.insert_log.success}\r\n Bị trùng {this.state.insert_log.duplicate}\r\n Bị lỗi {this.state.insert_log.error}\r\n \r\n\r\n this.props.refesh_page()}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n color=\"primary\">\r\n xác nhận\r\n \r\n \r\n );\r\n };\r\n\r\n showProgressLoading = () => {\r\n return (\r\n \r\n );\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n const { disabled } = this.state;\r\n\r\n return (\r\n
\r\n \r\n {this.props.role_admin === CONST_DATA.ROLE_KE_TOAN ? (\r\n \r\n \r\n this.setState({ text_add: event.target.value })\r\n }\r\n />\r\n\r\n this.send_data()}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n color=\"primary\" disabled={disabled}>\r\n Gửi dữ liệu\r\n \r\n \r\n ) : null}\r\n\r\n \r\n \r\n this.setState({ search_key: event.target.value })\r\n }\r\n />\r\n\r\n this.props.search_data(this.state.search_key)}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n color=\"primary\">\r\n Tìm kiếm\r\n \r\n \r\n\r\n \r\n {\r\n let link_thong_ke = CONST_DATA.ketoan_thong_ke;\r\n\r\n window.location.href = link_thong_ke;\r\n }}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n color=\"primary\">\r\n Thống kê\r\n \r\n \r\n \r\n {this.state.disabled === false ? null : this.showProgressLoading()}\r\n \r\n Lưu ý copy nhiều dòng, các dòng có ô đầu tiền giống nhau\r\n \r\n\r\n {this.state.insert_log === null ? null : this.renderDuplicate()}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(User);\r\n","import React, { Component } from 'react';\r\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n Button,\r\n Dialog\r\n} from '@material-ui/core';\r\n\r\nimport CONST_DATA from 'constant';\r\nimport SearchText from './SearchText';\r\nimport Axios from 'axios';\r\nimport DialogEdit from './DialogEdit';\r\nimport TableAdd from './TableAdd';\r\n\r\nconst columns = [\r\n { label: 'Edit', minWidth: 1 },\r\n { label: 'Ngày', minWidth: 10 },\r\n { label: 'Số tiền', minWidth: 10 },\r\n { label: 'Bank', minWidth: 10 },\r\n\r\n { label: 'Diễn giải', minWidth: 10 },\r\n { label: 'Số bút toán', minWidth: 10 },\r\n { label: 'Transaction ID', minWidth: 10 },\r\n { label: 'ID', minWidth: 10 },\r\n { label: 'Mã case', minWidth: 10 },\r\n { label: 'CS', minWidth: 10 },\r\n { label: 'Ghi chú', minWidth: 10 }\r\n];\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n container: {\r\n maxHeight: '70vh'\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 170\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n access_token: this.props.access_token,\r\n user_id: this.props.user_id,\r\n data: this.props.data,\r\n data_success: false,\r\n open_delete: false,\r\n id_delete: null,\r\n data_delete: null,\r\n\r\n note_change: null\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.get_data();\r\n }\r\n\r\n ren_admin = data => {\r\n if (data.admin_assign != null) {\r\n return {data.admin_assign.full_name};\r\n } else {\r\n return ;\r\n }\r\n };\r\n\r\n get_data = () => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_get_all_item, body_req)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: response.data.data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n search_data = search_key => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n search_key: search_key\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_ketoan_search_item, body_req)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: response.data.data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n delete_data = id_chuyen_tien_sai => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n id_chuyen_tien_sai: id_chuyen_tien_sai\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_delete_item, body_req)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n this.props.refesh_page();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n edit_note = (id_chuyen_tien_sai, note) => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n id_chuyen_tien_sai: id_chuyen_tien_sai,\r\n note: note\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_edit_note, body_req)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n this.props.refesh_page();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n render_delete = () => {\r\n return (\r\n this.setState({ open_delete: false })}\r\n aria-labelledby=\"alert-dialog-title\"\r\n aria-describedby=\"alert-dialog-description\">\r\n {\r\n this.setState({ open_delete: false });\r\n this.delete_data(this.state.id_delete);\r\n }}>\r\n Xóa toàn bộ dữ liệu\r\n \r\n
\r\n
\r\n this.edit_note(this.state.id_delete, note)}\r\n />\r\n \r\n );\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n window.location.reload()}\r\n search_data={search_key => this.search_data(search_key)}\r\n role_admin={this.props.role_admin}\r\n />\r\n\r\n {this.render_delete()}\r\n \r\n \r\n \r\n \r\n \r\n {columns.map(column => (\r\n \r\n {column.label}\r\n \r\n ))}\r\n \r\n \r\n \r\n {this.state.data_success\r\n ? this.state.data.map((row, index) => (\r\n \r\n \r\n {(this.props.role_admin == CONST_DATA.ROLE_KE_TOAN && row.cs_confirm == false) ? (\r\n \r\n this.setState({\r\n open_delete: true,\r\n id_delete: row.id\r\n })\r\n }\r\n variant=\"outlined\"\r\n size=\"small\"\r\n color=\"primary\">\r\n Edit\r\n \r\n ) : null}\r\n \r\n {row.ngay}\r\n \r\n {row.so_tien\r\n .toString()\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\r\n \r\n {row.bank}\r\n {row.dien_giai}\r\n {row.so_but_toan}\r\n \r\n {row.ticket_detail == null\r\n ? null\r\n : row.ticket_detail.transaction_id}\r\n \r\n {row.id}\r\n {row.ma_case}\r\n {row.cs_confirm.toString()}\r\n \r\n {row.note == null ? null : row.note.toString()}\r\n \r\n \r\n ))\r\n : null}\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(User);\r\n","import React, { Component } from 'react';\r\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport { Grid } from '@material-ui/core';\r\nimport CONST_DATA from 'constant';\r\nimport TableAll from './TableAll';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n access_token: null,\r\n user_id: null,\r\n data_success: false,\r\n data: null,\r\n data_ticket: null,\r\n data_ticket_success: false,\r\n role_admin: null\r\n };\r\n }\r\n\r\n check_login = () => {\r\n let login_data = localStorage.getItem(CONST_DATA.localStorage_login);\r\n\r\n if (login_data == null) {\r\n this.props.history.push(CONST_DATA.router_sign_in);\r\n } else {\r\n login_data = JSON.parse(login_data);\r\n this.setState({\r\n access_token: login_data.access_token,\r\n user_id: login_data.user_id,\r\n role_admin: login_data.role\r\n });\r\n }\r\n };\r\n\r\n async componentDidMount() {\r\n await this.check_login();\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n \r\n \r\n {this.state.access_token != null ? (\r\n window.location.reload()}\r\n role_admin={this.state.role_admin}\r\n />\r\n ) : null}\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(User);\r\n","import React, { Component } from 'react';\r\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TablePagination,\r\n TableRow,\r\n Button,\r\n FormControl,\r\n InputLabel,\r\n Select,\r\n MenuItem,\r\n Box,\r\n TextField\r\n} from '@material-ui/core';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport {\r\n to_date,\r\n to_date_min,\r\n status_detail,\r\n to_date_search,\r\n convert_date_to_search\r\n} from 'utility';\r\nimport CONST_DATA from 'constant';\r\nimport Axios from 'axios';\r\n\r\nconst columns = [\r\n { label: 'STT', minWidth: 10 },\r\n { label: 'Ngày comment', minWidth: 10 },\r\n { label: 'User id', minWidth: 10 },\r\n { label: 'Comment', minWidth: 10 },\r\n { label: 'Mã yêu cầu', minWidth: 10 },\r\n { label: 'Vấn đề ', minWidth: 10 },\r\n { label: 'Trạng thái', minWidth: 10 }\r\n];\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n container: {\r\n maxHeight: '70vh'\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 170\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n data: this.props.data\r\n };\r\n }\r\n\r\n ren_admin = data => {\r\n if (data.admin_assign != null) {\r\n return {data.admin_assign.full_name};\r\n } else {\r\n return ;\r\n }\r\n };\r\n\r\n confirm_read_comment = ticket_id => {\r\n const body_req = {\r\n user_id: this.props.user_id,\r\n access_token: this.props.access_token,\r\n ticket_id: ticket_id\r\n };\r\n\r\n Axios.post(CONST_DATA.confirm_read_comment, body_req)\r\n .then(response => {\r\n this.props.reload();\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {columns.map(column => (\r\n \r\n {column.label}\r\n \r\n ))}\r\n \r\n \r\n \r\n {this.state.data.map((row, index) => (\r\n \r\n \r\n this.confirm_read_comment(row.ticket_id)}\r\n to={CONST_DATA.router_detail + '/' + row.ticket_id}\r\n target=\"_blank\">\r\n \r\n \r\n \r\n {to_date_min(row.new_comment_date)}\r\n {row.user_id}\r\n \r\n {row.comment_log.slice(-1)[0].comment}\r\n \r\n {row.ticket_id}\r\n {row.ticket_type}\r\n {status_detail(row.status_id)}\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)(User);\r\n","import React, { Component } from 'react';\r\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Grid,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogContentText,\r\n DialogTitle,\r\n Button,\r\n CircularProgress\r\n} from '@material-ui/core';\r\nimport UsersTable from './Table';\r\nimport CONST_DATA from 'constant';\r\nimport Axios from 'axios';\r\nimport { get_time_second, to_date_unix } from 'utility';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n access_token: null,\r\n user_id: null,\r\n data_success: false,\r\n data: null,\r\n data_ticket: null,\r\n data_ticket_success: false\r\n };\r\n }\r\n\r\n check_login = () => {\r\n let login_data = localStorage.getItem(CONST_DATA.localStorage_login);\r\n\r\n if (login_data == null) {\r\n this.props.history.push(CONST_DATA.router_sign_in);\r\n } else {\r\n login_data = JSON.parse(login_data);\r\n this.setState({\r\n access_token: login_data.access_token,\r\n user_id: login_data.user_id\r\n });\r\n }\r\n };\r\n\r\n async componentDidMount() {\r\n await this.check_login();\r\n await this.get_data();\r\n }\r\n\r\n get_data = () => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token\r\n };\r\n\r\n Axios.post(CONST_DATA.get_ticket_new_comment, body_req)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: response.data.data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n reload = () => {\r\n window.location.reload();\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n \r\n \r\n {this.state.data_success ? (\r\n this.reload()}\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)(User);\r\n","import React, { Component } from 'react';\r\nimport { Button, Box, TextField, Typography } from '@material-ui/core';\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n note_change: null\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n Chinh sửa ghi chú\r\n this.setState({ note_change: event.target.value })}\r\n />\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default User;\r\n","import React, { Component } from 'react';\r\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport { Button, TextField, Card, Box, Typography, CircularProgress } from '@material-ui/core';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport CONST_DATA from 'constant';\r\nimport SearchText from './SearchText';\r\nimport Axios from 'axios';\r\nimport CardCS from 'views/Detail/CardCS';\r\n\r\nconst columns = [\r\n { label: 'Ngày', minWidth: 10 },\r\n { label: 'Diễn giải', minWidth: 10 },\r\n { label: 'Số bút toán', minWidth: 10 },\r\n { label: 'Số tiền', minWidth: 10 },\r\n { label: 'Bank', minWidth: 10 },\r\n { label: 'Ghi chú', minWidth: 10 },\r\n { label: '', minWidth: 10 }\r\n];\r\n\r\nconst styles = theme => ({\r\n root: {}\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n access_token: this.props.access_token,\r\n user_id: this.props.user_id,\r\n text_add: null,\r\n disabled: false,\r\n\r\n search_key: null,\r\n\r\n insert_log: null,\r\n button_active:false,\r\n count:59\r\n };\r\n this.timer = 0;\r\n }\r\n\r\n send_data = async () => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n text_add: this.state.text_add\r\n };\r\n this.setState({\r\n disabled: true,\r\n });\r\n\r\n await Axios.post(CONST_DATA.ketoan_hoan_tra_add_item, body_req)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n this.setState({\r\n insert_log: response.data.data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n this.setState({\r\n disabled: false,\r\n });\r\n };\r\n export_file = () => {\r\n this.props.export_file_ketoan()\r\n this.setState({ \r\n button_active:true\r\n })\r\n if (this.timer == 0 && this.state.count > 0) {\r\n this.timer = setInterval(this.count_down, 1000);\r\n console.log(this.timer)\r\n }\r\n }\r\n\r\n count_down =()=>{\r\n let count = this.state.count-1\r\n this.setState({\r\n count: count\r\n })\r\n\r\n if (count == 0) { \r\n clearInterval(this.timer);\r\n this.setState({\r\n count:59,\r\n button_active:false\r\n })\r\n this.timer=0\r\n }\r\n\r\n \r\n }\r\n\r\n renderDuplicate = () => {\r\n return (\r\n \r\n \r\n Đã thêm {this.state.insert_log.success}\r\n Bị trùng {this.state.insert_log.duplicate}\r\n Bị lỗi {this.state.insert_log.error}\r\n \r\n\r\n this.props.refesh_page()}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n color=\"primary\">\r\n xác nhận\r\n \r\n \r\n );\r\n };\r\n\r\n showProgressLoading = () => {\r\n return (\r\n \r\n );\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n const { disabled } = this.state;\r\n\r\n return (\r\n
\r\n \r\n {this.props.role_admin == CONST_DATA.ROLE_KE_TOAN ? (\r\n \r\n \r\n this.setState({ text_add: event.target.value })\r\n }\r\n />\r\n\r\n this.send_data()}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n color=\"primary\" disabled={disabled}>\r\n Gửi dữ liệu\r\n \r\n \r\n ) : null}\r\n \r\n \r\n this.setState({ search_key: event.target.value })\r\n }\r\n />\r\n\r\n this.props.search_data(this.state.search_key)}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n color=\"primary\">\r\n Tìm kiếm\r\n \r\n\r\n {this.props.role_admin===CONST_DATA.ROLE_KE_TOAN?(\r\n this.export_file()}\r\n variant=\"outlined\"\r\n size=\"small\"\r\n color=\"primary\"\r\n disabled={this.state.button_active}\r\n >\r\n {this.state.button_active===true?`Sử dụng lại sau (${this.state.count})`:'Export File'}\r\n \r\n ):null}\r\n \r\n \r\n {this.state.disabled === false ? null : this.showProgressLoading()}\r\n Lưu ý copy từng dòng\r\n\r\n {this.state.insert_log == null ? null : this.renderDuplicate()}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(User);\r\n","import React, { Component } from 'react';\r\nimport { TextField, IconButton } from '@material-ui/core';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n seach_text: ''\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n this.setState({ seach_text: event.target.value })}\r\n />\r\n \r\n this.props.onClick(this.state.seach_text)}\r\n />\r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default User;\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n Button,\r\n Dialog\r\n} from '@material-ui/core';\r\n\r\nimport CONST_DATA from 'constant';\r\nimport Axios from 'axios';\r\nimport DialogEdit from './DialogEdit';\r\nimport TableAdd from './TableAdd';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport Alert from '@material-ui/lab/Alert';\r\n\r\nconst columns = [\r\n { label: 'Edit', minWidth: 10 },\r\n { label: 'User Id', minWidth: 10 },\r\n { label: 'Ngày', minWidth: 10 },\r\n { label: 'Số tiền', minWidth: 10 },\r\n { label: 'Mã rút tiền', minWidth: 10 },\r\n { label: 'Diễn giải', minWidth: 10 },\r\n { label: 'ID', minWidth: 10 },\r\n { label: 'Mã case', minWidth: 10 },\r\n { label: 'CS', minWidth: 10 },\r\n { label: 'Ghi chú', minWidth: 10 }\r\n];\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n container: {\r\n maxHeight: '70vh'\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 170\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n access_token: this.props.access_token,\r\n user_id: this.props.user_id,\r\n data: this.props.data,\r\n data_success: false,\r\n open_delete: false,\r\n id_delete: null,\r\n data_delete: null,\r\n note_change: null,\r\n message_error:'',\r\n open_error:false\r\n };\r\n }\r\n\r\n get_data = () => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_hoan_tra_get_all_item, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: response.data.data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n search_data = search_key => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n search_key: search_key\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_hoan_tra_ketoan_search_item, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: response.data.data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n delete_data = id_hoan_tra => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n id_hoan_tra: id_hoan_tra\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_hoan_tra_delete_item, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.get_data();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n edit_note = (id_hoan_tra, note) => {\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n id_hoan_tra: id_hoan_tra,\r\n note: note\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_hoan_tra_edit_note, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n\r\n window.location.reload();\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n export_file_ketoan = ()=>{\r\n const headers = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n \"Content-Type\": \"application/json\",\r\n };\r\n\r\n Axios.post(CONST_DATA.ketoan_hoan_tra_export_file,{},{headers: headers})\r\n .then(res=>{\r\n if(res.status==200){\r\n console.log(res.data.data)\r\n this.setState({\r\n message_error:res.data.data,\r\n open_error:true\r\n })\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n })\r\n\r\n }\r\n\r\n componentDidMount() {\r\n this.get_data();\r\n }\r\n\r\n render_delete = () => {\r\n return (\r\n this.setState({ open_delete: false })}\r\n aria-labelledby=\"alert-dialog-title\"\r\n aria-describedby=\"alert-dialog-description\">\r\n {\r\n this.setState({ open_delete: false });\r\n this.delete_data(this.state.id_delete);\r\n }}>\r\n Xóa toàn bộ dữ liệu\r\n \r\n
\r\n
\r\n this.edit_note(this.state.id_delete, note)}\r\n />\r\n \r\n );\r\n };\r\n\r\n handleClose =()=>{\r\n this.setState({\r\n open_error:false\r\n })\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n window.location.reload()}\r\n search_data={search_key => this.search_data(search_key)}\r\n role_admin={this.props.role_admin}\r\n export_file_ketoan = {(data)=>this.export_file_ketoan(data)}\r\n />\r\n\r\n {this.render_delete()}\r\n \r\n \r\n \r\n \r\n \r\n {columns.map(column => {\r\n return (\r\n \r\n {column.label}\r\n \r\n )\r\n }\r\n )}\r\n \r\n \r\n \r\n {this.state.data_success\r\n ? this.state.data.map((row, index) => {\r\n return (\r\n \r\n \r\n {this.props.role_admin == CONST_DATA.ROLE_KE_TOAN ? (\r\n \r\n this.setState({\r\n open_delete: true,\r\n id_delete: row.id\r\n })\r\n }\r\n variant=\"outlined\"\r\n size=\"small\"\r\n color=\"primary\">\r\n Edit\r\n \r\n ) : null}\r\n \r\n {row.user_id ? row.user_id : null}\r\n {row.date}\r\n \r\n {row.so_tien\r\n .toString()\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',')}\r\n \r\n\r\n {row.ma_rut_tien}\r\n {row.dien_giai}\r\n {row.id}\r\n {row.ma_case}\r\n {row.cs_match ? 'yes' : 'no'}\r\n {row.note ? row.note : null}\r\n\r\n \r\n )\r\n })\r\n : null}\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n {this.state.message_error}\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(User);\r\n","import React, { Component } from 'react';\r\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport { Grid } from '@material-ui/core';\r\nimport CONST_DATA from 'constant';\r\nimport TableAll from './TableAll';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n access_token: null,\r\n user_id: null,\r\n data_success: false,\r\n data: null,\r\n data_ticket: null,\r\n data_ticket_success: false,\r\n role_admin: null\r\n };\r\n }\r\n\r\n check_login = () => {\r\n let login_data = localStorage.getItem(CONST_DATA.localStorage_login);\r\n\r\n if (login_data == null) {\r\n this.props.history.push(CONST_DATA.router_sign_in);\r\n } else {\r\n login_data = JSON.parse(login_data);\r\n this.setState({\r\n access_token: login_data.access_token,\r\n user_id: login_data.user_id,\r\n role_admin: login_data.role\r\n });\r\n }\r\n };\r\n\r\n async componentDidMount() {\r\n await this.check_login();\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n \r\n \r\n {this.state.access_token != null ? (\r\n window.location.reload()}\r\n role_admin={this.state.role_admin}\r\n />\r\n ) : null}\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(User);\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Grid, CircularProgress } from '@material-ui/core';\r\nimport {\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n Button,\r\n FormControl,\r\n Box,\r\n TextField\r\n} from '@material-ui/core';\r\n\r\nimport {\r\n to_date_min,\r\n to_date_unix\r\n} from 'utility';\r\nimport CONST_DATA from 'constant';\r\nimport Axios from 'axios';\r\nimport {\r\n Typography,\r\n} from '@material-ui/core';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nconst columns = [\r\n { label: 'STT', minWidth: 10 },\r\n { label: 'ID_OCR', minWidth: 10 },\r\n { label: 'ID_Selfie_Compare', minWidth: 10 },\r\n\r\n];\r\n\r\nconst styles = theme => ({\r\n root: {},\r\n container: {\r\n maxHeight: '70vh'\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 170\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n access_token: this.props.access_token,\r\n user_id: this.props.user_id,\r\n data: this.props.data,\r\n data_success: false,\r\n loading: false,\r\n startDate: null,\r\n enDate: null\r\n };\r\n }\r\n\r\n\r\n\r\n get_data = () => {\r\n this.setState({\r\n loading: true\r\n });\r\n const body_req = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n };\r\n if (this.state.startDate) {\r\n body_req.start_date = to_date_unix(this.state.startDate)\r\n }\r\n else {\r\n body_req.start_date = 1546448400\r\n }\r\n\r\n if (this.state.enDate) {\r\n body_req.end_date = to_date_unix(this.state.enDate)\r\n }\r\n else {\r\n body_req.end_date = 1615309200\r\n }\r\n\r\n Axios.post(CONST_DATA.doi_soat_ekyc, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: [response.data.data],\r\n loading: false\r\n });\r\n }\r\n else {\r\n this.setState({\r\n loading: false\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n this.setState({\r\n loading: false\r\n });\r\n });\r\n };\r\n\r\n componentDidMount() {\r\n this.get_data();\r\n }\r\n\r\n\r\n\r\n handleOnSearch = async () => {\r\n this.get_data()\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n \r\n Từ\r\n \r\n {\r\n this.setState({ startDate: event.target.value });\r\n }}\r\n type=\"date\"\r\n />\r\n\r\n \r\n Đến\r\n \r\n {\r\n this.setState({ enDate: event.target.value });\r\n }}\r\n type=\"date\"\r\n />\r\n \r\n \r\n Tìm kiếm\r\n \r\n \r\n \r\n {this.state.loading ? : \r\n \r\n \r\n \r\n \r\n {columns.length && columns.map(column => (\r\n \r\n {column.label}\r\n \r\n ))}\r\n \r\n \r\n \r\n {this.state.data_success\r\n ? this.state.data.map((row, index) => (\r\n \r\n \r\n \r\n {index + 1}\r\n \r\n \r\n {row.count_ocr}\r\n {row.count_selfie}\r\n\r\n \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\nexport default withStyles(styles)(User);\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { Grid } from '@material-ui/core';\r\nimport CONST_DATA from 'constant';\r\nimport TableAll from './TableAll';\r\nconst styles = theme => ({\r\n root: {\r\n padding: theme.spacing(2)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n access_token: null,\r\n user_id: null,\r\n data_success: false,\r\n data: null,\r\n data_ticket: null,\r\n data_ticket_success: false\r\n };\r\n }\r\n\r\n check_login = () => {\r\n let login_data = localStorage.getItem(CONST_DATA.localStorage_login);\r\n if (login_data === null) {\r\n this.props.history.push(CONST_DATA.router_sign_in);\r\n } else {\r\n login_data = JSON.parse(login_data);\r\n this.setState({\r\n access_token: login_data.access_token,\r\n user_id: login_data.user_id,\r\n role_admin: login_data.role\r\n });\r\n }\r\n };\r\n\r\n componentDidMount() {\r\n this.check_login();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n render_table = () => {\r\n return (\r\n \r\n );\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n \r\n \r\n {this.state.access_token && this.render_table()}\r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(User);\r\n","import React, { Component } from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport {\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n} from \"@material-ui/core\";\r\nimport Pagination from \"@material-ui/lab/Pagination\";\r\nimport Switch from \"@material-ui/core/Switch\";\r\n\r\nimport CONST_DATA from \"constant\";\r\nimport Axios from \"axios\";\r\n\r\n\r\nconst columns = [\r\n { label: \"Họ tên\", minWidth: 10 },\r\n { label: \"Tên đăng nhập\", minWidth: 10 },\r\n { label: \"Trạng Thái\", minWidth: 1 },\r\n { label: \"Vai trò\", minWidth: 1 },\r\n { label: \"Thay đổi trạng thái kích hoạt\", minWidth: 1 },\r\n];\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n \"& > *\": {\r\n marginTop: theme.spacing(2),\r\n },\r\n },\r\n container: {\r\n maxHeight: \"70vh\",\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 170,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n});\r\n\r\nclass TableUser extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n access_token: this.props.access_token,\r\n user_id: this.props.user_id,\r\n data: this.props.data,\r\n data_success: false,\r\n open_delete: false,\r\n id_delete: null,\r\n data_delete: null,\r\n\r\n note_change: null,\r\n page: 1,\r\n totalPage: 50,\r\n limit: 20,\r\n checked: true,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n console.log(this.state.data)\r\n }\r\n\r\n \r\n\r\n checkRoleDisplay = (role) => {\r\n let roleDisplay = \"\";\r\n if (role == 0) {\r\n roleDisplay = \"Admin\";\r\n }\r\n if (role == 100) {\r\n roleDisplay = \"CS\";\r\n }\r\n if (role == 50) {\r\n roleDisplay = \"Kế toán\";\r\n }\r\n if (role == 55) {\r\n roleDisplay = \"Kế toán khớp lệnh\";\r\n }\r\n if (role == 70) {\r\n roleDisplay = \"Tư vấn\";\r\n }\r\n if (role == 1000) {\r\n roleDisplay = \"test\";\r\n }\r\n if (role == 10000) {\r\n roleDisplay = \"kyc\";\r\n }\r\n return roleDisplay;\r\n };\r\n\r\n handleChange = (id, currentStatus) => {\r\n \r\n const headers = {\r\n access_token: this.state.access_token,\r\n user_id: this.state.user_id,\r\n };\r\n if (currentStatus == false) {\r\n Axios.put(`${CONST_DATA.change_status_user}${id}/active`,{},{headers:headers})\r\n .then((res) => {\r\n if (res.data.status == \"success\") {\r\n window.location.reload();\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err)\r\n })\r\n }\r\n if (currentStatus == true) {\r\n Axios.put(\r\n `${CONST_DATA.change_status_user}${id}/inactive`,\r\n {},\r\n { headers: headers }\r\n )\r\n .then((res) => {\r\n if (res.data.status == \"success\") {\r\n window.location.reload();\r\n }\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {columns.map((column) => (\r\n \r\n {column.label}\r\n \r\n ))}\r\n \r\n \r\n \r\n {this.state.data.map((item, index) => {\r\n return (\r\n \r\n {item.full_name}\r\n {item.user_name}\r\n \r\n {item.is_active === true\r\n ? \"Đang kích hoạt\"\r\n : \"Không kích hoạt\"}\r\n \r\n {this.checkRoleDisplay(item.role)}\r\n \r\n \r\n this.handleChange(item.user_id, item.is_active)\r\n }\r\n color=\"primary\"\r\n name=\"checked\"\r\n inputProps={{ \"aria-label\": \"primary checkbox\" }}\r\n />\r\n \r\n \r\n );\r\n })}\r\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)(TableUser);\r\n","import React, { Component } from \"react\";\r\nimport { makeStyles, withStyles } from \"@material-ui/core/styles\";\r\nimport {\r\n Grid,\r\n Paper,\r\n TextField,\r\n Typography,\r\n Button,\r\n Card,\r\n CircularProgress,\r\n Select,\r\n MenuItem,\r\n FormControl,\r\n InputLabel,\r\n Modal,\r\n Backdrop,\r\n Fade,\r\n} from \"@material-ui/core\";\r\nimport FormHelperText from \"@material-ui/core/FormHelperText\";\r\nimport CONST_DATA from \"constant\";\r\nimport Axios from \"axios\";\r\nimport { get_time_second } from \"utility\";\r\nimport TableAll from \"./TableAll\";\r\nimport { ThreeSixtySharp, TransferWithinAStationSharp } from \"@material-ui/icons\";\r\n\r\n\r\nconst styles = (theme) => ({\r\n root: {\r\n padding: theme.spacing(2),\r\n margin: theme.spacing(1),\r\n },\r\n textField: {\r\n margin: theme.spacing(1),\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\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: \"2px solid #000\",\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(2, 4, 3),\r\n },\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n access_token: null,\r\n full_name: \"\",\r\n user_name: \"\",\r\n data: null,\r\n data_success: false,\r\n role: \"\",\r\n open: false,\r\n user_id: \"\",\r\n isError: {\r\n isErrorFullName: false,\r\n isErrorUserName: false,\r\n isErrorRole: false,\r\n },\r\n errorFullNameText: \"\",\r\n errorUserNameText: \"\",\r\n errorRoleText: \"\"\r\n };\r\n }\r\n handleClose = () => {\r\n this.setState({\r\n open: false,\r\n });\r\n };\r\n handleOpen = () => {\r\n this.setState({\r\n open: true,\r\n });\r\n };\r\n check_login = () => {\r\n let login_data = localStorage.getItem(CONST_DATA.localStorage_login);\r\n\r\n if (login_data == null) {\r\n this.props.history.push(CONST_DATA.router_sign_in);\r\n } else {\r\n login_data = JSON.parse(login_data);\r\n this.setState({\r\n access_token: login_data.access_token,\r\n user_id: login_data.user_id,\r\n });\r\n }\r\n };\r\n\r\n async componentDidMount() {\r\n await this.check_login();\r\n await this.get_all_user();\r\n }\r\n\r\n get_all_user = () => {\r\n const headers = {\r\n user_id: this.state.user_id,\r\n access_token: this.state.access_token,\r\n \"Content-Type\": \"application/json\",\r\n };\r\n Axios.get(CONST_DATA.get_all_admin, { headers: headers })\r\n .then((response) => {\r\n if (response.data.status == \"success\") {\r\n console.log(response);\r\n this.setState({\r\n data: response.data.data,\r\n data_success: true,\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n render_list_admin = (item, classes) => {\r\n return (\r\n \r\n full_name: {item.full_name}\r\n user_name: {item.user_name}\r\n user_id: {item.user_id}\r\n \r\n );\r\n };\r\n\r\n send_data_add = () => {\r\n const body_req = {\r\n full_name: this.state.full_name,\r\n user_name: this.state.user_name,\r\n role: this.state.role,\r\n is_active: false,\r\n };\r\n const headers = {\r\n access_token: this.state.access_token,\r\n user_id: this.state.user_id,\r\n };\r\n if (this.checkValidateFullName() && this.checkValidateUsername()) {\r\n Axios.post(CONST_DATA.creat_user_admin, body_req, { headers: headers })\r\n .then((response) => {\r\n if (response.data.status == \"success\") {\r\n window.location.reload();\r\n }\r\n })\r\n .catch((error) => {\r\n console.log(error);\r\n });\r\n }\r\n else {\r\n this.checkValidateUsername();\r\n this.checkValidateFullName();\r\n this.checkValidateRole();\r\n }\r\n\r\n };\r\n checkValidateFullName = () => {\r\n let validate = true;\r\n if (this.state.full_name === \"\") {\r\n this.setState({\r\n isError: {\r\n isErrorFullName: true,\r\n },\r\n errorFullNameText: \"Trường không được bỏ trống\",\r\n });\r\n validate = false\r\n } else {\r\n this.setState({\r\n isError: {\r\n isErrorFullName: false,\r\n },\r\n errorFullNameText: \"\",\r\n });\r\n }\r\n return validate\r\n };\r\n checkValidateUsername = () => {\r\n let validate = true;\r\n if (this.state.user_name === \"\") {\r\n this.setState({\r\n isError: {\r\n isErrorUserName: true,\r\n },\r\n errorUserNameText: \"Trường không được bỏ trống\",\r\n });\r\n validate = false\r\n } else {\r\n this.setState({\r\n isError: {\r\n isErrorUserName: false,\r\n },\r\n errorUserNameText: \"\",\r\n });\r\n }\r\n return validate\r\n };\r\n checkValidateRole = () => {\r\n let validate = true;\r\n if (this.state.role === \"\") {\r\n this.setState({\r\n isError: {\r\n isErrorRole: true,\r\n },\r\n errorRoleText: \"Chọn Role\",\r\n });\r\n validate = false\r\n }\r\n else {\r\n this.setState({\r\n isError: {\r\n isErrorRole: false,\r\n },\r\n errorRoleText: \"\",\r\n });\r\n }\r\n return validate\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n const { open } = this.state;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n Thêm mới người dùng\r\n \r\n \r\n {this.state.data_success ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n\r\n {/* MODAL THEM MOI */}\r\n
\r\n \r\n \r\n
\r\n \r\n Thêm mới người dùng\r\n \r\n this.setState({ full_name: event.target.value })\r\n }\r\n onBlur={this.checkValidateFullName}\r\n required\r\n />\r\n \r\n this.setState({ user_name: event.target.value })\r\n }\r\n onBlur={this.checkValidateUsername}\r\n required\r\n />\r\n \r\n \r\n \r\n Role\r\n \r\n \r\n this.setState({ role: event.target.value })\r\n }\r\n >\r\n Admin\r\n CS\r\n Kế toán\r\n Kế toán khớp lệnh\r\n Tư vấn\r\n kyc\r\n \r\n \r\n {this.state.errorRoleText}\r\n \r\n \r\n \r\n this.send_data_add()}\r\n >\r\n Add admin\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)(User);\r\n","const list_check_fail = [\r\n { title: 'Ảnh chưa đúng nội dung', check: false },\r\n { title: 'Ảnh mặt trước và mặt sau không cùng loại', check: false },\r\n { title: 'Ảnh CMTND/CCCD thiếu 4 góc', check: false },\r\n { title: 'Ảnh thuộc loại photocopy hoặc chụp ảnh từ màn hình', check: false },\r\n { title: 'Ảnh quá tối hoặc bị lóe sáng', check: false },\r\n { title: 'Ảnh chụp bị nhòe số CMTND/CCCD', check: false },\r\n { title: 'CMTND/CCCD hết hạn sử dụng', check: false },\r\n { title: 'Không có khuôn mặt xuất hiện trong ảnh selfie', check: false },\r\n { title: 'Ảnh selfie bị nhắm mắt', check: false },\r\n { title: 'Ảnh selfie quá tối hoặc lóe sáng', check: false },\r\n { title: 'Người dùng chưa đủ 18 tuổi', check: false },\r\n {\r\n title: 'Ảnh selfie và ảnh mặt trước của CMTND/CCCD không cùng một người',\r\n check: false\r\n }\r\n];\r\n\r\nexport { list_check_fail };\r\n","import React, { Component } from 'react';\r\nimport {\r\n Button,\r\n FormControl,\r\n FormGroup,\r\n Checkbox,\r\n FormControlLabel,\r\n Card,\r\n Box,\r\n Typography,\r\n TextField,\r\n CircularProgress\r\n} from '@material-ui/core';\r\n\r\nimport RotateRightIcon from '@material-ui/icons/RotateRight';\r\nimport { list_check_fail } from './data';\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n ly_do_reject: 0,\r\n reject: false,\r\n accept: false,\r\n deg_rotate: 0,\r\n list_check_fail: list_check_fail,\r\n\r\n is_accept: null,\r\n\r\n id_name: null,\r\n id_number: null,\r\n id_dob: null,\r\n id_address: null,\r\n id_issue_address: null,\r\n id_issue_date: null\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let data_cmt = this.props.data_cmt;\r\n\r\n try {\r\n this.setState({\r\n id_name: data_cmt.true_id.ocr_id.data_fields.name.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_name: data_cmt.true_id.final.kyc_result.front.name.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_name: data_cmt.user_info.name\r\n });\r\n } catch (error) { }\r\n }\r\n }\r\n\r\n try {\r\n this.setState({\r\n id_number: data_cmt.true_id.ocr_id.data_fields.id_number.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_number: data_cmt.true_id.final.kyc_result.front.id_number.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_number: data_cmt.user_info.id_number\r\n });\r\n } catch (error) { }\r\n }\r\n }\r\n\r\n try {\r\n this.setState({\r\n id_dob: data_cmt.true_id.ocr_id.data_fields.dob.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_dob: data_cmt.true_id.final.kyc_result.front.dob.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_dob: data_cmt.user_info.dob\r\n });\r\n } catch (error) { }\r\n }\r\n }\r\n\r\n try {\r\n this.setState({\r\n id_address: data_cmt.true_id.ocr_id.data_fields.id_address.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_address: data_cmt.true_id.final.kyc_result.front.id_address.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_address: data_cmt.user_info.address\r\n });\r\n } catch (error) { }\r\n }\r\n }\r\n\r\n try {\r\n this.setState({\r\n id_issue_date: data_cmt.true_id.ocr_id.data_fields.given_date.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_issue_date: data_cmt.true_id.final.kyc_result.back.given_date.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_issue_date: data_cmt.user_info.id_issue_date\r\n });\r\n } catch (error) { }\r\n }\r\n }\r\n\r\n try {\r\n this.setState({\r\n id_issue_address: data_cmt.true_id.ocr_id.data_fields.given_place.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_issue_address:\r\n data_cmt.true_id.final.kyc_result.back.given_place.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_issue_address: data_cmt.user_info.id_issue_address\r\n });\r\n } catch (error) { }\r\n }\r\n }\r\n }\r\n\r\n render_img = src_link => {\r\n let max_h = 400;\r\n return (\r\n
\r\n \r\n
\r\n );\r\n };\r\n\r\n render_img_selfie = src_link => {\r\n let max_h = 150;\r\n return (\r\n
\r\n \"\"\r\n
\r\n );\r\n };\r\n\r\n onChangeList_fail = event => {\r\n\r\n let pre_list_check = this.state.list_check_fail;\r\n let index_of_item = this.state.list_check_fail.findIndex(\r\n a => a.title === event.target.name\r\n );\r\n pre_list_check[index_of_item].check = event.target.checked;\r\n this.setState({ list_check_fail: pre_list_check });\r\n };\r\n\r\n card_text = (label, value, onChange) => {\r\n return (\r\n \r\n {label}\r\n onChange(event.target.value)}\r\n />\r\n \r\n );\r\n };\r\n\r\n render_accept = () => {\r\n return (\r\n \r\n {this.card_text('Họ và tên', this.state.id_name, value =>\r\n this.setState({ id_name: value })\r\n )}\r\n {this.card_text('Số CMTND/CCCD hộ chiếu', this.state.id_number, value =>\r\n this.setState({ id_number: value })\r\n )}\r\n {this.card_text('Ngày sinh', this.state.id_dob, value =>\r\n this.setState({ id_dob: value })\r\n )}\r\n {this.card_text('Địa chỉ', this.state.id_address, value =>\r\n this.setState({ id_address: value })\r\n )}\r\n {this.card_text('Ngày cấp', this.state.id_issue_date, value =>\r\n this.setState({ id_issue_date: value })\r\n )}\r\n {this.card_text('Nơi cấp', this.state.id_issue_address, value =>\r\n this.setState({ id_issue_address: value })\r\n )}\r\n \r\n );\r\n };\r\n\r\n render_rejcet = () => {\r\n return (\r\n \r\n \r\n \r\n {this.state.list_check_fail.map(item => (\r\n this.onChangeList_fail(event)}\r\n name={item.title}\r\n />\r\n }\r\n label={item.title}\r\n />\r\n ))}\r\n \r\n \r\n \r\n );\r\n };\r\n render_cs_confirm = () => {\r\n console.log(this.props.loading_confirm)\r\n if (this.state.is_accept) {\r\n if (\r\n this.state.id_number != null &&\r\n this.state.id_name != null &&\r\n this.state.id_number != '' &&\r\n this.state.id_name != ''\r\n ) {\r\n return (\r\n <>\r\n {this.props.loading_confirm ? : \r\n this.props.send_accept({\r\n id_address: { value: this.state.id_address },\r\n given_date: { value: this.state.id_issue_date },\r\n name: { value: this.state.id_name },\r\n given_place: { value: this.state.id_issue_address },\r\n id_number: { value: this.state.id_number },\r\n dob: { value: this.state.id_dob }\r\n })\r\n }>\r\n Xác nhận đổi thông tin người dùng và gửi thông báo\r\n }\r\n \r\n\r\n );\r\n }\r\n }\r\n\r\n if (this.state.is_accept == false) {\r\n return (\r\n {\r\n let data = '';\r\n this.state.list_check_fail.map(item => {\r\n if (item.check) {\r\n data = data + '- ' + item.title + '.
';\r\n }\r\n });\r\n this.props.send_reject(data);\r\n }}\r\n style={{ backgroundColor: 'rgb(244,67,54)', color: 'white' }}>\r\n Xác nhận thông tin sai và gửi thông báo\r\n \r\n );\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n {this.render_img_selfie(this.props.data.result.selfie)}\r\n {this.render_img(this.props.data.result.front)}\r\n {this.render_img(this.props.data.result.back)}\r\n \r\n\r\n \r\n this.setState({ deg_rotate: this.state.deg_rotate + 90 })\r\n }>\r\n \r\n \r\n \r\n\r\n
\r\n {/* this.setState({ is_accept: true })}>\r\n Accept\r\n \r\n\r\n this.setState({ is_accept: false })}>\r\n Reject\r\n \r\n {this.state.is_accept == true ? this.render_accept() : null}\r\n {this.state.is_accept == false ? this.render_rejcet() : null}\r\n\r\n {this.render_cs_confirm()} */}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default User;\r\n","import React, { Component } from 'react';\r\nimport {\r\n Button,\r\n FormControl,\r\n FormGroup,\r\n Checkbox,\r\n FormControlLabel,\r\n Card,\r\n Box,\r\n Typography,\r\n TextField,\r\n Input,\r\n CircularProgress\r\n} from '@material-ui/core';\r\n\r\nimport RotateRightIcon from '@material-ui/icons/RotateRight';\r\nimport { list_check_fail } from './data';\r\n\r\nclass Selfie extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n ly_do_reject: '',\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let data_cmt = this.props.data_cmt;\r\n\r\n try {\r\n this.setState({\r\n id_name: data_cmt.true_id.ocr_id.data_fields.name.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_name: data_cmt.true_id.final.kyc_result.front.name.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_name: data_cmt.user_info.name\r\n });\r\n } catch (error) { }\r\n }\r\n }\r\n\r\n try {\r\n this.setState({\r\n id_number: data_cmt.true_id.ocr_id.data_fields.id_number.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_number: data_cmt.true_id.final.kyc_result.front.id_number.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_number: data_cmt.user_info.id_number\r\n });\r\n } catch (error) { }\r\n }\r\n }\r\n\r\n try {\r\n this.setState({\r\n id_dob: data_cmt.true_id.ocr_id.data_fields.dob.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_dob: data_cmt.true_id.final.kyc_result.front.dob.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_dob: data_cmt.user_info.dob\r\n });\r\n } catch (error) { }\r\n }\r\n }\r\n\r\n try {\r\n this.setState({\r\n id_address: data_cmt.true_id.ocr_id.data_fields.id_address.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_address: data_cmt.true_id.final.kyc_result.front.id_address.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_address: data_cmt.user_info.address\r\n });\r\n } catch (error) { }\r\n }\r\n }\r\n\r\n try {\r\n this.setState({\r\n id_issue_date: data_cmt.true_id.ocr_id.data_fields.given_date.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_issue_date: data_cmt.true_id.final.kyc_result.back.given_date.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_issue_date: data_cmt.user_info.id_issue_date\r\n });\r\n } catch (error) { }\r\n }\r\n }\r\n\r\n try {\r\n this.setState({\r\n id_issue_address: data_cmt.true_id.ocr_id.data_fields.given_place.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_issue_address:\r\n data_cmt.true_id.final.kyc_result.back.given_place.value\r\n });\r\n } catch (error) {\r\n try {\r\n this.setState({\r\n id_issue_address: data_cmt.user_info.id_issue_address\r\n });\r\n } catch (error) { }\r\n }\r\n }\r\n }\r\n\r\n render_img = src_link => {\r\n let max_h = 400;\r\n return (\r\n
\r\n \r\n
\r\n );\r\n };\r\n\r\n render_img_selfie = src_link => {\r\n let max_h = 150;\r\n return (\r\n
\r\n \"\"\r\n
\r\n );\r\n };\r\n\r\n onChangeList_fail = event => {\r\n\r\n let pre_list_check = this.state.list_check_fail;\r\n let index_of_item = this.state.list_check_fail.findIndex(\r\n a => a.title === event.target.name\r\n );\r\n pre_list_check[index_of_item].check = event.target.checked;\r\n this.setState({ list_check_fail: pre_list_check });\r\n };\r\n\r\n card_text = (label, value, onChange) => {\r\n return (\r\n \r\n {label}\r\n onChange(event.target.value)}\r\n />\r\n \r\n );\r\n };\r\n\r\n render_reason = () => {\r\n return (\r\n \r\n Lý do:\r\n this.setState({ ly_do_reject: e.target.value })} value={this.state.ly_do_reject} >\r\n \r\n );\r\n };\r\n\r\n render_rejcet = () => {\r\n return (\r\n \r\n \r\n \r\n {this.state.list_check_fail.map(item => (\r\n this.onChangeList_fail(event)}\r\n name={item.title}\r\n />\r\n }\r\n label={item.title}\r\n />\r\n ))}\r\n \r\n \r\n \r\n );\r\n };\r\n render_cs_confirm = () => {\r\n if (this.state.is_accept) {\r\n if (\r\n this.state.id_number != null &&\r\n this.state.id_name != null &&\r\n this.state.id_number != '' &&\r\n this.state.id_name != ''\r\n ) {\r\n return (\r\n \r\n this.props.send_confirm_selfie(1, this.state.ly_do_reject)\r\n }>\r\n Xác nhận đổi thông tin người dùng và gửi thông báo\r\n \r\n );\r\n }\r\n }\r\n\r\n if (this.state.is_accept == false) {\r\n return (\r\n this.props.send_confirm_selfie(0, this.state.ly_do_reject)}\r\n style={{ backgroundColor: 'rgb(244,67,54)', color: 'white' }}>\r\n Xác nhận thông tin sai và gửi thông báo\r\n \r\n );\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n {this.render_img_selfie(this.props.data.result.selfie)}\r\n {this.render_img(this.props.data.result.front)}\r\n {this.render_img(this.props.data.result.back)}\r\n \r\n\r\n \r\n this.setState({ deg_rotate: this.state.deg_rotate + 90 })\r\n }>\r\n \r\n \r\n \r\n\r\n
\r\n {this.props.loading_confirm ? : <> this.setState({ is_accept: true })}>\r\n onClick={() => this.props.send_confirm_selfie(1, this.state.ly_do_reject)}>\r\n Accept\r\n \r\n\r\n this.setState({ is_accept: false })}\r\n onClick={() => this.props.send_confirm_selfie(0, this.state.ly_do_reject)}>\r\n Reject\r\n \r\n\r\n }\r\n\r\n {/* {this.render_reason()}\r\n {this.render_cs_confirm()} */}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default Selfie;\r\n","import React, { Component } from 'react';\r\nimport {\r\n Button,\r\n FormControl,\r\n FormGroup,\r\n Checkbox,\r\n FormControlLabel,\r\n Card,\r\n Box,\r\n Typography,\r\n TextField\r\n} from '@material-ui/core';\r\nimport CONST_DATA from 'constant';\r\nimport Axios from 'axios';\r\nimport RotateRightIcon from '@material-ui/icons/RotateRight';\r\nimport { list_check_fail } from './data';\r\n\r\nclass UpdateUserInfo extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n ly_do_reject: 0,\r\n reject: false,\r\n accept: false,\r\n deg_rotate: 0,\r\n list_check_fail: list_check_fail,\r\n\r\n is_accept: null,\r\n\r\n id_name: null,\r\n id_number: null,\r\n id_dob: null,\r\n id_address: null,\r\n id_issue_address: null,\r\n id_issue_date: null,\r\n data_true_id: null,\r\n unrender:false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if(this.props.data_cmt){\r\n let { full_name, identity_number, dob, id_issue_address, id_issue_date, address } = this.props.data_cmt;\r\n this.setState({\r\n id_name: full_name,\r\n id_number: identity_number,\r\n id_dob: dob,\r\n id_address: address,\r\n id_issue_date,\r\n id_issue_address,\r\n data_true_id: this.props.data_true_id\r\n })\r\n }\r\n else{\r\n alert(\"không có dữ liệu\")\r\n this.setState({\r\n unrender:true\r\n })\r\n }\r\n \r\n }\r\n\r\n render_img = src_link => {\r\n let max_h = 400;\r\n return (\r\n
\r\n \r\n
\r\n );\r\n };\r\n\r\n render_img_selfie = src_link => {\r\n let max_h = 150;\r\n return (\r\n
\r\n \"\"\r\n
\r\n );\r\n };\r\n\r\n onChangeList_fail = event => {\r\n\r\n let pre_list_check = this.state.list_check_fail;\r\n let index_of_item = this.state.list_check_fail.findIndex(\r\n a => a.title === event.target.name\r\n );\r\n pre_list_check[index_of_item].check = event.target.checked;\r\n this.setState({ list_check_fail: pre_list_check });\r\n };\r\n\r\n card_text = (label, value, onChange, key) => {\r\n const isNotMatchTrueId = this.state.data_true_id && this.state.data_true_id[key] && this.state.data_true_id[key].toUpperCase() !== value.toUpperCase();\r\n // console.log({ value, trueId: this.state.data_true_id[key] })\r\n return (\r\n \r\n {label}\r\n onChange(event.target.value)}\r\n helperText={isNotMatchTrueId ? `Thông tin không khớp với True ID: ${this.state.data_true_id[key]}` : null}\r\n variant={isNotMatchTrueId ? 'filled' : 'standard'}\r\n />\r\n \r\n );\r\n };\r\n\r\n render_accept = () => {\r\n return (\r\n \r\n {this.card_text('Họ và tên', this.state.id_name, value =>\r\n this.setState({ id_name: value }), 'name'\r\n )}\r\n {this.card_text('Số CMTND/CCCD hộ chiếu', this.state.id_number, value =>\r\n this.setState({ id_number: value }), 'id_number'\r\n )}\r\n {this.card_text('Ngày sinh', this.state.id_dob, value =>\r\n this.setState({ id_dob: value }), 'dob'\r\n )}\r\n {this.card_text('Địa chỉ', this.state.id_address, value =>\r\n this.setState({ id_address: value }), 'id_address'\r\n )}\r\n {this.card_text('Ngày cấp', this.state.id_issue_date, value =>\r\n this.setState({ id_issue_date: value }), 'given_date'\r\n )}\r\n {this.card_text('Nơi cấp', this.state.id_issue_address, value =>\r\n this.setState({ id_issue_address: value }), 'given_place'\r\n )}\r\n \r\n );\r\n };\r\n\r\n render_rejcet = () => {\r\n return (\r\n \r\n \r\n \r\n {this.state.list_check_fail.map(item => (\r\n this.onChangeList_fail(event)}\r\n name={item.title}\r\n />\r\n }\r\n label={item.title}\r\n />\r\n ))}\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n render_cs_confirm = () => {\r\n if (this.state.is_accept) {\r\n if (\r\n this.state.id_number != null &&\r\n this.state.id_name != null &&\r\n this.state.id_number != '' &&\r\n this.state.id_name != ''\r\n ) {\r\n return (\r\n \r\n this.props.handleAccept({\r\n identity_number: this.state.id_number,\r\n full_name: this.state.id_name,\r\n dob: this.state.id_dob,\r\n address: this.state.id_address,\r\n id_issue_date: this.state.id_issue_date,\r\n id_issue_address: this.state.id_issue_address\r\n })\r\n }>\r\n Xác nhận đổi thông tin người dùng và gửi thông báo\r\n \r\n );\r\n }\r\n }\r\n\r\n // if (this.state.is_accept == false) {\r\n // return (\r\n // {\r\n // let data = '';\r\n // this.state.list_check_fail.map(item => {\r\n // if (item.check) {\r\n // data = data + '- ' + item.title + '.
';\r\n // }\r\n // });\r\n // this.props.send_reject(data);\r\n // }}\r\n // style={{ backgroundColor: 'rgb(244,67,54)', color: 'white' }}>\r\n // Xác nhận thông tin sai và gửi thông báo\r\n // \r\n // );\r\n // }\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n {this.render_img_selfie(this.props.data.result.selfie)}\r\n {this.render_img(this.props.data.result.front)}\r\n {this.render_img(this.props.data.result.back)}\r\n \r\n\r\n \r\n this.setState({ deg_rotate: this.state.deg_rotate + 90 })\r\n }>\r\n \r\n \r\n \r\n\r\n
\r\n this.setState({ is_accept: true })}>\r\n Accept\r\n \r\n this.setState({ is_accept: false })}\r\n onClick={() =>\r\n this.props.send_confirm_selfie(0, this.state.ly_do_reject)\r\n }\r\n >\r\n Reject\r\n \r\n\r\n {/* this.setState({ is_accept: false })}>\r\n Reject\r\n */}\r\n {this.state.is_accept == true ? this.render_accept() : null}\r\n {this.state.is_accept == false ? this.render_rejcet() : null}\r\n\r\n {this.render_cs_confirm()}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default UpdateUserInfo;\r\n","import React, { Component } from 'react';\r\nimport {\r\n Button,\r\n FormControl,\r\n FormGroup,\r\n Checkbox,\r\n FormControlLabel,\r\n Card,\r\n Box,\r\n Typography,\r\n TextField\r\n} from '@material-ui/core';\r\nimport CONST_DATA from 'constant';\r\nimport Axios from 'axios';\r\nimport RotateRightIcon from '@material-ui/icons/RotateRight';\r\nimport { list_check_fail } from './data';\r\n\r\nclass IDCard extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n ly_do_reject: 0,\r\n reject: false,\r\n accept: false,\r\n deg_rotate: 0,\r\n list_check_fail: list_check_fail,\r\n\r\n is_accept: null,\r\n\r\n id_name: null,\r\n id_number: null,\r\n id_dob: null,\r\n id_issue_address: null,\r\n id_issue_date: null,\r\n unrender:false,\r\n };\r\n }\r\n\r\n getValueFromTrueIdAndUser(key, data_cmt, key_true_id, data_true_id) {\r\n if (data_cmt && data_cmt[key]) return data_cmt[key]\r\n if (data_true_id && data_true_id[key_true_id]) return data_true_id[key_true_id]\r\n return ''\r\n }\r\n\r\n componentDidMount() {\r\n let full_name = this.getValueFromTrueIdAndUser('full_name', this.props.data_cmt, 'name', this.props.data_true_id);\r\n let identity_number = this.getValueFromTrueIdAndUser('identity_number', this.props.data_cmt, 'id_number', this.props.data_true_id);\r\n let dob = this.getValueFromTrueIdAndUser('dob', this.props.data_cmt, 'dob', this.props.data_true_id);\r\n let id_issue_address = this.getValueFromTrueIdAndUser('id_issue_address', this.props.data_cmt, 'given_place', this.props.data_true_id);\r\n let id_issue_date = this.getValueFromTrueIdAndUser('id_issue_date', this.props.data_cmt, 'given_date', this.props.data_true_id);\r\n\r\n this.setState({\r\n id_name: full_name,\r\n id_number: identity_number,\r\n id_dob: dob,\r\n id_issue_date,\r\n id_issue_address,\r\n })\r\n }\r\n\r\n render_img = src_link => {\r\n let max_h = 400;\r\n return (\r\n
\r\n \r\n
\r\n );\r\n };\r\n\r\n render_img_selfie = src_link => {\r\n let max_h = 150;\r\n return (\r\n
\r\n \"\"\r\n
\r\n );\r\n };\r\n\r\n onChangeList_fail = event => {\r\n\r\n let pre_list_check = this.state.list_check_fail;\r\n let index_of_item = this.state.list_check_fail.findIndex(\r\n a => a.title === event.target.name\r\n );\r\n pre_list_check[index_of_item].check = event.target.checked;\r\n this.setState({ list_check_fail: pre_list_check });\r\n };\r\n\r\n card_text = (label, value, onChange, key) => {\r\n return (\r\n \r\n {label}\r\n onChange(event.target.value)}\r\n />\r\n \r\n );\r\n };\r\n\r\n render_accept = () => {\r\n return (\r\n \r\n {this.card_text('Họ và tên', this.state.id_name, value =>\r\n this.setState({ id_name: value }), 'name'\r\n )}\r\n {this.card_text('Số CMTND/CCCD hộ chiếu', this.state.id_number, value =>\r\n this.setState({ id_number: value }), 'id_number'\r\n )}\r\n {this.card_text('Ngày sinh', this.state.id_dob, value =>\r\n this.setState({ id_dob: value }), 'dob'\r\n )}\r\n {this.card_text('Ngày cấp', this.state.id_issue_date, value =>\r\n this.setState({ id_issue_date: value }), 'given_date'\r\n )}\r\n {this.card_text('Nơi cấp', this.state.id_issue_address, value =>\r\n this.setState({ id_issue_address: value }), 'given_place'\r\n )}\r\n \r\n );\r\n };\r\n\r\n render_rejcet = () => {\r\n return (\r\n \r\n \r\n \r\n {this.state.list_check_fail.map(item => (\r\n this.onChangeList_fail(event)}\r\n name={item.title}\r\n />\r\n }\r\n label={item.title}\r\n />\r\n ))}\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n isValidDate(date) {\r\n return /^\\d{2}\\/\\d{2}\\/\\d{4}$/.test(date);\r\n }\r\n\r\n render_cs_confirm = () => {\r\n if (this.state.is_accept) {\r\n if (\r\n this.state.id_number && this.state.id_name && this.state.id_issue_address && this.isValidDate(this.state.id_issue_date)\r\n && this.isValidDate(this.state.id_dob)\r\n ) {\r\n return (\r\n \r\n this.props.send_accept({\r\n identity_number: this.state.id_number,\r\n full_name: this.state.id_name,\r\n dob: this.state.id_dob,\r\n id_issue_date: this.state.id_issue_date,\r\n id_issue_address: this.state.id_issue_address\r\n })\r\n }>\r\n Xác nhận\r\n \r\n );\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n {this.render_img_selfie(this.props.data.result.selfie)}\r\n {this.render_img(this.props.data.result.front)}\r\n {this.render_img(this.props.data.result.back)}\r\n \r\n\r\n \r\n this.setState({ deg_rotate: this.state.deg_rotate + 90 })\r\n }>\r\n \r\n \r\n \r\n\r\n
\r\n this.setState({ is_accept: true })}>\r\n Accept\r\n \r\n \r\n this.props.send_reject('')\r\n }\r\n >\r\n Reject\r\n \r\n {this.state.is_accept === true ? this.render_accept() : null}\r\n {this.state.is_accept === false ? this.render_rejcet() : null}\r\n\r\n {this.render_cs_confirm()}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default IDCard;","import React, { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport { FixedSizeList } from 'react-window';\r\nimport { List } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: '100%',\r\n maxWidth: 360,\r\n backgroundColor: theme.palette.background.paper,\r\n position: 'relative',\r\n overflow: 'auto',\r\n maxHeight: 350,\r\n },\r\n listSection: {\r\n backgroundColor: 'inherit',\r\n },\r\n ul: {\r\n backgroundColor: 'inherit',\r\n padding: 0,\r\n },\r\n}));\r\n\r\n\r\n\r\nexport default function VirtualizedList({ data, handleOnCick }) {\r\n const classes = useStyles();\r\n return (\r\n
\r\n {data.length > 0 && \r\n {data.map(el => {\r\n return \r\n handleOnCick(el.user_id)} />\r\n \r\n })}\r\n }\r\n\r\n
\r\n );\r\n}","import React, { Component } from 'react';\r\nimport {\r\n Button,\r\n FormControl,\r\n FormGroup,\r\n Checkbox,\r\n FormControlLabel,\r\n Card,\r\n Box,\r\n Typography,\r\n TextField\r\n} from '@material-ui/core';\r\nimport RotateRightIcon from '@material-ui/icons/RotateRight';\r\nimport { list_check_fail } from './data';\r\n\r\nclass CheckUserPassport extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n reason: '',\r\n reject: false,\r\n accept: false,\r\n deg_rotate: 0,\r\n list_check_fail: list_check_fail,\r\n\r\n is_accept: null,\r\n\r\n id_name: null,\r\n id_identity: null,\r\n id_dob: null,\r\n id_nationality: null,\r\n id_issue_date: null,\r\n unrender: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if (this.props.data_cmt) {\r\n console.log(this.props.data_cmt)\r\n let { passport_info } = this.props.data_cmt;\r\n this.setState({\r\n id_name: passport_info.name,\r\n id_dob: passport_info.dob,\r\n id_identity: passport_info.identity,\r\n id_issue_date: passport_info.id_issue_date,\r\n id_nationality: passport_info.nationality\r\n })\r\n }\r\n else {\r\n alert(\"không có dữ liệu\")\r\n this.setState({\r\n unrender: true\r\n })\r\n }\r\n\r\n }\r\n\r\n render_img = src_link => {\r\n let max_h = 400;\r\n return (\r\n
\r\n \r\n
\r\n );\r\n };\r\n\r\n render_img_selfie = src_link => {\r\n let max_h = 150;\r\n return (\r\n
\r\n \"\"\r\n
\r\n );\r\n };\r\n\r\n onChangeList_fail = event => {\r\n\r\n let pre_list_check = this.state.list_check_fail;\r\n let index_of_item = this.state.list_check_fail.findIndex(\r\n a => a.title === event.target.name\r\n );\r\n pre_list_check[index_of_item].check = event.target.checked;\r\n this.setState({ list_check_fail: pre_list_check });\r\n };\r\n\r\n card_text = (label, value, onChange, key) => {\r\n return (\r\n \r\n {label}\r\n onChange(event.target.value)}\r\n />\r\n \r\n );\r\n };\r\n\r\n card_textarea = (label, value, onChange, key) => {\r\n return (\r\n \r\n onChange(event.target.value)}\r\n />\r\n \r\n );\r\n };\r\n\r\n render_rejcet = () => {\r\n return (\r\n \r\n {this.card_textarea('Lí do từ chối', this.state.reason, value =>\r\n this.setState({ reason: value }), 'reason'\r\n )}\r\n \r\n );\r\n };\r\n\r\n render_cs_confirm = () => {\r\n if (this.state.is_accept == false) {\r\n return (\r\n {\r\n this.props.send_reject(this.state.reason);\r\n }}\r\n style={{ backgroundColor: 'rgb(244,67,54)', color: 'white' }}>\r\n Xác nhận thông tin sai và gửi thông báo\r\n \r\n );\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n {this.render_img_selfie(this.props.data.result.selfie)}\r\n {this.render_img(this.props.data.result.front)}\r\n {this.render_img(this.props.data.result.back)}\r\n \r\n\r\n \r\n this.setState({ deg_rotate: this.state.deg_rotate + 90 })\r\n }>\r\n \r\n \r\n \r\n \r\n {this.card_text('Họ và tên', this.state.id_name, value =>\r\n this.setState({ id_name: value }), 'name'\r\n )}\r\n {this.card_text('Ngày sinh', this.state.id_dob, value =>\r\n this.setState({ id_dob: value }), 'dob'\r\n )}\r\n {this.card_text('Số hộ chiếu', this.state.id_identity, value =>\r\n this.setState({ id_identity: value }), 'id_identity'\r\n )}\r\n {this.card_text('Ngày cấp', this.state.id_issue_date, value =>\r\n this.setState({ id_issue_date: value }), 'given_date'\r\n )}\r\n {this.card_text('Nơi cấp', this.state.id_nationality, value =>\r\n this.setState({ id_nationality: value }), 'given_place'\r\n )}\r\n \r\n
\r\n \r\n this.props.send_accept({\r\n identity: this.state.id_identity,\r\n name: this.state.id_name,\r\n dob: this.state.id_dob,\r\n id_issue_date: this.state.id_issue_date,\r\n nationality: this.state.id_nationality\r\n })\r\n }>\r\n Accept\r\n \r\n this.setState({ is_accept: false })}\r\n >\r\n Reject\r\n \r\n {this.state.is_accept == true ? this.render_accept() : null}\r\n {this.state.is_accept == false ? this.render_rejcet() : null}\r\n\r\n {this.render_cs_confirm()}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default CheckUserPassport;\r\n","import React, { Component } from 'react';\r\nimport {\r\n Button,\r\n FormControl,\r\n FormGroup,\r\n Checkbox,\r\n FormControlLabel,\r\n Card,\r\n Box,\r\n Typography,\r\n TextField\r\n} from '@material-ui/core';\r\nimport RotateRightIcon from '@material-ui/icons/RotateRight';\r\nimport { list_check_fail } from './data';\r\n\r\nclass ReEkyc extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n ly_do_reject: 0,\r\n reject: false,\r\n accept: false,\r\n deg_rotate: 0,\r\n list_check_fail: list_check_fail,\r\n\r\n is_accept: null,\r\n\r\n id_name: null,\r\n id_number: null,\r\n id_dob: null,\r\n id_issue_address: null,\r\n id_issue_date: null,\r\n unrender:false,\r\n };\r\n }\r\n\r\n getValueFromTrueIdAndUser(key, data_cmt, key_true_id, data_true_id) {\r\n if (data_cmt && data_cmt[key]) return data_cmt[key]\r\n if (data_true_id && data_true_id[key_true_id]) return data_true_id[key_true_id]\r\n return ''\r\n }\r\n\r\n componentDidMount() {\r\n let full_name = this.getValueFromTrueIdAndUser('full_name', this.props.data_cmt, 'name', this.props.data_true_id);\r\n let identity_number = this.getValueFromTrueIdAndUser('identity_number', this.props.data_cmt, 'id_number', this.props.data_true_id);\r\n let dob = this.getValueFromTrueIdAndUser('dob', this.props.data_cmt, 'dob', this.props.data_true_id);\r\n let id_issue_address = this.getValueFromTrueIdAndUser('id_issue_address', this.props.data_cmt, 'given_place', this.props.data_true_id);\r\n let id_issue_date = this.getValueFromTrueIdAndUser('id_issue_date', this.props.data_cmt, 'given_date', this.props.data_true_id);\r\n\r\n this.setState({\r\n id_name: full_name,\r\n id_number: identity_number,\r\n id_dob: dob,\r\n id_issue_date,\r\n id_issue_address,\r\n })\r\n }\r\n\r\n render_img = src_link => {\r\n let max_h = 400;\r\n return (\r\n
\r\n \r\n
\r\n );\r\n };\r\n\r\n render_img_selfie = src_link => {\r\n let max_h = 150;\r\n return (\r\n
\r\n \"\"\r\n
\r\n );\r\n };\r\n\r\n onChangeList_fail = event => {\r\n\r\n let pre_list_check = this.state.list_check_fail;\r\n let index_of_item = this.state.list_check_fail.findIndex(\r\n a => a.title === event.target.name\r\n );\r\n pre_list_check[index_of_item].check = event.target.checked;\r\n this.setState({ list_check_fail: pre_list_check });\r\n };\r\n\r\n card_text = (label, value, onChange, key) => {\r\n return (\r\n \r\n {label}\r\n onChange(event.target.value)}\r\n />\r\n \r\n );\r\n };\r\n\r\n render_accept = () => {\r\n return (\r\n \r\n {this.card_text('Họ và tên', this.state.id_name, value =>\r\n this.setState({ id_name: value }), 'name'\r\n )}\r\n {this.card_text('Số CMTND/CCCD hộ chiếu', this.state.id_number, value =>\r\n this.setState({ id_number: value }), 'id_number'\r\n )}\r\n {this.card_text('Ngày sinh', this.state.id_dob, value =>\r\n this.setState({ id_dob: value }), 'dob'\r\n )}\r\n {this.card_text('Ngày cấp', this.state.id_issue_date, value =>\r\n this.setState({ id_issue_date: value }), 'given_date'\r\n )}\r\n {this.card_text('Nơi cấp', this.state.id_issue_address, value =>\r\n this.setState({ id_issue_address: value }), 'given_place'\r\n )}\r\n \r\n );\r\n };\r\n\r\n render_rejcet = () => {\r\n return (\r\n \r\n \r\n \r\n {this.state.list_check_fail.map(item => (\r\n this.onChangeList_fail(event)}\r\n name={item.title}\r\n />\r\n }\r\n label={item.title}\r\n />\r\n ))}\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n isValidDate(date) {\r\n return /^\\d{2}\\/\\d{2}\\/\\d{4}$/.test(date);\r\n }\r\n\r\n render_cs_confirm = () => {\r\n if (this.state.is_accept) {\r\n if (\r\n this.state.id_number && this.state.id_name && this.state.id_issue_address && this.isValidDate(this.state.id_issue_date)\r\n && this.isValidDate(this.state.id_dob)\r\n ) {\r\n return (\r\n \r\n this.props.send_accept({\r\n identity_number: this.state.id_number,\r\n full_name: this.state.id_name,\r\n dob: this.state.id_dob,\r\n id_issue_date: this.state.id_issue_date,\r\n id_issue_address: this.state.id_issue_address\r\n })\r\n }>\r\n Xác nhận\r\n \r\n );\r\n }\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n {this.render_img_selfie(this.props.data.result.selfie)}\r\n {this.render_img(this.props.data.result.front)}\r\n {this.render_img(this.props.data.result.back)}\r\n \r\n\r\n \r\n this.setState({ deg_rotate: this.state.deg_rotate + 90 })\r\n }>\r\n \r\n \r\n \r\n\r\n
\r\n this.setState({ is_accept: true })}>\r\n Accept\r\n \r\n \r\n this.props.send_reject('')\r\n }\r\n >\r\n Reject\r\n \r\n {this.state.is_accept === true ? this.render_accept() : null}\r\n {this.state.is_accept === false ? this.render_rejcet() : null}\r\n\r\n {this.render_cs_confirm()}\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ReEkyc;","import React, { Component } from 'react';\r\nimport { toast } from 'react-toastify';\r\nimport CONST_DATA from 'constant';\r\nimport Axios from 'axios';\r\nimport CmtItem from './CmtItem';\r\nimport {\r\n Button,\r\n CircularProgress,\r\n TextField,\r\n Typography\r\n} from '@material-ui/core';\r\nimport Selfie from './Selfie';\r\nimport UpdateUserInfo from './UpdateUserInfo';\r\nimport IDCard from './IDCard';\r\nimport VirtualizedList from 'components/VirtualizedList/ListVirtualized';\r\nimport CheckUserPassport from './Passport';\r\nimport ReEkyc from './ReEkyc';\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n access_token: null,\r\n user_id: null,\r\n data_success: false,\r\n data: null,\r\n\r\n is_loading: false,\r\n user_id_chosing: this.props.match.params.user_id,\r\n\r\n seach_text: null,\r\n\r\n data_detail: null,\r\n data_detail_success: false,\r\n\r\n data_cmt: null,\r\n data_cmt_success: false,\r\n\r\n need_cs_check_ly_do: 1,\r\n data_true_id: null,\r\n loading_confirm: false\r\n };\r\n }\r\n\r\n check_login = () => {\r\n let login_data = localStorage.getItem(CONST_DATA.localStorage_login);\r\n\r\n if (login_data === null) {\r\n this.props.history.push(CONST_DATA.router_sign_in);\r\n } else {\r\n login_data = JSON.parse(login_data);\r\n this.setState({\r\n access_token: login_data.access_token,\r\n user_id: login_data.user_id\r\n });\r\n }\r\n };\r\n\r\n async componentDidMount() {\r\n await this.check_login();\r\n await this.get_list(this.state.need_cs_check_ly_do);\r\n\r\n if (this.state.user_id_chosing != null) {\r\n this.get_data_detail(this.state.user_id_chosing);\r\n }\r\n }\r\n\r\n send_accept = data => {\r\n const body_req = {\r\n admin_assign: this.state.user_id,\r\n access_token: this.state.access_token,\r\n user_id: this.state.user_id_chosing,\r\n ocr_id: data\r\n };\r\n this.setState({ loading_confirm: true })\r\n\r\n Axios.post(CONST_DATA.cmt_trueid_api_cs_accept, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.props.history.push(CONST_DATA.router_cmt);\r\n toast.success('Cập nhật thông tin thành công.')\r\n window.location.reload();\r\n }\r\n this.setState({ loading_confirm: false })\r\n })\r\n .catch(error => {\r\n this.setState({ loading_confirm: false })\r\n toast.error('Cập nhật thông tin không thành công vui lòng thử lại.')\r\n });\r\n };\r\n\r\n send_accept_new = data => {\r\n const body_req = {\r\n admin_assign: this.state.user_id,\r\n access_token: this.state.access_token,\r\n user_id: this.state.user_id_chosing,\r\n ocr_id: data\r\n };\r\n this.setState({ loading_confirm: true })\r\n\r\n Axios.post(CONST_DATA.ekyc_api_cs_accept, body_req)\r\n .then(response => {\r\n if (response.data.error_code === '0') {\r\n this.props.history.push(CONST_DATA.router_cmt);\r\n toast.success('Cập nhật thông tin người dùng thành công.');\r\n window.location.reload();\r\n } else {\r\n toast.error(`Cập nhật thông tin người dùng không thành công: ${response.data.message}`)\r\n }\r\n this.setState({ loading_confirm: false })\r\n })\r\n .catch(error => {\r\n this.setState({ loading_confirm: false })\r\n toast.error('Cập nhật thông tin không thành công vui lòng thử lại.')\r\n });\r\n };\r\n\r\n send_confirm_selfie = (status, reason) => {\r\n const body_req = {\r\n admin_assign: this.state.user_id,\r\n access_token: this.state.access_token,\r\n user_id: this.state.user_id_chosing,\r\n accept: status,\r\n // content: reason\r\n };\r\n // if (reason) {\r\n // body_req.content = reason;\r\n // }\r\n // console.log({ body_req });\r\n\r\n Axios.post(CONST_DATA.check_selfie, body_req)\r\n .then(response => {\r\n const result = response.data;\r\n if (result.error_code === '0') {\r\n this.props.history.push(CONST_DATA.router_cmt);\r\n toast.success('Cập nhật thông tin người dùng thành công.');\r\n }\r\n else {\r\n toast.error(`Cập nhật thông tin người dùng không thành công: ${result.message}`)\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error)\r\n });\r\n };\r\n\r\n send_reject = data => {\r\n const body_req = {\r\n admin_assign: this.state.user_id,\r\n access_token: this.state.access_token,\r\n user_id: this.state.user_id_chosing,\r\n reject_data: data\r\n };\r\n this.setState({ loading_confirm: true })\r\n Axios.post(CONST_DATA.cmt_trueid_api_cs_reject, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.props.history.push(CONST_DATA.router_cmt);\r\n window.location.reload();\r\n this.setState({ loading_confirm: false })\r\n }\r\n this.setState({ loading_confirm: false })\r\n })\r\n .catch(error => {\r\n toast.error('Cập nhật không thành công vui lòng thử lại.')\r\n this.setState({ loading_confirm: false })\r\n });\r\n };\r\n\r\n send_reject_new = data => {\r\n const body_req = {\r\n admin_assign: this.state.user_id,\r\n access_token: this.state.access_token,\r\n user_id: this.state.user_id_chosing,\r\n reject_data: data\r\n };\r\n this.setState({ loading_confirm: true })\r\n Axios.post(CONST_DATA.ekyc_api_cs_reject, body_req)\r\n .then(response => {\r\n if (response.data.error_code === '0') {\r\n this.props.history.push(CONST_DATA.router_cmt);\r\n toast.success('Cập nhật thông tin người dùng thành công.');\r\n window.location.reload();\r\n } else {\r\n toast.error(`Cập nhật thông tin người dùng không thành công: ${response.data.message}`)\r\n }\r\n this.setState({ loading_confirm: false })\r\n })\r\n .catch(error => {\r\n toast.error('Cập nhật không thành công vui lòng thử lại.')\r\n this.setState({ loading_confirm: false })\r\n });\r\n };\r\n\r\n // re-ekyc\r\n send_re_ekyc_accept = data => {\r\n const body_req = {\r\n admin_assign: this.state.user_id,\r\n access_token: this.state.access_token,\r\n user_id: this.state.user_id_chosing,\r\n ocr_id: data\r\n };\r\n this.setState({ loading_confirm: true })\r\n\r\n this.send_cs_action(CONST_DATA.re_ekyc_cs_accept, body_req)\r\n };\r\n\r\n send_re_ekyc_reject = data => {\r\n const body_req = {\r\n admin_assign: this.state.user_id,\r\n access_token: this.state.access_token,\r\n user_id: this.state.user_id_chosing,\r\n reject_data: data\r\n };\r\n this.setState({ loading_confirm: true })\r\n \r\n this.send_cs_action(CONST_DATA.re_ekyc_cs_reject, body_req)\r\n };\r\n\r\n send_cs_action = (url, data) => {\r\n Axios.post(url, data)\r\n .then(response => {\r\n if (response.data.error_code === '0') {\r\n this.props.history.push(CONST_DATA.router_cmt);\r\n toast.success('Cập nhật thông tin người dùng thành công.');\r\n window.location.reload();\r\n } else {\r\n toast.error(`Cập nhật thông tin người dùng không thành công: ${response.data.message}`)\r\n }\r\n this.setState({ loading_confirm: false })\r\n })\r\n .catch(error => {\r\n toast.error('Cập nhật không thành công vui lòng thử lại.')\r\n this.setState({ loading_confirm: false })\r\n });\r\n }\r\n\r\n get_list = need_cs_check_ly_do => {\r\n const body_req = {\r\n admin_assign: this.state.user_id,\r\n access_token: this.state.access_token,\r\n need_cs_check_ly_do: need_cs_check_ly_do\r\n };\r\n\r\n Axios.post(CONST_DATA.cmt_get_list, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.setState({\r\n data_success: true,\r\n data: response.data.data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n });\r\n };\r\n\r\n get_data_detail = async uid => {\r\n const body_req = {\r\n admin_assign: this.state.user_id,\r\n access_token: this.state.access_token,\r\n user_id: uid,\r\n is_re_ekyc: [14,15,16].includes(this.state.need_cs_check_ly_do)\r\n };\r\n\r\n await this.setState({\r\n data_detail_success: false,\r\n data_detail: null,\r\n data_cmt_success: false,\r\n data_cmt: null,\r\n is_loading: true\r\n });\r\n\r\n await Axios.post(CONST_DATA.cmt_get_image, body_req)\r\n // Axios.post('https://cs.finhay.com.vn/api_finhaycs/cmt/get_image', body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.setState({\r\n data_detail_success: true,\r\n data_detail: response.data.data,\r\n is_loading: false\r\n });\r\n }\r\n else {\r\n\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n\r\n\r\n // cap nhat thong tin user\r\n if ([5,7,9,10,11,12,13,14,15,16].includes(this.state.need_cs_check_ly_do)) {\r\n await Axios.post(CONST_DATA.cmt_get_detail_user_id, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n const { user_info_updated_by_user, true_id } = response.data.data;\r\n if (true_id && true_id.ocr_id && true_id.ocr_id.data_fields) {\r\n console.log(true_id.ocr_id.data_fields);\r\n const data_true_id = true_id.ocr_id.data_fields;\r\n const data_true_id_state = {};\r\n for (const key in data_true_id) {\r\n data_true_id_state[key] = data_true_id[key].value;\r\n }\r\n this.setState({ data_true_id: data_true_id_state })\r\n }\r\n this.setState({ data_cmt_success: true, data_cmt: user_info_updated_by_user, is_loading: false });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n else {\r\n await Axios.post(CONST_DATA.cmt_get_detail_user_id, body_req)\r\n .then(response => {\r\n if (response.data.status === 'success') {\r\n this.setState({\r\n data_cmt_success: true,\r\n data_cmt: response.data.data,\r\n is_loading: false\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n };\r\n\r\n seach_user_id = () => {\r\n this.props.history.push(\r\n CONST_DATA.router_cmt + '/' + this.state.seach_text\r\n );\r\n\r\n this.setState({\r\n user_id_chosing: this.state.seach_text\r\n });\r\n };\r\n\r\n render_detail_info = () => {\r\n if (this.state.need_cs_check_ly_do === 6) {\r\n return \r\n }\r\n if (this.state.need_cs_check_ly_do === 5) {\r\n return this.handleAccept(data)}\r\n data_true_id={this.state.data_true_id}\r\n loading_confirm={this.state.loading_confirm}\r\n send_confirm_selfie={this.send_confirm_selfie}\r\n >\r\n }\r\n if (this.state.need_cs_check_ly_do === 8) {\r\n return this.acceptAndUpdatePassportInfor(data)}\r\n send_reject={data => this.rejectPassportInfor(data)}\r\n loading_confirm={this.state.loading_confirm}\r\n >\r\n }\r\n if ([7,9,10,11,12,13].includes(this.state.need_cs_check_ly_do)) {\r\n return this.send_accept_new(data)}\r\n send_reject={data => this.send_reject_new(data)}\r\n >\r\n }\r\n if ([14,15,16].includes(this.state.need_cs_check_ly_do)) {\r\n return this.send_re_ekyc_accept(data)}\r\n send_reject={data => this.send_re_ekyc_reject(data)}\r\n >\r\n }\r\n return this.send_accept(data)}\r\n send_reject={data => this.send_reject(data)}\r\n loading_confirm={this.state.loading_confirm}\r\n />\r\n };\r\n\r\n handleAccept = async (data_ocr) => {\r\n const body_req = {\r\n access_token: this.state.access_token,\r\n admin_assign: this.state.user_id,\r\n user_id: this.state.user_id_chosing,\r\n ocr_id: data_ocr\r\n };\r\n this.setState({ loading_confirm: true })\r\n await Axios.post(CONST_DATA.accept_trueid_v2, body_req)\r\n .then(response => {\r\n const result = response.data;\r\n // if (result.status === 'success') {\r\n // toast.success('Cập nhật thông tin thành công.');\r\n // window.location.reload();\r\n // }\r\n // else if (result.status === 'error') {\r\n // toast.error(`Cập nhật thông tin không thành công: ${result.data}`);\r\n // }\r\n if (result.error_code === '0') {\r\n toast.success('Cập nhật thông tin thành công.');\r\n window.location.reload();\r\n }\r\n else {\r\n toast.error(`Cập nhật thông tin không thành công: ${result.message}`);\r\n }\r\n this.setState({ loading_confirm: false })\r\n })\r\n .catch(error => {\r\n this.setState({ loading_confirm: false })\r\n console.log(error);\r\n });\r\n }\r\n\r\n // accept và update thông tin passport người dùng\r\n acceptAndUpdatePassportInfor = async (passport_info) => {\r\n const body_req = {\r\n access_token: this.state.access_token,\r\n admin_assign: this.state.user_id,\r\n user_id: this.state.user_id_chosing,\r\n passport_info: passport_info\r\n };\r\n this.setState({ loading_confirm: true })\r\n await Axios.put(CONST_DATA.cmt_passport_api_cs_accept, body_req)\r\n .then(response => {\r\n const result = response.data;\r\n if (result.error_code === '0') {\r\n this.props.history.push(CONST_DATA.router_cmt);\r\n toast.success('Cập nhật thông tin thành công.');\r\n window.location.reload();\r\n }\r\n else {\r\n toast.error(`Cập nhật thông tin không thành công: ${result.message}`);\r\n }\r\n this.setState({ loading_confirm: false })\r\n })\r\n .catch(error => {\r\n this.setState({ loading_confirm: false })\r\n console.log(error);\r\n });\r\n }\r\n\r\n //reject passport user\r\n rejectPassportInfor = async (reason) => {\r\n const body_req = {\r\n access_token: this.state.access_token,\r\n admin_assign: this.state.user_id,\r\n user_id: this.state.user_id_chosing,\r\n reason: reason\r\n };\r\n this.setState({ loading_confirm: true })\r\n await Axios.put(CONST_DATA.cmt_passport_api_cs_reject, body_req)\r\n .then(response => {\r\n const result = response.data;\r\n if (result.error_code === '0') {\r\n toast.success('Đã thành công.');\r\n this.props.history.push(CONST_DATA.router_cmt);\r\n window.location.reload();\r\n }\r\n else {\r\n toast.error(`Cập nhật thông tin không thành công: ${result.message}`);\r\n }\r\n this.setState({ loading_confirm: false })\r\n })\r\n .catch(error => {\r\n this.setState({ loading_confirm: false })\r\n console.log(error);\r\n });\r\n }\r\n\r\n handleOnClickItemUserId = (user_id) => {\r\n this.props.history.push(\r\n CONST_DATA.router_cmt + '/' + user_id\r\n );\r\n this.setState({\r\n user_id_chosing: user_id,\r\n data_cmt_success: false,\r\n data_detail_success: false\r\n });\r\n\r\n this.get_data_detail(user_id);\r\n }\r\n\r\n render() {\r\n let need_cs_check_ly_do_arr = [\r\n // { code: 1, title: 'Quá 3 lần check' },\r\n // { code: 2, title: 'Hộ chiếu' },\r\n // { code: 3, title: 'Sai mặt' },\r\n // { code: 4, title: 'Tên - bank - cmt không khớp' },\r\n { code: 5, title: 'Cập nhật thông tin người dùng' },\r\n { code: 6, title: 'Đối chiếu Selfie - CMT' },\r\n { code: 8, title: 'Đối chiếu Hộ chiếu' },\r\n { code: 7, title: 'Dưới 18 tuổi' },\r\n { code: 9, title: 'CMT hết hạn' },\r\n { code: 10, title: 'Cập nhật thông tin người dùng(Mới)' },\r\n { code: 11, title: 'Đối chiếu Selfie - CMT(Mới)' },\r\n { code: 12, title: 'Trùng Số CMT' },\r\n { code: 13, title: 'ID Validity lỗi' },\r\n { code: 14, title: '[Re-eKYC] Chụp ảnh sai 3 lần' },\r\n { code: 15, title: '[Re-eKYC] User thay đổi thông tin' },\r\n { code: 16, title: '[Re-eKYC] ID Validity lỗi' },\r\n ];\r\n\r\n return (\r\n
\r\n \r\n {need_cs_check_ly_do_arr.map(item => (\r\n {\r\n this.setState({\r\n data: null,\r\n data_success: false,\r\n need_cs_check_ly_do: item.code,\r\n data_cmt_success: false\r\n });\r\n this.get_list(item.code);\r\n }}\r\n style={{ margin: 10 }}\r\n variant=\"contained\"\r\n color={\r\n this.state.need_cs_check_ly_do === item.code\r\n ? 'primary'\r\n : 'default'\r\n }>\r\n \r\n {item.title}\r\n \r\n \r\n ))}\r\n\r\n {\r\n if (e.key === 'Enter') {\r\n this.seach_user_id();\r\n this.get_data_detail(this.state.seach_text);\r\n }\r\n }}\r\n onChange={event =>\r\n this.setState({ seach_text: event.target.value })\r\n }\r\n />\r\n\r\n\r\n {this.state.data_success\r\n ? \r\n : null}\r\n
\r\n\r\n
\r\n {this.state.is_loading ? : null}\r\n {this.state.data_detail_success && this.state.data_cmt_success && (\r\n this.render_detail_info()\r\n )}\r\n
\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default User;\r\n","import React, { Component } from 'react';\r\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Grid,\r\n Paper,\r\n TextField,\r\n Typography,\r\n Button,\r\n Card\r\n} from '@material-ui/core';\r\nimport CONST_DATA from 'constant';\r\nimport Axios from 'axios';\r\nimport { get_time_second } from 'utility';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n padding: theme.spacing(2),\r\n margin: theme.spacing(1)\r\n },\r\n textField: {\r\n margin: theme.spacing(1)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n ticket_id: null,\r\n new_user_id: null,\r\n password: null,\r\n admin_id: null,\r\n error_text: null\r\n };\r\n }\r\n\r\n render_send = () => {\r\n if (\r\n this.state.ticket_id != null &&\r\n this.state.new_user_id != null &&\r\n this.state.password != null\r\n ) {\r\n return (\r\n this.send_data()}>\r\n Xác nhận\r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n };\r\n\r\n send_data = () => {\r\n const body_req = {\r\n ticket_id: this.state.ticket_id,\r\n new_user_id: this.state.new_user_id,\r\n admin_id: this.props.admin_id,\r\n password: this.state.password\r\n };\r\n\r\n Axios.post(CONST_DATA.tao_ho_don, body_req)\r\n .then(response => {\r\n if (response.data.status == 'success') {\r\n window.location.reload();\r\n } else {\r\n this.setState({\r\n error_text: response.data.data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n return (\r\n \r\n Tạo hộ đơn\r\n this.setState({ ticket_id: event.target.value })}\r\n />\r\n this.setState({ new_user_id: event.target.value })}\r\n />\r\n this.setState({ password: event.target.value })}\r\n />\r\n {this.state.error_text}\r\n {this.render_send()}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withStyles(styles)(User);\r\n","import React, { Component } from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport {\r\n Grid,\r\n} from '@material-ui/core';\r\nimport CONST_DATA from 'constant';\r\nimport TaoHoDon from './TaoHoDon';\r\n\r\nconst styles = theme => ({\r\n root: {\r\n padding: theme.spacing(2),\r\n margin: theme.spacing(1)\r\n },\r\n textField: {\r\n margin: theme.spacing(1)\r\n }\r\n});\r\n\r\nclass User extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n }\r\n\r\n check_login = () => {\r\n let login_data = localStorage.getItem(CONST_DATA.localStorage_login);\r\n\r\n if (login_data == null) {\r\n this.props.history.push(CONST_DATA.router_sign_in);\r\n } else {\r\n login_data = JSON.parse(login_data);\r\n this.setState({\r\n access_token: login_data.access_token,\r\n admin_id: login_data.user_id\r\n });\r\n }\r\n };\r\n\r\n componentDidMount() {\r\n this.check_login();\r\n }\r\n\r\n render() {\r\n const { classes } = this.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\nexport default withStyles(styles)(User);\r\n","import React from 'react';\r\nimport { Switch, Redirect } from 'react-router-dom';\r\nimport { RouteWithLayout } from './components';\r\nimport { Main as MainLayout, Minimal as MinimalLayout } from './layouts';\r\nimport {\r\n UserList as UserListView,\r\n SignIn as SignInView,\r\n NotFound as NotFoundView,\r\n Admin,\r\n Admin0,\r\n Detail,\r\n Ketoan,\r\n NewComment,\r\n KetoanHoantra,\r\n Cmt,\r\n DoiSoatEKyc,\r\n DanhSachNguoiDung\r\n} from './views';\r\nimport CONST_DATA from 'constant';\r\nimport Tool from 'views/Tool';\r\n\r\nconst Routes = () => {\r\n return (\r\n \r\n \r\n\r\n (\r\n \r\n )}\r\n exact\r\n layout={MainLayout}\r\n path={CONST_DATA.router_viec_cua_toi}\r\n />\r\n\r\n }\r\n exact\r\n layout={MainLayout}\r\n path={CONST_DATA.router_all}\r\n />\r\n\r\n }\r\n exact\r\n layout={MainLayout}\r\n path={CONST_DATA.router_doi_soat_ekyc}\r\n />\r\n }\r\n exact\r\n layout={MainLayout}\r\n path={CONST_DATA.router_can_xu_ly}\r\n />\r\n\r\n (\r\n \r\n )}\r\n exact\r\n layout={MainLayout}\r\n path={CONST_DATA.router_dang_giai_quyet}\r\n />\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\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 Routes;\r\n","import React, { Component } from 'react';\r\nimport { Router } from 'react-router-dom';\r\nimport { createBrowserHistory } from 'history';\r\nimport { Chart } from 'react-chartjs-2';\r\nimport { ThemeProvider } from '@material-ui/styles';\r\nimport validate from 'validate.js';\r\nimport { ToastContainer } from \"react-toastify\";\r\nimport { chartjs } from './helpers';\r\nimport theme from './theme';\r\nimport 'react-perfect-scrollbar/dist/css/styles.css';\r\nimport './assets/scss/index.scss';\r\nimport validators from './common/validators';\r\nimport Routes from './Routes';\r\n\r\nconst browserHistory = createBrowserHistory();\r\n\r\nChart.helpers.extend(Chart.elements.Rectangle.prototype, {\r\n draw: chartjs.draw\r\n});\r\n\r\nvalidate.validators = {\r\n ...validate.validators,\r\n ...validators\r\n};\r\n\r\nexport default class App extends Component {\r\n\r\n render() {\r\n console.log(\"ENVIRONMENT VARIABLE\", process.env)\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\n\r\nimport * as serviceWorker from './serviceWorker';\r\nimport App from './App';\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}