{"version":3,"sources":["components/Helper.js","images/erp/masterplan_erp_logo.png","pages/pages/Blank.js","images/flags/us.png","images/flags/no.png","images/flags/ca.png","pages/auth/Page404.js","images/erp/24sevenoffice_masterplan_erp_logo.png","pages/sales/salesorders.js","theme/variants.js","theme/typography.js","theme/overrides.js","theme/breakpoints.js","theme/props.js","theme/shadows.js","theme/index.js","components/Loader.js","components/Async.js","routes/index.js","components/Sidebar.js","components/Header.js","components/Footer.js","redux/actions/themeActions.js","redux/constants.js","components/Settings.js","layouts/Dashboard.js","layouts/Auth.js","routes/Routes.js","App.js","redux/reducers/index.js","redux/reducers/themeReducers.js","redux/store/index.js","index.js"],"names":["Select","styled","MuiSelect","spacing","Button","MuiButton","CircularProgress","MuiCircularProgress","getUserInfo","arrayOfCookies","myValue","document","cookie","split","map","originalValue","trim","indexOf","replace","checkLoginStatus","JSON","parse","window","location","href","getApiURL","apiurl","getApiKey","apikey","getCompanyCodes","arrayOfCCs","undefined","companycodes","ccItem","value","name","push","getDefaultCompanyCodeID","retvalue","defaultcompanycodeid","arr","length","getPlants","companycodeid","arrayOfPlants","plants","plantItem","unshift","getDefaultPlantID","Number","sessionStorage","getItem","plantsArray","defaultplantid","isPlantInCompanyCode","plantid","isNumeric","i","userinfo","url","encodeComponent","logouturl","fetch","method","headers","then","res","text","result","toString","error","encodeURIComponent","desc","a","b","orderBy","comparea","toLowerCase","compareb","get_htmlcontent","dateParts","isNaN","getMonthFromString","Date","NaN","newComparea","isUSNumber","newCompareb","parseFloat","stableSort","array","cmp","stabilizedThis","el","index","sort","order","getSorting","retval","val","substring","month","d","getFullYear","getMonth","content","compareValue","type","key","ignoredFields","val1","val2","ignoredArray","includes","startsWith","dataSearch","data","filterValue","orderFilter","lowercasedFilter","filterType","filterArray","filteredData","filter","item","Object","keys","some","getFilterValue","field","getDefaultDate","currentdate","addDay","setDate","getDate","day","getPageName","pathname","pagename","n","isFinite","getDayOfWeekHeader","dayofweek","weekoffset","getDay","toLocaleString","getWeekNumberRangeHeader","startDate","weekstoinclude","startWeekNumber","getWeekNumber","endDate","endWeekNumber","onejan","dayOfYear","Math","ceil","linkColumnStyle","color","textDecorationLine","cursor","errorColumnStyle","pageHeaderStyle","fontFamily","fontSize","fontWeight","fontStyle","display","displayNameStyle","displayTitleStyle","buttonBlue","backgroundColor","borderRadius","border","padding","buttonWhite","buttonWhiteSmall","height","Search","div","props","theme","header","background","darken","breakpoints","up","SearchIconWrapper","sidebar","SearchInput","InputBase","search","SmallButton","TableWrapper","renderHTML","dangerouslySetInnerHTML","__html","redirectCompanyCode","myURL","dualScreenLeft","screenLeft","screen","left","dualScreenTop","screenTop","top","windowopen","innerWidth","documentElement","clientWidth","width","w","innerHeight","clientHeight","h","ViewSelect","state","labelWidth","values","defaultLabel","handleChange","event","setState","target","handleFilterChange","render","defaultValue","found","displayError","required","onChange","disableUnderline","variant","style","React","Component","DateSelect","label","defaultDate","this","noValidate","id","InputLabelProps","shrink","NewButton","newButtonClick","buttonUrl","currentWindow","fullScreen","mt","onClick","buttonStyle","size","buttonSize","buttonName","PageHeader","handleCompanyChange","param","setItem","isLoaded","companycodeID","plantID","pageName","handleSearchFilterTypeChange","searchfiltername","existingSearchFilter","searchFilter","handleSearch","handlePreviewClick","ispreview","handleSetupOpen","now","showDetails","e","handleMenuChange","checked","handleSearchButton","getTime","defaultSearchFilterType","defaultSearchFilter","badge","is24SO","showSetup","justify","container","badgeContent","anchorOrigin","vertical","horizontal","invisible","gutterBottom","title","paddingLeft","control","xs","placeholder","onKeyPress","startAdornment","searchFilterTypes","mr","refreshClick","Fragment","isPreview","bind","StatusPanel","completed","cycle","timer","setInterval","progress","isActive","clearInterval","bgcolor","mx","align","EnhancedTableHead","createSortHandler","property","onRequestSort","onSelectAllClick","rows","numSelected","rowCount","row","visible","colSpan","numeric","disablePadding","sortDirection","bgColor","placement","enterDelay","active","direction","ConfirmDialog","handleClickOpen","open","handleClose","handleConfirm","onClose","aria-labelledby","maxWidth","fullWidth","marginTop","marginLeft","marginRight","description","writeDebugLine","console","log","features","module","exports","Card","MuiCard","Divider","MuiDivider","EmptyCard","mb","Blank","my","Wrapper","Page404","component","Link","to","Paper","MuiPaper","PageName","link","MyOpenOrders","handleRequestSort","handleChangePage","page","handleChangeRowsPerPage","rowsPerPage","handleClick","column","allowed","filterData","displaycolumns","enablesearch","requestOptions","body","stringify","json","orders","filters","status","columns","fetchData","menu","defaultShowDetailsValue","message","pt","alignItems","rowsPerPageOptions","count","backIconButtonProps","nextIconButtonProps","onChangePage","onChangeRowsPerPage","slice","idx","blueVariant","palette","primary","main","blue","contrastText","secondary","grey","indicator","brand","footer","online","category","greenVariant","green","indigoVariant","indigo","tealVariant","teal","lightVariant","red","variants","typography","useNextVariants","join","fontWeightLight","fontWeightRegular","fontWeightMedium","h1","lineHeight","h2","h3","h4","h5","h6","body1","button","textTransform","overrides","MuiCardHeader","action","MuiPickersDay","MuiPickersYear","root","MuiPickersCalendar","transitionContainer","MuiPickersCalendarHeader","iconButton","switchHeader","marginBottom","MuiPickersClock","margin","MuiPickersClockNumber","clockNumber","MuiPickerDTHeader","dateHeader","timeHeader","MuiPickersTimePicker","hourMinuteLabel","MuiPickersToolbar","toolbar","sm","md","lg","xl","MuiButtonBase","disableRipple","titleTypographyProps","createShadow","px","shadows","themes","createMuiTheme","Root","Loader","m","sleep","Promise","r","setTimeout","asyncComponent","importComponent","default","C","Default","async","salesorders","customers","quotes","customerreturns","deliveryblocks","purchaseorders","suppliers","rfqs","supplierreturns","exceptions","itemmaster","transferorders","employees","timecards","timeallocations","holidays","productionorders","estimating","workcenters","batches","ARaging","APaging","correctiveactions","deviationrequests","inspectionholds","equipment","maintenancerequests","maintenanceorders","nonconformance","calibrationtools","shortage","recommendations","messages","supplierschedule","accountingperiods","budgets","chartofaccounts","cashflowforecasts","SignIn","SignUp","ResetPassword","Page500","leads","campaigns","opportunities","tasks","blank","dashboardsRoutes","path","enabled","containsHome","tooltip","subcategory","children","authRoutes","icon","salesRoutes","externalpath","categoryid","crmRoutes","purchasingRoutes","manufacturingRoutes","fullscreen","rcCode","itemRoutes","mrpRoutes","employeeRoutes","qualityRoutes","maintenanceRoutes","financialsRoutes","receivablesRoutes","payablesRoutes","integrationsRoutes","inventoryEditionRoutes","psRoutes","systemRoutes","dashboard","auth","NavLink","forwardRef","ref","innerRef","Box","MuiBox","Drawer","MuiDrawer","Scrollbar","PerfectScrollbar","List","MuiList","Items","Brand","ListItem","Category","activeClassName","CategoryText","ListItemText","CategoryIconLess","Typography","ExpandLess","rgba","CategoryIconMore","ExpandMore","LinkText","LinkBadge","Chip","fontWeightBold","CategoryBadge","SidebarSection","SidebarSubSection","SidebarFooter","IconButton","Badge","common","white","MuiIconButton","Flag","img","SidebarCategory","isOpen","classes","isCollapsable","rest","Tooltip","arrow","SidebarLink","preventDefault","keyIdx","dense","exact","ReportClick","ExternalClick","LanguageMenu","anchorMenu","toggleMenu","currentTarget","closeMenu","Boolean","flag","usFlag","language","noFlag","caFlag","aria-owns","aria-haspopup","src","alt","Sidebar","toggle","controls","forEach","itemIndex","pathName","routes","route","isHome","controlArray","allowedCategories","ReactClientCode","categoriesArray","openFirst","Language","other","staticContext","languageUrl","ml","brandImage","Collapse","in","timeout","unmountOnExit","Grid","withRouter","AppBar","MuiAppBar","Input","StyledBadge","UserMenu","restoreDefault","featureRequestClicked","referBusinessClicked","whatsNewClicked","myInfoClicked","trainingCenterClicked","adminPortalClicked","systemSetupClicked","alert","signOutClicked","clear","restoreScreenDefaultsClicked","clearScreenSettings","overlap","Avatar","Menu","anchorEl","MenuItem","showportal","Header","handleKeyDown","componentDidMount","onDrawerToggle","position","elevation","Toolbar","Hidden","mdUp","aria-label","onKeyDown","displayname","connect","withTheme","MuiListItem","Footer","smDown","setTheme","payload","Demo","MuiFab","Screenshot","Heading","black","Spacer","Demos","dispatch","Settings","useState","GlobalStyle","createGlobalStyle","AppContent","MainContent","Dashboard","mobileOpen","handleDrawerToggle","CssBaseline","implementation","PaperProps","p","isWidthUp","withWidth","Auth","childRoutes","Layout","Routes","DashboardLayout","dashboardRoutes","AuthLayout","store","themeReducer","titleTemplate","defaultTitle","StylesProvider","injectFirst","utils","DateFnsUtils","maTheme","currentTheme","combineReducers","actions","createStore","rootReducer","ReactDOM","getElementById"],"mappings":"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","file":"static/js/main.0d2a7fe3.chunk.js","sourcesContent":["import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { spacing } from \"@material-ui/system\";\r\nimport '../pages/MasterplanERP.css';\r\nimport {\r\n Select as MuiSelect,\r\n MenuItem,\r\n Grid,\r\n Typography,\r\n Button as MuiButton,\r\n CircularProgress as MuiCircularProgress,\r\n TableHead,\r\n TableRow,\r\n TableCell,\r\n Tooltip,\r\n TableSortLabel,\r\n TextField,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogContentText,\r\n DialogTitle,\r\n FormControl,\r\n FormLabel,\r\n FormGroup,\r\n FormControlLabel,\r\n FormHelperText,\r\n Switch,\r\n InputBase,\r\n Badge,\r\n Chip\r\n} from \"@material-ui/core\";\r\n\r\nimport {\r\n Settings as SettingsIcon,\r\n Filter as SearchIcon,\r\n} from \"react-feather\";\r\n\r\nimport { Loop as LoopIcon } from \"@material-ui/icons\";\r\n\r\nimport { darken } from \"polished\";\r\n\r\n/****************/\r\n/*** CONSTANTS ***/\r\n/****************/\r\n\r\nconst Select = styled(MuiSelect)(spacing);\r\n\r\nconst Button = styled(MuiButton)(spacing);\r\n\r\nconst CircularProgress = styled(MuiCircularProgress)(spacing);\r\n\r\n/****************/\r\n/*** GET USER INFO ***/\r\n/****************/\r\n\r\nvar getUserInfo = function () {\r\n // write cookies\r\n // Cookies need to be accessible in script (i.e. HttpOnly not set)\r\n\r\n //COMMENT FOR PRODUCTION\r\n //document.cookie = 'ReactUser={\"displayname\":\"Andrew\",\"companycodes\":\"1:01 - Demo Company, Inc.|4:2000 - AMI|2:22 - XYZ Division|3:1000 - AMP\",\"apikey\":\"fxGrz7hiEWhPhLX9yBMYp5kQ12+8vZbzFu3nTAPkfB4=\", \"apiurl\":\"https://localhost:44394/api/\"}';\r\n //document.cookie = 'ReactUser={\"displayname\":\"Nali Thephavong\",\"title\":\"Top Dog\",\"companycodes\":\"1:1000 - Nali Sandbox & Co.|2:2000 - Nali Canada\",\"plants\":\"1:1:Nali Sandbox\",\"showportal\":\"89\",\"apikey\":\"49rxFvHgbVAKdaaeNuA7H51Eb4CiL3yztLhpFsD/Yb8=\", \"apiurl\":\"https://localhost:44394/api/\"}';\r\n //userinfo={\"displayname\":\"JIM\",\"companycodes\":\"1:01 - Demo Company, Inc.|4:2000 - AMI|2:22 - XYZ Division|3:1000 - AMP\",\"apikey\":\"fxGrz7hiEWhPhLX9yBMYp5kQ12+8vZbzFu3nTAPkfB4=\"}\r\n // read cookies\r\n\r\n var arrayOfCookies = [];\r\n var myValue = \"\";\r\n\r\n var cookieArray = document.cookie.split(\";\");\r\n cookieArray.map(function (originalValue) {\r\n originalValue = originalValue.trim();\r\n if (originalValue.indexOf(\"ReactUser\") == 0) {\r\n myValue = originalValue;\r\n myValue = myValue.replace(\"ReactUser=\", \"\")\r\n myValue = myValue.replace(\"userinfo=\", \"\")\r\n arrayOfCookies['userinfo'] = myValue;\r\n return true;\r\n }\r\n });\r\n\r\n if (myValue != \"\") {\r\n checkLoginStatus(JSON.parse(myValue));\r\n return JSON.parse(myValue);\r\n }\r\n else {\r\n window.location.href = '../frmLogOut.aspx';\r\n }\r\n};\r\n\r\nvar getApiURL = function () {\r\n var arrayOfCookies = [];\r\n var myValue = \"\";\r\n\r\n var cookieArray = document.cookie.split(\";\");\r\n cookieArray.map(function (originalValue) {\r\n originalValue = originalValue.trim();\r\n if (originalValue.indexOf(\"ReactUser\") == 0) {\r\n\r\n myValue = originalValue;\r\n myValue = myValue.replace(\"ReactUser=\", \"\")\r\n myValue = myValue.replace(\"userinfo=\", \"\")\r\n\r\n arrayOfCookies['userinfo'] = myValue;\r\n }\r\n });\r\n\r\n if (myValue != \"\") {\r\n var myJSON = JSON.parse(arrayOfCookies['userinfo']);\r\n var retval = myJSON.apiurl;\r\n\r\n return retval;\r\n }\r\n};\r\n\r\nvar getApiKey = function () {\r\n var arrayOfCookies = [];\r\n var myValue = \"\";\r\n\r\n var cookieArray = document.cookie.split(\";\");\r\n cookieArray.map(function (originalValue) {\r\n originalValue = originalValue.trim();\r\n if (originalValue.indexOf(\"ReactUser\") == 0) {\r\n\r\n myValue = originalValue;\r\n myValue = myValue.replace(\"ReactUser=\", \"\")\r\n myValue = myValue.replace(\"userinfo=\", \"\")\r\n\r\n arrayOfCookies['userinfo'] = myValue;\r\n }\r\n });\r\n\r\n if (myValue != \"\") {\r\n var myJSON = JSON.parse(arrayOfCookies['userinfo']);\r\n var retval = myJSON.apikey;\r\n\r\n return retval;\r\n }\r\n};\r\n\r\nvar getCompanyCodes = function () {\r\n var arrayOfCCs = [];\r\n if (getUserInfo() !== undefined) {\r\n var companycodes = getUserInfo().companycodes;\r\n var ccArray = companycodes.split(\"|\");\r\n ccArray.map(function (originalValue) {\r\n var ccItem = {};\r\n var value = originalValue.split(':')[0];\r\n var name = originalValue.split(':')[1];\r\n ccItem.name = name;\r\n ccItem.value = value;\r\n arrayOfCCs.push(ccItem);\r\n });\r\n }\r\n return arrayOfCCs;\r\n};\r\n\r\nvar getCompanyCodeName = function (id) {\r\n var arr = getCompanyCodes();\r\n for (var i = 0; i < arr.length; i++)\r\n if (arr[i].value == id)\r\n return arr[i].name;\r\n};\r\n\r\nvar getDefaultCompanyCodeID = function () {\r\n var retvalue = -1;\r\n\r\n if (getUserInfo() !== undefined) {\r\n if (getUserInfo().defaultcompanycodeid != undefined) {\r\n retvalue = getUserInfo().defaultcompanycodeid;\r\n }\r\n }\r\n\r\n if (retvalue == undefined || retvalue == -1) {\r\n var arr = getCompanyCodes();\r\n if (arr.length > 0) {\r\n retvalue = arr[0].value;\r\n }\r\n else {\r\n retvalue = -1;\r\n }\r\n }\r\n\r\n return retvalue;\r\n};\r\n\r\nvar getPlants = function (companycodeid) {\r\n var arrayOfPlants = [];\r\n\r\n if (getUserInfo() !== undefined) {\r\n var plants = getUserInfo().plants;\r\n if (plants !== undefined) {\r\n var plantArray = plants.split(\"|\");\r\n plantArray.map(function (originalValue) {\r\n if (originalValue.split(':')[0] == companycodeid) {\r\n var plantItem = {};\r\n var value = originalValue.split(':')[1];\r\n var name = originalValue.split(':')[2];\r\n plantItem.name = name;\r\n plantItem.value = value;\r\n arrayOfPlants.push(plantItem);\r\n }\r\n });\r\n }\r\n }\r\n\r\n if (arrayOfPlants.length > 1) {\r\n // Add Default All Plants Menu Item\r\n var plantItem = {};\r\n plantItem.name = \"All Plants\";\r\n plantItem.value = -1;\r\n arrayOfPlants.unshift(plantItem);\r\n }\r\n\r\n return arrayOfPlants;\r\n};\r\n\r\nvar getPlantName = function (id, companycodeid) {\r\n var arr = getPlants(companycodeid);\r\n for (var i = 0; i < arr.length; i++)\r\n if (arr[i].value == id)\r\n return arr[i].name;\r\n};\r\n\r\nvar getDefaultPlantID = function (companycodeid) {\r\n var retvalue = -1;\r\n\r\n // Set Plant from Company Code\r\n if (companycodeid === undefined) {\r\n companycodeid = Number(sessionStorage.getItem('default_companycode')) || getDefaultCompanyCodeID();\r\n }\r\n\r\n var plantsArray = getPlants(companycodeid)\r\n if (plantsArray.length == 1) {\r\n retvalue = plantsArray[0].value\r\n }\r\n else if (plantsArray.length > 1) {\r\n retvalue = plantsArray[1].value\r\n }\r\n\r\n // Set Plant from Employee default\r\n if (getUserInfo() !== undefined) {\r\n if (getUserInfo().defaultplantid != undefined) {\r\n // Check if plant in selected companycode\r\n if (isPlantInCompanyCode(companycodeid, getUserInfo().defaultplantid)) {\r\n retvalue = getUserInfo().defaultplantid;\r\n }\r\n }\r\n }\r\n\r\n return retvalue;\r\n};\r\n\r\nvar isPlantInCompanyCode = function (companycodeid, plantid) {\r\n var retvalue = false;\r\n if (isNumeric(companycodeid) && isNumeric(plantid)) {\r\n var arr = getPlants(companycodeid);\r\n if (arr.length > 0) {\r\n for (var i = 0; i < arr.length; i++) {\r\n if (arr[i].value == plantid) {\r\n retvalue = true;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return retvalue;\r\n};\r\n\r\nvar checkLoginStatus = function (userinfo) {\r\n const requestOptions = {\r\n method: 'get',\r\n headers: {\r\n 'Content-Type': 'Text'\r\n }\r\n };\r\n\r\n var apikey = encodeComponent(getApiKey());\r\n var url = \"../frmSYSTEM_Ping.aspx?APIKey=\" + apikey;\r\n var logouturl = '../frmLogOut.aspx';\r\n if (userinfo.apiurl.indexOf(\"localhost\") != -1) {\r\n url = url.replace(\"..\", \"https://localhost:44306\");\r\n logouturl = logouturl.replace(\"..\", \"https://localhost:44306\");\r\n return true;\r\n }\r\n\r\n fetch(url, requestOptions)\r\n .then(res => res.text())\r\n .then(\r\n (result) => {\r\n if (result.toString().indexOf(\"TRUE\") == 0) {\r\n return true;\r\n }\r\n else {\r\n window.location.href = logouturl;\r\n }\r\n },\r\n (error) => {\r\n window.location.href = logouturl;\r\n }\r\n )\r\n};\r\n\r\nvar encodeComponent = function (value) {\r\n return encodeURIComponent(value);\r\n};\r\n\r\n/****************/\r\n/*** TABLE SORT ***/\r\n/****************/\r\n\r\nfunction desc(a, b, orderBy) {\r\n var comparea = a[orderBy];\r\n if (comparea != \"\" && comparea != null) {\r\n comparea = a[orderBy].toLowerCase();\r\n }\r\n else {\r\n comparea = \"\";\r\n }\r\n\r\n var compareb = b[orderBy];\r\n if (compareb != \"\" && compareb != null) {\r\n compareb = b[orderBy].toLowerCase();\r\n }\r\n else {\r\n compareb = \"\";\r\n }\r\n\r\n if (comparea != null && comparea.indexOf(\"<\") != -1) {\r\n comparea = get_htmlcontent(comparea);\r\n }\r\n\r\n if (compareb != null && compareb.indexOf(\"<\") != -1) {\r\n compareb = get_htmlcontent(compareb);\r\n }\r\n\r\n //writeDebugLines(\"A: \" + comparea + \"|B: \" + compareb);\r\n\r\n if (orderBy.indexOf(\"date\") != -1) {\r\n // Convert to Acceptable Short Date\r\n if (comparea != null) {\r\n if (comparea.indexOf(\"-\") != -1) {\r\n var dateParts = comparea.split(\"-\");\r\n if (isNaN(dateParts[1])) {\r\n dateParts[1] = getMonthFromString(dateParts[1]);\r\n }\r\n var dateObject = new Date(dateParts[2], dateParts[1] - 1, dateParts[0]);\r\n comparea = dateObject.toString();\r\n }\r\n else if (comparea.indexOf(\".\") != -1) {\r\n var dateParts = comparea.split(\".\");\r\n var dateObject = new Date(dateParts[2], dateParts[1] - 1, dateParts[0]);\r\n comparea = dateObject.toString();\r\n }\r\n }\r\n\r\n if (compareb != null) {\r\n if (compareb.indexOf(\"-\") != -1) {\r\n var dateParts = compareb.split(\"-\");\r\n if (isNaN(dateParts[1])) {\r\n dateParts[1] = getMonthFromString(dateParts[1]);\r\n }\r\n var dateObject = new Date(dateParts[2], dateParts[1] - 1, dateParts[0]);\r\n compareb = dateObject.toString();\r\n }\r\n else if (compareb.indexOf(\".\") != -1) {\r\n var dateParts = compareb.split(\".\");\r\n var dateObject = new Date(dateParts[2], dateParts[1] - 1, dateParts[0]);\r\n compareb = dateObject.toString();\r\n }\r\n }\r\n\r\n if (Date.parse(comparea) != NaN) {\r\n comparea = Date.parse(comparea);\r\n }\r\n\r\n if (Date.parse(compareb) != NaN) {\r\n compareb = Date.parse(compareb);\r\n }\r\n } else {\r\n var newComparea = comparea;\r\n if (comparea != null) {\r\n if (isUSNumber(comparea)) {\r\n newComparea = comparea.replace(/,/g, \"\");\r\n } else {\r\n newComparea = comparea.replace(/\\s/g, \"\");\r\n }\r\n }\r\n\r\n var newCompareb = compareb;\r\n if (compareb != null) {\r\n if (isUSNumber(compareb)) {\r\n newCompareb = compareb.replace(/,/g, \"\");\r\n } else {\r\n newCompareb = compareb.replace(/\\s/g, \"\");\r\n }\r\n }\r\n\r\n if (!isNaN(parseFloat(newCompareb)) && !isNaN(parseFloat(newComparea))) {\r\n comparea = parseFloat(newComparea)\r\n compareb = parseFloat(newCompareb)\r\n }\r\n }\r\n\r\n if (compareb < comparea) {\r\n return -1;\r\n }\r\n if (compareb > comparea) {\r\n return 1;\r\n }\r\n return 0;\r\n}\r\n\r\nvar stableSort = function (array, cmp) {\r\n const stabilizedThis = array.map((el, index) => [el, index]);\r\n stabilizedThis.sort((a, b) => {\r\n const order = cmp(a[0], b[0]);\r\n if (order !== 0) return order;\r\n return a[1] - b[1];\r\n });\r\n return stabilizedThis.map(el => el[0]);\r\n}\r\n\r\nvar getSorting = function (order, orderBy) {\r\n return order === \"desc\"\r\n ? (a, b) => desc(a, b, orderBy)\r\n : (a, b) => -desc(a, b, orderBy);\r\n}\r\n\r\nfunction isUSNumber(value) {\r\n var retval = true;\r\n if (value != \"\" && value != null) {\r\n if (value.indexOf(\".\") != -1 || value.indexOf(\",\") != -1) {\r\n for (var i = value.length - 1; i > 0; i--) {\r\n var val = value.substring(i, i + 1);\r\n if (val == \".\") {\r\n break;\r\n }\r\n else if (val == \",\") {\r\n retval = false;\r\n break;\r\n }\r\n else if (i > 5) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return retval;\r\n}\r\n\r\nfunction getMonthFromString(month) {\r\n var d = Date.parse(month + \"1, \" + new Date().getFullYear());\r\n if (!isNaN(d)) {\r\n return new Date(d).getMonth() + 1;\r\n }\r\n return month;\r\n}\r\n\r\nfunction get_htmlcontent(content) {\r\n var value = content.replace(/<[^>]+>/g, '')\r\n return value;\r\n}\r\n\r\n/****************/\r\n/*** DATA SEARCH ***/\r\n/****************/\r\n\r\nfunction compareValue(type, key, ignoredFields, val1, val2) {\r\n if (ignoredFields != \"\" && ignoredFields != null) {\r\n var ignoredArray = ignoredFields.split(\",\");\r\n for (var i = 0; i < ignoredArray.length; i++) {\r\n if (key == ignoredArray[i]) {\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n if (type == \"equals\") {\r\n if (val1 == val2) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n } else if (type == \"contains\") {\r\n if (val1.includes(val2)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n } else if (type == \"startswith\") {\r\n if (val1.startsWith(val2)) {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n}\r\n\r\nvar dataSearch = function (data, filterValue, orderFilter, ignoredFields) {\r\n var lowercasedFilter = filterValue.toLowerCase();\r\n var filterType = 1;\r\n\r\n if (lowercasedFilter.indexOf(\"_searchfiltertype_2\") != -1) {\r\n filterType = 2;\r\n lowercasedFilter = lowercasedFilter.replace(\"_searchfiltertype_2\", \"\");\r\n }\r\n else {\r\n lowercasedFilter = lowercasedFilter.replace(\"_searchfiltertype_1\", \"\");\r\n }\r\n\r\n var filterArray = lowercasedFilter.split(\"|\");\r\n var filteredData = data;\r\n\r\n for (var i = 0; i < filterArray.length; i++) {\r\n if (filterArray[i].indexOf(\"_productcodefilter_\") != -1) {\r\n var filter = filterArray[i].replace(\"_productcodefilter_\", \"\").replace(\"_\", \"\");\r\n if (filter != \"\") {\r\n filteredData = filteredData.filter(item => {\r\n return Object.keys(item).some(key =>\r\n compareValue(\"equals\", key, ignoredFields, item[\"productcodeid\"].toString().toLowerCase(), filter)\r\n );\r\n });\r\n }\r\n } else if (filterArray[i].indexOf(\"_categoryfilter_\") != -1) {\r\n var filter = filterArray[i].replace(\"_categoryfilter_\", \"\").replace(\"_\", \"\");\r\n if (filter != \"\") {\r\n filteredData = filteredData.filter(item => {\r\n return Object.keys(item).some(key =>\r\n compareValue(\"equals\", key, ignoredFields, item[\"categoryid\"].toString().toLowerCase(), filter)\r\n );\r\n });\r\n }\r\n } else if (filterArray[i].indexOf(\"_typefilter_\") != -1) {\r\n var filter = filterArray[i].replace(\"_typefilter_\", \"\").replace(\"_\", \"\");\r\n if (filter != \"\") {\r\n filteredData = filteredData.filter(item => {\r\n return Object.keys(item).some(key =>\r\n compareValue(\"contains\", key, ignoredFields, item[\"type\"].toString().toLowerCase(), filter)\r\n );\r\n });\r\n }\r\n } else if (filterArray[i].indexOf(\"_workcenterfilter_\") != -1) {\r\n var filter = filterArray[i].replace(\"_workcenterfilter_\", \"\").replace(\"_\", \"\");\r\n if (filter != \"\") {\r\n filteredData = filteredData.filter(item => {\r\n return Object.keys(item).some(key =>\r\n compareValue(\"contains\", key, ignoredFields, item[\"workcenter\"].toString().toLowerCase(), filter)\r\n );\r\n });\r\n }\r\n } else if (filterArray[i].indexOf(\"_procurementfilter_\") != -1) {\r\n var filter = filterArray[i].replace(\"_procurementfilter_\", \"\").replace(\"_\", \"\");\r\n if (filter != \"\") {\r\n filteredData = filteredData.filter(item => {\r\n return Object.keys(item).some(key =>\r\n compareValue(\"contains\", key, ignoredFields, item[\"procurement\"].toString().toLowerCase(), filter)\r\n );\r\n });\r\n }\r\n } else if (filterArray[i].indexOf(\"mrpdate\") != -1) {\r\n continue;\r\n } else {\r\n var filter = filterArray[i];\r\n if (filter != \"\") {\r\n if (filterType == 2) {\r\n filteredData = filteredData.filter(item => {\r\n return Object.keys(item).some(key =>\r\n compareValue(\"startswith\", key, ignoredFields, item[key].toString().toLowerCase(), filter)\r\n );\r\n });\r\n }\r\n else {\r\n filteredData = filteredData.filter(item => {\r\n return Object.keys(item).some(key =>\r\n compareValue(\"contains\", key, ignoredFields, item[key].toString().toLowerCase(), filter)\r\n );\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (orderFilter != \"\" && orderFilter != null) {\r\n filteredData = filteredData.filter(item => {\r\n return Object.keys(item).some(key =>\r\n item[\"productionorder\"].toString().toLowerCase().includes(orderFilter)\r\n );\r\n });\r\n }\r\n\r\n return filteredData;\r\n}\r\n\r\n/****************/\r\n/*** HELPER FUNCTIONS ***/\r\n/****************/\r\n\r\nvar getFilterValue = function (field, filterValue) {\r\n var retval = \"\";\r\n if (filterValue != \"\" && filterValue != null) {\r\n var filterArray = filterValue.split(\"|\");\r\n for (var i = 0; i < filterArray.length; i++) {\r\n if (field == \"\") {\r\n if (filterArray[i].indexOf(\"_ProductCodeFilter_\") == -1 && filterArray[i].indexOf(\"_CategoryFilter_\") == -1 && filterArray[i].indexOf(\"_SearchFilterType_\") == -1 && filterArray[i].indexOf(\"_StatusFilter_\") == -1) {\r\n retval = filterArray[i];\r\n }\r\n\r\n } else {\r\n if (filterArray[i].indexOf(field) != -1) {\r\n retval = filterArray[i].replace(field, \"\");\r\n }\r\n }\r\n }\r\n }\r\n\r\n return retval;\r\n}\r\n\r\nvar getDefaultDate = function (currentdate, addDay) {\r\n var d = new Date(currentdate);\r\n d.setDate(d.getDate() + addDay);\r\n var month = (d.getMonth() + 1 > 12) ? 1 : d.getMonth() + 1;\r\n month = (month.toString().length > 1) ? month : \"0\" + month;\r\n var day = d.getDate();\r\n day = (day.toString().length > 1) ? day : \"0\" + day;\r\n return d.getFullYear() + \"-\" + month + \"-\" + day;\r\n}\r\n\r\nvar getPageName = function (pathname) {\r\n var pagename = pathname;\r\n if (pathname != undefined) {\r\n if (pathname != \"\") {\r\n pagename = pathname.substring(pathname.indexOf(\"/\") + 1);\r\n }\r\n }\r\n return pagename;\r\n}\r\n\r\nvar isNumeric = function (n) {\r\n return !isNaN(parseFloat(n)) && isFinite(n);\r\n}\r\n\r\nvar getDayOfWeekHeader = function (dayofweek = 0, weekoffset = 0) {\r\n var d = new Date();\r\n d.setDate(d.getDate() + (((dayofweek + 7 - d.getDay()) % 7) || 7) + (7 * (weekoffset-1)));\r\n return d.getDate() + \"-\" + d.toLocaleString('default', { month: 'short' });\r\n}\r\n\r\nvar getWeekNumberRangeHeader = function (startDate = new Date(), weekstoinclude = 0) {\r\n startDate = new Date(startDate);\r\n var startWeekNumber = getWeekNumber(new Date(startDate));\r\n var endDate = new Date(new Date(startDate).setDate(startDate.getDate() + (weekstoinclude * 7)));\r\n var endWeekNumber = getWeekNumber(endDate);\r\n return startWeekNumber + \" to \" + endWeekNumber;\r\n}\r\n\r\nvar getWeekNumber = function (d) {\r\n d = new Date(d)\r\n var onejan = new Date(d.getFullYear(), 0, 1);\r\n var today = new Date(d.getFullYear(), d.getMonth(), d.getDate());\r\n var dayOfYear = ((today - onejan + 86400000) / 86400000);\r\n return Math.ceil(dayOfYear / 7)\r\n}\r\n\r\n/****************/\r\n/*** STYLING ***/\r\n/****************/\r\n\r\nvar linkColumnStyle = {\r\n color: \"#054C8E\",\r\n textDecorationLine: \"underline\",\r\n cursor: \"pointer\"\r\n}\r\n\r\nvar errorColumnStyle = {\r\n color: \"#FF0000\"\r\n}\r\n\r\nvar pageHeaderStyle = {\r\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", \"Ubuntu\", sans-serif',\r\n color: \"#0F76BD\",\r\n fontSize: \"x-large\",\r\n fontWeight: \"bold\",\r\n fontStyle: \"normal\",\r\n display: 'inline-block'\r\n}\r\n\r\nvar displayNameStyle = {\r\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", \"Ubuntu\", sans-serif',\r\n color: \"#414042\",\r\n fontSize: \"10\",\r\n fontWeight: \"600\",\r\n fontStyle: \"normal\"\r\n}\r\n\r\nvar displayTitleStyle = {\r\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", \"Ubuntu\", sans-serif',\r\n color: \"#6D6E71\",\r\n fontSize: \"10\",\r\n fontWeight: \"400\"\r\n}\r\n\r\nvar buttonBlue = {\r\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", \"Ubuntu\", sans-serif',\r\n backgroundColor: \"#3A4757\",\r\n fontSize: \"14\",\r\n color: \"white\",\r\n fontWeight: \"600\",\r\n borderRadius: \"4px\",\r\n border: \"2px solid gray\",\r\n padding: \"0px 5px 0px 5px !important\"\r\n}\r\n\r\nvar buttonWhite = {\r\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", \"Ubuntu\", sans-serif',\r\n backgroundColor: \"white\",\r\n fontSize: \"14\",\r\n color: \"#3A4757\",\r\n fontWeight: \"600\",\r\n borderRadius: \"4px\",\r\n border: \"2px solid gray\",\r\n padding: \"0px 5px 0px 5px !important\"\r\n}\r\n\r\nvar buttonBlueSmall = {\r\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", \"Ubuntu\", sans-serif',\r\n backgroundColor: \"#3A4757\",\r\n fontSize: \"14\",\r\n color: \"white\",\r\n fontWeight: \"600\",\r\n borderRadius: \"4px\",\r\n border: \"2px solid gray\",\r\n padding: \"0px 5px 0px 5px !important\",\r\n height: \"20px\"\r\n}\r\n\r\nvar buttonWhiteSmall = {\r\n fontFamily: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", \"Roboto\", \"Helvetica Neue\", \"Ubuntu\", sans-serif',\r\n backgroundColor: \"white\",\r\n fontSize: \"14\",\r\n color: \"#3A4757\",\r\n fontWeight: \"600\",\r\n borderRadius: \"4px\",\r\n border: \"2px solid gray\",\r\n padding: \"0px 5px 0px 5px !important\",\r\n height: \"20px\"\r\n}\r\n\r\nvar Search = styled.div`\r\n border-radius: 2px;\r\n background-color: ${props => props.theme.header.background};\r\n display: none;\r\n position: relative;\r\n width: 90%;\r\n\r\n &:hover {\r\n background-color: ${props => darken(0.05, props.theme.header.background)};\r\n }\r\n\r\n ${props => props.theme.breakpoints.up(\"sm\")} {\r\n display: block;\r\n }\r\n`;\r\n\r\nvar SearchIconWrapper = styled.div`\r\n width: 120px;\r\n height: 100%;\r\n position: absolute;\r\n pointer-events: none;\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\r\n\r\n svg {\r\n width: 20px;\r\n height: 20px;\r\n }\r\n\r\n&& {\r\n color: ${props => props.theme.sidebar.header.background};\r\n}\r\n`;\r\n\r\nvar SearchInput = styled(InputBase)`\r\n color: inherit;\r\n width: 100%;\r\n\r\n > input {\r\n color: ${props => props.theme.header.search.color};\r\n padding-top: ${props => props.theme.spacing(2.5)}px;\r\n padding-right: ${props => props.theme.spacing(15)}px;\r\n padding-bottom: ${props => props.theme.spacing(2.5)}px;\r\n padding-left: ${props => props.theme.spacing(15)}px;\r\n width: 160px;\r\n }\r\n\r\n > div .MuiSelect-root {\r\n width: 70px;\r\n }\r\n`;\r\n\r\nvar SmallButton = styled(Button)`\r\n padding: 4px;\r\n min-width: 0;\r\n\r\n svg {\r\n width: 0.9em;\r\n height: 0.9em;\r\n }\r\n`;\r\n\r\nvar TableWrapper = styled.div`\r\n overflow-y: auto;\r\n max-width: calc(100vw - ${props => props.theme.spacing(12)}px);\r\n`;\r\n\r\n/****************/\r\n/*** SHARED FUNCTIONS ***/\r\n/****************/\r\n\r\nvar renderHTML = function (value, key) {\r\n var retval = value;\r\n if (retval != null && retval != \"\" && typeof (retval) == \"string\") {\r\n if (retval.indexOf(\"<\") != -1 && retval.indexOf(\">\") != -1) {\r\n retval = ;\r\n } else if (retval.indexOf(\"✔\") !== -1) {\r\n // Render the Check character\r\n retval = ;\r\n }\r\n }\r\n\r\n return retval;\r\n}\r\n\r\nvar handleClick = function (value, key) {\r\n return (event) => {\r\n var myURL = \"\";\r\n if (key == \"SalesOrder\") {\r\n myURL = '../frmSALES_DataEntry.aspx?OrderType=SALES%20ORDER&OrderID=' + value;\r\n }\r\n\r\n var w = 1100;\r\n var h = 775;\r\n\r\n var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : window.screen.left;\r\n var dualScreenTop = window.screenTop != undefined ? window.screenTop : window.screen.top;\r\n\r\n var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : window.screen.width;\r\n var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : window.screen.height;\r\n\r\n var left = ((width / 2) - (w / 2)) + dualScreenLeft;\r\n var top = ((height / 2) - (h / 2)) + dualScreenTop;\r\n\r\n return (\r\n windowopen(myURL, '_blank', 'toolbar=no,status=no,resizable=1,scrollbars=1,menubar=no,location=no,width=1100,height=775,left=' + left + ',top=' + top + ',modal=yes')\r\n );\r\n\r\n }\r\n}\r\n\r\nvar redirectCompanyCode = function (companycodeid, plantid, pagename) {\r\n if (!(isNaN(companycodeid))) {\r\n if (pagename === undefined) {\r\n pagename = \"\";\r\n }\r\n\r\n var myURL = \"../frmSYSTEM_ChangeCompanyCode.aspx?NewCompanyCodeID=\" + companycodeid + \"&NewPlantID=\" + plantid + \"&RedirectPageName=\" + pagename;\r\n var target = '_self';\r\n\r\n var w = 1100;\r\n var h = 775;\r\n\r\n var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : window.screen.left;\r\n var dualScreenTop = window.screenTop != undefined ? window.screenTop : window.screen.top;\r\n\r\n var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : window.screen.width;\r\n var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : window.screen.height;\r\n\r\n var left = ((width / 2) - (w / 2)) + dualScreenLeft;\r\n var top = ((height / 2) - (h / 2)) + dualScreenTop;\r\n\r\n return (\r\n windowopen(myURL, target, 'toolbar=no,status=no,resizable=1,scrollbars=1,menubar=no,location=no,width=1100,height=775,left=' + left + ',top=' + top + ',modal=yes')\r\n );\r\n }\r\n}\r\n\r\nvar redirectPlant = function (plantid, pagename) {\r\n if (!(isNaN(plantid))) {\r\n sessionStorage.setItem('PlantID', plantid);\r\n\r\n var myURL = '../frmSYSTEM_ChangeCompanyCode.aspx?NewPlantID=' + plantid + \"&RedirectPageName=\" + pagename;\r\n var target = '_self';\r\n\r\n var w = 1100;\r\n var h = 775;\r\n\r\n var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : window.screen.left;\r\n var dualScreenTop = window.screenTop != undefined ? window.screenTop : window.screen.top;\r\n\r\n var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : window.screen.width;\r\n var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : window.screen.height;\r\n\r\n var left = ((width / 2) - (w / 2)) + dualScreenLeft;\r\n var top = ((height / 2) - (h / 2)) + dualScreenTop;\r\n\r\n return (\r\n windowopen(myURL, target, 'toolbar=no,status=no,resizable=1,scrollbars=1,menubar=no,location=no,width=1100,height=775,left=' + left + ',top=' + top + ',modal=yes')\r\n );\r\n }\r\n}\r\n\r\n/****************/\r\n/*** MISC ***/\r\n/****************/\r\n\r\nfunction doNothing() {\r\n //Do Nothing\r\n}\r\n\r\n/****************/\r\n/*** COMPONENTS ***/\r\n/****************/\r\n\r\nexport class ViewSelect extends React.Component {\r\n state = {\r\n value: this.props.value,\r\n labelWidth: 0,\r\n companycodes: getUserInfo().companycodes,\r\n data: this.props.values,\r\n name: this.props.name,\r\n defaultLabel: this.props.defaultLabel\r\n };\r\n\r\n handleChange = event => {\r\n this.setState({ value: event.target.value });\r\n var filterValue = this.state.name + event.target.value;\r\n this.props.handleFilterChange(filterValue);\r\n };\r\n\r\n render = () => {\r\n const data = this.props.values;\r\n var value = this.state.value;\r\n\r\n if (data.length < 1) {\r\n value = this.props.defaultValue;\r\n }\r\n else {\r\n var found = false;\r\n for (var i = 0; i < data.length; i++) {\r\n if (data[i].value == value) {\r\n found = true;\r\n break;\r\n }\r\n }\r\n if (found === false) {\r\n value = \"_\";\r\n }\r\n }\r\n\r\n const { labelWidth, companycodes, name, defaultLabel } = this.state;\r\n let displayError = false;\r\n if (this.props.required) {\r\n if (value === \"_\") {\r\n displayError = true;\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n {defaultLabel !== \"\" ? {defaultLabel} : null}\r\n {data.map((item, index) => (\r\n {item.name}\r\n ))}\r\n \r\n {displayError ? Value must be selected. : null}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport class DateSelect extends React.Component {\r\n state = {\r\n value: this.props.values,\r\n name: this.props.name,\r\n label: this.props.label\r\n };\r\n\r\n handleChange = event => {\r\n // Check if Date is Valid before doing onchange\r\n var tmpDate = new Date(event.target.value);\r\n if (tmpDate.getFullYear() > 1900) {\r\n this.setState({ value: event.target.value });\r\n var filterValue = this.state.name + event.target.value;\r\n this.props.handleFilterChange(filterValue);\r\n }\r\n else {\r\n var defaultDate = getDefaultDate(\"1985-01-01T00:00:00\");\r\n this.setState({ value: defaultDate });\r\n var filterValue = this.state.name + defaultDate;\r\n this.props.handleFilterChange(filterValue);\r\n }\r\n };\r\n\r\n render() {\r\n const { value, name, label } = this.state;\r\n\r\n return (\r\n
\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport class NewButton extends React.Component {\r\n newButtonClick = () => {\r\n var myURL = this.props.buttonUrl;\r\n var target = '_blank';\r\n\r\n if (this.props.currentWindow) {\r\n target = '_self';\r\n }\r\n\r\n var w = 1100;\r\n var h = 775;\r\n\r\n var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : window.screen.left;\r\n var dualScreenTop = window.screenTop != undefined ? window.screenTop : window.screen.top;\r\n\r\n var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : window.screen.width;\r\n var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : window.screen.height;\r\n\r\n var left = ((width / 2) - (w / 2)) + dualScreenLeft;\r\n var top = ((height / 2) - (h / 2)) + dualScreenTop;\r\n\r\n if (this.props.fullScreen) {\r\n w = window.screen.width;\r\n h = window.screen.height;\r\n\r\n left = 0;\r\n top = 0;\r\n }\r\n\r\n return (\r\n windowopen(myURL, target, 'toolbar=no,status=no,resizable=1,scrollbars=1,menubar=no,location=no,width=' + w + ',height=' + h + ',left=' + left + ',top=' + top + ',modal=yes,fullscreen=yes')\r\n );\r\n }\r\n\r\n render = () => {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport class PageHeader extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isLoaded: false,\r\n searchFilterTypes: [{ \"name\": \"Contains\", \"value\": \"1\" }, { \"name\": \"Starts with\", \"value\": \"2\" }],\r\n searchFilter: sessionStorage.getItem(this.props.pageName + '_searchFilter') || \"_SearchFilterType_1\",\r\n pageName: this.props.pageName || \"\",\r\n badge: this.props.badge,\r\n ispreview: this.props.isPreview,\r\n is24SO: this.props.is24SO,\r\n showSetup: this.props.showSetup || false,\r\n showDetails: this.props.showDetails || false\r\n };\r\n this.handleCompanyChange = this.handleCompanyChange.bind(this);\r\n this.handleSearchFilterTypeChange = this.handleSearchFilterTypeChange.bind(this);\r\n this.handleSearch = this.handleSearch.bind(this);\r\n this.handlePreviewClick = this.handlePreviewClick.bind(this);\r\n this.handleSetupOpen = this.handleSetupOpen.bind(this);\r\n this.handleMenuChange = this.handleMenuChange.bind(this);\r\n }\r\n\r\n handleCompanyChange = (param) => {\r\n var companycodeid = Number(sessionStorage.getItem('default_companycode')) || getDefaultCompanyCodeID();\r\n var plantid = Number(sessionStorage.getItem('default_plant')) || getDefaultPlantID(getDefaultCompanyCodeID());\r\n if (param.indexOf(\"_CompanyCodeFilter_\") != -1) {\r\n companycodeid = param.replace(\"_CompanyCodeFilter_\", \"\");\r\n sessionStorage.setItem('default_companycode', companycodeid);\r\n\r\n plantid = getDefaultPlantID(companycodeid);\r\n sessionStorage.setItem('default_plant', plantid);\r\n this.setState({\r\n isLoaded: false,\r\n companycodeID: companycodeid,\r\n plantID: plantid\r\n });\r\n }\r\n else if (param.indexOf(\"_PlantFilter_\") != -1) {\r\n plantid = param.replace(\"_PlantFilter_\", \"\");\r\n sessionStorage.setItem('default_plant', plantid);\r\n this.setState({\r\n isLoaded: false,\r\n plantID: plantid\r\n });\r\n \r\n }\r\n redirectCompanyCode(companycodeid, plantid, this.state.pageName);\r\n }\r\n\r\n handleSearchFilterTypeChange = (filter) => {\r\n var searchfiltername = this.state.pageName + '_searchFilter';\r\n var filterValue = \"\";\r\n var existingSearchFilter = sessionStorage.getItem(searchfiltername) || \"\";\r\n if (existingSearchFilter != \"\") {\r\n var filterArray = existingSearchFilter.split(\"|\");\r\n for (var i = 0; i < filterArray.length; i++) {\r\n if (filterArray[i].indexOf(\"_SearchFilterType_\") != -1 && filter.indexOf(\"_SearchFilterType_\") != -1) {\r\n continue;\r\n }\r\n\r\n if (filterValue != \"\") filterValue += \"|\";\r\n filterValue += filterArray[i];\r\n }\r\n\r\n if (filterValue != \"\") filterValue += \"|\";\r\n filterValue += filter;\r\n }\r\n else {\r\n filterValue = filter;\r\n }\r\n\r\n sessionStorage.setItem(searchfiltername, filterValue);\r\n this.setState({\r\n searchFilter: filterValue\r\n });\r\n this.props.handleSearch(filterValue);\r\n }\r\n\r\n handlePreviewClick = () => {\r\n var value = !this.state.ispreview;\r\n sessionStorage.setItem(this.state.pageName + '_ispreview', value);\r\n this.setState({ ispreview: value });\r\n this.props.handlePreviewClick(value);\r\n }\r\n\r\n handleSetupOpen = () => {\r\n var w = 1100;\r\n var h = 775;\r\n\r\n var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : window.screen.left;\r\n var dualScreenTop = window.screenTop != undefined ? window.screenTop : window.screen.top;\r\n\r\n var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : window.screen.width;\r\n var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : window.screen.height;\r\n\r\n var left = ((width / 2) - (w / 2)) + dualScreenLeft;\r\n var top = ((height / 2) - (h / 2)) + dualScreenTop;\r\n\r\n var target = '_blank';\r\n var myURL = '../frmSYSTEM_ConfigureScreen.aspx?ScreenName=React ' + this.state.pageName + '&TimeStamp=' + Date.now();\r\n if (this.props.showDetails != undefined) {\r\n if (this.state.showDetails === false) {\r\n myURL += \"&CompactView=TRUE\";\r\n } else {\r\n myURL += \"&CompactView=FALSE\";\r\n }\r\n } else {\r\n myURL += \"&CompactView=ALL\";\r\n }\r\n \r\n if (myURL != \"\") {\r\n return (\r\n windowopen(myURL, target, 'toolbar=no,status=no,resizable=1,scrollbars=1,menubar=no,location=no,width=1100,height=775,left=' + left + ',top=' + top + ',modal=yes')\r\n );\r\n }\r\n }\r\n\r\n handleSearch = (e) => {\r\n var searchfiltername = this.state.pageName + '_searchFilter';\r\n var filter = e.target.value;\r\n var filterValue = \"\";\r\n var existingSearchFilter = sessionStorage.getItem(searchfiltername) || \"\";\r\n if (existingSearchFilter != \"\") {\r\n var filterArray = existingSearchFilter.split(\"|\");\r\n for (var i = 0; i < filterArray.length; i++) {\r\n if (filterArray[i].indexOf(\"_SearchFilterType_\") != -1) {\r\n if (filterValue != \"\") filterValue += \"|\";\r\n filterValue += filterArray[i];\r\n }\r\n }\r\n\r\n if (filterValue != \"\") filterValue += \"|\";\r\n filterValue += filter;\r\n }\r\n else {\r\n filterValue = filter;\r\n }\r\n\r\n sessionStorage.setItem(searchfiltername, filterValue);\r\n this.setState({\r\n searchFilter: filterValue\r\n });\r\n this.props.handleSearch(filterValue);\r\n }\r\n\r\n handleMenuChange = (e) => {\r\n let name = e.target.name;\r\n let value;\r\n if (e.target.name == \"showDetails\") {\r\n value = e.target.checked;\r\n sessionStorage.setItem(this.state.pageName + '_showDetails', value);\r\n this.setState({\r\n showDetails: value\r\n });\r\n }\r\n this.props.handleMenuChange(name, value);\r\n }\r\n\r\n handleSearchButton = () => {\r\n if (this.state.searchFilter != \"\") {\r\n var filterArray = this.state.searchFilter.split(\"|\");\r\n var id = -1;\r\n for (var i = 0; i < filterArray.length; i++) {\r\n if (filterArray[i].indexOf(\"_SearchFilterType_\") != -1) {\r\n continue;\r\n } else {\r\n id = filterArray[i].toString().split(\" - \")[0]\r\n break;\r\n }\r\n }\r\n\r\n let companycodeid = this.props.companycodeID;\r\n if (this.props.companycodeID == undefined) {\r\n companycodeid = getDefaultCompanyCodeID()\r\n }\r\n\r\n var w = 1100;\r\n var h = 775;\r\n\r\n var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : window.screen.left;\r\n var dualScreenTop = window.screenTop != undefined ? window.screenTop : window.screen.top;\r\n\r\n var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : window.screen.width;\r\n var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : window.screen.height;\r\n\r\n var left = ((width / 2) - (w / 2)) + dualScreenLeft;\r\n var top = ((height / 2) - (h / 2)) + dualScreenTop;\r\n\r\n var myURL = \"\";\r\n var target = '_blank';\r\n\r\n switch (this.state.pageName) {\r\n case 'sales_salesorders':\r\n case 'sales_deliveryblocks':\r\n if (!(isNaN(id)) && id.length > 5) {\r\n myURL = '../frmSALES_DataEntry.aspx?OrderType=SALES%20ORDER&OrderID=' + id.trim() + \"&CompanyCodeID=\" + this.props.companycodeID;\r\n\r\n //if (this.state.is24SO == \"TRUE\" || this.state.isPreview == true) {\r\n // myURL = '../frmZSalesOrder.aspx?FromUI=TRUE&OrderType=SALES%20ORDER&OrderID=' + id.trim() + \"&CompanyCodeID=\" + this.props.companycodeID;\r\n // target = '_self';\r\n //}\r\n }\r\n break;\r\n case 'sales_quotes':\r\n if (!(isNaN(id)) && id.length > 5) {\r\n myURL = '../frmSALES_DataEntry.aspx?CompanyCodeID=' + this.props.companycodeID + '&OrderType=QUOTE&OrderID=' + id.trim() + '&TimeStamp=' + Date.now();\r\n }\r\n break;\r\n case 'sales_customerreturns':\r\n if (!(isNaN(id)) && id.length >= 5) {\r\n myURL = '../frmSALES_CustomerReturns.aspx?CustomerReturnID=' + id.trim() + \"&TimeStamp=\" + Date.now();\r\n }\r\n break;\r\n case 'crm_opportunities':\r\n if (!(isNaN(id)) && id.length >= 1 && id >= 1) {\r\n myURL = '../frmCRM_AddOpportunity.aspx?CompanyCodeID=' + companycodeid + \"&OpportunityID=\" + id + \"&TimeStamp=\" + Date.now();\r\n }\r\n break;\r\n case 'crm_leads':\r\n if (!(isNaN(id)) && id.length >= 1 && id >= 1) {\r\n myURL = '../frmCRM_AddLead.aspx?CompanyCodeID=' + companycodeid + \"&LeadID=\" + id.trim() + \"&TimeStamp=\" + new Date().getTime();\r\n }\r\n break;\r\n case 'manufacturing_productionorders':\r\n if (!(isNaN(id)) && id.length > 5) {\r\n myURL = '../frmMFG_ProductionOrders.aspx?OrderType=PRODUCTION%20ORDER&ProductionOrderID=' + id.trim() + \"&CompanyCodeID=\" + companycodeid + \"&TimeStamp=\" + new Date().getTime();\r\n }\r\n break;\r\n case 'purchasing_requestforquotes':\r\n if (!(isNaN(id)) && id.length > 5) {\r\n myURL = '../frmPURCHASING_DataEntry.aspx?CompanyCodeID=' + companycodeid + '&OrderType=RFQ&OrderID=' + id.trim();\r\n }\r\n break;\r\n case 'purchasing_purchaseorders':\r\n if (!(isNaN(id)) && id.length > 5) {\r\n myURL = '../frmPURCHASING_DataEntry.aspx?CompanyCodeID=' + companycodeid + '&OrderType=PURCHASE%20ORDER&OrderID=' + id.trim();\r\n\r\n //if (this.state.is24SO == \"TRUE\" || this.state.isPreview == true) {\r\n // myURL = '../frmZPurchaseOrder.aspx?FromUI=TRUE&CompanyCodeID=' + companycodeid + '&OrderType=PURCHASE%20ORDER&OrderID=' + id.trim();\r\n // target = '_self';\r\n //}\r\n }\r\n break;\r\n case 'purchasing_supplierreturns':\r\n if (!(isNaN(id)) && id.length >= 5) {\r\n myURL = '../frmPURCHASING_SupplierReturns.aspx?SupplierReturnID=' + id.trim() + \"&TimeStamp=\" + Date.now();\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n if (myURL != \"\") {\r\n return (\r\n windowopen(myURL, target, 'toolbar=no,status=no,resizable=1,scrollbars=1,menubar=no,location=no,width=1100,height=775,left=' + left + ',top=' + top + ',modal=yes')\r\n );\r\n }\r\n }\r\n }\r\n\r\n render = () => {\r\n\r\n let defaultSearchFilterType = getFilterValue(\"_SearchFilterType_\", this.state.searchFilter) || \"1\";\r\n let defaultSearchFilter = getFilterValue(\"\", this.state.searchFilter) || \"\";\r\n\r\n let userinfo = getUserInfo();\r\n let companycodes = getCompanyCodes(userinfo.companycodes);\r\n let plants = getPlants(this.props.companycodeID);\r\n\r\n let { badge, ispreview, is24SO, showSetup, showDetails } = this.state;\r\n\r\n return (\r\n \r\n \r\n {badge ?\r\n (\r\n \r\n {this.props.title}  \r\n {is24SO == \"TRUE\" ? : \"\"}\r\n \r\n )\r\n : (\r\n {this.props.title}\r\n )\r\n }\r\n {showSetup ?\r\n (\r\n \r\n ) : null\r\n }\r\n {this.props.showDetails == undefined ? null :\r\n (} label=\"Show Details\" checked={showDetails} onChange={this.handleMenuChange} />)\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n if (event.key === 'Enter') {\r\n this.handleSearchButton();\r\n }\r\n }}\r\n startAdornment={}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.props.companycodeID ? (\r\n \r\n \r\n Company Code:  \r\n \r\n \r\n \r\n ) : null\r\n }\r\n {this.props.plantID ? (\r\n \r\n \r\n     Plant:  \r\n \r\n \r\n \r\n ) : null\r\n }\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport class StatusPanel extends React.Component {\r\n isLoaded = this.props.isLoaded;\r\n\r\n state = {\r\n value: this.props.defaultValue,\r\n labelWidth: 0,\r\n companycodes: getUserInfo().companycodes,\r\n data: this.props.data,\r\n completed: 0,\r\n cycle: 0,\r\n display: 'none'\r\n };\r\n\r\n handleChange = (value) => {\r\n this.setState({ value: value });\r\n this.isLoaded = false;\r\n this.props.handleFilterChange(value);\r\n this.timer = setInterval(this.progress, 20);\r\n };\r\n\r\n isActive = (color, value) => {\r\n const activeColor = \"#0F76BD\"; //\"#279af2\";\r\n if (value == this.state.value)\r\n return activeColor;\r\n else\r\n return color;\r\n };\r\n\r\n progress = () => {\r\n const { completed, cycle } = this.state;\r\n\r\n if (cycle == 3 || this.isLoaded == true) {\r\n clearInterval(this.timer);\r\n this.setState({\r\n completed: 0,\r\n cycle: 0,\r\n display: 'none'\r\n });\r\n } else {\r\n this.setState({\r\n completed: completed >= 100 ? 0 : completed + 1,\r\n cycle: completed == 100 ? cycle + 1 : cycle,\r\n display: 'inline',\r\n isLoaded: false\r\n });\r\n }\r\n };\r\n\r\n render = () => {\r\n this.isLoaded = this.props.isLoaded;\r\n const data = this.props.data;\r\n const { value, labelWidth, companycodes, completed } = this.state;\r\n let display = this.state.display;\r\n\r\n return (\r\n \r\n {data.map((item, index) => (\r\n \r\n < Button style={{ color: item.color, backgroundColor: this.isActive(item.bgcolor, item.filter) }} variant=\"contained\" mt={2} onClick={() => this.handleChange(item.filter)} >\r\n {value === item.filter ?\r\n () : null\r\n }\r\n
\r\n \r\n {item.label}\r\n \r\n \r\n {item.value}\r\n \r\n
\r\n \r\n
\r\n ))}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport class EnhancedTableHead extends React.Component {\r\n createSortHandler = property => event => {\r\n const orderBy = property;\r\n let order = \"desc\";\r\n\r\n if (this.props.orderBy === property && this.props.order === \"desc\") {\r\n order = \"asc\";\r\n }\r\n\r\n sessionStorage.setItem(this.props.pageName + '_order', order);\r\n sessionStorage.setItem(this.props.pageName + '_orderBy', orderBy);\r\n this.props.onRequestSort(order, orderBy);\r\n };\r\n\r\n render() {\r\n const {\r\n onSelectAllClick,\r\n order,\r\n orderBy,\r\n numSelected,\r\n rowCount,\r\n rows,\r\n pageName\r\n } = this.props;\r\n\r\n return (\r\n \r\n \r\n {rows.map(\r\n (row, index) => (\r\n \r\n {\r\n (row.visible == \"True\" || row.visible == null) ?\r\n (\r\n \r\n \r\n {row.label}\r\n \r\n \r\n ) : null\r\n }\r\n \r\n ),\r\n this\r\n )}\r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport class ItemQuickAdd extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n open: false,\r\n itemNumberError: false,\r\n unitPriceError: false,\r\n procurementError: false,\r\n productCodeError: false,\r\n itemTypeError: false,\r\n categoryError: false,\r\n procurementValue: \"_\",\r\n productCodeValue: \"_\",\r\n categoryValue: \"_\",\r\n itemTypeValue: \"_\",\r\n itemNumber: \"\",\r\n unitPrice: \"\",\r\n error: \"\"\r\n };\r\n this.handleProcurementChange = this.handleProcurementChange.bind(this);\r\n this.handleProductCodeChange = this.handleProductCodeChange.bind(this);\r\n this.handleCategoryChange = this.handleCategoryChange.bind(this);\r\n this.handleItemTypeChange = this.handleItemTypeChange.bind(this);\r\n this.handleItemNumberChange = this.handleItemNumberChange.bind(this);\r\n this.handleUnitPriceChange = this.handleUnitPriceChange.bind(this);\r\n }\r\n\r\n handleClickOpen = () => {\r\n this.setState({ open: true });\r\n };\r\n\r\n handleClose = (e) => {\r\n this.setState({\r\n open: false,\r\n itemNumberError: false,\r\n unitPriceError: false,\r\n procurementError: false,\r\n productCodeError: false,\r\n itemTypeError: false,\r\n categoryError: false,\r\n procurementValue: \"_\",\r\n productCodeValue: \"_\",\r\n categoryValue: \"_\",\r\n itemTypeValue: \"_\",\r\n itemNumber: \"\",\r\n unitPrice: \"\",\r\n error: \"\"\r\n });\r\n };\r\n\r\n handleProcurementChange = (e) => {\r\n this.setState({ procurementValue: e.target.value, procurementError: false });\r\n };\r\n\r\n handleProductCodeChange = (e) => {\r\n this.setState({ productCodeValue: e.target.value, productCodeError: false });\r\n };\r\n\r\n handleCategoryChange = (e) => {\r\n this.setState({ categoryValue: e.target.value, categoryError: false });\r\n };\r\n\r\n handleItemTypeChange = (e) => {\r\n this.setState({ itemTypeValue: e.target.value, itemTypeError: false });\r\n };\r\n\r\n handleItemNumberChange = (e) => {\r\n this.setState({ itemNumber: e.target.value, itemNumberError: false });\r\n };\r\n\r\n handleUnitPriceChange = (e) => {\r\n this.setState({ unitPrice: e.target.value, unitPriceError: false });\r\n };\r\n\r\n CreateOrder = (e) => {\r\n const { procurementValue, productCodeValue, categoryValue, itemTypeValue, itemNumber, unitPrice } = this.state;\r\n\r\n if (itemNumber == \"\") {\r\n this.setState({ itemNumberError: true });\r\n }\r\n else if (unitPrice == \"\") {\r\n this.setState({ unitPriceError: true });\r\n }\r\n else if (procurementValue == \"_\") {\r\n this.setState({ procurementError: true });\r\n }\r\n else if (productCodeValue == \"_\") {\r\n this.setState({ productCodeError: true });\r\n }\r\n else if (categoryValue == \"_\") {\r\n this.setState({ categoryError: true });\r\n }\r\n else if (itemTypeValue == \"_\") {\r\n this.setState({ itemTypeError: true });\r\n }\r\n else {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n //'Authorization': 'Bearer my-token'\r\n },\r\n body: JSON.stringify({\r\n \"ApiKey\": this.props.userinfo.apikey,\r\n \"ItemNumber\": itemNumber,\r\n \"UnitPrice\": unitPrice,\r\n \"Procurement\": procurementValue,\r\n \"ProductCode\": productCodeValue,\r\n \"ItemType\": itemTypeValue,\r\n \"Category\": categoryValue\r\n })\r\n };\r\n\r\n fetch(this.props.userinfo.apiurl + \"CreateItemUI\", requestOptions)\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n var resultString = JSON.stringify(result);\r\n if (resultString.indexOf(\"Error Creating Item\") != -1) {\r\n this.setState({\r\n error: resultString.replace(/[{}\\\"]/g, \"\")\r\n });\r\n }\r\n else {\r\n this.props.refreshClick();\r\n this.handleClose();\r\n }\r\n },\r\n (error) => {\r\n this.setState({\r\n error: \"Error creating item.\"\r\n });\r\n }\r\n )\r\n }\r\n };\r\n\r\n render = () => {\r\n const { open, procurementValue, productCodeValue, categoryValue, itemTypeValue, procurementError, productCodeError, categoryError, itemTypeError, itemNumberError, unitPriceError, error } = this.state;\r\n const apikey = this.props.apikey;\r\n const procurement = this.props.procurement;\r\n const categories = this.props.categories;\r\n const productcodes = this.props.productcodes;\r\n const itemtypes = this.props.itemtypes;\r\n\r\n return (\r\n \r\n \r\n \r\n Add Item\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {error}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport class ScreenSettings extends React.Component {\r\n state = {\r\n open: false,\r\n error: \"\",\r\n rows: [],\r\n buttons: [],\r\n updatedRows: [],\r\n updatedButtons: []\r\n };\r\n\r\n componentDidMount() {\r\n this.setState({\r\n open: false,\r\n error: \"\",\r\n rows: this.props.rows,\r\n buttons: this.props.buttons,\r\n updatedRows: this.props.rows,\r\n updatedButtons: this.props.buttons\r\n });\r\n }\r\n\r\n handleClickOpen = () => {\r\n this.setState({\r\n open: true,\r\n });\r\n };\r\n\r\n handleCancel = (e) => {\r\n const oldButtons = this.state.buttons;\r\n const oldRows = this.state.rows;\r\n\r\n this.setState({\r\n open: false,\r\n error: \"\",\r\n updatedButtons: oldButtons,\r\n updatedRows: oldRows\r\n });\r\n };\r\n\r\n handleClose = (e) => {\r\n this.setState({\r\n open: false,\r\n error: \"\"\r\n });\r\n };\r\n\r\n handleChange = (e) => {\r\n var jsonObj = this.state.updatedRows;\r\n if (e.target.value === \"button\") {\r\n jsonObj = this.state.updatedButtons;\r\n }\r\n\r\n for (var i = 0; i < jsonObj.length; i++) {\r\n if (jsonObj[i].id === e.target.name) {\r\n jsonObj[i].visible = e.target.checked;\r\n break;\r\n }\r\n }\r\n\r\n if (e.target.value === \"button\") {\r\n this.setState({\r\n updatedButtons: jsonObj\r\n });\r\n }\r\n else {\r\n this.setState({\r\n updatedRows: jsonObj\r\n });\r\n }\r\n };\r\n\r\n SaveSettings = (e) => {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n //'Authorization': 'Bearer my-token'\r\n },\r\n body: JSON.stringify({\r\n \"ApiKey\": this.props.userinfo.apikey,\r\n \"PageName\": this.props.pageName,\r\n \"Screen\": this.props.screen,\r\n \"Rows\": this.state.updatedRows,\r\n \"Buttons\": this.state.updatedButtons\r\n })\r\n };\r\n\r\n fetch(this.props.userinfo.apiurl + \"UpdateScreenSettings\", requestOptions)\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n var resultString = JSON.stringify(result);\r\n if (resultString.indexOf(\"Error updating settings\") != -1) {\r\n this.setState({\r\n error: resultString.replace(/[{}\\\"]/g, \"\")\r\n });\r\n }\r\n else {\r\n this.props.refreshClick();\r\n this.handleClose();\r\n }\r\n },\r\n (error) => {\r\n this.setState({\r\n error: \"Error updating settings.\"\r\n });\r\n }\r\n )\r\n };\r\n\r\n render = () => {\r\n let { open, error, updatedRows, updatedButtons} = this.state;\r\n const { title, blankLabel } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {title}\r\n
\r\n \r\n \r\n \r\n Columns:\r\n \r\n {updatedRows.map(\r\n row => (\r\n }\r\n label={row.label || blankLabel} key={row.id}\r\n />\r\n ),\r\n this\r\n )}\r\n \r\n \r\n \r\n Buttons:\r\n \r\n {updatedButtons.map(\r\n button => (\r\n }\r\n label={button.label || blankLabel} key={button.id}\r\n />\r\n ),\r\n this\r\n )}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {error}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nvar CircularProgressIndicator = function (obj) {\r\n const [progress, setProgress] = React.useState(0);\r\n const [cycle, setCycle] = React.useState(0);\r\n\r\n var prevCycle = 0;\r\n var prevProgress = 0;\r\n\r\n var maxCycle = 0; // 10 = 1 cycle\r\n if (obj.value > 1000) {\r\n maxCycle = Math.ceil(obj.value * (10/1000));\r\n }\r\n else if (obj.value > 10000) {\r\n maxCycle = 30 + Math.ceil(obj.value * (10 / 10000));\r\n }\r\n else if (obj.value > 50000) {\r\n maxCycle = 50 + Math.ceil(obj.value * (10 / 50000));\r\n }\r\n else if (obj.value > 100000) {\r\n maxCycle = 100 + Math.ceil(obj.value * (10 / 100000));\r\n }\r\n else if (obj.value > 500000) {\r\n maxCycle = 150 + Math.ceil(obj.value * (10 / 500000));\r\n }\r\n\r\n React.useEffect(() => {\r\n const timer = setInterval(() => {\r\n if (obj.value > 1000) {\r\n prevCycle = (prevCycle >= maxCycle ? prevCycle : prevCycle + 1);\r\n prevProgress = (prevProgress >= 100 ? 0 : prevProgress + 10);\r\n\r\n setProgress(prevProgress);\r\n if (prevCycle >= maxCycle) {\r\n setProgress(0);\r\n clearInterval(timer);\r\n }\r\n else {\r\n setCycle(prevCycle);\r\n }\r\n }\r\n else {\r\n clearInterval(timer);\r\n }\r\n\r\n }, 200);\r\n\r\n return () => {\r\n clearInterval(timer);\r\n };\r\n }, [obj.value]);\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport class ConfirmDialog extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n open: this.props.open,\r\n error: \"\"\r\n };\r\n this.handleConfirm = this.handleConfirm.bind(this);\r\n }\r\n\r\n handleClickOpen = () => {\r\n this.setState({ open: true });\r\n };\r\n\r\n handleClose = (e) => {\r\n this.setState({\r\n open: false,\r\n error: \"\"\r\n });\r\n };\r\n\r\n handleConfirm = (e) => {\r\n this.setState({\r\n open: false,\r\n error: \"\"\r\n });\r\n this.props.handleConfirm();\r\n };\r\n\r\n render = () => {\r\n const { error } = this.state;\r\n\r\n return (\r\n \r\n \r\n {this.props.title}\r\n \r\n \r\n {this.props.title}\r\n
\r\n \r\n {this.props.description}\r\n \r\n \r\n {error}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n/****************/\r\n/*** DEBUG FUNCTIONS ***/\r\n/****************/\r\nvar getDebugFlag = function () {\r\n var myValue = \"\";\r\n\r\n var cookieArray = document.cookie.split(\";\");\r\n cookieArray.map(function (originalValue) {\r\n originalValue = originalValue.trim();\r\n if (originalValue.indexOf(\"MPDebugMode\") == 0) {\r\n\r\n myValue = originalValue;\r\n myValue = myValue.replace(\"MPDebugMode=\", \"\")\r\n }\r\n });\r\n\r\n if (myValue != \"\") {\r\n if (myValue.toLowerCase() === 'true') {\r\n return true;\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n else {\r\n return false;\r\n }\r\n};\r\n\r\nvar writeDebugLine = function (value) {\r\n var myValue = \"\";\r\n\r\n if (value === null) {\r\n return false;\r\n }\r\n\r\n var cookieArray = document.cookie.split(\";\");\r\n cookieArray.map(function (originalValue) {\r\n originalValue = originalValue.trim();\r\n if (originalValue.indexOf(\"MPDebugMode\") == 0) {\r\n\r\n myValue = originalValue;\r\n myValue = myValue.replace(\"MPDebugMode=\", \"\")\r\n }\r\n });\r\n\r\n if (myValue != \"\") {\r\n if (myValue.toLowerCase() === 'true') {\r\n console.log(value.toString());\r\n }\r\n }\r\n};\r\n\r\n/****************/\r\n/*** EXPORTS ***/\r\n/****************/\r\n\r\nexport var getUserInfo;\r\nexport var getApiURL;\r\nexport var getApiKey;\r\nexport var getCompanyCodes;\r\nexport var getCompanyCodeName;\r\nexport var getDefaultCompanyCodeID;\r\nexport var getPlants;\r\nexport var getPlantName;\r\nexport var getDefaultPlantID;\r\nexport var checkLoginStatus;\r\nexport var encodeComponent;\r\n\r\nexport var stableSort;\r\nexport var getSorting;\r\n\r\nexport var dataSearch;\r\nexport var getFilterValue;\r\nexport var getDefaultDate;\r\nexport var getPageName;\r\nexport var getDayOfWeekHeader;\r\nexport var getWeekNumberRangeHeader;\r\n\r\nexport var linkColumnStyle;\r\nexport var errorColumnStyle;\r\nexport var pageHeaderStyle;\r\nexport var displayNameStyle;\r\nexport var displayTitleStyle;\r\nexport var buttonBlue;\r\nexport var buttonWhite;\r\nexport var buttonWhiteSmall;\r\nexport var buttonBlueSmall;\r\n\r\nexport var Search;\r\nexport var SearchIconWrapper;\r\nexport var SearchInput;\r\nexport var SmallButton;\r\nexport var TableWrapper;\r\n\r\nexport var renderHTML;\r\nexport var handleClick;\r\nexport var redirectCompanyCode;\r\nexport var redirectPlant;\r\n\r\nexport var CircularProgressIndicator;\r\n\r\nexport var getDebugFlag;\r\nexport var writeDebugLine;\r\n\r\nexport default function windowopen(url, target, features) {\r\n var userinfo = getUserInfo();\r\n if (userinfo.apiurl.indexOf(\"localhost\") != -1) {\r\n url = url.replace(\"..\", \"https://localhost:44306\");\r\n }\r\n\r\n \r\n if (url.indexOf(\"&\") > -1 || url.indexOf(\"?\") > -1) {\r\n url += \"&NewUI=TRUE\";\r\n //} else if (url.substring(url.length - 1) == \"/\") {\r\n // url = url.substring(0, url.length - 1)\r\n // url += \"?NewUI=TRUE\";\r\n } else {\r\n url += \"?NewUI=TRUE\";\r\n }\r\n window.open(url, target, features);\r\n}","module.exports = \"data:image/png;base64,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\"","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport Helmet from 'react-helmet';\r\n\r\nimport {\r\n CardContent,\r\n Grid,\r\n Card as MuiCard,\r\n Divider as MuiDivider,\r\n Typography\r\n} from \"@material-ui/core\";\r\n\r\nimport { spacing } from \"@material-ui/system\";\r\n\r\nimport * as Icon from \"@material-ui/icons\";\r\n\r\nimport {\r\n pageHeaderStyle,\r\n} from \"../../components/Helper\";\r\n\r\nconst Card = styled(MuiCard)(spacing);\r\n\r\nconst Divider = styled(MuiDivider)(spacing);\r\n\r\nfunction EmptyCard() {\r\n return (\r\n \r\n \r\n \r\n You do not have access to this page.\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction Blank() {\r\n return (\r\n \r\n \r\n \r\n Access Denied.\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Blank;\r\n","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAA1CAMAAACA7r40AAAA/FBMVEWyIjNPN2Y8O249PG8+PW8+PXA/PnBBQHFCQXNDQnNFRHVHR3dIR3dJSHhLSnlMS3pOTXtOTXxPTnxRUH1RUX5SUX5TUn9WVYFYV4JYV4NaWYReXohgX4lhYYpiYYplZIxra5FvbpRwb5VycZZycpZ0c5h7e518fJ6CgqKDgqOGYoCIh6aIiKeJiaeUk6+VlbGXlrKYl7Kiobqiorqjo7ukpLurqsCsq8GyIjS0tMe1tMi2tci4uMq6usy7u8zExNPFxdTGxdTGxtXHYG3Hx9XPdYDXi5Teoajg3+jg4Ojltbvn5u3n5+3r6/Dty8/w8PTx8fX09Pf19fj///+ShAP7AAAAAnRSTlPQ9qN1Xw4AAAG4SURBVFjD7ZVbU9NgFEXjCj1Ik1ZSQsutFmuo1BZBuYgS5SYiIKic//9ffMgMA/0yQzunk4dO11vWy575cvZs78WQeBaAOgBBAA8frjs04CEf9Q0QX/2KgbbuCHnOFsK2hgC/bwAq+gHynDEkKJVpZk/TpFwKqNVcx50BD4BEDwTks74FYtV40IEayEJe/e0B9P9UAU6OXWcO2UAQlpcRhA0QcZ0xRL5r8viRvgl57tyAB500wof9PfCJ0g6+7zrrdQH0fAC/B8DrpuvGEJLoiYCcPn2kR84eMkvUbSMl2t2IWehuuo5rAx6yksZAZatfARbTFSHP2a7LP9JVoKxaBlb1i0+eM/aktTZPCOvrEDK/1mLupevG0PjWbUdA3t22gIWjrwuDDi4MZCE1/QSwqxEwozoz6OzXVacaNggCGmGVOjQarpug0bo0MPRo2a/rYaCSnNFKxjVa932ArX9VgB9nrjOHJAjC0hKCkGSjNej4aWDo0TJeVyeNIBsosoHKc2MYrecxhbwfEtM/0QKYoJDLAvAOC2CCQi4KYNqT0UKuC2Dak9FCzgtg2pPRQu4KYNqT0UKK4D/1FIf2XdvrFwAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABJCAMAAAD8DnOOAAAAPFBMVEXvKy31hYf6t7j95ubUx9EiQnk1UIQAKGgXO3UYPHbI0d7R2OTvKy309vj2i4z4qKn7xcX7z9D95+f////EjXBOAAAAB3RSTlPc6vL6+/7+PFzBagAAAH1JREFUWMPt2TkOgDAMAEGDuW/w//9KEwqEgsBFimj3A1PFthSReKWqVnWoUVUtxNcUbzOzsQ31ZmbL5AoEBAQEBAQEBCQnZI13PJB9dSX23h1xlhEyvzdcSDf7kzZBICAgH5AkL54p/AtJshm5VkBAQEBAQEBAQP4hKf4ZTwUaTjauUDpfAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAAyCAMAAACd646MAAABPlBMVEX/AAD/AQH/AwP/BQX/Bgb/Bwf/CQn/Cgr/Cwv/DAz/FBT/FRX/GRn/Gxv/ISH/JSX/LS3/Li7/Ly//MDD/MjL/Njb/Nzf/OTn/Pj7/Pz//QED/QUH/QkL/Q0P/SUn/Skr/UFD/UVH/VFT/Vlb/V1f/Xl7/X1//YGD/YWH/ZGT/a2v/bGz/bW3/bm7/b2//cHD/cXH/c3P/dnb/eHj/eXn/fX3/fn7/goL/hYX/h4f/iYn/ior/jY3/jo7/j4//kJD/kZH/k5P/lpb/nJz/nZ3/np7/n5//oaH/trb/ubn/urr/vLz/vb3/vr7/wMD/wcH/wsL/w8P/xMT/x8f/z8//0ND/3Nz/3d3/5eX/5+f/6Oj/6en/7Oz/7+//8PD/8fH/8vL/9PT/+Pj/+fn/+vr/+/v//Pz//f3//v7///9zKI3BAAABsElEQVRYw+2Y61MBURjGDyvkrnuRKEWiklIqRETpaqNVbtnI+f//gezsjF0jNp3LJ+fLvuc8z8xvZs87zzu7AIxacOIFJl9TCBYIz1OAJK/IQxoGY5M45ASAKGnIux6A2Q/CkIAg7ZGDxDMdWGYEiXmDnes4EUgWWCNWUROKGyKQ10G9RATCM3JZ80Xm4ufk8jyh7vLJZT9+SKguBIpcFsKlHsID+RSzhHH0YvFRLj9B2FpjmjLT/yERsydWqKUA8HZhXSWpqgbsbgGQqhViHvMxIuS+vz+A0CKpFgj3+5sHRAiv6x9cQLuk2uF5v9bzqBfvknXtQAtL5QZydyWUnUlkSEnZWUKGlJWdZUQIF9QqO7VBDglSdf7F6qyiva52UNkZaiNnV0Yz3jeTxRGQrGmczcTiSWFucbRricMV9a2dUSZfC+M8Sah/s6gTeCfjLTPsYO5wj1/HsMOBe8Z3DMMO4zdmyHPvRGdzh9P51eV8Ouy2CXPmBTOEzRUrYnV5Jj4rxRxL7CPoNErhS+soQgESOKQA8QUoQDZ3KUBc2xQgK14KkAUPBci6f/oDhyzkB0Pn56SPdTHDAAAAAElFTkSuQmCC\"","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nimport Helmet from 'react-helmet';\r\n\r\nimport { Button as MuiButton, Typography } from \"@material-ui/core\";\r\nimport { spacing } from \"@material-ui/system\";\r\n\r\nconst Button = styled(MuiButton)(spacing);\r\n\r\nconst Wrapper = styled.div`\r\n padding: ${props => props.theme.spacing(6)}px;\r\n text-align: center;\r\n background: transparent;\r\n\r\n ${props => props.theme.breakpoints.up(\"md\")} {\r\n padding: ${props => props.theme.spacing(10)}px;\r\n }\r\n`;\r\n\r\nfunction Page404() {\r\n return (\r\n \r\n \r\n \r\n 404\r\n \r\n \r\n Page not found.\r\n \r\n \r\n The page you are looking for might have been removed.\r\n \r\n\r\n \r\n Return to website\r\n \r\n \r\n );\r\n}\r\n\r\nexport default Page404;\r\n","module.exports = __webpack_public_path__ + \"static/media/24sevenoffice_masterplan_erp_logo.4c8be0e2.png\";","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport Helmet from 'react-helmet';\r\nimport '../MasterplanERP.css';\r\n\r\nimport {\r\n CardContent,\r\n Grid,\r\n Card as MuiCard,\r\n Divider as MuiDivider,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableRow,\r\n TablePagination,\r\n Paper as MuiPaper,\r\n LinearProgress\r\n} from \"@material-ui/core\";\r\n\r\nimport { spacing } from \"@material-ui/system\";\r\n\r\nimport windowopen, {\r\n getDefaultCompanyCodeID,\r\n getUserInfo,\r\n stableSort,\r\n getSorting,\r\n dataSearch,\r\n linkColumnStyle,\r\n errorColumnStyle,\r\n ViewSelect,\r\n NewButton,\r\n StatusPanel,\r\n EnhancedTableHead,\r\n renderHTML,\r\n TableWrapper,\r\n buttonBlue,\r\n PageHeader,\r\n getDefaultPlantID,\r\n getPageName\r\n} from \"../../components/Helper\";\r\n\r\nimport Blank from \"../pages/Blank\";\r\n\r\nconst Card = styled(MuiCard)(spacing);\r\n\r\nconst Divider = styled(MuiDivider)(spacing);\r\n\r\nconst Paper = styled(MuiPaper)(spacing);\r\n\r\nconst PageName = \"sales_salesorders\"; //getPageName(window.location.pathname);\r\n\r\nconst rows = [\r\n { id: \"account\", numeric: \"False\", disablePadding: \"False\", link: \"False\", visible: \"True\", label: \"Account\"},\r\n { id: \"customer\", numeric: \"False\", disablePadding: \"False\", link: \"False\", visible: \"True\", label: \"Customer\"},\r\n { id: \"salesorder\", numeric: \"False\", disablePadding: \"False\", link: \"True\", visible: \"True\", label: \"Sales Order\"},\r\n { id: \"ponumber\", numeric: \"False\", disablePadding: \"False\", link: \"False\", visible: \"True\", label: \"PO Number\"},\r\n { id: \"quantity\", numeric: \"False\", disablePadding: \"False\", link: \"False\", visible: \"True\", label: \"Quantity\"},\r\n { id: \"shipped\", numeric: \"False\", disablePadding: \"False\", link: \"False\", visible: \"True\", label: \"Shipped\"},\r\n { id: \"itemnumber\", numeric: \"False\", disablePadding: \"False\", link: \"False\", visible: \"True\", label: \"Item Number\"},\r\n { id: \"description\", numeric: \"False\", disablePadding: \"False\", link: \"False\", visible: \"True\", label: \"Description\"},\r\n { id: \"requesteddate\", numeric: \"False\", disablePadding: \"False\", link: \"False\", visible: \"True\", label: \"Requested Date\"},\r\n { id: \"promisedate\", numeric: \"False\", disablePadding: \"False\", link: \"False\", visible: \"True\", label: \"Promise Date\"},\r\n { id: \"status\", numeric: \"False\", disablePadding: \"False\", link: \"False\", visible: \"True\", label: \"Status\"},\r\n { id: \"enteredby\", numeric: \"False\", disablePadding: \"False\", link: \"False\", visible: \"True\", label: \"Entered By\"},\r\n { id: \"projectnumber\", numeric: \"False\", disablePadding: \"False\", link: \"False\", visible: \"True\", label: \"Project Number\"},\r\n { id: \"projectmanager\", numeric: \"False\", disablePadding: \"False\", link: \"False\", visible: \"True\", label: \"Project Manager\"}\r\n];\r\n\r\nclass MyOpenOrders extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n order: sessionStorage.getItem(PageName + '_order') || \"asc\",\r\n orderBy: sessionStorage.getItem(PageName + '_orderBy') || \"salesorder\",\r\n error: null,\r\n isLoaded: false,\r\n data: [],\r\n page: 0,\r\n rowsPerPage: Number(sessionStorage.getItem(PageName + '_rowsPerPage')) || 10,\r\n userinfo: getUserInfo(),\r\n companycodeID: Number(sessionStorage.getItem('default_companycode')) || getDefaultCompanyCodeID(),\r\n filter: sessionStorage.getItem(PageName + '_filter') || \"Open\",\r\n allowed: \"\",\r\n filterData: [],\r\n displaycolumns: rows,\r\n showSetup: false,\r\n is24SO: \"FALSE\",\r\n isPreview: false, //sessionStorage.getItem('salesorders_isPreview') === 'true' || false,\r\n enablesearch: true,\r\n searchFilter: sessionStorage.getItem(PageName + '_searchFilter') || \"_SearchFilterType_1\",\r\n plantID: Number(sessionStorage.getItem('default_plant')) || getDefaultPlantID(getDefaultCompanyCodeID()),\r\n showDetails: sessionStorage.getItem(PageName + '_showDetails') || \"\"\r\n };\r\n this.handleFilterChange = this.handleFilterChange.bind(this);\r\n this.handleSearch = this.handleSearch.bind(this);\r\n this.refreshClick = this.refreshClick.bind(this);\r\n this.handlePreviewClick = this.handlePreviewClick.bind(this);\r\n this.handleMenuChange = this.handleMenuChange.bind(this);\r\n }\r\n\r\n fetchData(param, filter, showDetails) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n //'Authorization': 'Bearer my-token'\r\n },\r\n body: JSON.stringify({\r\n \"CompanyCodeID\": param,\r\n \"PlantID\": this.state.plantID,\r\n \"ApiKey\": this.state.userinfo.apikey,\r\n \"Filter\": filter,\r\n \"PageName\": PageName,\r\n \"Screen\": \"salesorders\",\r\n \"ShowDetails\": showDetails == undefined ? this.state.showDetails : showDetails\r\n })\r\n };\r\n\r\n fetch(this.state.userinfo.apiurl + \"ScreenKPI\", requestOptions)\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n this.setState({\r\n companycodeID: param,\r\n filter: filter,\r\n isLoaded: true,\r\n data: result.orders,\r\n filterData: result.filters,\r\n page: 0,\r\n allowed: result.data ? (result.data[0].status ? 'false' : '') : (''),\r\n showSetup: result.showSetup ? result.showSetup : false,\r\n displaycolumns: result.columns ? result.columns : rows,\r\n is24SO: \"FALSE\",\r\n showDetails: result.showDetails ? result.showDetails : this.state.showDetails\r\n });\r\n },\r\n (error) => {\r\n this.setState({\r\n companycodeID: param,\r\n filter: filter,\r\n isLoaded: true,\r\n page: 0,\r\n error\r\n });\r\n }\r\n )\r\n }\r\n\r\n componentDidMount() {\r\n this.fetchData(this.state.companycodeID, this.state.filter);\r\n }\r\n\r\n handleRequestSort = (order, orderBy) => {\r\n this.setState({ order, orderBy });\r\n };\r\n\r\n handleChangePage = (event, page) => {\r\n this.setState({ page });\r\n };\r\n\r\n handleChangeRowsPerPage = event => {\r\n sessionStorage.setItem(PageName + '_rowsPerPage', event.target.value);\r\n this.setState({rowsPerPage: event.target.value, page: 0});\r\n };\r\n\r\n handleFilterChange(filter) {\r\n sessionStorage.setItem(PageName + '_filter', filter);\r\n this.setState({ isLoaded: false });\r\n this.fetchData(this.state.companycodeID, filter);\r\n }\r\n\r\n handleSearch(filter) {\r\n this.setState({ searchFilter: filter });\r\n }\r\n\r\n refreshClick() {\r\n this.setState({ isLoaded: false });\r\n this.fetchData(this.state.companycodeID, this.state.filter);\r\n }\r\n\r\n handlePreviewClick = () => {\r\n var value = !this.state.isPreview;\r\n sessionStorage.setItem(PageName + '_isPreview', value);\r\n this.setState({ isPreview: value });\r\n }\r\n\r\n handleMenuChange(menu, value) {\r\n if (menu == \"showDetails\") {\r\n sessionStorage.setItem(this.state.pageName + '_showDetails', value);\r\n this.setState({ showDetails: value, isLoaded: false });\r\n }\r\n this.fetchData(this.state.companycodeID, this.state.filter, value);\r\n }\r\n\r\n handleClick = (id, column) => {\r\n return (event) => {\r\n var myURL = '../frmSALES_DataEntry.aspx?OrderType=SALES%20ORDER&OrderID=' + id.toString().split(\" - \")[0] + \"&CompanyCodeID=\" + this.state.companycodeID;\r\n var target = '_blank';\r\n\r\n if (this.state.is24SO == \"TRUE\" || this.state.isPreview == true) {\r\n myURL = '../frmZSalesOrder.aspx?FromUI=TRUE&OrderType=SALES%20ORDER&OrderID=' + id.toString().split(\" - \")[0] + \"&CompanyCodeID=\" + this.state.companycodeID;\r\n target = '_self';\r\n }\r\n\r\n if (column.indexOf(\"_external\") != -1) {\r\n var target = '_blank';\r\n }\r\n\r\n var w = 1100;\r\n var h = 775;\r\n\r\n var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : window.screen.left;\r\n var dualScreenTop = window.screenTop != undefined ? window.screenTop : window.screen.top;\r\n\r\n var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : window.screen.width;\r\n var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : window.screen.height;\r\n\r\n var left = ((width / 2) - (w / 2)) + dualScreenLeft;\r\n var top = ((height / 2) - (h / 2)) + dualScreenTop;\r\n\r\n return (\r\n windowopen(myURL, target, 'toolbar=no,status=no,resizable=1,scrollbars=1,menubar=no,location=no,width=1100,height=775,left=' + left + ',top=' + top + ',modal=yes')\r\n );\r\n\r\n }\r\n }\r\n\r\n render() {\r\n let { order, orderBy, error, isLoaded, data, page, rowsPerPage, userinfo, filter, allowed, companycodeID, filterData, searchFilter, displaycolumns, is24SO, isPreview, plantID, showDetails } = this.state;\r\n\r\n if (!data) data = [];\r\n data = dataSearch(data, searchFilter);\r\n if (!filterData) filterData = [];\r\n\r\n if (data.length <= page * rowsPerPage) {\r\n page = 0;\r\n }\r\n\r\n if (is24SO == \"TRUE\") {\r\n isPreview = false;\r\n }\r\n\r\n let defaultShowDetailsValue = (showDetails == true || showDetails == \"true\") ? true : false;\r\n\r\n if (error) {\r\n return
Error: {error.message}
;\r\n } else if (!isLoaded) {\r\n return ;\r\n } else if (allowed == \"false\") {\r\n return ;\r\n } else {\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {is24SO == \"TRUE\" || isPreview == true ? : } \r\n \r\n \r\n \r\n \r\n \r\n {data.length > rowsPerPage ?\r\n () : null\r\n }\r\n \r\n \r\n \r\n \r\n {stableSort(dataSearch(data, searchFilter), getSorting(order, orderBy))\r\n .slice(page * rowsPerPage, (page * rowsPerPage + rowsPerPage) < 0 ? 1000 : (page * rowsPerPage + rowsPerPage))\r\n .map((item,index) => {\r\n return (\r\n \r\n {displaycolumns.map(\r\n (row, idx) => (\r\n \r\n {row.visible == \"True\" ?\r\n (\r\n {\r\n row.link == \"True\" ?\r\n ({renderHTML(item[row.id])}) : ({renderHTML(item[row.id])})\r\n } \r\n ) : null\r\n }\r\n \r\n )\r\n )}\r\n \r\n );\r\n })}\r\n\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default MyOpenOrders;\r\n","import { blue, green, grey, indigo, red, teal } from \"@material-ui/core/colors\";\r\n\r\nconst blueVariant = {\r\n name: \"Blue\",\r\n palette: {\r\n primary: {\r\n main: blue[800],\r\n contrastText: \"#FFF\"\r\n },\r\n secondary: {\r\n main: blue[600],\r\n contrastText: \"#FFF\"\r\n }\r\n },\r\n header: {\r\n color: grey[500],\r\n background: \"#FFF\",\r\n search: {\r\n color: grey[800]\r\n },\r\n indicator: {\r\n background: blue[600]\r\n }\r\n },\r\n sidebar: {\r\n color: \"#FFF\",\r\n background: blue[700],\r\n header: {\r\n color: \"#FFF\",\r\n background: blue[800],\r\n brand: {\r\n color: \"#FFFFFF\"\r\n }\r\n },\r\n footer: {\r\n color: \"#FFF\",\r\n background: blue[800],\r\n online: {\r\n background: \"#FFF\"\r\n }\r\n },\r\n category: {\r\n fontWeight: 400\r\n },\r\n badge: {\r\n color: \"#000\",\r\n background: \"#FFF\"\r\n }\r\n },\r\n body: {\r\n background: \"#F7F9FC\"\r\n }\r\n};\r\n\r\nconst greenVariant = {\r\n name: \"Green\",\r\n palette: {\r\n primary: {\r\n main: green[800],\r\n contrastText: \"#FFF\"\r\n },\r\n secondary: {\r\n main: green[500],\r\n contrastText: \"#FFF\"\r\n }\r\n },\r\n header: {\r\n color: grey[500],\r\n background: \"#FFF\",\r\n search: {\r\n color: grey[800]\r\n },\r\n indicator: {\r\n background: green[500]\r\n }\r\n },\r\n sidebar: {\r\n color: \"#FFF\",\r\n background: green[700],\r\n header: {\r\n color: \"#FFF\",\r\n background: green[800],\r\n brand: {\r\n color: \"#FFFFFF\"\r\n }\r\n },\r\n footer: {\r\n color: \"#FFF\",\r\n background: green[800],\r\n online: {\r\n background: \"#FFF\"\r\n }\r\n },\r\n category: {\r\n fontWeight: 400\r\n },\r\n badge: {\r\n color: \"#000\",\r\n background: \"#FFF\"\r\n }\r\n },\r\n body: {\r\n background: \"#F9F9FC\"\r\n }\r\n};\r\n\r\nconst indigoVariant = {\r\n name: \"Indigo\",\r\n palette: {\r\n primary: {\r\n main: indigo[600],\r\n contrastText: \"#FFF\"\r\n },\r\n secondary: {\r\n main: indigo[400],\r\n contrastText: \"#FFF\"\r\n }\r\n },\r\n header: {\r\n color: grey[500],\r\n background: \"#FFF\",\r\n search: {\r\n color: grey[800]\r\n },\r\n indicator: {\r\n background: indigo[500]\r\n }\r\n },\r\n sidebar: {\r\n color: \"#FFF\",\r\n background: indigo[600],\r\n header: {\r\n color: \"#FFF\",\r\n background: indigo[700],\r\n brand: {\r\n color: \"#FFFFFF\"\r\n }\r\n },\r\n footer: {\r\n color: \"#FFF\",\r\n background: indigo[700],\r\n online: {\r\n background: \"#FFF\"\r\n }\r\n },\r\n category: {\r\n fontWeight: 400\r\n },\r\n badge: {\r\n color: \"#000\",\r\n background: \"#FFF\"\r\n }\r\n },\r\n body: {\r\n background: \"#F9F9FC\"\r\n }\r\n};\r\n\r\nconst tealVariant = {\r\n name: \"Teal\",\r\n palette: {\r\n primary: {\r\n main: teal[800],\r\n contrastText: \"#FFF\"\r\n },\r\n secondary: {\r\n main: teal[600],\r\n contrastText: \"#FFF\"\r\n }\r\n },\r\n header: {\r\n color: grey[500],\r\n background: \"#FFF\",\r\n search: {\r\n color: grey[800]\r\n },\r\n indicator: {\r\n background: teal[600]\r\n }\r\n },\r\n sidebar: {\r\n color: \"#FFF\",\r\n background: teal[700],\r\n header: {\r\n color: \"#FFF\",\r\n background: teal[800],\r\n brand: {\r\n color: \"#FFFFFF\"\r\n }\r\n },\r\n footer: {\r\n color: \"#FFF\",\r\n background: teal[800],\r\n online: {\r\n background: \"#FFF\"\r\n }\r\n },\r\n category: {\r\n fontWeight: 400\r\n },\r\n badge: {\r\n color: \"#000\",\r\n background: \"#FFF\"\r\n }\r\n },\r\n body: {\r\n background: \"#F7F9FC\"\r\n }\r\n};\r\n\r\nconst lightVariant = {\r\n name: \"Light\",\r\n palette: {\r\n primary: {\r\n main: blue[800],\r\n contrastText: \"#FFF\"\r\n },\r\n secondary: {\r\n main: blue[600],\r\n contrastText: \"#FFF\"\r\n }\r\n },\r\n header: {\r\n color: grey[200],\r\n background: blue[800],\r\n search: {\r\n color: grey[100]\r\n },\r\n indicator: {\r\n background: red[700]\r\n }\r\n },\r\n sidebar: {\r\n color: grey[900],\r\n background: \"#FFF\",\r\n header: {\r\n color: \"#FFF\",\r\n background: blue[800],\r\n brand: {\r\n color: \"#FFFFFF\"\r\n }\r\n },\r\n footer: {\r\n color: grey[900],\r\n background: grey[100],\r\n online: {\r\n background: green[500]\r\n }\r\n },\r\n category: {\r\n fontWeight: 600\r\n },\r\n badge: {\r\n color: \"#FFF\",\r\n background: green[600]\r\n }\r\n },\r\n body: {\r\n background: \"#F7F9FC\"\r\n }\r\n};\r\n\r\nconst darkVariant = {\r\n name: \"Dark\",\r\n palette: {\r\n primary: {\r\n main: blue[700],\r\n contrastText: \"#FFF\"\r\n },\r\n secondary: {\r\n main: blue[500],\r\n contrastText: \"#FFF\"\r\n }\r\n },\r\n header: {\r\n color: grey[500],\r\n background: \"#FFFFFF\",\r\n search: {\r\n color: grey[800]\r\n },\r\n indicator: {\r\n background: blue[600]\r\n }\r\n },\r\n sidebar: {\r\n color: grey[200],\r\n background: \"#1B2430\",\r\n header: {\r\n color: grey[200],\r\n background: \"#232f3e\",\r\n brand: {\r\n color: blue[500]\r\n }\r\n },\r\n footer: {\r\n color: grey[200],\r\n background: \"#232f3e\",\r\n online: {\r\n background: green[500]\r\n }\r\n },\r\n category: {\r\n fontWeight: 400\r\n },\r\n badge: {\r\n color: \"#FFF\",\r\n background: blue[500]\r\n }\r\n },\r\n body: {\r\n background: \"#F7F9FC\"\r\n }\r\n};\r\n\r\nconst variants = [\r\n darkVariant,\r\n lightVariant,\r\n blueVariant,\r\n greenVariant,\r\n indigoVariant,\r\n tealVariant\r\n];\r\n\r\nexport default variants;\r\n","const typography = {\r\n useNextVariants: true,\r\n fontFamily: [\r\n \"Nunito\",\r\n \"-apple-system\",\r\n \"BlinkMacSystemFont\",\r\n '\"Segoe UI\"',\r\n \"Roboto\",\r\n '\"Helvetica Neue\"',\r\n \"Arial\",\r\n \"sans-serif\",\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"'\r\n ].join(\",\"),\r\n fontSize: 14,\r\n fontWeightLight: 300,\r\n fontWeightRegular: 400,\r\n fontWeightMedium: 600,\r\n h1: {\r\n fontSize: \"2rem\",\r\n fontWeight: 600,\r\n lineHeight: 1.2\r\n },\r\n h2: {\r\n fontSize: \"1.75rem\",\r\n fontWeight: 600,\r\n lineHeight: 1.2\r\n },\r\n h3: {\r\n fontSize: \"1.5rem\",\r\n fontWeight: 600,\r\n lineHeight: 1.2\r\n },\r\n h4: {\r\n fontSize: \"1.25rem\",\r\n fontWeight: 600,\r\n lineHeight: 1.2\r\n },\r\n h5: {\r\n fontSize: \"1.125rem\",\r\n fontWeight: 600,\r\n lineHeight: 1.2\r\n },\r\n h6: {\r\n fontSize: \"1.0625rem\",\r\n fontWeight: 600,\r\n lineHeight: 1.2\r\n },\r\n body1: {\r\n fontSize: 14\r\n },\r\n button: {\r\n textTransform: \"none\"\r\n },\r\nsidebar: {\r\n fontFamily: [\r\n \"Roboto\",\r\n '\"Helvetica Neue\"',\r\n \"Arial\",\r\n \"sans-serif\",\r\n '\"Apple Color Emoji\"',\r\n '\"Segoe UI Emoji\"',\r\n '\"Segoe UI Symbol\"'\r\n ].join(\",\"),\r\n fontSize: 16\r\n}\r\n};\r\n\r\nexport default typography;\r\n","const overrides = {\r\n MuiCardHeader: {\r\n action: {\r\n marginTop: \"-4px\",\r\n marginRight: \"-4px\"\r\n }\r\n },\r\n MuiPickersDay: {\r\n day: {\r\n fontWeight: \"300\"\r\n }\r\n },\r\n MuiPickersYear: {\r\n root: {\r\n height: \"64px\"\r\n }\r\n },\r\n MuiPickersCalendar: {\r\n transitionContainer: {\r\n marginTop: \"6px\"\r\n }\r\n },\r\n MuiPickersCalendarHeader: {\r\n iconButton: {\r\n backgroundColor: \"transparent\",\r\n \"& > *\": {\r\n backgroundColor: \"transparent\"\r\n }\r\n },\r\n switchHeader: {\r\n marginTop: \"2px\",\r\n marginBottom: \"4px\"\r\n }\r\n },\r\n MuiPickersClock: {\r\n container: {\r\n margin: `32px 0 4px`\r\n }\r\n },\r\n MuiPickersClockNumber: {\r\n clockNumber: {\r\n left: `calc(50% - 16px)`,\r\n width: \"32px\",\r\n height: \"32px\"\r\n }\r\n },\r\n MuiPickerDTHeader: {\r\n dateHeader: {\r\n \"& h4\": {\r\n fontSize: \"2.125rem\",\r\n fontWeight: 400\r\n }\r\n },\r\n timeHeader: {\r\n \"& h3\": {\r\n fontSize: \"3rem\",\r\n fontWeight: 400\r\n }\r\n }\r\n },\r\n MuiPickersTimePicker: {\r\n hourMinuteLabel: {\r\n \"& h2\": {\r\n fontSize: \"3.75rem\",\r\n fontWeight: 300\r\n }\r\n }\r\n },\r\n MuiPickersToolbar: {\r\n toolbar: {\r\n \"& h4\": {\r\n fontSize: \"2.125rem\",\r\n fontWeight: 400\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport default overrides;\r\n","const breakpoints = {\r\n values: {\r\n xs: 0,\r\n sm: 600,\r\n md: 960,\r\n lg: 1280,\r\n xl: 1440\r\n }\r\n};\r\n\r\nexport default breakpoints;\r\n","const props = {\r\n MuiButtonBase: {\r\n disableRipple: true\r\n },\r\n MuiCardHeader: {\r\n titleTypographyProps: { variant: \"h6\" }\r\n }\r\n};\r\n\r\nexport default props;\r\n","function createShadow(px) {\r\n return `0 0 ${px}px 0 rgba(53,64,82,.05)`;\r\n}\r\n\r\nconst shadows = [\r\n \"none\",\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14),\r\n createShadow(14)\r\n];\r\n\r\nexport default shadows;\r\n","import { createMuiTheme } from \"@material-ui/core/styles\";\r\n\r\nimport variants from \"./variants\";\r\nimport typography from \"./typography\";\r\nimport overrides from \"./overrides\";\r\nimport breakpoints from \"./breakpoints\";\r\nimport props from \"./props\";\r\nimport shadows from \"./shadows\";\r\n\r\nconst theme = variant => {\r\n return createMuiTheme(\r\n {\r\n spacing: 4,\r\n breakpoints: breakpoints,\r\n overrides: overrides,\r\n props: props,\r\n typography: typography,\r\n shadows: shadows,\r\n body: variant.body,\r\n header: variant.header,\r\n palette: variant.palette,\r\n sidebar: variant.sidebar\r\n },\r\n variant.name\r\n );\r\n};\r\n\r\nconst themes = variants.map(variant => theme(variant));\r\n\r\nexport default themes;\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nimport { CircularProgress } from \"@material-ui/core\";\r\n\r\nconst Root = styled.div`\r\n justify-content: center;\r\n align-items: center;\r\n display: flex;\r\n min-height: 100%;\r\n`;\r\n\r\nfunction Loader() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Loader;\r\n","import React from \"react\";\r\n\r\nimport Loader from \"./Loader\";\r\n\r\nconst sleep = m => new Promise(r => setTimeout(r, m));\r\n\r\nexport default function asyncComponent(importComponent) {\r\n class AsyncComponent extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n component: null\r\n };\r\n }\r\n\r\n async componentDidMount() {\r\n await sleep(150);\r\n\r\n const { default: component } = await importComponent();\r\n\r\n this.setState({\r\n component: component\r\n });\r\n }\r\n\r\n render() {\r\n const C = this.state.component;\r\n\r\n return C ? : \r\n }\r\n }\r\n\r\n return AsyncComponent;\r\n}\r\n","import React from \"react\";\r\nimport async from \"../components/Async\";\r\nimport { Users } from \"react-feather\";\r\nimport '../pages/MasterplanERP.css';\r\nimport {\r\n getDefaultCompanyCodeID,\r\n} from \"../components/Helper\";\r\n\r\nconst Default = async(() => import(\"../pages/dashboards/Default/index\"));\r\n\r\n// Sales components\r\nconst salesorders = async(() => import(\"../pages/sales/salesorders\"));\r\nconst customers = async(() => import(\"../pages/sales/customers\"));\r\nconst quotes = async(() => import(\"../pages/sales/quotes\"));\r\nconst customerreturns = async(() => import(\"../pages/sales/customerreturns\"));\r\nconst deliveryblocks = async(() => import(\"../pages/sales/deliveryblocks\"));\r\n\r\n// Purchasing components\r\nconst purchaseorders = async(() => import(\"../pages/purchasing/purchaseorders\"));\r\nconst suppliers = async(() => import(\"../pages/purchasing/suppliers\"));\r\nconst rfqs = async(() => import(\"../pages/purchasing/requestforquotes\"));\r\nconst supplierreturns = async(() => import(\"../pages/purchasing/supplierreturns\"));\r\n\r\n// Items components\r\nconst exceptions = async(() => import(\"../pages/mrp/exceptions\"));\r\nconst itemmaster = async(() => import(\"../pages/items/itemmaster\"));\r\nconst transferorders = async(() => import(\"../pages/items/transferorders\"));\r\n\r\n// Employees components\r\nconst employees = async(() => import(\"../pages/employees/employees\"));\r\nconst timecards = async(() => import(\"../pages/employees/timecards\"));\r\nconst timeallocations = async(() => import(\"../pages/employees/timeallocations\"));\r\nconst holidays = async(() => import(\"../pages/employees/holidays\"));\r\n\r\n// Manufacturing components\r\nconst productionorders = async(() => import(\"../pages/manufacturing/productionorders\"));\r\nconst estimating = async(() => import(\"../pages/manufacturing/estimating\"));\r\nconst workcenters = async(() => import(\"../pages/manufacturing/workcenters\"));\r\nconst batches = async(() => import(\"../pages/manufacturing/batches\"));\r\n\r\n// Receivables components\r\nconst ARaging = async(() => import(\"../pages/receivables/aging\"));\r\n\r\n// Payables components\r\nconst APaging = async(() => import(\"../pages/payables/aging\"));\r\n\r\n// Quality/Maintenance components\r\nconst correctiveactions = async(() => import(\"../pages/quality/correctiveactions\"));\r\nconst deviationrequests = async(() => import(\"../pages/quality/deviationrequests\"));\r\nconst inspectionholds = async(() => import(\"../pages/quality/inspectionholds\"));\r\nconst equipment = async(() => import(\"../pages/quality/equipment\"));\r\nconst maintenancerequests = async(() => import(\"../pages/quality/maintenancerequests\"));\r\nconst maintenanceorders = async(() => import(\"../pages/quality/maintenanceorders\"));\r\nconst nonconformance = async(() => import(\"../pages/quality/nonconformance\"));\r\nconst calibrationtools = async(() => import(\"../pages/quality/calibrationtools\"));\r\n\r\n// MRP components\r\nconst shortage = async(() => import(\"../pages/mrp/shortage\"));\r\nconst recommendations = async(() => import(\"../pages/mrp/recommendations\"));\r\nconst messages = async(() => import(\"../pages/mrp/messages\"));\r\nconst supplierschedule = async(() => import(\"../pages/mrp/supplierschedule\"));\r\n\r\n// Financials components\r\nconst accountingperiods = async(() => import(\"../pages/financials/accountingperiods\"));\r\nconst budgets = async(() => import(\"../pages/financials/budgets\"));\r\nconst chartofaccounts = async(() => import(\"../pages/financials/chartofaccounts\"));\r\nconst generalledger = async(() => import(\"../pages/financials/generalledger\"));\r\nconst cashflowforecasts = async(() => import(\"../pages/financials/cashflowforecasts\"));\r\n\r\n// Auth components\r\nconst SignIn = async(() => import(\"../pages/auth/SignIn\"));\r\nconst SignUp = async(() => import(\"../pages/auth/SignUp\"));\r\nconst ResetPassword = async(() => import(\"../pages/auth/ResetPassword\"));\r\nconst Page404 = async(() => import(\"../pages/auth/Page404\"));\r\nconst Page500 = async(() => import(\"../pages/auth/Page500\"));\r\n\r\n// CRM components\r\nconst leads = async(() => import(\"../pages/crm/leads\"));\r\nconst campaigns = async(() => import(\"../pages/crm/campaigns\"));\r\nconst opportunities = async(() => import(\"../pages/crm/opportunities\"));\r\nconst tasks = async(() => import(\"../pages/crm/tasks\"));\r\n\r\n// System components\r\nconst blank = async(() => import(\"../pages/pages/Blank\"));\r\nconst search = async(() => import(\"../pages/pages/search\"));\r\n\r\nconst dashboardsRoutes = {\r\n id: \"Dashboard\",\r\n path: \"/\",\r\n enabled: false,\r\n component: Default,\r\n containsHome: true,\r\n tooltip: \"Dashboard\",\r\n subcategory: \"Dashboard\",\r\n is24SO: false,\r\n children: null\r\n};\r\n\r\nconst authRoutes = {\r\n id: \"Auth\",\r\n path: \"/auth\",\r\n icon: ,\r\n enabled: false,\r\n tooltip: \"Authentication\",\r\n subcategory: \"Auth\",\r\n is24SO: false,\r\n children: [\r\n {\r\n path: \"/auth/sign-in\",\r\n name: \"Sign In\",\r\n component: SignIn,\r\n enabled: true\r\n },\r\n {\r\n path: \"/auth/sign-up\",\r\n name: \"Sign Up\",\r\n component: SignUp,\r\n enabled: true\r\n },\r\n {\r\n path: \"/auth/reset-password\",\r\n name: \"Reset Password\",\r\n component: ResetPassword,\r\n enabled: true\r\n },\r\n {\r\n path: \"/auth/404\",\r\n name: \"404 Page\",\r\n component: Page404,\r\n enabled: true\r\n },\r\n {\r\n path: \"/auth/500\",\r\n name: \"500 Page\",\r\n component: Page500,\r\n enabled: true\r\n }\r\n ]\r\n};\r\n\r\nconst salesRoutes = {\r\n id: \"Sales\",\r\n path: \"/sales\",\r\n description: \"\",\r\n enabled: false,\r\n tooltip: \"Sales\",\r\n subcategory: \"Sales\",\r\n is24SO: false,\r\n children: [\r\n {\r\n path: \"/sales_transactions\",\r\n name: \"Transactions\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Quotes\",\r\n component: blank,\r\n tooltip: \"Quotes\",\r\n externalpath: \"../frmSALES_DataEntry.aspx?OrderType=QUOTE\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Sales Orders\",\r\n component: blank,\r\n tooltip: \"Sales Orders\",\r\n externalpath: \"../frmSALES_DataEntry.aspx?OrderType=SALES%20ORDER\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Shipping\",\r\n component: blank,\r\n tooltip: \"Shipping\",\r\n externalpath: \"../frmSALES_Shipping.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Customer Returns\",\r\n component: blank,\r\n tooltip: \"Customer Returns\",\r\n externalpath: \"../frmSALES_CustomerReturns.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Search History\",\r\n component: blank,\r\n tooltip: \"Search History\",\r\n externalpath: \"../frmSALES_Search.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/sales_lists\",\r\n name: \"Lists\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"/sales_customers\",\r\n name: \"Customers\",\r\n component: customers,\r\n tooltip: \"Customers\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/sales_deliveryblocks\",\r\n name: \"Delivery Blocks\",\r\n component: deliveryblocks,\r\n tooltip: \"Delivery Blocks\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/sales_quotes\",\r\n name: \"Open Quotes\",\r\n component: quotes,\r\n tooltip: \"Open Quotes\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/sales_salesorders\",\r\n name: \"Open Sales Orders\",\r\n component: salesorders,\r\n tooltip: \"Open Sales Orders\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/sales_customerreturns\",\r\n name: \"Open Customer Returns\",\r\n component: customerreturns,\r\n tooltip: \"Open Customer Returns\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Report Center\",\r\n component: blank,\r\n tooltip: \"Reports\",\r\n categoryid: 1,\r\n enabled: true\r\n }\r\n ]\r\n};\r\n\r\nconst crmRoutes = {\r\n id: \"CRM\",\r\n path: \"/crm\",\r\n description: \"\",\r\n enabled: false,\r\n tooltip: \"CRM\",\r\n subcategory: \"CRM\",\r\n is24SO: false,\r\n children: [\r\n {\r\n path: \"/crm_transactions\",\r\n name: \"Transactions\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Leads\",\r\n component: blank,\r\n tooltip: \"Leads\",\r\n externalpath: \"../frmCRM_AddLead.aspx?LeadID=-1&TimeStamp=\" + new Date().getTime(),\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Campaign\",\r\n component: blank,\r\n tooltip: \"Campaign\",\r\n externalpath: \"../frmSALES_Marketing.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Opportunities\",\r\n component: blank,\r\n tooltip: \"Opportunities\",\r\n externalpath: \"../frmCRM_AddOpportunity.aspx?OpportunityID=-1&TimeStamp=\" + new Date().getTime(),\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Tasks\",\r\n component: blank,\r\n tooltip: \"Tasks\",\r\n externalpath: \"../frmCRM_AddTask.aspx?ContactID=-1&TimeStamp=\" + new Date().getTime(),\r\n enabled: true\r\n },\r\n {\r\n path: \"/crm_lists\",\r\n name: \"Lists\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"/crm_leads\",\r\n name: \"Leads\",\r\n component: leads,\r\n tooltip: \"Leads\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/crm_campaigns\",\r\n name: \"Open Campaigns\",\r\n component: campaigns,\r\n tooltip: \"Open Campaigns\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/crm_opportunities\",\r\n name: \"Open Opportunities\",\r\n component: opportunities,\r\n tooltip: \"Open Opportunities\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/crm_tasks\",\r\n name: \"Open Tasks\",\r\n component: tasks,\r\n tooltip: \"Open Tasks\",\r\n enabled: true\r\n }\r\n ]\r\n};\r\n\r\nconst purchasingRoutes = {\r\n id: \"Purchasing\",\r\n path: \"/purchasing\",\r\n description: \"\",\r\n enabled: false,\r\n tooltip: \"Purchasing\",\r\n subcategory: \"Purchasing\",\r\n is24SO: false,\r\n children: [\r\n {\r\n path: \"/purchasing_transactions\",\r\n name: \"Transactions\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"RFQ\",\r\n component: blank,\r\n tooltip: \"RFQ\",\r\n externalpath: \"../frmPURCHASING_DataEntry.aspx?OrderType=RFQ\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Purchase Orders\",\r\n component: blank,\r\n tooltip: \"Purchase Orders\",\r\n externalpath: \"../frmPURCHASING_DataEntry.aspx?OrderType=PURCHASE%20ORDER\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Goods Receipt\",\r\n component: blank,\r\n tooltip: \"Goods Receipt\",\r\n externalpath: \"../frmITEMS_GoodsReceipt.aspx?Type=Goods%20Receipt\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Supplier Return\",\r\n component: blank,\r\n tooltip: \"Supplier Return\",\r\n externalpath: \"../frmPURCHASING_SupplierReturns.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Search History\",\r\n component: blank,\r\n tooltip: \"Search History\",\r\n externalpath: \"../frmPURCHASING_Search.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/purchasing_lists\",\r\n name: \"Lists\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"/purchasing_suppliers\",\r\n name: \"Suppliers\",\r\n component: suppliers,\r\n tooltip: \"Suppliers\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/purchasing_requestforquotes\",\r\n name: \"Open RFQs\",\r\n component: rfqs,\r\n tooltip: \"Open RFQs\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/purchasing_purchaseorders\",\r\n name: \"Open Purchase Orders\",\r\n component: purchaseorders,\r\n tooltip: \"Open Purchase Orders\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/purchasing_supplierreturns\",\r\n name: \"Open Supplier Returns\",\r\n component: supplierreturns,\r\n tooltip: \"Open Supplier Returns\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Report Center\",\r\n component: blank,\r\n tooltip: \"Report Center\",\r\n categoryid: 2,\r\n enabled: true\r\n }\r\n ]\r\n};\r\n\r\nconst manufacturingRoutes = {\r\n id: \"Manufacturing\",\r\n path: \"/manufacturing\",\r\n description: \"\",\r\n enabled: false,\r\n tooltip: \"Manufacturing\",\r\n subcategory: \"Manufacturing\",\r\n is24SO: false,\r\n children: [\r\n {\r\n path: \"/manufacturing_transactions\",\r\n name: \"Transactions\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Estimating\",\r\n component: blank,\r\n tooltip: \"Estimating\",\r\n externalpath: \"../frmMFG_Estimating.aspx?OrderType=ESTIMATING&TransactionID=1\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Production Orders\",\r\n component: blank,\r\n tooltip: \"Production Orders\",\r\n externalpath: \"../frmMFG_ProductionOrders.aspx?OrderType=PRODUCTION%20ORDER\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Convert Sales Orders\",\r\n component: blank,\r\n tooltip: \"Convert Sales Orders\",\r\n externalpath: \"../frmSALES_ViewPendingSalesOrderReleases.aspx?OrderType=SALES ORDER&OrderID=-1\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Production Schedule\",\r\n component: blank,\r\n tooltip: \"Production Schedule\",\r\n externalpath: \"../frmMFG_ProductionScheduling.aspx\",\r\n fullscreen: true,\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Search History\",\r\n component: blank,\r\n tooltip: \"Search History\",\r\n externalpath: \"../frmMFG_Search.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Batching\",\r\n component: blank,\r\n tooltip: \"Batching\",\r\n externalpath: \"../frmMFG_Batching.aspx\",\r\n enabled: true,\r\n rcCode: \"1044_CASIW|59_CASIW\"\r\n },\r\n {\r\n path: \"/manufacturing_Lists\",\r\n name: \"Lists\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"/manufacturing_workcenters\",\r\n name: \"Work Centers\",\r\n component: workcenters,\r\n tooltip: \"Work Centers\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/manufacturing_productionorders\",\r\n name: \"Open Production Orders\",\r\n component: productionorders,\r\n tooltip: \"Open Production Orders\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/manufacturing_estimates\",\r\n name: \"Open Estimates\",\r\n component: estimating,\r\n tooltip: \"Open Estimates\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Report Center\",\r\n component: blank,\r\n tooltip: \"Report Center\",\r\n categoryid: 3,\r\n enabled: true\r\n },\r\n {\r\n path: \"/manufacturing_batches\",\r\n name: \"Batches\",\r\n component: batches,\r\n tooltip: \"Open Batches\",\r\n enabled: true,\r\n rcCode: \"1044_CASIW|59_CASIW\"\r\n }\r\n ]\r\n};\r\n\r\nconst itemRoutes = {\r\n id: \"Items\",\r\n path: \"/items\",\r\n description: \"\",\r\n enabled: false,\r\n tooltip: \"Items\",\r\n subcategory: \"Items\",\r\n is24SO: false,\r\n children: [\r\n {\r\n path: \"/items_Transactions\",\r\n name: \"Transactions\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Item Master\",\r\n component: blank,\r\n tooltip: \"Item Master\",\r\n externalpath: \"../frmITEMS_ItemMaster.aspx?TimeStamp=\" + Date.now(),\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Cycle Count\",\r\n component: blank,\r\n tooltip: \"Cycle Count\",\r\n externalpath: \"../frmITEMS_CycleCount.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Transfer Order\",\r\n component: blank,\r\n tooltip: \"Transfer Order\",\r\n externalpath: \"../frmITEMS_TransferOrder.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Traceability\",\r\n component: blank,\r\n tooltip: \"Traceability\",\r\n externalpath: \"../frmITEMS_Traceability.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Item Inquiry\",\r\n component: blank,\r\n tooltip: \"Item Inquiry\",\r\n externalpath: \"../frmITEMS_ItemInquiry.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/items_Lists\",\r\n name: \"Lists\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"/items_itemlist\",\r\n name: \"Item List\",\r\n component: itemmaster,\r\n tooltip: \"Item List\",\r\n enabled: true,\r\n is24SO: false\r\n },\r\n {\r\n path: \"/items_exceptions\",\r\n name: \"Exceptions\",\r\n component: exceptions,\r\n tooltip: \"Exceptions\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/items_transferorders\",\r\n name: \"Open Transfer Orders\",\r\n component: transferorders,\r\n tooltip: \"Open Transfer Orders\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Report Center\",\r\n component: blank,\r\n tooltip: \"Report Center\",\r\n categoryid: 4,\r\n enabled: true\r\n }\r\n ]\r\n};\r\n\r\nconst mrpRoutes = {\r\n id: \"MRP\",\r\n path: \"/mrp\",\r\n description: \"\",\r\n enabled: false,\r\n tooltip: \"MRP\",\r\n subcategory: \"MRP\",\r\n is24SO: false,\r\n children: [\r\n {\r\n path: \"/mrp_Transactions\",\r\n name: \"Transactions\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Forecast\",\r\n component: blank,\r\n tooltip: \"Forecast\",\r\n externalpath: \"../frmMRP_Forecast.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Pegged Shortage\",\r\n component: blank,\r\n tooltip: \"Pegged Shortage\",\r\n externalpath: \"../frmSYSTEM_AccessDenied.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/mrp_supplierschedule\",\r\n name: \"Supplier Schedule\",\r\n component: supplierschedule,\r\n tooltip: \"Supplier Schedule\",\r\n //externalpath: \"../frmSYSTEM_AccessDenied.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Workbench\",\r\n component: blank,\r\n tooltip: \"Workbench\",\r\n externalpath: \"../frmMRP_Workbench.aspx\",\r\n fullscreen: true,\r\n enabled: true\r\n },\r\n {\r\n path: \"/mrp_Lists\",\r\n name: \"Lists\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"/mrp_messages\",\r\n name: \"Messages\",\r\n component: messages,\r\n tooltip: \"MRP Messages\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/mrp_recommendations\",\r\n name: \"Recommendations\",\r\n component: recommendations,\r\n tooltip: \"MRP Recommendations\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/mrp_shortage\",\r\n name: \"Shortage\",\r\n component: shortage,\r\n tooltip: \"MRP Shortage\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Report Center\",\r\n component: blank,\r\n tooltip: \"Report Center\",\r\n categoryid: 11,\r\n enabled: true\r\n }\r\n ]\r\n};\r\n\r\nconst employeeRoutes = {\r\n id: \"Employees\",\r\n path: \"/employees\",\r\n description: \"\",\r\n enabled: false,\r\n tooltip: \"Employees\",\r\n subcategory: \"Employees\",\r\n is24SO: false,\r\n children: [\r\n {\r\n path: \"/employees_Transactions\",\r\n name: \"Transactions\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Employee\",\r\n component: blank,\r\n tooltip: \"Employee\",\r\n externalpath: \"../frmHR_Employees.aspx?EmployeeID=-1&TimeStamp=\" + Date.now(),\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Organizational Chart\",\r\n component: blank,\r\n tooltip: \"Organizational Chart\",\r\n externalpath: \"../frmHR_OrganizationalChart.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/employees_List\",\r\n name: \"List\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"/employees_employees\",\r\n name: \"Employee List\",\r\n component: employees,\r\n tooltip: \"Employee List\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/employees_holidays\",\r\n name: \"Holidays\",\r\n component: holidays,\r\n tooltip: \"Holidays\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/employees_timecards\",\r\n name: \"Time Cards\",\r\n component: timecards,\r\n tooltip: \"Time Cards\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/employees_timeallocations\",\r\n name: \"Time Allocations\",\r\n component: timeallocations,\r\n tooltip: \"Time Allocations\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Report Center\",\r\n component: blank,\r\n tooltip: \"Report Center\",\r\n categoryid: 5,\r\n enabled: true\r\n }\r\n ]\r\n};\r\n\r\nconst qualityRoutes = {\r\n id: \"Quality\",\r\n path: \"/quality\",\r\n description: \"\",\r\n enabled: false,\r\n tooltip: \"Quality\",\r\n subcategory: \"Quality\",\r\n is24SO: false,\r\n children: [\r\n {\r\n path: \"/quality_Transactions\",\r\n name: \"Transactions\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Corrective Action\",\r\n component: blank,\r\n tooltip: \"Corrective Action\",\r\n externalpath: \"../frmQC_CAPA.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Deviation Request\",\r\n component: blank,\r\n tooltip: \"Deviation Request\",\r\n externalpath: \"../frmQC_DeviationRequest.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Feedback\",\r\n component: blank,\r\n tooltip: \"Feedback\",\r\n externalpath: \"../frmQA_AddFeedback.aspx?FeedbackID=-1&TimeStamp=\" + Date.now(),\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Non-Conformance\",\r\n component: blank,\r\n tooltip: \"Non-Conformance\",\r\n externalpath: \"../frmQC_NonConformanceReport.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Tool Calibration\",\r\n component: blank,\r\n tooltip: \"Tool Calibration\",\r\n externalpath: \"../frmQC_CalibrateTool.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/quality_Lists\",\r\n name: \"Lists\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"/quality_calibrationtools\",\r\n name: \"Calibration Tools\",\r\n component: calibrationtools,\r\n tooltip: \"Calibration Tools\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Quality Documents\",\r\n component: blank,\r\n tooltip: \"Quality Documents\",\r\n externalpath: \"../frmQC_ISODocuments.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/quality_inspectionholds\",\r\n name: \"Inspection Holds\",\r\n component: inspectionholds,\r\n tooltip: \"Inspection Holds\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/quality_correctiveactions\",\r\n name: \"Open Corrective Actions\",\r\n component: correctiveactions,\r\n tooltip: \"Open Corrective Actions\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/quality_deviationrequests\",\r\n name: \"Open Deviation Requests\",\r\n component: deviationrequests,\r\n tooltip: \"Open Deviation Requests\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/quality_nonconformances\",\r\n name: \"Open Non-Conformances\",\r\n component: nonconformance,\r\n tooltip: \"Open Non-Conformances\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Report Center\",\r\n component: blank,\r\n tooltip: \"Report Center\",\r\n categoryid: 6,\r\n enabled: true\r\n }\r\n ]\r\n};\r\n\r\nconst maintenanceRoutes = {\r\n id: \"Maintenance\",\r\n path: \"/maintenance\",\r\n description: \"\",\r\n enabled: false,\r\n tooltip: \"Maintenance\",\r\n subcategory: \"Quality\",\r\n is24SO: false,\r\n children: [\r\n {\r\n path: \"/maintenance_Transactions\",\r\n name: \"Transactions\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Equipment\",\r\n component: blank,\r\n tooltip: \"Equipment\",\r\n externalpath: \"../frmPM_AddEquipment.aspx?EquipmentID=-1&TimeStamp=\" + new Date().getTime(),\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Maintenance Order\",\r\n component: blank,\r\n tooltip: \"Maintenance Order\",\r\n externalpath: \"../frmMFG_ProductionOrders.aspx?OrderType=PRODUCTION%20ORDER&MaintenanceOrder=TRUE\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Maintenance Request\",\r\n component: blank,\r\n tooltip: \"Maintenance Request\",\r\n externalpath: \"../frmPM_AddMaintenanceRequest.aspx?MaintenanceRequestID=-1&TimeStamp=\" + new Date().getTime(),\r\n enabled: true\r\n },\r\n {\r\n path: \"/maintenance_Lists\",\r\n name: \"Lists\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"/maintenance_equipment\",\r\n name: \"Equipment List\",\r\n component: equipment,\r\n tooltip: \"Equipment List\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/maintenance_maintenanceorders\",\r\n name: \"Open Orders\",\r\n component: maintenanceorders,\r\n tooltip: \"Open Maintenance Orders\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/maintenance_maintenancerequests\",\r\n name: \"Open Requests\",\r\n component: maintenancerequests,\r\n tooltip: \"Open Maintenance Requests\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Report Center\",\r\n component: blank,\r\n tooltip: \"Report Center\",\r\n categoryid: 6,\r\n enabled: true\r\n }\r\n ]\r\n};\r\n\r\nconst financialsRoutes = {\r\n id: \"Financials\",\r\n path: \"/financials\",\r\n description: \"\",\r\n enabled: false,\r\n tooltip: \"Financials\",\r\n subcategory: \"Financials\",\r\n is24SO: false,\r\n children: [\r\n {\r\n path: \"/financials_Transactions\",\r\n name: \"Transactions\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Deposit\",\r\n component: blank,\r\n tooltip: \"Deposit\",\r\n externalpath: \"../frmACCT_BankDeposit.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Financial Statements\",\r\n component: blank,\r\n tooltip: \"Financial Statements\",\r\n externalpath: \"../frmACCT_FinancialStatements.aspx\",\r\n fullscreen: true,\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Journal Entry\",\r\n component: blank,\r\n tooltip: \"Journal Entry\",\r\n externalpath: \"../frmACCT_JournalEntry.aspx?CompanyCodeID=\" + getDefaultCompanyCodeID() + \"&Timestamp=\" + new Date().getTime(),\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Reconcile\",\r\n component: blank,\r\n tooltip: \"Reconcile\",\r\n externalpath: \"../frmACCT_BankReconcile.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Register\",\r\n component: blank,\r\n tooltip: \"Register\",\r\n externalpath: \"../frmACCT_Register.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Import Transactions\",\r\n component: blank,\r\n tooltip: \"Import Transactions\",\r\n externalpath: \"../frmACCT_BankImport.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Standard Cost Workbench\",\r\n component: blank,\r\n tooltip: \"Standard Cost Workbench\",\r\n externalpath: \"../frmACCT_StandardCostWorkbench.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/financials_Lists\",\r\n name: \"Lists\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"/financials_cashflowforecasts\",\r\n name: \"Cash Flow Forecast\",\r\n component: cashflowforecasts,\r\n tooltip: \"Cash Flow Forecast\",\r\n /* externalpath: \"../frmACCT_CashFlowForecast.aspx\",*/\r\n enabled: true\r\n },\r\n {\r\n path: \"/financials_accountingperiods\",\r\n name: \"Accounting Periods\",\r\n component: accountingperiods,\r\n tooltip: \"Accounting Periods\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/financials_budgets\",\r\n name: \"Budgets\",\r\n component: budgets,\r\n tooltip: \"Budgets\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/financials_chartofaccounts\",\r\n name: \"Chart of Accounts\",\r\n component: chartofaccounts,\r\n tooltip: \"Chart of Accounts\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Report Center\",\r\n component: blank,\r\n tooltip: \"Report Center\",\r\n categoryid: 7,\r\n enabled: true\r\n }\r\n ]\r\n};\r\n\r\nconst receivablesRoutes = {\r\n id: \"Receivables\",\r\n path: \"/receivables\",\r\n description: \"\",\r\n enabled: false,\r\n tooltip: \"Receivables\",\r\n subcategory: \"Receivables\",\r\n is24SO: false,\r\n children: [\r\n {\r\n path: \"/financials_Transactions\",\r\n name: \"Transactions\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Customer Invoice\",\r\n component: blank,\r\n tooltip: \"Customer Invoice\",\r\n externalpath: \"../frmSALES_Invoice.aspx?OrderType=Invoice\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Customer Credit\",\r\n component: blank,\r\n tooltip: \"Customer Credit\",\r\n externalpath: \"../frmSALES_Invoice.aspx?OrderType=Credit\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Receive Payment\",\r\n component: blank,\r\n tooltip: \"Receive Payment\",\r\n externalpath: \"../frmACCT_ReceivePayment.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Search History\",\r\n component: blank,\r\n tooltip: \"Search History\",\r\n externalpath: \"../frmACCT_ReceivablesSearch.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/financials_Lists\",\r\n name: \"Lists\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"/receivables_aging\",\r\n name: \"A/R Aging\",\r\n component: ARaging,\r\n tooltip: \"A/R Aging\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Customer Analysis\",\r\n component: blank,\r\n tooltip: \"Customer Analysis\",\r\n externalpath: \"../frmACCT_IncomeExpenseAnalysis.aspx?myType=AR\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Report Center\",\r\n component: blank,\r\n tooltip: \"Report Center\",\r\n categoryid: 8,\r\n enabled: true\r\n }\r\n ]\r\n};\r\n\r\nconst payablesRoutes = {\r\n id: \"Payables\",\r\n path: \"/payables\",\r\n description: \"\",\r\n enabled: false,\r\n tooltip: \"Payables\",\r\n subcategory: \"Payables\",\r\n is24SO: false,\r\n children: [\r\n {\r\n path: \"/financials_Transactions\",\r\n name: \"Transactions\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Supplier Invoice\",\r\n component: blank,\r\n tooltip: \"Supplier Invoice\",\r\n externalpath: \"../frmACCT_SupplierInvoices.aspx?OrderType=Invoice\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Supplier Credit\",\r\n component: blank,\r\n tooltip: \"Supplier Credit\",\r\n externalpath: \"../frmACCT_SupplierInvoices.aspx?OrderType=Credit\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Pay Suppliers\",\r\n component: blank,\r\n tooltip: \"Pay Suppliers\",\r\n externalpath: \"../frmACCT_PayVendors.aspx\",\r\n fullscreen: false,\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Search History\",\r\n component: blank,\r\n tooltip: \"Search History\",\r\n externalpath: \"../frmACCT_PayablesSearch.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/financials_Lists\",\r\n name: \"Lists\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"/payables_aging\",\r\n name: \"A/P Aging\",\r\n component: APaging,\r\n tooltip: \"A/P Aging\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Supplier Analysis\",\r\n component: blank,\r\n tooltip: \"Supplier Analysis\",\r\n externalpath: \"../frmACCT_IncomeExpenseAnalysis.aspx?myType=AP\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Report Center\",\r\n component: blank,\r\n tooltip: \"Report Center\",\r\n categoryid: 9,\r\n enabled: true\r\n }\r\n ]\r\n};\r\n\r\nconst integrationsRoutes = {\r\n id: \"Integrations\",\r\n path: \"/integrations\",\r\n description: \"\",\r\n enabled: false,\r\n tooltip: \"Integrations\",\r\n subcategory: \"Integrations\",\r\n is24SO: false,\r\n children: [\r\n {\r\n path: \"#\",\r\n name: \"24SevenOffice\",\r\n component: blank,\r\n tooltip: \"24SevenOffice\",\r\n externalpath: \"../frmINTEGRATIONS_24SOConfig.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Amazon\",\r\n component: blank,\r\n tooltip: \"Amazon\",\r\n externalpath: \"../frmINTEGRATIONS_Amazon.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Big Commerce\",\r\n component: blank,\r\n tooltip: \"Big Commerce\",\r\n externalpath: \"../frmINTEGRATIONS_BigCommerce.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"QuickBooks Online\",\r\n component: blank,\r\n tooltip: \"QuickBooks Online\",\r\n externalpath: \"../frmINTEGRATIONS_QBO.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Shopify\",\r\n component: blank,\r\n tooltip: \"Shopify\",\r\n externalpath: \"../frmINTEGRATIONS_Shopify.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Tallie\",\r\n component: blank,\r\n tooltip: \"Tallie\",\r\n externalpath: \"../frmINTEGRATIONS_Tallie.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Walmart\",\r\n component: blank,\r\n tooltip: \"Walmart\",\r\n externalpath: \"../frmINTEGRATIONS_Walmart.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Woo Commerce\",\r\n component: blank,\r\n tooltip: \"Woo Commerce\",\r\n externalpath: \"../frmINTEGRATIONS_WooCommerce.aspx\",\r\n enabled: true\r\n }\r\n ]\r\n};\r\n\r\nconst inventoryEditionRoutes = {\r\n id: \"Inventory Edition\",\r\n path: \"/inventoryedition\",\r\n description: \"\",\r\n enabled: false,\r\n tooltip: \"Inventory Edition\",\r\n subcategory: \"InventoryEdition\",\r\n is24SO: false,\r\n children: [\r\n {\r\n path: \"/inventoryedition_salesorders\",\r\n name: \"Sales Orders\",\r\n component: salesorders,\r\n tooltip: \"Sales Orders\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/inventoryedition_purchaseorders\",\r\n name: \"Purchase Orders\",\r\n component: purchaseorders,\r\n tooltip: \"Purchase Orders\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"MRP Workbench\",\r\n component: blank,\r\n tooltip: \"MRP Workbench\",\r\n externalpath: \"../frmMRP_Workbench.aspx\",\r\n fullscreen: true,\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Traceability\",\r\n component: blank,\r\n tooltip: \"Traceability\",\r\n externalpath: \"../frmITEMS_Traceability.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/inventoryedition_Transactions\",\r\n name: \"\",\r\n subcategory: true\r\n },\r\n {\r\n path: \"/inventoryedition_itemlist\",\r\n name: \"Items\",\r\n component: itemmaster,\r\n tooltip: \"Items\",\r\n enabled: true,\r\n is24SO: false\r\n },\r\n {\r\n path: \"/inventoryedition_customers\",\r\n name: \"Customers\",\r\n component: customers,\r\n tooltip: \"Customers\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/inventoryedition_suppliers\",\r\n name: \"Suppliers\",\r\n component: suppliers,\r\n tooltip: \"Suppliers\",\r\n enabled: true\r\n },\r\n {\r\n path: \"/inventoryedition_employees\",\r\n name: \"Employees\",\r\n component: employees,\r\n tooltip: \"Employees\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Report Center\",\r\n component: blank,\r\n tooltip: \"Reports\",\r\n categoryid: 4,\r\n enabled: true\r\n }\r\n ]\r\n};\r\n\r\nconst psRoutes = {\r\n id: \"Professional Services\",\r\n path: \"/professionalservices\",\r\n description: \"\",\r\n enabled: false,\r\n tooltip: \"Professional Services\",\r\n subcategory: \"ProfessionalServices\",\r\n is24SO: false,\r\n children: [\r\n {\r\n path: \"#\",\r\n name: \"Table Maintenance\",\r\n component: blank,\r\n tooltip: \"Table Maintenance\",\r\n externalpath: \"../frmSYSTEM_ClearTables.aspx\",\r\n enabled: true\r\n },\r\n {\r\n path: \"#\",\r\n name: \"Product Configurator\",\r\n component: blank,\r\n tooltip: \"Product Configurator\",\r\n externalpath: \"../frmSALES_ProductConfiguratorSetup.aspx\",\r\n enabled: true\r\n },\r\n ]\r\n};\r\n\r\nconst systemRoutes = {\r\n id: \"System\",\r\n path: \"/system\",\r\n description: \"\",\r\n enabled: false,\r\n tooltip: \"System\",\r\n subcategory: \"System\",\r\n is24SO: false,\r\n children: [\r\n {\r\n path: \"/system_search\",\r\n name: \"Search\",\r\n component: search,\r\n tooltip: \"Search\",\r\n enabled: true\r\n }\r\n ]\r\n};\r\n\r\nexport const dashboard = [\r\n dashboardsRoutes,\r\n salesRoutes,\r\n crmRoutes,\r\n purchasingRoutes,\r\n manufacturingRoutes,\r\n itemRoutes,\r\n mrpRoutes,\r\n employeeRoutes,\r\n qualityRoutes,\r\n maintenanceRoutes,\r\n financialsRoutes,\r\n receivablesRoutes,\r\n payablesRoutes,\r\n inventoryEditionRoutes,\r\n integrationsRoutes,\r\n psRoutes,\r\n systemRoutes\r\n];\r\n\r\nexport const auth = [authRoutes];\r\n\r\nexport default [\r\n dashboardsRoutes,\r\n salesRoutes,\r\n crmRoutes,\r\n purchasingRoutes,\r\n manufacturingRoutes,\r\n itemRoutes,\r\n mrpRoutes,\r\n employeeRoutes,\r\n qualityRoutes,\r\n maintenanceRoutes,\r\n financialsRoutes,\r\n receivablesRoutes,\r\n payablesRoutes,\r\n inventoryEditionRoutes,\r\n integrationsRoutes,\r\n psRoutes,\r\n systemRoutes\r\n];\r\n","import React, { Component } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { rgba } from \"polished\";\r\n\r\nimport { NavLink as RouterNavLink, withRouter } from \"react-router-dom\";\r\nimport { darken } from \"polished\";\r\n\r\nimport PerfectScrollbar from \"react-perfect-scrollbar\";\r\nimport \"../vendor/perfect-scrollbar.css\";\r\n\r\nimport {\r\n Avatar,\r\n Badge,\r\n Box as MuiBox,\r\n Chip,\r\n Collapse,\r\n Drawer as MuiDrawer,\r\n Grid,\r\n List as MuiList,\r\n ListItem,\r\n ListItemText,\r\n Typography,\r\n IconButton as MuiIconButton,\r\n Menu,\r\n MenuItem,\r\n Tooltip,\r\n Button\r\n} from \"@material-ui/core\";\r\n\r\nimport { ExpandLess, ExpandMore } from \"@material-ui/icons\";\r\n\r\nimport routes from \"../routes/index\";\r\n\r\n// images\r\nimport brandImage from \"../images/erp/masterplan_erp_logo.png\";\r\nimport brandImageNO from \"../images/erp/24sevenoffice_masterplan_erp_logo.png\";\r\nimport usFlag from \"../images/flags/us.png\";\r\nimport noFlag from \"../images/flags/no.png\";\r\nimport caFlag from \"../images/flags/ca.png\";\r\nimport { ExternalLink } from \"react-feather\";\r\n\r\nimport windowopen, {\r\n getDefaultCompanyCodeID,\r\n getApiURL,\r\n getCompanyCodes,\r\n getCompanyCodeName,\r\n getUserInfo,\r\n getApiKey,\r\n stableSort,\r\n getSorting,\r\n dataSearch,\r\n linkColumnStyle,\r\n errorColumnStyle,\r\n writeDebugLine\r\n} from \"../components/Helper\";\r\n\r\nconst NavLink = React.forwardRef((props, ref) => (\r\n \r\n));\r\n\r\nconst Box = styled(MuiBox)`\r\n padding-top: 15px;\r\n`;\r\n\r\nconst Drawer = styled(MuiDrawer)`\r\n border-right: 0;\r\n\r\n > div {\r\n border-right: 0;\r\n }\r\n`;\r\n\r\nconst Scrollbar = styled(PerfectScrollbar)`\r\n background-color: #2D3B49;\r\n border-right: 1px solid rgba(0, 0, 0, 0.12);\r\n width: 239px;\r\n`;\r\n\r\nconst List = styled(MuiList)`\r\n background-color: #2D3B49;\r\n`;\r\n\r\nconst Items = styled.div`\r\n padding-top: ${props => props.theme.spacing(0)}px;\r\n padding-bottom: ${props => props.theme.spacing(2.5)}px;\r\n`;\r\n\r\nconst Brand = styled(ListItem)`\r\n font-size: ${props => props.theme.typography.h5.fontSize};\r\n font-weight: ${props => props.theme.typography.fontWeightMedium};\r\n color: ${props => props.theme.sidebar.header.color};\r\n background-color: #F7F7F7;\r\n font-family: ${props => props.theme.typography.fontFamily};\r\n min-height: 55px;\r\n max-height: 55px;\r\n padding-left: ${props => props.theme.spacing(6)}px;\r\n padding-right: ${props => props.theme.spacing(6)}px;\r\n &&{width: 239px;}\r\n\r\n ${props => props.theme.breakpoints.up(\"sm\")} {\r\n min-height: 55px;\r\n max-height: 55px;\r\n }\r\n`;\r\n\r\nconst Category = styled(ListItem)`\r\n padding-top: ${props => props.theme.spacing(3)}px;\r\n padding-bottom: ${props => props.theme.spacing(3)}px;\r\n padding-left: ${props => props.theme.spacing(6)}px;\r\n padding-right: ${props => props.theme.spacing(5)}px;\r\n font-weight: ${props => props.theme.typography.fontWeightMedium};\r\n font-size: ${props => props.theme.typography.h2.fontSize};\r\n min-height: 35px;\r\n max-height: 50px;\r\n \r\n \r\n && {\r\n border-left: 3px solid #2D3B49;\r\n border-bottom: 1px solid #25313C;\r\n}\r\n\r\n svg {\r\n color: #FFFFFF;\r\n font-size: 20px;\r\n width: 20px;\r\n height: 20px;\r\n opacity: 1;\r\n }\r\n\r\n &:hover {\r\n background: rgba(0, 0, 0, 0.08);\r\n border-left: 3px solid #229BFF;\r\n }\r\n\r\n &.${props => props.activeClassName} {\r\n background-color: #25313C;\r\n border-left: 3px solid #FFB155;\r\n\r\n span {\r\n color: #FFB155;\r\n }\r\n }\r\n`;\r\n\r\nconst CategoryText = styled(ListItemText)`\r\n margin: 0px;\r\n min-height: 45px;\r\n max-height: 65px;\r\n span {\r\n color: #FFFFFF;\r\n font-family: ${props => props.theme.typography.sidebar.fontFamily};\r\n font-size: ${props => props.theme.typography.sidebar.fontSize}px;\r\n font-weight: ${props => props.theme.typography.fontWeightMedium};\r\n padding: 0px 0px 0px ${props => props.theme.spacing(0)}px;\r\n }\r\n\r\n&:hover span {\r\n color: #229BFF;\r\n }\r\n}\r\n`;\r\n\r\nconst CategorySecondaryText = styled(Typography)`\r\n min-height: 20px;\r\n max-height: 20px;\r\n color: #C4C4C4;\r\n padding: 0px 0px 0px ${props => props.theme.spacing(4)}px;\r\n && {\r\n font-family: ${props => props.theme.typography.sidebar.fontFamily};\r\n font-size: 0.75rem;\r\n font-weight: 400;\r\n letter-spacing: 0.03333em;\r\n}\r\n}\r\n`;\r\n\r\nconst CategoryIconLess = styled(ExpandLess)`\r\n color: ${props => rgba(props.theme.sidebar.color, 0.5)};\r\n`;\r\n\r\nconst CategoryIconMore = styled(ExpandMore)`\r\n color: ${props => rgba(props.theme.sidebar.color, 0.5)};\r\n`;\r\n\r\nconst Link = styled(ListItem)`\r\n padding-left: ${props => props.theme.spacing(14)}px;\r\n padding-top: ${props => props.theme.spacing(2)}px;\r\n padding-bottom: ${props => props.theme.spacing(2)}px;\r\n && {\r\n border-left: 3px solid #25313C;\r\n background-color: #25313C;\r\n}\r\n\r\n span {\r\n color: ${props => rgba(props.theme.sidebar.color, 0.7)};\r\n }\r\n\r\n &:hover span {\r\n color: #229BFF;\r\n svg {\r\n color: #229BFF;\r\n }\r\n }\r\n \r\n &&:hover {\r\n border-left: 3px solid #229BFF;\r\n background-color: #25313C;\r\n }\r\n\r\n &.${props => props.activeClassName} {\r\n background-color: #25313C;\r\n border-left: 3px solid #FFB155;\r\n\r\n span {\r\n color: #FFB155;\r\n }\r\n }\r\n`;\r\n\r\nconst LinkText = styled(ListItemText)`\r\n color: ${props => props.theme.sidebar.color};\r\n span {\r\n padding-left: ${props => props.theme.spacing(6)}px;\r\n font-family: ${props => props.theme.typography.sidebar.fontFamily};\r\n font-size: ${props => props.theme.typography.body1.fontSize}px;\r\n font-weight: ${props => props.theme.typography.fontWeightMedium};\r\n color: #FFFFFF;\r\n }\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n`;\r\n\r\nconst LinkBadge = styled(Chip)`\r\n font-size: 11px;\r\n font-weight: ${props => props.theme.typography.fontWeightBold};\r\n height: 20px;\r\n position: absolute;\r\n right: 12px;\r\n top: 8px;\r\n background: ${props => props.theme.sidebar.badge.background};\r\n\r\n span.MuiChip-label,\r\n span.MuiChip-label:hover {\r\n cursor: pointer;\r\n color: ${props => props.theme.sidebar.badge.color};\r\n padding-left: ${props => props.theme.spacing(2)}px;\r\n padding-right: ${props => props.theme.spacing(2)}px;\r\n }\r\n`;\r\n\r\nconst CategoryBadge = styled(LinkBadge)`\r\n top: 12px;\r\n`;\r\n\r\nconst SidebarSection = styled(Typography)`\r\n color: ${props => props.theme.sidebar.color};\r\n padding: ${props => props.theme.spacing(4)}px\r\n ${props => props.theme.spacing(6)}px ${props => props.theme.spacing(1)}px;\r\n opacity: 0.9;\r\n display: block;\r\n`;\r\n\r\nconst SidebarSubSection = styled(Typography)`\r\n color: #ffee55;\r\n padding: ${props => props.theme.spacing(4)}px\r\n ${props => props.theme.spacing(6)}px ${props => props.theme.spacing(1)}px;\r\n opacity: 0.9;\r\n display: block;\r\n&& {\r\n border-left: 3px solid #25313C;\r\n background-color: #25313C;\r\n font-weight: ${props => props.theme.typography.fontWeightMedium};\r\n font-family: ${props => props.theme.typography.sidebar.fontFamily};\r\n font-size: ${props => props.theme.typography.h1.fontSize}px;\r\n}\r\n`;\r\n\r\nconst SidebarFooter = styled.div`\r\n background-color: #2D3B49 !important;\r\n padding: ${props => props.theme.spacing(2.75)}px\r\n ${props => props.theme.spacing(4)}px;\r\n border-right: 1px solid rgba(0, 0, 0, 0.12);\r\n &&{width: 239px;}\r\n`;\r\n\r\nconst SidebarFooterText = styled(Typography)`\r\n color: ${props => props.theme.sidebar.footer.color};\r\n padding: ${props => props.theme.spacing(4)}px\r\n ${props => props.theme.spacing(1)}px;\r\n`;\r\n\r\nconst SidebarFooterSubText = styled(Typography)`\r\n color: ${props => props.theme.sidebar.footer.color};\r\n font-size: .725rem;\r\n display: block;\r\n padding: 1px;\r\n`;\r\n\r\nconst StyledBadge = styled(Badge)`\r\n margin-right: ${props => props.theme.spacing(1)}px;\r\n\r\n span {\r\n background-color: ${props => props.theme.sidebar.footer.online.background};\r\n border: 1.5px solid ${props => props.theme.palette.common.white};\r\n height: 12px;\r\n width: 12px;\r\n border-radius: 50%;\r\n }\r\n`;\r\n\r\nconst IconButton = styled(MuiIconButton)`\r\n svg {\r\n width: 20px;\r\n height: 20px;\r\n color: #FFFFFF;\r\n }\r\n\r\n && {\r\n padding: 5px;\r\n}\r\n`;\r\n\r\nconst Flag = styled.img`\r\n border-radius: 50%;\r\n width: 22px;\r\n height: 22px;\r\n`;\r\n\r\nfunction SidebarCategory({\r\n name,\r\n icon,\r\n classes,\r\n isOpen,\r\n isCollapsable,\r\n badge,\r\n description,\r\n enabled,\r\n tooltip,\r\n is24SO,\r\n ...rest\r\n}) {\r\n return (\r\n \r\n {icon}\r\n {name}\r\n {/*{\r\n isCollapsable ? (\r\n isOpen ? (\r\n {description}\r\n ) : null\r\n ) : null\r\n }*/}\r\n \r\n {isCollapsable ? (\r\n isOpen ? (\r\n \r\n ) : (\r\n \r\n )\r\n ) : null}\r\n {badge ? : \"\"}\r\n \r\n );\r\n}\r\n\r\nclass SidebarLink extends React.Component {\r\n ReportClick(e, categoryid) {\r\n e.preventDefault();\r\n\r\n var myURL = '../frmREPORTS_ReportCenter.aspx?ReportCategoryID=' + categoryid;\r\n\r\n var w = 1100;\r\n var h = 775;\r\n\r\n var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : window.screen.left;\r\n var dualScreenTop = window.screenTop != undefined ? window.screenTop : window.screen.top;\r\n\r\n var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : window.screen.width;\r\n var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : window.screen.height;\r\n\r\n var left = ((width / 2) - (w / 2)) + dualScreenLeft;\r\n var top = ((height / 2) - (h / 2)) + dualScreenTop;\r\n\r\n return (\r\n windowopen(myURL, '_blank', 'toolbar=no,status=no,resizable=1,scrollbars=1,menubar=no,location=no,width=1100,height=775,left=' + left + ',top=' + top + ',modal=yes')\r\n );\r\n }\r\n\r\n ExternalClick(e, externalpath, fullScreen) {\r\n e.preventDefault();\r\n\r\n var myURL = externalpath;\r\n\r\n var w = 1100;\r\n var h = 775;\r\n\r\n var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : window.screen.left;\r\n var dualScreenTop = window.screenTop != undefined ? window.screenTop : window.screen.top;\r\n\r\n var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : window.screen.width;\r\n var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : window.screen.height;\r\n\r\n var left = ((width / 2) - (w / 2)) + dualScreenLeft;\r\n var top = ((height / 2) - (h / 2)) + dualScreenTop;\r\n\r\n if (fullScreen) {\r\n w = window.screen.width;\r\n h = window.screen.height;\r\n\r\n left = 0;\r\n top = 0;\r\n }\r\n\r\n return (\r\n windowopen(myURL, '_blank', 'toolbar=no,status=no,resizable=1,scrollbars=1,menubar=no,location=no,width=' + w + ',height=' + h + ',left=' + left + ',top=' + top + ',modal=yes,fullscreen=yes')\r\n );\r\n }\r\n\r\n render() {\r\n const { name, to, badge, tooltip, categoryid, icon, externalpath, fullScreen, enabled, keyIdx } = this.props;\r\n if (categoryid) {\r\n return (\r\n this.ReportClick(e, categoryid)}\r\n key={categoryid}\r\n >\r\n {name}\r\n {badge ? : \"\"}\r\n {icon ? {icon} : \"\"}\r\n \r\n );\r\n }\r\n else if (externalpath) {\r\n return (\r\n this.ExternalClick(e, externalpath, fullScreen)}\r\n key={keyIdx}\r\n >\r\n {name}\r\n {badge ? : \"\"}\r\n {icon ? {icon} : \"\"}\r\n \r\n );\r\n }\r\n else if (enabled) {\r\n return (\r\n \r\n {name}\r\n {badge ? : \"\"}\r\n \r\n );\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n}\r\n\r\nclass LanguageMenu extends Component {\r\n state = {\r\n anchorMenu: null\r\n };\r\n\r\n toggleMenu = event => {\r\n this.setState({ anchorMenu: event.currentTarget });\r\n };\r\n\r\n closeMenu = () => {\r\n this.setState({ anchorMenu: null });\r\n };\r\n\r\n render = () => {\r\n const { anchorMenu } = this.state;\r\n const open = Boolean(anchorMenu);\r\n var flag = usFlag;\r\n\r\n var language = window.location.href;\r\n if (language != null && language != \"\") {\r\n language = language.toLowerCase();\r\n if (language.indexOf(\"masterplan.24sevenoffice.com\") != -1) {\r\n flag = noFlag;\r\n }\r\n else if (language.indexOf(\"na2\") != -1) {\r\n flag = caFlag;\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nclass Sidebar extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n controls: [],\r\n language: \"en-US\",\r\n rcCode: \"\"\r\n };\r\n }\r\n\r\n toggle = index => {\r\n // Collapse all elements\r\n const controls = this.state.controls;\r\n controls.forEach(\r\n (item, itemIndex) => {\r\n if (itemIndex !== index )\r\n controls[itemIndex] = false;\r\n }\r\n );\r\n \r\n // Toggle selected element\r\n controls[index] = !controls[index];\r\n this.setState({\r\n controls: controls\r\n });\r\n };\r\n\r\n UNSAFE_componentWillMount() {\r\n /* Open collapse element that matches current url */\r\n const pathName = this.props.location.pathname;\r\n\r\n routes.forEach((route, index) => {\r\n const isActive = pathName.indexOf(route.path) === 0;\r\n const isOpen = route.open;\r\n const isHome = route.containsHome && pathName === \"/\" ? true : false;\r\n\r\n var controlArray = this.state.controls;\r\n controlArray[index] = isActive || isOpen || isHome;\r\n this.setState({\r\n controls: controlArray\r\n });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n \"ApiKey\": getApiKey(),\r\n \"CompanyCodeID\": Number(sessionStorage.getItem('default_companycode')) || getDefaultCompanyCodeID()\r\n })\r\n };\r\n fetch(getApiURL() + \"DashboardRoutes\", requestOptions)\r\n .then(res => res.json())\r\n .then(\r\n (result) => {\r\n var allowedCategories = JSON.stringify(result.data);\r\n var is24SO = result.is24SO;\r\n var rcCode = result.ReactClientCode\r\n this.setState({\r\n rcCode: rcCode\r\n });\r\n // ********** DEBUG **********\r\n writeDebugLine(allowedCategories);\r\n // ********** END DEBUG **********\r\n allowedCategories = allowedCategories.replace(/\"/g, '');\r\n var categoriesArray = allowedCategories.split(\",\");\r\n var controlArray = this.state.controls;\r\n const pathName = this.props.location.pathname;\r\n var openFirst = false;\r\n if (pathName === \"/\") {\r\n openFirst = true;\r\n }\r\n routes.forEach((route, index) => {\r\n categoriesArray.forEach((category, idx) => {\r\n if (category.toLowerCase() == route.subcategory.toLowerCase()) {\r\n route.enabled = true;\r\n if (openFirst && route.subcategory === \"InventoryEdition\") {\r\n controlArray[index] = true;\r\n openFirst = false;\r\n }\r\n }\r\n });\r\n });\r\n\r\n if (pathName === \"/\") {\r\n this.setState({\r\n language: result.Language,\r\n controls: controlArray\r\n });\r\n } else {\r\n this.setState({\r\n language: result.Language\r\n });\r\n }\r\n },\r\n (error) => {\r\n console.log('error');\r\n }\r\n )\r\n }\r\n\r\n render() {\r\n const { classes, staticContext, ...other } = this.props;\r\n let language = this.state.language;\r\n let rcCode = this.state.rcCode;\r\n var languageUrl = window.location.href;\r\n if (languageUrl != null && languageUrl != \"\") {\r\n languageUrl = languageUrl.toLowerCase();\r\n if (languageUrl.indexOf(\"masterplan.24sevenoffice.com\") != -1) {\r\n language = \"nb-no\";\r\n }\r\n else if (languageUrl.indexOf(\"na2\") != -1) {\r\n language = \"en-ca\";\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {routes.map((category, index) => (\r\n \r\n {category.header ? (\r\n {category.header}\r\n ) : null}\r\n\r\n {category.enabled ? (category.children ? (\r\n \r\n this.toggle(index)}\r\n description={category.description}\r\n enabled={category.enabled}\r\n tooltip={category.tooltip}\r\n is24SO={category.is24SO}\r\n />\r\n\r\n \r\n {category.children.map((route, index) => {\r\n return (\r\n (\r\n route.subcategory ?\r\n {route.name}\r\n :\r\n (route.rcCode === null || typeof route.rcCode === 'undefined' || route.rcCode.split(\"|\").includes(rcCode)) &&\r\n \r\n )\r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n ) ) : null }\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(Sidebar);\r\n","import React, { Component } from \"react\";\r\nimport styled, { withTheme } from \"styled-components\";\r\nimport { connect } from \"react-redux\";\r\nimport { darken } from \"polished\";\r\n\r\nimport {\r\n Badge,\r\n Grid,\r\n Hidden,\r\n InputBase,\r\n Menu,\r\n MenuItem,\r\n AppBar as MuiAppBar,\r\n IconButton as MuiIconButton,\r\n Toolbar,\r\n Avatar,\r\n Typography,\r\n Box as MuiBox\r\n} from \"@material-ui/core\";\r\n\r\nimport { Menu as MenuIcon } from \"@material-ui/icons\";\r\nimport { Divider } from '@material-ui/core';\r\n\r\nimport salesorders from \"../pages/sales/salesorders\"\r\nimport {\r\n Bell,\r\n MessageSquare,\r\n Search as SearchIcon,\r\n Power\r\n} from \"react-feather\";\r\n\r\n// images\r\n//import profileImg from \"../images/avatars/avatar-4.jpg\";\r\nimport { browserHistory } from 'react-router';\r\n\r\nimport windowopen, {\r\n getApiURL,\r\n getApiKey,\r\n encodeComponent,\r\n getUserInfo,\r\n displayNameStyle,\r\n displayTitleStyle,\r\n ConfirmDialog\r\n} from \"./Helper\";\r\n\r\nimport { NavLink as RouterNavLink, withRouter, Redirect } from \"react-router-dom\";\r\n\r\nimport brandImage from \"../images/erp/masterplan_erp_logo.png\";\r\n\r\nconst AppBar = styled(MuiAppBar)`\r\n background: ${props => props.theme.header.background};\r\n color: ${props => props.theme.header.color};\r\n\r\n && {\r\n background-color: #F7F7F7;\r\n \r\n box-shadow: 1px 1px 1px ${props => props.theme.palette.grey[300]};\r\n height: 55px;\r\n }\r\n`;\r\n\r\nconst IconButton = styled(MuiIconButton)`\r\n svg {\r\n width: 22px;\r\n height: 22px;\r\n }\r\n\r\n&& {\r\n color: ${props => props.theme.sidebar.header.background};\r\n :hover {\r\n background-color: ${props => darken(0.05, props.theme.header.background)};\r\n }\r\n}\r\n`;\r\n\r\nconst Indicator = styled(Badge)`\r\n .MuiBadge-badge {\r\n background: ${props => props.theme.header.indicator.background};\r\n color: ${props => props.theme.palette.common.white};\r\n }\r\n`;\r\n\r\nconst Search = styled.div`\r\n border-radius: 2px;\r\n border: 1px solid #BCBEC0;\r\n background-color: ${props => props.theme.header.background};\r\n display: none;\r\n position: relative;\r\n width: 100%;\r\n\r\n &:hover {\r\n background-color: ${props => darken(0.05, props.theme.header.background)};\r\n }\r\n\r\n ${props => props.theme.breakpoints.up(\"sm\")} {\r\n display: block;\r\n }\r\n`;\r\n\r\nconst SearchIconWrapper = styled.div`\r\n width: 50px;\r\n height: 100%;\r\n position: absolute;\r\n pointer-events: none;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n\r\n svg {\r\n width: 20px;\r\n height: 20px;\r\n }\r\n\r\n&& {\r\n color: ${props => props.theme.sidebar.header.background};\r\n}\r\n`;\r\n\r\nconst Input = styled(InputBase)`\r\n color: inherit;\r\n width: 100%;\r\n\r\n > input {\r\n color: ${props => props.theme.header.search.color};\r\n padding-top: ${props => props.theme.spacing(2.5)}px;\r\n padding-right: ${props => props.theme.spacing(2.5)}px;\r\n padding-bottom: ${props => props.theme.spacing(2.5)}px;\r\n padding-left: ${props => props.theme.spacing(12)}px;\r\n width: 250px;\r\n }\r\n`;\r\n\r\nconst StyledBadge = styled(Badge)`\r\n margin-right: ${props => props.theme.spacing(6)}px;\r\n\r\n span {\r\n background-color: ${props => props.theme.sidebar.footer.online.background};\r\n border: 1.5px solid ${props => props.theme.palette.common.white};\r\n height: 12px;\r\n width: 12px;\r\n border-radius: 50%;\r\n }\r\n`;\r\n\r\nconst Box = styled(MuiBox)`\r\n padding-top: 10px;\r\n text-align: center\r\n`;\r\n\r\nconst NavLink = React.forwardRef((props, ref) => (\r\n \r\n));\r\n\r\nclass UserMenu extends Component {\r\n state = {\r\n anchorMenu: null,\r\n restoreDefault: false\r\n };\r\n\r\n toggleMenu = event => {\r\n this.setState({ anchorMenu: event.currentTarget });\r\n };\r\n\r\n closeMenu = () => {\r\n this.setState({ anchorMenu: null });\r\n };\r\n\r\n featureRequestClicked = () => {\r\n var myURL = '../frmSHARED_FeatureRequest.aspx';\r\n\r\n var w = 1100;\r\n var h = 775;\r\n\r\n var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : window.screen.left;\r\n var dualScreenTop = window.screenTop != undefined ? window.screenTop : window.screen.top;\r\n\r\n var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : window.screen.width;\r\n var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : window.screen.height;\r\n\r\n var left = ((width / 2) - (w / 2)) + dualScreenLeft;\r\n var top = ((height / 2) - (h / 2)) + dualScreenTop;\r\n\r\n return (\r\n windowopen(myURL, '_blank', 'toolbar=no,status=no,resizable=1,scrollbars=1,menubar=no,location=no,width=1100,height=775,left=' + left + ',top=' + top + ',modal=yes')\r\n );\r\n };\r\n\r\n referBusinessClicked = () => {\r\n var myURL = '../frmSHARED_CustomerReferral.aspx';\r\n\r\n var w = 1100;\r\n var h = 775;\r\n\r\n var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : window.screen.left;\r\n var dualScreenTop = window.screenTop != undefined ? window.screenTop : window.screen.top;\r\n\r\n var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : window.screen.width;\r\n var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : window.screen.height;\r\n\r\n var left = ((width / 2) - (w / 2)) + dualScreenLeft;\r\n var top = ((height / 2) - (h / 2)) + dualScreenTop;\r\n\r\n return (\r\n windowopen(myURL, '_blank', 'toolbar=no,status=no,resizable=1,scrollbars=1,menubar=no,location=no,width=1100,height=775,left=' + left + ',top=' + top + ',modal=yes')\r\n );\r\n };\r\n\r\n whatsNewClicked = () => {\r\n var myURL = '../frmSYSTEM_ReleaseNotes.aspx?ReleaseType=ALL';\r\n\r\n var w = 1100;\r\n var h = 775;\r\n\r\n var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : window.screen.left;\r\n var dualScreenTop = window.screenTop != undefined ? window.screenTop : window.screen.top;\r\n\r\n var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : window.screen.width;\r\n var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : window.screen.height;\r\n\r\n var left = ((width / 2) - (w / 2)) + dualScreenLeft;\r\n var top = ((height / 2) - (h / 2)) + dualScreenTop;\r\n\r\n return (\r\n windowopen(myURL, '_blank', 'toolbar=no,status=no,resizable=1,scrollbars=1,menubar=no,location=no,width=1100,height=775,left=' + left + ',top=' + top + ',modal=yes')\r\n );\r\n };\r\n\r\n myInfoClicked = () => {\r\n var myURL = '../frmSYSTEM_DashboardOptions.aspx';\r\n\r\n var w = 1100;\r\n var h = 775;\r\n\r\n var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : window.screen.left;\r\n var dualScreenTop = window.screenTop != undefined ? window.screenTop : window.screen.top;\r\n\r\n var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : window.screen.width;\r\n var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : window.screen.height;\r\n\r\n var left = ((width / 2) - (w / 2)) + dualScreenLeft;\r\n var top = ((height / 2) - (h / 2)) + dualScreenTop;\r\n\r\n return (\r\n windowopen(myURL, '_blank', 'toolbar=no,status=no,resizable=1,scrollbars=1,menubar=no,location=no,width=1100,height=775,left=' + left + ',top=' + top + ',modal=yes')\r\n );\r\n };\r\n\r\n trainingCenterClicked = () => {\r\n var myURL = '../frmSYSTEM_TrainingCenter.aspx';\r\n\r\n var w = 1100;\r\n var h = 775;\r\n\r\n var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : window.screen.left;\r\n var dualScreenTop = window.screenTop != undefined ? window.screenTop : window.screen.top;\r\n\r\n var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : window.screen.width;\r\n var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : window.screen.height;\r\n\r\n var left = ((width / 2) - (w / 2)) + dualScreenLeft;\r\n var top = ((height / 2) - (h / 2)) + dualScreenTop;\r\n\r\n return (\r\n windowopen(myURL, '_blank', 'toolbar=no,status=no,resizable=1,scrollbars=1,menubar=no,location=no,width=1100,height=775,left=' + left + ',top=' + top + ',modal=yes')\r\n );\r\n };\r\n \r\n \r\n \r\n adminPortalClicked = () => {\r\n const url = \"../frmADMIN_Main.aspx\";\r\n window.location.href = url;\r\n }\r\n\r\n\r\n systemSetupClicked = () => {\r\n\r\n const requestOptions = {\r\n method: 'get',\r\n headers: {\r\n 'Content-Type': 'Text'\r\n }\r\n };\r\n\r\n //const url = \"../frmSYSTEM_Ping.aspx?ApiKey=\" + getApiKey();\r\n\r\n var apikey = encodeComponent(getApiKey());\r\n const url = \"../frmSYSTEM_Ping.aspx?APIKey=\" + apikey;\r\n\r\n fetch(url, requestOptions)\r\n .then(res => res.text())\r\n .then(\r\n (result) => {\r\n if (result.toString().indexOf(\"TRUE\") == 0)\r\n {\r\n var myURL = '../frmSYSTEM_Setup.aspx';\r\n\r\n var w = 1100;\r\n var h = 775;\r\n\r\n var dualScreenLeft = window.screenLeft != undefined ? window.screenLeft : window.screen.left;\r\n var dualScreenTop = window.screenTop != undefined ? window.screenTop : window.screen.top;\r\n\r\n var width = window.innerWidth ? window.innerWidth : document.documentElement.clientWidth ? document.documentElement.clientWidth : window.screen.width;\r\n var height = window.innerHeight ? window.innerHeight : document.documentElement.clientHeight ? document.documentElement.clientHeight : window.screen.height;\r\n\r\n var left = ((width / 2) - (w / 2)) + dualScreenLeft;\r\n var top = ((height / 2) - (h / 2)) + dualScreenTop;\r\n\r\n return (\r\n windowopen(myURL, '_blank', 'toolbar=no,status=no,resizable=1,scrollbars=1,menubar=no,location=no,width=1100,height=775,left=' + left + ',top=' + top + ',modal=yes')\r\n );\r\n }\r\n else\r\n {\r\n window.location.href = \"../frmLogOut.aspx\";\r\n }\r\n },\r\n (error) => {\r\n alert(\"error\");\r\n }\r\n )\r\n\r\n\r\n\r\n };\r\n\r\n signOutClicked = () => {\r\n sessionStorage.clear();\r\n window.location.href = '../frmLogOut.aspx';\r\n };\r\n\r\n restoreScreenDefaultsClicked = () => {\r\n this.setState({ restoreDefault: !this.state.restoreDefault });\r\n };\r\n\r\n clearScreenSettings = () => {\r\n sessionStorage.clear();\r\n window.location.href = '../';\r\n };\r\n\r\n render = () => {\r\n const { anchorMenu, restoreDefault } = this.state;\r\n const open = Boolean(anchorMenu);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n this.featureRequestClicked();\r\n }}\r\n >\r\n Feature Request\r\n \r\n {\r\n this.referBusinessClicked();\r\n }}\r\n >\r\n Refer a Business\r\n \r\n {\r\n this.whatsNewClicked();\r\n }}\r\n >\r\n What's New?\r\n \r\n \r\n {getUserInfo() !== undefined && getUserInfo().showportal !== undefined && getUserInfo().showportal === \"89\" &&\r\n {\r\n this.adminPortalClicked();\r\n }}\r\n >\r\n Admin Portal\r\n \r\n }\r\n {getUserInfo() !== undefined && getUserInfo().showportal !== undefined && getUserInfo().showportal === \"89\" &&\r\n \r\n }\r\n {\r\n this.myInfoClicked();\r\n }}\r\n >\r\n My Info\r\n \r\n {\r\n this.trainingCenterClicked();\r\n }}\r\n >\r\n Training Center\r\n \r\n {\r\n this.systemSetupClicked();\r\n }}\r\n >\r\n System Setup\r\n \r\n {\r\n this.restoreScreenDefaultsClicked();\r\n }}\r\n >\r\n \r\n \r\n \r\n { this.signOutClicked(); }}\r\n >\r\n Sign Out\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nclass Header extends React.Component {\r\n state = {\r\n value: \"\",\r\n isLoaded: false,\r\n error: null,\r\n };\r\n\r\n handleKeyDown = (e) => {\r\n if (e.key === 'Enter') {\r\n this.setState({ value: e.target.value });\r\n }\r\n };\r\n\r\n fetchData = () => {\r\n const requestOptions = {\r\n method: 'get',\r\n headers: {\r\n 'Content-Type': 'Text'\r\n }\r\n };\r\n\r\n //const url = \"../frmSYSTEM_Ping.aspx?ApiKey=\" + getApiKey();\r\n var apikey = encodeComponent(getApiKey());\r\n const url = \"../frmSYSTEM_Ping.aspx?APIKey=\" + apikey;\r\n\r\n if (getApiURL().indexOf(\"localhost\") != -1) {\r\n this.setState({\r\n isLoaded: true,\r\n error: null\r\n });\r\n\r\n return true;\r\n }\r\n\r\n fetch(url, requestOptions)\r\n .then(res => res.text())\r\n .then(\r\n (result) => {\r\n if (result.toString().indexOf(\"TRUE\") == 0) {\r\n this.setState({\r\n isLoaded: true,\r\n error: null\r\n });\r\n }\r\n else {\r\n this.setState({\r\n isLoaded: true,\r\n error: true\r\n });\r\n }\r\n },\r\n (error) => {\r\n this.setState({\r\n isLoaded: true,\r\n error\r\n });\r\n }\r\n )\r\n }\r\n\r\n componentDidMount = () => {\r\n //UNCOMMENT FOR PRODUCTION\r\n this.fetchData();\r\n }\r\n\r\n render = () => {\r\n const { onDrawerToggle } = this.props;\r\n const { value, error } = this.state;\r\n\r\n if (error) {\r\n window.location.href = '../frmLogOut.aspx';\r\n } else {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*\r\n \r\n \r\n \r\n */}\r\n \r\n \r\n \r\n {getUserInfo().displayname}  \r\n \r\n { getUserInfo().title ?
\r\n \r\n {getUserInfo().title}  \r\n
: null}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {value !== \"\" ? : null}\r\n
\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default connect()(withTheme(Header));\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nimport {\r\n Grid,\r\n Hidden,\r\n List,\r\n ListItemText,\r\n ListItem as MuiListItem\r\n} from \"@material-ui/core\";\r\n\r\nconst Wrapper = styled.div`\r\n padding: ${props => props.theme.spacing(1) / 4}px\r\n ${props => props.theme.spacing(4)}px;\r\n background: ${props => props.theme.palette.common.white};\r\n position: relative;\r\n`;\r\n\r\nconst ListItem = styled(MuiListItem)`\r\n display: inline-block;\r\n width: auto;\r\n padding-left: ${props => props.theme.spacing(2)}px;\r\n padding-right: ${props => props.theme.spacing(2)}px;\r\n\r\n &,\r\n &:hover,\r\n &:active {\r\n color: #000;\r\n }\r\n`;\r\n\r\nfunction Footer() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Footer;\r\n","import * as types from '../constants';\r\n\r\nexport function setTheme(value) {\r\n return {\r\n type: types.SET_THEME,\r\n payload: value\r\n }\r\n}\r\n","export const SET_THEME = 'SET_THEME';\r\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { connect } from \"react-redux\";\r\nimport { setTheme } from \"../redux/actions/themeActions\";\r\n\r\nimport {\r\n Button,\r\n Drawer,\r\n Fab as MuiFab,\r\n ListItem,\r\n Paper as MuiPaper,\r\n Typography\r\n} from \"@material-ui/core\";\r\n\r\nimport { spacing } from \"@material-ui/system\";\r\n\r\nimport { Palette as PaletteIcon } from \"@material-ui/icons\";\r\n\r\nconst Paper = styled(MuiPaper)(spacing);\r\n\r\nconst Demo = styled(Paper)`\r\n cursor: pointer;\r\n text-align: center;\r\n box-shadow: none;\r\n`;\r\n\r\nconst Fab = styled(MuiFab)`\r\n position: fixed;\r\n right: ${props => props.theme.spacing(8)}px;\r\n bottom: ${props => props.theme.spacing(8)}px;\r\n z-index: 1;\r\n`;\r\n\r\nconst Wrapper = styled.div`\r\n width: 240px;\r\n overflow-x: hidden;\r\n`;\r\n\r\nconst Screenshot = styled.img`\r\n max-width: 100%;\r\n height: auto;\r\n border: 1px solid ${props => props.theme.palette.grey[300]};\r\n display: block;\r\n`;\r\n\r\nconst Heading = styled(ListItem)`\r\n font-size: ${props => props.theme.typography.h5.fontSize};\r\n font-weight: ${props => props.theme.typography.fontWeightMedium};\r\n color: ${props => props.theme.palette.common.black};\r\n background: ${props => props.theme.palette.common.white};\r\n font-family: ${props => props.theme.typography.fontFamily};\r\n min-height: 56px;\r\n\r\n ${props => props.theme.breakpoints.up(\"sm\")} {\r\n min-height: 64px;\r\n }\r\n`;\r\n\r\nconst Spacer = styled.div(spacing);\r\n\r\nlet Demos = function({dispatch}) {\r\n return (\r\n \r\n Select a demo\r\n dispatch(setTheme(0))}>\r\n \r\n \r\n Dark\r\n \r\n \r\n dispatch(setTheme(1))}>\r\n \r\n \r\n Light\r\n \r\n \r\n dispatch(setTheme(2))}>\r\n \r\n \r\n Blue\r\n \r\n \r\n dispatch(setTheme(3))}>\r\n \r\n \r\n Green\r\n \r\n \r\n dispatch(setTheme(4))}>\r\n \r\n \r\n Indigo\r\n \r\n \r\n dispatch(setTheme(5))}>\r\n \r\n \r\n Teal\r\n \r\n \r\n\r\n \r\n \r\n Purchase Now\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nDemos = connect()(Demos);\r\n\r\nfunction Settings() {\r\n const [state, setState] = React.useState({\r\n isOpen: false\r\n });\r\n\r\n const toggleDrawer = open => () => {\r\n setState({ ...state, isOpen: open });\r\n };\r\n\r\n return (\r\n \r\n\r\n \r\n );\r\n}\r\n\r\nexport default Settings;","\r\nimport React from \"react\";\r\nimport styled, { createGlobalStyle } from \"styled-components\";\r\n\r\nimport Sidebar from \"../components/Sidebar\";\r\nimport Header from \"../components/Header\";\r\nimport Footer from \"../components/Footer\";\r\nimport Settings from \"../components/Settings\";\r\n\r\nimport { spacing } from \"@material-ui/system\";\r\nimport {\r\n Hidden,\r\n CssBaseline,\r\n Paper as MuiPaper,\r\n withWidth\r\n} from \"@material-ui/core\";\r\n\r\nimport { isWidthUp } from \"@material-ui/core/withWidth\";\r\n\r\nconst drawerWidth = 239;\r\n\r\nconst GlobalStyle = createGlobalStyle`\r\n html,\r\n body,\r\n #root {\r\n height: 100%;\r\n }\r\n\r\n body {\r\n background: ${props => props.theme.body.background};\r\n }\r\n\r\n .MuiCardHeader-action .MuiIconButton-root {\r\n padding: 4px;\r\n width: 28px;\r\n height: 28px;\r\n }\r\n`;\r\n\r\nconst Root = styled.div`\r\n display: flex;\r\n min-height: 100vh;\r\n`;\r\n\r\nconst Drawer = styled.div`\r\n ${props => props.theme.breakpoints.up(\"md\")} {\r\n width: ${drawerWidth}px;\r\n flex-shrink: 0;\r\n }\r\n`;\r\n\r\nconst AppContent = styled.div`\r\n flex: 1;\r\n display: flex;\r\n flex-direction: column;\r\n overflow-x: auto;\r\n`;\r\n\r\nconst Paper = styled(MuiPaper)(spacing);\r\n\r\nconst MainContent = styled(Paper)`\r\n flex: 1;\r\n background: ${props => props.theme.body.background};\r\n\r\n @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\r\n flex: none;\r\n }\r\n\r\n .MuiPaper-root .MuiPaper-root {\r\n box-shadow: none;\r\n }\r\n`;\r\n\r\nclass Dashboard extends React.Component {\r\n state = {\r\n mobileOpen: false,\r\n };\r\n\r\n handleDrawerToggle = () => {\r\n this.setState(state => ({\r\n mobileOpen: !state.mobileOpen\r\n }));\r\n };\r\n\r\n render() {\r\n const { children, routes, width } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {children}\r\n \r\n