{"version":3,"sources":["helper/history.js","helper/type.js","reducer/SearchMutipleInvoice_Reducer.js","reducer/index.js","action/Dispatch.js","helper/axio.js","components/AppMenu_UserInfo.js","components/HeaderMenu.js","components/HeaderSlide.js","components/ModalOptions/ExtensionDownload.js","components/ModalOptions/InvoiceInfomation.js","components/ModalOptions/InvoiceOptions.js","components/ModalOptions/PopupKH.js","components/ModalOptions/PopupTBPH.js","components/ModalOptions/MinvoicePlugin.js","components/ModalOptions/SearchInfo.js","components/ModalOptions/GroupOptions.js","components/ExportModal.js","components/LookupEinvoice/LookupInvoiceList.js","components/ChildSearchForm/SearchByFiles.js","components/ChildSearchForm/SearchMutipleInvoice.js","components/ChildSearchForm/SearchOneInvoice.js","components/ChildSearchForm/SearchInvoiceBody.js","components/AppRoute/App_Router.js","components/SearchForm.js","components/ContentBody.js","components/FixContentBody.js","components/ContentSlider.js","components/Footers.js","App.js","index.js"],"names":["createBrowserHistory","ADD_USER","LOGOUT","BODY","user","JSON","parse","localStorage","getItem","initialState","isLoggedIn","show","allReducers","combineReducers","state","action","type","payload","Logout","ContentBody","port","baseUrl","document","location","process","toString","protocol","hostname","axios","defaults","baseURL","axiosInstance","create","connect","withRouter","props","useState","modal","oldpass","newpass","confirmpass","setState","open","toggle","setToggle","addToast","useToasts","useForm","defaultValues","register","handleSubmit","errors","React","isLoad","setisLoad","get_ref","useRef","handleLogout","removeItem","handleChange","e","target","name","value","useEffect","addEventListener","handleBodyClick","removeEventListener","event","current","contains","state_user","className","ref","id","onClick","style","backgroundImage","backgroundPosition","backgroundSize","textAlign","padding","color","cursor","username","margin","icon","faKey","size","to","pathname","faSignOutAlt","tabIndex","role","onSubmit","data","axiosConfig","headers","token","appearance","post","then","res","undefined","ok","stringify","toLocaleLowerCase","error","history","push","catch","err","response","status","message","htmlFor","onChange","defaultValue","active","spinner","styles","wrapper","width","height","HeaderMenu","href","src","alt","Component","ExtensionDownload","infomationInvoice","json","masothue","sobaomat","viewBox","fill","xmlns","d","responseType","file","Blob","fileURL","URL","createObjectURL","a","createElement","body","appendChild","download","click","window","revokeObjectURL","removeChild","title","inchuyendoi","console","log","InvoiceInfomation","InfomationData","InvoiceData","align","mau_hd","inv_invoiceSeries","inv_invoiceIssuedDate","inv_invoiceNumber","parseFloat","sum_tien","toLocaleString","InvoiceOptions","InvoiceDatas","InvoiceCus","useStyles","makeStyles","theme","form","display","flexDirection","formControl","marginTop","spacing","minWidth","formControlLabel","table","PopupKH","openKH","dataKH","onHide","classes","maxWidth","Fragment","Dialog","fullWidth","onClose","DialogTitle","DialogContent","TableContainer","component","Paper","Table","TableHead","backgroundColor","TableRow","TableCell","TableBody","length","map","row","index","ten_cty","dia_chi","ma_so_thue","cqthue_ql","cqthuecap_tinh","Moment","ngay_thanh_lap","format","nguoi_dai_dien","DialogActions","Button","PopupTBPH","date","no","dataUsing","formNo","symbol","quantity","from","providerName","providerTax","options","useDefaultPath","connection","hubConnection","hubProxy","createHubProxy","PluginMV","PluginConn","on","disconnected","setTimeout","start","done","fail","_plugin","_conn","SearchInfo","openPopup","setopenPopup","openTBPH","setopenTBPH","popupDataTBPH","setpopupDataTBPH","popupDataKH","setpopupDataKH","isLoading","setisLoading","jsonPost","SearchData","ky_hieu","kyHieu","mau_so","mauHD","closeToggle","code","toast","warn","position","autoClose","hideProgressBar","closeOnClick","pauseOnHover","draggable","progress","jsonMstInfo","msThue","key","md5","substring","toUpperCase","jsonRead","xml","ecd","alert","invoke","root","GroupOptions","InvoiceOptionsData","infoModal","setinfoModal","InvoiceSeries","setInvoiceSeries","MauSo","setMauSo","masoThue","setmasoThue","authID","setauthID","crypt","setcrypt","Ecd","setEcd","jsonInfo","inv_buyerTaxCode","inv_InvoiceAuth_id","auth_id","crypts","atob","success","appBar","marginLeft","flex","ExportModal","hide","byteData","scroll","AppBar","Toolbar","paddingRight","IconButton","edge","dividers","List","url","setLoading","isLoadingButton","setLoadingButton","tu_ngay","Date","den_ngay","mst","StateLookup","setStateLookup","pageSize","setPageSize","data_rows","setdata_rows","openModal","setOpenModal","setByteData","datepickerRef","datepickerRef2","data_Lookup","dateFormat","ma_dt","sortedObjs","sort","b","Number","i","includes","columns","field","headerName","renderHeader","identity","headerAlign","renderCell","params","valueFormatter","description","variant","data_json","ClickDownloadXML","ClickView","preventDefault","placeholderText","selected","showMonthDropdown","showYearDropdown","peekNextMonth","dropdownMode","shouldCloseOnSelect","setOpen","faCalendarCheck","opacity","startIcon","faSync","searchInvoiceList","onPageSizeChange","rowsPerPageOptions","rows","getRowId","ColumnMenuIcon","componentsProps","pagination","labelRowsPerPage","labelDisplayedRows","count","backIconButtonText","nextIconButtonText","localeText","footerRowSelected","SearchByFiles","fileInputRef","fileName","setfileName","handleFiles","typeFile","indexOf","onDragOver","onDragEnter","onDragLeave","onDrop","files","dataTransfer","multiple","currentTarget","selectedFile","formData","FormData","append","TextDecoder","decode","uploadFiles","addUser","password","newvalue","replace","state_new","setItem","userClick","autoFocus","placeholder","SearchOneInvoice","_mst","_sbm","SearchInvoiceBody","useParams","jpram","useLocation","search","jh","URLSearchParams","ms","get","mS","sbm","Click","App_Router","exact","path","LookupInvoiceList","SearchForm","typeClick","settypeClick","disable","setdisable","disabled","fontSize","fontWeight","SwiperCore","use","Autoplay","store","createStore","Navigation","App","script","async","autoDismiss","autoDismissTimeout","pageId","appId","ReactDOM","render","getElementById"],"mappings":"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","file":"static/js/main.6d3437a2.chunk.js","sourcesContent":["import { createBrowserHistory, HashHistory } from 'history';\r\n\r\nexport default createBrowserHistory();","export const ADD_USER = \"ADD_USER\"\r\nexport const LOGOUT = \"LOGOUT\"\r\nexport const BODY = \"BODY\"","\r\nimport { ADD_USER } from \"../helper/type\"\r\nimport { LOGOUT } from \"../helper/type\"\r\nimport { BODY } from \"../helper/type\"\r\n\r\nconst user = JSON.parse(localStorage.getItem(\"user\"));\r\n\r\nconst initialState = user\r\n ? { isLoggedIn: true, user , show: true}\r\n : { isLoggedIn: false, user: null , show: true};\r\n\r\nexport default (state = initialState, action) => {\r\n switch (action.type) {\r\n\r\n case ADD_USER:\r\n return {\r\n ...state, isLoggedIn: true, user: JSON.parse(action.payload)\r\n }\r\n case LOGOUT:\r\n return {\r\n ...state,\r\n isLoggedIn: false,\r\n user: null,\r\n };\r\n case BODY:\r\n return {\r\n ...state,\r\n show : action.payload\r\n };\r\n default:\r\n return state\r\n }\r\n}","import { combineReducers } from \"redux\"\r\nimport SearchMutipleInvoice_Reducer from \"./SearchMutipleInvoice_Reducer\"\r\n\r\nconst allReducers = combineReducers({\r\n user: SearchMutipleInvoice_Reducer,\r\n})\r\n\r\nexport default allReducers","import { ADD_USER } from \"../helper/type\"\r\nimport { LOGOUT } from \"../helper/type\"\r\nimport { BODY } from \"../helper/type\"\r\n//dispatch\r\nexport const addUser = (user) => {\r\n return {\r\n type: ADD_USER,\r\n payload: user,\r\n }\r\n}\r\nexport const Logout = () => {\r\n return {\r\n type: LOGOUT,\r\n\r\n }\r\n}\r\nexport const ContentBody = (show) => {\r\n return {\r\n type: BODY,\r\n payload: show,\r\n }\r\n}","import axios from \"axios\";\r\nvar port = \"\";\r\nvar baseUrl = \"\";\r\nif (document.location.port === \"3000\") {\r\n baseUrl = process.env.REACT_APP_PUBLIC_URL;\r\n}\r\nelse {\r\n if (document.location.port != 80 && document.location.port != 445) {\r\n port = \":\" + document.location.port.toString();\r\n }\r\n // baseUrl = document.location.protocol + \"//\" + document.location.hostname + port + \"/api\";\r\n baseUrl = document.location.protocol + \"//\" + document.location.hostname + port;\r\n}\r\naxios.defaults.baseURL = baseUrl;\r\n// const baseUrl = process.env.REACT_APP_PUBLIC_URL;\r\nconst axiosInstance = axios.create({\r\n baseURL: baseUrl\r\n})\r\nexport default axiosInstance;","import React, { Component } from 'react';\r\nimport { useEffect, useState, useRef } from \"react\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport { Redirect, Link, Route } from 'react-router-dom';\r\nimport { Logout } from '../action/Dispatch';\r\nimport { ContentBody } from '../action/Dispatch';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from \"react-redux\";\r\nimport LoadingOverlay from 'react-loading-overlay';\r\n\r\nimport axiosInstance from \"../helper/axio\";\r\n\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faUserCog, faSignOutAlt, faOutdent, faExchangeAlt, faKey } from '@fortawesome/free-solid-svg-icons'\r\n// import Imag from './LibCustom/img/1.jpg'\r\n\r\nconst AppMenu_UserInfo = (props) => {\r\n\r\n const url = \"Account/ChangePass\";\r\n\r\n const [state, setState] = useState({ modal: false, oldpass: \"\", newpass: \"\", confirmpass: \"\" });\r\n const [toggle, setToggle] = useState({ open: false });\r\n const { addToast } = useToasts();\r\n const { register, handleSubmit, errors } = useForm({ defaultValues: {} });\r\n\r\n const [isLoad, setisLoad] = React.useState(false); // Trạng thái mở Modal\r\n\r\n const get_ref = useRef(null);\r\n\r\n\r\n const handleLogout = () => {\r\n setToggle({ open: false });\r\n localStorage.removeItem(\"user\");\r\n props.Logout();\r\n props.ContentBody(true);\r\n\r\n }\r\n\r\n const handleChange = (e) => {\r\n const { name, value } = e.target;\r\n setState({ ...state, [name]: value });\r\n\r\n\r\n }\r\n\r\n useEffect(() => {\r\n document.addEventListener('mousedown', handleBodyClick, true);\r\n\r\n return () => {\r\n document.removeEventListener('mousedown', handleBodyClick, true);\r\n }\r\n }, []);\r\n\r\n const handleBodyClick = (event) => {\r\n if (get_ref.current && !get_ref.current.contains(event.target)) {\r\n setToggle({ open: false });\r\n }\r\n }\r\n\r\n const handleToggle = () => {\r\n setToggle({ open: !toggle.open });\r\n }\r\n\r\n const handleChangePassword = () => {\r\n setState({ ...state, modal: true });\r\n\r\n }\r\n\r\n const submitChangePassword = (data) => {\r\n\r\n\r\n if (props.user.isLoggedIn == true) {\r\n const axiosConfig = {\r\n headers: {\r\n 'Content-Type': 'application/json;charset=UTF-8',\r\n 'Authorization': `Bearer ${props.user.user?.token}`\r\n }\r\n };\r\n\r\n if ((state.newpass == '' || state.confirmpass == '')) {\r\n addToast('Máºt khẩu má»›i hoặc máºt khẩu xác nháºn không được để trống!', { appearance: \"error\" });\r\n }\r\n else {\r\n if (state.newpass !== state.confirmpass) {\r\n addToast('Máºt khẩu má»›i và máºt khẩu xác nháºn không khá»›p nhau!', { appearance: \"error\" });\r\n }\r\n else {\r\n\r\n\r\n //gá»i api change pass\r\n // const data = { sobaomat: params.row.sobaomat, masothue: StateLookup.masothue, type: \"PDF\" };\r\n setisLoad(true);\r\n axiosInstance\r\n .post(url, data, axiosConfig)\r\n .then((res) => {\r\n // setByteData(res.data);\r\n // setOpenModal(true);\r\n if (res.data.ok == undefined) {\r\n setisLoad(false);\r\n addToast(JSON.parse(JSON.stringify(res.data).toLocaleLowerCase()).error, { appearance: \"error\" })\r\n }\r\n else {\r\n setisLoad(false);\r\n addToast('Äổi máºt khẩu thà nh công!', { appearance: \"success\" });\r\n handleLogout();\r\n\r\n setState({ ...state, modal: false });\r\n //gá»i sang redux\r\n\r\n\r\n //vá» trang chủ Ä‘n lại sau khi đổi mk\r\n props.history.push({ pathname: '/', state: 'mutiple' });\r\n }\r\n\r\n })\r\n .catch((err) => {\r\n if (err.response.status == 401) {\r\n setisLoad(false);\r\n setToggle({ open: false });\r\n setState({ ...state, modal: false });\r\n\r\n localStorage.removeItem(\"user\");\r\n props.Logout();\r\n addToast(\"Phiên đăng nháºp hết hạn vui lòng đăng nháºp lại!\", { appearance: \"error\" });\r\n props.history.push({ pathname: '/', state: \"mutiple\" });\r\n\r\n }\r\n else {\r\n setisLoad(false);\r\n addToast(err.message, { appearance: \"error\" });\r\n }\r\n setisLoad(false);\r\n });\r\n\r\n\r\n\r\n }\r\n }\r\n // }\r\n }\r\n\r\n\r\n }\r\n\r\n const handleCancel = () => {\r\n setState({ ...state, modal: false });\r\n\r\n }\r\n\r\n const state_user = props.user;\r\n\r\n return (\r\n\r\n state_user.user ? (<div className=\"dropdown fix_mobil\" ref={get_ref}>\r\n\r\n\r\n {\r\n state_user.user ? (\r\n <div className=\"topbar-item\" id=\"profile_user\" data-toggle=\"dropdown\" data-offset=\"0px,0px\">\r\n\r\n\r\n {/* <div className=\"btn btn-icon btn-hover-transparent-white d-flex align-items-center btn-lg px-md-2 w-md-auto\">\r\n <span className=\"opacity-70 font-weight-bold font-size-base d-none d-md-inline mr-1\">{state_user.user ? \"Hi,\" : \"\"}</span>\r\n <span className=\"opacity-90 font-weight-bolder font-size-base d-none d-md-inline mr-4\">{state_user.user?.username}</span>\r\n\r\n\r\n {/* <span className=\"symbol symbol-35\">\r\n <span className=\"symbol-label text-white font-size-h5 font-weight-bold bg-white-o-30\">{state_user.user?.username.charAt(0).toUpperCase()}</span>\r\n </span> \r\n </div> */}\r\n <button onClick={handleToggle} style={{ backgroundImage: \"url(/LibCustom/img/favicon.ico)\", backgroundPosition: 'center', backgroundSize: 'cover' }} className={\"btn_user btn btn-icon btn-hover-transparent-white p-0 ml-30 \" + (toggle.open ? \"button_click\" : \"\")} id=\"kt_header_mobile_topbar_toggle\">\r\n\r\n {/* <span className=\"svg-icon svg-icon-xl\">\r\n <FontAwesomeIcon icon={faUserCog} size=\"lg\" />\r\n </span> */}\r\n </button>\r\n\r\n </div>) : \"\"}\r\n {\r\n state_user.user ? (\r\n <div className={\"dropdown-menu p-0 m-0 dropdown-menu-right dropdown-menu-anim-up dropdown-menu-lg p-0 \" + (toggle.open ? \"show\" : \"\")}>\r\n <div className=\"row d-flex align-items-center p-8 rounded-top\">\r\n <div className=\"mx-auto col-12\" style={{ textAlign: 'center', padding: '10px 0' }}>\r\n <span style={{ color: '#2c76ff', cursor: 'pointer' }} className=\"opacity-70 font-weight-bold font-size-base mr-1\">{state_user.user ? \"Hi,\" + state_user.user.username : \"\"}</span>\r\n\r\n </div>\r\n\r\n <div className=\"mx-auto col-12\">\r\n <hr style={{ margin: \"unset\" }} />\r\n <button className=\"btn btn-bg-info btn_profile\" onClick={handleChangePassword}><FontAwesomeIcon icon={faKey} style={{ color: \"#0d6efd\" }} size=\"1x\" /> Äổi máºt khẩu</button>\r\n <hr style={{ margin: \"unset\" }} />\r\n <Link to={{ pathname: \"/\", state: \"mutiple\" }} className=\"btn btn-bg-danger btn_profile\" onClick={handleLogout}> <FontAwesomeIcon icon={faSignOutAlt} style={{ color: \"red\" }} size=\"1x\" /> Äăng xuất</Link>\r\n </div>\r\n </div>\r\n {/* <div className=\"separator separator-solid\" /> */}\r\n </div>\r\n\r\n ) : \"\"\r\n\r\n }\r\n\r\n\r\n {state.modal ? (\r\n <div className=\"modal fade fadeIn\" id=\"edit\" tabIndex={-1} role=\"dialog\" aria-labelledby=\"myModalLabel\">\r\n <div className=\"modal-dialog config_form\" role=\"document\">\r\n <div className=\"modal-content\">\r\n <div className=\"modal-header fix-modal\">\r\n {/* <button type=\"button\" className=\"close\" data-dismiss=\"modal\" aria-label=\"Close\"><span aria-hidden=\"true\">×</span></button> */}\r\n <h4 className=\"modal-title\" id=\"myModalLabel\">Thay đổi máºt khẩu</h4>\r\n </div>\r\n {/*/.modal-header*/}\r\n <div className=\"modal-body\">\r\n <form id=\"updateForm\" onSubmit={handleSubmit(submitChangePassword)} >\r\n <div className=\"form-group\" id=\"currentPass-group\">\r\n <label htmlFor=\"current_pass\">Máºt khẩu hiện tại :</label>\r\n <input className=\"form-control\" onChange={handleChange} ref={register} defaultValue={state.oldpass} type=\"password\" name=\"oldpass\" id=\"current_pass\" />\r\n </div>\r\n <div className=\"form-group\">\r\n <label htmlFor=\"new_pass\">Máºt khẩu má»›i :</label>\r\n <input className=\"form-control\" onChange={handleChange} ref={register} defaultValue={state.newpass} type=\"password\" name=\"newpass\" id=\"new_pass\" />\r\n </div>\r\n <div className=\"form-group\">\r\n <label htmlFor=\"confirm_pass\">Xác nháºn máºt khẩu :</label>\r\n <input className=\"form-control\" onChange={handleChange} ref={register} defaultValue={state.confirmpass} type=\"password\" name=\"confirmpass\" id=\"confirm_pass\" />\r\n </div>\r\n <div className=\"modal-footer\">\r\n {/* <input type=\"submit\" name=\"submit\" class=\"btn btn-block btn-warning\" value=\"Save changes\" /> */}\r\n <input type=\"submit\" name=\"submit\" className=\"btn btn-success\" id=\"submitForm\" value=\"Xác nháºn\" />\r\n <button type=\"button\" onClick={handleCancel} className=\"btn btn-default\" data-dismiss=\"modal\">Thoát</button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n ) : \"\"\r\n }\r\n <LoadingOverlay\r\n active={isLoad}\r\n spinner\r\n styles={{\r\n wrapper: {\r\n width: '0px',\r\n height: '0px',\r\n }\r\n }}\r\n >\r\n\r\n </LoadingOverlay>\r\n </div>\r\n ) : <></>\r\n\r\n );\r\n\r\n}\r\nconst mapStateToProps = (state) => ({\r\n user: state.user,\r\n\r\n});\r\n\r\nexport default connect(mapStateToProps, { Logout, ContentBody })(withRouter(AppMenu_UserInfo));","import React, { Component } from \"react\";\r\nimport AppMenu_UserInfo from \"./AppMenu_UserInfo\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\nimport { FaHome, faHome } from '@fortawesome/fontawesome-free-solid';\r\n\r\nexport default class HeaderMenu extends Component {\r\n render() {\r\n const directLink = (e) => {\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.href = \"https://einvoice32.mservice.com.vn/\";\r\n a.target = \"_blank\";\r\n a.click();\r\n document.body.removeChild(a);\r\n };\r\n const directLink2 = (e) => {\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.href = \"https://tiki.vn/\";\r\n a.target = \"_blank\";\r\n a.click();\r\n document.body.removeChild(a);\r\n };\r\n return (\r\n <header id=\"header\" className=\"fixed-top\">\r\n <div className=\"container d-flex align-items-center justify-content-between\">\r\n <h1 className=\"logo\">\r\n <a href=\"https://hoadondientu.vacom.vn/\">\r\n <img src=\"./LibCustom/img/TIKI.png\" alt=\"\"></img>\r\n </a>\r\n </h1>\r\n <nav id=\"navbar\" className=\"navbar\">\r\n {/* <ul>\r\n <li>\r\n <a className=\"nav-link scrollto\" href=\"https://tiki.vn/\" target=\"_blank\">\r\n <FontAwesomeIcon icon={faHome} />\r\n </a>\r\n </li>\r\n <li className=\"dropdown\">\r\n <a href=\"https://tiki.vn/\" onClick={directLink2} target=\"_blank\">\r\n <span>GHÉ THÄ‚M TIKI</span>\r\n </a>\r\n </li>\r\n <li>\r\n <button className=\"btn btn-primary fix-header-button \" onClick={directLink}>\r\n TRA CỨU HÓA ÄÆ N THEO TT32 <b>TẠI ÄÂY</b>\r\n </button>\r\n </li>\r\n </ul> */}\r\n <i className=\"bi bi-list mobile-nav-toggle\" />\r\n\r\n\r\n </nav>\r\n <AppMenu_UserInfo />\r\n </div>\r\n\r\n </header>\r\n );\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport './LookupEinvoice/LookupInvoice.css';\r\n\r\nclass HeaderSlide extends Component {\r\n render() {\r\n return (\r\n <div>\r\n <section id=\"pricing\" className=\"pricing\">\r\n <div data-aos=\"fade-up\" className=\"aos-init aos-animate\">\r\n <div className=\"row\">\r\n <div className=\"card text-white bg-primary\">\r\n <img className=\"card-img-top imgcustom\" src=\"./LibCustom/img/minvoice-header-logo.jpg\" alt=\"\"/>\r\n </div></div></div>\r\n </section>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\nexport default HeaderSlide;","import React from \"react\";\r\nimport axiosInstance from \"../../helper/axio\";\r\n\r\nexport default function ExtensionDownload({ infomationInvoice }) {\r\n const url = \"Search/ExportXmlInvoice\";\r\n const url2 = \"Search/SearchInvoice\";\r\n const json = {\r\n masothue: infomationInvoice.masothue,\r\n sobaomat: infomationInvoice.sobaomat,\r\n type: \"pdf\",\r\n };\r\n const pdfSave = (data) => {\r\n axiosInstance\r\n .post(url2, json, { responseType: \"arraybuffer\" })\r\n .then((res) => {\r\n const file = new Blob([res.data], {\r\n type: \"application/pdf\",\r\n });\r\n const fileURL = URL.createObjectURL(file);\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.href = fileURL;\r\n a.download = \"Invoice_\" + json.masothue + \"_\" + json.sobaomat + \".pdf\";\r\n a.click();\r\n window.URL.revokeObjectURL(fileURL);\r\n document.body.removeChild(a);\r\n });\r\n };\r\n const xmlSave = (e) => {\r\n json.inchuyendoi = \"1\";\r\n axiosInstance\r\n .post(url, json, { responseType: \"arraybuffer\" })\r\n .then((res) => {\r\n const file = new Blob([res.data], {\r\n type: \"application/zip\",\r\n });\r\n const fileURL = URL.createObjectURL(file);\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.href = fileURL;\r\n a.download = \"Invoice_\" + json.masothue + \"_\" + json.sobaomat + \".zip\";\r\n a.click();\r\n window.URL.revokeObjectURL(fileURL);\r\n document.body.removeChild(a);\r\n })\r\n .catch((err) => {\r\n console.log(err);\r\n });\r\n };\r\n\r\n const pluginSave = (e) => {\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.href = \"https://plugin.minvoice.com.vn/MinvoicePlugin/setup.exe\";\r\n a.click();\r\n document.body.removeChild(a);\r\n };\r\n\r\n return (\r\n <div className=\"line-fix\">\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 13 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M8.14941 0.0969238L12.6494 4.59692V13.5969C12.6494 13.9947 12.4914 14.3763 12.2101 14.6576C11.9288 14.9389 11.5472 15.0969 11.1494 15.0969H2.14941C1.75159 15.0969 1.37006 14.9389 1.08875 14.6576C0.807449 14.3763 0.649414 13.9947 0.649414 13.5969V1.59692C0.649414 1.1991 0.807449 0.817568 1.08875 0.536264C1.37006 0.254959 1.75159 0.0969238 2.14941 0.0969238H8.14941ZM11.1494 13.5969V5.34692H7.39941V1.59692H2.14941V13.5969H11.1494ZM6.64941 12.8469L3.64941 9.84692H5.52441V7.59692H7.77441V9.84692H9.64941L6.64941 12.8469Z\" fill=\"#27AE60\"/>\r\n </svg>\r\n <a onClick={pdfSave} target=\"_blank\" title=\"Tải pdf\" className=\"fix-border-bottom\">\r\n Tải PDF\r\n </a>\r\n <br />\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 13 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M8.14941 0.0969238L12.6494 4.59692V13.5969C12.6494 13.9947 12.4914 14.3763 12.2101 14.6576C11.9288 14.9389 11.5472 15.0969 11.1494 15.0969H2.14941C1.75159 15.0969 1.37006 14.9389 1.08875 14.6576C0.807449 14.3763 0.649414 13.9947 0.649414 13.5969V1.59692C0.649414 1.1991 0.807449 0.817568 1.08875 0.536264C1.37006 0.254959 1.75159 0.0969238 2.14941 0.0969238H8.14941ZM11.1494 13.5969V5.34692H7.39941V1.59692H2.14941V13.5969H11.1494ZM6.64941 12.8469L3.64941 9.84692H5.52441V7.59692H7.77441V9.84692H9.64941L6.64941 12.8469Z\" fill=\"#27AE60\"/>\r\n </svg>\r\n <a onClick={xmlSave} title=\"Tải xml\" className=\"fix-border-bottom\">\r\n Tải XML\r\n </a>\r\n <br />\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 13 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M8.14941 0.0969238L12.6494 4.59692V13.5969C12.6494 13.9947 12.4914 14.3763 12.2101 14.6576C11.9288 14.9389 11.5472 15.0969 11.1494 15.0969H2.14941C1.75159 15.0969 1.37006 14.9389 1.08875 14.6576C0.807449 14.3763 0.649414 13.9947 0.649414 13.5969V1.59692C0.649414 1.1991 0.807449 0.817568 1.08875 0.536264C1.37006 0.254959 1.75159 0.0969238 2.14941 0.0969238H8.14941ZM11.1494 13.5969V5.34692H7.39941V1.59692H2.14941V13.5969H11.1494ZM6.64941 12.8469L3.64941 9.84692H5.52441V7.59692H7.77441V9.84692H9.64941L6.64941 12.8469Z\" fill=\"#27AE60\"/>\r\n </svg>\r\n <a onClick={pluginSave} target=\"_blank\" title=\"Tải plugin\" className=\"fix-border-bottom\">\r\n Tải Plugin ký\r\n </a>\r\n </div>\r\n );\r\n}\r\n","import React from \"react\";\r\n\r\n\r\nexport default function InvoiceInfomation(data) {\r\n const InfomationData = data.InvoiceData;\r\n return InfomationData ? (\r\n <div>\r\n <table className=\"table table-sm\">\r\n <tbody>\r\n <tr>\r\n <td>Mẫu số</td>\r\n <td align=\"right\">{InfomationData.mau_hd}</td>\r\n </tr>\r\n <tr>\r\n <td>Ký hiệu</td>\r\n <td align=\"right\">{InfomationData.inv_invoiceSeries}</td>\r\n </tr>\r\n <tr>\r\n <td>Ngà y hóa Ä‘Æ¡n</td>\r\n <td align=\"right\">{InfomationData.inv_invoiceIssuedDate}</td>\r\n </tr>\r\n <tr>\r\n <td>Số hóa Ä‘Æ¡n</td>\r\n <td align=\"right\">{InfomationData.inv_invoiceNumber}</td>\r\n </tr>\r\n <tr>\r\n <td>Tổng tiá»n</td>\r\n <td align=\"right\">{parseFloat(InfomationData.sum_tien).toLocaleString()}</td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n ) : (\r\n <></>\r\n );\r\n}\r\n","import React from \"react\";\r\nimport axiosInstance from \"../../helper/axio\";\r\nimport LoadingOverlay from 'react-loading-overlay';\r\n\r\nexport default function InvoiceOptions({ InvoiceDatas }) {\r\n const url = \"Search/SearchInvoice\";\r\n //để dđây chá» url in cÄ‘\r\n const url_InvoiceCusPDF = \"Search/PrintInvoiceCusPDF\";\r\n \r\n const [isLoad, setisLoad] = React.useState(false); // Trạng thái mở Modal\r\n\r\n const loadPdf = (data) => {\r\n InvoiceDatas.inchuyendoi = \"1\";\r\n setisLoad(true);\r\n axiosInstance\r\n .post(InvoiceDatas.InvoiceCus ? url_InvoiceCusPDF : url, InvoiceDatas, {\r\n responseType: \"arraybuffer\",\r\n })\r\n .then((res) => {\r\n setisLoad(false);\r\n const file = new Blob([res.data], {\r\n type: \"application/pdf\",\r\n });\r\n const fileURL = URL.createObjectURL(file);\r\n const pdfWindow = window.open();\r\n pdfWindow.location.href = fileURL;\r\n })\r\n .catch((err) => {\r\n setisLoad(false);\r\n console.log(err);\r\n });\r\n };\r\n const directLink = (e) => {\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.href = \"http://tracuuhoadon.gdt.gov.vn/tc1hd.html\";\r\n a.target = \"_blank\";\r\n a.click();\r\n document.body.removeChild(a);\r\n };\r\n\r\n return (\r\n <div className=\"line-fix\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"18\"\r\n height=\"18\"\r\n fill=\"currentColor\"\r\n className=\"bi bi-printer\"\r\n viewBox=\"0 0 16 16\"\r\n >\r\n <path d=\"M2.5 8a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1z\" />\r\n <path d=\"M5 1a2 2 0 0 0-2 2v2H2a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h1v1a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-1h1a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-1V3a2 2 0 0 0-2-2H5zM4 3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2H4V3zm1 5a2 2 0 0 0-2 2v1H2a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v-1a2 2 0 0 0-2-2H5zm7 2v3a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1z\" fill=\"#4B65EB\"/>\r\n </svg>\r\n <a onClick={loadPdf} className=\"fix-border-bottom fix-top\"> In Chuyển đổi</a>\r\n <br />\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"18\"\r\n height=\"18\"\r\n fill=\"currentColor\"\r\n className=\"bi bi-search\"\r\n viewBox=\"0 0 16 16\"\r\n >\r\n <path d=\"M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z\"fill=\"#BB6BD9\" />\r\n </svg>\r\n <a onClick={directLink} className=\"fix-border-bottom fix-top\"> Tra cứu kê khai thuế</a>\r\n <LoadingOverlay\r\n active={isLoad}\r\n spinner\r\n styles={{\r\n wrapper: {\r\n width: '0px',\r\n height: '0px',\r\n }\r\n }}\r\n >\r\n \r\n </LoadingOverlay>\r\n </div>\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport TableBody from \"@material-ui/core/TableBody\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport TableContainer from \"@material-ui/core/TableContainer\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Moment from 'moment';\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n },\r\n formControl: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 120,\r\n },\r\n formControlLabel: {\r\n marginTop: theme.spacing(1),\r\n },\r\n table: {\r\n minWidth: 650,\r\n },\r\n}));\r\n\r\nexport default function PopupKH({ openKH, dataKH, onHide }) {\r\n const classes = useStyles();\r\n const [maxWidth, setMaxWidth] = React.useState(\"xl\");\r\n return (\r\n <React.Fragment>\r\n <Dialog\r\n fullWidth={true}\r\n maxWidth={maxWidth}\r\n open={openKH}\r\n onClose={onHide}\r\n aria-labelledby=\"max-width-dialog-title\"\r\n >\r\n <DialogTitle id=\"max-width-dialog-title\">\r\n Thông tin khách hà ng\r\n </DialogTitle>\r\n <br />\r\n <DialogContent>\r\n <TableContainer component={Paper}>\r\n <Table\r\n className={classes.table}\r\n size=\"small\"\r\n aria-label=\"a dense table\"\r\n >\r\n <TableHead className=\"font-weight-bold\" style={{backgroundColor : \"#ebc610\"}}>\r\n <TableRow >\r\n <TableCell align=\"center\">Tên C.ty</TableCell>\r\n <TableCell align=\"center\">Äịa chỉ</TableCell>\r\n <TableCell align=\"center\">Mã số thuế</TableCell>\r\n <TableCell align=\"center\">CÆ¡ quan thuế Q.lý</TableCell>\r\n <TableCell align=\"center\">CÆ¡ quan thuế cấp tỉnh</TableCell>\r\n <TableCell align=\"center\">Ngà y thà nh láºp</TableCell>\r\n <TableCell align=\"center\">NgÆ°á»i đại diện</TableCell>\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {dataKH && dataKH.length > 0 && dataKH.map((row,index) => (\r\n <TableRow key={index}>\r\n <TableCell align=\"center\">{row.ten_cty}</TableCell>\r\n <TableCell align=\"center\">{row.dia_chi}</TableCell>\r\n <TableCell align=\"center\">{row.ma_so_thue}</TableCell>\r\n <TableCell align=\"center\">{row.cqthue_ql}</TableCell>\r\n <TableCell align=\"center\">{row.cqthuecap_tinh}</TableCell>\r\n <TableCell align=\"center\">{Moment(row.ngay_thanh_lap).format('DD/MM/YYYY')}</TableCell>\r\n <TableCell align=\"center\">{row.nguoi_dai_dien}</TableCell>\r\n </TableRow>\r\n ))}\r\n </TableBody>\r\n </Table>\r\n </TableContainer>\r\n </DialogContent>\r\n <DialogActions>\r\n <Button\r\n onClick={() => {\r\n onHide();\r\n }}\r\n color=\"primary\"\r\n >\r\n Thoát\r\n </Button>\r\n </DialogActions>\r\n </Dialog>\r\n </React.Fragment>\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Button from \"@material-ui/core/Button\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport DialogActions from \"@material-ui/core/DialogActions\";\r\nimport DialogContent from \"@material-ui/core/DialogContent\";\r\nimport DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport Table from \"@material-ui/core/Table\";\r\nimport TableBody from \"@material-ui/core/TableBody\";\r\nimport TableCell from \"@material-ui/core/TableCell\";\r\nimport TableContainer from \"@material-ui/core/TableContainer\";\r\nimport TableHead from \"@material-ui/core/TableHead\";\r\nimport TableRow from \"@material-ui/core/TableRow\";\r\nimport Paper from \"@material-ui/core/Paper\";\r\nimport Moment from 'moment';\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n form: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n margin: \"auto\",\r\n width: \"fit-content\",\r\n },\r\n formControl: {\r\n marginTop: theme.spacing(2),\r\n minWidth: 120,\r\n },\r\n formControlLabel: {\r\n marginTop: theme.spacing(1),\r\n },\r\n table: {\r\n minWidth: 650,\r\n },\r\n}));\r\n\r\nexport default function PopupTBPH({ open, data, onHide }) {\r\n const classes = useStyles();\r\n const [maxWidth, setMaxWidth] = React.useState(\"xl\");\r\n return (\r\n <React.Fragment>\r\n <Dialog\r\n fullWidth={true}\r\n maxWidth={maxWidth}\r\n open={open}\r\n onClose={onHide}\r\n aria-labelledby=\"max-width-dialog-title\"\r\n \r\n >\r\n <DialogTitle id=\"max-width-dialog-title\">\r\n Thông báo phát hà nh\r\n </DialogTitle>\r\n <br />\r\n <DialogContent>\r\n <TableContainer component={Paper}>\r\n <Table\r\n className={classes.table}\r\n size=\"small\"\r\n aria-label=\"a dense table\"\r\n >\r\n <TableHead className=\"font-weight-bold\" style={{backgroundColor : \"#ebc610\"}}>\r\n <TableRow >\r\n <TableCell align=\"center\">Ngà y thông báo</TableCell>\r\n <TableCell align=\"center\">Số thông báo</TableCell>\r\n <TableCell align=\"center\">Ngà y bắt đầu SD</TableCell>\r\n <TableCell align=\"center\">Mẫu số</TableCell>\r\n <TableCell align=\"center\">Ký hiệu</TableCell>\r\n <TableCell align=\"center\">Số lượng</TableCell>\r\n <TableCell align=\"center\">Từ số</TableCell>\r\n <TableCell align=\"center\">Äến số</TableCell>\r\n <TableCell align=\"center\">Tại Ä‘Æ¡n vị</TableCell>\r\n <TableCell align=\"center\">Mst Ä‘Æ¡n vị</TableCell>\r\n {/* <TableCell align=\"center\">Số đặt in</TableCell>\r\n <TableCell align=\"center\">Ngà y đặt in</TableCell> */}\r\n </TableRow>\r\n </TableHead>\r\n <TableBody>\r\n {data && data.data.length > 0 && data.data.map((row,index) => (\r\n <TableRow key={index}>\r\n <TableCell align=\"center\">{row.date}</TableCell>\r\n <TableCell align=\"center\">{row.no}</TableCell>\r\n <TableCell align=\"center\">{Moment(row.dataUsing).format('DD/MM/YYYY')}</TableCell>\r\n <TableCell align=\"center\">{row.formNo}</TableCell>\r\n <TableCell align=\"center\">{row.symbol}</TableCell>\r\n <TableCell align=\"center\">{row.quantity}</TableCell>\r\n <TableCell align=\"center\">{row.from}</TableCell>\r\n <TableCell align=\"center\">{row.to}</TableCell>\r\n <TableCell align=\"center\">{row.providerName}</TableCell>\r\n <TableCell align=\"center\">{row.providerTax}</TableCell>\r\n {/* <TableCell align=\"center\">{Moment(row.dateConvert).format('DD/MM/YYYY')}</TableCell>\r\n <TableCell align=\"center\">{Moment(row.dataUsingConvert).format('DD/MM/YYYY')}</TableCell> */}\r\n </TableRow>\r\n ))}\r\n </TableBody>\r\n </Table>\r\n </TableContainer>\r\n </DialogContent>\r\n <DialogActions>\r\n <Button\r\n onClick={() => {\r\n onHide();\r\n }}\r\n color=\"primary\"\r\n >\r\n Thoát\r\n </Button>\r\n </DialogActions>\r\n </Dialog>\r\n </React.Fragment>\r\n );\r\n}\r\n","import { hubConnection } from 'signalr-no-jquery';\r\n\r\nvar url = \"http://localhost:19898/signalr\";\r\nvar options = {\r\n useDefaultPath: false\r\n}\r\nconst connection = hubConnection(url, options);\r\nconst hubProxy = connection.createHubProxy('invoiceHub', options);\r\n\r\nhubProxy.on('resCommand', function (message) {\r\n console.log(message);\r\n});\r\nconnection.disconnected(function () {\r\n console.log('Connection disconnected');\r\n setTimeout(function () {\r\n connection.start();\r\n }, 2000);\r\n});\r\n\r\nconnection.start()\r\n .done(function () { console.log('Now connected, connection ID=' + connection.id); })\r\n .fail(function () { console.log('Could not connect'); });\r\n\r\n\r\nexport function PluginMV() {\r\n return hubProxy;\r\n}\r\nexport function PluginConn(){\r\n return connection;\r\n}\r\n","import React, { Component } from \"react\";\r\nimport PopupKH from \"./PopupKH\";\r\nimport axiosInstance from \"../../helper/axio\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport PopupTBPH from \"./PopupTBPH\";\r\nimport md5 from \"md5\";\r\nimport { PluginMV, PluginConn } from \"./MinvoicePlugin\";\r\nimport LoadingOverlay from 'react-loading-overlay';\r\n\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\n\r\nvar _plugin = PluginMV();\r\nvar _conn = PluginConn();\r\n\r\nexport default function SearchInfo(data) {\r\n const url = \"Search/SearchTBH\";\r\n const url2 = \"Search/SearchThongTinNM\";\r\n const [openPopup, setopenPopup] = React.useState(false); // Trạng thái mở Modal\r\n const [openTBPH, setopenTBPH] = React.useState(false); // Trạng thái mở Modal\r\n const [popupDataTBPH, setpopupDataTBPH] = React.useState(undefined); // Dữ liệu truyá»n sang modal TBPH\r\n const [popupDataKH, setpopupDataKH] = React.useState(undefined); // Dữ liệu truyá»n sang modal KH\r\n const { addToast } = useToasts();\r\n const [isLoading, setisLoading] = React.useState(false); // wait form\r\n const jsonPost = {\r\n masothue: data.SearchData.masothue,\r\n ky_hieu: data.kyHieu,\r\n mau_so: data.mauHD,\r\n };\r\n\r\n const OpenTraCuu = () => {\r\n setisLoading(true);\r\n axiosInstance\r\n .post(url, jsonPost)\r\n .then((res) => {\r\n if (res.data.code == \"99\") {\r\n setisLoading(false);\r\n // addToast(res.data.message, { appearance: \"error\" });\r\n toast.warn(res.data.message, {\r\n position: \"top-right\",\r\n autoClose: 3000,\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n });\r\n } else {\r\n setpopupDataTBPH(res.data.data);\r\n setisLoading(false);\r\n setopenTBPH(true);\r\n }\r\n })\r\n .catch((err) => {\r\n setisLoading(false);\r\n if (err.data.code == \"99\") {\r\n // addToast(err.data.message, { appearance: \"error\" });\r\n toast.warn(err.data.message, {\r\n position: \"top-right\",\r\n autoClose: 3000,\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n });\r\n }\r\n });\r\n };\r\n\r\n const OpenMstInfo = (e) => {\r\n var jsonMstInfo = {};\r\n if (data && data.msThue) {\r\n jsonMstInfo = {\r\n masothue: data.msThue,\r\n key: md5(\r\n \"DOANPV\" + \"CUONGNH1\" + data.msThue.substring(0, 2)\r\n ).toUpperCase(),\r\n };\r\n }\r\n setisLoading(true);\r\n axiosInstance\r\n .post(url2, jsonMstInfo)\r\n .then((res) => {\r\n setisLoading(false);\r\n setopenPopup(true);\r\n setpopupDataKH(res.data.data);\r\n })\r\n .catch((err) => {\r\n setisLoading(false);\r\n setopenPopup(false);\r\n });\r\n };\r\n const closeToggle = () => {\r\n setopenPopup(false);\r\n setopenTBPH(false);\r\n };\r\n\r\n const ReadToken = () => {\r\n var jsonRead = { xml: data.ecd, id: 'seller' };\r\n if (_conn.state != 1) {\r\n alert(\"Bạn chÆ°a báºt hoặc cà i Plugin ký\");\r\n } else {\r\n _plugin.invoke(\"execCommand\", \"ShowCert2\", JSON.stringify(jsonRead))\r\n .done(function (res) {\r\n console.log(res);\r\n })\r\n .fail(function (error) {\r\n console.log(error);\r\n });\r\n }\r\n };\r\n\r\n return data ? (\r\n <div className=\"line-fix\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"18\"\r\n height=\"18\"\r\n fill=\"currentColor\"\r\n className=\"bi bi-search\"\r\n viewBox=\"0 0 16 16\"\r\n >\r\n <path d=\"M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z\" fill=\"#BB6BD9\"/>\r\n </svg>\r\n <a onClick={OpenTraCuu} className=\"fix-border-bottom fix-top\">\r\n Tra cứu thông báo phát hà nh\r\n </a>\r\n <br />\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"18\"\r\n height=\"18\"\r\n fill=\"currentColor\"\r\n className=\"bi bi-search\"\r\n viewBox=\"0 0 16 16\"\r\n >\r\n <path d=\"M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z\" fill=\"#BB6BD9\"/>\r\n </svg>\r\n <a onClick={OpenMstInfo} className=\"fix-border-bottom fix-top\">\r\n Tra cứu thông tin khách hà ng\r\n </a>\r\n <br/>\r\n <ToastContainer/>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" fill=\"currentColor\" className=\"bi bi-pencil-square\" viewBox=\"0 0 16 16\">\r\n <path d=\"M15.502 1.94a.5.5 0 0 1 0 .706L14.459 3.69l-2-2L13.502.646a.5.5 0 0 1 .707 0l1.293 1.293zm-1.75 2.456-2-2L4.939 9.21a.5.5 0 0 0-.121.196l-.805 2.414a.25.25 0 0 0 .316.316l2.414-.805a.5.5 0 0 0 .196-.12l6.813-6.814z\" fill=\"#2C76FF\"/>\r\n <path fill-rule=\"evenodd\" d=\"M1 13.5A1.5 1.5 0 0 0 2.5 15h11a1.5 1.5 0 0 0 1.5-1.5v-6a.5.5 0 0 0-1 0v6a.5.5 0 0 1-.5.5h-11a.5.5 0 0 1-.5-.5v-11a.5.5 0 0 1 .5-.5H9a.5.5 0 0 0 0-1H2.5A1.5 1.5 0 0 0 1 2.5v11z\" fill=\"#2C76FF\"/>\r\n </svg>\r\n <a onClick={ReadToken} className=\"fix-border-bottom fix-top\">\r\n Äá»c CKS ngÆ°á»i bán\r\n </a>\r\n <PopupKH openKH={openPopup} dataKH={popupDataKH} onHide={closeToggle} />\r\n <PopupTBPH open={openTBPH} data={popupDataTBPH} onHide={closeToggle} />\r\n {/* {isLoading && (\r\n <div className=\"text-center\">\r\n <CircularProgress />\r\n </div>\r\n )} */}\r\n <LoadingOverlay\r\n active={isLoading}\r\n spinner\r\n styles={{\r\n wrapper: {\r\n width: '0px',\r\n height: '0px',\r\n }\r\n }}\r\n >\r\n \r\n </LoadingOverlay>\r\n </div>\r\n \r\n ) : (\r\n <></>\r\n );\r\n}\r\n","import React, { useEffect } from \"react\";\r\nimport axiosInstance from \"../../helper/axio\";\r\nimport ExtensionDownload from \"./ExtensionDownload\";\r\nimport InvoiceInfomation from \"./InvoiceInfomation\";\r\nimport InvoiceOptions from \"./InvoiceOptions\";\r\nimport SearchInfo from \"./SearchInfo\";\r\nimport Icon from \"@material-ui/core/Icon\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { PluginMV, PluginConn } from './MinvoicePlugin';\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport LoadingOverlay from 'react-loading-overlay';\r\n\r\nimport { ToastContainer, toast } from 'react-toastify';\r\nimport 'react-toastify/dist/ReactToastify.css';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n \"& > .fa\": {\r\n margin: theme.spacing(2),\r\n },\r\n },\r\n}));\r\nvar _plugin = PluginMV();\r\nvar _conn = PluginConn();\r\n\r\nexport default function GroupOptions(data) {\r\n const classes = useStyles();\r\n const { addToast } = useToasts(); // trạng thái hiển thị cảnh báo\r\n const InvoiceOptionsData = data.data;\r\n const url = \"invoice/GetInforInvoice\";\r\n const [infoModal, setinfoModal] = React.useState(undefined); // Thông tin hóa Ä‘Æ¡n\r\n const [InvoiceSeries, setInvoiceSeries] = React.useState(undefined); // Ký hiệu\r\n const [MauSo, setMauSo] = React.useState(undefined); // Mẫu số\r\n const [masoThue, setmasoThue] = React.useState(undefined); // Mã số thuế \r\n const [authID, setauthID] = React.useState(undefined); // AuthID\r\n const [crypt, setcrypt] = React.useState(undefined); // ConnectString\r\n const [Ecd, setEcd] = React.useState(undefined); // Read Token ngÆ°á»i bán\r\n \r\n const [isLoad, setisLoad] = React.useState(false); // Trạng thái mở Modal\r\n const jsonInfo = {\r\n masothue: data.data.masothue,\r\n sobaomat: data.data.sobaomat,\r\n };\r\n\r\n useEffect(() => {\r\n setisLoad(true);\r\n axiosInstance.post(url, jsonInfo).then((res) => {\r\n\r\n setinfoModal(res.data.data.data[0]);\r\n setInvoiceSeries(res.data.data.data[0].inv_invoiceSeries);\r\n setMauSo(res.data.data.data[0].mau_hd);\r\n setmasoThue(res.data.data.data[0].inv_buyerTaxCode);\r\n setauthID(res.data.data.data[0].inv_InvoiceAuth_id);\r\n // console.log(res.data.data.data[0].inv_InvoiceAuth_id);\r\n setcrypt(res.data.data.data[0].auth_id);\r\n setEcd(res.data.data.data[0].ecd);\r\n setisLoad(false);\r\n });\r\n }, []);\r\n\r\n const signInvoice = () => {\r\n\r\n var crypts = atob(crypt);\r\n // NgÆ°á»i mua ký Ä‘iiiiiiiiiiiiiiiiiiiiiiiiii\r\n if (_conn.state != 1) {\r\n\r\n //addToast(\"Không có hoặc chÆ°a báºt Plugin ký. Vui lòng kiểm tra lại\", { appearance: \"error\" });\r\n\r\n toast.warn('Không có hoặc chÆ°a báºt Plugin ký. Vui lòng kiểm tra lại !', {\r\n position: \"top-right\",\r\n autoClose: 3000,\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n });\r\n }\r\n else {\r\n setisLoad(true);\r\n _plugin.invoke('SignatureXML', masoThue, authID, crypts)\r\n .done(function (res) {\r\n //addToast(res, { appearance: \"success\" });\r\n setisLoad(false);\r\n toast.success(res, {\r\n position: \"top-right\",\r\n autoClose: 3000,\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n });\r\n })\r\n .fail(function (error) {\r\n setisLoad(false);\r\n // addToast(error, { appearance: \"error\" });\r\n toast.warn(error, {\r\n position: \"top-right\",\r\n autoClose: 3000,\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n });\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <div className=\"container fix-cusor \">\r\n <form className={classes.root}>\r\n <InvoiceInfomation InvoiceData={infoModal} />\r\n <div align=\"right\">\r\n <button\r\n type=\"button\"\r\n className=\"btn btn-primary fix-top\"\r\n onClick={signInvoice}\r\n >\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"18\"\r\n height=\"18\"\r\n fill=\"currentColor\"\r\n className=\"bi bi-pencil\"\r\n viewBox=\"0 0 16 16\"\r\n >\r\n <path d=\"M12.146.146a.5.5 0 0 1 .708 0l3 3a.5.5 0 0 1 0 .708l-10 10a.5.5 0 0 1-.168.11l-5 2a.5.5 0 0 1-.65-.65l2-5a.5.5 0 0 1 .11-.168l10-10zM11.207 2.5 13.5 4.793 14.793 3.5 12.5 1.207 11.207 2.5zm1.586 3L10.5 3.207 4 9.707V10h.5a.5.5 0 0 1 .5.5v.5h.5a.5.5 0 0 1 .5.5v.5h.293l6.5-6.5zm-9.761 5.175-.106.106-1.528 3.821 3.821-1.528.106-.106A.5.5 0 0 1 5 12.5V12h-.5a.5.5 0 0 1-.5-.5V11h-.5a.5.5 0 0 1-.468-.325z\" />\r\n </svg>\r\n NgÆ°á»i mua ký hóa Ä‘Æ¡n \r\n </button>\r\n </div>\r\n {/* <ToastContainer/> */}\r\n\r\n <ExtensionDownload infomationInvoice={InvoiceOptionsData} />\r\n <InvoiceOptions InvoiceDatas={InvoiceOptionsData} />\r\n <SearchInfo\r\n SearchData={InvoiceOptionsData}\r\n mauHD={MauSo}\r\n kyHieu={InvoiceSeries}\r\n msThue={masoThue}\r\n ecd={Ecd}\r\n />\r\n </form>\r\n <LoadingOverlay\r\n active={isLoad}\r\n spinner\r\n styles={{\r\n wrapper: {\r\n width: '0px',\r\n height: '0px',\r\n }\r\n }}\r\n >\r\n \r\n </LoadingOverlay>\r\n </div>\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Dialog from \"@material-ui/core/Dialog\";\r\nimport List from \"@material-ui/core/List\";\r\nimport AppBar from \"@material-ui/core/AppBar\";\r\nimport Toolbar from \"@material-ui/core/Toolbar\";\r\nimport IconButton from \"@material-ui/core/IconButton\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport GroupOptions from \"./ModalOptions/GroupOptions\";\r\nimport { DialogContent } from \"@material-ui/core\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n appBar: {\r\n position: \"relative\",\r\n },\r\n title: {\r\n marginLeft: theme.spacing(2),\r\n flex: 1,\r\n },\r\n}));\r\n\r\nexport default function ExportModal({ hide, open, byteData, infoModal }) {\r\n const classes = useStyles();\r\n const [scroll, setScroll] = React.useState(\"paper\");\r\n const file = new Blob([byteData], {\r\n type: \"application/pdf\",\r\n });\r\n const [maxWidth, setMaxWidth] = React.useState(\"lg\");\r\n const fileURL = URL.createObjectURL(file);\r\n return (\r\n <div className=\"container-fluid \">\r\n <Dialog\r\n fullWidth={true}\r\n maxWidth={maxWidth}\r\n open={open}\r\n onClose={hide}\r\n scroll={\"paper\"}\r\n className=\" fix-dialog \"\r\n >\r\n <AppBar className={classes.appBar}>\r\n <Toolbar style={{ paddingRight: \"20px,\" }}>\r\n {\" \"}\r\n <IconButton\r\n edge=\"start\"\r\n color=\"inherit\"\r\n onClick={hide}\r\n aria-label=\"close\"\r\n >\r\n <CloseIcon />\r\n </IconButton>\r\n Hóa Ä‘Æ¡n Ä‘iện tá» M-Invoice\r\n </Toolbar>\r\n </AppBar>\r\n <DialogContent dividers={scroll === \"paper\"} className=\"overflow-auto\">\r\n <List className=\"row h-100\">\r\n <div className=\"col-2 col-sm-12 col-xs-12 col-md-3\">\r\n <div className=\"align-items-center justify-content-between\">\r\n <span className=\"fix-center-text line-fix\">THÔNG TIN HÓA ÄÆ N</span>\r\n </div>\r\n <div>\r\n <GroupOptions data={infoModal} />\r\n </div>\r\n </div>\r\n <div className=\"col-10 col-sm-12 col-xs-12 col-md-9 \">\r\n <iframe\r\n style={{ width: \"100%\", height: \"95%\" }}\r\n src={fileURL}\r\n ></iframe>\r\n </div>\r\n </List>\r\n </DialogContent>\r\n </Dialog>\r\n </div>\r\n );\r\n}\r\n","import React, { Component } from 'react';\r\nimport { DataGrid, formatDateToLocalInputDate } from '@material-ui/data-grid';\r\nimport { useEffect, useState } from \"react\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport dateFormat from 'dateformat';\r\n// import { makeStyles } from '@material-ui/core/styles';\r\n// import { createMuiTheme, darken, lighten } from '@material-ui/core/styles';\r\n\r\n\r\n// import required css from library\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport './LookupInvoice.css';\r\n\r\nimport axiosInstance from \"../../helper/axio\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\n\r\n//redux and route\r\nimport { Logout } from '../../action/Dispatch';\r\nimport { ContentBody } from '../../action/Dispatch';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from \"react-redux\";\r\n//import icon, button\r\nimport Button from '@material-ui/core/Button';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport VisibilityIcon from '@material-ui/icons/Visibility';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { faSync } from '@fortawesome/free-solid-svg-icons'\r\nimport { faCalendarCheck } from '@fortawesome/free-regular-svg-icons'\r\nimport LoadingOverlay from 'react-loading-overlay';\r\n\r\nimport ExportModal from \"../ExportModal\";\r\n\r\n// const useStyles = makeStyles((theme) => ({\r\n// button: {\r\n// // margin: theme.spacing(1),\r\n// },\r\n// }));\r\n// const defaultTheme = createMuiTheme();\r\n// const useStyles = makeStyles(\r\n// (theme) => {\r\n// const getBackgroundColor = (color) =>\r\n// getThemePaletteMode(theme.palette) === 'dark'\r\n// ? darken(color, 0.6)\r\n// : lighten(color, 0.6);\r\n\r\n// const getHoverBackgroundColor = (color) =>\r\n// getThemePaletteMode(theme.palette) === 'dark'\r\n// ? darken(color, 0.5)\r\n// : lighten(color, 0.5);\r\n\r\n// return {\r\n// root: {\r\n// '& .super-app-theme--Open': {\r\n// backgroundColor: getBackgroundColor(theme.palette.info.main),\r\n// '&:hover': {\r\n// backgroundColor: getHoverBackgroundColor(theme.palette.info.main),\r\n// },\r\n// },\r\n// '& .super-app-theme--Filled': {\r\n// backgroundColor: getBackgroundColor(theme.palette.success.main),\r\n// '&:hover': {\r\n// backgroundColor: getHoverBackgroundColor(theme.palette.success.main),\r\n// },\r\n// },\r\n// '& .super-app-theme--PartiallyFilled': {\r\n// backgroundColor: getBackgroundColor(theme.palette.warning.main),\r\n// '&:hover': {\r\n// backgroundColor: getHoverBackgroundColor(theme.palette.warning.main),\r\n// },\r\n// },\r\n// '& .super-app-theme--Rejected': {\r\n// backgroundColor: getBackgroundColor(theme.palette.error.main),\r\n// '&:hover': {\r\n// backgroundColor: getHoverBackgroundColor(theme.palette.error.main),\r\n// },\r\n// },\r\n// },\r\n// };\r\n// },\r\n// { defaultTheme },\r\n// );\r\n\r\nconst LookupEinvoice = (props) => {\r\n\r\n // const classes = useStyles();\r\n // const classes = useStyles();\r\n const url = \"invoice/SearchMultiInvoice\";\r\n const url_printInvoice = \"Search/PrintInvoiceCusPDF\";\r\n const url_downloadInvoice = \"Search/ExportXmlInvoice\";\r\n\r\n const [isLoading, setLoading] = useState(false); //state loading\r\n const [isLoadingButton, setLoadingButton] = useState(false); //state loading button\r\n\r\n const [StateLookup, setStateLookup] = useState({ tu_ngay: new Date(\"01/01/2011\"), den_ngay: new Date(), masothue: props.user.user?.mst });\r\n // const [ToDate, setToDate] = useState(new Date());\r\n const { addToast } = useToasts(); //hiển thị cảnh báo\r\n const [pageSize, setPageSize] = React.useState(30); //set page size\r\n const [data_rows, setdata_rows] = React.useState([]); // set data from API fill in Grid\r\n\r\n const [openModal, setOpenModal] = React.useState(false); // Trạng thái mở Modal\r\n\r\n const [byteData, setByteData] = React.useState(undefined); // Dữ liệu truyá»n sang modal\r\n const [infoModal, setinfoModal] = React.useState(undefined); // Dữ liệu truyá»n sang modal\r\n const datepickerRef = React.useRef(null);\r\n const datepickerRef2 = React.useRef(null);\r\n useEffect(() => {\r\n props.ContentBody(false);\r\n\r\n\r\n\r\n //componentDidMount\r\n if (props.user.isLoggedIn == false) {\r\n setLoadingButton(false);\r\n addToast(\"Bạn chÆ°a đăng nháºp!\", { appearance: \"error\" });\r\n //Ä‘Æ°a vá» trang chủ\r\n localStorage.removeItem(\"user\");\r\n props.ContentBody(true);\r\n props.Logout();\r\n\r\n props.history.push({ pathname: '/', state: \"mutiple\" });\r\n\r\n }\r\n else {\r\n const axiosConfig = {\r\n headers: {\r\n 'Content-Type': 'application/json;charset=UTF-8',\r\n 'Authorization': `Bearer ${props.user.user?.token}`\r\n }\r\n };\r\n // var settungay = convertDate(StateLookup.tu_ngay);\r\n var data_Lookup = {\r\n tu_ngay: dateFormat(StateLookup.tu_ngay, \"yyyy-mm-dd\"),\r\n den_ngay: dateFormat(StateLookup.den_ngay, \"yyyy-mm-dd\"),\r\n masothue: StateLookup.masothue,\r\n ma_dt: props.user.user.ma_dt\r\n };\r\n\r\n axiosInstance\r\n .post(url, data_Lookup, axiosConfig)\r\n .then((res) => {\r\n if (res.data.code == '00') {\r\n if (res.data.data != null) {\r\n if (res.data.data.data.length > 0) {\r\n\r\n var sortedObjs = res.data.data.data.sort((a, b) => Number(b.inv_invoiceNumber) - Number(a.inv_invoiceNumber));\r\n for (var i = 0; i < sortedObjs.length; i++) {\r\n sortedObjs[i].id = i + 1;\r\n }\r\n setdata_rows(res.data.data.data);\r\n setLoadingButton(false);\r\n }\r\n else {\r\n setLoadingButton(false);\r\n addToast(\"Không tìm thấy hóa Ä‘Æ¡n trong khoảng ngà y nà y!\", { appearance: \"error\" });\r\n }\r\n }\r\n else{\r\n setLoadingButton(false);\r\n addToast(\"Không tìm thấy hóa Ä‘Æ¡n trong khoảng ngà y nà y!\", { appearance: \"error\" });\r\n }\r\n }\r\n\r\n // setOpenModal(true);\r\n })\r\n .catch((err) => {\r\n if(err.message.includes('Network')){\r\n addToast(err.message, { appearance: \"error\" });\r\n setLoadingButton(false);\r\n }\r\n else{\r\n if (err.response.status == 401) {\r\n setLoadingButton(false);\r\n localStorage.removeItem(\"user\");\r\n props.ContentBody(true);\r\n props.Logout();\r\n addToast(\"Phiên đăng nháºp hết hạn vui lòng đăng nháºp lại!\", { appearance: \"error\" });\r\n props.history.push({ pathname: '/', state: \"mutiple\" });\r\n \r\n }\r\n else {\r\n if (JSON.stringify(err).includes('message')) {\r\n addToast(err.message, { appearance: \"error\" });\r\n setLoadingButton(false);\r\n }\r\n else { addToast(err.message, { appearance: \"error\" }); setLoadingButton(false); }\r\n }\r\n }\r\n \r\n\r\n\r\n });\r\n }\r\n\r\n \r\n\r\n }, []);\r\n // const convertDate =(date) =>{\r\n // return new Intl.DateTimeFormat(\"en-US\", {\r\n // year: 'numeric',\r\n // month: '2-digit',\r\n // day: '2-digit'\r\n // }).format(date);\r\n // }\r\n if (props.user.isLoggedIn == false) {\r\n props.ContentBody(true);\r\n props.history.push('/');\r\n }\r\n\r\n function toggle() {\r\n setOpenModal(!openModal);\r\n }\r\n\r\n const ClickDownloadXML = (params) => {\r\n\r\n //gá»i api get thông tin hÄ‘\r\n setLoading(true);\r\n const data_json = { sobaomat: params.row.sobaomat, masothue: StateLookup.masothue, type: \"PDF\", inchuyendoi: \"1\" };\r\n\r\n axiosInstance\r\n .post(url_downloadInvoice, data_json, { responseType: \"arraybuffer\" })\r\n .then((res) => {\r\n const file = new Blob([res.data], {\r\n type: \"application/zip\",\r\n });\r\n const fileURL = URL.createObjectURL(file);\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.href = fileURL;\r\n a.download = \"Invoice_\" + data_json.masothue + \"_\" + data_json.sobaomat +\"_\"+params.row.inv_invoiceNumber+ \".zip\";\r\n a.click();\r\n window.URL.revokeObjectURL(fileURL);\r\n document.body.removeChild(a);\r\n\r\n setLoading(false);\r\n })\r\n .catch((err) => {\r\n addToast(err.message, { appearance: \"error\" });\r\n setLoading(false);\r\n });\r\n // data.InvoiceCus = true;\r\n // setinfoModal(data);\r\n }\r\n\r\n const ClickView = (params) => {\r\n //gá»i api get thông tin hÄ‘\r\n setLoading(true);\r\n const data = { sobaomat: params.row.sobaomat, masothue: StateLookup.masothue, type: \"PDF\" };\r\n\r\n axiosInstance\r\n .post(url_printInvoice, data, { responseType: \"arraybuffer\" })\r\n .then((res) => {\r\n setByteData(res.data);\r\n setOpenModal(true);\r\n\r\n setLoading(false);\r\n })\r\n .catch((err) => {\r\n addToast(err.message, { appearance: \"error\" });\r\n setLoading(false);\r\n });\r\n data.InvoiceCus = true;\r\n setinfoModal(data);\r\n }\r\n\r\n const columns = [\r\n { field: \"id\", headerName: \"STT\", width: 130, renderHeader: () => (<strong>{'STT'}</strong>), identity: true },\r\n { field: \"mau_hd\", headerName: \"Mẫu số\", headerAlign: \"center\", align: \"left\", width: 150, renderHeader: () => (<strong>{'Mẫu số'}</strong>) },\r\n { field: \"inv_invoiceSeries\", headerName: \"Ký hiệu\", headerAlign: \"center\", align: \"left\", width: 140, renderHeader: () => (<strong>{'Ký hiệu'}</strong>) },\r\n { field: \"inv_invoiceNumber\", headerName: \"Số hóa Ä‘Æ¡n\", headerAlign: \"center\", align: \"left\", type: \"number\", width: 160, renderHeader: () => (<strong>{'Số hóa Ä‘Æ¡n'}</strong>),\r\n \r\n renderCell: (params) => (\r\n <span style={{color:\"#2c76ff\"}}>{params.row.inv_invoiceNumber}</span>\r\n\r\n )\r\n \r\n },\r\n {\r\n field: \"inv_invoiceIssuedDate\", headerName: \"Ngà y hóa Ä‘Æ¡n\", headerAlign: \"center\", align: \"left\", type: \"date\", width: 180, renderHeader: () => (<strong>{'Ngà y hóa Ä‘Æ¡n'}</strong>),\r\n valueFormatter: (params) => {\r\n const valueFormatted = dateFormat(params.value, \"dd/mm/yyyy\");\r\n return valueFormatted;\r\n\r\n }\r\n },\r\n {\r\n field: \"inv_TotalAmount\", headerName: \"Tổng tiá»n\", type: \"number\", headerAlign: \"center\", align: \"left\", description: \"\", width: 150, renderHeader: () => (<strong>{'Tổng tiá»n'}</strong>)\r\n // sortable: false,\r\n // width: 160,\r\n // valueGetter: (params) =>\r\n // `${params.getValue(\"firstName\") || \"\"} ${\r\n // params.getValue(\"lastName\") || \"\"\r\n // }`\r\n },\r\n {\r\n field: \"action\", headerName: \"Action\", headerAlign: \"center\", align: \"left\", width: 160, renderHeader: () => (<strong>{'Tải xuống'}</strong>),\r\n renderCell: (params) => (\r\n <>\r\n <Button\r\n variant=\"contained\"\r\n color=\"primary\"\r\n size=\"small\"\r\n className=\"fix_buttonXML\"\r\n onClick={() => ClickDownloadXML(params)}\r\n\r\n >\r\n XML\r\n </Button>\r\n <Button\r\n variant=\"contained\"\r\n color=\"primary\"\r\n size=\"small\"\r\n className=\"fix_buttonPDF\"\r\n onClick={() => ClickView(params)}\r\n\r\n >\r\n PDF\r\n </Button>\r\n </>\r\n )\r\n }\r\n ];\r\n\r\n\r\n\r\n\r\n const searchInvoiceList = () => {\r\n\r\n setLoadingButton(true);\r\n //gá»i api\r\n\r\n if (props.user.isLoggedIn == false) {\r\n setLoadingButton(false);\r\n addToast(\"Bạn chÆ°a đăng nháºp!\", { appearance: \"error\" });\r\n //Ä‘Æ°a vá» trang chủ\r\n localStorage.removeItem(\"user\");\r\n props.ContentBody(true);\r\n props.Logout();\r\n\r\n props.history.push({ pathname: '/', state: \"mutiple\" });\r\n\r\n }\r\n else {\r\n const axiosConfig = {\r\n headers: {\r\n 'Content-Type': 'application/json;charset=UTF-8',\r\n 'Authorization': `Bearer ${props.user.user?.token}`\r\n }\r\n };\r\n // var settungay = convertDate(StateLookup.tu_ngay);\r\n var data_Lookup = {\r\n tu_ngay: dateFormat(StateLookup.tu_ngay, \"yyyy-mm-dd\"),\r\n den_ngay: dateFormat(StateLookup.den_ngay, \"yyyy-mm-dd\"),\r\n masothue: StateLookup.masothue,\r\n ma_dt: props.user.user.ma_dt\r\n };\r\n\r\n axiosInstance\r\n .post(url, data_Lookup, axiosConfig)\r\n .then((res) => {\r\n if (res.data.code == '00') {\r\n if (res.data.data != null) {\r\n if (res.data.data.data.length > 0) {\r\n\r\n var sortedObjs = res.data.data.data.sort((a, b) => Number(b.inv_invoiceNumber) - Number(a.inv_invoiceNumber));\r\n for (var i = 0; i < sortedObjs.length; i++) {\r\n sortedObjs[i].id = i + 1;\r\n }\r\n setdata_rows(res.data.data.data);\r\n setLoadingButton(false);\r\n }\r\n else {\r\n setLoadingButton(false);\r\n addToast(\"Không tìm thấy hóa Ä‘Æ¡n trong khoảng ngà y nà y!\", { appearance: \"error\" });\r\n }\r\n }\r\n else{\r\n setLoadingButton(false);\r\n addToast(\"Không tìm thấy hóa Ä‘Æ¡n trong khoảng ngà y nà y!\", { appearance: \"error\" });\r\n }\r\n }\r\n\r\n // setOpenModal(true);\r\n })\r\n .catch((err) => {\r\n if(err.message.includes('Network')){\r\n addToast(err.message, { appearance: \"error\" });\r\n setLoadingButton(false);\r\n }\r\n else{\r\n if (err.response.status == 401) {\r\n setLoadingButton(false);\r\n localStorage.removeItem(\"user\");\r\n props.ContentBody(true);\r\n props.Logout();\r\n addToast(\"Phiên đăng nháºp hết hạn vui lòng đăng nháºp lại!\", { appearance: \"error\" });\r\n props.history.push({ pathname: '/', state: \"mutiple\" });\r\n \r\n }\r\n else {\r\n if (JSON.stringify(err).includes('message')) {\r\n addToast(err.message, { appearance: \"error\" });\r\n setLoadingButton(false);\r\n }\r\n else { addToast(err.message, { appearance: \"error\" }); setLoadingButton(false); }\r\n }\r\n }\r\n \r\n\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n const handlePageSizeChange = (params) => {\r\n setPageSize(params.pageSize);\r\n };\r\n\r\n return (\r\n\r\n <div>\r\n {/* {isLoading ? <div className=\"modal fade fadeIn\"><div className=\"fix_trans\"> <FontAwesomeIcon className=\"spin_config\" icon={faSync} size=\"3x\" /></div> </div> : null} */}\r\n <LoadingOverlay\r\n active={isLoading}\r\n spinner\r\n styles={{\r\n wrapper: {\r\n width: '0px',\r\n height: '0px',\r\n }\r\n }}\r\n >\r\n \r\n </LoadingOverlay>\r\n <div className=\"d-flex flex-column-fluid\">\r\n <div className=\"container-invoice-list\">\r\n <div className=\"card card-custom gutter-b\">\r\n <div className=\"card-body p-0\">\r\n <div className=\" border-0 bgr-grid\" >\r\n <div className=\"row tilte-grid\">\r\n {/* <div className=\"col-lg-1 col-md-1 col-sm-2 col-xs-2 text-right\">\r\n <span className=\"card-label font-weight-bolder text-white\"> Thá»i gian</span>\r\n </div> */}\r\n\r\n <div className=\"col-lg-3 col-md-3 col-sm-4 col-xs-4 col-12 fix_tungay fix_mobe\">\r\n <div className=\"form-group\">\r\n {/* <label className=\"card-label font-weight-bolder text-white text-left\" style={{ float: 'left', width: '100%' }}>Từ ngà y</label> */}\r\n <label onClick={e => e.preventDefault()} style={{ position: \"relative\", width: \"100%\" }}>\r\n \r\n <DatePicker\r\n ref={datepickerRef}\r\n placeholderText=\"Từ ngà y\"\r\n selected={StateLookup.tu_ngay}\r\n onChange={date => setStateLookup({ ...StateLookup, tu_ngay: date })}\r\n dateFormat=\"dd/MM/yyyy\"\r\n showMonthDropdown\r\n showYearDropdown\r\n peekNextMonth\r\n dropdownMode=\"select\"\r\n className=\"fix-picker\"\r\n shouldCloseOnSelect={true}\r\n />\r\n \r\n <FontAwesomeIcon onClick={ ()=> datepickerRef.current.setOpen(true)} className=\"datepick_font\" icon={faCalendarCheck} size=\"1x\" />\r\n \r\n </label>\r\n {/* <i className=\"fa fa-calendar\" aria-hidden=\"true\"></i> */}\r\n </div>\r\n </div>\r\n <div className=\"col-lg-3 col-md-3 col-sm-4 col-xs-4 col-12 fix_mobe\">\r\n <div className=\"form-group\">\r\n {/* <label className=\"card-label font-weight-bolder text-white text-left\" style={{ float: 'left', width: '100%' }}>Äến ngà y</label> */}\r\n <label onClick={e => e.preventDefault()} style={{ position: \"relative\",width: \"100%\" }}>\r\n <DatePicker\r\n placeholderText=\"Äến ngà y\"\r\n selected={StateLookup.den_ngay}\r\n onChange={date => setStateLookup({ ...StateLookup, den_ngay: date })}\r\n dateFormat=\"dd/MM/yyyy\"\r\n showMonthDropdown\r\n showYearDropdown\r\n peekNextMonth\r\n dropdownMode=\"select\"\r\n className=\"fix-picker\"\r\n ref={datepickerRef2}\r\n />\r\n <FontAwesomeIcon onClick={ ()=> datepickerRef2.current.setOpen(true)} className=\"datepick_font\" icon={faCalendarCheck} size=\"1x\" />\r\n\r\n </label>\r\n {/* <i className=\"fa fa-calendar\" aria-hidden=\"true\"></i> */}\r\n </div>\r\n </div>\r\n <div className=\"col-lg-3 col-md-3 col-sm-4 col-xs-4 col-12 fix_search fix_mobe\">\r\n {isLoadingButton ?\r\n // <Button variant=\"contained\" color=\"default\" className=\"\"><FontAwesomeIcon className=\"spin_config\" icon={faSync} size=\"2x\" /></Button>\r\n <Button\r\n style={{ opacity: 0.8 }}\r\n variant=\"contained\"\r\n color=\"default\"\r\n className=\"button_search\"\r\n startIcon={<FontAwesomeIcon className=\"spin_config\" icon={faSync} size=\"1x\" />}\r\n >\r\n <strong> Tìm kiếm</strong>\r\n </Button>\r\n : <Button\r\n onClick={() => searchInvoiceList()}\r\n variant=\"contained\"\r\n color=\"default\"\r\n className=\"button_search\"\r\n startIcon={<SearchIcon />}\r\n >\r\n <strong> Tìm kiếm</strong>\r\n </Button>\r\n }\r\n {/* <button name=\"\" id=\"\" onClick={() => searchInvoiceList()} className=\"btn btn-primary\" role=\"button\">Tìm kiếm</button> */}\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div style={{ height: 400, width: '100%' }} >\r\n <DataGrid\r\n \r\n aria-label=\"Tra cứu\"\r\n pageSize={pageSize}\r\n onPageSizeChange={handlePageSizeChange}\r\n rowsPerPageOptions={[5, 10, 20, 30, 50, 100]}\r\n rows={data_rows}\r\n getRowId={(row) => row.id}\r\n columns={columns}\r\n ColumnMenuIcon\r\n componentsProps={{\r\n pagination: {\r\n labelRowsPerPage: ('Số hóa Ä‘Æ¡n trên má»™t trang'),\r\n labelDisplayedRows: ({ from, to, count }) =>\r\n `${from}-${to} trên ${count !== -1 ? count : ` ${to}`} hóa Ä‘Æ¡n`,\r\n backIconButtonText: \"Trang trÆ°á»›c\",\r\n nextIconButtonText: \"Trang sau\"\r\n }\r\n }}\r\n\r\n localeText={{\r\n footerRowSelected: (count) =>\r\n count !== 1\r\n ? `${count.toLocaleString()} hóa Ä‘Æ¡n đã chá»n`\r\n : `${count.toLocaleString()} hóa Ä‘Æ¡n đã chá»n`,\r\n }}\r\n\r\n // getRowClassName={(params) =>\r\n // `super-app-theme--${params.id%2 ? \"chan\" : \"le\"}`\r\n // }\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ExportModal\r\n open={openModal}\r\n hide={toggle}\r\n byteData={byteData}\r\n infoModal={infoModal}\r\n />\r\n </div>\r\n\r\n );\r\n\r\n\r\n // return (\r\n // <div>\r\n // <div className=\"text-center\"><span style={{ fontSize: \"40px\", color: \"#00fff3\", fontWeight: \"bold\" }}>TRA CỨU HÀNG LOẠT HÓA ÄÆ N</span></div>\r\n // <div className=\"d-flex flex-column-fluid\">\r\n // <div className=\"container\">\r\n // <div className=\"card card-custom gutter-b\">\r\n // <div className=\"card-body p-0\">\r\n\r\n\r\n // </div>\r\n // </div>\r\n // </div>\r\n // </div>\r\n // </div>\r\n // );\r\n\r\n}\r\nconst mapStateToProps = (state) => ({\r\n user: state.user,\r\n\r\n});\r\n\r\nexport default connect(mapStateToProps, { Logout, ContentBody })(withRouter(LookupEinvoice));\r\n\r\n\r\n","import React, { useRef, useState, useEffect } from 'react';\r\nimport './style.css'\r\nimport { toast, ToastContainer } from 'react-toastify';\r\nimport axiosInstance from \"../../helper/axio\";\r\nimport LoadingOverlay from 'react-loading-overlay';\r\n\r\nexport const SearchByFiles = () => {\r\n const url = 'TracuuFile/UploadInv';\r\n const fileInputRef = useRef();\r\n const [fileName, setfileName] = useState(undefined);\r\n const [btnClass, setbtnClass] = useState('');\r\n\r\n const [isLoad, setisLoad] = React.useState(false); // Trạng thái mở Modal\r\n\r\n\r\n const preventDefault = (e) => {\r\n e.preventDefault();\r\n // e.stopPropagation();\r\n }\r\n\r\n const dragOver = (e) => {\r\n e.preventDefault();\r\n }\r\n\r\n const dragEnter = (e) => {\r\n preventDefault(e);\r\n }\r\n\r\n const dragLeave = (e) => {\r\n preventDefault(e);\r\n }\r\n\r\n const fileDrop = (e) => {\r\n preventDefault(e);\r\n const files = e.dataTransfer.files;\r\n if (files.length) {\r\n handleFiles(files);\r\n }\r\n }\r\n\r\n const filesSelected = (e) => {\r\n let files = e.currentTarget.files\r\n if (files.length > 1) {\r\n const msg = 'Vui lòng chỉ chá»n 1 File'\r\n e.target.value = null\r\n toast.warn(msg)\r\n return false;\r\n } else {\r\n if (files.length > 0 && files.length < 2) {\r\n let typeFile = e.currentTarget.files[0].type\r\n const validTypes = ['application/x-zip-compressed'];\r\n if (validTypes.indexOf(typeFile) === -1) {\r\n const msg0 = 'File không đúng định dạng'\r\n toast.warn(msg0)\r\n return false;\r\n } else {\r\n let sizeFile = e.currentTarget.files[0].size\r\n if (sizeFile > 2097152) {\r\n const msg1 = 'File dung lượng quá lá»›n'\r\n toast.error(msg1)\r\n return false\r\n } else {\r\n\r\n setfileName(e.currentTarget.files[0].name);\r\n handleFiles(fileInputRef.current.files);\r\n return true;\r\n }\r\n }\r\n }\r\n else {\r\n setfileName(\"\");\r\n return true;\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n const fileInputClicked = () => {\r\n fileInputRef.current.click();\r\n }\r\n\r\n const handleFiles = (e) => {\r\n if (e.length > 1) {\r\n const msg = 'Vui lòng chỉ chá»n 1 File'\r\n e.target.value = null\r\n toast.warn(msg)\r\n return false;\r\n } else {\r\n if (e.length > 0 && e.length < 2) {\r\n let typeFile = e[0].type\r\n const validTypes = ['application/x-zip-compressed'];\r\n if (validTypes.indexOf(typeFile) === -1) {\r\n const msg0 = 'File không đúng định dạng'\r\n toast.warn(msg0)\r\n return false;\r\n } else {\r\n let sizeFile = e[0].size\r\n if (sizeFile > 2097152) {\r\n const msg1 = 'File dung lượng quá lá»›n'\r\n toast.error(msg1)\r\n return false\r\n } else {\r\n\r\n setfileName(e[0].name);\r\n return true;\r\n }\r\n }\r\n }\r\n else {\r\n setfileName(\"\");\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n const uploadFiles = (data) => {\r\n let files = fileInputRef.current.files;\r\n if (files.length > 0) {\r\n let selectedFile = files[0];\r\n const formData = new FormData();\r\n formData.append(\"\", selectedFile);\r\n setisLoad(true);\r\n axiosInstance\r\n .post(url, formData, { responseType: \"arraybuffer\" })\r\n .then((res) => {\r\n setisLoad(false);\r\n const file = new Blob([res.data], {\r\n type: \"application/pdf\",\r\n });\r\n const fileURL = URL.createObjectURL(file);\r\n window.open(fileURL)\r\n\r\n })\r\n .catch((err) => {\r\n setisLoad(false);\r\n toast.error(JSON.parse(new TextDecoder().decode(err.response.data)).error);\r\n });\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n return (\r\n <React.Fragment>\r\n <div className=\"form-File\">\r\n <ToastContainer />\r\n <div className=\"drop-container\"\r\n onDragOver={dragOver}\r\n onDragEnter={dragEnter}\r\n onDragLeave={dragLeave}\r\n onDrop={fileDrop}\r\n onClick={fileInputClicked}\r\n >\r\n <div className=\"drop-message\">\r\n <div className=\"upload-icon\"></div>\r\n * Nhấp chuá»™t hoặc kéo thả táºp tin hoá Ä‘Æ¡n và o đây để tải lên <br />\r\n <span className=\"fix-text\">\r\n LÆ°u ý: Chỉ chá»n má»™t táºp tin có phần mở rá»™ng .zip <br />\r\n </span>\r\n <span className=\"\">\r\n File đã tải lên : <span className=\"set-color\">{fileName}</span>\r\n </span>\r\n\r\n </div>\r\n <input\r\n ref={fileInputRef}\r\n className=\"file-input\"\r\n type=\"file\"\r\n multiple\r\n onChange={filesSelected}\r\n />\r\n </div>\r\n\r\n </div>\r\n <div className=\"d-flex justify-content-center\">\r\n <button\r\n className=\" btn btn-primary mt-4 signup align-items-center justify-content-center\"\r\n type=\"submit\"\r\n onClick={() => uploadFiles()}\r\n >\r\n Tra cứu\r\n </button>\r\n </div>\r\n\r\n\r\n <LoadingOverlay\r\n active={isLoad}\r\n spinner\r\n styles={{\r\n wrapper: {\r\n width: '0px',\r\n height: '0px',\r\n }\r\n }}\r\n >\r\n\r\n </LoadingOverlay>\r\n </React.Fragment>\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { addUser } from \"../../action/Dispatch\";\r\nimport { ContentBody } from \"../../action/Dispatch\";\r\nimport { connect } from \"react-redux\";\r\nimport { withRouter } from \"react-router-dom\";\r\nimport { useEffect, useState, useRef } from \"react\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport axiosInstance from \"../../helper/axio\";\r\n// import CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport LoadingOverlay from 'react-loading-overlay';\r\n\r\n//\r\n// import { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\r\n// import { faSync } from \"@fortawesome/free-solid-svg-icons\";\r\n\r\nconst SearchMutipleInvoice = (props) => {\r\n const url = \"Account/Login\";\r\n\r\n const [state, setState] = useState({\r\n mst: \"\",\r\n username: \"\",\r\n password: \"\",\r\n token: \"\",\r\n });\r\n const [isLoading, setLoading] = useState(false); //state loading\r\n const { addToast } = useToasts();\r\n const { register, handleSubmit, errors } = useForm({ defaultValues: {} });\r\n const get_ref = useRef();\r\n\r\n const handleChange = (e) => {\r\n\r\n const { name, value } = e.target;\r\n var newvalue = value;\r\n if (name == 'mst') { newvalue = value.replace(/ /g, ''); }\r\n setState({ ...state, [name]: newvalue });\r\n };\r\n useEffect(() => {\r\n\r\n //props.userClick('mutiple');\r\n\r\n }, []);\r\n\r\n if (props.user.isLoggedIn == true) {\r\n props.ContentBody(false);\r\n props.history.push(\"/lookup_invoice\");\r\n }\r\n\r\n const onSubmit = (data) => {\r\n setLoading(true);\r\n if (state.mst.length == 0 || state.mst == null) {\r\n addToast(\"Vui lòng nháºp mã số thuế bên bán!\", { appearance: \"error\" });\r\n setLoading(false);\r\n } else {\r\n if (state.username.length == 0 || state.username == null) {\r\n addToast(\"Vui lòng nháºp tên tà i khoản!\", { appearance: \"error\" });\r\n setLoading(false);\r\n } else {\r\n if (state.password.length == 0 || state.password == null) {\r\n addToast(\"Vui lòng nháºp máºt khẩu!\", { appearance: \"error\" });\r\n setLoading(false);\r\n } else {\r\n\r\n\r\n axiosInstance\r\n .post(url, data)\r\n .then((res) => {\r\n if (res.data.token == undefined) {\r\n addToast(\r\n JSON.parse(JSON.stringify(res.data).toLocaleLowerCase())\r\n .error,\r\n { appearance: \"error\" }\r\n );\r\n setLoading(false);\r\n } else {\r\n setLoading(false);\r\n addToast(\"Äăng nháºp thà nh công!\", { appearance: \"success\" });\r\n\r\n const state_new = { ...state };\r\n state_new.token = res.data.token;\r\n state_new.password = \"\";\r\n state_new.ma_dt = res.data.user.ma_dt;\r\n localStorage.setItem(\"user\", JSON.stringify(state_new));\r\n props.userClick('mutiple');\r\n props.addUser(JSON.stringify(state_new));\r\n props.ContentBody(false);\r\n\r\n props.history.push(\"/lookup_invoice\");\r\n }\r\n })\r\n .catch((err) => {\r\n addToast(err.message, { appearance: \"error\" });\r\n setLoading(false);\r\n });\r\n }\r\n }\r\n }\r\n };\r\n return (\r\n <div>\r\n <form onSubmit={handleSubmit(onSubmit)}>\r\n <div className=\"form-input \">\r\n <span>Mã số thuế bên bán:</span>\r\n <input\r\n autoFocus\r\n className=\"form-control fix-form-input\"\r\n placeholder=\"Mã số thuế bên bán\"\r\n name=\"mst\"\r\n type=\"text\"\r\n ref={register}\r\n value={state.mst}\r\n onChange={(e) => handleChange(e)}\r\n />\r\n </div>\r\n <div className=\"form-input\">\r\n <span>Tà i khoản:</span>\r\n <input\r\n className=\"form-control fix-form-input\"\r\n name=\"username\"\r\n type=\"text\"\r\n placeholder=\"Tà i khoản\"\r\n value={state.username}\r\n onChange={(e) => handleChange(e)}\r\n ref={register}\r\n />\r\n </div>\r\n <div className=\"form-input\">\r\n <span>Máºt khẩu:</span>\r\n <input\r\n\r\n className=\"form-control fix-form-input\"\r\n name=\"password\"\r\n type=\"password\"\r\n placeholder=\"Máºt khẩu\"\r\n value={state.password}\r\n onChange={(e) => handleChange(e)}\r\n ref={register}\r\n />\r\n </div>\r\n <div className=\"text-center\">\r\n {/* {isLoading ? (\r\n <button style={{ opacity: \"0.8\" }} type=\"submit\" className=\" btn btn-primary mt-4 signup align-items-center justify-content-center\">\r\n <CircularProgress size={19} color=\"inherit\" />\r\n </button>\r\n\r\n ) : ( */}\r\n <button type=\"submit\" className=\" btn btn-primary mt-4 signup align-items-center justify-content-center\">\r\n Äăng Nháºp\r\n </button>\r\n {/* )} */}\r\n\r\n </div>\r\n \r\n </form>\r\n <LoadingOverlay\r\n active={isLoading}\r\n spinner\r\n styles={{\r\n wrapper: {\r\n width: '0px',\r\n height: '0px',\r\n }\r\n }}\r\n >\r\n \r\n </LoadingOverlay>\r\n </div>\r\n );\r\n\r\n};\r\n\r\nconst mapStateToProps = (state) => ({\r\n user: state.user,\r\n});\r\n\r\nexport default connect(mapStateToProps, { addUser, ContentBody })(withRouter(SearchMutipleInvoice));","import React from \"react\";\r\nimport { useForm } from \"react-hook-form\";\r\nimport axiosInstance from \"../../helper/axio\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport ExportModal from \"../ExportModal\";\r\n// import CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport LoadingOverlay from 'react-loading-overlay';\r\n\r\nexport const SearchOneInvoice = ({ _mst, _sbm }) => {\r\n const url = \"Search/SearchInvoice\";\r\n const { register, handleSubmit } = useForm({\r\n defaultValues: { masothue: _mst, sobaomat: _sbm },\r\n });\r\n const [openModal, setOpenModal] = React.useState(false); // Trạng thái mở Modal\r\n const { addToast } = useToasts(); // trạng thái hiển thị cảnh báo\r\n const [byteData, setByteData] = React.useState(undefined); // Dữ liệu truyá»n sang modal\r\n const [infoModal, setinfoModal] = React.useState(undefined); // Dữ liệu truyá»n sang modal\r\n\r\n const [isLoad, setisLoad] = React.useState(false); // Trạng thái mở Modal\r\n\r\n function toggle() {\r\n setOpenModal(!openModal);\r\n }\r\n const onSubmit = (data) => {\r\n var a = data.masothue;\r\n var b = a.replace(/\\s+/g, '');\r\n var json = {\r\n \"masothue\": b,\r\n \"sobaomat\": data.sobaomat,\r\n \"type\": \"pdf\"\r\n }\r\n console.log(b);\r\n if (b.length < 10 || b === null) {\r\n addToast(\"Vui lòng nháºp hoặc kiểm tra lại mã số thuế bên bán!\", {\r\n appearance: \"error\",\r\n });\r\n } else {\r\n if (data.sobaomat.length < 3 || data.sobaomat === null) {\r\n addToast(\"Vui lòng nháºp số bảo máºt!\", { appearance: \"error\" });\r\n } else {\r\n setinfoModal(json);\r\n setisLoad(true);\r\n axiosInstance\r\n .post(url, json, { responseType: \"arraybuffer\" })\r\n .then((res) => {\r\n var check = res.headers[\"content-type\"];\r\n if (check == \"application/pdf\") {\r\n setByteData(res.data);\r\n setisLoad(false);\r\n setOpenModal(true);\r\n } else {\r\n setisLoad(false);\r\n setOpenModal(false);\r\n addToast(\"Không tìm thấy hóa Ä‘Æ¡n! Vui lòng kiểm tra lại thông tin\", { appearance: \"error\" });\r\n }\r\n })\r\n .catch((err) => {\r\n setisLoad(false);\r\n setOpenModal(false);\r\n if (err.response) {\r\n console.log(err.response.data);\r\n console.log(err.response.status);\r\n console.log(err.response.headers);\r\n }\r\n addToast(err.message, { appearance: \"error\" });\r\n });\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <div>\r\n <div>\r\n <form onSubmit={handleSubmit(onSubmit)}>\r\n <div className=\"form-input\">\r\n <span>Mã số thuế bên bán:</span>\r\n <select ref={register} name=\"masothue\" className=\"form-select fix-form-input\" aria-label=\"Default select example\">\r\n <option selected value=\"0309532909\">0309532909 - CÔNG TY TNHH TI KI</option>\r\n <option value=\"0312388363\">0312388363 - CÔNG TY TNHH MỘT THÀNH VIÊN THÆ¯Æ NG MẠI TI KI</option>\r\n <option value=\"0313605444\">0313605444 - CÔNG TY TNHH TICKETBOX</option>\r\n <option value=\"0315808055\">0315808055 - CÔNG TY TNHH TIKINOW SMART LOGISTICS</option>\r\n </select>\r\n {/* <input\r\n type=\"\"\r\n name=\"masothue\"\r\n className=\"form-control fix-form-input\"\r\n placeholder=\"Mã số thuế bên bán:\"\r\n ref={register}\r\n /> */}\r\n </div>\r\n <div className=\"form-input\">\r\n <span>Số bảo máºt:</span>\r\n <input\r\n type=\"text\"\r\n name=\"sobaomat\"\r\n className=\"form-control fix-form-input\"\r\n placeholder=\"Số bảo máºt\"\r\n ref={register}\r\n />\r\n </div>\r\n <div className=\"text-center\">\r\n <button\r\n className=\" btn btn-primary mt-4 signup align-items-center justify-content-center\"\r\n type=\"submit\"\r\n >\r\n XEM HÓA ÄÆ N\r\n </button>\r\n </div>\r\n </form>\r\n </div>\r\n <ExportModal\r\n open={openModal}\r\n hide={toggle}\r\n byteData={byteData}\r\n infoModal={infoModal}\r\n />\r\n {/* {isLoad && (\r\n <div className=\"text-center\">\r\n <CircularProgress />\r\n </div>\r\n )} */}\r\n <LoadingOverlay\r\n active={isLoad}\r\n spinner\r\n styles={{\r\n wrapper: {\r\n width: '0px',\r\n height: '0px',\r\n }\r\n }}\r\n >\r\n\r\n </LoadingOverlay>\r\n </div>\r\n );\r\n};\r\n","import React, { useEffect, Component } from \"react\";\r\nimport { useParams, useLocation } from \"react-router-dom\";\r\n//import SearchByFile from \"./SearchByFile\";\r\nimport { SearchByFiles } from \"./SearchByFiles\";\r\n\r\nimport SearchMutipleInvoice from \"./SearchMutipleInvoice\";\r\nimport { SearchOneInvoice } from \"./SearchOneInvoice\";\r\n\r\nexport default function SearchInvoiceBody(props) {\r\n const params = useParams();\r\n const jpram = useLocation().search;\r\n const jh = new URLSearchParams(jpram);\r\n var ms = jh.get(\"mst\");\r\n var mS = jh.get(\"MST\");\r\n var sbm = jh.get(\"sobaomat\");\r\n var mst = \"\";\r\n\r\n if (ms == null) {\r\n mst = mS;\r\n } else {\r\n mst = ms;\r\n }\r\n\r\n return (\r\n <div className=\"justify-content-center fix-display\">\r\n {/* {props.Click == \"sigle\" ? (\r\n <SearchOneInvoice _mst={mst} _sbm={sbm} />\r\n ) : (\r\n <SearchMutipleInvoice userClick={props.userClick} />\r\n )} */}\r\n {props.Click == \"sigle\" ? (<SearchOneInvoice _mst={mst} _sbm={sbm} />) : (\r\n props.Click == \"mutiple\" ? (<SearchMutipleInvoice userClick={props.userClick} />) :\r\n (<SearchByFiles />))}\r\n </div>\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\nimport { Route ,Switch} from \"react-router-dom\";\r\nimport LookupInvoiceList from \"../LookupEinvoice/LookupInvoiceList\";\r\nimport SearchInvoiceBody from \"../ChildSearchForm/SearchInvoiceBody\";\r\n\r\nclass App_Router extends Component {\r\n render() {\r\n \r\n return (\r\n <Switch>\r\n <Route\r\n exact\r\n path=\"/\"\r\n component={() => (\r\n <SearchInvoiceBody\r\n type={this.props.type}\r\n userClick={this.props.userClick}\r\n Click={this.props.Click}\r\n />\r\n )}\r\n />\r\n <Route \r\n path=\"/lookup_invoice\" \r\n component={LookupInvoiceList} />\r\n </Switch>\r\n );\r\n }\r\n}\r\n\r\nexport default App_Router;\r\n","import React, { useEffect, useRef, Component } from \"react\";\r\n// import SearchInvoiceBody from \"./ChildSearchForm/SearchInvoiceBody\";\r\n// import SearchMutipleInvoice from \"./ChildSearchForm/SearchMutipleInvoice\";\r\n// import { SearchOneInvoice } from \"./ChildSearchForm/SearchOneInvoice\";\r\nimport App_Router from \"./AppRoute/App_Router\";\r\n\r\nexport default function SearchForm(props) {\r\n const [typeClick, settypeClick] = React.useState(\"sigle\"); // Trạng thái mở Modal\r\n const [disable, setdisable] = React.useState(false); // Trạng thái mở Modal\r\n // const get_ref = useRef(null);\r\n\r\n // const handleDisable = () => {\r\n\r\n // get_ref.current ;\r\n\r\n // };\r\n\r\n const userClick = (type) => {\r\n\r\n if (localStorage.getItem('user') !== null) {\r\n setdisable(true);\r\n }\r\n else {\r\n setdisable(false);\r\n }\r\n settypeClick(type);\r\n\r\n };\r\n useEffect(() => {\r\n if (localStorage.getItem('user') !== null) {\r\n setdisable(true);\r\n }\r\n // if (window.location.pathname == '/lookup_invoice') {\r\n // debugger;\r\n // settypeClick(\"mutiple\");\r\n // }\r\n\r\n }, []);\r\n\r\n\r\n return (\r\n <div>\r\n <section id=\"hero\" className=\"align-items-center\">\r\n <div className=\"container mb-5 fix-card edit-container\">\r\n <div className=\"d-flex align-items-center justify-content-center\">\r\n <div className=\"col-md-12 col-12 row\">\r\n <div className=\"col-md-3 col-12\">\r\n <h4 className=\"h4-edit\">\r\n Hệ Thống tra cứu hóa Ä‘Æ¡n Ä‘iện tá» M-Invoice\r\n </h4>\r\n <p className=\"p-edit\">KÃnh chà o anh/chị!</p>\r\n <p className=\"p-edit\">Nhằm nâng cao chất lượng dịch vụ cung cấp, Minvoice xin gá»i tá»›i anh/chị trang web tra cứu hóa Ä‘Æ¡n Ä‘iện tá» liên quan đến sản phẩm hóa Ä‘Æ¡n Ä‘iện tá» của Minvoice. Anh/chị vui lòng nháºp đầy đủ thông tin liên quan dÆ°á»›i đây.</p>\r\n <p className=\"p-edit\">Minvoice rất cảm Æ¡n sá»± cá»™ng tác của anh/chị. Dữ liệu của anh/chị sẽ được đảm bảo giữ bà máºt tuyệt đối</p>\r\n </div>\r\n <div className=\"card col-md-6 col-12\" style={{ 'paddingBottom': '30px' }}>\r\n <h5 className=\"mt-3 text-center fix-header-search1 head-edit\">\r\n Má»i nháºp thông tin tra cứu\r\n </h5>\r\n <div className=\" d-flex justify-content-center\">\r\n <div className=\"border-btn\">\r\n <button\r\n className={`btn font-weight-bold fix-btn ${typeClick == \"sigle\" ? \"fix-btn-active\" : \"\"\r\n }`}\r\n onClick={() => userClick(\"sigle\")}\r\n disabled={disable}\r\n >\r\n Tra cứu má»™t hóa Ä‘Æ¡n\r\n </button>\r\n <button\r\n className={`btn font-weight-bold fix-btn ${typeClick == \"mutiple\" ? \"fix-btn-active\" : \"\"\r\n }`}\r\n onClick={() => userClick(\"mutiple\")}\r\n >\r\n Tra cứu theo tà i khoản\r\n </button>\r\n {/* <button\r\n className={`btn font-weight-bold fix-btn ${typeClick == \"File\" ? \"fix-btn-active\" : \"\"\r\n }`}\r\n onClick={() => userClick(\"File\")}\r\n disabled={disable}\r\n >\r\n Tra cứu theo File\r\n </button> */}\r\n </div>\r\n </div>\r\n \r\n <App_Router type={props.location} userClick={(type) => userClick(type)} Click={typeClick} />\r\n\r\n </div>\r\n\r\n <div className=\"col-md-3 col-3\">\r\n <img className=\"img-fluid\" src=\"../LibCustom/img/TIKI.png\" />\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div className=\"row row-edit\">\r\n <div className=\"gt-fix col-6\">\r\n <div className=\"Hotline-fix\">\r\n <span style={{ color: '#999'}}>Hotline: </span>\r\n <span style={{ color: 'black', fontSize: '15px', fontWeight: 'bold' }}>1900-6035</span>\r\n </div>\r\n <div className=\"email-fix last-fix\">\r\n <span style={{ color: '#999' }}>Email: </span>\r\n <span style={{ color: 'black', fontSize: '15px', fontWeight: 'bold' }}>hotro@tiki.vn</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\n\r\nexport default class ContentBody extends Component {\r\n render() {\r\n return (\r\n <div>\r\n <section id=\"pricing\" className=\"pricing\">\r\n <div className=\"container\" data-aos=\"fade-up\">\r\n <div className=\"row\">\r\n <div\r\n className=\"col-lg-4 col-md-4\"\r\n data-aos=\"zoom-im\"\r\n data-aos-delay={100}\r\n >\r\n <div className=\"box\">\r\n <img src=\"./LibCustom/img/Flower3.png\" alt=\"\" />\r\n <h3>TƯ VÂÌN - Há»– TRỢ</h3>\r\n <ul>\r\n <li>Há»— trợ thông báo phát hà nh hóa Ä‘Æ¡n</li>\r\n <li>TÆ° vấn nghiệp vụ hóa Ä‘Æ¡n trong quá trình sá» dụng</li>\r\n <li>Giải quyết vÆ°á»›ng mắc của khách hà ng trong vòng 02 giá»</li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div className=\"col-lg-4 col-md-4 mt-4 mt-md-0\">\r\n <div className=\"box\">\r\n <img src=\"./LibCustom/img/Compass.png\" alt=\"\" />\r\n <h3>TIÊÌT KIỆM - HIỆU QUẢ</h3>\r\n <ul>\r\n <li>Hệ thống chat trá»±c tiếp vá»›i kỹ thuáºt</li>\r\n <li>Chi phà hợp lý nhiá»u tÃnh năng vượt trá»™i</li>\r\n <li>Há»— trợ tra cứu hóa Ä‘Æ¡n theo Website của doanh nghiệp</li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div className=\"col-lg-4 col-md-4 mt-4 mt-md-0\">\r\n <div className=\"box\">\r\n <img src=\"./LibCustom/img/Cart2.png\" alt=\"\" />\r\n <h3>AN TOAÌ€N - BẢO MẬT</h3>\r\n <ul>\r\n <li>Ãp dụng Quy trình ISO 27001:2013</li>\r\n <li>Ãp dụng mã hóa bảo máºt thông tin hóa Ä‘Æ¡n</li>\r\n <li>Hệ thống Server Backup Realtime, Chống tấn công DDOS</li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n \r\n );\r\n }\r\n}\r\n","import React, { useEffect, Component } from 'react';\r\nimport ContentBody from \"./ContentBody\";\r\n// import { Logout } from '../action/Dispatch';\r\nimport { withRouter } from 'react-router-dom';\r\nimport { connect } from \"react-redux\";\r\n\r\nconst FixContentBody = (props) => {\r\n \r\n\r\n const show = props.show.show;\r\n\r\n return (\r\n <>\r\n { show ? <ContentBody /> : \"\"}\r\n </>\r\n );\r\n\r\n}\r\nconst mapStateToProps = (state) => ({\r\n show: state.user,\r\n\r\n});\r\n\r\nexport default connect(mapStateToProps, null)(withRouter(FixContentBody));","import React from \"react\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport \"swiper/swiper-bundle.css\";\r\nimport SwiperCore, { Autoplay } from \"swiper\";\r\n\r\nSwiperCore.use([Autoplay]);\r\n\r\nexport default function ContentSlider() {\r\n var baseUrl = \"\";\r\n if (document.location.port === \"3000\") {\r\n baseUrl = \"http://localhost:3000\";\r\n } else {\r\n baseUrl = process.env.PUBLIC_URL;\r\n }\r\n const imgData = [\r\n baseUrl + \"/LibCustom/img/1.jpg\",\r\n baseUrl + \"/LibCustom/img/2.jpg\",\r\n baseUrl + \"/LibCustom/img/3.jpg\",\r\n baseUrl + \"/LibCustom/img/4.jpg\",\r\n baseUrl + \"/LibCustom/img/5.jpg\",\r\n baseUrl + \"/LibCustom/img/6.jpg\",\r\n baseUrl + \"/LibCustom/img/7.jpg\",\r\n baseUrl + \"/LibCustom/img/8.jpg\",\r\n baseUrl + \"/LibCustom/img/9.jpg\",\r\n baseUrl + \"/LibCustom/img/10.jpg\",\r\n baseUrl + \"/LibCustom/img/11.jpg\",\r\n baseUrl + \"/LibCustom/img/12.jpg\",\r\n ];\r\n return (\r\n <React.Fragment>\r\n <Swiper\r\n breakpoints={{\r\n 240: {\r\n width: 240,\r\n slidesPerView: 1,\r\n },\r\n 320: {\r\n width: 320,\r\n slidesPerView: 1,\r\n },\r\n 480: {\r\n width: 480,\r\n slidesPerView: 2,\r\n },\r\n 640: {\r\n width: 640,\r\n slidesPerView: 2,\r\n },\r\n 768: {\r\n width: 768,\r\n slidesPerView: 3,\r\n },\r\n 992: {\r\n width: 992,\r\n slidesPerView: 5,\r\n },\r\n 1200: {\r\n width: 1200,\r\n slidesPerView: 7,\r\n },\r\n }}\r\n id=\"main\"\r\n width=\"480\"\r\n spaceBetween={1}\r\n slidesPerView={7}\r\n loop={true}\r\n autoplay={true}\r\n className=\"mySwiper\"\r\n >\r\n {\r\n imgData.map((s ,keys) => (\r\n <SwiperSlide key = {keys}>\r\n <img src = {`${s}`}></img>\r\n </SwiperSlide>\r\n ))\r\n }\r\n </Swiper>\r\n <div id=\"bp-wrapper\"></div>\r\n </React.Fragment>\r\n );\r\n}\r\n","import React, { Component } from \"react\";\r\n\r\nexport default class Footers extends Component {\r\n render() {\r\n const demo = (e) => {\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.href = \"http://demo.minvoice.com.vn/\";\r\n a.target = \"_blank\";\r\n a.click();\r\n document.body.removeChild(a);\r\n };\r\n\r\n const _call = (e) => {\r\n var a = document.createElement(\"a\");\r\n document.body.appendChild(a);\r\n a.href = \"tel:0901801816\";\r\n a.click();\r\n document.body.removeChild(a);\r\n };\r\n var d = new Date();\r\n var n = d.getFullYear();\r\n return (\r\n <div>\r\n <footer id=\"footer\">\r\n <div className=\"footer-top\">\r\n <div className=\"container\">\r\n <div className=\"row\">\r\n <div className=\"col-lg-6 col-md-6\">\r\n <div className=\"footer-contact\">\r\n <span className=\"fix-span-footer\">CÔNG TY Cá»” PHẦN DI ÄỘNG TRá»°C TUYẾN (M_SERVICE)</span>\r\n <span className=\"fix-span-footer\">Tại TP Hồ Chà Minh:</span>\r\n <span className=\"fix-span-footer\">Tầng M, toà nhà Petroland - 12 Tân Trà o, Q7, TP HCM</span>\r\n <span className=\"fix-br\">Tel: +84 8 5414 7667 | Fax: +84 8 5414 7557</span>\r\n <span className=\"fix-span-footer\">Tại Hà Ná»™i:</span>\r\n <span className=\"fix-span-footer\">Tầng 5, toà nhà HiPT Số 152 Thụy Khuê, Tây Hồ, Hà Ná»™i</span>\r\n <span className=\"fix-br\">Tel: +84 4 37739898</span>\r\n <span className=\"fix-span-footer\">Tại Äà Nẵng:</span>\r\n <span className=\"fix-span-footer\">25 Nguyá»…n Văn Linh, Q. Hải Châu, Äà Nẵng</span>\r\n <span className=\"fix-br\">Tel: +84 5 113582582 | Fax: +84 5 113586685</span>\r\n <span className=\"fix-br\">Email: hotro@momo.vn</span>\r\n </div>\r\n \r\n </div>\r\n \r\n <div className=\"col-lg-6 col-md-6 footer-contact\">\r\n <div className=\"footer-contact\">\r\n <span className=\"\">Language</span>\r\n <a style={{'paddingLeft':'5px'}}><img src=\"/LibCustom/img/vietnam-flag-icon-16.png\" width={25}></img></a>\r\n <a style={{'paddingLeft':'5px'}}><img src=\"/LibCustom/img/united-kingdom-flag-small.jpg\" width={25}></img></a>\r\n </div>\r\n <div>\r\n <span className=\"fix-span-footer2\">Tải ứng dụng MoMo trên Ä‘iện thoại</span>\r\n <span className=\"text-center text-md-right pt-3 pt-md-0\">\r\n <a\r\n href=\"https://itunes.apple.com/us/app/momo-chuyen-nhan-tien/id918751511?mt=8\"\r\n className=\"facebook\"\r\n target=\"_blank\"\r\n >\r\n <img src=\"./LibCustom/img/Button-AppStore.svg\"></img>\r\n </a>\r\n <a\r\n href=\"https://play.google.com/store/apps/details?id=com.mservice.momotransfer&utm_medium=mobileweb&utm_source=mobile&utm_campaign=m2n\"\r\n className=\"youtube p-4\"\r\n target=\"_blank\"\r\n >\r\n <img src=\"./LibCustom/img/Button-PlayStore.svg\"></img>\r\n </a>\r\n </span>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div className=\"row \">\r\n <p className=\"span-footer text-white\">\r\n Copyrights © {n} Phần má»m Hóa Ä‘Æ¡n Ä‘iện tá» <strong><span>\r\n M-Invoice\r\n </span></strong>. All Rights Reserved.\r\n\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n </footer>\r\n </div>\r\n );\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\n\r\n\r\n//Router\r\nimport { BrowserRouter, HashRouter } from 'react-router-dom';\r\n\r\nimport history from './helper/history';\r\n// Redux\r\nimport { Provider } from \"react-redux\"\r\nimport { createStore } from \"redux\"\r\nimport allReducers from \"./reducer\"\r\n\r\nimport HeaderMenu from \"./components/HeaderMenu\";\r\n\r\nimport HeaderSlide from \"./components/HeaderSlide\";\r\nimport SearchForm from \"./components/SearchForm\";\r\nimport FixContentBody from \"./components/FixContentBody\";\r\nimport { ToastProvider } from \"react-toast-notifications\";\r\n\r\nimport ContentSlider from \"./components/ContentSlider\";\r\nimport Footers from \"./components/Footers\";\r\n\r\nimport 'swiper/swiper-bundle.css';\r\nimport SwiperCore, { Navigation } from 'swiper';\r\nimport MessengerCustomerChat from 'react-messenger-customer-chat';\r\n\r\n\r\nlet store = createStore(allReducers)\r\n\r\nSwiperCore.use([Navigation]);\r\n\r\nclass App extends Component {\r\n\r\n\r\n componentDidMount() {\r\n const script = document.createElement(\"script\");\r\n script.src = process.env.PUBLIC_URL + '/LibCustom/js/main.js';\r\n script.async = true;\r\n document.body.appendChild(script);\r\n }\r\n\r\n render() {\r\n return (\r\n <Provider store={store}>\r\n <BrowserRouter history={history}>\r\n <div className=\"App\">\r\n <ToastProvider autoDismiss={true} autoDismissTimeout=\"2000\">\r\n <MessengerCustomerChat\r\n pageId=\"187341811901684\"\r\n appId=\"560238484992631\"\r\n />\r\n <HeaderMenu />\r\n {/* <HeaderSlide/> */}\r\n <SearchForm />\r\n {/* <Footers /> */}\r\n </ToastProvider>\r\n </div>\r\n </BrowserRouter>\r\n </Provider>\r\n );\r\n }\r\n}\r\n\r\nexport default App;\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport App from \"./App\";\r\n\r\nReactDOM.render(<App />, document.getElementById(\"root\"));\r\n"],"sourceRoot":""}